使用 enumitem,如何从列表中的单个项目中删除标签和缩进?

使用 enumitem,如何从列表中的单个项目中删除标签和缩进?

我正在使用 enumitem 包在 LaTeX 中创建一个列表,但在设置列表中某项的对齐方式时遇到了问题。对于那一项,我想删除标签减少缩进,以便项目与前一个项目的标签对齐。

这是我目前正在使用的代码:

\usepackage{enumitem}

\begin{enumerate}
  \item Item 1
  \item Item 2
  \item Item 3
  \item Item 4
  \item[] Item 5
\end{enumerate}

看起来像这样:

1. Item 1
2. Item 2
3. Item 3
4. Item 4
   Item 5

但我想要的是这个:

1. Item 1
2. Item 2
3. Item 3
4. Item 4
Item 5

创建新段落不起作用,因为 LaTeX 会自动在列表后创建空格,而第 5 项需要成为列表的一部分。

提前致谢!

答案1

稍微改变你的语法(只是为了添加更多功能),你可以使用\item*

在此处输入图片描述

\documentclass{article}

\usepackage{enumitem,xparse}

\setlength{\parindent}{0pt}% Just for this example

\let\oldenumerate\enumerate
\let\endoldenumerate\endenumerate
\RenewDocumentEnvironment{enumerate}{O{}}
  {\begin{oldenumerate}[#1]
     \let\olditem\item
     \RenewDocumentCommand{\item}{s}{%
       \IfBooleanTF{##1}
         {\olditem[]\hspace*{\dimexpr-\labelindent-\labelwidth-\labelsep}\ignorespaces}
         {\olditem}}
     }
  {\end{oldenumerate}}

\begin{document}

Some reference text.

\begin{enumerate}
  \item Item 1
  \item Item 2
  \item Item 3
  \item Item 4
  \item[] Item 5
\end{enumerate}

Some reference text.

\begin{enumerate}[label=\roman*]
  \item Item 1
  \item Item 2
  \item Item 3
  \item Item 4
  \item* Item 5
\end{enumerate}

Some reference text.

\end{document}

上述enumerate环境的重新定义保留了以下提供的可选参数功能:enumitem同时改变了功能方式\item;它添加了带星号的\item*版本。此*版本将常规\item[]和退格设置为边距。

相关内容