Bibliotecas Tikz Arrow: ¿Cómo puedo migrar de flechas a flechas.meta sin molestarme?

Bibliotecas Tikz Arrow: ¿Cómo puedo migrar de flechas a flechas.meta sin molestarme?

Tengo un código heredado que usa la arrowsbiblioteca y quiero reutilizar parte de ese código en un nuevo trabajo con la arrows.metabiblioteca (incluido, más adelante, ajustar las puntas de las flechas).

En lugar de revisar todo para arreglarlo >=triangle 45(etc.), pensé que podría definir un nuevo estilo para pasar a la nueva biblioteca. Aquí está mi 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}

Sin embargo, eso falla estrepitosamente:

...
(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

Parece que .tip espera más parámetros, pero no pude encontrar nada en el manual para aclarar esto.

¿Qué estoy haciendo o esperando mal?

Respuesta1

La angleclave debe especificarse en forma de angle=<angle>:<dimension>, donde, según el manual de PGF:

Esta clave establece ellongitudy elanchode la punta de una flecha al mismo tiempo. El largo será el coseno de <angle>, mientras que el ancho será el doble del seno de la mitad <angle>.

Entonces, en el MWE dado anteriormente, tendremos

Triangle[angle=45:3pt]

También es posible especificar un argumento opcional:

Triangle[angle=45:1pt 5]

que según el manual:

si se dan los factores opcionales, suman un cierto múltiplo del ancho de la línea <dimension>antes de calcular el seno y los cosenos.

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

ingrese la descripción de la imagen aquí

La clave angle'no requiere que <dimension>se especifique:

Establece el ancho de la flecha al doble de la tangente de <angle>/2multiplicar por la longitud de la flecha. Esto da como resultado una punta de flecha con un ángulo de apertura de <angle>en su punta y con la longitud especificada sin cambios.

Todas las citas son del manual de PGF, página 188.

información relacionada