Seite 1 von 1

Gleichmäßig verteilte Spaltenabstände in Tabelle – nur wie?

Verfasst: Mo 8. Sep 2014, 16:04
von mofehl
Moin!

(Wahrscheinlich ist meine Frage einfach zu beantworten, ich habe allerdings im Netz nichts dazu gefunden.)

Ich habe unten stehende Tabelle (Minimalbeispiel) und möchte, dass die Abstände zwischen den Spalten gleichmäßig verteilt werden, und zwar so, dass die zur Verfügung stehende Tabellenbreite voll ausgeschöpft wird. Ich möchte NICHT, dass die Spalten an sich alle dieselbe Breite aufweisen. Dies ließe sich einfach bewerkstelligen.

Mit anderen Worten: Jede Spalte soll nur so breit sein wie nötig, aber der Abstand zwischen diesen Spalten soll gleichmäßig verteilt werden, sodass die letzte Spalte ganz rechts bündig am Tabellenende anliegt.

Jemand eine Idee? Eigentlich ist der Wunsch ja nicht allzu besonders...
\documentclass[paper=a4]{scrartcl}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}

\usepackage{booktabs,tabularx}

\begin{document}

\begin{table}[htbp]
	\centering
	\caption{Meine Tabelle}
	\label{tab:Meine_Tabelle}
	{\footnotesize
	\begin{tabularx}{\textwidth}{lrrrrr}
		\toprule
			Kategorie & Hütten & Bewirtschaftet & Selbstversorger & Sektionen \\
		\midrule
			Kategorie I & 202 & 158 & 44 & 133 \\
			Kategorie II & 47 & 35 & 12 & 40 \\
			Kategorie III & 2 & 2 & 0 & 2 \\
			Mittelgebirgshütten & 73 & 11 & 62 & 70 \\
		\midrule
			Alle Kategorien & 324 & 206 & 118 & 184 \\
		\bottomrule
	\end{tabularx}}
\end{table}

\end{document}

Verfasst: Mo 8. Sep 2014, 17:05
von u_fischer
\documentclass[paper=a4]{scrartcl}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}

\usepackage{booktabs,tabularx,lipsum}

\begin{document}

\begin{table}[htbp]
    \lipsum[1]
    \centering
    \caption{Meine Tabelle}

    \label{tab:Meine_Tabelle}
    {\footnotesize
    \begin{tabularx}{\textwidth}{l@{\extracolsep{\fill}}rrrr@{\extracolsep{\tabcolsep}}r}
       \toprule
          Kategorie & Hütten & Bewirtschaftet & Selbstversorger & Sektionen \\
       \midrule
          Kategorie I & 202 & 158 & 44 & 133 \\
          Kategorie II & 47 & 35 & 12 & 40 \\
          Kategorie III & 2 & 2 & 0 & 2 \\
          Mittelgebirgshütten & 73 & 11 & 62 & 70 \\
       \midrule
          Alle Kategorien & 324 & 206 & 118 & 184 \\
       \bottomrule
    \end{tabularx}}
\end{table}

\end{document}

Verfasst: Mo 8. Sep 2014, 18:49
von Besserwisser
Ist eigentlich ein schönes Beispiel für die Standard tabular*-Umgebung, also ganz ohne tabularx:
\documentclass[paper=a4]{scrartcl}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}

\usepackage{booktabs,lipsum}

\begin{document}

\begin{table}[htbp]
    \lipsum[1]
    \centering
    \caption{Meine Tabelle}

    \label{tab:Meine_Tabelle}
    {\footnotesize
    \begin{tabular*}{\textwidth}{l@{\extracolsep{\fill}}rrrr@{\extracolsep{\tabcolsep}}r}
       \toprule
          Kategorie & Hütten & Bewirtschaftet & Selbstversorger & Sektionen \\
       \midrule
          Kategorie I & 202 & 158 & 44 & 133 \\
          Kategorie II & 47 & 35 & 12 & 40 \\
          Kategorie III & 2 & 2 & 0 & 2 \\
          Mittelgebirgshütten & 73 & 11 & 62 & 70 \\
       \midrule
          Alle Kategorien & 324 & 206 & 118 & 184 \\
       \bottomrule
    \end{tabular*}}
\end{table}

\end{document}

Verfasst: Di 9. Sep 2014, 18:13
von mofehl
Leute, ihr seid die Besten! Herzlichen Dank u_fischer und Besserwisser!

Verfasst: Di 9. Sep 2014, 19:34
von mofehl
Nachtrag

Ich habe im ursprünglichen Minimalbeispiel einen Fehler gemacht, der sich in den beiden Antworten wiederfindet. Die von mir eingestellte Tabelle wird durch 6 Spalten definiert, es findet sich aber nur Text für 5 Spalten. Die Tabelle soll auch nur 5 Spalten haben. Dadurch kann der zusätzliche Ausgleich durch
@{\extracolsep{\tabcolsep}}
in der Spaltendefinition entfallen. Die (saubere) Lösung lautet daher:
\documentclass[paper=a4]{scrartcl}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}

\usepackage{booktabs,lipsum}

\begin{document}

\begin{table}[htbp]
    \lipsum[1]
    \centering
    \caption{Meine Tabelle}

    \label{tab:Meine_Tabelle}
    {\footnotesize
    \begin{tabular*}{\textwidth}{l@{\extracolsep{\fill}}rrrr}
       \toprule
          Kategorie & Hütten & Bewirtschaftet & Selbstversorger & Sektionen \\
       \midrule
          Kategorie I & 202 & 158 & 44 & 133 \\
          Kategorie II & 47 & 35 & 12 & 40 \\
          Kategorie III & 2 & 2 & 0 & 2 \\
          Mittelgebirgshütten & 73 & 11 & 62 & 70 \\
       \midrule
          Alle Kategorien & 324 & 206 & 118 & 184 \\
       \bottomrule
    \end{tabular*}}
\end{table}

\end{document}
Danke an Besserwisser für den Hinweis auf die tabular*-Umgebung, die mir unbekannt war. Die Lösung wird auch hier beschrieben:

https://en.wikibooks.org/wiki/LaTeX/Tables