--- myst: html_meta: keywords: LaTeX, langages de programmation, mise en forme de code, coloration syntaxique, formater un programme,formater du code, verbatim, insérer du code-source, listing informatique, listing, minted --- # Comment présenter du code informatique avec le package  ? est un package permettant de mettre en forme du code informatique. Il en existe d’autres, par exemple . Pour les autres possibilités, voir [](/4_domaines_specialises/informatique/inserer_du_code_source_informatique.md). ::::{attention} - L’utilisation de nécessite une compilation avec l’option [shell-escape](/2_programmation/compilation/write18.md). :::{admonition} À noter :class: note Cette page ne permet pas la compilation avec l’option shell-escape pour des raisons de sécurité. ::: - La coloration se fait à l’aide de la bibliothèque `Python` [Pygments](https://pygments.org/) qui doit être installée sur la machine. :::: ## Installer `Pygments` Pour l’installation, on utilise son gestionnaire de paquets `Python` (`pip`, `conda` ou autre…). Par exemple, dans un environement `Python` on peut entrer : ```python pip install Pygments ``` ## Un premier exemple Une fois `Pygments` installé, on peut utiliser très simplement (à condition de lancer la compilation avec l'option `shell-escape`). Ci-dessous un permier exemple. ```{noedit} \documentclass[french]{article} \usepackage[T1]{fontenc} \usepackage{babel} \usepackage{minted} \begin{document} \begin{minted}{python} # Une boucle for i in range(0,5): print(i) # Une autre boucle while i != 4: print("Encore ?? Et oui, on est reparti pour un tour de plus !!!!") \end{minted} \end{document} ``` La compilation du code donne : ![](/_static/images/minted_1.png) ## Avec quelques options supplémentaires ```{noedit} \documentclass[french]{article} \usepackage[T1]{fontenc} \usepackage{babel} \usepackage{minted} \begin{document} \begin{minted}[breaklines,linenos,numbersep=3mm]{python} # Une boucle for i in range(0,5): print(i) # Une autre boucle while i != 4: print("Encore ? Eh bien oui, on est reparti pour un tour supplémentaire... c'est sans fin !") \end{minted} \end{document} ``` La compilation du code donne : ![](/_static/images/minted_2.png) :::{note} L’option ```breaklines``` permet le retour à la ligne automatique. ::: ## Code en mode *inline* Pour insérer de cours extraits de code dans du texte, fournit la commande ```\mintinline{⟨langage⟩}``` dont la syntaxe générale est la suivante : ```{noedit} \mintinline{⟨langage⟩}⟨caractère au choix⟩⟨code⟩⟨(même) caractère au choix⟩ ``` Un exemple ci-dessous : ```{noedit} \documentclass[french]{article} \usepackage[T1]{fontenc} \usepackage{babel} \usepackage{minted} \begin{document} En Python, on utilise \mintinline{python}|for| pour les boucles bornées et \mintinline{python}|while| pour les boucles non bornées. \end{document} ``` La compilation du code donne : ![](/_static/images/minted_3.png) :::{note} - On note l’absence d’accolades pour délimiter le code après ```\mintinline{python}```, mais la présence d’un « _caractère au choix_ », qui doit être le même au début et à la fin. - Dans cet exemple, on a choisi « | » comme caractère. :::: :::{admonition} Info :class: tip Pour une mise en page plus élaborée, on pourra utiliser le package : cf. [](/4_domaines_specialises/informatique/inserer_du_code_source_informatique_tcolorbox.md). :::