如何在表格中垂直对齐文本

如何在表格中垂直对齐文本

我设计了一个表格,除了一部分没有垂直对齐到中心外,其余部分看起来都很好。我认为这与将“27ºC 下的属性”与其下方的实际属性分开的线有关,这\cline覆盖了其下方的一小部分文本。

这是代码:

\begin{table}[]
\centering
\begin{tabular}{lcccc}
\toprule
\multicolumn{1}{c}{\multirow{2}{*}{Process}} & \multicolumn{4}{c}{Property at 27ºC} \\ \cline{2-5}
\multicolumn{1}{c}{}        & S      & $\sigma$    & k       & zT       \\
\midrule
Unannealed                  & 140    & 1052        & 9.73    & 0.0636   \\
Annealed at 1345ºC          & 155    & 768         & 7.67    & 0.0722   \\
Annealed at 1365ºC          & 151    & 845         & 6.00    & 0.0964   \\
\bottomrule
\end{tabular}
\caption{Influence of annealing at 27ºC}
\label{tab:influenceofannealing}
\end{table}

它看起来是这样的:

我现在有的表

有什么方法可以将四列的文本设置得稍微低一些,或者设置为垂直居中以适应有限的空间?同时将单元格“27ºC 时的属性”设置得稍微高一些?

提前致谢!

答案1

将评论转向@leandris并我自己给出了答案。

下面使用\cmidrule并相应地调整\multirow。此外,它使用siunitx包排版温度(感谢@Mico用于指向所使用的度数符号)

\documentclass[]{article}

\usepackage{booktabs}
\usepackage{multirow}
\usepackage{siunitx}

\begin{document}
\begin{table}[]
\centering
\begin{tabular}{lcccc}
\toprule
  \multicolumn{1}{c}{\multirow{2}{*}[-\dimexpr0.5\cmidrulewidth+\cmidrulesep]{Process}} & \multicolumn{4}{c}{Property at \SI{27}{\celsius}} \\ \cmidrule{2-5}
                                & S      & $\sigma$    & k       & zT       \\
\midrule
Unannealed                      & 140    & 1052        & 9.73    & 0.0636   \\
Annealed at \SI{1345}{\celsius} & 155    & 768         & 7.67    & 0.0722   \\
Annealed at \SI{1365}{\celsius} & 151    & 845         & 6.00    & 0.0964   \\
\bottomrule
\end{tabular}
\caption{Influence of annealing at \SI{27}{\celsius}}
\label{tab:influenceofannealing}
\end{table}
\end{document}

在此处输入图片描述

答案2

除了采用\cmidrule——\cline已经在@Skillmon 之前的回答-- 我还想建议您使用S列类型(由软件包提供siunitx)而不是c四列数据列的列类型。并且,请不要使用印刷上不合适的º度数符号(摄氏度),请写成\SI{...}{\celsius}。最后,我还想建议您通过将单词“Process”放入左上角单元格来简化布局,并使四列数据列的标题不那么冗长(并且冗余度更低,因为标题中已经给出了信息)。

在此处输入图片描述

\documentclass{article}
\usepackage{newtxtext,newtxmath} % Times Roman text and math font -- optional
\usepackage{booktabs,siunitx}
\newcolumntype{T}[1]{S[table-format=#1]}
\begin{document}
\begin{table}
\centering
\begin{tabular}{@{} l T{3.0}T{4.0}T{1.2}T{1.4} @{}}
\toprule
Process & \multicolumn{4}{c@{}}{Property} \\ 
\cmidrule(l){2-5}
& {S [\si{\micro\volt\per\kelvin}]}    
& {$\sigma$ [\si{\S\per\centi\meter}]} 
& {k [\si{\watt\per\meter\per\kelvin}]} 
& {zT}
\midrule
Unannealed                      & 140 & 1052 & 9.73 & 0.0636   \\
Annealed at \SI{1345}{\celsius} & 155 &  768 & 7.67 & 0.0722   \\
Annealed at \SI{1365}{\celsius} & 151 &  845 & 6.00 & 0.0964   \\
\bottomrule
\end{tabular}
\caption{Influence of annealing at \SI{27}{\celsius} (\SI{300}{\kelvin})}
\label{tab:influenceofannealing}
\end{table}
\end{document}

答案3

以下是使用该包的另一种替代方法cellspace

\documentclass{article}

\usepackage[column=O]{cellspace}
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage{multirow}

\newlength\TopBottomLimit
\setlength\TopBottomLimit{0.7em}
\setlength\cellspacetoplimit{\TopBottomLimit}
\setlength\cellspacebottomlimit{\TopBottomLimit}

\begin{document}

\begin{table}
    \centering
    \begin{tabular}{O{l}O{c}O{c}O{c}O{c}}
        \toprule
        \multirow{2}{*}[-\TopBottomLimit]{Process} & \multicolumn{4}{O{c}}{Property at \SI{27}{\celsius}} \\ \cline{2-5}
                                        & \si{\celsius}      & $\sigma$    & k       & zT       \\
        \midrule
        Unannealed                      & 140    & 1052        & 9.73    & 0.0636   \\
        Annealed at \SI{1345}{\celsius} & 155    & 768         & 7.67    & 0.0722   \\
        Annealed at \SI{1365}{\celsius} & 151    & 845         & 6.00    & 0.0964   \\
        \bottomrule
    \end{tabular}
    \caption{Influence of annealing at \SI{27}{\celsius}}
    \label{tab:influenceofannealing}
\end{table}

\end{document}

在此处输入图片描述

评论

您将过程在 27°C 下进行的信息放在表格标题和标题中。我认为这种冗余不会提高文档的可读性。您可以考虑降低冗余程度。在这种情况下,问题会自行解决。

相关内容