如何在代码环境中强制reStructuredText中不间断的空间?

时间:2016-05-19 14:13:05

标签: python-sphinx restructuredtext

我在reStructuredText文档中有这个片段:

  1. Find the file at ``~/Google Drive/code/mac/install.sh``.

注意代码/报价环境。请注意路径中GoogleDrive之间的空格。

在HTML中使用Sphinx渲染时,GoogleDrive之间有一个换行符,空间消失了。 (由于这是文档,我需要代码环境中的所有内容完全按照输入的方式显示给用户,其中包括“Google”和“Drive”之间的空间。不仅应该有空格,还应该用阴影显示灰色就像代码环境中的所有其他代码一样)

如何告诉reStructuredText在该位置使用不间断的空间?

2 个答案:

答案 0 :(得分:1)

将一些css放在项目顶部库中的文件_static/custom.css

code.docutils.literal {
    white-space : pre;
}

(我不知道CSS中是如何允许在斜杠处说而不是在空格处说的。)

对于 方法,你可以这样做:

1. Find the file in our Google Drive folder It is located at
   ``~/Google`` |_| ``Drive/Quisquam/code/repo/latest/application-bundles/mac/install.sh``.

.. |_| unicode:: 0x00A0
       :trim:

<击>

编辑:比comment中指出的更好的第二种方法是在reST源中使用NO-BREAK SPACE。然后HTML将使用&nbsp;,并且URL仍然会以斜线换行,而不是上面的第一种方法,这使得它真正解开(在我的简短调查中)。

我在其他上下文中使用了第二种方法(也是针对LaTeX输出)来插入Unicode + 202F,而且我已经忘记了对于Unicode + 00A0,只需要在reST源中直接使用它。

答案 1 :(得分:1)

如果常规空格字符被reST文件中的非中断空格(U + 00A0)替换,它对我有用。这将在输出中生成包含<span>的单个Google&nbsp;Drive元素:

<span class="pre">~/Google&nbsp;Drive/code/mac/install.sh</span>

插入文字不间断空格可以通过多种方式完成。请参阅https://en.wikipedia.org/wiki/Non-breaking_space#Keyboard_entry_methods