我正在使用 pandoc 和 xelatex 引擎将 markdown 转换为 pdf。我像这样运行 pandoc:
pandoc -s 'backbone-fundamentals'.md -o 'backbone-fundamentals'.pdf \
--title-prefix 'Developing Backbone.js Applications' \
--normalize \
--smart \
--toc \
--latex-engine=`which xelatex`
如果代码行比 pdf 文档宽度长,它就会被截断。有没有办法让 pandoc 文本换行长代码行?
如果您最近安装了包含 fvextra 软件包的 LaTeX,那么有一个简单的解决方案,最近由 jannick0 建议。
修改您的YAML 标头选项以包含
\usepackage{fvextra}
\DefineVerbatimEnvironment{Highlighting}{Verbatim}{breaklines,commandchars=\\\{\}}
并使用 xelatex 进行编译。举个例子,
---
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
~~~~~~
当编译时
pandoc input.md --pdf-engine=xelatex -o output.pdf
给予如果您有 .numberLines
选项,即
---
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
~~~~~~
然后会产生相同的命令
如果您的行长度有限,但对于 LaTeX 生成的 pdf 来说仍然太长,请考虑减小代码块的字体大小。为此,您需要更改 pandoc 使用的 LaTeX 模板。看一下“如何在 Beamer 演示文稿中设置所有逐字的字体大小?”的
answer。应该可以帮助你开始。