Tikz Arrow 라이브러리: 짜증을 내지 않고 어떻게 arrows에서 arrows.meta로 마이그레이션할 수 있나요?

Tikz Arrow 라이브러리: 짜증을 내지 않고 어떻게 arrows에서 arrows.meta로 마이그레이션할 수 있나요?

라이브러리를 사용하는 일부 레거시 코드가 있고 라이브러리 arrows의 새 작업에서 해당 코드 중 일부를 재사용하고 싶습니다 arrows.meta(나중에 화살촉 조정 포함).

수정 등을 위해 모든 과정을 거치는 대신 >=triangle 45새 라이브러리에 전달할 새 스타일을 정의할 수 있을 거라 생각했습니다. 내 MWE는 다음과 같습니다.

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
% Failed attempt at providing legacy arrowheads:
\tikzset{triangle 45/.tip={Triangle[angle=45]}}
\begin{document}
% Legacy tikzpicture:
\begin{tikzpicture}[>=triangle 45]
\draw[->] (0,0) -> (2,0);  
\end{tikzpicture}
\end{document}

그러나 그것은 비참하게 실패합니다.

...
(d:/TeXlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.meta.code.tex
))
Runaway argument?
45 +0 +0 +0 \pgf@stop \expandafter \pgfarrowsaddtooptions \expandafter \ETC.
! File ended while scanning use of \pgfarrowsfourparameters@.
<inserted text>
                \par
<*> test.tex

.tip이 더 많은 매개변수를 기대하는 것 같지만 매뉴얼에서 이를 명확히 설명하는 내용을 찾을 수 없습니다.

내가 뭘 잘못하고 있거나 기대하고 있는 걸까요?

답변1

angle는 다음과 같은 형식으로 지정되어야 합니다 angle=<angle>:<dimension>. 여기서 PGF 매뉴얼에 따르면 다음과 같습니다.

이 키는길이그리고너비동시에 화살촉의. 길이는 의 코사인 <angle>이고 너비는 의 절반 사인의 두 배가 됩니다 <angle>.

따라서 위에 주어진 MWE에서 우리는

Triangle[angle=45:3pt]

선택적 인수를 지정하는 것도 가능합니다:

Triangle[angle=45:1pt 5]

매뉴얼에 따르면 :

<dimension>선택적 요소가 제공되면 사인 및 코사인이 계산되기 전에 선 너비의 특정 배수를 추가합니다 .

\documentclass[margin=5pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
% Failed attempt at providing legacy arrowheads:
\tikzset{triangle 45/.tip={Triangle[angle=45:3pt]}}
\begin{document}
% Legacy tikzpicture:
\begin{tikzpicture}[>=triangle 45]
\draw[->] (0,0) -> (2,0);  
\draw[-{Triangle[angle=45:1pt 5]}] (0,-.2) -> (2,-.2);
\end{tikzpicture}
\end{document}

여기에 이미지 설명을 입력하세요

키에는 a를 지정할 angle'필요가 없습니다 .<dimension>

화살표 폭을 <angle>/2화살표 길이의 탄젠트 배의 두 배로 설정합니다. 그러면 끝 부분의 열린 각도가 <angle>이고 지정된 길이가 변경되지 않은 화살표 끝이 생성됩니다.

모든 인용문은 PGF 매뉴얼 188페이지에서 인용되었습니다.

관련 정보