![是否可以访问 \pgfarrowlength 的缓存值,而不是为了除了在 PGF/TikZ 中重复使用箭头之外的目的而重新计算它?](https://linux22.com/image/471208/%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E8%AE%BF%E9%97%AE%20%5Cpgfarrowlength%20%E7%9A%84%E7%BC%93%E5%AD%98%E5%80%BC%EF%BC%8C%E8%80%8C%E4%B8%8D%E6%98%AF%E4%B8%BA%E4%BA%86%E9%99%A4%E4%BA%86%E5%9C%A8%20PGF%2FTikZ%20%E4%B8%AD%E9%87%8D%E5%A4%8D%E4%BD%BF%E7%94%A8%E7%AE%AD%E5%A4%B4%E4%B9%8B%E5%A4%96%E7%9A%84%E7%9B%AE%E7%9A%84%E8%80%8C%E9%87%8D%E6%96%B0%E8%AE%A1%E7%AE%97%E5%AE%83%EF%BC%9F.png)
是否可以访问缓存的值,\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
这是缓存以供以后使用的参数之一,因此如果使用相同的设置重复使用相同的提示,则无需重新计算。所以前列腺素已经保存了我需要的尺寸值,因此无需重新计算。
是否可以直接访问该值,以便我也可以避免重新计算它?