Le mpg-blog

LaTeX et autres geekeries

Rencontre ConTeXt 2008, partie 8

without comments

On discutait avec Taco avant-hier du « mode conférence » qui permet contrairement à la vie normale de se coucher à point d’heure et d’être réveillé pour la présentation du matin le lendemain ; mode généralement suivi d’un craquage en règle au retour. Je dois être un peu mal réglé car c’est ce matin que j’ai craqué. En même temps, je me suis réveillé exactement au moment de la pause café : tout n’est donc pas perdu…## Norbert Preining : idées du gestionnaire TeX Live

Norbert commence par rappeler les idées et le fonctionnement de l’installateur et du gestionnaire de paquets de TeX Live, sur lesquels j’ai déjà promis de revenir ultérieurement. Il présent une nouvelle idée très intéressante : il serait possible assez facilement d’adapter le gestionnaire de paquets pour gérer plusieurs sources d’installation et de mise à jour (un peu à la manière de APT, le gestionnaire de paquets Debian).

Une application intéressante serait de permettre aux mainteneurs de context minimals, la distribution de référence de ConTeXt, de proposer un dépôt TeX Live à partir duquel tout le monde pourrait installer facilement la toute dernière version de ConTeXt au sein de son installation TeX Live existante. L’idée soulève un enthousiasme visible.

Taco : documentation ConTeXt

Différents projets : traduction de « ConTeXt, an excursion » du néerlandais vers l’anglais (effectuée, une version imprimée et reliée est disponible ici pour la modique somme de 10€). Autre gros projet : le manuel de référence ConTeXt. Actuellement plus de 400 pages. Rédigé principalement pas Taco, qui lance un appel à contributions : il veut bien rédiger le texte, mais il aimerait l’aide de relecteurs pour corriger les coquilles et signaler les passages peu clairs. Le manuel est sous GFDL et pourra être intégré dans TeX Live.

(En passant, beaucoup de documentation existante sur ConTeXt, rédigée par Hans, n’est pas incluse dans TeX Live parce qu’Hans n’en a pas publié les sources. C’est l’objet de légères tensions mais la position de TeX Live est claire et je l’approuve.)

Hans et Taco : questions et réponses

La première question concerne la compatibilité entre MarkII et MarkIV. Hans évoque l’idée de geler MarkII et de ne plus développer que MarkIV (en corrigeant quand même les bugs dans MarkII). Ceci réglerait en quelque sorte le problème : les documents pour lesquels la stabilité serait importante utiliseraient MkII, et MkIV continuerait à être utilisé par les gens vivant sur la brèche (comme c’est souvent le cas des utilisateurs de ConTeXt).

De façon peu surprenante, la question provoque des échanges vifs : les positions sont un peu variées et partagées entre l’envie de profiter d’un rythme de développement élevé et la crainte d’un gros bazar pour compiler ses vieux documents en se demandant si c’étaient des documents pour MarkIV ou pour MarkII. Taco suggère d’introduire une commande dans le documents indiquant pour quelle version de ConTeXt il a été écrit. Hans ne semble pas enthousiasmé par l’idée.

5 minutes de gloires

L’après-midi commence par 5 minutes de gloire (auxquelles je vais lâchement essayer d’échapper).

  • Ancien utilisateur de ConTeXt : l’avait découvert il y a quelques années en cherchant à installer TeX sous windows (!). L’a utilisé pendant longtemps pour ses documents personnels, mais n’a jamais abandonné LaTeX car c’est le seul format accepté par la plupart des journaux mathématiques. A cessé d’utiliser ConTeXt simplement parce que tous ses documents sont mathématiques (et le support mathématique de ConTeXt n’est pas non plus totalement au niveau de celui de LaTeX).
  • Utilisateur régulier de ConTeXt. Apprécie notamment MarkIV pour pouvoir hacker plus facilement en Lua.

Arthur : un nouveau logo ConTeXt ?

Visiblement la suite du bidouillage auquel j’assistais cette nuit. Un peu plus ordonné quand même :-) Très graphique, donc dommage pour les notes… Taco fait remarquer très justement qu’un vidéo-projecteur est un outil très utile pour travailler sur les fontes de façon précise : on peut bien voir et pointer les détails, puis s’éloigner de quelques mètres pour avoir une bonne vue d’ensemble.

Git

Système de contrôle de version, un peu comme CVS ou SVN. Git est la « stupid content tracker » d’après sa page de man (d’où son nom). L’orateur avoue alors que ça n’a pas de rapport direct avec ConTeXt (ouf) mais que comme les système de contrôle de version sont partout (documents perso, projet libres, et même distribution de logiciels). D’après l’orateur, git est le meilleur :-)

Particularités de git : - Dépôts distribués : tous les dépôts son égaux (mais l’un peut devenir quand même central si l’on veut). Les deux commandes de base sont git pull et git push. On peut contrôler très facilement quelle partie du dépôt on distribue. La propagation ressemble pas mal à ce qui se passe pour les serveurs de news. - merging et branching faciles : le plus gros point fort de git. Avec SVN il y a beaucoup de de choses à faire manuellement. Avec git, c’est tellement naturel que le cycle de travail finit par consister en grande partie en git branch et git merge (qui marchent). - L’index. Qu’est-ce que c’est ? C’est une interface entre la copie de travail et le dépôt. Tout doit être indexé avant d’être « commité ». Ceci permet en fait d’indexer seulement certains changements, ce qui est incroyablement pratique. - Très efficace. Par exemple, toutes les anciennes version de ConTeXt font 2.9G, 678M compressée, 156M dans un dépôt git, 15M dans le même dépôt après la commande git gc. Également rapide.

