条件编译和 \documentclass

条件编译和 \documentclass

我对 latex 还不太熟悉,不太明白如何编译演示文稿的不同版本。如果这很重要:我正在使用 pdflatex 和 beamer。

我目前正在使用三种文档类:

  • \documentclass{beamer}
  • \documentclass[notes=only]{beamer}
  • \documentclass[handout]{beamer}

我目前正在使用 makefile 来编译整个内容,它基本上像这样调用 pdflatex:pdflatex '\documentclass[notes=only]{beamer} \input{$(INPUT_FILE)}'

这当然意味着我的.tex文件缺少 documentclass,并且无法在不知道我的 Makefile 的情况下轻松编译。当然,这并不是很理想...

但我怎样才能做得更好?

答案1

\documentclass{beamer}背面放入主文件(例如presentation.tex),添加对所有模式有效的必需默认选项(如果有),然后像这样执行它:

pdflatex  '\PassOptionsToClass{notes=only}{beamer} \input{presentation}'

这仍将创建presentation.pdf并覆盖 PDF 的普通版本。

或者创建以下文档:

% notes.tex
\PassOptionsToClass{notes=only}{beamer}
\input{presentation}

% handout.tex
\PassOptionsToClass{handout}{beamer}
\input{presentation}

其优点是可以创建notes.pdfhandout.pdf而不需要 Makefile 或编译器选项。

现在只需使用 和 即可轻松编译主文件,并使用和分别pdflatex presentation编译笔记和讲义。pdflatex notespdflatex handout

答案2

pdflatex '\PassOptionsToClass{notes=only}{beamer} \input{file}'

那么你的 TeX 文件就可以作为演示文稿的默认文件,使用以下\documentclass

相关内容