Chapitre, section & compagnie

Par défaut le sectionnement d'un document se fait de la même façon qu'en LaTeX avec à peu près les mêmes commandes :

NumérotéNon numéroté
\part
\chapter\title
\section\subject
\subsection\subsubject
\subsubsection\subsubsubject
......

Comme avec LaTeX les commandes non numérotées n'apparaissent pas dans la table des matières (on verra plus tard comment le faire quand même).

part

Par défaut \part ne génère pas de titre parce que la plupart du temps celui-ci nécessite une attention particulière et un design spécifique. Mais cette commande effectue plusieurs initialisations, comme par exemple le fait de commencer la numérotation des chapitres à 1.1 et non 1. Il n'existe pas de version non-numéroté de cette commande. Comme le titre n'est pas généré et que l'on doit le construire nous même, on fait ce que l'on veut, on le numérote ou pas.

chapter

Crée un chapitre qui commence toujours sur une nouvelle page. En cas de document recto-verso celle-ci est toujours une «belle page» c'est à dire une page impaire (à gauche).

section, subsection,...

Le reste du sectionnement qui est hiérarchique les sections se divisent en subsection qui se divisent en subsubsection,...

\setuppapersize[A5]
\setuphead[chapter][page=no]
\starttext
\chapter{Titre de mon chapitre}
\section{Titre de ma section}
\subsection{Titre de ma sous-section}
\subsubsection{Titre de ma sous-sous-section}
\subsubsubsection{Titre de ma sous-sous-sous-section}
\subsubsubsubsection{Titre de ma sous-sous-sous-sous-section}
\subsubsubsubsubsection{Titre de ma sous-sous-sous-sous-sous-section}
\stoptext

Nouvelles commandes

La version MKIV de ConTeXt apporte un nouveau type de commande pour réaliser le sectionnement, il s'agit d'environnement. Ils sont plus longs à saisir mais sont plus souples et permettent une meilleure gestion des tags PDF et XML et des sorties ePub.

TraditionelNouvel environemment
\part\startpart ... \stoppart
\chapter\startchapter ... \stopchapter
\section\startsection ... \stopsection
\subsection\startsubsection ... \stopsubsection
\subsubsection\startsubsubsection ... \stopsubsubsection
\title\starttitle ... \stoptitle
\subject\startsubject ... \stopsubject
......
\setuppapersize[A5]
\setuphead[chapter][page=no]
\starttext
\startpart[title={Part}]
\startchapter[title={Chapter}]
\startsection[title={Section}]
\startsubsection[title={Subsection}]
\startsubsubsection[title={Subsubsection}]
\startsubsubsubsection[title={Subsubsubsection}]
\startsubsubsubsubsection[title={Subsubsubsubsection}]
\stopsubsubsubsubsection
\stopsubsubsubsection
\stopsubsubsection
\stopsubsection
\stopsection
\stopchapter
\stoppart
\stoptext

Dans la suite de cette fiche je vais surtout m’intéresser aux environnements. Ils acceptent plusieurs options que tu sépares par des virgules si tu en utilises plusieurs :

title=

Pour indiquer le titre du sectionnement

\startchapter[title={Le titre du chapitre}]
...
\stopchapter

N'oublie pas d'encadrer le titre de { }.

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 title={Le titre du chapitre} et pas title = {Le titre du chapitre} ou title= {Le titre du chapitre}.

list=

Pour indiquer un titre qui sera utilisé dans la table des matières, s'il doit être différent, plus court par exemple.

\startchapter[title={Le titre du chapitre},list={Le titre court}]
...
\stopchapter

bookmark=

Pour indiquer un titre pour les signets PDF, s'il doit être différent.

\startchapter[title={Le titre du chapitre},bookmark={Le titre pour les signets pdf}]
...
\stopchapter

marking=

Si le titre figurant dans l'entête ou le pied de page doit être différent :

\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]

\starttext
\showframe

