此维度过大错误的原因是什么?TL2019 会出现此错误,但 TL2018 不会出现此错误,且 forest.sty 相同

此维度过大错误的原因是什么?TL2019 会出现此错误,但 TL2018 不会出现此错误,且 forest.sty 相同

MNWE:

\documentclass{article}
\usepackage{forest}

\begin{document}
\begin{forest}
  for tree={circle,draw}
  [1[2[3][4]][5]]
\end{forest}
\end{document}

使用 Texlive 2019 时出现以下错误:

! Dimension too large.
<recently read> \pgf@x 

l.28 \end{forest}

该代码可与 Texlive 2018 完美编译。(不确定我是否获得了 TL2018 的最终更新)。TL2018forest.sty和 TL2019 中的文件相同。

什么更改导致了错误?这是错误吗?如果是,在什么地方?

答案1

我相信,最终,错误发生的原因与nice empty nodes风格相同:\pgfintersectionofpaths相同,当试图相交的线几乎平行时会产生错误。参见原始问题关于这个问题,错误报告在 PGF 的 GitHub repo 中。

在这种情况下,错误的触发器似乎是 PGF 的改进版本(在提交 65b8261c 中引入,在 PGF 3.1.2 中发布),它是从中的\pgfpointnormalisedshape 声明中调用的。这是有道理的:更精确的函数会产生更多接近平行的线,从而使相交更频繁地失败。circlepgfmoduleshapes.code.tex

(这个错误报告\pgfintersectionofpaths已经开放了四年,但至今仍未得到解决。我想这有充分的理由,因为这似乎是一个非常难以修复的问题,肯定超出了我的能力范围。我希望这个错误的新“应用”能够鼓励人们对其进行研究。我正在向错误报告中添加此答案的链接。)

相关内容