在 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:在此示例中,Markdown 没有标题,因此生成的 pdf 的(奇怪的)默认边距为 6 或 8(?)厘米。我通常添加这个标题:
---
geometry: margin=2cm
classoption: fleqn
---
将其边距设置为仅 2 厘米。
允许更好地格式化某些乳胶内容,并允许在需要时使用数学公式以及文本颜色。
但这并不能改变我面临的麻烦。
@tarleb:非常感谢。在您的链接中,我找到了一个可以极大改善情况的解决方案的开始:
在我的 Markdown 标题中添加
header-includes
部分很简单,并且可以消除大部分干扰。
(我读到其他解决方案(例如 \lstset
定义)添加的问题与解决方案一样多,但没有尝试它们)。
---
header-includes:
- \usepackage{fvextra}
- \DefineVerbatimEnvironment{Highlighting}{Verbatim}{breaklines,breakanywhere,commandchars=\\\{\}}
- \DefineVerbatimEnvironment{verbatim}{Verbatim}{breaklines,breakanywhere}
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
如果您复制粘贴此内容,可能会导致问题。
(例如,如果您自信地将其粘贴到终端上,它将开始执行:
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee
,然后再考虑执行命令所需的所有内容)
\DefineVerbatimEnvironment{Highlighting}...
命令将突出显示环境(突出显示代码语法)重新定义为新的“奇特”逐字环境,具有允许其换行的特殊属性。\DefineVerbatimEnvironment{verbatim}...
命令对逐字环境(这是一个没有语法突出显示的不同环境)执行类似的操作。