Wie richte ich die Zeilen zwischen Spalten vom Typ X horizontal aus?

Wie richte ich die Zeilen zwischen Spalten vom Typ X horizontal aus?

Ich habe eine Tabelle mit kurzen und langen Überschriften. Ich verwende den Spaltentyp Xaus dem tabularxPaket. Die Überschriften sind oben ausgerichtet, wie kann ich die Überschriften horizontal in der Mitte ausrichten?

\documentclass[12pt,a4paper]{article}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{array}

\begin{document}

\begin{table}[htb]
\centering
\caption{My caption}
\label{my-label}
\begin{tabularx}{\linewidth}{*2{>{\centering\arraybackslash}X}}
\toprule
\textbf{Short heading\newline(units)} &
\textbf{This is a long long, very very long heading\newline(units)}\\%
\midrule
416,09 & 194,30 \\
\bottomrule
\end{tabularx}
\end{table}

\end{document}

Bildbeschreibung hier eingeben

Antwort1

Angenommen, Sie möchten horizontal und vertikal zentrierte Einträge erzielen, können Sie die folgende Neudefinition von Typspalten verwenden . Normalerweise werden sie von Typspalten Xabgeleitet , die oben ausgerichtet sind. Mit können wir das so ändern, dass Typspalten von vertikal zentrierten Typspalten abgeleitet werden.p\renewcommand{\tabularxcolumn}[1]{m{#1}}xm

Bildbeschreibung hier eingeben

\documentclass[12pt,a4paper]{article}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{array}

\renewcommand{\tabularxcolumn}[1]{m{#1}}

\begin{document}

\begin{table}[htb]
\centering
\caption{My caption}
\label{my-label}
\begin{tabularx}{\linewidth}{*2{>{\centering\arraybackslash}X}}
\toprule
\textbf{Short heading\newline(units)} &
\textbf{This is a long long, very very long heading\newline(units)}\\%
\midrule
416,09 & 194,30 \\
\bottomrule
\end{tabularx}
\end{table}

\end{document}

XWenn Sie in Ihrem Dokument häufiger horizontal und vertikal zentrierte Spalten verwenden möchten , können Sie \newcolumntype{Y}{>{\centering\arraybackslash}X}Ihrer Präambel auch Folgendes hinzufügen und verwenden \begin{tabularx}{\linewidth}{*2{Y}}.


Wenn Sie die ursprüngliche Definition von oben ausgerichteten Spalten beibehalten Xund einen separaten abgeleiteten und vertikal zentrierten Spaltentyp haben möchten, sollten Sie einen Blick auf werfenKopiere die Tabularx X-Spalte als neue vertikal zentrierte Spalte


Wenn Sie nur die vertikale Ausrichtung für eine einzelne Tabelle ändern möchten, können Sie die folgende lokale Neudefinition des XTyps „Spalte“ verwenden. Hier habe ich \renewcommand{\tabularxcolumn}[1]{m{#1}}direkt nach \begin{table}der entsprechenden Tabelle hinzugefügt.

\documentclass[12pt,a4paper]{article}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{array}


\begin{document}

\begin{table}[htb]
\centering
\caption{My caption}
\label{my-label}
\begin{tabularx}{\linewidth}{*2{>{\centering\arraybackslash}X}}
\toprule
\textbf{Short heading\newline(units)} &
\textbf{This is a long long, very very long heading\newline(units)}\\%
\midrule
416,09 & 194,30 \\
\bottomrule
\end{tabularx}
\end{table}

\begin{table}[htb]
\renewcommand{\tabularxcolumn}[1]{m{#1}}
\centering
\caption{My caption}
\label{my-label}
\begin{tabularx}{\linewidth}{*2{>{\centering\arraybackslash}X}}
\toprule
\textbf{Short heading\newline(units)} &
\textbf{This is a long long, very very long heading\newline(units)}\\%
\midrule
416,09 & 194,30 \\
\bottomrule
\end{tabularx}
\end{table}

\begin{table}[htb]
\centering
\caption{My caption}
\label{my-label}
\begin{tabularx}{\linewidth}{*2{>{\centering\arraybackslash}X}}
\toprule
\textbf{Short heading\newline(units)} &
\textbf{This is a long long, very very long heading\newline(units)}\\%
\midrule
416,09 & 194,30 \\
\bottomrule
\end{tabularx}
\end{table}

\end{document}

verwandte Informationen