细胞颜色问题

细胞颜色问题

我有一个问题,我无法给所有的盒子上色

\documentclass[12pt,a4paper]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{cfr-lm}         % instead of the "[cyr]{aeguill}"

\usepackage[table]{xcolor}
\usepackage{ragged2e}       % new
\usepackage{booktabs,       % new
            makecell,       % new
            tabularx}       % new
\renewcommand\theadfont{\small\bfseries}
\renewcommand\theadgape{}
\newcolumntype{L}{>{\RaggedRight}X} % redefined    

%---------------------------------------------------------------%

\begin{document}
    \begin{table}[htb]
    \footnotesize
    \setlength\tabcolsep{4pt}

\begin{tabularx}{\linewidth}{@{}||
    >{\normalsize}c||
    >{\hsize=0.25\hsize}L||
    >{\hsize=0.5\hsize}L||
    >{\hsize=0.25\hsize}L||  @{}}
  \hline   
  \rowcolor[gray]{0.85} \thead{\small{RG}} & \thead{Définition} & 
 \thead{Règles de gestion spécifiques} & \thead{Mapping Table} \\ \hline
    \hline
  \cellcolor[gray]{0.85}\multirowcell{1}[-4ex] {1} & {\textbf{Portail\_Date 
   Traitement Courant} ( Règle définit la date de traitement courant pour le 
  Datamart Portail)}
            &   CASE WHEN

                [RBP \_Presentation View].[Dimension \_Référentiel 
   Datamart].[L\_DATMR]

                = 'PORTAIL' THEN [RBP\_Presentation View].[Fait\_Suivi 
    Application].[D \_TRAIT] END 
                 & \scriptsize{RBP \_vTBADMRBP \_SUIVI \_ APPLI.D \_TRAIT}
                  \\

\hline
\cellcolor[gray]{0.85}\multirowcell{1}[-4ex] {2} & {\textbf{Portail\_Date 
   Traitement Précédent} ( Règle définit la date de traitement précédent 
   pour le Datamart Portail)}
            &   CASE WHEN

                [RBP \_Presentation View].[Dimension \_Référentiel 
   Datamart].[L\_DATMR]

                = 'PORTAIL' THEN [RBP\_Presentation View].[Fait\_Suivi 
 Application].[D \_TRAIT\_PREC] END 
                 & \scriptsize{RBP \_vTBADMRBP \_SUIVI \_ APPLI.D \_TRAIT 
\_PREC}
                  \\ \hline                  
\end{tabularx}
\caption{Équipe de travail}
\end{table}


\end{document}

在此处输入图片描述

答案1

这应该可以解决你的问题。

代码:

\documentclass[12pt,a4paper]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{cfr-lm}         % instead of the "[cyr]{aeguill}"

\usepackage[table]{xcolor}
\usepackage{ragged2e}       % new
\usepackage{booktabs,       % new
            makecell,       % new
            tabularx}       % new
\renewcommand\theadfont{\small\bfseries}
\renewcommand\theadgape{}
\newcolumntype{L}{>{\RaggedRight}X} % redefined

%---------------------------------------------------------------%

\begin{document}
    \begin{table}[htb]
    \footnotesize
    \setlength\tabcolsep{4pt}

\begin{tabularx}{\linewidth}{@{}||
    >{\normalsize}c||
    >{\hsize=0.25\hsize}L||
    >{\hsize=0.5\hsize}L||
    >{\hsize=0.25\hsize}L||  @{}}
  \hline
  \rowcolor[gray]{0.85} \thead{\small{RG}} & \thead{Définition} &
 \thead{Règles de gestion spécifiques} & \thead{Mapping Table} \\ \hline
    \hline
  \cellcolor[gray]{0.85} \raisebox{-4ex}{1} & {\textbf{Portail\_Date
   Traitement Courant} ( Règle définit la date de traitement courant pour le
  Datamart Portail)}
            &   CASE WHEN

                [RBP \_Presentation View].[Dimension \_Référentiel
   Datamart].[L\_DATMR]

                = 'PORTAIL' THEN [RBP\_Presentation View].[Fait\_Suivi
    Application].[D \_TRAIT] END
                 & \scriptsize{RBP \_vTBADMRBP \_SUIVI \_ APPLI.D \_TRAIT}
                  \\

\hline
\cellcolor[gray]{0.85} \raisebox{-4ex}{2} & {\textbf{Portail\_Date
   Traitement Précédent} ( Règle définit la date de traitement précédent
   pour le Datamart Portail)}
            &   CASE WHEN

                [RBP \_Presentation View].[Dimension \_Référentiel
   Datamart].[L\_DATMR]

                = 'PORTAIL' THEN [RBP\_Presentation View].[Fait\_Suivi
 Application].[D \_TRAIT\_PREC] END
                 & \scriptsize{RBP \_vTBADMRBP \_SUIVI \_ APPLI.D \_TRAIT
\_PREC}
                  \\ \hline
\end{tabularx}
\caption{Équipe de travail}
\end{table}
\end{document}

结果:

结果

但是,我会选择一种更好的方法来将单元格内容居中。(我使用固定量只是因为您已经使用过,而且更好的垂直对齐不是您的问题的一部分)。

答案2

软件包\makecell和(通过软件包的colortbl选项加载)不能很好地协同工作。替换为(为此,您应该将软件包添加到您的前言中)。tablexcolor\multirowcell\multirowmultirow

您还需要用以下方法替换thead{...}(这会导致行定位不佳)\textbf{...}

在此处输入图片描述

\documentclass[12pt,a4paper]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{cfr-lm}         % instead of the "[cyr]{aeguill}"

