PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tabellenprobelm - Ausrichtung Text in Spalten



ph2
17-08-2009, 16:36
Hallo an die Gemeinde!

Habe folgndes verzwickte Problem mit meiner Tabelle: ich möchte, dass
1. der Abstand der einzelnen Tabellenzeilen größer ist
2. in den Saplten BA, BP Leu und BP Tdr die Zahlen schön anhand des +/-
Zeichens ausgerichtet werden und er Abstand dazwischen verschwindet

Kann mir jemand helfen????

MfG, ph2



\documentclass[12pt,oneside,american]{scrbook}

%%PAKETDATENBANKEN

%%Seiteneinstellungen
\usepackage[a4paper]{geometry} %%DIN A 4 Seitendarstellung mit spez. Seitenraendern
\geometry{verbose,bmargin=4.5cm,lmargin=4cm,rmargi n=3.5cm}
\pagestyle{headings}
\setlength{\parskip}{\medskipamount}
\setlength{\parindent}{0pt}

%%Zeichen- und Sonderzeichendarstellung
\usepackage[cp1252]{inputenc}
\usepackage{lmodern} %%Schriftfamilie
\renewcommand{\familydefault}{\sfdefault}

\usepackage{latexsym} %%Symboldarstellung
\usepackage{marvosym} %%Symbole
\usepackage{textcomp} %%Symbole
\usepackage{amsmath}

%%Formel- und Tabellenumgebung
\usepackage{array} %%für saubere Tabellendarstellung
\usepackage{tabularx}
\usepackage{multirow}
\usepackage{booktabs}
\usepackage{rotating} %%Querformat fuer Tabellendarstellungen
\usepackage[margin=5pt,font=small,labelfont=bf]{caption} %%Textformat fuer Tab & Fig. Bechriftung
\usepackage{sidecap} %%Tabellen- und Bildbeschriftungen
\usepackage{subfigure} %%Einfügen von Subfigures in includegraphics
\usepackage{expdlist} %%Erweiterung der \itemize-Bedingung


\usepackage{babel}


\begin{document}

\begin{sidewaystable} %%Tabelle wird im Querformat dargestellt


%%Tabellenbeschriftung
\caption[Table 1]{\label{tab.leutab1}
Bacterial abundance (BA), temperature (T), bulk incorporation rates for leucine (BP Leu) and
thymidine (BP TdR), and the relative abundance of the main bacterial groups expressed as
percentage of DAPI counts. EUB (\textit{Bacteria}); ALFA (\textit{Alphaproteobacteria});
BET (\textit{Betaproteobacteria}); RBT (R-BT subgroup of \textit{Betaproteobacteria});
CF (\textit{Cytophaga}-like bacteria); HGC (\textit{Actinobacteria}).
GKS 1 and GKS 8.5 are samples collected in September 2006 in GKS at 1 m and 8.5 m depth,
respectively. SOS 06 and SOS 07 are samples collected in SOS at 1 m depth in September
2006 and August 2007, respectively.}

