Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sphinx LaTeX PDF documentation bundle #1606

Open
weiji14 opened this issue Nov 2, 2021 · 3 comments
Open

Sphinx LaTeX PDF documentation bundle #1606

weiji14 opened this issue Nov 2, 2021 · 3 comments
Labels
feature request New feature wanted

Comments

@weiji14
Copy link
Member

weiji14 commented Nov 2, 2021

Description of the desired feature

I have a friend who will be working remotely in the field (Antarctica) without internet access for a few weeks, and he asked me about a PDF copy of the documentation. Upstream GMT has dropped PDF builds in GMT v6.0 as mentioned in https://forum.generic-mapping-tools.org/t/gmt-6-install-complete-documentation-fails/251/2 and GenericMappingTools/gmt#805, but I think we could have it for PyGMT through sphinx's LaTeX PDF build, similar to what other Python packages do on readthedocs.

A few suggestions:

  1. Add a make latexpdf option to https://github.com/GenericMappingTools/pygmt/blob/v0.5.0/doc/Makefile so that people can build the PDF locally for any version.
  2. Build an official PDF only for each release, and have it as a downloadable release asset somewhere:

Here's a PDF I managed to build locally for v0.5.0: pygmt_v0.5.0_docs.pdf. It contains 465 pages and is ~13MB, including all the gallery examples, tutorials and API docs. The commands I ran locally were:

cd ~/path/to/pygmt/doc
make all  # build the API docs
PYGMT_USE_EXTERNAL_DISPLAY="false" sphinx-build -b latex -d _build/doctrees -j auto . _build/latex
cd _build/latex/
make  # build the LaTeX PDF docs

There were a few errors related to missing LaTeX fonts (e.g. I had to do sudo apt install latex-gyre), unicode characters (all the emojis in the changelog 😅) and SVG images (the DOI badges are SVG) which I had to skip through. It should be possible to work out those issues though with a bit of effort.

References:

Are you willing to help implement and maintain this feature? Yes, but want to see if there's demand for it, and whether to do just (1) or both (1) and (2).

@weiji14 weiji14 added question Further information is requested feature request New feature wanted labels Nov 2, 2021
@maxrjones
Copy link
Member

I expect that there would be demand for this. I would be open to both (1) and (2) if the second could be automated so that it doesn't require extra effort during the release process.

@weiji14
Copy link
Member Author

weiji14 commented Nov 3, 2021

I expect that there would be demand for this. I would be open to both (1) and (2) if the second could be automated so that it doesn't require extra effort during the release process.

Yep, definitely worth automating this. We can have a GitHub Actions workflow similar to https://github.com/GenericMappingTools/pygmt/blame/v0.5.0/.github/workflows/release-baseline-images.yml created in #1317 that uploads the PDF docs each time a release is made. Could also look at the source code at https://docs.readthedocs.io/en/stable/downloadable-documentation.html to see how the readthedocs people do it.

@seisman
Copy link
Member

seisman commented Dec 28, 2023

We have provided a PDF version of the PyGMT documentation for anyone interested. The PDF documentation is automatically built for the main branch by the ReadTheDocs services, so errors in the PDF documentation are expected. We may build a better PDF version in the future if it's highly demanded.

The PDF documentation is available at https://pygmt-dev.readthedocs.io/_/downloads/en/latest/pdf/.

@seisman seisman removed the question Further information is requested label Dec 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request New feature wanted
Projects
None yet
Development

No branches or pull requests

3 participants