PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tabellen rahmen und auf Textbreite skalieren



coxthesen
06-09-2007, 17:15
Hi,

ich habe eine Frage bzgl. Tabellen. Mein Code sieht im Moment so aus:

\begin{table}[htbp]
\begin{centering}
\begin{tabular}{c c c c}
\multicolumn{4}{c}{Jährliches Wachstum in \%} \\

\hline \hline

Wang und Yao & Barro und Lee & Cohen und Soto & Young \\
(1978-1999) & (1978-2000) & (1978-2000) & (1978-1998)\\
\hline
0.82 & 0.45 & 0.55 & 1.1\\
\hline

\end{tabular}
\vspace{0.25cm}
\end{centering}
\footnotesize{\emph{Anmerkungen:} Text Text Text Text Text Text
Text Text Text Text Text Text Text Text Text Text Text Text
Text Text Text Text Text Text Text Text Text Text Text Text
\caption{}
\label{}
\end{table}

Ich hätte nun 3 Wünsche...:

1. Die Tabelle auf textbreite skalieren. (habs mit tabularx versucht, aber da wirft er mir alles durcheinander. vielleicht kann jmd ein einfaches beispiel posten?!)
2. einen größeren abstand zwischen der horizontalen doppellinie und der dann folgenden tabelle (\vspace funktioniert nicht)
3. kann ich um das ganze (also inclusive der anmerkungen) einen rahmen zeichnen?

Wäre super, wenn jmd. mir weiterhelfen könnte (ich kenn mich noch nicht gut aus mit tex..).
Danke und Gruss! Holger

sofa-surfer
06-09-2007, 17:39
Hallo,

hier mal ein Ansatz mit tabularx und dem booktabs-Paket. Immerhin ist es ja schon löblich, dass deine Tabelle auf vertikale Linien verzichtet. Für einen "vernünftigen" Satz sollte aber eigentlich auch auf Doppellinien verzichtet werden (vgl. Doku zu booktabs).

Wozu der Rahmen um die Tabelle gut sein soll, erschließt sich mir auch nicht auf den ersten Blick. Damit wird es nur unübersichtlich. Nichtsdestotrotz habe ich einfach alles in eine \parbox geschmissen und eine \fbox drumherum gepackt, so dass du einen Rahmen hast ...


\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage{blindtext}
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{calc}

% neuer Spaltentyp: zentriert ausgerichtet X-Spalten
\newcolumntype{C}{>{\centering\arraybackslash}X}

\begin{document}
\blindtext

\begin{table}
\fbox{%
\parbox{\textwidth-2\fboxsep}{%
{\centering
\begin{tabularx}{.95\textwidth}{CCCC}\toprule
\multicolumn{4}{c}{Jährliches Wachstum in \%} \\
\midrule\midrule\addlinespace[.5em] % extra Platz mit \addlinespace
Wang und Yao & Barro und Lee & Cohen und Soto & Young \\
(1978-1999) & (1978-2000) & (1978-2000) & (1978-1998)\\
\midrule
0.82 & 0.45 & 0.55 & 1.1\\
\bottomrule
\end{tabularx}\\[.25cm]}
\footnotesize{\emph{Anmerkungen:} Text Text Text Text Text Text
Text Text Text Text Text Text Text Text Text Text Text Text
Text Text Text Text Text Text Text Text Text Text Text Text}%
}%parbox
}%fbox
\caption{}
\end{table}

\end{document}


Matthias

edico
06-09-2007, 18:04
Du hast eine Klammer vergessen. So läuft Dein MB nicht ;-)

1. Was hast Du denn gemacht, dass es mit tabularx nicht läuft?
2. Abstand mit Macro aus einer 'Scheinbox'
3. fancybox

Eine Möglichkeit, die Du verbessern kannst ...

\documentclass{scrbook}
\usepackage[latin1]{inputenc}
\usepackage{tabularx,booktabs,calc,fancybox}

%--- Height for single rows ------------------------------------------
\newlength{\myVSpace} % the height of the box
\setlength{\myVSpace}{1ex} % {1ex} the default,
\newcommand\xstrut{\raisebox{\myVSpace}
{\rule{0pt}{0pt}}
}
%---------------------------------------------------------------------

\begin{document}
\chapter{Neuer Test}
\addtolength{\myVSpace}{\baselineskip}

