我最近创建了一个 makefile 来与我的 TeX 文档一起使用,并且对这一发现感到非常高兴。当我创建 Beamer 幻灯片以在课堂上使用时,我会创建一组幻灯片和一份讲义来配合它们。我希望有一个 makefile 来创建幻灯片,然后更改我的 TeX 文件标题的一两行(通过取消注释和注释)以创建一组讲义(可能通过生成一个新的中间 TeX 文件)。我猜 make file 不能编辑我的 TeX 文件,但那会很酷。可能吗?谢谢!
答案1
这与向文档传递参数问题;以下内容改编自我的答案那里。
让 Makefile 中的目标覆盖由 Latex 文档组成的文件\input
,该文件应设置标题。不要对 Latex 约定过于挑剔:通过使用节省字符\def
可让您的 makefile 更易于阅读。
例如,假设 Makefile 包含:
HEADERNAME = 我的标题 讲义:echo "\def\hdrparam{$(HEADERNAME)}">params.tex;乳胶手稿
然后manuscript.tex
应该以 开始\input{params.tex}
,定义\hdrparam
在标题宏中的使用。
答案2
我实现此目的的方法是将核心内容放在一个 LaTeX 文件中(例如content.tex
),并编写两个包装器文件(例如slides.tex
和handouts.tex
),content.tex
通过调用进行合并\input{content}
。然后,您可以在 makefile 中创建适当的目标和规则,一个用于编译slides.tex
,另一个用于编译handouts.tex
答案3
另一种方法是使用宏来包含您想要传递的信息,然后执行以下操作
pdflatex "\def\MyHeaders{Whatever} \input MyFile.tex"
在你的 中makefile
。你可能需要\providecommand*\MyHeaders{}
在主文档中包含一行以避免尴尬的错误。