[Tex/LaTex] redline markup in LaTex

changes

Im trying to create a short list of changes for a document from one revision to another. and only want to show the redlines on a set string.
i.e.

OLD String: I when to the zoo yesterday

NEW String: I went to the zoo today.

Diff string: I wentwhen to the zoo yesterdaytoday.

Best Answer

LyX can make exactly that:

MWE

However, the changes are stored in their own file format (.lyx) but not in the exported LaTeX (.tex) source or the PDF.

For a pure LaTeX solution or see the changes in the PDF, you can use the package changes:

\documentclass{article}
\usepackage{changes}
\begin{document}

I \added{went}\deleted{when} to the zoo \added{today}\deleted{yesterday}

\end{document}

MWE2

If you want the final PDF version, simply load the package with the final option:

\usepackage[final]{changes}

But also can do something more: MWE3

\documentclass{article}
\usepackage{changes}
\definechangesauthor[name={me}, color=magenta]{Fran}
\definechangesauthor[name={you}, color=red]{you}
\begin{document}
I \added[id=Fran]{went}\deleted[id=Fran]{when} to the zoo 
\added[id=Fran]{today}\deleted[id=you]{yesterday}
\listofchanges
\end{document}

See changes on CTAN for more options.

Another solution:

1) old.tex:

\documentclass{article}
\begin{document}
I when to the zoo yesterday
\end{document}

2) new.tex:

\documentclass{article}
\begin{document}
I went to the zoo today
\end{document}

3) In the terminal:

texdiff old.tex new.tex diff.tex

4) Edit diff.tex: Add manually some preamble to define \TLSins and \TSLdel (otherwise you cannot compile the file). The result must be something like:

\documentclass{article}
\usepackage{xcolor}
\colorlet{ins}{blue} 
\colorlet{del}{red}
\usepackage{ulem}
\newcommand\TLSins[1]{\cbstart{}\textcolor{ins}{\uline{#1}}\cbend{}}
\newcommand\TLSdel[1]{\cbdelete{}\textcolor{del}{\sout{#1}}}
\begin{document}
I \protect\TLSdel{when} \protect\TLSins{went} to the zoo \protect\TLSdel{yesterday} \protect\TLSins{today}
\end{document}

MWE4