\startchapter[title={Le titre du chapitre dans le texte},
marking={Le titre du chapitre pour l'entête}]
\input tufte
\stopchapter
\stoptext

reference=

C'est une clé qui permet le référencement, c'est à dire à pouvoir créer des liens du type voir le chapitre untel à la page x. J'en parlerais plus en détail dans une autre fiche.

\startchapter[title={Le titre du chapitre},reference=la-cle]
...
\stopchapter

Tu ne peux utiliser que des caractères ASCII pour écrire la clé, donc évite les accents les espaces ...

Des variables

On peut également ajouter une liste de variables aux sections mais de çà aussi on en reparlera dans une autre fiche.

\startchapter[title={Le titre du chapitre}][variable1=valeur1, variable2=valeur2 ... variableN=valeurN]
...
\stopchapter

Modifier l'apparence des titres de sections

Pour cela il faut utiliser la commande

\setuphead [section affectée][option1=valeur1, option2,valeur2,...,optionN=valeurN]

Dans le premier groupe de crochets tu indiques le type de section que tu souhaites modifier \setuphead [chapter] pour configurer les chapitres, \setuphead [section] pour les sections,...

Si tu veux modifier de la même façon plusieurs sections tu les indiques à la suite en les séparant par une virgule :

\setuphead [section,subsection,subsubsection][option1=valeur1, option2,valeur2,...,optionN=valeurN]

Modifier la numérotation

On va voir dans cette partie comment transformer la numérotation numérique (par défaut) en numérotation alpha-numérique (A, B, C,...), en chiffres romains (I, II, III, IV,...), en lettre grec,...

Il faut tout d'abord définir l'ensemble des conversions avec :

\definestructureconversionset[nom]
[conversion pour \part,conversion pour \chapter,conversion pour \section,...]
[conversion utilisée par défaut]

Le premier groupe d'option est un nom que tu donnes à ton ensemble de conversion pour le rappeler plus tard. Dans l'exemple que je donne par la suite je vais l'appeler raoul, tu mets ce que tu veux.

Le deuxième groupe est l'ensemble des conversion classé par ordre de sectionnement : \part,\chapter,\section,\subsection,...

Si tu ne veux pas définir certain des éléments du sectionnement tu laisses leur place vide. Par exemple j'ai décidé de numéroté mes chapitre avec des lettre majuscule, mes section avec des chiffres romains en petite capitale, mes sous-section en chiffre, les sous-sous-section en lettre grec et le reste si besoin en chiffre. N'utilisant pas de partie leur définition m'indiffère. Je vais donc programmer mon ensemble comme suit :

[,A,KR,,g]

Le dernier groupe permet de préciser la conversion par défaut pour les sections dont la conversion n'est pas définie, dans mon exemple n pour number

Voici la liste des abréviations pour les conversions :

Si tu veux utiliser les caractères grecs assure toi auparavant que la police que tu choisis les possède. La police par défaut de ConTeXt en est dépourvue. Pour l'exemple j'ai choisi la police palatino qui possède les lettres grecques minuscules mais pas les majuscules.

La définition complète pour notre exemple est :

\definestructureconversionset[raoul][,A,KR,,g][n]

Il faut maintenant indiquer le changement de numérotation à l'aide de :

\setuphead[chapter,section,subsection,subsubsection][sectionconversionset=raoul]

Le code complet et le résultat

\setuppapersize[A5]
\usetypescript[palatino]
\setupbodyfont[palatino,10pt]
\definestructureconversionset[raoul][,A,KR,,g][n]
\setuphead[chapter,section,subsection,subsubsection][sectionconversionset=raoul]
\setuphead[chapter][page=no]
\starttext
\startchapter[title={Chapter}]
\startsection[title={Section}]
\startsubsection[title={Subsection}]
\startsubsubsection[title={Subsubsection}]
\startsubsubsubsection[title={Subsubsubsection}]
\startsubsubsubsubsection[title={Subsubsubsubsection}]

\stopsubsubsubsubsection
\stopsubsubsubsection
\stopsubsubsection
\stopsubsection
\stopsection
\stopchapter
\stoptext

changer le début de la numérotation

Il faut utiliser \setupheadnumber qui a deux groupe d'option : le premier pour indique quelle sectionnement est affecté par le changement de numérotation et le deuxième pour préciser à quel nombre commencer.

La commande \setupheadnumber attribue un nouveau numéro au compteur mais c'est la commande de sectionnement par exemple \section qui incrémente ce compteur lorsqu'elle est utilisée. Donc si tu veux démarrer ta section à 6 tu dois indiquer 5 dans \setupheadnumber.

Tu peux également utiliser un signe + ou - au nombre dans ce cas le compteur sera augmenté ou diminué du nombre. J'ai repris l'exemple du manuel :

\starttext
\section{Première section}
\setupheadnumber[section][+4]
\section{Section ?}
\setupheadnumber[section][-5]
\section{Section !}
\setupheadnumber[section][41]
\section{Section quarante deux}
\stoptext

Modifier la fonte

style=

Modifie à la fois le titre et le numéro, accepte les valeurs suivantes :normal, bold, slanted, boldslanted, type, cap small et toutes les commandes de modification de fonte comme \tfx \em, ...

\setuphead[subsection][style=slanted]
\starttext
\startsection[title={Section}]
\startsubsection[title={Subsection}]
\startsubsubsection[title={Subsubsection}]

\stopsubsubsection
\stopsubsection
\stopsection
\stoptext

Comme tu peux le remarquer la modification affecte tous les niveaux inférieurs.

textstyle=,numberstyle=

Permettent de changer soit le titre soit le numéro.

Il n'accepte que des commandes, bold, slanted,... ne marche pas.

\setuphead[subsection][textstyle=\sl,numberstyle=\tfc]
\starttext
\startsection[title={Section}]
\startsubsection[title={Subsection}]
\startsubsubsection[title={Subsubsection}]

\stopsubsubsection
\stopsubsection
\stopsection
\stoptext