--- myst: html_meta: keywords: LaTeX, composition, texte, pages, inclure du code dans un document, mode verbatim, \verb, en-têtes personnalisées --- # Comment gérer des en-têtes avec des environnements `verbatim` multipages ? En temps normal, les en-têtes et pieds de page ne posent pas trop de difficultés avec l'environnement `verbatim` (détaillé à la question "[](/4_domaines_specialises/informatique/ecrire_en_mode_verbatim)"). Il existe toutefois un cas assez particulier demandant deux conditions : - vous utilisez un environnement `verbatim` comprenant un changement de page ; - vous utilisez dans votre en-tête ou votre pied de page une commande `\input`. Dans ce cas, LaTeX, au lieu d'interpréter la commande `\input`, fait un copier-coller du contenu du fichier appelé par la commande `\input` (comme s'il était en mode verbatim au moment de traiter `\input`). Voici un exemple de ce cas en peu tordu. Le fichier `entete.tex` que nous voulons placer dans l'en-tête avec `\input` contient l'unique ligne suivante : ```{noedit} \textbf{Démonstration édifiante} ``` Pour les besoins de notre FAQ, ce fichier est créé par les premières lignes du code ci-dessous. Mais vous pouvez procéder sans ces lignes en plaçant le fichier `entete.tex` dans le même dossier que le fichier d'exemple ci-dessous (en supprimant les premières lignes alors inutiles). Dès lors, notre fichier principal avec le code suivant va mal interprêter notre besoin : l'en-tête de la première page restitue le code du fichier `entete.tex` (par contre, la seconde page est correcte). ``` % Code particulier pour rendre l'exemple observable dans la FAQ \begin{filecontents}[force,noheader]{entete} \textbf{Démonstration édifiante} \end{filecontents} % Fin du code particulier \documentclass{article} \usepackage{fancyhdr} \pagestyle{fancy} \fancyhead[C]{\input{entete}} \begin{document} \section{Un peu de vide pour commencer} \vspace{16cm} \section{Un exemple} Un premier document en \LaTeX{} : \begin{verbatim} \documentclass{article} \begin{document} Salut, le monde ! \end{document} \end{verbatim} \end{document} ``` Pour corriger cela, vous pouvez utiliser les commandes `\newsavebox` et `\savebox` pour conserver le contenu de ce fichier. Par la suite, vous pouvez utiliser la commande `\usebox`pour restituer le contenu de cette boîte. ``` % Code particulier pour rendre l'exemple observable dans la FAQ \begin{filecontents}[force,noheader]{entete} \textbf{Démonstration édifiante} \end{filecontents} % Fin du code particulier \documentclass{article} \usepackage{fancyhdr} \newsavebox{\logo} \savebox{\logo}[2cm][c]{\input{entete}} \pagestyle{fancy} \fancyhead[C]{\usebox{\logo}} \begin{document} \section{Un peu de vide pour commencer} \vspace{16cm} \section{Un exemple} Un premier document en \LaTeX{} : \begin{verbatim} \documentclass{article} \begin{document} Salut, le monde ! \end{document} \end{verbatim} \end{document} ```