En-tête de page — Les-mathematiques.net The most powerful custom community solution in the world

En-tête de page

Bonjour,
On fait comment pour obtenir le nom du chapitre/section dans l'en-tête de chaque page.
J'utilise \documentclass[reqno,a4paper]{amsart} et pour le moment, j'ai le grand titre initiale du document qui apparaît dans l'en-tête de chaque page alors que je souhaite avoir le titre du chapitre.
Merci d'avance !

Réponses

  • Bonjour,

    Je ne garantis rien pour amsart (que je n'utilise pas), mais de manière générale, ces choses-là se font bien avec fancyhdr.
  • Merci Brian, mais j'ai déjà essayé et ça ne marche pas.
  • Si tu veux avancer, poste un exemple complet minimal.
  • Au final, ça marche avec fancyhdr:
    \documentclass[12pt,reqno,a4paper]{amsart}
    
    \setlength\headheight{15pt}
    \setlength\headsep{15pt}
    \setlength\footskip{25pt}
    \setlength\oddsidemargin{0in}
    \setlength\evensidemargin{0in}
    \usepackage{fancyhdr}
    \pagestyle{fancy}
    \fancyhf{}
    
    \begin{document}
    \title{Titre}
    \maketitle
    \tableofcontents
    \begin{abstract}
        résumé
    \end{abstract}
    
    \pagestyle{fancy}
    \fancyhead{}
    \renewcommand{\headrulewidth}{0mm}
    \fancyfoot{}
    \lhead{} [color=#FF0000]% ici j'aimerai avoir le titre de la section, mais je ne connais pas la commande[/color] 
    \rfoot{\thepage}
    
    \section{Introduction}
    

    Pouvez-vous me dire la commande qui me permet d'afficher le titre de la section?
  • Ton code est bizarre car tu essaies de reconfigurer la définition du style de page fancy à la fois dans le préambule et dans le corps du document. Il vaut mieux limiter ces choses-là au préambule. Après \begin{document}, tu ne devrais avoir parmi ces commandes que des appels à \pagestyle et à \thispagestyle. Il faut aussi lire les messages d'erreur de LaTeX. Il te disent que ton abstract et la commande \maketitle sont mal ordonnés.

    Une fois qu'on a réglé tout ça, on arrive au vrai problème  : la classe amsart est faite pour qu'on ne modifie pas les en-têtes. Normalement, la réponse à ta question serait \leftmark ou \rightmark, et un \show\sectionmark montre que pour le cas de \section dans ton document, il s'agit de \leftmark. Il suffit alors de mettre
    \fancyhead[L]{\leftmark}
    
    avec éventuellement un \textbf ou un \textit autour : rien de plus simple (note que \lhead est obsolète). Mais cela ne marche pas avec ton document car 'amsart' n'appelle pas \sectionmark (en tout cas, amsart.cls ne l'appelle pas depuis sa commande \section). Si l'on persiste et veut vraiment faire ce que tu demandes avec la classe 'amsart', on peut adapter cette réponse d'egreg (elle ne marche plus telle quelle, peut-être en raison de changements dans l3regex). Ceci semble fonctionner :
    \documentclass[12pt,reqno,a4paper]{amsart}
    \usepackage{xpatch}
    \usepackage{lipsum}             % pour le texte bidon
    \setlength{\headheight}{15pt}
    \setlength{\footskip}{25pt}
    \usepackage{fancyhdr}
    
    \pagestyle{fancy}
    \renewcommand{\headrulewidth}{0mm}
    \fancyhf{}
    \fancyhead[L]{\textit{\leftmark}}
    \fancyfoot[R]{\thepage}
    
    % Adaptation de <https://tex.stackexchange.com/a/116049/73317>
    \makeatletter
    \renewcommand{\sectionmark}[2]{%
      \ifnum#1<\@m
        \markboth{\thesection. #2}{\thesection. #2}%
      \else
        \markboth{#2}{#2}%
      \fi}
    
    \xpatchcmd{\@sect}
      {\@tocwrite}
      {\csname #1mark\endcsname{#2}{#7}\@tocwrite}
      {}{}
    \makeatother
    
    \begin{document}
    
    \title{Titre}
    \begin{abstract}
      Résumé.
    \end{abstract}
    \maketitle
    \tableofcontents
    
    \lipsum[1-3]
    
    \section{Introduction}
    \lipsum[3-6]
    \subsection{Une sous-section}
    \lipsum[3-6]
    
    \end{document}
    
    Mon conseil, néanmoins, serait de ne pas utiliser la classe 'amsart', ou alors de l'utiliser pour ce qu'elle est, sans essayer de faire ce que ses concepteurs ont décidé de rendre « impossible », ou tout au moins très pénible et fragile.

    Note : si tu te demandes pourquoi la première page n'a pas le style de page personnalisé, c'est tout à fait normal. \maketitle met le style de page 'plain'... ou plutôt 'firstpage', dans le cas de la classe 'amsart'. On peut redéfinir ce style (voir doc. de fancyhdr) ou choisir le style que l'on veut avec \thispagestyle{nom-du-style}.122930
  • Merci !
  • Puisque tu as eu l'indélicatesse de poser ta question ailleurs sans prévenir personne, tu te débrouilleras sans moi la prochaine fois.
  • J'avoue c'est peut-être pas gentil de ma part d'avoir posé presque la même question ailleurs, et j'en suis désolé.
    Bonne soirée.
Connectez-vous ou Inscrivez-vous pour répondre.
Success message!