我不确定我是否对显而易见的事情视而不见,或者这是一个错误,或者可能是故意的贬低。
以下是 MWE:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{pgfpicture}{0cm}{0cm}{16cm}{9cm}
\pgfnodebox{a}[stroke]{\pgfxy(10,8)}{A}{3pt}{3pt}
\pgfnodebox{b}[stroke]{\pgfxy(10,6.5)}{B}{3pt}{3pt}
\pgfsetendarrow{\pgfarrowtriangle{4pt}}
\pgfnodeconnline{a}{b}
\end{pgfpicture}
\end{document}
据我所知,几周前,这会产生两个包含“A”和“B”的框,并有一个向下的垂直箭头将它们连接起来。但是,这是我现在从 MWE 获得的输出:
确实,几周前我用来制作 PDF 的代码现在生成了使用此方法制作的无箭头版本的图表。此外,我发布的代码这个答案现在生成其中包含的图表的无箭头版本。
我是不是遗漏了什么?或者有什么变化我没注意到?
请注意,我知道使用tikz
语法 [未经测试] 可能可以正常工作,但我有许多最初使用pgf
语法准备的图表,如果可能的话,我更愿意坚持使用语法。因此,如果\pgfsetendarrow
弃用了语法,我更愿意尽可能使用可与我现有图表配合使用的嵌入式替代品。
请注意,我在编译时没有收到有关此问题的错误或警告。没有什么可说的,该命令未定义或类似。它似乎只是无效的。
答案1
在 TikZ 2.10 手册中,第 616 页记录之后
\pgfsetarrowsend{⟨start arrow kind⟩}
据称:
警告:如果兼容模式处于活动状态(这是默认设置),则还存在称为
\pgfsetstartarrow
和的 旧命令\pgfsetendarrow
,它们与元箭头管理不兼容。
TikZ 3.0.0 手册不再引用此内容;它仅记录:
\pgfsetarrowsend{⟨end arrow tip specification⟩}
在第 1017 页。我认为此兼容模式现在默认处于不活动状态。
因此,如果您更新了软件包,您可能需要切换到新版本。事实上:
\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{pgfpicture}{0cm}{0cm}{16cm}{9cm}
\pgfnodebox{a}[stroke]{\pgfxy(10,8)}{A}{3pt}{3pt}
\pgfnodebox{b}[stroke]{\pgfxy(10,6.5)}{B}{3pt}{3pt}
\pgfsetarrowsend{Triangle[scale=1.5pt]} % with arrows.meta or
% \pgfsetarrowsend{stealth}
\pgfnodeconnline{a}{b}
\end{pgfpicture}
\end{document}
运行正常。
结果: