--- myst: html_meta: keywords: LaTeX, domaine spécialisés, quotidien, 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 ! ## Avec l'extension L'extension est une version réimplémentée en [TikZ](ctanpkg:PGF) par [Evan Sultanik](https://www.sultanik.com/) de l'extension [coffee](http://legacy.hanno-rein.de/hanno-rein.de/archives/349), évoquée ci-après. Cette version est 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* de l'extension CTAN, il ne dispose pas de documentation. La syntaxe de base est : ```{noedit} \coffeestainA{⟨alpha⟩}{⟨échelle⟩}{⟨angle⟩}{⟨coordx⟩}{⟨coordy⟩} ``` Les variables suivent les définitions suivantes : - `⟨alpha⟩` est la transparence, soit un nombre entre 0 et 1 (1 donnant une tache de café complètement opaque ; 0 une tache complètement transparente et invisible) ; - `⟨échelle⟩` est l'échelle (valeur standard : 1) ; - `⟨angle⟩` est l'angle de rotation de la tache, en degrés d'angle ; - `⟨coordx⟩` et `⟨coordy⟩` 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[french]{article} \usepackage[T1]{fontenc} % Encodage T1 (adapté au français) \usepackage{lmodern} % Caractères plus lisibles \usepackage{babel} % Réglages linguistiques (avec french) \pagestyle{empty} % N'affiche pas de numéro de page \usepackage{lipsum} % Du faux-texte \usepackage[width=9cm,height=9cm]{geometry} \usepackage{coffeestains} \begin{document} \lipsum[1] \coffeestainA{0.6}{0.8}{0}{0cm}{5cm} %\coffeestainC{0.4}{0.6}{0}{-1cm}{-3cm} \end{document} ``` ### Cas particulier de taches sur chaque page Il est possible d’ajouter des taches aléatoires sur toutes les pages du document, le code ci-dessous fixe la graine du générateur aléatoire pour reproductibilité (si cette graine était choisie aléatoirement, comme indiqué en commentaire de code, LaTeX redemanderait à chaque fois une compilation supplémentaire) : ``` \documentclass[french]{article} \usepackage[T1]{fontenc} % Encodage T1 (adapté au français) \usepackage{lmodern} % Caractères plus lisibles \usepackage{babel} % Réglages linguistiques (avec french) \pagestyle{empty} % N'affiche pas de numéro de page \usepackage{lipsum} % Du faux-texte \usepackage{coffeestains} \pgfmathsetseed{271828} \AddToHook{shipout/background}{ %\pgfmathsetseed{\pdfuniformdeviate 10000000}% si on fait cela % le .aux ne stabilise pas \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} ``` ## Avec l'extension [coffee](http://legacy.hanno-rein.de/hanno-rein.de/archives/349) 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. :::{sources} - [Are there other "fun" packages like the "coffee stains" package?](https://tex.stackexchange.com/a/67671), sur [Tex Stack Exchange](https://tex.stackexchange.com/) - [Coffee (and wine (and nicotine)) stains on an entire document](https://tex.stackexchange.com/q/237557), sur [Tex Stack Exchange](https://tex.stackexchange.com/) - [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](https://github.com/) :::