Python sphinx 除了URL之外,到处都是易损坏的斜杠

Python sphinx 除了URL之外,到处都是易损坏的斜杠,python-sphinx,restructuredtext,Python Sphinx,Restructuredtext,我使用PythonSphinx(1.4.6)从重新构造的文本生成pdf(latex) 我使用窄表列标题和文本,如“stuff/misc/other”。我需要斜杠是可拆分的,这样表头就不会溢出到下一列中 乳胶解决方案是在必要时使用\BreakableSlash或\slash。我可以使用python代码替换所有斜杠: from sphinx.util.texescape import tex_replacements # \BreakableSlash needs package hyphenat

我使用PythonSphinx(1.4.6)从重新构造的文本生成pdf(latex)

我使用窄表列标题和文本,如“stuff/misc/other”。我需要斜杠是可拆分的,这样表头就不会溢出到下一列中

乳胶解决方案是在必要时使用
\BreakableSlash
\slash
。我可以使用python代码替换所有斜杠:

from sphinx.util.texescape import tex_replacements

# \BreakableSlash needs package hyphenat to be loaded
tex_replacements.append((u'/', ur'\BreakableSlash ') ) 
# tex_replacements.append((u'/', ur'\slash ') ) 
但这会破坏任何像
http://www.example.com/
转换为类似

http:\unhbox\voidb@x\penalty\@M\hskip\z@skip/\discretionary{-}{}{}\penalty\@M\hskip\z@skip\unhbox\voidb@x\penalty\@M\hskip\z@skip/\discretionary{-}{}{}\penalty\@M\hskip\z@skipwww.example.com

我想使用一个在这两种情况下都有效的通用解决方案,文档编辑器仍然可以使用普通的ReST,并且不必担心latex


你知道如何在URL中使用经典斜杠,在其他任何地方都可以使用易损坏的斜杠吗?

你并没有真正给出数据和源代码,只是要求提供一个想法,所以我冒昧地仅用伪代码勾勒出一个解决方案:

  • 使用
    .Split()
  • 对于每个字符串,通过将其左侧与http://(也可能是ftp://、https://或类似标记)进行比较,检查其是否为URL
  • 进行替换,但仅在没有URL的字符串中进行替换
  • 使用诸如
    的命令重新组合所有字符串(包括空格)。join(我的列表)

    • 一种方法是编写一个转换子类。然后在安装程序(应用程序)中使用,以便在每次读取时使用它


      我可以将其用作我自己的类的模板。

      抱歉,我的模棱两可。我使用python sphinx从rst生成latex文件。这就是为什么我没有发布任何代码,除了我的扩展名。我相应地标记了这个问题,但在文本中没有提到python sphinx。我更新了问题,使之更清楚。
      http:/\penalty\exhyphenpenalty/\penalty\exhyphenpenaltywww.example.com