PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : newcommand: Mehr als 9 Parameter?



gast22
13-02-2008, 15:19
Hallo zusammen,

ich habe eine Frage, die ich auch nach eingehender Suche hier nicht selbst beantworten kann:

Ich möchte gern neue Befehle generieren (mit \newcommand{\BefehlA}[10]{bla #1 bla #2 bla #3 ...}), innerhalb derer ich aber mehr als 9 Parameter zu übergeben habe. Jetzt habe ich gelesen, dass man höchstens 9 Paramter nutzen kann. Kann man diese Beschränkung irgendwie umgehen? Oder gibt es einen anderen Befehl, der das kann?

Vielen Dank im Voraus :)

Stefan_K
13-02-2008, 17:55
Hallo Ninchen,

TeX erlaubt für Makros nur 9 Parameter, das gilt auch für \def.
Ich schätze, das muss man wohl ganz anders lösen. Zur Not mit zusätzlich global deklarierten Makros, die vor Aufruf des Befehls mit Werten belegt werden.

Viele Grüße,

Stefan

gast22
13-02-2008, 18:01
Hallo Stefan,

vielen Dank für die Antwort. Ja, das hatte ich schon befürchtet :rolleyes: Naja, ich überlege mir etwas anderes, dürfte auch nicht allzu viele Schwierigkeiten machen.

Dann weiß ich jetzt wenigstens Bescheid :D

Viele Grüße

voss
13-02-2008, 18:57
Hallo zusammen,

ich habe eine Frage, die ich auch nach eingehender Suche hier nicht selbst beantworten kann:

Ich möchte gern neue Befehle generieren (mit \newcommand{\BefehlA}[10]{bla #1 bla #2 bla #3 ...}), innerhalb derer ich aber mehr als 9 Parameter zu übergeben habe. Jetzt habe ich gelesen, dass man höchstens 9 Paramter nutzen kann. Kann man diese Beschränkung irgendwie umgehen? Oder gibt es einen anderen Befehl, der das kann?


das ist kein Problem, du musst nur die ersten neun zwischenspeichern.



\makeatletter
\def\Macro#1#2#3#4#5#6#7#8#9{%
\def\m@eins{#1}%
\def\m@Zwei{#2}%
...
\Macro@zwei%
}
\def\Makro@zwei#1#2#3#4{% bsp für 13 Parameter
% hier kennst du jetzt über \m@eins... die ersten neun und
% mit #1 #2 #3 #4 die nächsten 4
}
\makeatother


Herbert