使用 makecell 和 xtabular 时单元格未对齐

使用 makecell 和 xtabular 时单元格未对齐

首先是一个最小的例子:

\documentclass{article}
\usepackage{makecell}
\usepackage{xtab}
\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}} 

\begin{document}
\begin{xtabular}{|p{0.65cm}||C{0.7cm}|C{0.7cm}|C{0.7cm}|C{0.7cm}|C{0.7cm}|C{0.7cm}|C{0.7cm}|}
\hline
\texttt{col}& A 
            & B
            & C 
            & D
            & E
            & F
            & G
\\\hline
\hline
\texttt{1}      &\makecell{0/5\\10/20}
                &\makecell{0/5\\---}
                &\makecell{---\\10/10}
                &\makecell{0/5\\10/20}
                &\makecell{---\\10/20}
                &\makecell{---\\10/20}
                &\makecell{0/5\\0/20}
\\\hline
\texttt{2}      &\makecell{0/10\\5/5}
                &\makecell{0/10\\---}
                &\makecell{---\\5/5}
                &\makecell{0/10\\5/5}
                &\makecell{---\\5/5}
                &\makecell{---\\5/5}
                &\makecell{0/10\\0/5}
\\\hline
\end{xtabular}
\end{document}

结果: 例子

列已达到最大宽度。

在第一行中的示例中,B-1 与其他行不同,在第二行中的 C-2、E-2 和 F-2 未对齐。

我想要实现的是每行中所有单元格的两行高度都相同。我该怎么做?

答案1

作为补充格诺特很好的答案,但保留了垂直线并简化了单元格内容的书写:

在此处输入图片描述

\documentclass{article}
\usepackage{array,makecell,multirow}
\usepackage{xtab}
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}

\begin{document}
{\setcellgapes{4pt}\makegapedcells 
 \setlength\tabcolsep{3pt}
\begin{xtabular}{|>{\ttfamily}l||*{7}{C{0.9cm}|}}
    \hline
col & A & B & C & D & E & F & G \\
    \hline
    \hline
\multirowcell{2}{1}      
    &   0/5    10/20
    &   0/5    ---
    &   ---    10/10
    &   0/5    10/20
    &   ---    10/20
    &   ---    10/20
    &   0/5    0/20             \\
    \hline
\multirowcell{2}{2}
    &   0/10   5/5
    &   0/10   ---
    &   ---    5/5
    &   0/10   5/5
    &   ---    5/5
    &   ---    5/5
    &   0/10   0/5              \\
    \hline
\end{xtabular}
}
\end{document}

答案2

为了更好地对齐和留出空间:

  • 将列宽扩大到0.9cm。错位是由于列太窄造成的,因此大多数条目(除了那些您认为错位的条目)都是错位的。

  • 删除垂直线以节省水平空间

  • 删除垂直线,让表格更易读

  • booktabs利用包装及其水平线来改善间距和水平线。

在此处输入图片描述

\documentclass{article}
\usepackage{makecell}
\usepackage{booktabs}
\usepackage{xtab}
\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}} 

\begin{document}
\begin{xtabular}{p{0.7cm}C{0.9cm}C{0.9cm}C{0.9cm}C{0.9cm}C{0.9cm}C{0.9cm}C{0.9cm}}
\toprule
\texttt{col}& A 
            & B
            & C 
            & D
            & E
            & F
            & G
\\\midrule
\texttt{1}      &\makecell{0/5\\10/20}
                &\makecell{0/5\\---}
                &\makecell{---\\10/10}
                &\makecell{0/5\\10/20}
                &\makecell{---\\10/20}
                &\makecell{---\\10/20}
                &\makecell{0/5\\0/20}
\\\midrule
\texttt{2}      &\makecell{0/10\\5/5}
                &\makecell{0/10\\---}
                &\makecell{---\\5/5}
                &\makecell{0/10\\5/5}
                &\makecell{---\\5/5}
                &\makecell{---\\5/5}
                &\makecell{0/10\\0/5}
\\\bottomrule
\end{xtabular}
\end{document}

相关内容