数学环境(如 align)会在它们周围留出垂直空间,以将它们与文本分开。这很好,如果我想更改它,我可以检查这个问题。
但是,这些环境还会在浮动图形内的数学环境上方添加垂直空间(一个\abovedisplayskip
)。这样,页面的第一行就不会与其他第一行对齐,看起来很奇怪,而且浪费空间。
作为一名 MWE,我有这个
\documentclass{article}
\usepackage{showframe,amsmath}
\begin{document}
This is regular text on the first line
\begin{align*}
\text{There is space before this, which is good}
\end{align*}
More regular textx.
\clearpage
\begin{figure}[t]
\begin{align*}
\text{This is not on the first line}
\end{align*}
\caption{A figure with extra space}
\end{figure}
Some text for the second page.
\end{document}
产生
如果我预计该空间不存在,那么我对 Tex 的期望是否太高了?有没有办法集中解决这个问题,而不会影响数学环境周围的其他垂直空间?
答案1
align
对于一个 中有多个 s 的情况,我不知道该怎么做figure
。我从未见过有人在 a 中使用显示数学figure
,我也不知道这样做的价值。所以我只给出了摆脱 s 的解决方案,\abovedisplayskip
但这figure
并不是你想要的。
% arara: pdflatex
\documentclass{article}
\usepackage{amsmath}
\usepackage{etoolbox}
\makeatletter
\AtBeginEnvironment{figure}{\def\@floatboxreset{\setlength{\abovedisplayskip}{0pt}}}
\makeatother
\begin{document}
This is regular text on the first line
\begin{align*}
\text{There is space before this, which is good}
\end{align*}
More regular text.
\clearpage
\begin{figure}
\begin{align*}
\text{This is on the first line}
\end{align*}
\caption{A figure without any extra space}
\end{figure}
Some text for the second page.
\end{document}
您的案例确实很难编码,因为您必须检查它是align
浮点数中的第一个还是任何其他的浮点数。也许您最好编写自己的环境myfirstalign*
或类似的环境。