pandoc ne texto-wrap Code bloque lors de la conversion en pdf

j'utilise pandoc avec XeLaTeX engine pour convertir markdown en pdf. Je suis en cours d'exécution pandoc comme ceci:

pandoc -s 'backbone-fundamentals'.md -o 'backbone-fundamentals'.pdf 
    --title-prefix 'Developing Backbone.js Applications' 
    --normalize 
    --smart 
    --toc 
    --latex-engine=`which xelatex`

si une ligne de code est plus longue que la largeur du document pdf, elle est coupée. Y a-t-il un moyen de faire envelopper de longues lignes de code par pandoc texto?

19
demandé sur skud 2013-12-26 21:10:30

2 réponses

ne pas avoir le texte enveloppé est (partie de) le point des blocs de code. Pour autant que je sache, la seule façon d'envelopper le code est manuellement. Pour la plupart des langues, ne pas dépasser une certaine longueur de ligne est considéré comme bon style de toute façon.

si vos lignes sont limitées en longueur mais trop longues pour votre pdf généré en LaTeX, envisagez de réduire la taille de la police pour les blocs de code. Pour cela, vous devez changer le modèle de LaTeX utilisé par pandoc. Un coup d'oeil à ce réponse "Comment définir la police taille pour tous les verbatims en présentation Beamer?"devrait vous obtenir a commencé.

4
répondu A. Donda 2017-04-13 12:34:29

si vous avez une installation récente de LaTeX qui inclut le fvextra le paquet, alors il existe une solution simple, récemment suggérée par jannick0.

Modifier YAML options d'en-tête à inclure

\usepackage{fvextra}
\begin{Highlighting}[breaklines,numbers=left]

et compiler avec xelatex.

Par exemple,

---
header-includes:
 - \usepackage{fvextra}
 - \DefineVerbatimEnvironment{Highlighting}{Verbatim}{breaklines,commandchars=\\{\}}
---

~~~~~{.java}
this is a very long long long long long long long long long long long long long line which is broken
~~~~~~

lorsqu'il est compilé avec

pandoc input.md --pdf-engine=xelatex -o output.pdf

donne enter image description here

si vous aviez le .numberLines option, c'est à dire,

---
header-includes:
 - \usepackage{fvextra}
 - \DefineVerbatimEnvironment{Highlighting}{Verbatim}{breaklines,commandchars=\\{\}}
---


~~~~~{.java .numberLines}
this is a very long long long long long long long long long long long long long line which is broken
~~~~~~

puis la commande produit

enter image description here

2
répondu Clément 2018-01-30 14:52:15