# ConTeXt

ConTeXt est un logiciel de composition de documents conçu et maintenu depuis 1990 par Hans Hagen et Taco Hoekwater de la société Pragma, une société néerlandaise spécialisée dans la composition d'ouvrages imprimés. Un groupe d'utilisateurs chevronnés vient compléter les efforts des développeurs historiques. Les tests et les améliorations de cette suite logicielle sont accessibles sur Internet, via un Wiki en langue anglaise, ConteXt Garden. ConTeXt est adossé au système TeX, et regroupe une collection de macro-commandes.

## Principes

ConTeXt a été conçu avec les mêmes objectifs d'usage universel que LaTeX avec toutefois quelques différences, qui consistent à automatiser le plus possible ce qui relève de la déclaration dans le fichier source de LaTeX. Le but central explicite est de soulager la mémoire de l'utilisateur au moyen de routines qui néanmoins peuvent faire l'objet de réglages. Le logiciel est mis à jour beaucoup plus fréquemment ; il a été réalisé de façon plus monolithique, de manière telle que, à côté du noyau intégré existent quelques module.
De plus, ConTeXt fournit plus de commandes à l'utilisateur et facilite la création de nouvelles commandes sans avoir besoin d'apprendre le langage TeX.
ConTeXt intègre MetaFun qui est une extension de MetaPost et un puissant système de conception de graphiques vectoriels. Metafun peut aussi être utilisé indépendamment, mais employé dans ConTeXt, il facilite l'organisation du document et augmente la précision des objets graphiques.
ConTeXt permet aux utilisateurs d'utiliser des balises dans différentes langues. Les balises peuvent, pour le moment, être écrites en anglais, en néerlandais, en allemand, en français et en italien. ConTeXt donne la possibilité d'utiliser différents logiciels (pdftex, XeTeX, Aleph, LuaTeX) sans changer l'interface utilisateur.
Ce système, développé depuis 1990, a connu une évolution, depuis ConTeXT Mark II et Mark IV jusqu'à la version de 2019-2020, CONTEXT LMTX, la dernière version de ConTeXt qui s'appuie sur LuaMetaTeX (LMTX = LuaMetaTeX). Le système est multi-plateformes (Microsoft Windows, Linux, MacOSX, ARM Linux, FreeBSD, OpenBSD en 32 et 64 bits).

## Installation

L'installation se fait par une procédure simple de téléchargement par Internet, mais nécessite la compréhension de quelques commandes en mode console afin de déployer l'arborescence de la distribution (arborescence composée des ensembles de macros et de la documentation, ainsi que de nombreuses polices) et de configurer quelques réglages en vue d'utiliser les polices du système installé sur la machine. L'installation de la distribution ConTeXt ne modifie en rien le système (OS) et la procédure de désinstallation est très simple : il suffit d'effacer le répertoire context que l'on a précédemment créé en vue d'installer l'ensemble de la distribution. Le téléchargement se fait selon deux procédures : soit par le téléchargement d'un fichier zippé ici, soit par l'application de la procédure suivante à partir d'une console (à partir d'un terminal) ouverte sur le système : rsync -av rsync://contextgarden.net/minimals/setup/first-setup.sh . (manipulation qui concerne les systèmes Linux, BSD et MacOSX. Ne pas oublier le point après "first-setup.sh ."). Pour le système Microsoft Windows, il faut télécharger le fichier zippé dans le répertoire de l'utilisateur, dans lequel a été créé un dossier nommé context ; ensuite, la commande est first-setup.bat qui développe l'ensemble des répertoires dont ConTeXt a besoin (les procédures d'installation sont expliquées dans ce Wikilivre en français). À noter qu'il est possible d'installer plusieurs versions de ConTeXt dans des répertoires différents, à des fins de production ou de tests (la distribution étant mise à jour pratiquement chaque semaine).

## Exemples de code

Produire des documents avec ConTeXt est relativement simple si on comprend qu'il s'agit de faire précéder le texte d'un certain nombre de déclarations (toutes documentées dans des manuels livrés en ligne et incluses dans la distribution en format PDF). Ces déclarations autorisent aussi le réglage fin de la mise en forme à l'intérieur du fichier texte (italiques, gras, etc.). La compilation s'effectue en mode console grâce à la commande context NomDuFichier.tex. Le résultat de la procédure est un fichier PDF. ConTeXt peut également générer un fichier DVI, un fichier HTML ou un fichier XML.
Les documents ConTeXt sont édités avec l'extension .tex. Le code ci-dessous peut être copié dans un éditeur de texte, nommé context-test01 et ensuite compilé par la commande context context-test01.tex après avoir installé et configuré ConTeXt. À noter que tous les fichiers de travail doivent être installés dans un sous-répertoire du choix de l'utilisateur à l'intérieur du répertoire context. En effet, bien que ConteXt puisse être installé à peu près n'importe où sur l'ordinateur (dans Documents, Bureau, etc.), les répertoires qui contiennent les tests et travaux effectués avec ConTeXt doivent nécessairement être crées dans le répertoire où se trouve le logiciel.

