为什么 pandoc 不能正确将纯文本文件转换为 PDF?

2 pdf plaintext converters pandoc

尝试过的命令:

pandoc -V 'fontfamily:Courier' --variable mainfont="Courier" --pdf-engine=pdflatex 1.txt -o 1.pdf
pandoc -V 'fontfamily:Courier' --variable mainfont="Courier" --pdf-engine=lualatex 1.txt -o 2.pdf
pandoc -V 'fontfamily:Courier' --variable mainfont="Courier" --pdf-engine=xelatex 1.txt -o 3.pdf
pandoc -V 'fontfamily:Courier' --variable mainfont="Courier" --pdf-engine=latexmk 1.txt -o 4.pdf
pandoc -V 'fontfamily:Courier' --variable mainfont="Courier" --pdf-engine=tectonic 1.txt -o 5.pdf
pandoc -V 'fontfamily:Courier' --variable mainfont="Courier" --pdf-engine=wkhtmltopdf 1.txt -o 6.pdf
pandoc -V 'fontfamily:Courier' --variable mainfont="Courier" --pdf-engine=weasyprint 1.txt -o 7.pdf
pandoc -V 'fontfamily:Courier' --variable mainfont="Courier" --pdf-engine=prince 1.txt -o 8.pdf
pandoc -V 'fontfamily:Courier' --variable mainfont="Courier" --pdf-engine=context 1.txt -o 9.pdf
pandoc -V 'fontfamily:Courier' --variable mainfont="Courier" --pdf-engine=pdfroff 1.txt -o 10.pdf
Run Code Online (Sandbox Code Playgroud)

1.txt的内容:

--------------------------------------------------------------------------------
Left                                                                       Right
--------------------------------------------------------------------------------
Lorem ipsum whatever. Lorem ipsum whatever. Lorem ipsum whatever. Lorem ipsum  1
whatever. Lorem ipsum whatever. Lorem ipsum whatever. Lorem ipsum whatever.    2
Lorem ipsum whatever. Lorem ipsum whatever. Lorem ipsum whatever. Lorem ipsum  3
whatever. Lorem ipsum whatever. Lorem ipsum whatever. Lorem ipsum whatever.    4
Lorem ipsum whatever. Lorem ipsum whatever. Lorem ipsum whatever.              5
--------------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

结果:

在所有那些据称受支持的“引擎”中,只有第一个和第三个能够生成任何 PDF 其他引擎只是转储一堆无意义的错误)。而那两个确实生成 PDF 的文件,却生成了惨遭屠宰的 PDF:

  1. “pdflatex”(第一个命令)完全忽略指定的字体,因此它完全没有用。
  2. “xelatex”(第三个命令)似乎主要使用正确的字体,但似乎删除了“左”和“右”之间的所有空格,将“-”变成了直线(这不是字体的样子.. .) 并且完全搞乱了行,使得最后一列上的数字没有向右对齐,并且将整个内容塞到页面的中间,而不是像预期的那样,放在左上角附近:

xelatex 生成的 PDF 的屏幕截图 xelatex 生成的 PDF 的屏幕截图

我花费了大量时间寻找选项并尝试上述命令的一百万种变体,但似乎这个工具从根本上被破坏了。我不知道其他人(显然)如何使用这些工具,但它们就是不起作用。将文本文件转换为 PDF 是不可能的...

Joh*_*ane 8

Pandoc 没有被破坏;它正在做它的文档所说的事情。Pandoc 将您的输入文件视为带有 pandoc 扩展名的 Markdown 文件(因为您没有指定格式)。这里有一个单列简单表(因为----s 行中没有中断来指示列中断)。

如果您想要将此上下文呈现为 PDF 中的逐字文本,您可以使用例如enscript 1.txt --output=- | ps2pdf - > 1.pdf. 如果您想使用 pandoc 来执行此操作,那么最简单的方法是将内容放在反引号围栏内,以便将其视为逐字 Markdown 块。一种方法是修改您的文件,但您也可以通过创建一个ticks.txt仅包含

```
Run Code Online (Sandbox Code Playgroud)

然后运行

pandoc ticks.txt 1.txt ticks.txt -o 1.pdf
Run Code Online (Sandbox Code Playgroud)