PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tabelle will nicht so wie ich!



sheddy
10-11-2011, 20:12
Moin,


ich versuche schon die ganze Zeit eine vernünftige Tabelle zu basteln. Ich muss einfach nur in zwei Zellen einen Zeielnumbruch schaffen. Und des Weiteren soll die Tabelle über die ganze Seitenbreite gehen. Ich habe dazu also tabularx genommen. Jetzt geht die Tabelle über die ganze Seitenbreite, der Kopf mti der Schrift jedoch darüber hinaus. Wenn ich in zwei Zeilen einen Zeilenumbruch schaffe, würde es passen. Jedoch überlappen sich dann die einzelnen Spalten. Ich krieg hiernochn Rappel!!!! :mad:

1. Versuch - ÜBER den Rand


\documentclass[a4paper,twoside,12pt]{scrreprt}

\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage[left=3.5cm, right=3.0cm, top=2.5cm, bottom=3.0cm]{geometry}

\usepackage{lmodern} %Type1-Schriftart für nicht-englische Texte
\begin{document}

\begin{table}[ht]%
%\begin{tabularx}{\textwidth}{l p{1cm} r p{1cm} r r }
\begin{tabularx}{\textwidth}{lrrrrr}

\toprule
\textbf{Entwickler} & \textbf{Oktober 2011} & \textbf{Prozent} & \textbf{November 2011} & \textbf{Prozent} & \textbf{Veränderung} \\
\midrule

asas & 326,008,432 & 64.67\% & 341,880,662 & 65.00\% & 0.32 \\
asas & 78,937,065 & 15.66\% & 81,261,099 & 15.45\% & -0.21 \\
asas & 43,037,079 & 8.54\% & 44,731,780 & 8.50\% & -0.03 \\
asas & 17,487,924 & 3.47\% & 17,749,748 & 3.37\% & -0.09 \\

\bottomrule
\end{tabularx}
\caption{asasa}
\label{asas}
\end{table}

\end{document}

http://s7.directupload.net/images/111110/q8b7j2qs.png

2. Versuch - ÜBERLAPPEND


\documentclass[a4paper,twoside,12pt]{scrreprt}

%% Deutsche Anpassungen %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage[left=3.5cm, right=3.0cm, top=2.5cm, bottom=3.0cm]{geometry}

\usepackage{lmodern} %Type1-Schriftart für nicht-englische Texte
\begin{document}

\begin{table}[ht]%
\begin{tabularx}{\textwidth}{l p{1cm} r p{1cm} r r }
%\begin{tabularx}{\textwidth}{lrrrrr}

\toprule
\textbf{Entwickler} & \textbf{Oktober 2011} & \textbf{Prozent} & \textbf{November 2011} & \textbf{Prozent} & \textbf{Veränderung} \\
\midrule

asas & 326,008,432 & 64.67\% & 341,880,662 & 65.00\% & 0.32 \\
asas & 78,937,065 & 15.66\% & 81,261,099 & 15.45\% & -0.21 \\
asas & 43,037,079 & 8.54\% & 44,731,780 & 8.50\% & -0.03 \\
asas & 17,487,924 & 3.47\% & 17,749,748 & 3.37\% & -0.09 \\

\bottomrule
\end{tabularx}
\caption{asasa}
\label{asas}
\end{table}

\end{document}



http://s14.directupload.net/images/111110/qky6qklt.png

Ich weiß einfach nicht weiter und weiß auch nicht, wo ich die X des tabularx packuages setzen soll.

Danke für eure Hilfe!

MfG
Sdy

sheddy
10-11-2011, 20:23
Mit


\begin{tabularx}{\textwidth}{XXXXXX}

klappts auch nicht.

Wie kann man denn nur einzelne Zellen beabreiten?

Ich will die Kopfzeile fettgedruckt und zentriert haben.
Die linke spalte mit den Daten links- und die restlichen Daten rechtsbündig! Scheiss Tabellen...:mad:

