我正在尝试使用makefile来控制通过添加涵盖不同主题的部分(幻灯片)形成的beamer演示文稿的生成。我希望能够在makefile中指定部件及其顺序,这些部件及其顺序可以针对不同的演示文稿进行更改。
例如,我可能有不同的.tex文件,每个文件都有不同主题的幻灯片,比如topicA topicB和topicC。然后在某个阶段,我可能想要一个演示文稿,我想要一个PDF首先包含有关topicA的幻灯片,然后是topicB上的幻灯片,而在不同的时间我可能想要做另一个演示文稿,我想首先在topicC上的幻灯片和然后是关于topicA的那些。我想控制顺序和主题以包含在makefile上的演示文稿。
我正在尝试实现的解决方案包括拥有一个顶级乳胶文件(比如top.tex),最终会有一个命令(比如“\ slidesorder”),其内容将是一系列\输入的包含要包含的主题的幻灯片的文件的名称。
总之,我有:
然后我编写了以下无法正常工作的makefile:
ROOT = top
SLIDES := topicB topicA topicC
TO_INCL := $(foreach V,$(SLIDES),\input{$(V)})
all: $(ROOT).pdf
${ROOT}.pdf: ${ROOT}.tex $(SLIDES:=.tex)
echo "\newcommand{\slidesorder}{$(TO_INCL)} \input{$(ROOT)}" | pdflatex
我们的想法是,通过更改SLIDES变量的内容,我会从相同的幻灯片来源获得不同的演示文稿。我对Latex和Make的知识非常有限,所以非常感谢任何帮助。
答案 0 :(得分:1)
好的,在发现shell中反斜杠的问题后,我已经设法找到了一个可行的解决方案:
ROOT = top
SLIDES := topicB topicA topicC
TO_INCL := $(foreach V,$(SLIDES),\input{$(V)})
TO_PDFLTX := '\\newcommand{\\slidesorder}{'$(TO_INCL)'} \\input{'$(ROOT)'}'
all: $(ROOT).pdf
${ROOT}.pdf: ${ROOT}.tex $(SLIDES:=.tex)
echo $(TO_PDFLTX)| pdflatex