Comment écrire en mode verbatim ?#

Dans certains domaines, notamment en informatique, on a besoin de citer du texte comportant beaucoup de caractères spéciaux pour (&, _, \…). Le cas extrême se présentera si vous écrivez un document sur en Vous aurez besoin de citer des noms de commandes, de donner des bouts de code…

Dans le jargon citer du texte sans interpréter ce qu’il contient se dit « écrire en verbatim », ce qui veut dire mot pour mot en latin.

  • Les environnements verbatim et verbatim* de permettent de réaliser cela. Cependant, ils sont assez limités, en particulier sur la taille de ce que peuvent contenir ces environnements, et de nombreuses extensions ont été proposées.

  • Le package verbatim redéfinit les environnements verbatim et verbatim*, afin de ne plus être limité par la taille du contenu. Il fournit également la commande \verbatiminput, qui prend en argument un nom de fichier, et inclut ce fichier en mode verbatim.

  • L’environnement alltt du package du même nom alltt (package dû à Johannes Braams) est une autre solution. À l’intérieur de cet environnement, le caractère \ et les accolades conservent leur signification, et il est donc possible d’inclure des commandes dans un environnement alltt. Cela permet en particulier d’inclure un fichier en verbatim, à condition qu’il ne contienne pas d’accolades.

Exemple d’utilisation de alltt :

\documentclass{article}
  \usepackage{alltt}
  \usepackage[french]{babel}
  \pagestyle{empty}

\begin{document}
\begin{alltt}
 Notez la différence subtile entre
 $f(x)$ et \(f(x)\) grâce à
 l'utilisation de la \og{}contre-oblique\fg.
\end{alltt}
\end{document}
  • L’extension moreverb va un peu plus loin, en permettant notamment de numéroter les lignes de l’environnement verbatim. Elle permet aussi d’inclure un fichier, bien sûr, mais aussi et surtout d’écrire dans un fichier.

Pour inclure un fichier, on saisira par exemple :

{ \small \listinginput[5]{10}{totor.c} }

Les paramètres 5 et 10 indiquent que la numérotation des lignes doit se faire de 5 en 5 en commençant à 10.

  • L’extension fancyvrb permet d’écrire du texte verbatim encadré, en couleur et même dans lequel certaines commandes sont interprétées.

  • L’extension sverb de Mark Wooding, propose un environnement listing.

  • L’extension verbtext, permet de numéroter les lignes d’un texte verbatim, et d’interpréter certaines commandes.

  • On peut aussi essayer l’extension verbasef (verbatim automatic segmentation of external files). Il utilise l’environnement figure.

À faire

Ce qui suit est tiré d’une autre question traitant du verbatim. Tout est à regrouper et reformuler ici.

L’environnement verbatim permet d’insérer un texte tel quel sans que ne le traite. Il permet notamment de faire apparaître des commandes Il est cependant fragile et peut produire des résultats très bizarres, par exemple, il vaut mieux éviter de l’utiliser de manière inconsidérée dans des contextes curieux comme les tableaux, en argument à une autre commande, etc.

\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

\begin{document}
\begin{verbatim}
 La commande \LaTeX{} permet d'imprimer le logo
 LaTeX.
\end{verbatim}
\end{document}

La commande \verb permet de faire la même chose localement. Le premier caractère après la commande permet de marquer le début du mode verbatim et la prochaine occurrence de ce caractère en marque la fin. Ce peut être n’importe quel autre caractère sauf un espace, qui est ignoré après un nom de commande, une lettre, qui ferait partie du nom de commande croirait alors lire un appel, par exemple, à verbX) ou une étoile. En complément, la commande \verb* fonctionne comme \verb mais rend les espaces visibles. L’exemple suivant illustre les deux cas :

\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

\begin{document}
La commande \verb+\verb+ permet de taper ce
qu'on veut sans l'interpréter. Par exemple
\verb,ceci cela,. On peut également
matérialiser les blancs dans la commande
\verb+\verb*+ \verb*+comme illustré ici+.
\end{document}

1.  Avec l’extension fancyvrb#

L’extension fancyvrb permet d’écrire du texte verbatim encadré, en couleur… et même dans lequel certaines commandes sont interprétées. Il propose également une solution pour inclure du verbatim dans l’argument d’une commande comme le montre la question « Comment utiliser le mode verbatim dans une note de bas de page ? ». L’exemple suivant en montre le fonctionnement.

\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{fancyvrb}

\begin{document}
\fvset{frame=single,numbers=left,numbersep=3pt,
  commandchars=\\\{\},label=Exemple}
\begin{Verbatim}
Ici, je mets mon programme.
Avec des maths : \(a, b, \alpha, \beta,\ldots\)
ou de l'\textit{italique}.

\large{Pratique, non ?}
\end{Verbatim}
\end{document}

2.  Avec l’extension fancyvrb-ex#

L’extension fancyvrb-ex, incluse dans fancyvrb, permet de mettre côte à côte ou l’un au-dessous de l’autre un passage verbatim et son aspect final.

Voici un exemple illustrant l’environnement SideBySideExample de cette extension (avec une option pour donner plus de place à l’aspect final du code en verbatim).

\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{fancyvrb-ex}

\begin{document}
\begin{SideBySideExample}[xrightmargin=6cm]
Ceci est un \textit{pourcentage} : \%.
\end{SideBySideExample}
\end{document}

3.  Avec l’extension alltt#

À faire

Ajouter un exemple.

L’extension alltt définit un environnement alltt qui ressemble à verbatim parce que tous les caractère particuliers de (les accolades, les esperluettes, les pourcents, etc.) sont désactivés. Cet environnement permet donc de montrer quelque chose qui ressemble à un source, comme par exemple du code informatique, mais en le mettant en forme un minimum grâce à l’appel de certaines commandes (gras, mathématiques, symboles, etc.).