Je n'arrive pas à afficher des blocs de code dans le document PDF que je génère avec Pandoc à partir d'un fichier Markdown. Aucun problème avec le code en ligne cependant.

Pour info, voici le fichier YAML :

lang: FR-fr
documentclass: book
fontsize: 11pt
csquotes: true
toc: true
toc-title: "Table des matières"
cover-image: "cover.png" # Image pour la couverture (1ère de couverture)
back-cover-image: "backcover.png" # Image pour la 4ème de couverture
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Et voici le code du template LaTeX :

% =============================
% 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\ttfamily, % Appliquer Hack
enhanced, % Améliore le rendu du fond et des bordures
listing engine=listings
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Actuellement j'ai une font a chasse fixe (celle par défaut je pense), mais ni fond gris, ni la bonne font (a savoir Hack).

Si il y a des options aussi pour activer la numérotation de ligne et la coloration syntaxique, je prends.

Posée 20 Mar, 15:46

LaTeXBold's gravatar image

LaTeXBold
956
Taux d'acceptation : 6%

Déjà, les lignes documentclass: book et la commande documentclass{article} ne semblent pas cohérentes.

(20 Mar, 16:49) polymorphisme polymorphisme's gravatar image

Pouvez-vous me donner plus de détails ? Je ne comprends pas le lien avec documentclass{article}. J’ai vérifié, et je ne l’ai nulle part, y compris dans le fichier .tex généré après transformation.

Pour information le code en ligne fonctionne parfaitement, seul les blocs de code ne sont pas fonctionnel. Le code provient des conseils de @touhami.

(21 Mar, 14:35) LaTeXBold LaTeXBold's gravatar image

Voici un code surce et le résultat. alt text

% !TEX xelatex
\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={basicstyle=\codeFont\small}
}
\begin{document}
\texttt{foo\_bar} and
\begin{verbatim}
for bar \i in {1,2,10}
do this
\end{verbatim}
\end{document}
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Remarque: essayer de supprimer

\renewcommand{\ttdefault}{lmtt}
\lstset{basicstyle=\codeFont\small}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Puis à la définition de \DeclareTCBListing{verbatim} remplacer fontupper=\codeFont\ttfamily par fontupper=\codeFont et ajouter listing options={basicstyle=\codeFont\small}

Lien permanent

Publiée 25 Mar, 13:49

touhami's gravatar image

touhami
10.0k410
Taux d'acceptation : 51%

OK, alors j'ai pris en compte les modifications suivantes :

Puis à la définition de \DeclareTCBListing{verbatim} remplacer fontupper=\codeFont\ttfamily par fontupper=\codeFont et ajouter listing options={basicstyle=\codeFont\small}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Mais je n'ai toujours pas la bonne police, ni le fond gris.

Pour le fond gris, je suspecte que c'est cette option que je n'ai pas intégrée : \documentclass{article}.

Car j'ai actuellement ceci :

\documentclass[
$for(babel-otherlangs)$
$babel-otherlangs$,
$endfor$
$if(babel-lang)$
$babel-lang$,
$endif$
$if(fontsize)$
$fontsize$,
$endif$
$for(classoption)$
$classoption$$sep$,
$endfor$
]{$documentclass$}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Et je pense que je doit le garder car j'utilise des éléments dans le fichier YAML (j'avais essayé de les transférer dans le template, sans succès).

Si je supprime ce code pour mettre à la place \documentclass{article}, je prends une erreur :

Error producing PDF.
! LaTeX Error: Command \chaptermark undefined.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.262 \renewcommand{\chaptermark}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Par contre je ne comprends pas ce que je dois faire de ça :

\renewcommand{\ttdefault}{lmtt}
\lstset{basicstyle=\codeFont\small}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Et dernier point, j'utilise le moteur lualatex, car si j'utilise xelatex, je perds la mise en forme en gras.

OK, je viens de générer directement le fichier .tex a la place du PDF et j'obtiens ceci :

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{Je test un **bloc** de code.}
\NormalTok{0 de la font Hack}
\end{Highlighting}
\end{Shaded}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Shaded au lieu de verbatim, je vais creuser.

Lien permanent

Publiée 25 Mar, 17:24

LaTeXBold's gravatar image

LaTeXBold
956
Taux d'acceptation : 6%

EDIT : (ca fonctionne)

OK, pour forcer le verbatim, il faut utiliser dans la commande Pandoc le flag : --no-highlight.

Ce qui permet de forcer le moteur de rendu de Pandoc et d'obtenir ceci :

\begin{verbatim}
Je test un **bloc** de code.
0 de la font Hack
\end{verbatim}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Par contre, je n'arrive pas à obtenir une version avec la coloration syntaxique.

J'ai installé pygments avec brew (je suis sur Mac), mais ça ne change rien.

Par exemple si je lance ceci : pandoc test.md --pdf-engine=lualatex --from markdown+hard_line_breaks+mark+emoji --metadata-file=metadata.yaml --template=template.tex -o livre.pdf --highlight-style=pygments --pdf-engine-opt=--shell-escape

J'obtiens ce message :

[WARNING] [makePDF] LaTeX Warning: Command \@parboxrestore has changed. Check if current package is valid. :
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Si j'utilise 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 --highlight-style=pygments
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Ca ne fonctionne plus, c'est à dire que ce n'est pas la bonne font et plus de fond gris. Le rendu dans le fichier tex n'est plus verbatim et reviens à Shaded.

EDIT 2 : J'ai toujours pas utilisez cette ligne comme expliqué dans le post ci-dessus : documentclass{article}

Lien permanent

Publiée 25 Mar, 17:33

LaTeXBold's gravatar image

LaTeXBold
956
Taux d'acceptation : 6%

Modifiée 25 Mar, 21:10

1] Très bien, donc c'est l'option --no-highlight. Pour la coloration syntaxique ouvrir une nouvelle question. N'oublier pas de supprimer ou commenter

\renewcommand{\ttdefault}{lmtt} \lstset{basicstyle=\codeFont\small}

2] Oui, garder ton fichier template.tex tel qu'il est et ne pas utiliser \documentclass{article}.

(26 Mar, 08:06) touhami touhami's gravatar image

Merci pour les précisions et les solutions proposées :D

(26 Mar, 09:34) LaTeXBold LaTeXBold's gravatar image
Votre réponse
[Masquer 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

Mots-clés de la question :

×42
×31
×7

Question posée : 20 Mar, 15:46

Question vue : 253 fois

Dernière mise à jour : 26 Mar, 09:34

C'est votre première visite ici ? Consultez la FAQ !

×