Créer un livre avec Latex


LateX est un langage de programmation qui permet de créer des documents professionnels dotés de contenus complexes comme par exemple des formules mathématiques.
LateX peut être installé et utilisé avec tous les systèmes d'exploitations (Linux, Windows ou Mac OS). La page suivante montre comment installer et utiliser LateX sur un Raspberry Pi Installer Latex sur un Raspberry Pi

La présente page montre comment créer un modèle de livre (book template) simple et évolutif.

1) Créer un premier modèle de livre simple

1.1) Ecrire le fichier

On ouvre Texmaker et on saisit le fichier source -> essai01.tex suivant.

\documentclass[17pt,twoside, openany]{extbook}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage{fouriernc} % on utilise la police New Century Schoolbook
\usepackage{geometry}
\geometry{a4paper,left=20mm,right=20mm,top=20mm,bottom=20mm}
\title{Notions de probabilités}
\author{C.~Turrier}
\begin{document}
\maketitle
\tableofcontents
\chapter{Vocabulaire}
Les probabilités sont une branche des mathématiques qui permet de modéliser les phénomènes de hasard. La maîtrise de cette discipline passe par une définition claire et précise du vocabulaire utilisé.
\section{Expérience aléatoire}
Une expérience aléatoire est une expérience dont on ne peut pas connaître le résultat à l’avance.
\newpage
nouvelle page
\newpage
nouvelle page
\chapter{Variable aléatoire}
On appelle variable aléatoire discrète X une application X de $\Omega$ dans $\mathcal{R}$ qui, à chaque évènement élémentaire $e_k$ de l’univers fait correspondre un nombre réel $x_i=X(e_k)$
\end{document}

01

EXPLICATIONS
Ligne 1: écriture du livre en langue française, en mode "twoside" et "openany", avec des caractères de taille 17pt

Le mode "twoside" permet d'écrire le livre en distinguant les pages paires et impaires. En mode twoside, si la marge de gauche du livre est réglée sur 60mm par exemple (\geometry{a4paper,left=60mm,right=20mm,top=20mm,bottom=20mm} alors la marge de droite des pages paires sera alors automatiquement réglée à 60mm par Latex afin que la découpe du livre, lors de la fabrication, soit facilitée. En revanche, si on indique "oneside" à la place de "twoside" (\documentclass[17pt,oneside, openany]{extbook}) alors les pages paires et impaires seront traitées de la même façon.

Le mode "openany" permet de commencer le chapitre suivant sur la page qui suit la page de fin du chapitre précédent (page paire ou impaire). En revanche, si on indique "openright" à la place de "openany" alors le chapitre suivant commencera obligatoirement sur une page imapaire. Pour cela Latex insèrera automatiquement, si nécessaire, une page blanche à la fin du chapitre précédent.

Ligne 2: saisie directe des caractères accentués (sans avoir à les coder)
Ligne 3: encodage des caractères au format UTF8
Ligne 4: rédaction avec prise en compte des particularités de la langue française
Ligne 5: utilisation de l'excellente police de caractères New Century Schoolbook
Lignes 6 et 7: définition d'un format de page A4 avec des marges de 2cm
Lignes 8: titre du livre
Lignes 9: nom de l'auteur du livre
Lignes 10: début du contenu du livre
Lignes 11: insertion automatique du titre et du nom d'auteur (en page 1, couverture, du livre)
Lignes 12: insertion automatique de la table des matières (en page 3 du livre)
Lignes 13: titre du premier chapitre
Lignes 14: texte du premier chapitre
Lignes 15: titre de la première section du premier chapitre
Lignes 16: texte de la première section du premier chapitre
Lignes 17: commande de saut de page
Lignes 18: texte "nouvelle page"
Lignes 19: commande de saut de page
Lignes 20: texte "nouvelle page"
Lignes 21: titre du second chapitre
Lignes 22: texte du second chapitre
Lignes 23: fin du contenu du livre

1.2) Compiler le document

