PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit \rowcolor



mm79
26-03-2006, 20:00
Hallo!

Ich habe folgendes Problem: Ich möchte in einer longtable-Umgebung den Tabellenkopf einfärben. Dies versuche ich mit dem Befehl \rowcolor. Allerdings bleiben in jeder Spalte links und rechts weiße Balken, die auch noch verschieden groß sind. Ich habe versucht die Balken mit den optionaln Parametern manuell verschwinden zu lassen ([...pt][...pt]) aber das klappt nicht richtig. Ich hab's ebenso mit \tabcolsep versucht - hilft aber leider auch nix. Als Pakete verwende ich colortbl und xcolor.

Ich hoffe, dass irgendjemand eine Idee hat. Meine Tabelle ist etwa so definiert:

\begin{longtable}{|p{0.06\linewidth}|p{0.06\linewi dth}p{0.31\linewidth}|p{0.23\linewidth}|p{0.23\lin ewidth}|}
\hline
\rowcolor[gray]{0.7}
Zeit & Siglen & Gesprächstranskript & Aktivitäten & Anmerkungen\\
--Tabellentext--
\end{longtable}

Gruß,

Markus.

edico
27-03-2006, 08:35
Ich kann den Fehler nicht replizieren ... und was heisst 'Meine Tabelle ist etwa so definiert'. Warum postest du kein Minimalbeispiel, dass wir es einfacher haben und nicht erst lange basteln müssen. Ich habe dich so verstanden:
%
\listfiles
\documentclass{article}
\usepackage{longtable,colortbl,xcolor}
\begin{document}
\begin{longtable}{|p{0.06\linewidth}|p{0.06\linewi dth}p{0.31\linewidth}|p{0.23\linewidth}|p{0.23\lin ewidth}|}
\hline
\rowcolor[gray]{0.7}
Zeit & Siglen & Gespr{\"a}chstranskript & Aktivit{\"a}ten & Anmerkungen\\
%--Tabellentext--
cell11 &cell12 &cell13 &cell14 &cell15\\
cell21 &cell22 &cell23 &cell24 &cell25\\
\hline
\end{longtable}
\end{document}
%
BTW: du kannst die vertikalen Linien der Übersicht wegen auch streichen.
edico

mm79
27-03-2006, 10:20
Dnake für die Antwort. Ich dneke, dass das Problem bei mir irgendwie mit der mlitcolumn-Zeile zusammenhängt. Da mein Dokument ziemlich umfangreich ist, sind im folgenden Minimalbeispiel auch eine Menge Pakete eingebunden. Vielleicht vertägt sich auch davon etwas nicht???

Hier da Minimalbeispiel:

\documentclass[a4paper, 12pt]{scrartcl}
\usepackage[T1]{fontenc}% Europäische Schriften
\usepackage[latin1]{inputenc}
\usepackage{marvosym} % Symbole-Paket
\usepackage{textcomp}
\usepackage{fancybox} % Schöne Boxen
\usepackage{graphicx}
\usepackage{colortbl} % Farben in Tabellen
\usepackage[table]{xcolor} % Farben
\usepackage{longtable} % Tabelle über mehrere Seiten
\usepackage{pstricks} % Grfiken selbst erstellen und vieles mehr
\usepackage{amssymb,amsmath} % math. Formelsatz
\usepackage{scrpage2} % Für Kopf- und Fußzeilen
\usepackage{typearea} % Anpassen des Seitenlayouts
\usepackage{setspace} % Zeilenabstand verändern
\usepackage{ngerman} % Neue deutsche Rechtschreibung
\usepackage{wrapfig} % Umflossene Grafik
\usepackage{float} % Paket für Gleitumgebungen
\usepackage{floatflt} % für Textumflossene Umgebungen (s. 196)
\usepackage{lineno} % Zeilen numerieren
\usepackage{pdflscape} % Querformat
\begin{document}
%
\clubpenalty=4500 % Weniger Schusterjungen
\widowpenalty=10000 % Keine Hurenkinder
%
\xdefinecolor{blau1}{cmyk}{1,1,0,0.3}
\xdefinecolor{blau2}{cmyk}{0.7,0.7,0,0.21}
\xdefinecolor{blau3}{cmyk}{0.5,0.5,0,0.15} % Eigenes Farbschema
\xdefinecolor{blau4}{cmyk}{0.3,0.3,0,0.09}
\xdefinecolor{blau5}{cmyk}{0.2,0.2,0,0.045}
\xdefinecolor{blau6}{cmyk}{0.1,0.1,0,0.03}
%
\begin{landscape}
\begin{longtable}{|p{0.06\linewidth}|p{0.06\linewi dth}p{0.31\linewidth}|p{0.23\linewidth}|p{0.24\lin ewidth}|}
\hline
\rowcolor[gray]{0.3}\white{Zeit}& \cellcolor[gray]{0.3}\white{Siglen} & \white{Gesprächstranskript} & \white{Aktivitäten in Fathom} & \white{Anmerkungen}\\
\hline\hline
\endhead
\hline
\endfoot
\endlastfoot%Fuß auf der letzten Tabellenseite
%---------------Tabellentext---------------------------------------------
& & & Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla BlaBlaBla Bla Bla BlaBla Bla Bla BlBla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla BlaBlaBla Bla Bla BlaBla Bla Bla Bla&\\
\hline
\hline
\multicolumn{5}{|>{\columncolor{blau1}[1\tabcolsep][1\tabcolsep]}p{1\linewidth}|}{\textbf{\white{1) Kompetenzen: a) Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla BlaBlaBla Bla Bla BlaBla Bla Bla Bla}}}\\
\hline
\hline
12:30 & A & Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla BlaBlaBla Bla Bla BlaBla Bla Bla Bla & Bla Bla Bla Bla Bla Bla Bla Bla Bla BlaBla Bla Bla BlaBla Bla Bla\\
12:31 & B & Bla Bla Bla Bla Bla Bla BlaBla Bla Bla BlaBla Bla Bla Bla Bla Bla & Bla Bla Bla Bla BlaBla Bla Bla Bla Bla Bla Bla Bla\\
\end{longtable}
\end{landscape}
\end{document}