ctansearch
10-11-2011, 20:48
Relative Spalten werden immer so breit, wie ihr breitestes Element.



\documentclass[a4paper,twoside,12pt]{scrreprt}

\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage[left=3.5cm, right=3.0cm, top=2.5cm, bottom=3.0cm]{geometry}

\usepackage{lmodern} %Type1-Schriftart für nicht-englische Texte
\begin{document}

\begin{table}[ht]%
%\begin{tabularx}{\textwidth}{l p{1cm} r p{1cm} r r }
\begin{tabularx}{\textwidth}{lrrrrr}

\toprule
\textbf{asas}&\textbf{Überschrift}& \textbf{Überschrift}& \textbf{Überschrift}&\textbf{Überschrift}& \textbf{Überschrift}\\
\midrule
asas&326,008,432&64.67\%&341,880,662&65.00\%&0.32\\
asas&78,937,065&15.66\%&81,261,099&15.45\%&-0.21\\
asas&43,037,079&8.54\%&44,731,780&8.50\%&-0.03\\
asas&17,487,924&3.47\%&17,749,748&3.37\%&-0.09\\

\bottomrule
\end{tabularx}
\caption{asasa}
\label{asas}
\end{table}

\end{document}

sheddy
10-11-2011, 20:53
was hast du jetzt anders gemacht? Deine Überschriften sidn auch kürzer als meine, da bekommst du gar nicht das Problem, was ich oben gezeigt habe.

:confused:

bobmalaria
10-11-2011, 21:00
hi,

mit tabularx muss man mindestens eine X spalte haben. sonst klappt das nicht mit der ausrichtung auf seitenbreite!

will man die spalte dann rechtsbuendig/linksbuendig haben muss man das mit

>{\raggedright}X

bzw. \raggedleft machen

am kluegsten ist es den spaltentyp anhand der zahlen zu waehlen und dann fuer die ueberschriften die zentrierung mit

\multicolumn{1}{>{\centering}X}{Inhalt}

zu realisieren.

gruss

sheddy
10-11-2011, 21:06
Könntest du mir ein kleines Beispiel für raggedleft geben?

Was ich erreichen will:

- die Tabelle soll über die ganze Seitebreite gehen (daher tabularx)
- die Kopfzeile soll fettgedruckt sein und zentriert (von mir aus auch rechtsbündig)
- die erste Spalt mit Werten soll linksbündig sein
- die restlichen Spalten sollen alle rechtsbündig sein

Ich habe oben zwei Versuche gezeigt und habe jetzt noch einen Dritten, der meinem geforderten sehr nache kommt, aber noch in Kleinigkeiten hinterhinkt:



\documentclass[a4paper,twoside,12pt]{scrreprt}

%% Deutsche Anpassungen %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage[left=3.5cm, right=3.0cm, top=2.5cm, bottom=3.0cm]{geometry}

\usepackage{lmodern} %Type1-Schriftart für nicht-englische Texte
\begin{document}

\begin{table}[ht]%
\begin{tabularx}{\textwidth}{lXrXrXrXrXrX}

\toprule
\textbf{Entwickler} & \textbf{Oktober 2011} & \textbf{Prozent} & \textbf{November 2011} & \textbf{Prozent} & \textbf{Veränderung} \\
\midrule

asas & 326,008,432 & 64.67\% & 341,880,662 & 65.00\% & 0.32 \\
asas & 78,937,065 & 15.66\% & 81,261,099 & 15.45\% & -0.21 \\
asas & 43,037,079 & 8.54\% & 44,731,780 & 8.50\% & -0.03 \\
asas & 17,487,924 & 3.47\% & 17,749,748 & 3.37\% & -0.09 \\

\bottomrule
\end{tabularx}
\caption{asasa}
\label{asas}
\end{table}



\end{document}





Das Ergebnis sieht wie folgt aus:

http://s14.directupload.net/images/111110/iwvgbpaf.png








