在定理类型环境中将“枚举”标签的样式设置为“向下一级”

在定理类型环境中将“枚举”标签的样式设置为“向下一级”

我想将enumerate定理类型环境中的标签样式设置为定理环境之外的标签样式,但“向下一级”。也就是说,定理内部的 1 级标签看起来像定理外部的 2 级标签,定理内部的 2 级标签看起来像定理外部的 3 级标签,依此类推。如何“巧妙地”做到这一点?

在下面的 MWE 中,我可以在不同级别更改标签的样式,但我不想将它们更改为任意样式,而是更改为比文档类的默认样式低一级的样式。

\documentclass{scrreprt}

\usepackage{enumitem}

\usepackage{amsthm}

\newtheorem{theorem}{Theorem}[chapter]
\newtheorem{proposition}{Proposition}[chapter]
\newtheorem{lemma}{Lemma}[chapter]

%below changes enumerate label styles in theorem environments.
%See: https://tex.stackexchange.com/a/413862/9789
\usepackage{etoolbox}
\usepackage{pgffor}
\foreach \theoremenv in {theorem,proposition,lemma} {
  \AtBeginEnvironment{\theoremenv}{%
        \setlist[enumerate,1]{ref={\alph*},label={(\alph*)}}
        \setlist[enumerate,2]{ref={\roman*},label={\roman*.}}
        \setlist[enumerate,3]{ref={\Alph*},label={\Alph*.}}
  }
}

\begin{document}

\begin{theorem}
This is a theorem. It has a few parts:
\begin{enumerate}
    \item The first thing
    \begin{enumerate}
        \item The first part of the first thing
        \item The second part of the second thing
    \end{enumerate}
    \item The second thing
\end{enumerate}
\end{theorem}

\end{document}

答案1

列表深度使用计数器处理\@listdepth。您需要添加\global\advance\@listdepth\@ne到开始环境和\global\advance\@listdepth\m@ne结束环境,以模拟嵌套列表中的列表深度调整。请注意,这将适用于枚举和逐项列表。

(当然,您需要执行\makeatletter并访问名称中的\makeatother命令。@

相关内容