Home

Jean-Christophe Dubacq edited this page Oct 17, 2012 · 5 revisions
Clone this wiki locally

compile-latex is a (not-so-)simple utility that is meant to take the place of your usual pdflatex or latex+dvips command.

It has a simple job:

  • Loops over LaTeX files until the output is stable
  • Runs bibtex or makeindex as needed (can be disabled)
  • May do several things after the compilation:
    • Generate a good enough Makefile (calling itself for compilation)
    • Generate an ignore file for your favorite VCS
    • Clean auxiliary files

It has the following features:

  • Unobtrusive: Does not interfere with your compilation (no packages, no redefinitions)
  • Accurate: Uses strace to have an accurate list of all files accessed, know if they are input, intermediate or output files. Never misses a rerun, tries very hard not to run too many times.
  • Mostly agnostic of what the programs really do. It should therefore be robust enough to cope with LuaLaTeX for example, or with LaTeX in --shell-escape mode.
  • Fully controlable: has a rich way of storing options (including by simple comments in the source file)
  • Supports --jobname: this means compiling one document under several names. If the names are specified in the source, you get a document with multiple outputs (for example, an exam and its answers).
  • Standalone: uses only basic perl
  • Quiet: by default, hides the very verbose output of LaTeX.

It has the following non-features:

  • Works on Linux only. A workaround may be to use the --recorder option on other systems.
  • Does not make images conversion. This is not the job of the pdflatex program, and compile-latex is meant to replace the latex compiler command, not a global make system.
  • Must be hinted manually for multiple indexes, since makeindex has a configurable output.
  • No out-of-directory compilation (but it can clean the mess easily).
  • No coffee: does not make coffee.

It has the following dreamsfuture features:

  • Progress indicator (number of pages compiled so far)
  • Continuous viewing (needs a bit more of thinking about details)
  • xindy, bibtex8 and biber support (easy, just need good tests)
  • Global configuration file (needs a bit more of thinking about what to put in it)
  • Last resort on-the-fly image generation (needs a good deal of thinking)

See also this list of similar programs and the manual page.