latexmk에서 종속성만 출력하는 방법은 무엇입니까?

latexmk에서 종속성만 출력하는 방법은 무엇입니까?

latexmkMakefile에서 사용하고 싶어서 이에 대한 매뉴얼 섹션을 읽었습니다. 그러나 종속성 생성 단계는 이상적이지 않습니다. 특히 출력 파일을 완전히 빌드한 후에만 종속성을 표시할 수 있는 것 같습니다 latexmk(제 경우에는 시간이 오래 걸릴 수 있음). latexmk파일에 대한 출력 종속성만 갖고 실제 출력 파일을 최신으로 표시하지 않는 방법이 있습니까 ?

내 Makefile에서 다음 규칙을 시도했지만 출력 파일이 최신으로 표시되는 것 같습니다. 또한 로그 파일의 내용에 따라 여러 번 실행될 수도 있고 실패했다고 생각할 수도 있습니다.

%.d: %.tex
    @echo "Generating $@ from $<"
    @set -e; \
     $(LATEXMK) -M -MF $@ -quiet -pdf \
      -pdflatex="echo Generating dependencies from %T" $<

답변1

@tohecz: 당신 말이 맞습니다.

문제는 종속성이 TeX 파일(및 클래스 파일과 스타일 파일을 포함하여 호출되는 모든 파일)의 세부 내용에 복잡한 방식으로 의존한다는 것입니다. 종속성을 확인하는 유일한 쉬운 방법은 실행 pdflatex(또는 latex적절하게)한 다음 결과 파일(관련 파일은 .fls, .log.aux파일)을 분석하는 것입니다. .tex파일이 변경 되면 .pdf및 종속성 정보가 동시에 최신 버전이 아닙니다.

pdflatex따라서 종속성을 확인하기 위해 실행하려는 경우 .pdf부작용으로 새 파일이 생성됩니다. 따라서 파일을 업데이트하지 않고 종속성 정보를 업데이트하려고 할 필요가 없습니다 .pdf.

관련 정보