¿Cómo definir un comando de vector de columna usando foreach y bmatrix?

¿Cómo definir un comando de vector de columna usando foreach y bmatrix?

Estoy intentando hacer algo como esto,

\DeclareRobustCommand{\col}[1]{
  \begin{bmatrix}
  \foreach \i in {#1} {\i \\}
  \end{bmatrix}
}

Lo cual lamentablemente no funciona, mientras esto funcione,

\DeclareRobustCommand{\col}[1]{
  \begin{bmatrix}
  \foreach \i in {#1} {\i, }
  \end{bmatrix}
}

¿Alguien podría sugerir una solución? Intenté buscar este problema pero me cuesta entender alguna de las respuestas.

Respuesta1

Dado que solo desea usar \\entre cada elemento de una lista separada por comas, puede usar \clist_use:nnen lugar de asignaciones temporales a alguna otra variable.

\clist_use:nnFunciona solo por expansión y no tiene problemas con los grupos.

\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}

ingrese la descripción de la imagen aquí

Respuesta2

No tengo idea de qué hace esto, pero funciona.

\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

información relacionada