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:nn
en lugar de asignaciones temporales a alguna otra variable.
\clist_use:nn
Funciona 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}
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