라이브러리를 사용하는 일부 레거시 코드가 있고 라이브러리 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페이지에서 인용되었습니다.