\bigskip %%Abstand zu caption
\small{
\begin{tabularx}{\textwidth}{lrr@{\textpm{}}rr@{\t extpm{}}rr@{\textpm{}}rr@{\textpm{}}rr@{\textpm{}} rr@{\textpm{}}rr@{\textpm{}}rr@{\textpm{}}rr@{\tex tpm{}}r}

\toprule
Sample &T &\multicolumn{2}{c}{BA} &\multicolumn{2}{c}{BP Leu} &\multicolumn{2}{c}{BP TdR}
&\multicolumn{2}{c}{EUB} &\multicolumn{2}{c}{ALFA} &\multicolumn{2}{c}{BET} &\multicolumn{2}{c}{RBT}
&\multicolumn{2}{c}{CF} &\multicolumn{2}{c}{HGC}\\

&\footnotesize{(\textdegree{}C)} %
&\multicolumn{2}{c}{\footnotesize{(10$^{\text{5}}$c ells ml$^{\text{-1}}$)}} %
&\multicolumn{2}{c}{\footnotesize{(pmol l$^{\text{-1}}$h$^{\text{-1}}$)}} %
&\multicolumn{2}{c}{\footnotesize{(pmol l$^{\text{-1}}$h$^{\text{-1}}$)}} %
&\multicolumn{2}{c}{\footnotesize{(\%)}} %
&\multicolumn{2}{c}{\footnotesize{(\%)}} %
&\multicolumn{2}{c}{\footnotesize{(\%)}} %
&\multicolumn{2}{c}{\footnotesize{(\%)}} %
&\multicolumn{2}{c}{\footnotesize{(\%)}} %
&\multicolumn{2}{c}{\footnotesize{(\%)}} %

\tabularnewline
\hline

GKS 1 &11.2 &4.80&0.53 & 163&9.43 &4.56&0.94 &68.0&3.21 &9.72&1.64 &18.1&1.83 &12.0&1.48 &8.11&1.35 &20.0&4.56\tabularnewline
GKS 8.5 & 8.7 &5.40&0.27 & 164&15.7 &3.59&0.78 &71.5&2.44 &3.61&0.58 &20.8&2.20 &12.7&1.02 &17.7&1.74 &19.9&3.76\tabularnewline
SOS 06 & 7.5 &4.80&0.59 &61.3&2.85 &2.48&0.24 &82.9&7.39 &5.13&0.59 &29.0&3.12 &23.9&3.21 &0.76&0.18 &37.7&4.22\tabularnewline
SOS 07 & 9.2 &6.24&0.38 &27.9&2.53 &1.73&0.26 &89.7&3.51 &4.90&0.65 &41.7&3.72 &33.2&6.65 &0.49&0.12 &23.3&3.46\tabularnewline

\bottomrule
\end{tabularx}
}
\end{sidewaystable}
\bigskip
\end{document}

hakaze
18-08-2009, 12:56
Zunächst einmal kannst bei KOMA-Script die Tabelleüberschrift auch "direkt" darüber setzen:
% ersetze
%\caption[kurz]{\label{tab1}lang}
% \bigskip %%Abstand zu caption
% durch
\captionabove[kurz]{lang}\label{tab1}


zu 1.: Nach dem Tabellenkopf ersetze \hline durch \midrule (du verwendest ja schon das booktabs-Paket). Damit kannst du zwischen den Zeilen einen Extraabstand mit \\ \addlinespace (statt \tabularnewline) einfügen.

zu 2.: Das liegt daran, dass die multicolumns im Kopf breiter sind als die drei "Zahl-pm-Zahl"-Spalten. Wenn du jeweils die zweite Zahlspalte linksbündig am Plusminus ausrichtest geht es:

% ersetze alle r@{\textpm{}}r
% durch
r@{\textpm{}}l

Eine allgemeine Anmerkung meinerseits: hast mal überlegt, ob es besser wäre die Tabelle zu stürzen (d.h. Messgrößen in der ersten Spalte + 4 Spalten für Proben) oder zwei Tabellen draus zu machen? IHMO wäre die Lesbarkeit dann besser.

ph2
18-08-2009, 15:17
Herzliche Dank! Klappt super und schaut nun echt recht gut aus.

Die Anmerkung ist völlig bereichtigt, allerdings muss ich leider die Tabelle so übernehmen, da sie so bereits publiziert wurde.

Könnte man die Zahlenspalten mit +/- auch pber eine /parbox zentriert unter die Einheiten der Tabelle in Zeile 2 setzen oder ist das unsauber?

Grüße und nochmals DANKE!!!

hakaze
18-08-2009, 15:35
Moin,

schön, dass das klappt! Zu deinem letzten Anliegen:

