像 mathjax 和 katex 这样的库可以在网络上呈现复杂的公式,无需任何插件。有没有关于如何完成的信息?
从我对现有字体的有限理解来看,字体形状基本上是固定的。例如,我可以增加或减少字母“A”的大小,使其成为斜体或粗体,但没有任意改变其形状的机制(对于给定的字体)。
另一方面,像 mathjax/katex 这样的库似乎做了标准字体不可能做的事情。例如,取平方根号。可以有一个被平方根号包围的函数,也可以在它下面有一个任意长而复杂的表达式。平方根符号会相应调整。这怎么可能?
一种可能性是这些数学“字体”不是典型意义上的字体。就 html 而言,它们只是 svg 线条和曲线。然而,情况似乎并非如此,因为我可以选择一个表达式的(部分),就像我可能在一个句子中选择几个单词一样。
我问这个是因为某些人类语言,如阿拉伯语/波斯语/乌尔都语在大多数网页上的渲染效果不是很好,原因似乎是因为单个字符(或字符的一部分)根据字符的进行或跟随而变化. 换句话说,这些语言需要一种上下文敏感的算法,而大多数文本渲染引擎似乎并非如此。
很想知道数学公式是如何呈现的,这样我就可以弄清楚如何使用该技术来呈现乌尔都语(特别是 nastaleeq)