Comment réinitialiser la numérotation des pages à chaque chapitre ?#

Pour des manuels techniques à reliure libre, l’usage consiste parfois à numéroter les pages par chapitre. En effet, si vos corrections ajoutent une page entière au chapitre, vous n’aurez qu’à redistribuer les seules pages de ce chapitre.

1.  Avec les commandes de base#

Une première méthode revient à modifier la définition de la commande qui affiche le compteur page, à savoir la commande \thepage. Voici une méthode de Piet van Oostrum.

\documentclass[french]{book}
  \usepackage[T1]{fontenc}    % Encodage T1 (adapté au français)
  \usepackage{lmodern}        % Caractères plus lisibles
  \usepackage{babel}          % Réglages linguistiques (avec french)
  \usepackage{lipsum}         % Du faux texte

  \makeatletter % 
  \renewcommand{\thepage}{\thechapter-\arabic{page}}
  \@addtoreset{page}{chapter}
  \makeatother

\begin{document}
\tableofcontents
\chapter{Un classique incontournable}
\lipsum[1-6] % Le faux texte
\chapter{Un classique incontournable - Suite}
\lipsum[7-12] % Le faux texte
\end{document}

En y ajoutant le petit bout de code suivant (toujours de Piet van Oostrum), le compteur de page ne repart pas à zéro mais à un en première page de chapitre :

\documentclass[french]{book}
  \usepackage[T1]{fontenc}    % Encodage T1 (adapté au français)
  \usepackage{lmodern}        % Caractères plus lisibles
  \usepackage{babel}          % Réglages linguistiques (avec french)
  \usepackage{lipsum}         % Du faux texte

  \makeatletter % 
  \@addtoreset{page}{chapter}
  \def\@stpelt#1{\global\csname c@#1\endcsname
                 \expandafter\ifx \csname#1\endcsname
                 \page
                 \@ne
                 \else
                 \z@ \fi}
  \makeatother

\begin{document}
\tableofcontents
\chapter{Un classique incontournable}
\lipsum[1-6] % Le faux texte
\chapter{Un classique incontournable - Suite}
\lipsum[7-12] % Le faux texte
\end{document}

La question « Comment modifier le style de la numérotation des pages ? » montre comment avoir un style de numérotation intégrant le numéro de chapitre u numéro de page.

2.  Avec l’extension chngcntr#

L’extension chngcntr permet de relier deux compteurs entre eux. Avec la commande \counterwithin*{⟨secondaire⟩}{⟨primaire⟩}, Lorsque le compteur ⟨principal⟩ est mis à jour, le compteur ⟨secondaire⟩ est réinitialisé à 0.

Dès lors, il devient possible de relier le compteur de chapitre chapter et le compteur de page page.

\documentclass[french]{book}
  \usepackage[T1]{fontenc}    % Encodage T1 (adapté au français)
  \usepackage{lmodern}        % Caractères plus lisibles
  \usepackage{babel}          % Réglages linguistiques (avec french)
  \usepackage{lipsum}         % Du faux texte
  \usepackage{chngcntr}

  \counterwithin*{page}{chapter}

\begin{document}
\tableofcontents
\chapter{Un classique incontournable}
\lipsum[1-6] % Le faux texte
\chapter{Un classique incontournable - Suite}
\lipsum[7-12] % Le faux texte
\end{document}

La commande \counterwithin{⟨secondaire⟩}{⟨primaire⟩} ajoute le numéro du compteur ⟨primaire⟩ devant la valeur du compteur ⟨secondaire⟩. ette solution est probablement plus lisible.

\documentclass[french]{book}
  \usepackage[T1]{fontenc}    % Encodage T1 (adapté au français)
  \usepackage{lmodern}        % Caractères plus lisibles
  \usepackage{babel}          % Réglages linguistiques (avec french)
  \usepackage{lipsum}         % Du faux texte
  \usepackage{chngcntr}

  \counterwithin{page}{chapter}

\begin{document}
\tableofcontents
\chapter{Un classique incontournable}
\lipsum[1-6] % Le faux texte
\chapter{Un classique incontournable - Suite}
\lipsum[7-12] % Le faux texte
\end{document}

3.  Avec l’extension chappg#

L’extension chappg, de Robin Fairbairn, traite ce sujet. Le simple appel de l’extension suffit à obtenir le résultat souhaité.

\documentclass[french]{book}
  \usepackage[T1]{fontenc}    % Encodage T1 (adapté au français)
  \usepackage{lmodern}        % Caractères plus lisibles
  \usepackage{babel}          % Réglages linguistiques (avec french)
  \usepackage{lipsum}         % Du faux texte
  \usepackage{chappg} 

\begin{document}
\tableofcontents
\chapter{Un classique incontournable}
\lipsum[1-6] % Le faux texte
\chapter{Un classique incontournable - Suite}
\lipsum[7-12] % Le faux texte
\end{document}

Cette extension propose quelques fonctionnalités plus fines, par exemple pour gérer des numérotations pour un index, comme le montre sa documentation.

4.  Avec l’extension pagepc#

Avertissement

L’extension pagepc est vraisemblablement obsolète car datant de 1995. Ce qui suit est informatif.

L’extension pagepc, d’Axel Kielhorn, remet le compteur de page à 1 à chaque début de chapitre.

\documentclass[french]{book}
  \usepackage[T1]{fontenc}    % Encodage T1 (adapté au français)
  \usepackage{lmodern}        % Caractères plus lisibles
  \usepackage{babel}          % Réglages linguistiques (avec french)
  \usepackage{lipsum}         % Du faux texte
  \usepackage{pagepc}

  \pageperchapter

\begin{document}
\tableofcontents
\chapter{Un classique incontournable}
\lipsum[1-6] % Le faux texte
\chapter{Un classique incontournable - Suite}
\lipsum[7-12] % Le faux texte
\end{document}