가변 개수의 항목을 사용하는 항목화 명령

가변 개수의 항목을 사용하는 항목화 명령

가변 개수의 입력을 제공할 수 있는 명령을 작성하려고 합니다. 그러면 해당 입력이 항목별 목록에 배치됩니다. 같은 것

\myitemize{First item}{Second item}{Third item}

생산할 것이다

뭔가 같은 동안

\myitemize{First item}{Second item}

생산할 것이다

나는 또한 포맷에 까다롭지 않습니다. 그것은 다음과 같을 수 있습니다

\myitemize[First item, second item, third item]{3}

\begin{itemize} \end{itemize}다른 줄과 다른 줄을 포함하도록 수동으로 변경하고 싶지 않습니다 \item. 감사해요!

답변1

첫 번째 접근 방식은 다음에서 구현됩니다.가변 개수의 인수를 사용하고 인수당 하나의 행이 있는 테이블을 생성하는 매크로. 거기에 있는 모든 댓글을 꼭 읽어보세요. 특히, 이는 아마도훌륭한 마크업 스타일은 아닙니다.

두 번째 접근 방식은 다음과 같이 구현하기 쉽습니다 expl3(요소 수를 지정할 필요도 없음).

\documentclass{article}
\usepackage{xparse}

\ExplSyntaxOn

\seq_new:N \l__ryanj_tmp_seq

\cs_new_protected:Npn \ryanj_output_items:n #1
  {
    \seq_set_from_clist:Nn \l__ryanj_tmp_seq {#1}
    \seq_use:Nn \l__ryanj_tmp_seq { \item }
  }

\NewDocumentCommand \mystrangeitemize { m }
  {
    \begin{itemize}
    \item
    \ryanj_output_items:n {#1}
    \end{itemize}
  }

\ExplSyntaxOff

\begin{document}
  \mystrangeitemize{First item, Second item, Third item,
                    {Item, containing, commas.}}
\end{document}

\mystrangeitemize다음과 같은 방법으로 구현할 수도 있습니다.

\NewDocumentCommand \mystrangeitemize { m }
  {
    \begin{itemize}
    \ryanj_output_items:n { {}, #1 }
    \end{itemize}
  }

(추가된 빈 항목으로 인해 첫 번째 \item명령이 출력됩니다.)

두 경우 모두 여러 단락이 포함된 항목을 선언할 수 있으려면( \par토큰은 의 인수에서 허용되어야 함 \mystrangeitemize) in m로 바꾸십시오 .+m\NewDocumentCommand \mystrangeitemize { m }

스크린샷

etoolbox을(를) \docsvlist이 목적으로 사용할 수도 있으며, 누군가가 를 기반으로 솔루션을 게시하는 것을 볼 수도 있습니다 listofitems. :-)

관련 정보