I'm using pandoc with xelatex engine to convert markdown to pdf. I'm running pandoc like this:
pandoc -s 'backbone-fundamentals'.md -o 'backbone-fundamentals'.pdf \ --title-prefix 'Developing Backbone.js Applications' \ --normalize \ --smart \ --toc \ --latex-engine=`which xelatex`
If a code line is longer than the pdf document width it just gets cutoff. Is there anyway to have pandoc text wrap long code lines?
How can I convert PDFs to other formats using pandoc? You can't.
Generating PDF from Markdown with Pandoc There are actually two steps involved in converting a Markdown file to a PDF file: The Markdown source file is converted to a LaTeX source file. Pandoc invokes the pdflatex or xelatex or other TeX command and converts the . tex source file to a PDF file.
Pandoc can convert between numerous markup and word processing formats, including, but not limited to, various flavors of Markdown, HTML, LaTeX and Word docx.
If you have a recent installation of LaTeX that includes the fvextra package, then there is a simple solution, recently suggested by jannick0.
Modify your YAML header options to include
\usepackage{fvextra} \begin{Highlighting}[breaklines,numbers=left]
and compile with xelatex.
For instance,
--- 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 ~~~~~~
when compiled with
pandoc input.md --pdf-engine=xelatex -o output.pdf
gives
If you had the .numberLines
option, i.e.,
--- 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 ~~~~~~
then the same command would produce
Not having the text wrapped is (part of) the point of code blocks. As far as I know, the only way to wrap the code is manually. For most languages, not exceeding a certain line length is considered good style anyway.
If your lines are length-limited but still too long for your LaTeX-generated pdf, consider reducing the font size for code blocks. For this you need to change the LaTeX template used by pandoc. A look at this answer to "How to set font size for all verbatims in Beamer presentation?" should get you started.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With