Remarque générale.
Il s'agit ici de présenter les particularités du code de ConTeXt. Les utilisateurs de ne seront pas dépaysés, quoique (puisque ConTeXt est plus monolithique que ) 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 codice_1 et son extension sera en codice_2. 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.
\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.
Nous verrons par la suite et successivement comment définir les nombreuses commandes à insérer dans le préambule.
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 :
\startstandardmakeup
\stopstandardmakeup
\completeindex
\completecontent
\starttext
\startstandardmakeup
\stopstandardmakeup
\completecontent
 \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} ...
 \input knuth
 \input knuth
\input ward 
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 codice_3 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 codice_3. Notons tout de suite que la fin du traitement du texte est indiquée dans le fichier source par l'instruction codice_12. La zone antérieure à la commande codice_3 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 ), 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 langages 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 ci-dessous, rédigé en VisualBasic, permet d'afficher la formule "Hello World !". Il est écrit ainsi (remarquez le codice_14, qui clôture la déclaration codice_15) : 
Sub Main()
MsgBox("Hello World")
End Sub
Par conséquent, l'oubli d'un crochet ouvrant ou fermant, par exemple ici autour de "Hello World") dans le code codice_16 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 dans ConTeXt, 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é. Par bonheur ConTeXt produit un journal (un "log") en même temps qu'il compile le fichier. Ce "log" est lisible dans TeXwork en dessous de la fenêtre où vous avez composé votre code. La recherche est donc assez aisée, pour identifier la ligne où vous avez commis une erreur d'écriture. Ces journaux sont enregistrés au même endroit que le fichier de travail. Il est donc conseillé d'aller lire les fichiers de type codice_17 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 codice_18 dans codice_19 indique à ConTeXt comment produire quelques actions concernant la structure, la forme et la typographie du chapitre. Ces actions peuvent être :
La commande entre crochets codice_20 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 codice_21 affiche le numéro du chapitre, tandis que codice_22 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 séries de 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
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 codice_3 et codice_12. 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 codice_28, mais codice_29 est aussi autorisé. Passer d'une police à l'autre, ou d'une graisse à l'autre (codice_30) 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 :
codice_31
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 :
codice_32
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 , 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 [...=*...]
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 :
La commande codice_33 permet de visualiser les marges, en-tête et pied de page et codice_34 affiche toutes les dimensions de la page. La commande codice_35 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
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.
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 :
codice_44
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 codice_39 et codice_46.
\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 codice_49 pour obtenir un texte entouré de vert et codice_50 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.
codice_51
codice_52
codice_53
codice_54
codice_55
codice_56
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 :
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 codice_63; pour le "blanc de tête", on aura codice_64, la hauteur de l'empagement devient codice_65 et la justification s'appelle désormais codice_66. Il nous faut aussi être attentif à deux choses : 
Dimensions du 'Grand Fond' et du 'Blanc de Pied' 
Dimensions des Marges
Position des éléments de navigation
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 codice_66 et sa hauteur codice_65 semblent bien réduites comparativement aux marges et aux bords). Mais on visualise parfaitement la "topographie" de la feuille. 
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 codice_39 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 codice_39: analyse des clés.
Ce que nous appelons ici les "clés", ce sont les options indiquées entre crochets codice_80. Rappelons que toutes les dimensions de la page imprimée peuvent être affichées au moyen des macro codice_33 et codice_35. Ces macros peuvent être appelées avant la commande codice_3. Examinons ces clés (ou "options") une par une, en gardant un œil sur la figure 2 :
Comme on l'a vu, codice_66 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 (codice_87), avec des valeurs de "grand fond" et de "petit fond" égales à codice_63. Comme son nom l'indique, la valeur codice_89 positionne le texte finement et exactement au moyen du calcul de la largeur de la zone de texte, des valeurs des marges, des bords (codice_90) et de l'espace entre la marge et le texte (codice_91, codice_92) et celui entre le bord et la marge (codice_93, codice_72).
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 + codice_97 + codice_98 + codice_99 + codice_100. L'option codice_87 place la zone de texte au centre avec des valeurs de blanc de tête et de blanc de pied égal à codice_64. Avec l'option codice_89, 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 codice_89 pour l'option codice_66). 
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".
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 :
codice_161, où codice_162 correspond aux numéros de page du document final et codice_163 prend les valeurs codice_164, ou bien codice_165.
Il faut prendre garde à la chose suivante : les valeurs de codice_65 et de codice_134 sont des valeurs que l'on retranche à codice_168 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 :
codice_169
Ce module accepte deux options codice_170 et codice_109 qu'on écrit soit lors du chargement du module soit dans une commande codice_172
Par exemple :
codice_175
L'option codice_170 prend les valeurs suivantes :
L'option codice_109 indique la dimension attribuée aux marges en ayant spécifié codice_185. Exemple : 
codice_186
Mise en page d'une lettre avec le module codice_187.
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 connaissent la déclaration de la codice_188 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 codice_3 et codice_12 est presque totalement un ensemble de commandes codice_61 et de codice_62.
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 codice_187 à 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}]
\setupletterlayer[location][alternative=example,y=2cm,x=30mm]
\defineletterelement[layer][addressee][example]%
\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 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 :
Il y a trois types d'empattements : 
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 codice_194 est codice_195. On peut aussi bien utiliser codice_196, codice_197 et codice_198. La commande pour écrire avec une fonte sans serif est codice_199, ou bien codice_200 et codice_201. Exemple :
 \starttext 
 \stoptext 
