이런저런 일을 하려고 하는데,
\DeclareRobustCommand{\col}[1]{
\begin{bmatrix}
\foreach \i in {#1} {\i \\}
\end{bmatrix}
}
불행히도 작동하지 않지만 이것이 작동하는 동안에는
\DeclareRobustCommand{\col}[1]{
\begin{bmatrix}
\foreach \i in {#1} {\i, }
\end{bmatrix}
}
누군가 수정 사항을 제안할 수 있나요? 이 문제를 찾아보았지만 답변을 이해하는 데 어려움을 겪고 있습니다.
답변1
쉼표로 구분된 목록의 각 요소 사이에만 사용하기를 원하므로 다른 변수에 임시 할당하는 대신 \\
사용할 수 있습니다 .\clist_use:nn
\clist_use:nn
확장을 통해서만 작동하며 그룹에는 문제가 없습니다.
\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}
답변2
이것이 무엇을 하는지는 모르겠지만 작동합니다.
\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