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 !

1.  Avec l’extension coffeestains#

L’extension coffeestains est une version réimplémentée en TikZ par Evan Sultanik de l’extension coffee, é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, 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 :

\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

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

1.1.  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, 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}

2.  Avec l’extension coffee#

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.