我正在尝试将表格中的文本垂直和水平居中。我以为我已经成功了,但最后一列只是水平居中。我输入的代码是
\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}
)。而且变量名也不应该那么宽,因此也许可以使用c
或l
说明符。此外,如果每个变量名都要在数学模式下排版,则可以使用>{\(}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}}}$
bigstrut
bigstrut
此外,您还可以定义\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}