cedadev / ceda-jaspy-envs

Conda (Jaspy) environments for CEDA/JASMIN
BSD 2-Clause "Simplified" License
5 stars 0 forks source link

Ensure Notebooks can be exported to PDF #94

Open agstephens opened 2 years ago

agstephens commented 2 years ago

To make this work:

alaniwi commented 2 years ago

Unclear how this can be tested in the course of preparing a Jaspy release, when it does not get installed on the notebook service until after the release is published and made the default version.

agstephens commented 2 years ago

The packages required might be installed in jaspy or in the jasmin-notebooks DockerFile directly.

alaniwi commented 2 years ago

Installing texlive-collection-xetex in the jasmin-notebooks DockerFile has got it past the error. It has hit a similar one regarding tcolorbox.sty - currently testing whether fixed by adding texlive-tcolorbox RPM.

Not wanting to add it to Jaspy itself at this stage - we currently provide LaTeX via jasmin-sci, and a move to Jaspy would require making sure that we have everything that is equivalent to the RPMs that we provide, so would have to be done carefully.

alaniwi commented 2 years ago

Now another error - missing parskip.sty. How many iterations will be needed? It is very slow each time.

alaniwi commented 2 years ago

Have confirmed that texlive-parskip is the relevant RPM, so trying with this added (as a separate yum install command to try to speed things up, in case docker on breezy has cached the result of the previous step). If this doesn't work, then I'll try some interactive experimentation using the same locally running container that I'm using to work on https://github.com/cedadev/ceda-jaspy-envs/issues/104

alaniwi commented 2 years ago

For some reason, the previous command (RUN yum install -y texlive-collection-xetex texlive-tcolorbox) is running explicitly, despite the fact that the earlier commands got "Using cache". Just have to wait while it installs large number of small packages all over again.

alaniwi commented 2 years ago

Now missing upquote.sty

alaniwi commented 2 years ago

In interactive testing, installed all of these packages:

texlive-collection-xetex texlive-tcolorbox texlive-parskip texlive-upquote texlive-eurosym texlive-adjustbox texlive-zapfding texlive-titling texlive-rsfs texlive-jknapltx texlive-lm-math

and now hitting the error seen at https://superuser.com/questions/1473258/error-exporting-pdf-file-in-jupyter-notebook-pgfkeys-tcb-size-error

alaniwi commented 2 years ago

I've intercepted what it's doing (by temporarily creating a shell script wrapper at /usr/bin/xelatex), and see that it is trying to run xelatex notebook.tex -quiet on the attached file (renamed as .txt extension because of restrictions on github):

notebook.txt

alaniwi commented 2 years ago

Tested the same notebook.tex file on a more recent version of texlive (on Ubuntu: texlive-xetex/focal,focal,now 2019.20200218-1), and it worked fine. The question is how to get this installed on the CentOS7 box - it is not supported by CentOS.

I am getting absolutely nowhere with this. Tried installing it via Jaspy (although that raises issues of its own per above comment yesterday), and there is conda package texlive-core which provides latex but not xelatex, and no sign of anything like texlive-xetex or texlive-xelatex for conda. Also trying to process the notebook.tex with this latex executable failed (can't find latex.fmt). In fact the conda installation seems to be generally broken - couldn't process a "hello world" document (with latex or pdflatex etc). There is allegedly an alternative package called "miktex" but this could not be found.

alaniwi commented 2 years ago

In principle there is a working fix in https://gitlab.ceda.ac.uk/jasmin-notebooks/jasmin-notebooks/-/commit/c51e0fcb40b458398a8ffe6dcf31cee7c6920da4 but adds too much to image size and build time. We have decided not to include it in this release.

(The build in the CI pipeline times out because it takes more than an hour. This could be worked around by building the release locally, saving the files to the dist server, and have it just download these. But it would increase maintenance overhead and still not address the problem of the size of the images. Another possible solution is whether the texlive software could be put onto a mounted filesystem used by the notebook pods.)