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!
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 :
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 :
Bien entendu, les packages verbatim et fancyvrb sont contenus dans TeXLive.