Tabelle und Zeilen zu kurz oder breit

Tabelle und Zeilen zu kurz oder breit

Hier ist ein MWE von dem, was ich versuche zu tun.

\documentclass[a4paper]{article}
\usepackage{tabularx,booktabs}
\usepackage{color,colortbl}
\begin{document}
\begin{table}[htb]
\centering
\begin{tabularx}{\textwidth}{l r r r r r r r r r r r}
\toprule
A1 & A2 & A3 & A4 & A5 & A6 & A7 & A8 & A9 & A10 & A11 & A12 \\
\midrule
\rowcolor{blue} 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 \\[0pt]
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 \\
\bottomrule
\end{tabularx}
\begin{tabularx}{\textwidth}{l r r r r r r r r r r r r r r}
\toprule
A1 & A2 & A3 & A4 & A5 & A6 & A7 & A8 & A9 & A10 & A11 & A12 & A13 & A14 & A15 \\
\midrule
\rowcolor{blue} 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 \\[0pt]
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 \\
\bottomrule
\end{tabularx}
\end{table}
\end{document}

Die erste Tabelle ist zu lang \topruleund \bottomrulesieht komisch aus. Ich habe ein paar Fragen dazu.

Wie kann ich die Größe tabularxauf die Inhaltsbreite einstellen?

Wie kann ich die letzte Spalte rechtsbündig ausrichten (sodass sich alle Spalten über die Tabelle erstrecken)?

Wie kann ich es so einstellen, \rowcolordass es sich über die gesamte Tabelle erstreckt?

Die zweite Tabelle im Beispiel ist zu breit. Kennst du Tricks, um das optisch ansprechender zu gestalten?

Antwort1

Die erste Tabelle hat lange Regeln, weil tabularxversucht wird, eine Tabelle textwidthmit -Breite zu erstellen, aber es gibt keine Spalte mit anpassbarer Breite. Dasselbe gilt für die zweite Tabelle, aber in diesem Fall überschreitet der Tabelleninhalt die textwidth. Sie müssen Xden -Spaltenspezifizierer verwenden, um eine automatische Breitenanpassung zu ermöglichen. Versuchen Sie, zu ersetzen

\begin{tabularx}{\textwidth}{l r r r r r r r r r r r}

mit

\begin{tabularx}{\textwidth}{l *{11}X}

Beachten Sie, dass X-Spalten linksbündig und gleich breit sind. Um die letzte Spalte rechtsbündig auszurichten, können Sie r-column verwenden oder einen neuen Spaltentyp definieren Ralsfolgt,

\newcolumntype{R}{>{\raggedleft\arraybackslash}X}

Verwenden Sie dann \begin{tabularx}{\textwidth}{l *{10}X r}oder \begin{tabularx}{\textwidth}{l *{10}X R}, um die letzte Spalte rechtsbündig auszurichten.

Um alle Zeilen in derselben Farbe zuzulassen, können Sie den rowcolorsBefehl aus xcolordem Paket verwenden. Der rowcolorsBefehl ermöglicht abwechselnde Farben für gerade und ungerade Zeilen, wobei der erste Farbspezifizierer für ungerade Zeilen ist. Sie können weiterhin rowcolordie Farbe bestimmter Zeilen ändern.

Ein Beispiel mit geänderten Spaltentypen und Farbgebungen.

\documentclass[a4paper]{article}
\usepackage{tabularx,booktabs}
\usepackage[table]{xcolor}
\newcolumntype{L}{>{\raggedright\arraybackslash}X}
\newcolumntype{R}{>{\raggedleft\arraybackslash}X}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\begin{document}
\begin{table}[htb]
    \centering
    \rowcolors{1}{gray}{gray}
    \begin{tabularx}{\textwidth}{L *{10}C R}
    \toprule
        A1 & A2 & A3 & A4 & A5 & A6 & A7 & A8 & A9 & A10 & A11 & A12 \\
    \midrule
        1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 \\[0pt]
        1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 \\
    \bottomrule
    \end{tabularx}
\end{table}
\end{document}

Beachten Sie, dass alle X-Spalten die gleiche Breite haben. Die Breitenanpassung kann in schwierig sein tabularx. Versuchen Sie stattdessen,tabularyodertabuPaket.

verwandte Informationen