[Accueil] - [Plan du site] - [Rechercher] - [ C O L R T S P ]  

 
Mise en page avec LaTeX d’un livre pour les éditions Eyrolles
 

par nojhan le 21 octobre 2003

LaTeX est un outils formidable pour créer des documents de très bonne qualité. Néanmoins, dès que l’on touche à la mise en page, il faut prendre son courage à deux mains. Cet article décrit comment j’ai défini la mise en page d’un livre que j’ai coécrit (métaheuristiques pour l’optimisation difficile).

Il y a deux niveaux de modifications : le préambule et les commandes directement dans le document.

Préambule

GZ - 1 ko
Le préambule
Tout le code présenté dans un seul fichier.

Tout ce code est disponible dans un fichier à télécharger.

Tout d’abord, on augmente les valeurs de pénalité, pour forcer LaTeX à revenir à gérer plus élégamment les coupures de paragraphes.


%%% Grandes pénalités
%%% pour les retours à la ligne
\widowpenalty=10000
\clubpenalty=10000
\raggedbottom

Chaque chapître doit démarrer sur une page impaire, donc si jamais il le faut, LaTeX insère une page vide, cette commande permet de supprimer les en-têtes et pieds de page de ces pages,de façon à ce qu’elles soient complétement vide :


%%% Commande pour supprimer en-têtes
%%% et pied de page des pages vides
\newcommand{\clearemptydoublepage}{%
\newpage{\pagestyle{empty}\cleardoublepage}}

Si on veut utiliser des formules en ligne du type "1/2", le résultat n’est pas très propre. Avec le package nicefrac il est possible de rendre quelquechose comme 1/2 :


%%% Pour écrire des fractions en lignes correctes :
\usepackage[nice]{nicefrac}
% utiliser : "\nicefrac{1}{2}" pour obtenir 1/2

La taille des formules mathématiques est paramétrable. Dans notre cas la taille des indices était trop petites, voilà comment les retoucher :


%%% change la taille de la police des indices
%\DeclareMathSizes{taille_base}{taille_base2}{taille_indice_1}{taille_indice_2}
\DeclareMathSizes{10}{10}{8}{6}
\DeclareMathSizes{11}{11}{9}{7}
\DeclareMathSizes{12}{12}{10}{8}

Ce qui suit concerne des modifications des en-têtes et des pieds de pages :


%%% Pas de numéro de page sur la première page des chapitres
%\makeatletter
%\let\ps@plain=\ps@empty
%\makeatother

%%% Ajouter une fine ligne en haut et en bas
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\footrulewidth}{0pt}

