Skip to content

Module: Compile

Trigger: compile, 编译, build, pdflatex, xelatex

Default Behavior: Uses latexmk which automatically handles all dependencies (bibtex/biber, cross-references, indexes) and determines the optimal number of compilation passes. This is the recommended approach for most use cases.

Tools (matching VS Code LaTeX Workshop):

ToolCommandArgs
xelatexxelatex-synctex=1 -interaction=nonstopmode -file-line-error
pdflatexpdflatex-synctex=1 -interaction=nonstopmode -file-line-error
latexmklatexmk-synctex=1 -interaction=nonstopmode -file-line-error -pdf -outdir=%OUTDIR%
bibtexbibtex%DOCFILE%
biberbiber%DOCFILE%

Recipes:

RecipeStepsUse Case
latexmklatexmk (auto)DEFAULT - Auto-handles all dependencies
PDFLaTeXpdflatexQuick single-pass build
XeLaTeXxelatexQuick single-pass build
pdflatex -> bibtex -> pdflatex*2pdflatex → bibtex → pdflatex → pdflatexTraditional BibTeX workflow
pdflatex -> biber -> pdflatex*2pdflatex → biber → pdflatex → pdflatexModern biblatex (recommended for new projects)
xelatex -> bibtex -> xelatex*2xelatex → bibtex → xelatex → xelatexChinese/Unicode + BibTeX
xelatex -> biber -> xelatex*2xelatex → biber → xelatex → xelatexChinese/Unicode + biblatex

Usage:

bash
# Default: latexmk auto-handles all dependencies (recommended)
uv run python -B scripts/compile.py main.tex                          # Auto-detect compiler + latexmk

# Single-pass compilation (quick builds)
uv run python -B scripts/compile.py main.tex --recipe pdflatex        # PDFLaTeX only
uv run python -B scripts/compile.py main.tex --recipe xelatex         # XeLaTeX only

# Explicit bibliography workflows (when you need control)
uv run python -B scripts/compile.py main.tex --recipe pdflatex-bibtex # Traditional BibTeX
uv run python -B scripts/compile.py main.tex --recipe pdflatex-biber  # Modern biblatex (recommended)
uv run python -B scripts/compile.py main.tex --recipe xelatex-bibtex  # XeLaTeX + BibTeX
uv run python -B scripts/compile.py main.tex --recipe xelatex-biber   # XeLaTeX + biblatex

# With output directory
uv run python -B scripts/compile.py main.tex --outdir build

# Force detected-compiler biber workflow
uv run python -B scripts/compile.py main.tex --biber

# Utilities
uv run python -B scripts/compile.py main.tex --watch                  # Watch mode
uv run python -B scripts/compile.py main.tex --clean                  # Clean aux files
uv run python -B scripts/compile.py main.tex --clean-all              # Clean all (incl. PDF)

Auto-detection: Script detects Chinese content (ctex, xeCJK, Chinese chars) and auto-selects xelatex.

Released under the MIT License.