Author: ShareLaTeX team (February 2013)
Note: This article was originally published on the ShareLateX blog in February 2013 and describes locally installing and using a Perl script called latexdiff
. It is reproduced here for the benefit of readers who may be interested to use latexdiff
on their own local computing device.
Lately, we have been working on TeX projects that involve a few collaborators. It can be hard to keep track of all the changes the contributors make because it's easy to miss a few changed words in text-heavy document. We were hoping to find a feature in TeX similar to "Track changes" found in Microsoft Word. latexdiff
was the solution to our problems.
latexdiff
is an invaluable utility that makes it easy to markup and view changes made to the document. It definitely reduced my burden of having to read through two files simultaneously where it would be easy to overlook subtle changes like word substitutions and changing numbers or signs in an equation.
latexdiff
latexdiff
is a Perl script and requires an installation of Perl 5.8 or higher.
If you are a Windows user you will have to go through the following setup to get latexdiff
working on your machine:
latexdiff
from CTAN;latexdiff
files and copy them to the Perl > bin
folder (default installation in C: drive);latexdiff
!Mac OS X includes an installation of Perl and no additional setup is required. latexdiff
can be found in any CTAN repository in TeX Live Utility.
To compare two documents simply run latexdiff
in the command line like so:
latexdiff draft.tex revision.tex > diff.tex
where draft.tex
and revision.tex
are original and changed versions of your document, and diff.tex
is where the markup is stored. The above command provides latexdiff
with the two comparison files and the filename for the resulting marked .tex
file. If the two input files you provide are valid .tex
files, the resulting diff.tex
will also be a .tex
file. This marked file can now be compiled with your choice of TeX compiler (pdfLaTeX etc.).
Out of the box, any removed words are crossed out with a single line and colored red, whereas any added words are underlined with a squiggle and colored blue. When equations are changed, additions are marked with a blue font and removals are marked with a red.
We compared two documents with default latexdiff
settings, and were very impressed with the results:
Unlike Microsoft Word, where the changes are simply highlighted and the notes are off to the side, all changes are clearly marked where they happen!
For those of you who do not want a cluttered document with lots of strikethrough text, the CTRADITIONAL
option is way to go. Simply specify the option to latexdiff
:
latexdiff -t CTRADITIONAL draft.tex revision.tex > diff.tex
All the deleted text appear as footnotes and added text appear in blue.
latexdiff
optionsYou can include various to suit your needs for a visual markup style. Some options, taken from the documentation, include:
UNDERLINE
—added text is wavy-underlined and blue, discarded text is struck out and red;CTRADITIONAL
—added text is blue and set in sans-serif, and a red footnote is created for each discarded piece of text;TRADITIONAL
—like CTRADITIONAL
but without the use of colour;CFONT
—added text is blue and set in sans-serif, and discarded text is red and very small size;FONTSTRIKE
—added text is set in sans-serif, discarded text small and struck out;CHANGEBAR
—added text is blue, and discarded text is red. Additionally, the changed text is marked with a bar in the margin.For more information on latexdiff
check out the official documentation.