\cellcolor 在我的 talltblr 环境中不起作用

\cellcolor 在我的 talltblr 环境中不起作用

我尝试在选项卡中的某些单元格中添加颜色,但它不适用于我的 talltblr 环境。我想将带有 A 的单元格着色为灰色。

\documentclass[a4paper,12pt]{book}
\usepackage[left=30mm,top=30mm,right=30mm,bottom=30mm]{geometry}
\usepackage{tabularx, tabularray}
\usepackage[table]{xcolor}

\newcommand{\mcA}[2]{\multicolumn{#1}{c|}{#2}} % just to save some keystrokes
\newcommand{\mcB}[2]{\multicolumn{#1}{c}{#2}} % just to save some keystrokes
\newcolumntype{L}{>{\RaggedRight}X}

\UseTblrLibrary{siunitx}
\NewTableCommand\mc[1]{\SetCell[c=#1]{c}}

\begin{document}

\begin{table}[htbp]
    \centering
    \small
\begin{talltblr}[
caption = {Croissance des revenus et profits des trois principaux opérateurs des télécommunications chinois de 2007 à 2012.},
  label = {tab:3},
%remark{\footnotesize{\textbf{\upshape Source }}} = {\footnotesize{\textbf{Rapports annuels des entreprises concernées. Réalisé par l'auteur.}}}
                ]{hline{1,2} = {2-Z}{solid},    hline{3-Z} = {1-Z}{solid},
                  vline{1}   = {3-Z}{solid},    vline{2-Z} = {1-Z}{solid},
                  colspec = { Q[font=\bfseries] 
                             *{6}{X[c,m, font=\linespread{0.84}\selectfont]} },
                  colsep=3pt,
                  row{1,2}= {font=\bfseries},
                  %cell{4-Z}{2-Z} = {appto={\,\%}}
                 }
    & \mc{6}    Croissances des entreprises (en \%)
        &   &   &   &   &                      \\      
    & \mc{2}  China Mobile
        &   &    \mc{2}    China Telecom
               &   &   \mc{2}  China Unicom
                        &           \\      

 Années
    & Revenus bruts \linebreak(RMB) & Profits \linebreak(RMB) & Revenus bruts \linebreak(RMB) & Profits \linebreak(RMB) & Revenus bruts \linebreak(RMB) & Profits \linebreak(RMB)\\ 
2007-2008
    & 15,54
        & 29,56
            & 4,05
                & \textcolor{red}{-12,79}
                    & A
                        & A\\

2008-2009
    & 9,78
        & 2,25
            & 12,85
                & \textcolor{red}{-33,86}
                    & A
                        & A\\

2009-2010
    & 7,33
        & 3,89
            & 5,35
                & 15
                    & N/D
                        & N/D\\

2010-2011
    & 8,81
        & 5,21
            & 11,66
                & 10,47
                    & N/D
                        & N/D\\

2011-2012
    & 6,14
        & 2,70
            & 15,51
                & \textcolor{red}{-9,55}
                    & N/D
                        & N/D\\

\hline
\renewcommand{\arraystretch}{2}
2008-2012
    & 35,91
        & 14,61
            & 53,20
                & \textcolor{red}{-25,62}
                    & N/D
                        & N/D                    \\
\end{talltblr}
    \end{table}
\end{document}

在此处输入图片描述

但是,它在一个简单的表格中起作用,我不知道为什么。

(\begin{document} 之前的代码相同)

\begin{tabular}{ | l | l | l | }
  \hline
  A & B & C \\
  \hline
  D & E & \cellcolor{gray} \\
  \hline
  G & H & I \\
  \hline
\end{tabular}
\end{document}

供参考,我发现我使用的包(必需)会阻止简单表格被着色。这是我的“Programmedebase”的代码,在文档的序言中添加了以下行:

\usepackage[logo,grec,chinois]{Programmedebase}
%% Informations générales
\NeedsTeXFormat{LaTeX2e}[2022]
\ProvidesPackage{Programmedebase}

%%

\newif\if@grec \@grecfalse
\newif\if@chinois \@chinoisfalse
\newif\if@logo \@logofalse

\DeclareOption{grec}{\@grectrue}
\DeclareOption{chinois}{\@chinoistrue}
\DeclareOption{logo}{\@logotrue}
\DeclareOption*{}%% Ne rien faire quand une option est inconnue
\ProcessOptions


\RequirePackage[utf8]{inputenc}
\RequirePackage[T1]{fontenc}
\RequirePackage{graphicx}
\RequirePackage{hyperref}
\hypersetup{hidelinks}
%\RequirePackage{ulem}
\author{Guillaume Coulon}

\if@grec
    \RequirePackage[greek,french]{babel}
\else
    \RequirePackage[french]{babel}
\fi

\if@chinois
    \RequirePackage{CJKutf8}
        \newcommand{\chinois}[1]{\begin{CJK*}{UTF8}{gbsn}#1\end{CJK*}}
\fi

\if@logo
    \RequirePackage{fancyhdr}
    \RequirePackage{eso-pic}
    \renewcommand{\headrulewidth}{0pt}
    \newcommand{\blap}[1]{\vbox to 0pt{#1\vss}}
\newcommand\AtUpperLeftCorner[3]{%
  \put(\LenToUnit{#1},\LenToUnit{\dimexpr\paperheight-#2}){\blap{#3}}%
}
    \newcommand{\logo}{\AddToShipoutPicture{%
  \AtUpperLeftCorner{1cm}{1cm}{\includegraphics[width=2.5cm]{logo.png}\\COULON\\Guillaume\\21900770}
 }}
\fi


%% Fin du package

\endinput

答案1

tabularray包有自己的机制来改变单元格的颜色。您可以使用\SetCell{bg=red}或通过以下cell{...}{...}={bg=gray}选项更改背景颜色:

\documentclass[a4paper,12pt]{book}
\usepackage[left=30mm,top=30mm,right=30mm,bottom=30mm]{geometry}
\usepackage{tabularx, tabularray}
\usepackage[table]{xcolor}

\newcommand{\mcA}[2]{\multicolumn{#1}{c|}{#2}} % just to save some keystrokes
\newcommand{\mcB}[2]{\multicolumn{#1}{c}{#2}} % just to save some keystrokes
\newcolumntype{L}{>{\RaggedRight}X}

\UseTblrLibrary{siunitx}
\NewTableCommand\mc[1]{\SetCell[c=#1]{c}}

\begin{document}

\begin{table}[htbp]
    \centering
    \small
\begin{talltblr}[
caption = {Croissance des revenus et profits des trois principaux opérateurs des télécommunications chinois de 2007 à 2012.},
  label = {tab:3},
%remark{\footnotesize{\textbf{\upshape Source }}} = {\footnotesize{\textbf{Rapports annuels des entreprises concernées. Réalisé par l'auteur.}}}
                ]{hline{1,2} = {2-Z}{solid},    hline{3-Z} = {1-Z}{solid},
                  vline{1}   = {3-Z}{solid},    vline{2-Z} = {1-Z}{solid},
                  colspec = { Q[font=\bfseries] 
                             *{6}{X[c,m, font=\linespread{0.84}\selectfont]} },
                  colsep=3pt,
                  row{1,2}= {font=\bfseries},
                  %cell{4-Z}{2-Z} = {appto={\,\%}}
                  cell{4-5}{6-7}={bg=gray},
                 }
    & \mc{6}    Croissances des entreprises (en \%)
        &   &   &   &   &                      \\      
    & \mc{2}  China Mobile
        &   &    \mc{2}    China Telecom
               &   &   \mc{2}  China Unicom
                        &           \\      

 Années
    & Revenus bruts \linebreak(RMB) & Profits \linebreak(RMB) & Revenus bruts \linebreak(RMB) & Profits \linebreak(RMB) & Revenus bruts \linebreak(RMB) & Profits \linebreak(RMB)\\ 
2007-2008
    & 15,54
        & 29,56
            & 4,05
                & \textcolor{red}{-12,79}
                    & A
                        & A\\

2008-2009
    & 9,78
        & 2,25
            & 12,85
                & \textcolor{red}{-33,86}
                    & A
                        & A\\

2009-2010
    & 7,33
        & 3,89
            & 5,35
                & 15
                    & N/D
                        & N/D\\

2010-2011
    & 8,81
        & 5,21
            & 11,66
                & 10,47
                    & N/D
                        & N/D\\

2011-2012
    & 6,14
        & 2,70
            & 15,51
                & \textcolor{red}{-9,55}
                    & N/D
                        & N/D\\

\hline
\renewcommand{\arraystretch}{2}
2008-2012
    & 35,91
        & 14,61
            & 53,20
                & \textcolor{red}{-25,62}
                    & N/D
                        & \SetCell{bg=red} N/D                    \\
\end{talltblr}
    \end{table}
\end{document}

在此处输入图片描述

相关内容