Chrome 与 Firefox 渲染 unicode 字符的差异 - MathJax

Hri*_*sto 1 unicode firefox google-chrome mathjax

我无法弄清楚为什么 Chrome 和 Firefox 会以不同的方式呈现某些内容。下面是我的项目的一部分的图像,如在 Firefox(上)和 Chrome(下)中看到的。MathJax在页面加载时呈现所有内容,一旦所有内容都经过处理和排版,就会显示在页面上。所以我不确定这是我的错还是 MathJax 的错。无论如何,这里是图像......

火狐浏览器 铬合金

...如果你注意到的话,带有黑色边框的方块在 Chrome 中是不同的,而且是一种糟糕的方式。关于为什么会发生这种情况有什么想法吗?以下是 Chrome 控制台的输出...

Resource interpreted as font but transferred with MIME type image/svg+xml. /MathJax/fonts/HTML-CSS/TeX/svg/MathJax_Main-Regular.svg#MathJax_Main-Regular:-1
Resource interpreted as font but transferred with MIME type image/svg+xml. /MathJax/fonts/HTML-CSS/TeX/svg/MathJax_Main-Bold.svg#MathJax_Main-Bold:-1
Resource interpreted as font but transferred with MIME type image/svg+xml. /MathJax/fonts/HTML-CSS/TeX/svg/MathJax_Main-Italic.svg#MathJax_Main-Italic:-1
Resource interpreted as font but transferred with MIME type image/svg+xml. /MathJax/fonts/HTML-CSS/TeX/svg/MathJax_Math-Italic.svg#MathJax_Math-Italic:-1
etc...
Run Code Online (Sandbox Code Playgroud)

单独渲染正方形的代码(没有所有其他花哨的东西)相对简单......

<div id="square">
   <math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
     <mo id="tag0" class="expand">&#x25FB;</mo>
   </math>
</div>
Run Code Online (Sandbox Code Playgroud)

...然后我告诉 MathJax 渲染它...

MathJax.Hub.Queue(["Typeset", MathJax.Hub, "square"]);
Run Code Online (Sandbox Code Playgroud)

...MathJax 做了它的事情(我无法控制 MathJax 的渲染)。所以我不太清楚问题出在哪里。

我知道这是一个非常奇怪且非常具体的问题,但我希望 Stack Overflow 社区中的某个人可能有一些想法或以前处理过 MathJax。希望一些头脑风暴能够帮助解决这个问题。

Dav*_*one 5

您在 Chrome 中看到的框是“缺失字符”符号。MathJax 字体不包括 U+25FB,因此 Chrome 显示缺少的符号。看起来 Firefox 正在寻找不同字体的字符并使用它(或者也许您运行 Firefox 的计算机上有 STIX 字体,但运行 Chrome 的计算机上没有,而 MathJax 正在使用该字体)。浏览器在为 MathJax 字体中没有的符号查找替代字体的能力方面有所不同。

无论如何,请尝试使用 U+25A1 而不是 U+25FB,看看这是否更适合您。

达维德

  • 编写了 MathJax 后,我知道它的字体包含哪些字符。:-) (6认同)