Viele Grüße,

Markus.

edico
27-03-2006, 17:15
Zunächst: das ist kein Minimalbeispiel. Bitte informiere dich, wie du das generieren kannst, um dir selbst zu helfen und Fehler schon auf diesem Wege zu erkennen und dem Leser durch cut&paste die Arbeit nicht sauer machst.
Dann: mit den Paketen und rowcolor hat das nichts zu tun. Der Grundfehler liegt dain, dass dein Header nicht addiert 100% ergab, was du aber in der Spalte multicolumn mit \linewidth definierst!
Ausserdem Änderung von Farben, wenn du schon xcolor benutzt. Du kompilierst nicht mit pdflatex w/pstricks.
Den Umgang mit lines solltest du lesen. Schau die tabsatz.pdf an.
Abgespeckt, wie es das nächste Mal maximal aussehen sollte:
%
\documentclass[12pt]{scrartcl} % DINA4 ist default bei KOMA
\usepackage{ngerman}
\usepackage[latin1]{inputenc}
\usepackage{pstricks}
\usepackage{pdflscape}
\usepackage{colortbl}
\usepackage[table]{xcolor}
\usepackage{longtable}
\xdefinecolor{blau1}{cmyk}{1,1,0,0.3}
\newcommand{\txt}{Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla BlaBlaBla Bla Bla BlaBla Bla Bla BlBla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla BlaBlaBla Bla Bla BlaBla Bla Bla Bla}
\begin{document}
\begin{landscape}
%\begin{longtable}{|p{0.06\linewidth}|p{0.06\linew idth}p{0.31\linewidth}|p{0.23\linewidth}|p{0.24\li newidth}|}
\begin{longtable}{p{0.06\linewidth}p{0.06\linewidt h}p{0.31\linewidth}p{0.23\linewidth}l}
%\hline
\rowcolor{blue!30}
{\white{Zeit}} &
{\white{Siglen}} &
{\white{Gesprchstranskript}} &
{\white{Aktivitten in Fathom}} &
{\white{Anmerkungen}}\\
%\hline\hline
\endhead
%\hline
\endfoot
\endlastfoot%Fu auf der letzten Tabellenseite
%---------------Tabellentext---------------------------------------------
& & &\txt &\\
%\hline\hline
%\multicolumn{5}{|>{\columncolor{blue!20}}p{\linewidth}|}{\textbf{\wh ite{1) Kompetenzen: a) Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla BlaBlaBla Bla Bla BlaBla Bla Bla Bla}}}\\
\multicolumn{5}{>{\columncolor{blue!20}}p{\linewidth}}{\textbf{\whi te{1) Kompetenzen: a) Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla BlaBlaBla Bla Bla BlaBla Bla Bla Bla}}}\\
%\hline\hline
12:30 &A &\txt & &\\
12:31 &B &\txt & &\\
%\hline
\end{longtable}
\end{landscape}
\end{document}
%
edico

mm79
28-03-2006, 10:56
Danke für die ausführlichen Tipps! Werde sie mir zu Herzen nehemen.

Das Problem bleibt jedoch weiter bestehen. Wenn ich die Zahlen vor \linwidth so wähle, dass genau 1 rauskommt, dann wird zwar der Tabellenkopf komplett eingefärbt, aber dann ragt die Tabelle in die Kopfzeile hinein.:confused:

Habe keine Ahnung, wie ich das in den Griff bekommen soll.