Pour compiler le fichier source "essai01.tex" (après enregistrement de ce fichier dans un répertoire), on clique sur le triangle situé à gauche du bouton "Compilation rapide". La compilation démarre et dure quelques secondes. Si le fichier source ne contient pas d'erreur, la compilation est réussie et le fichier "essai01.pdf" est généré (dans le même répertoire que le fichier source) et on obtient une fenêtre de compilation vide (sans message d'erreur ni de warning).

02

Avec l'option "openany", le fichier "essai01.pdf", produit par la compilation, comprend 6 pages. Le numéro ( numéro 1) de la page de couverture n'est pas affiché. Les pages suivantes sont affichées dans l'ordre où elles se présentent. Le numéro de page de la table des matières et les numéros de page des nouveaux chapitres sont affichés au milieu de la marge basse. Pour les autres pages, les numéros de page pairs sont affichés en haut et à gauche de la marge haute et les numéros de page impairs sont affichés en haut et à droite de la marge haute.

Le contenu de la première page (couverture) et de la table des matières sont générés automatiquement.

04

Avec l'option "openright" à la place de "openany", latex génère 9 pages au lieu de 6 car il fait commencer la table des matières et chaque nouveau chapitre sur une page impaire d'où l'insertion automatique de 3 pages paires (pages 2,4 et 8).

05

1.3) Erreurs de compilation

Les messages d'erreurs ou d'avertissements (warnings) pouvant être obtenu lors de la compilation sont divers et variés et dépendent des types d'erreurs qui sont présentes dans le fichier source.
Par exemple, si on place la commande \\ (double barre oblique inversée) de retour à la ligne à la fin de la dernière ligne du document, ou à un autre endroit inaproprié, on obtient le message "Underfull \hbox (badness 10000) in paragraph". Ce message d'avertissement n'empêche pas la compilation de d'effectuer jusqu'à son terme mais il signale que le contenu du fichier source n'est pas parfait. Il suffit de supprimer ce double caractère pour obtenir une compilation sans message, signe de perfection.

03

2) Créer une page 2 vide

Pour créer une page 2 vide, et non numérotée, avec l'option "openany", il suffit d'utiliser le package "afterpage", de créer la commande "\mapagevide" suivante puis de l'insérer après "\maketitle", suivie de "\newpage"
%------------------------------------------------
% COMMANDE POUR CREER UNE PAGE 2 VIDE
%------------------------------------------------
\usepackage{afterpage}
\newcommand\mapagevide{
\null
\thispagestyle{empty}
\addtocounter{page}{0}
\newpage
}
%------------------------------------------------

La ligne "\addtocounter{page}{0}" indique à Latex de numéroter les pages normalement (sans décalage).

Code source complet -> essai02.tex

\documentclass[17pt,twoside, openany]{extbook}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage{fouriernc} % on utilise la police New Century Schoolbook
\usepackage{geometry}
\geometry{a4paper,left=20mm,right=20mm,top=20mm,bottom=20mm}
%------------------------------------------------
% COMMANDE POUR CREER UNE PAGE 2 VIDE
%------------------------------------------------
\usepackage{afterpage}
\newcommand\mapagevide{
\null
\thispagestyle{empty}
\addtocounter{page}{0}
\newpage
}
%------------------------------------------------
\title{Notions de probabilités}
\author{C.~Turrier}
\begin{document}
\maketitle
%------------------------------------------------
% CREATION D'UNE PAGE 2 VIDE
%------------------------------------------------
\mapagevide
\newpage
%------------------------------------------------
% TABLE DES MATIERES
%------------------------------------------------
\tableofcontents
\chapter{Vocabulaire}
Les probabilités sont une branche des mathématiques qui permet de modéliser les phénomènes de hasard. La maîtrise de cette discipline passe par une définition claire et précise du vocabulaire utilisé.
\section{Expérience aléatoire}
Une expérience aléatoire est une expérience dont on ne peut pas connaître le résultat à l’avance.
\newpage
nouvelle page
\newpage
nouvelle page
\chapter{Variable aléatoire}
On appelle variable aléatoire discrète X une application X de $\Omega$ dans $\mathcal{R}$ qui, à chaque évènement élémentaire $e_k$ de l’univers fait correspondre un nombre réel $x_i=X(e_k)$
\end{document}

Avec cette modification, le livre fait désormais 7 pages.

06