Man kann da etwas tricksen. Das "Problem" ist ja (eigentlich keins :D), dass die 2 Zahl-Spalten mit dem +/- zusammen schmaler als die multicolumn-Überschrift sind. Deshalb fügt LaTeX den fehlenden Platz einfach an die zweite Zahl-Spalte an. Bei den hinteren Spalten ist das nicht so tragisch, da es dort genau umgekehrt ist. D.h. Latex kann sehr einfach die Multicolumn-Spalte über den anderen zentrieren. Wenn du beim BA-Wert zum Beispiel mit \hspace{3pt} einen extra Weissraum vor 4.80 einfügst, sollte sich die Zahl-Spalte verschieben. Eventuell musst du die Breite um ein-zwei Punkte verändern, um ein optisch zentriertes Ergebnis zu erhalten.

Viel Erfolg!

PS. Setze auch T und (°C) in einspaltige Multicolumns (\multicolumn{1}{c}{T}), um sie zu zentrieren!

ph2
22-08-2009, 09:50
Habe nochmals etwas rumgespielt und nun folgenden Code zusammengestöpselt

\documentclass[12pt,oneside,american]{scrbook}

%%PAKETDATENBANKEN

%%Seiteneinstellungen
\usepackage[a4paper]{geometry} %%DIN A 4 Seitendarstellung mit spez. Seitenraendern
\geometry{verbose,bmargin=4.5cm,lmargin=4cm,rmargi n=3.5cm}
\pagestyle{headings}
\setlength{\parskip}{\medskipamount}
\setlength{\parindent}{0pt}

%%Zeichen- und Sonderzeichendarstellung
\usepackage[cp1252]{inputenc}
\usepackage{lmodern} %%Schriftfamilie
\renewcommand{\familydefault}{\sfdefault}

\usepackage{latexsym} %%Symboldarstellung
\usepackage{marvosym} %%Symbole
\usepackage{textcomp} %%Symbole
\usepackage{amsmath}

%%Formel- und Tabellenumgebung
\usepackage{array} %%fr saubere Tabellendarstellung
\usepackage{tabularx}
\usepackage{multirow}
\usepackage{booktabs}
\usepackage{rotating} %%Querformat fuer Tabellendarstellungen
\usepackage[margin=5pt,font=small,labelfont=bf]{caption} %%Textformat fuer Tab & Fig.

