分享

MathML学习笔记_Technology Zone(T城网) Blog

 dinghj 2006-08-17

MathML学习笔记

From: http://hknng./hknng/archive.php/article/880.html

XML兴起后,HTML派生出了XHTML。虽然这只多了一个字母X,却赋予了原来的HTML以无限的生命力。这生命力就来源于其无限的扩展能力(extensible)。旧有的HTML只有有限的标签,而XHTML的标签却可以无限扩展,这要归功于XML的命名空间(namespaces)的发明。在XHTML中,至少要加载XHTML命名空间,这样我们就可以使用几乎所有原来的HTML标签(当然有些已经被废弃或者不赞成使用(deprecated))。在此基础上,我们还可以加载其他命名空间,获得扩展的功能,例如MathML可以使网页能嵌入数学公式,这是一项非常实用的技术。MathML的官方文档可以从W3CMathML主页找到。

XHTML嵌入MathML的方法

下面的例子说明XHTML 1.0和MathML推荐标准联合使用的方法:

  1. <html xmlns="http://www./1999/xhtml" xml:lang="en" lang="en">
  2.   <head>
  3.     <title>A Math Example</title>
  4.   </head>
  5.   <body>
  6.     <p>The following is MathML markup:</p>
  7.     <math xmlns="http://www./1998/Math/MathML">
  8.       <apply> <log/>
  9.         <logbase>
  10.           <cn> 3 </cn>
  11.         </logbase>
  12.         <ci> x </ci>
  13.       </apply>
  14.     </math>
  15.   </body>
  16. </html>

不过,上面这段代码是不符合原来的XHTML的DTD实体定义的,因为多出了math等实体(或者说标签)没有在XHTML的DTD文档中定义。W3C还正在努力解决该问题。目前一种解决办法是使用“XHTML plus Math 1.1 DTD”作DTD定义,这是一种联合使用XHTML 1.1和MathML 2.0的DTD定义。使用的时候文件头的定义为:

  1. <?xml version="1.0"?>
  2. <!DOCTYPE html PUBLIC ‘-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN‘
  3.     ‘http://www./TR/MathML2/dtd/xhtml-math11-f.dtd‘
  4.     [<!ENTITY mathml ‘http://www./1998/Math/MathML‘>]>

这样就解决了DTD定义问题。

在浏览器上显示MathML

上面这种做法在把文件扩展名命名为xml(或者在服务器上输出xml的文件头)之后,已经测试能够被Firefox 1.5正确解析,也能通过W3C标记语言验证器验证(当然文档的其它部分要符合XHTML 1.1规范),但不能被IE 6(没有安装插件)正确解析。扩展名命名为html时,则Firefox和IE均无能为力。但是扩展名为xml时,无法执行javascript。

如果要IE能够正确显示MathML公式,可以加装免费的MathPlayer插件。不过有另一种不需要加装插件的方法,就是使用XSLT样式表把MathML解析成普通的HTML(需要IE 6版本)。具体的实现方法在:http://www./Math/XSL/

Firefox/Mozilla虽然有内建的MathML支持,但有时候会因缺字体而不能完全正确显示MathML公式,这可以通过下载这些字体解决。这些字体的列表在:http://www.mozilla.org/projects/mathml/fonts/。为方便Windows用户,MIT提供了这些字体的打包下载使用指导

两种MathML表达式

MathML有两种表达方式,一为表现式(Presentation MathML),一为内容式(Content MathML)。暂时发现表现式好像不太好用,例如没有找到好使的绝对值符号(如果使用“|”,绝对值符号无法自动伸缩,当嵌套分式较多时绝对值符号就会变得太短)。暂时倾向于以使用内容式为主,表现式为辅。不过还需多学习才能真正比较出两者的优劣。

学习资源
工具

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多