Beamer et verbatim

Comment intégrer du texte non formaté (verbatim) et de taille raisonnable dans des slides générées en LaTeX et utilisant la classe Beamer?

C\’est une question que j\’ai eu à me poser il y a quelques jours. Et il se trouve qu\’il y a de petites astuces à connaître.

Intégrer du texte non formaté dans une diapositive

En LaTeX, pour insérer du texte ayant un formatage particulier, il existe le package et la balise verbatim. Dans quel cas peut-on en avoir besoin? Par exemple pour insérer du code non pris en charge par listings. Dans mon cas, il s\’agissait d\’intégrer du YAML. Le premier réflexe serait donc d\’ajouter le package verbatim et le texte mis en forme entre les balises correspondantes comme pour un document classique type \ »article\ » ou \ »report\ ».

\\documentclass{beamer}
\\mode
{
  \\usetheme{Warsaw}
  \\setbeamercovered{transparent}
}
\\usepackage[utf8]{inputenc}
\\usepackage{verbatim}

\\begin{document}

\\begin{frame}
  \\begin{itemize}
    \\item Essai d\'insertion de texte non formaté (verbatim)
  \\end{itemize}
  \\begin{verbatim}
# test.yml
premierNiveau:
  deuxièmeNiveau:
  	cle1 : valeur1
  	cle2 : valeur2
  \\end{verbatim}
\\end{frame}

\\end{document}

Or, si vous compilez ceci le résultat n\’est pas du tout satisfaisant!

\"Erreur

Je dois dire que je ne sais pas vraiment pourquoi on obtient ce résultat. J\’ai par contre la solution pour y remédier, ce qui est déjà bien! L\’astuce consiste à dire à la diapositive (frame) qu\’elle contient du texte non formaté (dit fragile) grâce à l\’option [containsverbatim]. On aura alors ce code-ci pour la diapositive:

\\begin{frame}[containsverbatim]
  \\begin{itemize}
    \\item Essai d\'insertion de texte non formaté (verbatim)
  \\end{itemize}
  \\begin{verbatim}
# test.yml
premierNiveau:
  deuxièmeNiveau:
  	cle1 : valeur1
  	cle2 : valeur2
  \\end{verbatim}
\\end{frame}

Et donc le résultat suivant :

\"Exemple

L\’autre problème qui s\’est alors présenté concerne la taille du texte. En effet, il me fallait insérer pas mal de code YAML et si possible sur la même diapositive. Or, le package verbatim ne permet pas de définir la taille des caractères. Pour combler ce manque, j\’ai eu recours au package fancyvrb.

Réduire la taille des caractères d\’un texte entre les balises verbatim

Le package fancyvrb propose une version améliorée de verbatim et s\’en différencie en mettant le \ »v\ » en majuscule dans la balise. Je ne vais pas m\’étendre sur toutes les possibilités de ce package, la documentation fournie s\’en charge parfaitement. Voici juste un exemple de code permettant de réduire la taille des caractères :

\\documentclass{beamer}
\\mode

{
\\usetheme{Warsaw}
\\setbeamercovered{transparent}
}
\\usepackage[utf8]{inputenc}
\\usepackage{fancyvrb}

\\begin{document}

\\begin{frame}[containsverbatim]
	\\begin{itemize}
      \\item Essai d\'insertion de texte non formaté (verbatim)
    \\end{itemize}
\\begin{Verbatim}[fontsize=\\scriptsize]
# test.yml
premierNiveau:
  deuxièmeNiveau:
  	cle1 : valeur1
  	cle2 : valeur2
\\end{Verbatim}
\\end{frame}

\\end{document}

Qui produit alors le résultat suivant :

\"Verbatim

Bien entendu, les packages verbatim et fancyvrb sont contenus dans TeXLive.

2 réflexions au sujet de « Beamer et verbatim »

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>