首页 > 解决方案 > 如何在 Sphinx 中确保正确的智能报价?

问题描述

我正在尝试使用 Sphinx 从重组文本中生成一些 HTML。如果我的源代码包含直单引号之间的内容,Sphinx 几乎总是会给我对齐的引号,但有一些例外。例如,如果输入是'X'我预期的“X”,但如果是'-',我会看到“-”。

有没有办法让 Sphinx 正确地做到这一点,即 '-' ?

我尝试转义引号和/或连字符但没有成功。

使用 Sphinx 2.2.1、Debian 10。


index.rst的内容

Smart Quotes
============

* 'X'
* '_'
* '-'
* 'K'.

conf.py的内容

# -- Project information -----------------------------------------------------

project = 'Smart Quotes'
copyright = '2019, '
author = 'P'

# The full version, including alpha/beta/rc tags
release = '1'

构建命令:

sphinx-build . _build/html

它会是什么样子:

在此处输入图像描述

请注意,破折号上的第二个引号看起来与其他示例不同。

标签: python-sphinxsmart-quotes

解决方案


我建议在 Sphinx 中提交问题报告。这对我来说似乎是一个错误,尽管它可能是底层docutils 库的实用程序 smartquotes中的一个错误。

也就是说,有一种解决方法。使用下面的 reStructuredText 示例。

Smart Quotes On
===============

* '-'
* ‘-’
* "-"
* “-”

如果您必须启用智能引号,那么您可以使用文字智能引号来获得正确的印刷解释。

智能报价开启

conf.py我更喜欢在我的 with中禁用智能引号,smartquotes = False并在需要时使用文字印刷字符。

在此处输入图像描述

最后,尽管您可以使用 em-dash、en-dash 或其他破折号字符而不是连字符来使未经训练的人在视觉上看起来是正确的,但这会将一个印刷错误替换为另一个。


推荐阅读