Проблема конвертации блокнота Jupyter в pdf
Когда я хочу сохранить записную книжку Jupyter в виде файла PDF, я получаю следующую ошибку:
nbconvert failed: PDF creating failed, captured latex output:
This is XeTeX, Version 3.14159265-2.6-0.99999 (TeX Live 2018/W32TeX) (preloaded format=xelatex)
restricted \write18 enabled.
entering extended mode
! Undefined control sequence.
<*> .\notebook
.tex
?
! Emergency stop.
<*> .\notebook
.tex
No pages of output.
Transcript written on ?.
2 ответа
Это происходит из-за досадной несовместимости между Windows и Unix-подобными системами. Jupyter создает временныйnotebook.tex
документ в текущем каталоге, а затем вызывает XeTeX
составить этот документ.
XeTeX
пытается проанализировать командную строку примерно по следующему алгоритму после вызова:
XeTeX <arg1> <arg2> ...
Проверить, если
<arg1>
это.tex
файл,а) если это файл, скомпилируйте его
б) если это не файл, предположите, что это начало фактического документа, указанного в командной строке
В Unix-подобных системах ./notebook.tex
разбирается XeTeX
в current_directory/notebook.tex
который существует и затем компилируется. В системах Windows из-за различного разделителя каталогов командная строка.\notebook.tex
который XeTeX
не распознается как файл и поэтому пытается проанализировать как документ LaTeX, но не может.
Временное средство (может сломать другие вещи) - изменить каталог сборки в pdf.py
из nbconvert (строка 66) из
writer = Instance("nbconvert.writers.FilesWriter", args=(), kw={'build_directory': '.'})
к
writer = Instance("nbconvert.writers.FilesWriter", args=(), kw={'build_directory': ''})
В качестве экстренного решения вы можете сохранить записную книжку как markdown (.md) и открыть ее в RStudio, где вы можете связать ее и сохранить как pdf.