LaTeX & la couleur

Fleuron

La couleur ce gère avec le package xcolor :

\usepackage{xcolor}

qui contient 19 couleurs prédéfinies : black, white, red, green, blue%, cyan, magenta, yellow, lime, brown, darkgray, gray, lightgray, olive, orange, pink, purple, teal, violet.

Tu peux charger d’autres systèmes de couleur, pour augmenter le nombre de couleur prédéfinie :

Tu fais appel à ces systèmes par une commande du type

\usepackage[dvipsnames]{xcolor}

ou plusieurs en même temps

\usepackage[svgnames,dvipsnames]{xcolor}

Je te donne, page suivante, la liste pour dvipsnames, pour les 2 autres je te renvoie à la documentation d’xcolor pages 38–40.


Attention aux majuscules qui sont obligatoires.

Écrire en couleur

\color{nom de la couleur}

Cette commande te permet de modifier la couleur du texte de ton document. Pour comprendre son fonctionnement voici un document en couleur et son fichier LaTeX :

\documentclass{scrartcl} \usepackage[T1]{fontenc} \usepackage[latin1]{inputenc} \usepackage{lmodern} \usepackage{graphicx} \usepackage{xcolor} \usepackage{fancyhdr} \usepackage[frenchb]{babel} \lhead{L’entête} \chead{} \rhead{\textsc{\leftmark}} \rfoot{\small\textsl{Page \thepage}} \cfoot{} \color{red} \begin{document} \pagestyle{fancy}%pour avoir entête et bas de page \section{Première section} Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris. Duis nibh mi, congue eu, accumsan eleifend, sagittis quis, diam. Duis eget orci sit amet orci dignissim rutrum. \subsection{première subsection} Phasellus eu tellus sit amet tortor gravida placerat. Integer sapien est, iaculis in, pretium quis, viverra ac, nunc. Praesent eget sem vel leo ultrices bibendum. Aenean faucibus. Morbi dolor nulla, malesuada eu, pulvinar at, mollis ac, nulla. Curabitur auctor semper nulla. \color{blue} Donec varius orci eget risus. Duis nibh mi, congue eu, accumsan eleifend, sagittis quis, diam. Duis eget orci sit amet orci dignissim rutrum. \section{deuxième section} Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris. \begin{figure}[h] \centering \includegraphics{images/marmotte.png} \caption{Jeux de marmottes, jeux de vilains} \end{figure} Morbi dolor nulla, malesuada eu, pulvinar at, mollis ac, nulla. Curabitur auctor semper nulla. Donec varius orci eget risus. Duis nibh mi, congue eu, accumsan eleifend, sagittis quis, diam. Duis eget orci sit amet orci dignissim rutrum. \subsection{subsection} Morbi dolor nulla, malesuada eu, pulvinar at, mollis ac, nulla. Curabitur auctor semper nulla. Donec varius orci eget risus. \color{green} Duis nibh mi, congue eu, accumsan eleifend, sagittis quis, diam. Duis eget orci sit amet orci dignissim rutrum. \end{document}


La couleur rouge est définit dans le préambule du document (avant le \begin{document}). Elle va donc affecter l’intégralité du document et pas uniquement le texte mais également : l’entête, le pied de page, les divisions, et toutes les légendes.

La commande \color{blue} qui met le texte en bleu, étant placé après le \begin{document}, n’affecte que le texte et est sans effet sur l’entête, le pied de page et les légendes. Le changement de couleur s’effectue à partir de sa déclaration, jusqu’a la fin du document, sauf si une nouvelle commande \color{nom couleur} intervient et prend le relais, ce qui arrive dans ce document avec la commande \color{green}.

Une portion de texte en couleur

Tu as deux possibilités pour mettre une portion de texte en couleur. En reprenant la commande \color{nom couleur} en limitant sa porté à l’aide de { } :

Morbi dolor nulla, malesuada eu, pulvinar at, mollis ac, nulla. {\color{magenta} Un texte magenta}. Curabitur auctor semper nulla.


Une deuxième solution à l’aide de la commande

\textcolor{nom couleur}{le texte}

Avec cette méthode tu ne peux mettre en couleur qu'un petit groupe de mots sans saut de paragraphe.

Morbi dolor nulla, malesuada eu, pulvinar at, mollis ac, nulla. \textcolor{nom couleur}{Un texte violet}. Curabitur auctor semper nulla.


La feuille en couleur

Pour changer la couleur de la feuille (en blanc par défault sous LaTeX), tu dois utiliser la commande :

\pagecolor{couleur}

La portée de cette commande commence à la page courante où a été déclarée la commande jusqu’à la fin du document ou à une nouvelle commande \pagecolor{couleur}. Pour affecter tout le document place la commande dans le préambule (avant le \begin{document})

Les boites en couleur

Texte sur un fond de couleur

Tu utilises la commande

\colorbox{Couleur de fond}{texte}

par exemple :

\colorbox{red}{texte}


