在自定义环境中将 Setstretch 与 align 结合使用会产生不需要的垂直空间

在自定义环境中将 Setstretch 与 align 结合使用会产生不需要的垂直空间

我已经潜水很久了,但发现了一个问题,在这个讨论板上找不到答案。我创建了一个自定义的 alignedat 环境,其唯一目的是使用 \setstretch 减少行间距。

如下所示,在自定义环境中使用 \setstretch 时似乎有多余的空间,而在常规 alignedat 环境之前则没有。有人能告诉我在自定义环境中可以输入什么代码来纠正这个问题吗?任何关于为什么会发生这种情况的信息都将不胜感激。

\documentclass{article}
\usepackage{amsmath, amssymb, amsthm}
\usepackage{mathtools}
\usepackage{setspace}

\let\tempalignedat\alignedat
\let\endtempalignedat\endalignedat
\renewenvironment{alignedat}{
    \setstretch{.5}
    \tempalignedat}{\endtempalignedat}
    
\begin{document}

    Here is some filler text to demonstrate the spacing issue.
    \[\begin{alignedat}[t]{4}
        &\text{max}\quad  & z = 5x_1 & {}-{} &  x_2  \\
        &\text{s.t.}      &      x_1 & {}-{} & 3x_2 & {}\le{} & 1, \\
        &                 &      x_1 & {}-{} & 4x_2 & {}\le{} & 3, \\
        & & & &                 \mathllap{x_1, x_2} & {}\ge{} & 0.
    \end{alignedat}\]
    
    Here the spacing issue has been fixed.
    \[\setstretch{.5}
    \begin{alignedat}[t]{4}
        &\text{max}\quad  & z = 5x_1 & {}-{} &  x_2  \\
        &\text{s.t.}      &      x_1 & {}-{} & 3x_2 & {}\le{} & 1, \\
        &                 &      x_1 & {}-{} & 4x_2 & {}\le{} & 3, \\
        & & & &                 \mathllap{x_1, x_2} & {}\ge{} & 0.
    \end{alignedat}\]
    
\end{document}

文本

编辑:我指的额外垂直空间出现在文本之后但在方程式之前。

相关内容