包含 TikZ 图的森林破坏了构建(nodewalk 走到了无效节点)

包含 TikZ 图的森林破坏了构建(nodewalk 走到了无效节点)

使用此 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最后一个孩子的最后一个孩子。

我无法通过切换树来复制这个有趣的事情...如果我完全正确理解了这个问题的话。

顺便说一句,第一棵树的最末端有一个多余的右括号。

相关内容