사용자 정의 || 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}

관련 정보