将 Beamer 笔记输出到单独的 PDF 文件?

将 Beamer 笔记输出到单独的 PDF 文件?

有没有一种简单的方法可以让 Beamer 在编译演示文稿时将演示文稿注释输出到单独的 PDF 文件?我知道一种方法是创建两个主文件,一个用于演示文稿,一个用于注释,每次都编译它们,但我觉得这有点尴尬。

答案1

有一个选项叫做\setbeameroption{show only notes}

\documentclass{beamer}

%\setbeameroption{show notes}
\setbeameroption{show only notes}
\begin{document}
\frame{\frametitle{FIRST}
On slide
\note{Whatever}
}



\end{document}

编译,复制 pdf(另一个名字!),注释掉第二个setbeameroption并再次编译。当然,您可以编写一个 makefile(取决于您的操作系统),但如果您每次运行后都不需要这两个文件,那么这种方式会更容易(或更少编码)。对于编写过程,我建议使用选项show noteson(删除%)。

编辑

这里有一个一次编译(一次点击)解决方案。它利用了\write18pdflatex 需要的选项--shell-escape

\write18{./file.sh }

\documentclass{beamer}


\input{out.out}
\begin{document}
\frame{\frametitle{FIRST}
On slide one.
\note{Whatever you want}
}

\end{document} 

虽然file.sh

#! /bin/bash
echo  > out.out
pdflatex yourname
cp yourname.pdf nonotes.pdf
echo \\setbeameroption{show only notes} > out.out

该文件必须可执行,例如 chmod 777 file.sh,它必须与 yourname.tex 位于同一目录中。这当然是 bash,因此它只能在类 unix 系统上运行。

yourname用你的 tex 文件的实际名称替换。

它有什么作用? 首先 pdflatex 将调用file.sh执行 pdflatex 的 pdflatex ,然后将生成的 pdf 复制到 nonotes.pdf 中。之后,它会用选项填充 out.out show only noteswrite18完成后,父 pdflatex 进程将继续。但现在 out.out 已填充,父进程将生成一个启用该选项的 pdf。

答案2

我不使用主文件。相反,我有一个用户定义的类,它接受一个选项来确定演示类型。如果没有提供该选项,则该类将产生演示beamer。否则,它将article结合使用该类beamerarticle来获取讲义版本。此外,它重新定义了一些beamer原本会提供输出的命令。例如,\frametitle\framesubtitle

如果我想生成演示文稿,我只需确保未提供额外选项。如果我想提供讲义,我只需添加额外选项。这比必须实现多个主文件的工作量要少得多。

您甚至可以通过在运行时提供选项来进一步实现这个想法。这样您就可以让脚本生成演示文稿注释版本。

主要思想在第 15 章(编写类和包)中有更详细的解释。LaTeX 和朋友

相关内容