jupyter / nbconvert

Jupyter Notebook Conversion
https://nbconvert.readthedocs.io/
BSD 3-Clause "New" or "Revised" License
1.73k stars 564 forks source link

I can export to PDF with Jupyter Notebook, but I can't do so with Jupyter Lab #773

Open ghost opened 6 years ago

ghost commented 6 years ago

I get two different errors:

Environment:

How to recreate the first error:

error-1

How to recreate the second error: (assumes you've recreated the first error)

error-2

As mentioned in the title, everything works with Jupyter Notebook (version 5.4.0). I have Inkscape and XeLaTeX installed properly and they are in my PATH.

I believe that GH-769 is related.

MarcosCarreira commented 6 years ago

Same problem: Operating System: macOS 10.12.6 Jupyter Lab Version: 0.31.12 Jupyter Notebook Version: 5.4.1 xetex x86_64-darwin installed on TeX Live 2017

I try to export as PDF in Jupyter Lab, get the error above, but I can download as PDF in Jupyter Notebook.

athornton commented 6 years ago

Open a notebook cell, and do

! echo $PATH

At least with my kernels, thePATH is set to something minimal that doesn't include /usr/local/bin. A symlink into /usr/bin for xelatex and bibtex worked for me, although that's not a very pretty solution.

gabriben commented 6 years ago

@athornton could you mention how to set the symlink? (noobie here)

athornton commented 6 years ago

Well, I'm running this all inside a container, so in my Dockerfile, I install TeX Live to the default location and then just do the following. It's the ln -s that's the actual symlink creation there.

# This, bizarrely, has to be installed on its own to get the binaries.
RUN  PATH=/usr/local/texlive/2018/bin/x86_64-linux:${PATH} && \
     tlmgr install xetex && \
     ln -s /usr/local/texlive/2018/bin/x86_64-linux/xelatex \
           /usr/local/texlive/2018/bin/x86_64-linux/bibtex \
           /usr/bin

I have no idea why scheme-basic installs xetex, but then you have to install it again to get the binaries, and when you install it the second time, you have to install it as the only package in that command; both of those are empirically true, though. But I know very little about TeX Live.

The TeX Live profile is:

# texlive.profile written on Mon May 28 21:54:50 2018 UTC
# It will NOT be updated and reflects only the
# installation profile at installation time.
selected_scheme scheme-basic
TEXDIR /usr/local/texlive/2018
TEXMFCONFIG ~/.texlive2018/texmf-config
TEXMFHOME ~/texmf
TEXMFLOCAL /usr/local/texlive/texmf-local
TEXMFSYSCONFIG /usr/local/texlive/2018/texmf-config
TEXMFSYSVAR /usr/local/texlive/2018/texmf-var
TEXMFVAR ~/.texlive2018/texmf-var
binary_x86_64-linux 1
instopt_adjustpath 0
instopt_adjustrepo 1
instopt_letter 1
instopt_portable 0
instopt_write18_restricted 1
tlpdbopt_autobackup 1
tlpdbopt_backupdir tlpkg/backups
tlpdbopt_create_formats 1
tlpdbopt_desktop_integration 1
tlpdbopt_file_assocs 1
tlpdbopt_generate_updmap 0
tlpdbopt_install_docfiles 1
tlpdbopt_install_srcfiles 1
tlpdbopt_post_code 1
tlpdbopt_sys_bin /usr/local/bin
tlpdbopt_sys_info /usr/local/share/info
tlpdbopt_sys_man /usr/local/share/man
tlpdbopt_w32_multi_user 1