有一列未垂直和水平居中

有一列未垂直和水平居中

我正在尝试将表格中的文本垂直和水平居中。我以为我已经成功了,但最后一列只是水平居中。我输入的代码是

\documentclass[11 pt, a4paper, twoside]{report}
\usepackage{array}
\begin{document}

\begin{table} [h]
\centering
\caption{}

\begin{tabular}{ | >{\centering\arraybackslash} m{3cm} | >{\centering\arraybackslash} m{3cm} | >{\centering\arraybackslash} m{4cm} | }
    \hline
    \rowcolor{lightgray} \textbf{Variable} & \textbf{Description} & \textbf{Value} \\ [0.5cm]
\end{tabular}
\end{table}

\end{document}

而且看起来

在此处输入图片描述

答案1

有关仍使用 和 内容的解决方案,\rowcolor请参阅@AboAmmar 的回答。但如果您可以自由地自行格式化表格,请考虑放弃颜色和垂直规则并使用booktabs。此外,如果将“说明”列中的文本左对齐,则看起来会更好。并考虑使用p列而不是m

\documentclass[]{article}

\usepackage{array}
\usepackage{booktabs}

\begin{document}

\begin{table} [h]
\centering
\caption{}
\begin{tabular}{ >{\centering\arraybackslash} p{3cm} p{3cm} >{\centering\arraybackslash} p{4cm} }
  \toprule
    Variable & Description & Value \\
  \midrule
    Variable & Description which really needs the full width& Value \\
    Variable & Description & Value \\
    Variable & Description & Value \\
  \bottomrule
\end{tabular}
\end{table}
\end{document}

在此处输入图片描述

而且通常值不应该太宽以至于需要多行来格式化它们。相反,请考虑使用S提供的 -type 列,siunitx水平对齐数字以使相同的数字位于彼此下方(您需要通过将表头括起来来隐藏它{Value})。而且变量名也不应该那么宽,因此也许可以使用cl说明符。此外,如果每个变量名都要在数学模式下排版,则可以使用>{\(}c<{\)}将该列更改为使用数学模式。\hbox可用于隐藏某些效果(或\text由 提供amsmath)。

\documentclass[preview,border=2mm]{standalone}

\usepackage{array}
\usepackage{booktabs}
\usepackage{siunitx}

\begin{document}

\begin{table} [h]
\centering
\caption{}
\begin{tabular}{ >{\(}c<{\)} p{3cm} S }
  \toprule
  \hbox{Variable} & Description & {Value} \\
  \midrule
  x & Description which really needs the full width& 0.12 \\
  \sigma & Description & 10.51 \\
  \delta & Description & 15.43 \\
  \bottomrule
\end{tabular}
\end{table}
\end{document}

在此处输入图片描述

答案2

不要使用\\[0.5cm]来增加第一行的高度。这是导致最后一个单元格错位的原因。例如,您可以使用自己的\strut来执行此操作,或者更轻松地通过添加包并使用其宏来执行此操作。$\vcenter{\hbox{\rule{0cm}{.5cm}}}$bigstrutbigstrut

此外,您还可以定义\newcolumntype{C}[1]{>{\centering\arraybackslash} m{#1}}代码的简洁性和可重用性。

\documentclass{article}
\usepackage{xcolor}
\usepackage{colortbl}
\usepackage{bigstrut}
\begin{document}

\newcolumntype{C}[1]{>{\centering\arraybackslash} m{#1}}
\begin{table}[h]
\centering
\caption{}
\begin{tabular}{ |C{3cm} |C{3cm} | C{4cm} | }
  \hline
  \rowcolor{lightgray} \textbf{Variable} & \textbf{Description} & \textbf{Value}\bigstrut \\ \hline 
  Variable & Description & Value \\ \hline 
  Variable & Description & Value \\ \hline 
  Variable & Description & Value \\ \hline 
\end{tabular}
\end{table}

\end{document}

在此处输入图片描述

相关内容