Die Verwendung einer Funktionalität aus der Bibliothek „quotes“ lieferte mir zunächst einen Fehler.
Ich habe die Sprache von Babel von „Brasilianisch“ auf „Englisch“ geändert und es hat funktioniert.
Ich habe nach einer Lösung gesucht und bin auf die Bibliothek „babel“ gestoßen. Ich habe sie verwendet und sie hat in den „normalen“ Fällen funktioniert, aber nicht innerhalb des von mir definierten Makros.
Im Grunde funktioniert es so:
- englisch + (kein Zitatpaket) = funktioniert für alle Fälle
- brasilianisch + (kein Angebotspaket) = funktioniert nicht
- englisch + (Angebotspaket) = funktioniert in allen Fällen
- brasilianisch + (Zitatpaket) = funktioniert außerhalb von Makros, aber nicht innerhalb dieser.
Minimales funktionierendes Beispiel:
\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}
Es schlägt fehl, wenn die Sprache „Brasilien“ eingestellt ist, aber es funktioniert, wenn es auf Englisch eingestellt ist.
Antwort1
Dieses Problem gilt auch für die Option german
für babel
.
Der Grund dafür ist, dass das Argument des Befehls \fig
nicht mit den richtigen Catcodes gelesen wird. Die tikz
Bibliothek babel
setzt einige Catcodes zu Beginn jeder tikzpicture
Umgebung auf ihre normalen Werte zurück, aber das Argument \fig
wird gelesen, bevor dies zutrifft.
Die Lösung basiert auf der Antwort vonGibt es eine Möglichkeit, einen Catcode nur innerhalb eines Makros festzulegen?.
Der Befehl \fig
beginnt mit \begingroup
. Anschließend setzt er den Catcode von "
. Erst wenn dieser Catcode geändert wird, \figaux
wird der Befehl ausgeführt. Am Ende von \figaux
wird \endgroup
platziert.
\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}