LaTeX-Wörterbuch: TeX Primitiven: \edef
Syntax
Bearbeiten\edef"control sequence" "parameter text"{"replacement text"}
Beschreibung
BearbeitenDer Befehl \edef dient wie der Befehl \def zur Definition von Makros. Der Unterschied ist, dass \edef eventuelle Makros, die im „replacement text“ vorkommen, „expandiert“. TeX schaut also die Definitionen dieser Makros nach und fügt sie anstelle der Makros selbst ein. Diese Expansion findet rekursiv statt: Enthält das expandierte Makro wiederum expandierbare Makros, so werden auch diese expandiert.
Beispiel
BearbeitenIm folgenden Beispiel werden die Makros \b und \c jeweils mit Hilfe des Makros \a definiert. In Makro \b bleibt die Referenz auf \a erhalten. Bei der Definition von Makro \c wird \a jedoch zu „Hallo “ expandiert. Dies führt dazu, dass \b nach der Neudefinition von \a nun einen anderen Text als vorher ausgibt. Das Makro \c bleibt hiervon jedoch unberührt, da \a schon bei der Definition von \c expandiert wurde und die ursprüngliche Definition von \a somit schon fest in \c enthalten ist, während die Referenz auf \a verloren geht.
\def\a{Hallo }
\def\b{\a Welt} % \b hat die Definition "\a Welt"
\edef\c{\a Welt} % \c hat die Definition "Hallo Welt"
\b % gibt "Hallo Welt" aus
\c % gibt "Hallo Welt" aus
\def\a{Ciao }
\b % gibt "Ciao Welt" aus
\c % gibt "Hallo Welt" aus