
Escribo un documento en varias máquinas. Uno de ellos tiene instalado Ubuntu 14.04 con una especie de instalación anticuada de TexLive. Los demás tienen Ubuntu 14.10 y Arch Linux.
En mi documento utilizo elflechas.metabiblioteca. Ahora estoy atascado con un documento que no se compila en una de mis máquinas (la 14.04).
¿Hay alguna manera de hacer que el látex ignore todas las definiciones problemáticas? Lo que me gustaría tener es algo (tal vez unas pocas líneas de código para comentar) para habilitar y deshabilitar las funciones más nuevas de TikZ sin cambiar los archivos fuente de las imágenes reales. En este momento son 9 imágenes que utilizan los metaconsejos de flechas.y este número podría aumentar. Entonces, cambiar la fuente de la imagen no es el camino a seguir.
\documentclass[tikz]{standalone}
\usepackage[T1]{fontenc} % font encoding
\usepackage[utf8]{inputenc} % input encoding
\usepackage{lmodern} % fonts
\usepackage{tikz,pgfplots} % provides TikZ
\usetikzlibrary{arrows}
%\usetikzlibrary{arrows.meta}
%\newcommand{\Stealth}{\stealth} % does not work
\begin{document}
\begin{tikzpicture}
\draw[-Stealth] (0,0) to (1,1);
\end{tikzpicture}
\end{document}
Respuesta1
Realmente la mejor solución es actualizar la distribución TeX. Le ahorrará dolores de cabeza en el futuro y la nueva arrows.meta
biblioteca ofrece muchas características interesantes.
Pero, si la actualización no es una opción: el código condicional a continuación verificará si la versión pgf
cargada es 3.0.0 o posterior (con fecha del 18/12/2013 o después). En caso afirmativo, lo cargamos arrows.meta
y -Stealth
podemos usarlo como de costumbre. Si no, asigne un alias a la punta de flecha llamada Stealth
a la stealth
sugerencia anterior proporcionada por la biblioteca arrows
.
El resultado final de esto es que Stealth
se usará si TikZ/PGF 3.0.0 está disponible, pero se recurrirá a él stealth
si no está disponible, sin ninguna modificación en el código de dibujo.
Limitaciones:Los modificadores de estilo de flecha u otras opciones (cosas como -{Stealth[width=6pt]}
, por ejemplo) introducidas con arrows.meta
no serán manejadas exitosamente por este código.
\documentclass[tikz]{standalone}
\usepackage[T1]{fontenc} % font encoding
\usepackage[utf8]{inputenc} % input encoding
\usepackage{lmodern} % fonts
\usepackage{tikz} % provides TikZ
\usetikzlibrary{arrows}
\makeatletter
\@ifpackagelater{pgf}{2013/12/18}{
\usetikzlibrary{arrows.meta}
}{
\pgfarrowsdeclarealias{Stealth}{Stealth}{stealth}{stealth}
}
\makeatother
\begin{document}
\begin{tikzpicture}
\draw[-Stealth] (0,0) to (1,1);
\end{tikzpicture}
\end{document}