metahoguet.md

type.code ou Metahoguet worksession - introduction

À l’opposé des principaux logiciels de dessins de lettres qui, s’inscrivant dans l’héritage de Gutenberg, modélisent celles-ci par leur contour, METAFONT permet de décrire la lettre par son “ductus”, c’est à dire son chemin central ou squelette. Repartant du geste calligraphique, cet outil propose une conception digitale et paramétrique du caractère typographique.

L'atelier se concentrera sur le dessin collectif d’un ensemble de caractères, à travers un éditeur collaboratif permettant aux participants de travailler en temps réel sur un même set de descriptions et de variables.

Accompagnant cette écriture collective, une vue “image” synchronisée et projetée des caractères permettra de voir les dessins s’actualiser et réagir aux changements apportés dans le code. Les résultats seront plottés à l'aide d'une table traçante, rythmant l’atelier et remplissant progressivement les murs d’exposition de la Maison du Livre. Ils seront visibles jusqu’au dimanche 20 novembre.

Photos et fontes

Télécharger les fontes issues du workshop : MetaHoguetOriginal

Metafont

À partir de 1977 Donald Knuth démarre l'écrture du logiciel TeX et du système de création de polices Metafont. Metafont est un langage utilisé pour composer des polices matricielles qui fut utilisé par Knuth pour créer la police Computer Modern. Il a été développé en même temps que TeX.

C’est avec ce langage que Knuth a dessiné la famille de fontes Computer Modern.

Metapost

Le langage Metafont a lui aussi donné naissance à MetaPost qui permet de produire des figures PostScript à partir d'une description géométrique. Metapost est dérivé du système Metafont mais spécialisé dans la production de diagrammes. Alors que Metafont produit des fichiers images associés à des fichiers contenant des informations métriques de police, MetaPost produit des fichiers au format PostScript. L'avantage de Metapost est qu'il produit des graphiques dans un format vectoriel et donc ajustable en terme d'échelle et compatible avec nos outils les plotters (en convertissant le svg vers hpgl).

Comparaison des dessins de deux O exportés respectivement de Metafont et MetaPost, avec à gauche la sortie vectorielle Metapost, à droite le dessin vectorisé à partir du bitmap de Metafont :

→ Exemples de figures dessinées avec Metapost

→ Metapost - A Very Brief Tutorial

Médiographie, ressources

Documentation plus large

Vocabulaire de base

Pour enclencher la description d'une nouvelle figure :

beginfig(1)

Chaque ligne de commande se termine par un point virgule.

Description d'une ligne horizontale rejoingnant 2 points :

draw z1--z2;

Decription d'une courbe rejoingant 3 points

draw z1..z2..z3;

Pour terminer la description d'une figure :

endfig;

Ici un exemple de description avec des points

beginfig(6)
     z1=(1,0);
     z2=(4,5);
     z3=(5,0);
     z4=(1,2);
     z5=(3,1);
     z6=(6,2);
     draw z1--z2--z3{up}..z4..z5..z6;
endfig;

→ Aperçu du résultat :

Pour faire varier la forme du tracé, on utilise les paramètres circle, square ou razor pour définir la forme du stylo (pen) avec la commande suivante (ici pour choisir une plume biseautée):

pickup penrazor;

À gauche une plume biseautée, à droite une plume ronde.

Planning des deux journées :

Friday

  • 10:00 Coffee
  • 10:30 Start - Introduction workshop, Knuth, MetaFont, TeX
  • 11:00 First glyph parts demo
  • 13:00 Lunch
  • 14:00 Drawing of the full set
  • 18:00 Wrap-up

Saturday

  • 10:00 Coffee
  • 10:30 Teams of variations
  • 13:00 Lunch
  • 14:00 Installing exhibition
  • 18:00 Drinks *

Sunday

  • 18:30 Exhibition opening : https://www.facebook.com/events/1795989690667629/

Installer Metapost sur votre machine (optionnel et non nécessaire pour le workshop)

sur Ubuntu

sudo apt install texlive-binaries

sudo apt install texlive-metapost

sur Archlinux

sudo pacman -S texlive-bin

Générer les figures à partir d'un etherpad en ligne

via le terminal avec la commande suivante (en replaçant format par "svg" ou "eps")

for (( ; ; )); do curl http://adresse-du-pad/export/txt >| metahoguet.mp && mpost -interaction=batchmode -s 'outputformat="format"' metahoguet.mp ; sleep 9; done

Todo (OSP missions)

  • Introduction : présentation de l'atelier et documentation → Ludi
  • Set up of the first points, pieces and variables → Pierre
  • Live visualisation → Antoine
  • Pad history parsing through etherpad API → Alex Gijs + History font / feature file → Gijs
  • Plotter scenography → Gijs
  • Raspberry Pi or Laptop / Ethertoff install → Gijs, Alex

for (( ; ;  ));
do
    rm *.svg
    echo 'outputtemplate := "%c.svg";' > metahoguet.svg.mp
    curl http://osp.constantvzw.org:9999/p/metahoguet/export/txt        >> metahoguet.svg.mp
    mpost -interaction=batchmode -s 'outputformat="svg"' metahoguet.svg.mp
    sleep 2
done

Ou idem en une seule ligne pour le terminal :

for (( ; ;  )); do rm *.eps; echo 'outputtemplate := "%c.eps";' > metahoguet.eps.mp; curl

http://osp.constantvzw.org:9999/p/metahoguet/export/txt>> metahoguet.eps.mp; mpost -interaction=batchmode -s 'outputformat="svg"' metahoguet.svg.mp; sleep 2; done

for (( ; ;  )); do rm *.eps; echo 'outputtemplate := "%c.eps";' > meta.mp; curl http://osp.constantvzw.org:9999/p/metahoguet/export/txt >> meta.mp;  mpost -interaction=batchmode -s 'outputformat="eps"' meta.mp; sleep 2; done

for i in ../*.svg; do echo $(basename ${i%.svg}); done
for i in ../*.svg; do echo $(basename $i .svg); done