Com este documento 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}
Recebo este erro ao construir:
! Package forest Error: nodewalk stepped to the invalid node
(forest) nodewalk stack: ",root',for nodewalk,tree,last".
Surpreendentemente, o erro acontece apenas na segunda árvore, não na primeira, e acontece mesmo quando uso exatamente o mesmo código TikZ que funciona na primeira. Usando floresta do pacote TeXLive (no OpenSUSE)texlive-forest-2020.176.2.1.5svn44797-42.2.noarch
O que há de errado com meu documento?
Responder1
O problema está (!ll)
na fit
segunda árvore. É aplicado no C1 superior, que tem apenas filhos mas não tem netos, mas nodewalk !ll
diz “vai para o último filho do último filho”. Alterando isso para (!l)
, o documento é compilado. (Obviamente, (!ll)
funciona na primeira árvore porque o intermediário C2temo último filho do último filho.)
Eu não poderia replicar a coisa engraçada de trocar as árvores... se é que entendi o problema corretamente.
Aliás, há um colchete direito supérfluo bem no final da primeira árvore.