ビーマーと森の対立

ビーマーと森の対立

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

ある意味、これはこの質問他にもたくさんあります。マーティン・シャラーは次のように説明しています。

フレーム環境は疑似環境、つまり実際には\frame{ .. }偽装された環境です。

つまり、 には注意が必要です#forestも例外ではありません。オプションは次のようになります。

  • オプションを使用するfragileか、
  • 2 倍を#2 倍、つまり 4 倍にします。

これはにつながります

\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}

これにより、2 つの同一のフレームが生成されます。

ここに画像の説明を入力してください

特に、forestとの間には実際の競合はなくbeamer、フレーム内で引数を持つマクロを定義して使用するという通常の微妙な違いがあるだけです。

関連情報