定义始终恢复的列表

定义始终恢复的列表

我有一个列表,我需要表现得像总是恢复。有了这个enumitem包,我知道我可以series=<name>第一的列表,并resume*=<name>使用随后的列表。

但是,我的问题是我在宏中定义了这些列表,而宏不知道哪个将是第一个(因此它可以指定选项series=<name>),哪个将是后续的(需要一个resume*=<name>)。此外,任何项目(包括第一个)都可能重复,因此如果任何一个项目被假定为第一个,则计数将被重置。

我怎样才能定义所有始终独立于顺序继续编号的内容?

在此处输入图片描述

笔记:

  • A黑客解决方案是在调用宏时传入series=resume*选项,但我不想这样做。

代码:

\documentclass{article}

\usepackage{enumitem}

\newlist{MyList}{enumerate}{2}
\setlist[MyList]{label={\arabic*)}}

\newcommand*{\ListA}{%
    \begin{MyList}[series=ResumedList]
        \item Item A
    \end{MyList}
}

\newcommand*{\ListB}{%
    \begin{MyList}[resume*=ResumedList]
        \item Item B
    \end{MyList}
}


\begin{document}
    \ListA
    \ListB
    
    \ListB
    \ListA
    
    Number of list items = \arabic{MyListi}
    
    \ifnum\arabic{MyListi}=4\relax
        \textbf{PASS}: Correct count
    \else
        \textbf{FAIL}: Incorrect count. Count should be 4.
    \fi
\end{document}

答案1

有几集吗?如果没有,那么这个就行了

\documentclass{article}

\usepackage{enumitem}

\newlist{MyList}{enumerate}{2}
\setlist[MyList]{
  label=(\arabic*),
  resume
}

\newcommand*{\ListA}{%
    \begin{MyList}
        \item Item A
    \end{MyList}
}

\newcommand*{\ListB}{%
    \begin{MyList}
        \item Item B
    \end{MyList}
}


\begin{document}
    \ListA
    \ListB

    \ListB
    \ListA

    Number of list items = \arabic{MyListi}

    \ifnum\arabic{MyListi}=4\relax
        \textbf{PASS}: Correct count
    \else
        \textbf{FAIL}: Incorrect count. Count should be 4.
    \fi
\end{document}

相关内容