使用 \multirow 时出现不想要的不规则布局

使用 \multirow 时出现不想要的不规则布局

我是一位经验丰富的 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} 

在此处输入图片描述

相关内容