Frequently Asked Question List for TeX
If you use RCS, CVS, Subversion
, Bazaar
or Git
to maintain
your (La)TeX documents under version control, you may need some
mechanism for including the version details in your document, in such
a way that they can be typeset (that is, rather than just hiding them
inside a comment).
The most complete solution for RCS and CVS is to use the
(LaTeX) package rcs
, which allows you to parse and
display the contents of RCS keyword fields in an extremely
flexible way. The package rcsinfo
is simpler, but does most
of what you want, and some people prefer it; it is explicitly
compatible with LaTeX2HTML
.
If, however, you need a solution which works without using external packages, or which will work in Plain TeX, then you can use the following minimal solution:
\def\RCS$#1: #2 ${\expandafter\def\csname RCS#1\endcsname{#2}}
\RCS$Revision: 1.47 $ % or any RCS keyword
\RCS$Date: 2014/01/28 18:17:23 $
...
\date{Revision \RCSRevision, \RCSDate}
If you are a user of Subversion
, the package svn
may be for you. It has explicit cleverness about dealing with dates:
\documentclass{<foo>}
...
\usepackage{svn}
\SVNdate $Date$
\author{...}
\title{...}
...
\begin{document}
\maketitle
...
\end{document}
will (once subversion
has committed a copy of the document)
cause \maketitle
use the date that has been written into the
$Date$
keyword.
Another alternative for Subversion
users is the
svninfo
package, which has much the same mechanisms as does
svn
but with a rather different focus. Svninfo
does the date trick that svn
performs (controlled by a
package option), and can set up page foot-lines using
package fancyhdr
. There isn’t much to
choose between the two packages: you should read the packages’
documentation to see which suits you best.
An alternative script-based approach to version control has been taken
by the vc
bundle, that in certain situations might work more
reliably than any of the packages mentioned above. The vc
bundle supports Bazaar
, Git
and Subversion
usage and works with both LaTeX and
Plain TeX. Note that vc
is the only option that
currently claims to support Bazaar
-controlled repositories.
Finally, for now, the gitinfo
package supports
Git
-controlled documents.
FAQ ID: Q-RCS