Entête et pied de page

Fleuron

Avant de démarrer je vais décrire la mise en page des exemples de cette fiche, car il ce peut que si tu refais les exemples chez toi tu n'obtiennes pas le même résultats. Pour mes exemples j'ai crée une page particulières avec très peu de corps de texte (10 cm), car ici ce qui nous intéresse c'est l'entête et le pied de page. Le document est recto-verso, avec une petite marge interne (2 cm) et une marge externe de 3 cm :

\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

Attention à chaque fois que tu utilises une = ne l'entoure pas d'espace. Si sous LaTeX cela n'a aucune importance, ConTeXt n'aime pas du tout et c'est source d'erreur de compilation difficile à retrouver. Donc tu écris backspace=2cm et pas backspace = 2cm ou backspace= 2cm.

Si tu as déjà lu la fiche sur la mise en page les options de \setuplayout sont compréhensibles. Pour analyser le comportement des pages paires et impaires, j'ai créé un document en recto verso (\setuppagenumbering). \showframe visualise par un cadre les différentes parties de la page et la commande \tufte écrit un texte factice. Si tu utilises un document simple face, le résultat est identique à la page impair. Ce code produit le document suivant pour les pages impaires :

et pour les pages paires

Le cadre vert, dessiné par \setuplayout, encadre la page.

La première chose que l'on remarque sur les illustrations ci-dessus est présence du numéro de page au centre de l'entête. Donc si tu désires contrôler la position du numéro de page par l'intermédiaire de la gestion des entête et pied de page, il faut supprimer la gestion par défaut par :

\setuppagenumbering[location=]

J'ai ajouté cette commande à mon emc.

La commande pour configurer l'entête est :

\setupheadertexts

celle pour le pied de page :

\setupfootertexts

Elles fonctionnent exactement de la même façon, je ne décrirais donc que la première. Elles acceptent, en fonction du type de document et de ce que l'on veut 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 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 cente de l'entête:

\setupheadertexts[Texte au centre de l'entête]

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[Bébert c'est le plus fort]
\starttext
\showframe
\input tufte
\stoptext

page impaire :

page paire

Si on utilise 2 options, l'objet de la première est placé à gauche de l'entête et celui de la deuxième à droite :

\setupheadertexts[Texte à gauche][Texte à droite]

Par exemple

\setupheadertexts[Bébert\dots][\dots c'est le plus fort]

donne

page impaire :

page paire

Comme tu peux le constater pour un document recto-verso côté gauche signifie petit fond (côté reliure) et la droite correspond au grand fond (vers l'extérieur). Et pour l'exemple ci-dessus, la page paire ne donne pas le résultat escompté. Pour y remédier il faut utiliser 4 options :

\setupheadertexts[Texte à gauche, page impaire]
[
Texte à droite, page impaire]
[Texte à gauche, page paire]
[
Texte à droite, page paire]

Par exemple :

\setupheadertexts[Bébert\dots]
[
\dots c'est le plus fort]
[Le plus fort\dots]
[
\dots c'est Bébert]

donne page impaire :

page paire

Hormis du texte tu peux également indiquer dans les entêtes et pied de pages, les sectionnements courants en utilisant le nom de la commande de sectionnement sans la \, par exemple chapter, section, part. . .

\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[chapter][section]
\starttext
\showframe
\chapter{Titre du chapitre}
\section{Titre de la section}
\input tufte
\stoptext

Tu peux indiquer le numéro de la section courante avec chapternumber, sectionnumber, . . .

\setupheadertexts[chapternumber][sectionnumber]

On pourrait être tenté pour avoir le chapitre précédé de son numéro de faire :

\setupheadertexts[chapternumber chapter][sectionnumber section]

Et non, ça ne marche pas. Pour ce faire il faut utiliser la commande \getmarking. Je ne vais pas entrer dans les détails de cette commande, ce sera l'objet d'une autre fiche. Pour notre exemple tu l'utilises de cette façon : \getmarking[chapter], \getmarking[chapternumber], \getmarking[section], \getmarking[sectionnumber], . . .

Pour éviter des problème liés à des [ ] dans des [ ], il faut les entourer de { }

Pour notre exemple cela donne :

\setupheadertexts[{\getmarking[chapternumber] \getmarking[chapter]}]

Tu peux également indiquer la date avec date :

\setupheadertexts[date]

Tu peux modifier l'aspect de la date avec \currentdate, la aussi je n'entre pas dans les détails je ferais une petite fiche, je donne juste un exemple :

\setupheadertexts[{\currentdate[month,year]}]

Si tu n'utilises pas \setuppagenumber pour gérer le numéro de page tu peux utiliser pagenumber :

\setupheadertexts[pagenumber]

Par contre tu seras beaucoup plus limité en terme de mise en forme de la numérotation de pages.

La dernière option permet de préciser la position des objets de l'entête (ou du pied de page) soit au-dessus (ou en dessous) soit dans les marges. Elle prend 3 valeurs : TEXT, margin ou edge. Cette option n'est pas obligatoire et sa valeur par défaut est TEXT.

\setupheadertexts[position][Texte à gauche][Texte à droite]
\setupheadertexts[position][Texte à gauche, page impaire][Texte à droite, page impaire] [Texte à gauche, page paire][Texte à droite, page paire]

Avec TEXT les objets sont placés au-dessus (entête) et en-dessous (pied de page) du corps de texte, c'est la position de tous les exemples précédents.

Avec margin les objets sont placés dans les marges :

\setupheadertexts[margin][chapternumber][{\currentdate[year]}]

Bien entendu il faut avoir les marges suffisamment grande pour placer ton texte.

edge est utilisé pour les documents électroniques pour y placer par exemple des symboles de navigation, il faut bien sûr auparavant avoir défini les edges, ce qui n'est pas le cas dans mon emc.

La configuration en cours peut être effacée par des [ ] vides:

\setupheadertexts[ ]

Un cas particulier, si tu veux avoir dans l'entête ou le pied de page un objet à droite, un au centre et un à gauche.

\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[\setups{text a}][ ][ ][\setups{text b}]
\startsetups[text a]
\rlap{Bébert}
\hfill
\getmarking[chapter]
\hfill
\llap{Lafiche}
\stopsetups
\startsetups[text b]
\rlap{Raoul}
\hfill
\getmarking[section]
\hfill
\llap{Lampion}
\stopsetups
\starttext
\showframe
\chapter{Titre du chapitre}
\section{Titre de la section}
\input tufte
\stoptext

Un peu d'explication : \startsetups[text a] . . . \stopsetups permet de créer une variable texte a et \setups{text a} d'appeler cette variale.

On obtient pour la page impaire :

et pour la page paire :