在枚举中使用 \hangindent

在枚举中使用 \hangindent

我想在枚举项的段落内有一个悬挂缩进。我有以下内容:

\begin{document}
\begin{enumerate}
    \item Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus id diam id ante ullamcorper vestibulum eu non nisl. Curabitur interdum laoreet massa, eu eleifend risus placerat nec. Suspendisse potenti.

    Mauris nunc risus, congue id sollicitudin id, sagittis quis elit. Proin blandit, orci vitae vehicula faucibus, est leo facilisis ante, quis venenatis mi dolor ut tellus.
    \item Integer aliquam mollis lacus, in fermentum tellus pharetra eget. Donec suscipit condimentum tincidunt. Mauris odio felis, ultricies non lobortis non, suscipit in magna.

    Nam venenatis dolor turpis. Mauris fermentum, est ac dapibus accumsan, lorem orci vulputate nunc, quis laoreet augue elit pulvinar dui. Curabitur eu enim quis dolor interdum vehicula eget vitae ipsum.
\end{enumerate}
\end{document}

输出:

我希望它输出:

但是,似乎在环境\hangindent中不起作用,因为使用了,它会覆盖。\itemenumerate\item\parshape\hangindent

我怎样才能实现这个目标?

答案1

您的诊断是正确的:\parshape由 发出的\item会覆盖任何\hangindent设置。您可以使用enumitem包;1em根据您的喜好进行调整。

\documentclass{article}
\usepackage{enumitem}
\usepackage{lipsum}

\begin{document}

\lipsum*[2]
\begin{enumerate}[
  leftmargin=\dimexpr\leftmargini+1em\relax,
  labelindent=-1em,
  listparindent=-1em,
  itemindent=-1em
]
\item Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus id diam id 
ante ullamcorper vestibulum eu non nisl. Curabitur interdum laoreet massa, eu eleifend 
risus placerat nec. Suspendisse potenti.

Mauris nunc risus, congue id sollicitudin id, sagittis quis elit. Proin blandit, orci 
vitae vehicula faucibus, est leo facilisis ante, quis venenatis mi dolor ut tellus.

\item Integer aliquam mollis lacus, in fermentum tellus pharetra eget. Donec suscipit 
condimentum tincidunt. Mauris odio felis, ultricies non lobortis non, suscipit in magna.

Nam venenatis dolor turpis. Mauris fermentum, est ac dapibus accumsan, lorem orci 
vulputate nunc, quis laoreet augue elit pulvinar dui. Curabitur eu enim quis dolor 
interdum vehicula eget vitae ipsum.
\end{enumerate}

\begin{enumerate}
\item Test
\end{enumerate}

\end{document}

我添加了另一个enumerate环境以显示标签位置相同,并添加了一个\lipsum段落来显示全局方面。

在此处输入图片描述

如果您在嵌套列表中需要它,我建议定义一个新的环境:

\makeatletter
\newenvironment{enumeratehang}
  {\enumerate[
    leftmargin=\dimexpr\csname leftmargin\romannumeral\@enumdepth\endcsname+1em\relax,
    labelindent=-1em,
    listparindent=-1em,
    itemindent=-1em
   ]}
  {\endenumerate}
\makeatother

这将允许您使用\begin{enumeratehang}并且也可以与其他enumeratehang(或enumerate)环境嵌套工作。

对于嵌套环境,我们必须使用正确的左边距;计数器\@enumdepth存储嵌套级别,因此\romannumeral\@enumdepth将产生、、i等;因此构造将给出等,这些是 LaTeX 存储各个嵌套级别的左边距的长度参数。我们为这些添加 1em,与开头给出的简单示例一致。iiiii\csname\leftmargini\leftmarginii

相关内容