Aller au contenu

There are several elements in LaTeX whose colour can be changed to improve the appearance of the document. Colours can be manually defined to a desired tone using several models, this article explains how.

Introduction

The simplest manner to use colours in your LaTeX document is by importing the package color or xcolor. Both packages provide a common set of commands for colour manipulation, but the latter is more flexible and supports a larger number of colour models so is the recommended approach. Below an example:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}

\usepackage{xcolor}

\begin{document}

This example shows different examples on how to use the \texttt{xcolor} package 
to change the colour of elements in \LaTeX.

\begin{itemize}
\color{blue}
\item First item
\item Second item
\end{itemize}

\noindent
{\color{red} \rule{\linewidth}{0.5mm} }

\end{document}

ColoursEx1.png


In this example, the package xcolor is imported with

\usepackage{xcolor}

then the command \color{blue} sets the blue colour for the current block of text. In this case for the itemize environment.

The colour of a second block of text, delimited by { and }, is set to red with the command \color{red}, then a 0.5mm-thick horizontal ruler is inserted by \rule{\linewidth}{0.5mm}.

The amount of available colour names depends on the driver, usually the next colours can be used with any driver: white, black, yellow, green, blue, purple cyan and magenta.

See the reference guide for more colours supported by other drivers.

  Open an example of the xcolor package in Overleaf

Basic usage

The colour system provided by the xcolor package is built around the idea of colour models, the colour mode and the colour names supported by a driver vary.

The model based on colour names is very intuitive, even though the list of available names is limited, usually provides enough options. Below an example:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}

\usepackage[dvipsnames]{xcolor}

\begin{document}

This example shows different examples on how to use the \texttt{xcolor} package 
to change the colour of elements in \LaTeX.

\begin{itemize}
\color{ForestGreen}
\item First item
\item Second item
\end{itemize}

\noindent
{\color{RubineRed} \rule{\linewidth}{0.5mm} }

The background colour of some text can also be \textcolor{red}{easily} set. For 
instance, you can change to orange the background of \colorbox{BurntOrange}{this 
text} and then continue typing.

\end{document}

ColoursEx2.png


There are a few changes in this example compared to the one presented in the introduction. First, the command to import the xcolor package has an additional parameter:

  • dvipsnames Makes the colour names for the driver dvips available. From this new set of colour names, the example uses: ForestGreen, RubineRed and BurntOrange. See the reference guide for a complete list of possible colours.
  • if the package color is imported instead of xcolor, then usenames must accompany dvipsnames.

There are also svgnames and x11names that provide different set of colour names. Other possible drivers are: xdvi, dvipdf, pdftex, dvipsone, dviwin, emtex, truetex and xtex, but these usually need not be specified.


Two new commands are also presented in the example:

\textcolor{red}{easily}
Changes the colour of inline text. Takes two parameters, the colour to use and the text whose colour is changed. In the example the word easily is printed in red
\colorbox{BurntOrange}{this text}
Changes the background colour of the text passed as second parameter. In the example the words this text are printed in BurntOrange.

  Open an example of the xcolor package in Overleaf

Creating your own colours

It is possible to define your own colours, the manner in which the colour is defined depends on the preferred model. Below an example using the 4 colour models typically supported by any driver.

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}

\usepackage[dvipsnames]{xcolor}

\definecolor{mypink1}{rgb}{0.858, 0.188, 0.478}
\definecolor{mypink2}{RGB}{219, 48, 122}
\definecolor{mypink3}{cmyk}{0, 0.7808, 0.4429, 0.1412}
\definecolor{mygray}{gray}{0.6}

\begin{document}
User-defined colours with different colour models:

\begin{enumerate}
\item \textcolor{mypink1}{Pink with rgb}
\item \textcolor{mypink2}{Pink with RGB}
\item \textcolor{mypink3}{Pink with cmyk}
\item \textcolor{mygray}{Gray with gray}
\end{enumerate}

\end{document}

