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}
caption funktioniert nur in Gleitumgebungen wie figure oder table. Wenn du es gleiten lassen möchtest, sieht der Code so aus:
[code]
\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}
[/code]
Ohne Gleiten jedoch so:
[code]
\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}
[/code]
Und zentrierte Spalten mit fixer Breite kann man mit Hilfe des Pakets array machen:
[code]\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}
[/code]
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.
[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}
[/code]