PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tabellen



Goldfinger
21-06-2011, 16:32
Ich habe Problem mit einer einfachen Tabelle:


\begin{tabular}{lcrp{1.5 cm}}
text & ich bin ein langer text und schieße aus dem rand.\\
\end{tabular}


Wenn hier in der zweiten Spalte ein längerer Text steht, bricht er nicht um sondern fließt quasi aus dem Rand ins Nirvana.

Kann mir jemand helfen das zu verhindern?

Danke schön.

Festus
21-06-2011, 16:37
Du könntest eine p-Spalte benutzen, in der Umbrüche möglich sind. Bei der must du aber die Spaltenbreite fest angeben.

Besser ist das Paket tabularx, das Umbrüche in dem von ihm bereit gestellten Spaltentyp 'X' erlaubt und dessen optimale Breite automatisch berechnet:



\usepackage{tabularx}
...
\begin{tabular}{lX}
text & ich bin ein langer text und schieße aus dem rand.\\
\end{tabular}

rstuby
21-06-2011, 16:41
Zum Beispiel die zweite Spalte auch, wie die vierte, als p-Spalte definieren und nicht als c-Spalte.

Goldfinger
21-06-2011, 16:47
Ich habe den Code versucht. Da passiert folgendes:
Die eigentliche rechte Spalte fängt unter der linken Spalte an und der Text fließt trotzdem aus dem Rand.

Komisch.

bobmalaria
21-06-2011, 16:48
Du könntest eine p-Spalte benutzen, in der Umbrüche möglich sind. Bei der must du aber die Spaltenbreite fest angeben.

Besser ist das Paket tabularx, das Umbrüche in dem von ihm bereit gestellten Spaltentyp 'X' erlaubt und dessen optimale Breite automatisch berechnet:



\usepackage{tabularx}
...
\begin{tabular}{lX}
text & ich bin ein langer text und schieße aus dem rand.\\
\end{tabular}

das wird so nicht gehen!

richtig muss es heissen


\begin{tabularx}{0.95\textwidth}{lX}

zur erklaerung. X ist ein vom paket tabularx definierter befehl der den verbleibenden platz berechnet und diesen vol ausnutzt. hier z.b. werden 95% der textbreite fuer die tabelle genutzt.
ist der inhalt der zelle sehr viel text kann es helfen das paket ragged2e einzubinden und dann


\begin{tabularx}{0.95\textwidth}{l>{\RaggedRight}X}

zu schreiben.


gruss

Goldfinger
21-06-2011, 16:50
Zum Beispiel die zweite Spalte auch, wie die vierte, als p-Spalte definieren und nicht als c-Spalte.

Super, habs kapiert und jetzt passt es.
Kann ich hier einfach noch einen Rand hinzufügen der ungefähr so aussieht?

(Screenshot)

Ist das aufwendig?

rstuby
21-06-2011, 16:53
Senkrechte Striche setzt du oben in der Definition der Spalten als senkrechte Striche. |
Sind aber out, hässlich, überflüssig und leserfeindlich.
Waagerechte Striche setzt du mit \hline. Aber guck dir dafür mal das Paket booktabs an, da passt es mit den Abständen besser, als wenn du einfach \hline machst.

bobmalaria
21-06-2011, 17:00
hier mal ein beispiel fuer eine einfache tabelle


\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[babel]{microtype}
\usepackage{tabularx,booktabs}
\usepackage{lipsum}%test-text
\begin{document}

\begin{tabularx}{.95\textwidth}{lX}
\toprule
Definition & Erklaerung \\
\midrule
Eine definition & \lipsum[1]\\
\hline
Noch eine definition & \lipsum[2]\\
\hline
Und eine dritte & \lipsum[4]\\
\bottomrule
\end{tabularx}

\end{document}


http://www.mrunix.de/forums/attachment.php?attachmentid=4631&stc=1&d=1308672024

Festus
21-06-2011, 17:00
das wird so nicht gehen!

richtig muss es heissen


\begin{tabularx}{0.95\textwidth}{lX}



Hoppla---lange nicht mehr benutzt :rolleyes: