pandoc 从降价文件生成 pdf,截断和丢失块内的字符``` ... ```

pandoc generates a pdf from a markdown file that truncates and looses characters inside blocks ``` ... ```

Debian 10 下很长一段时间,使用各种版本的 Pandoc,我正在生成一个 来自 markdown 文档的 pdf 文件,使用此命令:

pandoc elk.md -o elk.pdf

elk.md 文件中,```bash 块下有以下内容:

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list

它生成一个 pdf,其行被截断:

试图复制它,即使选择它作为一个块,在生成的 pdf 中上下一行,只保留这部分文本:

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sou

原始内容丢失
使 pandoc 正常工作的解决方法是什么?

注 1 :手动添加换行符(必要时还添加 \ 个字符)如下所示:

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" \ 
  | sudo tee /etc/apt/sources.list.d/elastic-7.x.list

不会是解决方案。
如果我在一个块中添加更大的源内容,我不打算检查和编辑它的所有行。

注 2 :在此示例中,降价没有 header,因此 pdf 生成它的(奇怪的)默认边距为 6 或 8(?)厘米。我通常添加这个 header :

---
geometry: margin=2cm
classoption: fleqn
---

但这并没有改变我面临的麻烦。

@tarleb:非常感谢。在您的链接中,我找到了一个大大改善情况的解决方案的开头:

在我的 markdown headers 中添加一个 header-includes 部分很简单,并且可以消除大部分干扰
(我认为 \lstset 定义等其他解决方案增加的问题与提供解决方案一样多,但我没有尝试过)。

---
header-includes:
- \usepackage{fvextra}
- \DefineVerbatimEnvironment{Highlighting}{Verbatim}{breaklines,breakanywhere,commandchars=\\{\}}

geometry: margin=2cm
classoption: fleqn
---

你可以看到改进!
但是......插入了一个额外的字符: 如果你复制粘贴内容,你的剪贴板包含:

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee
, →
/etc/apt/sources.list.d/elastic-7.x.list
  1. 三行,而不是一行
  2. 其中一个特别错误,不知从哪里来了一个寄生逗号和一个额外的

如果您 copy-paste 此内容可能会导致问题。
(例如,如果你把它粘贴到你的终端上,有信心,它会开始执行:echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee 在考虑执行命令所需的所有内容之前)