С помощью этого документа 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имеет(последний ребенок последнего ребенка.)
Я не смог повторить забавную ситуацию с заменой деревьев... если я вообще правильно понял суть проблемы.
Кстати, в самом конце первого дерева есть лишняя правая скобка.