使用 \multirow 和 \makecell

使用 \multirow 和 \makecell

我正在尝试制作一个总共有 4 行(1 个标题 + 3 个数据)的表格。在一列中,所有 3 行都包含相同的信息,我决定使用\multirow

在这个多列中,我想写入信息并将其分成 7 行(即超过表格的总行数),使用\makecell

我的代码是

\documentclass[12pt,a4paper]{book}

%~~~~~~~~~~~~~~~ Fonts ~~~~~~~~~~~~~~~~~~~~
\usepackage{kpfonts}

%~~~~~~~~~~~~~~~ Tables ~~~~~~~~~~~~~~~~~~~~~
\usepackage{makecell,booktabs}
\usepackage{color, colortbl}
\definecolor{Gray}{gray}{0.9}
\usepackage{multirow}

%~~~~~~~~~~~~~~ Commands
\newcommand{\pu}{$^{240}Pu$ }

\begin{document}

\begin{table}
\centering
% table caption is above the table
\caption{This will be filled later!\label{tab:filters}}
% Give a unique label
% For LaTeX tables use
\begin{tabular}{ccccccc}
\toprule
\hline
\rowcolor{Gray}[6pt][40pt]
\makecell{Sample} & \makecell{Reference\\Number} & \makecell{Activity\\(MBq)} & \makecell{Mass\\(mg)} & \multicolumn{2}{c}{\makecell{Areal density\\(mg/cm$^2$) ($\times 10^{-4}$ atoms/b)}} & \makecell{Atomic\\abundances\\(mol/mol)}\\
\hline
{}    & {TP2010-011-01} & {6.016(23)} & {0.7163(28)} & {0.1017(4)} & {2.55(1)} & 
\multirow{3}{*}{ \makecell{$^{238}Pu$ :  $7.33(29) \cdot 10^{-4}$\\
          $^{239}Pu$ :  $1.44(18) \cdot 10^{-4}$\\
          $^{240}Pu$ :  $0.998915(18) \cdot 10^{-4}$\\
          $^{241}Pu$ :  $4.1(31) \cdot 10^{-6}$\\
          $^{242}Pu$ :  $2.027(41) \cdot 10^{-4}$\\
          $^{244}Pu$ :  $4.6(88) \cdot 10^{-7}$}}\\
{\pu} & {TP2010-011-03} & {6.793(26)} & {0.809(3)}   & {0.1148(5)} & {2.88(1)} & {}\\
{}    & {TP2010-011-04} & {6.410(25)} & {0.763(3)}   & {0.1083(5)} & {2.72(1)} & {}\\
\bottomrule
\hline
\end{tabular}
\end{table}

\end{document}

我的丑陋输出是

在此处输入图片描述

所以这里存在很多问题。

  1. 最后一列与其他行重叠,自动间距使得多行中的数据超出表格边界。
  2. 表格比页面宽得多。 已使用 修复了这个问题\resizebox,但对于表格来说这不是最好的选择......
  3. 当列的最大宽度小于彩色行的宽度时,该\rowcolor命令与结果结合会产生空白\makecell这已通过使用[6pt][40pt]命令解决\rowcolor
  4. 这桌子好丑啊...

关于如何解决这些问题您有什么想法吗?

编辑我尝试删除\multirow并使用,\makecell但结果仍然有点奇怪。

在此处输入图片描述

新版本的代码是

 \documentclass[12pt,a4paper]{book}

%~~~~~~~~~~~~~~~ Fonts ~~~~~~~~~~~~~~~~~~~~
\usepackage{kpfonts}

%~~~~~~~~~~~~~~~ Tables ~~~~~~~~~~~~~~~~~~~~~
\usepackage{makecell,booktabs}
\usepackage{color, colortbl}
\definecolor{Gray}{gray}{0.9}
\usepackage{multirow}

%~~~~~~~~~~~~~~ Commands
\newcommand{\pu}{$^{240}Pu$ }

