\newcomment für beliebige Anzahl an Argumenten?

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


RelativerNeuling

\newcomment für beliebige Anzahl an Argumenten?

Beitrag von RelativerNeuling »

Hallo liebes Forum :),

ich habe zu folgender Frage leider keine Antwort im Internet gefunden. Wahrscheinlich weil es nicht geht, aber ich will es nicht unversucht lassen.

Sagen wir, ich definiere

Code: Alles auswählen

\newcommand{\vektor}{\begin{pmatrix} #1 && #2 &&... && #9}\end{pmatrix}
ohne die Anzahl an Argumenten (kleinergleich 9).
Kann ich LaTeX also mitteilen "rechne dir selber wieviele Argumente du hast und bilde einen Zeilenvektor"?
Die Eingabe

Code: Alles auswählen

\vektor{1}{2}
ergibt mir also (1 2), während mir

Code: Alles auswählen

\vektor{1}{2}{3}{4}{5}
den Vektor (1 2 3 4 5) ergibt?

Geht soetwas?
Danke schonmal und liebe Grüße
RN


Bartman
Forum-Meister
Forum-Meister
Beiträge: 2180
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

Die Vorlagen für das folgende Beispiel stammen von user31729 und egreg:

Code: Alles auswählen

\documentclass{article}

\usepackage{xparse}
\usepackage{amsmath}

\ExplSyntaxOn
\NewDocumentCommand{\vektor}{ sm }
{
  \begin{pmatrix}
  \split_vector_row:n { #2 }
  \end{pmatrix}
}
\cs_new:Nn \split_vector_row:n
{
  % split the input at commas
  \seq_set_split:Nnn \l_tmpa_seq { , } { #1 }
  % deliver the items separated by &
  \seq_use:Nn \l_tmpa_seq { & }
}
\ExplSyntaxOff

\begin{document}
\begin{align*}
\vektor{1,2}       
&= 
\begin{pmatrix} 
1 & 2 
\end{pmatrix}\\
\vektor{1,2,3,4,5} 
&= 
\begin{pmatrix} 
1 & 2 & 3 & 4 & 5 
\end{pmatrix}
\end{align*}
\end{document}

Antworten