如何根据 OpenType 功能的 Unicode 标准正确书写任意分数frac
?
我的用例是:我在文本文档(UTF-8)中写入数据,并有自己编写的程序从该文件创建 html 标记。
不同的来源给出了不同的说明。我应该如何写分子和分母?使用普通数字还是上标和下标?分子和分母的分隔应该用分数斜线 (U+2044) 来写,不是吗?
解释性编辑:我主要想知道如何写根据 Unicode 标准纯文本文件。没有额外的标记。使用正确的分数,我可以测试哪种字体在 html 中支持这些。即使我不确定 css 字体设置如何影响这个主题OpenType 字体指南。链接的示例仅使用数字和 Solidus,但启用了特定的 OpenType 功能。
答案1
帖子 如何在 Unicode 中很好地显示分数 15/16? 有涵盖问题许多方面的答案。
在 Unicode 中编写任意粗俗分数的“正确”方法是根本不使用下标和上标数字,而是利用字符 U+2044 FRACTION SLASH 的特殊属性。您只需键入常规 ASCII 数字并用斜线将它们分开,如下所示:15⁄16。然后,渲染引擎将自动选择数字的正确形式,从而产生干净、统一的外观。
我把“正确”一词放在引号中,因为这种方法不能保证在所有系统上都得到支持,而且有些系统确实支持它,但支持方式不正确或不完整。如果您绝对需要确保 100% 的收件人(无论使用什么系统)都能看到或多或少正确的内容,因此我仍然(勉强)建议使用预格式化的下标和上标作为替代。
这用户8022331 的回答 进一步解释一下这个混乱的情况:
这确实是字体问题,但问题在于,在 Unicode 中,
¹
、²
和³
属于拉丁语-1 补充块,而其他上标数字属于上标和下标块,并且会发生一些字体替换。请参见为什么Unicode字符上标数字的显示高度不一样? 有关更多详细信息;它被标记为 iOS,但我在 macOS 上也遇到了同样的问题。
这js2010 的回答 网站链接 Unicode 分数生成器 这可能有助于您构建这样的分数。
然而,无论您做什么,您都会受到用于撰写文本的工具及其局限性的限制。
答案2
你现在有点进退维谷……
按以下顺序 - 实际的unicode;由上标、分数斜线和下标组成的复合词;常规数字和分数斜线;常规数字和普通的“除法”斜线。
¾ ³⁄₄ 3⁄4 3/4
只有真正的 unicode 才能正常工作,因此除非您可以指定每个字符的字距/跟踪,否则由各个部分组成的效果不会很好。
不过,大多数人会发现最后的例子仅由“常规”字符组成是可以接受的。
另一种选择可能是 LaTex,但我对它不是特别熟悉。
上标字体替换的问题可能取决于你正在使用什么浏览器。我在 SE [Mac Safari 和 Chrome 上] 中根本看不到这个问题。
我想知道其他人在这里看到了什么……
“实时”呈现的文本
上标 ¹²³⁴⁵⁶⁷⁸⁹⁰
下标 ₁₂₃₄₅₆₇₈₉₀
Safari屏幕截图
铬合金