Tabelle mit 100 % Breite und vertikaler / horizontaler Ausrichtung

Tabelle mit 100 % Breite und vertikaler / horizontaler Ausrichtung

Ich möchte die folgende Tabelle in LaTeX zeichnen. In der ersten Spalte soll der Text linksbündig ausgerichtet sein. Der Text in allen anderen Zellen soll zentriert sein. Das erste Problem tritt bei D in der ersten Zeile auf. Wenn ich \centeringvor ein schreibe D, erhalte ich einen LaTeX-Fehler. Das zweite Problem ist, dass ich den Text in allen Zellen vertikal ausrichten möchte, aber nicht weiß, wie. Ich habe eine Lösung gefunden, aber diese funktioniert nicht, wenn die Breite der ersten Spalte angegeben ist.

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

Antwort1

Für horizontal und vertikal zentrierten Text definieren Sie die X-Spaltendefinition neu:

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

Bildbeschreibung hier eingeben

Antwort2

Sie können die Ausrichtung mit Standardmethoden von TeX durchführen, besser ist jedoch das LaTeX- ragged2ePaket:

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

Eine XSpalte ist im Grunde eine p{...}Spalte. Daher können Sie die Befehle wie \RaggedRightam Anfang jeder Zelle verwenden. Um dies automatisch für jede Zelle zu tun, verwenden Sie einfach >{..}, wodurch der Inhalt der geschweiften Klammern am Anfang jeder Zelle in dieser Zeile eingefügt wird.

Um die Wiederholung der letzten fünf Zellen zu vermeiden, habe ich das Konstrukt eingefügt *{5}{...}.

verwandte Informationen