仅将表格的第一行居中对齐

仅将表格的第一行居中对齐

我正在为我的表格使用该tabu包,它带有X列类型。我定义了一个R列类型(\newcolumntype{R}{>{\raggedleft\arraybackslash}X}),现在我根据X它在表格中右对齐所有数据。

为了适合页面,我需要稍微缩小表格,所以我想将单位放在新行中。这可以在X单元格中输入 来实现\newline

这一切都运行良好,但现在第一行(描述)看起来有点奇怪,因为没有真正的对齐。我认为它应该与中心对齐。所以我的问题是如何将默认设置更改RC仅针对第一行。

平均能量损失

\documentclass{article}

\usepackage[table]{xcolor}
\usepackage{tabu}
\usepackage{siunitx}

\newcolumntype{R}{>{\raggedleft\arraybackslash}X}

\begin{document}

\begin{table}[htb!]
    \caption{Table 1}

    \centering
    \taburowcolors[1] {white .. gray!10}
    \begin{tabu}[t]{| R R R R R R R |}
        \hline
        $c$ \newline [\si{mol\per\liter}]
            & $V_\text{Tensid}$ \newline [\si{\milli\liter}]
            & $V_\text{Wasser}$ \newline [\si{\milli\liter}]
            & $\Pi_\text{1. Durchgang}$ \newline [\si{\milli\newton\per\meter}]
            & Offset \newline [\si{\milli\newton\per\meter}]
            & $\Pi_\text{2. Durchgang}$ \newline [\si{\milli\newton\per\meter}]
            & Offset \newline [\si{\milli\newton\per\meter}]\\
        \hline
        0.04 & 60 & 0 & 22.6 & 0.7 & - & -\\
        $\vdots$ & $\vdots$ & $\vdots$ & $\vdots$ & $\vdots$ & $\vdots$ & $\vdots$\\
        0.004 & 60 & 30 & 21.6 & 0.6 & 20.7 & 1.3\\
        0.002 & 60 & 60 & 21.0 & 0.3 & 22.1 & 1.4\\
        0.001 & 60 & 60 & 20.9 & 0.2 & 24.3 & 0.7\\
        \hline
    \end{tabu}
\end{table}

\end{docum

主頁

答案1

tabu我将使用包S中的列siunitx来对齐数字(相对于小数点分隔符),而不是使用其灵活宽度的列。为了使表格适合文本宽度,我减少了列之间的水平距离( tabcolsep)。从 MWE 中可以看到,列标题自动水平居中。

\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{siunitx}

\begin{document}

\begin{table}[htb!]
\setlength{\tabcolsep}{4pt}
    \caption{Table 1}
    \centering
    \rowcolors{2}{gray!10}{white}
    \begin{tabular}[t]{| S[table-format=1.3] S[table-format=2] S[table-format=2] S[table-format=2.1] S[table-format=2.1] S[table-format=2.1] S[table-format=1.1] |}
        \hline
              {$c$}
            & {$V_\text{Tensid}$} 
            & {$V_\text{Wasser}$}
            & {$\Pi_\text{1. Durchgang}$}
            & {Offset}
            & {$\Pi_\text{2. Durchgang}$}
            & {Offset}\\
              {[\si{mol\per\liter}]}
            & {[\si{\milli\liter}]}
            & {[\si{\milli\liter}]}
            & {[\si{\milli\newton\per\meter}]}
            & {[\si{\milli\newton\per\meter}]}
            & {[\si{\milli\newton\per\meter}]}
            & {[\si{\milli\newton\per\meter}]}\\
        \hline
        0.04 & 60 & 0 & 22.6 & 0.7 & {-} & {-}\\
        {$\vdots$} & {$\vdots$} & {$\vdots$} & {$\vdots$} & {$\vdots$} & {$\vdots$} & {$\vdots$}\\
        0.004 & 60 & 30 & 21.6 & 0.6 & 20.7 & 1.3\\
        0.002 & 60 & 60 & 21.0 & 0.3 & 22.1 & 1.4\\
        0.001 & 60 & 60 & 20.9 & 0.2 & 24.3 & 0.7\\
        \hline
    \end{tabular}
\end{table}

\end{document}

在此处输入图片描述

如果您想要坚持tabu右对齐数字,您可能会有兴趣使用\makecell同名包中的命令。

答案2

似乎我回答这个答案有点晚了,但我仍然在这里提供我的意见。

排版很漂亮,但代码不太优雅。我使用了多列来欺骗对齐。它还需要手动调整列宽,如果你很着急或者列太多,这可能会很麻烦。

我之所以包括这个,threeparttable是因为这是添加表格注释的简单方法。这个booktabs包让这个表格看起来好多了(在我看来),不需要额外的自定义命令定义等。

table with booktabs and wrap text inside multicolumn

注意 get 如何\vdots移位到小数对齐。正如 leandriis 所指出的,这是由于table-format上缺少选项S。它由两个数字组成,第一个是整数,第二个是小数。因此,为了使其居中对齐,我这样做了:

\begin{tabular}{S[table-format=1.3]S[table-format=2.0]S[table-format=2.0]S[table-format=2.1]S[table-format=1.1]S[table-format=2.1]S[table-format=1.1]}

S with table-format

    \documentclass{article}
\usepackage[table]{xcolor}
\usepackage{siunitx}
\usepackage{booktabs, threeparttable}
\setlength{\aboverulesep}{0pt}
\setlength{\belowrulesep}{0pt}
\setlength{\extrarowheight}{.75ex}
\begin{document}
\begin{table}
\begin{threeparttable}
\caption{Some Science Experiment}\label{table:experiment1}
\rowcolors{1}{white}{gray!10}
\begin{tabular}{S[table-format=1.3]S[table-format=2.0]S[table-format=2.0]S[table-format=2.1]S[table-format=1.1]S[table-format=2.1]S[table-format=1.1]} %use l if you want numbers left aligned
\toprule
 \multicolumn{1}{p{3em\relax}}{\centering $c$ [\si{mol\per\liter}]} 
& \multicolumn{1}{p{2.5em\relax}}{\centering $V_\text{Tensid}$ [\si{\milli\liter}]}
& \multicolumn{1}{p{3em\relax}}{\centering $V_\text{Wasser}$ [\si{\milli\liter}]}
& \multicolumn{1}{p{5em\relax}}{\centering $\Pi_\text{1. Durchgang}$  [\si{\milli\newton\per\meter}]}
& \multicolumn{1}{p{4em\relax}}{\centering Offset  [\si{\milli\newton\per\meter}]}
& \multicolumn{1}{p{5em\relax}}{\centering $\Pi_\text{2. Durchgang}$  [\si{\milli\newton\per\meter}]}
& \multicolumn{1}{p{4em\relax}}{\centering Offset [\si{\milli\newton\per\meter}]}
  \\
\midrule
        0.04 & 60 & 0 & 22.6 & 0.7 & {-} & {-}\\
        {$\vdots$} & {$\vdots$} & {$\vdots$} & {$\vdots$} & {$\vdots$} & {$\vdots$} & {$\vdots$}\\
        0.004 & 60 & 30 & 21.6 & 0.6 & 20.7 & 1.3\\
        0.002 & 60 & 60 & 21.0 & 0.3 & 22.1 & 1.4\\
        0.001 & 60 & 60 & 20.9 & 0.2 & 24.3 & 0.7\\
\bottomrule
\end{tabular}
\begin{tablenotes}
\item  Source or other notes.
\end{tablenotes}
\end{threeparttable}
\end{table}
\end{document}

相关内容