J'ai un fichier Markdown qui contient ceci : ```markdown Je test un **bloc** de code. 0 de la font Hack ``` Je compile le fichier avec cette commande : pandoc test.md --pdf-engine=lualatex --from markdown+hard_line_breaks+mark+emoji --metadata-file=metadata.yaml --template=template.tex -o livre.pdf --no-highlight Et dans le fichier .tex généré, j'ai ceci : \begin{verbatim} Je test un **bloc** de code. 0 de la font Hack \end{verbatim} Ca fonctionne, dans le sens où j'ai la bonne police et un fond gris avec des bords arrondies (ce qui corresponds à mon template). Si je souhaite de la coloration syntaxique, j'utilise cette commande : pandoc test.md --pdf-engine=lualatex --from markdown+hard_line_breaks+mark+emoji --metadata-file=metadata.yaml --template=template.tex --highlight-style=pygments --pdf-engine-opt=--shell-escape -o livre.pdf J'obtiens ceci dans le fichier tex : \begin{Shaded} \begin{Highlighting}[] \NormalTok{Je test un **bloc** de code.} \NormalTok{0 de la font Hack} \end{Highlighting} \end{Shaded} Mais dans ce cas, ce n'est plus la bonne police et plus de fond gris dans le fichier PDF. D'ailleurs je remarque Voici le fichier template concernant les morceaux de code : % ============================= % Mise en forme du code inline et des blocs de code % ============================= % Charger le package pour la coloration et le fond des blocs de code \usepackage[listings, skins, breakable]{tcolorbox} % Chargement avec les bonnes options % Définition de la police Hack pour le code \newfontfamily\codeFont{Hack} % ============================= % Code inline (fond gris, arrondi, police Hack) % ============================= \DeclareTotalTCBox{\texttt}{m}{% fontupper=\codeFont, colback=gray!10, % Fond gris arc=4pt, % Coins arrondis boxrule=0pt, % Pas de bordure left=4pt, right=4pt, % Espacement horizontal interne top=0pt, bottom=0pt, % Espacement vertical interne boxsep=0.5pt, % Espacement autour du texte on line}{\strut#1} % ============================= % Blocs de code (fond gris, arrondi, police Hack) % ============================= \DeclareTCBListing{verbatim}{}{ colback=gray!10, % Fond gris clair pour le bloc arc=4pt, % Coins arrondis (4px) boxrule=0pt, % Épaisseur de la bordure listing only, % Pas d'espace supplémentaire autour breakable, % Autoriser la coupure sur plusieurs pages fontupper=\codeFont, % Appliquer Hack enhanced, % Améliore le rendu du fond et des bordures listing engine=listings, listing options={basicstyle=\codeFont\small} } |
Pour la coloration syntaxique: l'extension listings. Voici un exemple. \documentclass{article} \usepackage{fontspec} \setmainfont{Playfair Display} \usepackage[listings, skins, breakable]{tcolorbox} \newfontfamily\codeFont{Hack} % ============================= \DeclareTotalTCBox{\texttt}{m}{% fontupper=\codeFont, colback=gray!10, % Fond gris arc=4pt, % Coins arrondis boxrule=0pt, % Pas de bordure left=4pt, right=4pt, % Espacement horizontal interne top=0pt, bottom=0pt, % Espacement vertical interne boxsep=0.5pt, % Espacement autour du texte on line}{\strut#1} % ============================= % Blocs de code (fond gris, arrondi, police Hack) % ============================= \DeclareTCBListing{verbatim}{}{ colback=gray!10, % Fond gris clair pour le bloc arc=4pt, % Coins arrondis (4px) boxrule=0pt, % Épaisseur de la bordure listing only, % Pas d'espace supplémentaire autour breakable, % Autoriser la coupure sur plusieurs pages fontupper=\codeFont, % Appliquer Hack enhanced, % Améliore le rendu du fond et des bordures listing engine=listings, listing options={style=mystyle} %<------------------------------> } %<-------------------------> \lstdefinestyle{mystyle}{language=Python, showstringspaces=false, basicstyle=\codeFont\small, keywordstyle=\color{blue}, commentstyle=\codeFont\itshape\color{Green}, morecomment=[s]{"""}{"""}, numbers=left, numberstyle=\codeFont\small } \definecolor{Green}{rgb}{0,0.5,0} %<-------------------------> \begin{document} \begin{verbatim} # -*- coding: utf-8 -*- """ Programme creer le 26-03-2025 @site: TeXnique.fr """ colors = ["red", "green", "blue"] for x in colors: if x == "green": break print(x) \end{verbatim} \end{document} |