![\cellcolor 在我的 talltblr 环境中不起作用](https://linux22.com/image/462783/%5Ccellcolor%20%E5%9C%A8%E6%88%91%E7%9A%84%20talltblr%20%E7%8E%AF%E5%A2%83%E4%B8%AD%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
我尝试在选项卡中的某些单元格中添加颜色,但它不适用于我的 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}