Personnaliser les titres des chapitres et sections LateX


La page Créer un livre avec LateX montre comment créer un modèle de livre (book template) simple avec LateX.
La page LateX - couverture de livre personnalisée montre comment créer une page de couverture personnalisée pour un livre écrit avec LateX.

Pour ce qui concerne le contenu du livre, on constate que le design, des titres de chapitres et de sections générés par défaut par Latex, est relativement austère.

La présente page montre comment, à l'aide du package "titlesec" et de la commande "\titleformat", personnaliser le design des titres des chapitres et des sections d'un livre créé avec lateX.

1) Ecrire le fichier source

On ouvre Texmaker et on saisit le fichier source suivant : essai01.tex
Les explications relatives au fonctionnement de ce fichier sont indiquées sous forme de commentaires. On pourra adapter un design particulier en utilisant tout ou partie des 6 niveaux d'arborescence possibles (chapitre, section, sous-section, sous sous-section, paragraphe et sous paragraphe) et en adaptant selon son besoin les lignes de la partie "\titleformat" correspondante.

% essai01.tex
%------------------------------------------------
% FORMAT DE PAGES ET PACKAGES
%------------------------------------------------
\documentclass[17pt,twoside, openany]{extbook}
\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\frenchbsetup{StandardLists=true} %pour avoir des listes avec puces
\newcommand{\plogo}{\fbox{$\mathcal{CT}$}} % Logo
\usepackage{fouriernc} % utilisation police New Century Schoolbook
\usepackage{geometry}% pour définir le format des pages du livre
\geometry{a4paper,left=20mm,right=20mm,top=20mm,bottom=20mm}
\usepackage{xcolor}% pour utiliser les couleurs
\definecolor{mongris}{rgb}{0.5, 0.5, 0.5}
\usepackage{amsmath,amsthm, amsfonts,amssymb}%pour les formules mathématiques
\usepackage{textcomp}
\overfullrule=2cm %pour localiser les éventuelles erreurs "bad hbox" dans le texte
%------------------------------------------------
% POUR CREER UNE PAGE 2 VIDE
%------------------------------------------------
\usepackage{afterpage}
\newcommand\mapagevide{
\null
\thispagestyle{empty}
\addtocounter{page}{0}
\newpage
}
%------------------------------------------------
% DESIGN DES NOMS DE CHAPITRES, SECTIONS ET PARAGRAPHES
%------------------------------------------------
\setcounter{secnumdepth}{5}% profondeur de la table des matières
\usepackage{titlesec}
%
\titleformat % design des titres des chapitres
{\chapter}
[display]
{\centering\normalfont\Large\scshape\bfseries}
{\rule[3pt]{0.15\linewidth}{3pt}\quad\chaptertitlename~\thechapter\quad \rule[3pt] {0.15\linewidth}{3pt}}
{0\baselineskip}%espace vertical entre chapitre et nom du chapitre
{\rule{\linewidth}{0.5pt}\break\Huge}
[\vspace{-0.5\baselineskip}\rule{\linewidth}{0.5pt}\vspace{0\baselineskip}]
%
\titleformat % design des titres des sections
{\section}
[block]
{\Large\upshape\bfseries}
{\thesection~)}
{\baselineskip}
{}
[\hrule\vspace{2pt}\hrule\vspace{0\baselineskip}]
%
\titleformat % design des titres des sous-sections
{\subsection}
[block]
{\normalfont\itshape\large\bfseries}
{\thesubsection~)}
{\baselineskip}
{}
[\hrule\vspace{0\baselineskip}]
%
\titleformat % design des titres des sous-sous-sections
{\subsubsection}
[block]
{\itshape\normalsize\bfseries}
{\normalfont\bfseries \thesubsubsection~)}
{\baselineskip}
{}
[\vspace{0\baselineskip}]
%
\titleformat% design des titres des paragraphes
{\paragraph}
[block]
{\upshape\normalsize}
{\theparagraph~)}
{\baselineskip}
{}
[]
%
\titleformat% design des titres des sous-paragraphes
{\subparagraph}
[block]
{\upshape\normalsize}
{\thesubparagraph~)}
{\baselineskip}
{}
[]
%------------------------------------------------
% DEBUT DU LIVRE
%------------------------------------------------
\begin{document}
%------------------------------------------------
% PAGE DE TITRE
%------------------------------------------------
\begin{titlepage}
\centering % Centrage
\scshape % utilisation de majuscules miniatures
\vspace*{\baselineskip} % espace vertical
%------------------------------------------------
\rule{\textwidth}{1.6pt}
{\LARGE TITRE PARTICULIER\\ DU\\ LIVRE\\}
\rule{\textwidth}{1.6pt}
\vspace{2\baselineskip} %espace vertical
%------------------------------------------------
Un livre réalisé avec \LaTeX, adapté aux malvoyants\\ % sous titre
\vspace*{3\baselineskip} % espace vertical
%------------------------------------------------
Rédigé par\\
\vspace{0.5\baselineskip} % espace vertical
{\scshape\Large Prénom Nom \\} % auteur
\vspace{0.5\baselineskip} % espace vertical
\textit{diplôme 1 \\ diplôme 2}\\
\vfill % espace vertical de remplissage
%------------------------------------------------
\plogo\\ % Logo
\vspace{0.3\baselineskip} % espace vertical
2020 % année
\end{titlepage}
%------------------------------------------------
% POUR CREER UNE PAGE 2 VIDE
%------------------------------------------------
\mapagevide
\newpage
%------------------------------------------------
% TABLE DES MATIERES
%------------------------------------------------
\tableofcontents
%------------------------------------------------
% PARTIE 1
%------------------------------------------------
\color{mongris}
\part{Nom de la partie}
\color{black}
%------------------------------------------------
% CHAPITRE 1
%------------------------------------------------
\chapter{Nom du chapitre}
%
Les probabilités sont une branche des mathématiques qui permet de modéliser les phénomènes de hasard.
\section{Nom de la section}
Un ensemble est une collection d’objets appelés éléments. Soit un ensemble E de n éléments $e_1, e_2,..,e_n$.
On écrit $E=\{e_1, e_2,.., e_n\}$. Si un élément e appartient E, on écrit $e \in E$.
\subsection{Nom de la sous section}
ceci est le texte de la sous section
\subsubsection{Nom de sous sous section}
ceci est le texte de la sous sous section
\paragraph{Nom du paragraphe}
ceci est le texte du paragraphe
\subparagraph{Nom du sous paragraphe}
ceci est le texte du sous paragraphe 1-1
\end{document}

