细胞未完全着色

细胞未完全着色

和这里的其他人一样,我在表格单元格正确着色方面遇到了一些麻烦。我在论坛上阅读了许多关于此问题的帖子,但我能找到的所有问题都与 \makecell 和 \colortbl 的组合有关。

就我而言,我没有在此处使用 \makecell(我在其他地方使用过该包,因此我已将其加载),但仍然遇到同样的问题。但由于我没有使用此命令,因此给出的解决方案对我不起作用。

问题在于单元格中带有字母“A”的白色间隙 在此处输入图片描述

我的 MWE:

\documentclass[11 pt, a4paper, oneside, openany]{book}

\usepackage[table, svgnames]{xcolor}
\usepackage{array}
\usepackage{multirow}
\usepackage{makecell}

\begin{table}[H]
    \centering
    \caption{Risico-inschatting en -analyse}
    \label{tabelRisico-inschatting}
    \begin{tabular}{|>{\columncolor{LightSteelBlue}\arraybackslash}c|>{\centering\arraybackslash}m{0.5cm}|>{\centering\arraybackslash}m{0.5cm}|>{\centering\arraybackslash}m{0.5cm}|>{\centering\arraybackslash}m{0.5cm}|>{\columncolor{LightSteelBlue}\arraybackslash}c|l|}
        \hline
        \rowcolor{SteelBlue}&\multicolumn{4}{|c|}{\textbf{Risico-inschatting}}&&\\
        \cline{2-5}
        \cellcolor{SteelBlue}\multirow{-2}{1.3cm}{\centering\textbf{Risico- Nr.}} & \cellcolor{SteelBlue}\textbf{S} & \cellcolor{SteelBlue}\textbf{F} & \cellcolor{SteelBlue}\textbf{O} & \cellcolor{SteelBlue}\textbf{A} & \cellcolor{SteelBlue}\multirow{-2}{1.3cm}{\centering\textbf{Risico- index}} & \cellcolor{SteelBlue}\multirow{-2}{6cm}{\textbf{Risico-evaluatie}}\\
        \hline
        1&2&2&3&1&5&Zeer ernstig gevaar. Vereist ontwerpmaatregel.\\
        \hline
    \end{tabular}
\end{table}

有人能帮我去除这个白色缝隙吗?非常感谢

答案1

使用您的代码,我无法重现问题中显示的表格。清理代码、更正multirow单元格宽度并考虑@DavidCarlisle 评论后,我得到:

在此处输入图片描述

(红线表示页面布局)。如您所见,表格的宽度比文本的宽度要宽得多。

\documentclass[11 pt, a4paper, oneside, openany]{book}

\usepackage[table, svgnames]{xcolor}
\usepackage{multirow, makecell}
%---------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%

\begin{document}
\begin{table}[ht]
    \centering
    \caption{Risico-inschatting en -analyse}
    \label{tabelRisico-inschatting}
    \begin{tabular}{|>{\columncolor{LightSteelBlue}\centering}p{11mm}|
                *{4}{>{\centering\arraybackslash}m{0.55cm}|}
                     >{\columncolor{LightSteelBlue}\centering}p{14mm}|
                     l|}
        \hline
\rowcolor{SteelBlue}
    & \multicolumn{4}{|c|}{\textbf{Risico-inschatting}} &   &   \\
        \cline{2-5}
\rowcolor{SteelBlue}
\multirow{-2}{=}{\centering\textbf{Risico Num.}} 
    & \textbf{S}    & \textbf{F}    & \textbf{O}    & \textbf{A} 
    & \multirow{-2}{=}{\centering\textbf{Risico- index}} 
    & \multirow{-2}{*}{\textbf{Risico-evaluatie}}\\
        \hline
1 & 2 & 2 & 3 & 1 & 5 & Zeer ernstig gevaar. Vereist ontwerpmaatregel.\\
        \hline
    \end{tabular}
\end{table}
\end{document}

