Estou tentando fazer algo assim,
\DeclareRobustCommand{\col}[1]{
\begin{bmatrix}
\foreach \i in {#1} {\i \\}
\end{bmatrix}
}
O que infelizmente não funciona, enquanto isto funciona,
\DeclareRobustCommand{\col}[1]{
\begin{bmatrix}
\foreach \i in {#1} {\i, }
\end{bmatrix}
}
Alguém poderia sugerir uma correção? Tentei pesquisar esse problema, mas estou tendo dificuldade em entender qualquer uma das respostas.
Responder1
Como você deseja usar apenas \\
entre cada elemento de uma lista separada por vírgula, você pode usar \clist_use:nn
em vez de atribuições temporárias para alguma outra variável.
\clist_use:nn
funciona apenas por expansão e não tem problemas com 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}
Responder2
Não tenho ideia do que isso faz, mas 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