enumitem,可以放置“series=“在 \setlist 中?

enumitem,可以放置“series=“在 \setlist 中?

我定义自己的列表,例如mylist。出于某种原因,我喜欢用 来命名它series,例如series=ML为了恢复目的:resume=ML。在本地添加它,例如在以下 MWE 中,这会按预期工作:

\documentclass{article}
\usepackage{enumitem}
\newlist{mylist}{enumerate}{2}
\setlist[mylist,1]{leftmargin=*,label=\arabic*.}
\setlist[mylist,2]{nosep, leftmargin=*, label=(\alph*)}

\begin{document}
    \begin{minipage}{\linewidth} % simulate new environment 
                                 % where I like incorporate mylist with
                                 % \mylist ... \endmylist
\begin{mylist}[series=ML, resume=ML]
   \item    example A
   \begin{mylist}
       \item    sub example A1
       \item    sub example A2
    \end{mylist}
\end{mylist}
    \end{minipage}

    \bigskip
    \begin{minipage}{\linewidth}
\begin{mylist}[series=ML, resume=ML]
   \item    example B
   \begin{mylist}
       \item    sub example B1
       \item    sub example B2
    \end{mylist}
\end{mylist}
    \end{minipage}
\end{document}

在此处输入图片描述

但是,如果我series=ML, resume=ML从选项转到mylist喜欢\setlist

\documentclass{article}
\usepackage{enumitem}
\newlist{mylist}{enumerate}{2}
\setlist[mylist,1]{leftmargin=*,label=\arabic*.,
                   series=ML, resume=ML  % <---
                   }
\setlist[mylist,2]{nosep, leftmargin=*, label=(\alph*)}

\begin{document}
    \begin{minipage}{\linewidth}
\begin{mylist}
   \item    example A
   \begin{mylist}
       \item    sub example A1
       \item    sub example A2
    \end{mylist}
\end{mylist}
    \end{minipage}

    \bigskip
    \begin{minipage}{\linewidth}
\begin{mylist}
   \item    example B
   \begin{mylist}
       \item    sub example B1
       \item    sub example B2
    \end{mylist}
\end{mylist}
    \end{minipage}
\end{document}

它引发错误:

! Package enumitem Error: Misplaced key 'series'.

有趣的是,如果我进行强制编译,我会得到想要的结果。

enumitem文档中(我使用的是 2019/06/20 的 3.9 版本),没有任何地方描述不允许这样series\setlist,但所有使用示例都如第一个 MWE 中所示。

有人知道如何确保enumitem它在第二个 MWE 中正常工作而不会出现错误吗?

编辑: 在纠正我的 MWE 中的错误(添加遗漏\begin{minipage}\end{minipage)意外后,我发现series从第二个示例中的列表定义中删除可以得到所需的结果:

\usepackage{enumitem}
\newlist{mylist}{enumerate}{2}
\setlist[mylist,1]{resume=ML  % <---
                   leftmargin=*, label=\arabic*, after=\vspace*{-0.5\baselineskip}
                   }
\setlist[mylist,2]{nosep, leftmargin=*, label=(\alph*)}

答案1

只需在初始声明中添加\setlist[mylist]{resume}即可。这里不需要系列。

示例输出

\documentclass{article}
\usepackage{enumitem}
\usepackage{lipsum}
\newlist{mylist}{enumerate}{2}
\setlist[mylist]{resume}% <=================
\setlist[mylist,1]{leftmargin=*,label=\arabic*.}
\setlist[mylist,2]{nosep, leftmargin=*, label=(\alph*)}
\begin{document}
\lipsum[1][1-3]
    \begin{mylist}
        \item    example A
        \begin{mylist}
            \item    sub example A1
            \item    sub example A2
        \end{mylist}
    \end{mylist}
\lipsum[1-2][1-3]
    \begin{mylist}
        \item    example B
            \begin{mylist}
                \item    sub example B1
                \item    sub example B2
            \end{mylist} 
        \lipsum[1][1-3]
        \begin{mylist}
            \item    sub example B1
            \item    sub example B2
        \end{mylist}
    \end{mylist} 
\end{document}

相关内容