Ich habe Legacy-Code, der die arrows
Bibliothek verwendet, und ich möchte einen Teil dieses Codes in neuen Arbeiten mit der arrows.meta
Bibliothek wiederverwenden (einschließlich der späteren Optimierung der Pfeilspitzen).
Anstatt alles durchzugehen, was repariert werden muss >=triangle 45
(usw.), dachte ich, ich könnte vielleicht einfach einen neuen Stil definieren, der an die neue Bibliothek weitergegeben wird. Hier ist mein 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}
Das schlägt jedoch kläglich fehl:
...
(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
Es sieht so aus, als ob .tip weitere Parameter erwartet, aber ich konnte im Handbuch nichts finden, was dies erklärt.
Was mache oder erwarte ich falsch?
Antwort1
Der angle
Schlüssel sollte in der Form angegeben werden angle=<angle>:<dimension>
, wobei gemäß PGF-Handbuch Folgendes gilt:
Mit dieser Taste wird dieLängeund dasBreiteeiner Pfeilspitze gleichzeitig. Die Länge ist der Kosinus von
<angle>
, während die Breite dem doppelten Sinus der Hälfte von entspricht<angle>
.
Im oben angegebenen MWE haben wir also
Triangle[angle=45:3pt]
Es ist auch möglich, ein optionales Argument anzugeben:
Triangle[angle=45:1pt 5]
was laut Handbuch:
Wenn optionale Faktoren angegeben werden, addieren sie ein bestimmtes Vielfaches der Linienbreite hinzu,
<dimension>
bevor Sinus und Cosinus berechnet werden.
\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}
Für den Schlüssel angle'
ist keine <dimension>
Angabe eines erforderlich:
Legt die Breite des Pfeils auf den doppelten Tangens von
<angle>/2
mal der Pfeillänge fest. Dadurch entsteht eine Pfeilspitze mit einem Öffnungswinkel von<angle>
an der Spitze und unveränderter angegebener Länge.
Alle Zitate stammen aus dem PGF-Handbuch, Seite 188.