Parece haver um conflito quando estou usando o forest
pacote para construir árvores em uma beamer
apresentação. Sempre que uso a delay
opção (possivelmente apenas em combinação com content
, não usei de outra forma), aparece o seguinte erro:
! Número de parâmetro ilegal na definição de \beamer@doifinframe.
Apesar do erro, é gerado um pdf no Overleaf, fornecendo a árvore que eu queria, mas o TeXworks não é tão gentil comigo.
O que está causando o erro e como resolvê-lo?
MWE(deforest
documentação)
\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}
O que renderiza:
Responder1
De certa forma, esta é uma duplicata paraessa questãoe muitos outros. Como explica Martin Scharrer,
O ambiente de quadro é um pseudoambiente, ou seja, realmente
\frame{ .. }
disfarçado.
O que isso significa é que é preciso ter cuidado com o arquivo #
. forest
não é exceção a isso, então as opções são:
- use a
fragile
opção ou - dobre o
#
dobro, ou seja, quadruplique-o.
Isto leva 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}
Isso produz dois quadros idênticos:
Em particular, não há conflito genuíno entre forest
e beamer
, apenas as sutilezas usuais de definição e uso de macros com argumentos em frames.