
Lange Zeit dachte ich, ich verstünde, wie LaTeX Befehle erweitert. Aber anscheinend ist das nicht der Fall.
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\edef\r{1 and 2}
\draw (0,0) ellipse (2 and 4); % this works
\draw (0,0) ellipse (\r); % this causes the error
\end{tikzpicture}
\end{document}
Beim Versuch, den obigen Code zu kompilieren, erhalte ich die folgende Fehlermeldung:
! Package PGF Math Error: Unknown operator `a' or `an' (in '1 and 2').
Kann mir jemand erklären, warum der obige Fehler auftritt und was getan werden kann, um dieses Problem zu umgehen?
Antwort1
Dieses Problem ist so allgegenwärtig, dass PGF tatsächlich eine kanonische Möglichkeit entwickelt, es zu umgehen.
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\edef\r{1 and 2}
\draw (0,0) ellipse (2 and 4); % this works
\edef\pgfmarshal{\noexpand\draw (0,0) ellipse (\r);}
\pgfmarshal
\end{tikzpicture}
\end{document}
\pgf@marshal
( im gesamten Paket sind 232 Stück enthalten .)