LatexMk에 대해 알고 있지만 이를 실행하려는 컴퓨터에 설치할 수 없으므로 대상이 의존하는 파일 과 입력되는 파일이 pdflatex
포함된 Makefile을 작성해야 합니다 . 이를 위해 다음과 같이 작성했습니다.%.pdf
%.tex
*.tex
%.tex
%.pdf : %.tex $(shell perl -lne 'print "$$1\n" if /\\input{([\w-]+\.tex)}/' %.tex)
이제 정규식을 테스트했는데 제대로 작동하는 것 같았지만 %.tex
마지막에는 올바르게 전달되지 않았습니다 make output.pdf
. 실행하면 다음과 같은 결과가 나왔습니다.
Can't open %.tex: No such file or directory.
어떻게 명령 %.tex
에 전달할 수 있습니까 ?$(shell)
저는 GNU make를 사용하고 있습니다.
답변1
어쩌면 당신이 원하는 것은 종속성을 나열하는 파일을 생성하여 더 잘 해결할 수 있으며, 그런 다음 include
Makefile 내에서 생성할 수 있습니다. 이는 C 및 C++ 메이크파일의 일반적인 패턴입니다.
SOURCES=foo.tex bar.tex
all: $(SOURCES:.tex=.pdf)
%.dep: %.tex
perl -lne 'print "$*.pdf: $$1\n" if /\\input{([\w-]+\.tex)}/' <$< >$@
include $(SOURCES:.tex=.dep)
추천 도서:필수 구성 요소 자동 생성생산 매뉴얼에 있습니다.