![tabularx 中的方程式后面有太多垂直空间](https://linux22.com/image/398030/tabularx%20%E4%B8%AD%E7%9A%84%E6%96%B9%E7%A8%8B%E5%BC%8F%E5%90%8E%E9%9D%A2%E6%9C%89%E5%A4%AA%E5%A4%9A%E5%9E%82%E7%9B%B4%E7%A9%BA%E9%97%B4.png)
我正在尝试使用 tabularx 将多个编号方程放在同一行,如这回答。
最大能量损失 1:
\documentclass{article}
\usepackage{tabularx}
\begin{document}
blah blah text
\noindent\begin{tabularx}{\linewidth}{@{}XX@{}}
\begin{equation}
1+1+2
\end{equation}
&
\begin{equation}
2+2=4
\end{equation}
\end{tabularx}
%
blah blah text
\end{document}
这产生了
最大能量损失 2:
\documentclass{article}
\usepackage{tabularx}
\begin{document}
blah blah text
\noindent\begin{tabularx}{\linewidth}{@{}XX@{}}
asdfasfd
&
asfdasdf
\end{tabularx}
%
blah blah text
\end{document}
这产生了
MWE 2 没问题,顶部和底部的间距相同。但是 MWE 1 有什么问题?如何才能使 tabularx 环境前后的间距与我通常从公式环境中获得的间距相同?
答案1
为了大幅节省(垂直)空白,您可以将环境放在(宽度为 )的环境equation
中。或者,根本不使用环境;而是使用低级代码来显示数学材料、增加计数器并显示方程式编号。minipage
\hsize
equation
equation
\documentclass{article}
\usepackage{tabularx}
\begin{document}
\hrule
\noindent%
\begin{tabularx}{\linewidth}{@{}XX@{}}
\begin{minipage}{\hsize}
\begin{equation}
1+1+2
\end{equation}
\end{minipage}
&
\begin{minipage}{\hsize}
\begin{equation}
2+2=4
\end{equation}
\end{minipage}
\end{tabularx}
\hrule
\bigskip
\hrule
\noindent%
\begin{tabularx}{\linewidth}{@{}XX@{}}
\hfill$\displaystyle 1+1=2$\hfill
\refstepcounter{equation}(\theequation)
&
\hfill$\displaystyle 2+2=4$\hfill
\refstepcounter{equation}(\theequation)
\end{tabularx}
\hrule
\bigskip
\hrule
\noindent
\begin{tabularx}{\linewidth}{@{}XX@{}}
asdfasfd & asfdasdf
\end{tabularx}
\hrule
\end{document}
答案2
您可以(本地)将显示上方和下方的间距参数设置为零。
如果您还定义了适当的环境,那就更容易了。如果您需要连续的equation
环境(但您不应该),请使用显示的技巧。
\documentclass{article}
\usepackage{amsmath}
\usepackage{tabularx}
\usepackage{environ}
\usepackage{lipsum}% just for the example
\newlength{\savedbdss}
\NewEnviron{multieq}[1]{%
\[
\begin{minipage}{\displaywidth}
\setlength{\savedbdss}{\belowdisplayshortskip}
\setlength{\abovedisplayshortskip}{0pt}%
\setlength{\belowdisplayshortskip}{0pt}%
\begin{tabularx}{\displaywidth}{@{}*{#1}{>{\noindent\vspace*{-\baselineskip}}X}@{}}
\BODY
\end{tabularx}
\vspace{-\belowdisplayskip}
\vspace{-\savedbdss}
\end{minipage}
\]
}
\begin{document}
\lipsum[1][1-4]
\begin{multieq}{2}
\begin{equation}
1+1+2
\end{equation}
&
\begin{equation}
2+2=4
\end{equation}
\end{multieq}
\lipsum[2][1-3]
\begin{multieq}{2}
\begin{equation}
1+1+2
\end{equation}
&
\begin{equation}
2+2=4
\end{equation}
\\[-\savedbdss]
\begin{equation}
1+1+2
\end{equation}
&
\begin{equation}
2+2=4
\end{equation}
\end{multieq}
\lipsum[2][1-3]
\end{document}