正如标题所说:我想列出一个清单,其中两个都标签和项目都向左对齐。目前我只能获得其中一个。
最小工作示例:
\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
你得到:
笔记:
- 包裹
showframe
仅用于显示页边距。实际使用中不需要它。
代码:
\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}