PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fehler wenn letzte Spalte als raggedright deklariert wird



Jo86
08-05-2013, 23:36
Hallo!

Ich habe eine Tabelle die korrekt ist, sofern die letzte Spalte nicht
auf >{\raggedright}p{2cm} sonder auf p{2cm} gesetzt wird.
Woran könnte das liegen?



\documentclass[
a4paper,
12pt,
oneside
captions=tableheading,
listof=totoc,
bibliography=totoc,
index=totoc,
]{scrartcl}

\usepackage{scrpage2}

\usepackage{tabularx}

%************************************************* ******************
% Dokument
%************************************************* ******************
\begin{document}

\begin{table}[tbp]
\begin{flushleft}
\begin{tabular}{|>{\raggedright}p{2cm}||>{\raggedright}p{4cm}||>{\raggedright}p{5cm}|>{\raggedright}p{2cm}|}
\hline
\multicolumn{1}{|c|}{\textbf{Spalte 1}} & \multicolumn{1}{c|}{\textbf{Spalte 2}} & \multicolumn{1}{c|}{\textbf{Spalte 3}} & \multicolumn{1}{c|}{\textbf{Spalte 4}} \\ \hline
Test & Hier steht ein längerer Text & Dieser Text ist auch sehr lang. & Blub \\ \hline
\end{tabular}
\end{flushleft}
\caption{Studie zu Erfolgsfaktoren in DWH-Projekten}
\label{studien}
\end{table}



Des Weiteren habe ich es bislang noch nicht hinbekommen, einen Seitenumbruch in diese Tabelle einzubauen. Diesen benötige ich jedoch, da meine eigentlich Tabelle zu lang ist. Mit longtable habe ich es bislang noch nicht hinbekommen. :rolleyes:

Vielen Dank für eure Hilfe!

rstuby
09-05-2013, 06:39
Eine Gleitumgebung wie table kann keinen Seitenumbruch enthalten und auch die tabular-Umgebung ist nicht so konzipiert. Für Tabellen mit Seitenumbruch gibt es die Umgebung longtable. Die kann dann aber nicht mehr gleiten.

CollmDante
09-05-2013, 09:37
Praktisch könnte man dann das Paket tabu,longtable und caption verwenden ohne die Gleitumgebung table. Zum Beispiel so:

\documentclass[
a4paper,
12pt,
oneside,
captions=tableheading,
listof=totoc,
bibliography=totoc,
index=totoc,
]{scrartcl}

\usepackage{scrpage2}

\usepackage{tabu,longtable,caption}

%************************************************* ******************
% Dokument
%************************************************* ******************
\begin{document}

