Eu gostaria de usar latexmk
em um Makefile, então li a seção do manual sobre isso. No entanto, a etapa de geração de dependência parece menos que ideal. Especificamente, parece que latexmk
só é possível mostrar dependências após a construção completa de um arquivo de saída (o que pode levar muito tempo no meu caso). Existe uma maneira de ter latexmk
apenas dependências de saída em um arquivo e não marcar o arquivo de saída real como atualizado?
Tentei a seguinte regra no meu Makefile, mas parece marcar o arquivo de saída como atualizado. Eu também acho que ele poderia ser executado várias vezes (ou que falhou), dependendo do que está no arquivo de log.
%.d: %.tex
@echo "Generating $@ from $<"
@set -e; \
$(LATEXMK) -M -MF $@ -quiet -pdf \
-pdflatex="echo Generating dependencies from %T" $<
Responder1
@tohecz: Você está correto.
O problema é que as dependências dependem de maneira complicada do conteúdo detalhado do arquivo TeX (e de todos os arquivos que ele chama, incluindo o arquivo de classe e os arquivos de estilo). A única maneira fácil de determinar as dependências é executar pdflatex
(ou latex
conforme apropriado) e depois analisar os arquivos resultantes (os relevantes são os arquivos .fls
, .log
e .aux
). Se o .tex
arquivo for alterado, as informações .pdf
e as informações de dependência estarão simultaneamente desatualizadas.
Portanto, se você quiser executar pdflatex
para determinar as dependências, obterá um novo .pdf
arquivo como efeito colateral. Portanto, não faz sentido tentar atualizar as informações de dependência sem atualizar o .pdf
arquivo.