表格中指定宽度的中心列(表格环境)?

表格中指定宽度的中心列(表格环境)?

我有一个带有长标题的表格,我想指定列的宽度,但也希望能够保持它的居中位置。

就像是|c{0.30\textwidth}|

可以吗?如何实现这个效果?

答案1

您可以使用数组包。它提供了一种\centering向 p 列添加命令的方法。这是一个小例子:

\documentclass{article}
\usepackage{array}
\begin{document}
\begin{tabular}{>{\centering\arraybackslash}p{1cm}}
first row \\
second row
\end{tabular}
\end{document}

一般语法>{command}位于实际列说明符之前。\centering改变了 的含义\\,因此\arraybackslash已用于恢复该含义。 请查看array 文档了解更多。

答案2

除了Stefans的回答之外:如果您经常使用具有固定宽度的居中列,则可以定义一种新的列类型:

\usepackage{array}
\newcolumntype{x}[1]{>{\centering\arraybackslash\hspace{0pt}}p{#1}}

“x”列将其宽度作为参数。在您的文档中,您可以这样写:

\begin{tabular}{cx{3cm}c}

编辑:感谢德语论坛上 Ulrike Fischer 的回答mrunix.de,我了解到仍有改进的空间:有人可能想手动在“居中”p 列的单元格内换行,但\newline在这种情况下无法正常工作。解决方案:将\\(由 ! 定义\centering)的含义分配给\newline单元格内:

\usepackage{array}
\newcolumntype{x}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}p{#1}}

相关内容