The LaTeX2e Unofficial Reference Manual aims to provide a reference for the user-level commands of LaTeX. For more information, see the home page.
We welcome bug reports or suggestions.
Please email to
latexrefman@tug.org
(subscribe,
archive).
If you would like to contribute more systematically, that's great. Here are some things a person could tackle, following the guidelines below for writing entries.
keeptrack.csv
.
It lists all of the commands in the LaTeX source.
Each has a status:
done for commands already mentioned,
todo for ones that we will do,
notdoing for ones that we will not do (usually because they
are not user-level commands),
and other for uncharacterized commands.
Grab a todo command and have a whack.
Each entry is different but over time we have worked out some
general guidelines.
A good example is the one for
\footnote
.
\footnote
's.
Synopsis, one of: \footnote{text} \footnote[number]{text}Note that it lists separately the command version with and without the optional number. It does not use square brackets to indicate options because that would be using the brackets both as characters that appear in the LaTeX input, and as metacharacters.
\footnote
command description starts with
"Place a footnote text at the bottom of the current
page."footnote
discusses what happens inside a
minipage
).
A reference is not a tutorial so you don't need to
start from first principles;
if something uses LR mode or involves some tricky stuff with glue
then just say that.
You might search the web for questions that people have asked about
this command, to see if there are fine points that the entry should
cover (good sources are
the TeX-LaTeX Stack Exchange,
texhax
,
and
comp.text.tex
).
If convenient, furnish any parameter values that are in the standard
classes.
For instance, \footnote
has \footnoterule
and \footnotesep
.
Consider giving the values of any magic numbers in the standard packages.
Examples are particularly important since they are what most people
look for.
Here are a few guidelines:
(1) Test all examples, no matter how small.
(2) Use best practices, both coding and typographic practices,
such as including the \,
space in $\int x\, dx$
.
(3) There is such a thing as too many examples.
Perhaps two or at most three is enough.
(4) Keep them brief.
(5) Make them interesting, or at least sensible.
If you are illustrating an aspect of formula writing
then use an actual formula.
For text, use an example from an actual document if reasonable but
in any event try to minimize "foo" and "bar."
And, "baz" is right out.
Finally, of course we must follow the source license with respect to quoting and attribution.
The easiest way to start is to put your suggestion in plain text (or Texinfo is even better, if you wrote it that way; but Texinfo is not required) and email the list. We will mark it up for insertion in the document source.
Making a ready-to-insert entry is more involved and we should
have a conversation when you want to do that, but here is an overview.
First get the files
(see also the
directions
on our project page):
(i) install
Subversion,
(ii) create a convenient directory; here we illustrate with
/home/jim/src/latexrefman/
, and
(iii) in that directory run
svn checkout https://svn.gnu.org.ua/sources/latexrefman/trunkto fetch the subdirectory
trunk/
.
The document source is the single file trunk/latex2e.texi
.
It is marked up in
Texinfo.
Decide where to put your new entry.
The simplest way to actually enter it is to
then copy another entry and edit to suit.
(The
Texinfo manual
has all the information but we try to stay away from any advanced stuff.)
Besides inserting the entry,
you must also put a pointer to that entry into a menu.
Again here, find a similar entry and copy and edit.
Finally, compile to output by running make
in the trunk
directory.
Once you have gotten used to marking up entries, if you
want write access to the repository then let us know on the mailing list.
We'll see about an account.
Here are a few conventions for working inside the texi
file.
@code{..}
for code,
@file{..}
for file names,
@code{..}
for package names,
@samp{..}
for examples.
Don't forget that curly braces inside examples need to be escaped
with at-signs: @code{\macro@{arg@}
.Ctrl-Q
to format
blocks of text to a uniform width.@PkgIndex{..}
to add a package name to the index.
Here are a few points concerning how to change the document structure, if need be.
@anchor{
…} to the old name
.