我正在从 R tikzDevice 库生成 tikz 图像,该库生成有效的 tikz 图。
但是,在某些情况下,生成的路径太长(超过 100 个节点)。然后 Tikz 会抱怨:"Giving up on this path. Did you forget a semicolon?"
我已经将问题追踪到tikz.code.tex
2570 行左右
\def\tikz@skip#1{\tikz@scan@next@command#1}%
\def\tikz@expand{%
\advance\tikz@expandcount by -1%
\ifnum\tikz@expandcount<0\relax%
\tikzerror{Giving up on this path. Did you forget a semicolon?}%
\let\pgfutil@next=\tikz@finish%
\else%
\let\pgfutil@next=\tikz@@expand
\fi%
\pgfutil@next}%
\def\tikz@@expand{%
\expandafter\tikz@scan@next@command\pgf@let@token}%
计数器expandcount
隐式设置为 100。
\def\tikz@@command@path{%
...
\tikz@expandcount=100\relax%
...
}%
有什么方法可以将计数器值改为更高的值(我对 TeX 不太了解)?
答案1
将以下几行添加到您的前言中,加载之后的某个地方tikz
(如果有疑问,请在之前添加几行\begin{document}
)。
\usepackage{xpatch}
\makeatletter
\xpatchcmd\tikz@@command@path{\tikz@expandcount=100\relax}{\tikz@expandcount=1000\relax}{}{}% replace 1000 by whatever number suffices
\makeatother