MathJax 过度箭头太短

MathJax overarrow too short

我正在尝试在 MathJax 中的一段文本上放置一个超箭头。 我正在使用我在代码中声明的自定义字体- \(\overrightarrow{\style{font-family: mysans, TeX, Arial, sans-serif;}{\text{" + tString + "}}}\)"

它适用于大多数字母 - 对于大写字母 W 或 M ,连续使用一对,例如 "WWW" 上划线太短。 对于小写的 i ,连续使用一对,即 "iii" 太长了。我的直觉是 MathJax 使用标准字符宽度大小来计算超箭头的长度,当字符比该尺寸长得多或短得多时,它会错误地计算超箭头。有没有办法解决? 谢谢!

首先,您通常不能在 MathJax 中使用自定义字体。作为the documentation says

Since browsers do not provide APIs to access font metrics, MathJax has to ship with the necessary font data; this font data is generated during development and cannot be generated on the fly. In addition, most fonts do not cover the relevant characters for mathematical layout. Finally, some fonts (e.g. Cambria Math) store important glyphs outside the Unicode range, making them inaccessible to JavaScript.

但是,如果您只想在文本元素中使用自定义字体,那么有一种方法可以解决此问题:设置周围上下文的样式并为输出 jax 设置 mtextFontInherit:truecf. e.g. here for HTML-CSS.

遗憾的是,这目前实际上对您没有帮助。 MathJax 2.5 中有一个小的回归(参见 this discussion 导致您描述的结果)。这将在 2.5.1 中修复,同时您可以为 HTML-CSS 输出设置 noReflows:false