\begin{longtabu}{|>{\raggedright}p{2cm}||>{\raggedright}p{4cm}||>{\raggedright}p{5cm}|>{\raggedright}p{2cm}|}
\captionsetup{position=bottom}
\hline
\multicolumn{1}{|c||}{\textbf{Spalte 1}} & \multicolumn{1}{c||}{\textbf{Spalte 2}} & \multicolumn{1}{c|}{\textbf{Spalte 3}} & \multicolumn{1}{c|}{\textbf{Spalte 4}} \\ \hline
\endfirsthead
\caption*{Fortsetzung}\tabularnewline
\endhead
\caption[]{Studie zu Erfolgsfaktoren in DWH-Projekten}\tabularnewline
\endfoot
\caption[]{Studie zu Erfolgsfaktoren in DWH-Projekten}\tabularnewline
\endlastfoot
\captionlistentry{Studie zu Erfolgsfaktoren in DWH-Projekten}
Test & Hier steht ein längerer Text & Dieser Text ist auch sehr lang. & Blub oder wieder etwas\\\hline
Test & Hier steht ein längerer Text & Dieser Text ist auch sehr lang. & Blub oder wieder etwas\\\hline
Test & Hier steht ein längerer Text & Dieser Text ist auch sehr lang. & Blub oder wieder etwas\\\hline
Test & Hier steht ein längerer Text & Dieser Text ist auch sehr lang. & Blub oder wieder etwas\\\hline
Test & Hier steht ein längerer Text & Dieser Text ist auch sehr lang. & Blub oder wieder etwas\\\hline
Test & Hier steht ein längerer Text & Dieser Text ist auch sehr lang. & Blub oder wieder etwas\\\hline
Test & Hier steht ein längerer Text & Dieser Text ist auch sehr lang. & Blub oder wieder etwas\\\hline
Test & Hier steht ein längerer Text & Dieser Text ist auch sehr lang. & Blub oder wieder etwas\\\hline
Test & Hier steht ein längerer Text & Dieser Text ist auch sehr lang. & Blub oder wieder etwas\\\hline
Test & Hier steht ein längerer Text & Dieser Text ist auch sehr lang. & Blub oder wieder etwas\\\hline
Test & Hier steht ein längerer Text & Dieser Text ist auch sehr lang. & Blub oder wieder etwas\\\hline
Test & Hier steht ein längerer Text & Dieser Text ist auch sehr lang. & Blub oder wieder etwas\\\hline
Test & Hier steht ein längerer Text & Dieser Text ist auch sehr lang. & Blub oder wieder etwas\\\hline
Test & Hier steht ein längerer Text & Dieser Text ist auch sehr lang. & Blub oder wieder etwas\\\hline
Test & Hier steht ein längerer Text & Dieser Text ist auch sehr lang. & Blub oder wieder etwas\\\hline
Test & Hier steht ein längerer Text & Dieser Text ist auch sehr lang. & Blub oder wieder etwas\\\hline
Test & Hier steht ein längerer Text & Dieser Text ist auch sehr lang. & Blub oder wieder etwas\\\hline
Test & Hier steht ein längerer Text & Dieser Text ist auch sehr lang. & Blub oder wieder etwas\\\hline
Test & Hier steht ein längerer Text & Dieser Text ist auch sehr lang. & Blub oder wieder etwas\\\hline
Test & Hier steht ein längerer Text & Dieser Text ist auch sehr lang. & Blub oder wieder etwas\\\hline
Test & Hier steht ein längerer Text & Dieser Text ist auch sehr lang. & Blub oder wieder etwas\\\hline
Test & Hier steht ein längerer Text & Dieser Text ist auch sehr lang. & Blub oder wieder etwas\\\hline
Test & Hier steht ein längerer Text & Dieser Text ist auch sehr lang. & Blub oder wieder etwas\\\hline
\end{longtabu}
\label{studien}
\end{document}
Bei der Tabelle würde ich aber auf die vertikalen Linien verzichten, auch lohnt es sich mittels der Dokumentation von tabu das Layout der Tabelle zu optimieren

Gruß Jens

klops
09-05-2013, 11:02
Was mein Vorredner mit \tabularnewline gelöst aber nicht erklärt hat, ist der Fakt, dass bei \raggedright, \raggedleft und \centering \\ umdefiniert wird, damit man den Umbruch des Flattersatzes mit manuellen Umbrüchen optimieren kann. Deshalb funktioniert \\ dann nicht mehr als Tabellenzeilenende.

Braucht man die \raggedright-Bedeutung von \\ nicht, kann man aber auch die \tabularnewline-Bedeutung von \\ wiederherstellen. Dafür definiert das Paket array die Anweisung \arraybackslash, die man direkt nach \raggedright in die Spaltendefinition einfügen kann. Siehe dazu auch die Anleitungen von array (http://www.ctan.org/pkg/array), tabularx (http://www.ctan.org/pkg/tabularx) oder tabu (http://www.ctan.org/pkg/tabu).

BTW: Die flushleft-Umgebung hat in Gleitumgebungen dieselben normalerweise unerwünschten Nebenwirkungen die in l2tabu (http://www.ctan.org/pkg/l2tabu) für die center-Umgebung dokumentiert sind. Falls Du die also auch in anderen Gleitumgebungen verwendet hast, die Gleitumgebungen bleiben sollen, solltest Du in Erwägung ziehen, sie durch den Umschalter \raggedright zu ersetzen.

BTW2: Mit Hilfe von afterpage (http://www.ctan.org/pkg/afterpage) kann man eine longtable doch ein wenig gleiten lassen, nämlich an den Anfang der nächsten Seite. Ich habe aber auch schon erlebt, dass die beiden Pakete gar nicht gut zusammen funktionieren. Keine Ahnung, woran das lag. Ausprobieren kann man es aber.

Disclaimer: Dieser Beitrag enthält mehrere Links. Die Verweise sind Teil der Antwort. Daher wird empfohlen, diese zu beachten.