我正在使用以下beamer命令
\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}
在重复测试中,一切似乎都很好。
答案 0 :(得分:1)
Beamer使用了大量与\catcode
相关的诡计,而这可能就是导致你出现问题的原因。由于我无法在没有最小示例的情况下重现您的错误,我只能推测(通常在将来如果您想要最有效的帮助,提供一个显示问题的完整最小示例 - 在做所以你经常会自己缩小范围,但至少你要确保其他人可以忠实地再现它。
尝试将fragile
选项添加到定义中的框架中,例如
\begin{frame}[plain,fragile]
我不确定权衡取舍,但这会导致frame
环境更像普通环境。