MathML
Merk at MathML er designet for å dekke to formål, markup for strukturering av matematiske uttrykk og markup for presentasjon av matematiske uttrykk. I denne modulen tar bare hensyn til den andre egenskapen: Hvordan få presentert matematiske uttrykk på en vevside.
Det har vært et problem å framstille matematiske uttrykk på vevsider. En måte å løse dette på er som følger:
- Åpne MS Word og lag et nytt dokument
- Sett inn et objekt av type MS Equation Editor på siden
- Rediger formelen ved hjelp av Equation Editor
- Spar dokumetet som html, formelen blir lagret som gif i en subkatalog som kalles images.
- Plukk opp det riktige bildet og lim det inn i vevsiden
| ... og vi kan få Taylors formel slik: |
|
Dette er ikke noen god løsning. Dels gjør vi oss avhengig av MS Equation editor, dels er det stor sannsynlighet for at dokumentet med tilhørende formler forsvinner, dels har vi ingen mulighet til å endre stil eller størrelse av noe slag når bildet først er laget og dels tar slike bilder av formler stor plass.
Enkle uttrykk som involverer eksponenter og indekser kan vi få til i vanlig HTML, ved hjelp av elementene <sup> og <sub>. F.eks slik:
| X2+Y2=R2 |
X<sup>2</sup>+Y<sup>2</sup>=R<sup>2</sup> |
| Y:{w1,v3,} |
Y:{w<sub>1</sub>,v<sub>3</sub>}
|
Dette gir oss alt for lite spillerom til å formulere matematisk uttrykk.
MathML gjør det mulig for oss å editere matematikken direkt på siden eller vi kan bruke en WYSIWYG editor som i motseting til MS Equation Editor genererer åpen XML-kode.
I dag er det slik at Mozilla skal kunne vise fram sider med MathML-innhold uten noen Plugin. MSIE fordrer en Plugin. Amaya kan vise (og editere) rene MathML-sider uten Plugin. Opera er ikke særlig glad i MathML i det hele tatt(?). Nedenfor skal vi se på et svært enkelt matematisk uttrykk preparert for de tre nettleserne:
MS Internet Explorer
Jeg bruker en plugin, MathPlayer, fra Design Science: www.dessci.com. En typisk HTML-side for MSIE kan da se slik ut:
<?xml version="1.0"?>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:m="http://www.w3.org/1998/Math/MathML" >
<head>
<OBJECT ID="MathPlayer"
CLASSID="clsid:32F66A20-7614-11D4-BD11-00104BD3F987">
</OBJECT>
<?IMPORT NAMESPACE="m" IMPLEMENTATION="#MathPlayer" ?>
</head>
<body>
<p>Et uttrykk skrevet i MathML</p>
<p style="font-size:25px;color:red">
<m:math>
<m:msup>
<m:mi>r</m:mi>
<m:mn>2</m:mn>
</m:msup>
<m:mo>=</m:mo>
<m:msup>
<m:mi>x</m:mi>
<m:mn>2</m:mn>
</m:msup>
<m:mo>+</m:mo>
<m:msup>
<m:mi>y</m:mi>
<m:mn>2</m:mn>
</m:msup>
</m:math>
</p>
</body>
</html>
Forutsatt at du har installert mathPlayer:
Vi ser her en ganske spesiell konstruksjon. Vi finner et objekt som har ID=MathPlayer og så koples namespace m til dette objektet. Det er lett å se at dette gir en logisk kopling mellom de aktuelle elementene og den programkoden (plug-in) som skal tolke dem, men det er en uvanlig løsning.
Mozilla
Mozilla skal greie seg uten Plugin. Den samme siden preparert for Mozilla kan se slik ut:
<?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">
]>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>MathML-1</title>
</head>
<body>
<p>Et uttrykk skrevet i MathML</p>
<p style="font-size:25px;color:red">
<math xmlns="&mathml;">
<msup>
<mi>r</mi>
<mn>2</mn>
</msup>
<mo>=</mo>
<msup>
<mi>x</mi>
<mn>2</mn>
</msup>
<mo>+</mo>
<msup>
<mi>y</mi>
<mn>2</mn>
</msup>
</math>
</p>
</body>
</html>
Amaya
Amaya innholder både en enkle MathML-editor og en framviser. Filene lagres som rene mml-filer. En slik fil kan se slik ut:
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
"http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
<!-- Created by amaya 8.7, see http://www.w3.org/Amaya/ -->
<math xmlns="http://www.w3.org/1998/Math/MathML">
<msup>
<mi>r</mi>
<mn>2</mn>
</msup>
<mo>=</mo>
<msup>
<mi>x</mi>
<mn>2</mn>
</msup>
<mo>+</mo>
<msup>
<mi>y</mi>
<mn>2</mn>
</msup>
</math>
Et eksperiment
Ta for deg fila som er laget for Mozilla og åpne den i MSIE:
Hvis du har installert MathPlayer skal du se sida her også. Se på kildekoden til den siden du åpner. MSIE har tydeligvis funnet ut hva slags innhold vi har og modifisert fila i nettleseren. Summen av dette er altså at vi kan lage filer for Mozilla, og håpe at de vises både i Mozilla og MSIE, dersom du har installert MathPlayer i sistnevnte.
.
Eksempel 1
Vi lager en enkel kvadratrot med summen av to kvadrater. Merk at det er koplet til et enkelt stilsett som gjør matematikken blå:
<math xmlns="">
<mi>r</mi>
<mo>=</mo>
<msqrt>
<mrow>
<mo>(</mo>
<msup>
<mi>x</mi>
<mn>2</mn>
</msup>
<mo>+</mo>
<msup>
<mi>y</mi>
<mn>2</mn>
</msup>
<mo>)</mo>
</mrow>
</msqrt>
</math>
|
|
Eksempel 2
Vi lager en 3X3 matrise (som framstiller en rotasjonstransformasjon i planet).
<math xmlns="">
<mrow>
<mi>R</mi>
<mo>=</mo>
<mfenced open="[" close="]">
<mtable>
<mtr>
<mtd>
<mi>-cos</mi>
<mo>
(</mo>
<mi>v</mi><mo>)
</mo>
</mtd>
<mtd>
<mi>sin</mi>
<mo>
(</mo><mi>v</mi><mo>)
</mo>
</mtd>
<mtd>
<mi>0</mi>
</mtd>
</mtr>
<mtr>
<mtd>
<mi>sin</mi>
<mo>
(</mo><mi>v</mi><mo>)
</mo>
</mtd>
<mtd>
<mi>cos</mi>
<mo>(</mo><mi>v</mi><mo>)
</mo>
</mtd>
<mtd>
<mi>0</mi>
</mtd>
</mtr>
<mtr>
<mtd><mi>0</mi></mtd>
<mtd><mi>0</mi></mtd>
<mtd><mi>1</mi></mtd>
</mtr>
</mtable>
</mfenced>
</mrow>
</math>
|
|