2010-09-13 23 views

Répondre

10

Si vous voulez faire ceci sans être lié au HTML, essayez d'appliquer un style différent de celui du corps à votre mot.

Dans cet exemple adapté du manuel d'rst2pdf, j'applique le style rubrique existante qui est rouge dans le back-end que j'utilise:

Before red. 

.. role:: rubric 

I like color :rubric:`rubric`. 

After red. 

L'aspect réel du mot dépendra de la façon dont le style choose est défini dans la feuille de style que vous utilisez lors de la génération de votre document. Si vous voulez du texte en bleu, créez un style de texte bleu et dérivez-le du style de texte normal. La feuille de style est spécifique au backend et vous utilisez peut-être la valeur par défaut. Pour imprimer la valeur par défaut pour rst2pdf.py, faire (du manuel de rst2pdf):

rst2pdf --print-stylesheet 

Reprenons l'exemple pour une feuille de style rst2pdf, ajoutez à votre feuille de style pour avoir un style de texte bleu:

bluetext: 
    parent: bodytext 
    textColor: blue 

Dans le document, vous pouvez référencer ce style pour obtenir un mot bleu. Notez que ce bit est générique et devrait produire du texte en bleu si vous définissez un style bleu dans votre feuille de style html ou autre.

Before blue. 

.. role:: bluetext 

I like color :bluetext:`blue`. 

After blue. 

Le pdf généré a les mots colorés: enter image description here

6

Cela fonctionne, mais laisse le code HTML dans un paragraphe distinct.

.. raw:: html 

    <font color="blue">Blue word,</font> 

And a word without color 

Si quelqu'un a une meilleure réponse, je l'accepterai.

8

Sur mon Sphinx alimenté website, j'utilise une combinaison de:

  • Un fichier reStructuredText contenant des définitions de rôles, un pour chaque couleur - voir .special.rst (lien BitBucket)
  • Un fichier CSS contenant des règles de couleur pour chaque rôle - voir les premières lignes de hacks.css (Lien BitBucket)

Ensuite, dans chaque fichier rST où je besoin de couleurs, je première importation .special.rst en haut, soit manuellement:

.. include:: .special.rst 

Ou avec la variable de configuration rst_epilog dans le fichier conf.py Sphinx:

rst_epilog = "\n.. include:: .special.rst\n" 

Et chaque rôle peut être utilisé facilement dans la pure syntaxe RST:

This is :red:`red !` And :blue:`this part is blue`. 

Plus de détails sont donnés sur this page (en français, désolé).

Cela fonctionne parfaitement bien pour la sortie html (et html-like), mais pas pour le format PDF. Reportez-vous au first answer above pour produire un PDF avec des couleurs.

+0

J'aime cette solution! – umbe1987

+0

Merci pour cette solution. Cela fonctionne mais savez-vous comment résoudre 'WARNING: Problems with" include "chemin de la directive:'? Je ne sais pas comment spécifier '.special.rst' pour être dans le répertoire racine du projet dans' conf.py'. J'ai essayé '/' et '~ /' mais ne fonctionne pas. – YOUNG

+0

Je ne sais pas, dans mon cas, le fichier 'conf.py' et tous les fichiers' rst' sont dans le même dossier, il n'y a donc pas besoin de spécifier quoi que ce soit. –