Проблема конвертации блокнота 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 пытается проанализировать командную строку примерно по следующему алгоритму после вызова:

  1. XeTeX <arg1> <arg2> ...
  2. Проверить, если <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.

Другие вопросы по тегам