我正在尝试制作一个总共有 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}
我的丑陋输出是
所以这里存在很多问题。
- 最后一列与其他行重叠,自动间距使得多行中的数据超出表格边界。
- 表格比页面宽得多。 已使用 修复了这个问题
\resizebox
,但对于表格来说这不是最好的选择...... - 当列的最大宽度小于彩色行的宽度时,该
\rowcolor
命令与结果结合会产生空白\makecell
:这已通过使用[6pt][40pt]
命令解决\rowcolor
! - 这桌子好丑啊...
关于如何解决这些问题您有什么想法吗?
编辑我尝试删除\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
使用)来复制表sidewaystable
rotating