Comment numéroter les lignes d’un document ?#

Dans du texte classique#

Avec l’extension « lineno »#

L’extension lineno permet d’obtenir cette numérotation en modifiant la routine de sortie . 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.

<WRAP column 40ex>

% !TEX noedit
\documentclass{article}
  \usepackage{lineno}
  \usepackage[french]{babel}

\title{À la recherche\dots}
\author{M. P.}
\date{1913}

\begin{document}
\linenumbers
\maketitle

\section{Le coucher}
Longtemps, je me suis couché
de bonne heure...

\end{document}

</WRAP> <WRAP column 40ex>

\documentclass{article}
  \usepackage[utf8]{inputenc}
  \usepackage[T1]{fontenc}
  \usepackage[width=6.6cm,height=8cm]{geometry}
  \usepackage{lmodern}
  \usepackage{lineno}
  \usepackage{microtype}
  \usepackage[french]{babel}
  \pagestyle{empty}

\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
% ; je voulais poser le volume que je croyais avoir encore
%dans les mains et souffler ma lumière.
\end{document}

</WRAP> <WRAP clear />

Si on souhaite numéroter les lignes d’une partie du document seulement, on peut utiliser l’environnement linenumbers :

<WRAP column 40ex>

% !TEX noedit
\begin{linenumbers}
Longtemps, je me suis couché
de bonne heure...
\end{linenumbers}

</WRAP> <WRAP clear />

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.

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 de « lineno » 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}.

Astuce

Cette fonctionnalité peut être étendue aux notes de bas de page avec l’extension fnlineno :

<WRAP clear /> <WRAP column 46ex>

% !TEX noedit
\documentclass{article}
  \usepackage{lineno,fnlineno}
  \usepackage[french]{babel}

\begin{document}
\linenumbers

\section{Le coucher}
Longtemps, je me suis couché
de bonne heure\footnote{Vers 18h ou 19h...},
Parfois...
\end{document}

</WRAP> <WRAP column 40ex>

\documentclass{article}
  \usepackage[utf8]{inputenc}
  \usepackage[T1]{fontenc}
  \usepackage[width=6.6cm,height=6.0cm]{geometry}
  \usepackage{lmodern}
  \usepackage{lineno,fnlineno}
  \usepackage{microtype}
  \usepackage[french]{babel}
  \pagestyle{empty}

\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 ;
je voulais poser le volume que je croyais avoir encore
dans les mains et souffler ma lumière.
\end{document}

</WRAP> <WRAP clear />

Avec l’extension « reledmac »#

Les éditions critiques de textes font souvent appel à la numérotation des lignes de texte. Pour ce type de travaux, l’extension reledmac offre une solution complète. Cette extension remplace edmac et ledmac, devenues obsolètes.

Avec l’extension « vruler »#

L’extension vruler é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 « numline »#

L’extension numline est classée commeobsolète. Ce qui suit est informatif.

L’extension numline, à l’image de lineno, retraite également la routine de sortie. L’utilisateur doit donc rester prudent.

Dans du texte en mode verbatim#

Avec les extensions « moreverb » ou « fancyvrb »#

Dans ce cas particulier, les extensions moreverb ou fancyvrb, dédiées au mode verbatim, peuvent être utilisées. Voir aussi sur ce sujet « Comment inclure un fichier en mode verbatim ? ».

Avec la classe « memoir »#

La classe memoir fournit également les fonctionnalités nécessaires.


Source : Including line numbers in typeset output