我想在枚举项的段落内有一个悬挂缩进。我有以下内容:
\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
中不起作用,因为使用了,它会覆盖。\item
enumerate
\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,与开头给出的简单示例一致。ii
iii
\csname
\leftmargini
\leftmarginii