![使用 pdflatex 的命令行选项对文档进行条件编译](https://linux22.com/image/303067/%E4%BD%BF%E7%94%A8%20pdflatex%20%E7%9A%84%E5%91%BD%E4%BB%A4%E8%A1%8C%E9%80%89%E9%A1%B9%E5%AF%B9%E6%96%87%E6%A1%A3%E8%BF%9B%E8%A1%8C%E6%9D%A1%E4%BB%B6%E7%BC%96%E8%AF%91.png)
是否可以从同一个.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.pdf
和teachers.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}