newcommand mit mehreren Argumenten anpassen

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: newcommand mit mehreren Argumenten anpassen

von Gast » Di 10. Sep 2019, 09:50

Mit xparse wäre das zwar möglich, es wird aber dringend davon abgeraten. Optionale Argumente gehören in eckige Klammern, damit man weiß, dass das Argument optional ist. Bei \newcommand kann man genau ein optionales Argument definieren, das dann das erste Argument zu sein hat. Mit mehrstufiger Definition kann man aber durchaus mehr optionale Argumente definieren und auch an anderer Stelle. Mit xparse ist es dagegen sehr einfach beliebig viele optionale Argumente an beliebiger Stelle zu haben.

Eine weitere Möglichkeit, die sich in deinem Fall anböte, wäre die Verarbeitung eines einzigen Arguments als Liste. Eine mit Komma separierte Liste kann man beispielsweise mit \@for aus dem LaTeX-Kern und noch schöner mit dem l3kernel verarbeiten. Das Paket etoolbox bietet ebenfalls Befehle für das List Processing.

newcommand mit mehreren Argumenten anpassen

von Gast » Di 10. Sep 2019, 09:09

ist es möglich, den command \newcommand{\Name}[Anzahl]{Definition} so zu schreiben, dass der folgende Code wie folgt funktioniert
 \test[3]{Hallo #1, #2 und #3} 

\test{Peter}{Maria}{Stefan} --> Hallo Peter, Maria und Stefan

Aber wenn man einigibt
\test{Peter}{Maria} --> Hallo Peter, Maria ausgibt

also dass das und nur gedruckt wird, wenn auch die 3. Ausgabe eingegeben wird?

Nach oben