Tikz で || 矢印をカスタマイズする

Tikz で || 矢印をカスタマイズする

Tikzの矢印には非常に満足しています|<->|が、 の長さを制御したいです|。これを実現する簡単な方法はありますか? ではtikz.code.tex

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

これは質問と何らかの関連がありますが、取得するものが何もないように見えます。この長さがパラメータになるpgflibraryarrows.code.texことができれば良いのですが。|

答え1

\pgfsetarrowoption矢印パラメータは(および)を使用して設定 (および読み取り) できるという percusse の情報のおかげで、回答が大幅に改善されました\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}

関連情報