
Escrevo um documento em várias máquinas. Um deles tem o Ubuntu 14.04 instalado com uma espécie de instalação desatualizada do TexLive. Os demais possuem Ubuntu 14.10 e Arch Linux.
No meu documento eu uso osetas.metabiblioteca. Agora estou preso com um documento que não compila em uma das minhas máquinas (a 14.04).
Existe uma maneira de fazer o látex ignorar todas as definições problemáticas. O que eu gostaria de ter é algo (talvez algumas linhas de código para comentar) para ativar e desativar os recursos mais recentes do TikZ sem alterar os arquivos de origem das imagens reais? No momento são 9 imagens usando as dicas arrows.meta e esse número pode crescer. Portanto, alterar a fonte da imagem não é o caminho 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}
Responder1
A melhor solução é realmente atualizar a distribuição do TeX. Isso evitará dores de cabeça no futuro, e a nova arrows.meta
biblioteca oferece muitos recursos interessantes.
Mas, se a atualização não for uma opção: O código condicional abaixo verificará se a versão pgf
carregada é 3.0.0 ou posterior (datada de ou após 18/12/2013). Se sim, carregamos arrows.meta
e -Stealth
podemos usar normalmente. Se não, o alias da ponta da seta chama Stealth
a dica antiga stealth
fornecida pela biblioteca arrows
.
O resultado final disso é que Stealth
será usado se o TikZ/PGF 3.0.0 estiver disponível, mas retornará stealth
se não estiver disponível, sem quaisquer modificações no código do desenho.
Limitações:modificadores de estilo de seta ou outras opções (coisas como -{Stealth[width=6pt]}
, por exemplo) introduzidas arrows.meta
não serão tratadas com sucesso 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}