我有一篇使用子方程和 parskip 包的文档。如果子方程环境之前的段落完全填满到最后一行,那么本段落和以下子方程之间就会出现额外的垂直空白。我猜这是一个错误,但我不确定,我也没有足够的 TeX 知识来尝试修复它。我该如何修复这个空白问题?
下面是一个显示行为的 MWE,至少在 LaTeX2e <2003/12/01> 和 pdfeTeX 3.141592-1.21a-2.2 上是如此(不幸的是,这台机器上只安装了旧的 tetex 发行版)。
\documentclass[a4paper,11pt]{article}
\usepackage{parskip}
\usepackage{amsmath}
\begin{document}
The subequations environment provides a convenient way to number a foos
\begin{subequations}\label{foo}
\begin{align}
x^2 + y^2 &= z^2\\
a &= b + c
\end{align}
\end{subequations}
\end{document}
答案1
问题是,后面的空格foos
不会在换行符处消失,因为\begin{subequations}
后面有(我不知道具体原因)。
在段落之间使用\begin{subequations}
,或者说
\usepackage{etoolbox}
\preto\subequations{\ifhmode\unskip\fi}
在 daleif 的例子中,问题是一样的:空格保留下来并在段落中生成新行。但是,空格\label
仅用于\pageref
使用,因此必须必须附加到一个单词上,否则引用可能会偏离一个词。
答案2
不知道这里到底发生了什么。但这是一个更简单的例子
\documentclass[a4paper,11pt]{article}
\usepackage{amsmath}
\begin{document}
\noindent The subequations environment provides a convenient way to
number a foos%
\label{foo}
\begin{align}
x^2 + y^2 &= z^2\\
a &= b + c
\end{align}
\end{document}
删除%
后我们就会重新处理您的问题。
答案3
以下示例显示 位于\mbox
新行中,并且我们获得与 之前没有空格时相同的垂直空间\mbox
\documentclass[a4paper,11pt]{article}
\usepackage{amsmath}
%\usepackage{microtype}
\begin{document}
\noindent The subequations environment provides a convenient way to
number a foos
\mbox{}\rlap{\rule{1pt}{2ex}\rule{0.6\linewidth}{1pt}}
\begin{align}
x^2 + y^2 &= z^2\\
a &= b + c
\end{align}
\end{document}