Thèmes PDF de Sphinx

est-ce que L'outil de documentation Sphinx offre différents thèmes PDF comme il offre différents thèmes HTML?

J'ai cherché sur Google la question mais je ne trouve pas de réponse, ce qui me porte à croire que la réponse est "non". Pourtant, je pensais que je voudrais poser ici.

Merci.

18
demandé sur mzjn 2012-03-17 03:38:14

2 réponses

tout D'abord, Sphinx ne génère pas de sortie PDF par lui-même, bien qu'il existe deux méthodes générales pour passer des fichiers source de Sphinx à la sortie PDF:

  1. utilisez Latex builder, puis un outil séparé comme latex2pdf pour générer la sortie PDF
  2. utilisez le plugin Sphinx du projet rst2pdf

cela étant dit, il y a beaucoup de potentiel pour personnaliser le style de votre sortie PDF en utilisant l'une ou l'autre des options suivantes: méthode.

  1. lorsque vous utilisez la méthode latex->pdf, vous pouvez personnaliser votre sortie latex en utilisant un certain nombre d'options dans votre fichier de configuration sphinx. Voir ici. Cette méthode est un peu moins commode que les thèmes HTML que Sphinx utilise pour la génération HTML, bien que (IMO).
  2. en utilisant rst2pdf vous pouvez définir votre propre feuille de style, que le sien a décrit plus en détail dans le manuel (regardez sous la rubrique" Styles"). rst2pdf inclut un nombre de feuilles de style, qui peuvent être combinées pour divers résultats. Et bien sûr, vous pouvez aussi les modifier ou créer vos propres fichiers (ce ne sont que des fichiers JSON). Ces feuilles de style prennent également en charge une sorte d'héritage, donc agissent plus comme les thèmes HTML Sphinx que la méthode précédente.
21
répondu Kevin Horn 2017-01-26 04:31:41

il n'y a pas de thèmes prédéfinis pour la sortie PDF de Sphinx. Mais LaTex offre un riche ensemble d'options pour le style du document. Mon problème était de trouver la bonne façon de styliser le document avec sphinx. Ici le chemin, qui a fonctionné pour moi:

jetez D'abord un coup d'oeil à la conf.py. Vous y trouverez une option latex_elements. Avec cette option, vous pouvez ajouter vos propres commandes LaTex à la sortie. Par exemple:

latex_elements = {
# The paper size ('letterpaper' or 'a4paper').
'papersize': 'a4paper',

# The font size ('10pt', '11pt' or '12pt').
'pointsize': '12pt',

'fontpkg': r"""
\PassOptionsToPackage{bookmarksnumbered}{hyperref}

""",

# Additional stuff for the LaTeX preamble.
'preamble': r"""
\usepackage{setspace}
""",

'footer': r"""
""",

'maketitle': r'''
\pagenumbering{arabic}
''',
}

Il y a quelques points importants à savoir.

  • Utiliser r""" pour éviter les conflits avec python
  • bien que preamble serait le bon point pour ajouter \usepackage vous pouvez avoir des conflits avec les paramètres par défaut de Sphinx. Regardez fontpkg dans l'exemple. Il est le premier à inclure dans le .tex document de sortie. Si vous devez définir des options pour les paquets par défaut, faites-le ici.
  • maketitle laissez-vous définir votre propre page de titre. Voir la documentation de latex. J'ai mis \pagenumbering là pour avoir la table de contenu avec des chiffres arabes, donc le contenu réel commence à la page "1".

Avec la bonne connaissance des commandes Latex, vous pouvez obtenir de bons thématisation avec quelques commandes. Une bonne source pour trouver de l'aide est https://tex.stackexchange.com/ où les problèmes les plus courants ont une solution. Mais trouver les bonnes commandes Latex est beaucoup plus difficile que de choisir un thème comme fait pour HTML.

il pourrait être utile de jeter un coup d'oeil dans la sortie Tex sous ./_build. De là, vous pouvez voir, comment le latex_elements-les options ont été incluses dans le document.

2
répondu Trendfischer 2017-04-13 12:34:29