--- 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](https://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. :::