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, de Hanno Rein, 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 PStricks, pour orner vos pages.
La version actuelle a été réimplémentée en TikZ par Evan Sultanik, pour fonctionner avec pdfTeX et LuaTeX. La syntaxe de base est :
\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 |
---|---|
|
Grand arc de cercle avec deux petites gouttes |
|
Petit arc de cercle |
|
Deux grosses éclaboussures de couleur claire |
|
Grosse tache colorée, avec des éclaboussures en périphérie |
À faire
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}
Le package coffeestains fait partie de la TeX Live.
Un fork est présent sur GitHub, sous le nom de 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.
Comment avoir des taches sur chaque page ?
Avec l’extension everypage, il est possible d’ajouter des taches aléatoires sur toutes les pages du document :
\documentclass[a4paper]{article}
\usepackage{coffeestains}
\usepackage{everypage}
\usepackage{lipsum}
\pgfmathsetseed{\pdfuniformdeviate 10000000}
\pgfmathdeclarerandomlist{scales}{{0.5}{0.7}{1.0}{1.4}}
\pgfmathdeclarerandomlist{stains}{{\coffeestainA}{\coffeestainB}{\coffeestainC}{\coffeestainD}}
\AddEverypageHook{%
\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-120]
\end{document}