Nouvelles de LATEX3

Deuxième édition, juin 2009

TEX Live et le code d’expl3

Quelques points spécifiques

TEX Live 2009 arrive rapidement, et l’équipe LATEX3
a préparé une nouvelle version du code expérimental deLATEX3 pour cette échéance. Des changements très importants ont été faits depuis la dernière version publique ducode, dans TEX Live 2008 ; aucune compatibilité ascendante n’a été maintenue (comme en avertissait la documentation) mais nous pensons que les modifications apportées sont toutes bénéfiques. Chaque partie ou presque deexpl3 a été scrutée, avec pour résultat une base de codebien plus cohérente.
Le code d’expl3 est maintenant considéré comme bienplus stable qu’il ne l’était avant ; une suite de tests exhaustive a été écrite, qui nous aidera à être sûrs que nous ne
faisons pas d’erreur en modifiant les choses à l’avenir. Pendant l’écriture de cette suite de tests, plusieurs bogues mineurs ont été corrigés ; nous recommandons ce genre desuite pour tous les projets de développement similaires !
Quelques petits changements discrets sont encore attendus
dans le code d’expl3, mais aucun changement majeur ou
rupture ne sont prévus.

Morten Høgholm présentera les changements récents
avec bien plus de détails au TUG 2009. Voici quelques précisions rapides, pour ceux que cela intéresse, sur le code
nouvellement écrit et les changements d’envergure dans lesmodules expl3.
Noms de fonctions plus logiques. Plusieurs noms defonctions qui restaient dans le système de noms de TEX
ont été changés pour s’insérer dans le schéma plus logiquede expl3 ; par exemple, \def:Npn et \let:NN sont désormais \cs_set:Npn et \cs_set_eq:NN.
Définitions de fonctions et conditions. Beaucoup deréflexion a été accordée aux nouvelles façons de définir desfonctions et des conditions avec un minimum de code. Voirpar exemple \cs_set:Nn et \prg_set_conditional:Nnn.
Comparaisons intelligentes. Il est bienplus facile de faire des comparaisons maintenant, en utilisant une syntaxe familière comme\intexpr_compare_p:n{ #1+3 != \l_tmpa_int }.

Données depuis les variables. Une nouvelle spécification d’argument de fonction V a été ajouté pour extraire
Jusqu’à présent, la dernière mise à jour sur le CTAN de l’information de variables de différents types, sans avoir
besoin de connaître la structure sous-jacente de la variable.
la suite expl3 était pour TEX Live 2008. Maintenant que
Un petit nettoyage des spécifications d’arguments propole travail sur le code se fait de façon plutôt stable, nous
prévoyons de sortir des versions sur le CTAN plus fréquem- sées a été fait, en partie comme conséquence de l’ajout decelle-ci.
ment. Ceci permettra à tout personne souhaitant expérimenter avec le nouveau code d’utiliser les gestionnaires del3msg. Il y a un nouveau module pour gérer la communipaquets de TEX Live ou MiKTEX pour installer une vercation entre le code LATEX3 et l’utilisateur (messages d’insion récente, sans avoir à récupérer une copie de travail du formation, avertissements et erreurs), avec un filtrage desdépôt SVN puis installer les modules à la main.
messages en partie inspiré du module silence.

Mise à jour planifiées

Nouveaux membres

Les six prochains mois

Nous n’avons rien dit à ce sujet dans le dernier bulletinde nouvelles, mais Joseph Wright et Will Roberstsonsont maintenant membres de l’équipe LATEX. Ils ont travaillé assez exclusivement sur le code d’expl3.
Il est utile de répéter que LATEX 2ε est essentiellement
gelé de façon à éviter des problèmes de compatibilité arrière. Bien qu’il soit souhaitable de bénéficier des nouvellesfonctionnalités offertes par les nouveaux moteurs XeTEX etLuaTEX, nous ne pouvons pas risquer de compromettre lastabilité de serveurs en production utilisant de vieilles versions de LATEX 2ε , qui vont inévitablement finir par traiterdes documents écrits dans le futur.
LATEX3 n’héritera pas des mêmes contraintes, donc restez à l’écoute.

Après avoir révisé le code d’expl3, nous prévoyons maintenant d’appliquer un processus similaire aux fondations
des xpackages. Ces derniers sont une collection de modules
de plus haut niveau qui répondent à des besoins de basecomme le contrôle de la disposition de la page et des interactions riches avec l’utilisateur au niveau du document.
Lorsque que le travail de fond pour cette couche de traitement du document aura gagné en maturité, nous serons
en mesure de commencer à construire plus de modules
pour un noyau LATEX3; ces modules seront aussi utilisables
sur LATEX 2ε et serviront de modèles largement personnalisables pour la future conception de documents.

Les nouvelles LATEX3 et le logiciel LATEX vous sont fournis par l’équipe du projet LaTeX3 ; copyright 2009, 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é.

(T. S. V. P.)

Lorsque des trous dans les fonctionnalités offertes par
expl3 seront découverts (dans certains cas, nous savons
déjà qu’ils existent), cette couche de programmation seraétendue pour satisfaire à nos besoins. Dans d’autres cas,des enveloppes pour des fonctions TEX qui peuvent êtreutiles à un niveau supérieur seront écrites.
Concernant les points sur lesquels nous prévoyons detravailler ensuite, trois modules de xpackage vont retenir
notre attention.
xbase. Actuellement, xbase consiste en deux modules :xparse et template, qui contiennent le code pour, respectivement, définir de nouvelles commandes de niveau document (susceptibles d’être appelées par un utilisateur ; p.
ex. \section, \makebox, . . .) et pour gérer des listes clé= valeur pour les entrées de l’utilisateur et la spécification
du document. xparse a été présenté au TUG 1999 1 et Lars
Helström a écrit des notes sur template en 2000 2 . Ces
modules offrent un bon ensemble de fonctionnalités, maisles concepts ont besoin d’être largement discutés. Plusieurs
approches ont été adoptées pour la syntaxe clé = valeur,dont certaines plus récentes que le code de template, il y adonc des alternatives à évaluer.
galley2. Gestion sophistiquée de la constructions desparagraphes et des autres éléments du document. Morten
en a parlé au TUG 2008 3 . La conception a besoin d’être
revue après quelques tests d’effort.
xor. Il s’agit de la routine de sortie LATEX3, pour découper le galley en morceaux de la taille d’une page ou desous-pages. Les idées et le code sont à travailler pour atteindre le statut « utilisable en production ». Les premiers
développements de ce module ont été publiés par Frank en
2000 4 .
Vous devriez nous entendre à nouveau vers Noël. Sivous avez envie de discuter des idées présentées ici, vous
pouvez nous rejoindre sur la liste de diffusion latex-l 5 .

1. http://www.latex-project.org/papers/tug99.pdf
2. http://www.latex-project.org/papers/template-notes.pdf
3. http://river-valley.tv/the-galley-module/
4. http://www.latex-project.org/papers/xo-pfloat.pdf
5. http://www.latex-project.org/code.html