PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fehlerhafte Tabellendarstellung infolge \doublerulesepcolor und fester Zeilenhöhe



Thomas_Da
02-09-2009, 16:36
Hallo,

bei der Darstellung einer Tabelle erhalten ich einen Darstellungsfehler, bei dem jede Zeile um eine weiße Linie zu hoch ist. :( Das Problem resuliert genau dann, wenn ich in einer vorstehenden Tabelle den Befehl \doublerulesepcolor{white} verwende und in der relevanten Tabelle eine fixe Zeilenhöhe über eine leere zusätzliche Spalte realisiere.

Wenn man bei \doublerulesepcolor{white} rot wählt wird es noch etwas deutlicher.

Vielleicht habt ihr ja dafür eine Erklärung oder einen Weg, wie ich das vermeiden kann.

Vielen Dank
Thomas




\documentclass{article}
\usepackage{array,ragged2e,hhline,multirow}
\usepackage[table]{xcolor}
\usepackage{colortbl}
\usepackage{calc}
\usepackage[ngerman,german]{babel}

\definecolor{hellgrau}{rgb}{0.95,0.95,0.95}


\begin{document}

\begin{table}
\doublerulesepcolor{white} \vspace{-1em}
\end{table}

\begin{table}
\newcommand{\trfhh}{\parbox[0pt][4em][c]{0pt}{}} % table row fixed height header
\newcommand{\trfhb}{\parbox[0pt][6em][c]{0pt}{}} % table row fixed height body
\begin{tabular}{|b{7cm}|b{7cm}|b{0pt}} \hhline{~-~}
\multicolumn{1}{b{7cm}|}{} & \cellcolor{hellgrau}B1 & \trfhh \\
\hhline{--~}
\cellcolor{hellgrau}A2 & B2 & \trfhb \\
\hhline{--~}
\end{tabular}
\end{table}

\end{document}

u_fischer
02-09-2009, 16:54
Versuch das mal:



...
\begin{table}
\doublerulesepcolor{red} \vspace{-1em}
\end{table}
\makeatletter
\let\CT@drsc@\relax
\makeatletter

...

Thomas_Da
03-09-2009, 10:15
Vielen Dank!

Ich habe noch etwas nachgeforscht, um das ganze besser zu verstehen. Muss da nich als Abschluss \makeatother stehen?

Zu dem Zurücksetzen "relax" der DoubleRuleSepColor habe ich auf die Schnelle keine Erläuterung gefunden. Das Wichtigste ist: Es funktioniert!

[CODE]
\makeatletter
\let\CT@drsc@\relax
\makeatother
[\CODE]

u_fischer
03-09-2009, 10:20
ja, \makeatother sollte es sein.

\relax ist einfach die Anfangsbedeutung dieses inneren Befehls, \doublesepcolor definiert ihn dann um (global) und das scheint das Problem zu verursachen, evtl. nur in Kombination mit \hhline. Ich hatte keine Zeit mir das so genau anzuschauen, kann also auch nicht sagen, wer nun genau was (und ob überhaupt) was falsch macht.

waldflo
10-07-2012, 23:48
Hallo,

ich weiß der Beitrag ist schon etwas alt, aber ich bin auf ein ähnliches Problem gestoßen.

Verwende hhline zum erstellen der Ränder und xcolor zum einfärben der Zeilen in den Tabellen.

Wie bekannt brauche ich den \doublerulesepcolor Befehl um die Farbe im Zwischenraum von Doppellinien zu ändern. Dieser Befehl verursacht aber einen Fehler bei der Verwendung von multirow. Die eigentlich unsichtbare "Linie" (~) erzeugt einen weisen Strich und verdeckt dadurch die Schirft in der multirow Umgebung.

Das zurücksetzten des \doublerulesepcolor befehls in der Tabelle funktioniert nicht.



\begin{table}
\doublerulesepcolor{red} \vspace{-1em}
\makeatletter
\let\CT@drsc@\relax
\makeatother
\end{table}


Somit kann ich nur auf das Einfärben oder auf hhline verzichten oder kennt wer eine andere Lösung?

Lg flo