2

我正在尝试将一些数学内容从旧 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 种不同的渲染技术。

4

2 回答 2

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 脚本是如何工作的,并根据您的设置进行调整。他所做的是在网络服务器服务器上安装一个 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

于 2015-04-02T07:22:25.963 回答
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 扩展程序一起分发,但您可以在 github 上的https://github.com/jmnote/SimpleMathJax/archive/master.zip和将其与其他扩展一起扩展到您的扩展子目录中。

  • 数学渲染很漂亮,因为它使用了 MathJax,而 MathJax (.org) 是“适用于所有现代浏览器的 LaTeX、MathML 和 AsciiMath 表示法的开源 JavaScript 显示引擎”。
  • 大多数标准 AMS LaTeX 代码似乎都可以正常工作(对齐等)。

它被称为“简单”MathJax 可能是因为它没有 MW MathJax 扩展的野心来处理所有 LaTeX 和 TeX 工具,如编号方程和处理 TeX 宏,但它使用 mathjax.org 的原始 javascript CDN,因此是安装和用于简短的数学文本非常简单。- 如果您想处理更长甚至更大的数学文本,您可以尝试使用“pandoc”,它将使用以下命令行将您的完整 LaTeX 文档转换为 mediawiki 源:

$ pandoc -o foo.wiki -f latex -t mediawiki foo.tex
于 2017-01-27T16:00:14.070 回答