我正在为一个班级准备讲座幻灯片。我想隐藏一些幻灯片,不让学生看到。例如,我希望能够编译
students.pdf
仅包含学生幻灯片 1 和 2(即“教师幻灯片”被隐藏)的幻灯片;但teacher.pdf
包含所有三张幻灯片的幻灯片。
\documentclass{beamer}
\begin{document}
\begin{frame}{Student slide 1}
blah blah blah
\end{frame}
\begin{frame}{Teacher slide}
secret stuff not to be shared with students
\end{frame}
\begin{frame}{Student slide 2}
blah blah blah
\end{frame}
\end{document}
我该如何在 Beamer 中执行此操作?在常规文档中,例如,article
我将使用comment
环境。
我觉得在投影机中有条件地隐藏幻灯片 对我的需求来说太过了。
答案1
如果您使用该handout
模式为学生制作讲义,如评论中所建议的那样,您只需将相关位指定为传递给环境的参数即可。根本frame
不需要显式。\mode
例如:
% \documentclass{beamer}% for teacher version
\documentclass[handout]{beamer}% for student version
\begin{document}
\begin{frame}{Student slide 1}
blah blah blah
\end{frame}
\begin{frame}<1-| handout:0>{Teacher slide}
secret stuff not to be shared with students
\end{frame}
\begin{frame}{Student slide 2}
blah blah blah
\end{frame}
\end{document}
学生输出:
教师输出:
正如我在评论中提到的,您也可以在框架内使用它。事实上,您可以在任何可以传递覆盖规范的地方使用它。
答案2
另一个选择是包multiaudience
. 可以定义多个目标受众
\SetNewAudience{teacher}
\SetNewAudience{students}
并筛选出每个或多个受众群体所需的文档部分。
\begin{shownto}{teacher}
...
\end{shownto}
命令\DefCurrentAudience{students}
在编译之前修复了所需的受众,但也可以在编译命令中修复
`pdlatex "\def\CurrentAudience{students}\input{your-tex-file}"`
一个完整的例子:
\documentclass{beamer}
\usepackage{multiaudience}
% Declare all possible audience groups
\SetNewAudience{teacher}
\SetNewAudience{students}
\DefCurrentAudience{students}
\begin{document}
\begin{frame}{Student slide 1}
blah blah blah
\end{frame}
\begin{shownto}{teacher}
\begin{frame}{Teacher slide}
secret stuff not to be shared with students
\end{frame}
\end{shownto}
\begin{frame}{Student slide 2}
blah blah blah
\end{frame}
\end{document}
学生的结果:
和老师