El uso de una funcionalidad de la biblioteca "quotes" inicialmente me dio un error.
Cambié el idioma de Babel de "brasileño" a "inglés" y funcionó.
Busqué una solución y descubrí la biblioteca "babel"; Lo usé, por lo que funcionó para los casos "normales", pero no dentro de la macro que definí.
Básicamente, así es como funcionan las cosas:
- inglés + (paquete sin cotización) = funciona para todos los casos
- brasileño + (sin paquete de cotización) = no funciona
- inglés + (paquete de cotización) = funciona para todos los casos
- brasileño + (paquete de cotización) = funciona fuera de las macros, pero no dentro de estas.
Ejemplo de trabajo mínimo:
\documentclass[brazil]{standalone}
\usepackage{tikz,babel}
\usetikzlibrary{babel,angles,quotes}
\newcommand\fig[1]%
{\begin{tikzpicture}#1\end{tikzpicture}}%
\begin{document}
\fig{\coordinate (a) at (3.75,3.75);
\coordinate (b) at (3.75,0.75);
\coordinate (lo) at (0, 0.75);
\draw[thick,blue] (0, 0.75) -- (3.75, 3.75);
\pic [draw, -,thick,"$\theta$", angle radius=1cm, angle eccentricity=1.3] {angle = a--lo--b};}
\end{document}
Falla cuando se configura el idioma "brasil", pero funciona cuando se configura en inglés.
Respuesta1
Este problema también se aplica con la opción german
de babel
.
El motivo es que el argumento del comando \fig
no se lee con los catcodes correctos. La tikz
biblioteca babel
restablece algunos códigos cat a sus valores normales al comienzo de cada tikzpicture
entorno, pero el argumento de \fig
se lee antes de que se aplique.
La solución se basa en la respuesta de¿Hay alguna forma de configurar un código cat sólo dentro de una macro?.
El comando \fig
comienza con \begingroup
. Luego establece el código cat de "
. Solo después de cambiar este código cat, \figaux
se ejecuta el comando. Al final de \figaux
se \endgroup
coloca.
\documentclass[brazil]{standalone}
\usepackage{tikz,babel}
\usetikzlibrary{babel,angles,quotes}
\newcommand{\fig}{\begingroup\catcode`"=12 \figaux}
\newcommand{\figaux}[1]{\begin{tikzpicture}#1\end{tikzpicture}\endgroup}
\begin{document}
\fig{\coordinate (a) at (3.75,3.75);
\coordinate (b) at (3.75,0.75);
\coordinate (lo) at (0, 0.75);
\draw[thick,blue] (0, 0.75) -- (3.75, 3.75);
\pic [draw, -,thick,"$\theta$", angle radius=1cm, angle eccentricity=1.3] {angle = a--lo--b};}
\end{document}