Impossible de compiler lors de la tentative de modification de la couleur de police des lignes tabulaires spécifiées
J'essaie de changer la couleur du texte d'une ligne entière de a tabular
, sans utiliser le tabu
package. Je veux utiliser cette réponse .
Qu'est-ce que je fais mal pour que le MWE suivant ne se compile pas? J'obtiens le message d'erreur "Erreur LaTeX: Commande @ déjà définie."
\documentclass[oneside,11pt]{book}
\usepackage[semibold,tt=false]{libertine}
\usepackage{libertinust1math}
\usepackage[font={sf,small},labelsep=quad,labelfont=sc]{caption}
\usepackage[subrefformat=parens]{subcaption}
\usepackage[
expansion = false ,
tracking = smallcaps ,
letterspace = 40 ,
]{microtype}
\usepackage{booktabs}
\usepackage{acro}
\usepackage{siunitx}
\sisetup{%
detect-family, detect-shape,
product-units = power,
list-final-separator = {, and },
retain-explicit-plus,
input-comparators = {<=>\approx\ge\geq\gg\le\leq\ll\sim\lesssim\gtrsim}
}
\DeclareSIUnit[number-unit-product = ]\percent{\char`\%}
% Code from https://tex.stackexchange.com/a/26364/15622
\newcommand*{\@rowstyle}{}
\newcommand*{\rowstyle}[1]{% sets the style of the next row
\gdef\@rowstyle{#1}%
\@rowstyle\ignorespaces%
}
\newcolumntype{=}{% resets the row style
>{\gdef\@rowstyle{}}%
}
\newcolumntype{+}{% adds the current row style to the next column
>{\@rowstyle}%
}
\makeatother
\begin{document}
\begin{table}
\centering
\begin{tabular}{=l +l +l}
\toprule
A & {B} & {C}\\
\midrule
\rowstyle{\color{red}}
Bob & \SI{75}{\percent} & -1.11\\
Carla & \SI{75}{\percent} & 2.22\\
Dale & \SI{75}{\percent} & -3.33\\
Ena & \SI{75}{\percent} & 4.44\\
\bottomrule
\end{tabular}
\caption{A}
\end{table}
\end{document}
Réponses
Trop long pour un commentaire. J'espère que l'approche suivante peut être une alternative quand on a besoin de colorer les lignes sélectionnées de votre tableau, le reste des lignes, ou même plus de lignes sans répéter la spécification de couleur.
Production

Il est important de mentionner que la solution ne peut être utilisée qu'avec pdfTeX. En outre, il existe d'autres limitations, mais dans de nombreux cas, l'approche fonctionne correctement.
Utiliser l'approche
Définissez simplement votre spécification de couleur RVB préférée, par exemple en utilisant \def\mycolor{.6 0 .8}
. En outre, utilisez la commande \rowclr
au début de la ligne (ou, généralement, quelque part dans la ligne) pour colorer le reste de la ligne. Pour appliquer la couleur définie, écrivez \rowclr\mycolor
. Si vous avez besoin de colorer plusieurs lignes à la fois, il est préférable d'utiliser les commandes \startclr\mycolor
et \stopclr
de désactiver la coloration.
Code
\documentclass[oneside,11pt]{book}
\usepackage[semibold,tt=false]{libertine}
\usepackage{libertinust1math}
\usepackage[font={sf,small},labelsep=quad,labelfont=sc]{caption}
\usepackage[subrefformat=parens]{subcaption}
\usepackage[
expansion = false ,
tracking = smallcaps ,
letterspace = 40 ,
]{microtype}
\usepackage{booktabs}
\usepackage{acro}
\usepackage{siunitx}
\sisetup{%
detect-family, detect-shape,
product-units = power,
list-final-separator = {, and },
retain-explicit-plus,
input-comparators = {<=>\approx\ge\geq\gg\le\leq\ll\sim\lesssim\gtrsim}
}
\DeclareSIUnit[number-unit-product = ]\percent{\char`\%}
% declare your favorite rgb color specifications here
\def\mycolor{.6 0 .8}
\def\othercolor{1 .2 .5}
\def\somecolor{.5 .8 .3}
\def\stopclr{\pdfliteral{0 g}}
\def\startclr#1{\pdfliteral{#1 rg}}
% color the 'rest' of the row
\def\rowclr#1#2\\{\startclr#1#2\stopclr\\}
\begin{document}
\begin{table}
\centering
\begin{tabular}{ccc}
%------------------------------------
\toprule
A & B & C\\
\midrule
%------------------------------------
\rowclr\mycolor
Bob & \SI{75}{\percent} & -1.11\\
%------------------------------------
Carla & \startclr\othercolor \SI{75}{\percent}& 2.22\\
%------------------------------------
Dale\stopclr & \SI{75}{\percent} & -3.33\\
%------------------------------------
Ena & \rowclr\somecolor\SI{75}{\percent} & 4.44\\
%------------------------------------
\bottomrule
\end{tabular}
\caption{A}
\end{table}
\end{document}

\documentclass[oneside,11pt]{book}
\usepackage{xcolor}
%\usepackage[semibold,tt=false]{libertine}
%\usepackage{libertinust1math}
%\usepackage[font={sf,small},labelsep=quad,labelfont=sc]{caption}
%\usepackage[subrefformat=parens]{subcaption}
%\usepackage[
% expansion = false ,
% tracking = smallcaps ,
% letterspace = 40 ,
%]{microtype}
\usepackage{booktabs}
%\usepackage{acro}
\usepackage{siunitx}
\sisetup{%
detect-family, detect-shape,
product-units = power,
list-final-separator = {, and },
retain-explicit-plus,
input-comparators = {<=>\approx\ge\geq\gg\le\leq\ll\sim\lesssim\gtrsim}
}
\DeclareSIUnit[number-unit-product = ]\percent{\char`\%}
% Code from https://tex.stackexchange.com/a/26364/15622
\makeatletter
\newcommand*{\@rowstyle}{}
\newcommand*{\rowstyle}[1]{% sets the style of the next row
\gdef\@rowstyle{#1}%
\@rowstyle\ignorespaces%
}
\newcolumntype{=}{% resets the row style
>{\gdef\@rowstyle{}}%
}
\newcolumntype{+}{% adds the current row style to the next column
>{\@rowstyle}%
}
\makeatother
\begin{document}
\begin{table}
\centering
\begin{tabular}{=l +l +l}
\toprule
A & {B} & {C}\\
\midrule
\rowstyle{\color{red}}
Bob & \SI{75}{\percent} & -1.11\\
Carla & \SI{75}{\percent} & 2.22\\
Dale & \SI{75}{\percent} & -3.33\\
Ena & \SI{75}{\percent} & 4.44\\
\bottomrule
\end{tabular}
\caption{A}
\end{table}
\end{document}
t