Dans les options de certaines commandes (par exemple codice_202) il est possible d'employer le vocabulaire suivant :
Monotype
La commande ConTeXt pour écrire en monotype est codice_211, ainsi que codice_212 et codice_213 et dans certaines options : codice_214, codice_215, codice_216, codice_217. Exemple :
\starttext 
\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 codice_218ou codice_219 pour l'écriture cursive et codice_220 et codice_221 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.
Graisse
On peut modifier la graisse dans les textes composés avec ConTeXt que d'une seule façon, au moyen des commandes codice_222 ou codice_223. Exemple :
\starttext 
On peut mettre en valeur du texte
\stoptext 
À noter que la mise en gras d'un texte s'obtient de deux manières :
\starttext 
Soit
Soit en faisant suivre la commande d'une paire d'accolades
Style
Italique et penché ("slanted")
L'écriture en italiques s'obtient par codice_224 ou codice_225; l'écriture penchée par codice_226 ou codice_227. 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 codice_228 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.
Il est important, s'agissant des documents de qualité, voire même pour des documents simples mais dont la communication doit être visuellement irréprochable, de vous intéresser non seulement à la mise en page, mais aussi à la qualité "visuelle" de la lecture, et donc au confort de lecture. À cet effet, il faudra s'intéresser au "crénage" ("kerning" en anglais), c'est-à-dire au réglage de l'espace entre deux "glyphes" (entre deux lettres) et aux problématiques adjacentes. Un coup d'œil à la page Wikipédia qui traite de ce thème vous donnera une idée des problèmes relatifs à la typographie; la page en anglais sur le ["kerning" https://en.wikipedia.org/wiki/Kerning] est plus fournie. En principe le réglage des espaces entre les glyphes est automatique, mais on peut agir manuellement et modifier ces espaces. Ci-dessous, veuillez trouver un exemple de code avec ConTeXt pour afficher ces espaces :
% Réglage des polices dans une boîte
\starttext
\bgroup
 \showglyphs
 \showfontkerns
 \showmakeup[hbox]
 »Tee for Two« shows negative kerning.
 \input sapolsky \par
\egroup
\stoptext
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.
\setuppapersize[A5]
\startcolumns[n=3]
\input knuth
\stopcolumns
\setuppapersize[A5]
\startcolumns[n=2,rule=on]
\input knuth
\stopcolumns
\setuppapersize[A5]
\startcolumns[n=2]
\input ward
\column
\input weisman
\stopcolumns
Paragraphes parallèles.
\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
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
\nextTwoThird
G. W. Leibniz, {\it\fr Principes de la nature et de la grâce fondés en raison,} 1714.
\stopTwoThird
Colonnes inscrites dans un cadre.
\setuppapersize[A5]
\framed[width=0.9\hsize,location=middle]\bgroup
 \startnarrower[2*middle]
 \setlocalhsize \hsize\localhsize 
 \startsimplecolumns
 \input tufte
 \stopsimplecolumns
 \stopnarrower
