Personalizar || ponta de flecha em Tikz

Personalizar || ponta de flecha em Tikz

Estou muito feliz com a |<->|ponta da flecha no Tikz, mas gostaria de controlar o comprimento do arquivo |. Existe uma maneira simples de conseguir isso? Em tikz.code.tex, eu poderia encontrar

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

o que está de alguma forma relacionado à questão, mas parece que pgflibraryarrows.code.texnão há nada para agarrar. Seria bom se esse |comprimento pudesse ser um parâmetro.

Responder1

Uma resposta muito melhorada, graças às informações do percusse de que os parâmetros da ponta da seta podem ser definidos (e lidos) usando \pgfsetarrowoption(e \pgfgetarrowoptions).

A declaração abaixo foi ajustada da pgfdeclaração de |.

\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}

informação relacionada