Pandoc:MarkDown 中很长的代码块在输出为 PDF 时会被截断

Pandoc:MarkDown 中很长的代码块在输出为 PDF 时会被截断

我们有很多内部 SOP 和手册,其中包含很长的代码行。代码块用 3 个反引号 ( ```) 隔开。但是,将它们转换为 PDF 会导致页边距处截断长行。

如果同一行长代码用单个反引号 ( `) 括起来,它将自动在页面末尾换行。

有没有办法让带有 3 个反引号的代码块复制这种行为?我查看了Pandoc:Markdown 转 PDF,不截断过长的代码块行但我承认我不确定如何将该解决方案应用于我的问题。

最后我用来输​​出为 PDF 的命令是:

pandoc --toc -V geometry:"left=1cm, top=1cm, right=1cm, bottom=2cm" -V fontsize=12pt test.md -o test.pdf

你可以用类似下面的方法进行测试:

长行代码块的示例。代码块以 (```) 为边框:

``` { .bash .numberLines startFrom="1"}
默认首选项列表 SHA512 SHA384 SHA256 SHA224 SHA1 AES256 TWOFISH CAMELLIA256 AES192 CAMELLIA192 AES CAMELLIA128 3DES ZLIB BZIP2 ZIP 未压缩
``````````````````````````````````````````````````````````

我使用 Debian 8.5 和 pandoc 1.12.4.2

答案1

您快到了,并且您链接的答案有解决方案。

首先在您喜欢的编辑器中创建一个新文件并添加以下行:

% Contents of listings-setup.tex
\usepackage{xcolor}

\lstset{
    basicstyle=\ttfamily,
    numbers=left,
    numberstyle=\footnotesize,
    stepnumber=2,
    numbersep=5pt,
    backgroundcolor=\color{black!10},
    showspaces=false,
    showstringspaces=false,
    showtabs=false,
    tabsize=2,
    captionpos=b,
    breaklines=true,
    breakatwhitespace=true,
    breakautoindent=true,
    linewidth=\textwidth
}

然后将该文件另存为listings-setup.tex。这就是全部要做的。现在使用以下命令编译你的文件:

pandoc --listings -H listings-setup.tex --toc -V geometry:"left=1cm, top=1cm, right=1cm, bottom=2cm" -V fontsize=12pt test.md -o test.pdf

并且您的代码块可能会适当换行。

相关内容