Tabelleninhalt mir individueller Spaltenbreite zentrieren

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Tabelleninhalt mir individueller Spaltenbreite zentrieren

von Xenara » Do 9. Sep 2010, 09:13

Gerne geschehen :)

Das mit den Tabellen bekommst du sicherlich hin, sooo schwierig ist es nicht, nur etwas anders.
In der Booktabs-Doku steht einiges dazu drin, oder auch hier findet man einige Ideen.

Viel Spass dabei!

von Andreas R. » Do 9. Sep 2010, 09:00

WOW,

da sag ich mal: VIELEN DANK, Xenara!!!

Du hast mir echt geholfen.

Die Tabelle sieht echt klasse aus, ich kannte halt bisher nur Word und da ging das mit dem Tabellenformatieren doch etwas (für meine LaTeX-Anfänger-Begriffe leichter).

Werd mich jetzt mal dran machen auch meine anderen Tabellen so zu gestalten, hoffentlich schaffe ich das auch ;-)


Gruß
Andreas

von Sepp99 » Do 9. Sep 2010, 08:57

Anmerkung: bei KOMAscript-Klassen bietet sich anstatt
\caption

der Befehl
\captionabove
an, dann hängt die Überschrift nicht so an der Tabelle.

von Xenara » Mi 8. Sep 2010, 22:49

caption funktioniert nur in Gleitumgebungen wie figure oder table. Wenn du es gleiten lassen möchtest, sieht der Code so aus:
\begin{table}[htbp]
\centering
\caption{Caption, steht bei Tabellen für gewöhnlich oben.}
\label{tab:label}
\begin{tabular}{ccc}
1 & 2 & 3 
\end{tabular}
\end{table}
Ohne Gleiten jedoch so:
\usepackage{capt-of} oder \usepackage{caption}
...

\begin{minipage}{\textwidth}
\centering
\captionof{table}{Caption, steht bei Tabellen für gewöhnlich oben.}
\label{tab:label}
\begin{tabular}{ccc}
1 & 2 & 3 
\end{tabular}
\end{minipage}
Und zentrierte Spalten mit fixer Breite kann man mit Hilfe des Pakets array machen:
\documentclass[a4paper]{scrbook}
\usepackage[ngerman]{babel}
\usepackage[latin1]{inputenc}
\usepackage{array}
\usepackage{blindtext}

\begin{document}

\begin{table}[htbp]%
\begin{tabular}{>{\centering\arraybackslash}p{5cm}c>{\centering\arraybackslash}p{5cm}}
Text & Text & Text\\
Hier steht viel Text, der zentriert wird. & 1 & 2
\end{tabular}
\caption{}
\label{}
\end{table}

\end{document}
Man kann auch eigene Spalten definieren, siehe dazu die Doku von array.

Ich hab mal bei der Gelegenheit deine Tabelle hier etwas überarbeitet. Beim Satz von Tabellen gilt "vertikale Linien sind böse". Man sieht es auch eigentlich in keinem guten Buch.
Sieh dir mal die beiden Versionen an, was dir besser gefällt. Erklärungen sind in Form von Kommentaren direkt im Code.
\documentclass[a4paper, 10pt, oneside]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[ansinew]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{tabularx}
\usepackage{calc}% Lieber jedes Paket extra laden
\usepackage[left=2.5cm, right=2.5cm,top=2.5cm, bottom=2cm]{geometry}
\renewcommand{\baselinestretch}{1.25}
\setkomafont{sectioning}{\bfseries}
\usepackage{caption}

\usepackage{array}
\usepackage{booktabs}


\begin{document}

\section{Korrigierte, bisherige Version}

\begin{table}[htbp]
\centering
\caption{Wachstum in Großbritannien (in \% p.a.)}
\begin{tabular}{|c||m{2,7cm}|m{2.7cm}||m{2.7cm}|m{2.7cm}|}
\hline
\textsc{} &\multicolumn{2}{|c||}{Neuere Schätzung} &
\multicolumn{2}{|c|}{Ältere Schätzung}\\
\textsc{} &\multicolumn{2}{|c||}{(CRAFTS/HARLEY)} &
\multicolumn{2}{|c|}{(DEANE/COLE)}\\
\hline
\textsc{Zeit} & \textsc{Sozialprodukt} & \textsc{Sozialprodukt} & \textsc{Sozialprodukt} & \textsc{Sozialprodukt}\\
\textsc{} & \textsc{} & \textsc{pro Kopf} &
\textsc{} & \textsc{pro Kopf}\\
\hline \hline

1700-1760 & 0,69 & 0,31 & 0,66 & 0,45\\
1760-1780 & 0,70 & 0,01 & 0,65 & -0,04\\
1780-1801 & 1,31 & 0,35 & 2,06 & 1,08\\
1801-1831 & 1,97 & 0,52 & 3,06 & 1,61\\\hline
\end{tabular}
\end{table}


\section{Überarbeitete, neue Version}


