When I want to save Jupyter notebook as a pdf file, I receive the following error:
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 ?.
This is due to an unfortunate incompatibility between Windows and Unix-like systems. Jupyter creates a temporary notebook.tex
document in the current directory and then calls XeTeX
to compile this document.
XeTeX
tries to parse the command line with roughly the following algorithm after being called:
XeTeX <arg1> <arg2> ...
Check if <arg1>
is a .tex
file,
a) if it is a file compile it
b) if it not a file assume this is the start of an actual document given on the command line
On Unix-like systems ./notebook.tex
is parsed by XeTeX
into current_directory/notebook.tex
which exists and is then compiled. On Windows systems the command line because of the different directory separator is .\notebook.tex
which XeTeX
does not recognize as a file and therefore tries and fails to parse as a LaTeX document.
A temporary remedy (could break other things) is to change the build directory in pdf.py
from nbconvert (line 66) from
writer = Instance("nbconvert.writers.FilesWriter", args=(), kw={'build_directory': '.'})
to
writer = Instance("nbconvert.writers.FilesWriter", args=(), kw={'build_directory': ''})
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With