pdf pandoc pdflatex xelatex

pdf - pandoc ubuntu



pandoc no envuelve los bloques de código de texto al convertir a pdf (2)

Estoy usando pandoc con el motor xelatex para convertir markdown a pdf. Estoy corriendo pandoc así:

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

Si una línea de código es más larga que el ancho del documento pdf, simplemente se corta. ¿Hay alguna forma de que el texto pandoc incluya líneas de código largas?


No tener el texto envuelto es (parte de) el punto de bloques de código. Que yo sepa, la única manera de ajustar el código es manualmente. Para la mayoría de los idiomas, no exceder una cierta longitud de línea se considera un buen estilo de todos modos.

Si sus líneas tienen una longitud limitada pero aún son demasiado largas para su pdf generado por LaTeX, considere reducir el tamaño de fuente para los bloques de código. Para esto necesitas cambiar la plantilla LaTeX usada por pandoc. Un vistazo a esta answer en "¿Cómo establecer el tamaño de fuente para todos los verbatims en la presentación de Beamer?" Debería empezar.


Si tiene una instalación reciente de LaTeX que incluye el paquete fvextra , entonces hay una solución simple, recientemente sugerida por jannick0 .

Modifique sus opciones de encabezado YAML para incluir

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

y compilar con xelatex.

Por ejemplo,

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

cuando se compila con

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

da

Si tuvieras la opción .numberLines , es decir,

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

entonces el mismo comando produciría