peut-il faire le café ?#

  • 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.

Le package coffeestains fait partie de la Live, sur la base d’une version réimplémentée en TikZ par Evan Sultanik, 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, 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 :

\coffeestainA{⟨alpha⟩}{⟨scale⟩}{⟨angle⟩}{⟨xoff⟩}{⟨yoff⟩}

  • ⟨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

À 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}

1.  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}