Man sieht, dass er vernünftig umbricht. Jedoch gehts rechts noch über den Rand und nur Entwickler und die Prozent-Spalten sind rechtsbündig. Alles andere nicht :(

sheddy
10-11-2011, 21:14
so...sieht zwar sch... aus, aber es funktioniert:



\begin{tabularx}{\textwidth}{>{\raggedright\arraybackslash}X>{\raggedleft\arraybackslash}X>{\raggedleft\arraybackslash}X>{\raggedleft\arraybackslash}X>{\raggedleft\arraybackslash}X>{\raggedleft\arraybackslash}X}

\toprule
\textbf{Entwickler} & \textbf{Oktober 2011} & \textbf{Prozent} & \textbf{November 2011} & \textbf{Prozent} & \textbf{Veränderung} \\
\midrule

asas & 326,008,432 & 64.67\% & 341,880,662 & 65.00\% & 0.32 \\
asas & 78,937,065 & 15.66\% & 81,261,099 & 15.45\% & -0.21 \\
asas & 43,037,079 & 8.54\% & 44,731,780 & 8.50\% & -0.03 \\
asas & 17,487,924 & 3.47\% & 17,749,748 & 3.37\% & -0.09 \\

\bottomrule
\end{tabularx}
\caption{asasa}
\label{asas}
\end{table}



Nur besteht noch das Problem mit der Überlänge in der Kopfzeile bei Veränderung. Ein Beispiel für \multicolumn wäre auch nicht schlecht. Muss das mit in die Präambel oder in die Spalte? :confused:

Weißt du da noch Rat?

sheddy
10-11-2011, 21:33
sooooo....nun habe ich es :D

es sieht aber immer schlimmer aus, dafür, dass ich nur ein paar kleine Änderungen machen wollte.



\documentclass[a4paper,twoside,12pt]{scrreprt}

%% Deutsche Anpassungen %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage[left=3.5cm, right=3.0cm, top=2.5cm, bottom=3.0cm]{geometry}

\usepackage{lmodern} %Type1-Schriftart für nicht-englische Texte
\begin{document}

\begin{table}[ht]%
%\begin{tabularx}{\textwidth}{l p{1cm} r p{1cm} r r }
\begin{tabularx}{\textwidth}{>{\raggedright\arraybackslash}X>{\raggedleft\arraybackslash}X>{\raggedleft\arraybackslash}X>{\raggedleft\arraybackslash}X>{\raggedleft\arraybackslash}X>{\raggedleft\arraybackslash}X}

\toprule
\multicolumn{1}{>{\centering}X}{\textbf{Entwickler}} & \multicolumn{1}{>{\centering}X}{\textbf{Oktober 2011}} & \multicolumn{1}{>{\centering}X}{\textbf{Prozent}} & \multicolumn{1}{>{\centering}X}{\textbf{November 2011}} & \multicolumn{1}{>{\centering}X}{\textbf{Prozent}} & \multicolumn{1}{>{\centering}X}{\textbf{Veränderung}} \\
\midrule


asas & 326,008,432 & 64.67\% & 341,880,662 & 65.00\% & 0.32 \\
asas & 78,937,065 & 15.66\% & 81,261,099 & 15.45\% & -0.21 \\
asas & 43,037,079 & 8.54\% & 44,731,780 & 8.50\% & -0.03 \\
asas & 17,487,924 & 3.47\% & 17,749,748 & 3.37\% & -0.09 \\

\bottomrule
\end{tabularx}
\caption{asasa}
\label{asas}
\end{table}


\end{document}





http://i41.tinypic.com/2d98o07.png

Aber ein Problem besteht noch. Das Wort "Veränerung" ragt noch über den Seitenrand. Wie kann ich das verhindern? Es ist ja noch genuuug Platz zwischen den einzelnen Spalten. Wäre es da ein Möglichkeit noch dran zu schrauben? Ich habe es schon mit

%\setlength{\tabcolsep}{0.8pt}
versucht, aber leider ohne Erfolg und dazu sieht es schlimm aus.

Wäre euch noch sehr dankbar, dazu eine Hilfestellung zu bringen :D

rstuby
11-11-2011, 06:28
Ich denke, dies dürfte dem, was du möchtest, recht nahe kommen. Nur an der Ausrichtung der Spaltung muss noch gearbeitet werden.


\documentclass[a4paper,twoside,12pt]{scrreprt}

%% Deutsche Anpassungen %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage[left=3.5cm, right=3.0cm, top=2.5cm, bottom=3.0cm]{geometry}

\usepackage{lmodern} %Type1-Schriftart für nicht-englische Texte
\setlength{\tabcolsep}{.5em}
\begin{document}

\begin{table}[ht]%
%\begin{tabularx}{\textwidth}{l p{1cm} r p{1cm} r r }
\begin{tabularx}{\textwidth}{@{}lXrXrr@{}}

\toprule
\textbf{Entwickler} & \textbf{Oktober \newline 2011} & \textbf{Prozent} & \textbf{November \newline 2011} & \textbf{Prozent} & \textbf{Veränderung} \\
\midrule
asas & 326,008,432 & 64.67\% & 341,880,662 & 65.00\% & 0.32 \\
asas & 78,937,065 & 15.66\% & 81,261,099 & 15.45\% & -0.21 \\
asas & 43,037,079 & 8.54\% & 44,731,780 & 8.50\% & -0.03 \\
asas & 17,487,924 & 3.47\% & 17,749,748 & 3.37\% & -0.09 \\
\bottomrule
\end{tabularx}
\caption{asasa}
\label{asas}
\end{table}


\end{document}

Was die ausrichtung angeht, habe ich nicht verstanden, was du eigentlich willst. Alle Spalten bis auf die erste rechtsbündig? Das wäre eigentlich das logischste, aber deine Lösungsansätze sehen nicht danach aus, dass sie dieses Ziel haben... Und was meinst du damit, dass die beiden letzten Ergebnisse besser oder näher am Ziel "sind", aber schlimmer "aussehen"? Ist denn dein Ziel nicht eine Tabelle, die gut aussieht?

sheddy
11-11-2011, 06:39
hey rstuby,

ja, ich will eine Tabelle, die gut aussieht und da dacht eich, dass ich den Kopf zentriere, die erste Spalte der Daten linksbündig und die restlichen Spalen mit den Zahlen rechtsbündig. Um das zu schaffen, hatte ich dann so einen Monstercode, in dem man nicht mehr wirklich durchblicken konnte.

Mit "schlimm aussehen" meinte ich den Code, den ich brauchte, um das zu erreichen, was du mit zwei Zeilen geschafft hast.

Aber ansonsten sah meine Tabelle am Ende fast so aus, wie ich sie haben wollte. Der einzieg Nachteil war, dass das 'g' von Veränderung noch über den Seitenrand ragte.

Aber vielen Dank für deine Hilfe. Könntest du mir noch erklären, was
{@{}lXrXrr@{}} bedeutet?

Ansosnten vielen Dank für eure Hilfe!

MfG
Sdy

rstuby
11-11-2011, 06:46
@{} bedeutet, dass hier kein Abstand gelassen wird.
Die anderen Sachen hattest du ja selber auch schon benutzt:
l = linksbündige Spalte
r = rechtsbündige Spalte
X = X-Spalte (mit variabler Breite).

Jetzt müssen wir nur noch die X-Spalten rechtsbündig bekommen.
Die erste Zeile zu zentrieren, wenn der rest der Spalte rechtsbündig ist, halte ich für keine so gute Idee und deshalb ist es wohl auch so schwierig. Versuchen kann man's...

sheddy
11-11-2011, 06:47
alles klar. vielen dank :)

