Center column with specifying width in table (tabular enviroment)?
You could use the array package. It provides a way add a \centering
command to a p-colum. Here's a tiny example:
\documentclass{article}
\usepackage{array}
\begin{document}
\begin{tabular}{>{\centering\arraybackslash}p{1cm}}
first row \\
second row
\end{tabular}
\end{document}
The general syntax is >{command}
before the actual column specifier. \centering
changes the meaning of \\
, thus \arraybackslash
has been used to restore that. Have a look at the array
documentation to learn more.
In addition to Stefans answer: If you use centered columns with a fixed width quite often, you can define a new column type:
\usepackage{array}
\newcolumntype{x}[1]{>{\centering\arraybackslash\hspace{0pt}}p{#1}}
The "x" column takes its width as argument. In your document, you would write e.g.
\begin{tabular}{cx{3cm}c}
EDIT: Thanks to an answer from Ulrike Fischer on the German-speaking forum mrunix.de, I learned that there is still room for improvement: One might want to manually break lines within a cell of a "centered" p-column, but \newline
doesn't work correctly in this case. Solution: assign the meaning of \\
(as defined by \centering
!) to \newline
within the cell:
\usepackage{array}
\newcolumntype{x}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}p{#1}}