En-mauvaise-tête.
Bonjour à tous.
En classe book, LaTeX me colle dans un \chapter*{} le titre du \chapter{} précédent en en-tête.
Comment avoir l'en-tête correct, ou perdu pour perdu, supprimer cet en-tête ?
J'ai essayé des trucs qui marchent deux fois sur trois (l'informatique n'est pas déterministe).
J'aimerai un truc qui marche.
Merci d'avance.
e.v.
En classe book, LaTeX me colle dans un \chapter*{} le titre du \chapter{} précédent en en-tête.
Comment avoir l'en-tête correct, ou perdu pour perdu, supprimer cet en-tête ?
J'ai essayé des trucs qui marchent deux fois sur trois (l'informatique n'est pas déterministe).
J'aimerai un truc qui marche.
Merci d'avance.
e.v.
Personne n'a raison contre un enfant qui pleure.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Informatique non déterministe ?? Par défaut, \chapter* ne touche pas aux en-têtes. Ce que tu vois est donc l'effet prolongé du \chapter précédent. Si tu veux effacer les en-têtes au moment du \chapter*, mets un : juste après la commande \chapter* (sans saut de paragraphe !). Tu peux aussi mettre le texte que tu veux en remplissant les arguments (appelés left et right, left étant de plus haut niveau que right).
Pour comprendre un peu mieux, remarque que (en classe book) \chapter appelle \chaptermark qui fait un \markboth avec le titre mis en capitales dans la marque de niveau supérieur (left) et rien dans celle de niveau inférieur (right) : On voit aussi que « Chapitre $x$. » n'est inséré que si l'on est en \mainmatter et que secnumdepth est ${} > -1$ (\m@ne ${} = -1$).
\section fait la même chose via \sectionmark, mais au niveau en-dessous, donc en utilisant \markright au lieu de \markboth, de sorte à ne pas toucher à l'en-tête de niveau supérieur (le “left”) : Il n'y a pas de commande \markleft car ça n'a pas vraiment de sens de modifier l'en-tête de niveau supérieur (left) en laissant celui de niveau inférieur (right).
En fait, j'ai commis un abus de langage en écrivant en-têtes de niveau supérieur ou inférieur : il s'agit plus précisément des marques de niveau supérieur (\leftmark) et de niveau inférieur (\rightmark). On fait ce que l'on veut de ces marques. Normalement, elles sont utilisées dans les page styles ; ce sont eux qui les mettent à tel ou tel endroit d'un en-tête. Par exemple, voici les définitions des styles 'plain' (ouverture d'un chapitre, notamment) et 'headings' (pages « normales ») de la classe book.
Page style 'plain' (j'ai reformaté la sortie de 'latexdef -c book ps@plain') : (marques non utilisées, pas d'en-têtes, pied de page réduit au numéro de page centré, commande \markboth neutralisée)
Page style 'headings' (tu peux remarquer l'utilisation de \leftmark et \rightmark dans \@evenhead et \@oddhead, ainsi que l'annulation de la neutralisation de \markboth par un \(this)pagestyle{plain} qui aurait pu être fait avant) :
Magique.
[small]pourvu que ça marche à chaque fois...[/small]
Merci beaucoup beaucoup beaucoup.
amicalement,
e.v.
e.v.