2012-03-15 15 views

Respuesta

3

Aha, he encontrado una solución que funciona con la extensión pngmath Sphinx . Es el truco que usa Sage (software de matemática de código abierto); inspiración desde http://www.sagemath.org/doc/reference/sage/misc/latex_macros.html.

Para añadir sus propias macros de látex a un documento Sphinx:

1) Hacer un archivo, por ejemplo 'latex_macros.sty', que contiene las macros (uno por línea), y ponerlo en, por ejemplo, la misma directorio como su archivo Sphinx conf.py;

2) Agregue el código siguiente a su archivo conf.py Sphinx:

# Additional stuff for the LaTeX preamble. 
latex_elements['preamble'] = '\usepackage{amsmath}\n\usepackage{amssymb}\n' 

##################################################### 
# add LaTeX macros 

f = file('latex_macros.sty') 

try: 
    pngmath_latex_preamble # check whether this is already defined 
except NameError: 
    pngmath_latex_preamble = "" 

for macro in f: 
    # used when building latex and pdf versions 
    latex_elements['preamble'] += macro + '\n' 
    # used when building html version 
    pngmath_latex_preamble += macro + '\n' 

##################################################### 
1

Si está utilizando la extensión pngmath, se puede poner que en el preámbulo insertando esto en el guión conf.py:

pngmath_latex_preamble = r"\newcommand{\cG}{\mathcal{G}}" 
5

Si está utilizando mathjax, he aquí una solución posible. Todavía estoy buscando una solución más agradable, pero podría ser útil si necesitas un truco rápido.

  1. Crear un archivo en el directorio especificado en la opción de configuración html_static_path (típicamente _static), por ejemplo mathconf.js. Esto contendrá la configuración de JS para MathJax. Por ejemplo (de la MathJax documentation):

    MathJax.Hub.Config({ 
        TeX: { 
        Macros: { 
         RR: '{\\bf R}', 
         bold: ['{\\bf #1}', 1] 
        } 
        } 
    }); 
    

    se puede añadir más comandos siguientes de la sintaxis anterior. Los contenidos mostrados definen las macros \RR y \bold{#1}, aceptando este último un argumento.

  2. Agregue un archivo layout.html en el directorio _templates. La idea es ampliar el tema actual, por lo que busca en el archivo de configuración MathJax anterior. Por lo tanto, los contenidos son:

    {% extends "!layout.html" %} 
    {% set script_files = script_files + ["_static/mathconf.js"] %} 
    

    Tenga en cuenta que en este caso es _static el directorio, ya que en este caso se refiere a dónde buscar después de la construcción. Sphinx habrá movido el archivo desde html_static_path al directorio _static en el directorio de compilación.

+0

no funcionó para mí (Sphinx = 1.3.1), probablemente porque no puedo establecer el tipo de secuencia de comandos correctamente a '' (ver http://docs.mathjax.org/en/latest/configuration.html#using-in-line-configuration-options). – user511

Cuestiones relacionadas