Parece haber un conflicto cuando uso el forest
paquete para crear árboles en una beamer
presentación. Siempre que uso la delay
opció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 elforest
documentació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:
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 #
. forest
no es una excepción a esto, por lo que las opciones son:
- utilizar la
fragile
opció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:
En particular, no existe ningún conflicto genuino entre forest
y beamer
, sólo las sutilezas habituales de definir y usar macros con argumentos en marcos.