
我有一個包含下標和上標的數學的表格。這些都觸及表中的上方和下方的行。我嘗試了相當多的替代方案,但無法找到任何可以在行中提供合適間距而又不會弄亂標題行間距的任何內容(即使標題過於緊密地左對齊)。任何有關最佳方法的指示將不勝感激。
這是我目前的結果(我正在使用 array 套件):
\begin{table}[htbp]
\begin{center}
\begin{tabular}{| m{2.7cm} | m{8cm}|}
\hline
\textbf{Marginalised term} & \textbf{3 variable terms} \\
\hline \hline
$H_\partial^{12}(\{12\})$ &
$\begin{aligned}
&H_\partial^{123}(\{12\}) + H_\partial^{123}(\{3\}\{12\}) \\
&+ H_\partial^{123}(\{12\}\{13\}) + H_\partial^{123}(\{12\}\{23\}) \\
&+ H_\partial^{123}(\{12\}\{13\}\{23\})
\end{aligned}$ \\
\hline
$H_\partial^{12}(\{1\})$ &
$H_\partial^{123}(\{1\})+H_\partial^{123}(\{1\}\{23\})+H_\partial^{123}(\{1\}\{3\})$ \\
\hline
$H_\partial^{12}(\{2\})$ &
$H_\partial^{123}(\{2\})+H_\partial^{123}(\{2\}\{13\})+H_\partial^{123}(\{2\}\{3\})$ \\
\hline
$H_\partial^{12}(\{1\}\{2\})$ &
$H_\partial^{123}(\{1\}\{2\})+H_\partial^{123}(\{1\}\{2\}\{3\})$ \\
\hline
\end{tabular}
\end{center}
\end{table}
設定 extrarowheight 固定了下面三行的頂部間距,但它們仍然都接觸到了下部的水平線,並且第一行接觸了上面和下面。
添加extrarowheight
不起作用:
也沒有arraystrectch
(頂行接觸和垂直居中):
答案1
您可以使用 向單元格添加一些垂直填充,cellspace
它定義了最小的S
具有前綴為字母或 的makecell
說明符的列中單元格頂部和底部的空白添加使用指令在所有儲存格的頂部和底部固定垂直間距\makegapedcells
。
請注意,您不必在段落模式下設定列:第二個程式碼將列寬度設定為其自然寬度。
\documentclass{article}
\usepackage{amsmath, array, makecell}
\usepackage{cellspace} %
\setlength\cellspacetoplimit{4pt}
\setlength\cellspacebottomlimit{4pt}
\begin{document}
\begin{table}[htbp]
\centering
\begin{tabular}{| S{m{2.7cm}} | Sl|}%{m{8cm}}
\hline
\textbf{Marginalised term} & \textbf{3 variable terms} \\
\hline \hline
$H_\partial^{12}(\{12\})$ &
$\begin{aligned}
&H_\partial^{123}(\{12\}) + H_\partial^{123}(\{3\}\{12\}) \\
&+ H_\partial^{123}(\{12\}\{13\}) + H_\partial^{123}(\{12\}\{23\}) \\
&+ H_\partial^{123}(\{12\}\{13\}\{23\})
\end{aligned}$ \\
\hline
$H_\partial^{12}(\{1\})$ &
$H_\partial^{123}(\{1\})+H_\partial^{123}(\{1\}\{23\})+H_\partial^{123}(\{1\}\{3\})$ \\
\hline
$H_\partial^{12}(\{2\})$ &
$H_\partial^{123}(\{2\})+H_\partial^{123}(\{2\}\{13\})+H_\partial^{123}(\{2\}\{3\})$ \\
\hline
$H_\partial^{12}(\{1\}\{2\})$ &
$H_\partial^{123}(\{1\}\{2\})+H_\partial^{123}(\{1\}\{2\}\{3\})$ \\
\hline
\end{tabular}
\end{table}
\begin{table}[htbp]
\centering\setcellgapes{4pt}\makegapedcells \renewcommand\theadfont{\normalsize\bfseries}%
%
\begin{tabular}{|l| l|}%{m{8cm}}
\hline
\thead{Marginalised\\ term} & \thead{3 variable terms} \\
\hline \hline
$H_\partial^{12}(\{12\})$ &
$\begin{aligned}
&H_\partial^{123}(\{12\}) + H_\partial^{123}(\{3\}\{12\}) \\
&+ H_\partial^{123}(\{12\}\{13\}) + H_\partial^{123}(\{12\}\{23\}) \\
&+ H_\partial^{123}(\{12\}\{13\}\{23\})
\end{aligned}$ \\
\hline
$H_\partial^{12}(\{1\})$ &
$H_\partial^{123}(\{1\})+H_\partial^{123}(\{1\}\{23\})+H_\partial^{123}(\{1\}\{3\})$ \\
\hline
$H_\partial^{12}(\{2\})$ &
$H_\partial^{123}(\{2\})+H_\partial^{123}(\{2\}\{13\})+H_\partial^{123}(\{2\}\{3\})$ \\
\hline
$H_\partial^{12}(\{1\}\{2\})$ &
$H_\partial^{123}(\{1\}\{2\})+H_\partial^{123}(\{1\}\{2\}\{3\})$ \\
\hline
\end{tabular}
\end{table}
\end{document}
答案2
可能有更好的方法,但這裡我使用了struts的組合。我添加\upstrut
到堆疊的頂部aligned
、堆疊\downstrut
的底部aligned
和\mystrut
簡單的行。
\documentclass{article}
\usepackage{tabularx,amsmath}
\newcommand\upstrut{\rule{0pt}{12pt}}
\newcommand\downstrut{\rule[-6pt]{0pt}{6pt}}
\newcommand\mystrut{\upstrut\downstrut}
\begin{document}
\begin{table}[htbp]
\begin{center}
\begin{tabular}{| m{2.7cm} | m{8cm}|}
\hline
\textbf{Marginalised term} & \textbf{3 variable terms} \\
\hline \hline
$H_\partial^{12}(\{12\})$ &
$\begin{aligned}
&\upstrut H_\partial^{123}(\{12\}) + H_\partial^{123}(\{3\}\{12\}) \\
&+ H_\partial^{123}(\{12\}\{13\}) + H_\partial^{123}(\{12\}\{23\}) \\
&+ H_\partial^{123}(\{12\}\{13\}\{23\}) \downstrut
\end{aligned}$ \\
\hline
$\mystrut H_\partial^{12}(\{1\})$ &
$H_\partial^{123}(\{1\})+H_\partial^{123}(\{1\}\{23\})+H_\partial^{123}(\{1\}\{3\})$ \\
\hline
$\mystrut H_\partial^{12}(\{2\})$ &
$H_\partial^{123}(\{2\})+H_\partial^{123}(\{2\}\{13\})+H_\partial^{123}(\{2\}\{3\})$ \\
\hline
$\mystrut H_\partial^{12}(\{1\}\{2\})$ &
$H_\partial^{123}(\{1\}\{2\})+H_\partial^{123}(\{1\}\{2\}\{3\})$ \\
\hline
\end{tabular}
\end{center}
\end{table}
\end{document}
或者,可以\stackgap
在每行中的術語中新增 a,這會在3pt
該術語的上方和下方添加一個(預設)緩衝區。可選參數可以更改堆疊間隙值:
\documentclass{article}
\usepackage{tabularx,amsmath,stackengine}
\begin{document}
\begin{table}[htbp]
\begin{center}
\begin{tabular}{| m{2.7cm} | m{8cm}|}
\hline
\textbf{Marginalised term} & \textbf{3 variable terms} \\
\hline \hline
$H_\partial^{12}(\{12\})$ &
\addstackgap{$\begin{aligned}
&H_\partial^{123}(\{12\}) + H_\partial^{123}(\{3\}\{12\}) \\
&+ H_\partial^{123}(\{12\}\{13\}) + H_\partial^{123}(\{12\}\{23\}) \\
&+ H_\partial^{123}(\{12\}\{13\}\{23\})
\end{aligned}$} \\
\hline
\addstackgap{$H_\partial^{12}(\{1\})$} &
$H_\partial^{123}(\{1\})+H_\partial^{123}(\{1\}\{23\})+H_\partial^{123}(\{1\}\{3\})$ \\
\hline
\addstackgap{$H_\partial^{12}(\{2\})$} &
$H_\partial^{123}(\{2\})+H_\partial^{123}(\{2\}\{13\})+H_\partial^{123}(\{2\}\{3\})$ \\
\hline
\addstackgap{$H_\partial^{12}(\{1\}\{2\})$} &
$H_\partial^{123}(\{1\}\{2\})+H_\partial^{123}(\{1\}\{2\}\{3\})$ \\
\hline
\end{tabular}
\end{center}
\end{table}
\end{document}
答案3
排版此表格的最吸引人的方式是沒有任何垂直線和少得多但間隔良好的水平線。這樣,下標和上標項接觸水平線的問題就永遠不會出現。而且,無需胡鬧\arraystretch
。
由於幾乎所有表格的材料都是數學內容,因此我建議使用array
環境而不是tabular
環境。如果不出意外的話,您可以省去輸入大量$
符號的麻煩。
另外,由於H_\partial
在表中出現了大約 17 次,我建議您將所有實例替換為\Hp
,其中\Hp
在序言中定義為,您猜對了,H_\partial
。
\documentclass{article}
\usepackage{amsmath,booktabs,array}
\newcommand{\Hp}{H_\partial} % shortcut macro
\begin{document}
\begin{table}[htbp]
\centering
$\begin{array}{@{}ll@{}}
\toprule
\multicolumn{1}{@{}m{2.7cm}}{\textbf{Marginalised term}} &
\textbf{3 variable terms} \\
\midrule
\Hp^{12}(\{12\}) &
\!\begin{aligned}[t]
&\Hp^{123}(\{12\}) + \Hp^{123}(\{3\}\{12\}) \\
&\quad+ \Hp^{123}(\{12\}\{13\}) + \Hp^{123}(\{12\}\{23\}) \\
&\quad+ \Hp^{123}(\{12\}\{13\}\{23\})
\end{aligned} \\
\addlinespace
\Hp^{12}(\{1\}) &
\Hp^{123}(\{1\})+\Hp^{123}(\{1\}\{23\})+\Hp^{123}(\{1\}\{3\}) \\
\addlinespace
\Hp^{12}(\{2\}) &
\Hp^{123}(\{2\})+\Hp^{123}(\{2\}\{13\})+\Hp^{123}(\{2\}\{3\}) \\
\addlinespace
\Hp^{12}(\{1\}\{2\}) &
\Hp^{123}(\{1\}\{2\})+\Hp^{123}(\{1\}\{2\}\{3\}) \\
\bottomrule
\end{array}$
\end{table}
\end{document}