У меня есть таблица с короткими и длинными заголовками. Я использую этот тип столбцов X
из tabularx
пакета. Заголовки выровнены по верху, как мне выровнять заголовки горизонтально по центру?
\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}
решение1
Предполагая, что вы хотите добиться горизонтально и вертикально центрированных записей, вы можете использовать следующее переопределение X
столбцов типа. Обычно они выводятся из p
столбцов типа, выровненных по верхнему краю. С помощью \renewcommand{\tabularxcolumn}[1]{m{#1}}
мы можем изменить это так, чтобы x
столбцы типа вытекали из столбцов типа, выровненных по вертикали m
.
\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}
Если вы хотите чаще использовать X
в документе столбцы текста, выровненные по горизонтали и вертикали, вы также можете добавить \newcolumntype{Y}{>{\centering\arraybackslash}X}
в преамбулу и использовать \begin{tabularx}{\linewidth}{*2{Y}}
.
Если вы хотите сохранить исходное определение X
типа столбцов, выровненных по верхнему краю, и иметь отдельный производный и вертикально центрированный тип столбцов, вам, возможно, стоит взглянуть наКопировать столбец X tabularx как новый вертикально центрированный столбец
Если вы хотите изменить вертикальное выравнивание только для одной таблицы, вы можете использовать следующее локальное переопределение столбца типа X
. Здесь я добавил \renewcommand{\tabularxcolumn}[1]{m{#1}}
сразу после \begin{table}
соответствующей таблицы.
\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}