Anzeige:
Ergebnis 1 bis 5 von 5

Thema: Fehlerhafte Tabellendarstellung infolge \doublerulesepcolor und fester Zeilenhöhe

  1. #1
    Thomas_Da
    Gast

    Fehlerhafte Tabellendarstellung infolge \doublerulesepcolor und fester Zeilenhöhe

    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



    Code:
    \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}

  2. #2
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Versuch das mal:

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

  3. #3
    Thomas_Da
    Gast
    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]

  4. #4
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    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.

  5. #5
    Registrierter Benutzer
    Registriert seit
    10.07.2012
    Beiträge
    1
    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.

    Code:
    \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

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •