How can you use LaTeX to write a document with other people?

I am using todonotes with enlarged margins. You just enlarge the size of your document and one margin, but you keep the textwidth the same. You need to use the geometry package for that.

I actually wrote a blogpost about it.

A nice point about todonotes is that they are configurable (you can change the colour & background colour of your notes), that way you can define a \todojim{} command, a \todojeff{} command with different colour sets and you will know without any ambiguity who wrote the note.

Of course this would not be complete without a proper version control system. Pick your favourite!


I use the changes package, which allows authors to mark their changes and makes them colourful and so easier to spot. There's also the latexdiff program which is a bit like running diff except that you can process the output via LaTeX and get a more useful way of displaying the differences, (see also ldiff).

One tip if you're using non-LaTeX-specific tools (such as a DVCS or commands like diff): use linebreaks only at the end of sentences. It makes the output from diff (and similar) much more informative (for more detailed reasoning, see this part of my experiences of switching to using a DVCS with LaTeX).


My 2 cents (from experience with my thesis + several papers):

  • even if your coauthors don't use version control, use it alone for your own work.

  • typical workflow: give the .tex to your advisor, tell him to modify the source file directly, and forget about macros to mark differences manually. Whenever you get a revised version back from him, check it in (you can use git commit --author to mark these changes as made by him).

  • Even better, once you are familiar with branches you can keep a separate branch advisor with the last version shared with him and merge the changes back in when you receive a revision.

  • if you have good LaTeX habits (i.e., you don't skip curly brackets like in \frac a b or \tilde a), then latexdiff works painlessly and does a great job of highlighting the differences. Don't send you advisor the pdf, send him the tex and the pdf output from latexdiff; this will save him a lot of time, too.

  • everyone around you writes paragraphs in a single source line? Consider yourself lucky: my advisor used an Emacs macro that did "hard" text rewrap adding newlines in random places in the document.

  • as mentioned above, git diff --color-words highlights word differences.