rstuby
11-11-2011, 06:52
Rechtsbündig geht mit

\begin{tabularx}{\textwidth}{@{}l>{\raggedleft}Xr>{\raggedleft}Xrr@{}}

Allerdings sieht dann "Oktober 2011" irgendwie doch komisch aus. Das Wort Oktober ist aus irgendwelchen Gründen nicht rechtsbündig. Vielleicht ist das \newline doch ein übler Hack anstatt einer guten Idee...

UPD:
So kann man offenbar "Oktober 2011" und "November 2011" zentrieren... weiß allerdings nicht, was die, die sich auskennen, davon halten:


\begin{tabularx}{\textwidth}{@{}l>{\raggedleft}Xr>{\raggedleft}Xrr@{}}

\toprule
\textbf{Entwickler} & \centering\textbf{Oktober\newline 2011} & \textbf{Prozent} & \centering\textbf{November\newline 2011} & \textbf{Prozent} & \textbf{Veränderung} \\
\midrule
...

sheddy
11-11-2011, 06:57
naja, wenn würd eich die kopfzeile zentriert machen oder linksbündig lassen. aber rechtsbündig?! Was ist denn der "Standard", also wie macht man es denn sonst so?

Das mit \newline passt schon so. Jetzt sieht es so aus, wie ich es haben will. Der oberste Wert in Oktober ist auch "rechtsbündiger" als die Werte darunter. Aber ist egal ;)