\usepackage{warpcol} %% siehe H. Voss: Tabellen mit LaTex S83
\newcolumntype{L}[1]{>{\pcolbegin{r}{#1}}1<{\pcolend}} %Spaltenausrichung Rechts
\newcolumntype{R}[1]{>{\pcolbegin{r}{#1}}r<{\pcolend}} %Spaltenausrichtung Links


\usepackage{blkarray}

%%Bechriftung
\usepackage{sidecap} %%Tabellen- und Bildbeschriftungen
\usepackage{subfigure} %%Einfügen von Subfigures in includegraphics
\usepackage{expdlist} %%Erweiterung der \itemize-Bedingung


\usepackage{babel}

%%Einbinden von Grafiken
\usepackage{graphicx}
\usepackage{setspace}



\begin{document}


\begin{sidewaystable} %%Tabelle wird im Querformat dargestellt


%%Tabellenbeschriftung
\captionabove[Table 1]{Bacterial abundance (BA), temperature (T), bulk incorporation rates for leucine (BP Leu) and thymidine (BP TdR), and the relative abundance of the main bacterial groups expressed as percentage of DAPI counts.}\label{leutab1}


\small{
\begin{tabular}{@{}
l %Sample
r %Temp
R{1.2} @{\textpm{}} P{1.2} %BA
P{3.1} @{\textpm{}} P{2.1} %BP Leu
R{1.2} @{\textpm{}} P{1.2} %BP TdR
@{}}

\toprule
\multicolumn{1}{l}{Sample} %
&\multicolumn{1}{c}{T} %
&\multicolumn{2}{c}{BA} %
&\multicolumn{2}{c}{BP Leu} %
&\multicolumn{2}{c}{BP TdR} %
\\
\addlinespace %%zustzlicher Abstand; erfordert \\ am vorhergebhenden Zeilenende

&\footnotesize{(\textdegree{}C)} %
&\multicolumn{2}{c}{\footnotesize{(10$^{\text{5}}$c ells ml$^{\text{-1}}$)}} %
&\multicolumn{2}{c}{\footnotesize{(pmol l$^{\text{-1}}$h$^{\text{-1}}$)}} %
&\multicolumn{2}{c}{\footnotesize{(pmol l$^{\text{-1}}$h$^{\text{-1}}$)}} %
\\
\midrule


GKS 1 &11.2 &4.80 &0.5 &163.0 &9.4 &4.56 &0.9 \\
GKS 8.5 & 8.7 &5.40 &0.3 &164.0 &15.7 &3.59 &0.8 \\
SOS 06 & 7.5 &4.80 &0.6 & 61.3 &2.9 &2.48 &0.2 \\
SOS 07 & 9.2 &6.24 &0.4 & 27.9 &2.5 &1.73 &0.3 \\

\bottomrule
\end{tabular}
}

\end{sidewaystable}
\bigskip
\end{document}


Ich habe laut Paketbeschreibung eine R und eine L Spalte kreiert, jedoch lassen sich diese nicht aktivieren. welchen Fehler hab ich? Kann mir nochmals jemand helfen?

Grüße!

hakaze
22-08-2009, 10:30
Eigentlich hast du "nur" ein paar Tippfehler drin:

\newcolumntype{L}[1]{>{\pcolbegin{r}{#1}}1<{\pcolend}} %Spaltenausrichung Rechts
Kleines "L" statt "1":

\newcolumntype{L}[1]{>{\pcolbegin{r}{#1}}l<{\pcolend}} %Spaltenausrichung Rechts
Im Header deiner Tabelle ersetze:

\begin{tabular}{@{}
l %Sample
r %Temp
R{1.2} @{\textpm{}} P{1.2} %BA
P{3.1} @{\textpm{}} P{2.1} %BP Leu
R{1.2} @{\textpm{}} P{1.2} %BP TdR
@{}}
durch:

\begin{tabular}{@{}
l %Sample
r %Temp
R{1.2} @{\textpm{}} L{1.1} %BA
R{3.1} @{\textpm{}} L{2.1} %BP Leu
R{1.2} @{\textpm{}} L{1.1} %BP TdR
@{}}
Mit der Änderung oben funktioniert auch die L-Spalte. Du musst allerdings auch darauf achten, die richtige Anzahl an Vor- und Nachkommastellen anzugeben. Dann klappt auch die Spaltenausrichtung! ;)

Schönes Wochenende!

ph2
22-08-2009, 18:57
Hat dir schon mal jemand gesagt, dass du genial bist!!!!!!!!!!!!!!!!!!!!!!!!!

Herzlichen Dank!

Schaut nun super aus!

hakaze
23-08-2009, 09:23
Danke! :) Aber manchmal sieht man den Wald vor lauter Bäumen nicht... geht mir bei meinem Geschreibsel auch ab und zu so.. Da ist es gut, mit etwas Abstand drauf zu schauen.

ph2
27-08-2009, 13:52
Hoffentlich ziehe ich mein Probelm und diesen Foreneintrag jetzt nicht unnötig in die Länge, aber super Anregungen von hakaze (vielen Dank nochmals) bin ich noch nicht ganz zufrieden. 2 Spalten (BA und BP TdR) sind immer noch nicht 100% ausgreichtet, obwohl dies mit dem Paket warpcol möglich sein müsste. Da ich die mittige Ausrichtung aber unbedingt haben möchte und auch für zahlreiche weitere Tabellen brauchen werde, bitt ich nochmals um Unterstützung bei folgenden Problemen:

+ zentrierte Ausrichtung der Spalten BA und BP tdr

+ zentrieren der gesamten Tabelle, sodass sich diese zentiert in er Mitte der Seite befindet.

Und hier der Code:



\documentclass[12pt,oneside,american]{scrbook}

%%PAKETDATENBANKEN
%%Seiteneinstellungen
\usepackage[a4paper]{geometry} %%DIN A 4 Seitendarstellung mit spez. Seitenraendern
\geometry{verbose,bmargin=4.5cm,lmargin=4cm,rmargi n=3.5cm}
\pagestyle{headings}
\setlength{\parskip}{\medskipamount}
\setlength{\parindent}{0pt}
%%Zeichen- und Sonderzeichendarstellung
\usepackage[T1]{fontenc}
\usepackage{cmbright}
%\usepackage[cp1252]{inputenc}
%\usepackage{lmodern} %%Schriftfamilie
% \renewcommand{\familydefault}{\sfdefault}
\usepackage{latexsym} %%Symboldarstellung
\usepackage{marvosym} %%Symbole
\usepackage{textcomp} %%Symbole
\usepackage{amsmath}
%%Formel- und Tabellenumgebung
\usepackage{array} %%fr saubere Tabellendarstellung
\usepackage{tabularx}
\usepackage{multirow}
\usepackage{booktabs}
\usepackage{rotating} %%Querformat fuer Tabellendarstellungen
\usepackage[margin=5pt,font=small,labelfont=bf]{caption} %%Textformat fuer Tab & Fig.
\usepackage{warpcol} %% siehe H. Voss: Tabellen mit LaTex S83
\newcolumntype{L}[1]{>{\pcolbegin{r}{#1}}l<{\pcolend}} %%Linke Spalte
\newcolumntype{R}[1]{>{\pcolbegin{r}{#1}}r<{\pcolend}} %%Rechte Spalte
\newcommand{\pcolhd}[1]{\multicolumn{1}{c}{#1}}
\usepackage{blkarray}
%%Bechriftung
\usepackage{sidecap} %%Tabellen- und Bildbeschriftungen
\usepackage{subfigure} %%Einfügen von Subfigures in includegraphics
\usepackage{expdlist} %%Erweiterung der \itemize-Bedingung
\usepackage{babel}
%%Einbinden von Grafiken
\usepackage{graphicx}
\usepackage{setspace}
\begin{document}

\begin{sidewaystable} %%Tabelle wird im Querformat dargestellt

%%Tabellenbeschriftung
\captionabove[Table 1]{Bacterial abundance (BA), temperature (T), bulk incorporation rates for leucine
(BP Leu) and thymidine (BP TdR), and the relative abundance of the main bacterial groups expressed as percentage of DAPI counts. EUB (\textit{Bacteria}); ALFA (\textit{Alphaproteobacteria});
BET (\textit{Betaproteobacteria}); RBT (R-BT subgroup of \textit{Betaproteobacteria});
CF (\textit{Cytophaga}-like bacteria); HGC (\textit{Actinobacteria}).
GKS 1 and GKS 8.5 are samples collected in September 2006 in GKS at 1 m and 8.5 m depth,
respectively. SOS 06 and SOS 07 are samples collected in SOS at 1 m depth in September
2006 and August 2007, respectively.}\label{leutab1}


\small{
\begin{tabular}{@{}
l %SAMPLE
r %Temp
R{1.2} @{\textpm{}} L{1.1} %BA
R{3.1} @{\textpm{}} L{2.1} %BP Leu
R{1.2} @{\textpm{}} L{1.1} %BP TdR
R{2.1} @{\textpm{}} L{1.1} %EUB
R{2.1} @{\textpm{}} L{1.1} %ALFA
R{2.1} @{\textpm{}} L{1.1} %BET
R{2.1} @{\textpm{}} L{1.1} %RBT
R{2.2} @{\textpm{}} L{1.1} %CF
R{2.1} @{\textpm{}} L{1.1} %HGC
@{}}

\toprule
\multicolumn{1}{c}{Sample} %
&\multicolumn{1}{c}{T} %
&\multicolumn{2}{c}{BA} %
&\multicolumn{2}{c}{BP Leu} %
&\multicolumn{2}{c}{BP TdR} %
&\multicolumn{2}{c}{EUB} %
&\multicolumn{2}{c}{ALFA} %
&\multicolumn{2}{c}{BET} %
&\multicolumn{2}{c}{RBT} %
&\multicolumn{2}{c}{CF} %
&\multicolumn{2}{c}{HGC} %
\\
&\footnotesize{(\textdegree{}C)} %
&\multicolumn{2}{c}{\footnotesize{(10$^{\text{5}}$c ells ml$^{\text{-1}}$)}} %
&\multicolumn{2}{c}{\footnotesize{(pmol l$^{\text{-1}}$h$^{\text{-1}}$)}} %
&\multicolumn{2}{c}{\footnotesize{(pmol l$^{\text{-1}}$h$^{\text{-1}}$)}} %
&\multicolumn{2}{c}{\footnotesize{(\%)}} %EUB
&\multicolumn{2}{c}{\footnotesize{(\%)}} %ALFA
&\multicolumn{2}{c}{\footnotesize{(\%)}} %BET
&\multicolumn{2}{c}{\footnotesize{(\%)}} %RBT
&\multicolumn{2}{c}{\footnotesize{(\%)}} %CF
&\multicolumn{2}{c}{\footnotesize{(\%)}} %HGC
\\ %
\midrule
%%Sample T BA BP Leu BP TdR EUB ALFA BET RBT CF HGC
GKS 1 &11.2 &4.80&0.5 &163.0&9.4 &4.56&0.9 &68.0&3.2 &9.72&1.6 &18.1&1.8 &12.0&1.4 & 8.11&1.3 &20.0&4.6\\ %
GKS 8.5 & 8.7 &5.40&0.3 &164.0&15.7 &3.59&0.8 &71.5&2.4 &3.61&0.5 &20.8&2.2 &12.7&1.0 &17.70&1.7 &19.9&3.8\\ %
SOS 06 & 7.5 &4.80&0.6 & 61.3 &2.9 &2.48&0.2 &82.9&7.3 &5.13&0.5 &29.0&3.1 &23.9&3.2 & 0.76&0.1 &37.7&4.2\\ %
SOS 07 & 9.2 &6.24&0.4 & 27.9 &2.5 &1.73&0.3 &89.7&3.5 &4.90&0.6 &41.7&3.7 &33.2&6.6 & 0.49&0.1 &23.3&3.5\\ %
\bottomrule
\end{tabular}
}

\end{sidewaystable}
\bigskip
\end{document}


Herzlichen Dank für die Hilfe!!

hakaze
27-08-2009, 14:37
Moin :)

Im Prinzip ist es immer das gleiche Problem wie weiter oben:

Das "Problem" ist ja (eigentlich keins ), dass die 2 Zahl-Spalten mit dem +/- zusammen schmaler als die multicolumn-Überschrift sind. Deshalb fügt LaTeX den fehlenden Platz einfach an die zweite Zahl-Spalte an. Bei den hinteren Spalten ist das nicht so tragisch, da es dort genau umgekehrt ist.
Du könntest auch etwas tricksen und dem warpcol-Paket mehr Vorkommastellen vorschreiben als vorhanden sind. Dadurch rücken die Spalten mehr zur "Mitte" hin.

%... Ausschnitt
\begin{tabular}{@{}
l %SAMPLE
r %Temp
R{3.2} @{\textpm{}} L{1.1} %BA
R{3.1} @{\textpm{}} L{2.1} %BP Leu
R{2.2} @{\textpm{}} L{1.1} %BP TdR
R{2.1} @{\textpm{}} L{1.1} %EUB
R{2.1} @{\textpm{}} L{1.1} %ALFA
R{2.1} @{\textpm{}} L{1.1} %BET
R{2.1} @{\textpm{}} L{1.1} %RBT
R{2.2} @{\textpm{}} L{1.1} %CF
R{2.1} @{\textpm{}} L{1.1} %HGC
@{}}

\toprule
% ...ab hier geht's weiter
Eine "echte" Zentrierung hinzubekommen, wird nur mit erhöhtem Aufwand möglich sein und deine ohnehin schon recht komplexe Tabelle weiter komplizieren (<- da streikt mein Thesaurus ;)).

ph2
27-08-2009, 14:41
Danke! Jetzt geb ich Ruhe! .:):)