为什么对齐环境之前的换行会产生额外的空间,而 itemize 却不会?

为什么对齐环境之前的换行会产生额外的空间,而 itemize 却不会?

正如您在下面的示例中看到的,itemize无论 之前是否有换行符,环境都是相同的\begin{itemize}。但是,align如果放入换行符,环境将具有明显更多的空间。首先,为什么会这样?其次,有没有办法让环境align表现得像itemize——或者是否有align可以使用的具有相同功能的替代包?

\documentclass{article}
\usepackage{amsmath}

\begin{document}
Here are some items without a line break:
\begin{itemize}
\item A
\item B
\item C
\end{itemize}

Here are some items with a line break:

\begin{itemize}
\item A
\item B
\item C
\end{itemize}

Here is an equation without a line break:
\begin{align}
X = 2
\end{align}

Here is an equation with a line break

\begin{align}
X = 2
\end{align}

\end{document}

在此处输入图片描述

答案1

你的假设是错误的:itemize 如果前面有一个空行,则行为会有所不同。以下是证明:

\documentclass{article}
\usepackage{amsmath}

\setlength{\partopsep}{40pt} % very large value to emphasize the effect

\begin{document}
Here are some items without a line break:
\begin{itemize}
\item A
\item B
\item C
\end{itemize}

Here are some items with a line break:

\begin{itemize}
\item A
\item B
\item C
\end{itemize}

Here is an equation without a line break:
\begin{align}
X = 2
\end{align}

Here is an equation with a line break

\begin{align}
X = 2
\end{align}

\end{document}

通过为 赋予非常大的值来强调效果,它是存储在列表环境(、或)之前和之后\partopsep添加的垂直空间量的参数。它在标准类中的默认值是,因此非常小但引人注目。\topsepitemizeenumeratedescription2pt plus 1pt minus 1pt

另一方面,LaTeX 的amsmath出发点是数学显示永远不应该成为段落的开头。这是实施的结果,这样做会添加一个空行。

在此处输入图片描述

答案2

(评论太长,因此作为答案发布。请不要投票。

你的断言

itemize无论前面是否有换行符,环境都是相同的\begin{itemize}

并不完全正确,如以下示例所示。它使用双列文档布局。请注意,两个\hrules 并不完全对齐。(顺便说一句,我将您的术语“换行符”解释为“空白行”。)

在此处输入图片描述

显然,差异并不像案例中那么明显align,但绝对不是零。

值得注意的是,这两个\hrule数字确实完美地吻合如果环境之前的行itemize以明确的语句终止\par

\documentclass[twocolumn]{article}
\setlength\parindent{0pt}

\begin{document}
\verb+itemize+ environment not preceded by a blank line
\begin{itemize}
\item A
\item B
\item C
\end{itemize}
\hrule

\newpage% force a column break
\verb+itemize+ environment preceded by a blank line

\begin{itemize}
\item A
\item B
\item C
\end{itemize}
\hrule
\end{document}

相关内容