ColoursEx3.png


The command \definecolor takes three parameters: the name of the new colour, the model, and the colour definition. Roughly speaking, each number represent how much of each colour you add to the mix that makes up the final colour.

  • rgb: Red, Green, Blue. Three comma-separated values between 0 and 1 define the components of the colour.
  • RGB: The same as rgb, but the numbers are integers between 0 and 255.
  • cmyk: Cyan, Magenta, Yellow and blacK. Comma-separated list of four numbers between 0 and 1 that determine the colour according to the additive model used in most printers.
  • gray: Grey scale. A single number between 0 and 1.

In the example, mypink1, mypink2 and mypink3 define the same colour but for different models. You can actually see that the one defined by cmyk is slightly different.

Colours defined by either model can later be used within your document not only to set the colour of the text, but for any other element that takes a colour as parameter, for instance tables (you must add the parameter table to the preamble), graphic elements created with TikZ, plots, vertical rulers in multicolumn documents and code listings.

  Open an example of the xcolor package in Overleaf

xcolor-only colour models

There are some additional commands that are only available with the package xcolor, these enable support for more colour models and friendly colour mixing.

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}

\usepackage[dvipsnames]{xcolor}
\colorlet{LightRubineRed}{RubineRed!70!}
\colorlet{Mycolor1}{green!10!orange!90!}
\definecolor{Mycolor2}{HTML}{00F9DE}

\begin{document}

This document present several examples on how to use the \texttt{xcolor} package 
to change the colour of elements in \LaTeX.

\begin{itemize}
\item \textcolor{Mycolor1}{First item}
\item \textcolor{Mycolor2}{Second item}
\end{itemize}

\noindent
{\color{LightRubineRed} \rule{\linewidth}{1mm} }

\noindent
{\color{RubineRed} \rule{\linewidth}{1mm} }

ColoursEx5.png


Three new colours are defined in this example, each one in a different manner.

\colorlet{LightRubineRed}{RubineRed!70!}
A new colour named LightRubineRed is created, this colour has 70% the intensity of the original RubineRed colour. You can think of it as a mixture of 70% RubineRed and 30% white. Defining colours in this way is great to obtain different tones of a main colour, common practice in corporate brands. In the example, you can see the original RubineRed and the new LightRubineRed used in two consecutive horizontal rulers.
\colorlet{Mycolor1}{green!10!orange!90!}
A colour named Mycolor1 is created with 10% green and 90%orange. You can use any number of colours to create new ones with this syntax.
\definecolor{Mycolor2}{HTML}{00F9DE}
The colour Mycolor2 is created using the HTML model. Colours in this model must be created with 6 hexadecimal digits, the characters A,B,C,D,E and F must be upper-case.

The colour models that only xcolor support are:

  • cmy cyan, magenta, yellow
  • hsb hue, saturation, brightness
  • HTML RRGGBB
  • Gray Grey scale, a number between 1 and 15.
  • wave Wave length. Between 363 and 814.

  Open an example of the xcolor package in Overleaf

Setting the page background colour

The background colour of the entire page can be easily changed with \pagecolor. See the next example:

\pagecolor{black}
\color{white}

ColoursEx4.png


The command \pagecolor{black} set the page colour to black. This is a switch command, meaning it will take effect in the entire document unless another switch command is used to revert it. \nopagecolor will change the background back to normal.

  Open an example of the xcolor package in Overleaf

Reference guide

Basic colour names available in LaTeX

white, black, red, green, blue, cyan, magenta, yellow

BasicColours.png

Colour names available with the dvipsnames option

ColoursEx6.png

Other drivers have more colour names available, links to documentations in the further reading section.

  Open an example of the xcolor package in Overleaf

Further reading

For more information see:

Overleaf guides

LaTeX Basics

Mathematics

Figures and tables

References and Citations

Languages

Document structure

Formatting

Fonts

Presentations

Commands

Field specific

Class files

Advanced TeX/LaTeX