2017-02-14 22 views
0

У меня есть следующий вопрос о написании разумного Makefile для составления большого количества листов упражнений LaTeX для моих лекций. Упражнения организованы в файлах file1.tex, file2.tex, ... fileXXX.tex где XXX - общее количество (варьируется от курса к курсу). Теперь уловка заключается в том, что я использую crossrefs из более поздних файлов в более ранние: зависимость fileY.tex от всех файлов -ux файлов fileZ.tex с Z < Y: так они должны быть сгенерированы раньше.Makefile для многих файлов LaTeX и зависимостей в порядке возрастания

Так что вместо жесткого кодирования всех XXX-файлов с их зависимостями в Makefile я ищу более эффективный способ сделать это. Было бы неплохо указать только общее количество файлов XXX.

+0

Я думаю, что latexmk будет лучше, чем простой макияж http://mg.readthedocs.io/latexmk.html – uzsolt

+0

@uzsolt Да, это была моя первая идея, как хорошо. На вопрос о том, что вопрос http://tex.stackexchange.com/questions/62142/latexmk-with-external-references, но вопрос автоматизации, который я хотел бы сделать, сделал такой подход довольно неудобным. Хм ...? –

ответ

0

Нравится?

N := 100 # can override on the command line, etc. 
SRCS := $(foreach n,$(shell seq $(N)),file$(n).tex) 

define dep 
$(call dep-rec,$1,,) 
endef 

# $(call dep-rec,.tex files,accumulated aux files) 
define dep-rec 
$(if $1,$(eval $(word 1,$1): $2)$(call dep-rec,$(wordlist 2,$(words $1),$1),$2 $(call aux-files-of,$(word 1,$1)))) 
endef 

# return the aux files of $1 (which is a .tex file) -- define as appropriate 
define aux-files-of 
$(basename $1).aux 
endef 

$(call dep,$(SRCS)) 

 Смежные вопросы

  • Нет связанных вопросов^_^