Kompilieren mit Optionen in der Kommandozeile
Vorgehensweise
Im Dokument:
\makeatletter
\@ifundefined{Status}{\chardef\Status=2}{} % Defaultwert auf 2
\makeatother
\ifcase\Status % Case 0
...
\or % Case 1
...
\or % Case 2
...
\or % else case
...
\fi
und dann im Makefile:
STATUS=1
foo.pdf: foo.tex
pdflatex "\chardef\Status=$(STATUS)\input{foo.tex}"
(ja, \input{$<} ist schlauer, aber weniger anschaulich)
Resultat:
pdflatex foo benutzt dann Status=2 aus dem Dokument,
make benutzt Status=1 aus dem Makefile und
make STATUS=0 benutzt dann Status=0.
(Es ist natürlich schlauer, den Vorgabewert im Dokument und im Makefile auf den gleichen Wert zu setzen)