### Texte très simple

Un premier fichier de test avec ConTeXt (nommé par exemple context-test01.tex) et enregistré dans un répertoire Travail, lui-même présent dans le répertoire context et saisi avec un éditeur de texte, etc. donne ceci :
La commande suivante (dans une console, dans le répertoire context) : context context-test01.tex compile le fichier en question et produit en sortie trois fichiers : un fichier *.tuc, un fichier *.log et un fichier *.pdf. ConTeXt indique dans le fichier *.log par ce fichier tout problème rencontré lors de la compilation : les erreurs de commande, les polices déclarées mais non trouvées, etc. Ici, cet exemple très simple donne ceci (la page est numérotée par défaut, de même que la taille de la police est paramétrée automatiquement par défaut) :

### Texte comportant des équations mathématiques

| % Cette ligne est un commentaire car elle est précédée par ce symbole : % % On peut spécifier les en-têtes comme les pieds de page, de même que les marges. % Le style de police est sans serif par convention, sauf s'il est déclaré différent % + bold + big font. \setuphead[title][style={\ss\bfd}, before={\begingroup}, after={John Doe, the author\smallskip% \currentdate\bigskip\endgroup}] % Après le préambule, tous les documents doivent être traités avec la déclaration \startext (ci-dessous) \starttext % Le style du titre a été déclaré dans le préambule comme en-tête; il ne reste plus qu'à le mettre à sa place \title{\CONTEXT} % Ici le corps du texte est contenu dans une section (on donne la traduction en français de l'image située à droite de l'écran) \section{Text} \CONTEXT\ est un système de préparation, de composition et d'édition de documents sous la forme de documents \TEX\. Il offre de nombreuses manières et des moyens étendus de composer automatiquement la mise en forme de textes complexes, incluant la prise en compte de bibliogtaphies complexes et les références croisées (par exemple pour l'équation \in[eqn:famous-emc]), les tableaux et les figures, la mise en page et les bibliographies. Ce système a été originairement écrit par Hans Hagen à partir de 1990. Il peut êre considéré comme une alternative ou un complément à \LATEX. \section{Maths} Avec \CONTEXT\ nous pouvons écrire des maths. Les équations peuvent être numérotées automatiquement. \placeformula[eqn:famous-emc] \startformula E = mc^2 \stopformula avec \placeformula[eqn:def-m] \startformula m = \frac{m_0}{\sqrt{1-\frac{v^2}{c^2}}} \stopformula % Tous les documents en ConTeXt doivent se terminer par une déclaration de fin de texte. Cette déclaration est donc \stoptext \stoptext | ConTeXt document |
La commande context exemple.tex permet d'obtenir un fichier prêt à être converti dans divers autres formats. Il est possible de créer directement un document au format *.pdf en tapant la commande context exemple.tex, comme il a été indiqué ci-dessus. Il est également possible de composer du code avec un éditeur de texte spécifique, comme TeXworks, TexStudio et autres.

#### Exemple de préambule complexe avant la commande \starttext
## ConTeXt et TeXworks

Pour composer des documents simples ou complexes (lettres, flyers, thèses, livres, etc.) avec ConTeXt, n'importe quel éditeur de texte simple peut être utilisé ; les traitements de texte de suite bureautique tels que LibreOffice Writer ou sont cependant moins adaptés. Il existe par ailleurs des outils plus spécifiquement adaptés au langage de ConTeXt (grâce à la coloration syntaxique, numérotation des lignes, etc.). Ainsi, TeXworks permet d'utiliser ConTeXt de manière très aisée et même de compiler directement les fichiers. Une page du Wikilivre sur ConTeXt traite de l'installation et de la configuration de TeXworks pour ConTeXt.

## ConTeXt Minimals

ConTeXt Minimals est une distribution TeX libre et multiplate-forme spécialisée pour l'emploi du format ConTeXt. En particulier, elle ne fournit ni LaTeX, ni les outils associés. Le but principal de ConTeXt Minimals est de fournir aux utilisateurs de ConTeXt une distribution dont le rythme de mise à jour corresponde au rythme de développement rapide de ConTeXt, sous une forme facile à installer et à mettre à jour.