Tengo un código heredado que usa la arrows
biblioteca y quiero reutilizar parte de ese código en un nuevo trabajo con la arrows.meta
biblioteca (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 angle
clave 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}
La clave angle'
no requiere que <dimension>
se especifique:
Establece el ancho de la flecha al doble de la tangente de
<angle>/2
multiplicar 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.