Es sollen folgende W\"unsche erf\"ullt werden:\par
1. Die Tabelle auf Textbreite skalieren. \par
2. Einen gr\"osseren Abstand zwischen der horizontalen Doppellinie und der dann folgenden Tabelle (vspace funktioniert nicht)\par
3. Kann ich um das ganze einen Rahmen zeichnen?


\begin{table}[htbp]
\caption{}\label{}
\centering
\shadowbox{%\ovalbox{%
\parbox{\linewidth}{%
\begin{tabularx}{\linewidth}{XXXX}
\multicolumn{4}{c}{J\"ahrliches Wachstum in \%} \\
\hline \hline
\xstrut Wang und Yao & Barro und Lee & Cohen und Soto & Young \\
(1978-1999) & (1978-2000) & (1978-2000) & (1978-1998)\\
\hline
0.82 & 0.45 & 0.55 & 1.1\\
\hline
\end{tabularx}
\xstrut\footnotesize{%
\emph{Anmerkungen:} Text Text Text Text Text Text
Text Text Text Text Text Text Text Text Text Text Text Text
Text Text Text Text Text Text Text Text Text Text Text Text
}%<<<< Klammer!
%\caption{}\label{}
}}%Ende parbox_ovalbox

\end{table}

\end{document}



Upps, Matthias hat ja schon wieder vorgearbeitet ...
Naja, doppelt hält besser ;-)

edico

coxthesen
07-09-2007, 12:17
Vielen Dank edico und sofa-surfer!! matthias, ich habe deinen code ausprobiert und die box weggelassen (die ist wirklich unsinnig) und das sieht wunderbar aus. nur ein kleines problem besteht noch: die tabelle geht zwar über die textbreite, aber die einträge sind nicht über die textbreite zentriert (also die spalten nutzen nicht die textbreite aus). kannst du mir noch sagen wie ich das hinbekomme?

der code jetzt ist:

\begin{table}
%\fbox{%
%\parbox{\textwidth-2\fboxsep}{%
{\centering
\begin{tabularx}{1.00\textwidth}{c c c c}\toprule
\multicolumn{4}{c}{Jährliches Humankapitalwachstum in \%} \\
\midrule\addlinespace[.5em] % extra Platz mit \addlinespace
Wang und Yao & Barro und Lee & Cohen und Soto & Young \\
(1978-1999) & (1978-2000) & (1978-2000) & (1978-1998)\\
\midrule
0.82 & 0.45 & 0.55 & 1.1\\
\bottomrule
\end{tabularx}\\[.25cm]}
\scriptsize{Anmerkungen: Angegeben sind die durchschnittlichen jährlichen Wachstumsraten des Humankapitals pro Arbeiter, die sich unter Verwendung der verschiedenen Zeitreihen für die durchschnittliche Ausbildungsdauer ergeben. Die letzte Spalte nennt zum Vergleich den Wert, den Young (2003) ermittelt. Für Details siehe Erläuterungen im Text.}
%}%parbox
%%fbox
\caption{Humankapitalwachstum}
\label{tab:Humankapitalwachstum}
\end{table}

edico
07-09-2007, 12:59
Du musst eben andere Spaltentypen nehmen. Schau Dir das Manunal mal an. Da steht doch alles haarklein drin. ausserdem hast Du mein MB nicht angeschaut. Das ist bewusst deswegen eben 'ein wenig anders' ...

edico

coxthesen
07-09-2007, 16:57
ja edico, du hast ja recht, dass ich mir deins nicht mehr angeschaut hatte, weil das erste eigentlich schon ganz prima war....
aber jetzt hab ich als spaltentyp die 'X' genommen. das verteilt es zwar sehr schön ueber die breite, aber die zentrierung stimmt nicht ganz (ebenso bei einer kombination aus c und X). gibts da keine ganz simple lösung? ansonsten, sieht die tabelle nämlich genauso aus wie ich sie mir vorgestellt habe. (und die anderen sachen die du mir geschrieben hast, haben doch nix mit breite und zentrierung zu tun oder?:confused: :rolleyes:)
vg!

coxthesen
07-09-2007, 18:36
problem hat sich geklärt. ich hatte das hier vergessen: \newcolumntype{C}{>{\centering\arraybackslash}X}

sorry und danke! holger