是否可以访问 \pgfarrowlength 的缓存值,而不是为了除了在 PGF/TikZ 中重复使用箭头之外的目的而重新计算它?

是否可以访问 \pgfarrowlength 的缓存值,而不是为了除了在 PGF/TikZ 中重复使用箭头之外的目的而重新计算它?

是否可以访问缓存的值,\pgfarrowlength而不是为了在 PGF/Ti 中重复使用箭头以外的目的而重新计算它Z?


我正在尝试计算 Ti 的宽度(即长度)Z 线减去任何箭头尖端和/或线帽所需的宽度。我知道线的高度为\prawfht,深度为 0pt。总线宽为\prawfwd

理想情况下,我能够完全抽象地确定这一点,即无需了解任何其他信息。但是,如果有必要,我可以坚持了解规范,例如-TriangularCap或其他。

当我有类似-{TriangularCap[length=#1]}或 `-{TriangularCap[length=10mm]} 的内容时,这显然很简单,但是当使用默认设置时,事情就变得复杂了。因此,我似乎需要类似以下内容:

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\newdimen \prawfwd
\newdimen \prawfht
\newdimen \prawfwdadj
\prawfwd=120mm
\prawfwdadj=120mm
\prawfht=10pt
\begin{document}
\begin{tikzpicture}
  \draw [help lines] (0,-3) grid (12,3);
  \coordinate (o) at (0,0);
  \coordinate (e) at (\prawfwd,0pt);
  \begin{scope}[line width=\prawfht]
    \pgfmathsetlength \prawfwdadj {\prawfwd-(3.99365pt+5.391538\prawfht)}
    \draw [Circle-Computer Modern Rightarrow] ([yshift=20mm]o) -- ([yshift=20mm]e);
    \draw  (2.39365pt+3.191538\prawfht,10mm) -- ++(\prawfwdadj,0pt);
    \pgfmathsetlength \prawfwdadj {\prawfwd-(3pt+5.5\prawfht)}
    \draw [Bar-Latex] (o) -- (e);
    \draw  (\prawfht,-10mm) -- ++(\prawfwdadj,0pt);
  \end{scope}
\end{tikzpicture}
\end{document}

线和箭头线

这会产生正确的结果,但取决于查找每个箭头尖的默认设置、其本身是基准尺寸和的倍数的总和\prawfht,并在双尖线的情况下将它们组合起来。

如果一行使用double,事情会变得更加有趣。

我知道 pgf 刚刚计算了箭头尖端的长度以便绘制它们。\pgfarrowlength我相信,在设置准备绘制的尖端的代码中,它被设置为。显然,这是高度局部的。例如,对于不对称双尖线,当在线的开头绘制尖端时它有一个值,而当在线的结尾绘制尖端时它有一个值。

但我也知道\the\pgfarrowlength这是缓存以供以后使用的参数之一,因此如果使用相同的设置重复使用相同的提示,则无需重新计算。所以前列腺素已经保存了我需要的尺寸值,因此无需重新计算。

是否可以直接访问该值,以便我也可以避免重新计算它?

相关内容