\begin{table}[htbp]
% Zentriert den gesamten Inhalt dieser Umgebung auf der Seite
\centering
% Die Caption einer Tabelle steht für gewöhnlich oben
\caption{Wachstum in Großbritannien (in \% p.\,a.)}% Zwischen p. und a. einen kleinen Abstand eingefügt, wie bei z.\,B.
% Ggf. ein Label definieren:
\label{tab:label}
% Um die Länge von "-" in einer Variablen zu speichern:
\newlength{\mylength}
\settowidth{\mylength}{\widthof{-}}
% Neue Tabellenspalte definieren. Das \arraybackslash ist nötig, damit Zeilenumbrüche richtig erkannt werden.
\newcolumntype{M}[1]{>{\centering\arraybackslash}b{#1}}% Hier mit m,p,b spielen.
% Hier geht die eigentliche Tabelle los
\begin{tabular}{cM{2.7cm}M{2.7cm}M{2.7cm}M{2.7cm}}
\toprule
&\multicolumn{2}{c}{Neuere Schätzung} & \multicolumn{2}{c}{Ältere Schätzung}\\
&\multicolumn{2}{c}{(CRAFTS/HARLEY)} & \multicolumn{2}{c}{(DEANE/COLE)}\\
\cmidrule(lr){2-3}
\cmidrule(lr){4-5}
\textsc{Zeit} & \textsc{Sozialprodukt} & \textsc{Sozialprodukt \newline pro Kopf} & \textsc{Sozialprodukt} & \textsc{Sozialprodukt \newline pro Kopf}\\
\cmidrule(lr){2-3}
\cmidrule(lr){4-5}
1700-1760 & 0,69 & 0,31 & 0,66 & 0,45\\
1760-1780 & 0,70 & 0,01 & 0,65 & \hspace*{-\mylength}-0,04\\
1780-1801 & 1,31 & 0,35 & 2,06 & 1,08\\
1801-1831 & 1,97 & 0,52 & 3,06 & 1,61\\
\bottomrule
\end{tabular}
\end{table}

\end{document}

Tabelleninhalt mir individueller Spaltenbreite zentrieren

von Andreas R. » Mi 8. Sep 2010, 21:16

Hallo zusammen,

ich arbeite seit etwa 2 Wochen mit LaTeX an einer Arbeit für die Uni und bin im Moment ein wenig am verzweifeln.

Ich habe mir eine Tabelle erstellt, bei der ich aber die Spaltenbreite individuell einstellen musste. Ich wollte dann eigentlich den Inhalt der Spalten zentrieren, aber irgendwie nimmt LaTeX das nicht so ganz hin über den "c"-Befehl oben.

Ein zweites Problem habe ich damit, dass dieser \caption-Befehl bei mir nicht funktioniert. Egal was ich oben reinschreiben (hab nun wirklich schon viel dazu ausprobiert), immer bekomme ich unten unter der Tabelle einen Error, wie z.B.: "Package caption Error: \caption outside float. \caption (followed by:{usw.}"

Gibt es eigentlich eine Einstellung, wo ich LaTeX sagen kann wo die Tabellen positioniert werden sollen? Ich hätte sie gerne mittig zentriert auf der Seite und meine mich erinnern zu können, dass LaTeX das auch von Hause aus so machen würde. Aber irgendwie setzt er mir die Tabellen alle linksbündig auf die Seite. Woran könnte das liegen?

OK, für euch wird das bestimmt ein banaler Anfänger-Fehler sein, aber ehrlich gesagt weiß ich im Moment nicht wo der Fehler liegt und wäre für jede Hilfe dankbar.

Den Code zu der o.g. Tabelle häng ich hier mal an!
\documentclass[a4paper, 10pt, oneside]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[ansinew]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{tabularx,calc}
\usepackage[left=2.5cm, right=2.5cm,top=2.5cm, bottom=2cm]{geometry}
\renewcommand{\baselinestretch}{1.25}
\setkomafont{sectioning}{\bfseries}
\usepackage{caption}
\begin{document}

\begin{tabular}{|c||m{2,7cm}|m{2.7cm}||m{2.7cm}|m{2.7cm}|}
\hline
\textsc{} &\multicolumn{2}{|c||}{Neuere Schätzung} &
\multicolumn{2}{|c|}{Ältere Schätzung}\\
\textsc{} &\multicolumn{2}{|c||}{(CRAFTS/HARLEY)} &
\multicolumn{2}{|c|}{(DEANE/COLE)}\\
\hline 
\textsc{Zeit} & \textsc{Sozialprodukt} & \textsc{Sozialprodukt} & \textsc{Sozialprodukt} & \textsc{Sozialprodukt}\\
\textsc{} & \textsc{} & \textsc{pro Kopf} &
\textsc{} & \textsc{pro Kopf}\\
\hline \hline

1700-1760 & 0,69 & 0,31 & 0,66 & 0,45\\
1760-1780 & 0,70 & 0,01 & 0,65 & -0,04\\
1780-1801 & 1,31 & 0,35 & 2,06 & 1,08\\
1801-1831 & 1,97 & 0,52 & 3,06 & 1,61\\\hline

\end{tabular}
\caption{Wachstum in Großbritannien (in \% p.a.)}
Danke für eure Zeit und Hilfe!

Gruss Andreas

Nach oben