onTeXt est l' œuvre de Hans Hagen rejoint par Taco Hoekwater. Il est développé, depuis 1990, au sein d'une entreprise de création d'ouvrages scientifiques, éducatifs et de manuels (Pragma, basée aux Pays-Bas). Comme LaTeX il est basé sur le moteur TeX.
Si tous les deux essayent par des commandes de haut niveau d'aider les auteurs à utiliser TeX, leur philosophie est différente. Le but poursuivi par les auteurs de LaTeX était de faciliter la création de documents scientifiques en déchargeant l'auteur de toutes préoccupations typographiques. L'auteur écrit son texte, LaTeX fait la mise en page.
Pour ConTeXt, si les commandes aident toujours l'utilisateur à réaliser son document, elles permettent aussi un contrôle très fin de la mise en page. On peut très facilement, sans se plonger dans les arcanes de TeX, réaliser de nouvelles mises en page très sophistiquées. Par contre pour obtenir une belle mise en page, il va falloir te la fabriquer toi-même. ConTeXt ne possède pas de classe comme scrartcl de Koma-script qui te mâche le boulot.
Une autre différence majeure avec LaTeX, est que ConTeXt est monolithique. Toutes les macros font partie de ConTeXt, il n'est pas nécessaire de charger des packages. L'avantage est de ne pas avoir de conflit entre les packages comme par exemple entre enumitem et french - babel.
ConTeXt s'appuie sur Plain TeX, et la plupart des commandes de Plain TeX sont donc disponibles ; on peut en particulier définir des commandes avec \def.
Enfin ConTeXt se veut plus respectueux de la syntaxe de TeX. Notamment il s'appuie sur le principe une commande des options, alors que LaTeX multiplie les commandes. ConTeXt utilise plus les [ ] que les { }. Le cas des listes est un bon exemple des différences entre les deux systèmes. Avec LaTeX tu as une commande pour les listes normales :
et une autre pour les énumérations
Avec ConTeXt une seule commande
et des options comme n pour une liste numérotée de 1, 2 à n, l'option a pour une liste de a, b, c,. . ., dot pour une liste avec des petits • et dash pour des tiretés – . . .
À la différence de LaTeX, ConTeXt est toujours en développement et tire profit des dernières avancées dans les moteurs TeX, puisqu'il peut utiliser pdfTeX, XƎTeX et LuaTeX avec les mêmes fichiers. Ce développement actif est à l'origine de l'existence de deux ConTeXt, Mark II (MkII) et Mark IV (MkIV). Le premier, MkII, est figé, mais toujours maintenu, il utilise les moteurs pdfTeX et XeTeX.
Mark IV est la version de développement, il est basé sur le moteur LuaTeX. Ce changement est complètement transparent pour l'utilisateur, et jusqu'à présent j'ai toujours pu compiler mes documents sous l'une ou l'autre version. Enfin ça s'était vrai avec mes premiers documents. Plus j'avance dans ConTeXt plus je rencontre des incompatibilités entre MkII et MkIV. Dans ces fiches je n'utilise et ne fais référence qu'à MkIV.
Depuis avril 2019 il existe une nouvelle version de ConTeXt : ConTeXt LMTX. Il s'agit d'une implémentation de Mark IV dans un nouveau moteur nommé LuaMetaTeX. Le but de cette nouvelle version est de mieux intégrer les différents composants de ConTeXt : TeX, Lua (langage de scipt) et MetaPost (langage de graphique) tout en consommant le moins de mémoire et de cycles de cpu possible. Ce nouveau ConTeXt est bien adapté aux ordinateurs (et serveurs) de faible puissance avec une mémoire limitée. Pour plus de renseignement voici un lien vers le texte qu'Hans Hagen a écrit dans le TUGboat n°40 de 2019. Il est également très facile à installer et à mettre à jour.
a raison pour laquelle je me suis intéressé à ConTeXt est que dans le cadre de mon boulot, je me suis vu confier la réalisation, tous les ans, d'une grosse publication (200 à 300 pages) destinée au public, avec une mise en page figée (pas très folichonne de surcroît), qui si elle semble faisable sans trop de problèmes avec un logiciel de PAO, s'avère être un peu plus galère avec LaTeX. Et comme mon service ne possède pas de logiciel de PAO et que je n'ai nulle envie d'apprendre à maîtriser un tel outil, j'ai relevé le défi avec LaTeX. Finalement, ça n'a pas été aussi difficile que je le pensais au premier abord, mais il m'a fallu quand même utiliser de nombreux packages, pas mal bidouiller, me confronter à des incompatibilités de packages, donc re-bidouiller. . . Et il reste deux trois bricoles dont je ne suis pas très satisfait.
ConTeXt étant réalisé par des imprimeurs pour réaliser des ouvrages scientifiques, je me suis dit qu'il pourrait être une solution plus élégante et plus efficace pour réaliser mes ouvrages. Donc je me lance et voici les premières fiches issues de mon apprentissage.
Tu trouveras toute la documentation nécessaire, en anglais, sur le wiki de ConTeXt.