Warum ergibt das folgende Beispiel die Fehlermeldung Öffne in Overleaf
\documentclass{article} \usepackage{xparse} \usepackage{pgfplots} \pgfplotsset{compat=newest,axis lines=middle} \ExplSyntaxOn \NewDocumentCommand \Diagramm {} { \begin{tikzpicture} \begin{axis}[xmin=0,xmax=13.8,ymin=0,ymax=58] \addplot[domain=0:13] {4*x}; \end{axis} \end{tikzpicture} } \ExplSyntaxOff \begin{document} \Diagramm \end{document} |
Hier macht sich wieder einmal bemerkbar, dass TeX nicht mit Zeichen, sondern mit Token arbeitet und ein Token aus einem Zeichen und einer Kategorie besteht. Die Festlegung der Token erfolgt zu einem frühen Zeitpunkt im Tokenizer. Das Problem hier ist nicht Öffne in Overleaf
\documentclass{article} \usepackage{xparse} \usepackage{pgfplots} \pgfplotsset{compat=newest,axis lines=middle} \ExplSyntaxOn \char_set_catcode_other:n {58} \NewDocumentCommand \Diagramm {} { \begin{tikzpicture} \begin{axis}[xmin=0,xmax=13.8,ymin=0,ymax=58] \addplot[domain=0:13] {4*x}; \end{axis} \end{tikzpicture} } \ExplSyntaxOff \begin{document} \Diagramm \end{document} Würde funktionieren, ebenso Öffne in Overleaf
\documentclass{article} \usepackage{xparse} \usepackage{pgfplots} \pgfplotsset{compat=newest,axis lines=middle} \NewDocumentCommand \Diagramm {} { \begin{tikzpicture} \begin{axis}[xmin=0,xmax=13.8,ymin=0,ymax=58] \addplot[domain=0:13] {4*x}; \end{axis} \end{tikzpicture} } \begin{document} \Diagramm \end{document} weil für Folgendes würde übrigens aus denselben Gründen nicht funktionieren: Öffne in Overleaf
\documentclass{article} \usepackage{xparse} \usepackage{pgfplots} \pgfplotsset{compat=newest,axis lines=middle} \catcode`:=11\relax \NewDocumentCommand \Diagramm {} { \begin{tikzpicture} \begin{axis}[xmin=0,xmax=13.8,ymin=0,ymax=58] \addplot[domain=0:13] {4*x}; \end{axis} \end{tikzpicture} } \catcode`:=12\relax \begin{document} \Diagramm \end{document} Übrigens funktioniert auch das und zeigt ebenfalls, wie Token hier eine Rolle spielen: Öffne in Overleaf
\documentclass{article} \usepackage{xparse} \usepackage{pgfplots} \pgfplotsset{compat=newest,axis lines=middle} \catcode`\%=\active \def%{:} \ExplSyntaxOn \NewDocumentCommand \Diagramm {} { \begin{tikzpicture} \begin{axis}[xmin=0,xmax=13.8,ymin=0,ymax=58] \addplot[domain=0%13] {4*x}; \end{axis} \end{tikzpicture} } \ExplSyntaxOff \catcode`\%=14\relax \begin{document} \Diagramm \end{document} Dabei wird das Prozentzeichen beantwortet 30 Okt '17, 20:16 gast3 |
Wozu denn
\ExplSyntaxOn
wenn Du dann expl3 gar nicht einsetzt?Das kann gelegentlich nützlich sein, um unbeabsichtigte Wirkungen von Weißraum in der Befehlsdefinition zu vermeiden. Hier ist es aber wohl unnötig (bzw. sogar schädlich).
o.O auf die Idee bin ich auch noch nie gekommen. Dafür sind die aber auch sicher nicht gedacht.