Nouvelles de LATEX3

Troisième édition, janvier 2010

Bonne année

propres conventions et commandes de manipulation du modèle.
Nous sommes heureux de vous présenter l’édition desLe module xtemplate peut être vu comme une généravacances d’hiver du « compte-rendu d’activités » delisationde ces idées. Il fournit une interface unifiée pourl’équipe LATEX3.
définir et manipuler des modèles pour toutes sortes d’éléments du document, et surtout, fournit une interface uniDéveloppements récentsfiée pour définir une instance d’un modèle.
Deux sorties importantes de code LATEX3 ont été faites
Ainsi, l’activité de définir ou modifier une classe de dodurant les six derniers mois. Dans le répertoire xpackages 1 cument pour une mise en pages donnée se réduit à choisir
du CTAN, vous trouverez deux éléments intéressants :quels éléments logiques (\chapter, \section, \footnote,– une version revue de xparse ;etc.) la classe doit offrir, puis sélectionner un modèle– le nouveau module xtemplate, une ré-implémentation(nommé) approprié pour chacun d’entre eux, et enfin dede template avec une nouvelle syntaxe.
définir des instances en choisissant les valeurs de leurs paNous remercions particulièrement Joseph Wright, quiramètres. S’il n’est pas possible d’obtenir la mise en pages
s’est chargé essentiellement seul de l’implémentation de ces voulue avec un modèle donné, on peut choisir un modèle
deux modules (avec beaucoup de remarques et de retours
différent pour le même élément du document.
d’autres membres de l’équipe et de participants de la liste
Il n’y a pas besoin de programmer, sauf si aucun desLATEX-L).
modèles disponibles ne convient pour la mise en pages préCes deux modules s’adressent à l’auteur de modules
vue. C’est à ce moment qu’un programmeur LATEX doit
LATEX qui souhaite définir des commandes pour l’auteurconstruire un nouveau modèle qui rend possible cette mise
du document et des interfaces pour le metteur en pages,
en pages. Une fois que c’est fait, le nouveau modèle vient
avec des outils de haut niveau.
s’ajouter à la collection que les utilisateurs et éditeurspeuvent utiliser pour définir ou modifier sans peine desxparse. Ce module permet de définir des commandes
mises en pages.
de niveau document complexes, avec toutes sortes d’arCeci n’est qu’un bref aperçu de la complexité du moguments optionnels. Pensez à la façon dont \newcommand
permet de définir une commande avec un argument option- dule lui-même ; vous pouvez en apprendre plus dans sadocumentation. Nous avons essayer de documenter clairenel : xparse en est une généralisation.
ment xtemplate, et nous sommes très curieux de savoir en
xtemplate. Ce module demande plus d’explications. Le
retour si ces idées vous parlent.
but de xtemplate est de séparer la structure logique d’un
En complément de l’arrivée de xtemplate, précisons que
document de sa représentation visuelle. Pour cela, des mo- l’ancien module template va bientôt disparaître. Il n’y a, àdèles (templates) sont construits, qui fournissent une façon notre connaissance, qu’un module sur le CTAN qui utilise
de composer une partie du document en fonction d’un cer- template, à savoir xfrac, et les membres de l’équipe LAT X3E
tain nombre d’arguments. Pour changer l’apparence d’unesont en train de le modifier pour utiliser xtemplate. Si vous
partie d’un document, il suffit de changer l’instance utiavez du code personnel qui utilise template, merci de nous
lisée pour ce modèle, sans avoir besoin ni de modifier lele faire savoir !
balisage du document lui-même, ni de toucher aux macrosPlans pour la suiteinternes de LATEX.
Des modules LATEX 2ε comme geometry ou titlesec
Après cette annonce de la mise à jour de xparse et defournissent déjà une interface permettant de paramél’arrivée de xtemplate, la prochaine étape de développetrer certains éléments d’un document. Par exemple, onment sera d’utiliser des deux systèmes d’autres composant
peut utiliser titlesec pour modifier la mise en pages dede xpackages, de façon à confronter nos idées de départ à\section, en modifiant les paramètres qui la régissent
la pratique, et à voir si ces modules sont à la hauteur deavec \titleformat et \titlespacing. Dans un sens, ces
nos attentes.
modules fournissent un modèle pour des éléments spéciModules sur la listefiques du document, et quelques commandes permettant
d’en créer des instances. Cependant, dès qu’il n’est plus
possible d’obtenir la mise en page désirée avec un des cesxhead. Le première tâche sera de créer un nouveau
modules, on se retrouve désarmé : il faut soir recourir àmembre des xpackages (probablement appelé xhead) pourde la programmation de bas niveau, soit trouver un autre
la composition des titres de sections et autres subdivisions
module de haut niveau, qui ne manquera pas d’avoir ses
du document. Les titres de section sont un des sujets les
1. http://mirror.ctan.org/tex-archive/macros/latex/contrib/xpackages/
Les nouvelles LATEX3 et le logiciel LATEX vous sont fournis par l’équipe du projet LATEX3 ; copyright 2010, tous droits réservés.
Traduction française par Manuel Pégourié-Gonnard avec l’aimable autorisation de l’équipe du projet LATEX3.
La traduction se veut fidèle, mais seul l’original, disponible sur http://www.latex-project.org/l3news/, fait autorité.

plus difficiles à traiter ; ce travail devrait donc être suffisamment exigeant pour xtemplate pour qu’on puisse juger si sa forme actuelle est suffisante pour la plupart desusages. Pour l’instant, rien n’a été publié, mais nous annoncerons les développements en temps voulu sur la liste
LATEX-L 2 .
galley. Nous voulons aussi faire subir à galley le mêmetraitement que xparse et xtemplate, c’est-à-dire que nous
avons déjà une vieille implémentation (en fait, deux) qui abesoin d’un peu de travail avant d’être prête à publier surle CTAN.
Le module galley est utilisé pour insérer du matériel
dans la liste verticale pendant la composition, mais avant
qu’un saut de page ne survienne. Vu qu’il travaille à basniveau, il est important que ce module soit robuste avantd’écrire des modèles de mise en pages de plus haut niveau.
Nous aurons à faire face au fait que, pour arriver auxmeilleurs résultats, galley ne peut pas être utilisé avec ducode LATEX 2ε . Ceci risque de restreindre son utilité, etnous déciderons peut-être de réduire nos ambitions concernant les fonctionnalités pour permettre une meilleur interopérabilité avec les documents et modules existants. Il
reste encore du travail avant que nous soyons prêts à choisir entre ces deux possibilités.

2. Voir http://www.latex-project.org/code.html pour les détails.