Hallo Herbert,
statt wie in Beitrag #4 und #13 herumzusticheln, könntest Du konstruktiv zeigen, wie man es in solchen Fällen dennoch schaffen könnte, oder auch danach fragen. \expandafter ist ein ganz simpler Befehl, die Mehrfachanwendung lässt es nur scheinbar komplizierter aussehen.
Wie nun schon genannt, funktioniert es nicht bei Befehlen, die nicht expandiert werden. Während \g@addto@macro aus diesem Grund scheitert, kann man die \expandafter-Variante leicht modifizieren, um hierin das Expandieren zu erzwingen.
So modifiziert geht sie:
Dass \g@addto@macro jedoch global wirkt, also über die Grenzen einer Umgebung hinaus, ist ein bedeutsamer Unterschied. So definieren manche Klassen (KOMA) und Pakete eine lokale Variante \l@addto@macro, die hier auch genannt werden dürfte.Code:\expandafter\def\expandafter\exists\expandafter{\expandafter\mathchar\the\exists\quad}
Rainer, mit \edef kann man es auch so hinkriegen:
Der \the-Trick samt \expandafter ist natürlich eher was für Interessierte, in der Praxis ist es einfacher, wenn man ein neues Makro definiert und mit \let und \renewcommand arbeitet.Code:\edef\exists{\mathchar\the\exists\quad}
Micha, es freut mich, dass Dich die Hintergründe interessieren. Vielleicht schau einmal in diese Liste: plain TeX books. Darunter finde ich das Buch "TeX by Topic" sehr gut zugänglich. Das TeXbuch von Knuth ist natürlich die Referenz und sehr zu empfehlen.
Viele Grüße,
Stefan