---
myst:
html_meta:
keywords: LaTeX,taches de café,crasse,salir un document,maculer un document LaTeX,amusement,jeux,fun
---
# LaTeX peut-il faire le café ?
- LaTeX est sans doute capable de faire le café et même de le boire, puisqu'il sait faire des taches de café sur vos documents !
L'extension [coffee](http://legacy.hanno-rein.de/hanno-rein.de/archives/349), de
[Hanno Rein](http://hanno-rein.de/), utilise de véritables taches de café
(marques de tasses et éclaboussures), qui ont été photographiées puis retouchées
sous Gimp et redessinées avec , pour orner vos pages.
Le package fait partie de la TeX Live, sur la base d'une
version réimplémentée en [TikZ](ctanpkg:PGF) par [Evan
Sultanik](https://www.sultanik.com/), complétée par des contributions de Luis
Randez et d'Adrian Robson.
Un fork est présent sur GitHub, sous le nom de
[latex-coffee-stains](https://github.com/barak/latex-coffee-stains), avec des
contributions de Barak A. Pearlmutter, Anthony Mirand et Sebastian
Schmittner. *A contrario* du package CTAN, il ne dispose pas de documentation.
La syntaxe de base est :
```{noedit}
\coffeestainA{⟨alpha⟩}{⟨scale⟩}{⟨angle⟩}{⟨xoff⟩}{⟨yoff⟩}
```
où
- ⟨alpha⟩ est la transparence, soit un nombre entre 0 et 1 (1 = la tache de café est complètement opaque ; 0 = la tache est complètement transparente et invisible) ;
- ⟨scale⟩ est l'échelle (valeur standard : 1) ;
- ⟨angle⟩ est l'angle de rotation de la tache, en degrés d'angle ;
- ⟨xoff⟩ et ⟨yoff⟩ sont les coordonnées horizontale et verticale par rapport au centre de la page, passées comme longueurs.
Quatre commandes sont disponibles, pour dessiner quatre formes de taches :
| Commande | Apparence |
|-----------------|------------------------------------------------------------|
| `\coffeestainA` | Grand arc de cercle avec deux petites gouttes |
| `\coffeestainB` | Petit arc de cercle |
| `\coffeestainC` | Deux grosses éclaboussures de couleur claire |
| `\coffeestainD` | Grosse tache colorée, avec des éclaboussures en périphérie |
:::{todo} L'exemple n'est pas bien rendu ici, car il nécessite deux compilations pour que les nœuds Ti\ *k*\ Z soient positionnés de façon absolue sur la page.
:::
```
\documentclass{article}
\usepackage[width=9cm,height=9cm]{geometry}
\usepackage{coffeestains}
\usepackage{lipsum}
\pagestyle{empty}
\begin{document}
\lipsum[1]
\coffeestainA{0.6}{0.8}{0}{0cm}{5cm}
%\coffeestainC{0.4}{0.6}{0}{-1cm}{-3cm}
\end{document}
```
## Comment avoir des taches sur chaque page ?
Il est possible d’ajouter des taches aléatoires sur toutes les pages du document :
```
\documentclass[a4paper]{article}
\usepackage{coffeestains}
\usepackage{lipsum}
\AddToHook{shipout/background}{
\pgfmathsetseed{\pdfuniformdeviate 10000000}
\pgfmathdeclarerandomlist{scales}{{0.5}{0.7}{1.0}{1.4}}
\pgfmathdeclarerandomlist{stains}{{\coffeestainA}{\coffeestainB}{\coffeestainC}{\coffeestainD}}
\pgfmathrandominteger{\angle}{15}{350}%
\pgfmathparse{rand/2.4}\xdef\xoffset{\pgfmathresult}%
\pgfmathparse{rand/2.4}\xdef\yoffset{\pgfmathresult}%
\pgfmathparse{(0.1 + rnd/3)}\xdef\trans{\pgfmathresult}%
\pgfmathrandomitem{\scale}{scales}%
\pgfmathrandomitem{\stain}{stains}%
\stain{\trans}\scale\angle{\xoffset\textwidth}{\yoffset\textheight}%
}
\begin{document}
\lipsum[1-10]
\end{document}
```
:::{sources}
- [Are there other « fun » packages like the « coffee stains »
package?](https://tex.stackexchange.com/questions/67656/are-there-other-fun-packages-like-the-coffee-stains-package)
- [Coffee (and wine (and nicotine)) stains on an entire
document](https://tex.stackexchange.com/questions/237557/coffee-and-wine-and-nicotine-stains-on-an-entire-document)
- [LaTeX Coffee Stains](http://legacy.hanno-rein.de/hanno-rein.de/archives/349),
- [latex-coffee-stains](https://github.com/barak/latex-coffee-stains) sur GitHub.
:::