Estoy usando Makefile
para generar PDF a partir de archivos .tex
.Referencia de LaTeX y Makefile
Cuando se usaron referencias en mis archivos LaTeX. a veces me da algo así como
LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right.
sé que volver a ejecutar LaTeX compilar comando puede solucionar este problema de referencia, pero en mi Makefile
, %.pdf
sólo depende de %.tex
, por lo tanto basta con ejecutar de nuevo make
no soluciona el problema (nada ha cambiado en el archivo .tex
). Necesito hacer un make clean
para volver a generar PDF.
Aquí es mi Makefile
TEX := $(wildcard *.tex)
default: $(TEX:.tex=.pdf)
%.pdf: %.tex
xelatex $<
.PHONY: clean
clean:
rm -v *.aux *.toc *.log *.out
¿Cómo resolver este problema? Gracias.
ACTUALIZACIÓN:
He aquí algunos pensaban que encontré de Google
- Cambio
default
objetivo de ser un.PHONY
. Que no es una solución muy buena (porque hay archivos de látex allí, y solo necesito volver a compilar un solo archivo) - Dependencia de
%.pdf
para incluir%.aux
. Pero no sé si es posible en GNU make? (depende del archivo%.aux
si existe; de lo contrario, omita la dependencia en%.aux
) - Realice un archivo
grep
al.log
y busque la advertencia específica. Si existe, vuelva a ejecutar el comando de compilación.
Puede que le interese mirar [latexmk] (http://ctan.tug.org/pkg/latexmk), que forma parte de la mayoría de las mejores distribuciones de TeX. –