Есть множество вариантов для этого. Я благодарю Леа Гри за работу над решениями здесь.
Альтернативы
1. Для одного измененного Tex-файла это будет сделано
pdflatex `git diff --name-only | grep *.tex`
2. Для многих каталогов измененных Tex-файлов они должны иметь разные имена, в которых скомпилированные PDF-файлы появятся в текущем каталоге.
git diff --name-only '*.tex' | xargs -l1 pdflatex
3. По словам Ли, для одноименных измененных Tex-файлов (еще не получилось, пытаясь понять, я объяснил вариант здесь )
git diff --name-only '*.tex' | xargs -l1 -I{} sh -c 'cd "${1%/*}"; pdflatex "$1"' _ {}
Solid решения
4. Попробуйте Latexmk, специальную версию make, которая выполняет все перекомпиляции и перестройки только для LaTeX. Вместо bash я нахожу Python гораздо более удобным для использования в разных системах, таких как
import os
Articles =["A","B","C"]
for article in Articles:
#Compiling
os.system("latexmk -pdf -auxdir=tmp "+article)
, где мы используем latexmk для компиляции. Затем ниже показано, как вы можете использовать скрипт с Makefile.
Makefile
all:
python runAboveScript.py
clean:
os.system("rm *.snm")
os.system("rm *.nav")
#Add here everything you want to clean.
Дополнительная информация
Makefile для латексного проекта здесь
Latexmk подробнее здесь