[PYTHON] Comment sortir un document au format pdf avec Sphinx

introduction

Avec l'outil de création de documents Python "Sphinx", vous pouvez sortir au format pdf en plus du html. Cette entrée décrit la procédure de sortie au format pdf.

Expliquez dans cette entrée

Non expliqué dans cette entrée

--Comment installer Sphinx * Puisque la méthode d'installation a été introduite dans l'entrée précédente, veuillez consulter ici.

supposition

--Installation du système python3 --Sphinx 1.5 ou supérieur doit être installé

Référence (sphinx-Si vous répondez à la question posée lors de l'exécution du démarrage rapide comme suit, le répertoire sera séparé. )



#Édition anglaise
$ sphinx-quickstart
> Separate source and build directories (y/N) [n]:y

#Version japonnaise
$ sphinx-quickstart
>Répertoire source séparé et répertoire de construction (y/ n) [n]:y

Environnement de l'écrivain

  • macOS Catalina 10.15.3
  • Python 3.7.4
  • Sphinx 2.4.4
  • Homebrew 2.2.11

Référence: procédure de confirmation de version Python

$ python -V
Python 3.7.4

Référence: procédure de confirmation de version de Sphinx

$ pip show sphinx
Name: Sphinx
Version: 2.4.4
(Après cela, il est omis)

Référence: Procédure de vérification de la version Homebrew

$ brew --version
Homebrew 2.2.11
(Après cela, il est omis)

Flux jusqu'à la sortie au format PDF

  1. Créez un environnement TeX sur macOS
  2. Réécrivez conf.py afin qu'il puisse être sorti en japonais
  3. Exécutez make latexpdf

Créez un environnement TeX sur votre Mac

Sphinx peut produire reStructuredText au format pdf via un format appelé TeX (LaTeX pour être exact).

  • Tex se prononce "tefu".
  • Cette entrée n'explique pas TeX et le mécanisme de conversion détaillé.

Tapez la commande suivante pour créer un environnement TeX sur macOS.

"Break cask install mactex-no-gui" prend beaucoup de temps. Au fait, cela a pris environ 6 heures dans mon environnement.

$ brew cask install mactex-no-gui

La prochaine "mise à jour sudo tlmgr --self --all" En fonction de votre environnement, vous pouvez obtenir une erreur indiquant "sudo tlmgr command not found". Dans ce cas, fermez le terminal, rouvrez-le, puis essayez de taper la commande.

À propos, cette commande prend également du temps. Cela a pris environ 2 heures dans mon environnement.

$ sudo tlmgr update --self --all

Réécrire conf.py pour qu'il puisse être sorti en japonais

Ouvrez conf.py sous le répertoire «source», modifiez / ajoutez comme suit et enregistrez.

#La partie langue'ja'Changer pour
language = 'ja'

#Ajoutez la ligne suivante à la fin du fichier
latex_docclass = {'manual': 'jsbook'}
  • Il semble qu'il existe diverses autres spécifications pour latex_docclass, mais nous étudions actuellement.

Exécutez make latexpdf

Si vous exécutez la commande suivante dans le répertoire où se trouve Makefile, le pdf sera créé dans "build / latex".

$ make latefpdf

Les références

Recommended Posts

Comment sortir un document au format pdf avec Sphinx
Comment mettre un lien hypertexte vers "file: // hogehoge" avec sphinx-> pdf
Sortie PDF en utilisant l'extension Latex avec Sphinx
Comment écrire une docstring pour créer un document tuple nommé avec sphinx
Comment écrire un document tuple nommé en 2020
Comment convertir / restaurer une chaîne avec [] en python
[Introduction à Python] Comment générer une chaîne de caractères dans une instruction Print
[ROS2] Comment lire un fichier bag avec le lancement au format python
Comment créer un environnement de traduction sphinx
Comment ajouter un package avec PyCharm
Comment utiliser BigQuery en Python
Comment obtenir stacktrace en python
[Petite histoire] Comment enregistrer des graphiques matplotlib dans un lot avec Jupyter
[Introduction à Python] Comment écrire une chaîne de caractères avec la fonction format
Comment bien formater une liste de dictionnaires (ou d'instances) en Python
Comment étudier jusqu'à ce qu'un débutant en statistique se lance avec les statistiques bayésiennes
Comment gérer les fuites de mémoire dans matplotlib.pyplot
Comment lire un fichier CSV avec Python 2/3
Comment envoyer un message à LINE avec curl
[REAPER] Comment jouer à Reascript avec Python
Comment effacer un taple dans une liste (Python)
Comment dessiner un graphique à 2 axes avec pyplot
Comment incorporer des variables dans des chaînes python
Comment développer une application de panier avec Django
Comment créer un fichier JSON en Python
Comment créer un dictionnaire avec une structure hiérarchique.
Comment gérer les erreurs d'exécution dans subprocess.call
Comment implémenter un sélecteur de dégradé dans Houdini
Comment notifier les canaux Discord en Python
Comment utiliser tkinter avec python dans pyenv
Procédure de création d'application multi-plateforme avec kivy
[Python] Comment dessiner un histogramme avec Matplotlib
Comment générer "Ketsumaimo" en standard en Python
Comment créer une API Rest dans Django
Comment compter les nombres dans une plage spécifique
Comment lire des fichiers dans différents répertoires
Comment se moquer d'une fonction publique dans Pytest
Pour générer une valeur au milieu d'une cellule avec Jupyter Notebook
Comment déposer Google Docs dans un dossier dans un fichier .txt avec python
Comment compter le nombre d'éléments dans Django et sortir dans le modèle
Comment obtenir une liste de fichiers dans le même répertoire avec python
Sortie PDF avec Django
Sortie PDF avec WeasyPrint
Comment spécifier un schéma dans les paramètres de la base de données Django
[Python] Comment dessiner un graphique linéaire avec Matplotlib
Je veux faire la transition avec un bouton sur le ballon
Expliquez en détail comment créer un son avec python
Comment créer un sous-menu avec le plug-in [Blender]
Comment obtenir un utilisateur connecté avec les forms.py de Django
Comment convertir un objet de classe en dictionnaire avec SQLAlchemy
Comment gérer l'échec de l'initialisation pyenv dans Fish 3.1.0
Comment faire du zéro-padding sur une ligne avec OpenCV
Comment exécuter des tests avec Python unittest
[Python] Comment développer des variables dans une chaîne de caractères
Comment faire un jeu de tir avec toio (partie 1)
Un mémorandum sur l'utilisation de keras.preprocessing.image de Keras
Comment charger des fichiers dans Google Drive avec Google Colaboratory
Convertissez l'image au format .zip en PDF avec Python
Comment accéder avec cache lors de la lecture_json avec pandas