如何在reStructuredText(reST)中编写乘法符号?

时间:2011-06-16 08:26:52

标签: utf-8 special-characters python-sphinx restructuredtext

我正在编写将使用Sphinx呈现为HTML和PDF的reST文档。我的源文件是UTF-8,并希望我的HTML显示为UTF-8。

编写乘法符号的最佳做法是什么?

即:×,而不是x。

我知道我可以将其作为Unicode字符插入。如果我正在写LaTeX,我会使用\times。在HTML中有×。当我使用Sphinx渲染所有内容时,简单的Unicode是否能够在转换过程中正常运行?即使我渲染到其他更奇特的格式?

我只想仔细检查一下,这不会在某个地方绊倒。

4 个答案:

答案 0 :(得分:3)

事实证明,Sphinx文档包含答案,我只是读得不够:

  

自包含以来最简单的方法   特殊字符,如em破折号或   版权登录reST是直接的   将它们写成Unicode字符,一个   必须指定编码。狮身人面像   假设要编码的源文件   默认为UTF-8;你可以改变这个   使用source_encoding配置值。

http://sphinx.pocoo.org/rest.html#source-encoding

修改 只是为了跟进:虽然乘法符号工作正常,但是LaTeX(以及PDF)渲染中使用的默认字体中缺少许多其他看似标准的unicode符号(小于或等于,大于或等于)。

答案 1 :(得分:2)

我会在第一个:math:`m \times p`

中使用MathML

答案 2 :(得分:2)

要添加@Paul McMillan的答案,如果您尝试将您的sphinx文档作为乳胶pdf发布,您通常可以通过在conf.py序言中包含来解决丢失的unicode符号:

_PREAMBLE = r"""
\usepackage[utf8]{inputenc}
\DeclareUnicodeCharacter{00D7}{\times}
"""

latex_elements = {
    'preamble': _PREAMBLE,
}

其中00D7是unicode编码,而\times是你希望它在乳胶中被替换的。

您可以在fileformat网站上找到角色的unicode编码。

更多信息herehere

答案 3 :(得分:0)

使用|times|.. include:: <isonum.txt>出现了什么问题?

来自http://docutils.sourceforge.net/0.6/docutils/parsers/rst/include/isonum.txt

.. |sup2|   unicode:: U+000B2 .. SUPERSCRIPT TWO
.. |sup3|   unicode:: U+000B3 .. SUPERSCRIPT THREE
.. |times|  unicode:: U+000D7 .. MULTIPLICATION SIGN
.. |trade|  unicode:: U+02122 .. TRADE MARK SIGN
.. |uarr|   unicode:: U+02191 .. UPWARDS ARROW