MathJax / jsMath替代品?

时间:2010-11-18 12:37:10

标签: mathjax mathml jqmath

我想使用MathJax来显示MathML方程,但它在IE中的表现速度慢得令人无法接受(是的,我读到了使用EmulateIE7,这也是不可接受的,因为它会破坏网站的其他区域)。

我不需要支持用户生成的方程式,并且我的大部分数据都是XML格式,因此对HTML进行XSL转换似乎是最兼容的解决方案。

理想情况下,HTML与MathJax的HTML类似/完全相同。显示图像代替整个等式是一个很差的解决方案,因为要求IE用户安装MathPlayer。

3 个答案:

答案 0 :(得分:10)

jqmath应该快得多,并且不使用任何图像或需要MathPlayer(尽管它在可用时使用MathPlayer)。

要使用jqmath,您需要将XML方程转换为简化的类似TeX的语法,如果您已经没有使用该方法。

请让我(我们)知道这是否解决了您的问题。

答案 1 :(得分:2)

来自khan academy的新数学排版JS库称为 Katex

相比之下它速度相当快,但并不包含非常先进的mathjax。

以下是比较图片:

| Katex | Mathjax | comparison Katex vs MathJax

答案 2 :(得分:0)

很抱歉,答案很晚,但是MathQuill还是一个很好的工具。但是,困难的部分是必须将数学方程式放在 private Point _mStart; private Vector _mStartOffset; private void Grid_MouseDown(object sender, MouseButtonEventArgs e) { var window = Application.Current.MainWindow; var canvas = (Canvas) sender; var tt = canvas.RenderTransform as TranslateTransform ; _mStart = e.GetPosition(window); if (tt != null) _mStartOffset = new Vector(tt.X, tt.Y); canvas.CaptureMouse(); } private void Grid_MouseMove(object sender, MouseEventArgs e) { var canvas = (Canvas)sender; var tt = canvas.RenderTransform as TranslateTransform; if (tt == null) return; var window = Application.Current.MainWindow; if (!canvas.IsMouseCaptured) return; var offset = Point.Subtract(e.GetPosition(window), _mStart); // if (-_mStartOffset.X + canvas.ActualWidth < window?.ActualWidth) tt.X = _mStartOffset.X + offset.X * -1; // if (-_mStartOffset.Y + canvas.ActualHeight < window?.ActualHeight) tt.Y = _mStartOffset.Y + offset.Y; } private void Grid_MouseUp(object sender, MouseButtonEventArgs e) { var canvas = (Canvas)sender; canvas.ReleaseMouseCapture(); } 中,然后再编写大量的JavaScript。
有关更多参考,请参见here。要加载MathQuill,只需添加以下内容:

<span>