Bin für weitere Vorschläge dankbar.

Markus.

edico
29-03-2006, 00:23
Ich habe mir die Tabelle nochmal angeschaut. Die Lösung liegt AFAIK in folgender Änderung von multicolumn:
...
\multicolumn{5}{>{\columncolor{blue!30}}l}{% linewidth störend
\textbf{\white{1) Kompetenzen: a) Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla BlaBlaBla Bla Bla BlaBla Bla Bla Bla}}}\\
...
edico

mm79
29-03-2006, 12:08
Hi edico!

Ich habs noch mal mit deiner Änderung versucht. Es ergibt sich allerdings das Problem, dass meine mulitcolumn einen automatischen Zeilenumbruch benötigt, da dort teilweise viel Text drin steht.

Ich habe auch mal versucht die Spalten manuell anzugeben. Da die Tabelle ja im Querformat ist, hab ich mal nachgeschaut, mit wieviel pt die Texthöhe angegeben ist (595pt für scrreprt). Wenn ich die p-Spalten allerdings so festlege, dass die Summe genau 595pt ergibt, dann ragt die sch... Tabelle wieder in die Kopfzeile rein. Woran kann das denn liegen? Erkennt die \longtable-Umgebung die vorgegebenen Layout-Parameter nicht?

Ich werde jetzt wohl die Tabelle einfach nach "Augenmaß" mauell anpassen. Aber die schönste Lösung ist das nicht.

Gruß,

Markus.

edico
29-03-2006, 15:24
... ich bin ziemlich sicher, dass du mit diesem Ansatz keine Problemlösung erzieltst. Ich habe jetzt keine Zeit, werde das Thema aber gerne später - wenn noch nicht weiter - wieder aufgreifen. Ich denke, du solltest dich um LTX Tabellen kümmern. Da hast du dann X-Spalten, die umbrechen und sich an die Textbreite anpassen ...
edico

edico
29-03-2006, 17:31
... nochmal zurückgerudert.
Versuch mal, an deine Tabelle anzupassen. Diese Lösung hier läuft nur mit 12pt, nicht mit 10pt Schriften!
Die Problematik bleibt weiterhin wie vorher bestehen.
%
\documentclass[a4paper,12pt]{scrartcl}
\usepackage{pstricks}
\usepackage{lscape}
%\usepackage{pdflscape} %
\usepackage{colortbl}
\usepackage[table]{xcolor}
\usepackage{longtable}
\usepackage{array}
\usepackage{calc}
\newcolumntype{P}{p{0.06\linewidth-2\tabcolsep}}
\newcolumntype{Q}{p{0.31\linewidth-2\tabcolsep}}
\newcolumntype{R}{p{0.23\linewidth-2\tabcolsep}}
\newcolumntype{S}{p{0.34\linewidth-2\tabcolsep}}
\newcommand{\txt}{Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bl Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla}
\begin{document}
\begin{landscape}
\the\linewidth
%\begin{longtable}{|p{0.06\linewidth}|p{0.06\linew idth}p{0.31\linewidth}|p{0.23\linewidth}|p{0.34\li newidth}|} % = 100%
%\begin{longtable}{|p{0.06\linewidth}p{0.06\linewi dth}p{0.31\linewidth}p{0.23\linewidth}l|} % <<<<< warum kannst du diese Lösung nicht in Erwägung ziehen ?
\begin{longtable}{|P|P|Q|R|l|} %
\rowcolor{blue!40}
{\textbf{\white{Zeit}}} &
{\textbf{\white{Siglen}}} &
{\textbf{\white{Gespr{\"a}chstranskript}}} &
{\textbf{\white{Aktivit{\"a}ten in Fathom}}} &
{\textbf{\white{Anmerkungen}}}\\
\endhead
\endfoot
\endlastfoot%Fu auf der letzten Tabellenseite
& & &\txt &\\
\multicolumn{5}{|>{\columncolor{blue!30}}p{\linewidth}|}{%
%\multicolumn{5}{|>{\columncolor{blue!30}}m{\linewidth}|}{%
%\multicolumn{5}{|>{\columncolor{blue!30}}l|}{%
\textbf{\white{1) Kompetenzen: a) \txt\txt}}}\\
12:30 &A &\txt & &\\
12:31 &B &\txt & &\\
12:32 &C &\txt & &\\
12:33 &D &\txt & &\\
12:34 &E &\txt & &\\
\end{longtable}
\end{landscape}
\end{document}
%
edico

mm79
29-03-2006, 22:07
Hi edico!

Ich hab's jetzt mit deinen Vorschlägen hinbekommen. Mit dem tabcolsep-Befehl konnte ich jetzt alles korrekt einfärben.

Vielen Dank für deine Mühe und die guten Tipps!

Gruß,

Markus.