将 Jupyter Notebook 转换为 pdf 的问题

xua*_*uan 5 tex tex-live jupyter-notebook

当我想将 Jupyter Notebook 保存为 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 ?.
Run Code Online (Sandbox Code Playgroud)

Ale*_*der 1

这是由于 Windows 和类 Unix 系统之间的不兼容造成的。notebook.texJupyter在当前目录中创建一个临时文档,然后调用XeTeX编译该文档。

XeTeX调用后尝试使用大致以下算法解析命令行:

  1. XeTeX <arg1> <arg2> ...
  2. 检查是否<arg1>是一个.tex文件,

    a) 如果它是一个文件,则编译它

    b) 如果它不是一个文件,则假设这是命令行上给出的实际文档的开始

在类 Unix 系统上,由存在的内容./notebook.tex解析,然后进行编译。在 Windows 系统上,由于目录分隔符不同,命令行无法识别为文件,因此尝试解析为 LaTeX 文档,但失败。XeTeXcurrent_directory/notebook.tex.\notebook.texXeTeX

pdf.py临时补救措施(可能会破坏其他东西)是将nbconvert (第 66 行)中的构建目录从

writer = Instance("nbconvert.writers.FilesWriter", args=(), kw={'build_directory': '.'})

到

writer = Instance("nbconvert.writers.FilesWriter", args=(), kw={'build_directory': ''})