在 PGF 路径中间创建 PGF 节点

在 PGF 路径中间创建 PGF 节点

考虑以下 LaTeX 手稿,其中的 PGF 路径由两个连续的对角线段组成,并被矩形文本节点截取。

\documentclass{article}
  \usepackage{pgf}
\begin{document}
    \begin{pgfpicture}
      \pgfpathmoveto{\pgfpoint{-1cm}{-1cm}}
      \pgfpathlineto{\pgfpointorigin}
      \pgfnode{rectangle}{center}{Hello world}{}{\pgfusepath{stroke}}
      \pgfpathlineto{\pgfpoint{1cm}{1cm}}
      \pgfusepath{stroke}
    \end{pgfpicture}
\end{document}

生成的图像是

中风

为什么第二条线段没有画出来?

如果我现在将节点的stroke指令更改为fill,则会出现以下图像:

充满

第一线段去哪儿了?

答案1

内部有点复杂,但由于节点正在使用\pgfusepath收集到的所有软路径,直到该点被使用和删除。

由于下一条路径的开头没有 moveto 操作,因此不会绘制它。例如检查

\begin{pgfpicture}
%\pgfpathmoveto{\pgfpointorigin}
  \pgfpathlineto{\pgfpoint{1cm}{1cm}}
  \pgfusepath{stroke}
\end{pgfpicture}

如果留下评论则不会产生任何内容。

相关内容