用于制作图像幻灯片的Latex Beamer命令

用于制作图像幻灯片的Latex Beamer命令,latex,beamer,Latex,Beamer,我正在使用下面的beamer命令 \newcommand{\imgslide}[2]{ {\setbeamertemplate{background canvas}{ \includegraphics [width=\paperwidth,height=\paperheight]{images/#1}} \begin{frame}[plain] \txtonimg{#2} \end{

我正在使用下面的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}

在反复测试中,我觉得一切都很好。

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

尝试将
易碎
选项添加到定义中的框架中,如中所示

\begin{frame}[plain,fragile] \开始{frame}[普通,易碎]
我不确定取舍是什么,但这会导致
环境的行为更像正常环境。

Beamer使用了大量与
\catcode
相关的诡计,很可能正是这些诡计导致了您的问题。由于我无法复制你的错误,没有一个最小的例子,我只能推测(一般来说,在未来,如果你想要最有效的帮助,提供一个完整的最小的例子,展示问题-这样做,你通常会缩小自己的范围,但至少你可以确保其他人能够忠实地复制它)

尝试将
易碎
选项添加到定义中的框架中,如中所示

\begin{frame}[plain,fragile] \开始{frame}[普通,易碎]
我不确定取舍是什么,但这会导致
框架
环境的行为更像正常环境。

这听起来很愚蠢,但您是否尝试过使用
\newcommand
的不同空格?因为LaTeX想或不想在新的一行中使用某些内容,所以我反复遇到问题。我用您的命令和示例图像(如果您想在您的机器上试用,请在中)创建了一个最小的演示文稿,LaTeX毫无怨言地编译了它。您何时收到错误:当定义macreos时,或者何时调用它们?如果是后者,您将向他们传递哪些参数?您好,谢谢您的帮助。原来是别的错误,我现在改正了。我本来想删除这个问题,但因为我认为这个问题记录了创建图像幻灯片的一个很好的命令,所以我决定更改标题并保持原样。这听起来很愚蠢,但您是否尝试过使用不同的
\newcommand
空格?因为LaTeX想或不想在新的一行中使用某些内容,所以我反复遇到问题。我用您的命令和示例图像(如果您想在您的机器上试用,请在中)创建了一个最小的演示文稿,LaTeX毫无怨言地编译了它。您何时收到错误:当定义macreos时,或者何时调用它们?如果是后者,您将向他们传递哪些参数?您好,谢谢您的帮助。原来是别的错误,我现在改正了。我本来想删除这个问题,但因为我认为这个问题记录了一个创建图像幻灯片的好命令,所以我决定更改标题,保持原样。