%%% Change la marque des en-tetes
\makeatletter
\renewcommand{\chaptermark}[1]{
 \markboth{
   \ifnum \c@secnumdepth >\m@ne
   \chaptername\ \thechapter.\quad \if @mainmatter
     \@chapapp\ \thechapter\quad
     \fi
   \fi
   #1
 }{
 \ifnum \c@secnumdepth >\m@ne
   \if @mainmatter
     \@chapapp\ \thechapter\quad
   \fi
 \fi
 #1
 }
}
\renewcommand{\sectionmark}[1]%
                  {\markright{\thesection\ #1}}
\makeatother

%%% change la présentation du numéro de page (du style "- 14 -")
\fancyfoot[C]{\thepage}
\lfoot{}\cfoot{- \thepage\ -}{\rfoot{}

Même avec le français d’activé, l’evironnement "algorthim" reste en anglais. De plus, il faut le numéroter selon les sections (comme le comportement par défaut des figures et des tableaux) :


%%% des algorithmes en français
\floatname{algorithm}{Algorithme}

%%% algorithmes numérotés selon les sections
\makeatletter
\renewcommand{\thealgorithm}{\ifnum \c@chapter>\z@ \thechapter.\fi
\@arabic\c@algorithm}
\@addtoreset{algorithm}{chapter}
\makeatother

La légende des figures/tables était trop proche du reste du texte, ici on les passe en police serif, plus petite et en italique.


%%% figures
\makeatletter
\renewcommand{\fnum@figure}{\figurename~\thefigure\sffamily\small\itshape}
\makeatother

%%% tables
\makeatletter
\renewcommand{\fnum@table}{\tablename~\thetable\sffamily\small\itshape}
\makeatother

La bibliographie demandée était très particulière. Tout d’abord j’ai du recréer un style de bibliographie (qui gère l’assemblage des différents champs des citations). Grâce à custom-bib c’est assez facile, il suffit de répondre à une suite de questions.

GZ - 6.6 ko
Fichier de style de bibliographie
De type auteur-année, en français.

Vous pouvez télécharger le fichier de style.

Pour la mise en page dans le livre, j’ai du passer par le préambule, en modifiant l’environnement bibliography comme une liste (voir le manuel de référence LaTeX).


% mise en page bibliographie
\makeatletter
 \renewenvironment{thebibliography}[1]{%
   \chapter*{\bibname
     \@mkboth{\MakeUppercase\bibname}{\MakeUppercase\bibname}}%
   \list{\@biblabel{\@arabic\c@enumiv}}{%
 %%%
     \setlength{\labelwidth}{4cm}%
     \setlength{\labelsep}{0em}%
     \setlength{\leftmargin}{\labelwidth}%
     \addtolength{\leftmargin}{\labelsep}%
 %%%
     \@openbib@code
     \usecounter{enumiv}%
     \let\p@enumiv\@empty
     \renewcommand\theenumiv{\@arabic\c@enumiv}}%
   \sloppy
   \clubpenalty4000
   \@clubpenalty \clubpenalty
   \widowpenalty4000%
   \sfcode`\.\@m}{%
   \def\@noitemerr{%
     \@latex@warning{Empty `thebibliography' environment}}%
   \endlist}
 \makeatother

Commandes

Au début du document (mais hors préambule bizarement) on peut changer l’apparence des listes à puces :


\renewcommand{\labelitemi}{--}
\renewcommand{\labelitemii}{\textbullet}
\renewcommand{\labelitemiii}{-}

Pour gérer la différence de numérotation entre le début du livre (table des matières) et le reste. Numérotation en chiffres romains :


\pagenumbering{Roman}
Pour revenir à la numérotation en chiffres arabes :

\pagenumbering{arabic}

Grâce au paquetage fancyhead on peut modifier l’allure des en-tête. Je n’ai pas trouvé d’autre solution que d’inclure les commandes directement au moment du début du chapitre, par exemple :


% Oublie les commandes précédentes
\fancyhead {}
% en-tête alignée à gauche des pages paires (Left Even)
\fancyhead[LE]{\sffamily\small\itshape Chapitre 4~-- Les algorithmes de colonies de fourmis}
% en-tête alignée à gauche des pages impaires (Left Odd)
\fancyhead[LO]{\sffamily\small\itshape\rightmark}

C’est à la fin des chapitres qu’il faut inclure la commande \clearemptydoublepage définie dans le préambule.

Il peut arriver d’avoir besoin de forcer l’inclusion d’une entrée dans la table des matières, par exemple d’un chapitre non numéroté :


\addcontentsline{toc}{part}{Annexes}

Enfin il était nécessaire de changer la taille de l’index, en l’abaissant à la taille "footnote" : \footnotesize{\printindex{}}

Au cours de la finalisation de la mise en page, le truc le plus ch**** avec LaTeX est la gestion des dépassements de marges, notamment suite aux citations de type author-year qui ne sont pas prise en charge lors du traitement de la justification. Il faut donc mettre une commande \linebreak[9] juste avant le mot (ou la citation) que vous voulez voir débuter à la ligne suivante (je suis preneur de toute solution plus élégante).

Autres conseils

En vrac :
-  Pour du texte mis en encart - comme cela - il faut utiliser trois tirets et un espace insécable : ---~comme ceci~---.
-  LaTeX a un caractère spécial pour les points de suspension, différent de trois points à la suite : \ldots{}.
-  Pour bien suivre la typographie française (ça évite trop de corrections de la part de l’éditeur), il y a plusieurs sites d’intérêt, voir à ce sujet l’articles trucs et astuces.
-  Pensez dès la rédaction à inclure des index hierarchiques (voir les trucs et astuce, ça ressemble à \index{evolution@évolution!differentielle@différentielle}).
-  D’une manière générale, tout les conseils de production d’un code LaTeX "propre" doivent s’appliquer (à savoir, bien séparer le fond de la forme).
-  Utilisez LyX, un bon éditeur qui permet un bon compromis entre la facilité d’utilisation et la capacité de tout faire avec LaTeX (sous Linux, je n’ai pas trouvé d’équivalent sous windows, mais avec cygwin et un serveur X, ça marche normalement).


Post-scriptum

A voir :
-  Le livre Métaheuristiques pour l’optimisation difficile.
-  Trucs et astuces LyX/LaTeX sur ce site.
-  Les fichiers importants :

GZ - 6.6 ko
Fichier de style de bibliographie
De type auteur-année, en français.
GZ - 1 ko
Le préambule
Tout le code présenté dans un seul fichier.

Commentaires

Par thibaudle 2 octobre 2014 : classe et packages requis ?

Bonjour,

Sur quelle classe est basée ce préambule ? J’ai l’impression que ça pourrait être book(memoir). Faut-il aussi ajouter le package fancyhdr ?

% fancyhdr on memoir \usepackagefancyhdr \pagestylefancy

Par cherrinle 18 mars 2013 : Mise en page avec LaTeX d’un livre pour les éditions Eyrolles
Get an ultra thin battery extender for your iPhone 4 that is in-cased inside of a protective form-fitting case so you ... Product Category : Cell Phone iphone External battery ...
Par xiaofangsle 5 mars 2013 : Mise en page avec LaTeX d’un livre pour les éditions Eyrolles
T-205 Portable HiFi Card Speaker Digital Multimedia Loudspeaker FM Radio -Black Portable Projectors - Portable Projectors
Par le 20 octobre 2007 : Mise en page avec LaTeX

Cet article résume bien le paradoxe de LaTeX : le rendu est de qualité supérieur, c’est un formidable outil d’édition qui, par sa séparatoin fond/forme, permet des facilités de structuration et de planification du travail ; mais d’un autre côté, malgré son approche a priori simple il y a toujours des subtilités qui s’ammoncellent quand on veut faire les choses bien, comme dans tout langage de programmation à vrai dire.

Il faut donc effectivement prendre son courage à deux mains... ou alors vous pouvez demander à un quelqu’un qui sait de mettre en page votre document à votre place, surtout si celui-ci est long ou complexe, vous gagnerez non seulement en qualité mais en temps aussi :

- Docsynthese : mise en page professionnelle
le 15 février 2007 : Mise en page avec LaTeX d’un livre pour les éditions Eyrolles

Perso, pour le latex, j’aime utiliser vim avec le module latex-suite. Dès qu’on l’a bien en main, ça va très vite. Par exemple, pour un environnement verbatim, juste taper verbatim + F5... A l’expérience, j’écris plus vite sous vim+latex pour prendre les cours sous la dictée qu’avec stylo+papier. Et en plus, c’est modifiable à volonté tout en permettant une mise en page rapide et jolie, imprimable facilement enfin tout ce que l’invention de l’imprimerie a rendu possible. Seul hic : dessins et graphes, limite aussi mathématiques...

Fred

le 19 octobre 2004 : > Mise en page avec LaTeX d’un livre pour les éditions Eyrolles
LyX existe aussi pour Windows maintenant (octobre 2004) mais pour ma part, je trouve TexnicCenter (http://www.toolscenter.org/) bien que non WisiWig très bien. Pour le programme LaTeX lui-mème, MiKTeK (http://www.miktex.org/) est vraiment une très bonne distribution pour Windows.

    Par groolotle 27 mars 2006 : > Mise en page avec LaTeX d’un livre pour les éditions Eyrolles

    Il existe unoutils OpenSource multiplateforme (Linux, Win32, Mac OS X) de grande qualité : TeXMaker (http://www.xm1math.net/texmaker/).

    Pour ma part, sous Linux, j’utilise Kile, partie du projet KDE.

Articles populaires

[Accueil] - [Plan du site] - [Rechercher] - [Admin.]       SPIP:Squelette