enumerate
我正在努力通过或获得正确的水平对齐description
。
我用简单的粗体阿拉伯数字后面跟着一个点作为标签。这些是练习的参考,因此它们可以从1.到14.到57.例如,因此需要易于定制。标签不能超出边距(我尝试过wide
此选项)并且不能缩进。我希望项目文本不缩进(从第二行开始)以节省空间,但我可以接受它缩进到与第一行文本对齐。
然后有些练习有题目A。,b.等需要enumerate
环境。A。标签将位于第一行,紧挨着1.例如,b.将在另一行(显然)。我无法从我在这里找到的答案中解决的主要问题是:我想要A。,b.,...标签与其项目文本一起水平对齐。
最后,我不希望在序言中写太多代码,因为该文件旨在让对 LaTeX 了解有限的人轻松重复使用。但我主要关心的是把事情做好,所以如果需要自定义环境,那就这样吧。
以下是我的代码的当前状态:
\documentclass[12pt, letterpaper]{article}
\usepackage[margin=1in, includefoot,showframe]{geometry}
\usepackage{enumitem}
\newcommand\setItemNumber[1]{\setcounter{enumi}{\numexpr#1-1\relax}}
\begin{document}
\begin{enumerate}[label={\textbf{\arabic*.}},wide,leftmargin=*,labelindent=0pt]
\setItemNumber{19}
\item bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
\setItemNumber{23}
\item \begin{enumerate}[label=\textbf{\alph*.}]
\item First question
\item Second question
\end{enumerate}
\end{enumerate}
\end{document}
编辑
为了获得相同的结果description
,我使用了以下代码:
\documentclass[12pt, letterpaper]{article}
\usepackage[margin=1in, includefoot,showframe]{geometry}
\usepackage{enumitem}
\begin{document}
\begin{description}
\item[2.] bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
\item[56.] \begin{enumerate}[label=\textbf{\alph*.}]
\item bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
\item bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
\end{enumerate}
\end{description}
\end{document}
答案1
您没有解释描述问题,但是这里是枚举问题, if I've well understood: for the 1st level enumerate, the solution is simply
wide=0pt` 的解决方案,对于第二级来说稍微复杂一些。
\documentclass[12pt, letterpaper]{article}
\usepackage[margin=1in, includefoot,showframe]{geometry}
\usepackage[shortlabels]{enumitem}
\newcommand\setItemNumber[1]{\setcounter{enumi}{\numexpr#1-1\relax}}
\setlist[enumerate, 1]{1., font=\bfseries, wide=0pt}
\setlist[enumerate, 2]{a., font=\bfseries, wide=2em, leftmargin=2em, topsep=0pt, before=\leavevmode\vspace*{-\glueexpr\baselineskip+\parskip}}
\begin{document}
\begin{enumerate}[start=19]
\item bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
\setItemNumber{23}
\item \begin{enumerate}
\item First question
\item Second question. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
\end{enumerate}
\item All mimsy were the borogoves,
And the mome raths outgrabe.
\end{enumerate}
\end{document}
答案2
最简单的解决方案仅使用 enumitem。此包非常高效,无需添加任何内容:
要使标签末尾和文本开头之间的间距相同,只需删除“align”或将其替换为 align=right。但无论发生什么,您都必须决定对齐哪一侧。
\documentclass{article}
\usepackage{enumitem}
\usepackage{lipsum}
\usepackage{calc}
\newcommand{\setItemNumber}[1]{\setcounter{enumi}{\numexpr#1-1}}
\setlist[enumerate, 1]{label=\arabic*.,font=\bfseries,widest=50,leftmargin=\labelwidth+\labelsep,align=left}
\setlist[enumerate, 2]{label=\alph*., font=\bfseries, leftmargin=*, topsep=0pt}
\begin{document}
\lipsum[1-2][1-4]
\begin{enumerate}
\item \lipsum[1-2][1-4]
\setItemNumber{19}
\item \lipsum[1-2][1-4]
%\setcounter{enumi}{19}
\setItemNumber{23}
\item \begin{enumerate}
\item \lipsum[1-2][1-4]
\item \lipsum[1-2][1-4]
\end{enumerate}
\item \lipsum[1-2][1-4]
\end{enumerate}
\end{document}
答案3
添加widest=99
选项可修复水平对齐:
\documentclass[12pt, letterpaper]{article}
\usepackage[margin=1in, includefoot,showframe]{geometry}
\usepackage{enumitem}
\newcommand\setItemNumber[1]{\setcounter{enumi}{\numexpr#1-1\relax}}
\begin{document}
\begin{enumerate}[label={\textbf{\arabic*.}},wide,widest=99,leftmargin=*,labelindent=0pt]
\setItemNumber{19}
\item bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
\setItemNumber{23}
\item \begin{enumerate}[label=\textbf{\alph*.}]
\item First question
\item Second question
\end{enumerate}
\end{enumerate}
\end{document}