Ich endete mit einem Workaround für Sphinx. Ich überschreibe die HTML- und LaTeX-Writer, um das Zeichen ~
in ein nicht-brechendes Leerzeichen zu konvertieren. Hier ist der HTML ein:
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
und der Latex ein:
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
Es ist nicht so schön, und es ist nicht einmal lassen Sie entkommen den ~
Charakter, aber es funktioniert für meine Zwecke.
ein nicht sichtbares Zeichen ist nicht sinnvoll – jterrace
Dann können Sie entweder Ihren Editor konfigurieren, um es sichtbar zu machen oder verwenden Sie eine zusätzliche Vorverarbeitung in Ihre Eingabedateien ... –