2) Compiler le fichier source

La compilation se passe sans erreur ni warnning et produit le fichier "essai01.pdf" de 7 pages suivant.

01

On vérifie que les titres des chapitres et des sections sont bien personnalisés conformément au code source.

02

3) Variantes

Unr variante consiste à encadrer le titre des chapitres, en utilisant la commande "\titleformat{\chapter}[frame]", comme le montre le code source suivant : essai02.tex

%------------------------------------------------
% DESIGN DES NOMS DE CHAPITRES, SECTIONS ET PARAGRAPHES
%------------------------------------------------
\setcounter{secnumdepth}{5}% profondeur de la table des matières
%
\titleformat{\chapter}[frame]
{\normalsize}
{\filright\rmfamily\Large
\enspace Chapitre \thechapter\enspace}
{18pt}
{\rmfamily\huge\bfseries\filcenter}
% rmfamily=roman, sffamily = sans serif ou ttfamily =type writer
%

Le résultat obtenu est esthétiquement intéressant...

03

On peut aussi ne laisser que le numéro du chapitre dans l'encadrement, comme le montre le code source suivant : essai03.tex

%------------------------------------------------
% DESIGN DES NOMS DE CHAPITRES, SECTIONS ET PARAGRAPHES
%------------------------------------------------
\setcounter{secnumdepth}{5}% profondeur de la table des matières
\usepackage{titlesec}
%
\titleformat{\chapter}[frame]
{\Huge}
{\filright\rmfamily\bfseries\Huge\enspace\thechapter\enspace}
{18pt}
{\rmfamily\huge\bfseries\filcenter}
% rmfamily=roman, sffamily = sans serif ou ttfamily =type writer
%

04