Your company here — click to reach over 10,000 unique daily visitors

arlatex - Man Page

archive a number of ancillary LaTeX files into a master .tex file


arlatex [--outfile=filename.tex] --document=filename.tex filename ...

arlatex --version

arlatex --help


arlatex is an archiving program like shar, tar, zip, etc. Unlike those other archivers, however, arlatex is designed specifically for use with LaTeX.  arlatex takes the name of a master .tex file and a number of ancillary files used by that master file (e.g., .tex, .sty, .cls, and .eps files). From these, arlatex outputs a single file that, when it's run through latex, both regenerates the ancillary files and compiles the document into a .dvi file.

arlatex has a few advantages over other archiving programs:

arlatex works by writing a number of \begin{filecontents*} ... \end{filecontents*} blocks to the output file, followed by the contents of the master file.  (In fact, any LaTeX comments at the beginning of the master file are hoisted to the top of the generated file.  This enables the author to draw attention, if so desired, to the fact that ancillary files will be generated.)  The filecontents* environment, part of standard LaTeX2e, writes its contents verbatim to a specified file.



Output the arlatex script's version number.


Output brief arlatex usage information.

--document=.tex file

Specify the master document.  The output from arlatex is this file with all of the other files named on the command line prepended to it. Note that --document is a mandatory parameter; arlatex will abort with an error message if --document is not specified.

--outfile=.tex file

Specify the output file.  The output file looks just like the master document, but with a number of filecontents* environments preceding the \documentclass line.  If --outfile is not specified, output will be written to the standard output device.


Suppose you have a paper called paper.tex that loads a custom package with \usepackage{mypackage}.  You want to submit the paper to a conference, but you want to be absolutely certain that mypackage.sty doesn't get lost as your paper is shuttled from person to person.  Here's how arlatex can be of use:

    arlatex --document=paper.tex mypackage.sty --outfile=paper-submit.tex

When paper-submit.tex is processed with latex, it builds just like the original paper.tex, except that it additionally creates a mypackage.sty in the current directory:

    This is TeX, Version 3.14159 (Web2C 7.3.1)
    LaTeX2e <1999/12/01> patch level 1
    Babel <v3.6Z> and hyphenation patterns for american, french, german,
    ngerman, italian, nohyphenation, loaded.

    LaTeX Warning: Writing file `./mypackage.sty'.

    Document Class: article 1999/09/10 v1.4a Standard LaTeX document class
    (/usr/share/texmf/tex/latex/base/size12.clo)) (mypackage.sty)

As another example, here's how you could bundle together all of the files needed to build a large document for longevity:

    arlatex --document=thesis.tex abstract.tex introduction.tex
      background.tex approach.tex experiments.tex relatedwork.tex
      conclusions.tex before.eps after.eps fast.eps slow.eps
      podunkUthesis.cls --outfile=thesis-all.tex

As the number of files to archive together increases it becomes more cumbersome to run arlatex manually.  Fortunately, using arlatex with bundledoc is straightforward.  bundledoc finds all of the files needed to build the document, and arlatex combines them into a single file.  The following are examples of the bundle: line you might use in a bundledoc configuration file:

   bundle: (arlatex --document=$BDBASE.tex $BDINPUTS \
   bundle: arlatex --document=%BDBASE%.tex %BDINPUTS% \

See the bundledoc documentation for more information.


arlatex makes use of LaTeX's filecontents* environment.  It passes filecontents* the overwrite option to indicate that existing files with the same name should be overwritten.  Be forewarned that building the generated file will overwrite the files used to create it.

It is best to avoid bundling binary files (e.g., included graphics) with arlatex.  These typically do not extract cleanly.

See Also

bundledoc(1), latex(1), shar(1), tar(1), zip(1)


Scott Pakin, scott+bdoc@pakin.org

Referenced By


2022-10-04 v1.1