n petit rappel, ConTeXt est monolithique. Toutes les macros font partie de ConTeXt, il n'est pas nécessaire de charger des packages pour utiliser une commande. L'avantage est de ne pas avoir de conflit entre les packages comme par exemple entre enumitem et french - babel sous LaTeX. Enfin ConTeXt se veut plus respectueux de la syntaxe de TeX. ConTeXt utilise plus les [ ] que les { }.
Rien que du très classique et si tu as déjà utilisé LaTeX tu ne devrais pas être perdu, voici quelque exemples :
\it pour mettre un texte en italique ou \bf pour le mettre en gras. Tu peux limiter leur porté par des { }, par exemple :
Voici d'autres exemples :
\crlf pour forcer un saut de ligne, \page pour forcer un saut de page, \thinrule pour tracer une ligne.
La différence avec LaTeX, c'est que la plupart d'entre-elles acceptent des options. Par exemple le saut de page initié par \page peut atterrir sur une page paire
ou bien sur une page complètement blanche
Les deux à la fois paire et complètement blanche :
La différence entre ConTeXt et LaTeX est qu'avec le premier on a une seule commande et plusieurs options alors que le second multiplie les commandes.
Avec ces dernières les différences avec LaTeX sont importantes. Ce qui sous ConTeXt se fait simplement en ajoutant une option nécessite pour avoir le même résultat d'avoir plusieurs commandes et de charger plusieurs packages. Pour l'illustrer je vais prendre l'exemple de \framed{texte} qui trace un cadre autour d'un texte.
Tu peux ajouter des options :
Ou bien encore :
Si tu veux faire la même chose avec LaTeX, il faut charger le package fancybox
et utiliser la commande \ovalbox{texte} ou \Ovalbox{texte}, mais tu n'obtient que des boites en noir, si tu veux la couleur, il faut s'orienter vers les packages pstricks
ou tikz
.
Revenons à ConTeXt, la liste des options est plutôt impressionnante :
Nom | Valeurs |
height | fit broad dimension |
width | fit broad fixed local dimension |
autowidth | yes no force |
offset | none overlay default dimension |
location | depth hanging high lohi low top middle bottom |
option | none empty |
strut | yes no global local |
align | no flushleft flushright middle normal high low lohi |
bottom | command |
top | command |
frame | on off none overlay |
topframe | on off |
bottomframe | on off |
leftframe | on off |
rightframe | on off |
frameoffset | dimension |
framedepth | dimension |
framecorner | round rectangular |
frameradius | dimension |
framecolor | name |
background | screen color none foreground name |
backgroundscreen | number |
backgroundcolor | name |
backgroundoffset | frame dimension |
backgrounddepth | dimension |
backgroundcorner | round rectangular |
backgroundradius | dimension |
depth | dimension |
corner | round rectangular |
radius | dimension |
empty | yes no |
foregroundcolor | name |
foregroundstyle | name |
rulethickness | dimension |
De plus si tu t'intéresses à l'option corner
outre les valeurs round
et rectangle
tu as 28 autres possibilités, numérotées de 00 à 28. Par exemple :
Tu trouveras sur http://wiki.contextgarden.net/Command/framed le résultat des autres numéros. De quoi régler finement tes encadrements de texte.
Toutes les commandes qui présentent des possibilités de réglage possèdent une commande du type
qui permettent de régler les options dans le préambule du source, pour affecter toutes les commandes du document. Par exemple si l'on reprend framed
:
Presque toutes les commandes ConTeXt présentent la commande \defineNomCommande qui permet de définir tes propres éléments. Place dans le préambule de ton source les commandes suivantes :
Maintenant dans ton texte tu peux utiliser \cadreVert{texte} pour obtenir un texte entouré de vert et \boiteBleue{texte} pour du texte dans une boite bleue.
Tu peux utiliser une commande du type setup
pour définir les options de tes commandes :
Attention à la façon d'écrire les options
Pour faciliter l'écriture des réglages tu peux passer à la ligne entre les [ ] ou ajouter un blanc entre les groupes de [ ]. Tu peux écrire :
et même entre les options
Par contre attention aux espaces !!
Tu ne peux en mettre qu'après la virgule, jamais avant, ni entourant le signe égal ni avant le crochet terminal ]. Donc pas de saut de ligne avant une virgule et le ].
Aucun des exemples suivant ne donnera le résultat escompté.
Donc en gros évite les espaces et passe à la ligne uniquement après une virgule. Une ligne blanche à l'intérieur de la commande, provoque également une erreur.
Tu peux te servir des deux commandes précédentes pour créer des héritages. Je reprends notre exemple de boite avec framed
. Tu peux décider que toutes tes boites auront une base commune, à savoir, un cadre avec des bords arrondis uniquement en haut et une épaisseur de trait de 2pt et centré sur le texte. Pour programmer cette exigence, on va utiliser setup
Maintenant il est possible de créer très facilement des boites rouges pour les mots importants et des boites vertes pour les remarques :
Voici le résultat :
Beaucoup de modificateurs typographiques sont sous la forme
C'est un peu l'équivalent des environnements sous LaTeX.
Ils acceptent un ou plusieurs groupes d'options
On peut également prédéfinir leur comportement dans le préambule à l'aide de la commande
Et l'on peut définir ses propres start-stop à l'aide de
que tu utilises comme ceci :
Il faut éviter de passer une ligne après \startquelquechose car dans bien des cas tu n'obtiendras pas le résultat escompté.
Voici deux exemples :
donne :
Par contre
donne :
De même :
Et
Tu vois bien qu'avec cet ensemble de commandes, tu vas pouvoir fabriquer un certain nombre d'objets qui vont participer à l'élaboration de ton document. De toute façon tu n'as pas le choix, car contrairement à LaTeX et ses nombreux packages, avec ConTeXt tu ne trouveras pas de modules tout faits pour t'aider. Par contre, l'importance du degré de configuration va te permettre de faire exactement ce que tu veux où tu veux.