2010-09-13 21 views

Respuesta

10

Si desea hacer esto sin estar vinculado a html, intente aplicar a su palabra un estilo diferente del texto normal del cuerpo.

En este ejemplo adaptado del manual de rst2pdf, aplico el estilo rúbrica existente, que es de color rojo en el backend que estoy usando:

Before red. 

.. role:: rubric 

I like color :rubric:`rubric`. 

After red. 

El aspecto real de la palabra dependerá de cómo el estilo que choose se define en la hoja de estilo que usa al generar su documento. Si desea texto azul, cree un estilo de texto azul y proceda del estilo de texto normal. La hoja del estilo es específica del back-end y es posible que esté utilizando la predeterminada. Para imprimir el valor predeterminado para rst2pdf.py, hacer esto (en el manual de rst2pdf):

rst2pdf --print-stylesheet 

Continuando con el ejemplo de una hoja de estilo rst2pdf, añadir esto a su hoja de estilo para tener un estilo de texto azul:

bluetext: 
    parent: bodytext 
    textColor: blue 

En el documento puede hacer referencia a este estilo para obtener una palabra azul. Tenga en cuenta que este bit es genérico y debe incluir texto azul si define un estilo azul en su html o en la hoja de estilo del programa de respaldo.

Before blue. 

.. role:: bluetext 

I like color :bluetext:`blue`. 

After blue. 

El pdf generado tiene las palabras de colores: enter image description here

6

Esto funciona, pero deja el HTML en un párrafo separado.

.. raw:: html 

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

And a word without color 

Si alguien tiene una respuesta mejor, la aceptaré.

8

En mi Sphinx-powered website, utilizo una combinación de:

  • Un archivo reStructuredText que contiene definiciones de funciones, una para cada color - Consulte .special.rst (enlace BitBucket)
  • Un archivo CSS que contiene reglas de color para cada función - vea las primeras líneas de hacks.css (Enlace BitBucket)

Luego, en cada archivo rST donde necesito colores, que la primera importación .special.rst en la parte superior, ya sea de forma manual:

.. include:: .special.rst 

O con la variable de configuración rst_epilog en el expediente del Sphinx conf.py:

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

Y entonces cada función se puede utilizar fácilmente en la sintaxis rST pura:

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

Más detalles se dan en this page (en francés, lo siento).

Funciona perfectamente bien para la salida html (y similar a html), pero no para PDF. Consulte first answer above para producir un PDF con colores.

+0

¡Me gusta esta solución! – umbe1987

+0

Gracias por esta solución. Funciona, pero ¿sabes cómo resolver 'ADVERTENCIA: Problemas con" incluir "la ruta directiva:'? No sé cómo especificar que '.special.rst' esté en el directorio raíz del proyecto en' conf.py'. Intenté '/' y '~ /' pero ninguno funciona. – YOUNG

+0

No sé, en mi caso, el archivo 'conf.py' y todos los' primeros' están en la misma carpeta, por lo que no es necesario especificar nada. –

Cuestiones relacionadas