Et évidemment, pour mettre un texte en couleur sur fond de couleur, il suffit de combiner les deux commandes précédentes :

\colorbox{couleur de fond}{\textcolor{couleur du texte}{le texte}}

par exemple :

\colorbox{blue}{\textcolor{red}{le texte}}


Avec un cadre coloré

\fcolorbox{couleur de la bordure}{couleur du fond}{texte}

Un exemple

\fcolorbox{red}{cyan}{texte}


Si tu veux le texte en couleur tu fais comme avec \colorbox.

Réglages

La commande suivante permet de modifier l’épaisseur du trait

\setlength{\fboxrule}{valeur unité}

et

\setlength{\fboxsep}{valeur unité}

règle la distance entre le texte et le cadre.

\setlength{\fboxrule}{5pt} \setlength{\fboxsep}{1em} \fcolorbox{red}{cyan}{texte}


Bloc de texte dans des boites colorées

Pour de plus grandes plages de texte tu peux insérer dans des boites en couleur des environnements minipage qui permettent les saut de paragraphe :

Nam dui ligula, fringilla a, euismod sodales, sollicitudin vel, wisi. Morbi auctor lorem non justo. \par \fcolorbox{red}{cyan}{ \begin{minipage}{7cm} Nam lacus libero, pretium at, lobortis vitae, ultricies et, tellus. Donec aliquet, tortor sed accumsan bibendum, erat ligula aliquet magna, vitae ornare odio metus a mi. Morbi ac orci et nisl hendrerit mollis. Suspendisse ut massa. Cras nec ante. Pellentesque a nulla. \end{minipage} }\par Nulla ullamcorper vestibulum turpis. Pellentesque cursus luctus mauris.


Cette boite ne peut pas s’étaler sur plusieurs pages.

Des boites de boites de boites . . .

Tu peux insérer des boites dans des boites :

\setlength{\fboxrule}{4pt} % épaisseur trait \setlength{\fboxsep}{8pt} % espace texte cadre \fcolorbox %boite extérieure {red} % cadre extérieur {yellow} % fond extérieur {\fcolorbox % boite intérieure {blue} % cadre intérieur {green} % fond intérieur {Test\textcolor{cyan}{Test}\color{violet}Test}}


Définir ses propres couleurs

Toujours plus de couleurs

Les listes de couleurs prédéfinies ne te conviennent pas et tu préfères définir toi même tes couleurs, pas de problème, c’est possible. Avec xcolor tu peux :

Créer tes couleurs

Avant de commencer et sans entrer dans le détail, il faut que tu saches qu’il existe plusieurs codages de couleurs, xcolor en utilise 4 :

en français ;

(cyan, magenta, yellow, black).

value) ou HSB (hue, saturation, brightness), c’est ce dernier terme que reconnait xcolor.

La commande pour créer sa propre couleur est :

\definecolor{nom}{modèle}{taux}

Tu places cette commande avant \begin{document}. Le nom c’est toi qui le défini, après tu l’utilises comme le nom des couleurs prédéfinies (par exemple \textcolor{macouleur}). Si tu utilises cette couleur qu’une seule fois tu peux aussi l’employer directement \textcolor{modèle}{taux}{le texte à mettre en couleur} ou bien \color{modèle}{taux}.

LaTeX est anglo-saxon, le séparateur décimal est donc le point, la virgule sert à séparer les différentes valeurs.

Il y a plusieurs modèles, voici les quatre que j’utilise le plus souvent :

et 1 inclus, 0 correspondant au noir et 1 au blanc.

\definecolor{mongris}{gray}{0.75}

donne :

Chaque taux correspondant à un nombre décimal compris entre 0 (absence de couleur) et 1 inclus. Par exemple

\definecolor{monOrange}{rgb}{0.97,0.35,0.04}

donne :

même couleur que ci-dessus, s’écrit :

\definecolor{monOrange}{rgb}{249,89,10}

sera cette fois quatre nombres décimaux compris entre 0 et 1 inclus. La même couleur que ci-dessus, s’écrit :

\definecolor{monOrange}{rgb}{,0.64,0.96,0.02}

Bébert le magicien

Là tu te demandes comment je sais que {249,89,10}, donne de l’orange. Eh bien parce que je suis balèze ! En faite non, enfin si, je suis balèze, mais surtout, j’ai utilisé « gcolor2 », qui est une pipette de couleur permettant d’obtenir le code rgb d’une couleur (sous Linux).


Sous Windows XP, j'utilise la boite à couleur de Benjamin Chartier.


Faire de la patouille avec les tubes de couleurs

Diminuer l’intensité des couleurs

\color{couleur!facteur}

Par exemple

\color{red} Un texte en rouge et \color{red!50} un texte avec 50\% de rouge. \color{blue} Un texte en bleu et \color{blue!25} un texte avec 25\% de bleu.


Mélanger les couleurs

20% de bleu avec 80% de rouge s’obtient par :

\color{blue!20!red}


