von mofehl » Mi 10. Sep 2014, 13:01
Moin liebes Forum,
ich habe ein Frage, die ich auf ähnliche Art bereits in diesem Forum gestellt habe (Link dazu ganz unten).
Mir wurde eine schöne Antwort gegeben, die aber leider nicht verallgemeinerungsfähig ist. Daher wende ich mich an die Könner und Experten ein zweites Mal, wobei ich diesmal meine Frage präziser stellen kann.
Ich habe eine Tabelle mit fester Gesamtbreite. Ich möchte, dass die Tabellenspalten so breit sind wie die breitesten Zellen der jeweiligen Spalten. Darüber hinaus möchte ich, dass sich die Spaltenabstände flexibel anpassen, und zwar so, dass die Spalten auf die Gesamtbreite der Tabelle verteilt werden. Diese Forderung kann zweierlei bedeuten:
(a) Vergrößere die Spaltenabstände, sodass die Tabellenbreite voll ausgeschöpft wird, ohne die Spalten an sich breiter zu machen als nötig.
(b) Verringere die Spaltenabstände, sodass kein Text über die Gesamtbreite der Tabelle hinausreicht. Mache die Spaltenabstände notfalls kleiner als der voreingestellte Wert von \tabcolsep.
Unten findet sich ein Minimalbeispiel. Darin sind die Umgebungen:
(1) tabular*
(2) tabularx
(3) tabulary
mit jeweils derselben Tabelle enthalten. Keine der Umgebungen arbeitet so, wie ich es mir vorstelle. Bei
tabular* sind die Spalten so breit wie nötig, allerdings werden die Spaltenabstände nicht flexibel gesetzt, wodurch Text über die Gesamtbreite hinausragt. Bei
tabularx und
tabulary werden die Spalten zwar richtig auf die Gesamtbreite verteilt, aber notfalls umgebrochen, was ich durch obige Forderung vermeiden möchte.
Im Minimalbeispiel findet sich eine Behelfslösung, indem ich bei der
tabular*-Umgebung sage:
\setlength{\tabcolsep}{0.5\tabcolsep}
Allerdings ist diese Lösung nicht allgemeingültig, da der Wert 0.5\tabsolsep nicht flexibel ist. Eine allgemeingültige Lösung müsste anstelle 0.5 so etwas wie \adjust beinhalten (den Befehl \adjust habe ich mir ausgedacht, um mein Problem zu veranschaulichen).
Wer mein Minimalbeispiel kompiliert, wird wissen, was ich hier umständlich auszudrücken versuche. Wer hat eine Lösung für mein Problem?
\documentclass{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[locale=DE]{siunitx}
\usepackage{booktabs,tabularx,tabulary}
\usepackage{graphicx}
\usepackage{lipsum}
\newcolumntype{A}{>{\raggedright\arraybackslash}X} % Buchstabe L bereits durch tabulary vergeben
\newcolumntype{B}{>{\raggedleft\arraybackslash}X} % Buchstabe R bereits durch tabulary vergeben
\newcommand{\hoch}[1]{\textsuperscript{#1}}
\newcommand{\tief}[1]{\textsubscript{#1}}
\begin{document}
% ------------------------------------------------------------
% tabular*-Umgebung
% ------------------------------------------------------------
\lipsum[1]
\begin{table}[htbp]
%\setlength{\tabcolsep}{0.5\tabcolsep}
\centering
\caption{tabular* (textwidth)}
{\footnotesize
\begin{tabular*}{\textwidth}{lrrrlrlr}
\toprule
Energieträger & Heizwert H\tief{i} & Heizwert H\tief{i} & Heizwert H\tief{i} & Einheit & Dichte & Einheit & Anmerkung \\
& [MJ/kg] & [kWh/kg] & & & & & \\
\midrule
Diesel & 43,1 & 11,97 & 10,05 & kWh/l & 0,84 & kg/l & -- \\
Heizöl EL & 42,6 & 11,83 & 10,17 & kWh/l & 0,86 & kg/l & -- \\
Flüssiggas & 46,2 & 12,83 & 6,54 & kWh/l & 0,51 & kg/l & bei \SI{15}{\degreeCelsius} \\
Pflanzenöl & 37,6 & 10,44 & 9,60 & kWh/l & 0,92 & kg/l & bei \SI{15}{\degreeCelsius} \\
Brennholz & 13,1 & 4,15 & 1910 & kWh/rm & 460 & kg/rm & Buche, H\tief{2}O \SI{15}{\%} \\
Holzbriketts & 16,4 & 5,20 & 5,20 & kWh/kg & -- & -- & Buche, H\tief{2}O \SI{8}{\%} \\
\bottomrule
\end{tabular*}}
\end{table}
% ------------------------------------------------------------
% tabular*-Umgebung mit manuellem Spaltenabstand
% ------------------------------------------------------------
\begin{table}[htbp]
\setlength{\tabcolsep}{0.5\tabcolsep}
\centering
\caption{tabular* (textwidth) mit 0.5 tabcolsep}
{\footnotesize
\begin{tabular*}{\textwidth}{lrrrlrlr}
\toprule
Energieträger & Heizwert H\tief{i} & Heizwert H\tief{i} & Heizwert H\tief{i} & Einheit & Dichte & Einheit & Anmerkung \\
& [MJ/kg] & [kWh/kg] & & & & & \\
\midrule
Diesel & 43,1 & 11,97 & 10,05 & kWh/l & 0,84 & kg/l & -- \\
Heizöl EL & 42,6 & 11,83 & 10,17 & kWh/l & 0,86 & kg/l & -- \\
Flüssiggas & 46,2 & 12,83 & 6,54 & kWh/l & 0,51 & kg/l & bei \SI{15}{\degreeCelsius} \\
Pflanzenöl & 37,6 & 10,44 & 9,60 & kWh/l & 0,92 & kg/l & bei \SI{15}{\degreeCelsius} \\
Brennholz & 13,1 & 4,15 & 1910 & kWh/rm & 460 & kg/rm & Buche, H\tief{2}O \SI{15}{\%} \\
Holzbriketts & 16,4 & 5,20 & 5,20 & kWh/kg & -- & -- & Buche, H\tief{2}O \SI{8}{\%} \\
\bottomrule
\end{tabular*}}
\end{table}
% ------------------------------------------------------------
% tabularx-Umgebung
% ------------------------------------------------------------
\newpage
\lipsum[1]
\begin{table}[htbp]
\setlength{\tabcolsep}{0.5\tabcolsep}
\centering
\caption{tabularx (textwidth)}
{\footnotesize
\begin{tabularx}{\textwidth}{ABBBABAB} % A=linksbündig, B=rechtsbündig
\toprule
Energieträger & Heizwert H\tief{i} & Heizwert H\tief{i} & Heizwert H\tief{i} & Einheit & Dichte & Einheit & Anmerkung \\
& [MJ/kg] & [kWh/kg] & & & & & \\
\midrule
Diesel & 43,1 & 11,97 & 10,05 & kWh/l & 0,84 & kg/l & -- \\
Heizöl EL & 42,6 & 11,83 & 10,17 & kWh/l & 0,86 & kg/l & -- \\
Flüssiggas & 46,2 & 12,83 & 6,54 & kWh/l & 0,51 & kg/l & bei \SI{15}{\degreeCelsius} \\
Pflanzenöl & 37,6 & 10,44 & 9,60 & kWh/l & 0,92 & kg/l & bei \SI{15}{\degreeCelsius} \\
Brennholz & 13,1 & 4,15 & 1910 & kWh/rm & 460 & kg/rm & Buche, H\tief{2}O \SI{15}{\%} \\
Holzbriketts & 16,4 & 5,20 & 5,20 & kWh/kg & -- & -- & Buche, H\tief{2}O \SI{8}{\%} \\
\bottomrule
\end{tabularx}}
\end{table}
% ------------------------------------------------------------
% tabulary-Umgebung
% ------------------------------------------------------------
\begin{table}[htbp]
\centering
\caption{tabulary mit textwidth}
{\footnotesize
\begin{tabulary}{\textwidth}{LRRRLRLR}
\toprule
Energieträger & Heizwert H\tief{i} & Heizwert H\tief{i} & Heizwert H\tief{i} & Einheit & Dichte & Einheit & Anmerkung \\
& [MJ/kg] & [kWh/kg] & & & & & \\
\midrule
Diesel & 43,1 & 11,97 & 10,05 & kWh/l & 0,84 & kg/l & -- \\
Heizöl EL & 42,6 & 11,83 & 10,17 & kWh/l & 0,86 & kg/l & -- \\
Flüssiggas & 46,2 & 12,83 & 6,54 & kWh/l & 0,51 & kg/l & bei \SI{15}{\degreeCelsius} \\
Pflanzenöl & 37,6 & 10,44 & 9,60 & kWh/l & 0,92 & kg/l & bei \SI{15}{\degreeCelsius} \\
Brennholz & 13,1 & 4,15 & 1910 & kWh/rm & 460 & kg/rm & Buche, H\tief{2}O \SI{15}{\%} \\
Holzbriketts & 16,4 & 5,20 & 5,20 & kWh/kg & -- & -- & Buche, H\tief{2}O \SI{8}{\%} \\
\bottomrule
\end{tabulary}}
\end{table}
\end{document}
(Hier der Link zu meiner anderen Frage:
http://www.golatex.de/viewtopic.php?t=1 ... 9365a388f6
Wendet man die dort beschriebene Lösung auf die Tabelle im Minimalbeispiel an, wird ihr nicht verallgemeinerungsfähiger Charakter deutlich.)
Moin liebes Forum,
ich habe ein Frage, die ich auf ähnliche Art bereits in diesem Forum gestellt habe (Link dazu ganz unten).
Mir wurde eine schöne Antwort gegeben, die aber leider nicht verallgemeinerungsfähig ist. Daher wende ich mich an die Könner und Experten ein zweites Mal, wobei ich diesmal meine Frage präziser stellen kann.
Ich habe eine Tabelle mit fester Gesamtbreite. Ich möchte, dass die Tabellenspalten so breit sind wie die breitesten Zellen der jeweiligen Spalten. Darüber hinaus möchte ich, dass sich die Spaltenabstände flexibel anpassen, und zwar so, dass die Spalten auf die Gesamtbreite der Tabelle verteilt werden. Diese Forderung kann zweierlei bedeuten:
(a) Vergrößere die Spaltenabstände, sodass die Tabellenbreite voll ausgeschöpft wird, ohne die Spalten an sich breiter zu machen als nötig.
(b) Verringere die Spaltenabstände, sodass kein Text über die Gesamtbreite der Tabelle hinausreicht. Mache die Spaltenabstände notfalls kleiner als der voreingestellte Wert von \tabcolsep.
Unten findet sich ein Minimalbeispiel. Darin sind die Umgebungen:
(1) tabular*
(2) tabularx
(3) tabulary
mit jeweils derselben Tabelle enthalten. Keine der Umgebungen arbeitet so, wie ich es mir vorstelle. Bei [b]tabular*[/b] sind die Spalten so breit wie nötig, allerdings werden die Spaltenabstände nicht flexibel gesetzt, wodurch Text über die Gesamtbreite hinausragt. Bei [b]tabularx[/b] und [b]tabulary[/b] werden die Spalten zwar richtig auf die Gesamtbreite verteilt, aber notfalls umgebrochen, was ich durch obige Forderung vermeiden möchte.
Im Minimalbeispiel findet sich eine Behelfslösung, indem ich bei der [b]tabular*[/b]-Umgebung sage:
[code]\setlength{\tabcolsep}{0.5\tabcolsep}[/code]
Allerdings ist diese Lösung nicht allgemeingültig, da der Wert 0.5\tabsolsep nicht flexibel ist. Eine allgemeingültige Lösung müsste anstelle 0.5 so etwas wie \adjust beinhalten (den Befehl \adjust habe ich mir ausgedacht, um mein Problem zu veranschaulichen).
Wer mein Minimalbeispiel kompiliert, wird wissen, was ich hier umständlich auszudrücken versuche. Wer hat eine Lösung für mein Problem?
[code]\documentclass{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[locale=DE]{siunitx}
\usepackage{booktabs,tabularx,tabulary}
\usepackage{graphicx}
\usepackage{lipsum}
\newcolumntype{A}{>{\raggedright\arraybackslash}X} % Buchstabe L bereits durch tabulary vergeben
\newcolumntype{B}{>{\raggedleft\arraybackslash}X} % Buchstabe R bereits durch tabulary vergeben
\newcommand{\hoch}[1]{\textsuperscript{#1}}
\newcommand{\tief}[1]{\textsubscript{#1}}
\begin{document}
% ------------------------------------------------------------
% tabular*-Umgebung
% ------------------------------------------------------------
\lipsum[1]
\begin{table}[htbp]
%\setlength{\tabcolsep}{0.5\tabcolsep}
\centering
\caption{tabular* (textwidth)}
{\footnotesize
\begin{tabular*}{\textwidth}{lrrrlrlr}
\toprule
Energieträger & Heizwert H\tief{i} & Heizwert H\tief{i} & Heizwert H\tief{i} & Einheit & Dichte & Einheit & Anmerkung \\
& [MJ/kg] & [kWh/kg] & & & & & \\
\midrule
Diesel & 43,1 & 11,97 & 10,05 & kWh/l & 0,84 & kg/l & -- \\
Heizöl EL & 42,6 & 11,83 & 10,17 & kWh/l & 0,86 & kg/l & -- \\
Flüssiggas & 46,2 & 12,83 & 6,54 & kWh/l & 0,51 & kg/l & bei \SI{15}{\degreeCelsius} \\
Pflanzenöl & 37,6 & 10,44 & 9,60 & kWh/l & 0,92 & kg/l & bei \SI{15}{\degreeCelsius} \\
Brennholz & 13,1 & 4,15 & 1910 & kWh/rm & 460 & kg/rm & Buche, H\tief{2}O \SI{15}{\%} \\
Holzbriketts & 16,4 & 5,20 & 5,20 & kWh/kg & -- & -- & Buche, H\tief{2}O \SI{8}{\%} \\
\bottomrule
\end{tabular*}}
\end{table}
% ------------------------------------------------------------
% tabular*-Umgebung mit manuellem Spaltenabstand
% ------------------------------------------------------------
\begin{table}[htbp]
\setlength{\tabcolsep}{0.5\tabcolsep}
\centering
\caption{tabular* (textwidth) mit 0.5 tabcolsep}
{\footnotesize
\begin{tabular*}{\textwidth}{lrrrlrlr}
\toprule
Energieträger & Heizwert H\tief{i} & Heizwert H\tief{i} & Heizwert H\tief{i} & Einheit & Dichte & Einheit & Anmerkung \\
& [MJ/kg] & [kWh/kg] & & & & & \\
\midrule
Diesel & 43,1 & 11,97 & 10,05 & kWh/l & 0,84 & kg/l & -- \\
Heizöl EL & 42,6 & 11,83 & 10,17 & kWh/l & 0,86 & kg/l & -- \\
Flüssiggas & 46,2 & 12,83 & 6,54 & kWh/l & 0,51 & kg/l & bei \SI{15}{\degreeCelsius} \\
Pflanzenöl & 37,6 & 10,44 & 9,60 & kWh/l & 0,92 & kg/l & bei \SI{15}{\degreeCelsius} \\
Brennholz & 13,1 & 4,15 & 1910 & kWh/rm & 460 & kg/rm & Buche, H\tief{2}O \SI{15}{\%} \\
Holzbriketts & 16,4 & 5,20 & 5,20 & kWh/kg & -- & -- & Buche, H\tief{2}O \SI{8}{\%} \\
\bottomrule
\end{tabular*}}
\end{table}
% ------------------------------------------------------------
% tabularx-Umgebung
% ------------------------------------------------------------
\newpage
\lipsum[1]
\begin{table}[htbp]
\setlength{\tabcolsep}{0.5\tabcolsep}
\centering
\caption{tabularx (textwidth)}
{\footnotesize
\begin{tabularx}{\textwidth}{ABBBABAB} % A=linksbündig, B=rechtsbündig
\toprule
Energieträger & Heizwert H\tief{i} & Heizwert H\tief{i} & Heizwert H\tief{i} & Einheit & Dichte & Einheit & Anmerkung \\
& [MJ/kg] & [kWh/kg] & & & & & \\
\midrule
Diesel & 43,1 & 11,97 & 10,05 & kWh/l & 0,84 & kg/l & -- \\
Heizöl EL & 42,6 & 11,83 & 10,17 & kWh/l & 0,86 & kg/l & -- \\
Flüssiggas & 46,2 & 12,83 & 6,54 & kWh/l & 0,51 & kg/l & bei \SI{15}{\degreeCelsius} \\
Pflanzenöl & 37,6 & 10,44 & 9,60 & kWh/l & 0,92 & kg/l & bei \SI{15}{\degreeCelsius} \\
Brennholz & 13,1 & 4,15 & 1910 & kWh/rm & 460 & kg/rm & Buche, H\tief{2}O \SI{15}{\%} \\
Holzbriketts & 16,4 & 5,20 & 5,20 & kWh/kg & -- & -- & Buche, H\tief{2}O \SI{8}{\%} \\
\bottomrule
\end{tabularx}}
\end{table}
% ------------------------------------------------------------
% tabulary-Umgebung
% ------------------------------------------------------------
\begin{table}[htbp]
\centering
\caption{tabulary mit textwidth}
{\footnotesize
\begin{tabulary}{\textwidth}{LRRRLRLR}
\toprule
Energieträger & Heizwert H\tief{i} & Heizwert H\tief{i} & Heizwert H\tief{i} & Einheit & Dichte & Einheit & Anmerkung \\
& [MJ/kg] & [kWh/kg] & & & & & \\
\midrule
Diesel & 43,1 & 11,97 & 10,05 & kWh/l & 0,84 & kg/l & -- \\
Heizöl EL & 42,6 & 11,83 & 10,17 & kWh/l & 0,86 & kg/l & -- \\
Flüssiggas & 46,2 & 12,83 & 6,54 & kWh/l & 0,51 & kg/l & bei \SI{15}{\degreeCelsius} \\
Pflanzenöl & 37,6 & 10,44 & 9,60 & kWh/l & 0,92 & kg/l & bei \SI{15}{\degreeCelsius} \\
Brennholz & 13,1 & 4,15 & 1910 & kWh/rm & 460 & kg/rm & Buche, H\tief{2}O \SI{15}{\%} \\
Holzbriketts & 16,4 & 5,20 & 5,20 & kWh/kg & -- & -- & Buche, H\tief{2}O \SI{8}{\%} \\
\bottomrule
\end{tabulary}}
\end{table}
\end{document}[/code]
(Hier der Link zu meiner anderen Frage:
http://www.golatex.de/viewtopic.php?t=13798&sid=02f9dc66cad16432134fcc9365a388f6
Wendet man die dort beschriebene Lösung auf die Tabelle im Minimalbeispiel an, wird ihr nicht verallgemeinerungsfähiger Charakter deutlich.)