Conflicto entre proyector y bosque

Conflicto entre proyector y bosque

Parece haber un conflicto cuando uso el forestpaquete para crear árboles en una beamerpresentación. Siempre que uso la delayopción (posiblemente solo en combinación con content, de lo contrario no la he usado), aparece el siguiente error:

! Número de parámetro ilegal en la definición de \beamer@doifinframe.

A pesar del error, se genera un pdf al dorso que proporciona el árbol que quería, pero TeXworks no es tan amable conmigo.

¿A qué se debe el error y cómo solucionarlo?

MWE(desde elforestdocumentación)

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

Lo que representa:

resultado

Respuesta1

En cierto modo, esto es un duplicado deesta preguntay muchos otros. Como explica Martin Scharrer,

El entorno del marco es un pseudoentorno, es decir, en realidad \frame{ .. }disfrazado.

Lo que eso significa es que hay que tener cuidado con el #. forestno es una excepción a esto, por lo que las opciones son:

  • utilizar la fragileopción, o
  • duplicarlos #dos veces, es decir, cuadriplicarlos.

Esto lleva a

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

Esto produce dos cuadros idénticos:

ingrese la descripción de la imagen aquí

En particular, no existe ningún conflicto genuino entre foresty beamer, sólo las sutilezas habituales de definir y usar macros con argumentos en marcos.

información relacionada