我想删除数学和其他环境之前和之后的垂直空间description
,以便它们看起来紧凑并且顶部和底部的空间均匀,就像第 1 行一样。
正如您所看到的,我已经测试了类似的命令,但\belowdisplayskip
没有成功。
梅威瑟:
\documentclass{memoir}
\usepackage{amsmath}
\usepackage{enumitem}
\begin{document}
% Not works.
%\setlength{\belowdisplayskip}{0pt}
%\setlength{\abovedisplayskip}{0pt}
%\setlength{\abovedisplayshortskip}{0pt}
%\setlength{\belowdisplayshortskip}{0pt}
\begin{tabular}{m{3cm} m{3cm}}
\hline
Row 1 & Text \\ \hline
Row 2 &
\begin{description}[topsep=0pt]
\item[$\alpha$] Alpha
\item[$\beta$] Beta
\end{description} \\ \hline
Row 3 &
\begin{equation*}
E = mc^2
\end{equation*} \\ \hline
Row 4 &
\begin{equation*}
\sum_i x_i
\end{equation*} \\ \hline
Row 5 &
{\begin{align*}
y &= ax^2 + bx \\
&= x(ax + b)
\end{align*}} \\ \hline
\end{tabular}
\end{document}
答案1
对于数学方程式,您可以使用任何
amsmath
数学环境:aligned
,gathered
和split
结果
tabular
不太好:
\documentclass{memoir}
\usepackage{amsmath}
\begin{document}
\begin{table}[htb]
\centering
\renewcommand\arraystretch{1.5}
\begin{tabular}{|m{3cm}| m{5cm}|}
\hline
Row 1 & Text \\ \hline
Row 2 & Text \\ \hline
Row 3 & $E = mc^2$ \\ \hline
Row 4 & $\sum_i x_i$ \\ \hline
Row 4 & $\begin{aligned}
\sin(x) & = x - \frac{x^3}{3!} + \frac{x^5}{5!} - \frac{x^7}{7!} + \cdots \\
& = \sum_{n=0}^{\infty} \frac{(-1)^n}{(2n+1)!} x^{2n+1}\\[1ex]
\end{aligned}$ \\ \hline
\end{tabular}
\end{table}
\end{document}
使用后tabularray
效果会好得多:
\documentclass{memoir}
\usepackage{tabularray}
\UseTblrLibrary{amsmath}
\begin{document}
\begin{table}[htb]
\centering
\begin{tblr}{hlines, vlines,
colspec = {Q[l,m, 3cm] Q[l,m, mode=math]},
row{1,2}= {mode=text},
rowsep=3pt
}
Row 1 & Text \\
Row 2 & Text \\
Row 3 & E = mc^2 \\
Row 4 & \sum_i x_i \\
Row 4 & \begin{aligned}
\sin(x) & = x - \frac{x^3}{3!} \frac{x^5}{5!} - \frac{x^7}{7!} + \cdots \\
& = \sum_{n=0}^{\infty} \frac{(-1)^n}{(2n+1)!} x^{2n+1}\\[1ex]
\end{aligned} \\
\end{tblr}
\end{table}
\end{document}
在第二个示例中,假设第二列(前两行除外)是方程式。因此,此列处于数学模式。
如果出于某些原因您希望将第二列的内容居中,则将其Q[l,m, mode=math]
替换为Q[c,m, mode=math]
。此更改将产生:
答案2
您可以尝试另一种方式nicematrix
。不会在单元格的自然高度上添加任何空间。(第一张表)。
通常人们希望扩展单元格以避免规则与下标和上标发生冲突。
通过使用,cell-space-limits=
您可以在内容上方和下方添加一些空间(1pt,第二个表格)。
最后,可以使用cell-space-top-limit=1pt
(最后的表格)仅改进上标。
默认
更好的
这是完整的代码。
\documentclass{memoir}
\usepackage{nicematrix}
\begin{document}
\begin{table}[htb]
\centering
\caption{Default: tight}
\begin{NiceTabular}{lc}[hvlines]
Row 1 & Text \\
Row 2 & Text \\
Row 3 & $E = mc^2$ \\
Row 4 & $\sum_i x_i$ \\
Row 5 & $\begin{aligned}
\sin(x) & = x - \frac{x^3}{3!} \frac{x^5}{5!} - \frac{x^7}{7!} + \cdots \\
& = \sum_{n=0}^{\infty} \frac{(-1)^n}{(2n+1)!} x^{2n+1}\\
\end{aligned} $ \\
\end{NiceTabular}
\end{table}
\begin{table}[htb]
\centering
\caption{More relaxed (added 1pt)}
\begin{NiceTabular}{lc}[hvlines, cell-space-limits=1pt] % expand upper and lower space
Row 1 & Text \\
Row 2 & Text \\
Row 3 & $E = mc^2$ \\
Row 4 & $\sum_i x_i$ \\
Row 5 & $\begin{aligned}
\sin(x) & = x - \frac{x^3}{3!} \frac{x^5}{5!} - \frac{x^7}{7!} + \cdots \\
& = \sum_{n=0}^{\infty} \frac{(-1)^n}{(2n+1)!} x^{2n+1}\\
\end{aligned} $ \\
\end{NiceTabular}
\end{table}
\begin{table}[htb]
\centering
\caption{Semi relaxed (added above 1pt)}
\begin{NiceTabular}{lc}[hvlines, cell-space-top-limit=1pt] % expand only lower space
Row 1 & Text \\
Row 2 & Text \\
Row 3 & $E = mc^2$ \\
Row 4 & $\sum_i x_i$ \\
Row 5 & $\begin{aligned}
\sin(x) & = x - \frac{x^3}{3!} \frac{x^5}{5!} - \frac{x^7}{7!} + \cdots \\
& = \sum_{n=0}^{\infty} \frac{(-1)^n}{(2n+1)!} x^{2n+1}\\
\end{aligned} $ \\
\end{NiceTabular}
\end{table}
\end{document}