我在使用 beamerarticle 包时遇到了以下问题。如果我使用 \textit{} 之类的命令,我会收到以下错误消息:
./test.tex:7: Argument of \@sect has an extra }.
<inserted text>
\par Runaway argument?
{\normalfont \Large \bfseries }{\beamer@sortzeroread {\beamerx@\textit \ETC.
./test.tex:7: Paragraph ended before \@sect was complete.
<to be read again>
\par
l.7 \section{Test \textit{test} test}
?
l.7 \section{Test \textit{test} test}
?
这是一个简单的例子:
\documentclass{article}
\usepackage{beamerarticle}
\begin{document}
\section{Test \textit{test} test}
\end{document}
如果没有该包或没有 \textit{},该示例也可以正常工作。此外,如果我在部分中使用可选参数,它也可以正常工作,但前提是它包含任何格式化命令。也就是说,
\section[\textit{test}]{Test \textit{test} test}
有效,同时
\section[test]{Test \textit{test} test}
没有。
你知道这里发生了什么事或如何解决吗?
答案1
虽然该命令通常很强大并且在移动参数(即兄弟的参数以及其他一些参数)\textit
时不需要保护,但使用该包它就不再强大了。\section
\caption
beamerarticle
答案是,有了这个包
\section{Test \protect\textit{test} test}
或者,如果您在可选参数中使用该命令,
\section[Test \protect\textit{test}]{Test \textit{test} test}
(如果缺少可选参数,则移动参数是必需的,否则为可选参数)。
此外,其他字体更改命令也不再强大。
注意:我倾向于认为这是一个错误beamerarticle
(或beamer
一般错误),因为用户手册中没有提到它,而 LaTeX 用户指南则说\textit
在移动参数时这是可以的。