TrackChanges
Collaborative editing of LaTeX documents.



TrackChanges is a package for collaboratively editing LaTeX documents. It allows multiple editors to make changes and add annotations to a document. These changes and notes will be color coded by editor and added to the compiled document. The TrackChanges GUI allows the author to quickly find and accept, reject or modify the suggested edits.

TrackChanges can be used for: When used along with a versioning system (such as bazaar, mercurial or subversion) TrackChanges can serve as change tracking system for multiple authors.



The TrackChanges package consists of two parts:
  1. A LaTeX style file: trackchanges.sty
  2. A GUI used to accept/reject/change edits: trackchanges.py
Also included is a command line utility acceptchanges.py for accepting or rejecting changes.

For information on how to use TrackChanges see the Documentation.




LaTeX Package Summary


The trackchanges.sty style file adds five new LaTeX comands commands:

  \note[editor]{The note}
\annote[editor]{Text to annotate}{The note}
   \add[editor]{Text to add}
\remove[editor]{Text to remove}
\change[editor]{Text to remove}{Text to add}

In all cases [editor] can be ommitted.

All of the TrackChanges commands allow for the specification of an editor. Specifing an editor will prefix the edits with the editor name and color code their changes in the final pdf or dvi file.

To specify an editor name, the editor must first be declared in the preamble:
\addeditor{editor one}
\addeditor{editor two}


Display Options
Track changes has a number of different ways that it can display the edits in the final dvi or pdf file.
finalold  - Reject all edits.
finalnew  - Accept all edits.
footnotes - Display edits as footnotes.
margins   - Display edits as margin notes.
inline    - Display edits inline.

See the Documentation for additional options.
Examples with the differnt display options can be found on the Preview page.



Introduction

While planning to write some complex document together with some of my colleagues the same discussion was started over and over again: should LaTeX or some office suite like OpenOffice.org be used?

The strengths of LaTeX are its deterministic behavior, its reliable handling of split documents and unreached typesetting of formulas. On the other hand, current office suites provide the user with several features that are at least very desirable when collaboratively writing a document: they provide integrated merging facilities and are able to track changes and attach notes to the text.

The merging issue can be handled reasonably well by version tracking systems like SVN or CVS, but there was no acceptable solution to the issue of change tracking available. Of course, some militant LaTeX purists tried to convince me that all change tracking can be handled by insertion of LaTeX comments. I have tried so once but it did not work out! The main reason was that reading and editing large documents is mostly handled in DVI format and not on the LaTeX source level -- but LaTeX comments cannot be seen in DVI! Especially if you have sent one version of the document to a colleague and you want to skim quickly over it to see what has been changed DVI is the format of your choice.

While returning from a project meeting and staring out of the train's window I had the idea how we could combine the ``best of both worlds'' for collaborative text editing: by adding change tracking and note facilities to LaTeX! This is the basic idea of the TrackChanges LaTeX package. But this is only one part of the change tracking convenience offered by an office suite. The second part of the story is that changes and notes need to be accepted or rejected in order to produce some final version! This is the goal of the other programs of the TrackChanges open source project.

  -- Felix Salfner

CC-GNU GPL This software is licensed under the GNU GPL version 2.0 or later.