Précédent: \frontmatter & \mainmatter & \backmatter, Monter: Sectioning [Table des matières][Index]
\@startsection
, composer les rubriques.Synopsis :
\@startsection{nom}{niveau}{retrait}{avant}{après}{style}
Utilisé pour aider à redéfinir le comportement des commandes de
rubricage telles que \section
ou \subsection
.
Notez que le paquetage titlesec
rend la manipulation du rubricage
plus facile. De plus, bien que la plupart des exigences concernant les
commandes de rubricage peuvent être remplies avec
\@startsection
, ce n’est pas le cas de certaines d’entre elles. Par exemple,
dans les classes LaTeX standardes book
et report
, les
commandes \chapter
et \report
ne sont pas construites de
cette manière. Pour fabriquer une telle commande, il est possible
d’utiliser la commande \secdef
.
Techniquement, la commande \@startsection
a la forme suivante :
\@startsection{nom} {niveau} {retrait} {avant} {après} {style}*[titretdm]{titre}
de sorte que faire :
\renewcommand{\section}{\@startsection{nom} {niveau} {retrait} {avant} {après} {style}}
redéfinit \section
en gardant sa forme standarde d’appel
\section*[titretdm]{titre}
(dans laquelle on
rappelle que l’étoile *
est optionnelle).
Voir Sectioning. Ceci implique que quand vous écrivez une commande
comme \renewcommand{\section}{...}
, le
\@startsection{...}
doit venir en dernier dans la définition.
Voir les exemples ci-dessous.
Nom du compteur utilisé pour numéroter les titres de rubrique. Ce
compteur doit être défini séparément. Ceux qui sont utilisés le plus
communément sont section
, subsection
, ou
paragraph
. Bien que dans ces cas-là le nom du compteur soit
identique à celui de la commande elle-même, utiliser le même nom n’est
pas obligatoire.
Alors \the
name affiche le numéro de titre, et
\
namemark
sert aux en-têtes de page. Voir le
troisième exemple plus bas.
Entier donnant la profondeur de la commande de rubricage. Voir Sectioning, pour une liste des numéros standards de niveaux.
Si niveau est inférieur ou égal à la valeur du compteur
secnumdepth
, alors les titres pour cette commande de rubricage
sont numérotés (voir Sectioning/secnumdepth). Par exemple : dans un
article
, si secnumdepth
vaut 1, alors une commande
\section{Introduction}
produira en sortie une chaîne du type
« 1 Introduction
», alors que \subsection{Historique}
produira en sortie une chaîne sans numéro de préfixe :
« Historique
».
Si niveau est inférieur ou égal à la valeur du compteur
tocdepth
, alors la table des matières aura un article pour cette
rubrique. Par exemple, dans un article
, si tocdepth
vaut
1, la table des matières listera les section
s, mais pas les
subsection
s.
Une longueur donnant le renfoncement de toutes les lignes du titre par
rapport à la marge de gauche. Pour un renfoncement nul, utilisez 0pt
.
Une valeur négative telle que -1em
cause un débord du titre dans
la marge de gauche.
Longueur dont la valeur absolue est la longueur de l’espace vertical
inséré avant le titre de la rubrique. Cet espacement est ignoré si la
rubrique commence au début d’une page. Si ce nombre est négatif, alors
le premier paragraphe suivant le titre n’est pas renfoncé, s’il est
positif ou nul il l’est. (Notez que l’opposé de 1pt plus 2pt minus
3pt
est -1pt plus -2pt minus -3pt
).
Par exemple si avant vaut -3.5ex plus -1ex minus -0.2ex
alors pour commencer la nouvelle rubrique, LaTeX ajoute environ 3,5
fois la hauteur d’une lettre x en espace vertical, et le premier
paragraphe de la rubrique n’est pas renfoncé. Utiliser une longueur
élastique, c.-à-d. comprenant plus
et minus
, est une
bonne pratique ici car cela donne à LaTeX plus de latitude lors de la
fabrication de la page (voir Lengths).
La quantité totale d’espace vertical entre la ligne de base de la ligne
précédant cette rubrique et la ligne de base du titre de la rubrique est
la somme du \parskip
dans la police du corps de texte, du
\baselineskip
de la police du titre, et de la valeur absolue de
l’argument avant. Cet espace est typiquement élastique de sorte à
pouvoir se dilater ou se contracter. (Si la rubrique commence en début
d’une page de sorte que cet espace soit ignoré, alors la ligne de base
du titre correspond à la ligne de base qu’aurait la première ligne de
texte sur cette page si celle-ci commençait par du texte).
Longueur. Lorsque après est positif ou nul, il s’agit de l’espace
vertical à insérer après le titre de la rubrique. Lorsque elle est
négative, alors le titre fait corps avec le paragraphe le suivant
immédiatement. Dans ce cas la valeur absolue de la longueur donne
l’espace horizontal entre la fin du titre et le début du paragraphe
suivant. (Notez que l’opposé de 1pt plus 2pt minus 3pt
est
-1pt plus -2pt minus -3pt
).
Comme c’est le cas avec avant, utiliser une longueur élastique
avec des composantes plus
et minus
est une bonne pratique
ici puisque elle donne à LaTeX plus de latitude pour assembler la
page.
Si après est positif ou nul, la quantité totale d’espace vertical
entre la ligne de base du titre de la rubrique et la ligne de base de la
première ligne du paragraphe suivant est la somme du \parskip
de
la police du titre, de \baselineskip
de la police du corps de
texte, et de la valeur de après. Cet espace est typiquement
élastique de sorte qu’il puisse se dilater ou se contracter. (Notez que,
du fait que le signe d’après contrôle que le titre soit
indépendant du texte qui le suit ou faisant corps avec lui, vous ne
pouvez pas utiliser un après négatif pour annuler une partie du
\parskip
).
Contrôle le style du titre : voir les exemples plus bas. Les commandes
typiquement utilisées ici sont \centering
, \raggedright
,
\normalfont
, \hrule
, ou \newpage
. La dernière
commande au sein de style peut être une commande prenant un
argument, telle que \MakeUppercase
ou \fbox
. Le titre de
la rubrique est passé en argument à cette commande. Par exemple régler
style à \bfseries\MakeUppercase
a pour effet de produire
des titres gras et en capitales.
Voici les réglages par défaut de LaTeX pour les trois premiers
niveaux de rubricage qui sont définis par \@startsection
, pour
les classes article, book, et report.
section
: le niveau vaut 1, le retrait vaut 0pt,
le avant vaut -3.5ex plus -1ex minus -0.2ex
, le après
vaut 2.3ex plus 0.2ex
, et le style vaut
\normalfont\Large\bfseries
.
subsection
: le niveau
vaut 2, le retrait vaut 0pt, le avant vaut
-3.25ex plus -1ex minus -0.2ex
, le après vaut 1.5ex
plus 0.2ex
, et le style vaut \normalfont\large\bfseries
.
subsubsection
: le niveau vaut 3, le retrait vaut
0pt, le avant vaut -3.25ex plus -1ex minus -0.2ex
, le
après vaut 1.5ex plus 0.2ex
, et le style vaut
\normalfont\normalsize\bfseries
.
Quelques exemples suivent. Ils vont soit au sein d’un fichier de
paquetage ou de classe, soit dans le préambule d’un document
LaTeX. Si vous les mettez dans le préambule, elle doivent être entre
une commande \makeatletter
et une commande \makeatother
.
(Le message d’erreur You can't use `\spacefactor' in vertical
mode.
est le plus probable lorsque on oublie de faire
cela). Voir \makeatletter & \makeatother.
L’exemple ci-dessous centre les titres de section et les met en gros
caractères gras. Il le fait avec \renewcommand
parce que les
classes standardes de LaTeX ont déjà une commande \section
de
définie. Pour la même raison il ne définit ni un compteur
section
, ni les commandes \thesection
et
\l@section
.
\renewcommand\section{% \@startsection{section}% nom. {1}% niveau. {0pt}% retrait. {-3.5ex plus -1ex minus -.2ex}% avant. {2.3ex plus.2ex}% après. {\centering\normalfont\Large\bfseries}}% style.
L’exemple ci-dessous met les titres de subsection
en petites
capitales, et leur fait faire corps avec le paragraphe suivant.
\renewcommand\subsection{% \@startsection{subsection}% nom. {2}% niveau. {0em}% retrait. {-1ex plus 0.1ex minus -0.05ex}% avant. {-1em plus 0.2em}% après. {\scshape}% style. }
Les exemples précédents redéfinissaient les commandes de titre de rubriques existantes. L’exemple suivant définit une nouvelle commande, illustrant la nécessité d’un compteur et de macros pour son affichage.
\setcounter{secnumdepth}{6}% affiche les compteurs justqu'à ce niveau \newcounter{subsubparagraph}[subparagraph]% compteur pour la % numérotation \renewcommand{\thesubsubparagraph}% {\thesubparagraph.\@arabic\c@subsubparagraph}% comment afficher % la numérotation \newcommand{\subsubparagraph}{\@startsection {subsubparagraph}% {6}% {0em}% {\baselineskip}% {0.5\baselineskip}% {\normalfont\normalsize}} \newcommand*\l@subsubparagraph% {\@dottedtocline{6}{10em}{5em}}% pour la table des matières \newcommand{\subsubparagraphmark}[1]{}% pour les en-têtes de page
Précédent: \frontmatter & \mainmatter & \backmatter, Monter: Sectioning [Table des matières][Index]