Различия в отображении символов Unicode в Chrome и Firefox — MathJax

У меня возникли проблемы с выяснением того, почему Chrome и Firefox отображают некоторые вещи по-разному. Ниже приведены изображения части моего проекта в Firefox (вверху) и Chrome (внизу). MathJax отображает все во время загрузки страницы, и после того, как все было обработано и набрано, оно отображается на странице. . Поэтому я не уверен, что это моя вина по вине MathJax. Впрочем, вот картинки...

FirefoxХром

... если вы заметили, квадрат с черной рамкой в ​​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...

Код для рендеринга одного квадрата, без всех других замысловатых вещей, относительно прост...

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

... и затем я говорю MathJax отобразить это...

MathJax.Hub.Queue(["Typeset", MathJax.Hub, "square"]);

... и MathJax делает свое дело (у меня нет контроля над рендерингом MathJax). Так что я не совсем понимаю, где проблема.

Я знаю, что это очень странный и очень специфический вопрос, но я надеюсь, что у кого-то в сообществе Stack Overflow может быть какая-то идея или он имел дело с MathJax ранее. Надеюсь, мозговой штурм поможет решить эту проблему.


person Hristo    schedule 21.02.2011    source источник


Ответы (3)


Поле, которое вы видите в Chrome, является символом «отсутствующего символа». Шрифты MathJax не включают U+25FB, поэтому Chrome показывает отсутствующий символ. Похоже, что Firefox находит символ в другом шрифте и использует его (или, возможно, у вас есть шрифты STIX на компьютере с Firefox, но не на компьютере с Chrome, и MathJax использует его). Браузеры отличаются своей способностью находить альтернативные шрифты для символов, которых нет в шрифтах MathJax.

В любом случае попробуйте использовать U+25A1 вместо U+25FB и посмотрите, будет ли это лучше для вас.

Давиде

person Davide Cervone    schedule 21.02.2011
comment
Хорошо... использование 25A1 работает. Как вы узнали, что MathJax не включает U+25FB? - person Hristo; 21.02.2011
comment
Написав MathJax, я знаю, какие символы включают его шрифты. :-) - person Davide Cervone; 22.02.2011
comment
Ого... ха-ха... в таком случае я вам поверю :) респект MathJax! - person Hristo; 22.02.2011

MathML изначально появится в Chrome, WebKit уже некоторое время работает над этим: http://www.webkit.org/projects/mathml/index.html

Я думаю, этот вопрос должен быть помечен как ошибка для MathJax. Надеюсь, скоро появится родное решение.

person Mohamed Mansour    schedule 21.02.2011

У меня нет реального ответа, однако различия в рендеринге между браузерами не являются чем-то новым. Я использую Firefox, Chrome, Opera, IE (именно в таком порядке), довольно часто один из браузеров рендерит лучше остальных. В Firefox есть несколько хороших плагинов для отладки, вы можете попробовать их (Firebug???). Предупреждение: вы можете потратить много усилий на это. Если вы занимаетесь устранением неполадок с CSS, ой :).

person Radim Cernej    schedule 21.02.2011
comment
:) Я точно знаю, сколько усилий требуется, чтобы сделать вещи кроссбраузерными. Я регулярно использую Firebug... Я мечтаю о Firebug :D - person Hristo; 21.02.2011