\begin{document}
\begin{table}
\centering
% table caption is above the table
\caption{This will be filled later!\label{tab:filters}}
% Give a unique label
% For LaTeX tables use
\begin{tabular}{ccccccc}
\toprule
\hline
\rowcolor{Gray}[6pt][40pt]
\makecell{Sample} & \makecell{Reference\\Number} & \makecell{Activity\\(MBq)} & \makecell{Mass\\(mg)} & \multicolumn{2}{c}{\makecell{Areal density\\(mg/cm$^2$) ($\times 10^{-4}$ atoms/b)}} & \makecell{Atomic\\abundances\\(mol/mol)}\\
\hline
{\pu}    & \makecell{TP2010-011-01\\TP2010-011-03\\TP2010-011-04} & \makecell{6.016(23)\\6.793(26)\\6.410(25)} & \makecell{0.7163(28)\\0.809(3)\\0.763(3)} & \makecell{0.1017(4)\\0.1148(5)\\0.1083(5)} & \makecell{2.55(1)\\2.88(1)\\2.72(1)} & 
\makecell{$^{238}Pu$ :  $7.33(29) \cdot 10^{-4}$\\
          $^{239}Pu$ :  $1.44(18) \cdot 10^{-4}$\\
          $^{240}Pu$ :  $0.998915(18) \cdot 10^{-4}$\\
          $^{241}Pu$ :  $4.1(31) \cdot 10^{-6}$\\
          $^{242}Pu$ :  $2.027(41) \cdot 10^{-4}$\\
          $^{244}Pu$ :  $4.6(88) \cdot 10^{-7}$}\\
\bottomrule
\hline
\end{tabular}
\end{table}

\end{document}

答案1

  • makecell并且colortbl不能很好地协同工作(请参阅问题下方的评论}
  • 我不会为列标题着色,而是考虑演示哪些表格是真实存在的
  • 你的表格太宽了,无法容纳文本宽度
  • 我建议的解决方案是:

    • 将第一列转换为行
    • 将表格扩展到边注的空间:

       \documentclass[12pt,a4paper]{book}
      
      %~~~~~~~~~~~~~~~ Fonts ~~~~~~~~~~~~~~~~~~~~
      \usepackage{kpfonts}
      
      %~~~~~~~~~~~~~~~ Tables ~~~~~~~~~~~~~~~~~~~~~
      \usepackage{makecell,booktabs}
      \usepackage[table]{xcolor}
      \definecolor{Gray}{gray}{0.9}
      \usepackage[version=4]{mhchem}
      \usepackage[strict]{changepage}
      
      %-------------------------------------- only for show page layout
      \usepackage{showframe}
      \renewcommand\ShowFrameLinethickness{0.25pt}
      \renewcommand*\ShowFrameColor{\color{red}}
      %---------------------------------------------------------------%
      
      \begin{document}
      \begin{table}
      \begin{adjustwidth*}{}{-\dimexpr\marginparwidth+\marginparsep}
      \centering
      % table caption is above the table
      \caption{This will be filled later!}
      \label{tab:filters}
      \setlength\tabcolsep{0pt}
      \begin{tabular*}{\linewidth}{@{\extracolsep{\fill}}
          l ccccc}
          \toprule
          &   &   & \multicolumn{2}{c}{Areal density} &                       \\
         \cmidrule{4-5}
      \makecell{Reference\\Number}
          &   \makecell{Activity\\(MBq)}
              &   \makecell{Mass\\(mg)}
                  &   (mg/cm$^2$)
                      &   \makecell[t]{($\times 10^{-4}$\\ atoms/b)}
                              &   \makecell{Atomic abundances\\(mol/mol)}     \\
          \midrule
      \multicolumn{6}{l}{ Samples for \ce{^240 Pu}:}                           \\
      \makecell[l]{TP2010-011-01\\TP2010-011-03\\TP2010-011-04}
          & \makecell[l]{6.016(23)\\6.793(26)\\6.410(25)}
              & \makecell[l]{0.7163(28)\\0.809(3)\\0.763(3)}
                  & \makecell[l]{0.1017(4)\\0.1148(5)\\0.1083(5)}
                      & \makecell[l]{2.55(1)\\2.88(1)\\2.72(1)} &
      \makecell[l]{\ce{^238 Pu} :  $7.33(29) \cdot 10^{-4}$\\
                \ce{^239 Pu} :  $1.44(18) \cdot 10^{-4}$\\
                \ce{^240 Pu} :  $0.998915(18) \cdot 10^{-4}$\\
                \ce{^241 Pu} :  $4.1(31) \cdot 10^{-6}$\\
                \ce{^242 Pu} :  $2.027(41) \cdot 10^{-4}$\\
                \ce{^244 Pu} :  $4.6(88) \cdot 10^{-7}$}\\
          \bottomrule
      \end{tabular*}
      \end{adjustwidth*}
      \end{table}
      
      \end{document}
      

    这使;

在此处输入图片描述

(红线表示文本和页边距)

  • 另一种可能性是通过使用landscape环境(由包提供pdflscape或或在包中定义lscape使用)来复制表sidewaystablerotating

相关内容