我在 Windows 7 上使用 Texmaker 和 MiKTeX。我有以下beamer
代码,
\documentclass{beamer}
\theme{AnnArbor}
\begin{document}
\begin{frame}
\begin{verbatim}
\begin{frame}[<alignment>]
\frametitle{Frame Title Goes Here}
Frame body text and/or LATEX code
\end{frame}
\end{verbatim}
\end{frame}
\end{document}
我期望得到以下输出,
\begin{frame}[<alignment>]
\frametitle{Frame Title Goes Here}
Frame body text and/or LATEX code
\end{frame}
但我收到以下错误消息,
File ended while scanning use of \@xverbatim.
有人能指出这里的错误吗?据我所知,verbatim 里面可以包含任何内容。
当我尝试以下代码时,
\begin{verbatim}
\ begin{frame}[<alignment>]
\frametitle{Frame Title Goes Here}
Frame body text and/or LATEX code
\ end{frame}
\end{verbatim}
我得到了以下输出,
\ begin{frame}[<alignment>]
\frametitle{Frame Title Goes Here}
Frame body text and/or LATEX code
\ end{frame}
但我不希望\
和begin
和\
之间有空格end
。
答案1
您的框架应该是fragile
。(为获得更好的效果,添加了一行附加注释)。
\documentclass{beamer}
%\theme{AnnArbor}
\begin{document}
%\begin{frame}
\begin{frame}[fragile]
\begin{verbatim}
\begin{frame}[<alignment>]
\frametitle{Frame Title Goes Here}
Frame body text and/or LATEX code
\end{frame}
\end{verbatim}
\end{frame}
\end{document}
答案2
当我更改模式时,使用fragile
对我来说不起作用,因为当从调用相同内容文件的单独驱动程序文件生成幻灯片和讲义时,所以我想出了一个丑陋但有效的解决方法。让我举一个例子来扩展上面给出的例子。
创建幻灯片的驱动程序文件名为内容文件.beamer并具有以下内容:
\documentclass{beamer}
\input{contentfile}
讲义的驱动文件称为内容文件.文章并具有以下内容:
\documentclass{article}
\usepackage{beamerarticle, pgfpages}
\setjobnamebeamerversion{contentfile.beamer}
\input{contentfile}
文件名为内容文件有幻灯片的实际内容和评论:
\begin{document}
As seen in Figure~\ref{fig:slideWithVerbatim}
the small slide image appears on the article version only and
is ignored when compiled as a beamer document.
That is what makes it a handout.
By contrast this text is ignored when the document is
build with the beamer class.
\begin{figure}
\framebox{\includeslide[width=0.9\textwidth]{frameVerb}}
\label{fig:slideWithVerbatim}
\end{figure}
\mode<beamer>{
\begin{frame}[fragile]
\label{frameVerb} % this is the hook for the handout
\begin{verbatim}
\begin{frame}[<alignment>]
\frametitle{Frame Title Goes Here}
Frame body text and/or LATEX code
\end{frame}
\end{verbatim}
\end{frame}
}
\end{document}
工作流程是在内容文件.beamer首先生成幻灯片,然后运行它内容文件.文章生成讲义。
在我尝试在frame
环境中使用 verbatim 之前,这种方法对我来说效果很好。到目前为止,唯一的解决办法是:
用有问题的逐字文本注释掉环境中的行
\mode<beamer>{
和最后的行}
frame
内容文件文件。在内容文件.beamer文件来生成幻灯片。
取消注释步骤 1 中的行,这将启用将此代码与文章模式隔离的指令。
保存内容文件文件并在其上运行 pdfLaTeX内容文件.文章文件。这样可以生成具有正确幻灯片的讲义版本,并避免与逐字记录发生冲突。
虽然有点笨拙,但确实有效。如果有人能分享更优雅、更实用的解决方案,我将不胜感激。
答案3
我发帖太晚了。但一个简单的解决方案是“根本不使用框架”。Latex 会自动分配一个框架。
\begin{document}
\begin{verbatim}
\begin{frame}[<alignment>]
\frametitle{Frame Title Goes Here}
Frame body text and/or LATEX code
\end{frame}
\end{verbatim}
\end{document}
它会自动为内容分配一个框架,并且不会显示任何错误。