この 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".
驚いたことに、エラーは最初のツリーではなく 2 番目のツリーでのみ発生し、最初のツリーで動作するのとまったく同じ TikZ コードを使用した場合でも発生します。TeXLive パッケージの forest を使用する (OpenSUSE 上)texlive-forest-2020.176.2.1.5svn44797-42.2.noarch
私の文書の何が問題なのでしょうか?
答え1
問題は、 2 番目のツリー(!ll)
の にありますfit
。これは、子のみを持ち孫を持たない上位の C1 に適用されますが、nodewalk は「最後の子の最後の子に移動」と指示します。これを に変更すると、ドキュメントはコンパイルされます。(明らかに、中間の C2 があるため、最初のツリーでは が機能します!ll
。(!l)
(!ll)
もっている最後の子の最後の子。
ツリーを切り替えると、おかしな現象が再現されることはありません...問題を正しく理解していたとしても。
ちなみに、最初のツリーの最後には余分な右括弧があります。