가변 개수의 입력을 제공할 수 있는 명령을 작성하려고 합니다. 그러면 해당 입력이 항목별 목록에 배치됩니다. 같은 것
\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
. :-)