\usepackage[table]{xcolor}
\usepackage{ragged2e}
\usepackage{booktabs,
            makecell,       % new
            multirow,
            tabularx}
\renewcommand\theadfont{\small\bfseries}
\renewcommand\theadgape{}
\newcolumntype{L}{>{\RaggedRight}X} % redefined

%---------------------------------------------------------------%

\begin{document}
    \begin{table}[htb]
    \footnotesize
    \setlength\tabcolsep{4pt}
    \setlength\extrarowheight{2pt}   % <--- added for more vertical spaces in cells
\begin{tabularx}{\linewidth}{@{}||
    >{\normalsize\columncolor[gray]{0.85}}c||
    >{\hsize=0.25\hsize}L||
    >{\hsize=0.5\hsize}L||
    >{\hsize=0.25\hsize}L||  @{}}
  \hline
  \rowcolor[gray]{0.85} 
   \small \textbf{RG} & \textbf{Définition} &
 \textbf{Règles de gestion spécifiques} & \textbf{Mapping Table} \\ \hline
    \hline
\multirow{8}{*}[2ex]{1}
    & \textbf{Portail\_Date
   Traitement Courant} ( Règle définit la date de traitement courant pour le
  Datamart Portail)
            &   CASE WHEN

                [RBP \_Presentation View].[Dimension \_Référentiel
   Datamart].[L\_DATMR]

                = 'PORTAIL' THEN [RBP\_Presentation View].[Fait\_Suivi
    Application].[D \_TRAIT] END
                 & \scriptsize{RBP \_vTBADMRBP \_SUIVI \_ APPLI.D \_TRAIT}
                  \\
    \hline
\multirow{8}{*}[2exx]{2} & {\textbf{Portail\_Date
   Traitement Précédent} ( Règle définit la date de traitement précédent
   pour le Datamart Portail)}
            &   CASE WHEN

                [RBP \_Presentation View].[Dimension \_Référentiel
   Datamart].[L\_DATMR]

                = 'PORTAIL' THEN [RBP\_Presentation View].[Fait\_Suivi
 Application].[D \_TRAIT\_PREC] END
                 & \scriptsize{RBP \_vTBADMRBP \_SUIVI \_ APPLI.D \_TRAIT
\_PREC}
                  \\ \hline
\end{tabularx}
\caption{Équipe de travail}
\end{table}
\end{document}

答案3

makecell包在处理表格颜色时可能会出现问题。下面是使用普通 hhline 的解决方法\multirow; I changed slightly the design of the table as to double rules, playing with

\documentclass[12pt, french, a4paper]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{geometry} 
\usepackage{cfr-lm} % instead of the "[cyr]{aeguill}"
\usepackage{babel} 
\usepackage[table]{xcolor}
\usepackage{ragged2e} % new
\usepackage{booktabs, % new
            hhline, 
            makecell, % new
            multirow, 
            tabularx} % new
\renewcommand\theadfont{\small\bfseries}
\renewcommand\theadgape{}
\newcolumntype{L}{>{\RaggedRight\arraybackslash}X} % redefined

%---------------------------------------------------------------%

\begin{document}

    \begin{table}[htb]
    \footnotesize
    \setlength{\doublerulesep}{3pt}
    \setlength\tabcolsep{4pt}
    \setlength{\extrarowheight}{3pt}
    \begin{tabularx}{\linewidth}{@{}|
    >{\normalsize\columncolor[gray]{0.85}}c||%\columncolor{gray!85}[6pt][12pt]
    >{\hsize=0.75\hsize}L||
    >{\hsize=1.5\hsize}L||
    >{\hsize=0.75\hsize}L| @{}}
    \hhline{|-||-||-||-|}%
    \rowcolor[gray]{0.85} \thead{RG} & \thead{Définition} &
    \thead{Règles de gestion spécifiques} & \thead{Mapping Table} \\ 
    \hhline{|-||-||-||-|}%
    \noalign{\vspace{\doublerulesep}}
    \hhline{|-||-||-||-|}%
    \multirow{5.9}{*}{1} & {\textbf{Portail\_Date
   Traitement Courant} ( Règle définit la date de traitement courant pour le
    Datamart Portail)}
            & CASE WHEN
                [RBP \_Presentation View].[Dimension \_Référentiel
   Datamart].[L\_DATMR]
                = 'PORTAIL' THEN [RBP\_Presentation View].[Fait\_Suivi
    Application].[D \_TRAIT] END
                 & \scriptsize{RBP \_vTBADMRBP \_SUIVI \_ APPLI.D \_TRAIT}
                  \\
    \hhline{|-||-||-||-|}%
    \noalign{\vspace{\doublerulesep}}
    \hhline{|-||-||-||-|}%
    \multirow{5.8}{*} {2} & {\textbf{Portail\_Date
   Traitement Précédent} ( Règle définit la date de traitement précédent
   pour le Datamart Portail)}
            & CASE WHEN

                [RBP \_Presentation View].[Dimension \_Référentiel
   Datamart].[L\_DATMR]

                = 'PORTAIL' THEN [RBP\_Presentation View].[Fait\_Suivi 
               Application].[D \_TRAIT\_PREC] END
                 & \scriptsize{RBP \_vTBADMRBP \_SUIVI \_ APPLI.D \_T\_PREC}
                  \\
    \hhline{|-||-||-||-|}%
    \end{tabularx}
    \caption{Équipe de travail}
    \end{table}

    \end{document}

在此处输入图片描述

或者,我认为更好的是,如果你在输入之前添加这两行tabularx

\arrayrulecolor[gray]{0.85}\
\setlength{\arrayrulewidth}{0.8pt}

您将获得:

在此处输入图片描述

相关内容