PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit \newcolumntype und Tabellen



Docu
21-01-2009, 16:53
Hallo,

folgendes Problem:

Ich habe eine ziemlich große Tablle => Longtable zum Verteilen auf mehrere Seiten

Die Spalten sind eigentlich alle sehr klein deswegen wollte ich im Kopf der Tabelle alles linksbündig darstallen => \raggedright

Ich habe mir meine eigenen columntypes erstellet nach dem Motto:

\
newcolumntype{v}{>{\scriptsize}m{0.1\textwidth}}

Wenn ich jetzt aber versuche die ganze Spalte mit \raggedright linksbündig zu machen nach:


\newcolumntype{v}{>{\scriptsize \raggedright}m{0.1\textwidth}}

bekomme ich immer den Fehler !misplaced \noalign => \cmidrule ->\noalign

Ich hba die SuFu benutzt und habe gefunden, dass jeweils der letzte Zeileneintrag Probleme macht, wenn man den linksbündig machen oder zentrieren will. Also Lösung wurde ein \arraybackslash hinter dem \raggedright vorgeschlagen:


\newcolumntype{v}{>{\scriptsize \raggedright \arraybackslash}m{0.1\textwidth}}

Das ging aber leider auch nicht! Ich weiss das es irgendwie mi > und > zu tun hat. Aber ich komm grad nicht drauf. Ich weiss nur >{} wird vor jedes Tabellensegement gesetzt und wie bekomme ich den \arraybackslash hinter jedes tabellensegement?

Wenn ichs händisch vor ein Segement in die Tabelle eingebe:
1 & 2 & \raggedright ...Inhalt des Segements... \arraybackslash \\

Dann gehts

Bitte um kurze HIlfestellung

mechanicus
21-01-2009, 18:08
Hallo,



\arraybackslash definiert den standardmäßigen Befehl für eine Tabellenzeilenumbruch, den Doppelbackslash \\, neu. Dieser hätte sonst bei gleichzeitiger Anwendung einen Formatierungsmakros \raggedright, [....] ohne \arraybackslash in sogenannten p-Spalten nicht mehr seine ursprüngliche Bedeutung. Für eine neue Zeile in einer Spalte benutzt man dann \newline und für eine neue Tabellenzeile dann \\ oder alternativ das Makro \tabularnewline.


Gruß
Marco

Docu
21-01-2009, 18:36
ja mechanicus genau das meine ich

Aber wie baue ich das in den \newcolumntype mit ein?


\newcolumntype{v}{>{\scriptsize \raggedright}m{0.1\textwidth}}

das >{\scriptsize \raggedright} gibt ja an \scriptsize und \raggedright vor jedes Tabellensegemnt zu setzten. Jetzt muss ich da drin nur noch angeben, dass NACH jedem Segment ein \arraybackslash steht.

Und wie mach ich das? Irgendwie mit

\newcolumntype{v}{>{\scriptsize \raggedright}?<{}?m{0.1\textwidth}}

mechanicus
21-01-2009, 18:38
Jetzt muss ich da drin nur noch angeben, dass NACH jedem Segment ein \arraybackslash steht.

Warum danach, Richtig ist:

\newcolumntype{v}{>{\scriptsize \raggedright\arraybackslash}m{0.1\textwidth}}

Alternativ mit dem Paket ragged2e:

\newcolumntype{v}{>{\scriptsize \RaggedRight}m{0.1\textwidth}}

Gruß
Marco

Docu
21-01-2009, 19:38
me and my monkey...

den gleichen Code hatte ich schon ausprobiert.
Jetzt nochmal eingegeben und es geht. Eventuell sind die Leerzeichen zwischen \raggedright und \arraybackslash schuld gewesen

DANKE MECHANIUCUS!!!