Es scheint einen Konflikt zu geben, wenn ich das forest
Paket verwende, um Bäume in einer beamer
Präsentation zu erstellen. Immer wenn ich die delay
Option verwende (möglicherweise nur in Kombination mit content
, habe sie sonst nicht verwendet), erscheint der folgende Fehler:
! Ungültige Parameternummer in der Definition von \beamer@doifinframe.
Trotz des Fehlers wird auf Overleaf ein PDF generiert, das den gewünschten Baum bereitstellt, aber TeXworks ist für mich nicht so nett.
Was verursacht den Fehler und wie kann er behoben werden?
MWE(von demforest
Dokumentation)
\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}
Das Ergebnis:
Antwort1
In gewisser Weise ist dies ein Duplikat vondiese Frageund viele andere. Wie Martin Scharrer erklärt,
Bei der Frame-Umgebung handelt es sich um eine Pseudoumgebung, also
\frame{ .. }
eine getarnte Umgebung.
Das bedeutet, dass man mit dem vorsichtig sein muss #
. forest
ist hier keine Ausnahme, daher gibt es folgende Optionen:
- Nutzen Sie die
fragile
Option oder - verdoppeln Sie das
#
Zweifache, also vervierfachen Sie es.
Dies führt zu
\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}
Das Ergebnis sind zwei identische Frames:
Insbesondere gibt es keinen echten Konflikt zwischen forest
und beamer
, sondern nur die üblichen Feinheiten beim Definieren und Verwenden von Makros mit Argumenten in Frames.