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
---
将其页边距设置为仅 2 厘米。
允许更好地格式化某些乳胶内容,并允许在需要时使用数学公式,以及文本颜色。
但这并没有改变我面临的麻烦。
@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
- 三行,而不是一行
- 其中一个特别错误,不知从哪里来了一个寄生逗号和一个额外的→
如果您 copy-paste 此内容可能会导致问题。
(例如,如果你把它粘贴到你的终端上,有信心,它会开始执行:echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee
在考虑执行命令所需的所有内容之前)
在 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
---
将其页边距设置为仅 2 厘米。
允许更好地格式化某些乳胶内容,并允许在需要时使用数学公式,以及文本颜色。
但这并没有改变我面临的麻烦。
@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
- 三行,而不是一行
- 其中一个特别错误,不知从哪里来了一个寄生逗号和一个额外的→
如果您 copy-paste 此内容可能会导致问题。
(例如,如果你把它粘贴到你的终端上,有信心,它会开始执行:echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee
在考虑执行命令所需的所有内容之前)