数学置标语言(MathML)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数学置标语言(MathML)相关的知识,希望对你有一定的参考价值。

参考技术A 提要:数学标记语言(Mathematical Markup Language ),是一种基于XML(标准通用标记语言的子集)的标准,用来在互联网上书写数学符号和公式的置标语言。

一、概述

数学置标语言,是一种基于XML的标准,用来在互联网上书写数学符号和公式的置标语言。它是由万维网联盟的数学工作组提出的。语言规格1.01版于1999年7月公布,2.0版于2001年2月出现。万维网联盟的数学工作组在2003年10月发布了MathML 2.0的第二版,之后又在2010年10月发布了MathML 3.0。

由于数学符号和公式的结构复杂且符号与符号之间存在多种逻辑关系,MathML的格式十分繁琐。因此,大多数人都不会去手写MathML,而是利用其它的工具来编写,其中包括TeX到MathML的转换器。主要的网页浏览器中,最新版的Mozilla、Mozilla Firefox和Netscape Navigator都已经对MathML提供直接的支持,但Chrome却又停止支持,原因是Google出于安全性的考虑。微软的Internet Explorer在安装了MathPlayer插件后也可以识别MathML。此外,MathML还得到了一些办公软件的支持,如openoffice .org和Microsoft Office。

MathML是受XML的启发在万维网联盟数学工作组的具体组织下产生的,作为XML定义的一种应用,它用标记的形式来表示数学表达式。用MathML形式 来描述数学表达式,不仅可以明确地表达数学内容,而且可以在Web的其它应用程序中实现再利用和转换。MathML 标记的递归性和树状结构使得它在计算机程序的实现上更方便、简单。MathML 使用文本的形式来描述数学表达式的树形结构,克服了传统的Web中使用图片表达数学公式的缺点。

二、结构与语法

MathML十分类似html,但非常繁琐。它继承了角括号和双标签(<标签>内容标签)的用法。MathML不但规定数学式子的表现,而且也规定数学数字的含义(前者叫做“Presentation MathML”,后者叫做“Content MathML”)。由于数学式子的意义与表现是分离开的,如何交流内容留给了用户。

1 Presentation MathML

表现形式的MathML,侧重于如何显示一个数学式子,大约有30个元素。元素名字全部以m开头。它们用来描述数学公式的层次结构。在MathML2.0规范中,表现型标记共有31个、50种属性用于数学符号的编码。

2 Content MathML

内容内涵的MathML,侧重于表达式的语义,而不是布局。 Content MathML 只有少许属性。

【根据网络信息整理】

需要数学编辑器来编写数学公式

需要一个Math Editor来集成我在C#上编写的应用程序才能编写数学公式。请有人帮我这个吗?一些开源代码会很棒!告诉我将您建议的应用程序集成到我的应用程序的步骤。

答案

我建议你使用基于MathML的编辑器。公式描述是W3C标准。

一个开源的MathML编辑器是gNumerator。它的核心组件和渲染引擎几乎完成。

什么是gNumerator?

首先,gNumerator是构成计算机数学程序的可重用组件的集合。大部分价值都在于这些组件,以及它们对希望重用它们的其他开发人员的实用性。

对于最终用户,gNumerator将是一个计算机数学系统,模糊地类似于Mathematica,nucalc或Matlab。 gNumerator的主要区别在于,它是可重用组件的集合,其次是使用MathML和JScript等标准语言进行用户交互。由于其他数学程序(如Mathematica或Matlab)都使用专有语言作为用户输入形式,因此gNumerator将允许用户输入标准MathML或JScript。

但是,你说这些语言的数字能力很弱。嗯,特定任务的语言“适应性”与语言本身相关性较小,而与该语言可用的库有关。是的,JScript没有附带任何好的数值库,也就是GSL,GNU Scientific Library的用武之地.gNumerator的一个库将是.net绑定到GSL,这允许它直接使用和.net语言例如c#,(编写语言gNumerator)和JScript(gNumerator脚本语言)直接使用GSL的强大功能。使用GSL将使gNumerator的计算能力与许多商业数学包相提并论。

gNumerator应用程序将在GNU通用公共许可证下发布,其“库组件(MathML DOM,渲染器,解释器等......)将在LGPL下发布,这使它们可以在商业应用程序中使用

库:有2个库可以将源代码下载到:1:MathML渲染控件这是一个显示MathML的Windows.Forms(winforms)控件。所有当前发布的屏幕截图仅包含此控件。 2:MathML DOM这是用于MathML的w3c推荐文档对象模型的c#中的一个忠实且几乎完整的实现。这是构建大多数其他gNumerator库的核心关键组件。

这是一个屏幕截图,显示它的功能gNumerator Screenshot (来源:sourceforge.net

另一方面(付费),有很多优秀的产品可以集成到您的项目中,并可用于编辑公式。其中之一是MathType。它的许可证价格合理,只需97美元。

另一答案

我想说最好的解决方案是让用户用TeX语法编写数学表达式,可能包括在键入时更新的TeX渲染器。

另一答案

我建议你使用MEEL

另一答案

那你为什么不在我们的程序中使用Equation或MathType。我确定他们有可以使用的组件。如果你想要开源我推荐使用OpenOffice.org的数学(http://www.openoffice.org/product/math.html

另一答案

你应该看看LyX - 它是一个使用LaTeX的开源(GPL)文档处理器。我非常肯定(但不是100%)它会在您编写时显示文本 - 并且可以在源代码中找到“将[我的]建议应用程序集成到[您的]应用程序”的步骤;-)

另外要检查的是LaTeXiT(如果你有权访问Mac)。它使用LaTeX编写方程式。它不是开源的,但它可能会给你一些想法。

祝你好运!

另一答案

我推荐iMathEQ,这是一个WYSIWYG数学公式编辑器。它支持导出MathML和图像。

另一答案

也许您可以在this列表中使用MathML兼容编辑器之一?您的C#应用​​程序是基于Web的应用程序还是桌面应用程序?

以上是关于数学置标语言(MathML)的主要内容,如果未能解决你的问题,请参考以下文章

#yyds干活盘点# 4.3 HTML5 MathML

YAML 技术研究

HTML5math标签

XML 载自IBM文库

#yyds干货盘点# 1.2 Web前端开发相关技术

在Xml中,啥叫标签,啥事标记?它们有啥区别?