ConTeXt/Graphisme avancé
← Commencer à dessiner avec MPgraphics
• Introduction à MPcode et MPpage →
Retour vers le sommaire de ConTeXt
Objectifs de cette section
Cette page présente des usages plus avancés du graphisme dans ConTeXt.
Elle explique :
- comment utiliser
MPcodepour produire des schémas complexes ; - comment tracer des chemins, courbes et diagrammes ;
- comment créer des arrière-plans (backgrounds) vectoriels ;
- comment composer des fonds de page décoratifs ou semi-transparents ;
- comment combiner graphisme et mise en page (calques, overlays).
Graphisme avancé (schémas, fonds de page, arrière-plans)
[modifier | modifier le wikicode]Après avoir découvert MPgraphics, il est naturel de passer à des techniques permettant de produire des schémas plus riches, des courbes complexes ou des éléments graphiques pouvant servir de fonds, bandeaux, filigranes, décors ou repères visuels.
ConTeXt intègre nativement MetaPost et fournit plusieurs environnements puissants, en particulier MPcode et MPpage.
1. MPcode : le MetaPost “pur” intégré
[modifier | modifier le wikicode]MPcode permet d’insérer un dessin MetaPost directement dans le flux du document :
\startMPcode
draw (0,0)..(50,30)..(100,0) withcolor (0,0,1);
\stopMPcode
C’est l’outil central pour :
- les courbes complexes,
- les chemins Bézier,
- les graphiques algorithmiques,
- les diagrammes.
1.1 Exemple : tracé d’un schéma avec labels
[modifier | modifier le wikicode]\startMPcode
pair A,B,C;
A := (0,0);
B := (80,20);
C := (40,60);
draw A--B--C--cycle withcolor (.2,.2,.7);
label(btex A etex, A shifted (0,-8));
label(btex B etex, B shifted (0,8));
label(btex C etex, C shifted (0,8));
\stopMPcode
Ici :
pairdéfinit des points,labelutilise du texte TeX intégré grâce àbtex…etex,- les flèches, segments, polygones s’obtiennent naturellement.
2. Travailler les courbes, chemins et transformations
[modifier | modifier le wikicode]MetaPost excelle pour manipuler les chemins :
\startMPcode
path c;
c := (0,0)..(30,40)..(60,-10)..(100,30);
draw c withcolor (.7,0,0);
draw arrowhead rotated 180 shifted point 1 of c;
\stopMPcode
Explications :
pathcrée un chemin,..relie les points par courbes lissées,arrowheadproduit une flèche,rotated,shifted,scaledpermettent d’appliquer des transformations.
3. Créer un schéma complexe (exemple)
[modifier | modifier le wikicode]Un schéma “réseau” ou “organigramme” peut se créer simplement :
\startMPcode
pickup pencircle scaled 1.2pt ;
path box;
box := unitsquare scaled 30;
for i=0 step 60 until 180:
draw box shifted (i,0) withcolor .6white;
label(btex Node \thei etex, (i+15,15));
endfor
drawarrow (15,30)--(75,30);
drawarrow (75,30)--(135,30);
\stopMPcode
4. Arrière-plans décoratifs avec MPcode
[modifier | modifier le wikicode]ConTeXt permet d’insérer un dessin MetaPost comme **background**, répété ou unique.
4.1 Arrière-plan d’une page
[modifier | modifier le wikicode]\defineoverlay[fondpage][\startMPcode
fill fullcircle scaled 500 withcolor (.9,.95,1);
\stopMPcode]
\setupbackgrounds[page][background=fondpage]
4.2 Bandeau décoratif en haut/bas de page
[modifier | modifier le wikicode]\defineoverlay[bandeau][\startMPcode
fill (0,0)--(200,0)--(200,20)--(0,10)--cycle
withcolor (.85,.9,1);
\stopMPcode]
\setupbackgrounds[text][top=bandeau]
5. Arrière-plans semi-transparents
[modifier | modifier le wikicode]On peut créer des filigranes ou logos en transparence :
\startMPcode
fill fullcircle scaled 200
withcolor transparent(1,.85, (0,0,1));
\stopMPcode
La syntaxe est :
withcolor transparent(<type>, <opacité>, <couleur>)
Type 1 = fusion alpha.
6. Décorations répétées : motifs et carrelages
[modifier | modifier le wikicode]Pour répéter un motif sur la page :
\defineoverlay[damier][\startMPcode
for i=0 step 20 until 200:
for j=0 step 20 until 800:
if odd(i+j):
fill unitsquare scaled 20 shifted (i,j) withcolor .9white;
fi;
endfor;
endfor;
\stopMPcode]
\setupbackgrounds[page][background=damier]
Cela génère un effet “damier” léger.
7. Combiner graphisme et mise en page (overlays)
[modifier | modifier le wikicode]Les **overlays** sont utiles pour superposer un dessin sur :
- un titre,
- une page entière,
- une section spécifique.
Exemple sur un titre de chapitre :
\defineoverlay[fondchap][\startMPcode
fill unitsquare xyscaled (200,30) withcolor (.8,.85,1);
\stopMPcode]
\setuphead[chapter][background=fondchap]
💡 Astuce
Lorsque vous créez un schéma complexe, testez-le d’abord avec \startMPcode dans un petit document isolé.
Une fois satisfait, encapsulez-le dans \startuseMPgraphic pour le réutiliser.
⚠ Problème courant
Si un arrière-plan chevauche le texte :
- réduisez la transparence ;
- utilisez un gris clair ;
- placez l’overlay uniquement sur les pages désirées avec
\setupbackgrounds.
⚠ Avertissement
Les dessins très complexes peuvent ralentir la compilation dans un document long.
Il est parfois préférable de générer un fichier vectoriel autonome et de l’insérer via \externalfigure.