Ich versuche so etwas zu machen,
\DeclareRobustCommand{\col}[1]{
\begin{bmatrix}
\foreach \i in {#1} {\i \\}
\end{bmatrix}
}
Was leider nicht funktioniert, während dies funktioniert,
\DeclareRobustCommand{\col}[1]{
\begin{bmatrix}
\foreach \i in {#1} {\i, }
\end{bmatrix}
}
Kann jemand eine Lösung vorschlagen? Ich habe versucht, dieses Problem nachzuschlagen, aber die Antworten sind mir nicht ganz klar.
Antwort1
\\
Da Sie nur zwischen den einzelnen Elementen einer durch Kommas getrennten Liste etwas verwenden möchten, können Sie \clist_use:nn
stattdessen temporäre Zuweisungen an eine andere Variable verwenden.
\clist_use:nn
funktioniert nur durch Erweiterung und hat keine Probleme mit Gruppen.
\documentclass{article}
\usepackage{amsmath}
\ExplSyntaxOn
\NewDocumentCommand \col { m }
{
\begin{bmatrix}
\clist_use:nn {#1} { \\ }
\end{bmatrix}
}
\ExplSyntaxOff
\begin{document}
\[
\col{1,4} + \col{2, 1} = \col{3,5}
\]
\end{document}
Antwort2
Ich habe keine Ahnung, was das bewirkt, aber es funktioniert.
\ExplSyntaxOn
\NewDocumentCommand{\col}{m} {
\seq_set_from_clist:Nn \l_tmpa_seq { #1 }
\seq_set_map:NNn \l_tmpb_seq \l_tmpa_seq { ##1 }
\begin{bmatrix}
\seq_use:Nn \l_tmpb_seq { \\ }
\end{bmatrix}
}
\ExplSyntaxOff