쉼표로 구분된 매개변수 목록에서 테이블 형식 만들기

쉼표로 구분된 매개변수 목록에서 테이블 형식 만들기

이에 대한 답을 찾으려고 노력했지만 현재는 어떻게 작동하게 할 수 있는지 모르겠습니다.

다음과 같은 가변 길이로 주어진 목록을 기반으로 표 형식의 일부 줄을 채우는 새 명령을 만들고 싶습니다.

\makeTabularRows{item1, item2, item3}

이것의 출력은 다음과 같아야합니다

\multicolumn{3}{c}{item1} & \\
\multicolumn{3}{c}{item2} & \\
\multicolumn{3}{c}{item3} &

다음과 같은 표 형식에 맞도록

\begin{tabular}{lclr}
    \makeTabularRows{item1, item2, item3}
\end{tabular}

예를 들어 이 짧은 솔루션과 같은 부분적인 솔루션을 많이 찾았습니다.

\newcommand{\makeTabularRows}[1]{%
    \def\nextitem{\def\nextitem{.}}%  
    \@for \el:=#1\do{\nextitem\el}%
}

예를 들어 열거형을 생성하기 위해 요소와 더 복잡해 보이는 다른 솔루션 사이에 점을 삽입합니다. 한 가지 문제는 & 기호를 포함하는 것이라는 것을 알았고 테스트 결과 \\를 삽입하는 것조차 불가능해 보였습니다. 표 형식에 대한 해결책이 있는 경우 이를 찾기 위해 길을 잃었습니다.

이 작업을 어떻게 수행할 수 있는지 아이디어가 있습니까?

답변1

확장 가능한 루프를 사용한 접근 방식은 다음과 같습니다. 어떤 이유로 대부분의 xinttools시설은 다음 유형의 입력을 위한 것입니다 {item1}{item2}{item3}. 원하는 경우 여기 명령에서와 같이 item1, item2, item3적용해야 합니다 .\xintCSVtoList\makeRows

댓글에서 언급했지만 \xintFor질문(죄송합니다)을 충분히 자세히 읽지 않았습니다. ... \multicolumn정말 자신의 셀(확장 후)에서 첫 번째가 되고 싶어하는 짐승입니다. 매크로는 \xintFor(전역이 아닌) 일부 할당을 수행하므로 여기서는 적절한 도구가 아닙니다.

\documentclass{article}

\usepackage{xinttools}

\newcommand\makeOneRow [1]{\multicolumn{3}{c}{#1} & \\ }
\newcommand\makeRows [1]{%
    \xintApplyUnbraced {\makeOneRow}{\xintCSVtoList{#1}}%
}%

\begin{document}

\begin{tabular}{lclr}
    \makeRows{item1, item2, item3}
\end{tabular}

\end{document}

여기에 이미지 설명을 입력하세요

두 번째 셀에서 를 원했다면 \multicolumn작동했을 것입니다.

 \xintFor #1 in {item1, item2, item3}\do
  {& \multicolumn{3}{c}{#1}\\}

항목의 csv를 나타내는 \newcommand\makeTabularRows위치 에 이것을 넣으면 .#1\xintFor ##1 in {#1} \do {...}

관련 정보