我正在尝试将一些数学内容从old wiki转移到我的新MediaWiki。
旧页面使用MathJax,如下所示:
Here is the k-degree Taylor series for [[$ f(x) $]]
expanding around [[$ x=0 $]]
[[$ T_k(x) = f(0) + x\cdot f'(0) + \frac{x^2}{2!} f''(0) + \dots
+ \frac{x^k}{k!} f^k(0) $]]
这是我到目前为止所发现的:
http://www.mediawiki.org/wiki/Extension:MathJax - 似乎已停止。
http://www.mediawiki.org/wiki/Extension:SimpleMathJax - 我试过这个并且它可以在OSX Chrome上运行但在OSX FireFox上出现渲染错误(https://github.com/jmnote/SimpleMathJax/issues/1)
http://www.mediawiki.org/wiki/Extension:Math - 这似乎是积极开发正在发生的地方,但我还没有设法让它发挥作用。这也是一个巨大的麻烦。
我错过了什么吗?
在MediaWiki中启用数学内容的正确方法是什么?
从我所看到的,它看起来像:“在服务器上渲染并提供PNG更快,使用MathJax在客户端渲染更简单/更清洁”
SimpleMathJax是绝对最小的安装。如果它只适用于Firefox!
数学扩展看起来很辛苦,看起来有点过分 - 它似乎支持至少4种不同的渲染技术。
答案 0 :(得分:2)
你确实希望https://www.mediawiki.org/wiki/Extension:Math这是标准的做事方式。
数学渲染在维基百科上已经存在很长时间了。原始系统使用的PNG图像可以追溯到2005年左右。它是当时最好的,但它真的很难看,字体大小不匹配,基线都是错误的,没有抗锯齿。优点是它稳定并适用于所有浏览器。
从那时起,人们一直试图改进数学渲染。第一次尝试是Blahtex,它产生了MathML,但从未引起开发人员的注意。
然后MathJax出现了。第一个实现是用户脚本 https://en.wikipedia.org/wiki/User:Nageh/mathJax这很好用,但需要用户手动将其添加到他们的javascript皮肤文件中。
几年前,MathJax已经进入了主要的Math扩展,具有用户首选项(默认情况下已关闭)。
MathJax是目前最好的渲染,但有两个主要问题,浏览器支持,它必须适用于所有可能的浏览器,包括手机和古代系统上更有限的浏览器。另一个是速度,因为它是由javascript渲染,格式化方程需要时间,对于更复杂的公式丰富页面,这可能需要一分钟。
MathML是另一种可能的选择,但是Firefox是唯一得到一半支持的浏览器。
这导致了制作通用系统的问题。当前的开发是一个允许客户端MathJax / MathML渲染的系统,用于那些想要最佳渲染,旧的PNG渲染作为后备,以及一个使用MathJax在服务器端渲染SVG的新系统。
关于实际做什么。我认为最简单的是完全忽略扩展,只在全局javascript文件上使用MathJax。见https://en.wikipedia.org/wiki/Wikipedia:Common.js_and_common.css。这将是一个非常标准的MathJax配置。
让我们看看User:Nageh / mathJax脚本是如何工作的,并根据您的设置进行调整。他所做的是在webserver服务器上安装mathjax的副本,在他的情况下,它全部安装在他的用户空间中 https://en.wikipedia.org/w/index.php?title=Special%3APrefixIndex&prefix=Nageh%2FmathJax&namespace=2 如果您可以访问服务器,则可以在更合理的位置安装代码。为了争论而说为MediaWiki / includes / MathJax。然后在common.js中只有一行
importScript("/MediaWiki/includes/MathJax/MathJax.js");
或可能更好
mw.loader.load("/MediaWiki/includes/MathJax/MathJax.js");
甚至更好
mw.loader.using("/MediaWiki/includes/MathJax/MathJax.js").done( function() {
MathJax.Hub.Config( ... );
} );
之后只需要您需要的MathJax集线器设置。有关详细信息,请参阅https://www.mediawiki.org/wiki/ResourceLoader。
答案 1 :(得分:2)
一年之后,MediaWiki网站如何处理数学的情况变得更加混乱。如果我们都同意png图像中显示的texvc和数学公式是丑陋和过时的,那么似乎Mathoid,https://www.mediawiki.org/wiki/Extension:Math,"是最推荐的选项; Mathoid是将来在维基百科上使用的渲染模式。“。
但是Mathoid需要一个像Parsoid这样的外部服务器,它们(Mathoid和Parsoid)都处于重大发展阶段。因此,我寻找其他解决方案,并成功找到并测试了SimpleMathJax' (https://www.mediawiki.org/wiki/Extension:SimpleMathJax)。它可以设置如下
wfLoadExtension( 'SimpleMathJax' );
// MediaWiki 1.24 or earlier
// require_once "$IP/extensions/SimpleMathJax/SimpleMathJax.php";
适用于任何最新版本的MediaWiki(最新测试版本为2016年12月底的mw1.28)。
然而,扩展本身的代码不是与WikiMedia基金(支持mathoid)的众多MediaWiki扩展一起分发的,但您可以在https://github.com/jmnote/SimpleMathJax/archive/master.zip的github上获取它,并将其扩展到您的扩展子目录中,并带有其他扩展名
它被称为"简单" MathJax可能是因为它没有MW MathJax扩展的野心来处理所有LaTeX和TeX设施,如编号方程和处理TeX宏,但它使用了mathjax.org的原始javascript CDN,因此安装非常简单并用于简短的数学文本。 - 如果你想处理更长甚至更大的数学文本,你可以试试“pandoc'这将使用以下命令行将您的完整LaTeX文档转换为mediawiki源:
$ pandoc -o foo.wiki -f latex -t mediawiki foo.tex