多索引表中的列对齐分布不均匀

多索引表中的列对齐分布不均匀

我正在尝试构建一个非常简单的多索引表,但我无法正确对齐下部索引的列。使用以下代码:

\documentclass[12pt,a4paper]{article}
\usepackage[latin1]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{booktabs}
\begin{document}
    \begin{table}[!ht]
        \centering
        \caption{
            {\bf Table caption Nulla mi mi, venenatis sed ipsum varius, volutpat euismod diam.}}
        \begin{tabular}{@{}lcccc@{}}
            \toprule
            & \multicolumn{4}{c}{\textbf{Peptide concentration {[}mg/ml{]}}} \\ \midrule
            & \textbf{0.29}  & \textbf{0.57}  & \textbf{1.15} & \textbf{2.3} \\
            \textbf{Difference (VL/NEHC)} & 1.58           & 1.48           & 1.82          & 1.03         \\ \bottomrule
        \end{tabular}
        %\begin{flushleft} Table notes Phasellus venenatis, tortor nec vestibulum mattis, massa tortor interdum felis, nec pellentesque metus tortor nec nisl. Ut ornare mauris tellus, vel dapibus arcu suscipit sed.
        %\end{flushleft}
        \label{tab:caption}
    \end{table}
\end{document}

我们可以看到我的表格看起来可以接受,但我们可以看到“肽浓度[mg / ml]”下方的列分布不均匀/对齐(我期望它们在“肽浓度[mg / ml]”下均匀分布。

我怎样才能将“肽浓度 [mg/ml]”下的这四列均匀分布?

谢谢

答案1

您可以使用makecell将表头分成两行, siunitx以便数字对齐和threeparttable表格注释。我添加了caption一个合适的间距,使标题和表格之间有:

\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{booktabs, threeparttable, makecell, caption}
\usepackage{siunitx}
\usepackage{etoolbox}
\robustify\bfseries
\author{Bruno Hinckel}

\begin{document}

\begin{threeparttable}[!ht]
    \centering
\sisetup{table-format=1.2, table-number-alignment=center, detect-weight, ,detect-inline-weight=math}
\captionsetup{font=bf}
        \caption{
            {Table caption Nulla mi mi, venenatis sed ipsum varius, volutpat euismod diam.}}
        \label{tab:caption}
        \begin{tabular}{@{}l*{4}{S}@{}}
            \toprule
            & \multicolumn{4}{>{\bfseries}c}{\makecell{Peptide concentration \\[-0.5ex] [mg/ml]}} \\
            \midrule
            & \bfseries 0.29 & \bfseries 0.57 & \bfseries 1.15 & \bfseries 2.3 \\
            \textbf{Difference (VL/NEHC)} & 1.58 & 1.48 & 1.82 & 1.03 \\ \bottomrule
        \end{tabular}
\footnotesize\smallskip
        \begin{tablenotes}[flushleft] \item[]\emph{Table notes}. Phasellus venenatis, tortor nec vestibulum mattis, massa tortor interdum felis, nec pellentesque metus tortor nec nisl. Ut ornare mauris tellus, vel dapibus arcu suscipit sed.
        \end{tablenotes}
\end{threeparttable}

\end{document} 

在此处输入图片描述

答案2

实际情况是,标题行下面的行没有意识到顶行比其他行大,因此扩展了其空间。因此,实际上只有四列中的最后一列被扩展了。因此,列内值的居中是有效的。在列之间启用垂直标尺时,您可以看到这一点:

带垂直标尺的表格

您的数字列永远不会知道标题列,因此一个选项是用定义其自己的列大小或手动设置列大小的整个新表替换值。

或者,您也可以像这样将表格设置为左边界:

左表

在我看来这很棒,但我想这只是个人品味的问题。要获得此结果,请在代码中更改以下行:

\begin{tabular}{lllll}

相关内容