Estoy probando el siguiente 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}
pero no funciona. Tira los errores:
! Argument of \language@active@arg> has an extra }.
! Paragraph ended before \language@active@arg> was complete.<to be read again>\par \draw[->]
¿Qué puedo hacer si funciona bien sin el paquete babel?
Respuesta1
El problema es que el spanish
módulo de babel
marcas >
y <
caracteres activos para su gestión especial de citas en español.
Actualizar:
Con PGF/TikZ versión 3.0.0 existe una babel
biblioteca que soluciona los problemas producidos por los cambios en los códigos de categorías realizados por algunos babel
módulos, por lo que basta con cargar la 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}
(Gracias aClaudio Fiandrinopor señalar esto ensu comentario).
PGF/TikZ versión 2.10
Para desactivar la redefinición no deseada de tikzpicture
s, pero manteniéndola para otras partes del documento, puede utilizar
execute at begin picture={\deactivatequoting},
execute at end picture={\activatequoting}
para cada tikzpicture
. Tenga en cuenta que este enfoque tiene dos ventajas:
No se requieren paquetes adicionales.
También produce el resultado deseado cuando se utiliza la versión del comando
\tikz
(consulte el código de ejemplo a continuación).
El 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 nota al margen, no utilice pdftex
la opción; Los sistemas LaTeX modernos detectan el controlador automáticamente.
Respuesta2
Como señala Malipivo, la spanish
opción de babel
activa >
. Puede hacerlo inactivo dentro de (todo) el tikzpicture
entorno localmente. Agregue estos en su 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}
Respuesta3
Si no necesita usar spanish quotes
, simplemente agréguelo es-noquoting
a las opciones de Babel y TiKZ
las flechas aparecerán nuevamente.
\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}
Si necesita spanish quotes
utilizar la nueva babel
biblioteca TiKZ 3.0 (como sugirió Claudio). Aquí tienes un ejemplo:
\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}
Respuesta4
No sé por qué, pero ninguna de las respuestas anteriores me ha funcionado. Sin embargo, me mostraron el camino correcto; agregando solo
\deactivatequoting
en el preámbulo se solucionó el problema.
Llamar babel
con english
y también spanish
funciona
\usepackage[spanish,english]{babel}