使用 pdflatex 的命令行选项对文档进行条件编译

使用 pdflatex 的命令行选项对文档进行条件编译

是否可以从同一个.tex文件编译两个不同的 pdf 输出?

例如,假设我有一个文档main.tex ,其中包含针对学生的问题和仅针对教师的答案,我想对学生隐藏这些答案。是否可以使用不同的选项从命令行编译该文档的学生和教师版本?

pdflatex '\documentversion{student}' main -o student.pdf # output is student.pdf
pdflatex '\documentversion{teacher}' main -o teacher.pdf # output is teacher.pdf

答案1

这是一个例子。

您必须使用这两个命令编译此文档才能获得两个版本(students.pdfteachers.pdf):

pdflatex -jobname=students'\def\student{}\input{main}'
pdflatex -jobname=teachers'\def\teachers{}\input{main}'

(该-jobname选项定义生成的 PDF 文档的名称。例如:使用-jobname=students选项,该命令生成students.pdf。)

main.tex文件(用于etoolbox简化测试):

\documentclass{beamer}
\usepackage{etoolbox}
\begin{document}
\begin{frame}
  \frametitle{Title}
  \ifdef{\teachers}
  {Content for teachers}
  {Content for students}
\end{frame}
\end{document}

相关内容