考虑以下 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}
如果留下评论则不会产生任何内容。