xparse로 현재 인수의 숫자 재사용

xparse로 현재 인수의 숫자 재사용

\l__xparse_current_arg_int"설정 중인 현재 인수의 수"를 언급하는 xparse의 문서를 읽었습니다 . 그러나 액세스하고 사용하는 방법을 이해하는 데 어려움을 겪고 있습니다. 예를 들어, 다음 예에서 해당 변수를 사용하여 순서가 지정된 목록(예: 정확히 무엇으로 바꾸면 itemize결과 가 나오는지)을 생성할 수 있습니까?enumerate

\documentclass{article}
\usepackage{xparse}
\NewDocumentCommand\mylist{>{\SplitList{;}}m}
    {
    \begin{itemize}
        \ProcessList{#1}{ \insertitem }
    \end{itemize}
    }
\newcommand\insertitem[1]{\item #1}

\begin{document}

Here's a list: \mylist{a;b;c;d;e;f;g}

\end{document}

나는 간단한 것이 작동하기를 바랐 \item[\l__xparse_current_arg_int]지만 그렇지 않습니다.

답변1

분할된 비트와 연관된 정수는 없습니다 \SplitList. 목록으로 끝나는 재귀가 시작됩니다.

카운터를 직접 정의할 수 있습니다.

\documentclass{article}
\usepackage{xparse}
\ExplSyntaxOn
\int_new:N \l_anthony_list_int
\NewDocumentCommand\mylist{>{\SplitList{;}}m}
 {
  \begin{itemize}
  \int_zero:N \l_anthony_list_int
  \ProcessList{#1}{ \insertitem }
  \end{itemize}
 }
\NewDocumentCommand\insertitem{m}
 {
  \int_incr:N \l_anthony_list_int
  \item[\int_to_arabic:n {\l_anthony_list_int}] #1
 }
\ExplSyntaxOff

\begin{document}

Here's a list: \mylist{a;b;c;d;e;f;g}

\end{document}

LaTeX 카운터도 사용할 수 있습니다.

\documentclass{article}
\usepackage{xparse}

\newcounter{anthonylist}
\NewDocumentCommand\mylist{>{\SplitList{;}}m}
 {
  \begin{itemize}
  \setcounter{anthonylist}{0}
  \ProcessList{#1}{ \insertitem }
  \end{itemize}
 }
\NewDocumentCommand\insertitem{m}
 {
  \stepcounter{anthonylist}
  \item[\theanthonylist}] #1
 }

\begin{document}

Here's a list: \mylist{a;b;c;d;e;f;g}

\end{document}

물론 enumerate대신 사용하기가 더 쉬울 것입니다 itemize.

관련 정보