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
,只是在框架中定義和使用帶有參數的巨集的常見微妙之處。