Member
- 系級:資管四
- 學號:B94705022
- 姓名:呂明龍
Motivation
不管是在編寫有關數學式子的文件,或是網頁上想表達數學的符號,通常我會選擇用相似的符號來取代,或是用拼音的方式,如用pi來表示圓周率,但這樣子做的結果就是整個數學式看起來不美觀,沒辦法直接就看出想表達的意思,而且若遷就使用相似符號來替代,反倒要在排版上花心思,沒辦法專注在原本文件、網頁的編寫。
Donald E. Knuth 教授就為了書商在出版他的書時數學式子排的太難看了,於是決定自行開發一個非常適合排數學式子的排版語言,這就是 TeX 系統。而 LaTeX 則是在 TeX 之上開發的巨集組,將常用到的功能定義出來,之後直接引用巨集編寫起來才比較方便。
但是如果是在編寫網頁的話,有個語言更好用:那就是 W3C 組織規範的 MathML(Mathematical Markup Language)。
Introduction
MathML,全名 Mathematical Markup Language ,是 W3C 在 2003/10/21 發布的標記語言,目前版本為 2.0,3.0 還在草稿中。
概念上正如同名稱所顯示,以標籤的方式注明文件中有關數學式子的部分,編寫者只要專注在文件內容的撰寫,不必額外花心思考慮排版的問題。然而對於複雜的數學式的處理會產生許多複雜的標記的情況,直接查看文件會有無法直觀辨認出表達的數學式的問題,撰寫文件者也必須額外學習如何使用 MathML,相對避開排版問題的好處,以上所述的不便也是必須考慮的。就使用方便性來說,MS WINDOWS 的使用者使用 MS OFFICE 的方程式編輯器會來的方便;但若是考慮跨平台的文件的撰寫,則 MathML 佔較大的優勢。
Use MathML easily
接著在介紹 MathML 的詳細內容之前先示範如何撰寫一份含有 MathML 的文件,將文件撰寫成如下的形式:(可參考sample1.xhtml)
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <title>MathML's Hello Square</title> </head> <body> <p> This is a perfect square:</p> <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> <msup> <mfenced> <mrow> <mi>a</mi> <mo>+</mo> <mi>b</mi> </mrow> </mfenced> <mn>2</mn> </msup> </mrow> </math> </body> </html>
則內容就可以顯示為
This is a perfect square:
< IMPORT NAMESPACE ="[default]" httpwwwworgMathMathML URN ="http://www.w3.org/1998/Math/MathML" IMPLEMENTATION ="#[default] http://www.w3.org/1998/Math/MathMLPlayer" DECLARENAMESPACE />
除此之外若是想在網頁上使用 MathML 則可以這麼做:(可參考sample2.xhtml)
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="http://www.w3.org/Math/XSL/mathml.xsl"?> <html xmlns="http://www.w3.org/1999/xhtml"> <head>...</head> <body> <h1>Example</h1> .... <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>x</mi><mo>+</mo><mn>3</mn> </math> </body> </html>
或是離線使用將 processing instruction 改為<?xml-stylesheet type="text/xsl" href="mathml.xsl"?>並將下列檔案放到同一個資料夾:mathml.xsl,
更多的有關在網頁上使用 MathML 的資訊在
MathML elements
所有的 MathML 元素都可以分成三類:presentation elements,content elements 及 interface elements。以下介紹presentation elements 及 content elements,interface elements 先暫時不理會。
Presentation elements 是用來描述數學符號在視覺上的呈現,例如
mrow
msup