\noalign 无换行符/附加空格

\noalign 无换行符/附加空格

我需要一个不间断的版本/重新定义,\noalign以便在环境结束时使用它(在本例中为 align)。到目前为止,我一直在寻找的标准定义,以便\noalign基于它编写重新定义,但到目前为止我还没有找到任何东西。

\noalign如果有人能够提供一个定义,而不自动创建新行(而是由\noalign{}\\),那就太好了。

更清楚一点:如果你在对齐环境中定义一个\noalign-row 并在其后立即关闭环境而没有任何填充内容(数学)的行,则文档中会出现一些空格/跳过。我根本不想要这个空格,并希望有一个解决方法。;)

最小:

\documentclass{article}
\usepackage{amsmath}

\begin{document}
\section{minimal}
lipsum
\begin{align*}
\eta_D &= \eta_0 \cdot \eta_R \cdot \eta_H
\end{align*}
normal spacing above
new round
\begin{align*}
\noalign{\centering $\eta_D = \eta_0 \cdot \eta_R \cdot \eta_H$}
\end{align*}
extended spacing below the align-env.
\end{document}

答案1

\noalign不是环境的伴侣align

它是一个 TeX 基元,会产生一些影响,但在本例中没有计划。正如 @egreg 在本例中已经建议的那样,为什么不简单地将文本放在对齐之后?

如果你真的想这样做,那么你可以这样做

\noalign{\hbox{some content}\kern-\baselineskip}

但我不推荐它。

答案2

正如已经指出的那样,\noalign不适合在定义的乳胶结构中使用amsmath。也许这就是你正在寻找的?

示例代码的输出

\documentclass{article}
\usepackage{mathtools}

\begin{document}
\section{minimal}
lipsum
\begin{align*}
\eta_D &= \eta_0 \cdot \eta_R \cdot \eta_H
\end{align*}
normal spacing above
new round
\begin{align*}
 \eta_D &= \eta_0 \cdot \eta_R \cdot \eta_H\\
 \shortintertext{some random text}
 \theta_D &= \theta_0 \cdot \theta_R \cdot \theta_H
\end{align*}
extended spacing below the align-env.
\end{document}

实际上,不建议将align环境用于单行,无论是编号还是未编号的行。对于未编号的行,建议使用\[ ... \]或,对于编号的行,建议使用无星号环境。当用于单行显示时,关于多行环境格式不良的投诉或“错误报告”将被拒绝。\begin{equation*} ... \end{equation*}equationamsmath

相关内容