Mixer les couleurs

3 parts de vert avec 1 part de jaune et 2 de rouge

\color{rgb:green,3;yellow,1;red,2}


Il ne faut pas oublier de préciser le type de système de couleur au début (rgb,cmyk).

Couleur complémentaire

le signe – pour la couleur complémentaire

\color{-blue!20!red}


\color{-yellow}


Dégradé, liste de couleur

Faire un texte en dégradé de couleur

Pour ce faire on va créer une commande qui diminue l’intensité de la couleur courante. La couleur courante est la dernière utilisée. Pour xcolor c’est « . » (le point) qui remplace la couleur courante. Donc la commande

\color{.!80}

diminuera de 20% l’intensité de la couleur courante. Il suffit d’appliquer ceci à une variable et l’on obtient la commande suivante (je te renvoie à la fiche sur la création de commandes pour les explications) :

\newcommand{\degrade}[1]{\color{.!80}#1\xspace}

Tu l’emploies de cette façon :

\textcolor{red}{\degrade{Voici}\degrade{un texte}\degrade{en}\degrade{dégradé}} ce qui donne :


Tu peux changer la couleur :

\textcolor{green}{\degrade{Voici}\degrade{un texte}\degrade{en}\degrade{dégradé}}


Tu peux bien entendu changé dans la commande la valeur du dégradé en changeant la diminution d’intensité par exemple avec une valeur de 50% :


Les listes de couleur

C’est assez compliqué à mettre en oeuvre, enfin ça m’est apparut compliqué, certainement dû à mon niveau d’anglais et au nombre important d’options. Voici ce que j’en ai retenu. Imaginons que tu veuilles une série de couleurs comprises entre le rouge et le vert. Tu définis ta série par la commande :

\definecolorseries{nomChoisi}{modeCouleur}{méthode}{couleur de départ}{couleur d'arrivée}

Pour notre exemple on va utiliser les noms des couleurs (red et green) mais tu aurais très bien pu définir tes couleurs de départ et de fin. Quand on définit une couleur d’arrivée on utilise la méthode last.

\definecolorseries{nomChoisi}{modeCouleur}{last}{couleur de départ}{couleur d'arrivée}

Voici notre liste :

\definecolorseries{rougeVert}{rgb}{last}{red}{green}

Tu initialises ta liste avec la commande :

\resetcolorseries[nombre de pas]{nom série}

Le nombre de pas est un entier différent de 0. Pour notre exemple on va initialiser la liste comme ceci :

\resetcolorseries[8]{rougeVert}

Tu te déplaces dans la série à l’aide de ! !+ pour sauter de pas en pas, de ! !++ tous les 2 pas, ! !+++ tous les 3 pas. . .

Si tu tapes les commandes suivante avec la liste précédemment définie :

\textcolor{rougeVert!!+}{Début} \textcolor{rougeVert!!+}{pas \no 1} \textcolor{rougeVert!!+}{pas \no 2}\textcolor{rougeVert!!+}{pas \no 3}\textcolor{rougeVert!!+}{pas \no 4} \textcolor{rougeVert!!+}{pas \no 5} \textcolor{rougeVert!!+}{pas \no 6}\textcolor{rougeVert!!+}{pas \no 7} \textcolor{rougeVert!!+}{Fin}

tu obtiens :


Avec un nombre de pas de 4 ( \resetcolorseries[4]{rougeVert})


Avec un nombre de pas de 15 ( \resetcolorseries[15]{rougeVert})

Attach:couleur25.png Δ

Plus le nombre de pas est élevé plus la transition est douce. Tu peux te servir de cette méthode pour affiner le dégradé vu dans la première partie de ce chapitre.

\definecolorseries{degradeRouge}{rgb}{last}{red}{red!10} avec \resetcolorseries[8]{degradeRouge}


Je ne vais pas entrer dans le détail des autres méthodes, je vais juste te montrer des exemples. La méthode step qui permet de définir une couleur de départ et un vecteur d’augmentation.

\definecolorseries{nomChoisi}{modeCouleur}{step}[modeCoulDép]{couleur de départ}[modeCoulArriv]{vecteur d’augmentation}

Un exemple

\definecolorseries{maCouleur}{modeCouleur}{step}[rgb]{0.4,0.5,0.6}[rgb]{0.1,0.2,0.1}

Dans cet exemple \color{maCouleur!!+} vaudra [rgb%orange]{0.5,0.7,0.7} la suivante [rgb%orange]{0.6,0.9,0.8} et ainsi de suite.

Par exemple avec

\resetcolorseries[8]{maCouleur}


Il existe aussi la méthode grad mais je te renvoie à la doc de xcolor.

Conclusion

Voila je pense que tu as assez d’éléments pour peinturlurer tes oeuvres LaTeXiènes. Il reste encore quelques aspects à aborder comme la couleur dans les tableaux par exemple mais on verra ça plus tard, après la sortie de la fiche sur les tableaux.

Options: