2017-10-03 3 views
0

J'écris ma docstring suivant les directives numpy docstring. Ensuite, j'utilise autodoc de sphinx pour générer ma documentation. Dans certains docstrings j'utilise des formules LaTeX (sphinx.ext.mathjax). Il semble que \r signifie quelque chose de spécial comme une nouvelle ligne. Si j'ai la commande suivante:Est-ce que ça veut dire quelque chose dans le sphinx?

""" 
This :math:`\langle a, b\rangle` denotes the dot product of a and b 
""" 

il ne rend pas correctement. Il met comme angle à une nouvelle ligne et me donne une erreur: Inline texte interprété ou référence de phrase start-string sans fin-chaîne Si je remplace le \ rangle avec \ langle tout fonctionne bien. Comment puis-je réparer cela?

+1

\ r est l'espace SphinxQL juridique maintenant http://sphinxsearch.com/bugs/view.php?id=332 – planet260

+0

Pas seulement dans Sphinx - '\ r' est le caractère de retour chariot dans beaucoup d'endroits. – jonrsharpe

+0

@ planet260 thx pour le commentaire. Mais comment puis-je faire alors ce travail :) – math

Répondre

1

La solution est d'échapper à une double barre oblique ou placer un « r » (sans les guillemets) depuis des triples guillemets, cela désactive l'interprétation des barres obliques à l'intérieur des citations:

r""" 
This :math:`\langle a, b\rangle` denotes the dot product of a and b 
""" 

Il sont plusieurs préfixes qui influencent la définition des littéraux de chaîne, voir le documentation of Python.

extraits pertinents:

The backslash() character is used to escape characters that otherwise have a special meaning, such as newline, backslash itself, or the quote character.

et

Both string and bytes literals may optionally be prefixed with a letter 'r' or 'R'; such strings are called raw strings and treat backslashes as literal characters. As a result, in string literals, '\U' and '\u' escapes in raw strings are not treated specially.