我刚刚发现可以从makefile启动LaTeX编译。我之所以需要生成一系列具有一些参数变化的目标。 我的文件在底部。如何使用不同的可选参数添加其他编译作业。换句话说,当有多个目标文件时,如何更改目标文件的名称?
MyFileNew.pdf : MyFile.tex
pdflatex "\def\UseOption{nonumber,nographics,e} \input{MyFile.tex}"
#makefile
MyFile.pdf : MyFile.tex
pdflatex "\def\UseOption{number,graphics,ef} \input{MyFile.tex}"\
pdflatex "\def\UseOption{number,graphics,ef} \input{MyFile.tex}"
@echo «Removing auxilliary LaTeX files resulting from compilation»
@rm -f *.log *.aux *.dvi *.toc *.lot *.lof
#end of makefile
答案 0 :(得分:0)
您是否正在寻找类似的东西?
pdflatex := pdflatex "\def\UseOption{$(options_$*)} \input{$<}"
cleanup := rm -f *.log *.aux *.dvi *.toc *.lot *.lof
options_MyFileNew := nonumber,nographics,e
options_MyFile := number,graphics,ef
MyFileNew.pdf MyFile.pdf: %.pdf: MyFile.tex
$(pdflatex)
$(pdflatex)
$(cleanup)
这基本上只是对你已有的重构。
答案 1 :(得分:0)
以下工作最终符合预期(清除辅助文件除外)。
.PHONY: all clean clean-all
all : TargetFile1.pdf TargetFile2.pdf
TargetFile1.pdf : MyFile.tex
pdflatex --jobname=$(@:.pdf=) "\def\UseOption{number,nographics,e} \input{MyFile.tex}"
TargetFile2.pdf : MyFile.tex
pdflatex --jobname=$(@:.pdf=) "\def\UseOption{number,nographics,ef} \input{MyFile.tex}"
clean :
rm -f *.log *.aux *.dvi *.toc *.lof
clean-all : clean
rm -fr *.pdf
# Makefile
答案 2 :(得分:0)
all: main.o module.o \\ The dependencies of the target all \
gcc main.o module.o -o target_bin \\ The action to make the target all \
main.o: main.c module.h \\ The dependencies fo the target main.o \
gcc -I . -c main.c \\ The action to make the target main.o ,\
module.o: module.c module.h \
gcc -I . -c module.c \\ -I tells the compiler header file locations \
clean: \\ This target has no dependencies \
rm -rf *.o \
rm target_bin
回答这个问题需要一个相对较长的解释和一个用于演示的多个文件,我在一个github回购中包含一个HERE a link,它以紧凑的方式回答这个问题(有足够的细节)。