Matematiske udtryk (formler) i MathML

Emner:

Udtryk

To TeX-varianter, to oversættere

Tegngrupper

Navne

Tal

Symboler

Faste TeX-ord

Tabel med TeX-ord

Egen tabel

MathML-kode

Blanktegn

Potens og index

Eksempler på matematiske udtryk

Matematiske udtryk skrevet direkte i MathML

Denne side kan kun vises fuldt korrekt med matematiske formler af en browser, der kan vise formler kodet i MathML, fx Mozilla Firefox.

Matematiske udtryk kan skrives direkte i MathML som beskrevet nedenfor.

Matematiske udtryk kan også skrives i en form lånt fra TeX (LaTeX), og da indesluttet mellem dollartegn, fx for cirklens ligning:
$ cos ^ 2 x + sin ^ 2 x = 1 $
Hvert udtryk skal slutte på samme linie som det starter. Denne regel er blandt andet indført for at sikre mod forvirring grundet glemte $-tegn. Udtrykkene skrevet i TeX oversættes til MathML. MathML-udtrykkene kan som sædvanlig ses i kildekoden for de quizzer, der produceres. Bemærk at quizfiler med MathML har endelsen .xml og at de følger standarden XML, som kræver streng overholdelse af alle syntaktiske regler.

På enhver server med QuizComposer installeres om muligt TeX til MathML oversætteren for TeX-varianten ITeX nævnt på denne Mozilla/MathML-side. Bemærk på samme side muligheden for at at se eksempler på formelgenerering, også af egne eksempler. Formler mellem et par dollartegn (et dollartegn før og et efter) søges oversættes med denne oversætter, når den er installeret.

På servere hvor ITeX-oversætteren ikke har kunnet installeres, oversættes formler mellem enkelte dollartegn med en i QuizComposer indbygget oversætter, her benævnt QCTeX. Dennes muligheder er beskrevet i de efterfølgende afsnit. Hvis udtrykket $ \QC $ oversættes til ordet QuizComposer, er ITeX-oversætteren ikke installeret, hvorfor QCTeX benyttes på alle udtryk mellem $-tegn.

Med ITeX-oversætteren er indbygget flere muligheder for at skrive matematiske formler end med den i QuizComposer indbyggede oversætter. For eksempel kan der skrives tabeller ("\array"), jævnfør vejledningen for ITeX. Iøvrigt er det specielt for tabeller værd at bemærke muligheden for i QuizComposer i et spørgsmålsfelt at angive fortsættelse af en linie med tegnet \ allersidst på linien (ved tabeller efter mellemrum efter \\).

En fordel ved QCTeX-oversætteren kan være muligheden for at tilnytte en oversættertabel fra TeX-kommandoer til MathML-strenge, som beskrevet nedenfor. Ved i stedet for et enkelt dollartegn at skrive en trippel ($$$) foran en formel angiver du, at QCTeX skal benyttes på formlen.

Resten af denne vejledning beskriver de formler, som kan oversættes med QCTeX.

Et udtryk består af tegngrupper adskilte af blanktegn. Der er 5 kategorier af tegngrupper, nemlig navne, tal og symboler samt såkaldte TeX-ord og MathML-mærker. TeX-ord begynder med tegnet \. MathML-mærker begynder med < og slutter med >.

begynder med et bogstav. Et navn med kun eet bogstav vil blive vist i kursiv. Ellers vises navne i normal skriftform (Roman). Bemærk at navne på funktioner, som i TeX skrives med et \-tegn foran, fx \log, her skrives uden dette \-tegn.

Tal
skrives med cifre, punktum og eventuelt minustegn foran.

kan skrives enten direkte, fx / for division, med \TeX-ord eller MathML-mærker eller et &-symbol, som beskrevet i det følgende.

Som nævnt begynder TeX-ord med tegnet \. De følgende 6 ord har en særlig betydning:
\sqrt angiver kvadratrod af det efterfølgende argument,
\root angiver n'te-roden af det efterfølgende argument, med n som det næste argument igen,
\frac angiver en brøk af de følgende 2 argumenter i udtrykket (tæller og nævner),
\munder angiver at det efterfølgende argument skal have det næste argument igen anbragt under sig (som man ofte bruger det ved summation),
\mover angiver tilsvarende "overskrift",
\munderover angiver tilsvarende "under-" og "overskrift".

Alle andre TeX-ord slås op i en indbygget tabel knyttet til oversætteren. Hvis Tex-ordet findes i starten af en linie erstattes det i udtrykket med resten af tabellinien (som forventes at være MathML-kode). Fx vil \infty vise tegnet for uendelig, jævnfør tabellen. Hvis TeX-ordet ikke findes i tabellen erstattes \-tegnet med tegnet & og der tilføjes semikolon (;) bagerst. Herved dannes (forhåbentlig) et såkaldt "MathML Character Name", der præsenterer sig som et matematisk symbol. Fx vil \alpha vise et græsk alfa.

