.png)
Der explizite Code
\documentclass{standalone}
\usepackage[french]{babel}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\usetikzlibrary{babel}
\begin{document}
\begin{tikzpicture}
\begin{semilogxaxis}[
xmin=1e-1,
xmax=1e4,
ymin=0,
ymax=1
]
\draw[thick,blue,dashed] (axis cs:1,0) -- (axis cs:100,1);
\end{semilogxaxis}
\end{tikzpicture}
\end{document}
funktioniert, aber wenn ich eine neue Umgebung verwende, schlägt die Kompilierung fehl
\documentclass{standalone}
\usepackage{pgfplots,environ}
\usepackage[french]{babel}
\usetikzlibrary{babel}
\pgfplotsset{compat=1.18}
\NewEnviron{MyEnv}[3][]{
\begin{tikzpicture}
\begin{semilogxaxis}[
xmin={#2},
xmax={#3},
ymin=0,
ymax=1
]
\BODY
\end{semilogxaxis}
\end{tikzpicture}
}
\begin{document}
\begin{MyEnv}[]{1e-1}{1e4}
\draw[thick,blue,dashed] (axis cs:1,0) -- (axis cs:100,1);
\end{MyEnv}
\end{document}
Das zweite Beispiel wird korrekt kompiliert, wenn ich das Paket auskommentiere babel
.
Irgendwelche Ideen, wie man das beheben kann? Die shorthandoff
Vorschläge in Antworten auf andere ähnliche Fragen scheinen hier nicht zu funktionieren.
Antwort1
EDIT: Eine bessere Möglichkeit hierfür ist, eine Liste der aktuellen Abkürzungen zu erstellen und diese dann alle zu deaktivieren, siehediese Antwort. Das manuelle Deaktivieren von Abkürzungen wie ;
kann zu Fehlern führen, wenn ;
es sich nicht um eine Abkürzung handelt (siehe Kommentare unten).
Ursprüngliche Antwort: Wie von @UlrikeFischer in den Kommentaren vorgeschlagen,
\AddToHook{env/MyEnv/begin}{\shorthandoff{;}}
zum Umgang mit aktiven Charakteren funktioniert. Das environ
Paket wurde verwendet, um Konflikte mit der tikz
external
Bibliothek zu vermeiden. Das xparse
Paket kann auch anstelle von verwendet werdenenviron.
\documentclass{standalone}
\usepackage[french]{babel}
\usepackage{xparse}
\usetikzlibrary{babel,external}
\tikzexternalize[prefix=figure]
\pgfplotsset{compat=1.18}
\AddToHook{env/MyEnv/begin}{\shorthandoff{;}}
\NewDocumentEnvironment{MyEnv}{O{}mm+b}{
\begin{tikzpicture}
\begin{semilogxaxis}[xmin={#2},xmax={#3},ymin=0,ymax=1]
#4
\end{semilogxaxis}
\end{tikzpicture}
}{}
\begin{document}
\begin{MyEnv}[]{1e-1}{1e4}
\draw[thick,blue,dashed] (axis cs:1,0) -- (axis cs:100,1);
\end{MyEnv}
\end{document}