Почему pando c не конвертирует обычный текстовый файл в PDF должным образом? - PullRequest
0 голосов
/ 06 февраля 2020

Испытанные команды:

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

Содержимое 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
--------------------------------------------------------------------------------

Результаты:

Из всех якобы поддерживаемых «двигателей» только первый и третий выдают PDF вообще (другие просто сбрасывают кучу бессмысленных ошибок). И те два, которые производят PDF-файлы, производят ужасно убитые:

  1. "pdflatex" (первая команда) полностью игнорирует указанный шрифт, поэтому он совершенно бесполезен.
  2. "xelatex" (третья команда), кажется, в основном использует правильный шрифт, но, по-видимому, удаляет все пробелы между «Left» и «Right», превращает «-» в прямые линии (это , а не , как этот шрифт выглядит ...) и запутывает строки полностью, так что числа в последних столбцах не выровнены вправо, и поместил все содержимое в середину страницы вместо, как и ожидалось, около верхнего левого угла :

снимок экрана с PDF, созданным на основе xelatex screenshot of the xelatex-produced PDF

Я потратил огромное количество раз, охотясь за опциями и пробуя миллион вариантов вышеуказанных команд, но похоже, этот инструмент принципиально сломан. Я понятия не имею, как другие (очевидно) используют эти инструменты, но они просто не работают. Невозможно преобразовать текстовый файл в PDF ...

1 Ответ

3 голосов
/ 07 февраля 2020

Пандо c не сломан; он делает только то, что сказано в документации. Pando c обрабатывает ваш входной файл как Markdown с расширениями pando c (поскольку вы не указали формат). Здесь у вас есть простая таблица из одного столбца (поскольку в строке ---- s нет разрыва для обозначения разрыва столбца).

Если вы хотите дословно представить этот контекст как дословно текст в PDF, вы можете использовать, например, enscript 1.txt --output=- | ps2pdf - > 1.pdf. Если вы хотите сделать это с помощью pando c, то самый простой способ - поместить содержимое внутри ограждений backtick, чтобы оно обрабатывалось как дословный блок уценки. Один из способов сделать это - изменить ваш файл, но вы также можете сделать это, создав файл ticks.txt, содержащий только

```

, а затем выполните

pandoc ticks.txt 1.txt ticks.txt -o 1.pdf
...