如何在reStructuredText中創建一個不間斷的空間?如何在reStructuredText中創建一個不間斷的空間?
一個明顯但問題的解決方案是:
`word A`
但它也可能通過不同的不同的實現,如rst2latex或rst2pdf處理。另外它以斜體顯示。
如何在reStructuredText中創建一個不間斷的空間?如何在reStructuredText中創建一個不間斷的空間?
一個明顯但問題的解決方案是:
`word A`
但它也可能通過不同的不同的實現,如rst2latex或rst2pdf處理。另外它以斜體顯示。
我在這裏沒有看到問題,正在運行docutils v0.9。 至少rst2latex和rst2html對於非中斷空白行爲正確。 Latex生成〜和html生成& nbsp;當您輸入一個不分號字符(\ xa0,\ 0240)時。
也許你有一個編輯器的問題?如果您可以設法輸入角色,docutils將會完成這項工作。
您需要的統一指令,但它只能在替換使用。所以,你需要像這樣定義一個替代:
.. |nbsp| unicode:: 0xA0
:trim:
,然後用它是這樣的:
xx |nbsp| xx
:trim:
有沒有擺脫圍繞替代那些空間。
我最終爲獅身人面像提出了一個解決方法。我覆蓋了HTML和LaTeX編寫器,將~
字符轉換爲非破壞空間。這裏的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
和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
這不是那麼漂亮,而且它不會甚至讓你逃脫~
字符,但它適合我的目的。
也可以代替|nbsp|
這是不太有礙觀瞻使用|_|
,給出的是可讀的純文本新結構化的目標。
我爲你+1,但你應該寫對ynka回答的評論... – Davide 2013-12-31 16:17:19
@Davide最終被'show n more comments'標籤隱藏 – 2015-05-11 11:50:07
一個不可見的字符沒有用 – jterrace 2012-08-29 01:12:30
然後,您可以配置您的編輯器使其可見或在輸入文件中使用額外的預處理傳遞... – 2012-08-29 01:31:33