在 Tikz 中自定义 || 箭头

在 Tikz 中自定义 || 箭头

我对 Tikz 中的箭头很满意,|<->|但我想控制 的长度|。有没有简单的方法可以实现这一点?在 中tikz.code.tex,我可以找到

\pgfarrowsdeclarecombine*{tikz@|<@#2}{tikz@>|@#2}{#1}{#2}{|}{|}

这在某种程度上与问题有关,但看起来没有什么可抓取的。如果这个长度可以作为参数pgflibraryarrows.code.tex就好了。|

答案1

由于 percusse 提供的信息,可以使用\pgfsetarrowoption(和\pgfgetarrowoptions) 设置(和读取)箭头参数,因此答案得到了很大改进。

下面的声明根据pgf的声明调整而来|

\documentclass{article}
\usepackage{tikz}

\pgfarrowsdeclare{var|}{|var}
{
  \pgfarrowsleftextend{+-0.25\pgflinewidth}
  \pgfarrowsrightextend{+.75\pgflinewidth}
}
{
  \pgfsetdash{}{+0pt}
  \pgfsetrectcap
  \pgfpathmoveto{\pgfqpoint{0.25\pgflinewidth}{-\pgfgetarrowoptions{var|}}}
  \pgfpathlineto{\pgfqpoint{0.25\pgflinewidth}{\pgfgetarrowoptions{var|}}}
  \pgfusepathqstroke
}

\pgfarrowsdeclarecombine*{var|<}{>|var}{to}{to}{var|}{|var}
\begin{document}
\pgfsetarrowoptions{var|}{10pt}
\tikz{
  \draw[var|-|var] (0,0)--(1,1);
  \draw[var|<->|var] (1,0)--(2,1);
}
\end{document}

相关内容