Eu tenho uma tabela com títulos curtos e longos. Estou usando o tipo de coluna X
do tabularx
pacote. Os títulos estão alinhados ao topo, como posso alinhar os títulos horizontalmente no meio?
\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}
Responder1
Supondo que você deseja obter entradas centralizadas horizontal e verticalmente, você pode usar a seguinte redefinição de X
colunas de tipo. Normalmente eles são derivados de p
colunas de tipo alinhadas pela parte superior. Com \renewcommand{\tabularxcolumn}[1]{m{#1}}
podemos mudar isso para que as x
colunas de tipo sejam derivadas das m
colunas de tipo centralizadas verticalmente.
\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}
Se quiser usar X
colunas de tipo centralizadas horizontal e verticalmente com mais frequência em todo o documento, você também pode adicionar \newcolumntype{Y}{>{\centering\arraybackslash}X}
ao seu preâmbulo e usar \begin{tabularx}{\linewidth}{*2{Y}}
.
Se você deseja manter a definição original de X
colunas de tipo alinhadas no topo e ter um tipo de coluna derivado separado e centralizado verticalmente, você pode querer dar uma olhada emCopie a coluna tabularx X como nova coluna centralizada verticalmente
Se você quiser alterar apenas o alinhamento vertical de uma única tabela, poderá usar a seguinte redefinição local da X
coluna de tipo. Aqui adicionei \renewcommand{\tabularxcolumn}[1]{m{#1}}
logo após \begin{table}
a tabela correspondente.
\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}