您应该确保最后一列是 p类型。例如,列规范定义为:

    \begin{tabular}{|>{\columncolor{LightSteelBlue}\centering}p{11mm}|
                *{4}{>{\centering\arraybackslash}m{5.4mm}|}
                     >{\columncolor{LightSteelBlue}\centering}p{14mm}|
                     >{\raggedright\arraybackslash}p{\dimexpr\linewidth-11mm%
                                                -5.4mm-5.4mm-5.4mm-5.4mm-14mm
                                                -14\tabcolsep-9\arrayrulewidth}|
                    }

表格如下所示:

在此处输入图片描述

请注意,表格中有背景色时,您会遇到 pdf 查看器伪影。并非所有规则都可见,除非您放大到 200% 到 300%!

答案2

你当然可以使用卡路里排版此表。然后,您可以避免 PDF 查看器伪影,其中规则在单元格颜色下消失。我添加了包标题以获得良好的标题间距,同时减少边距使用几何学。另外,我把字体大小减小了两个等级。

我认为,最好删除除水平线以外的所有线冒险聊天当您为单元格背景着色时。

在此处输入图片描述

\documentclass[11 pt, a4paper, oneside, openany]{book}
\usepackage{cals, url, caption}
\usepackage{geometry}
\usepackage[svgnames]{xcolor}
\RequirePackage[T1]{fontenc}

\let\nc=\nullcell                                                  % Shortcuts
\let\sc=\spancontent

\begin{document}

\begin{table}
\caption{Risico-inschatting en -analyse\label{tabelRisico-inschatting}}

\begin{calstable}[c]

% Defining columns relative to each other and relative to the margins
\colwidths{{\dimexpr(\columnwidth)/32*4\relax}
            {\dimexpr(\columnwidth)/32*2\relax}
            {\dimexpr(\columnwidth)/32*2\relax}
            {\dimexpr(\columnwidth)/32*2\relax}
            {\dimexpr(\columnwidth)/32*2\relax}
            {\dimexpr(\columnwidth)/32*4\relax}
            {\dimexpr(\columnwidth)/32*16\relax}
    }
% The tabular fills the text area if sum of all columns is 6

% Set up the tabular
\makeatletter
\def\cals@framers@width{0.4pt}   % Outside frame rules, reduce if the rule is too heavy
\def\cals@framecs@width{0.4pt}
\def\cals@bgcolor{}
\def\cals@AtBeginCell{\vfil}
\setlength{\cals@paddingL}{3pt}
\setlength{\cals@paddingR}{3pt}


\def\blue{\ifx\cals@bgcolor\empty     % "Switch" to turn on and off colour
    \def\cals@bgcolor{SteelBlue}
\else \def\cals@bgcolor{} \fi}
\def\lblue{\ifx\cals@bgcolor\empty     % "Switch" to turn on and off colour
    \def\cals@bgcolor{LightSteelBlue}
\else \def\cals@bgcolor{} \fi}


% R1H1
\thead{\footnotesize\bfseries
\brow
    \blue\nc{lrt}
    \nc{ltb}
    \nc{tb}
    \nc{tb}
    \nc{rtb}\alignC\sc{Risico-inschatting}
    \nc{lrt}
    \nc{lrt}
\erow
%R2H2
\brow
    \nc{lrb}\alignC\sc{\vfill Risico- Nr.}
    \cell{S}
    \cell{F}
    \cell{O}
    \cell{A}
    \nc{lrb}\alignC\sc{\vfill Risico- index}
    \nc{lrb}\alignL\sc{\vfill Risico-evaluatie}\blue
\erow
\mdseries}
\tfoot{\lastrule\strut}
%R4B1
\brow
    \lblue\alignC\cell{1}\lblue
    \cell{2}
    \cell{2}
    \cell{3}
    \cell{1}
    \lblue\cell{5}\lblue
    \alignL\cell{Zeer ernstig gevaar. Vereist ontwerpmaatregel.}
\erow
\makeatletter
\end{calstable}
\end{table}

\end{document}

相关内容