8
votes

La fabrication de SPHINX produisent des blocs de code non typrogrifié dans la sortie PDF

Les blocs de code ont l'air laidly (cochez les devis) dans la sortie PDF:

Entrez la description de l'image ici < / p>

J'utilise la version 1.1.3 de Sphinx et utilise la commande suivante pour produire le doc: xxx

aussi, copier l'extrait du PDF détruit le PDF détruit le Indentifiant lors du colle: xxx

Je m'attendrais à ce que ceci: xxx

Ce serait même plus agréable: < Pré> xxx


1 commentaires

Notez qu'avec plus récent Sphinx (j'ai testé avec 1.3.5), il n'ya rien de spécial à faire pour éviter les transformations de citations lorsque les devis sont en blocs de code.


3 Réponses :


3
votes

Sphinx est vraiment un excellent outil, mais j'ai aussi quelques problèmes avec la sortie PDF par défaut de la cible LatexPDF.

Spécifiquement:

  • Les guillemets simples dans les blocs de code sont convertis en guillemets de style aigu, ce qui ne ressemble pas à un code source.
  • Les blocs de code ne sont pas indentés du texte principal. Pour moi cela les rend moins lisibles.
  • Je préfère les autres polices et pycments, mais c'est juste un choix personnel et peut être configuré.

    Une partie de celle-ci peut être corrigée dans la section pré-ambble au latex de la SPHINX CONF.PY, mais les citations sont modifiées par Sphinx sur des entités de latex personnalisées afin que Upquote Le paquet de latex ne peut pas être utilisé pour les corriger.

    Après un bon bit d'expérimentation avec différentes options de configuration, j'ai fini par écrire un petit script pour modifier la source de latex avant de construire le PDF. Le script est ici et la sortie que je voulais Générer est ici . (Pour une comparaison ici est la sortie par défaut du même document.) < / p>

    Si quelqu'un a une solution plus propre, par exemple, une solution qui pourrait être faite complètement via Sphinx Conf.py afin que les modifications soient ramassées par Readthedocs puis je serais intéressé.

    En outre, le problème avec la perte d'indentation lors de la copie et du collage du PDF n'est probablement pas un problème Sphinx / Latex.


0 commentaires

2
votes

Ce n'est qu'une réponse partielle qui peut mener à une solution ultime. Pour désactiver les citations de typographe (également appelées citations bouclées ou intelligentes) pour la sortie HTML dans Sphinx, modifiez le paramètre par défaut dans Conf.py pour href="https://github.com/Pylons/pyramid/commit/ffdc8cbde4fa77d55f159c4c085e0b51f8029674#diff-85987f48f1258d9ee486e3191495582d" rel="nofollow"> de True à Faux .

Je suppose que l'on pourrait trouver la fonction dans Sphinx qui transforme des citations et utilise la même logique à partir de la sortie HTML et l'applique pour la sortie PDF.


3 commentaires

Cette option ne fonctionne plus maintenant (SPHINX 1.6.2? Et 1.7.DEV20170612).


@johndodo pour sphinx ≥1,6, voir Github.com/rtfd/readthedocs.org/issues/ 2940


Nice - et minutage intéressant (il y a 5 jours). Malheureusement, je n'ai pas trouvé votre page car cela me sauverait un peu de temps, je suis allé à travers des docutils docs. Mais la réparation des docs est une bonne idée.



1
votes

L'option proposée par Steve Piercy Now ne fonctionne plus (depuis Sphinx 1.6):

[general]
smart_quotes: no


2 commentaires

Il suffit de souligner que cette information (valide) ne doit pas être nécessaire pour les blocs de code. J'ai testé juste pour la confirmation avec Sphinx 1.3.5 et avec le courant 1.6.2 que les citations droites des blocs de code ne sont pas modifiées.


Vrai. Ce que j'ai pensé d'abord, la faute de Sphinx me faisait réellement copier le bloc d'ailleurs, il a déjà été corrompu. Mais ma frustration avec Sphinx était que cela m'a fallu beaucoup de temps pour comprendre comment appliquer ce réglage - j'espère donc que cette réponse aide quelqu'un à l'avenir.