我是一位经验丰富的 Latex 用户,但对构建表格还很陌生。以下示例说明了我的问题:
\documentclass{amsart}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{tabularx}
\begin{document}
\begin{table}[htbp]
\centering
\caption{ }\label{tablea1.1b}
\begin{tabularx}{0.3\textwidth}{l l c}
\toprule
Moon& Earth& 1.0 \\
\midrule
Jupiter& Sun& 5.5 \\
\midrule
\multirow{2}{*}{Saturn} & {Sun}& 6.7\\
{} & {}& {4.2} \\
\bottomrule
\end{tabularx}
\end{table}
\end{document}
我想在前两行中各显示一个数字,但在最后一行中显示两个与“土星”和“太阳”相对应的数字。但这两个词在我的表格中没有对齐。理想情况下,“太阳”应该与“土星”处于同一水平,即与第 3 列中两个数字之间的水平间隙一致。
请问我该如何实现该布局?
(我知道表格中的水平线被认为不好看。我在这里使用它们来显示第三列中的哪些数字与哪些行星对相匹配。)
答案1
正如评论中提到的那样,“Sun”也应该位于\multirow
命令内部,以便使其相对于两个表行垂直居中。在下面的示例中,我还包括了两种基于嵌套表格或基于包\Block
中的命令的替代方法nicematrix
:
\documentclass{amsart}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{nicematrix}
\begin{document}
\begin{table}[htbp]
\centering
\caption{With multirow}\label{tablea1.1b}
\begin{tabular}{l l c}
\toprule
Moon& Earth& 1.0 \\
\midrule
Jupiter& Sun& 5.5 \\
\midrule
\multirow{2}{*}{Saturn} & \multirow{2}{*}{Sun}& 6.7\\
& & 4.2 \\
\bottomrule
\end{tabular}
\end{table}
\begin{table}[htbp]
\centering
\caption{With nested tabulars}\label{tablea1.1b}
\begin{tabular}{l l c}
\toprule
Moon & Earth& 1.0 \\
\midrule
Jupiter & Sun& 5.5 \\
\midrule
Saturn & Sun & \begin{tabular}{@{}c@{}} 6.7 \\ 4.2\end{tabular} \\
\bottomrule
\end{tabular}
\end{table}
\begin{table}[htbp]
\centering
\caption{With nicematrix}\label{tablea1.1b}
\begin{NiceTabular}{l l c}
\toprule
Moon& Earth& 1.0 \\
\midrule
Jupiter& Sun& 5.5 \\
\midrule
\Block{2-1}{Saturn} & \Block{2-1}{Sun}& 6.7\\
& & 4.2 \\
\bottomrule
\end{NiceTabular}
\end{table}
\end{document}
答案2
\documentclass{amsart}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{tabularx}
\begin{document}
\begin{table}[htbp]
\centering
\caption{ }\label{tablea1.1b}
\begin{tabularx}{0.3\textwidth}{l l c}
\toprule
Moon& Earth& 1.0 \\
\midrule
Jupiter& Sun& 5.5 \\
\midrule
\multirow{2}{*}{Saturn} &\multirow{2}{*}{Sun}& 6.7\\
{} & {}& {4.2} \\
\bottomrule
\end{tabularx}
\end{table}
\end{document}
答案3
通过使用makcell
包:
\documentclass{amsart}
\usepackage{booktabs}
\usepackage{makecell} % <---
\usepackage{tabularx}
\begin{document}
\begin{table}[htb]
\centering
\caption{}
\label{tablea1.1b}
\begin{tabularx}{0.3\textwidth}{X X c}
\toprule
Moon & Earth & 1.0 \\
\midrule
Jupiter & Sun & 5.5 \\
\midrule
Saturn & Sun & \makecell{6.7\\4.2} \\ % <---
\bottomrule
\end{tabularx}
\end{table}
\end{document}