在Debian 10和很长一段时间内,使用各种版本的Pandoc,我使用以下命令从降价文档生成pdf文件:
pandoc elk.md -o elk.pdf
Run Code Online (Sandbox Code Playgroud)
在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
Run Code Online (Sandbox Code Playgroud)
它生成一个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
Run Code Online (Sandbox Code Playgroud)
不会是一个解决方案。
如果我在一个块中添加更大的源内容,我不打算检查和编辑它的所有行。
注 2:在此示例中,markdown 没有标题,因此生成的pdf的(奇怪的)默认边距为 6 或 8 (?) 厘米。我通常添加这个标题:
---
geometry: margin=2cm
classoption: fleqn
---
Run Code Online (Sandbox Code Playgroud)
将其边距设置为仅 2 厘米。
允许更好地格式化某些乳胶内容,并在需要时允许使用数学公式,以及文本颜色。
但这并不能改变我面临的麻烦。
@tarleb:非常感谢。在您的链接中,我发现了一个解决方案的开始,可以大大改善这种情况:
\n在我的降价标题中添加一个header-includes部分很简单,并且可以消除大部分干扰。\n(我读到其他解决方案(例如定义)\\lstset添加的问题与解决方案一样多,但没有尝试它们)。
---\nheader-includes:\n- \\usepackage{fvextra}\n- \\DefineVerbatimEnvironment{Highlighting}{Verbatim}{breaklines,breakanywhere,commandchars=\\\\\\{\\}}\n- \\DefineVerbatimEnvironment{verbatim}{Verbatim}{breaklines,breakanywhere}\n\ngeometry: margin=2cm\nclassoption: fleqn\n---\nRun Code Online (Sandbox Code Playgroud)\n\n您可以看到改进!
\n但是...插入了一个额外的字符:\xe2\x86\x92如果您复制粘贴内容,您的剪贴板将包含:
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee\n, \xe2\x86\x92\n/etc/apt/sources.list.d/elastic-7.x.list\nRun Code Online (Sandbox Code Playgroud)\n如果您复制粘贴此内容,可能会导致问题。
\n(例如,如果您将其粘贴到终端上,有信心,它将开始执行:echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee在考虑执行命令所需的所有内容之前)
\\DefineVerbatimEnvironment{Highlighting}...命令将突出显示环境(突出显示代码语法)重新定义为新的“奇特”逐字环境,具有允许其换行的特殊属性。\\DefineVerbatimEnvironment{verbatim}...命令对逐字环境(这是一个没有语法突出显示的不同环境)执行类似的操作。| 归档时间: |
|
| 查看次数: |
87 次 |
| 最近记录: |