L’outil standard pour travailler avec la couleur dans LaTeX est le package xcolor. Sur-ensemble remplaçant l’ancien package color, il ne se contente pas de colorer le texte et les arrière-plans : il permet aussi de mélanger les couleurs elles-mêmes au moyen d’expressions de couleur comme red!50!blue, sa fonction caractéristique. Cette page parcourt le chargement, les modèles de couleur, les palettes nommées et les mélanges.
Charger le package
Pour utiliser la couleur, il suffit de mettre \usepackage{xcolor} dans le préambule. Le package a été écrit par Uwe Kern (2003–2021 ; il est maintenant maintenu par le LaTeX Project) et conçu pour être indépendant du pilote, afin que la couleur sorte de la même manière en PDF ou en DVI. On rencontre \usepackage{color} dans d’anciens documents, mais pour un nouveau travail choisissez xcolor : les mélanges de couleurs (expressions) et les jeux de noms supplémentaires sont propres à xcolor et absents de color.
Sans option, on dispose déjà de 19 noms de couleurs de base, mais des options chargent des jeux de noms prédéfinis supplémentaires. dvipsnames ajoute les 68 couleurs PostScript (dvips), svgnames les quelque 151 couleurs SVG 1.1 / CSS, et x11names les quelque 317 couleurs X11. L’option table charge en plus colortbl, ce qui permet de colorer des cellules et des lignes de tableau (voir la page « tableaux colorés »).
\usepackage{xcolor} % 基本(19 色)/ basics (19 colours)
\usepackage[dvipsnames]{xcolor} % + 68 色 / + 68 PostScript names
\usepackage[svgnames]{xcolor} % + 約151色 / + ~151 SVG names
\usepackage[x11names]{xcolor} % + 約317色 / + ~317 X11 names
\usepackage[dvipsnames,table]{xcolor} % 色名 + 表の着色 / names + colortblLes options peuvent se combiner : écrivez [dvipsnames,svgnames] pour charger plusieurs jeux à la fois. Les noms sont conçus pour ne pas entrer en conflit en interne, mais il est plus clair de ne charger que les jeux réellement utilisés.
Appliquer une couleur
Le plus courant est \textcolor{couleur}{texte}, qui colore seulement le texte passé en argument. Si vous préférez changer la couleur de tout ce qui suit, au lieu d’enfermer un passage dans des accolades, utilisez la forme déclarative {\color{couleur} … } dans un groupe { }. Voyez \color comme un commutateur qui reste actif jusqu’à la fin de son groupe.
これは \textcolor{red}{赤い} 文字です。
{\color{blue} ここから先は青。} ここは元の色に戻ります。Pour peindre un fond, \colorbox{couleur}{texte} place le texte sur une boîte pleine de cette couleur. Pour un cadre et un fond de couleurs différentes, utilisez \fcolorbox{couleurCadre}{couleurFond}{texte} : le premier argument est la bordure, le second le remplissage. Pour recolorer le fond de toute la page, il existe \pagecolor{couleur} (à annuler avec \nopagecolor). Cela affecte toutes les pages à partir de ce point ; placez donc la commande avec soin si vous ne voulez, par exemple, qu’une page de titre noire.
\colorbox{yellow}{ハイライト}
\fcolorbox{red}{yellow}{赤枠・黄背景}
\pagecolor{black} % これ以降、ページ全体が黒地にChacune de ces commandes accepte une expression de couleur ou un modèle explicite à la place d’un simple nom. Par exemple \textcolor{red!50!blue}{…}, ou avec un modèle entre crochets \textcolor[rgb]{1,0,0}{…} (les modèles sont abordés ensuite).
Définir ses propres couleurs
Pour donner un nom à une couleur personnelle, utilisez \definecolor{nom}{modèle}{valeurs}. Définie une fois dans le préambule, elle se comporte ensuite comme n’importe quel nom de couleur dans \textcolor et les commandes voisines. Par exemple, pour enregistrer un bleu assourdi sous le nom myblue :
\definecolor{myblue}{rgb}{0.2,0.4,0.8}
% 使う / use it:
\textcolor{myblue}{この文字は myblue}Un second outil, \colorlet{nom}{couleur}, crée un nouveau nom à partir d’une couleur existante ou d’une expression. Là où \definecolor construit une couleur depuis un modèle et des nombres, \colorlet nomme le résultat d’un mélange de couleurs déjà disponibles. Pour nommer half un rouge éclairci à mi-chemin vers le blanc, écrivez \colorlet{half}{red!50}. La notation de mélange avec ! est détaillée dans la section suivante.
Modèles de couleur
Le deuxième argument de \definecolor est le modèle de couleur : la manière d’exprimer une couleur par des nombres. xcolor en prend plusieurs en charge, du cmyk destiné à l’impression à la notation hexadécimale HTML familière du Web ; choisissez donc selon le besoin. Les modèles courants sont :
| Modèle | Valeurs | Exemple |
|---|---|---|
rgb | Rouge, vert, bleu, chacun entre 0 et 1 | {0.2,0.4,0.8} |
RGB | Rouge, vert, bleu, chacun entier entre 0 et 255 | {51,102,204} |
HTML | Six chiffres hexadécimaux, RRGGBB | {FF8800} |
cmyk | Cyan, magenta, jaune, noir, chacun entre 0 et 1 | {0,0.5,1,0} |
gray | Une valeur (0 = noir, 1 = blanc) | {0.5} |
named | Référence à un nom de couleur existant (p. ex. dvips) | {Periwinkle} |
Le même orange peut s’écrire de plusieurs façons : seule la notation change, pas le résultat. Les quatre lignes ci-dessous définissent pratiquement la même couleur. HTML prend six chiffres hexadécimaux, ce qui permet de coller directement un code couleur Web ; cmyk sert à l’impression (séparation en quatre couleurs).
\definecolor{o1}{rgb}{1,0.5,0}
\definecolor{o2}{RGB}{255,128,0}
\definecolor{o3}{HTML}{FF8000}
\definecolor{o4}{cmyk}{0,0.5,1,0}On peut aussi nommer un modèle directement au point d’utilisation, entre crochets. Pour une couleur ponctuelle sans nom défini, \textcolor[HTML]{FF8800}{…} ou \color[gray]{0.5} est la solution rapide. Le modèle named est un cas spécial qui référence des noms existants, par exemple ceux de dvipsnames ; dans l’usage courant, il suffit d’écrire directement le nom de couleur.
Expressions de couleur — mélanger
C’est là que xcolor prend tout son intérêt. À la place d’un nom, vous pouvez écrire une expression de couleur utilisant le point d’exclamation ! partout où une couleur est attendue. La forme de base est couleurA!pct!couleurB : on mélange pct pour cent de A avec le reste en B. Ainsi red!50!blue donne 50 % de rouge et 50 % de bleu ; red!75!blue donne 75 % de rouge et 25 % de bleu.
Si l’on omet la couleur B, le reste est considéré comme blanc. Ainsi red!20 signifie « 20 % de rouge + 80 % de blanc » : un rouge pâle, une teinte claire. Mélangé avec du noir, on obtient au contraire une nuance plus sombre : blue!30!black signifie « 30 % de bleu + 70 % de noir », un bleu marine profond. Un signe moins initial, comme dans -red, donne le complément (l’inverse) du rouge.
red!50!blue— violet, mélange égal de rouge et de bleured!20— 20 % de rouge, 80 % de blanc : un rouge pâle (teinte claire)blue!30!black— 30 % de bleu, 70 % de noir : un bleu sombre-red— le complément du rouge (vers le cyan)green!40!yellow!60— les expressions s’enchaînent ; le mélange se fait de gauche à droite
Comme les expressions fonctionnent partout, vous pouvez écrire \textcolor{blue!30!black}{…}, \colorbox{yellow!40}{…}, et les utiliser librement dans \definecolor ou \colorlet. Donnez un nom à un mélange une seule fois, et vous pourrez réaccorder toute la palette du document en modifiant une seule ligne : c’est l’idée.
\textcolor{red!50!blue}{半分ずつの紫}
\colorbox{yellow!40}{薄い黄色の背景}
\colorlet{accent}{blue!30!black} % アクセント色を一括管理
\textcolor{accent}{見出しの色}Noms de couleur disponibles
Même sans option, ces 19 couleurs de base sont toujours disponibles.
- black, blue, brown, cyan, darkgray, gray, green, lightgray, lime, magenta, olive, orange, pink, purple, red, teal, violet, white, yellow
Pour une palette plus riche, ajoutez un jeu de noms avec les options ci-dessus. dvipsnames apporte 68 couleurs comme RoyalBlue, Periwinkle et BurntOrange ; svgnames apporte les quelque 151 noms familiers de CSS, tels que DarkSlateGray et Tomato. Les noms respectent la casse : écrire royalblue au lieu de RoyalBlue produit une erreur « undefined colour ». Pour voir l’apparence de chaque couleur, les nuanciers du manuel xcolor sont la référence fiable ; ouvrez-le avec texdoc xcolor.