# Producing long and short versions of a paper in LaTeX

Conferences have different submission requirements for papers. Submissions are usually subject to a page limit, but supplementary materials (or appendices) are permitted. Here is a guide to produce various versions of a paper in LaTeX.

## Short and Long Versions

The easiest way is probably to produce a short version that satisfies the page limit, and a long version containing omitted details (usually in an appendix). This way has the benefit that one can simply read the long version, as it usually contains the short version in its entirely.

To achieve this (with a single `.tex` file), we use the package etoolbox, which provides ways to perform conditional compilation.

``````\usepackage{etoolbox}
``````

Then, define a new “toggle” (i.e. a boolean switch) called `full`:

``````\newtoggle{full}
``````

After that, you can do some conditional compilation using the command `\iftoggle`, for example:

``````\iftoggle{full}{%
See \cref{sec:proof} for the proof.
}{%
See the full version for the proof.
}
``````

## Main and Appendix Separately

Rarely, the main document and the appendix needs to be submitted separately (e.g. when the paper is not allowed to contain an appendix). While one can create a long version of the paper, and use an external program to split the PDF into two parts, this has the disadvantage that hyperlinks are likely to be broken.

To achieve this, we use two `.tex` files, one called `main.tex` and one called `supplement.tex`, and utilise the package xr-hyper for cross-file cross-references and hyperlinks.

IMPORTANT: You must load the package `xr-hyper` before loading `hyperref`:

``````\usepackage{xr-hyper}
\usepackage{hyperref}
``````

In `main.tex`, you can use the following command to load the references in `supplement.tex`:

``````\externaldocument{supplement}
``````

If you want all labels in `supplement.tex` to be prefixed, e.g. to prevent duplicate labels, then you can add the prefix `S-` in an optional argument:

``````\externaldocument[S-]{supplement}
``````

Similarly, in `supplement.tex`, load the references defined in `main.tex`:

``````\externaldocument{main}
``````

When compiling your documents, you would first need to compile `main.tex` a few times, and then compile `supplement.tex` a few times, and then compile `main.tex` again (so that it can use the references defined in `supplement.tex`).

You can use the your favourite references commands as usual, and expect them to work (although cross-file hyperlink would not work).

If you use `latexmk`, you may need to add additional rules in `latexmkrc` file, or use the technique in this Overleaf guide.

## Numbering Figures/Tables Continuously

If you have figures in the supplement file, and you wish to continue the numbering of figures from the main file. You can always reset the figure counter by hand, but you’d need to change the counter when you add and remove figures.

At the end of the main file, add the following lines:

``````\makeatletter
\protected@write\@auxout{}{\string\newlabel{lastfigure}{{\thefigure}{\thepage}{}{}{}}}
\protected@write\@auxout{}{\string\newlabel{lasttable}{{\thetable}{\thepage}{}{}{}}}
``````

By doing so, we have defined two labels: `lastfigure` and `lasttable`, which contains the value of the figure and table counter respectively.

At the beginning of the supplement file, add the following lines, to reset the counters to the “last” figure and table respectively:

``````\setcounterref{figure}{lastfigure}
\setcounterref{table}{lasttable}
``````

Note: if you included a prefix for references in the `main.tex` file, you’d need to add that prefix before `lastfigure` and `lasttable`.