
Ich versuche, eine Methode zu finden, die es mir ermöglicht, Spalten mit automatischer Breite zu haben, die auch in horizontaler und vertikaler Richtung zentriert sind, genau wie der Spaltentyp tabularx
von , X
nur zentriert.
Hier ist also, was ich bisher versucht habe:
\documentclass{article}
\usepackage{tabularx,booktabs}
\newcolumntype{Z}[0]{>{\centering\arraybackslash\let\newline\\\hspace{0pt}}X}%
\begin{document}
\begin{table}
\begin{tabularx}{7cm}{l|X|X}
& long\newline heading 1 & short heading\\
\toprule
row 1 & 2314 & 2134
\end{tabularx}
\end{table}
\begin{table}
\begin{tabularx}{7cm}{l|Z|Z}
& long\linebreak heading 1 & short heading\\
\toprule
row 1 & 2314 & 2134
\end{tabularx}
\end{table}
\end{document}
Das Zweite ist schon fast das, was ich will, nur die vertikale Zentrierung der dritten Spalte fehlt. Wie kann ich das beheben?
Antwort1
für die vertikale Zentrierung möchten Sie eine m
Spalte und nicht eine p
Spalte, hinter der Sie sitzenX
\documentclass{article}
\usepackage{tabularx,booktabs}
\newcolumntype{Z}[0]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}X}%
\renewcommand\tabularxcolumn[1]{m{#1}}
\begin{document}
\begin{table}
\begin{tabularx}{7cm}{l|X|X}
& long\newline heading 1 & short heading\\
\toprule
row 1 & 2314 & 2134
\end{tabularx}
\end{table}
\begin{table}
\begin{tabularx}{7cm}{l|Z|Z}
& long\linebreak heading 1 & short heading\\
\toprule
row 1 & 2314 & 2134
\end{tabularx}
\end{table}
\end{document}
Antwort2
Verwenden Sie einfach das makecell
Paket und seinen \thead
Befehl:
\documentclass{article}
\usepackage{tabularx,booktabs, makecell}
\newcolumntype{Z}[0]{>{\centering\arraybackslash\let\newline\\\hspace{0pt}}X}%
\begin{document}
\begin{table}
\begin{tabularx}{7cm}{l|X|X}
&\thead{ long\\ heading 1} & \thead{short heading}\\
\toprule
row 1 & 2314 & 2134
\end{tabularx}
\end{table}
\begin{table}
\begin{tabularx}{7cm}{l|Z|Z}
&\thead{long\\ heading 1} & \thead{short heading}\\
\toprule
row 1 & 2314 & 2134
\end{tabularx}
\end{table}
\end{document}
Beachten Sie, dass Sie mit makecell den Inhalt der Kopfzellen problemlos formatieren können. Ich möchte darauf hinweisen, dass Sie keine vertikalen Linien verwenden sollten booktabs
: Wie Sie sehen, schneiden diese die horizontalen nicht.