Конфликт между лучником и лесом

Конфликт между лучником и лесом

Кажется, возникает конфликт, когда я использую 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, или
  • удвоить #дважды, т. е. учетверить их.

Это ведет к

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

Это дает два идентичных кадра:

введите описание изображения здесь

forestВ частности, между и нет настоящего конфликта beamer, а есть лишь обычные тонкости определения и использования макросов с аргументами во фреймах.

Связанный контент