表格内容未正确居中

表格内容未正确居中

我正在尝试制作一个表格,但某些列的内容没有正确居中。

我在序言中使用了以下内容...

\documentclass[11pt,a4paper,twoside, twocolumn]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[UKenglish]{babel}
\usepackage[UKenglish]{isodate}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{lmodern}
\usepackage{bm}
\usepackage{url}
\usepackage{paralist}
\usepackage{lipsum}
\usepackage{siunitx}
\usepackage{lettrine}
\usepackage{graphicx}

\usepackage{booktabs}
\usepackage{multirow}
\usepackage{array}
\newcolumntype{L}{>{\centering\arraybackslash}m{2.75cm}}

\usepackage{todonotes}

\usepackage{titling}
\setlength{\droptitle}{-2em} 

\title{}
\author{}
\date{}

\usepackage{csquotes}

\usepackage[style=authoryear, backend=biber]{biblatex}
\addbibresource{phage.bib}

\usepackage{cleveref}
\usepackage[font=footnotesize,labelfont={bf,sf},justification=centering]{caption}
\usepackage{fancyhdr} 
\usepackage{microtype}

到目前为止,我的表的代码如下:

\begin{table*}[t]
\centering
\begin{tabular}{ccc}
\toprule
Treatment & \multicolumn{2}{c}{No. of survivors/total no. of mice (\% survival)} \\
\midrule
& \multicolumn{2}{c}{Combined experiment} \\
& 48 hpi & 72 hpi \\
\midrule
PAO1 only & Data here & Data here\\
\bottomrule
\end{tabular}
\label{micesurvival}
\caption{Caption here}
\end{table*}

输出如下:

表输出

如您所见,48hpi 和 72hpi 列以及下面的数据没有在组合实验多列下方正确居中。

这可能是我忽略的一些显而易见的事情。

答案1

除了使用tabular*环境之外,您还可以使用tabularx同名包提供的环境 --。X包提供的列类型对于您的目的非常有用,如您的 MWE 的以下修改形式所示:

在此处输入图片描述

\documentclass{article}
\usepackage{booktabs}
\usepackage{tabularx}
\newcolumntype{C}{>{\centering\arraybackslash}X} % centered "X" column type
\begin{document}
\begin{table}
\centering
\begin{tabularx}{0.82\textwidth}{cCC} % 0.82 obtained empirically
\toprule
Treatment & \multicolumn{2}{c}{No.\ of survivors/total no.\ of mice (\% survival)} \\
\midrule
& \multicolumn{2}{c}{Combined experiment} \\
\cmidrule{2-3} % additional element
& 48 hpi & 72 hpi \\
\midrule
PAO1 only & Data here & Data here\\
\bottomrule
\end{tabularx}
\caption{Caption here}\label{micesurvival}
\end{table}
\end{document}

还要注意的是,放置\label命令命令\caption。顺便说一句,我还将浮动环境从 改为table*table使用“带星号的”表格或图形环境仅在您的文档每页有两列(或更多列)并且您需要一个跨越所有列的浮动元素时才有用。

答案2

底层\halign基元的一个特性是,如果跨越单元格比它跨越的单元格宽,那么所有多余的宽度都会进入最后一列跨越的列。

避免这种情况的一种方法是确保列的自然宽度非常宽,但可以通过添加可收缩胶水来收缩:

第二种方法是强制每列的宽度为宽标题的一半,如第二张表所示。

在此处输入图片描述

\documentclass{article}
\usepackage{booktabs,array}
\begin{document}


\centering

\begin{tabular*}{\linewidth}{
@{\extracolsep{\linewidth minus \linewidth}}
ccc
@{}
}
\toprule
Treatment & \multicolumn{2}{@{}c@{}}{No. of survivors/total no. of mice (\% survival)} \\
\midrule
& \multicolumn{2}{@{}c@{}}{Combined experiment} \\
& 48 hpi & 72 hpi \\
\midrule
PAO1 only & Data here & Data here\\
\bottomrule
\end{tabular*}

\bigskip
\newlength\myl
\settowidth\myl{No. of survivors/total no. of mice (\% survival)}

\begin{tabular}{
c
>{\centering\arraybackslash}p{.5\myl}
>{\centering\arraybackslash}p{.5\myl}
}
\toprule
Treatment & \multicolumn{2}{c}{No. of survivors/total no. of mice (\% survival)} \\
\midrule
& \multicolumn{2}{c}{Combined experiment} \\
& 48 hpi & 72 hpi \\
\midrule
PAO1 only & Data here & Data here\\
\bottomrule
\end{tabular}

\end{document}

请随时发帖完全的显示所有使用的包的文档。

相关内容