使用此 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有最后一个孩子的最后一个孩子。
我无法通过切换树来复制这个有趣的事情...如果我完全正确理解了这个问题的话。
顺便说一句,第一棵树的最末端有一个多余的右括号。