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