Estou tentando o próximo código:
\documentclass[pdftex,spanish]{article}
\usepackage{babel}
\usepackage{tikz}
\begin{document}
Simple arrow:
\begin{tikzpicture}
\draw[->] (-1.5,0) -- (1.5,0);
\end{tikzpicture}
\end{document}
mas não funciona. Ele lança os erros:
! Argument of \language@active@arg> has an extra }.
! Paragraph ended before \language@active@arg> was complete.<to be read again>\par \draw[->]
O que posso fazer se funcionar bem sem o pacote babel?
Responder1
O problema é que o spanish
módulo de babel
marcas >
e <
caracteres ativos para sua gestão especial de cotações em espanhol.
Atualizar:
Com o PGF/TikZ versão 3.0.0 existe uma babel
biblioteca que resolve os problemas produzidos pelas alterações nos códigos de categoria feitas por alguns babel
módulos, então basta carregar a biblioteca:
\documentclass[spanish]{article}
\usepackage{babel}
\usepackage{tikz}
\usetikzlibrary{babel}
\begin{document}
Simple arrows:
\begin{tikzpicture}
\draw[->] (-1.5,0) -- (1.5,0);
\end{tikzpicture}
\tikz\draw[->] (-1.5,0) -- (1.5,0);
\end{document}
(Graças aClaudio Fiandrinopor apontar isso emo comentário dele).
PGF/TikZ versão 2.10
Para desativar a redefinição indesejada para tikzpicture
s, mas mantê-la para outras partes do documento, você pode usar
execute at begin picture={\deactivatequoting},
execute at end picture={\activatequoting}
para cada tikzpicture
. Observe que essa abordagem tem duas vantagens:
Não são necessários pacotes extras.
Também produz o resultado desejado ao usar a versão do comando
\tikz
(veja o código de exemplo abaixo).
O código:
\documentclass[spanish]{article}
\usepackage{babel}
\usepackage{tikz}
\tikzset{
every picture/.append style={
execute at begin picture={\deactivatequoting},
execute at end picture={\activatequoting}
}
}
\begin{document}
Simple arrows:
\begin{tikzpicture}
\draw[->] (-1.5,0) -- (1.5,0);
\end{tikzpicture}
\tikz\draw[->] (-1.5,0) -- (1.5,0);
\end{document}
Como observação lateral, não use pdftex
a opção; os sistemas LaTeX modernos detectam o driver automaticamente.
Responder2
Conforme observado por Malipivo, a spanish
opção de babel
torna >
ativa. Você pode torná-lo inativo apenas dentro de (todos) o tikzpicture
ambiente localmente. Adicione-os ao seu preâmbulo:
\usepackage{etoolbox}
\AtBeginEnvironment{tikzpicture}{\shorthandoff{>}\shorthandoff{<}}{}{}
Código completo:
\documentclass{article}
\usepackage[spanish]{babel}
\usepackage{tikz}
\usepackage{etoolbox}
\AtBeginEnvironment{tikzpicture}{\shorthandoff{>}\shorthandoff{<}}{}{}
\begin{document}
Simple arrow:
\begin{tikzpicture}
\draw[->] (-1.5,0) -- (1.5,0);
\end{tikzpicture}
\end{document}
Responder3
Se não precisar usar spanish quotes
, basta adicionar es-noquoting
as opções do babel e TiKZ
as setas aparecerão novamente.
\documentclass[pdftex,spanish]{article}
\usepackage[es-noquoting]{babel}
\usepackage{tikz}
\begin{document}
Simple arrow:
\begin{tikzpicture}
\draw[->] (-1.5,0) -- (1.5,0);
\end{tikzpicture}
\end{document}
Se precisar spanish quotes
use a nova babel
biblioteca TiKZ 3.0 (como sugeriu Claudio). Aqui você tem um exemplo:
\documentclass[pdftex,spanish]{article}
\usepackage{babel}
\usepackage{tikz}
\usetikzlibrary{babel}
\begin{document}
Simple arrow:
\begin{tikzpicture}
\draw[->] (-1.5,0) -- (1.5,0) node[right] {<<Hola>>};
\end{tikzpicture}
<<Hola>>
\end{document}
Responder4
Não sei por que, mas nenhuma das respostas anteriores funcionou para mim. Eles me mostraram o caminho certo; adicionando apenas
\deactivatequoting
no preâmbulo resolveu o problema.
Fazer call babel
com english
e também spanish
funciona
\usepackage[spanish,english]{babel}