光束与森林之间的冲突

光束与森林之间的冲突

forest当我使用该包在演示文稿中构建树时,似乎存在冲突beamer。每当我使用该delay选项时(可能仅与 结合使用content,否则没有使用它),都会出现以下错误:

! \beamer@doifinframe 定义中的参数数量非法。

尽管出现错误,但 Overleaf 上还是生成了一个 pdf,提供了我想要的树,但 TeXworks 对我来说并不那么好。

什么原因导致了错误以及如何解决?

平均能量损失(来自forest文档

\documentclass{beamer}

\usepackage{forest}

\begin{document}

\begin{frame}

        \begin{forest}  
            [roman, delay={for children={content=\romannumeral##1}}    
            [1][2][3][4]  
        ]\end{forest}

\end{frame}

\end{document}

其渲染效果为:

结果

答案1

从某种程度上来说,这是这个问题等等。正如 Martin Scharrer 解释的那样,

框架环境是一个伪环境,即实际上是\frame{ .. }伪装的。

这意味着我们必须小心#forest也不例外,因此选项如下:

  • 使用该fragile选项,或
  • #其加倍,即增加四倍。

这导致

\documentclass{beamer}

\usepackage{forest}

\begin{document}

\begin{frame}[fragile]

        \begin{forest}  
            [roman, delay={for children={content=\romannumeral#1}}    
            [1][2][3][4]  
        ]\end{forest}

\end{frame}


\begin{frame}

        \begin{forest}  
            [roman, delay={for children={content=\romannumeral####1}}    
            [1][2][3][4]  
        ]\end{forest}

\end{frame}
\end{document}

这产生两个相同的帧:

在此处输入图片描述

forest特别是,和之间没有真正的冲突beamer,只是在框架中定义和使用带有参数的宏的通常微妙之处。

相关内容