当列不能换行时,在表格内垂直居中对齐

当列不能换行时,在表格内垂直居中对齐

我有一列,其中前两个很短并且不能换行(我使用 l 和 r),而其他三个的列名很长并且必须换行(C|C|C)。

        \begin{table}
            \begin{center}
            \begin{tabulary}{\linewidth}{l|r|C|C|C}
                \hline
                \hline
                \multicolumn{1}{c|}{CASE} &
                \multicolumn{1}{c|}{COST (\$)} &
                VERY LONG COST NAME (\unit{{MW.h}}) &
                VERY LONG COST NAME (\unit{{MW.h}}) &
                VERY LONG COST NAME (\unit{{MW.h}}) \\
                \hline
                Name   & 999999.999999 & \multicolumn{1}{r|}{999999.999999} & \multicolumn{1}{r|}{999999.999999} & \multicolumn{1}{r}{999999.999999} \\
                \hline
                \hline
            \end{tabulary}
            \end{center}
        \end{table}

可以,但是前两列没有垂直居中。如何使其垂直居中?如果无法使用 tabulary,则可以使用其他方法,只要三列可以换行即可。

答案1

  • 请始终提供 MWE(最小工作示例),一个小型完整、可编译的文档示例。到目前为止,我们还没有关于所用文档类和文档页面布局的任何信息。
  • 从您的代码片段可以得出结论,垂直居中应该只在列标题中实现,其他标题内容仅在一行中
  • 使用tabularray垂直居中简单就可以搞定。
  • 在单元格中使用multicolumn{1}{r}{...}命令会覆盖列设置。
  • 对于列,我将使用 的S列类型siunitx
  • MW.h 是什么单位?我认为应该是 MWh。
\documentclass{article}
\usepackage{geometry}
\usepackage{caption}
\usepackage{tabularray}
\UseTblrLibrary{booktabs, siunitx}

\begin{document}
\begin{table}[ht]
\sisetup{table-format=6.6}
\centering
    \begin{tblr}{colspec={l|Q[c, si]|X[c, si]|X[c, si]|X[c, si]},
                 row{1} ={guard, m}
                 }
        \toprule
        CASE    &   COST (\$)   
            &   VERY LONG COST NAME (\unit{MWh}) 
                &   VERY LONG COST NAME (\unit{MWh}) 
                    &   VERY LONG COST NAME (\unit{MWh})    \\
        \midrule
        Name    & 999999.999999 & 999999.999999 & 999999.999999 & 999999.999999 \\
        \bottomrule
    \end{tblr}
\end{table}
\end{document}

在此处输入图片描述

答案2

红线仅显示页面边界的框架,可以通过注释掉语法来ShowFrame删除

如果需要的话,给标题添加颜色可以起到强调作用,并且可以消除水平线

\documentclass{article}\usepackage{multirow, tabulary}
\usepackage[table]{xcolor}
\usepackage{siunitx}
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}

\begin{document}

\noindent
\begin{tabulary}{\linewidth}{lrCCC}
\rowcolor{blue!40}
    \multicolumn{1}{c}{CASE} &
    \multicolumn{1}{c}{COST (\$)} &
    VERY LONG COST NAME (\unit{{MW.h}}) &
    VERY LONG COST NAME (\unit{{MW.h}}) &
    VERY LONG COST NAME (\unit{{MW.h}}) \\
    Name   & 999999.999999 & \multicolumn{1}{r}{999999.999999} & \multicolumn{1}{r}{999999.999999} & \multicolumn{1}{r}{999999.999999} \\
    \hline
    \hline
\end{tabulary}
\end{document}

在此处输入图片描述

相关内容