在 beamer 框架内使用 \newcommand 时出错

在 beamer 框架内使用 \newcommand 时出错

由于某种原因我的beamer\newcommand当演示文稿被放置在环境中时,它不会编译frame。这是一个最小的工作示例:

\documentclass{beamer}

\begin{document}

\begin{frame}{First slide}
  \newcommand{\asdf}[1]{What is the #1 problem?}
\end{frame}

\end{document}

我收到以下错误:

\test 定义中的参数数量非法。

请注意,\asdf定义宏后它甚至不会被使用。奇怪的是,当我将定义放在环境之外时frame,一切都正常。这种奇怪行为的原因是什么?

答案1

添加fragile应该可以解决问题:

\documentclass{beamer}

\begin{document}

\begin{frame}[fragile]{First slide}
  \newcommand{\asdf}[1]{What is the #1 problem?}
\end{frame}

\end{document}

相关内容