foreach 및 bmatrix를 사용하여 열 벡터 명령을 정의하는 방법은 무엇입니까?

foreach 및 bmatrix를 사용하여 열 벡터 명령을 정의하는 방법은 무엇입니까?

이런저런 일을 하려고 하는데,

\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

관련 정보