假设我有这个简单的代码
\begin{theorem}
\begin{enumerate}[nolistsep]
\item[(1)] This is the first item
\item[(2)] This is the second item
\end{enumerate}
\end{theorem}
我的问题是:如何将列表 ((i)、(ii) 和 (iii)) 项的标签放在行的最开头,恰好在定理单词。
笔记:我用
\AtBeginEnvironment{theorem}{\setlist[enumerate,1]{label=\arabic*,font=\upshape}}
在法典的序言中。
答案1
如何将列表 ((i)、(ii) 和 (iii)) 中项目的标签放在行的最开始,恰好在“定理”一词的下方?
amsthm
这是一个采用、enumitem
和包机制的解决方案etoolbox
。
\documentclass{article} % or some other suitable document class
\usepackage{amsthm} % for \newtheoremstyle, \theoremstyle, and \newtheorem macros
\newtheoremstyle{break}% % See p. 9 of user guide of amsthm package
{}{}{\itshape}{}{\bfseries}{.}{\newline}{}
\theoremstyle{break}
\newtheorem{brktheorem}{Theorem}
\usepackage{enumitem} % for \setlist macro
\usepackage{etoolbox} % for \AtBeginEnvironment macro
\AtBeginEnvironment{brktheorem}{\setlist[enumerate,1]{%
nolistsep, left=0pt, align=left, label=\upshape(\roman*),
% See p. 10 of user guide of amsthm package:
before=\leavevmode\vspace{-\baselineskip}
}}
\begin{document}
\begin{brktheorem}
\begin{enumerate}
\item This is the first item.
\item This is the second item.
\end{enumerate}
\end{brktheorem}
\end{document}
答案2
我建议定义一个特殊的枚举环境,我将其命名roster
(在 AMS-TeX 中就是这样称呼的)。
对于偶尔以 开头的定理roster
,只需添加\mbox{}
(如果需要,可以在 之后添加\label
),但要避免仅用枚举的定理:用几个词介绍它们通常更好。
\documentclass{article}
\usepackage{amsthm}
\usepackage{enumitem}
\newlist{roster}{enumerate}{1}
\setlist[roster]{
nolistsep,
label=(\roman*),
font=\upshape,
left=0pt,
align=left,
widest=(iii),
labelsep=0pt,
}
\newtheorem{theorem}{Theorem}
\begin{document}
\begin{theorem}\mbox{}
\begin{roster}
\item This is the first item
\item This is the second item
\end{roster}
\end{theorem}
\end{document}