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 \begin{Highlighting}[] qui n'a pas l'air de prendre en compte le langage (Markdown dans ce cas).

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}
}

Posée 26 Mar, 10:35

LaTeXBold's gravatar image

LaTeXBold
957
Taux d'acceptation : 6%


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}
Lien permanent

Publiée 26 Mar, 12:24

touhami's gravatar image

touhami
10.0k410
Taux d'acceptation : 51%

Votre réponse
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.

Mots-clés de la question :

×42
×7
×5

Question posée : 26 Mar, 10:35

Question vue : 266 fois

Dernière mise à jour : 26 Mar, 12:24