enumitem 文档

enumitem 文档

我使用该enumitem包来控制列表的外观。因为我想保留默认enumerate列表,所以我定义了一个新列表edulist并对其进行了配置。

该列表应在环境中使用edulistvar,这使用户能够使用itemsep可选参数进行更改。

我希望此列表继续,直到到达文档中的几个点(见\exercise下面的示例)。重置我想要执行的列表的计数器\restartlist<list-name>}似乎正是出于这个原因:

enumitem 文档

目前,

\setlist[enumerate]{resume}

您可以通过文档获得连续的编号。添加了一个新命令,用于在文档中间重新启动计数器:

\restartlist{<list-name>}

它完全基于列表名称,而不是列表类型,这意味着 enumerate*用包选项 inline 定义的与 不一样enumerate,因为其名称不同。

不幸的是,我无法在接下来的 MWE 中让它发挥作用。

代码

\documentclass{scrartcl}

\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{enumitem}
\usepackage{xparse}

\DeclareDocumentEnvironment {edulistvar} { O{0pt} } {
  \begin{edulist}[itemsep=#1]
}{
  \end{edulist}
}

\DeclareDocumentCommand \exercise {  } {%
  \bigskip
  \textsf{\bfseries\Large Exercise}
  \medskip
  \par
  \restartlist{edulist}
}


\newlist{edulist}{enumerate}{1}

\setlist[edulist]{%
  label=\alph*),    
  format=\sffamily,
  resume=edulist,
  partopsep=0ex,
  topsep=0.5\baselineskip,
  parsep=\parskip,
}

\begin{document}

\exercise

Bli Bla Blub

\begin{edulist}
  \item One
  \item Two
  \item Three
\end{edulist}

Bli Bla Blub

\begin{edulist}
  \item One
  \item Two
  \item Three
\end{edulist}

\exercise

Bli Bla Blub

\begin{edulistvar}[\baselineskip]
  \item One
  \item Two
  \item Three
\end{edulistvar}

\end{document}

文档

错误枚举

知道如何重置列表的计数器吗?手动重置 ( \setcounter{edulisti}{0}) 也不起作用。

答案1

我也不确定我是否理解了你的问题,但如果我理解正确的话,修改 MWE 来做你想要做的事情似乎很简单,而不需要最终用户的干预:

\documentclass{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{enumitem}
\usepackage{xparse}

\DeclareDocumentEnvironment {edulistvar} { O{0pt} } {
  \begin{edulist}[itemsep=#1, resume=edulist]
}{
  \end{edulist}
}

\DeclareDocumentCommand \exercise {  } {%
  \bigskip
  \textsf{\bfseries\Large Exercise}
  \medskip
  \par
  \restartlist{edulist}
}


\newlist{edulist}{enumerate}{1}

\setlist[edulist]{%
  label=\alph*),
  format=\sffamily,
  partopsep=0ex,
  topsep=0.5\baselineskip,
  parsep=\parskip,
  resume}

\begin{document}

\exercise

Bli Bla Blub

\begin{edulist}
  \item One
  \item Two
  \item Three
\end{edulist}

Bli Bla Blub

\begin{edulist}
  \item One
  \item Two
  \item Three
\end{edulist}

\exercise

Bli Bla Blub

\begin{edulistvar}[\baselineskip]
  \item One
  \item Two
  \item Three
\end{edulistvar}

\begin{edulistvar}[\baselineskip]
  \item One
  \item Two
  \item Three
\end{edulistvar}

\end{document}

恢复并重新启动

答案2

不确定我是否理解你的问题到底是什么,但series即使在另一个环境中也可以工作:

\documentclass{scrartcl}

\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{enumitem}

\begin{document}

\begin{center}
    \begin{enumerate}[label=\alph*), series=edu]
    \item One
    \item Two
    \item Three
  \end{enumerate}
\end{center}

Bli Bla Blub.

\begin{center}
    \begin{enumerate}[resume*=edu]
    \item One
    \item Two
    \item Three
  \end{enumerate}
\end{center}

Blibli Blabla Blubblub.

\begin{center}
    \begin{enumerate}[resume*=edu, start = 1]
    \item One
    \item Two
    \item Three
  \end{enumerate}
\end{center}

\end{document} 

在此处输入图片描述

答案3

最好的解决方案当然是创建一个命令来插入“练习”,以重置“枚举”列表计数器。必须将“枚举”列表配置为遵循编号。然后是“练习”,它允许您重新开始编号。当然,命令“练习”可以与计数器相关联。

\documentclass{scrartcl}
\usepackage[french]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{enumitem}
\newcommand{\Exercice}{{\noindent\Large\bfseries Exercice : }\par\vspace{0.2cm}\restartlist{enumerate}}
\setlist[enumerate]{label=\alph*),resume}
\begin{document}
\Exercice
    \begin{enumerate}
    \item One
    \item Two
    \item Three
  \end{enumerate}
Bli Bla Blub.
    \begin{enumerate}
        \item One
        \item Two
        \item Three
    \end{enumerate}
\Exercice
Blibli Blabla Blubblub
    \begin{enumerate}
        \item One
        \item Two
        \item Three
    \end{enumerate}
\end{document} 

结果是: 在此处输入图片描述

另一个解决方案是使用全局命令。

\documentclass{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{enumitem}
\usepackage{xparse}
\usepackage{etoolbox}

\NewDocumentCommand\currentname{}{}

\NewDocumentEnvironment {edulistvarstart} { O{0pt} } {
  \RenewDocumentCommand\currentname{}{enum-\theexercise}
  \begin{edulist}[itemsep=#1,series=\currentname]
}{
  \end{edulist}
}
\DeclareDocumentEnvironment {edulistvar} { O{0pt} } {
  \RenewDocumentCommand\currentname{}{enum-\theexercise}
  %don't know why this line is necessary
  \begin{edulist}[itemsep=#1, resume=\currentname]
}{
  \end{edulist}
}
\newcounter{exercise}
\DeclareDocumentCommand \exercise {  } {%
  \bigskip
  \textsf{\bfseries\Large Exercise}
  \medskip
  \par
  %\restartlist{edulist}
  \stepcounter{exercise}
}

\newlist{edulist}{enumerate}{1}
\setlist[edulist]{%
  label=\alph*),
  format=\sffamily,
  partopsep=0ex,
  topsep=0.5\baselineskip,
  parsep=\parskip,
  }
\begin{document}
\exercise
Bli Bla Blub
\begin{edulistvarstart}
  \item enum-\theexercise
  \item \currentname
  \item Three
\end{edulistvarstart}
Bli Bla Blub \currentname
\begin{edulistvar}
  \item enum-\theexercise
  \item \currentname
  \item Three
\end{edulistvar}
\exercise
Bli Bla Blub\currentname
\begin{edulistvarstart}[\baselineskip]
  \item enum-\theexercise
  \item \currentname
  \item Three
\end{edulistvarstart}
qsd qsdqs dqsd qsdqsdqsdd \currentname
\begin{edulistvar}[\baselineskip]
  \item enum-\theexercise
  \item \currentname
  \item Three
\end{edulistvar}
\exercise
Bli Bla Blub\currentname
\begin{edulistvarstart}[\baselineskip]
  \item enum-\theexercise
  \item \currentname
  \item Three
\end{edulistvarstart}
qsd qsd qsdsqq dqsd qds \currentname
\begin{edulistvar}[\baselineskip]
  \item enum-\theexercise
  \item \currentname
  \item Three
\end{edulistvar}
\end{document}

相关内容