我有一列,其中前两个很短并且不能换行(我使用 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}