2011-12-05 6 views
6

Sto usando sphinx con l'estensione pngmath per documentare il mio codice che ha molte espressioni matematiche. Farlo in un file *.rst funziona perfettamente.Come abilitare la matematica nella sfinge?

a \times b diventa:


works


Tuttavia, se provo la stessa all'interno di un file *.py per esempio in una documentazione del modulo in questo modo:

""" 
a \times b 
""" 

I finire con


does not work


Inoltre alcuna funzionalità amsmath sembra funzionare, neanche.
Cosa devo fare per avere anche le formule matematiche nelle mie documentazioni *.py?

risposta

7

Prova a mettere un minuscolo 'r' prima della docstring - in questo modo:

def multiply(a,b): 
    r""" 
    returns a \times b 
    """ 
    return a*b 

Non ho mai visto una stringa letterale prima per un docstring prima, ma questo non mancherà di tenere il vostro \ t da essere interpretato come carattere <TAB>.

+0

Grande. Questo risolve il problema. C'è un modo per dire alla sfinge di non dare un'occhiata a '' s? – Woltan

+4

La Sfinge non è un tuo problema, è l'interprete stesso di Python. Il leader 'r' è il modo in cui dici all'interprete di non elaborare i backslash come caratteri di escape, ma di lasciarli solo come backslash. Potresti anche raddoppiarli come in 'a \\ times b', ma questo è lo scopo per cui la sintassi r" sldk \ tlskjdf "era destinata. – PaulMcG