Mesa com 100% de largura e alinhamento vertical/horizontal

Mesa com 100% de largura e alinhamento vertical/horizontal

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 \centeringna 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}

insira a descrição da imagem aqui

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 Xcoluna é basicamente uma p{...}coluna. Portanto você pode usar os comandos como \RaggedRightno 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}{...}.

informação relacionada