将表格中的单元格内容垂直和水平居中

将表格中的单元格内容垂直和水平居中

我有一个关于表格中每个单元格内容的垂直和水平居中的问题。理想情况下,我希望每个单元格都有固定的填充。

以下是当前结果:

当前结果

如您所见,结果是水平居中,但没有垂直居中。

相关的 Latex 代码是:

\begin{table}[h!]
\begin{center}
\begingroup
\setlength{\tabcolsep}{6pt} % Default value: 6pt
\renewcommand{\arraystretch}{4} % Default value: 1
\begin{tabular}{|c|c|}
\hline
$\mathlarger{\int}_{l_{min}}^{l_{max}}C_{\ell,\text{gal,ph}} (\ell)\text{d}\ell$ & 6.75254172757782e-05   \\ \hline
$\Bigg[\mathlarger{\int}_{l_{min}}^{l_{max}}C_{\ell,\text{gal,ph}} (\ell)\text{d}\ell\Bigg]^{2}$ & 4.559681978267965e-09  \\ \hline
$\Bigg[\mathlarger{\int}_{l_{min}}^{l_{max}}C_{\ell,\text{gal,ph}} (\ell)\text{d}\ell\Bigg]^{-1}$  & 14809.238363029064     \\ \hline
$\dfrac{1}{ng} \quad \text{(str)}$ & 2.417598569737143e-07 \\ \hline
\end{tabular}
\endgroup
\end{center}
\end{table}  

我希望获得帮助,以便正确地垂直和水平居中此表,并为每个单元格设置固定的填充。

答案1

我发现\arraystretch在此类问题上并不总是可以预测的。我更喜欢包\addstackgap中的宏stackengine,它将垂直缓冲区放置在其参数的上方和下方(默认为 3pt)。

我冒昧地用min和替换max\min\max以使它们成为直立运算符。

\documentclass{article}
\usepackage{mathtools,relsize,stackengine}
%\setstackgap{S}{3pt}% CAN ADJUST THE VERTICAL GAP ADDED
\begin{document}
\begin{table}[h!]
\begin{center}
\begingroup
\setlength{\tabcolsep}{6pt} % Default value: 6pt
%\renewcommand{\arraystretch}{4} % Default value: 1
\begin{tabular}{|c|c|}
\hline
\addstackgap{$\mathlarger{\int}_{l_{\min}}^{l_{\max}}C_{\ell,\text{gal,ph}} (\ell)\text{d}\ell$} & 6.75254172757782e-05   \\ \hline
\addstackgap{$\Bigg[\mathlarger{\int}_{l_{\min}}^{l_{\max}}C_{\ell,\text{gal,ph}} (\ell)\text{d}\ell\Bigg]^{2}$} & 4.559681978267965e-09  \\ \hline
\addstackgap{$\Bigg[\mathlarger{\int}_{l_{\min}}^{l_{\max}}C_{\ell,\text{gal,ph}} (\ell)\text{d}\ell\Bigg]^{-1}$}  & 14809.238363029064     \\ \hline
\addstackgap{$\dfrac{1}{ng} \quad \text{(str)}$} & 2.417598569737143e-07 \\ \hline
\end{tabular}
\endgroup
\end{center}
\end{table}  
\end{document}

在此处输入图片描述

答案2

以下是使用cellspacemakecell或 的三种替代方案nicematrix

我还使用了\displaystyle而不是\mathlarger第一列中的数字,以及最后一列中的数字S的类型列。siunitx

所有三个示例均产生以下输出:

在此处输入图片描述

\documentclass{article}
\usepackage{mathtools}

% only used in first example:
\usepackage[column=0]{cellspace}
\setlength{\cellspacetoplimit}{0.5\tabcolsep}
\setlength{\cellspacebottomlimit}{\cellspacetoplimit}

% only used in second example:
\usepackage{makecell}
\setcellgapes{0.5\tabcolsep}

% only used in third example:
\usepackage{nicematrix}

% used for improved output in second cell
\usepackage{siunitx}
\sisetup{table-align-exponent=false}

\begin{document}
\begin{table}[h!]
\centering
\begin{tabular}{|>{\(\displaystyle}0c<{\)}|S[table-format=1.15e-1]|}
\hline
\int_{l_{\min}}^{l_{\max}}C_{\ell,\text{gal,ph}} (\ell)\text{d}\ell & 6.75254172757782e-05   \\ \hline
\Bigg[\int_{l_{\min}}^{l_{\max}}C_{\ell,\text{gal,ph}} (\ell)\text{d}\ell\Bigg]^{2} & 4.559681978267965e-09  \\ \hline
\Bigg[\int_{l_{\min}}^{l_{\max}}C_{\ell,\text{gal,ph}} (\ell)\text{d}\ell\Bigg]^{-1}  & {\num{14809.238363029064}}    \\ \hline
\dfrac{1}{ng} \quad \text{(str)} & 2.417598569737143e-07 \\ \hline
\end{tabular}
\end{table}


\begin{table}[h!]
\centering
\makegapedcells
\begin{tabular}{|>{\(\displaystyle}c<{\)}|S[table-format=1.15e-1]|}
\hline
\int_{l_{\min}}^{l_{\max}}C_{\ell,\text{gal,ph}} (\ell)\text{d}\ell & 6.75254172757782e-05   \\ \hline
\Bigg[\int_{l_{\min}}^{l_{\max}}C_{\ell,\text{gal,ph}} (\ell)\text{d}\ell\Bigg]^{2} & 4.559681978267965e-09  \\ \hline
\Bigg[\int_{l_{\min}}^{l_{\max}}C_{\ell,\text{gal,ph}} (\ell)\text{d}\ell\Bigg]^{-1}  & {\num{14809.238363029064}}      \\ \hline
\dfrac{1}{ng} \quad \text{(str)} & 2.417598569737143e-07 \\ \hline
\end{tabular}
\end{table}  

\begin{table}[h!]
\centering
\begin{NiceTabular}[cell-space-limits=0.5\tabcolsep]{>{\(\displaystyle}c<{\)}S[table-format=1.15e-1]}[hvlines]
\int_{l_{\min}}^{l_{\max}}C_{\ell,\text{gal,ph}} (\ell)\text{d}\ell & 6.75254172757782e-05   \\ 
\Bigg[\int_{l_{\min}}^{l_{\max}}C_{\ell,\text{gal,ph}} (\ell)\text{d}\ell\Bigg]^{2} & 4.559681978267965e-09  \\ 
\Bigg[\int_{l_{\min}}^{l_{\max}}C_{\ell,\text{gal,ph}} (\ell)\text{d}\ell\Bigg]^{-1}  & {\num{14809.238363029064}}      \\
\dfrac{1}{ng} \quad \text{(str)} & 2.417598569737143e-07 \\ 
\end{NiceTabular}
\end{table} 
\end{document}

相关内容