rstuby
11-11-2011, 07:01
Wenn es Standard wäre, innerhalb einer Spalte die Ausrichtung zu ändern, wäre es einfacher.

Der oberste Wert in Oktober lst um eine Stelle länger. Deshalb ist es genau richtig, dass er links übersteht. Rechts sind die Zahlenwerte bündig mit dem Rand. Deshalb werden Zahlen ja auch normalerweise rechtsbündig dargestellt, damit die Einer, Zehner, Hunderter usw. untereinander sind.

CollmDante
14-11-2011, 09:28
Ich würde die Sache etwas anders angehen.
Das Paket tabu bietet mit seinen Formatiermöglichkeiten der X Spalte eine größere Flexibilität und mit dem Paket siunitx lässt sich die numerische Ausrichtung einschließlich des Prozentzeichens sehr gut steuern.
Durch das Hilfsmakro \mc lässt sich auch der Tabellenkopf gut ausrichten.

\documentclass[a4paper,twoside,12pt]{scrreprt}
%% Deutsche Anpassungen %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage{tabularx}
\usepackage{tabu,siunitx}
\usepackage{booktabs}
\usepackage[left=3.5cm, right=3.0cm, top=2.5cm, bottom=3.0cm]{geometry}
\usepackage{lmodern} %Type1-Schriftart für nicht-englische Texte
\begin{document}
\noindent
\newcommand\mc[1]{\multicolumn{1}{c}{\textbf{#1}}}
\begin{table}[ht]
\begin{tabu} to \linewidth {@{}XX[R]SX[R]SS[table-format=3.2,table-number-alignment=right]@{}}
%X[R] variable Spalte rechts ausgerichtet
%S numerische Spalte ausgerichtet an der dezimaltrennung
%Erläuterungen zu S im Paket siunitx und zu X[R] im Paket tabu
\toprule
\textbf{Entwickler}&\mc{Oktober}&\mc{Prozent} &\mc{November}&\mc{Prozent} &\mc{Veränderung}\\
&\mc{2011}&&\mc{2011}\\
\midrule
asas&326,008,432&64.67 \si{\percent}&341,880,662&65.00\si{\percent}&0.32\\
asas&78,937,065&15.66\si{\percent}&81,261,099&15.45\si{\percent}&-0.21\\
asas&43,037,079&8.54\si{\percent}&44,731,780&8.50\si{\percent}&-0.03\\
asas&17,487,924&3.47\si{\percent}&17,749,748&3.37\si{\percent}&-0.09\\
\bottomrule\\
\end{tabu}
\caption{asasa2}
\label{asas2}
\end{table}
\end{document}

Gruß Jens