« ConTeXt » : différence entre les versions

Un livre de Wikilivres.
Contenu supprimé Contenu ajouté
→‎Configuration des sections de la bibliographie : ajout d'une section sur le style (des têtes de chapitre)
Ligne 1 : Ligne 1 :
==Qu'est-ce que ConTeXt ?==
==Qu'est-ce que ConTeXt ?==
'''ConTeXt''' est une suite logicielle sophistiquée de préparation, de composition et d'impression de documents assisté par ordinateur semblable à {{LaTeX}}. De même que {{LaTeX}}, ConTeXt utilise un langage de programmation [[w:TeX|plain TeX]] rassemblant les routines (macros) de composition issues de [[w:TeX|plain TeX]], en vue de générer des documents propres à l'impression papier ou sous forme électronique (articles, lettres, affiches, livres, etc.). En effet, ConTeXt a la capacité de sortir des flux d'affichage en PDF, HTML et XML. La différence entre {{LaTeX}} et ConTeXt vient du fait que [[w:ConTeXt|ConTeXt]] a développé des routines (au moyen de macros et de scripts) en vue de définir la structure du document et pour régler le plus finement possible la mise en page et la typographie, dans des conditions d'impression professionnelles et pas seulement pour les besoins de la communauté scientifique. Mieux encore, [[w:ConTeXt|ConTeXt]] reprend les macros de {{LaTeX}} pour les intégrer dans un système cohérent, au moyen de [[w:LuaTeX]]. Vous trouverez une discussion sur les avantages et les inconvénients comparés des deux systèmes [http://wiki.contextgarden.net/FAQ#What_are_the_differences_between_ConTeXt_and_LaTeX.3F sur la FAQ de ConTeXt Garden].
'''ConTeXt''' est une suite logicielle sophistiquée de préparation, de composition et d'impression de documents assisté par ordinateur semblable à {{LaTeX}}. De même que {{LaTeX}}, ConTeXt utilise un langage de programmation [[w:TeX|plain TeX]] rassemblant les routines (macros) de composition issues de [[w:TeX|plain TeX]], en vue de générer des documents propres à l'impression papier ou sous forme électronique (articles, lettres, affiches, livres, etc.). En effet, ConTeXt a la capacité de sortir des flux d'affichage en PDF, HTML et XML. La différence entre {{LaTeX}} et ConTeXt vient du fait que [[w:ConTeXt|ConTeXt]] a développé des routines (au moyen de macros et de scripts) en vue de définir la structure du document et pour régler le plus finement possible la mise en page et la typographie, dans des conditions d'impression professionnelles et pas uniquement pour les besoins de la seule communauté scientifique (mathématiciens barbus et physiciens chevelus) : les personnes qui s'intéressent à la mise en page de textes complexes, à la poésie, aux traductions juxtalinéaires, etc. trouveront dans [[w:ConTeXt|ConTeXt]] un ensemble d'outils adaptés à leurs projets. Comme [[w:ConTeXt|ConTeXt]] reprend les macros de {{LaTeX}} pour les intégrer dans un système cohérent, au moyen de [[w:LuaTeX]], les outils sont très puissants. Vous trouverez une discussion sur les avantages et les inconvénients comparés des deux systèmes [http://wiki.contextgarden.net/FAQ#What_are_the_differences_between_ConTeXt_and_LaTeX.3F sur la FAQ de ConTeXt Garden].


ConTeXt peut produire des documents avec pdfTeX, [[w:XeTeX|XeTeX]] ou [[w:LuaTeX|LuaTeX]].
ConTeXt peut produire des documents avec pdfTeX, [[w:XeTeX|XeTeX]] ou [[w:LuaTeX|LuaTeX]].
Ligne 11 : Ligne 11 :
La documentation disponible sur ConTeXt est très fournie à la fois au sein du ''bundle'' contenu dans ''ConTeXt Minimals'' et sur Internet, d'autant que cet ensemble d'outils de composition est développé depuis 1990. On la trouve principalement en anglais sur le site officiel de ConTeXt, sous la forme du Wiki "ConTeXt Garden" et au moyen des liens multiples à partir de ConTeXt Garden qui conduisent à des manuels en PDF. Mais, d'une part toute la documentation n'est pas nécessairement mise à jour, en ce sens où certaines informations sont valables pour la version MK II, tandis que d'autres ne sont valides que pour la version MK IV. D'autre part, les informations sont souvent redondantes, mais ne répondent pas toujours aux difficultés et aux problèmes rencontrés au fur et à mesure de la démarche de composition et il faut chercher à des endroits différents pour cerner le type de difficulté en cause et trouver la réponse appropriée. Enfin, les pages des manuels existants sont principalement en anglais, en néerlandais, en allemand et en tchèque. Les quelques rares et précieuses documentations en français sont le fait de Bertrand Lemasson qui a synthétisé les grandes lignes de la documentation sur la mise en page avec ConTeXt sur son site les "[http://lesfichesabebert.fr/index.php/FichesBebert/Context Fiches à Bébert]" et sur la typographie sur une autre série de pages [http://typo.lesfichesabebert.fr/ La Typographie avec ConTeXt]. Si la plupart des lecteurs d'aujourd'hui intéressés par la composition typographique par ordinateur lisent l'anglais, il ne semble pas complètement hors de propos de proposer un manuel de documentation en français, où peuvent se rencontrer des problématiques qui concernent directement la confection des documents en français (comme la question de la [https://fr.wikipedia.org/wiki/C%C3%A9sure_%28typographie%29 césure], des [https://fr.wikipedia.org/wiki/Ligature_%28%C3%A9criture%29 ligatures], des [http://j.poitou.free.fr/pro/html/ltn/diacritiques.html signes diacritiques], de l'[https://fr.wikipedia.org/wiki/Indentation indentation] des paragraphes et, plus généralement, des normes en usage dans l'édition française). On remarquera au passage que la question des normes explicites en typographie française se heurte à une réalité fondamentale que les utilisateurs de {{LaTeX}} connaissent bien : {{LaTeX}} vient du monde anglo-saxon et il a fallu créer les paquets "[http://perso.mines-albi.fr/~gaborit/latex/latex-in-french.html babel]" pour répondre efficacement aux problèmes rencontrés par la mise en œuvre des normes typographiques françaises. Dans le fil de ce qui vient d'être dit, les langues européennes non anglo-saxonnes ont des exigences de mise en page et de typographie dont il faut tenir compte. C'est la raison pour laquelle un certain nombre de procédures et de scripts ont été proposés pour adapter les suites dérivées de [https://fr.wikipedia.org/wiki/TeX TeX] à ces langues; voyez en particulier les [http://lesfichesabebert.fr/index.php/Koma/Koma-Script KOMA-Script] de Markus Kohn et Jens-Uwe Morawski et les raisons d'utiliser ces scripts dans [https://fr.wikipedia.org/wiki/LaTeX {{LaTeX}}].
La documentation disponible sur ConTeXt est très fournie à la fois au sein du ''bundle'' contenu dans ''ConTeXt Minimals'' et sur Internet, d'autant que cet ensemble d'outils de composition est développé depuis 1990. On la trouve principalement en anglais sur le site officiel de ConTeXt, sous la forme du Wiki "ConTeXt Garden" et au moyen des liens multiples à partir de ConTeXt Garden qui conduisent à des manuels en PDF. Mais, d'une part toute la documentation n'est pas nécessairement mise à jour, en ce sens où certaines informations sont valables pour la version MK II, tandis que d'autres ne sont valides que pour la version MK IV. D'autre part, les informations sont souvent redondantes, mais ne répondent pas toujours aux difficultés et aux problèmes rencontrés au fur et à mesure de la démarche de composition et il faut chercher à des endroits différents pour cerner le type de difficulté en cause et trouver la réponse appropriée. Enfin, les pages des manuels existants sont principalement en anglais, en néerlandais, en allemand et en tchèque. Les quelques rares et précieuses documentations en français sont le fait de Bertrand Lemasson qui a synthétisé les grandes lignes de la documentation sur la mise en page avec ConTeXt sur son site les "[http://lesfichesabebert.fr/index.php/FichesBebert/Context Fiches à Bébert]" et sur la typographie sur une autre série de pages [http://typo.lesfichesabebert.fr/ La Typographie avec ConTeXt]. Si la plupart des lecteurs d'aujourd'hui intéressés par la composition typographique par ordinateur lisent l'anglais, il ne semble pas complètement hors de propos de proposer un manuel de documentation en français, où peuvent se rencontrer des problématiques qui concernent directement la confection des documents en français (comme la question de la [https://fr.wikipedia.org/wiki/C%C3%A9sure_%28typographie%29 césure], des [https://fr.wikipedia.org/wiki/Ligature_%28%C3%A9criture%29 ligatures], des [http://j.poitou.free.fr/pro/html/ltn/diacritiques.html signes diacritiques], de l'[https://fr.wikipedia.org/wiki/Indentation indentation] des paragraphes et, plus généralement, des normes en usage dans l'édition française). On remarquera au passage que la question des normes explicites en typographie française se heurte à une réalité fondamentale que les utilisateurs de {{LaTeX}} connaissent bien : {{LaTeX}} vient du monde anglo-saxon et il a fallu créer les paquets "[http://perso.mines-albi.fr/~gaborit/latex/latex-in-french.html babel]" pour répondre efficacement aux problèmes rencontrés par la mise en œuvre des normes typographiques françaises. Dans le fil de ce qui vient d'être dit, les langues européennes non anglo-saxonnes ont des exigences de mise en page et de typographie dont il faut tenir compte. C'est la raison pour laquelle un certain nombre de procédures et de scripts ont été proposés pour adapter les suites dérivées de [https://fr.wikipedia.org/wiki/TeX TeX] à ces langues; voyez en particulier les [http://lesfichesabebert.fr/index.php/Koma/Koma-Script KOMA-Script] de Markus Kohn et Jens-Uwe Morawski et les raisons d'utiliser ces scripts dans [https://fr.wikipedia.org/wiki/LaTeX {{LaTeX}}].


Nous proposons donc un manuel sur ConTeXt en Wikilivre. Ce livre est fondé en grande partie sur des traductions de la documentation existante, avec une structure en chapitres, allant du chapitre de présentation et d'installation de ConTeXt à des chapitres où sont abordées des choses plus complexes. Nous cherchons ici à rassembler la documentation, à tester les fonctionnalités éprouvées, dans une démarche qui se veut pas à pas. Nous laissons la question de l'édition des mathématiques et de la physique de côté, pour nous concentrer sur les problèmes rencontrés dans la composition et la publication d’ouvrages des ''humanités'' (littérature, histoire, philosophie, droit, philologie, édition de manuscrits anciens, etc.). Nous irons donc ainsi du plus général et du plus simple au plus spécialisé et au plus complexe.
Nous proposons donc un manuel sur ConTeXt en Wikilivre. Ce livre est fondé en grande partie sur des traductions de la documentation existante, avec une structure en chapitres, allant du chapitre de présentation et d'installation de ConTeXt à des chapitres où sont abordées des choses plus complexes. Comme il a été dit ci-dessus, nous cherchons ici à rassembler la documentation, à tester les fonctionnalités éprouvées, dans une démarche qui se veut pas à pas, en allant du plus simple au plus compliqué. Nous laissons les questions relatives à la mise en page et à l'édition des mathématiques et de la physique de côté, pour nous concentrer sur les problèmes rencontrés dans la composition et la publication d’ouvrages scientifiques de ce qu'on appelle pompeusement (mais non sans raison) les ''humanités'' (littérature, histoire, philosophie, droit, philologie, édition de manuscrits anciens, etc.). La démarche suivie, répétons-le consiste à aller du plus général et du plus simple au plus spécialisé et au plus complexe. Le lecteur sera bien inspiré de pratiqué les exercices proposés pour vérifier par lui-même la validité des codes qui lui sont proposés.


===Licence===
===Licence===
Ligne 37 : Ligne 37 :
* Le site (en anglais) Stack Exchange possède de nombreuses questions et réponses qui traitent de [http://tex.stackexchange.com/questions/4987/why-should-i-be-interested-in-context cas pratiques posés par ConTeXt].
* Le site (en anglais) Stack Exchange possède de nombreuses questions et réponses qui traitent de [http://tex.stackexchange.com/questions/4987/why-should-i-be-interested-in-context cas pratiques posés par ConTeXt].
* Le présent manuel sur Wikilivre a pour but de mettre à la disposition du public francophone un ensemble le plus exhaustif possible de chapitres, issus de traductions et de tests de cas concrets.
* Le présent manuel sur Wikilivre a pour but de mettre à la disposition du public francophone un ensemble le plus exhaustif possible de chapitres, issus de traductions et de tests de cas concrets.


===Remerciements===

Il me faut remercier d'abord Hans Hagen, qui propose toujours la solution idoine aux multiples problèmes qui lui sont soumis, avec une efficacité, une rigueur et une concision redoutables. Bien sûr les participants à la liste de discussion exposent des problèmes et proposent des solutions. Parmi eux, Pablo Rodriguez, qui m'a véritablement initié à ConTeXt et donne toujours des conseils judicieux. Le fait qu'il soit helléniste et plus généralement intéressé par les questions linguistiques, en fait un guide précieux. Je n'oublie pas non plus Wolfgang Schuster et tout le groupe actif autour de ConTeXt.


==Installation==
==Installation==

Version du 4 août 2017 à 18:34

Qu'est-ce que ConTeXt ?

ConTeXt est une suite logicielle sophistiquée de préparation, de composition et d'impression de documents assisté par ordinateur semblable à LATEX. De même que LATEX, ConTeXt utilise un langage de programmation plain TeX rassemblant les routines (macros) de composition issues de plain TeX, en vue de générer des documents propres à l'impression papier ou sous forme électronique (articles, lettres, affiches, livres, etc.). En effet, ConTeXt a la capacité de sortir des flux d'affichage en PDF, HTML et XML. La différence entre LATEX et ConTeXt vient du fait que ConTeXt a développé des routines (au moyen de macros et de scripts) en vue de définir la structure du document et pour régler le plus finement possible la mise en page et la typographie, dans des conditions d'impression professionnelles et pas uniquement pour les besoins de la seule communauté scientifique (mathématiciens barbus et physiciens chevelus) : les personnes qui s'intéressent à la mise en page de textes complexes, à la poésie, aux traductions juxtalinéaires, etc. trouveront dans ConTeXt un ensemble d'outils adaptés à leurs projets. Comme ConTeXt reprend les macros de LATEX pour les intégrer dans un système cohérent, au moyen de w:LuaTeX, les outils sont très puissants. Vous trouverez une discussion sur les avantages et les inconvénients comparés des deux systèmes sur la FAQ de ConTeXt Garden.

ConTeXt peut produire des documents avec pdfTeX, XeTeX ou LuaTeX. La dernière version — ConTeXt MK IV (ConTeXt Mark IV) — a résolu beaucoup de restrictions qui entachaient la version précédente, ConTeXt MK II. Elle supporte Unicode (UTF-8) par défaut et contient un certain nombre de caractéristiques récentes, comme la possibilité d'écrire du code en Lua dans le document, ce qui autorise la maîtrise d'impressions complexes et spécialisées à un niveau de détail très précis. Ce Manuel porte uniquement sur ConTeXt MK IV (et non sur la version précédente, MK II) et ne se substitue pas à la documentation existante.

ConTeXt est développé depuis 1990 par Hans Hagen, fondateur de la société PRAGMA Advanced Document Engineering (Pragma ADE), une société située aux Pays-Bas, avec la collaboration de Aditya Mahajan, Taco Hoekwater, Berend de Boer, Gilbert van den Dobbelsteen, Mojca Miklavec, Wolfgang Schuster et alii.

Pourquoi un Wikilivre sur ConTeXt ?

La documentation disponible sur ConTeXt est très fournie à la fois au sein du bundle contenu dans ConTeXt Minimals et sur Internet, d'autant que cet ensemble d'outils de composition est développé depuis 1990. On la trouve principalement en anglais sur le site officiel de ConTeXt, sous la forme du Wiki "ConTeXt Garden" et au moyen des liens multiples à partir de ConTeXt Garden qui conduisent à des manuels en PDF. Mais, d'une part toute la documentation n'est pas nécessairement mise à jour, en ce sens où certaines informations sont valables pour la version MK II, tandis que d'autres ne sont valides que pour la version MK IV. D'autre part, les informations sont souvent redondantes, mais ne répondent pas toujours aux difficultés et aux problèmes rencontrés au fur et à mesure de la démarche de composition et il faut chercher à des endroits différents pour cerner le type de difficulté en cause et trouver la réponse appropriée. Enfin, les pages des manuels existants sont principalement en anglais, en néerlandais, en allemand et en tchèque. Les quelques rares et précieuses documentations en français sont le fait de Bertrand Lemasson qui a synthétisé les grandes lignes de la documentation sur la mise en page avec ConTeXt sur son site les "Fiches à Bébert" et sur la typographie sur une autre série de pages La Typographie avec ConTeXt. Si la plupart des lecteurs d'aujourd'hui intéressés par la composition typographique par ordinateur lisent l'anglais, il ne semble pas complètement hors de propos de proposer un manuel de documentation en français, où peuvent se rencontrer des problématiques qui concernent directement la confection des documents en français (comme la question de la césure, des ligatures, des signes diacritiques, de l'indentation des paragraphes et, plus généralement, des normes en usage dans l'édition française). On remarquera au passage que la question des normes explicites en typographie française se heurte à une réalité fondamentale que les utilisateurs de LATEX connaissent bien : LATEX vient du monde anglo-saxon et il a fallu créer les paquets "babel" pour répondre efficacement aux problèmes rencontrés par la mise en œuvre des normes typographiques françaises. Dans le fil de ce qui vient d'être dit, les langues européennes non anglo-saxonnes ont des exigences de mise en page et de typographie dont il faut tenir compte. C'est la raison pour laquelle un certain nombre de procédures et de scripts ont été proposés pour adapter les suites dérivées de TeX à ces langues; voyez en particulier les KOMA-Script de Markus Kohn et Jens-Uwe Morawski et les raisons d'utiliser ces scripts dans LATEX.

Nous proposons donc un manuel sur ConTeXt en Wikilivre. Ce livre est fondé en grande partie sur des traductions de la documentation existante, avec une structure en chapitres, allant du chapitre de présentation et d'installation de ConTeXt à des chapitres où sont abordées des choses plus complexes. Comme il a été dit ci-dessus, nous cherchons ici à rassembler la documentation, à tester les fonctionnalités éprouvées, dans une démarche qui se veut pas à pas, en allant du plus simple au plus compliqué. Nous laissons les questions relatives à la mise en page et à l'édition des mathématiques et de la physique de côté, pour nous concentrer sur les problèmes rencontrés dans la composition et la publication d’ouvrages scientifiques de ce qu'on appelle pompeusement (mais non sans raison) les humanités (littérature, histoire, philosophie, droit, philologie, édition de manuscrits anciens, etc.). La démarche suivie, répétons-le consiste à aller du plus général et du plus simple au plus spécialisé et au plus complexe. Le lecteur sera bien inspiré de pratiqué les exercices proposés pour vérifier par lui-même la validité des codes qui lui sont proposés.

Licence

ConTeXt est un logiciel libre. L'ensemble du code (i.e. sauf ce qui se trouve dans le répertoire /doc) est distribué sous licence GNU GPL; la documentation est fournie sous licence Creative Commons Attribution NonCommercial ShareAlike.

Documentation ConTeXt

La documentation sur ConTeXt se trouve diffusée à la fois sur un Wiki assuré par la société PRAGMA (et ses collaborateurs), dénommé "ConTeXt Garden", mais aussi sous la forme de tutoriels ou de documentation en PDF, notamment dans le répertoire d'installation de ConTeXt et par quelques pages disséminées sur Internet.

  • Documentation disponible dans le répertoire d'installation
  1. Des manuels généraux au format PDF (on en compte 18) sont accessibles dans le répertoire : C:\[...]\context\tex\texmf-context\doc\context\documents\general\manuals;
  2. La documentation sur les scripts est accessible dans le répertoire : C:\[...]context\tex\texmf-context\doc\context\scripts;
  3. La documentation au format *.tex (fichiers source) est accessible dans le répertoire : C:\[...]\context\tex\texmf-context\doc\context\sources\general\manuals;
  4. De manière générale, il est possible d'accéder à la documentation interne de ConTeXt au format PDF par les commandes en mode 'terminal' (qui produisent le PDF souhaité dans le répertoire en compilant des fichiers *.xml), au moyen de la commande context --extra=setups --overview TitreduDoc.xml; exemple :

context --extra=setups --overview i-context.xml (le fichier PDF se trouvera avec le fichier *.xml ici : {...]\context\tex\texmf-context\tex\context\interface\mkiv; à noter que la sortie en PDF des fichiers *.xml prend un peu de temps ...Sur notre système (ici sous Windows 10 avec Intel Core i3-2,50Ghz/4Go RAM), voici ce que disent les statistiques : mkiv lua stats > runtime: 36.002 seconds, 358 processed pages, 358 shipped pages, 9.944 pages/second.


Remerciements

Il me faut remercier d'abord Hans Hagen, qui propose toujours la solution idoine aux multiples problèmes qui lui sont soumis, avec une efficacité, une rigueur et une concision redoutables. Bien sûr les participants à la liste de discussion exposent des problèmes et proposent des solutions. Parmi eux, Pablo Rodriguez, qui m'a véritablement initié à ConTeXt et donne toujours des conseils judicieux. Le fait qu'il soit helléniste et plus généralement intéressé par les questions linguistiques, en fait un guide précieux. Je n'oublie pas non plus Wolfgang Schuster et tout le groupe actif autour de ConTeXt.

Installation

La suite ConTeXt est une distribution complète, mise à jour régulièrement et qui peut être améliorée très efficacement. Elle peut être utilisée seule ou bien en parallèle avec des installations telles que MikTeX pour Microsoft Windows, ou TeXLive pour les autres OS, comme ceux issus du monde Linux et BSD et ainsi de suite. Cette suite n'inclut pas les paquets LATEX, ni les binaires, les add-on et autres paquets spécifiques. Elle est donc autonome vis-à-vis de LATEX.

Parfois, les versions bêta de ConTeXt (éditée tous les 8 à 10 jours) peuvent produire des bugs. La suite ConTeXt vous permet de tester les dernières versions de ConTeXt sans se soucier de savoir si la mise à jour va corrompre un projet en production. De multiples installations de la suite ConTeXt sont possibles côte à côte dans des répertoires différents. Cela permet, par exemple, de disposer en parallèle d'une version figée et d'une version bêta sur le même ordinateur. Vous pouvez choisir, par exemple, de travailler en production avec une version de ConTeXt directement dans le répertoire c:\context, tout en testant du code avec une version mise à jour régulièrement dans le répertoire c:\windows/utilisateurs/Dupont/context. Même chose sous Linux et Mac OSX.

ConTeXt est inclus aussi dans la distribution TeXLive. Si la suite ConTeXt est bien mise à jour en permanence, la version de ConTeXt contenue dans TeXlive ne l'est qu'une fois par an. En particulier, LuaTeX et Metapost, qui font l'objet d'un développement très actif et leurs paquets binaires sont mis à jour fréquemment; l'équipe de ConTeXt suit ces développements et même initie très souvent ces les nouveautés. Comme les fichiers binaires inclus dans la distribution TeXLive sont seulement mis à jour annuellement, ConTeXt avec TeXlive sera nécessairement un peu daté par rapport à la suite ConTeXt. ConTeXt avec TeXlive peut être un peu mieux à jour en utilisant cette source. La suite ConTeXt est donc auto-suffisante et peut heureusement cohabiter avec une autre installation d'une distribution TeX.

Notez donc que l'installation peut se faire dans un répertoire différent pour chaque projet d'édition et de composition, ce qui permet d'affiner et de régler les commandes en fonction du projet envisagé. ConTeXt ne touche à rien indépendamment de son répertoire : on peut donc le désinstaller avec simplicité et facilité en supprimant son répertoire d'installation (et le réinstaller par la suite). Une précaution doit être prise : les fichiers d'édition au format *.tex, *.log, *.tuc et de sortie *.pdf doivent être situés dans un répertoire à l'intérieur du répertoire context. Si vous effacez le répertoire de la distribution, songez à sauvegarder avant vos fichiers de travail.

Configuration requise

  • 10 Mb d'espace libre sont requis.
  • Pour la version MK II, il faut installer Ruby et Ghostscript (sous Microsoft Windows).
  • À noter que l'on peut avoir besoin d'installer Perl et Python, y compris pour la version MKIV, mais uniquement pour les travaux les plus sophistiqués (et pour des raisons de mise en œuvre de processus et de méthodes professionnels). Il faut néanmoins garder à l'esprit que Perl est déjà intégré dans la version MK IV. Pour les utilisateurs de Linux, ces logiciels sont installés automatiquement avec la distribution présente sur leur machine Debian, Red Hat et dérivés.

Plateformes supportées

  • Microsoft Windows (x32, x64)
  • Linux (x32, x64)
  • Linux Power PC
  • Linux ARM
  • Mac OS X (Intel x32, x64), Mac OS X Power PC
  • FreeBSD
  • Solaris (Intel, Sparc)

Installation de ConTeXt sur Linux, Mac OS X et Windows : généralités

  • Même si l'installation de ConTeXt n'est pas d'une difficulté technique telle qu'elle puisse apparaître à beaucoup comme rebutante, il n'en reste pas moins vrai que des procédures précises sont à respecter. Une installation propre est une installation fonctionnelle, sur laquelle il n'y a plus à revenir, sinon pour mettre à jour le logiciel. Au risque de nombreuses répétitions, on a choisi ici de détailler pour le débutant les procédures d'installation système par système (Linux, Mac OS X, Windows), alors que ces procédures sont presque identiques. Il existe quelques subtilités à connaître et on se rend compte assez vite que certaines légères différences dans les procédures d'installation peuvent s'avérer gênantes pour l'utilisateur débutant.
  • Le dépôt d'où vous pouvez télécharger ConTeXt Standalone pour le système sur lequel vous souhaitez installer ConTeXt (Linux, Mac OS X, FreeBSD, Windows, etc.) se trouve ici : http://standalone.contextgarden.net/setup/.
  • Le minimum requis pour une installation avec Linux est une connaissance de base des commandes au clavier dans un terminal sous Linux (Ubuntu, Fedora, etc.). Avant de vous lancer dans l'installation de ConTeXt, il est bon de se familiariser avec les quelques commandes nécessaire et les principes de base de Linux (notamment le système de répertoire et la maîtrise des fichiers de configuration). Pour travailler avec ConTeXt sous Linux, les puristes coderont avec emacs, vim, voire gedit ou geany. Les autres utiliseront TEXWorks pour Linux, ou TEXShop pour Mac OS X (en attendant un portage satisfaisant de TEXWorks sur Mac OS X). Pour la configuration de TEXWorks, voir ci-dessous le paragraphe qui lui est consacré.
  • Il faut remarquer, avant tout usage de ConTeXt (quel que soit le système que vous utilisez : Linux, Mac OS X ou Microsoft Windows), qu'il est nécessaire de bien répertorier les différentes polices présentes sur le système et de se familiariser avec leurs possibilités. La raison en est que toutes les polices ne permettent peut-être pas l'usage que vous leur destinez (ligatures, etc.). Pour le détail concernant l'usage des polices calligraphiques, se reporter au paragraphe 3.8.1 ci-dessous.
  • L'installation de ConTeXt sous Linux peut se faire en utilisant le répertoire /opt/context, ou /usr/share/context ou /home/Utilisateur/context);
  • Sur Mac OS X vous pouvez utiliser /Documents/context;
  • Sous Microsoft Windows, vous pouvez installer ConTeXt dans c:\[...]MonRépertoireUtilisateur\Documents\context\ ou bien directement à la racine utilisateur (C:\Utilisateurs\Dupont\context.
  • Notez que si vous utilisez la version la plus aboutie (la version dénommée MK IV), il est nécessaire d'avoir la permission en écriture pour le répertoire $TEXMFCACHE. Cela signifie effectivement que seulement un seul utilisateur sera en mesure de produire des compilations, à moins que vous ne configuriez les droits adéquats pour le groupe d'utilisateurs choisis (dans le cadre d'un travail en réseau, ou de plusieurs utilisateurs sur une même machine).
  • Il existe ainsi deux possibilités pour travailler avec ConTeXt :
  1. Utiliser une version figée annuelle. Cette version est disponible sur Ubuntu, via l'application Synaptic (ou TeXLive), ou en appelant la commande en mode console sudo apt-get install context;.
  2. Utiliser une version bêta (en cours de développement, mais néanmoins stable à l'usage), à télécharger selon les modalités décrites ci-dessous. Il est conseillé d'utiliser la version "Standalone" (version bêta), car les bugs ou les difficultés rencontrées peuvent être traités dans cette version qui change toutes les semaines. Il est conseillé de s'inscrire sur la liste de discussion afin de bénéficier de l'aide des utilisateurs plus expérimentés. Attention ! Il vous sera demandé de poster un exemple minimal reproductible, afin de vérifier par des tests que votre code produit bien les erreurs que vous signalez.
Installation de ConTeXt sur Linux
Démarche à suivre pour installer ConTeXt Standalone par téléchargement
  • En tant que simple utilisateur (et non administrateur) créez un répertoire pour ConTeXt (comme on l'a vu ci-dessus), par exemple /home/utilisateur/context et placez-vous dans ce répertoire. Voici le rappel des commandes :

A) création de répertoire : mkdir context;

B) Se rendre dans le répertoire : cd context

  • Ensuite, sous Linux on télécharge l'installateur ConTeXt Minimals en ouvrant un terminal (une console) et en tapant au clavier :

wget http://minimals.contextgarden.net/setup/first-setup.sh

Attention ! Cette commande pointe vers un lien qui télécharge la version du 19.10.2016 !

  • Pour être sûr(e) de télécharger la dernière version de ConTeXt, il est préférable de passer dans un terminale la commande suivante :
  1. rsync -av rsync://contextgarden.net/minimals/setup/first-setup.sh . (attention au point après first-setup.sh ! C'est ce qui permet de rendre exécutable le fichier !);
  • En haut de la page ConTeXt Garden où se trouvent toutes les version du fichier first-setup, vous trouverez indiquée les commandes qui permettent aux utilisateurs de Linus, MacOS X, FreeBSD, etc. de créer un dossier pour context, de vous rendre dans ce dossier et d'y télécharger le fichier. Voici ces commandes :

1. mkdir context && cd context

2. rsync -ptv rsync://contextgarden.net/standalone/setup/first-setup.sh .

3. ./first-setup.sh

  • Si vous avez oublié de rendre exécutable le fichier téléchargé, il n'est pas trop tard ! Le fichier peut être rendu exécutable par la commande suivante :

chmod +x first-setup.sh.

  • On exécute donc ce fichier téléchargé, en tapant la commande :

sh ./first-setup.sh

  • ce qui a comme conséquence de télécharger la dernière version de ConTeXt MK IV, et de développer à l'intérieur du dossier 'context' un certain nombre de répertoires.
  • À la fin de cette séquence, la console vous renvoie un message du type : When you want to use context, you need to initialize the tree by typing:

. /home/dupond/context/tex/setuptex.

On se rend donc dans le répertoire indiqué pour passer la commande :

. setuptex (Attention ! Il y a bien un point suivi d'une espace avant setuptex !) .

  • Une fois la commande : . setuptex passée, on se rend enfin dans le répertoire /context/tex/texmf-linux-64/bin (sur machine à processeur x64) pour entrer successivement les commandes :

1) context --generate

2) context --make.

Ces deux commandes ont pour effet de développer toutes arborescences dont ConTeXt a besoin et de compiler un certain nombre de scripts. Vous pouvez regarder et suivre ces compilations, ou aller boire un café. L'opération prend deux à 3 minutes.

  • Si vous souhaitez mettre à jour la version téléchargée et bénéficier de toutes les polices, de tous les modules et des goodies, il faudra lancer la commande :

sh first-setup.sh --context=beta --fonts=all --modules=all --goodies=all

  • On va maintenant indiquer à ConTeXt où se trouvent les polices disponibles sur le système et celles que l'on peut conserver dans la partition utilisateur (en principe /home/utilisateur/.fonts); on tapera la commande suivante :

export OSFONTDIR=~/.fonts:/usr/share/fonts:/usr/share/texmf/fonts/opentype/. (Remarquez ici que les polices se trouvent dans 3 répertoires différents).

  • On termine en indiquant au système où se trouve le fichier exécutable context (on configure le PATH), ce qui se fait par la commande export PATH=/home/utilisateur/context/tex/texmf-linux64/bin.
  • La dernière chose à faire enfin est de recharger la base de donnée des polices. On se rend dans le répertoire de la commande mtxrun (où se trouve aussi l'exécutable context :

cd /context/tex/texmf-linux64/bin

et on tape la commande : mtxrun --script fonts --reload.

Si cette dernière ne donne rien, on saisira la commande suivante :

luatools --generate, qui a pour but de scanner tous les répertoires où se trouvent les polices.

  • On liste ensuite toutes les polices trouvées sur le système, par la commande :

mtxrun --script fonts --list --all --pattern=*;

  • Et on recharge le cache :

context --reload.

  • Vous pouvez utiliser maintenant les commandes associées à mtxrun et configurer TEXWorks.

ATTENTION ! Il se peut que le système vous indique que ConTeXt n'est pas installé et vous propose de le faire. Cela tient au fait que vous n'avez pas suivi correctement la procédure de lancement de ConteXt, cest-à-dire de lancer . setuptex. À chaque fois que vous voudrez utiliser ConTeXt, vous aurez besoin d'abord de signaler à "bash" où le trouver. Cela est possible en lançant :

  • source /home/user/context/tex/setuptex si vous utilisez bash
  • source /installation-dir/tex/setuptex.csh si vous utilisez (t)csh

Vous pouvez coller cette ligne par exemple dans ~/.bashrc.

Installation de ConTeXt Standalone sur Mac OS X
  • Installation de ConTeXt Standalone sur Mac OS X (sans MacTeX) avec wget :

Quoique les commandes d'installation soient très similaires aux commandes Linux, il apparaît que Mac OS X oblige l'utilisateur à passer par des procédures d'identification et par l'App Store pour acquérir des outils comme Xconfig ou wget, ou oblige l'utilisateur à passer par des procédures complexes pour compiler et installer des outils comme wget et pkg-config nécessaire à l'installation de wget. Dans l'ordre, on vérifiera, si on choisit la procédure l'installation par téléchargement via wget la présence de gcc sur le système (par la commande, dans un terminal de gcc --version. Si gcc n'est pas présent, on l'installera grâce à la commande simple gcc ! Puis on téléchargera pkg-config et ensuite on pourra télécharger et installer wget. Il faudra compiler pkg-config par les commandes ./configure && make install, puis ./configure --with-internal-glib && make install en cas de présence d'une version ancienne de la librairie glib. Ensuite, après téléchargement de wget, on le compilera et l'installera de la même manière. Il faut veiller après le téléchargement de ces paquets, à les décompresser (par la commande tar -xzf wget-1.17.tar.gz) et à se rendre ensuite dans le dossier du paquet en question afin de le compiler (par la commande ./configure && make install).

  • La manière la plus facile d'installer ConTeXt Standalone (qui évite des compilations fastidieuses pour le débutant non motivé) consiste à passer par la commande suivante :
  1. rsync -av rsync://contextgarden.net/minimals/setup/first-setup.sh . (attention au point après first-setup.sh);
  2. Rendre le script exécutable : # chmod +x first-setup.sh (si on a oublié le point ci-dessus);
  3. Puis,on lance le téléchargement de tous les paquets nécessaires : sh first-setup.sh;
  4. On configure TEXROOT par :. /Users/MonRepertoire/context/tex/setuptex (en n'oubliant pas le point séparé d'un espace au début de la commande), ou bien

en mode 'Terminal' se rendre dans le répertoire /MonRépertoire/context/tex/, puis taper la commande : . setuptex. On doit avoir comme retour la formule suivante : Setting "/Users/adeimantos/Documents/context/tex" as ConTeXt root;

  1. On règle PATH par la commande PATH=$PATH:/Users/adeimantos/Documents/context/tex/texmf-osx-64/bin (Prenez garde ici de bien éditer le chemin qui conduit vers /tex/texmf-osx-64/bin);
  2. Ensuite : context --generate
  3. Puis : context --make
  4. Enfin, on recharge les polices et on les listes, avec la commandemtxrun: mtxrun --script fonts --reload.
  5. Puis, si on veut installer toutes les polices et les modules, on passera la commande :

sh ./first-setup.sh --modules=all --fonts=all --goodies=all --engine=luatex (la spécification --engine=luatex permet d'installer la version Mark IV);

  • Enfin, lorsqu'on désire mettre à jour tous les paquets (toutes les semaines ?), il suffira d'entrer à nouveau la commande sh ./first-setup.sh.
  • L'installation est terminée.
  • Remarques :
  • Quelques systèmes tels Mac OS/X et BSD proposent l'usage de curl au lieu de wget. Dans ce cas, afin de vous procurer quelques polices pour TeX, veuillez saisir au clavier les commandes suivantes :

curl --remote-name https://tug.org/fonts/getnonfreefonts/install-getnonfreefonts, puis : texlua install-getnonfreefonts

  • Concernant l'installation et l'usage du scriptgetnonfreefonts, on se référera à la page Web de Getnonfreefonts.
Installation de ConTeXt sur Microsoft Windows
  • Afin de télécharger le fichier binaire qui permet d'installer les composants de la suite ConTeXt, allez au paragraphe suivant (ConTeXt Standalone avec TeXWorks). L'installation décrite ci-dessous est fonctionnelle sous Windows 7 et Windows 10 à la date de février 2016. Il y a deux manières d'utiliser ConTeXt, comme nous l'avons déjà dit ci-dessus :
  1. Avec une distribution LATEX comme MikTeX qui permet d'installer et de travailler avec des outils procurés par cette distribution.
  2. On peut aussi choisir de n'installer que ConTeXT seul (Standalone, donc sans LATEX) et de travailler avec TEXWorks, qu'on installera donc à part (puisque TeXWorks n'est pas fourni par la suite ConTeXt). TEXWorks permet de coder les instructions et de produire une sortie au format PDF à la volée. L'avantage de TEXWorks est d'offrir à gauche de l'écran la fenêtre de saisie des instructions, tandis qu'à droite de l'écran apparaît le résultat du traitement des instructions au format PDF). Cependant, l’utilisation de TeXWorks nécessite un réglage précis qu'il faut établir de manière rigoureuse.
  3. Pour télécharger ConTeXt Standalone, il suffit d'aller sur la page de téléchargement de ConTeXt pour obtenir le fichier au format context-setup-win32, ou bien au format context-setup-win64 et de le décompresser (à la racine de c:\, ou bien dans un répertoire comme c:\windows\users\MonNom\Documents\\), puis de lancer le fichier first-setup.bat, qui créera les arborescences dans le dossier context après avoir téléchargé les fichiers nécessaire. En effet, la commande first-setup.bat enclenche un processus de téléchargement et d'organisation de dossier qui dure environ 1 minute (selon votre connexion Internet). D'autres commandes sont à effectuer ensuite, afin de rendre effective votre installation.
  • À noter : On prendra garde, une fois ConTeXt installé et avant tout usage de ConTeXt sous Windows (c'est la même remarque pour Mac OS X ou pour Linux) de bien répertorier les différentes polices présentes sur le système et de se familiariser avec les possibilités d'impression offertes par ces polices. En effet, il se peut que telle police ne convienne pas à l'usage que vous désirez en faire. Pour le détail concernant l'usage des polices en général et des polices calligraphiques en particulier, veuillez vous reporter aux chapitres ci-dessous consacrés aux polices.

Installation et configuration

  • Il est TRÈS IMPORTANT, une fois l'installation de ConTeXt terminée (et avant toute utilisation) de vérifier que tout est en place, que les variables d'environnement ont bien été définies, que les arborescences ont été construites convenablement, etc. Pour procéder à la construction des arbres et aux bons réglages, il faut respecter l'ordre des manœuvres suivantes :
  1. D'abord, il faut se rendre au bon niveau du répertoire où se trouve le fichier exécutable setuptex. Si vous avez installé ConTeXt dans /home/Dugenou/context ou dans /opt/context, vous devez vous placer dans /home/Dugenou/context/tex, ou dans /opt/context/tex, par la commande qui convient.
  2. Ensuite, il suffit de saisir dans la console les commandes suivantes : setuptex.bat (ATTENTION ! Si vous installez ConTeXt sur Linux/Mac OS X il y a bien un point suivi d'une espace avant setuptex, comme ceci :

. setuptex.sh.

Cette commande retourne, sous Linux, l'affichage suivant :Setting "/home/Dugenou/context/tex" as ConTeXt root. , mais rien de tel sous Windows (Windows n'est jamais bavard, dans ces cas-là !). Une fois cette configuration établie, on passera les commandes suivantes.

  1. Indiquez où se trouve l'exécutable context.exe dans le PATH, afin de pouvoir utiliser l'éditeur TeXWorks et autres. Si vous êtes au bon endroit (par exemple dans le répertoire : /context/tex/texmf-win64/bin/ sous Windows x64), il suffit alor de saisir dans une console/un terminal, la commande suivante : set PATH=%PATH%. Puis, toujours dans le répertoire /context/tex/texmf-win64, renseignez la base de données des polices comme ceci :

set OSFONTDIR=c:/windows/fonts.

Enfin, on tapera successivement les commandes suivantes :

  1. context --generate
  2. context --make
  3. Une fois ces commandes passées, vous pouvez recharger la base de données des polices, chercher une famille de police particulière et faire d'autres choses encore avec la commande :

mtxrun --script fonts --reload. Si cette commande ne donne rien, passez celle-ci : context --luatools.

  • Il faudra bien sûr veiller à ce que la variable d'environnement concernant l'usage des polices avec ConTeXt MKIV, qui fait usage des routines LuaTeX, soit bien paramétrée avec la commande (sous Windows) : set OSFONTDIR=c:/windows/fonts/. Sous Linux, pour être bien sûr de disposer de toutes les polices, on entrera dans un terminal la commande suivante :

export OSFONTDIR=~/home/utilisateur/.fonts//:/usr/share/fonts:/usr/share/texmf/fonts/opentype/:/usr/share/texmf/fonts/truetype/:/usr/share/fonts/type1/

(étant entendu que ~/home/utilisateur/.fonts// désigne votre identifiant réel sous Linux. En principe, on n'a pas besoin de recharger la base de données des polices à chaque utilisation de ConTeXt, ni de procéder à la série des context --generate et context --make. Mais en cas de doute, ou bien parce que ne voit pas les polices être bien prises en charge dans la sortie PDF, il ne paraît pas inutile de vider le cache des polices et de régler de nouveau le set FONTDIR (ou le export OSFONTDIR, sous Linux).

  • Note : Les polices avec lesquelles ConTeXt travaille sont fournies par la suite ConTeXt Minimals. En revanche, il est possible (sous Linux, Windows, Mac OSX, etc.) de rajouter des polices, soit dans le répertoire personnel /home/MonRépertoire/.fonts (sous Linux), soit dans le répertoire partagé /usr/share/fonts, en veillant à ne pas mélanger les polices True Type avec les autres (il est recommandé de déposer chaque type de police dans le répertoire séparé prévu pour le type). On veillera à réinitialiser au besoin le chargement des polices (sous Linux, Mac OSX et Windows) avec la commande fc-cache -v -f.

Cette dernière commande vide le cache et le réinitialise; elle fonctionne bien sous Windows, même si un message d'erreur peut apparaître, comme celui-ci :

warning: c:/Users/Utilisateur/context/tex/texmf/web2c/texmf.cnf:49: (kpathsea) No cnf value on line: OSFONTDIR =..

Si vous avez bien réglé OSFONTDIR comme ceci : set OSFONTDIR=c:/windows/fonts/, il n'y a pas de souci. Vous pouvez en outre ouvrir le fichier /context/tex/texmf/web2c/texmf.cnf et modifier la ligne 49 en conséquence.

mtxrun, le couteau suisse de ConTeXt

  • mtxrun est un script d'aide général qui sert à beaucoup de choses, de la recherche d'aide à la maîtrise de l'installation des arborescences. On trouve cette commande dans le répertoire d'installation de ConTeXt, exactement dans /context/bin/; ce fichier est une sorte de fusion des scripts contenus dans /tex/texmf-context/scripts/context/lua. Pour connaître tous les détails concernant les fonctionnalités diverses de ce script, vous pouvez étudier la page du ConTeXt Garden consacrée à mtxrun. Pour l'instant, nous n'allons pas nous intéresser à toutes les subtiles astuces de mtxrun, qui en font un outil puissant, mais à un ou deux de ses usages.
  • Maintenant que nous avons généré les arborescences et les scripts par les commandes context --generate et context --make, il peut s'avérer intéressant (sinon indispensable) de vérifier les polices installées sur le système. À cette fin, nous allons recharger la base de données des polices par la commande suivante :
mtxrun --script fonts --reload

On remarque que la structure de la commande mtxrun fait appel à plusieurs scripts; ici il s'agit d'appeler le script fonts, ainsi que le script reload (recharger). Une fois la base rechargée, on pourra regarder l'ensemble des polices présentes sur le système. La commande pour lister toutes les polices est la suivante :

mtxrun --script fonts --list --all

Vous voyez s'afficher 3 colonnes dans votre console, avec toutes les polices installées par ConTeXt, ainsi que celles qui ont été installées par vos soins (le chemin de ces dernières polices est même indiqué; par exemple, si vous avez installé la police EBGaramond dans /home/Dugenou/.fonts (sous Linux), la sortie de la commande donnera quelque chose du genre /home/Dugenou/.fonts/Library/EBGaramond-0.016/otf/EBGaramondSC12-Regular.otf. Si nous cherchons maintenant à vérifier et à isoler un groupe particulier de polices, nous pouvons passer la commande suivante :

mtxrun --script fonts --list --pattern=texgyre* --all

Cette commande liste toutes les polices de la famille TeX Gyre, ce qui donne (sur notre système) :

  • texgyreadventor
  • texgyreadventorbold
  • texgyreadventorbolditalic
  • texgyreadventoritalic
  • texgyreadventornormal
  • texgyreadventorregular
  • texgyrebonum
  • texgyrebonumbold
  • texgyrebonumbolditalic
  • texgyrebonumitalic
  • texgyreadventorbold
  • texgyreadventorbold
  • texgyreadventorbolditalic
  • texgyreadventoritalic
  • texgyreadventoritalic
  • texgyreadventorregular
  • texgyrebonumbold
  • texgyrebonumbold
  • texgyrebonumbolditalic
  • texgyrebonumitalic
  • texgyreadventor-bold.otf
  • texgyreadventor-bold.otf
  • texgyreadventor-bolditalic.otf
  • texgyreadventor-italic.otf
  • texgyreadventor-italic.otf
  • texgyreadventor-regular.otf
  • texgyrebonum-bold.otf
  • texgyrebonum-bold.otf
  • texgyrebonum-bolditalic.otf
  • texgyrebonum-italic.otf

Et ainsi de suite... Nous ne donnons pas ici la totalité de l'affichage, pour des raisons de place.

  • Vous pouvez encore affiner la recherche d'une police spécifique en utilisant deux astérisques au lieu d'une seule. Par exemple, vous aimeriez vérifier que la police GFS Didot est présente sur votre système. Vous pouvez procéder à cette vérification par la commande :

mtxrun --script fonts --list --pattern=*didot* --all.

  • Remarquez que cette dernière commande n'affiche pas un résultat identique à celle-ci :

mtxrun --script fonts --list --pattern=*didot*. Cela provient du fait que la commande retourne d'abord le résultat qui concerne les polices livrées avec ConTeXt. Si l'on veut afficher l'ensemble des polices disponibles sur le système, il faudra ajouter --all.

  • ATTENTION ! Si avec une commande du type mtxrun --script fonts --list --pattern=*didot* --all, la console ne retourne pas l'information idoine, alors que vous savez que la police est installée, cela provient du fait que le répertoire où se trouve cette police n'a pas été pris en charge par la commande set OSFONTDIR=c:/windows/fonts/. Vérifiez que c'est bien le cas, que votre police se trouve dans le répertoire c:/windows/fonts/ ; au besoin, videz le cache de la base de données des polices et rechargez la base de données.

ConTeXt Standalone avec TexWorks

Si vous utilisez ConTeXt seul (ConTeXt Standalone), cela implique que vous n'avez pas installé une distribution telle que MikTeX (ou TeXLive).

  • Vous n'avez pas besoin d'installer Ruby (sauf si vous voulez installer et utiliser la version MKII de ConTeXt).
  • Téléchargez ConTeXt Standalone ici. Décompressez le fichier dans le répertoire C:\Users\MonRepertoire\Documents\context\.
  • Ouvrez la console de commande cmd dans Windows/Applications; rendez vous dans le répertoire de ConTeXt dans lequel vous avez décompressé le fichier téléchargé avec la commande appropriée : cd context. Vérifiez la présence du fichier first-setup.bat.
  • Lancez first-setup.bat depuis la console de commande (cmd), en saisissant le nom du fichier au clavier et en appuyant sur la touche "entrée". Vous n'avez pas besoin d'être en mode administrateur. Par défaut cette commande télécharge la version bêta, qui a l'avantage d'être stable et d'être mise à jour régulièrement. Si vous désirez télécharger la version stable il faut saisir la commande first-setup.bat --context=current.
  • Mise à jour :

La mise à jour de la version bêta avec tous les modules, les polices et les goodies se fait par la commande suivante :

first-setup.bat --context=beta --fonts=all --modules=all --goodies=all

C'est très probablement une excellente idée de rendre ConTeXt visible à partir du PATH. Dans Windows 7, allez dans Système > Avancé > Variables Environnement et ajoutez C:[...]\context\tex\texmf-mswin\bin (ou bien C:\Users\Dugenou\Documents\context\tex\texmf-mswin64\bin si ConTeXt est installé dans le répertoire "Documents" sur une machine avec un processeur Intel x64 ou AMD x64) à votre chemin d'utilisateur (PATH), si naturellement vous avez installé le répertoire ConTeXt dans C:\. Si vous l'avez installé dans C:\Users\Dugenou\MonRepertoire\Documents\Context\, modifiez l'information en conséquence. Cela vous permettra d'utiliser ConTeXt en ligne de commande de n'importe quel répertoire avec la commande context nomdufichier.tex, ou avec TeXWorks.

Installation et configuration de TeXWorks

  1. Installez TeXWorks à partir de cette page de téléchargement et acceptez les options d'installation par défaut.
  2. Allez dans le menu "Édition", puis l'onglet "Préférences" > "Typesetting" (ou "Composition") et ajoutez le répertoire où se trouve le fichier exécutable context.exe (sous Windows, ou son équivalent pour les autres systèmes). Il s'agit du même endroit que celui indiqué à votre PATH.
  3. Ensuite, toujours dans l'onglet "Typesetting/Composition" du Menu Édition/Préférences, le tableau inférieur "Processing Tools/Outils de traitement", créez un nouvel outil, en cliquant sur le signe "+" et intitulez-le "ConTeXt MKIV". Dans le champ "Program", entrez le chemin de context.exe, le même que ce que vous avez indiqué au-dessus. Dans le masque "Arguments", ajoutez $fullname et c'est terminé ! TEXWorks est maintenant opérationnel. Cependant, vous veillerez à chaque lancement de TEXWorks que le masque de sortie PDF est bien réglé sur ConTeXt MKIV (et non sur PDFLatex).
  • Note: Dans le menu "Aide" de TeXWorks, vous disposez d'un "Petit manuel pour TeXWorks" qui vous aidera à régler les différents paramétrages.

Autres éditeurs

Il vous est proposé ici d'utiliser TEXWorks. Mais il est tout à fait possible, selon vos besoins et vos goûts d'installer et d'utiliser d'autres éditeurs; d'autant que l'on a souvent besoin, outre de rédiger le code de compilation et les instructions de commande, de vérifier la conformité du texte avec des correcteurs orthographiques, voire des dictionnaires. En ce qui concerne la qualité du texte, il est conseillé de préparer celui-ci sans se préoccuper de la mise en page ou des questions typographiques. Parmi les éditeurs en dehors de TeXWorks , en voici quelques uns :

Les utilisateurs chevronnés de Linux et autres distributions ont leurs préférences, comme emacs, vim, gedit, geany, etc. Il peut être utile de se référer à un tableau comparatif pour faire son choix et tester ce qui convient le mieux.

Tests

Maintenant, vous pouvez procéder aux réglages de TEXWorks (coloration syntaxique, etc.) et commencer à rédiger du code, afin de tester l'installation et le bon fonctionnement de ConTeXt, par exemple en copiant-collant le code ci-dessous dans TEXWorks :

\startext
Mon premier test de ConTeXt !
\stoptext

ou le test ci-dessous :

\startxtable
\startxrow
\startxcell a 1 \stopxcell \startxcell b 1 \stopxcell 
\stopxrow
\startxrow 
\startxcell a 2 \stopxcell \startxcell b 2 \stopxcell 
\stopxrow 
\stopxtable


Sélectionnez maintenant "ConTeXt MKIV" dans TEXWorks et cliquez sur "Typeset" (ou les touches "CTRL+T"). Un écran PDF devrait s'ouvrir et afficher le document, ici la phrase Mon premier test de ConTeXt !, ou un tableau de 4 colonnes.

  • Un autre test, mais avec du texte un peu plus élaboré et des demandes un peu plus complexes (section, sous-section, énumération...), cette fois-ci  :
\starttext
\section{Introduction}
\subsection{Distinctions}
En guise d'introduction, il est remarquable de commencer par une distinction essentielle : la philosophie n'est ni un discours rationnel sur la nature (et en ce sens, elle n'est pas une “science de la nature”), ni un ensemble de recettes pratiques qui porteraient sur les techniques : la philosophie ne permet pas de bâtir une maison, ni d'élever des chiens, ou de moissonner un champ. Elle ne permet pas non plus de tirer au clair à elle seule les questions difficiles qui touchent à la révélation divine, même si on peut parler d'un dieu des philosophes. Devant cette impossibilité, la philosophie n'est pas non plus une théologie.\par
\blank[big]
Si nous reprenons l'ordre de nos énoncés, nous disons que :\par
\startitemize[a]
 \item La philosophie n'est pas une science de la nature (elle n'est pas un discours sur la biologie, la physique ou la chimie, elle n'est pas une étude de la science, une épistémologie);\par
\item Elle n'est pas un ensemble de techniques utiles et pratiques, comme peut l'être le yoga ; on ne démonte pas un carburateur avec un livre de philosophie entre les mains;\par
\item Elle n'est pas un discours sur le ou les dieux : elle n'est pas une théologie.\par
\stopitemize
\stoptext

Si par malchance ces tests avec TEXWorks ne donnent rien et échouent, veuillez vérifier que :

  • votre fichier source se trouve bien dans le même répertoire que l'installation de ConTeXt;
  • que votre configuration de TEXWorks est bien celle indiquée sur cette page et que TeXWorks pointe bien vers l'exécutable context.exe situé dans le répertoire c:\users\Utilisateur\context\tex\texmf-win64\bin. Vous pouvez vous aider en images en allant vérifier sur cette page que vous avez bien suivi les consignes appropriées.

Modules

ConTeXt possède de multiples ressources applicables à de très nombreux besoins, comme rédiger une lettre avec le module letter, un article, un livre, etc. Cependant, il faut savoir que contrairement à LATEX, la plupart des packages et des environnements dont on peut avoir besoin appartiennent à la structure (core structure) de ConTeXt. Dès lors, il n'existe pas beaucoup de modules pour ConTeXt (en fait, on en compte 32 pour ConTeXt Standalone — sans TeXLive — y compris le module pour lilypond et le module french) et vous n'aurez certainement pas besoin d'installer tous les modules. La liste des modules et leur description se trouve sur la page du Wiki de ConTeXt Garden. Vous pouvez installer les modules via la commande suivante : sh ./first-setup.sh --modules=all

Modules de tierces parties

Afin d'installer les modules de tierces parties, il faut savoir que la suite ConTeXt est chargée avec quelques modules, comme le module de Taco Hoekwater, "t-bib". Si vous désirez installer un module supplémentaire dont vous connaissez l'intitulé, par exemple le module de Wolfgang Schuster relatif au format "letter", vous pouvez utiliser la commande suivante :

sh ./first-setup.sh --modules="t-letter"

Si vous désirez installer plus d'un module à la fois, vous pouvez séparer les options de commande par une virgule. Par exemple, si vous voulez installer le module "t-letter", ainsi que le module "t-mathsets", la commande sera :

sh ./first-setup.sh --modules="t-letter,t-mathsets"

Bien entendu, l'installation de tous les modules en une seule fois se fait — comme nous l'avons dit au paragraphe concernant les modules — par la commande :

sh ./first-setup.sh --modules=all

Pour tout installer

  • Comme nous l'avons écrit ci-dessus à plusieurs reprises, vous pouvez installer de nombreuses choses dans la distribution "Minimals" de ConTeXt, en plus de tous les modules. C'est possible par la commande :
sh ./first-setup.sh --context=beta --fonts=all --modules=all --goodies=all

Mise à jour

Pour mettre à jour la suite ConTeXt, il suffit de lancer sh ./first-setup.sh pour les sytèmes Linux/Mac OS X ou first-setup.bat avec Microsoft Windows. On peut aussi créer un alias ou un petit script nommé “ctx-update” avec le contenu donné en exemple ci-dessous :

  • cd /opt/context
  • rsync -ptv rsync://contextgarden.net/minimals/setup/first-setup.sh
  • sh ./first-setup.sh --modules=all

La présentation de ConTeXt est maintenant achevée, de même que les procédures d'installation et de mise à jour. L'objet du chapitre suivant est de créer un document simple et d'expliquer les commandes utilisées. Une fois détaillées les principales commandes qui permettent d'éditer un document simple, nous aborderons la confection d'un document complexe. Ce qui nous conduira in fine, à aborder la structure d'un projet d'édition. Cette documentation s'adresse avant tout aux littéraires qui sont intéressés par la maîtrise des documents complexes, tels qu'on peut en rencontrer dans les divers champs des humanités (littérature, langues anciennes, histoire, éditions savantes de manuscrits, etc.). Un Wikilivre sur la manière de rassembler et d'imprimer des documents de mathématiques ou de physique devrait légitimement être développé dans un autre ouvrage.

Dans les pages qui suivent, vous trouverez en majeure partie un ensemble de scripts (tous testés et fonctionnels) qui sont pour la majeure partie d'entre eux repris de la documentation officielle, repris, traduits, modifiés si nécessaire et testés par l'auteur de ce Wikilivre. Il est fortement conseillé de lire ce Wikilivre en ayant à sa disposition ConTeXt Standalone installé et fonctionnel. Il est de même conseillé de tirer partie des scripts, afin d'en comprendre la logique et la structure.

Comment créer un document simple ?

Remarque générale

Il s'agit ici de présenter les particularités du code de ConTeXt. Les utilisateurs de LATEX ne seront pas dépaysés, quoique (puisque ConTeXt est plus monolithique que LATEX) les commandes ne soient pas toujours identiques et que les possibilités de réglage personnalisées soient accessibles à beaucoup plus de paramètres. Pour débuter, nous allons donc présenter un exemple de commandes en ConTeXt, puis commenter un certain nombre de points cruciaux. Pour l'instant, nous ne nous occupons pas des questions importantes en imprimerie relatives à la mise en page, ni des questions de typographie. Ces questions feront l'objet de chapitres ultérieurs.

Structure d'un document simple

Puisqu'il s'agit d'un document simple (et non d'un ouvrage savant), par exemple une brochure de quelques chapitres, notre document contient un titre, quelques chapitres, et des sections et sous-sections à l'intérieur de ces chapitres. Notons que chaque page contient des paragraphes. Bien sûr, notre document peut posséder un index rerum et pourquoi pas un index nominum. Nous désirons aussi une table des matières.

ConTeXt vous permet de produire cela automatiquement à partir de ce qu'on appelle un fichier source. Il s'agit donc de créer d'abord ce fichier source, en lui donnant un nom et une extension. Ce fichier s'appellera par exemple monfichier-test.tex et son extension sera en *.tex. Il sera structuré de la manière suivante, comme nous l'avons vu rapidement ci-dessus dans l'exemple donné au chapitre de présentation.

  • Premier exemple de texte simple :
\starttext
Ceci est mon premier texte avec \ConTeXt !
Rien de plus facile !
\stoptext

Vous pouvez rédiger plusieurs pages comme ceci. Bien entendu, les réglages de mise en page, la police, etc. sont fixés automatiquement par défaut. Si vous voulez personnaliser la mise en page, vous devrez entrer dans un codage plus substantiel.

  • En général, même pour un document simple, le texte comprend une série de commandes appelées Préambule dans lequel on doit nécessairement trouver un certain nombre d'indications qui précisent la mise en page, la langue ou les langues utilisées, les effets de police et beaucoup d'autres choses que nous allons voir par la suite. Ce préambule se trouve avant \starttex. On peut aussi ajouter des commandes dans le texte (comme les italiques, les numérations, les citations, les notes de bas de page, etc. Le texte et ses commandes se termine nécessairement par \stoptext.

Nous verrons par la suite et successivement comment définir les nombreuses commandes à insérer dans le préambule.

  • Deuxième exemple de texte simple

Nous désirons produire un texte portant sur la première page le titre du document et le nom de l'auteur; nous désirons aussi des chapitres, un index et une table des matières. Il s'agit d'un texte simple, mais complet, pour peu que ce texte soit long (il y a des chapitres ou des sections ...). Détaillons ici les diverses commandes :

  • Placer le titre et l'auteur au milieu de la page :
\startstandardmakeup
  \middlealigned{Introduction à \ConTeXt}
  \middlealigned{par}
  \middlealigned{Jean Dupond}
\stopstandardmakeup
  • Ventiler les chapitres, les sections et les sous-sections du document.
\chapter[firstchapter]{Introduction}
\section[firstsection]{Origines}
\section[secondsection]{Techniques}
\chapter[secondchapter]{Utilisation de \ConTeXt}
\section{firstsection]{Comment coder ?}
\section[secondsection]{contrôler les polices}
\subsection{mise en page complexe}
  • Utiliser un index
\completeindex
  • Définir une table des matières
\completecontent


  • Remarques : Pour produire une table des matières, ou un index, il suffit du code \completecontent et \completeindex. Les règles typographiques françaises demandent à ce que la table des matières se trouve à la fin du document, après les indices. Mais certains documents (comme les thèses universitaires) présentent la table des matières juste avant l'introduction. Bien entendu, il s'agit ici du code d'un document simple, mais complet, puisque nous avons ici la page de titre, le texte en chapitres et sous-chapitres, les notes en bas de page (appelées par la commande \footnote{Contenu de la note}, l'index et la table des matières. Bien entendu, la qualité obtenue, tant en ce qui concerne les polices, tout aussi bien que la position des titres, les marges, les en-têtes, etc. peut être améliorée. Par défaut la police est de corps 12, mais elle peut être réduite ou augmentée à la demande; de même on peut contrôler plus finement la pagination (avoir une page impaire différente de la page paire) et ainsi de suite. Les commandes \input knuth et \input ward permettent d'insérer du texte automatique en anglais. Voici le code complet que vous pouvez tester :
  • Code Complet
\starttext
\startstandardmakeup
  \middlealigned{Introduction à \ConTeXt}
  \middlealigned{par}
  \middlealigned{Jean Dupond}
\stopstandardmakeup
\completecontent
\chapter[firstchapter]{Introduction à \ConTeXt}
 \quotation{\ConTeXt  se présente comme un outil plus fin, plus précis, aussi puissant et plus maniable que \LaTeX}, affirment les utilisateur de ce logiciel de composition informatique\footnote{Logiciel de composition informatique, ou d'édition informatique est le terme français pour désigner le {\it typesetting} anglais.}, dont Hans Hagen\index{Hagen}, le créateur de \ConTeXt\index{ConTeXt} ...
 \section[firstsection]{Origines de la composition par informatique}
 \input knuth
\chapter[secondchapter]{Pourquoi utiliser \ConTeXt ?}
\section[firstsection]{Origines de la composition par informatique}
 \input knuth
\section[secondtsection]{Édition, composition, impression}
\input ward 
\subsection{Les mises en pages complexes}
Il est vrai que lorsqu'il s'agit de composer un document pour un éditeur, le plus simple est de saisir du texte au kilomètre avec Microsoft Word\index{Microsoft Word}, LibreOffice\index{LibreOffice}, ou toute suite logicielle que l'on maîtrise; à charge pour l'éditeur de faire son travail d'éditeur\footnote{Travail qui devrait systématiquement conduire à élaborer un texte de qualité, tant dans sa forme, que par son contenu.}, de choisir le format de l'ouvrage, la manière de composer les notes (en bas de page ou en fin de chapitre ?), de choisir la police, sa taille, etc. Mais, il se peut aussi que nous soyons nous-même éditeur, ou que nous soyons en mesure de peser sur l'édition d'un ouvrage complexe, qui contient ou non des images, un {\it index rerum}. Ce dernier cas se rencontre rarement, car les auteurs\index{auteur} sont rarement associés à des choix éditoriaux. C'est vrai pour les articles en revue, mais c'est surtout vrai pour des romans ou des essais, qui sont rarement mis en valeur par l'éditeur\index{éditeur}.

\completeindex
\stoptext

Il faut savoir que si ConTeXt ne supportait par le passé que le format de texte ASCII, aujourd'hui il est possible d'utiliser n'importe quel éditeur de texte simple, pourvu qu'il produise du texte au format UTF-8.

Les commandes essentielles dans ConTeXt

Nous voyons ici que toute commande commence par un anti-slash "\" (en anglais : backslash). Avec la commande \starttext on indique le début du texte et par voie de conséquence les commandes à prendre en compte à l'intérieur de ce texte. Ici, les commandes qui nous intéressent sont des commandes de structure. Nous verrons plus tard que nous pouvons compléter la forme et le détail de cette structuration par de nombreuses instructions de mise en page avant la commande du début du traitement de notre texte, donc avant \starttext. Notons tout de suite que la fin du traitement du texte est indiquée dans le fichier source par l'instruction \stoptext. La zone antérieure à la commande \starttext est appelée zone de configuration, mais dans le jargon le plus usuel, cette zone est appelée préambule. Comme nous venons de le dire, cette zone est très utile (comme dans LATEX), pour donner des instructions qui concernent la mise en page générale du document (taille des marges, reliure, en-têtes, pied de page, etc.) et pour définir des commandes particulières, qui touchent, par exemple, aux diverses langues et aux familles de polices que l'on désire utiliser. Cette zone de configuration permet de créer littéralement une maquette — ou si vous préférez : une feuille de style — et de préciser ses exigences en matière typographique. Il est possible de changer de feuille de style d'une page à l'autre (ou d'un chapitre à l'autre).

Une commande est habituellement suivie par une paire de crochets ouvrant ("[") et fermant ("]") et/ou par une paire d'accolades "{}" ouvrantes et fermantes. Il est nécessaire de rappeler ici — pour le lecteur qui n'aurait pas eu le bonheur de suivre un cursus universitaire dans lequel un cours de logique formelle était un passage obligé, ou pour celui qui n'a aucune expérience en la matière — que les instructions par commandes dans les langage de balisage (et dans les langages informatiques en général), lorsqu'elles sont déclarées, doivent impérativement être suivies d'une instruction qui clôt la déclaration. Par exemple, le petit script en VisualBasic qui permet d'afficher la formule "Hello World !" est écrit ainsi (remarquez le End Sub, qui clôture la déclaration Sub Main) :

Sub Main()
MsgBox("Hello World")
End Sub

Par conséquent, l'oubli d'un crochet ouvrant ou fermant, ou de la déclaration de clôture d'une commande, produira inévitablement une erreur en sortie du traitement du fichier source. En général, pour ce type d'oubli, soit le fichier source ne produit pas l'affichage en PDF, soit le résultat à l'affichage sur l'écran n'est pas conforme à ce qui était souhaité. Il est donc conseillé d'aller lire les fichiers de type monfichier-tex.log qui indiquent les erreurs d'écriture du fichier source (y compris la ligne où se trouve l'erreur).

Si nous revenons maintenant à notre exemple, la commande \chapter dans \chapter[firstchapter]{Le Premier Chapitre} indique à ConTeXt comment produire quelques actions concernant la structure, la forme et la typographie du chapitre. Ces actions peuvent être :

  • commencer une nouvelle page
  • donner un numéro au chapitre
  • placer le numéro du chapitre devant le titre du chapitre
  • indiquer que le titre sera de telle taille
  • mettre le titre du chapitre et le numéro de la page dans la table des matières.

La commande entre crochets [firstchapter] est un intitulé dont le rôle est logique : ce label permet d'attribuer à ce chapitre (mais pas aux autres) d'autres commandes ConTeXt. Par exemple \in{chapter}[firstchapter] affiche le numéro du chapitre, tandis que \about[firstchapter] renvoie le titre. Nous verrons plus loin le détail de ces commandes et de beaucoup d'autres. Pour l'instant, disons qu'un novice pourrait n'avoir besoin de connaître que les 10 commandes suivantes :

1. \starttext, \stoptext
2. \chapter, \section, \title, \subject, \setuphead, \completecontent
3. \em, \bf, \cap
4. \startitemize, \stopitemize, \item, \head
5. \abbreviation, \infull, \completelistofabbreviations
6. \placefigure, \externalfigure, \useexternalfigures
7. \placetable, \starttable, \stoptable
8. \definedescription, \defineenumeration
9. \index, \completeindex
10.\setuplayout, \setupfootertexts, \setupheadertexts

Afficher la liste de toutes les commandes ConTeXt avec mtxrun

  • Il existe un fichier au format i-context.xml enfoui dans les profondeurs de ConTeXt, qui permet d'afficher au format PDF toutes les commandes que ConTeXt propose. Pour l'obtenir, il faut et il suffit de saisir la commande suivante dans un terminal : context --extra=setups --overview i-context.xml. Le fichier xml est transformé en PDF. Vous pouvez passer cette commande de n'importe où sans aller chercher spécialement où il se trouve, c'est-à-dire ici C:\Users\MonRepertoire\context\tex\texmf-context\tex\context\interface\mkiv. Ensuite, vous pouvez choisir d'enregistre ce document PDF où bon vous semble.

Empagement et structure de la page

Les textes dans la page

Les textes dans une page sont les textes qui sont placés dans l'en-tête, le pied de page et les bords du corps de page et la zone principale du texte. On peut dire qu'une phrase d'explication comme celle que vous lisez est composée dans le corps du texte que vous souhaitez voir s'afficher à l'écran entre \starttext et \stoptext. La ou les polices (les fonts en anglais) sont réglées au moyen de commandes différentes. Les valeurs des paramètres peuvent être quelque chose comme style=bold, mais style=\ss\bf est aussi autorisé. Passer d'une police à l'autre, ou d'une graisse à l'autre (\ss = Sans Serif) peut prendre du temps. En principe, ce n'est pas un problème pour les documents simples, pour lesquels il n'y a pas mieux que d'utiliser le minimum de commandes. Mais lorsqu'il s'agit de composer des documents complexes, avec des menus et des commandes interactifs, où il s'agit de passer d'une police à une autre et d'un effet à un autre, les conséquences peuvent être considérables. Dans ce dernier cas, il vaut mieux passer par des commandes du genre : \setuplayout[style=\ss] Les textes situés dans les bords ou en pied de page sont réglés par des commandes relatives aux bords et aux pieds de page, qui possèdent également leurs propres clés. Par exemple, le pied de page peut être réglé au moyen d'une clé qui concerne la graisse des lettres : \setupfooter[style=bold]

La composition d'une page

Dans la composition d'une page, on distingue la zone principale du texte, les en-tête, les pieds de page et les marges (haut, bas, droite et gauche [top, bottom, right, left]). Le texte principal se situe dans la zone principale (main text area). Lorsqu'on définit une mise en page, il faut comprendre que l'en-tête, le texte principal et le pied de page sont traités comme un tout. Leur position sur la page est déterminée par les dimensions du haut-de-page et par celles du fond de page (grand fond, petit fond, blanc de tête, blanc de pied). L'en-tête est situé dans le haut-de-page et le pied-de-page en dessous de la zone principale de texte. Normalement, c'est dans les en-têtes ou les pieds de page que sont situés les numéro de page. Les marges de droite et de gauche sont souvent utilisées soit pour des notes marginales, soit pour placer les numéros de chapitre ou de section. Les marges sont situés dans le fond de page, le long de la reliure et dans l'espace blanc laissé à droite et à gauche du texte principal. Leur largeur n'a aucune influence sur le positionnement de la zone de composition de la page. Des éléments de détail à propos de la mise en page et des explications sur le vocabulaire sont donnés sur la page des fiches à Bébért.

En principe, comme dans LATEX, la plupart des documents sont composés à partir des règles simples. Il faut néanmoins avoir une connaissance de la mise en page et des règles de l'imprimerie; de même qu'il faut prendre connaissance de quelques éléments de typographie.

Même si le débutant n'a pas besoin de toutes ces commandes, il faut savoir qu'elles peuvent être très précises, comme la liste ci-dessous l'indique (à l'intérieur des crochets, on peut placer les clés listées en dessous) :

\setuplayout [..,.=*.,..]

* width = DIMENSION fit middle
height = DIMENSION fit middle
backspace = DIMENSION
topspace = DIMENSION
margin = DIMENSION
leftmargin = DIMENSION
rightmargin = DIMENSION
header = DIMENSION
footer = DIMENSION
top = DIMENSION
bottom = DIMENSION
leftedge = DIMENSION
rightedge = DIMENSION
headerdistance = DIMENSION
footerdistance = DIMENSION
topdistance = DIMENSION
bottomdistance = DIMENSION
leftmargindistance = DIMENSION
rightmargindistance = DIMENSION
leftedgedistance = DIMENSION
rightedgedistance = DIMENSION
horoffset = DIMENSION
veroffset = DIMENSION
style = normal bold slanted boldslanted type cap small... COMMAND
color = IDENTIFIER
marking = on off color screen TEXT
location = left middle right bottom top singlesided doublesided
scale = DIMENSION
nx = NUMBER
ny = NUMBER
dx = DIMENSION
dy = DIMENSION
lines = NUMBER
columns = NUMBER
columndistance = DIMENSION
grid = yes no
bottomspace = DIMENSION
cutspace = DIMENSION
textdistance = DIMENSION
textwidth = NUMBER
textmargin = DIMENSION
clipoffset = DIMENSION
page = IDENTIFIER
paper = IDENTIFIER

Les valeurs par défaut de ConTeXt sont :

  • paper : A4 portrait
  • margins : 30 mm
  • backspace : 25 mm
  • topspace : 25 mm
  • header : 20 mm
  • footer : 20 mm

La commande \showframe permet de visualiser les marges, en-tête et pied de page et \showsetups affiche toutes les dimensions de la page. La commande \showlayout affiche à la fois les marges et les dimensions de la page. Le fichier suivant affiche les valeurs par défaut d'une page ConTeXt :

 \starttext
 \showlayout
 \stoptext
(Fig. 1) Résultat de la commande \showlayout

Un exemple de mise en page

Pour l'exemple suivant, on créé une page particulière avec très peu de corps de texte (10cm), car ce qui nous intéresse ici ce sont l'entête et le pied de page. Le document produit sera recto-verso, avec une petite marge interne (2cm) et une marge externe de 3cm :

\definepapersize[emc][width=20cm,height=10cm]
\setuppapersize[emc][emc]
\setuplayout[backspace=2cm,topspace=1cm,width=15cm,header=2cm,footer=2cm,headerdistance=0.5cm,footerdistance=0.5cm]
\setuppagenumbering[alternative=doublesided]

\starttext
\showframe
\input tufte
\stoptext
Commentaire
  • On voit que dans la zone antérieure à la commande \starttext on a défini la taille du papier et la mise en page. On ne s'intéresse pas ici à la police utilisée. La pagination recto-verso est définie par la commande \setuppagenumbering. On indique aussi à ConTeXt que l'on veut voir la mise en page affichée, et on lui donne un texte factice (ici produit par la commande \input tufte).
  • Le cadre, obtenu par la commande \setuplayout, encadre la page.
  • La commande \showframe affiche les cadres des zones de texte.
  • La première chose que l'on remarque est la présence du numéro de page au centre de l'en-tête. Si on veut contrôler la position du numéro de page par l'intermédiaire de la gestion des en-têtes et des pieds de page, il faudra supprimer la gestion par défaut par le code suivant : \setuppagenumbering[location=], où la clé (left, middle, right) après le signe "=" n'est pas indiquée.
  • La commande pour configurer l'en-tête est : \setupheadertexts
  • La commande pour le pied de page est : \setupfootertexts

Ces deux commandes produisent le même effet. Elles acceptent, en fonction du type de document et de ce que l'on cherche à obtenir, de 1 à 5 options. 4 options permettent de placer du texte, la date, le numéro de page, le titre de section. La dernière option permet de positionner le texte à insérer. Il y a différentes combinaisons possibles : la première, avec une seule option, permet de placer le texte au centre de l'en-tête : \setupheadertexts[Texte au centre de l'entête]

Voici le code complet :

\definepapersize[emc][width=20cm,height=10cm]
\setuppapersize[emc][emc]
\setuplayout[backspace=2cm,topspace=1cm,width=15cm,header=2cm,footer=2cm, headerdistance=0.5cm,footerdistance=0.5cm]
\setuppagenumbering[alternative=doublesided]
\setuppagenumbering[location=]

\setupheadertexts[Test de Texte avec ConTeXt]

\starttext
\showframe
\input tufte
\stoptext

Conclusion sur les commandes \setuplayout et \defineNomCommande

  • Toutes les commandes qui présentent des possibilités de réglage possèdent une commande du type : \setupNomCommande[variable1=valeur1, variable2=valeur2, option1, option2,. . .] .
  • Ces commandes permettent de régler les options dans le préambule du fichier source (préambule ou zone de configuration), pour affecter toutes les commandes du document.
  • Presque toutes les commandes ConTeXt autorisent en supplément la définition d'une commande de type \defineNomCommande qui (comme son nom l'indique) permet de définir des comportements propres au document. On peut écrire dans le préambule du fichier source les commandes suivantes :
\defineframed[cadreVert][location=top,corner=08,framecolor=darkgreen]
\defineframed[boiteBleue][location=top,frame=off,background=color,backgroundcolor=blue]

Ainsi, dans le texte on fera appel à la commande définie au préalable \cadreVert{texte} pour obtenir un texte entouré de vert et \boiteBleue{texte} pour du texte dans une boite bleue. IMPORTANT : Il est indispensable d'utiliser des majuscules dans les définitions de commandes personnalisées. Ce qui donne :

\defineframed[cadreVert][location=top,corner=08,framecolor=darkgreen]
\defineframed[boiteBleue][location=top,frame=off,background=color,backgroundcolor=blue]
\starttext
Lorem ipsum dolor sit amet, \cadreVert{consectetuer adipiscing} elit. Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum  \boiteBleue{gravida mauris}. 
\stoptext

Ajoutons la facilité avec laquelle on peut modifier le comportement des en-têtes (headers) et des pieds-de-page (footers). Comme nous l'avons déjà dit, la force de ConTeXt consiste à configurer les commandes avec des clés dont les valeurs sont paramétrables. Quelques cas sont donnés ici à titre d'exemples : nous voulons faire en sorte qu'une partie du texte soit imprimé en italiques et en gras.

  • Pour faire en sorte que l'en-tête soit en italiques gras:

\setuphead[section][style=bolditalic]

  • La même chose, mais pour le pied de page :

\setupfooter[style=bolditalic]

  • Mettre en gras et en italiques le contenu d'une énumération :

\setupenumerations[style=bolditalic]

  • Mettre en gras et en italiques le contenu du second niveau d'une énumération :

\setupitemize[2][style=bolditalic]

  • Mettre en gras et en italiques la première cellule et la première colonne d'un tableau :

\setupTABLE[row] [1][style=bolditalic] \setupTABLE[column][1][style=bolditalic]

Résumé

  • Pour un document simple, il suffit avec ConTeXt de placer du texte entre les commandes \starttext et \stoptext.
  • Cependant, il est possible de chercher à maîtriser un certain nombre de choses, dont la mise en page, qui peut varier, tant en ce qui concerne la dimension des en-têtes, des pieds-de-page et des marges, que de la position des numéros de page, la position des titres de chapitres et de section.
  • Il est donc possible d'avoir recours à des réglages personnalisés (en faisant varier la dimension de ces zones de la page). Faire varier l'empagement est donc possible, comme il est possible d'affiner et de personnaliser les événements à l'intérieur du texte, comme par exemple les sauts de pages, les tracés de lignes, le texte encadré, ou encore la couleur du fond sur lequel viendra s'afficher le texte. Le jeu de commandes \setup (comme la commande \setuplayout qui nous intéresse dans ce chapitre) s'applique à tout \setupQuelqueChose; de même, on peut définir le comportement à l'intérieur des zones de texte par des commandes personnalisées qui s'appuient toutes sur \defineQuelqueChose.
  • Pour composer un texte dans les règles de l'art, s'il s'agit d'un texte simple doté d'un titre, d'un résumé, de sections et d'une bibliographie légère, on ne gagnera rien à vouloir toucher à tout. En revanche, dès qu'il s'agira d'un travail professionnel, il pourra apparaître nécessaire de se documenter sur les règles de la mise en page, en vigueur dans les métiers de l'imprimerie, afin de tirer partie de ConTeXt en vue de réaliser des documents imprimés dans les règles de l'art. Les pages Wikipedia sur les divers formats de papier peuvent être d'une grande aide, ainsi que la page sur le standard ISO-216.

Typographie d'un document simple

Quelques notions de typographie

Comme il est indispensable de comprendre le vocabulaire employé par les typographes pour décrire une feuille de papier prête à l'impression, nous allons commencer notre chapitre par ces notions :

  • Le petit fond : zone blanche entre la zone de texte et le bord du papier, côté reliure. Appelé aussi blanc de couture ou marge intérieure.
  • Le blanc de tête : zone blanche entre le bord supérieur de la page et la zone de texte. Appelé aussi marge de tête.
  • Le grand fond : espace blanc entre la zone de texte et le bord externe de la feuille de papier. Appelé aussi marge extérieure.
  • Le blanc de pied : zone blanche entre la zone de texte et le bas de la feuille. Appelé aussi marge de pied.
  • Le rectangle d'empagement : zone dans laquelle le texte est imprimé, sa hauteur s’appelle "hauteur d'empagement" et sa largeur la "justification".

En typographie française, on exclut le folio, le titre courant et les notes marginales de l'empagement. Ce qui signifie que le numéro de page, le rappel du titre de l'ouvrage et du chapitre et les notes, sont bien situés sur la page de papier, mais non sur le rectangle d'empagement. Autrement dit, chacun le comprend, folio, titre courant, ainsi que les notes marginales sont imprimés ailleurs !

En ce qui concerne le folio (le numéro de page), sa place se trouve classiquement en bas de page dans le blanc de pied. Ainsi, il est bien visible du lecteur.

Le titre courant est le rappel du titre de l'ouvrage sur toutes les pages. Pour ne pas déranger l'harmonie de la page, il est rédigé dans une police plus petite et est situé en haut, hors de l'empagement, dans le blanc de tête.

Quant aux notes marginales, qui sont courtes, ou limitées à des symboles, on les imprime dans le grand fond, c'est-à-dire dans la marge extérieure (droite au recto, gauche au verso).

Au contraire, et contrairement à ce que de mauvaises habitudes peuvent laisser croire, les notes de bas de page, qui peuvent être d'une longueur considérable, font partie de l'empagement.

Cependant, il y a des exceptions. Si le titre courant est accompagné du titre de la section ou du folio, tout est intégré dans l'empagement. Si le folio est précédé du nom de l'éditeur, de l'année ou d'un numéro de volume, il en va de même. Certaines revues savantes font apparaître dans le haut de la page le titre de l'article côté interne et le folio côté externe et dans le bas de la page le nom de la revue en italiques à l'extérieur. À l'intérieur, en bas de page, on trouve l'année, le tome, le numéro de la première et de la dernière page de l'article (ex: 2010, tome 107, n°2, p.331-358). Dans ce cas, l'en-tête et le pied de page appartiennent à l'empagement.

Le vocabulaire de ConTeXt

ConTeXt, ne l'oublions pas, a d'abord été codé en néerlandais, puis traduit en anglais. Les notions de typographie sont transcrites dans un vocabulaire qu'il faut maîtriser. Ainsi, le petit fond devient dans ConTeXt backspace; pour le blanc de tête, on aura topspace, la hauteur de l'empagement devient height et la justification s'appelle désormais width. Il nous faut aussi être attentif à deux choses :

  1. Au calcul de la marge extérieure (grand fond) et du pied de page (blanc de pied);
  2. Au rapport entre la dimension des marges et la dimension du texte principal.
  • Reprenons :

Dimensions du 'Grand Fond' et du 'Blanc de Pied'

  • Remarquons qu'il n'y a pas de valeur pour le grand fond (la marge extérieure), ni pour le blanc de pied (le bas de la feuille) qui est en réalité déduite des précédentes :
  • grand fond = width - backspace => ce qui donne (justification - petit fond) = grand fond
  • blanc de pied = height - topspace => ce qui donne (empagement - blanc de tête) = blanc de pied

Dimensions des Marges

  • Pour ConTeXt , les marges servent à placer le numéros des chapitres et des sections, les notes (marginales), voire les symboles qui alertent le lecteur. Il est important de noter que la taille des marges n'a aucune incidence sur la justification du texte (sa dimension = width), ni même sur sa position sur la feuille de papier. Dès lors, si le calcul des marges donne à celles-ci une taille importante, on risque de voir le texte à imprimer se trouver en dehors de la feuille (et par conséquent, ne pas être imprimé). Il est donc important de calculer correctement les dimensions de la marge de gauche (leftmargin) et de la marge de droite (rightmargin).

Position des éléments de navigation

  • ConTeXt propose aussi des outils avec lesquels on peut procéder à de la composition de textes électroniques, dotés d'un certain nombre de moyens de navigation intertextuelle (à l'intérieur du texte) ou extra-textuelle (à l'extérieur du texte). Nous en verrons un exemple ci-dessous avec le premier fichier concernant la structuration d'un document complexe. Aussi, le codage des balises de navigation se place-t-il non pas dans les marges, les en-têtes et les pied-de-page, mais dans quatre autres espaces appelés leftedge, rightedge, top et bottom. Ces espaces se situent à l'extérieur des marges, des en-têtes et des pieds de page dans une partie réservée du grand fond et du petit fond, dans le blanc de tête et dans le blanc de pied.

La figure ci-dessous (Fig. 2) reprend le vocabulaire précédent pour le distribuer sur l'ensemble d'une feuille théorique. Les dimensions sont exagérées (la justification du texte width et sa hauteur height semblent bien réduites comparativement aux marges et aux bords). Mais on visualise parfaitement la topographie de la feuille.

(Fig. 2) ConTeXt - Vocabulaire du partitionnement d'une page avec ConTeXt

Commandes ConTeXt pour structurer une page

Maintenant que nous comprenons mieux la topographie de la typographie, c'est-à-dire comment on peut (et comment on doit) organiser les différents textes sur une page, il est temps de reprendre l'ensemble des valeurs de la commande \setuplayout dont nous avons vu la liste ci-dessus (cf. Figure 1), commande qui sert justement à procéder aux différents réglages dont nous avons besoin et qui sont affichés dans la figure 2. Cette commande peut être utilisée autant de fois qu'il y a d'options, mais on peut aussi synthétiser les options en une seule commande, en procédant, par exemple, de la manière suivante :

\setuplayout[backspace=17.5mm,topspace=25mm,
 width=167.5mm,height=237mm,
 header=0pt,headerdistance=0pt,
 footerdistance=0pt,footer=0pt,
 bottom=10mm,bottomdistance=15mm,
 location=doublesided]

Voici pour rappel la commande et ses clés, qui répondent à de très nombreux besoins (il peut paraître utile de souligner que nous n'avons pas besoin d'utiliser toutes les clés simultanément !) :

\setuplayout[options]

width, height, backspace, margin, leftmargin, rightmargin, header, footer, topdistance, headerdistance, footerdistance, bottomdistance, leftmargindistance, leftedgedistance, rightedgedistance, marking, location, scale, nx, ny, dx, dy, lines, columns, columndistance, grid, bottomspace, cutspace, textdistance, textwidth, textmargin, clipoffset, page, paper.
Retour sur la commande \setuplayout: analyse des clés

Ce que nous appelons ici les clés, ce sont les options indiquées entre crochets [options]. Rappelons que toutes les dimensions de la page imprimée peuvent être affichées au moyen des macro \showframe et \showlayout. Ces macros peuvent être appelées avant la commande \starttext. Examinons ces clés (ou options) une par une, en gardant un œil sur la figure 2 :

  • width : valeurs = dimension fit middle

Comme on l'a vu, width s'appelle chez les typographes de langue française la justification. On peut aussi l'appeler la zone de texte principale. En tout cas, cette commande agit sur la dimension du texte. Cette dimension peut être déclarée explicitement (y compris en cm); on peut aussi demander à ConTeXt de placer le texte au milieu (middle), avec des valeurs de grand fond et de petit fond égales à backspace. Comme son nom l'indique, la valeur fit positionne le texte finement et exactement au moyen du calcul de la largeur de la zone de texte, des valeurs des marges, des bords (edge) et de l'espace entre la marge et le texte (rightmargindistance, leftmargindistance) et celui entre le bord et la marge (rightedgedistance, leftedge).

  • height : valeurs = dimension fit middle

Cette options intéresse la hauteur de l'empagement de la zone de texte, y compris l'en-tête et le pied de page. height est donc la somme de la hauteur du texte + header + footer + headerdistance + footerdistance. L'option middle place la zone de texte au centre avec des valeurs de blanc de tête et de blanc de pied égal à topspace. Avec l'option fit, ConTeXt prend également en compte pour le calcul de la hauteur de la zone de texte les autres valeurs verticales (de manière analogue à la valeur fit pour l'option width).

  • backspace : il s'agit du petit fond. Sa valeur est une dimension, ajustée en mm.
  • topspace : idem pour le blanc de tête. Sa valeur est une dimension exprimée en mm.
  • margin : idem pour la marge, dont la dimension est exprimée en mm. Au risque de se répéter, on attire l'attention sur le fait que cette valeur n'a aucune influence sur la taille de la zone de texte. Cette valeur n'a d'influence que sur l'espace réservé au texte mis en marge. Si cette valeur est plus grande que le petit et le grand fond, le texte débordera de la page. margin attribue la même largeur aux marges de droite et de gauche.
  • leftmargin et rightmargin : Sa valeur est une dimension exprimée en mm. Si on veut régler les marges de droite et de gauche avec une dimension différente. Même remarque que celle faite pour margin.
  • leftedge et rightedge : Sa valeur est une dimension exprimée en mm. Crée une zone entre la marge et le bord de la feuille, respectivement à gauche et à droite. Utilisé pour baliser des documents électroniques ou l'affichage de texte électronique sur écran.
  • leftmargindistance et rightmargindistance : Sa valeur est une dimension exprimée en mm. Distance entre le corps de texte et les marges gauche et droite.
  • leftedgedistance et rightedgedistance : Sa valeur est une dimension exprimée en mm. Distance entre la marge et le bord de page (intérieur et extérieur).
  • header : La hauteur de l'en-tête; header est une partie de height. Sa valeur est une dimension exprimée en mm.
  • footer : La hauteur du pied de page. Sa valeur est une dimension exprimée en mm. footer est une partie de height.
  • top : Crée une marge dans le blanc de tête, dans lequel on peut placer des annotations. top ne fait pas partie de l'en-tête et est utilisé pour les documents électroniques ou lus sur écran. Sa valeur est une dimension exprimée en mm.
  • bottom : Équivalent à top, mais pour le blanc de pied. Sa valeur est une dimension exprimée en mm.
  • headerdistance et footerdistance : Distance entre le corps du texte et respectivement l'en-tête et le pied de page. Sa valeur est une dimension exprimée en mm.
  • topdistance et bottomdistance : Distance respectivement entre la marge haute et l'en-tête et entre la marge basse et le pied de page. Sa valeur est une dimension exprimée en mm.
  • lines : La hauteur du texte, dans le corps du texte, est calculée en nombre de lignes. La valeur est donc ici un nombre (par exemple, pour un livre lines = 65.
  • grid : Le fait que certaines longueurs soient élastiques avec TeX (par exemple les lignes entre les paragraphes entraînent un décalage des lignes imprimées qui se font face entre deux pages ou deux colonnes et ne seront donc plus alignées). On peut remédier à ce problème en utilisant une grille que l'on active avec l'option grid=yes. La valeur est grid= yes no.
  • textwidth : largeur du corps de texte. Si cette valeur est employée, c'est la largeur réelle de la zone de texte. La dimension est exprimée en mm.
  • textdistance : décale le corps du texte vers le bas si le nombre est positif et vers le haut si négatif. La valeur est une dimension exprimée en mm.
  • textmargin : valeur exprimée en mm. Si la valeur est négative, décale le texte dans les marges de gauche et de droite (la largeur du corps de texte augmente). Si la valeur est positive l'effet induit est une réduction de la largeur du corps du texte.

Options pour l'imprimerie

Les options suivantes sont utilisées pour l'impression; en particulier lorsqu'on utilise les services d'un imprimeur. Certaines options permettent d'imprimer plusieurs pages sur une feuille.

  • location : valeurs = left middle right bottom top singlesided doublesided . Cette option permet de déterminer l'emplacement de la page sur la feuille de papier. Utile quand le format de papier et le format d'impression sont différents. Par défaut, sans autre indication, c'est le coin en haut à gauche qui est utilisé. Attention ! L'option doublesided ne crée pas un document recto-verso; elle sert pour un positionnement différent de la page sur la feuille de papier selon les faces. La valeur middle place le texte au centre de la feuille; on peut coupler les clés (e.g; : left,bottom, right,top, right,bottom), de manière à placer le texte en haut à gauche, à droite en haut, en bas à droite, en bas à gauche de la feuille, comme sur la figure 3 et la figure 4 ci-dessous.
(Fig. 3) Les effets de la commande location avec ses différentes valeurs.
(Fig. 4) Effet de la commande location=middle dans ConTeXt
  • nx, ny, dx, dy : valeurs = nombre. La page 1 du document est dupliquée nx fois sur l'axe des x, sur la première page imprimée, la page 2 nx fois sur la deuxième feuille imprimée. ny idem à nx, mais pour l'axe des y. dx et dy correspondent à l'espace séparant les pages sur l'axe des x et l'axe des y (nul par défaut).


(Fig. 4) ConTeXt - Effets des clés de commande nx,ny.
  • scale : valeurs = nombre. Met à l'échelle la page avant de la placer sur la feuille de papier. Une valeur de 0.5 divise par deux la taille du document. L'emplacement sur la feuille de papier dépend de location.
  • marking : valeurs = on color screen. Pour obtenir des traits de coupe (chez l'imprimeur, ou chez soi), avant passage au massicot. La valeur on marque des croix simples; la valeur color apporte des échelles de couleur ajustables aux marques; screen apporte un peu plus de complexité aux marques avec une échelle de gris.
(Fig. 5) ConTeXT - Effet de la commande marking
Note sur l'empagement dans ConTeXt

Attention ! ConTeXt intègre par défaut l'en-tête et le pied de page dans l'empagement. Par défaut, le folio (le numéro de page) est automatiquement intégré au pied de page. Si l'on veut modifier la place du "folio" dans le pied de page et le placer ailleurs, il faudra le déclarer explicitement.

Mise en page locale

Dans ConTeXt, la mise en page est automatique. Mais il peut arriver des cas où il est souhaitable d'intervenir. Afin d'insérer un titre ou une ou deux lignes sur une autre page, par exemple. ConTeXt permet d'ajuster localement la mise en page par la macro suivante :

\adaptlayout[option 1][option 2], où option 1 correspond aux numéros de page du document final et option 2 prend les valeurs height=dimension, ou bien lines=nombre de lignes.

Il faut prendre garde à la chose suivante : les valeurs de height et de lines sont des valeurs que l'on retranche à \textheight si elles sont négatives ou que l'on ajoute, si elles sont positives. En cas d'ajout, la valeur se fait aux dépens du pied de page et ne peut jamais dépasser celui-ci. Il apparaît ainsi inutile de d'opter pour des valeurs trop grandes. Si l'on prend :

\adaptlayout[15,26,36][height=+0.5cm]
\adaptlayout[12][lines=-1]

Ces commandes seront à placer dans le préambule de la source. La hauteur du corps de texte sera augmentée d'un demi-centimètre pour les pages 15, 26 et 36 et sera diminuée d'une ligne pour la page 12.

Le module fullpage

Comme son nom l'indique ce module permet de créer des pages avec des marges minimales. Il est chargé au début du document par la commande :

\usemodule[fullpage]

Ce module accepte deux options style et margin qu'on écrit soit lors du chargement du module soit dans une commande \setupfullpage[option=valeur]

Par exemple :

  • \usemodule[fullpage][style={cm,empty}], ou bien :
  • \usemodule[fullpage]

\setupfullpage[style={cm,empty}]

L'option style prend les valeurs suivantes :

  • in : affiche la page avec des marges de 1in (1 inch) ;
  • cm : affiche la page avec des marges de 1,5cm ;
  • margin : bascule en mode marge libre dont on donnera la valeur par l'option margin ;
  • plain aucun entête et un pied de page étroit de 0,5cm ;
  • headings : entête et pied de page étroits de 0,5cm ;
  • empty : ni entête ni pied de page.

L'option margin indique la dimension attribuée aux marges en ayant spécifié style=margin. Exemple : \usemodule[fullpage][style={margin,empty},margin=10mm]


Mise en page d'une lettre avec le module letter

Puisque nous sommes dans la partie qui concerne la structuration d'un document simple, il est indiqué de terminer cette partie par la rédaction d'une lettre. Les familiers de LATEX connaissent la déclaration de la classe letter dans le préambule. Il en va presque de même avec ConTeXt, sauf qu'il s'agit ici d'un module (et non d'une classe). Vous pouvez tester ce module en copiant/collant le fichier source ci-dessous dans votre éditeur de texte. Vous remarquerez que le préambule se borne à mentionner l'appel au module "letter", et que le contenu situé entre les commandes \starttext et \stoptext est presque totalement un ensemble de commandes \setupQuelqueChose et de \defineQuelqueChose. Pour toute information concernant les différents styles de lettres (en Allemagne, en France, etc.) on se reportera aux explications données sur le module letter à la page du Wiki de ConTeXt Garden.

\usemodule[letter]
\starttext
\setupletter
  [name={Jean Dupond},
   address={My Address Line One\\My Address Line Two\\My Address Line Three},
   toname={M. Mlle Mme\ Durand},
   toaddress={Address Line 4\\Address Line 5\\Address Line 6}]

\defineletterelement[layer][location][example]{\correspondenceparameter{address}\par}
\setupletterlayer[location][alternative=example,y=2cm,x=30mm]

\defineletterelement[layer][addressee][example]%
                    {\correspondenceparameter{toname}\\\correspondenceparameter{toaddress}\par}
\setupletterlayer[addressee][alternative=example,y=8cm,]

%% Pour enlever le mot "Date"
\setuplettertext[en][date=]
%% Faire glisser la ligne de date pour qu'elle commence 8 cm en-dessous du haut de page
\setupletterlayer[reference][y=8cm]

\startletter
  [opening={Cher, Chère \correspondenceparameter{toname}},
   closing={Bien sincèrement,},
   signature={\correspondenceparameter{name}}]

Comment allez-vous ? Bien j'espère ? De mon côté, j'ai commencé l'apprentissage de ConTeXt et je vous envoie par la présente un échantillon de mes exercices.
\stopletter

\stoptext

Typographie d'un document simple : les polices

La police de caractère ou police d'écriture (typeface ou font family en anglais) désigne un assortiment de caractères typographiques (lettres, chiffres, ponctuations), ayant un dessin particulier. Times New Roman, Arial, Helvetica, Lucida, Verdana sont des polices de caractères.

Une police possède 5 caractéristiques que l’on peut faire varier individuellement :

  • la famille ;
  • la graisse ;
  • la forme ou le style ;
  • la taille (le corps) ;
  • la casse (majuscule, minuscule).

La fonte : c'est un ensemble de caractères d’une même police ayant la même famille, la même graisse, la même taille et la même forme. Par exemple : Arial sans serif 12pt est une fonte, tandis que Arial sans serif 12pt italiques est une autre fonte.

Famille. Il y a 5 familles typographiques :

  • avec empattement; on emploie les termes de roman, serif, regular.

Il y a trois types d'empattements :

  1. triangulaire (ou Élsevir): comme la police Time;
  2. rectangulaire (ou Égyptienne) : comme par exemple la police Clarendon très utilisée en Amérique pour écrire le fameux Wanted
  3. filiforme (ou Didot) : par exemple la police créée par Firmin Didot.
  • sans empattement; on emploie les termes de sans serif, linéale, antique ou bâton.
  • monotype : on emploie les termes de : à chasse fixe, monospace, teletype, tous les caractères on la même largeur, comme sur des machines à écrire, ou sur les consoles des terminaux d’ordinateur.
  • 'cursive ou calligraphique : il s'agit des familles de polices simulant l’écriture à la main.
  • fantasy : familles de polices dont les glyphes sont exotiques et plus décoratives qu’utilisables pour du long texte. Peuvent convenir pour des titres ou dans l'utilisation de caractères symboliques, en cartographie par exemple.
  • maths : ConTeXt ajoute une sixième famille mathématique pour écrire les formules mathématiques, utilisables lorsqu'on passe en mode mathématique.

Graisse La graisse est l’épaisseur d’un trait ou d’un caractère : gras, demi-gras, léger (bold, semi bold, light).

Forme ou style Les caractères peuvent être en italiques, penchés, italiques et gras, penchés et en capitale.

La casse : La casse est le passage entre caractères majuscules et minuscules. Il existe aussi des petites capitales utilisées en français pour écrire les noms propres.

Réglage des polices

Dans ConTeXt, si rien n'est précisé, la police par défaut est à empattement. Pour vérifier la présence (et l'absence) des polices prises en charge par votre système, veuillez vous référer au paragraphe 2.2.3 (sur mtxrun) ci-dessus. La commande ConTeXt pour écrire en roman est \rm. On peut aussi bien utiliser \serif, \regular et \roman. La commande pour écrire avec une fonte sans serif est \ss, ou bien \sans et \sansserif. Exemple :

 \starttext 
 {\rm Exemple de texte en roman}
 {\ss Exemple de texte sans empattement}
 \stoptext

Dans les options de certaines commandes (par exemple [style=. . .]) il est possible d'employer le vocabulaire suivant :

  • pour les sérif : serif, regular, roman, rm ;
  • pour les sans serif : sans, support, sansserif, ss.

Monotype La commande ConTeXt pour écrire en monotype est \tt, ainsi que \mono et \type et dans certaines options : mono, type, teletype, tt. Exemple :

\starttext 
{\rm Cette phrase est écrite en roman}
{\tt Cette phrase est sans empattement, écrite en Monotype}
\stoptext

Cursif et calligraphique ConTeXt utilise la police Lucida, si elle est installée sur le système. Lucida permet d'utiliser les styles cursifs et calligraphiques avec les commandes \hwou \handwritten pour l'écriture cursive et \calligraphic et \cg pour l'écriture calligraphique. On peut installer d'autre polices que Lucida, en veillant notamment au respect des licences. C'est une chose d'utiliser une police pour un travail personnel, c'en est une autre de mettre en vente un ouvrage imprimé avec une police dont on ne s'est pas acquitté de la licence. À noter aussi que certaines polices ne sont pas toutes disponibles sur un système donné. C'est le cas en particulier pour une très belle police de calligraphie, la police Zapfino, uniquement disponible sur le système Mac OS X.

Zapfino

Graisse On peut modifier la graisse dans les textes composés avec ConTeXt que d'une seule façon, au moyen des commandes \bf ou \bold. Exemple :

\starttext 
On peut mettre en valeur du texte
{\bf en le mettant en gras}.
\stoptext

À noter que la mise en gras d'un texte s'obtient de deux manières :

\starttext 
Soit
{\bf En faisant précéder la commande d'une accolade} - et en fermant cette accolade après le texte mis en gras.
Soit en faisant suivre la commande d'une paire d'accolades
\bf{qui encadrent le texte à mettre en gras.}

Style Italique et penché (slanted) L'écriture en italiques s'obtient par \it ou \italic; l'écriture penchée par \sl ou \slanted. Exemple :

\starttext 
Dans ConTeXt on peut écrire
\it un texte en italique,
\sl ou bien préférer le style en penché.
\stoptext

La commande \tf permet de revenir au style normal:

\starttext 
\it Les effets sont produit par l'italique, {\tf puis le style normal} et à nouveau le style italique.
\stoptext

Résumé

La typographie prend en charge les deux aspects de la page imprimée : les choses qui doivent être vues et celles qui doivent être lues. Ce qui relève de l'information et du repérage (numéro du chapitre, en-tête, numéro de page), ce qui relève du sens porté par le corps de texte. L'ensemble d'une page fait l'objet d'une longue réflexion historique, depuis les débuts de l'imprimerie. La mise en page des zones de texte, comme le nombre de lignes, l'espacement entre les lignes, la forme des lettres, et ainsi de suite, réclament une attention rigoureuse, afin non seulement de plaire à l’œil, mais surtout de rendre la lecture aisée et de ne pas fatiguer le lecteur.

Du simple au complexe : colonnes et tableaux

En général le corps du texte que l'on souhaite imprimer est placé sur une seule colonne, la zone de texte principale. Il peut arriver que l'on souhaite placer ce texte sur 2 colonnes, voire 3. Il peut même aussi se faire que l'on veuille comparer deux versions d'un même texte, ou bien encore que l'on cherche à identifier des éléments communs à deux textes distincts. Mieux encore, on peut vouloir placer des textes en colonne lorsqu'on fait de la traduction. On peut par exemple donner un texte en grec à gauche, en latin au centre, en français à droite.

Dans le cas le plus simple, le texte en colonne est disposé de manière à remplir la première, puis la seconde colonne, voire la troisième si elle existe. On peut vouloir être exigeant et demander à ce que telle partie d'un texte soit à telle place sur telle colonne. On peut désirer encore faire en sorte que les lignes des textes (notamment pour la versification et la traduction) soient disposées fac à face.

Colonnes simples

  • Premier exemple : un texte sur une page A5, disposé sur 3 colonnes. Le texte ici est un texte factice, injecté par la commande \input knuth
\setuppapersize[A5]
\startcolumns[n=3]
\input knuth
\stopcolumns
(Fig. 6) Exemple de texte simple sur 3 colonnes (texte factice : knuth)
(Fig. 6) Exemple de texte simple sur 3 colonnes (texte factice : knuth)
  • deuxième exemple : la même chose que précédemment, mais sur 2 colonnes, avec un trait vertical entre les colonnes, appelé par la valeur rule=on
\setuppapersize[A5]
\startcolumns[n=2,rule=on]
\input knuth
\stopcolumns
(Fig. 7) Colonne double avec une règle centrale.
(Fig. 7) Colonne double avec une règle centrale.
  • En usage normal, le contenu des colonnes est réparti de manière équilibrée sur chaque colonne. On peut vouloir cependant qu'une partie du texte soit imprimée sur une colonne, tandis que l'autre partie est placée ailleurs sur une autre colonne. Les deux textes ici sont également des textes factices.
\setuppapersize[A5]
\startcolumns[n=2]
\input ward
\column
\input weisman
\stopcolumns
(Fig. 8) Colonnes où le texte est réparti inégalement.
(Fig. 8) Colonnes où le texte est réparti inégalement.

Paragraphes parallèles

  • On peut aussi désirer qu'un texte soit doté d'informations placées sur le côté droit. On peut chercher à utiliser les marges (pour les notes marginales), mais aussi bien il est possible de traiter le texte et son information en deux paragraphes parallèles, comme dans l'exemple ci-dessous :
\setuppapersize[A5]
\enableregime[utf]
\defineparagraphs[TwoThird][n=2]
% La justification du second paragraphe est automatiquement calculée, si elle n'est pas spécifiée.
\setupparagraphs[TwoThird][1][width=.66\textwidth]
\startTwoThird
quotation{...{\it pourquoi y a-t-il quelque chose plutôt que rien ?}
Parce que rien n’est plus simple et facile que quelque chose.
Plus loin, sachant que les choses existent,
on doit être en mesure d’expliquer
{\it pourquoi elles existent ainsi,}
et pas autrement.}
\nextTwoThird
G. W. Leibniz, {\it\fr Principes de la nature et de la grâce fondés en raison,} 1714.
\stopTwoThird
(Fig. 8) Commande \setupparagraphs : les paragraphes sont alignés côte à côte.

Colonnes inscrites dans un cadre

  • Dans l'exemple ci-dessous, le texte est sur deux colonnes et inséré dans un cadre ajusté. Le texte est factice, donné par la commande \input tufte. Il se peut que dans votre test, le PDF résultant de la compilation montre un texte qui déborde du cadre. Pensez à vérifier la police par défaut et, au besoin, à mentionner explicitement la taille de la police (qui est par défaut en 12pt).
\setuppapersize[A5]
\framed[width=0.9\hsize,location=middle]\bgroup
 \startnarrower[2*middle]
 \setlocalhsize \hsize\localhsize 
 \startsimplecolumns
 \input tufte
 \stopsimplecolumns
 \stopnarrower
\egroup
(Fig.9) Texte sur deux colonnes, entouré d'un cadre.

Texte en parallèle sur deux pages (paire/impaire)

  • On a parfois besoin (c'est le cas lors de travaux de traduction), d'avoir le texte en langue originale sur la page de gauche (paire/verso) et la traduction sur la page de droite (impaire/recto).

Voici une manière de faire, proposée par Hans Hagen. Attention ! Le script proposé ci-dessous ne fonctionne que si vous placez le texte à synchroniser entre les commande \StartCouple et \StopCouple.

\usemodule[streams] 

\def\StartCouple{\page\SwitchToNormal} 
\def\StopCouple {\SwitchToNormal \SynchronizeLeftAndRight \FlushLeftAndRight} 
\def\Original {\SwitchToNormal\SynchronizeLeftAndRight\SwitchToLeft} 
\def\Translation{\SwitchToRight} 
\starttext
\Original\en
Few discoveries are more irritating than those which expose the pedigree of ideas. Lord \sc{Acton}

\Translation\fr
Peu de découvertes sont aussi irritantes que celles qui exposent le pedigree des idées. Lord \sc{Acton}
\stoptext

Texte sur 2 colonnes, avec des graisses différentes et du grec ancien

  • Ici, nous sommes à la limite de l'exercice de mise en forme de texte simple, puisqu'il s'agit d'imprimer sur la colonne de gauche un certain nombre d'informations (ici sur la police : roman, italique, gras, etc.) et d'obtenir le rendu sur la colonne de droite. Le même texte s'affiche à droite, en normal, italiques, gras, petites majuscules, etc.). On ajoute le texte grec à la fin, texte en version originale (ici en grec ancien, tiré de l'Apologie de Socrate de Platon). Notez que nous n'avons pas besoin de réécrire le texte, du fait que nous définissons la commande buffer avec la clé Plato (buffer est un tampon de mémoire : la commande permet de garder automatiquement du texte en mémoire et de le réutiliser. On a rajouté une commande qui permet un rendu de la police à l'ancienne (en bas du fichier). À noter aussi l'appel du module simplefonts et l'utilisation de la police TeX Gyre Pagella, ce qui permet d'avoir un rendu correct, y compris les esprits et les accents en grec. On aurait pu aussi bien faire appel à une commande de type typescript, en la définissant ainsi \usetypescript[pagella] (pagella étant le nom dans ConTeXt de TeX Gyre Pagella (police disponible sous Linux) et en la couplant avec \setupbodyfont[pagella], mais ces dernières commandes ne permettent pas d'obtenir un texte grec convenable. Les modules et les polices doivent avoir été installées au préalable. Depuis 2013 le module simplefonts fait partie du cœur de ConTeXt et n'a donc plus à être téléchargé au préalable par la commande usemodule., même si nous le faisons ici.
\definefontfeature[f:superscript][sups=yes]
% une macro \sup est définie à notre convenance
\define[1]\sup{\feature[+][f:superscript]#1}
% On appelle le module ''simplefonts''
\usemodule[simplefonts]
\setmainfontfallback[DejaVu Serif][range={greekandcoptic, greekextended},
    force=yes, rscale=auto]
\setmainfont[TeX Gyre Pagella]
% On n'utilise pas les deux macro/typescript suivantes, qui feraient l'affaire sans le grec
% \usetypescript[pagella]
% \setupbodyfont[pagella]
% Il faut définir les paramètres de protrusion et d'étendue du texte - il n'existe pas d'héritage de paragraphe en paragraphe
\setupalign[hz, hanging]
% Si le paramétre de tolérance est 'verystrict' cela produit des défauts dans l'affichage du texte grec
\setuptolerance[strict]
% On définit les 2 colonnes et leur alignement. La colonne 1 est en 52pt, italique et alignée à gauche
\defineparagraphs[TwoColumns][n=2, align={hz, hanging}]
\setupparagraphs[TwoColumns][1][width=52pt, style=italic, align=left]

\starttext
% On définit le contenu du ''buffer'' et son étiquette.
\startbuffer[Plato]
Comment vous, O Athéniens, avez été affectés par mes accusateurs, je ne puis le dire;
mais je sais qu'ils ont presque réussi à me faire oublier qui j'étais -- si persuasives étaient leurs paroles; et pourtant il n'y a pas un mot de vrai dans ce qu'ils ont dit.
\stopbuffer

% Maintenant, nous allons afficher plusieurs fois le même texte, en le conservant en mémoire au moyen de la commande \getbuffer[Plato], précédée de la commande \startTwoColumns, etc. Ce qui aura pour effet d'afficher autant de fois qu'on le souhaite le même fichier.
% Une autre solution pourrait passer par la commande \dorecurse{n}, où {n} est le nombre qui indique la répétition du même texte. 
\startTwoColumns
Roman\TwoColumns
\getbuffer[Plato]
\stopTwoColumns

\startTwoColumns
Italic\TwoColumns
{\it\getbuffer[Plato]}
\stopTwoColumns

\startTwoColumns
Bold\TwoColumns
{\bf\getbuffer[Plato]}
\stopTwoColumns

\startTwoColumns
Bold italic\TwoColumns
{\bi\getbuffer[Plato]}
\stopTwoColumns

\startTwoColumns
Small caps\TwoColumns
{\smallcaps\getbuffer[Plato]}
\stopTwoColumns

\startTwoColumns
Old greek\TwoColumns
Ὅτι μὲν ὑμεῖς, ὦ ἄνδρες Ἀθηναῖοι, 
πεπόνθατε ὑπὸ τῶν ἐμῶν κατηγόρων, 
οὐκ οἶδα· ἐγὼ δ' οὖν καὶ αὐτὸς ὑπ' 
αὐτῶν ὀλίγου ἐμαυτοῦ ἐπελαθόμην, 
οὕτω πιθανῶς ἔλεγον. 

\stopTwoColumns

Old style ffl figures \& superior characters: 567890 / {\oldstyle 567890} --- 1{\sup 1} o{\sup o} re{\sup re}

\stoptext

Ce qui donne le texte de la Figure 10 ci-dessous (le rendu du fichier *.svg mange un des f de affectés).

(Fig. 10) ConTeXt - 2 colonnes de texte avec du texte grec.

On peut avoir besoin (particulier ou entreprise) d'un document sur une ou plusieurs pages dont la vocation est de présenter une activité. Ici on a choisi de présenter une maison d'édition fictive (Éditions Anciens & Modernes). Le document possède un titre en gras en haut de la page. Sur la droite, figure le logo de l'entreprise. Le titre est suivi d'un trait gras qui précède une colonne à gauche contenant les informations de contact et autres. La colonne de droite est réservée à la présentation proprement dite des activités de l'entreprise. Dans cette colonne, on peut vouloir ajuster l'espacement entre les paragraphes et aussi entre les lignes. De manière générale, maintenant que le processus est bien compris, il va nous falloir définir la langue (ici le français), la police dont nous voulons faire usage et sa taille, le titre, supprimer l'affichage de la pagination, définir la colonne de droite et la colonne de gauche. Ce qui donne :

% Sélection de la langue
\mainlanguage[fr]
% Informations de la sortie PDF (qui n'est pas obligatoire ici, mais peut s'avérer pratique)
\setupinteraction
  [state=start,
   color=colour_link,
   click=yes,
   contrastcolor=colour_link,
   focus=standard, % Clicking an inter-document hyperlink by default switches to "fit page" mode. Override.
   openaction={FitWidth,ToggleViewer},
   title={Anciens & Modernes},
   style=normal,
   subtitle={Anciens et Modernes},
   author=Adeimantos <adeimantos@uc.cy>,
   keyword={philosophie, histoire, philosophie politique}]
% Suppression de la numérotation des pages
\setuppagenumbering[location=]

% Réglage des marges, en-tête, pied de page, etc.
\setuplayout[
    backspace=10mm,
    width=190mm,
    topspace=5mm,
    header=0mm, 
    footer=5mm,
    footerdistance=0mm,
    bottomdistance=10mm,
    height=280mm]
%\showframe (commande pour afficher les cadres)

% Réglages de la police (on peut choisir une autre police)
\definefontfamily [main_font] [rm] [titillium] [features={default,quality}]
\definefontfamily [main_font] [mm] [TeX Gyre Pagella]
\setupbodyfont[main_font]

% Réglage de l'emplacement du logo
\setupexternalfigure[location=default]
\definelayer[logo_layer][state=start]
\setlayer[logo_layer][preset=lefttop, y=.01\paperheight,
 x=.82\paperwidth]{\externalfigure[anciens-modernes-logo.png][height=0.2\textwidth]}

\setupbackgrounds[page][background={logo_layer}]

% Réglage et définition de TwoVolumns. Solution 1
%\defineparagraphs[TwoColumns][n=2, align={hz,hanging}]
% \setupparagraphs[TwoColumns][1][width=200pt]

% Réglages de TwoColumns et manipulation de l'interligne dans la seconde colonne

\defineparagraphs[TwoColumns][n=2,align=verytolerant]

\startsetups[TwoColumns]
  \setupinterlinespace[line=5ex]
\stopsetups
\setupparagraphs[TwoColumns:2][inner=\directsetup{TwoColumns}]

% Le texte commence ici
\starttext

% Titre
{\switchtobodyfont[30pt] Éditions Anciennes & Modernes \crlf}
% Ligne sous le titre
\blackrule[height=0.6mm,width=0.83\textwidth]

% Date
{\bf Présentation}\crlf
\currentdate[dd,{~},m,{~},year]

% Sous-Titre
\blank
\framed[align=middle,width=200mm,height=13mm,frame=off]
{
    \bf \switchtobodyfont[15pt] 
    {\bf Éditions critiques et traductions}
}
% Ici commence le double colonnage
\startTwoColumns
\startlines
{\bf Information de contact}
Adeimantos
3 Achaion Street
Attica
Gr - 11852 Athens
adeimantos@uc.cy

{\bf Édition}
Littérature diverse

{\bf Dévelopement}
Prototype

{\bf Année de création}
2016

{\bf Financements privés}
\$0

{\bf Utilisation des fonds}
75\% Développement propre
18\% Marketing / Ventes
7\% Dons / Autres

\stoplines

% On passe à la seconde colonne
\TwoColumns
La raison d'être des {\em Éditions Anciennes et Modernes} est la valorisation du fond ancien de philosophie française des XIX{\high e} et XX{\high e} siècles; en effet, nombre d'ouvrages sont tombés dans l'oubli et ne sont que rarement disponibles à la lecture dans les bibliothèques publiques. La volonté des {\em Éditions Anciennes et Modernes} est de collecter ces ouvrages, d'en assurer l'édition critique dans les formats papier et numérique.
 \blank
C'est la raison pour laquelle nous avons recours à plusieurs sources de financement afin d'assurer la pérennité des tâches de collecte, la prise en charge des ouvrages et leur traitement photo-mécanique, ainsi que les diverses tâches techniques liées aux processus de numérisation.

\stopTwoColumns

\stoptext
  • J'attire votre attention sur deux points :
  • Le premier point : D'abord, en ce qui concerne l'interligne du second paragraphe, soit vous le définissez comme un espace standard et vous choisisse la solution 1 (commentée ci-dessous)
% Réglage et définition de TwoVolumns. Solution 1
%\defineparagraphs[TwoColumns][n=2, align={hz,hanging}]
% \setupparagraphs[TwoColumns][1][width=200pt]

Soit vous avez besoin d'interlignes plus conséquents et vous choisissez le réglage ci-après, sachant que vous pouvez jouer avec la commande \setupinterlinespace[line=5ex], typiquement avec [line=5ex]  :

% Réglages de TwoColumns et manipulation de l'interligne dans la seconde colonne
\defineparagraphs[TwoColumns][n=2,align=verytolerant]

\startsetups[TwoColumns]
  \setupinterlinespace[line=5ex]
\stopsetups
\setupparagraphs[TwoColumns:2][inner=\directsetup{TwoColumns}]
  • Le second point : toutes les figures que vous allez utiliser dans vos documents doivent impérativement être appelées par, au choix :
 - default: charge les images présentes dans votre installation ConTeXt(requis pour charger les exemples graphiques de ConTeXt)
 - local: charge les images qui se trouvent dans le même dossier que ConTeXt et 2 dossiers plus loin (e.g. \context\Images\Architecture)
 - global: clé intéressante : charge les images indiquées par le chemin-clé de la commande\setupexternalfigure (par example : \setupexternalfigure[d:\DocTeX\figures\Architecture\maison01.png]
 - Dans l'exemple donné ici (voir la figure ci-dessous), nous avons choisi d'importer une image confectionnée avec Inscape et convertie au format *.png. Cette figure se trouve dans le même dossier que le fichier source *.tex. \setupexternalfigure[location=default].
\setupexternalfigure[location=default]
\definelayer[logo_layer][state=start]
\setlayer[logo_layer][preset=lefttop, y=.01\paperheight,
 x=.82\paperwidth]{\externalfigure[anciens-modernes-logo.png][height=0.2\textwidth]}

Important : Toutes les figures que vous souhaitez utiliser doivent impérativement être dans les formats suivants : PDF, PNG, JPG, JP2 or JBIG2. Si le logiciel Inkscape est installé sur votre système ConTeXt peut transformer à la volée les images SVG en PNG.

(Fig. 11) Texte sur deux colonnes avec titre et logo

Tables et Tableaux

  • Il existe une diversité quasi infinie de situations dans lesquelles on a besoin d'un ou plusieurs tableaux. On va répertorier ici quelques exemples qui peuvent donner une idée de la puissance de ConTeXt.
Premier tableau simple : texte encadré

Nous avons rédigé un document et nous voulons souligner, par un résumé terminal adéquat, l'essentiel de notre propos, afin de le donner à mémoriser à nos lecteurs. Le code à tester est donné ci-dessous étape par étape :

\mainlanguage[fr]
\setcharacterspacing[frenchpunctuation]
\setuppagenumbering[location=]
\starttext

Nous avons défini avec le code ci-dessus la langue, le respect de la ponctuation française (afin de ne pas avoir à corriger d'éventuels points ou double points orphelins en début de ligne), neutralisé la numérotation des pages. Maintenant, nous établissons la manière dont l'alignement va être respecté à l'intérieur du tableau. Notez que 3 possibilités sont offertes : texte justifié, aligné à gauche ou laissé à lui-même. Ici, nous avons choisi de justifier le texte avec la commande : \setupTABLE[start][align=normal]. Ce qui donne ceci :

\setupTABLE[start][align=normal]
%\setupTABLE[start][align=flushleft]
%\setupTABLE[start][align={flushleft,broad}]

\bTABLE
    \bTR
        \bTD
        Afin de bien cerner la puissance d'édition que permet ConTeXt, il est essentiel de mémoriser un certain nombre de commandes-clés qui permettront d'établir assez rapidement un texte clair et précis. Pour ce faire, il convient de se lancer dans la rédaction d'un texte un peu complexe, avec des parties, des sections, des sous-sections, une table des matières, une bibliographie, des encadrés, etc. De la sorte, on pourra passer en revue les points importants et se familiariser avec les commandes. Comme toute vertu est une disposition acquise, c'est par la répétition que les exercices permettent d'acquérir ce qu'au départ on ne maîtrisait pas.
        \eTD
    \eTR
\eTABLE

\stoptext
  • Et voici le texte (sur l'image SVG, le texte est de Charles Péguy).
(Fig. 12) ConTeXt - Texte encadré simple
Texte encadré avec couleurs
  • Il se peut que vous souhaitiez rédiger un document, dans lequel les textes encadrés soient mis en valeur par de la couleur. La mise en œuvre de l'exemple suivant nécessite la connaissance de METAPOST, un outil graphique de LaTeX inclus dans ConTeXt. Nous n'entrons pas ici dans l'analyse du code MPgraphic qui permet précisément de tracer des traits et des figures géométriques. Nous présentons seulement ici un exemple de ce que ConTeXt permet de faire en donnant des indications sur le code.

Il s'agit ici de présenter un résumé et une conclusion dans un cadre rouge sur fond gris. Le texte doit être en italique (les textes choisis ici sont de Charles Péguy). Voici le code :

\mainlanguage[fr]
\setcharacterspacing[frenchpunctuation]
\setupbodyfont[pagella,11pt]

\setupcolors[state=start]

Ce préambule ne pose pas de problème, puisqu'il s'agit d'éditer un texte en français (uniquement). Rappelons que si ce texte encadré devait se trouver à la suite d'un texte recourant à diverses langues non-romanes, la commande \mainlanguage[fr] devrait être revue, afin d'inclure les autres langues, au moyen de \setuplanguage[fr][patterns={fr,agr}] (français et grec ancien), par exemple, et de la commande \definefallbackfamily [mainface] [rm] [ipaexmincho][range=cjkunifiedideographs], dans le cas où vous souhaiteriez insérer du texte chinois dans votre document en français.

  • Maintenant il s'agit de définir le cadre, sa couleur et divers détails. Puisqu'on passe d'un simple cadre avec ou sans ligne à un cadre couleur, on va faire appel à Métapost, le module de dessin propre à ConTeXt. Auparavant, on va définir "MyFrame" (mon cadre). Et on définit d'abord notre cadre par la commande :

\defineframedtext [MyFrame]. On indique à ConTeXt que dans ce cadre le style sera en italiques.

\defineframedtext
 [MyFrame]
 [before={\blank},
  after={\blank},
  frame=off,
  background=MyFrame,
  %width=\textwidth,
  width=max,
  height=fit,
  style=italic]
\definelabel
 [Définition]
 [headstyle=\bf\smallcaps]
  • On définit ensuite avec MPgraphic (Métapost Graphic) l'étiquette de notre cadre et le comportement des titres et du fond du cadre, qui est ici en gris clair.
\startuseMPgraphic{MyFrame}
path b;
picture p;
%p := textext.rt("\white\Définition");
p := textext.rt("\white\framedtextparameter{Title}");
%p := textext.rt("\white\getvariable{text}{text1}");
p := p shifted (2BodyFontSize,OverlayHeight-ypart center p+.25ExHeight);
b := boundingbox p leftenlarged .5EmWidth rightenlarged .5EmWidth;
fill OverlayBox withcolor lightgray;  %\MPcolor{
fill b withcolor darkred;
draw bottomboundary OverlayBox withpen pencircle scaled 1pt  withcolor
darkred;
draw topboundary OverlayBox withpen pencircle scaled 1pt  withcolor
darkred;
draw p;
setbounds currentpicture to boundingbox currentpicture enlarged 2mm;
\stopuseMPgraphic

\defineoverlay
 [MyFrame]
 [\useMPgraphic{MyFrame}]
  • Une fois les cadres et leur comportement définis, il ne reste plus qu'à entrer nos textes.
\starttext

\showframe % cette commande permet d'afficher le cadre
\startMyFrame[Title=Résumé]
« Dans la société présente, où le jeu de la spécialisation s’est outré automatiquement, les fonctions intellectuelles et les fonctions manuelles ne sont presque jamais attribuées aux mêmes ouvriers ; les ouvriers intellectuels délaissent presque tout le travail des mains ; les ouvriers manuels délaissent presque tout travail de l’esprit, presque tout exercice de la raison. Dans la cité harmonieuse dont nous préparons la naissance et la vie, les fonctions intellectuelles et les fonctions manuelles se partageront harmonieusement les mêmes hommes. Et la relation de l’intellectuel au manuel, au lieu de s’établir péniblement d’un individu à l’autre, s’établira librement au cœur du même homme. Le problème sera transposé. Car nous n’avons jamais dit que nous supprimerions les problèmes humains. Nous voulons seulement, et nous espérons les transporter du terrain bourgeois, où ils ne peuvent recevoir que des solutions ingrates, sur le terrain humain, libre enfin des servitudes économiques. Nous laissons les miracles aux praticiens des anciennes et des nouvelles Églises. Nous ne promettons pas un Paradis. Nous préparons une humanité libérée.»
\stopMyFrame

\startMyFrame[Title=Conclusion]
« La crise de l'enseignement n'est pas une crise de l'enseignement ; il n'y a pas de crise de l'enseignement ; il n'y a jamais eu de crise de l'enseignement ; les crises de l'enseignement ne sont pas des crises de l'enseignement ; elles sont des crises de vie ; elles dénoncent, elles représentent des crises de vie et sont des crises de vie elles-mêmes ; elles sont des crises de vie partielles, éminentes, qui annoncent et accusent des crises de la vie générales ; ou si l’on veut les crises de vie générales, les crises de vie sociales s'aggravent, se ramassent, culminent en crises de l'enseignement, qui semblent particulières ou partielles, mais qui en réalité sont totales, parce qu'elles représentent le tout de la vie sociale ; c’est en effet à l’enseignement que les épreuves éternelles attendent, pour ainsi dire, les changeantes humanités ; le reste d’une société peut passer, truqué, maquillé ; l’enseignement ne passe point ; quand une société ne peut pas enseigner, ce n’est point qu’elle manque accidentellement d’un appareil ou d’une industrie ; quand une société ne peut pas enseigner, c'est que cette société ne peut pas s'enseigner ; c'est qu'elle a honte, c'est qu'elle a peur de s'enseigner elle-même ; pour toute humanité, enseigner, au fond, c'est s'enseigner ; une société qui n'enseigne pas est une société qui ne s'aime pas ; qui ne s'estime pas ; et tel est précisément le cas de la société moderne.»
\stopMyFrame

\stoptext
  • L'image ci-dessous donne une idée de ce que produit le code complet.
(Fig. 13) ConTeXt - Cadre en rouge, texte en italiques sur fond gris
Texte encadré avec notes et légendes
  • Nous savons maintenant encadrer un texte, et même jouer avec la forme et la couleur du texte et du fond. Cependant, parmi la multiplicité des cas que nous pourrions éventuellement rencontrer (comme disposer de multiples cadres sur une page, afficher un logo dans un cadre, etc.), il se peut que nous désirions aligner des cadres contenant du texte, avec des titres pour ces cadres et des notes pour le texte, le tout correctement présenté si possible (ce qui signifie respectant un certain alignement). Nous prenons toujours comme exemples nos deux textes issus de l’œuvre en prose de Charles Péguy (Charles Péguy. Ed. Gallimard, coll. La Pléiade, Œuvres en prose complètes, tome I, pp. 1390).
  • Il s'agit de définir une paire de boîte dans chacune desquelles on insère un texte (différent), chacun des cadre disposant d'une légende et de la possibilité d'introduire des notes en dehors du cadre. Une des difficulés particulière consiste à imprimer un texte avec les césures (hyphenation) de la langue française, le respect des règles de ponctuation et l'alignement des notes par rapport au cadre. Le respect de la langue française par la justification du contenu des cadres s'obtient grâce aux deux premières commandes :
\mainlanguage[fr]
\setcharacterspacing[frenchpunctuation]

et aux commandes suivantes :

\setupTABLE[start][align=normal]
%\setupTABLE[start][align=flushleft]
%\setupTABLE[start][align={flushleft,broad}]
  • Ainsi, la première étape est simple, puisqu'il s'agit de configurer la langue et de définir la paire de boîtes avec des notes :
\mainlanguage[fr]
\setcharacterspacing[frenchpunctuation]
\setuppagenumbering[location=]
\definepairedbox
  [footnote]
  [width=\textwidth,
   align=middle]

La deuxième étape consiste à définir le comportement du tableau/cadre, après la commande \starttext; on remarque que la commande \setupTABLE[start][align=] offre 3 possibilités  :

\showframe
\starttext
\setupTABLE[start][align=normal]
%\setupTABLE[start][align=flushleft]
%\setupTABLE[start][align={flushleft,broad}]
  • La troisième étape n'offre pas de difficultés particulières, puisqu'il s'agit de manipuler le contenu du texte (titre et texte) et des notes par la commande

\startplacetable[title={Titre}], la commande \startlocalfootnotes, etc.:

\startplacetable[title={Titre du premier tableau}]
    \startlocalfootnotes
        \startplacepairedbox[footnote]
            \startcontent
                \startTABLE

 \NC    Votre texte de 15 lignes \NC\NR
                \stopTABLE
            \stopcontent
            \startcaption
                \placelocalfootnotes
            \stopcaption
        \stopplacepairedbox
    \stoplocalfootnotes
\stopplacetable
% et on recommence pour le second tableau
\startplacetable[title={Le titre de votre second tableau}]
    \startlocalfootnotes
        \placepairedbox[footnote]
            {\startTABLE
                        \NC Un autre texte de 15 lignes \NC\NR
   \stopTABLE}
            {\placelocalfootnotes}
              \stoplocalfootnotes
               \stopplacetable

\stoptext
  • Vous pouvez tester ce code avec autant de cadres et de notes que vous le souhaitez.
(Fig. 14) ConTeXt - 2 textes encadrés avec titres et notes hors-cadre

Notes en marge, notes de bas de page et notes de fin de chapitre

Notes en marge

  • On ne sait pas assez que ce qu'il est convenu d'appeler traditionnellement les notations marginales sont en effet des notes en marge du texte, situées à gauche ou à droite de celui-ci; les notes en bas de page, ou en fin de chapitre consistent pour l'essentiel, non à recueillir des commentaires, mais des références brèves (titres de livres, références à une page, etc.). Nous voyons donc les commentaires reportés en marge du texte, comme c'est le cas aujourd'hui dans de nombreuses revues en ligne (c'est le cas dans l'exemple de la revue Médiévales, publié en ligne par la plate-forme Revue-org). La procédure est assez simple : il s'agit de définir l'espace alloué à ces notes marginales, la localisation (à droite/à gauche), la taille de la police et ... c'est tout ! Voici le script à tester :
\setuppapersize[A4]
% configuration de l'espace alloué aux notes
\setuplayout [backspace=40mm]
\setuppagenumbering[location={header,inright}]
% configuration de la localisation de la note (ici à l'intérieur et à gauche)
\setupmargindata[inmargin][location=left]
% Taille de la police utilisée, ici 9pt
\setupmargindata[inmargin][style={\switchtobodyfont[ss,9pt]}]
\setupbodyfontenvironment[default][em=italic]
\usemodule[simplefonts]
\starttext
Cette assurance impériale, Athènes la devait à sa {\em forme}  \inmargin[][align=middle]{Platon, {\em La République.}}  politique (la Cité) et à son {\em régime} politique, tantôt aristocratique, tantôt démocratique. Il est à noter que c'est au moment où la philosophie politique prend son essor, avec les grandes théorisations,  \inmargin[][align=middle]{Aristote, {\em Politiques}, 1.1252b 22.} que sont la {\em République} de Platon et {\em les Politiques} d'Aristote, que la Cité d'Athènes trouve son tragique destin. Et c'est justement par la politique que la Cité avait fourni aux Grecs le moyen de se libérer de la subjectivité tragique. La Cité grecque représente non seulement la première articulation {\em politique} objective de l'existence humaine, mais elle hisse celle-ci hors de l'existence des {\em polifemi} \inmargin[][align=middle]{G. Vico, {\em La Scienza Nova}, Napoli, 1725.}  (le terme est de Giambatista Vico, le philosophe napolitain du XVIIIème siècle), auxquels Aristote fait allusion  au chapitre 1 du Livre I des {\em Politiques} lorsqu'il fait référence à l'{\em Odyssée} d'Homère.
\stoptext

Ce qui affiche le rendu de la figure 11 suivante :

(Fig. 15) ConTeXt - Notes dans la marge
  • Remarque : la commande \setupinmargin a été renommée \setupinmargindata. Un exemple autre que celui de la figure 11 ci-dessus permet d'insérer du texte dans la marge à droite :
\setupmargindata[inmargin][location=right]
\starttext
Ceci est un exemple d'une note simple avec une police penchée. Si les choses sont faites correctement, la note \inmargin{Ici nous avons une note simple.} devrait être imprimée sur le côté du document avec la commande \type{\inmargin} placée dans le texte. Vous devrez, bien entendu, ajuster les marges pour donner d'abord de l'espace à la note, puis la justifier à droite ou à gauche, etc. regardez la documentation disponible sur \type{setupmargindata} et \type{switchbodyfont}.
\stoptext

Notes de bas de page

Notes en bas de page : simples
  • Notes simples et apparat critique complexe
  • Concernant les notes de bas de page, deux cas se rencontrent en général, le cas simple et le cas complexe, notamment celui de ce que l'on nomme l'apparat critique, qui est un système de notes de bas de page employées pour donner diverses leçons d'un texte, manuscrit ou autre :
  1. Dans le premier cas, le plus simple et le plus répandu, les notes se suivent dans le texte en bas de page et suivent une numérotation ordinale (note 1, note 2, note n, etc.).
  2. Dans le second cas, celui rencontré lors de la mise en page d'ouvrages spécialisés (par exemple dans l'édition des variantes de manuscrits), on peut vouloir chercher à obtenir des notes dans les notes et une hiérarchisation des niveaux de notes, comme c'est le cas désormais avec des outils issus de LATEX (comme Classical Text Editor).
  • Regardons maintenant comment ConTeXt permet d'imprimer des notes simples, puis des notes de plus en plus complexes.
Les notes simples en bas de page dans ConTeXt
  • Les notes de bas de page simples font appel à la commande \footnote{texte de la note}. Ce qui donne l'exemple suivant :
\usemodule[simplefonts]
\definefontfamily [mainface] [serif] [TeX Gyre Pagella]
\setupbodyfont[mainface]
\startext
Ceci\footnote[footA]{Ou cela, si vous préférez.} est une phrase qui contient une note de bas de page\footnote{En vérité, deux notes; celle-ci et \in{note}[footA] celle qui se trouve \at{page}[footA], appelée par \note[footA].}.  
\stoptext

(L'affichage donne des "?" après les commandes \in et \at, qui sont des commandes utilisées pour les références à des pages ou des chapitres, commandes que nous verrons plus loin).

  • On peut aussi avoir besoin d'une note dans une note; ce qui donne le code suivant :
\usemodule[simplefonts]
\definefontfamily [mainface] [serif] [TeX Gyre Pagella]
\setupbodyfont[mainface]
\startext
Cette note\footnote(Ou bien celle-là\footnote{Ou bien peut-être les deux.}, si vous préférez.} est une phrase dans laquelle on trouve une note.
\stoptext
  • La manière d'afficher les notes en bas de page, sur une colonne, voire plusieurs, soit à la suite, soit sous forme de liste numérotée par paragraphe est réglable grâce aux commandes suivantes, illustrées ensuite par les figure 13 et 14 ci-dessous.
  • Commençons par un exemple de simples notes ajoutées les unes derrière les autres mais sur la même ligne. Cela est possible grâce au code suivant:
\setuppapersize[A4]
\definefontfamily [mainface] [serif] [TeX Gyre Pagella]
\setupbodyfont[mainface]
\setuplanguage[fr][patterns={fr}]
\define[1]\footnotenumbercommand{#1.}
\setupnotation [footnote] [
  numbercommand=\footnotenumbercommand,
  alternative=serried,
]
\setupnote[footnote] [paragraph=yes,]
% \setupfootnotes[n=4]
\starttext
Lorsqu'Augustin d'Hippone arriva à Milan\footnote{Où il avait trouvé un poste pour rédiger les panégyriques, sur la recommandation du sénateur Symmaque.}, il fût étonné de voir que beaucoup autour de lui lisaient silencieusement.\footnote{%
Ceci est une autre note. Voyez comment elle commence sur la même ligne que la première note ?
}
\stoptext
(Fig. 16) ConTeXt - Notes de pied de page simples
  • Nous choisissons maintenant de produire une liste numérotée de notes, mais en les disposant les unes au-dessous des autres, sur deux, voire plusieurs colonnes. Dans l'exemple qui suit nous avons choisi d'afficher le texte des notes sur 2 colonnes au moyen de la commande \setupfootnotes[n=2]. Vous pouvez faire varier l'affichage de la disposition des notes en décommentant les lignes à partir de \setupnotation [footnote].
\definefallbackfamily [mainface] [serif] [DejaVu Serif] [range=cyrillic] 
\definefallbackfamily [mainface] [serif] [DejaVu Serif] [range={greekandcoptic, greekextended}, force=yes, rscale=auto]
\definefontfamily [mainface] [serif] [TeX Gyre Pagella]
\setupbodyfont[mainface]
\setupbodyfontenvironment[default][em=italic]
\setuplanguage[fr][patterns={fr,de,ru,gr}]
\define[1]\footnotenumbercommand{#1.}
% \setupnotation [footnote] [
%  numbercommand=\footnotenumbercommand,
% alternative=serried,
% ]
% \setupnote[footnote] [paragraph=yes,]
 \setupfootnotes[n=2]
\starttext
Voyons ce qu'écrit Descartes \footnote{René Descartes, {\em Méditations Métaphysiques}, II.} :
\quotation{Je suppose donc que toutes les choses que je vois sont fausses; je me persuade que rien n'a jamais été de tout ce que ma mémoire remplie de mensonges me représente; je pense n'avoir aucun sens; je crois que le corps, la figure, l'étendue, le mouvement et le lieu ne sont que des fictions de mon esprit. Qu'est-ce donc qui pourra être estimé véritable ? Peut-être rien autre chose, {\em sinon qu'il n'y a rien au monde de certain}\footnote{C'est nous qui soulignons. On est en droit de se demander si ce qui est incertain et douteux est par conséquent faux. Beaucoup de choses probables, qui manquent de la certitude apodictique, peuvent se révéler vraies.}.

F. Nietzsche semble avoir repéré une difficulté concernant l'usage général de la notion de {\em vertu}\footnote{Friedrich Nietzsche, {\em Also sprach Zarathustra}, Kapitel 38.} :
\quotation{Ach, wie übel ihnen das Wort »Tugend« aus dem Munde läuft! Und wenn sie sagen: »ich bin gerecht,« so klingt es immer gleich wie: »ich bin gerächt!«}

Une phrase en russe :
Традиционная систематика лишайников оказывается во многом условна и

Écoutons ce que Platon fait dire à Socrate\footnote{Platon, {\em Apologie de Socrate}.} :
\quotation{Ὅτι μὲν ὑμεῖς, ὦ ἄνδρες Ἀθηναῖοι, 
πεπόνθατε ὑπὸ τῶν ἐμῶν κατηγόρων, 
οὐκ οἶδα· ἐγὼ δ' οὖν καὶ αὐτὸς ὑπ' 
αὐτῶν ὀλίγου ἐμαυτοῦ ἐπελαθόμην, 
οὕτω πιθανῶς ἔλεγον}.
\stoptext
(Fig. 17) ConTeXt - Notes de pied de page sur deux colonnes

Notes de fin de chapitre

  • Pour regrouper les notes en fin de chapitre, le code est le suivant :
\startsetups chapter:after
     \ifcase\rawcountervalue[footnote]\relax
     \or
         \startsubject[title=Notes]
             \placefootnotes
         \stopsubject
     \else
         \startsubject[title=Notes]
             \placefootnotes
         \stopsubject
     \fi
\stopsetups

\setupnotes[location=none]
\setupnotation[way=bychapter]

\setuphead[chapter][aftersection=\setups{chapter:after}]

Notes complexes en bas de page

Apparat critique en notes de bas de page avec LATEX
  • S'agissant des difficultés rencontrées pour mettre au point un apparat critique (parfois dans des langues non-latines), on consultera l'article en ligne paru dans le Cahier de Recherches Médiévales et Humanistes (spécialement le paragraphe 71). Avec LATEX, la création de l’apparat critique exige que tous les paramètres soient définis dans le préambule. L’utilisateur déclare notamment les modules et les commandes qu’il souhaite utiliser. Le module ledmac met à disposition la commande \type{\edtext{…}{…}}, qui définit le lieu variant (ici appelé « lemme »), lequel sera repris dans le ou les apparats en bas de page et qui, à l’aide des commandes \type{\Afootnote}, \type{\Bfootnote}, \type{\Cfootnote}, etc., permet de spécifier à quel étage on cherche à afficher les informations. On peut définir autant d’étages que l’on veut à l’intérieur de l’apparat critique affiché en bas de page. Les paramètres peuvent être personnalisés par une commande qui décrit la nature des notes présentées sur un étage donné. Outre les exemples donnés par Laurent Brun (cf. la référence ci-dessus), on pourra regarder le travail de Maïeul Rouquette sur les commandes reledmac qui concernent les notes constituant proprement l'apparat critique et reledpar, une macro qui sert à afficher du texte en parallèle (on trouvera ici les scripts et les sorties PDF de reledmac et reledpar).
  • Nous donnons ici, à titre de comparaison, le script LATEX contenant la commande reledmac, qui permet d'afficher l'apparat critique d'un texte médiéval (exemple dû au travail de Maïeul Rouquette). On joint son affichage au format SVG (figure 12).
\documentclass{article}
\usepackage{fontspec}
\usepackage{libertineotf}
\usepackage{polyglossia}
\setmainlanguage{latin}
\setotherlanguage{english}
\usepackage{SIunits}

\usepackage[series={A,B,C},noend,noeledsec,noledgroup]{reledmac}

% THE APPARATI ARE PARAGRAPHED
\Xarrangement{paragraph}


%VERTICAL SPACES BEFORE APPARATUS
\preXnotes{0.5cm}

% VERTICAL SPACE BEFORE RULES
\newlength{\before} 			% A length which will contains the space before the rule
\setlength{\before}{3mm} 		% The space we want to have
\addtolength{\before}{3pt} 		% A compensation for the space decreased by \footnoterule
\Xbeforenotes{\before} 			% And so, we configure reledmac.

% VERTICAL SPACE AFTER RULES
\newlength{\after}				% A length which will contains the space before the rule
\setlength{\after}{3mm}			% The space we want to have
\addtolength{\after}{-2.6pt}	% A compensation for the space added by \footnoterule
\Xafterrule{\after}				% And so, we configure reledmac.

\begin{document}

\begin{english}
\title{Setting spaces around footnote rules}
\maketitle
\begin{abstract}
This file sets spaces around footnote rules, to have a uniform \unit{3}{\milli\meter} before and after. There are three levels of paragraphed notes. Before the first series of notes, we have \unit{0.5}{\centi\meter}.

We use \verb+\Xbeforenotes+ and \verb+\Xafterrule+. There is, anyway, a subtlety: the footnote rule of reledmac is the standard \LaTeX footnote rule: \verb+\footnoterule+, which automatically decreases \unit{3}{pt} before and adds \unit{2.6}{pt} after. So we have to compensate, by defining to length:  \verb+before+ and \verb+\after+, which are passed to the respective commands. 
\end{abstract}
\end{english}

\beginnumbering
\pstart%
Cum defensionum \edtext{laboribus}{\Cfootnote{first note}} senatoriisque muneribus aut omnino aut magna ex parte essem aliquando liberatus, rettuli me, Brute, te hortante maxime ad ea studia, quae retenta animo, remissa temporibus, longo intervallo intermissa revocavi, et cum omnium artium, quae ad rectam vivendi viam pertinerent, \edtext{ratio}{\Afootnote{second note}} et disciplina studio sapientiae, quae philosophia dicitur, contineretur, hoc mihi Latinis litteris \edtext{inlustrandum}{\Cfootnote{third note}} putavi, non quia \edtext{philosophia}{\Bfootnote{fourth note}} Graecis et litteris et doctoribus percipi non posset, sed meum semper iudicium fuit omnia nostros aut invenisse per se sapientius quam Graecos aut accepta ab illis fecisse meliora, quae quidem digna statuissent, in quibus elaborarent.
\pend

\pstart%
Cum defensionum \edtext{laboribus}{\Cfootnote{first note}} senatoriisque muneribus aut omnino aut magna ex parte essem aliquando liberatus, rettuli me, Brute, te hortante maxime ad ea studia, quae retenta animo, remissa temporibus, longo intervallo intermissa revocavi, et cum omnium artium, quae ad rectam vivendi viam pertinerent, \edtext{ratio}{\Afootnote{second note}} et disciplina studio sapientiae, quae philosophia dicitur, contineretur, hoc mihi Latinis litteris \edtext{inlustrandum}{\Cfootnote{third note}} putavi, non quia \edtext{philosophia}{\Bfootnote{fourth note}} Graecis et litteris et doctoribus percipi non posset, sed meum semper iudicium fuit omnia nostros aut invenisse per se sapientius quam Graecos aut accepta ab illis fecisse meliora, quae quidem digna statuissent, in quibus elaborarent.
\pend

\pstart%
Cum defensionum \edtext{laboribus}{\Cfootnote{first note}} senatoriisque muneribus aut omnino aut magna ex parte essem aliquando liberatus, rettuli me, Brute, te hortante maxime ad ea studia, quae retenta animo, remissa temporibus, longo intervallo intermissa revocavi, et cum omnium artium, quae ad rectam vivendi viam pertinerent, \edtext{ratio}{\Afootnote{second note}} et disciplina studio sapientiae, quae philosophia dicitur, contineretur, hoc mihi Latinis litteris \edtext{inlustrandum}{\Cfootnote{third note}} putavi, non quia \edtext{philosophia}{\Bfootnote{fourth note}} Graecis et litteris et doctoribus percipi non posset, sed meum semper iudicium fuit omnia nostros aut invenisse per se sapientius quam Graecos aut accepta ab illis fecisse meliora, quae quidem digna statuissent, in quibus elaborarent.
\pend

\pstart%
Cum defensionum \edtext{laboribus}{\Cfootnote{first note}} senatoriisque muneribus aut omnino aut magna ex parte essem aliquando liberatus, rettuli me, Brute, te hortante maxime ad ea studia, quae retenta animo, remissa temporibus, longo intervallo intermissa revocavi, et cum omnium artium, quae ad rectam vivendi viam pertinerent, \edtext{ratio}{\Afootnote{second note}} et disciplina studio sapientiae, quae philosophia dicitur, contineretur, hoc mihi Latinis litteris \edtext{inlustrandum}{\Cfootnote{third note}} putavi, non quia \edtext{philosophia}{\Bfootnote{fourth note}} Graecis et litteris et doctoribus percipi non posset, sed meum semper iudicium fuit omnia nostros aut invenisse per se sapientius quam Graecos aut accepta ab illis fecisse meliora, quae quidem digna statuissent, in quibus elaborarent.
\pend

\pstart%
Cum defensionum \edtext{laboribus}{\Cfootnote{first note}} senatoriisque muneribus aut omnino aut magna ex parte essem aliquando liberatus, rettuli me, Brute, te hortante maxime ad ea studia, quae retenta animo, remissa temporibus, longo intervallo intermissa revocavi, et cum omnium artium, quae ad rectam vivendi viam pertinerent, \edtext{ratio}{\Afootnote{second note}} et disciplina studio sapientiae, quae philosophia dicitur, contineretur, hoc mihi Latinis litteris \edtext{inlustrandum}{\Cfootnote{third note}} putavi, non quia \edtext{philosophia}{\Bfootnote{fourth note}} Graecis et litteris et doctoribus percipi non posset, sed meum semper iudicium fuit omnia nostros aut invenisse per se sapientius quam Graecos aut accepta ab illis fecisse meliora, quae quidem digna statuissent, in quibus elaborarent.
\pend

\pstart%
Cum defensionum \edtext{laboribus}{\Cfootnote{first note}} senatoriisque muneribus aut omnino aut magna ex parte essem aliquando liberatus, rettuli me, Brute, te hortante maxime ad ea studia, quae retenta animo, remissa temporibus, longo intervallo intermissa revocavi, et cum omnium artium, quae ad rectam vivendi viam pertinerent, \edtext{ratio}{\Afootnote{second note}} et disciplina studio sapientiae, quae philosophia dicitur, contineretur, hoc mihi Latinis litteris \edtext{inlustrandum}{\Cfootnote{third note}} putavi, non quia \edtext{philosophia}{\Bfootnote{fourth note}} Graecis et litteris et doctoribus percipi non posset, sed meum semper iudicium fuit omnia nostros aut invenisse per se sapientius quam Graecos aut accepta ab illis fecisse meliora, quae quidem digna statuissent, in quibus elaborarent.
\pend

\endnumbering

\end{document}
(Fig. 18) LaTeX - notes de bas de page avec le module reledmac
Apparat critique en notes de bas de page avec ConTeXt
Texte simple sur une seule colonne et apparat critique
  • Nous donnons ici le script équivalent dans ConTeXt (merci à Pablo Rodriguez pour son aide). On remarquera, si on le compare au script précédent codé avec LATEX à la fois l'économie de moyens et la simplicité de mise en œuvre. Nous commentons le fichier source (commentaire dans le fichier, avec le symbole 'pourcentage'). La sortie affichée par la figure 12bis n'a de valeur qu'indicative, puisqu'on a décidé de se concentrer ici uniquement sur les notes de bas de page et non pas sur une mise en page complexe, qui comprendrait un texte en grec ou en latin, avec en regard sa traduction sur une colonne distincte, page sur laquelle on trouverait, un titre en en-tête, des notes marginales et, au surplus, un apparat critique en notes de bas de page. Ici, l'apparat critique est constitué autour des lignes où apparaissent les termes recherchés.
 \mainlanguage[la] % Définition du latin comme langue principale du document.
\setupbodyfontenvironment[default][em=italic]
 \setuplayout[header=2cm, footer=2cm] % Paramétrage de la page;
 \setuplinenumbering[step=2] % La sortie PDF comportera une numérotation de 2 lignes en  2 lignes; on peut régler sur 1, 5 ou 10.
 \setupnotations[alternative=serried] % On définit le caractère séquentiel des notes.
 \definelinenote[aNote] % Plusieurs manières d'afficher les notes ici, notamment en une ou en plusieurs colonnes (n=2, ou n=3).
 \definelinenote[bNote][n=2]
 \definelinenote[cNote][n=3]
 \definelinenote[dNote][paragraph=yes] % Les notes se suivent sur la même ligne.
 \def\ANote#1#2{#1\aNote{#1] #2}}
 \def\BNote#1#2{#1\bNote{#1] #2}}
 \def\CNote#1#2{#1\cNote{#1] #2}}
 \def\DNote#1#2{#1\dNote{#1] #2}}
 \setupbodyfont[palatino, 7.8pt]
 \starttext
 \start\fr % On indique à ConTeXt que l'on veut ici du texte en français (ou 'en' pour l'anglais). Le texte français est en ''italiques''.
{\em Définir un apparat critique et le mettre en page avec un traitement de texte courant est un véritable casse-tête. \type{LaTeX} et \type{ConTeXt} offrent des outils d'automatisation encore assez mal connus dans la communauté des éditeurs, notamment dans l'édition savante, pour la collation et la comparaison de textes médiévaux}.\par
 \startlinenumbering
 \dorecurse{6}% À utiliser seulement pour répéter le paragraphe suivant, ici 6 fois.
    {Cum defensionum \CNote{laboribus}{première note} senatoriisque
    muneribus aut omnino aut magna ex parte essem aliquando liberatus,
    rettuli me, Brute, te hortante maxime ad ea studia, quae retenta
    animo, remissa temporibus, longo intervallo intermissa revocavi, et
    cum omnium artium, quae ad rectam vivendi viam pertinerent,
    \ANote{ratio}{seconde note} et disciplina studio sapientiae, quae
    philosophia dicitur, contineretur, hoc mihi Latinis litteris
    \DNote{inlustrandum}{troisième note} putavi, non quia
    \BNote{philosophia}{quatrième note} Graecis et litteris et doctoribus
    percipi non posset, sed meum semper iudicium fuit omnia nostros aut
    invenisse per se sapientius quam Graecos aut accepta ab illis
    fecisse meliora, quae quidem digna statuissent, in quibus
    elaborarent.\par}
 \stoplinenumbering
 \stoptext
(Fig. 19) ConTeXt - Équivalent de reledmac : apparat critique en notes de bas de page
Texte grec et sa traduction latine sur deux colonnes
  • Il s'agit maintenant de mettre en œuvre un apparat critique qui concerne un texte en grec et sa traduction latine en regard; l'apparat critique est toujours en notes bas de page, selon plusieurs modalités. Les occurrence sont affichées lignes par ligne (et non par appel de note). Pour le grec, c'est la police GFS Didot qui est choisie (elle est présente sur le système Windows), mais on peut en choisir une autre, à condition bien sûr qu'elle affiche les esprits et les accents du grec ancien. De même, il est possible de régler la clé 'la' de la commande \setuplanguage[agr][patterns={agr,la}], sur 'ala' (latin ancien), ce qui vous permettra d'afficher les 'u' en 'v' et les 'j' en 'i'. Pour ce qui concerne les distinctions entre les différents latins (anciens, médiéval, ecclésiastique, etc. on se reportera à la documentation existante. La commande \dorecurse est seulement utile ici pour ne pas avoir à répéter le texte manuellement. On peut s'en dispenser dans un test en pré-production. Il est possible que dans l'usage d'un texte sur plusieurs pages, on rencontre un bug dû à la commande \startcolumns[n=2, balance=yes]. La clé balance semble poser problème. Ce script est aimablement fourni par Pablo Rodriguez. Le texte grec provient des Catégories d'Aristote et la traduction latine de Boèce.
\setuplanguage[agr][patterns={agr,la}] % réglage sur grec ancien et latin
\mainlanguage[agr] % Grec comme langue principale
\definefallbackfamily [mainface] [serif] [GFS Didot] [preset=range:greek]
\definefontfamily [mainface] [serif] [TeX Gyre Pagella]
\setuplayout[header=2cm, footer=2cm]
\setupnotes[compress=yes]
\setupnotations[alternative=serried]
\definelinenote[aNote]
\definelinenote[bNote][n=2]
\definelinenote[cNote][n=3]
\definelinenote[dNote][paragraph=yes]
\def\ANote#1#2{#1\aNote{#1] #2}}
\def\BNote#1#2{#1\bNote{#1] #2}}
\def\CNote#1#2{#1\cNote{#1] #2}}
\def\DNote#1#2{#1\dNote{#1] #2}}
\setupalign[hz, hanging]
\setuptolerance[strict]
\setuplinenumbering[step=5, location=inright, distance=1ex, align=center, width=0.5em]
\definemargindata[Stephanus][location=inner, distance=2ex, style=\em]
\setupbodyfont[mainface, 7.8pt]
\starttext

\start\fr % Un peu de texte en français.
Définir un apparat critique et le mettre en page avec un traitement de texte courant est un véritable casse-tête. \type{LaTeX} et \type{ConTeXt} offrent des outils d'automatisation encore assez mal connus dans la communauté des éditeurs, notamment dans l'édition savante, pour la collation et la comparaison de textes médiévaux.\par
\stop
\dorecurse{4}{\startcolumns[n=2, balance=yes]
\Stephanus{1a} Ὁμώνυμα λέγεται ὧν ὄνομα
    μόνον κοινόν, ὁ δὲ κατὰ τοὔνομα
    λόγος τῆς οὐσίας ἕτερος, οἷον ζῷον
    ὅ τε ἄνθρωπος καὶ τὸ γεγραμμένον·
    τούτων γὰρ ὄνομα μόνον κοινόν, ὁ δὲ
    κατὰ τοὔνομα λόγος τῆς οὐσίας
    ἕτερος· ἐὰν γὰρ ἀποδιδῷ τις τί
    ἐστιν αὐτῶν ἑκατέρῳ τὸ ζῴῳ
    εἶναι, ἴδιον ἑκατέρου λόγον ἀποδώσει.

    \column

    \startlinenumbering[continue]
    Aequivoca dicuntur quorum \CNote{nomen}{première note} solum
    commune est, secundum nomen vero \ANote{substantiae}{seconde note}
    \ANote{ratio}{seconde note} diversa, ut animal
    \DNote{homo}{troisième note} et quod pingitur. Horum enim solum
    nomen commune est, secundum nomen vero substantiae ratio diversa;
    si enim quis assignet quid est utrique eorum quo sint animalia,
    propriam assignabit utriusque rationem.
    \stoplinenumbering

    \stopcolumns}
    \stoptext
(Fig. 20) ConTeXt - Apparat critique-Texte sur 2 colonnes
Notes de bas de pages et bibliographie
  • On peut vouloir automatiser un certain nombre de tâches (et le monde LATEX est développé dans ce but), en particulier lorsqu'il s'agit de récupérer le contenu bibliographique des notes afin de placer les titres des ouvrages (auxquels il est fait référence dans les notes) dans une section Bibliographie réservée à cet effet. Le concept est celui-ci : le titre de l'ouvrage cité en note de bas de page est repris dans la section "bibliographie". Comment procéder ?
  • En premier lieu, on utilise des buffer (tampons-mémoire) pour garder en mémoire les données bibliographiques (titre de l'ouvrage, auteur, éditeur, année, etc.). Chaque buffer est identifié par son nom (e.g. biblio); chaque ouvrage est identifié par le nom de l'auteur et l'année de publication (e.g. @LeoStrauss1952); cet item bibliographique est lui-même contenu dans une section bibliographique (e.g. hobbes). On doit donc coder les conditions dans lesquelles une référence bibliographique peut apparaître à la fois en note de bas de page et en même temps dans une section bibliographique en fin de partie ou en fin d'ouvrage (de manière à ne pas faire deux fois le même travail).

L'exemple ci-dessous requiert la connaissance de la manière dont ConTeXt MKIV gère les références bibliographiques. Cette gestion des références se fait via les mécanismes de :

\usebtxdataset[nom-base][biblio.buffer]
\usebtxdefinitions[apa]
\definebtxrendering[nom-base][apa][dataset=nom-base]
  • Nous n'entrons pas ici dans les explications concernant btx (bibliography context); nous le ferons lorsque nous aborderons le thème des références bibliographiques avec \cite[].
\startbuffer[biblio]
@book{Strauss1952,
  author ={Strauss, Leo}
  title = {The Political Philosophy of Hobbes: Its Basis and its Genesis},
  year = {1952},
  edition = {Chicago University Press},
}
\stopbuffer

\usebtxdataset[hobbes][biblio.buffer]
\usebtxdefinitions[apa]
\definebtxrendering[hobbes][apa][dataset=hobbes]

\starttext
Ce travail à la fois précis, original et clair, étudie les origines de la pensée politique de Hobbes. Celles-ci se trouvent partiellement dans l'application de la méthode physico-mathématique aux sciences morales. Cependant, la psychologie de Hobbes n'explique pas tout son système puisque une psychologie fondée sur le déterminisme n'est pas inévitablement pessimiste, comme Leibniz et, jusqu'à un certain point, Rousseau l'ont prouvé par leur propre exemple. En réalité, le pessimisme de Hobbes découle fort logiquement du fait qu'il définit l'homme comme un animal incapable de se satisfaire de l'objet qui lui est immédiatement présenté. Par conséquent, l'être humain ne peut vivre que tourmenté d'un désir infini que rien ne peut assouvir. De là, un perpétuel instinct de conquête d'une part, et, par ricochet, une perpétuelle crainte d'être tué. Ces tendances paradoxalement complémentaires et irréductibles n'ont d'autre aboutissement que d'exiger, l'une et l'autre, la tyrannie systématique\footnote{\cite[alternative=entry][hobbes::Strauss1952]}.
\startbackmatter
  \startchapter[title={Bibliographie}]
    \placelistofpublications
    \startsection[title=Philosophie politique]
      \placelistofpublications[hobbes][method=dataset]
    \stopsection
  \stopchapter
\stopbackmatter
\stoptext
  • Le résultat du code est imprimé ci-dessous en deux parties :
(Fig. 21) ConTeXt - Texte avec référence bibliographique en note et en fin de section (Part 1)
(Fig. 22) ConTeXt - Texte avec référence bibliographique en note et en fin de section (Part 2)

Configurer et utiliser un ou plusieurs jeux de polices

Configurer les polices

  • Comme ConTeXt est en perpétuelle évolution, il existe plusieurs manières de faire appel à des familles de police. Le module simplefonts étant intégré au cœur de ConTeXt, il apparaît que le plus simple consiste à ne rien configurer et à utiliser la police utilisée par le noyau ConTeXt par défaut, comme nous l'avons indiqué au chapitre 3.8. Le module intégré simplefonts est assez souple pour répondre aux besoins généraux en matière de polices.
  • À noter que de même que le module simplefonts est intégré au noyau ConTeXt, la commande \setmainfont n'a plus cours. Comme on va le voir dans le paragraphe suivant, c'est avec une commande du type \definefontfamily [myfamily] [serif] [DejaVu] (ainsi qu'une syntaxe identique pour régler la police 'sans', 'mono' et 'math', que l'on accède aux différents paramètrages des polices. De la sorte, pour utiliser la police de votre choix, on fera suivre \definefontfamily [myfamily] [serif] [DejaVu] de la commande \setupbodyfont [myfamily]. Il faut noter que pour les polices monospace, on peut obtenir un rendu avec des ligatures non-désirées avec \type. Afin d'éviter cela, la clé [features] doit être désactivée, ce qui donne : \definefontfamily [myfamily] [mono] [TeX Gyre Cursor] [features=none].

On peut ainsi vouloir utiliser une famille de police particulière et même changer au sein du même document, de corps de police. C'est possible en ayant recours à une commande qui définit la famille que nous voulons utiliser, suivie de la commande précisant le corps de police, ce qui donne dans un premier temps, par exemple, le jeu de commande que voici (ici sous système Linux, avec les polices installées sur le système) :

\definefontfamily [linux] [serif] [Linux Libertine O]
\setupbodyfont[Linux Libertine 0]
  • Note: Pour des exemples, vous pouvez aller lire le fichier font-sel.mkvi dans le dossier ConTeXt, fichier qui se trouve dans /home/utilisateur/context/tex/texmf-context/tex/context/base/mkiv (sous Linux).
  • Comment puis-je connaître le nom des polices installées ?

D'abord, peut-être souhaitez-vous installer des polices de votre choix, si cela n'a pas déjà été fait (vous trouverez sur Internet, via un moteur de recherche, quantité de polices : veillez cependant à la licence et au type de police que vous installez -- True Type, OTF, etc.). Sous Windows, il suffit de télécharger la ou les polices, puis de double-cliquer sur le fichier pour procéder à une installation automatique. Sous système Linux/UNIX vous pouvez utiliser le répertoire $HOME/.fonts pour un usage personnel ou bien /usr/local/share/fonts pour un usage en réseau. Vous devez faire pointer la variable d'environnement OSFONTDIR vers le répertoire où se trouvent les polices :

export OSFONTDIR="/usr/local/share/fonts;$HOME/.fonts".

Ensuite, sous Windows, comme sous Linux, il faudra exécuter la commande suivante, afin de recharger la base de donnée des polices : mtxrun --script fonts --reload

Vous pouvez alors interroger la base, afin de lister les polices installées :

  1. mtxrun --script fonts --list --all
  2. Dans la liste qui s'affiche, on choisira la police qui convient à la tâche que l'on s'est assigné, via la commande (par exemple) :

mtxrun --script fonts --list --pattern=deli* --all

  • La commande qui liste les polices renvoie quelque chose qui ressemble aux trois colonnes ci-dessous :
  • ams
  • amsbold
  • amsmedium
  • antpoltbold
  • antpoltbolditalic
  • antpoltcondbold
  • antpoltcondbolditalic
  • antpoltconditalic
  • antpoltcondregular
  • antpoltexpdbold


  • wncysc10
  • wncyb10
  • wncysc10
  • antpoltbold
  • antpoltbolditalic
  • antpoltcondbold
  • antpoltcondbolditalic
  • antpoltconditalic
  • antpoltcondregular
  • antpoltexpdbold


  • wncysc10.afm
  • wncyb10.afm
  • wncysc10.afm
  • antpolt-bold.otf
  • antpolt-bolditalic.otf
  • antpoltcond-bold.otf
  • antpoltcond-bolditalic.otf
  • antpoltcond-italic.otf
  • antpoltcond-regular.otf
  • antpoltexpd-bold.otf
  • On remarque ici que la commande produit une liste sur 3 colonnes. la deuxième colonne donne le nom normalisé de la police en bas de casse et la troisième colonne le nom du fichier. Si vous cherchez une police particulière (ici la police Delicious), vous pouvez utiliser la commande grep (sous Linux); ou bien la commande suivante mtxrun --script fonts --list --pattern=deli* --all, ce qui affiche ceci :
  • delicious
  • deliciousbold
  • deliciousbolditalic
  • deliciousheavy
  • deliciousitalic
  • deliciousmedium
  • deliciousnormal
  • deliciousregular
  • deliciousroman
  • delicioussmallcaps
  • deliciousbold
  • deliciousbold
  • deliciousbolditalic
  • deliciousheavy
  • deliciousitalic
  • deliciousitalic
  • deliciousroman
  • deliciousheavy
  • deliciousroman
  • delicious smallcaps
  • Delicious-Bold.otf
  • Delicious-Bold.otf
  • Delicious-BoldItalic.otf
  • Delicious-Heavy.otf
  • Delicious-Italic.otf
  • Delicious-Italic.otf
  • Delicious-Roman.otf
  • Delicious-Heavy.otf
  • Delicious-Roman.otf
  • Delicious-SmallCaps.otf
Recharger la base des polices

À l'évidence, vous avez installé une ou plusieurs polices sur votre système (qu'il s'agisse de Windows ou de Linux, ou d'OS X), mais elle semble inopérante lorsque vous lancez la compilation d'un fichier *.tex avec ConTeXt, ou avec TeXWorks. La solution consiste à vérifier d'abord que vous avez bien réglé la configuration par la commande (sous Linux) export OSFONTDIR=~/.fonts:/usr/share/[...] et la commande (sous Windows) : set OSFONTDIR=c:/windows/fonts/ et ensuite à réinitialiser la base des polices. Sous Linux, la réinitialisation de la base se fait avec la commande : fc-cache -v -f;

  • Sous tous les systèmes, on peut recharger ensuite la base des polices via la commande :

mtxrun --script fonts --reload.


Comment sélectionner une police ?

Comme on peut le supposer, si vous avez pris connaissance des commandes qui permettent de définir une famille de police, la commande analogue sera employée pour choisir une des polices possible dans la famille (à condition bien sûr, que cette police dispose bien des qualités que vous lui prêtez). La commande sera (pour une police Delicious en Roman) : \definefont [delicious] [name:deliciousroman]; la clé [name:deliciousroman] fait référence à la deuxième colonne de la liste ci-dessus, mais on peut aussi utiliser le nom du fichier (ici Delicious-Roman).

Vous pouvez tester avec le script suivant :

\definefont [delicious] [name:deliciousroman]
\starttext
\start
\delicious
% On insère un texte factice
\input knuth
\stop
\input knuth
\stoptext
  • Pour un peu plus de détails sur l'installation et la mise en œuvre des polices, voir la page Fonts in Luatex, sur ConTeXt Garden (en).

Définir une police et changer de police dans un même document

  • Nous désirons changer de graisse et de corps de police dans un même document. Faisons appel à trois familles de police installées sur le système, Deja Vu, Office, Linux, que nous allons trouver en serif, sans, mono et math (serif=roman, ce qui donne Times New Roman dans la famille Office, Arial pour sans, Courier pour mono et TeX Gyre pour math, toujours pour la famille Office). Notre test ici consiste à afficher du texte et des chiffres en faisant varier les possibilités d'affichage. Nous définissons les familles de police que nous désirons utiliser avec une commande du type \definefontfamily [famille] [graisse] [police] (par exemple, pour utiliser la police Times New Roman, la commande sera : \definefontfamily [office] [serif] [Times New Roman]. Nous ajoutons la commande \setupbodyfont qui, comme son nom l'indique, sert à spécifier la famille de police principale du document (dans le script ci-dessous, il s'agit de la famille Deja Vu). Lorsque nous avons besoin d'une autre famille de police, il suffit de switcher (i.e. en bon français, de substituer une police à une autre), avec la commande \switchtobodyfont[office]. Regardez ce que donne le script suivant :
\definefontfamily [dejavu] [serif] [DejaVu Serif]
\definefontfamily [dejavu] [sans]  [DejaVu Sans]
\definefontfamily [dejavu] [mono]  [DejaVu Sans Mono]
\definefontfamily [dejavu] [math]  [XITS Math] [scale=1.1]

\definefontfamily [office] [serif] [Times New Roman]
\definefontfamily [office] [sans]  [Arial] [scale=0.9]
\definefontfamily [office] [mono]  [Courier]
\definefontfamily [office] [math]  [TeX Gyre Termes Math]

\definefontfamily [linux] [serif] [Linux Libertine O]
\definefontfamily [linux] [sans]  [Linux Biolinum O]
\definefontfamily [linux] [mono]  [Latin Modern Mono]
\definefontfamily [linux] [math]  [TeX Gyre Pagella Math] [scale=0.9]

\setupbodyfont[dejavu]

\starttext

\rm Texte en Deja Vu Serif \ss Texte en Sans Serif  \tt Texte en Mono \m{1+2=3}

\switchtobodyfont[office]

\rm Texte Office en Serif 123 ( Times New Roman) \ss Texte Sans Serif (Arial) \tt Texte Office en Mono (Courier) \m{1+2=3}

\switchtobodyfont[linux]

\rm Texte Linux en Serif Linux Libertine 123 \ss Texte en Linux Biolinum Sans \tt Texte en Latin Modern Mono \m{1+2=3}

\stoptext

Changement de langue dans un même document

Grec ancien, cyrillique, allemand ...
  • Lorsqu'un document contient différentes langues et que la prise en charge globale de la langue par le système ne permet pas d'afficher tous les caractères d'une langue autre que celle qui est la langue principale du document (problème rencontré avec les langues non-latines, comme le cyrillique ou le grec ancien), on doit momentanément faire appel à une police qui permet d'afficher les caractères en usage dans cette langue.

Cette procédure de recours à une autre police peut être configurée au moyen de la commande \definefallbackfamily qui prend le même argument que la commande \definefontfamily.

Ce jeu de commandes est appelé pour afficher différentes langues dans le même document. Dans l'exemple suivant, nous désirons afficher une suite de textes en français, en allemand, en russe et en grec ancien. Il s'agit donc de faire coexister ces langues. Ici, le texte est brut, car il s'agit ici de ne pas encombrer le code avec des commandes de mise en page. On se borne donc à montrer comment le mécanisme d'affichage produit l'effet escompté, indépendamment des exigences de mise en page (paragraphes séparés, notes de bas de page, etc.). Nous avons besoin d'un alphabet cyrillique et d'un alphabet grec ancien (muni des signes diacritiques que sont les accents et les esprits), mais aussi d'une police qui respecte les signes diacritiques de l'allemand (comme les umlaut). On commence par définir la famille de police que l'on veut utiliser en russe, ce qui donne ceci : \definefallbackfamily [mainface] [serif] [DejaVu Serif] [range=cyrillic]. Et pour afficher du grec ancien :\definefallbackfamily [mainface] [serif] [DejaVu Serif] [range={greekandcoptic, greekextended}, force=yes, rscale=auto]; on définit la police principale par la commande \definefontfamily [mainface] [serif] [TeX Gyre Pagella], suivie de \setupbodyfont[mainface]. Reste à stipuler les langues, ce que nous faisons par \setuplanguage[fr][patterns={fr,de,ru,gr}]. On pourrait se contenter de \setuplanguage[en][patterns={us,de,ru}] pour du texte en anglais, allemand, russe. Notez que, puisqu'il s'agit dans le cas présent de changer de langue et non pas de police, la commande \switchbodyfont est ici inutile. Notre fichier source sera donc codé de la manière suivante :

\definefallbackfamily [mainface] [serif] [DejaVu Serif] [range=cyrillic] 
\definefallbackfamily [mainface] [serif] [DejaVu Serif] [range={greekandcoptic, greekextended}, force=yes, rscale=auto]

\definefontfamily [mainface] [serif] [TeX Gyre Pagella]
\setupbodyfont[mainface]

\setuplanguage[fr][patterns={fr,de,ru,gr}]

\starttext
Voyons ce qu'écrit Descartes dans la seconde Méditation Métaphysique :

\quotation{Je suppose donc que toutes les choses que je vois sont fausses; je me persuade que rien n'a jamais été de tout ce que ma mémoire remplie de mensonges me représente; je pense n'avoir aucun sens; je crois que le corps, la figure, l'étendue, le mouvement et le lieu ne sont que des fictions de mon esprit. Qu'est-ce donc qui pourra être estimé véritable ? Peut-être rien autre chose, sinon qu'il n'y a rien au monde de certain}.

F. Nietzsche semble avoir repéré une difficulté concernant l'usage général de la notion de vertu :

\quotation{Ach, wie übel ihnen das Wort »Tugend« aus dem Munde läuft! Und wenn sie sagen: »ich bin gerecht,« so klingt es immer gleich wie: »ich bin gerächt!«}


Une phrase en russe :
Традиционная систематика лишайников оказывается во многом условна и


Écoutons ce que dit Platon dans son Apologie de Socrate :
\quotation{Ὅτι μὲν ὑμεῖς, ὦ ἄνδρες Ἀθηναῖοι, 
πεπόνθατε ὑπὸ τῶν ἐμῶν κατηγόρων, 
οὐκ οἶδα· ἐγὼ δ' οὖν καὶ αὐτὸς ὑπ' 
αὐτῶν ὀλίγου ἐμαυτοῦ ἐπελαθόμην, 
οὕτω πιθανῶς ἔλεγον}.

\stoptext

Ce qui devrait afficher le rendu suivant (la figure est au format *.svg, qui n'incorpore pas toutes les lettres du fichier de sortie PDF, ici quelques "i"):

(Fig. 10b) ConTeXt - Exemple de page en français, allemand, russe et grec ancien
Langues asiatiques
  • Pour l'affichage de langues asiatiques CJK (Chinois-Japonais-Coréen), la procédure est la même que ci-dessus; il faut seulement veiller à utiliser la police qui correspond et qui est présente sur votre système. Dans l'exemple donné ci-dessous, on peut utiliser MS Mincho (sous Microsoft Windows), ou son équivalent sous Linux (ipaexmincho), ce qui donne le code suivant :
\definefallbackfamily [mainface] [rm] [ipaexmincho] [range=cjkunifiedideographs]
\definefontfamily     [mainface] [rm] [Latin Modern Roman]

\setupbodyfont[mainface]

\starttext
People’s Republic of China (中华人民共和国)
\stoptext

Insérer une figure ou une image

Références bibliographiques, table des matières

Bibliographie

Avant de passer à la composition d'un ouvrage très complexe, il nous faut passer en revue ce dont nous avons besoin, ce que nous savons mettre en œuvre et ce que nous n'avons pas vu, sans tomber dans le cas rare et spécialisé. Il nous reste à produire un exemple de fichier un peu long, avec des parties, des sections, des sous-sections, des notes, des citations, des références, une bibliographie et une table des matières. En attendant de procéder à l'élaboration d'un tel document, il nous reste à maîtriser les références bibliographiques. Pour de plus amples détails, on peut aller consulter en ligne le dossier élaboré par Hans Hagen et Alan Braslau.

Ci-dessous, un exemple d'aperçu général des principe d'usage d'une base de données bibliographique avec ConTeXt.

\usebtxdataset[mkiv-publications.bib]% Définition de la base de données bibliographique
\starttext % Commande bien connue à partir de laquelle on tape du texte
\startbodymatter % Comme son nom l'indique, on entre ici le texte principal (chapitres, sections, sous-sections, etc.)
Au milieu du texte, on peut rédiger une citation avec la commande \cite[article,book]; et même donner une référence bibliographique avec la commande 'footnote', comme ceci\footnote{\cite[alternative=entry][philosophie::Strauss1935]}. Mais au préalable, il faudra avoir défini une base de données bibliographiques; et si on le désire, avoir défini la catégorie dans laquelle ranger nos références.
\stopbodymatter % Le corps du texte principal prend fin ici
\startbackmatter % Commencent ici tout ce qui concerne la bibliographie, mais aussi les index, etc.
\startchapter[title=Bibliographie] % La bibliographie aussi peut être subdivisée en chapitres
\placelistofpublications % comme son nom l'indique
\stopchapter
\stopbackmatter
\stoptext
Bibliographie simple
  • De manière générale, le fichier source doit être construit toujours en gardant à l'esprit que notre bibliographie n'est pas une liste quelconque de livres et de documents divers, mais qu'elle vient en fin d'un ouvrage, d'un chapitre ou d'une thèse. On dispose donc d'un préambule et de quelques commandes pour configurer la bibliographie comme dans l'exemple suivant (que vous pouvez copier et tester). On dispose donc le préambule qui permet de régler la configuration de la page, le texte lui-même (par la commande startbodymatter qu'on peut utiliser ou pas), puis on indique à quel endroit du texte on veut placer la biographie, via les commandes suivantes :
\startbackmatter % Commencent ici tout ce qui est Bibliographie etc.
\startchapter[title=Bibliographie] % La bibliographie aussi peut être subdivisée en chapitres
\placelistofpublications % comme son nom l'indique
\stopchapter
\stopbackmatter
  • Ci-dessous le préambule de notre fichier test :
% Configuration du texte sur une page double
\setuplanguage[fr][patterns={fr}]% On règle le fichier sur la langue française
\mainlanguage[fr]
\setcharacterspacing[frenchpunctuation]% Commande utile afin de bien marquer les césures au bon endroit
\setupbodyfontenvironment[default][em=italic]% On régle les italiques
\setuppagenumbering[alternative=doublesided, location={header, inmargin}]%  chaque chapitre commence sur une page paire; la pagination est en marge dans l'en-tête
\definefontfamily[mainface] [serif] [GFS Didot] % On désire employer ici la police GFS Didot
\setupbodyfont[mainface]
\setupindenting[1.5em]% L'indentation est de 1,5em
\setupindenting[yes]

% Voici maintenant les commandes de configuration de la bibliographie :
\usebtxdataset [Mybiblio.bib] % On fait appel à un fichier externe qui s'appelle Mybiblio.bib
\usebtxdefinitions [apa] % Le style est celui de l'American Psychological Association
\setupbtxrendering [default]  [numbering=yes] % Le "rendu" de la bibliographie est par défaut et trié

% On peut rédiger maintenant notre texte :
\starttext
\chapter{Introduction}
\section{Comment construire une bibliographie ?}
Pour construire une bibliographie, il faut disposer d'un texte à partir duquel on va citer des ressources bibliographiques (en général via la commande code>\cite</code>) et d'un fichier de références bibliographiques au format BibTeX constitué avec un logiciel comme JabRef. Le fichier doit se trouver dans le même répertoire que le fichier-source.
\section{Mise en œuvre}
Lorsqu'on écrit son texte, on doit pouvoir citer les références entre accolades après la commande <code>cite</code>, comme ceci <code>\cite{dupont_1983}</code>. Le texte imprimé sera de la forme suivante : (<code>Dupont, 1983</code>) qui est un renvoi vers la référence complète, donnée ainsi :

Dupont (1983), ''Origines et Techniques de l'usage de l'arbalète au XIVe siècle''. Paris, France : Éditions Funestes.

% On va indiquer à ConTeXT où placer la bibliographie (à la fin d'un chapitre, etc.) par la commande <code>\placelistofpublications</code>
\startchapter[title={Références bibliographiques}]
{\em Ces références donnent la bibliographie par ordre alphabétique. Le nom de l'auteur est suivi par la date d'édition de l'ouvrage, le nom des traducteurs s'il y a lieu et le nom de la maison d'édition et la date de parution.
\placelistofpublications[criterium=all]
\stopchapter
\stoptext
Notes en bas de page et bibliographie
  • La commande buffer
  • Maintenant, exerçons-nous sur un cas concret. Nous désirons dans ce cas précis que nos références bibliographiques données en notes de bas de pages soient automatiquement sélectionnées et triées dans une bibliographie imprimée en fin d'ouvrage. Cette bibliographie pourra comporter plusieurs sections ou chapitres. Nous allons pour ce faire utiliser un moyen très puissant que permet ConTeXt, qui est la commande buffer; cette commande permet de mettre en mémoire-tampon à peu de choses près tout ce qu'on veut (du texte que l'on doit souvent utiliser, ou bien lorsqu'on fait des tests avec ConTeXt, du texte que l'on ne veut pas ressaisir au clavier à chaque fois qu'on en a besoin). Ici, ce qui nous intéresse, c'est une bibliographie. Elle peut être saisie dans un fichier à part, à la manière de BibTeX (mais ConTeXt n'utilise plus BibTeX), ou dans un fichier texte. Cependant, il nous faut respecter un certain nombre de conventions d'écriture, ou de style. Le style le plus communément adopté pour les conventions bibliographiques est le style APA (American Pstchological Association). Nous verrons plus bas comment on y a recours. À noter qu'il peut paraître utile de confectionner une ou plusieurs bases de données avec un outil comme JabRef, utilisable avec Windows, Linux et MacOSX, conjointement et en parallèle avec Zotero, précieux outil pour constituer en ligne sa base de données bibliographiques. Ci-dessous, voici un exemple de déclaration d'un ouvrage :
@book{Strauss1935,
author ={Strauss, Leo}
translator = {Fred Bauman},
title:de = {\de Philosophie und Gesetz. Beiträge zum verständnis Maimunis und sein Verläufer},
title = {Philosophy and Law: Essays Toward the Understanding of Maimonides And His Predecessors},
originalyear = {1935},
originalpublisher = {Schocken Verlag}
year = {1987},
publisher = {Jewish Publication Society},
address = {Philadelphia},
}

ou encore, la référence à un ouvrage sur la Querelle des Anciens et des Modernes, exemple dans lequel on voit comment procéder avec une référence qui contient plusieurs auteurs et éditeurs :

@Book{fumaroli_querelle_2001,
 Title                    = {La querelle des {Anciens} et des {Modernes}: {XVIIe}-{XVIIIe} siècles},
 Author                   = {Fumaroli, Marc and Armogathe, Jean-Robert and Lecoq, Anne-Marie},
 Editor                   = {Lecoq, Anne-Marie},
 Publisher                = {Gallimard, DL 2001},
 Year                     = {2001},
 Address                  = {Paris, France},
 ISBN                     = {978-2-07-038752-6},
 Keywords                 = {Littérature -- 17e siècle -- Histoire et critique, Littérature -- 18e siècle -- Histoire et critique, Querelle des Anciens et des Modernes -- Anthologies},
 Language                 = {français},
 Shorttitle               = {La querelle des {Anciens} et des {Modernes}}
}
  • Dans notre fichier, on peut ajouter autant de références que l'on désire, les livres étant appelés par @book, les articles, par @article, etc. Dans l'exemple pris ici, on donne le nom de l'auteur, le titre de l'ouvrage, l'année de parution, etc. Les données peuvent contenir tout ce dont on a besoin pour donner des références précises, comme la ville, le nom de l'éditeur, la page, la collection, le volume, etc. On trouvera l'ensemble des possibilités offertes dans le fichier PDF sur les références dans \BiBTeX avec apacite qui se trouve sur la page de TeX Archive.

Toutes les références doivent être marquées par @book et sont suivies des noms et prénoms, commencent par une accolade ouvrante et se terminent par une accolade fermante. Notre base va s'appeler biblio, mais pourrait tout aussi bien porter un titre plus précis, comme bibliographie_spinoza, ou tout autre titre. Évidemment, la grande difficulté, pour ceux qui ont élaboré des bibliographies substantielles, consiste à les trier pour des besoins précis, ce que des logiciels sous bibtex, comme JabRef permettent d'accomplir correctement; ce qui évite d'avoir à ressaisir plusieurs fois les mêmes références, manipulations qui sont source d'erreur. Ici, nous tablons sur le fait que la bibliographie est disponible sous la forme indiquée plus haut (peu importe l'ordre alphabétique). L'idée est de conserver cette bibliographie en mémoire pendant la compilation du fichier, grâce à la commande \startbuffer (et la commande de fermeture \stopbuffer). Il est bien entendu que les données bibliographiques sont copiées/collées entre les commandes \startbuffer et la commande \stopbuffer.

Configuration des sections de la bibliographie
  • Dans notre exemple, nous voulons aussi séparer les rubriques contenues dans la bibliographie. Nous avons une rubrique "Philosophie" et une rubrique "Politique". Il faut indiquer cela à ConTeXt; à cette fin, nous allons l'indiquer dans la définition de la base de données de la manière suivante :
\usebtxdataset[philosophie][biblio.buffer]% On déclare que la base dont le nom est "biblio" possède une clé "philosophie".
\usebtxdataset[politique][biblio.buffer]% On déclare que la base dont le nom est "biblio" possède une clé "politique".
\usebtxdefinitions[apa]% On utilise la convention de style "apa" (qui donne le nom de l'auteur en premier lieu, suivi de la date, etc.). APA=American Psychology Association.
\definebtxrendering[philosophie][apa][dataset=philosophie]% On définit le rendu en style "apa" pour la rubrique "philosophie".
\definebtxrendering[politique][apa][dataset=politique]% On définit le rendu en style "apa" pour la rubrique "politique".
\setupbtxrendering[continue =yes]% Les références sont en continu.
  • Note: Toutes nos références sont appelées par un appel de note en bas de page, c'est-à-dire par \footnote. Ici, la note de bas de page est une référence, appelée par la commande \cite, ce qui donne quelque chose comme ceci :
\footnote{\cite[alternative=entry][philosophie::Strauss1935]}
  • En résumé, on entre d'abord dans notre préambule la base de données bibliographique sous la forme d'un "buffer" (d'un tampon mémoire), on définit ensuite le comportement de nos rubriques, puis ensuite on peut entrer du texte, après la commande \starttext.

Reste maintenant à définir la manière dont nos références bibliographiques vont être imprimées. Nous désirons l'impression à la fin du texte, dans la partie backmatter. Voici ce qu'on veut définir (nous commentons les commandes):

\starttext
\startbackmatter % On indique avec cette commande l'endroit où va être imprimée la bibliographie.
\startchapter[title={Bibliographie}] % La bibliographie est un chapitre de "backmatter"
\startsection[title={Philosophie}] % Dans ce chapitre on trouve une section "Philosophie"
\placelistofpublications[philosophie][method=local]% Dans cette section, on trouve la liste des publications données en appel de notes.
\stopsection % Fin de la section
\startsection[title={Philosophie politique}] % Une nouvelle section, "Philosophie politique"
\placelistofpublications[politique][method=local] % Liste des publications
\stopsection % Fin de la section
\stopchapter % Fin du chapitre
\stopbackmatter % Fin de backmatter
\stoptext % Fin du texte
  • Passons maintenant à la pratique. J'ai choisi un ouvrage de Leo Strauss originairement publié en Allemagne en 1935, puis aux U.S.A en 1952, en traduction anglaise. Le texte ici est celui de la présentation des éditeurs. Il n'y a que 2 références bibliographiques; à vous de nourrir votre fichier de test avec d'autres références, pour étudier le comportement de votre fichier. Vous remarquerez qu'on peut indiquer à ConTeXt quelle langue il convient d'utiliser dans les titres.. De manière générale, il convient, comme dans tout fichier source construit avec ConTeXt, d'indiquer la langue principale du fichier, ici par la commande \mainlanguage[fr]
\mainlanguage[fr]
\startbuffer[biblio]
@book{Strauss1935,
author ={Strauss, Leo}
title = {Philosophie und Gesetz.},
year = {1935},
}

@book{Strauss1952,
author = {Strauss, Leo},
title = {The Political Philosophy of Hobbes : Its Basis and Its Genesis},
year = {1952},
}

\stopbuffer
 
\usebtxdataset[philosophie][biblio.buffer]
\usebtxdataset[politique][biblio.buffer]
\usebtxdefinitions[apa]
\definebtxrendering[philosophie][apa][dataset=philosophie]
\definebtxrendering[politique][apa][dataset=politique]
\setupbtxrendering[continue =yes]

\starttext
\startchapter[title={The Political Philosophy of Hobbes}]

\de “Philosophie und Gesetz” markiert den Beginn eines umwälzenden Neuverständnisses von Maimonides und seiner arabischen Vorgänger im Horizont der platonischen Politischen Philosophie. Dem Buch von 1935 sind 5 thematisch zugehörige Aufsätze beigegeben. Die "Frühen Schriften" präsentieren 30 Arbeiten aus der Zeit von 1921 1937, darunter zahlreiche in Erstpublikation. Die 2. Auflage ist u.a. um die erstmals transkribierten Marginalien in Strauss Handexemplar von "Philosophie und Gesetz" erweitert\footnote{\cite[alternative=entry][philosophie::Strauss1935]}.\blank

\en In this classic analysis, Leo Strauss pinpoints what is original and innovative in the political philosophy of Thomas Hobbes. He argues that Hobbes's ideas arose not from tradition or science but from his own deep knowledge and experience of human nature. Tracing the development of Hobbes's moral doctrine from his early writings to his major work The Leviathan, Strauss explains contradictions in the body of Hobbes's work and discovers startling connections between Hobbes and the thought of Plato, Thucydides, Aristotle, Descartes, Spinoza, and Hegel\footnote{\cite[alternative=entry][politique::Strauss1952]}.

\stopchapter
 
\starttext
\startbackmatter
\startchapter[title={Bibliographie}]
\startsection[title={Philosophie}]
\placelistofpublications[philosophie][method=local]
\stopsection
\startsection[title={Philosophie politique}]
\placelistofpublications[politique][method=local]
\stopsection
\stopchapter
\stopbackmatter

\stoptext
ConTeXt : Référence en bas de page reprise en fin de document-Page1
ConTeXt : Référence en bas de page reprise en fin de document-Page 2

Styles des têtes de chapitre et de la table des matières (TOC)

On peut désirer l'homogénéisation du style des têtes de chapitres, de la bibliographie, des index, etc. Par exemple, ici, nous voulons que tous ces titres soient encadrés d'une ligne au-dessus et d'une ligne au-dessous. De fait, il s'agit de placer du texte dans une boîte dont on aurait gommé les côtés gauche et droit. Voici une manière de faire, proposée par Pablo Rodriguez (juillet 2017). Vous pouvez tester ce code en lui donnant un autre contenu. Je ne donne pas d'image de ce que le code produit, car le résultat court sur 4 pages :

\setupinteraction[state=start]

\define[2]\MyChapter{\framed[frame=off,bottomframe=on,topframe=on]
        {\vbox{\headtext{chapter} #1\blank[small]#2}}}

\setuphead[chapter][command=\MyChapter,
style={\switchtobodyfont[24pt,ss]}, header=empty, page=mychapterpagebreak]

\startsectionblockenvironment[bodypart]
    \setupheadtext[chapter=Chapitre]
\stopsectionblockenvironment

\startsectionblockenvironment[appendix]
    \setupheadtext[chapter=Appendice]
\stopsectionblockenvironment

\starttext
\startfrontmatter
\chapter{Table des Matières}\placecontent
\stopfrontmatter

\startbodymatter
\startchapter[title=Introduction à la philosophie]
\stopbodymatter

\startappendices
\chapter{Index des Noms}
\stopappendices

\startbackmatter
\chapter{Bibliographie}
\stopbackmatter

\stoptext
Utilisation d'un fichier bibliographique de type *.bib

Même si l'usage d'un buffer peut s'avérer intéressant, s'agissant de trouver les modalités pratiques les plus efficientes, il se peut qu'on puisse trouver préférable l'usage d'un fichier externe (et non pas d'un fichier en mémoire tampon comme buffer). C'est vrai pour les gros ouvrages, en particulier les thèses dans les sciences humaines, où les références bibliographiques et les notes peuvent occuper une place importante, sinon très importante. Afin de ne pas surcharger le fichier source, il est préférable de faire appel à un fichier bibliographique externe. ConTeXt prend en charge les fichiers de type bibtex (les fichiers *.bib). Il suffit alors de se constituer un tel fichier (ou plusieurs) et de l'enregistrer dans le même répertoire que le fichier *.tex sur lequel vous travaillez. Une manière commode (en particulier sous Microsoft Windows)est d'utiliser JabRef en parallèle à Zotero (qui est un module de Mozilla Firefox). Il n'y a pas grand chose qui change, concernant le code de cet appel à un fichier *.bib. De la même manière que précédemment, on peut ventiler sa bibliographie en plusieurs sections différentes (par exemple, pour une thèse, les ouvrages qui constituent la source principale sur laquelle on a travaillé, et les références bibliographiques secondaires, anciennes ou plus récentes). Dans le préambule cela donnera quelque chose comme ceci :

\usebtxdataset[descartes][bibliodescartes.bib]
\usebtxdataset[critique][bibliodescartes.bib]
\usebtxdefinitions[apa]
\definebtxrendering[descartes][apa][dataset=descartes]
\definebtxrendering[critique][apa][dataset=critique]
\setupbtxrendering[continue =yes]
  • Notez que le même fichier source (ici : bibliodescartes.bib) peut contenir toutes les références que l'on souhaite utiliser. Cependant, la ventilation sera assurée par la commande \definebtxrendering et le rendu imprimé par la commande ici \placelistofpublications[descartes][method=local]. Voir la section précédente en ce qui concerne la manière de ventiler les sections bibliographiques.

Le cahier d'exercices

Numérotation suivie des sections et des exercices

Il peut arriver que nous souhaitions imprimer un cahier d'exercices. La structure d'un tel cahier est répétitive : chapitres et sections contenant les exercices. Il est important que la pagination et le sectionnement soient formellement bien structurés. Nous ne nous intéressons pas ici au contenu des exercices (ce qui ferait entrée cette section dans le chapitre "documents complexes" !), mais bien à la structure en chapitre, avec une numérotation des chapitres et des exercices à l'intérieur des sections. L'exemple donné ici apparaît assez simple, mais il faut le tester avec une variété réelle d'exercices pour comprendre comment jouer avec les paramètres. Dans l'exemple ci-dessous, on a utilisé la commande \input ward pour injecter du texte automatique à la place d'exercices variés. Le fichier produit 10 pages, contenant 5 chapitres, chaque chapitre contenant 3 sections de 3 exercices chacun. Chaque section est numérotée en continu (exemple : 2.1 pour la section 1 du chapitre 2), avec une numérotation simple (exercice 1, exercice 2, exercice 3) pour les exercices.

\defineenumeration[exercise][text=Exercice ]
\setupenumeration [exercise][way=bysection]

\starttext

\dorecurse{5}
{\expanded{\chapter{Chapitre \recurselevel}}
\dorecurse{3}
{\expanded{\section{Section \recurselevel}}
\dorecurse{3}
{\startexercise
Veuillez choisir un des trois (3) exercices suivants :
\input ward
\stopexercise}}}

\stoptext

ConTeXt et XML : un aperçu rapide

Puisque nous avons vu ci-dessus comment on pouvait utiliser un buffer pour mettre en mémoire des données bibliographiques, nous allons voir comment utiliser cette facilité avec une mise en forme XML, en vue de disposer d'une base de données de contacts pour un éventuel publipostage. Rédiger la même lettre à des correspondants différents, qui ont nécessairement des adresses différentes s'avère assez fastidieux, surtout s'il s'agit de donner des informations régulièrement et de manière formelle. Vous pourrez vous entraîner avec le fichier donné ci-dessous. Ce fichier peut encore être amélioré, bien entendu.

\startbuffer[participants]
<contacts>
  <contact class='participant' label='Dupont'>
    <formalname>Dupont</formalname>
    <informalname>André</informalname>
    <prefix>M.</prefix>
    <initials>A.</initials>
    <city>Vierzon</city>
    <address>
      <p>M. A. Dupond</p>
      <p>15, rue Édouard Vaillant</p>
      <p>18100 Vierzon</p>
    </address>
    <kix>18100</kix>
  </contact>
  <contact class='participant' label='Durand'>
    <formalname>Durand</formalname>
    <informalname>Pierre</informalname>
    <initials>P.</initials>
    <prefix>M.</prefix>
    <city>Sancoins</city>
    <address>
     <p>M. P. Durand</p>
     <p>10, avenue de la République</p>
     <p>18600 Sancoins</p>
    </address>
    <kix>18340</kix>
  </contact>
</contacts>
\stopbuffer

\startxmlsetups xml:setups
\xmlsetsetup{#1}{contacts|contact|formalname|informalname|prefix|initials|address|city|text|kix|p}{xml:*}
\stopxmlsetups

\xmlregistersetup{xml:setups}

\startxmlsetups xml:contacts
        \xmlflush{#1}
\stopxmlsetups

\startxmlsetups xml:p
        \xmlflush{#1}\par
\stopxmlsetups

\startxmlsetups xml:contact
        \xmltext{#1}{/address}
        \blank [3*line]
        Objet: vos vacances à \xmltext{#1}{/city}
        \blank [2*line]
        Cher \xmltext{#1}{/prefix} \xmltext{#1}{/formalname},
        \blank [line]
      %  \input knuth \relax
      Nous tenons par la présente à vous féliciter d'avoir choisi notre commune pour y installer votre villégiature. N'oubliez pas de vous rendre au syndicat d'initiative pour tout complément d'information. Profitez de vos vacances pour faire le plein d'énergie et découvrir les trésors cachés de notre commune. Vous pourrez aussi flâner su notre marché où vous trouverez les produits de notre terroir.
		\blank [line]
        Recevez, chère Madame, cher Monsieur, l'expression de sentiments distingués,
        \blank [line]
        Madeleine Michu, Syndicat d'Initiative
        \page
\stopxmlsetups

\setuppagenumbering [state=stop]

\starttext
\xmlprocessbuffer{main}{participants}{}
\stoptext
  • Un autre exemple : utiliser XML pour rédiger de la documentation (avec des parties colorées).
\startbuffer[demo]
    <doc>
    <p>I can use colored code blocks:</p>
    <div class="sourceCode"><pre class="sourceCode tex"><code
class="sourceCode latex"><span class="fu">\starttext</span>
    <span class="fu">\ConTeXt\ </span>is awesome!
    <span class="fu">\stoptext</span></code></pre></div>
    <p>But I’m afraid I cannot use <code class="sourceCode latex"><span
class="fu">\xmlprettyprinttext</span></code> inline.</p>
    </doc>
    \stopbuffer

    \startxmlsetups xml:initialize
         \xmlsetsetup{#1}{doc|p|code}{xml:*}
         \xmlsetsetup{#1}{pre/code}{xml:pre:code}
    \stopxmlsetups

    \xmlregistersetup{xml:initialize}

    \startxmlsetups xml:doc
         \xmlflush{#1}
    \stopxmlsetups

    \startxmlsetups xml:p
         \startpar\xmlflush{#1}\stoppar
    \stopxmlsetups

    \startxmlsetups xml:pre:code
         \xmlprettyprinttext{#1}{tex}
    \stopxmlsetups

    \startxmlsetups xml:code
        \begingroup\xmlprettyprinttext{#1}{tex}\endgroup
    \stopxmlsetups

    \starttext

    \subject{Dealing with XML}

         \xmlprocessbuffer{main}{demo}{}

    \subject{In standard \ConTeXt}

    \setuptyping[option=TEX]
    \setuptype[option=TEX]

    I can use colored code blocks:

    \starttyping
    \starttext
    \ConTeXt\ is awesome!
    \stoptext
    \stoptyping

Comment créer un document complexe ?

L'exemple donné par la figure 10 ci-dessus donne déjà une idée de la puissance de ConTeXt et de la nécessité de rassembler les informations disponibles. Bien entendu, nous trouvons dans LATEX à peu près la même puissance et une quantité indéfinie de production de macros. Ici, les macros et les scripts sont en grande partie déjà écrits : il suffit de les appeler et de configurer les clés qui en permettent l'usage.

Un exemple de document complexe

En reprenant les éléments déjà vus ci-dessus et testés avec quelques exemples, nous pouvons examiner maintenant un fichier source dans lequel peuvent coexister des éléments assez différents : du texte, des images, des équations mathématiques. Il ne s'agit encore pas ici d'un ouvrage complexe, comme un livre, dont nous gardons l'étude pour plus tard, mais d'un document dont la composition montre déjà quelques subtilités.

Ci-dessous nous présentons un exemple de fichier source d'un document relativement complexe, avec ses commentaires. Ce fichier est trompeusement intitulé "Hello World !", mais vous verrez que les choses vont un peu plus loin. Ce fichier provient du Wiki "ConTeXt Garden" et a été écrit par Sanjoy Mahajan. Le texte (commentaires et texte lui-même) est originairement en anglais, mais nous le traduisons ici pour que les commandes soient mieux comprises. Les lignes précédées par le symbole "%" sont des commentaires (qu'il est utile de placer dans votre propre fichier source; cela peut vous aider à structurer le document). Vous pouvez le copier/coller et le manipuler en faisant varier les paramètres. Nous ne donnons pas le rendu de ce document, qui fait 3 pages. Testez-le par vous-même, ou rendez-vous sur la page de "ConTeXt Garden" :

% "Hello world!" document for the ConTeXt typesetting system
%
% === History ===
% 2006-12-29  Sanjoy Mahajan  <sanjoy@mit.edu>
%     * Created
% 
% Ce document est dans le domaine public (sans copyright).

\setupcolors[state=start]       % sinon on obtient du gris
\definecolor[headingcolor][r=1,b=0.4]

% pour le fichier info/catalog du document (donné par 'pdfinfo', par exemple)
\setupinteraction[state=start]  % rend les hyperliens actifs, etc.
  title={Hello world!},
  subtitle={A ConTeXt template},
  author={Sanjoy Mahajan},
  keyword={template}]

% urls utiles
\useURL[author-email][mailto:a.u.thor@somewhere.edu][][a.u.thor@somewhere.edu]
\useURL[wiki][http://wiki.contextgarden.net][][\ConTeXt\ wiki]
\useURL[sanjoy][mailto:sanjoy@mit.edu][][sanjoy@mit.edu]

% Pour le papier US; par défaut la commande est [A4][A4] (composition en A4,
% imprimée sur du papier A4)
\setuppapersize[letter][letter]
\setuplayout[topspace=0.5in, backspace=1in, header=24pt, footer=36pt,
  height=middle, width=middle]
% pour voir la structure de la page, décommentez la ligne suivante
% \showframe

% en-têtes et pieds-de-page
\setupfooter[style=\it]
\setupfootertexts[\date\hfill \ConTeXt\ template]
\setuppagenumbering[location={header,right}, style=bold]

\setupbodyfont[11pt]   % par défaut en 12pt

\setuphead[section,chapter,subject][color=headingcolor]
\setuphead[section,subject][style={\ss\bfa},
  before={\bigskip\bigskip}, after={}]
\setuphead[chapter][style={\ss\bfd}]
\setuphead[title][style={\ss\bfd},
  before={\begingroup\setupbodyfont[14.4pt]},
  after={\leftline{\ss\tfa A. U. Thor $\langle$\from[author-email]$\rangle$}
         \bigskip\bigskip\endgroup}]

\setupitemize[inbetween={}, style=bold]

% configuration de l'espace entre les paragraphes
\setupwhitespace[medium]
% commentez la ligne suivante si vous ne voulez pas de paragarphes indentés.
\setupindenting[medium, yes]

\starttext
\title{Hello, world!}
Ceci est un document "hello-world" pour illustrer quelques possibilités de \ConTeXt\. Have fun ! Vous trouverez plus d'informations sur le
\from[wiki]; le texte précédent (wiki) devrait être coloré et cliquable; en cliquant dessus, vous devriez arriver sur le wiki de \ConTeXt\.

\subject{Une liste}

Voici un exemple de liste.

\startitemize[a]     % les tags sont en bas de casse
\item premier
\item deuxième
\item troisième
\stopitemize

\subject{Maths}

Une équation peut être composée sur une ligne comme $e^{\pi i}+1=0$, ou comme une formule:
\startformula
\int_0^\infty t^4 e^{-t}\,dt = 24.
\stopformula
% n'utilisez pas les $$...$$ (l'équivalent en plain TeX)
Vous pouvez aussi obtenir des équations numérotées:
\placeformula[eq:factorial-example]\startformula
\int_0^\infty t^5 e^{-t}\,dt = 120.
\stopformula
Et vous pouvez vous y référer par leur nom. On appelle la première équation {\tt
factorial-example} et c'est l'équation \in[eq:factorial-example].

\ConTeXt\ affiche le numéro pour vous. Et comme l'interaction est active, si vous cliquez sur le numéro de l'équation, vous obtenez l'équation elle-même.

\subject{Texte avec des figures}

Maintenant, un texte avec quelques figures. La première figure est située à droite, avec le paragraphe autour d'elle. 

\placefigure[right,none]{}{\externalfigure[dummy]}
% On lui donne du texte factice avec la commande \input tufte
\input tufte

La figure suivante sera sur une ligne, comme une formule affichée:
\placefigure[here,none]{}{\externalfigure[dummy]}
\input tufte

Voici une autre référence à une équation numérotée -- equation
\in[eq:factorial-example] sur \at{page}[eq:factorial-example], ainsi vous pouvez cliquer dessus, ou sur la page de référence.

% la plupart des commandes en plain TeX fonctionnent
\vfill

\noindent 
\framed[corner=round, width=\textwidth,height=1in,
backgroundcolor=gray,background=color]
{Ce document est dans le domaine public, aussi vous pouvez l'améliorer, le partager, ou bien faire quoi que ce soit d'autre avec.  
Les suggestions sont les bienvenues.  Vous pouvez me les envoyer à
 \from[sanjoy] (Sanjoy Mahajan).}

\stoptext

Un document complexe : composer un livre avec ConTeXt

Voici quelques éléments ayant été employés à la composition d'un ouvrage complexe, ici un ouvrage de théorie littéraire, composé par Hans Hagen. Il possède un certain nombre d'instructions qui sont toutes commentées ici et assemblées en fonction de leur rôle dans la mise en page, qu'il s'agisse des en-têtes, de la bibliographie, des index, etc. Il ne s'agit pas pour vous de faire un simple copier/coller, mais de comprendre le rôle de chaque instruction afin d'utiliser éventuellement tout ou partie du code.

Vous pouvez tester une à une les diverses commandes, au fur et à mesure de votre progression et des besoins. Attention à la police utilisée pour l'ouvrage tel que le code donné par Hans Hagen la spécifie. Il s'agit d'une Garamond Premieum Pro. Si vous ne possédez pas cette police installée sur votre machine, vous pouvez (et vous devez) en utiliser une autre.

% En premier lieu, il faut déclarer les éléments de base : input regime (utf, acii, etc.), la police utilisée, la langue

\enableregime[utf]

\setupencoding[default=texnansi]

\setupbodyfontenvironment[default][em=italic]

% Pour la ligne suivante, on choisit la langue
\mainlanguage[fr]

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% TAILLE DU PAPIER, MARGES, MISE EN PAGE %%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Ici l'ouvrage utilise un empagement de 152mm x 228mm sur une feuille A4.
\definepapersize[theory][width=152mm,height=228mm]

\setuppapersize[theory][A4]

% Pour l'édition et la révision des épreuves, on a ajouté le numéro des lignes dans la marge; % pour une sortie papier sans marque pour le massicot, ni numérotation des lignes, il faut %commenter les deux lignes suivantes
\setupcolors[state=start]
\setuplinenumbering[color=red,style=\tt\tfxx,step=1,location=inmargin]

% configuration et métrique des marges, etc.
\setuplayout[location=middle,
             marking=off,
             topspace=1.8cm,
             backspace=1.6cm,
             height=fit,
             width=fit,
             rightmargin=2cm,
             leftmargin=2cm,
             header=1cm,
             footer=.1cm,
             setup=strict,
             grid=yes]

\def\defaultwidowpenalty{0}

\def\defaultclubpenalty{0}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% INDEX %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Ceci est un index spécial : les références "importantes" seront données avec leur numéro de % page en gras.
% Cela est appelé par la commande suivante \index[imp::]{lemotimportant}

\setupregister[index][imp][pagestyle=bold]

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% NUMÉROTATION DES PAGES %%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\setuppagenumbering[alternative=doublesided,location=]

% On fait commencer la numérotation des pages à la page 5. Vous pouvez choisir une autre page
\setuppagenumber[number=5]

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% EN-TËTES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Définitions pour les différents en-têtes. On utilise ici une division en chapitre, section et sous-section : chapter, section et subsection 
% et "title" pour les remerciements, car ils ne doivent pas être inclus dans la Table des %Matières (TOC).

% L'éditeur souhaite voir les têtes de chapitre centrés et séparés sur 2 lignes; il faut donc % indiquer cela pour ''chapter'', ''section'', ''subsection'' :

\define[2]\MyChapterCommand{\startalignment[middle]\framed[frame=off]{\vbox{\headtext{chapter} #1\blank[0*small]#2}}\stopalignment}

\setuphead[chapter][page=yes,
                   header=empty,
                   command=\MyChapterCommand,
                   style=\bfc,
                   number=yes,
                   before={\strut\blank[line]},
                   after={\blank[4*line]}]

\setupheadtext[chapter=Chapter]

\setuphead[title][page=yes,
                  header=empty,
                  style=\bfc,
                  align=middle,
                  before={\strut\blank[line]},
                  after={\blank[4*line]}]

\setuphead[section][page=no,
                    style=\tfa,
                    align=right,
                    number=no,
                    before={\blank[line]},
                    after={\blank[line]}]

\setuphead[subsection][page=no,
                    style=\it,
                    align=right,
                    number=no,
                    before={\blank[line]},
                    after={\blank[line]}]

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% BIBLIOGRAPHIE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Il s'agit d'une section très longue pour définir les références bibliographiques et le style des <code>\cite</code>
% commandes (on utilise des références numérotées).

\usemodule[bib]

\setupbibtex[database={biblio}]

\setupcite
       [num]
       [pubsep={, },
        lastpubsep={ and },
        compress=yes,
        inbetween={--},
        left={[},
        right={]}]

\setupcite
       [year]
       [pubsep={, },
        lastpubsep={ and },
        compress=yes,
        inbetween={},
        left={(},
        right={)}]

\setupcite
       [authoryears]
       [pubsep={, },
        lastpubsep={ and },
        compress=yes,
        inbetween={ },
        left={(},
        right={)}]

\setupcite
       [key,number,page,short,type,doi]
       [pubsep={, },
        lastpubsep={ and },
        compress=no,
        inbetween={ },
        left={[},
        right={]}]

\def\bracketed#1{\hbox to 20pt{\hfill [\TNum{#1}]}}

\setuppublications
            [sorttype=bbl,
             autohang=no,
             refcommand=num,
             criterium=all,
             numbering=bib,
             numbercommand=\bracketed]

\def\tasinvertedauthor#1#2#3#4#5%
    {#3%
    \bibdoif{#1}{\bibalternative{surnamesep}#1\unskip}%
    \bibdoifelse{#2}{\bibalternative{vonsep}#2\unskip}{\unskip}%
    \bibdoifelse{#5}{\bibalternative{juniorsep}#5\unskip}{\unskip}%
}

\setuppublicationlist
   [width=24pt,
    maybeyear=off,
    artauthor=\tasinvertedauthor,
    editor=\tasinvertedauthor,
    author=\tasinvertedauthor,
    namesep={, },
    lastnamesep={, and },
    finalnamesep={, and },
    firstnamesep={, },
    juniorsep={, },
    vonsep={ },
    surnamesep={, },
    authoretallimit=5,
    editoretallimit=5,
    artauthoretallimit=5,
    authoretaldisplay=5,
    editoretaldisplay=5,
    artauthoretaldisplay=5,
    authoretaltext={ et al.},
    editoretaltext={ et al.},
    artauthoretaltext={ et al.},
    distance=3pt]

 \newif\ifeditedbook
 \setuppublicationlayout[book]{%
    \insertauthors{}{: }{\inserteditors{}{, editor%
                          \ifnum\getvalue{editor@num}> 1 s\fi
                              \ \global\editedbooktrue 
                     \unskip: }{\unskip}}%
    \inserttitle{\bgroup\it }{\/\egroup}{}%
    \insertseries{ (}{)}{}%
    \insertedition{, }{\insertmonth{}{}{} edn. }{, }%
    \insertcity{}{: }{}%
    \insertpubname{}{, }{}%
    \insertpubyear{}{}{}%
    \insertnote{ [}{].}{.}%
}

 \setuppublicationlayout[article]{%
    \insertartauthors{}{: }{\insertthekey{}{ }{}}%
    \insertarttitle{\bgroup ``}{\egroup,'' }{}%
    \insertjournal{\bgroup \it}{\egroup}{\insertcrossref{in }{}{}}%
    \insertvolume{ }{}{}%
    \insertpubyear{ (}{) }{\unskip.}%
    \insertpages{}{\insertnote{ [}{].}{.}}{.}%
    \insertcomment{[}{].}{}%
 }

 \setuppublicationlayout[incollection]{%
    \insertartauthors{}{: }{\insertthekey{}{. }{}}%
    \insertarttitle{\bgroup ``}{\egroup,'' }{}%
    \insertcrossref{in }{}{}%
    \insertpages{, }{}{}%
    \insertnote{ [}{].}{.}%
 }

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% JALONS & AIDE VISUELLE %%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Durant la phase de révision et de production, on a besoin d'outils pour la recherche visuelle d'erreurs.
% Ces aides sont bien sûr marquées en commentaire lors de la dernière phase de compilation.

% \usemodule[t-crop][Mark=Camera,Info=yes] % ceci est un module écrit par Hans Hagen

% \showgrid

% \showframe

% \showsetups

% \showlayout

% \version[temporary]

% \enablemode[transdraft] % ce mode est défini plus tard


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% POLICES & TAILLES %%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% d'abord, on définit la grande taille et la petite taille

\define\NSize{11pt}
\define\SSize{9.5pt}

\starttypescript [serif] [default] [size]
\definebodyfont [\NSize,\SSize] [rm] [default]
\stoptypescript

% Mes fontes customisées sont des Garamond Premier Pro de chez Adobe. 

\usetypescriptfile[type-garmprem]
\usetypescript[AGaramondPrem] [texnansi]
\usetypescript[AGaramondPremcpsp] [texnansi]
\usetypescript[AGaramondPrempnum] [texnansi]
\setupbodyfont[MyAGaramondPrempnum,\NSize]

% cette commande permet de passer des nombres proportionnels(le corps de texte normal) aux nombres employés dans les tableaux
% (pour les tableaux, la bibliographie, etc.)

\define\PNum{\switchtobodyfont[MyAGaramondPrempnum]}
\define\TNum{\switchtobodyfont[MyAGaramondPrem]}

\setupinterlinespace[line=3.1ex]

% Il y a dans le livre quelques figures très peu) crées en Metapost et bien sûr, il faut garder la même police.

\startMPenvironment
\usetypescriptfile[type-garmprem]
\usetypescript[AGaramondPrempnum] [texnansi]
\setupbodyfont[MyAGaramondPrempnum,11pt]
\stopMPenvironment

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% IMPRESSION POUR LA RÉVISION %%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% double espace pour la révision du manuscrit

\startmode[transdraft]
\setupinterlinespace[line=24pt]
\stopmode

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% ENVIRONNEMENT PERSONNALISÉ %%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% On utilise tikz pour une figure avec des flèches (ses flèches par défaut sont plus belles que celle de Metapost)

\usemodule[tikz]
\usetikzlibrary[arrows,snakes,backgrounds]

% le module Greek en Monotype Porson pour la police font, mise un peu à l'échelle

\usemodule[t-ancientgreek][font=GreekPorson,scale=1.03]

% on utilise un très joli symbole de la police Adobe Garamond Premier Pro pour les listes sans numéro

\definesymbol[8][{\getglyph{orn-GaramondPremrPro}{6}}]

% définitions personnalisées pour les listes non numérotées et pour celles qui le sont

\define\myitem{\setupitemize[1][atmargin][alignment=left]\startitemize[8,packed]}

\define\mynumber{\setupitemize[1][stopper={}]\startitemize[n,packed]}

% textbar ne semble pas avoir de nom dans l'encodage en texnansi

\define\textbar{\getglyph{Serif}{\char124}}

% Il y a seulement quatre u cinq tableaux, aussi il fallait les numéroter pour l'ensemble du livre

\setupcaptions[headstyle=italic,style={\switchtobodyfont[\SSize]},way=bytext,stopper=]

\setupreferencing[partnumber=no]

% Dans la table des matières (TOC), on met des numéros aux tables

\setuplist[chapter,section][pagecommand=\TNum]

% et au final, tout ce qui concerne l'indentation

\setupindenting[1.5em]
\setupindenting[yes]

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%% Code fourni par Hans Hagen %%%%%%%%%%%
%%%%% pour un ouvrage édité chez Blackwell %
%%%%% 2007 - révisé en 2011 %%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Voir aussi