![Mesa com 100% de largura e alinhamento vertical/horizontal](https://rvso.com/image/266422/Mesa%20com%20100%25%20de%20largura%20e%20alinhamento%20vertical%2Fhorizontal.png)
Quero desenhar a seguinte tabela em LaTeX. Na primeira coluna o texto deve ser alinhado à esquerda. O texto em todas as outras células deve ser centralizado. O primeiro problema ocorre com D na primeira linha. Se eu escrever um \centering
na frente de D
, recebo um erro de LaTeX. O segundo problema é que quero alinhar verticalmente o texto em todas as células, mas não sei como. Encontrei uma solução, mas não funciona se a largura da primeira coluna for especificada.
\documentclass{article}
\usepackage{blindtext}
\usepackage{tabularx}
\begin{document}
\begin{tabularx}{\textwidth}{|p{4cm}|X|X|X|X|}
\hline
& \centering A & \centering B & \centering C & D\\
\hline
\blindtext & 123 & 123 & 123 & 123\\
\hline
\end{tabularx}
\end{document}
Responder1
Para texto centralizado horizontal e verticalmente, redefina a definição da coluna X:
\documentclass{article}
\usepackage{ragged2e}
\usepackage{tabularx}
\renewcommand\tabularxcolumn[1]{>{\Centering}m{#1}}
\newcommand\TEXT{%
I want to draw the following table in Latex. In the first column the text should be left aligned. The text in all other cells should be centered.}% only for demo
\begin{document}
\begin{tabularx}{\textwidth}{|m{4cm}*4{|X}|}\hline
& A & B & C & D \\\hline
\TEXT\TEXT & 123 & 123 & 123 & \TEXT\\\hline
\end{tabularx}
\end{document}
Responder2
Você pode fazer o alinhamento com métodos padrão do TeX, mas melhor com o pacote do LaTeX ragged2e
:
\documentclass{article}
\usepackage{blindtext}
\usepackage{tabularx}
\usepackage{ragged2e}
\begin{document}
\begin{tabularx}{\textwidth}{|>{\RaggedRight}p{4cm}*{5}{|>{\Centering}X}|}
\hline
& A & B & C & D\\
\hline
\blindtext & 123 & 123 & 123 & 123\\
\hline
\end{tabularx}
\end{document}
Uma X
coluna é basicamente uma p{...}
coluna. Portanto você pode usar os comandos como \RaggedRight
no início de cada célula. Para fazer isso automaticamente para cada célula, basta usar >{..}
, que insere o conteúdo das chaves no início de cada célula daquela linha.
Para evitar a repetição das últimas cinco células, inseri a construção *{5}{...}
.