1

我正在使用以下投影仪命令

\newcommand{\imgslide}[2]{
        {\setbeamertemplate{background canvas}{
        \includegraphics [width=\paperwidth,height=\paperheight]{images/#1}} 
            \begin{frame}[plain]
                \txtonimg{#2}
            \end{frame}
        }
}

而且我反复收到错误。

手动编写时相同的内容效果很好。

上述命令中包含的命令是:

\newcommand{\txtonimg}[1]{
\begin{center}
 \fcolorbox{red}{black}{
 \textcolor{white}
 {#1}
 }
 \end{center}
 }

错误是:

]
! Too many }'s.
\endframe ->\egroup 
            \begingroup \def \@currenvir {frame}
l.107       \end{frame}

经过反复测试,一切对我来说似乎都很好。

4

1 回答 1

1

Beamer 使用了大量与 -\catcode相关的技巧,这很可能是导致您的问题的原因。由于我无法在没有最小示例的情况下重现您的错误,因此我只能推测(通常在将来,如果您想要最有效的帮助,请提供一个完整的最小示例来展示问题 - 这样做您通常会缩小范围打倒自己,但至少你确保其他人可以忠实地复制它)。

尝试将fragile选项添加到定义中的框架,如

\begin{frame}[普通,脆弱]

我不确定权衡是什么,但这会导致frame环境表现得更像正常环境。

于 2010-04-15T07:46:00.990 回答