Aller au contenu

ConTeXt/Numérotation des titres

Un livre de Wikilivres.
En travauxlink={{{link}}}

Cette page est en travaux. Tant que cet avis n'aura pas disparu, veuillez en considérer le plan et le contenu encore incomplets, temporaires et sujets à caution. Si vous souhaitez participer, il vous est recommandé de consulter sa page de discussion au préalable, où des informations peuvent être données sur l'avancement des travaux.

Numérotation des titres

[modifier | modifier le wikicode]

Cette page présente la manière dont ConTeXt numérote les chapitres, sections et autres niveaux de titre. Nous verrons comment activer ou désactiver les numéros, choisir un style de numérotation (1, 2, 3 / I, II, III / A, B, C, etc.), gérer la numérotation hiérarchique et comprendre le lien entre titres, sommaire et listes.

Objectifs de cette section

  • Comprendre comment ConTeXt gère la numérotation des titres
  • Activer ou désactiver la numérotation pour un niveau donné
  • Choisir un style de numérotation (arabes, romains, lettres…)
  • Adapter la numérotation hiérarchique (1.1, 1.2, etc.)
  • Éviter les confusions fréquentes avec \writetolist et le sommaire

1. Principes généraux

[modifier | modifier le wikicode]

Chaque niveau de titre (chapitre, section, sous-section…) dispose d’un compteur que ConTeXt incrémente automatiquement. Le numéro est ensuite transformé par une conversion (arabe, romain, alphabétique, etc.) et inséré dans le titre et, le cas échéant, dans le sommaire.

La commande principale pour agir sur la numérotation d’un niveau est :

\setuphead
  [<niveau>]
  [options]

<niveau> peut être par exemple chapter, section, subsection, etc.

Quand on ne fait rien, ConTeXt utilise une numérotation raisonnable par défaut : chapitres en chiffres arabes, sections numérotées 1.1, 1.2, etc.

Astuce : il est conseillé de regrouper tous les réglages de numérotation (\setuphead, conversions, options) dans un fichier d’environnement par projet, afin de garantir une cohérence d’un bout à l’autre du document.


2. Activer ou désactiver la numérotation

[modifier | modifier le wikicode]

Pour supprimer la numérotation d’un niveau de titre, on peut écrire :

% Sections non numérotées
\setuphead[section][number=no]

Cela est utile, par exemple, pour :

  • des sections d’introduction ou des interludes ;
  • des titres de parties qui ne doivent pas compter dans la numérotation courante ;
  • des documents où seul le chapitre porte un numéro explicite.

On peut aussi travailler « au cas par cas » avec des commandes comme \sectionnumbering ou des variantes plus avancées, mais pour un Wikilivre d’initiation, number=no suffit largement.


3. Style de numérotation : conversions

[modifier | modifier le wikicode]

La forme du numéro (1 / I / A / a, etc.) est contrôlée par l’option conversion :

\setuphead[chapter][conversion=numbers]        % 1, 2, 3...
\setuphead[chapter][conversion=Romannumerals]  % I, II, III...
\setuphead[chapter][conversion=romannumerals]  % i, ii, iii...
\setuphead[chapter][conversion=Characters]     % A, B, C...
\setuphead[chapter][conversion=characters]     % a, b, c...

Exemple :

\setuphead[chapter][
  conversion=Romannumerals, % Chapitre I, II, III...
  style=\bfc,
  align=middle,
  before={\blank[3*big]},
  after={\blank[2*medium]},
]

Dans ce cas, les chapitres apparaîtront comme « Chapitre I », « Chapitre II », etc. (si la commande de construction du titre inclut le mot « Chapitre »).

Pour les sections, on conserve souvent les chiffres arabes :

\setuphead[section][conversion=numbers] % 1, 2, 3...

4. Numérotation hiérarchique (1, 1.1, 1.1.1)

[modifier | modifier le wikicode]

Par défaut, ConTeXt gère la hiérarchie de numérotation de façon assez naturelle :

  • \chapter → 1, 2, 3…
  • \section → 1.1, 1.2, 1.3…
  • \subsection → 1.1.1, 1.1.2, etc.

Selon les projets, on peut souhaiter :

  • n’afficher que le numéro de section sans le numéro de chapitre ;
  • faire commencer la numérotation des sections à chaque nouveau chapitre ;
  • ou, au contraire, avoir une numérotation globale sur le document.

Pour des usages avancés, ConTeXt permet de jouer avec les « segments » (voir la documentation officielle), mais pour la plupart des documents, les réglages par défaut suffisent.

Un simple exemple pour une numérotation plus « plate » des sections :

% Sections numérotées indépendamment (1, 2, 3...) sans référence au chapitre
\setuphead[section][sectionsegments=section]

5. Numérotation indépendante et réinitialisation

[modifier | modifier le wikicode]

Dans certains cas, on souhaite qu’un niveau suive sa propre numérotation, sans être subordonné à un niveau supérieur.

5.1. Numérotation indépendante d’un niveau

[modifier | modifier le wikicode]
\setuphead[subsection][ownnumber=yes]

Avec cette option, les \subsection peuvent utiliser une logique de numérotation distincte (par exemple, pour un catalogue de fiches ou des annexes).

5.2. Réinitialiser un compteur

[modifier | modifier le wikicode]

On peut réinitialiser manuellement un compteur, par exemple au début de chaque partie :

\resetcounter[section]

À manier avec précaution dans un document long, sous peine de rendre la structure difficile à suivre pour le lecteur.

Avertissement : une numérotation incohérente (réinitialisée trop souvent ou de manière arbitraire) rend la lecture et les références internes difficiles. Il est recommandé de stabiliser une convention simple (chapitres 1, 2, 3 ; sections 1.1, 1.2, etc.) et de s’y tenir pour tout le document.


6. Numérotation et sommaire

[modifier | modifier le wikicode]

Le sommaire (table des matières) utilise la numérotation définie par les titres eux-mêmes.

Exemple minimal :

\completecontent % insère la table des matières

Les numéros affichés dans le sommaire sont exactement ceux produits par les \chapter, \section, etc., en fonction des réglages \setuphead.

Si un titre est number=no, il n’apparaît pas numéroté dans le sommaire. On peut toutefois jouer sur la manière dont les entrées sont affichées via \setuplist, mais la numérotation de base provient toujours de la structure du document.


7. Encadré spécial : que fait (et ne fait pas) \writetolist ?

[modifier | modifier le wikicode]

Note importante : la commande \writetolist permet d’ajouter manuellement une entrée dans une liste (sommaire, liste personnalisée, etc.), mais elle ne modifie pas la numérotation des titres.

ConTeXt ignore tout numéro que l’on tenterait de lui passer par ce biais : la numérotation réelle des chapitres et sections est toujours calculée à partir des commandes structurelles (\chapter, \section, etc.).

Autrement dit :

  • \writetolist n’est pas un substitut à \section ;
  • on ne peut pas créer « artificiellement » un numéro 3.2 ou 4.5 via \writetolist ;
  • la cohérence de la numérotation repose sur la structure du document, pas sur la liste.

Exemple minimal avec liste personnalisée

[modifier | modifier le wikicode]
\definelist[Reprints]

% Commande de formatage de la liste
\def\ReprintsEntry#1#2#3{#2} % #2 = texte de l'entrée

\setuplist[Reprints][
  alternative=command,
  command=\ReprintsEntry,
]

\starttext

\chapter{Chapitre normal}
Du texte…

% On tente d'ajouter une entrée avec un "numéro" manuel
\writetolist[Reprints]{1.}{Entrée artificielle}
\writetolist[Reprints]{}{Entrée sans numéro}

\blank[big]

\section{Section normale}
Encore du texte…

\blank[big]
\title{Liste Reprints}
\placelist[Reprints]

\stoptext

Ici, le « 1. » fourni à \writetolist n’est qu’une chaîne de caractères passée à la macro de la liste ; il ne change en rien les compteurs de chapitres ou de sections.


8. Exemple complet : configuration de numérotation pour un petit livre

[modifier | modifier le wikicode]

L’exemple suivant réunit plusieurs éléments vus ci-dessus :

  • chapitres en chiffres romains ;
  • sections numérotées 1, 2, 3 (sans rappel du numéro de chapitre) ;
  • sous-sections non numérotées ;
  • sommaire basé sur cette numérotation.
\setuppapersize[A5][A5]
\mainlanguage[fr]
\setupbodyfont[pagella, 11pt]

% Chapitres : I, II, III...
\setuphead[chapter][
  conversion=Romannumerals,
  style=\bfc,
  align=middle,
  before={\blank[3*big]},
  after={\blank[2*medium]},
  page=yes,
]

% Sections : 1, 2, 3... (sans référence au chapitre)
\setuphead[section][
  conversion=numbers,
  sectionsegments=section,
  style=\bf,
  before={\blank[big]},
  after={\blank[small]},
]

% Sous-sections : non numérotées
\setuphead[subsection][
  number=no,
  style=\it,
  before={\blank[medium]},
  after={\blank[small]},
]

\starttext

\completecontent

\chapter{Premier chapitre}
Un peu de texte pour voir la numérotation des chapitres et des sections.

\section{Première section}
Texte de section…

\subsection{Sous-section non numérotée}
Texte de sous-section…

\section{Deuxième section}
Suite du chapitre…

\chapter{Deuxième chapitre}
Autre texte, avec une nouvelle série de sections.

\section{Encore une section}
Texte…

\stoptext

Dans le sommaire, les chapitres apparaîtront en chiffres romains, les sections en 1, 2, 3, et les sous-sections ne seront pas numérotées.