\egroup
Texte en parallèle sur deux pages (paire/impaire).
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 codice_232 et codice_233.
\usemodule[streams] 
\def\StartCouple{\page\SwitchToNormal} 
\def\StopCouple {\SwitchToNormal \SynchronizeLeftAndRight \FlushLeftAndRight} 
\def\Original {\SwitchToNormal\SynchronizeLeftAndRight\SwitchToLeft} 
\def\Translation{\SwitchToRight} 
\starttext
\Original\en
\Translation\fr
\stoptext
Texte sur 2 colonnes, avec des graisses différentes et du grec ancien.
\definefontfeature[f:superscript][sups=yes]
% une macro \sup est définie à notre convenance
% 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
\stopTwoColumns
\startTwoColumns
Bold\TwoColumns
\stopTwoColumns
\startTwoColumns
Bold italic\TwoColumns
\stopTwoColumns
\startTwoColumns
Small caps\TwoColumns
\stopTwoColumns
\startTwoColumns
Old greek\TwoColumns
Ὅτι μὲν ὑμεῖς, ὦ ἄνδρες Ἀθηναῖοι, 
πεπόνθατε ὑπὸ τῶν ἐμῶν κατηγόρων, 
οὐκ οἶδα· ἐγὼ δ' οὖν καὶ αὐτὸς ὑπ' 
αὐτῶν ὀλίγου ἐμαυτοῦ ἐπελαθόμην, 
οὕτω πιθανῶς ἔλεγον. 
\stopTwoColumns
\stoptext
Ce qui donne le texte de la Figure 10 ci-dessous (le rendu du fichier *.svg "mange" un des "f" de "affectés").
Texte de présentation (flyer) sur deux colonnes avec logo.
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,
\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
% Ligne sous le titre
\blackrule[height=0.6mm,width=0.83\textwidth]
% Date
\currentdate[dd,{~},m,{~},year]
% Sous-Titre
\blank
\framed[align=middle,width=200mm,height=13mm,frame=off]
 \bf \switchtobodyfont[15pt] 
% Ici commence le double colonnage
\startTwoColumns
\startlines
Adeimantos
3 Achaion Street
Attica
Gr - 11852 Athens
adeimantos@uc.cy
Littérature diverse
Prototype
2016
\$0
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
% 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 
codice_242, typiquement avec codice_243 :
% 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}]
 - 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. codice_244.
\setupexternalfigure[location=default]
\definelayer[logo_layer][state=start]
\setlayer[logo_layer][preset=lefttop, y=.01\paperheight,
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.
Tables et Tableaux.
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 :
codice_245. 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
Texte encadré avec couleurs.
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 codice_246 devrait être revue, afin d'inclure les autres langues, au moyen de codice_247 (français et grec ancien), par exemple, et de la commande codice_248, dans le cas où vous souhaiteriez insérer du texte chinois dans votre document en français.
codice_249. 
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]
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}]
\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
Texte encadré avec notes et légendes.
\mainlanguage[fr]
\setcharacterspacing[frenchpunctuation]
et aux commandes suivantes :
\setupTABLE[start][align=normal]
%\setupTABLE[start][align=flushleft]
%\setupTABLE[start][align={flushleft,broad}]
\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 codice_3; on remarque que la commande
codice_251, la commande codice_252, 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
 \stoplocalfootnotes
 \stopplacetable
\stoptext
Notes en marge, notes de bas de page et notes de fin de chapitre.
Notes en marge.
\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 :
\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.
Les notes simples en bas de page dans ConTeXt.
\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 codice_256 et codice_257, qui sont des commandes utilisées pour les références à des pages ou des chapitres, commandes que nous verrons plus loin).
À noter aussi que le module "simplefonts" est aujourd'hui (en 2017) intégré au noyau et n'a plus besoin d'être invoqué dans le préambule. Aussi écrira-t-on simplement : 
\definefontfamily[mainface][rm][Verdana]
 \setupbodyfont[mainface, 10pt]
 \starttext
 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
\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
\setuppapersize[A4]
\definefontfamily [mainface] [serif] [TeX Gyre Pagella]
\setupbodyfont[mainface]
\setuplanguage[fr][patterns={fr}]
\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
\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}]
% \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.} :
Une phrase en russe :
Традиционная систематика лишайников оказывается во многом условна и
Écoutons ce que Platon fait dire à Socrate\footnote{Platon, {\em Apologie de Socrate}.} :
\quotation{Ὅτι μὲν ὑμεῖς, ὦ ἄνδρες Ἀθηναῖοι, 
πεπόνθατε ὑπὸ τῶν ἐμῶν κατηγόρων, 
οὐκ οἶδα· ἐγὼ δ' οὖν καὶ αὐτὸς ὑπ' 
αὐτῶν ὀλίγου ἐμαυτοῦ ἐπελαθόμην, 
οὕτω πιθανῶς ἔλεγον}.
\stoptext
Notes de fin de chapitre.
\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.
% THE APPARATI ARE PARAGRAPHED
%VERTICAL SPACES BEFORE APPARATUS
% 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.
\maketitle
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. 
\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
Apparat critique en notes de bas de page avec ConTeXt.
Texte simple sur une seule colonne et apparat critique.
 \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.
 \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".
 \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
 \stoplinenumbering
 \stoptext
