--- myst: html_meta: keywords: LaTeX, composition, texte, lignes, mise en page, ajouter les numéros de lignes, mode brouillon, numéros de lignes dans la marge --- # Comment numéroter les lignes d'un document ? ## Dans du texte classique ### Avec l'extension L'extension permet d'obtenir cette numérotation en modifiant la routine de sortie LaTeX. Il suffit d'insérer la commande `\linenumbers` là où on souhaite activer la numérotation. Cette méthode marche raisonnablement bien, y compris quand la taille de caractère et l'interligne sont modifiés (par exemple pour les titres), mais n'est pas sans faille ; l'utilisateur doit donc rester vigilant. ``` \documentclass[french]{article} \usepackage{lmodern} % Caractères plus lisibles \usepackage{babel} % Réglages linguistiques (avec french) \pagestyle{empty} % N'affiche pas de numéro de page \usepackage{lineno} \title{À la recherche\dots} \author{M. P.} \date{1913} \begin{document} \linenumbers \maketitle \section{Le coucher} Longtemps, je me suis couché de bonne heure. Parfois, à peine ma bougie éteinte, mes yeux se fermaient si vite que je n'avais pas le temps de me dire : \og{}Je m'endors.\fg{} Et, une demi-heure après, la pensée qu'il était temps de chercher le sommeil m'éveillait\dots \end{document} ``` Si on souhaite numéroter les lignes d'une partie du document seulement, on peut utiliser l'environnement `linenumbers` : ```{noedit} \begin{linenumbers} Longtemps, je me suis couché de bonne heure... \end{linenumbers} ``` Par défaut, la numérotation se poursuit tout le long du document, mais il est possible de la faire revenir à `1` à chaque nouvelle page, avec l'option `pagewise`. Voici d'ailleurs quelques autres options de l'extension : - `left` pour afficher les numéros dans la marge de gauche (comportement par défaut) ; - `right` pour afficher les numéros dans la marge de droite ; - `switch` pour afficher les numéros dans la marge extérieure ; - `modulo` pour numéroter toutes les cinq lignes. La [documentation](texdoc:lineno) de propose de nombreuses autres options de configuration. Si vous placez une étiquette dans votre document avec `\linelabel{ICI}`, vous pourrez faire référence à son **numéro de ligne** avec `\ref{ICI}`. :::{tip} Cette fonctionnalité peut être étendue aux notes de bas de page avec l'extension  : ``` \documentclass[french]{article} \usepackage{lmodern} % Caractères plus lisibles \usepackage{babel} % Réglages linguistiques (avec french) \pagestyle{empty} % N'affiche pas de numéro de page \usepackage{lineno,fnlineno} \title{À la recherche\dots} \author{M. P.} \date{1913} \begin{document} \linenumbers \section{Le coucher} Longtemps, je me suis couché de bonne heure\footnote{Vers 18h ou 19h, rarement plus tard sauf en cas d'impératif mondain.}. Parfois, à peine ma bougie éteinte, mes yeux se fermaient si vite que je n'avais pas le temps de me dire : \og{}Je m'endors.\fg{} Et, une demi-heure après, la pensée qu'il était temps de chercher le sommeil m'éveillait\dots \end{document} ``` ::: ### Avec l'extension Les éditions critiques de textes font souvent appel à la numérotation des lignes de texte. Pour ce type de travaux, l'extension offre une solution complète. Cette extension remplace et , devenues [obsolètes](/1_generalites/histoire/liste_des_packages_obsoletes). ### Avec l'extension L'extension évite de nombreux problèmes associés à la numérotation des lignes, en permettant de placer sur les pages une règle rectangulaire contenant la numérotation. L'effet est tout à fait correct lorsqu'il est appliqué à un texte d'apparence uniforme, mais il reste médiocre dans les textes qui impliquent des ruptures telles que les mathématiques interpolées ou les figures. ### Avec l'extension :::{warning} L’extension est classée comme [obsolète](/1_generalites/histoire/liste_des_packages_obsoletes). Ce qui suit est informatif. ::: L'extension , à l'image de , retraite également la routine de sortie. L'utilisateur doit donc rester prudent. ## Dans du texte en mode verbatim ### Avec les extensions ou Dans ce cas particulier, les extensions ou , dédiées au mode verbatim, peuvent être utilisées. Chacune propose un environnement dédié et paramétrable : - l'environnement `listing` de demande comme argument obligatoire le numéro de la première ligne numérotée ; - le riche environnement `Verbatim` de dispose de l'option `numbers=left` pour activer la numérotation à gauche. L'option `numbers=right` place la numérotation à droite. ``` \documentclass[french]{article} \usepackage{lmodern} % Caractères plus lisibles \usepackage{babel} % Réglages linguistiques (avec french) \pagestyle{empty} % N'affiche pas de numéro de page \usepackage{moreverb} \usepackage{fancyvrb} \begin{document} \section*{Le coucher (avec \textsf{moreverb})} \begin{listing}{1} Longtemps, je me suis couché de bonne heure. Parfois, à peine ma bougie éteinte, mes yeux se fermaient si vite que je n'avais pas le temps de me dire : « Je m'endors ». Et, une demi-heure après, la pensée qu'il était temps de chercher le sommeil m'éveillait... \end{listing} \section*{Le coucher (avec \textsf{fancyvrb})} \begin{Verbatim}[numbers=left] Longtemps, je me suis couché de bonne heure. Parfois, à peine ma bougie éteinte, mes yeux se fermaient si vite que je n'avais pas le temps de me dire : « Je m'endors ». Et, une demi-heure après, la pensée qu'il était temps de chercher le sommeil m'éveillait... \end{Verbatim} \end{document} ``` Ces exemples restent ici simples. Les extensions proposent bien plus de fonctionnalités. Voir aussi sur ce sujet "[](/4_domaines_specialises/informatique/inclure_un_fichier_en_mode_verbatim)". ### Avec la classe La classe fournit les fonctionnalités nécessaires avec l'environnement `boxedverbatim`. Cet environnement est paramétrable. L'exemple ci-dessous en illustre deux : - `\linenumberfrequency{⟨nombre⟩}` qui indique le `⟨nombre⟩` de lignes consécutives nécessaires pour qu'un numéro soit affiché (avec la valeur `1`, chaque ligne est numérotée). - `\nobvbox` qui indique de ne pas mettre de filet autour de l'environnement. ``` \documentclass[french]{memoir} \usepackage{lmodern} % Caractères plus lisibles \usepackage{babel} % Réglages linguistiques (avec french) \pagestyle{empty} % N'affiche pas de numéro de page \linenumberfrequency{1} % Numérotation de chaque ligne \begin{document} \section*{Le coucher} \begin{boxedverbatim} Longtemps, je me suis couché de bonne heure. Parfois, à peine ma bougie éteinte, mes yeux se fermaient si vite que je n'avais pas le temps de me dire : « Je m'endors ». \end{boxedverbatim} \nobvbox % Pour retirer le filet autour de l'environnement \begin{boxedverbatim} Et, une demi-heure après, la pensée qu'il était temps de chercher le sommeil m'éveillait... \end{boxedverbatim} \end{document} ``` :::{sources} [Including line numbers in typeset output](faquk:FAQ-linenos) :::