PDA

View Full Version : Tabellenbreite



Unclesam84
21-09-2007, 17:47
Nocheinmal Hallo zusammen!
Heute kommt leider alles bei mir zusammen und ich wäre nocheinmal froh um eure Hilfe:
über den Befehl:
\begin{tabular}{p{10cm}|p{4cm}}
kann ich ja die Breite der einzelnen Spalte bestimmen. Ist es dann auch noch möglich zu sagen, das sie rechtsbündig sein soll?

Schonmal viiiieeellllenn Dank für die Hilfe

Sam

bobmalaria
21-09-2007, 20:06
hi,

das geht mit nem neuen spaltentyp


\documentclass[ngerman]{scrreprt}
\usepackage{blindtext}
\usepackage{tabularx}
\begin{document}

\newcolumntype{R}[1]{>{\raggedright\arraybackslash}p{#1}}

\begin{tabular}{R{5cm}R{5cm}R{3cm}}
\blindtext&\blindtext&\blindtext\\

\end{tabular}

\end{document}

edico
21-09-2007, 20:49
Ich denke, wenn der OP will,

..das(s) sie rechtsbündig sein soll
erfordert es Spalten mit \raggedleft statt \raggedright ...

edico

bobmalaria
21-09-2007, 20:55
ups, das ist mir entgangen :)

Unclesam84
22-09-2007, 08:55
Hi und Danke für die Schnelle Hilfe!
Eine kurze Frage zu dem Thema hätte ich noch: Wenn ich jetzt mit \newline arbeite macht er mir so eine Arte Einzug in der neuen Zeile, obwohl ich oben (außerhalb der Tabelle) \parindent 0pt definiert habe. Gibts dafür ne Lösung oben in der Spaltendefinition?

Danke und Grüße

Sam

rais
22-09-2007, 11:48
Moin moin,

Hi und Danke für die Schnelle Hilfe!
Eine kurze Frage zu dem Thema hätte ich noch: Wenn ich jetzt mit \newline arbeite macht er mir so eine Arte Einzug in der neuen Zeile, obwohl ich oben (außerhalb der Tabelle) \parindent 0pt definiert habe. Gibts dafür ne Lösung oben in der Spaltendefinition?

von was für einem `Einzug´ sprichst Du? Du wolltest den Spalteninhalt doch rechtsbündig haben...:confused:
BTW: mit \RaggedLeft aus dem ragged2e-Paket (statt \raggedleft) wird auch die Worttrennung aktiviert.;)
MfG,

Unclesam84
06-10-2007, 09:31
Hi!
Ich meine einen Einzug am rechten Rand nach links. Ich versuch jetzt möglichts das ganze zu umgehen, in dem ich mit ner neuen Tabellenzeile arbeite. Wäre aber trotzdem dankbar, wenn ihr mit weiterhelfen könntet
Grüße Sam

rais
06-10-2007, 10:50
Moin moin,

Ich meine einen Einzug am rechten Rand nach links. Ich versuch jetzt möglichts das ganze zu umgehen, in dem ich mit ner neuen Tabellenzeile arbeite.
hast Du da mal ein konkretes Beispiel für?
MfG,

Unclesam84
06-10-2007, 11:15
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}}
...
...
...

\begin{tabular}{|p{10cm}|R{4cm}|}
test & test zeile 1\newline
test zeile 2\\
\end{tabular}

Dieser Code ergibt, dass die erste Zeile rechts einen "Einzug" hat.

rais
06-10-2007, 11:57
Dieser Code ergibt, dass die erste Zeile rechts einen "Einzug" hat.
hmm, sieht so aus, als ob der \newline dem \raggedleft irgendwie misfällt...
Mit dem entsprechenden Befehl des ragged2e-Pakets wär' das nicht passiert.;)
MfG,

Unclesam84
06-10-2007, 14:00
und wie lautet der? :)

sommerfee
06-10-2007, 14:32
hmm, sieht so aus, als ob der \newline dem \raggedleft irgendwie misfällt...

Nicht nur dem \raggedleft, sondern auch dem \raggedright und dem \centering und und und... Daher am besten immer \\ statt \newline nehmen, das wird im Gegensatz zu \newline (fast) immer automatisch so umdefiniert, daß es funktioniert.

Gruß,
Axel

rais
06-10-2007, 15:24
Daher am besten immer \\ statt \newline nehmen, das wird im Gegensatz zu \newline (fast) immer automatisch so umdefiniert, daß es funktioniert.

Müsste ein Spaltentext mit \\ hier nicht gruppiert werden, damit auch nur innerhalb der Spalte umbrochen wird und keine neue Tabellenzeile gestartet wird? OTOH wäre ein & vor dem Folgetext auch kein Beinbruch.
\par wär' noch ne Alternative...
aber eigentlich dachte ich an \RaggedLeft (ragged2e) statt \raggedleft in dem \newcolumntype, dann funktioniert es sogar mit \newline -- zumindest auf meiner Kiste.:D


\documentclass{scrreprt}
\usepackage{ragged2e,tabularx}
\newcolumntype{R}[1]{>{\RaggedLeft\arraybackslash}p{#1}}
\begin{document}
\begin{tabular}{|p{10cm}|R{4cm}|}
Test & Zeile 1\newline
Zeile 2\par
Zeile 3\\
& Zeile 4\\
\end{tabular}
\end{document}

MfG,

Unclesam84
06-10-2007, 15:28
Das Problem ist nur, wenn ich in einer anderen Spalte eben keine neue Tabellenzeile haben will klappt nur der \newline-Befehl - außerhalb von Tabellen ist das ne andere Sache...

sommerfee
06-10-2007, 16:14
Müsste ein Spaltentext mit \\ hier nicht gruppiert werden, damit auch nur innerhalb der Spalte umbrochen wird und keine neue Tabellenzeile gestartet wird? OTOH wäre ein & vor dem Folgetext auch kein Beinbruch.

Stimmt, Mist. Wenn man also \raggedleft oder \raggedright oder \centering innerhalb von Tabellenzellen verwendet, funktioniert weder \newline noch \\.


\par wär' noch ne Alternative...

Sehr gute Idee! http://www.cheesebuerger.de/images/smilie/froehlich/d055.gif



aber eigentlich dachte ich an \RaggedLeft (ragged2e) statt \raggedleft in dem \newcolumntype, dann funktioniert es sogar mit \newline -- zumindest auf meiner Kiste.:D

Auf meiner auch. Da aber \RaggedLeft genauso wie \raggedleft lediglich \\ umdefiniert, aber nicht \newline (hab' gerade mal nachgesehen), ist dies nur ein undokumentierter Seiteneffekt der Implementation des ragged2e Paketes.

Mit \par sollte man also auf der sicheren Seite sein.

Liebe Grüße,
Axel

Unclesam84
07-10-2007, 15:13
Hi und vielen Dank!
Wo hast du die Zitate her?
möchte nur noch kurz wissen, was ich eigentlich mit dem \par-Befehl machen - vlt hilft er mir ja bei anderen Problemen weiter, bei denen ich euch dann nicht behelligen mussss :)
Grüße Sam

sommerfee
07-10-2007, 15:19
möchte nur noch kurz wissen, was ich eigentlich mit dem \par-Befehl mache

\par startet einen neuen Absatz, ist also identisch mit einer Leerzeile zwischen zwei Absätzen. Innerhalb der p-Spalten von Tabellen ist das (normalerweise) optisch mit einem Zeilenumbruch identisch, daher taugt das hier sehr gut als Ersatz.

Liebe Grüße,
Axel

Unclesam84
13-10-2007, 11:05
danke...
Grüße sam