Den indbyggede tabel indeholder de fleste af TeXs symboler inden for matematik, men savner du noget kan du selv definere en tabel ved hjælp af denne formular.
Iøvrigt kan du skrive "MathML Character Names" direkte startende med et &-tegn og sluttende med et semikolon (;).

Tabellen illustrerer formen af MathML-kode. Denne skrives normalt med start- og slutmærker, hvoraf de simpleste startmærker er <mi> for "identifiers", <mn> for tal og <mo> for operatorer. De sidste dækker stort set alle øvrige "symboler", herunder også parenteser.
Runde (()) og kantede parenteser ([]) kan du skrive direkte. De vil blive vist som de står, dog skal du bemærke at de bliver "strakte" vertikalt til at omslutte deres indhold, fx brøker og tabeller.
Derimod har krøllede parenteser ({})en speciel betydning, nemlig (som i TeX) til at afgrænse argumenter til ovennævnte specielle TeX-ord. Fx vil udtrykket $ \sqrt{a^2+b^{-2}} $ vise kvadratroden af summen af a i anden potens og b i minus anden potens.

MathML-mærker oversættes ikke. Med MathML-mærker skriver du direkte MathML-kode, fx startmærket <mi>. I princippet skal du huske at anbringe et slutmærke for hvert startmærke. Men hvis der mangler et eller flere slutmærker for de startmærker, du har sat, vil slutmærker blive generereret, så MathMLs krav til parentesstruktur er overholdt.
I de slutmærker du selv skriver kan du tilføje "options". Dog må du ikke bruge anførselstegn, men kun apostroffer ('). (Dette krav vil formentlig blive ophævet en gang i fremtiden).

Når du skriver et matematisk udtryk, skal du være opmærksom på, hvordan udtrykket ved hjælp af blanktegn adskilles i tegngrupper. Oversætteren genererer MathML-kode af hver enkelt tegngruppe for sig. Udover de blanktegn, som du selv har anbragt (fx mellem et funktionsnavn som sin og et argument som x) sætter oversætteren blanktegn som følger:
Foran følgende 4 tegn: - \ & <
Efter følgende 4 tegn: = ; , :
Omkring følgende tegn(grupper): _ + ^ ( { [ ) } ] <> >= <=
Efter minustegn (-) medmindre dette følges af et ciffer eller punktum.
Foran lighedstegn (=) medmindre dette følger et < eller >
Efter større end (>) medmindre dette følges af =
Foran skråstreg (/) medmindre dette følger et <
Efter skråstreg (/) medmindre dette følges af et >

Bemærk iøvrigt at symbolerne ^ for potens eller index foroven og _ for indeks forneden behandles anderledes end øvrige symboler skrevet direkte, fx + og /. Af _ og ^ genereres MathML-koder med startmærker <msub>, <msup> eller <msubsup> efterfulgt af "basis" (det som indiceres) samt et index eller to indices. Se eksemplerne nedenfor.

Eksempler på matematiske udtryk
For at se de matematiske formler skal du have denne side præsenteret med en browser, der kan vise sådanne formler, fx Mozilla Firefox.

$ a sin^2 x + cos^-2 x = 1.5 $         vises som         a sin 2 x + cos -2 x = 1.5

$ \frac {-b \pm \sqrt { b^2 - 4 a c }}{2 a} $         vises som         - b ± b 2 - 4 a c 2 a

$ \frac { \sqrt { 4 + \sqrt { 12 + 13 } } } { \root 64 3 } $         vises som         4 + 12 + 13 64 3

$ \int _ 0 ^ \pi f(x)dx = \munderover \sum {i=1} {i=n} y _ j ^ m $         vises som         0 π f ( x ) dx = i = 1 i = n y j m

$ \frac {d ln x^4 } { d x} $         vises som         d ln x 4 d x

Matematiske udtryk skrevet direkte i MathML
I definitionsformularens felter kan du skrive MathML kode. Fx vil
<math xmlns='&mathml;'> <mi>sin</mi><mo>(</mo><mi>x</mi><mo>)</mo><math>
vise
sin(x).
Men MathML er unægtelig ret "ordrigt".

En mulighed er at bruge en MathML-composer til at generere MathML-koden. Amaya er er en kombineret browser og composer/editor, en såkaldt WYSIWYG-composer (What You See Is What You Get), hvor du bygger en formel op grafisk ved at pege og klikke. Amaya kan vise MathML-koden i et separat vindue. Derfra kan du kopiere koden ind i definitionsformularens felter. Mozilla/MathML-projektet gælder også en Composer for editering af MathML-sider, se projektets hjemmeside.