我正在编写reST文档,这些文档将使用Sphinx呈现为HTML和PDF。我的源文件是UTF-8,并且希望我的HTML显示为UTF-8。
编写乘法符号的最佳实践是什么?
即:×,而不是x。
我知道我可以将其作为Unicode字符插入。如果我正在编写LaTeX,我会使用\times
。在HTML中有×
。当我使用Sphinx渲染所有内容时,简单的Unicode是否可以在转换过程中正常生存?即使我渲染为其他更奇特的格式?
我只想仔细检查一下这不会使事情绊倒。
[添加到@Paul McMillan的答案中,如果您试图将sphinx文档发布为乳胶pdf,则通常可以通过在conf.py
序言中加入来避免丢失的unicode符号:
_PREAMBLE = r"""
\usepackage[utf8]{inputenc}
\DeclareUnicodeCharacter{00D7}{\times}
"""
latex_elements = {
'preamble': _PREAMBLE,
}
00D7
是unicode编码,而\times
是您希望在乳胶中替换的内容。
您可以在fileformat网站上找到字符的unicode编码。
事实证明,Sphinx文档包含了答案,我只是读得不够多:
因为最简单的方法特殊字符,例如破折号或REST中的版权标志是直接将它们写为Unicode字符,必须指定编码。狮身人面像假设要在其中编码源文件默认为UTF-8;你可以改变这个使用source_encoding配置值。
https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html#source-encoding
编辑:只是在这里进行跟进:虽然乘法符号工作得很好,但是LaTeX(因此也就是PDF)渲染中使用的默认字体缺少许多其他看似标准的unicode符号(小于或等于,大于或等于)。
我将在第一个:math:`m \times p`
中使用MathML
使用|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