Documente Academic
Documente Profesional
Documente Cultură
A
T
E
X
Piet van Oostrum
une considrable partie de cet article a t crite par George Grtzer (University of Manitoba) dans Notices
Amer. Math. Soc. Merci George !
1. cette version a du bncier dune mise jour maintenant.
1
7 Rednition du style plain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
8 Le style par dfaut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
9 Une exclusivit de L
A
T
E
X, les marqueurs . . . . . . . . . . . . . . . . . . . . . . . . 9
10 En-ttes du style dictionnaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
11 Fancy styles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
12 Largeur des en-ttes et des pieds de page . . . . . . . . . . . . . . . . . . . . . . . 13
13 Deux exemples de livres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
14 Style de page spcial pour ottants . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
15 Les pages blanches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
16 Numrotation n/m et style de page . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
17 Numros de page par chapitre ou section . . . . . . . . . . . . . . . . . . . . . . . . 17
18 O placer les ordres de changement ? . . . . . . . . . . . . . . . . . . . . . . . . . . 17
19 En-ttes et pieds de page induits par le texte . . . . . . . . . . . . . . . . . . . . . 18
20 Pseudo lm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
21 Repres sur la tranche externe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
22 Placement des ottants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
23 Flottants multipage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
23.1 Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
23.2 Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
24 Contact pour information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1 Introduction
Une page dans un document L
A
T
E
X est construite avec diverses zones dcrites par la gure 1.
Le corps de la page contient le texte principal du document ainsi que les ventuels ottants,
tables et gures.
Les pages sont construites par la routine de sortie de L
A
T
E
X, qui est complexe et ne devrait
donc pas tre modie. Certains des packages dcrits dans cet article contiennent de petites mo-
dications de cette routine pour accomplir ce qui ne peut tre ralis dune autre manire. Vous
devriez employer ces packages pour obtenir le rsultat dsir plutt que de manipuler la routine
de sortie vous-mme.
Voici un certain nombre de points retenir :
1. Les marges du ct gauche ne sappellent pas \leftmargin, mais \evensidemargin (pour les
pages paires) et \oddsidemargin (pour les pages impaires). Dans les documents uniquement
recto \oddsidemargin est utilis dans les deux cas. \leftmargin est un paramtre valide
de L
A
T
E
X mais lui a une utilisation dirente (notamment lindentation des listes).
2. La plupart des paramtres ne devraient pas tre changs au milieu dun document. Quelques-
uns pourraient perdurer suite une modication de style et/ou page. Si vous voulez changer
la taille dune seule page, vous pouvez employer la commande \enlargethispage.
La zone des notes de marge contient de petites informations cres par la commande
\marginpar. Dans les documents recto-verso les notes de marge apparaissent alternativement sur
la gauche et la droite. Les notes de marge ne sont pas sur des endroits xes en ce qui concerne
la page mais approximativement la mme hauteur que le paragraphe dans lequel elles sont
appeles. En raison de lalgorithme traitant du placement des notes de marge, elles peuvent
2
Header
Body
Footer
Margin
Notes
i
8
-
i
7
?
6
i
1
-
- i
3
i
10
-
- i
9
6
?
i
11
i
2
?
6
6
?
i
4
6
?
i
5
6
?
i
6
1 one inch + \hoffset 2 one inch + \voffset
3 \oddsidemargin = 18pt 4 \topmargin = 0pt
5 \headheight = 12pt 6 \headsep = 25pt
7 \textheight = 646pt 8 \textwidth = 424pt
9 \marginparsep = 11pt 10 \marginparwidth = 54pt
11 \footskip = 30pt \marginparpush = 5pt (not shown)
\hoffset = 0pt \voffset = 0pt
\paperwidth = 597pt \paperheight = 845pt
Fig. 1 Zones composant une page. Les valeurs indiques sont celles en cours dans ce document
et non pas des valeurs par dfaut.
3
apparaitre malencontreusement dans un document recto-verso sur la mauvaise page si elles
sont proches dune coupure de page. Si vous voulez mettre linformation des endroits xes dans
les marges vous pouvez employer la technique dcrite dans les sections 20 et 21.
La premire partie de cet article dcrit comment changer les secteurs den-tte et de
pied de page. La dernire partie dcrit comment positionner vos ottants de la manire dsire.
2 En-ttes et pieds de page
Les en-ttes et pieds de page sont dnis avec L
A
T
E
X par les commandes \pagestyle
et \pagenumbering. La commande \pagestyle dnit laspect gnral des en-ttes et des
pieds de page (par exemple o le numro de page sera imprim), alors que \pagenumbering
dnit le style du numro de page. L
A
T
E
X inclut quatre styles de page standards :
empty vide, aucun en-tte ou pied de page
plain pas den-tte, le pied de page contient le numro de page centr
headings pas de pied de page, len-tte contient le nom du chapitre/section
et/ou de sous-section et le numro de page
myheadings pas de pied de page, len-tte contient le numro de page et lin-
formation fournie par lutilisateur
Bien que ce soient des modles utiles ils sont tout fait limits. Dautres modles de style de
page peuvent tre obtenus en dnissant des commandes de la forme \ps@xxx. Cette commande
est excute quand \pagestyle{xxx} est rencontre dans le document. La commande \ps@xxx
dnit les commandes suivantes pour les teneurs des en-ttes et des pied de page :
\@oddhead en-tte sur les pages impaires dans des documents recto-verso (sur
toutes les pages dans les documents recto)
\@evenhead en-tte sur les pages paires dans les document recto-verso
\@oddfoot pied de page sur les pages impaires dans des documents recto-verso
(sur toutes les pages dans les documents recto)
\@evenfoot pied de page sur les pages paires dans les documents recto-verso
Ce ne sont pas des commandes, mais plutt des variables qui sont utilises par la routine de
sortie de L
A
T
E
X. Si les noms de commandes contiennent le caractre @, elles doivent tre dnies
dans un package
2
, ou autrement comprises entre les commandes \makeatletter et \makeatother
dans le prambule.
La commande \pagenumbering dnit le style du numro de page. Elle prend un paramtre
de la liste suivante :
arabic chire arabe
roman chire romain en minuscule
Roman chire romain en capitale
alph lettre en minuscule
Alph lettre en capitale
La commande \pagenumbering{xxx} dnit \thepage en mettant le numro de page comme
dni par xxx. La commande de style de page inclut alors \thepage la bonne place. De plus
la commande \pagenumbering rinitialise le numro de page 1. Les commandes \pagestyle et
\pagenumbering sappliquent la page en construction, elles doivent donc tre positionnes sans
ambigit pour sappliquer la page voulue (voir la section 18 p.17).
2. N.D.T. : lui mme appel dans le prambule du document.
4
3 Quest ce que fancyhdr ?
Le package de macrocommandes fancyhdr permet dadapter facilement vos en-ttes et
pieds de page sous L
A
T
E
X. Vous pouvez dnir :
trois zones dans les en-ttes et pieds de page ;
des lets de sparation sous les en-ttes et au-dessus des pieds de page ;
une plus grande largeur pour les en-ttes et pieds de page que celle du texte ;
des en-ttes et pieds de page multilignes ;
dirents en-ttes et pieds de page pour les pages paires et impaires ;
dirents en-ttes et pieds de page pour les pages de titre de chapitre ;
dirents en-ttes et pieds de page pour les pages de ottants.
Naturellement, vous avez galement le contrle complet des polices, de la casse, de la graisse, etc.
4 Utilisation classique de fancyhdr
Pour utiliser ce package dans un document L
A
T
E
X2
vous devez
utiliser le package lastpage209.sty compatible L
A
T
E
X 2.09 comme suit :
\let\origenddocument=\enddocument
\def\enddocument{\clearpage\if@filesw
{\addtocounter{page}{-1} \immediate\write\@mainaux
{\string\newlabel{LastPage}{{}{\thepage}}}}\origenddocument}
La valeur de ltiquette LastPage peut tre employe pour obtenir un en-tte ou pied de page
dirent sur la dernire page dun document. Par exemple si vous voulez le pied de page des pages
impaires, except la dernire si elle est impaire, contenant le texte tournez s.v.p. , ceci peut
tre obtenu comme suit
16
:
\usepackage{lastpage}
\usepackage{ifthen}
15. N.D.T. : les lignes de \vspace*{\fill} \vspace{\fill} inclues permettent lachage de la note, otez-les
pour obtenir une page absolument vide.
16. ceci exige une version assez rcente du package ifthen.
16
...
\rfoot{\ifthenelse{\isodd{\value{page}} \and \not
\value{page}=\pageref{LastPage}}{tournez s.v.p.}{}}
17 Numros de page par chapitre ou section
Trs souvent dans une documentation technique les numros de page sont nots sous la forme
2-10 o le premier nombre est le numro du chapitre et le second est le numro de page relativement
ce chapitre. Parfois la section est employe plutt que chapitre. Le package chappg peut tre
employ pour obtenir ce format. Si vous voulez changer la disposition, par exemple un point plutt
quun tiret, ou une section plutt quun chapitre, vous devriez raliser une copie prive, puis diter
cette dernire pour la modier comme vous le souhaitez.
Ce package rednit \thepage comme \arabic{chapter}-\arabic{page}. Malheureusement
ceci donne des nombres plutt que des lettres pour les annexes. Une meilleure dnition
est \thechapter-\arabic{page} mais vous devez vous-mme inscrire cette dnition aprs
\usepackage{chappg}. De mme ce package rinitialise le numro de page 1 au dbut de
chaque chapitre.
Il y a une dirence fondamentale entre la numrotation de page du style n/m comme dcrit
dans la section prcdente et celui ci. Le style n/m est uniquement employ dans len-tte ou
le pied de page, mais pas dans la table des matires, lindex, ou les rfrences comme voir page
xx . Par consquent il ne modie pas la commande \thepage. Les numros de page du style
2-10 , toutefois, doivent tre employs dans toutes les rfrences au numro de page, donc ils
doivent tre obtenus par la rednition de \thepage.
18 O placer les ordres de changement den-ttes
et de pieds de page ?
Parfois lon souhaite changer la disposition den-tte ou de pied de page en cours de document.
Certains de ces changements peuvent tre accomplis en employant le mcanisme des marqueurs
comme indiqu dans les sections 9 et 19. Cependant, lon veut quelquefois un changement plus ra-
dical, par exemple pour changer le style des chires du romain vers larabe (avec \pagenumbering),
pour changer un des champs obtenus par fancyhdr ou pour passer un autre style de page. Quelque-
fois le changement peut se produire plus tt que souhait. En gnral les changements mentionns
ci-dessus prennent eet immdiatement, c.--d. la page en construction ce moment l. Si vous
dsirez que le changement prenne eet la prochaine page vous devez vous assurer que la page
courante est termine. Dans la plupart des cas ceci peut tre fait en crivant \clearpage avant
les changements mentionns ci-dessus. Si ce nest pas possible vous pouvez employer : le package
afterpage avec :
\afterpage{\lhead{nouvelle valeur}} ou \afterpage{\pagenumbering{roman}}
Vous ne pouvez pas avec la commande \afterpage modier \pagestyle. \afterpage agit
localement dans un groupe, donc la fermeture de celui-ci les rednitions d\afterpage ne font
plus eet. En revanche, les commandes \pagenumberging et toutes celles de fancyhdr eectuent
des modications globales et fonctionneront donc comme la commande \thispagestyle.
Il convient de noter que bien que les commandes de fancyhdr comme \fancyhead prennent
eet immdiatement, ceci ne signie pas que toutes les variables utilises dans ces com-
mandes obtiennent leur valeur lendroit o ces instructions sont donnes. Par exemple si
\fancyfoot[C]{\thepage} est crit, le numro de page qui sera insr dans le pied de page nest
pas le numro de la page o cette instruction est crite, mais plutt le numro de la page o le
17
pied de page est construit. Pour le numro de page cest naturellement ce qui est voulu, mais ce
mcanisme est identique pour dautres commandes.
Ainsi avec un livre dont chaque chapitre est crit par un auteur dirent, si vous voulez le
nom de lauteur du chapitre dans le coin infrieur gauche vous pouvez employer les commandes
suivantes :
\newcommand{\TheAuthor}{}
\newcommand{\Author}[1]{\renewcommand{\TheAuthor}{#1}}
\lfoot{\TheAuthor}
et commencer chaque chapitre avec la commande \Author{Nom de lauteur du chapitre}. Ce-
pendant, si le nom de lauteur change avant la construction de la page, le mauvais nom pourrait
apparaitre en pied de page. Ce serait le cas si vous donniez linstruction ci-dessus avant la com-
mande \chapter plutt quaprs elle. Une autre source de problmes, le fonctionnement de la
routine de sortie de T
E
X produit des lments en amont de la zone traite, ainsi le traitement de
certaines commandes produit du texte qui paraitra la page suivante. La prochaine section en
fournit un exemple.
19 En-ttes et pieds de page induits par le texte
Nous avons vu comment employer les marqueurs de L
A
T
E
X pour obtenir linformation contenue
dans les en-ttes et pieds de page. Le mcanisme des marqueurs est le seul mcanisme able que
vous pouvez employer pour obtenir une information variable dans les en-ttes ou pieds de page.
Ceci car L
A
T
E
X traite votre document en aval avant de dcider ou placer le saut de page.
Parfois les deux marqueurs fournis par L
A
T
E
X sont insusants. Prenons lexemple suivant :
si une solution dexercice continue sur la page suivante, alors je voudrais avoir suite
prochaine page. . . en bas de de la premire et suite. . . en haut de la marge de la
suivante.
Vous ne pouvez utiliser pour cela le mcanisme des marqueurs de L
A
T
E
X en gardant linforma-
tion des chapitre et section.
Fancyhdr inclut un package fournissant deux marqueurs supplmentaires, utilisables dans ces
situations
17
. Voici une faon dutiliser ce package :
\usepackage{extramarks}
...
\pagestyle{fancy}
\lhead{\firstxmark}
\rfoot{\lastxmark}
...
\extramarks{}{suite prochaine page\ldots}
Texte stendant ou pas sur plusieurs pages
\extramarks{suite\ldots}{}
\extramarks{}{}
Notez que \extramarks et le texte forment un bloc. Aucun changement de paragraphe (ligne
vide ou \par) ne doit avoir lieu. Sinon la page peut changer sur cette rupture et les extramarks
apparaitraient sur la mauvaise page.
17. ce nest quaprs avoir ralis ce package que jai dcouvert le package secret.sty qui permet aussi de marquer
des paragraphes particuliers stendant sur plusieurs pages. Cependant, secret.sty modie la routine de sortie.
18
Deux nouveaux marqueurs peuvent tre employs dans le style de page avec ce package : Si
une commande de la forme \extramarks{m
1
}{m
2
} est crite \firstleftxmark
18
vous donne
la premire valeur de m
1
, \lastleftxmark donne la dernire valeur de m
1
, \firstrightxmark
fournit la premire valeur de m
2
et \lastrightxmark la dernire valeur de m
2
sur la page en
cours. En outre par convention (respect de la norme des marqueurs de L
A
T
E
X) \firstxmark est
gal \firstleftxmark et \lastxmark est gal \lastrightxmark. Ceci comme \topxmark ou
\topleftxmark sont identique \topmark de T
E
X, mais probablement peu employs.
Finalement ceci fournit les commandes \firstleftmark et \lastrightmark en complment
des marqueurs standards de L
A
T
E
X.
Pour souligner le fait que les marqueurs sont la bonne faon de procder, laissez-moi vous
montrer une mauvaise solution
19
:
\lhead{suite}
\rfoot{suite prochaine page\ldots}
Texte stendant ou pas sur plusieurs pages
\lhead{}
\rfoot{}
Vous pouvez tre tent de penser que les premiers \lhead et \rfoot seront en fonction lorsque
T
E
X produira un saut de page au milieu du texte et les derniers sil le place aprs le texte. Ce
nest pas vrai car le paragraphe entier (y compris les dernires dnitions) sera trait avant que
T
E
X positionne le saut de page, ainsi au moment de ce saut les dernires dnitions sont utilises,
que le saut de page ait lieu dans le texte ou aprs lui. Un changement de paragraphe entre le
texte et les dernires dnitions ne fonctionnera pas non plus, parce que vous ne voulez pas que
les premires dnitions soient utilises si T
E
X positionne un saut de page sur ce changement de
paragraphe. En fait le mcanisme des marqueurs a t invent pour se dbarrasser de ce genre de
problmes.
Dans le dernier exemple suite apparait dans len-tte. Il peut-tre prfrable de lavoir
dans la marge. Ceci peut facilement sobtenir en le positionnant de faon xe relativement
len-tte. En plain T
E
X nous devrions employer une combinaison de \hbox to 0pt, \vbox to
0pt, \hskip,\vskip, \hss et \vss, heureusement lenvironnement picture de L
A
T
E
X fournit une
manire beaucoup plus simple pour y arriver. Pour ne pas perturber la disposition normale des
en-ttes nous mettons le texte dans une image (picture) de dimension nulle. Cest la meilleure
faon, gnralement, de placer des choses en des endroits xes sur la page. Vous pouvez alors
employer en mme temps les en-ttes normaux. Voir aussi la section 21 pour un autre exemple de
cette technique.
\lhead{\setlength{\unitlength}{\baselineskip}%
\begin{picture}(0,0)
\put(-2,-3){\makebox(0,0)[r]{\firstxmark}}
\end{picture}\leftmark}
Cette solution peut naturellement tre employe aussi pour le pied de page. Assurez-vous que
vous avez mis picture en tant que premier lment dans les champs gauches pages paires [LE] et
dernier dans ceux droits pages impaires [RO].
Enn vous pouvez vouloir mettre suite. . . au dbut du texte plutt quen en-tte ou en
marge. Alors vous devez employer le package afterpage. Crons pour cela un nouvel environne-
ment.
18. avant la version 2.0 dextramarks.sty uniquement les commandes \firstxmark et \lastxmark sont dnies.
19. en fait il existe une autre manire mais elle ncessite deux compilations L
A
T
E
X, vous pouvez mettre des
commandes \label avant et aprs le texte et comparer les valeurs des \pageref.
19
\newenvironment{suite}{\par
\extramarks{}{suite prochaine page\ldots}
\afterpage{\noindent\firstxmark\vspace{1ex}}
}{\extramarks{(suite\ldots)}{}\par}
Il est dangereux demployer \firstxmark en dehors de la routine du style de page, mais
apparemment avec \afterpage cela fonctionne. Si vous avez besoin de linformation plus loin
dans la page vous devez stocker le contenu du marqueur dans votre propre variable. Vous pouvez
placer ceci dans un des champs de fancyhdr. Par exemple, si vous voulez ajouter quelque chose
aprs la solution de lexercice (donc au redmarrage du texte coup par la solution) vous pouvez
employer ce qui suit :
\newcommand{\mysaved}{}
\newenvironment{suite}{\par
\extramarks{}{suite prochaine page\ldots}
}{\extramarks{(suite\ldots)}{}\par\vspace{1ex}\mysaved}
\lhead{\leftmark}
\chead{\ifthenelse{\equal{\lastxmark}{}}
{\gdef\mysaved{}}
{\gdef\mysaved{\noindent[suite de la page prcdente]}}}
Si vous voulez inclure un des marqueurs ou toute autre information variable dans le texte
stock, vous devez employer \xdef plutt que \gdef.
20 Pseudo lm
Si vous mettez sur le mme endroit de chaque page une image qui varie lgrement de page
en page, il est possible dobtenir comme un lm en feuilletant les pages. Vous pouvez crer un
tel pseudo-lm facilement avec fancyhdr. Pour plus de simplicit nous supposerons que chaque
image est dans un chier postscript (EPS) appel picn.ps ou n est le numro de page et
nous emploierons le package graphics ou mieux graphicx
20
. Pour positionner le pseudo-lm
droite
21
du pied de page la suite fonctionnera :
\rfoot{\setlength{\unitlength}{1mm}
\begin{picture}(0,0)
\put(5,0){\includegraphics{pic\thepage.ps}}
\end{picture}}
Notez que le paramtre de \unitlength doit tre plac localement dans le champ de fancyhdr
an dviter une interfrence, non souhaitable, avec sa valeur dans le corps du texte.
21 Repres sur la tranche externe
Sur certains annuaires et bibles lon trouve des repres-index (thumb-index), ce sont des
marques sur la tranche externe des pages qui indiquent o sont les chapitres. Vous pouvez crer
ces derniers en imprimant des zones noires dans la marge externe des pages. Leur position verticale
20. si vous utilisez une ancienne version de L
A
T
E
X vous utiliserez le package epsf ou epsfig.
21. en recto seul sinon pensez le placer sur les pages impaires.
20
devrait tre dtermine par le numro du chapitre ou un autre compteur. Leur position est ind-
pendante du contenu de la page, nous imprimerons donc ces zones en tant qulments den-tte
dans une image (picture) de taille nulle comme dcrit dans la section prcdente.
Naturellement nous devons prendre soin dimprimer recto et verso, nous pouvons aussi avoir
une page dindex avec toutes les zones en position correcte. La solution exige un rglage n pour
obtenir des zones bien espaces verticalement. Pour une application personnelle o javais 12
sections, jai spar les zones de 18 millimtres, zone imprime de 9 mm spare par un blanc de
9 mm. An dviter des calculs, les zones sont cres dans un environnement picture avec un
\unitlength valant 18 mm. Les numros de page sont placs dans les en-ttes, cts externes,
et les zones sont lies ces derniers. Dans cet exemple les numros de section sont utiliss pour
placer les zones, mais vous pouvez remplacer ceci avec nimporte quelle valeur numrique. Voir la
gure 4 pour la page dindex et la gure 5 page 22 pour le code.
1
1 Introduction
2 Premire anne
3 Spcialisation
Fig. 4 Page dindex des repres de tranche
22 Placement des ottants
Les ottants sont des lments de page qui ottent par rapport au reste du document. Les
ottants standard sont les tables et les gures, mais avec le package oat vous pouvez facilement
en crer de nouveaux, comme des algorithmes. La plupart du temps les ottants fonctionnent de
manire satisfaisante, mais parfois L
A
T
E
X semble trop ttu pour faire ce que vous voulez. Cette
section dcrit comment inuencer L
A
T
E
X de sorte quil fasse, le plus souvent, comme vous le dsirez.
Il se peut toutefois, dans quelques cas irrductibles, que vous ne puissiez contraindre L
A
T
E
X votre
convenance. Dans la suite nous emploierons des gures comme exemples, mais tout sapplique
aussi bien aux autres ottants.
Les problmes les plus frquents avec des ottants sont :
1. Vous voulez un ottant un certain emplacement dans le texte, mais L
A
T
E
X le dplace,
souvent la page suivante.
2. Pass un certain point, L
A
T
E
X dplace tous vos ottants la n du chapitre ou la n du
document.
3. L
A
T
E
X signale Too many oats, soit trop de ottants.
Dans les deux premiers cas vous devez vrier si vous avez donn un paramtre correct de
placement pour votre ottant, par exemple \begin{figure}[htp] signie que votre gure
peut tre place :
h, ici (h pour here) c.--d. la position ou vous la placez dans le texte ;
t, en haut de page (t pour top), page en cours ou suivante ;
p, sur une page ne contenant que des ottants.
21
\documentclass[a4paper]{book}% N.D.T. : a4paper pour ajuster
% les repres en bord de feuille
...
etc.
\setlength{\unitlength}{18mm}
\newcommand{\blob}{\rule[-.2\unitlength]{2\unitlength}{.5\unitlength}}
\newcommand\rblob{\thepage
\begin{picture}(0,0)
\put(1,-\value{section}){\blob}
\end{picture}}
\newcommand\lblob{%
\begin{picture}(0,0)
\put(-3.3,-\value{section}){\blob}
\end{picture}%
\thepage}
\pagestyle{fancy}
\cfoot{}
\newcounter{line}
\newcommand{\secname}[1]{\addtocounter{line}{1}%
\put(1,-\value{line}){\blob}
\put(-7.5,-\value{line}){\Large \arabic{line}}
\put(-7,-\value{line}){\Large #1}}
\newcommand{\overview}{\thepage
\begin{picture}(0,0)
\secname{Introduction}
\secname{Premire anne}
\secname{Spcialisation}
...
etc.
\end{picture}}
\begin{document}
\fancyhead[R]{\overview}\mbox{}\newpage % Ceci produit la page rcapitulative
\fancyhead[R]{}
\clearpage
\fancyhead[RE]{\rightmark}
\fancyhead[RO]{\rblob}
\fancyhead[LE]{\lblob}
\fancyhead[LO]{\leftmark}
...
etc.
Fig. 5 Code pour les repres sur la tranche externe, section 21 page 20
22
Vous pourriez aussi avoir indiqu b pour le bas (bottom) de la page. Lordre des lettres est
insigniant, vous ne pouvez pas forcer L
A
T
E
X essayer en bas dabord puis en haut par lindication
[bt].
Si L
A
T
E
X ne met pas le ottant lendroit o vous lattendiez, cela est habituellement provoqu
par ce qui suit :
1. Le ottant ne sadapte pas la page. Dans ce cas il doit tre dplac la prochaine page ou
mme plus loin. Si vous nindiquez pas lun [t] ou lautre [b] des paramtres de position
L
A
T
E
X doit continuer jusqu ce quil ait assez de ottants pour une page entire. Ainsi
nutilisez pas seulement [h]. Si vous voulez que L
A
T
E
X place ce ottant sur une page de
ottants, vous devez spcier p .
2. La position violerait les contraintes imposes par les paramtres de placement des ottants
de L
A
T
E
X. Cest une cause des plus frquente. Elle peut tre facilement corrige en changeant
ces paramtres, dont voici la liste :
Compteurs changez avec \setcounter
topnumber nombre max. de ottants en haut de page 2
bottomnumber nombre max. de ottants en bas de page 1
totalnumber nombre max. de ottants par page 3
Macros changez avec \renewcommand
\topfraction fraction max. en haut de page pour les ottants 0.7
\bottomfraction fraction max. en bas de page pour les ottants 0.3
\textfraction fraction min. du texte sur une page 0.2
\floatpagefraction fraction min. de ottants/page pour crer une page de ottants 0.5
Quelques autres paramtres existent pour des ottants sur deux colonnes dans les documents
multicolonnes.
Les valeurs dans la colonne de droite sont celles par dfauts pour les classes standard de L
A
T
E
X.
Dautres classes peuvent employer dautres valeurs par dfaut. Comme prcis par ces valeurs,
un ottants ne sera pas mis en bas dune page si sa taille est suprieure 30 % de la taille de
page. Ainsi si vous indiquez [hb] pour un ottant plus grand, il sera dplac vers une page de
ottants. Mais sil fait moins de 50 % de la taille de page il devra attendre le moment o assez
de ottants seront crs pour quune page de ottants soit remplie en respectant le paramtre de
\floatpagefraction. Si cela vous pose problme vous pouvez facilement adapter les paramtres,
par exemple avec :
\renewcommand{\textfraction}{0.05}
\renewcommand{\topfraction}{0.95}
\renewcommand{\bottomfraction}{0.95}
\renewcommand{\floatpagefraction}{0.35}
\setcounter{totalnumber}{5}
Attention de ne pas dnir un \floatpagefraction trop petit, vous risqueriez dobtenir beaucoup
de pages de ottants peu remplies.
Vous pouvez forcer L
A
T
E
X ignorer la plupart des paramtres pour une occurrence spcique de
ottant en incluant une marque dexclamation ( !) dans les paramtres de placement, par exemple :
\begin{figure}[!htb]
Les ottants contenant t dans les paramtres de position peuvent apparaitre donc en haut
de page avant lendroit o ils sont cits (mais la mme page). Cest le comportement normal de
L
A
T
E
X mais vous pouvez ne pas souhaiter cela. Il existe un certain nombre de faons dempcher
ceci :
23
1. Bien sur, supprimer le paramtre t rgle ce soucis, mais cest indsirable, vous pouvez
vouloir que le ottant soit en haut de la page suivante.
2. Utilisez le package flafter, celui-ci nautorise pas de ottants en amont de leur appel.
3. Utilisez la commande \suppressfloats[t]
22
. Cette commande dplace le ottant du haut
de sa page dappel la suivante. Elle peut tre utilise avec le paramtre [b] ou sans para-
mtre pour tout ottant sur la page o elle est inscrite.
Si malgr toutes vos tentatives L
A
T
E
X dplace toujours vos ottants la n du document ou
la n dun chapitre, vous pouvez insrer la commande \clearpage. Celle-ci dbutera une nouvelle
page et insrera tous les ottants en suspens avant de continuer. Si vous ne souhaitez pas de saut
de page immdiat, vous pouvez recourir au package afterpage et ajouter dans le texte :
\afterpage{clearpage}
Ceci permet de composer la page courante entirement et ensuite dobtenir une page de ot-
tants, si le paramtre de \floatpagefraction est atteint. Cependant, dans certaines circons-
tances, lutilisation dafterpage peut produire dtranges rsultats.
En conclusion, si vous voulez un ottant lendroit o vous le dnissez, sans que L
A
T
E
X ne le
dplace, vous pouvez employer le package oat et crire dans le prambule :
\restylefloat{figure}
Vous devez utiliser ensuite le paramtre de position [H], qui signie ICI et uniquement ICI .
Ceci peut cependant provoquer un saut de page non dsir
23
. Si vous voulez viter ce saut de
page non dsir, donc laisser L
A
T
E
X dplacer le ottant seulement sil ne sadapte pas la page,
lutilisation du package afterpage est conseille avec :
\afterpage{\clearpage \begin{figure}[H] ... \end{figure}}
Les plaintes de L
A
T
E
X avec Too many oats proviennent habituellement dun des problmes
ci-dessus, ottants ne pouvant tre placs et L
A
T
E
X en accumulant du coup un trop grand nombre.
Les solutions indiques, particulirement avec \clearpage, en viendront souvent bout. Dans
certains cas il y aura vraiment trop de ottants cumuls et L
A
T
E
X possde un nombre limit de
boites pour les stoker. Le package moreoats pourra alors tre utilis pour augmenter cette
valeur. Si cela ne sut pas vos besoins il faudra diter ce package pour le modier (gardez cette
version modie dans un rpertoire personnel), mais vous atteindriez alors une limite quil vaut
mieux ne pas dpasser. Votre seul recours acceptable sera alors de modier votre document.
23 Flottants multipage
Un ottant sous L
A
T
E
X ne peut stendre sur plusieurs pages. Cependant, il peut arriver quel-
quefois quun tableau ou une gure ne rentre pas sur une page. La faon facile de rgler cela est de
sectionner votre tableau ou gure en plusieurs parties. Ceci peut provoquer des eets indsirables :
o couper ? En gnral plus dlicat pour un tableau;
comment les conserver sur des pages successives ;
comment navoir quune entre dans la liste des tables/gures.
Bien que ces problmes ne soient pas toujours solubles, voici une paire de suggestions.
22. Cette commande ainsi que le paramtre ! ne sont pas dnis en L
A
T
E
X2.09.
23. here.sty a le mme eet, mais est incompatible avec avec L
A
T
E
X2
24
23.1 Tables
Pour les tables stendant sur plus dune page, vous pouvez utiliser le package longtable.
Ce package dnit un environnement longtable, mlange de table et de tabular. Il garde ap-
proximativement la syntaxe de lenvironnement tabular, mais avec quelques lments de table,
comme les lgendes. Ces longtables seront automatiquement tales sur plusieurs pages si besoin
et auront une entre unique dans la liste des tables (si une lgende est donnes). Cependant, elles
ne ottent pas et ne peuvent tre incluses dans un environnement ottant. Il peut donc arriver
quun environnement table soit dni avant le longtable, quil soit positionn aprs ce dernier et
donc que la numrotation soit fausse
24
. Un autre problme est le dbut dun longtable trop bas
dans la page, ce qui nest gure plaisant. Si vous voulez quun longtable dmarre en haut dune
page, la meilleure manire est de linclure dans une commande \afterpage (incluez le package
afterpage dans le prambule). Puisquune longtable est grande par dnition, il vaut mieux la
mettre dans un chier spar et utiliser la commande \input dans une commande \afterpage.
En voici deux exemples :
\afterpage{\input{malonguetable}}
\afterpage{\clearpage\input{malonguetable}}
La seconde formulation prsente lavantage de provoquer limpression des ottants en attente (si
susants) avant malonguetable, donc moins de risques avec la numrotation des tables.
23.2 Figures
Il nexiste pas doption longfigure quivalente. Il vous faudra scinder les gures vous mme,
ce qui est plus simple en gnral. Maintenant le problme est de les garder groupes, c.--d. dans
lordre sur des pages successives et dobtenir une seule entre dans la liste des gures.
Vous devrez scinder la gure et mettre chaque partie dans un environnement figure spar.
Pour les garder groupes, il vaut mieux utiliser largument de placement [p] de sorte quelles
soient disposes sur des pages de ottants successives. Comme elles sont plus grandes quune page
ceci est appropri. Pour la lgende il faut uniquement en donner une la premire partie et pour la
(les) partie(s) suivante(s), rien ou inclure le texte de la lgende dans la portion de gure. Comme
pour longtable, il est prfrable denglober une commande \clearpage et les morceaux dans un
environnement \afterpage. Par exemple :
\afterpage{\clearpage\input{grandefigure}}
ou grandefigure.tex contient :
\begin{figure}[p]
\includegraphics{mafigure1.eps}
\caption{Ceci est une figure sur plusieurs pages}
\label{fig:xxx}
\end{figure}
\begin{figure}[p]
\includegraphics{mafigure2.eps}
\begin{center}
Suite de la figure~\ref{fig:xxx}
\end{center}
\end{figure}
24. N.D.T. : Table 5 avant Table 4 dans le document par exemple.
25
Vous devez vous assurer que la dernire partie de gure soit assez grande, sinon L
A
T
E
X pourrait
choisir de remettre plus tard son achage. Pour cela il est possible dagrandir la gure (par
exemple avec lutilisation de \vspace), ou en adaptant le paramtre de \floatpagefraction .
Si vous voulez que votre gure multipage dbute sur une page de gauche (paire), vous devez
eectuer un test sur la commande \afterpage en utilisant le package ifthen :
\afterpage{\clearpage
\ifthenelse{\isodd{\value{page}}{\afterpage{\input{grandefigure}}}% page impaire
{\input{grandefigure}}}}% page paire
Cependant si il y a trop de ottants positionner sur la page saute, cela empchera le dmarrage
de votre grandegure sur la page paire.
24 Contact pour information
Piet van Oostrum
Dept. of Computer Science
Utrecht University
P.O. Box 80.089
3508 TB Utrecht, The Netherls
Telephone : +31 30 2532180 Telefax : +31 30 2513791
E-mail : piet@cs.uu.nl
WWW : http ://www.cs.uu.nl/people/piet
26