奇技淫巧 - 阅读主题
<<  <  1  >  >>

MathML学习笔记

好(0) 差(0) 阅读(2281) 评论(0)
poster face
发表次数:1396
等级:◆◆◆◆◇◇
经验:11,233
魅力:1,372,905
给 Wen 发消息 给 Wen 发email


本笔记随幽灵多啦学习过程不断修正和更新中...

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

XHTML嵌入MathML的方法

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

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <title>A Math Example</title>
  </head>
  <body>
    <p>The following is MathML markup:</p>
    <math xmlns="http://www.w3.org/1998/Math/MathML">
      <apply> <log/>
        <logbase>
          <cn> 3 </cn>
        </logbase>
        <ci> x </ci>
      </apply>
    </math>
  </body>
</html>

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

<?xml version="1.0"?>
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN'
    'http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd'
    [<!ENTITY mathml 'http://www.w3.org/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.w3.org/Math/XSL/

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

两种MathML表达式

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

学习资源
工具
Share/Save/Bookmark
最后修改:Wen 于 2007-02-07 10:23:58

发表于 2005-12-25 17:22:06
奇技淫巧 - 阅读主题
<<  <  1  >  >>
发表评论
评论将以 过客 的名义发表
你的名字/昵称:
为减少垃圾评论,请准确回答问题:

注意:不超过 65535 字节,不支持HTML,支持NN Code

| | | 注册 | 忘记密码
分类浏览: 足迹 | 美食 | 开心 | 奇技淫巧 | 科学 | 音视 | 琐事 | WENSH事务 | 过客留言 | 前梦想国度 |
English categories: Footprints | Recipes | Fun | Tech | Science | Entertainment | Life | WENSH Affairs | Guests' Msgs |
| 链接 | 服务 | 留言 | 关于 NetNest |
Valid XHTML 1.0 | Valid CSS2 | WAI-A WCAG 1.0
W3Csites.com Listed | Directory of Travel Blogs | Travel blogs | Travel | Top Blogs
Copyright 2005-2008 WEN'S Horizon [32/4.441]
Powered by NetNest 2.1.0.081019 © 2004-2008 NetNest Group