有了這個 LaTeX 文檔:
\documentclass[czech]{article}
\usepackage{fontspec}
\usepackage{unicode-math}
\setmainfont[Mapping=tex-text]{DejaVu Serif}
\setsansfont[Mapping=tex-text]{DejaVu Sans}
\setmonofont{DejaVu Sans Mono}
\usepackage{geometry}
\geometry{verbose}
\usepackage{fancybox}
\usepackage{calc}
\usepackage{covington}
\usepackage{forest}
\usepackage{subscript}
\makeatletter
% Load forest linguistics library, if available
\@ifpackagelater{forest}{2016/02/20}{%
\useforestlibrary*{linguistics}
}{}
\makeatother
\usepackage{polyglossia}
\setdefaultlanguage{czech}
\begin{document}
\begin{covexamples}
\item
\begin{forest}
[C2 [√ [hez]][C2 [C2 ][C1[C1][Q] ] ]{\node [draw,fit=()(!1)(!ll),rounded corners] {};\node at (current bounding box.south) [below=1ex]{\emph{k}};} ]]
\end{forest}
\item
\begin{forest}
[ C2 [C1 [A][C1]]{\node [draw,fit=()(!1)(!ll),rounded corners] {};\node at (current bounding box.south) [below=1ex]{\emph{slab}};} [C2 [\textit{š}]]]
\end{forest}
\end{covexamples}
\end{document}
建置時出現此錯誤:
! Package forest Error: nodewalk stepped to the invalid node
(forest) nodewalk stack: ",root',for nodewalk,tree,last".
令人驚訝的是,錯誤只發生在第二棵樹上,而不是第一棵樹上,即使我使用與第一棵樹完全相同的 TikZ 程式碼,也會發生這種情況。使用 TeXLive 套件中的森林(在 OpenSUSE 上)texlive-forest-2020.176.2.1.5svn44797-42.2.noarch
我的文檔有問題嗎?
答案1
問題出在第二棵樹(!ll)
。fit
它應用於上層C1,它只有孩子而沒有孫子,但nodewalk!ll
說「轉到最後一個孩子的最後一個孩子」。將其更改為(!l)
,文檔即可編譯。 (明顯地,(!ll)
在第一棵樹中有效,因為中間 C2有最後一個孩子的最後一個孩子。
如果我完全正確地理解了這個問題,我就無法複製切換樹的有趣事情。
順便說一下,第一棵樹的最末端有一個多餘的右括號。