Process LaTeX documents without cluttering your working directory
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

ClutTeX: Process LaTeX document without cluttering your directory

ClutTeX is a program to automatically process your LaTeX document. If necessary, it re-runs (La)TeX program to resolve cross-references and everything.

One of its main feature is that, it does not clutter your working directory (but the final .pdf file is still brought for you).

Japanese blog: TeX 実行の自動化ツールを作った (ClutTeX)


  • Does not clutter your working directory with .aux, .log, etc. files.
  • Does not prompt for input when there is a (La)TeX error.
  • With pTeX-like engines, automatically run dvipdfmx to produce PDF file.
  • Automatically re-run (La)TeX to resolve cross-references and other things.
  • Watch input files for change (requires an external program). [--watch option]
  • Support for MakeIndex, BibTeX, Biber, makeglossaries commands. [--makeindex, --bibtex, --biber, --makeglossaries options]


$ cluttex -e pdflatex file.tex

More general form:

$ cluttex [OPTIONS] [--] INPUT.tex

See example/ for some examples.


Click [Clone or download] button on GitHub and [Download ZIP]. Unpack and copy bin/cluttex (or bin/cluttex.bat on Windows) to somewhere in PATH.

Command-line Options

  • -e, --engine=ENGINE Specify which TeX engine/format to use. ENGINE is one of the following: pdflatex, pdftex, lualatex, luatex, luajittex, xelatex, xetex, latex, etex, tex, platex, eptex, ptex, uplatex, euptex, uptex.
  • -o, --output=FILE The name of output file. [default: JOBNAME.FORMAT]
  • --fresh Clean intermediate files before running TeX. Cannot be used with --output-directory.
  • --max-iterations=N Maximum number of running TeX to resolve cross-references. [default: 3]
  • --[no-]change-directory Change the current working directory to the output directory when running TeX.
  • --watch Watch input files for change. Requires fswatch program to be installed.
  • --color[=WHEN] Make ClutTeX's message colorful. WHEN is one of always, auto, or never. [default: auto if --color is omitted, always if =WHEN is omitted]
  • --includeonly=NAMEs Insert \includeonly{NAMEs}.
  • --tex-option=OPTION Pass OPTION to TeX as a single option.
  • --tex-options=OPTIONs Pass OPTIONs to TeX as multiple options.
  • --dvipdfmx-option[s]=OPTION[s] Same for dvipdfmx.
  • -h, --help Print this message and exit.
  • -v, --version Print version information and exit.
  • -V, --verbose Be more verbose.

Options to run auxiliary programs:

  • --makeindex=COMMAND Use MakeIndex program to process .idx files. (e.g. --makeindex=makeindex, or --makeindex=mendex)
  • --bibtex=COMMAND Use BibTeX program to produce .bbl file from .aux files. (e.g. --bibtex=bibtex, or --bibtex=upbibtex)
  • --biber[=COMMAND] Use Biber program to produce .bbl file from .bcf file.
  • --makeglossaries[=COMMAND] Use makeglossaries program to produce .gls file from .glo file.

TeX-compatible options:

  • --[no-]shell-escape
  • --shell-restricted
  • --synctex=NUMBER
  • --[no-]file-line-error [default: yes]
  • --[no-]halt-on-error [default: yes]
  • --interaction=STRING (STRING=batchmode/nonstopmode/scrollmode/errorstopmode) [default: nonstopmode]
  • --jobname=STRING
  • --fmt=FORMAT
  • --output-directory=DIR [default: somewhere in the temporary directory]
  • --output-format=FORMAT Set output format (pdf or dvi). [default: pdf]

For TeX-compatible options, single-hypen forms are allowed (e.g. -synctex=1 in addition to --synctex=1).

If run as cllualatex or clxelatex, then the default engine is lualatex or xelatex, accordingly.


This program is distributed under GNU General Public License, version 3.