Phylax
16-09-2008, 16:33
Servus,
habe mal den \newcommand-Befehl mit einer Definition getestet, in der er selber nochmals auftaucht:
\newcommand{\test}[1]{\newcommand{#1}{es klappt}}
dies erlaubt, durch
\test{neuko} den neuen Befehl \neuko zu definieren, dessen Ausgabe "es klappt ist". Das war trivial.
Problematisch wird es, wenn der Befehl \testb, einen Befehl \neukob definieren soll, der eine Variable nehmen kann.
\newcommand{\testb}[1]{\newcommand{#1}[1]{es klappt #1}}
\testb{\neukob}
\neukob{noch immer}
Das funktioniert nicht, offensichtlich weil die Variable #1 auf zwei verschiedenen Ebenen vorkommt.
Man muss sie verschieden benennen:
\newcommand{\testc}[1]{\newcommand{#1}[2]{es klappt #2}}
\testc{\neukoc}
\neukoc{noch immer}
gibt, wie man erwartet: "es klappt noch immer" aus, wenngleich man dann die (lästige) Fehlermeldung bekommt: "Illegal parameter number in definition of \testc"
Eine weiterführende Frage zu diesem Thema kommt noch, für den Augenblick belasse ich es bei dieser Information.
Meinen Respekt allen Profis hier im Forum, die es schaffen, mit dieser Flut an Fragen mitzuhalten.
Phylax
habe mal den \newcommand-Befehl mit einer Definition getestet, in der er selber nochmals auftaucht:
\newcommand{\test}[1]{\newcommand{#1}{es klappt}}
dies erlaubt, durch
\test{neuko} den neuen Befehl \neuko zu definieren, dessen Ausgabe "es klappt ist". Das war trivial.
Problematisch wird es, wenn der Befehl \testb, einen Befehl \neukob definieren soll, der eine Variable nehmen kann.
\newcommand{\testb}[1]{\newcommand{#1}[1]{es klappt #1}}
\testb{\neukob}
\neukob{noch immer}
Das funktioniert nicht, offensichtlich weil die Variable #1 auf zwei verschiedenen Ebenen vorkommt.
Man muss sie verschieden benennen:
\newcommand{\testc}[1]{\newcommand{#1}[2]{es klappt #2}}
\testc{\neukoc}
\neukoc{noch immer}
gibt, wie man erwartet: "es klappt noch immer" aus, wenngleich man dann die (lästige) Fehlermeldung bekommt: "Illegal parameter number in definition of \testc"
Eine weiterführende Frage zu diesem Thema kommt noch, für den Augenblick belasse ich es bei dieser Information.
Meinen Respekt allen Profis hier im Forum, die es schaffen, mit dieser Flut an Fragen mitzuhalten.
Phylax