2012-03-16 12 views
17

¿El instrumento de documentación Sphinx ofrecen diferentes temas como PDF que ofrece diferentes temas HTML?Sphinx temas PDF

busqué en Google el problema, pero no puede encontrar una respuesta, lo que me lleva a creer que la respuesta es 'no'. Aun así, pensé que podría preguntar aquí.

Gracias.

Respuesta

20

En primer lugar, la Esfinge no genera salida de PDF por sí mismo, aunque hay dos métodos generales para obtener de los archivos de origen de la esfinge a la salida PDF:

  1. utilice el constructor de látex, y luego una herramienta separada como latex2pdf para generar la salida PDF
  2. usar el plugin de la Esfinge rst2pdf project

dicho esto existe un gran potencial para personalizar el estilo de la salida PDF utilizando cualquier método.

  1. Al utilizar el método latex-> pdf, puede personalizar su salida de látex usando una serie de opciones en su archivo de configuración de sphinx. Ver here. Sin embargo, este método es algo menos conveniente que los temas HTML que Sphinx usa para la generación de HTML (IMO).
  2. Al utilizar rst2pdf puede definir su propia hoja de estilo, que a su describe con más detalle en el manual (mirar debajo de los "estilos" la partida). rst2pdf incluye varias hojas de estilo, que se pueden combinar para varios resultados. Y, por supuesto, también puede modificarlos o crear los suyos (son solo archivos JSON). Estas hojas de estilo también admiten un tipo de herencia, así que actúa más como los temas HTML de Sphinx que el método anterior.
2

No hay temas predefinidos para la salida PDF para Sphinx. Pero LaTex ofrece un amplio conjunto de opciones para diseñar el documento. Mi problema era encontrar la forma correcta de diseñar el documento con sphinx. Aquí el camino, lo que funcionó para mí:

primero a tener una mirada hacia el conf.py. Allí encontrará una opción latex_elements. Con esta opción, puede agregar sus propios comandos de LaTex a la salida. Por ejemplo:

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} 
''', 
} 

Hay algunos puntos importantes que debe saber.

  • Uso r""" para evitar conflictos con el pitón
  • Aunque preamble sería el punto derecho de agregar \usepackage puede tener conflictos con la configuración predeterminada Sphinx. Mira fontpkg en el ejemplo. Es el primero incluido en el documento de salida .tex. Si tiene que establecer opciones para paquetes predeterminados, hágalo aquí.
  • maketitle le permiten definir su propia página de título. Vea alguna documentación de látex. Establecí \pagenumbering allí para tener la tabla de contenidos con números arábigos, por lo que el contenido real comienza en la página "1".

Con el conocimiento adecuado de los comandos de látex, puede obtener buenos tematizados con unos pocos comandos. Una buena fuente para buscar ayuda es https://tex.stackexchange.com/, donde los problemas más comunes tienen una solución. Pero encontrar los comandos Latex adecuados es mucho más difícil que elegir un tema como hecho para HTML.

Podría ser útil echar un vistazo en Tex-Output en ./_build. Ahí puede ver cómo se incluyeron las latex_elementsopciones en el documento.