我将方程式放在节标题之后、节标题之前或两者之间。我知道不建议这样做,但我相信在我的上下文中它看起来更好。我注意到一件有趣的事情是\[...\]
(我认为只是映射到\begin{equation*}...\end{equation*}
)识别出上方是否有\section{...}
并相应地调整空间。但是,\begin{align*}...\end{align*}
不会:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[margin=1.0in]{geometry}
\usepackage{microtype}
\usepackage[fleqn]{mathtools}
\setlength{\mathindent}{0pt}
\setlength{\parindent}{0pt}
\newlength{\wthis} % used to make rule look nice with normal text
\settowidth{\wthis}{This}
\begin{document}
\section*{\rlap{\rule{10cm}{0.4pt}}TEST}
\[
\rlap{\rule{10cm}{0.4pt}}
a^2 + b^2 = c^2
\]
\section*{\rlap{\rule{10cm}{0.4pt}}TEST}
\vspace{2em}
\section*{\rlap{\rule{10cm}{0.4pt}}TEST}
\begin{equation*}
\rlap{\rule{10cm}{0.4pt}}
a^2 + b^2 = c^2
\end{equation*}
\section*{\rlap{\rule{10cm}{0.4pt}}TEST}
\vspace{2em}
\section*{\rlap{\rule{10cm}{0.4pt}}TEST}
\begin{align*}
\rlap{\rule{10cm}{0.4pt}}
a^2 + b^2 = c^2
\end{align*}
\section*{\rlap{\rule{10cm}{0.4pt}}TEST}
\vspace{4em}
This\rlap{\hspace{-\wthis}\rule{10cm}{0.4pt}} is a line of text for testing purposes.
\[
\rlap{\rule{10cm}{0.4pt}}
a^2 + b^2 = c^2
\]
This\rlap{\hspace{-\wthis}\rule{10cm}{0.4pt}} is a line of text for testing purposes.\par
\vspace{2em}
This\rlap{\hspace{-\wthis}\rule{10cm}{0.4pt}} is a line of text for testing purposes.
\begin{equation*}
\rlap{\rule{10cm}{0.4pt}}
a^2 + b^2 = c^2
\end{equation*}
This\rlap{\hspace{-\wthis}\rule{10cm}{0.4pt}} is a line of text for testing purposes.\par
\vspace{2em}
This\rlap{\hspace{-\wthis}\rule{10cm}{0.4pt}} is a line of text for testing purposes.
\begin{align*}
\rlap{\rule{10cm}{0.4pt}}
a^2 + b^2 = c^2
\end{align*}
This\rlap{\hspace{-\wthis}\rule{10cm}{0.4pt}} is a line of text for testing purposes.
\end{document}
在文本中,所有这些方法都如预期一样具有额外的空间,因此看起来不错。我的问题是,当它们被放置在 s 之后和\section
s 之前的奇怪位置时。
是否有理由将这个额外的空间添加到align
而不是equation
?我认为,如果其中一个功能可用,则另一个功能应该也一样。此外,为什么这对下面的额外空间不起作用(两者都添加了额外的空间\belowdisplayskip
)?\[...\]
/\begin{equation*}...\end{equation*}
是否只能识别\section
上面的 s?
笔记:我没有使用align*
这些基本方程的环境。我只是使用这个基本方程,以便在所有三个(实际上是两个)环境中使用相同的文本。
答案1
“原始” \[
...\]
以及 环境equation
使用 TeX 的垂直空间机制。 如果之前的行较短,\abovedisplayshortskip
则将使用 代替\abovedisplayskip
。
amsmath
包( gather
, , ...)的环境align
使用方程式 (多行、方程式编号的自动移动,...) 使事情变得更加复杂。因此,它仅使用\abovedisplayskip
。
带有调试代码的示例以显示主垂直列表:
\documentclass{article}
\usepackage[a6paper]{geometry}
\usepackage{amsmath}
\begin{document}
\section{Test}
\[ E=mc^2 \]
\section{Test}
\begin{align*} E=mc^2 \end{align*}
\showboxdepth=\maxdimen
\showboxbreadth=\maxdimen
\tracingonline=1
\showlists
\end{document}