Texte grec et sa traduction latine sur deux colonnes.
\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]
\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
 \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
 \stoptext
Notes de bas de pages et bibliographie.
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]
\startbuffer[biblio]
@book{Strauss1952,
 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
Configurer et utiliser un ou plusieurs jeux de polices.
Configurer les polices.
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]
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 :
codice_280.
Ensuite, sous Windows, comme sous Linux, il faudra exécuter la commande suivante, afin de recharger la base de donnée des polices :
codice_281
Vous pouvez alors interroger la base, afin de lister les polices installées : 
codice_283
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) codice_286 et la commande (sous Windows) : codice_287 et ensuite à "réinitialiser" la base des polices. Sous Linux, la réinitialisation de la base se fait avec la commande : 
codice_288;
codice_281.
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") :
codice_290; la clé codice_291 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
Définir une police et changer de police dans un même document.
\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
\switchtobodyfont[office]
\switchtobodyfont[linux]
\stoptext
Changement de langue dans un même document.
Grec ancien, cyrillique, allemand ....
Cette procédure de recours à une autre police peut être configurée au moyen de la commande codice_297 qui prend le même argument que la commande codice_298.
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 : 
codice_299. Et pour afficher du grec ancien :codice_300; on définit la police principale par la commande codice_301, suivie de codice_302. Reste à stipuler les langues, ce que nous faisons par codice_303. On pourrait se contenter de codice_304 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 codice_305 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 :
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"):
Langues asiatiques.
\definefallbackfamily [mainface] [rm] [ipaexmincho] [range=cjkunifiedideographs]
\definefontfamily [mainface] [rm] [Latin Modern Roman]
\setupbodyfont[mainface]
\starttext
People’s Republic of China (中华人民共和国)
\stoptext
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.
\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
% 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
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.
Lorsqu'on écrit son texte, on doit pouvoir citer les références entre accolades après la commande codice_307, comme ceci codice_308. Le texte imprimé sera de la forme suivante : (codice_309) 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 codice_310
\startchapter[title={Références bibliographiques}]
\placelistofpublications[criterium=all]
\stopchapter
\stoptext
Notes en bas de page et bibliographie.
@book{Strauss1935,
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},
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},
Toutes les références doivent être marquées par codice_313 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 codice_317, mais pourrait tout aussi bien porter un titre plus précis, comme codice_318, 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 codice_319, 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 codice_320 (et la commande de fermeture codice_321). Il est bien entendu que les données bibliographiques sont copiées/collées entre les commandes codice_320 et la commande codice_321.
Configuration des sections de la bibliographie.
\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.
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 codice_327. 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
\mainlanguage[fr]
\startbuffer[biblio]
@book{Strauss1935,
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 
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]
\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
\stopappendices
\startbackmatter
\stopbackmatter
\stoptext
Utilisation d'un fichier bibliographique de type *.bib.
Même si l'usage d'un codice_234 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 codice_319 (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 codice_331. 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]
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 codice_9 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
Veuillez choisir un des trois (3) exercices suivants :
\input ward
\stoptext
ConTeXt et XML : un aperçu rapide.
Puisque nous avons vu ci-dessus comment on pouvait utiliser un codice_234 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
\stopxmlsetups
\startxmlsetups xml:contacts
\stopxmlsetups
\startxmlsetups xml:p
 \xmlflush{#1}\par
\stopxmlsetups
\startxmlsetups xml:contact
 \blank [3*line]
 \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
\stoptext
\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 codice_336 inline.</p>
 </doc>
 \stopbuffer
 \startxmlsetups xml:initialize
 \stopxmlsetups
 \startxmlsetups xml:doc
 \stopxmlsetups
 \startxmlsetups xml:p
 \startpar\xmlflush{#1}\stoppar
 \stopxmlsetups
 \startxmlsetups xml:pre:code
 \stopxmlsetups
 \startxmlsetups xml:code
 \begingroup\xmlprettyprinttext{#1}{tex}\endgroup
 \stopxmlsetups
 \starttext
 \setuptyping[option=TEX]
 \setuptype[option=TEX]
 I can use colored code blocks:
 \starttyping
 \starttext
 \ConTeXt\ is awesome!
 \stoptext
 \stoptyping