von phi » Mi 4. Aug 2010, 19:11
Hallo,
1. "g" steht für global, "l" für lokal. Lokale Änderungen sind, wenn sie in einer Gruppe geschehen, außerhalb dieser unwirksam:
\documentclass{scrartcl}
\begin{document}
\makeatletter
\def\x{a}
\x\par % Ausgabe "a"
\begingroup
\g@addto@macro\x{b}
\x\par % Ausgabe "ab"
\l@addto@macro\x{c}
\x\par % Ausgabe "abc"
\endgroup
\x\par % Ausgabe "ab"
\end{document}
\g@addto@macro stammt aus dem LaTeX-Kernel, \l@addto@macro aus den KOMA-Script-Klassen.
Ein öffentlich dokumentiertes Äquivalent zu \g@addto@macro ist \gappto aus dem etoolbox-Paket.
2. Das ist nicht automatisiert möglich. \apptocmd aus dem etoolbox-Paket deckt einige Fälle ab, versagt aber beispielsweise bei Befehlen mit optionalen Parametern. Verwende \renewcommand oder einen Wrapper-Befehl.
3. Ebenfalls aus dem etoolbox-Paket: \preto, \gpreto, \pretocmd usw.
Hallo,
1. "g" steht für global, "l" für lokal. Lokale Änderungen sind, wenn sie in einer Gruppe geschehen, außerhalb dieser unwirksam:
[code]\documentclass{scrartcl}
\begin{document}
\makeatletter
\def\x{a}
\x\par % Ausgabe "a"
\begingroup
\g@addto@macro\x{b}
\x\par % Ausgabe "ab"
\l@addto@macro\x{c}
\x\par % Ausgabe "abc"
\endgroup
\x\par % Ausgabe "ab"
\end{document}[/code]\g@addto@macro stammt aus dem LaTeX-Kernel, \l@addto@macro aus den KOMA-Script-Klassen.
Ein öffentlich dokumentiertes Äquivalent zu \g@addto@macro ist \gappto aus dem etoolbox-Paket.
2. Das ist nicht automatisiert möglich. \apptocmd aus dem etoolbox-Paket deckt einige Fälle ab, versagt aber beispielsweise bei Befehlen mit optionalen Parametern. Verwende \renewcommand oder einen Wrapper-Befehl.
3. Ebenfalls aus dem etoolbox-Paket: \preto, \gpreto, \pretocmd usw.