Я пытаюсь упростить / улучшить Makefile для составления моей диссертации. Makefile прекрасно работает для компиляции всего этого; У меня есть что-то вроде этого:
show: thesis.pdf
open thesis.pdf
thesis.pdf: *.tex
pdflatex --shell-escape thesis
Это позволяет мне набирать make
, и любые изменения обнаруживаются (если они есть) и перекомпилируются перед отображением.
Теперь я хотел бы расширить его, чтобы условно компилировать только отдельные главы. Например, это позволяет мне написать make xpmt
, чтобы получить всего лишь одну главу в обходном порядке:
xpmt: ch-xpmt.pdf
open ch-xpmt.pdf
ch-xpmt.pdf: xpmt.tex
pdflatex --shell-escape --jobname=ch-xpmt \
"\includeonly{xpmt}\input{thesis}"
Но я не хочу записывать это одинаково для каждой отдельной главы. Как я могу написать приведенные выше правила в достаточно общем виде, чтобы избежать повторения?
(Больше упражнений в том, чтобы научиться писать файлы Makefile, а не решать какую-либо реальную проблему; очевидно, в этом случае было бы тривиально скопировать и вставить вышеуказанный код достаточно раз!)