3

Я использую Pandoc для конвертации файлов разметки в разные форматы, включая html и docx . С PDF, однако, я получаю сообщение pdflatex not found даже если оно установлено, и я могу даже вызвать его напрямую из Cygwin.

Почему Pandoc не обнаруживает Pdflatex и что я могу сделать, чтобы решить эту проблему?

2 ответа2

3

Я только столкнулся с этим - я подозреваю, что вы установили версию Pandoc для Windows. В cygwin, если вы запускаете which pandoc , вы получаете что-то вроде /cygdrive/c/Program Files (x86)/Pandoc/pandoc?

Если так, кажется, что версия ожидает пути в стиле Windows (например, C:\path\to\pdflatex), но cygwin, вероятно, дает ему что-то вроде "/path/to/pdflatex".

Возможно, вы добьетесь успеха в создании pandoc из исходного кода в вашей среде cygwin.

1

Ответ @ Wiscocrew находится на правильном пути, но, к сожалению, это немного сложнее, чем это.

Pandoc позволяет вам передавать полный путь к pdflatex с помощью переключателя --latex-engine (см. Http://pandoc.org/README.html#options-affecting-specific-writers), но если вы просто сделаете что-то вроде

--latex-engine=`cygpath -w /usr/bin/pdflatex`

Pandoc выдает другую ошибку: pandoc.exe: latex-engine must be pdflatex, lualatex, or xelatex. , Причиной этой ошибки является то, что Cygwin's pdflatex является символической ссылкой:

$ ls -lh /usr/bin/pdflatex
lrwxrwxrwx 1 myuser Domain Users 10 Mar 14 11:52 /usr/bin/pdflatex -> pdftex.exe

Моя работа заключалась в том, чтобы скопировать /usr/bin/pdftex.exe в /usr/local/bin/pdflatex.exe и передать его в Pandoc следующим образом:

pandoc Foo.md -o Foo.pdf --latex-engine='C:\\cygwin64\\usr\\local\\bin\\pdflatex.exe' -t latex -s

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .