Extension:Math/zh
数学(Math)扩展提供呈現数学公式的支持。
更多有关安装和配置此扩展(包括旧版本)的信息,可在: 中查阅。
請參閱擴充功能:數學/語法中目前可使用此擴充功能的概述。
安裝
- 下载,并将解压后的
Math
移动到extensions/
目录中。
开发者和代码贡献人员应从Git安装扩展,输入:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Math - 将下列放置在您的LocalSettings.php 的底部:
wfLoadExtension( 'Math' );
- 如果您使用的是MediaWiki 1.42之前的版本,請執行update.php 腳本來建立必要的資料庫表。 如果您是在MediaWiki 1.42+中安裝Math,則不再需要這麼做。
- 要查看純文本輸出之外的數學輸出模式,請按照以下說明啟用各種數學輸出模式。
- 如果您在尝试使用RESTBase时遇到表示公式的问题,您可以尝试使用以下修复
完成 – 在您的wiki上至Special:Version,以验证已成功安装。
- 如果使用Vagrant ,请
vagrant roles enable math --provision
安装
您还应该转到页面Special:MathStatus以查看Math扩展的所有组件现在是否正常工作。 对于你遇到的任何问题,最好的办法是在https://phabricator.wikimedia.org创建一个任务。
可惜还没有经过良好测试的关于安装Mathoid 和RESTBase 以使用Math扩展的指南,但至少有个进展中的草稿。 Extension:Math/RESTBase 请贡献。
此外,GitHub上有个通过RESTBase和MW 1.28的Mathoid安装并设置MediaWiki的教程。
用法
一旦安裝之後,您可以在<math>
標籤內使用TeX 標記語法寫公式。例如:
<math>E=mc^2</math>
會生成:
查看数学公式
輸出類型取決於您用來閱讀頁面的軟體。 如果可的以話,数学扩展会依次尝试输出MathML,否則它就輸出SVG图片(将字符转换成<path> elements)或PNG图片(最低优先级)。 基本數學功能支持適用於所有瀏覽器。但是,為獲得最佳結果,你可能需要變更你的設定值:
- 對於Firefox或其他Gecko瀏覽器,請安裝原生的MathML擴展功能和數學字體。
NVDA、VoiceOver或Orca的螢幕朗读器提供无障碍的支持。 NVDA需要MathPlayer外掛程式来读出數學公式。 - 对于Safari或者其他WebKit浏览器,你也可以安装数学字体并通过在浏览器的自定义样式表插入一些CSS规则來启用本機的MathML呈現。
屏幕朗读器VoiceOver提供无障碍支持,屏幕朗读器Orca尚未做到。 - 對Chrome而言,您必須在瀏覽器的自訂樣式表中 插入一些CSS規則,才能使用ChromeVox螢幕閱讀器獲得無障礙支援,或使用MathJax外掛程式進行視覺化渲染。
配置设置
设置名 | 描述 | |
---|---|---|
$wgMathValidModes | [ 'source', 'mathml' ] |
定义该服务器上可用的模式 |
$wgMathDisableTexFilter | 'never' |
將tex過濾器停用的選項。如果設定為true,任何LaTeX表達式都會被解析,這可能是潛在的安全風險。如果設為false,則只允許使用TeX命令的子集。詳情請參閱維基百科的說明:數學公式頁面。 使用「always」去停用此功能。 |
$wgMathFullRestbaseURL | false | 如果有的話,數學扩展會從Visual Editor取得預設設定。 详情. |
$wgMathPreferRestbaseURL | true | 是否允許使用內部的RESTBase路徑,而不是$wgMathFullRestbaseURL和$wgVisualEditorFullRestbaseURL。 如果您想在任何情況下使用外部的RESTBase,請設定false 為false。 |
数学输出模式
$wgMathValidModes设置保持著一個数组,其包含可以用于渲染的输出模式的名称。 如果多个模式启用,已登录的用户可以在用户参数设置页面的appearance面板中设置个人偏好。
你也可以使用$wgDefaultUserOptions设置来设置哪个模式是默认的,比如:
$wgDefaultUserOptions['math'] = 'mathml';
Mathoid
模式: 'mathml'
您可以使用Mathoid,这是一个在服务器端使用MathJax将texvc输入转换为MathML+SVG渲染的应用。 Mathoid目前是維基百科上使用的數學渲染模式。
服务器上的Mathoid
“Mathoid as a service”是Math扩展的推荐方法,也是默认方法。如果您不向LocalSettings.php添加任何其他设置,Math将使用Beta cluster的Mathoid和RESTBase 服务来渲染所有数学公式。默认设置为:
// 将MathML设为默认渲染选项
$wgDefaultUserOptions['math'] = 'mathml';
$wgMathUseInternalRestbasePath = false;
$wgMathFullRestbaseURL = 'https://wikimedia.org/api/rest_';
$wgMathMathMLUrl = 'https://mathoid-beta.wmflabs.org';
您可以修改这些设置去使用不同的Mathoid和RESTBase服务,可能包括您自己的。
Mathoid的命令行接口
您还可以在本地服务器上将Mathoid作为命令行实用程序运行。 要使用此方法,建议使用以下设置:
// 将MathML设为默认渲染选项
$wgDefaultUserOptions['math'] = 'mathml';
// 请提前创建一个config.yaml。模板位于Mathoid存储库中。
$wgMathoidCli = ['/path/to/mathoid/cli.js', '-c', '/path/to/mathoid/config.yaml'];
// 因为Mathoid,将MediaWiki的内存限制提高到1.2G。
$wgMaxShellMemory = 1228800;
Mathoid cli '/path/to/mathoid/cli.js' is not executable
,您可以執行以下步驟來確定Apache伺服器允許更改系統限制:
setsebool -P httpd_execmem 1 setsebool -P httpd_setrlimit 1
LaTeX
MediaWiki版本: | ≤ 1.39 |
模式: 'png'
自MediaWiki 1.32起,此模式也需要Mathoid伺服器才能運作。 在舊版本中,它需要安裝texvc和texvccheck,這可能需要最多的設定工作。
LaTeXML
模式: 'latexml'
使用LaTeXML工具。 渲染是透過線上服務完成的(以$wgLaTeXMLUrl設定,預設值為https://latexml.formulasearchengine.com/convert)。
原生的MathML
MediaWiki版本: | ≥ 1.40 |
模式: 'native'
此模式將透過PHP從LaTeX產生MathML,而「無需」Mathoid。 請注意此模式沒有影像回退功能,因此只有在瀏覽器支援MathML的情況下,公式才能正確顯示。 Firefox和Safari很早就引入了MathML支援 (2006 和 2008),但Chromium-based的瀏覽器對MathML的支援則是最近才加入的 (Chrome 109是在2023年發行的)。
MathJax
MediaWiki版本: | ≥ 1.42 |
模式: 'mathjax'
此模式與 Native MathML 模式 (透過 PHP 從 LaTeX 產生 MathML) 運作相同,但會使用 MathJax 3 來呈現 MathML。 因此,它將適用於不支援MathML的瀏覽器,但會在頁面檢視時載入MathJax函式庫(捆綁在Math的擴充功能中)。
不渲染
模式: 'source'
此模式將轉送Latex的輸入而不進行渲染,並將其顯示在由$ :formula $所包圍的<span>
元素中。
如果您只想要原始的latex公式,請務必設定$wgMathDisableTexFilter為'always'(請參閱下文),否則會因為PNG敘述的檢查失敗而出現錯誤。
扩展会创建一系列跟踪分类 ,以检测错误和不被推荐的特性。
他們的訊息鍵以math-
開頭。
管理員可以透過編輯該 wiki 的 MediaWiki 命名空間中的訊息值,來變更該 wiki 中追蹤類別的名稱。
Special:TrackingCategories shows each tracking category's name, message key, and description.
MediaWiki页面 | 描述 | |
---|---|---|
MediaWiki:Math-tracking-category-error | Category:Pages with math errors | 含有导致渲染失败的公式语法错误的页面 |
MediaWiki:Math-tracking-category-render-error | Category:Pages with math render errors | 渲染管道中出現臨時錯誤而導致渲染失敗的頁面。這些頁面通常會自行解決 |
MediaWiki:Math-tracking-category-texvc-deprecation | Category:Pages that use a deprecated format of the math tags | 使用已被淘汰的texvc語法 (如$ % \and \or \part \ang \C \H \bold \Bbb\ \pagecolor ) 的頁面,應分別以更標準的LaTeX \$ \% \land \lor \partial \angle \Complex \mathbb{H} \mathbf \mathbb (removed) 取代。 参见Extension:Math/Roadmap 。 |
MediaWiki:Math-tracking-category-mhchem-deprecation | Category:Pages that use a deprecated format of the chem tags |
不被推荐的化学标记,参见Extension:Math/Roadmap#Step 1 Part C: Manual fixing of mhchem syntax。 |
提示与技巧
- 您可以使用Firefox的MathML copy扩展以将公式复制到其他应用,例如Microsoft Word(视频)或者Google文档(带有g(Math)插件)(视频)
- 您可以在
<math>
元素添加forcemathmode
属性,以覆盖用户首选和默认渲染模式,例如强制渲染图像为<math forcemathmode="png">...</math>
。 - 渲染公式的所有图像都存储在缓存中,并且在查看或编辑页面时不会自动重新创建。 要强制重新渲染页面的所有公式,使用
?action=purge&mathpurge=true
操作来刷新。 例如,URL https://en.wikipedia.org/w/index.php?title=Integral&action=purge&mathpurge=true会强制重新渲染w:Integral文章。 然后你需要绕过浏览器缓存以便让新创建的公式图像实际上已下载。
错误报告
如果Math扩展有问题,您可以在Phabricator报告。此外,您应检查您的问题与页面CoverageTest生成的自动化单元测试有何关系。
延伸阅读
旧版本以及更多信息可参考: 。
子页面
- Math/AllFormulae
- Math/Announcement
- Math/CoverageTest
- Math/CustomizationHook
- Math/Displaystyle
- Math/Hooks/MathAfterTexvc
- Math/Hooks/MathFormulaPostRender
- Math/Hooks/MathFormulaRendered
- Math/Hooks/MathRenderingResultRetrieved
- Math/Inputtypes
- Math/MathJaxMenu
- Math/MathJax testing
- Math/Native MathML/Reported Cases
- Math/Native MathML rollout (2024)
- Math/Popups
- Math/RESTBase
- Math/Roadmap
- Math/Syntax
- Math/T140217
- Math/T167569
- Math/T1835557
- Math/T183559
- Math/T218295
- Math/T247697
- Math/T305613
- Math/T317065
- Math/T32215
- Math/T325625
- Math/T334842
- Math/T350004
- Math/T350737
- Math/T363081
- Math/T366983
- Math/T375241
- Math/T375244
- Math/T375317
- Math/T86450
- Math/T87007
- Math/TeX-header
- Math/Torture Test
- Math/Unique Ids
- Math/Url2Image
- Math/Wikibooks-20160516
- Math/additionalAnnotationTypes
- Math/advancedSettings
- Math/annotation.js
- Math/bug/35189
- Math/bug/38641
- Math/bug/48032
- Math/bug/49210
- Math/bug/54818
- Math/bug/69554
- Math/bug/75285
- Math/chemrm
- Math/math table
- Math/mathlatexml table
- Math/mathoid table
- Math/modifyMenu.js
- Math/newFeatures
參見
- Extension:Math/Roadmap
- Mathoid
- 擴展:SimpleMathJax - 提供在wiki上渲染数学公式的另一种方法,无需texvc或LaTeX
- Texvc PHP替代
- Manual:Enable TeX/problems
- 手册:數學
![]() | 此用于一个或多个维基媒体项目。 这可能意味着足够稳定、运作足够良好,可以用在这样的高流量的网站上。 请在维基媒体的CommonSettings.php和InitialiseSettings.php中查找此的名称以查看哪些网站安装了该。 特定wiki上的已安装的的完整列表位于Special:Version页面。 |
![]() | 此在以下wiki农场/托管网站和/或软件包中提供:
|