Deux trucs très faciles par rapport à svn : création d’un dépôt personnel directement depuis une copie de travail : git init (à comparer à svnadmin create foo && svn import /path/to/foo && mkdir foo && svn co url:foo foo…) Autre truc facile : on a pas besoin de lui dire quand on renomme ou copie des fichiers, il devine tout seul (pratique pour importer des archives, et le plus impressionnant, c’est que ça marche pour de vrai). Un autre truc marrant : certaines commandes git permettent d’envoyer les patchs par mail et de les importer depuis le mail :-)

Tutoriel ConTeXt, suite

Au programme : tableaux, figures et peut-être maths.

Tableaux

Le premier environnement de tableau, \starttabulate, ressemble beaucoup à l’environnement tabular de LaTeX, en remplaçant & par \NC et \\ par \NC\NR (et sert juste à aligner, sans dessiner les grille). Il y a par contre beaucoup plus de types de colonnes et de choses pour régler les largeurs, les fontes, des commandes avant et après chaque cellule : en gros, à peu près ce que l’on peut faire avec les extensions array, longtable et une partie de tabularx en LaTeX. On peut aussi régler pas mal de choses globalement par \setuptabulate et créer ses environnement de tableau personnels par \definetabulate.

Pour dessiner les réglures, on a \starttable. La syntaxe est assez différente dans le sens où c’est à chaque changement de cellule qu’on indique la présence ou non d’une réglure. On a un équivalent facile à utiliser de \multirow, à savoir \use2. Suivent d’autres variantes de tables (façon HTML ou autre) que je ne note pas ainsi que des détails sur les couleurs (qui semblent très bien marcher), le contrôle de l’espacement, les titres et le placement. Pour en savoir plus, voir ConTeXt, an excursion p. 25-35, les deux articles (1, 2) de TUGBoat, et la page table du wiki.

Flottants et graphiques

Inclusion de graphiques : on peut insérer des jpg, des png des (pages de pdf) et même des graphies MetaPost mps. Sont dissociés le placement par \placefigure et l’insertion en soit avec \externalfigure.

Flottants configurables avec \setupfloat qui a en gros les mêmes options que les paquets floatrow, caption et placeins de LaTeX. On peut aussi en définir de nouveaux avec \definefloat (sans grande surprise, hein). On peut aussi facilement placer plusieurs flottants ensemble avec \startcombination (un peu comme subfig ou floatrow en LaTeX). On peut aussi habiller des figures par du texte avec \startfloat. Pour aller plus loin : metafun-p.pdf et details.pdf.

Maths : comme en LaTeX, $$...$$ n’est pas recommandé :-) L’orateur passe très vite sur les bonnes façons de faire, il y a déjà eu une présentation à ce sujet ce matin (que j’ai manquée). J’en profite pour placer une remarque qui m’a frappée : les matheux et assimilés ne sont pas la base d’utilisateurs ni la cible principale de ConTeXt. C’est assez intéressant parce que ça implique que ConTeXt soit vraiment performant et utilisable pour le reste, car il n’y a pas la pression de « c’est le seul truc décent pour taper des maths » pour attirer et retenir les utilisateurs. C’est d’ailleurs plaisant de voir que TeX (au sens large) peut être apprécié par d’autres que les matheux et les geeks. Pour plus de détails sur les maths, voir les trois my way suivants (1, 2 3) sur le garden.

 Présentation à la main

Tutoriel interactif, vi à la main de bout en bout, démontrant comment sans charger aucun module on peut transformer une texte quelconque en une jolie présentation à la beamer (sans overlay, quand même) avec même des fontes plus sympa (luatex inside) en moins de 100 lignes de code ConTeXt. Impressionnant mais très clair. Pas de notes sur les détails : je vais pas recopier et commenter 100 lignes de code en direct non plus ;-)

Fin du tutoriel : références, tables des matières, etc.

Peu de notes, mais en gros ça fait la majorité des choses qu’on en attend : avec ou sans titres, styles prédéfinis, tables des matières partielles (à la minitoc), et de même pour les listes de flottants variées. Tout le systèm de références (croisée, tables de matières, index, biblio) dérive d’un nombre fini de concept et de commandes ConTeXt, ce qui rend le tout assez homogène et configurable sans trop de non-sens.

Clôture

Après le tutoriel (à 18h20), Taco présente encore quelques logos expérimentaux pour ConTeXt, et propose qu’au lieu du programme initial qui prévoyait une clôture de la conférence vers 16h, on aille d’abord manger, puis qu’on fasse la cérémonie de clôture et qu’on continue à papoter de ConTeXt, à hacker et à créer des logos jusqu’à 8h ou 9h. Je n’ai pas trop compris s’il voulait dire 21h ce soir, on 9h très tard cette nuit… Attendons et voyons, comme disent nos amis saxons.

Written by mpg

août 24th, 2008 at 8:22

Posted in TeX et compagnie

Tagged with