枚举:使定理中的标签和项目左对齐

枚举:使定理中的标签和项目左对齐

正如标题所说:我想列出一个清单,其中两个都标签和项目都向左对齐。目前我只能获得其中一个。

最小工作示例:

\documentclass{report}
\usepackage{amsthm}
\usepackage{enumitem}

\newtheoremstyle{theorem}
    {1em}{}{\itshape}{}{\bfseries}{}{1em}
    {\thmname{#1}\thmnumber{ #2}\thmnote{ (\normalfont\textit{#3})}}
\theoremstyle{theorem}
\newtheorem{thm}{Theorem}[section]

\begin{document}
\begin{thm}
\mbox{}\vspace{-0.175cm}
\begin{enumerate}[leftmargin=0.87cm, labelsep=0.325cm, 
    align=left, itemsep=-0.1cm, font=\normalfont, label=(\roman*)]

    \item First item.
    \item Second item.
    \item Third item.

\end{enumerate}
\end{thm}
\end{document}

除了每次猜测和手动调整之外,我还想要一种方法来使标签与边距左对齐。

它看起来应该是这样的:

(i)    First item.
(ii)   Second item.
(iii)  Third item. 
(iv)   Fourth item. 
etc.

答案1

让我们enumitem弄清楚leftmargin=*align=left

在此处输入图片描述

根据您的评论,如果您希望它左对齐但有一些缩进,那么您可以定义自定义对齐方式:

\SetLabelAlign{LeftAlignWithIndent}{\hspace*{2.0ex}\makebox[1.5em][l]{#1}}

然后使用align=LeftAlignWithIndent你得到:

在此处输入图片描述

笔记:

代码:

\documentclass{report}
\usepackage{amsthm}
\usepackage{enumitem}
\usepackage{showframe}

\SetLabelAlign{LeftAlignWithIndent}{\hspace*{1.0ex}\makebox[1.25em][l]{#1}}

\newtheoremstyle{theorem}
    {1em}{}{\itshape}{}{\bfseries}{}{1em}
    {\thmname{#1}\thmnumber{ #2}\thmnote{ (\normalfont\textit{#3})}}
\theoremstyle{theorem}
\newtheorem{thm}{Theorem}[section]

\begin{document}
\begin{thm}
\mbox{}\vspace{-0.175cm}
\begin{enumerate}[leftmargin=*, labelsep=*, 
    align=left, itemsep=-0.1cm, font=\normalfont, label=(\roman*)]

    \item First item.
    \item Second item.
    \item Third item.

\end{enumerate}
\end{thm}
    
\begin{thm}
\mbox{}\vspace{-0.175cm}
\begin{enumerate}[leftmargin=*, align=LeftAlignWithIndent, 
    itemsep=-0.1cm, font=\normalfont, label=(\roman*)]

    \item First item.
    \item Second item.
    \item Third item.

\end{enumerate}
\end{thm}
\end{document}

答案2

这样可以吗?我引入了依赖于字体的参数值,这样您就可以更改它(大小、系列)而无需重新计算它们。我定义了一个labelwidth足够大的尺寸,以使标签不会与项目主体重叠。

我认为,如果您希望标签从距左边距非零的距离开始,则它们右对齐看起来会更好。我给出了一个例子。

\documentclass{report}
\usepackage[utf8]{inputenc}
\usepackage{amsthm}
\usepackage{enumitem}

\newtheoremstyle{theorem}
    {1em}{}{\itshape}{}{\bfseries}{}{1em}
    {\thmname{#1}\thmnumber{ #2}\thmnote{ (\normalfont\textit{#3})}}
\theoremstyle{theorem}
\newtheorem{thm}{Theorem}[section]

\begin{document}

\begin{thm}\mbox{}
\begin{enumerate}[wide = 0pt, labelwidth = 2em, labelsep*=0em, itemindent = 0pt, leftmargin = \dimexpr\labelwidth + \labelsep\relax, noitemsep,topsep = 1ex, font=\normalfont, label=(\roman*)]

    \item First item.
    \item Second item. Second item. Second item. Second item. Second item. Second item. Second item. Second item.
    \item Third item.

\end{enumerate}
\end{thm}

\begin{thm}\mbox{}
Text text text text text text text text text text text text text text text text text text text text text text text text text.
\begin{enumerate}[wide = 0pt,align = right, labelwidth = 3em, leftmargin =\dimexpr\labelwidth + \labelsep\relax , noitemsep,topsep = 1ex, font=\normalfont, label=(\roman*)]
    \item First item.
    \item Second item. Second item. Second item. Second item. Second item. Second item. Second item. Second item.
    \item Third item.

\end{enumerate}
\end{thm}

\end{document} 

在此处输入图片描述

相关内容