为什么列表中的缩进消失了?

为什么列表中的缩进消失了?

考虑一下这个小文件:

\documentclass{article}

\usepackage{blindtext}

\begin{document}

\blindtext

\blindtext

\begin{enumerate}
\item%
\blindtext

\blindtext
\end{enumerate}

\end{document}

这有两个段落位于列表环境之外,还有两个段落位于列表环境之内。我注意到在这种情况下,列表之外的段落的第一行缩进,而列表之内的段落没有任何缩进:

已编译且带有标记的文档

为什么会发生这种情况?我可以恢复列表内的缩进吗?

编辑:我注意到在列表中,默认情况下段落之间是用空行分隔的。最好解决方案也应该去掉这个。(为了便于理解,我正在写一个作业的解决方案,几乎每个段落都在一个enumerate或类似的行内。)

答案1

\item属性可以用 格式化enumitem。然后你可以使用listparindent环境enumerate

\documentclass{article}

\usepackage{blindtext}
\usepackage{enumitem}
\setlist[enumerate]{parsep=0pt}

\begin{document}

\blindtext

\blindtext

    \begin{enumerate}[listparindent=1.5em]

        \item
        \blindtext

        \blindtext

    \end{enumerate}

\end{document}

在此处输入图片描述

编辑:感谢@David,如果您想摆脱那个空间,您也可以\parsep设置。0

答案2

出现这种情况的原因是内部enumerate长度\parindent设置为零。因此您不能\indent像在普通文本中一样使用简单的方法来获取设置的空间\parindent

您可以使用以下代码模拟普通文本中的通常行为(请参阅<=====重要代码):

\documentclass{article}

\usepackage{blindtext}
\usepackage{enumitem} % <===============================================
\newlength{\enumerateparindent} % <=====================================

\begin{document}

\setlength{\enumerateparindent}{\parindent} % <=========================
\blindtext

\blindtext

\begin{enumerate}
\setlength{\parindent}{\enumerateparindent} % <=========================
%\show\parindent 
%\value{\parindent}
\item%
\blindtext

\blindtext
\end{enumerate}

Version 2:
\begin{enumerate}[listparindent=\enumerateparindent] % <================
\item%
\blindtext

\blindtext
\end{enumerate}

\end{document}

以及期望的结果:

在此处输入图片描述

请查看,该命令仅在您将命令放入的列表\setlength{\parindent}{\enumerateparindent}中起作用......enumerate

如果您已经在使用包enumitem——如评论中提到的那样——您可以使用它来使用\parindent我的 mwe 中版本 2 中定义的相同缩进。

您将获得结果版本 2:

在此处输入图片描述

相关内容