在列表编号中包含章节编号

在列表编号中包含章节编号

作为后续行动这个问题,我想知道是否可以自动将当前节号(包括所有嵌套级别)包含在列表编号中。我该如何实现?

我想要的例子:

\section{This is section 1}
  \pointedenum\begin{enumerate}
    \item This item has number 1.1.
    \item This item has number 1.2.
    \pointedenum\begin{enumerate}
      \item This item has number 1.2.1.
    \end{enumerate}
  \end{enumerate}

  \subsection{This is section 1.1}
    \pointedenum\begin{enumerate}
      \item This item has number 1.1.1.
      \item This item has number 1.1.2.
    \end{enumerate}
% etcetera...

答案1

您可以重新定义\theenumi使用\thesection

\renewcommand*{\theenumi}{\thesection.\arabic{enumi}}
\renewcommand*{\theenumii}{\theenumi.\arabic{enumii}}

在这种情况下\pointedenum,省略将会破坏该重新定义。

也可以使用 来完成\thesubsection

或者,下面是使用该enumitem包的代码:

\usepackage{enumitem}
\setenumerate[1]{label=\thesection.\arabic*.}
\setenumerate[2]{label*=\arabic*.}

如果愿意的话,enumitem您可以继续使用编号。\begin{enumerate}[resume]

答案2

控制枚举列表中项目标签的变量是\labelenumi(对于顶层)、\labelenumii(次顶层)......您可以使用\renewcommand它们来重新定义为您想要的任何内容。

我希望这个能起作用,但我还没有尝试过:

\renewcommand{\labelenumi}{\thesection.\arabic{enumi}}
\renewcommand{\labelenumii}{\thesection.\arabic{enumi}.\arabic{enumii}}

答案3

我通常用包来解决这个问题enumerate。我总是用这个包来控制如何枚举项目,比如允许你指定\begin{enumerate}[(1)]括号中的数字等等。在序言中使用

\usepackage{enumerate}

然后:

\section{This is section 1}
\begin{enumerate}[\thesection .1]
\item This is item 1.1
\item This is item 1.2
\end{enumerate}

\subsection{This is section 1.1}
\begin{enumerate}[\thesubsection .1]
\item This is item 1.1.1
\item This is item 1.1.2
\end{enumerate}

此解决方案允许您仅在指定枚举时使用节编号。但是,如果您想全局执行此操作,我会使用上述 Stefan Kottwitz 的解决方案。

相关内容