![细胞颜色问题](https://linux22.com/image/376809/%E7%BB%86%E8%83%9E%E9%A2%9C%E8%89%B2%E9%97%AE%E9%A2%98.png)
我有一个问题,我无法给所有的盒子上色
\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
选项加载)不能很好地协同工作。替换为(为此,您应该将软件包添加到您的前言中)。table
xcolor
\multirowcell
\multirow
multirow
您还需要用以下方法替换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}
您将获得: