tutorial rst cheatsheet restructuredtext

restructuredtext - cheatsheet - rst file



¿Cómo puedo hacer un espacio sin ruptura en reStructuredText? (5)

Necesita la directiva Unicode, pero solo puede usarse en sustituciones. Entonces necesitas definir una sustitución como esta:

.. |nbsp| unicode:: 0xA0 :trim:

y luego usarlo así:

xx |nbsp| xx

:trim: está ahí para deshacerse de esos espacios alrededor de la sustitución.

¿Cómo puedo hacer un espacio sin ruptura en reStructuredText?

Una solución obvia pero problemática es:

`word A`

Pero podría ser tratado de manera diferente por diferentes implementaciones, como rst2latex o rst2pdf. Además se traduce en cursiva.



No veo el problema aquí, ejecutando docutils v0.9. Al menos rst2latex y rst2html se comportan correctamente con respecto a los espacios en blanco sin interrupciones. Latex genera ~ y html genera & nbsp; cuando ingresa un carácter que no se rompe (/ xa0, / 0240).

Tal vez usted tiene un problema de editor? Si puede ingresar el carácter, docutils hará el trabajo.


También puedes usar |_| en lugar de |nbsp| que es menos intrusivo visualmente, dado el objetivo de reStructuredText de ser legible como texto sin formato.


Terminé con una solución para Sphinx. Sobrescribo los escritores HTML y LaTeX para convertir el carácter ~ en un espacio que no se rompa. Aquí está el HTML:

import sphinx.writers.html BaseTranslator = sphinx.writers.html.SmartyPantsHTMLTranslator class CustomHTMLTranslator(BaseTranslator): def bulk_text_processor(self, text): if ''~'' in text: text = text.replace(''~'', '' '') return text sphinx.writers.html.SmartyPantsHTMLTranslator = CustomHTMLTranslator

y el de LaTeX:

import sphinx.writers.latex BaseTranslator = sphinx.writers.latex.LaTeXTranslator class DocTranslator(BaseTranslator): def visit_Text(self, node): if self.verbatim is not None: self.verbatim += node.astext() else: text = self.encode(node.astext()) if ''//textasciitilde{}'' in text: text = text.replace(''//textasciitilde{}'', ''~'') if not self.no_contractions: text = educate_quotes_latex(text) self.body.append(text) sphinx.writers.latex.LaTeXTranslator = DocTranslator

No es tan bonito, y ni siquiera te deja escapar del carácter ~ , pero funciona para mis propósitos.