
Ich habe ein seltsames Problem, bei dem mein Zeilenfarbbefehl in einigen PDF-Viewern den Spaltentrenner überschreibt. Acrobat ist (leider) das einzige Programm, bei dem dieses Darstellungsproblem auftritt. Das Problem besteht sowohl in der gerenderten Bildschirm- als auch in der gedruckten Version.
Es folgt das Acrobat-Rendering:
Die Darstellung einer Postscript-Datei in TeXShop, MacOS Preview und Ghostscript ist:
Bei den anderen Rendering-Engines können Sie sehen, dass es anscheinend einen 1/2-zeiligen Spaltentrenner gibt. Ich verstehe also konzeptionell, was los ist, weiß aber nicht, wie ich meinen /rowcolor-Befehl ändern kann, um das Problem zu beheben. Ich muss sicherstellen, dass der /rowcolor-Befehl die Tabellenteiler, die alle 1pt groß sind, nicht überschreibt.
\usepackage{booktabs,xcolor,siunitx,colortbl}
\definecolor{lightgray}{HTML}{EFEFEF}
\begin{tabular}{|c|c||c|c||c|c|}
\hline
48 & 72 & 24 & 3 & \(z_0\)& 36\\
\rowcolor{lightgray}
& 96 & & 4 & \(z_1\)& 36\\
\hline
\end{tabular}
Um das Problem mit der halben Linienbreite zu bestätigen, warf ich ein
\setlength{\arrayrulewidth}{1.5pt}
Dadurch wurde alles dicker, sodass die Tabelle in Acrobat gerendert wurde, aber es war wirklich nicht angenehm.
Ich bin für jeden Vorschlag sehr dankbar.
Antwort1
Das ist seltsam, und wenn wir Glück haben,David Carlisledes colortbl
Pakets wird vorbeikommen und dies klären. Ich bin nicht geschickt genug, um hinter die Kulissen zu schauen und die Z-Reihenfolge der Regeln gegenüber der Füllfarbe zu korrigieren, die die Grundursache des Problems zu sein scheint, aber ich habe einen schmutzigen Hack, der für Sie gut genug sein könnte:
Ein paar Anmerkungen: Der TeX-Codeblock (beginnend mit \makeatletter
) istdiese doublerulesep Farbkorrektur, und füllt den Raum zwischen den doppelten vertikalen Linien mit der von Ihnen angegebenen Farbe. Dabei sind für jede Zeile unterschiedliche Farben möglich.
Ich verwende die [table]{xcolor}
Option, weil sie Rowcolors unterstützt, wodurch die Zeilenfarben automatisch gewechselt werden.
Um das Problem mit dem unregelmäßigen vertikalen Trennzeichen zu beheben, habe ich einfach eine Farbe definiert, die fast weiß ist, es aber nicht ist, um das Ausfüllen aller Zeilen zu erzwingen.
\usepackage[table]{xcolor}
\usepackage{booktabs,siunitx}
\makeatletter
\let\old@mkpream\@mkpream
\def\@mkpream{%
\ifx\CT@drsc@\relax\else\let\CT@drsc@ @\fi
\let\CT@arc@\relax
\old@mkpream}
\makeatother
\begin{document}
\definecolor{lightgray}{HTML}{EFEFEF}
\definecolor{nearwhite}{HTML}{FEFEFE}
\doublerulesepcolor{nearwhite}
\rowcolors{1}{nearwhite}{lightgray}
\begin{tabular}{|c|c||c|c||c|c|}
\hline
48 & 72 & 24 & 3 & \(z_0\)& 36\\
\doublerulesepcolor{lightgray}
& 96 & & 4 & \(z_1\)& 36\\
\hline
\end{tabular}
Antwort2
Mit {NiceTabular}
von nicematrix
erhalten Sie direkt die erwartete Ausgabe. In einigen PDF-Viewern scheinen die Regeln bei einigen Zoomstufen nicht zu verschwinden.
\documentclass{article}
\usepackage{xcolor}
\definecolor{lightgray}{HTML}{EFEFEF}
\usepackage{nicematrix}
\begin{document}
\begin{NiceTabular}{|c|c||c|c||c|c|}[colortbl-like]
\hline
48 & 72 & 24 & 3 & \(z_0\)& 36\\
\rowcolor{lightgray}
& 96 & & 4 & \(z_1\)& 36\\
\hline
\end{NiceTabular}
\end{document}
Sie benötigen mehrere Kompilierungen (da nicematrix
im Hintergrund PGF/Tikz-Knoten verwendet werden).