我试图在MathJax中的一段文本上放置一个overarrow。 我正在使用我在代码中声明的自定义字体 - \(\ overrightarrow {\ style {font-family:mysans,TeX,Arial,sans-serif;} {\ text {" + tString +"}}} \)"
对于大多数字母而言,它适用于大写字母W或M,使用像#34; WWW"上架太短了。 对于小写的i,连续使用一对,即" iii"太久了。我的预感是,MathJax使用标准字符宽度大小来计算出overarrow的长度,当角色比这个大小更长或更短时,它会错误地计算出overarrow。有没有办法解决? 谢谢!
答案 0 :(得分:1)
首先,您通常不能将自定义字体与MathJax一起使用。作为the documentation says
由于浏览器不提供API来访问字体指标,因此MathJax必须附带必要的字体数据;此字体数据在开发期间生成,无法即时生成。此外,大多数字体不包括数学布局的相关字符。最后,一些字体(例如Cambria Math)存储Unicode范围之外的重要字形,使得JavaScript无法访问它们。
但是,如果您只想在文本元素中使用自定义字体,那么可以通过以下方法解决此问题:为周围上下文设置样式并为输出jax cf. e.g. here for HTML-CSS设置mtextFontInherit:true
。
不幸的是,这对你现在实际上并没有帮助。 MathJax 2.5中有一个小的回归(见this discussion导致你描述的结果)。这将在2.5.1中修复,同时您可以为HTML-CSS输出设置noReflows:false
。