1.1 Matematika a jej zápis

1.2 Pôvod a ciele

1.2.1 História MathML

1.2.2 Obmedzenia HTML

1.2.3 Požiadavky na matematické značkovanie

1.2.4 Ciele projektu MathML

1.3 Úloha MathML na webe

1.3.1 Existujúce matematické značkovacie jazyky

1.3.2 Mechanizmus rozšírenia HTML

1.3.3 Mechanizmus rozšírenia prehliadača

1.4 Prehľad MathML

1.4.1 Taxonómia prvkov MathML

1.4.2 Označenie zobrazenia

1.4.3 Označenie obsahu

1.4.4 Spojenie prezentácie a obsahu

1.5 MathML v dokumentoch

1.6 Príklady MathML

1.6.1 Zobraziť príklady značiek

1.6.2 Príklady značiek obsahu

1.6.3 Príklady zmiešaných značiek

1.7 Syntax a gramatika MathML

1.7.2 Príklad syntaxe XML

2.1 Mozilla a Firefox

2.2 Microsoft Internet Explorer

MathML (Mathematical Markup Language) je značkovací jazyk založený na XML pre matematické aplikácie. Bol vyvinutý konzorciom WWW (W3C) a prijatý ako odporúčanie. aktuálna verzia je Mathematical Markup Language (MathML) verzia 2.0 (druhé vydanie), schválená 21. októbra 2003.

MathML implementuje dva "uhly pohľadu" matematického značkovania. Jedným z jeho typov je Presentation Markup, ktorý popisuje vizuálnu formu znázornenia matematického vzorca. Druhým je Content Markup, ktorý vyjadruje sémantický obsah.

MathML berie do úvahy nielen prezentáciu, ale aj význam prvkov vzorca. Vyvíja sa aj matematický sémantický značkovací systém, ktorý dopĺňa MathML. Volá sa OpenMath.

1.2.1 História MathML

Úloha prezentovať matematické informácie pre počítačové spracovanie a elektronické komunikačné prostriedky vznikla dávno pred príchodom internetu. Kedysi bolo bežnou praxou, že vedci písali články v nejakej forme na základe znakov ASCII a potom si ich posielali cez e-mail. Niekoľko matematických značkovacích jazykov, najmä T E X, bolo rozšírených už v roku 1992, ešte predtým, ako mal web také popredné postavenie.

Sieť sa od začiatku ukázala ako veľmi efektívna metóda sprístupniť informácie veľkému počtu ľudí. Avšak aj keď bol World Wide Web pôvodne koncipovaný a implementovaný vedcami pre vedcov, možnosti začlenenia matematických výrazov do HTML boli extrémne obmedzené. V súčasnosti je väčšina matematických informácií na webe prezentovaná vo forme textu s grafické obrázky vedecké výrazy (vo formáte GIF alebo JPEG) alebo ako celé dokumenty PDF.

World Wide Web Consortium (W3C) pochopilo, že hlavným problémom je nedostatok základov pre vedeckú komunikáciu. Už v roku 1994 Dave Raggett navrhol zahrnúť HTML Math do prototypu HTML 3.0. Na konferencii v Darmstadte v apríli 1995 sa konal okrúhly stôl o matematickej notácii. V novembri toho istého roku predstavitelia Wolfram Research predložili tímu W3C návrh na implementáciu podpory matematiky v HTML. Stretnutie Iniciatívy digitálnej knižnice v Champaign-Urbana v máji 1996 zohralo dôležitú úlohu pri spájaní mnohých zainteresovaných strán. Výsledkom tohto stretnutia bolo vytvorenie redakčnej rady pre HTML Math. Následne toto pracovná skupina rástla av marci 1997 bola formálne preformovaná ako prvá W3C Math Working Group. Druhá W3C Math Working Group bola založená v júli 1998.

Projekt MathML odráža záujmy a názory rôznych skupín odborníkov. Veľa vo vývoji MathML si zaslúži osobitnú zmienku. Týka sa to napríklad otázky prístupnosti, kde sa vyskytli obzvlášť hmatateľné ťažkosti. T. V. Raman urobil v tomto smere kus práce. Neil Soiffer a Bruce Smith z Wolfram Research sa podelili o svoje skúsenosti s riešením problémov matematickej reprezentácie, ktoré získali počas práce na projekte Mathematica 3.0. Ich nápady mali dôležitý vplyv na štruktúru pohľadových prvkov. K matematickému formátovaniu a úpravám prispel aj Paul Topping z Design Science. MathML má veľký úžitok z partnerstiev s množstvom členov pracovných skupín spojených s inou prácou na kódovaní matematických informácií v SGML av komunitách počítačovej algebry. Patria medzi ne Stephen Buswell zo StiloTechnologies, NicoPoppelier z ElsevierScienceStéphaneDalmas z INRIA (SophiaAntipolis), StanDevitt z WaterlooMaple, AngelDiaz a RobertS. Sutor z IBM a StephenM. Watt z University of Western Ontario. MathML bol tiež ovplyvnený projektom OpenMath, prácou pracovnej skupiny ISO 12083 a prácou Stilo Technologies na fragmente DTD pre „sémantickú“ matematiku. Americká matematická spoločnosť zohrala kľúčovú úlohu vo vývoji MathML. Zástupcovia tejto organizácie sa okrem iného stali predsedami oboch W3C Math Working Groups. Od mája 1996 do marca 1997 skupinu viedol Ron Whitney. Patrick Ion bol spolupredsedom skupiny od marca 1997 do júna 1998 s Robertom Minerom z Geometry Center a od júla 1998 s Angelom Diazom z IBM.

Ciele vývoja MathML vyžadujú flexibilný a rozšíriteľný matematický notačný systém, ktorý umožňuje interakciu s externými programami a kvalitné zobrazenie v rôznych informačných prostrediach. Ale každý značkovací jazyk, ktorý spĺňa všetky tieto požiadavky, je dosť komplikovaný.

Zároveň je pre mnohé skupiny používateľov, ako sú napríklad študenti, dôležité mať jednoduchý spôsob, ako zahrnúť matematické výrazy do webových stránok. Podobne pre iné skupiny, napríklad pre používateľov systému T E X, najlepšie riešenie existoval by systém, ktorý by umožňoval priame začlenenie značiek do webových stránok pomocou jazyka ako T E X. Vo všeobecnosti rôzne skupiny používateľov vyžadujú rôzne formy vstupu a výstupu, ktoré najlepšie vyhovujú ich potrebám. Systém na umiestňovanie matematických dokumentov na web by preto v ideálnom prípade mal poskytovať špecializované služby pre vstup a výstup, ako aj všeobecné služby na výmenu a zobrazovanie informácií v rôznych informačných prostrediach.

V praxi vedie prehľad toho, čo by mal matematický štandard poskytovať v sieti pre špecializované a všeobecné potreby, k myšlienke vrstvenej architektúry. Prvá úroveň obsahuje štandardné výkonné nástroje na výmenu, spracovanie a zobrazenie matematických údajov. Druhá úroveň obsahuje špecializované nástroje určené pre špecifické skupiny používateľov, pomocou ktorých môžete jednoducho zakódovať matematické informácie na distribúciu obmedzenému okruhu používateľov.

MathML je navrhnutý tak, aby označoval matematické informácie na nižšej, všeobecnejšej úrovni dvojvrstvovej architektúry. Zahŕňa to označenie komplexnej notačnej a sémantickej štruktúry v prísnej, pravidelnej forme, ktorú je možné ľahko spracovať pomocou nástrojov na zobrazenie, vyhľadávanie a indexovanie a iných matematických aplikácií.

V dôsledku toho nie sú značky MathML určené na priame použitie autormi. MathML je čitateľný pre ľudí, čo veľmi pomáha pri ladení, ale vo všetkých prípadoch okrem tých najjednoduchších je príliš zložitý na manuálne kódovanie. Namiesto toho budú musieť autori použiť špeciálne editory vzorcov, konvertory a iné špecializované softvér na tvorbu MathML dokumenty. Alternatívne môžu niektoré vykresľovacie programy a systémy na podporu matematických dokumentov konvertovať iné vstupné formáty do MathML za behu.

V niektorých ohľadoch je MathML podobný iným nízkoúrovňovým komunikačným formátom, ako je jazyk PostScript vyvinutý spoločnosťou Adobe. Môžete vytvárať súbory PostScript rôzne cesty, v závislosti od vašich potrieb: odborníci ich vytvárajú a upravujú ručne, autori ich vytvárajú pomocou textové procesory, dizajnéri – ilustrátori a pod. Ak máte PostScriptový súbor, môžete ho distribuovať veľmi širokému publiku, pretože PostScriptové zobrazovacie zariadenia, ako sú tlačiarne a zobrazovače obrazoviek, sú široko dostupné.

Jedným z dôvodov rozvoja MathML ako značkovacieho jazyka všeobecnej komunikačnej úrovne je stimulácia rozvoja matematického softvér Siete najvyššej úrovne. MathML je spôsob koordinácie úsilia vývojárov softvérových modulov vytvárať a zobrazovať matematický materiál. Zjednodušenie vývoja funkčných častí veľký systém, MathML môže stimulovať vývoj programov, ktoré budú veľmi užitočné pre potenciálnych používateľov.

Autori môžu vytvárať dokumenty MathML pomocou nástrojov, ktoré najlepšie vyhovujú ich potrebám. Študenti môžu preferovať vizuálnych editorov vzorce, s možnosťou uložiť bloky značiek MathML do súboru XHTML. Výskumníci môžu použiť balíčky počítačovej algebry, ktoré automaticky zakódujú matematické informácie, aby ich kolegovia mohli prevziať z webovej stránky a spracovať. Vydavatelia akademických časopisov môžu použiť program, ktorý prevádza značky T E X na HTML a MathML. Bez ohľadu na spôsob vytvorenia webovej stránky obsahujúcej MathML sú dostupné všetky výhody spoločnej komunikačnej vrstvy. Na tom istom dokumente možno použiť rôzne programy MathML na výstup do reči a tlače, ako aj na jeho zadanie do systému počítačovej algebry a spravovanie ako súčasť veľkého archívu webových dokumentov. Pre kvalitnú tlač matematických dokumentov vo formáte MathML, spätná konverzia do štandardné systémy layouty vrátane T E X, ktorý je špeciálne vytvorený na tento účel. Nakoniec sa dá očakávať, že MathML bude nakoniec integrovaný do iných oblastí, kde sa vyskytujú matematické vzorce, ako sú tabuľky, agregačné balíčky a inžinierske nástroje.

W3C Math Working Group spolupracuje s rôznymi softvérovými spoločnosťami, aby zabezpečila, že rôzne nástroje MathML budú čoskoro dostupné, vrátane nástrojov na vytváranie a zobrazovanie dokumentov. Aktuálny zoznam programov, ktoré pracujú s MathML, sa nachádza na stránke Math World Wide Web Consortium.

Pôvodný koncept HTML Math bol jednoducho rozšíriť sadu HTML tagov a poskytnúť tak priamu interpretáciu v prehliadači. Ešte predtým však explodujúci rast siete jasne ukázal, že je potrebný mechanizmus globálneho rozšírenia a matematické informácie sú len jedným z typov štruktúrovaných údajov, ktoré možno pomocou takéhoto mechanizmu integrovať do webu.

Vzhľadom na to, že MathML má byť integrovaný do webu ako rozšírenie, je veľmi dôležité, aby MathML a programy, ktoré ho používajú, mohli dobre spolupracovať s existujúcim webovým prostredím. Najmä MathML musí byť navrhnutý s ohľadom na tri typy interakcie. Po prvé, pre vytváranie matematického obsahu je dôležité, aby sa existujúce matematické značkovacie jazyky dali previesť na MathML a aby sa do existujúcich editorov pridala možnosť vytvárať dokumenty MathML. Po druhé, malo by byť možné vložiť označenie MathML do označenia HTML ako jeho doplnok, v takom prípade bude v budúcnosti k dispozícii prehliadačom, vyhľadávače a všetky typy webových aplikácií, ktoré teraz pracujú s HTML. A nakoniec, musí byť možné zobraziť MathML vložený do HTML, moderné prehliadače aj keď výsledok je ďaleko od ideálu. S prechodom z HTML na XHTML budú všetky vyššie uvedené požiadavky ešte potrebnejšie.

World Wide Web je úplne medzinárodný. Matematika je jazyk používaný na celom svete. Matematická notácia vo vede a technike úzko súvisí s národnými jazykmi. Cieľom W3C je byť konštruktívnou silou pri prinášaní komunikácie do sveta. Preto vývojári MathML čelili problému internacionalizácie. Nie je známe, že by táto verzia MathML bola nekompatibilná s jazykmi písanými zľava doprava. Zápis zľava doprava je v MathML 2 štandardom a je jasné, že potreba písať matematické vzorce do textov v niektorých národných jazykoch ešte nevznikla. Takzvaná „obojsmerná technológia“ sa len vyvíja a najlepšia podpora v tomto kontexte je úlohou budúceho vývoja.

1.7.1 Syntax a gramatika MathML

MathML je založený na (Extensible Markup Language), čo znamená, že jeho syntax sa riadi pravidlami syntaxe XML a jeho gramatika je definovaná pomocou DTD (Document Type Definition). Inými slovami, podrobnosti o používaní značiek, atribútov, entít a všetkého ostatného sú definované v špecifikácii jazyka XML a podrobnosti o prvkoch a atribútoch MathML, vnorení prvkov atď. sú definované v MathML DTD.

W3C v snahe zvýšiť jednoduchosť a flexibilitu používania XML na webe a podporiť vytváranie modulárnych aplikácií XML zistilo, že základná forma DTD nie je dostatočne flexibilná. Preto bola vytvorená pracovná skupina W3C na vývoj schém XML, čo sú špecifikačné dokumenty a mali by nahradiť DTD. MathML 2.0 je navrhnutý tak, aby umožnil matematikom plne využívať nové webové technológie. Existuje teda schéma pre MathML.

MathML okrem toho definuje aj pravidlá syntaxe a gramatiky všeobecné pravidlá, ktorý zdedí ako XML aplikáciu. Tieto pravidlá umožňujú MathML reprezentovať podstatne viac informácií, než je možné s čistým XML, bez zavádzania Vysoké číslo nové prvky a používajú podstatne zložitejšie DTD alebo schémy. Samozrejme, nevýhodou zavedenia pravidiel špecifických pre MathML je, že vygenerované dokumenty nedokážu spracovať procesory a validátory XML.

Existujú dva hlavné typy dodatočných pravidiel gramatiky a syntaxe MathML. Prvý typ zahŕňa nastavenie ďalších kritérií pre hodnoty atribútov. Napríklad v čistom XML nie je možné vyžadovať, aby hodnota atribútu bola kladné celé číslo. Druhý typ pravidla definuje podrobnejšie obmedzenia pre podradené prvky (ako je ich poradie), ako sú tie, ktoré sú uvedené v DTD alebo dokonca schémach. Napríklad XML nemôže špecifikovať, že s prvým podradeným prvkom by sa malo zaobchádzať inak ako so zvyškom.

1.7.2 Príklad syntaxe XML

Pretože MathML je založený na XML, špecifikácia MathML používa XML terminológiu. Údaje XML pozostávajú zo znakov Unicode (ktoré zahŕňajú normálne znaky ASCII), referencií na entity (neformálne nazývané entity), ako napr.<, которые обычно представляют расширенные символы, и элементы, такие как X.

Prvky často obsahujú ďalšie údaje XML, nazývané ich „obsah“ alebo „telo“, medzi značkami „open“ a „end“, rovnako ako v HTML. Nechýbajú ani „prázdne prvky“ ako napr Kde úvodná značka končí znakom />, ktorý označuje, že prvok nemá obsah ani koncovú značku. Úvodná značka musí obsahovať pomenované možnosti, nazývané atribúty, ako napríklad fontstyle="normal" v príklade vyššie.

Keďže v XML sa rozlišujú veľké a malé písmená, v názvoch prvkov a atribútov MathML sa rozlišujú malé a veľké písmená. Kvôli čitateľnosti špecifikácia MathML definuje väčšinu z nich malými písmenami.

Vo formálnej diskusii o značke XML sa rozlišuje medzi prvkom, ako je mrow, a značkami, ktoré ho definujú. a. Čo je medzi značkami a, sa nazýva obsah alebo telo prvku mrow. „Prázdny prvok“, napríklad žiadny, nemá telo a je definovaný jedinou značkou zobrazenia . Táto špecifikácia nebude zdôrazňovať tento rozdiel medzi značkami a prvkami. Napríklad sa niekedy budeme odvolávať na prvky a , čo znamená prvok, ku ktorému tieto značky patria. Robí sa to tak, že referencie prvkov sú odlíšené od referencií atribútov. Pojmy „prvok“ a „značka“ sa však budú používať v prísne dodržiavanie s terminológiou XML.

1.7.3 Podradené prvky verzus argumenty

Mnoho prvkov MathML vyžaduje určitý počet podradených prvkov alebo dáva podriadeným prvkom na konkrétnej pozícii dodatočný význam. Ako je uvedené vyššie, tento typ obmedzenia je špecifický pre MathML a nemožno ho špecifikovať pomocou syntaxe a gramatiky XML. Keď ich podriadený prvok daného prvku MathML spĺňa dodatočné podmienky, budeme o tom hovoriť ako argument a nie o detský prvok zdôrazniť špecifickosť jeho použitia. Upozorňujeme, že výraz "argument" sa používa v tomto technickom zmysle, pokiaľ nie je uvedené inak.

Niektoré prvky majú rôzne požiadavky na počet alebo typ argumentov. Tieto dodatočné požiadavky sú opísané pre každý špecifický prvok.

1.7.4 Hodnoty atribútov MathML

Podľa špecifikácie jazyka XML musia byť atribúty prvkov špecifikované v jednej z nasledujúcich foriem:

atribút-name="value"

atribút-name="value"

kde medzery okolo znaku "=" sú voliteľné.

Názvy atribútov sa v texte špecifikácie zobrazujú jednopriestorovým písmom, rovnako ako príklady.

Hodnoty atribútov, ktoré v MathML môžu byť reťazce ľubovoľných znakov, musia byť uzavreté v dvojitých ("") alebo jednoduchých ("") úvodzovkách. Hodnota atribútu môže obsahovať typ úvodzoviek, ktoré sa nepoužívajú na uzavretie celej hodnoty.

MathML používa zložitejšiu syntax pre hodnoty atribútov ako všeobecná syntax XML špecifikovaná MathML DTD. Tieto dodatočné pravidlá sú pre aplikácie MathML a ich porušenie je chybou MathML, ale procesory XML ich nemôžu sledovať. Syntax hodnôt pre prvky MathML je definovaná v tabuľke atribútov a za ňou nasleduje popis každého prvku pomocou zápisu opísaného nižšie. Keď aplikácia MathML spracováva hodnoty atribútov, všetky medzery, okrem tých, ktoré oddeľujú jednotlivé slová alebo čísla, sú ignorované. Dáta znakov môžu byť zahrnuté do hodnôt atribútov priamo alebo pomocou referenčných entít.

Najmä znaky ", ", & a< могут быть включены в значения атрибутов MathML (когда это разрешено синтаксисом) с использованием сущностей ",",& и <, соответственно.

MathML DTD, deklaruje typy väčšiny hodnôt atribútov ako reťazec CDATA. To vám umožní zvýšiť kompatibilitu s existujúcim softvérom založeným na SGML a XML a rozšíriť zoznam preddefinovaných hodnôt. Rovnaké zdôvodnenie platí pre schémy XML.

1.7.4.1 Syntaktické zápisy používané v špecifikácii MathML

Na opísanie syntaxe špecifickej pre MathML pre platné hodnoty atribútov tento dokument používa nasledujúce konvencie a zápisy.

Notový zápis Čo robí
číslo desiatkové celé číslo alebo racionálne číslo (reťazec číslic s jednou desatinnou čiarkou), prípadne začínajúce znakom „-“
nepodpísané číslo desiatkové celé číslo alebo reálne číslo bez znamienka
celé číslo desiatkové celé číslo, prípadne začínajúce znakom „-“.
kladné celé číslo desiatkové celé číslo, bez znamienka, nie 0
reťazec ľubovoľný reťazec (vždy plná hodnota atribútu)
charakter jeden znak bez medzier alebo odkazujúca entita MathML; prípadne oddelené medzerami
#rrggbb farba vo formáte RGB; Tri páry hexadecimálnych číslic v príklade #5599dd definujú podiel červenej, zelenej a modrej na stupnici od x00 do xFF, ktorý vytvára jasnú azúrovú.
h-jednotka horizontálna jednotka dĺžky (povolené jednotky sú uvedené nižšie)
v-jednotka jednotka vertikálnej dĺžky (povolené jednotky sú uvedené nižšie)
css-fontfamily
css-color-name vysvetlené nižšie v podsekcii CSS
ostatné slová kurzívou vysvetlené v texte, pre každý atribút samostatne
formulár + jeden alebo viac "formových" inštancií
formulár * nula alebo viac výskytov výrazu „form“
f1 f2...fn jedna inštancia každého formulára, postupne, voliteľne oddelená medzerou
f1 | f2 |... | fn niektorú z vyššie uvedených foriem
voliteľná inštancia „formulára“.
(formulár) rovnako ako len forma
neoznačené slová slová zahrnuté doslovne v hodnotách atribútov (ak nie sú súčasťou vysvetľujúcej frázy)
znaky v úvodzovkách znaky doslovne zahrnuté v hodnote atribútu (napríklad „+“ alebo „+“)

Priorita operácie, od najvyššej po najnižšiu:

formulár + alebo formulár *

f1 f2... fn (sekvencia tvarov)

f1 | f2 |... | fn (jedna z foriem)

Typ reťazec môže obsahovať ľubovoľné znaky, ktoré sú definované v hodnotách atribútu XML CDATA. V MathML neexistujú žiadne pravidlá syntaxe reťazec môže byť súčasťou hodnoty atribútu, nie celou hodnotou.

Susedné kľúčové slová a čísla v hodnotách atribútov musia byť oddelené medzerami, s výnimkou identifikátorov jednotiek nasledujúcich za číslami (ako je uvedené v syntaxách znakov h-unit a v-unit). Medzery nie sú povinné, ale sú povolené medzi ktorýmikoľvek z vyššie uvedených tokenov, s výnimkou (pre kompatibilitu s CSS) bezprostredne pred identifikátormi jednotiek, medzi znakmi „-“ a číslami, medzi # a rrggbb alebo rgb.

Hodnoty pre číselné atribúty, ktoré špecifikujú rozmery a musia byť závislé od aktuálneho písma, môžu byť špecifikované v jednotkách spojených s písmom alebo špecifikovaných absolútnych jednotkách (popísané nižšie). Horizontálne rozmery sú zvyčajne uvedené v em a vertikálne rozmery v ex. Hneď za číslom nasledujú identifikátory em alebo ex. Napríklad vodorovné zarážky z operátora „+“ sú zvyčajne špecifikované v ems, hoci možno použiť aj iné jednotky. Používanie jednotiek súvisiacich s písmom je vhodnejšie ako absolútne jednotky, pretože umožňujú zväčšiť alebo zmenšiť veľkosť zobrazeného prvku na základe aktuálnej veľkosti písma.

Pre väčšinu číselných atribútov sú možné hodnoty obmedzené na určitú podmnožinu, ostatné hodnoty nie sú chyby (pokiaľ nie je uvedené inak), ale mapovač ich zaokrúhli nahor alebo nadol na najbližšiu platnú hodnotu. Sada platných hodnôt môže závisieť od renderera a nie je definovaná v MathML.

Ak číselná hodnota podľa syntaxe atribútu môže obsahovať znamienko mínus ("-"), ako je číslo alebo celé číslo, potom nie je chybou použiť ju, keď záporné hodnoty nie sú významné. Namiesto toho musí byť hodnota spracovaná aplikáciou, ako je popísané v predchádzajúcom odseku. Explicitné uvedenie znamienka plus ("+") ako súčasti číselnej hodnoty je zakázané okrem prípadov, keď je to výslovne uvedené v syntaxi (ako "+" alebo "+") a jeho prítomnosť môže zmeniť význam hodnoty atribútu (ako je opísané v každom z týchto atribútov).

Symboly h-unit, v-unit, css-fontfamily a css-color-name sú popísané v nasledujúcich podkapitolách.

1.7.4.2 Atribúty s jednotkami

Niektoré atribúty akceptujú horizontálne a vertikálne rozmery ako čísla, za ktorými nasleduje „identifikátor jednotky“ (často označovaný ako „jednotka“). Symboly syntaxe h-unit a v-unit označujú horizontálne a vertikálne rozmery. Možné merné jednotky a veľkosti, na ktoré sa vzťahujú, sú uvedené v tabuľke nižšie; sú rovnaké pre horizontálne a vertikálne rozmery, ale symboly syntaxe sú odlišné (ako pripomienka smeru, ktorý používajú).

Identifikátory jednotiek a ich sémantický význam sú prevzaté z. Syntax čísla, za ktorým nasleduje identifikátor v MathML, však nie je totožná so syntaxou v CSS, pretože čísla v CSS nemôžu končiť desatinnou čiarkou a môžu začínať znamienkom „+“.

Platné horizontálne a vertikálne jednotky v MathML:

Typografické jednotky em a ex sú popísané ďalej v časti "Dodatočné poznámky".

% je "relatívna jednotka"; keď je hodnota atribútu daná ako n% (pre akúkoľvek číselnú hodnotu n), hodnota je definovaná ako predvolená hodnota vynásobená n delená 100. Predvolená hodnota (alebo spôsob, akým ju možno získať, ak nejde o konštantu) je popísaný v tabuľke atribútov pre každý prvok a jeho význam je popísaný v nasledujúcej dokumentácii atribútov. (Prvok mpadded má svoju vlastnú syntax pre % a neumožňuje jeho použitie ako identifikátor jednotky)

Kvôli konzistentnosti s CSS môžu byť jednotky dĺžky v MathML voliteľné. V tomto prípade je znak jednotky v syntaxi atribútu uzavretý v hranatých zátvorkách, ako napríklad číslo . Význam hodnoty atribútu bez jednotiek je popísaný v dokumentácii pre každý atribút; zvyčajne sa zadané číslo vynásobí predvolenou hodnotou. (V tomto prípade je číslo nnn bez jednotky ekvivalentné číslu nnn vynásobenému 100 a so znakom %. Napríklad ( ekvivalentné k ()

Výnimkou (aj pre kompatibilitu s CSS) je, že číselné hodnoty nula nevyžadujú identifikátor jednotky, aj keď to syntax vyžaduje. V tomto prípade nezáleží na prítomnosti alebo neprítomnosti identifikátora jednotky, pretože akékoľvek číslo vynásobené 0 je 0.

Pre väčšinu atribútov v tejto špecifikácii sú jednotky použité v typografickej sade zvolené ako štandardné merné jednotky; keď nie je špecifikovaná špecifická hodnota veličiny, štandardné merné jednotky sú zvyčajne uvedené v tabuľke alebo v popise atribútu. Najčastejšie používané jednotky sú em alebo ex. Môže sa však použiť akákoľvek jednotka, pokiaľ nie je v popise konkrétneho atribútu uvedené inak.

Všimnite si, že niektoré atribúty, ako napríklad framepacing in , môže obsahovať viac ako jednu číselnú hodnotu, za každou nasleduje iná merná jednotka.

Je obvyklé používať jednotky ex hlavne pre vertikálne rozmery a em pre horizontálne rozmery, aj keď to nie je požiadavka. Tieto merné jednotky závisia od písma použitého na zobrazenie prvku, v ktorého atribútoch sú použité, a od jeho veľkosti. Preto ich treba interpretovať po atribúty ako fontfamily a fontsize, ak sa vyskytujú na rovnakom prvku, keďže zmena aktuálneho písma alebo jeho veľkosti môže zmeniť veľkosť jednotiek.

Definícia dĺžky každej mernej jednotky (ale nie syntax MathML pre hodnoty dĺžky) je rovnaká ako v CSS, okrem toho, že písmo nastavuje špeciálne hodnoty pre em a ex, ktoré sa líšia od hodnôt definovaných v CSS (veľkosť písma a "x" - výška).

1.7.4.3 Atribúty kompatibilné s CSS

Niektoré z nižšie uvedených atribútov MathML zodpovedajú vlastnostiam zobrazenia textu definovaným v CSS1. Robí sa to tak, že renderery môžu pri definovaní predvolených hodnôt atribútov vyhľadávať v prostredí CSS príslušné vlastnosti.

Schopnosť definovať vlastnosti štýlu prostredníctvom atribútov MathML a CSS má aj nevýhody. Prinajmenšom je to mätúce a v najhoršom prípade to spôsobí, že rovnice neúmyselne zmenia význam pri zmene CSS pre celý dokument. Preto sú tieto atribúty zastarané. MathML 2.0 zase zavádza štyri nové atribúty matematického štýlu. Tieto atribúty používajú boolovské hodnoty na lepšie vyjadrenie abstraktných kategórií symbolov používaných v matematike a poskytujú jasné oddelenie medzi MathML a CSS.

Nasledujúca tabuľka mapuje zastarané atribúty štýlu MathML 1.01 na ich náprotivky CSS:

Poradie, v ktorom sa spracovávajú atribúty a šablóny štýlov.

CSS alebo podobné šablóny štýlov môžu špecifikovať zmeny vo vlastnostiach zobrazenia prvkov MathML. Pretože vlastnosti zobrazenia môžu byť zmenené atribútmi prvku aj rendererom, je potrebné určiť poradie, v ktorom sa zmeny vyskytnú z rôznych zdrojov. Príkladom automatického vyjednávania je situácia s veľkosťou písma. V prípade „absolútnych“ zmien, ako je nastavenie novej hodnoty vlastnosti nezávislej od starej hodnoty (na rozdiel od „relatívnych“ zmien, ako je zvýšenie alebo násobenie číslom), sú účinné iba posledné absolútne zmeny, takže zdroj zmien s najvyššou prioritou musí byť spracovaný ako posledný.

V prípade CSS by poradie, v ktorom sa spracovávajú zmeny ovplyvňujúce vlastnosti zobrazenia prvku MathML z rôznych zdrojov, malo byť: (zmenené ako prvé; najnižšia priorita)

Automatické zmeny vlastností alebo atribútov na základe typu nadradeného prvku a pozície prvku v nadradenom prvku (ako je uvedené vyššie o zmenách veľkosti písma podľa úrovne skriptu; takéto zmeny zvyčajne aplikuje samotný nadradený prvok pred vykreslením vlastností zobrazenia na aktuálny prvok

Z čitateľských štýlov: štýly, ktoré nie vyhlásené za "dôležité"

Explicitne nastavené atribúty aktuálneho prvku MathML

Zo štýlov čitateľa: štýly, ktoré sú vyhlásené za „dôležité“ (naposledy upravené; najvyššia priorita).

Všimnite si, že poradie zmien vykonaných šablónami štýlov CSS je definované v samotnom CSS (toto je poradie definované v CSS2). Nasledujúce vysvetlenie sa vzťahuje iba na prípad, keď dôjde k zmenám v tomto poradí kvôli presnej špecifikácii atribútov MathML.

Vysvetlenie: Atribúty zobrazenia v MathML sú podobné atribútom zobrazenia HTML (ako napríklad zarovnanie), ktoré musia byť podľa poradia definovaného v CSS spracované s rovnakou prioritou. Navyše táto voľba priority umožňuje čitateľom rozhodnúť sa definovaním štýlov CSS ako „dôležitých“, ktoré z ich nastavení by mali prepísať explicitné nastavenia MathML. Keďže výrazy MathML pozostávajúce z prvkov obsahu alebo prezentácie sú primárne určené na vyjadrenie významu a „grafická reprezentácia“ (ak existuje) by v tom mala pomáhať (ale sama o sebe nie je dôležitá), je pravdepodobné, že čitatelia budú chcieť svoje preferencie štýlu mala prednosť. Hlavnou výnimkou je situácia, keď atribúty zobrazenia zmenia význam výrazu.

1.7.4.4 Predvolené hodnoty atribútov

Predvolené hodnoty atribútov MathML sú zvyčajne uvedené spolu s podrobným popisom príslušného prvku. Predvolené hodnoty uvedené bežným písmom v tabuľkách atribútov sú presné (pokiaľ nejde o zjavné vysvetlenia), pasáže písané kurzívou opisujú, ako možno predvolené hodnoty vypočítať.

Predvolené hodnoty deklarované ako zdedené sú prevzaté z prostredia zobrazenia, ako je opísané pre mstyle, alebo v niektorých prípadoch popísaných samostatne z hodnôt iných atribútov okolitých prvkov alebo z niektorej časti týchto hodnôt. Vždy sa používa hodnota, ktorú možno presne zadať, ak je známa; nikdy nezávisí od obsahu alebo atribútov daného prvku, iba od jeho prostredia. (Jeho význam pri použití však môže závisieť od týchto atribútov alebo obsahu)

Predvolené hodnoty opísané ako automatické musí vykresľovač vypočítať takým spôsobom, aby sa vytvoril obraz vysokej kvality. Spôsob, ako to dosiahnuť, nie je zvyčajne špecifikovaný v špecifikácii MathML. Vždy sa používa hodnota, ktorú možno presne zadať, ak je známa; ale zvyčajne závisí od obsahu prvku a prípadne od prostredia displeja.

Ďalšie popisy predvolených hodnôt, ktoré sa vyskytujú v tabuľkách atribútov, sú vysvetlené samostatne pre každý atribút.

Jednoduché alebo dvojité úvodzovky, ktoré musia byť vložené do hodnôt atribútu umiestneného v úvodnej značke XML, sa nezobrazujú v syntaxi hodnôt v tabuľke atribútov, ale sú zobrazené v texte príkladov.

Všimnite si, že vo všeobecnosti neexistujú žiadne hodnoty, ktoré by bolo možné presne priradiť atribútom MathML a napodobňovať efekt ich absencie pre atribúty, ktoré sú zdedené alebo automatické. Zadanie „zdedeného“ alebo „automatického“ určite nebude fungovať a už vôbec nie je povolené. Navyše, dokonca aj pre atribúty zobrazenia (pre ktoré sú tu uvedené špecifické predvolené hodnoty) sa musí na zmenu prvkov, ktoré obsahuje, použiť prvok mstyle. Preto MathML DTD definuje väčšinu predvolených hodnôt prezentačných atribútov ako #IMPLIED, čo bráni procesorom XML pridávať k týmto atribútom akékoľvek špeciálne predvolené hodnoty. Schéma MathML funguje rovnakým spôsobom.

1.7.4.5 Hodnoty atribútov v MathML DTD

V XML DTD môžu byť povolené hodnoty atribútov definované ako generické reťazce alebo môžu byť obmedzené rôznymi spôsobmi (vyčíslením možných hodnôt alebo špecifikovaním konkrétneho typu údajov). Výber typu atribútu XML ovplyvňuje rozsah, v akom možno vykonať overenie pomocou DTD.

MathML DTD definuje formálne typy atribútov XML pre všetky atribúty MathML, v niektorých prípadoch vrátane enumerácií platných hodnôt. Vo všeobecnosti je však MathML DTD relatívne laxný a často definuje hodnoty atribútov ako reťazce; toto je kompatibilné so syntaktickými analyzátormi SGML, ktoré umožňujú, aby viaceré atribúty toho istého prvku MathML mali rovnakú hodnotu (napríklad true a false), a aby bolo možné rozšíriť zoznam preddefinovaných hodnôt.

Zároveň, aj keď možno hodnotu atribútu definovať ako reťazec v DTD, v MathML sú platné iba určité hodnoty, ako je opísané vyššie a vo zvyšku tejto špecifikácie. Napríklad mnohé atribúty vyžadujú číselné hodnoty. Nasledujúca časť popisuje platné hodnoty atribútov pre každý prvok. Nedostatok rigidity v DTD však neznamená, že tieto požiadavky nie sú súčasťou MathML alebo že ich nemôže vynútiť konkrétny renderer MathML.

Okrem toho je MathML DTD poskytovaný ako pohodlie; hoci sa predpokladá úplná kompatibilita s textom špecifikácie, v prípade konfliktu má prednosť text.

1.7.5 Atribúty spoločné pre všetky prvky MathML

Na uľahčenie používania mechanizmov úpravy štýlu, ako sú XSLT a CSS2, majú všetky prvky MathML okrem atribútov popísaných pre každý prvok aj atribúty class, style a id. Vykresľovacie moduly MathML, ktoré nepodporujú CSS, môžu tieto atribúty ignorovať. MathML definuje hodnoty týchto atribútov ako generické reťazce, aj keď štýlové nástroje majú pre ne prísnejšiu syntax. Preto je pre nich v MathML platná akákoľvek hodnota.

Na zabezpečenie kompatibility s mechanizmami prepojenia majú všetky prvky MathML atribút xlink: href.

Všetky prvky MathML majú tiež atribút xref na použitie v paralelnom označovaní. id sa tiež používa v tomto kontexte.

Každý prvok MathML, ako dedičstvo z MathML 1.0, tiež akceptuje zastaraný iný atribút, ktorý bol určený na odovzdanie neštandardných atribútov bez porušenia MathML DTD. Renderery MathML sú povinné spracovať tento atribút iba vtedy, ak reagujú na všetky neštandardné atribúty MathML. Použitie druhého atribútu sa však dôrazne neodporúča, pretože v MathML existujú iné spôsoby, ako sprostredkovať špecifické informácie.

1.7.6 Zbalenie medzier vo vstupe

MathML ignoruje medzery, ktoré sa vyskytujú mimo tokenov. Znaky iné ako medzery tu nie sú povolené. Znaky medzier vyskytujúce sa v obsahu tokenov sú na koncoch odstránené, to znamená, že všetky medzery na začiatku a konci obsahu sú odstránené. Znaky medzier v obsahu prvkov MathML sú zbalené kónicky, to znamená, že každá sekvencia 1 alebo viacerých takýchto znakov je nahradená 1 (niekedy nazývanou nulový znak).

V MathML, rovnako ako v XML, biele znaky označujú jednoduchú medzeru, tabulátor, nový riadok alebo nový riadok, to znamená znaky s kódmi Unicode U+0020, U+0009, U+000A, U+000D.

Napríklad,

( ekvivalentné k (, a

ekvivalentné k Veta 1:.

Autori, ktorí chcú umiestniť biele znaky na začiatok alebo koniec obsahu tokenu, alebo sekvenciu viac ako jedného bieleho znaku, aby neboli ignorované, musia použiť iné nezobraziteľné biele znaky. Napríklad porovnávať

Veta 1:

Keď je zobrazený prvý príklad, pred slovom „Veta“ nie sú žiadne medzery, jedna medzi „Veta“ a „1: “ a žiadna za „1: “. V druhom príklade sa pred slovom „Veta“ zobrazí jedna medzera, pred „1: “ dve medzery a za „1: “ žiadna.

Všimnite si, že atribút xml: space nie je v tejto situácii použiteľný, pretože procesory XML odovzdávajú procesoru MathML medzery v tokenoch; k vymazaniu dochádza podľa pravidiel spracovania MathML.

Pre znaky medzery vyskytujúce sa mimo obsahu tokenov mi, mn, mo, ms, mtext, ci, cn a anotácií sa musí použiť prvok mspace, na rozdiel od prvku mtext, ktorý obsahuje iba znaky s medzerami.

2. Možnosti moderných prehliadačov pri práci s MathML

Ako testovací prípad demonštrujúci možnosti prehliadačov bola vytvorená jednoduchá XHTML stránka obsahujúca príklady oboch značiek. Opisujeme hlavné požiadavky na to. Najprv to musí byť platný dokument XHTML, t.j.:

byť platným xml dokumentom;

koreňový prvok musí byť prvkom html v priestore názvov XHTML, napríklad:

"http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd">

Fragmenty MathML musia patriť do priestoru názvov MathML, napríklad:

...

Testovací prípad, ktorý sa používa nižšie: test. xhtml.

2.1 Mozilla a Firefox

Použitá verzia: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv: 1.7 5) Gecko/20041107 Firefox/1.0.

Mozilla a Firefox postavené na rovnakom jadre majú vstavané možnosti vykresľovania značiek MathML. Je pravda, že zatiaľ sú obmedzené len na podporu pre označenie zobrazenia. Takže v našom testovacom prípade sa fragment označenia zobrazenia zobrazil správne, čo sa nedá povedať o označení obsahu.

Riešením tohto problému môže byť použitie špeciálnych XSLT štýlov „XSLT stylesheets for MathML“. Tento prístup je možný, pretože v prehliadači je zabudovaná podpora transformácií XSLT. Ak to chcete urobiť, musíte si stiahnuť sadu štýlov XSLT a v prvom riadku našej stránky uviesť odkaz na hlavičkový súbor mathml. xsl:

Z bezpečnostných dôvodov Mozilla povoľuje XSLT štýly umiestnené v inej doméne zdrojového zobrazenia MathML so zvýraznením výberu. Pravda, pri použití content markup a XSLT štýlov neuvidíme zdrojový kód, ale výsledok transformácie.

Medzi ďalšie funkcie patrí integrácia s vyhľadávačmi. Keď je vybratý fragment vzorca, kontextová ponuka vám umožní odoslať dopyt do vyhľadávacieho nástroja.

Ale zatiaľ je to rezerva do budúcnosti, pretože takéto hľadanie zatiaľ neprinieslo výsledky.

2.2 Microsoft Internet Explorer

Použitá verzia: 6.0.2800.1106 (SP1; Q867801; Q823353; Q833989)

Prehliadač Microsoftu nemá vstavanú podporu pre MathML. Na správne zobrazenie matematických vzorcov môžete použiť voľne distribuovaný plugin MathPlayer.


Okrem samotného zobrazenia matematického označenia umožňuje rýchlo skopírovať zápis MathML. Ak chcete, môžete vzorec pre lepšiu prehľadnosť zväčšiť:

Medzi nedostatky treba poznamenať neschopnosť vybrať alebo skopírovať fragment matematického výrazu. Neexistuje ani spôsob (ako v Mozille) správne skopírovať vzorec s okolitým textom.

2.3 Opera

Použitá verzia: 7.54u1 (Build 3918; Platforma Win32; Systém Windows 2000; Java nie je nainštalovaná).

Tento prehliadač v tejto fáze svojho vývoja nemá schopnosť správne zobrazovať značky MathML.

Zoznam použitej literatúry

1. Dorofeev A.V., Fedotov A.M. Elektronické publikácie v prostredí internetu a množstvo kódovaní ruského jazyka // Computational technologies, 1997, v.2, N 3, pp.31-44.

2. Oleinik O.V., Tolkacheva E.M., Fedotov A.M. Elektronické vydania a prezentácia matematických textov na WWW // Computational technologies, 1997, v.2, N 3, s.60-67.

3. Shokin Yu.I., Fedotov A.M., Znamensky S.AT. Elektronické publikácie a problémy mnohosti kódovania ruského jazyka // Informačné technológie a počítačové systémy, 1997, N 2, s.90-101.

4. Znamensky S.AT. Štandardizácia ruského TeXu: utópia alebo nevyhnutnosť // Computational technologies, 1997, v.2, N 3, pp.51-59.

5. Galaktionov V.V. Extensible Mark-up Language (XML): Priemyselný štandard, ktorý definuje novú generáciu internetovej softvérovej architektúry. Komunikácia JINR, Р10-2000-44, Dubna, 2000.

6. Mityunin V.A. Prehľad nástrojov na publikovanie a prezeranie matematických dokumentov na internete - http://mathmag. spbu.ru/article/4/

7. Matematika na webe: Správa o stave – http://www.dessci.com/ webmath /status/

8. Vrátane matematického zápisu na webových stránkach – http://mathforum.org/typeseting/

9. MathML 1.01 – http://www.w3.org/TR/REC-MathML/

10. MathML 2.0 – http://www.w3.org/TR/MathML2/

S rozšírením globálnych počítačových sietí (najmä internetu) bolo potrebné umiestňovať do nich okrem iného aj matematické texty.

Jazyk MathML je podmnožinou jazyka XML (napr X napínateľný M arkup L anguage - Extensible Markup Language), ktorý sa často používa na vytváranie iných jazykov. Toto použitie XML je dnes celkom prirodzené a dobre sa osvedčilo v iných prípadoch, keď použitie HTML na prenos nových typov údajov narazilo na obmedzenia tohto formátu. K dnešnému dňu W3C zverejnilo 2. vydanie verzie 2.0 špecifikácie jazyka MathML, čo naznačuje životaschopnosť a udržateľnosť projektu.

Značkovacie jazyky založené na XML:

  • Wireless Markup Language (WML): dátový formát pre WAP (bezdrôtové) zariadenia (mobilné telefóny);
  • Jazyk synchronizovanej multimediálnej integrácie (SMIL):
  • Určuje dočasné rozloženie, vzhľad atď. pre multimediálne prezentácie;
  • Určuje poradie, v ktorom sa prehrávajú multimediálne súbory;
  • Na prezeranie je potrebný prehrávač kompatibilný so SMIL (AMBULANT, MS IE6);
  • Návod a príklady: http://www.multimedia4everyone.com/
  • Škálovateľná vektorová grafika (SVG): na popis dvojrozmernej vektorovej grafiky;
  • Mathematical Markup Language (MathML): opísať matematický zápis (vzorce);
  • Chemical Markup Language (CML): na reprezentáciu chemických vzorcov;
  • iné.

Medzi ciele stanovené W3C Mathematics Working Group pri vytváraní MathML patrili:

  • Poskytovanie kódovania matematických materiálov pre komunikáciu na všetkých úrovniach vzdelávacieho a vedeckého typu;
  • poskytovanie kódovania matematickej symboliky a jej významov;
  • podpora vytvárania šablón a iných techník matematických úprav;
  • zabezpečenie prevodu do iných matematických formátov tak čisto prezentačného a sémantického charakteru, ako aj z týchto formátov do vytvoreného matematického značkovacieho jazyka. Výstupné formáty by mali zahŕňať prostriedky na zobrazovanie grafických informácií, syntézu reči, reprezentáciu textu vo forme vhodnej na vstup do systémov počítačovej algebry, kompatibilitu s inými jazykmi na popis matematických textov, ako je TAR, schopnosť zobraziť „čistý“ text ( t.j. bez matematických symbolov a výrazov), schopnosť tlačiť texty v rôznych formách, vrátane výstupu v Braillovom písme. Zároveň konverzie medzi rôznymi formátmi môžu viesť k strate informácií;
  • schopnosť prenášať informácie, berúc do úvahy vlastnosti špecifických vizualizačných programov;
  • podpora efektívnych procesov prehliadania dlhých matematických výrazov;
  • poskytovanie rozšíriteľnosti (spôsobom, ktorý nie je vopred známy).

Všeobecným princípom používania MathML je, že matematické konštrukty sú vložené do bežného HTML dokumentu a (ak prehliadač alebo špeciálny program podporuje túto špecifikáciu) sú adekvátne reprodukované, keď je dokument načítaný zo siete.

Prvá vec, s ktorou sa musíte v MathML vyrovnať a čo odlišuje tento značkovací jazyk od jeho analógov, je použitie dvoch spôsobov kódovania výrazov. Jeden z nich je založený na priamom prenose syntaxe vzorca ( prezentácia), druhý naopak odráža sémantiku výrazu ( obsahu). Prezentačné značky opisujú matematickú symboliku s výrazmi, ktoré sú zostavené pomocou niektorých schém odvodenia, pričom špecifikujú spôsoby umiestnenia podvýrazov, ako sú zlomky, horné indexy a dolné indexy. Sémantické značenie popisuje matematické objekty a funkcie, kde pre každý uzol je vytvorený strom výrazov podľa nejakej špecifickej schémy a vetvy tohto stromu zodpovedajú podvýrazom.

V súčasnosti je možné webové stránky vytvorené pomocou MathML zobraziť v nasledujúcich prehliadačoch (znamienko „+“ znamená, že fungujú aj novšie verzie):

  • Windows:

o IE 5.0 s doplnkom Techexplorer

  • Macintosh:

o IE 5.0+ s doplnkom Techexplorer

Mozilla 0.9.9+

  • Linux/Unix:

o Netscape 6.1 s doplnkom Techexplorer

Mozilla 0.9.9+

o Amaya, všetky verzie (iba Presentation MathML)

Všetky prvky MathML sú rozdelené do troch skupín: prvky zastupovanie, prvky obsahu a rozhranie prvkov.

Prvky pohľadu opisujú vizuálne orientovanú dvojrozmernú štruktúru matematického zápisu. Napríklad prvok mrow zvyčajne sa používa na označenie vodorovného radu častí výrazu a prvku msup, ktorý označuje horný index. Každý prvok zobrazenia zvyčajne zodpovedá jednému typu schémy zápisu, ako je riadok, horný index, dolný index atď. Každý vzorec sa skladá z častí, ktoré môžu pozostávať z najjednoduchších prvkov, ako sú čísla, písmená alebo iné symboly.

Najdôležitejšie prvky reprezentácie sú mi , mn a mo , ktoré sa používajú na reprezentáciu identifikátorov, čísel a operátorov. Tieto prvky sa zvyčajne zobrazujú v rôznych štýloch: čísla sú v latinke, identifikátory sú kurzívou a okolo operátorov je ponechané extra biele miesto.

Z hľadiska značiek je väčšina prvkov MathML definovaná otvorenie a zatváranie tagy, ktoré obmedzujú obsah prvku. Niektoré prvky, ako napríklad prevádzkové značky ( ) sú definované jednou značkou.

Pozrime sa podrobnejšie na niektoré prvky potrebné na usporiadanie matematických vzorcov, pričom ako príklad použijeme prezentačné označenie.

Tokeny (prvky tokenu) predstavujú jednotlivé znaky, mená, čísla, označenia a pod. V zásade môžu mať tokeny ako obsah iba znaky.

MathML ignoruje medzery, ktoré sa vyskytujú mimo tokenov. Znaky iné ako medzery tu nie sú povolené. Znaky medzier vyskytujúce sa v obsahu tokenov sú na koncoch odstránené, to znamená, že všetky medzery na začiatku a konci obsahu sú odstránené. Biele znaky v obsahu prvkov MathML sú kanonicky zbalené, to znamená, že každá sekvencia 1 alebo viacerých takýchto znakov je nahradená 1 (niekedy nazývanou prázdny znak).

Hlavné prvky

indexy

Niektoré matematické operácie, ktoré možno použiť s tagom .

+ +
< >
<
<= >=
++ ++
.NIE. nie
a a
neviditeľný znak násobenia
+ +

Pozrime sa na niekoľko príkladov vzorcov v MathML.

1) sin 2 α + cos 2 α \u003d 1

hriech

α

+

cos

α

=

Grécke písmeno α sa získa pomocou kódu α (pripomeňme, že sa používa Unicode).

Výsledok

Pripomíname tiež, že ak chcete pracovať s MathML v Internet Exploreri, musíte si nainštalovať MathPlayer.

Každý súbor obsahujúci značky MathML musí mať riadky pred hlavičkou dokumentu

Okrem toho sa každý kód MathML otvára značkou

a uzavreté štítkom.

a2

b2

hriech

X+r

2X

X2

r2

Zvážte prvky pre usporiadanie tabuliek a matíc.

1

1

1

1

1

1

0

0

0

1

1

0

0

0

1

1

0

0

0

1

1

1

1

1

1

Príklad 2

aX+br

=c

a1X+

b1r=

c1

V prípade potreby je potrebné vyhľadať rôzne matematické symboly v tabuľke kódovania Unicode.

Príklad.

S

-1

Σ

i=0

Príkladov s integrálmi možno nájsť pomerne značné množstvo, takže sa nimi tu nebudeme zaoberať, odporúčame čitateľovi oboznámiť sa s príkladmi na uvedenom zdroji.

Ako je uvedené vyššie, MathML umožňuje prezentačné a sémantické reprezentácie. Tu sme sa zamerali na prezentačné ako najstráviteľnejšie a častejšie používané. Aby ste však poskytli aspoň nejakú predstavu o druhej možnosti, zvážte malý názorný príklad a napíšte ho v dvoch znázorneniach.

Príklad. x 2 - 6x + 9 = 0

Samozrejme, písanie vzorcov v MathML je pomerne zdĺhavá úloha a vyžaduje si určité úsilie. Avšak tí, ktorí pracovali dostatočne dlho v LaTeX-e, nezaznamenajú veľký rozdiel. Častejšie však používateľ uprednostňuje používanie rôznych nástrojov. Uveďme niekoľko.

Po prvé, matematické balíky, povedzme Mathematica alebo Maple, vám umožňujú uložiť vzorce, ktoré sú v nich napísané, vo formáte MathML.

Tento zdroj používa skript Java ASCIIMathML.js (ver 2.0; september 2007; http://www1.chapman.edu/~jipsen/mathml/asciimath.html, ktorý napísal Peter Jipsen) spustený na počítači používateľa, ktorý sa načíta, keď stiahnutím ukážkovej stránky http://www1.chapman.edu/~jipsen/mathml/asciimathdemo.html . Najmä tento zdroj je teda možné použiť lokálne: stačí si uložiť spomínanú ukážkovú html stránku a jednoduché vzorce môžete previesť bez pripojenia na internet.

Na záver poznamenávame, že MathML ako značkovací nástroj je tiež vhodný na generovanie rôznych matematických úloh (pozri príklady vyššie). Zároveň na programovanie môžete použiť napríklad JavaScript, potom si používateľ bude môcť vygenerovať ľubovoľný počet možností úloh podľa vlastného uváženia. Môžete tiež zabezpečiť generovanie odpovedí na všetky úlohy, čo je veľmi jednoduché.

Očakávame, že čitateľovo oboznámenie sa s prostriedkami rozvrhnutia matematických textov nekončí a potom si bude môcť samostatne vybrať nástroj, ktorý ho zaujíma, a možno aj aplikovať opísané technológie v praxi.

Literatúra a internetové zdroje

Pred HTML5 bolo používanie vzorcov skutočnou bolesťou v zadku. Posúďte sami: v roku 2005 bolo potrebné mať po ruke buď špeciálny prehliadač, alebo rozdeliť text do poriadneho HTML a vložiť z obrázkov či PDF. Vyhľadávanie a ďalšie operácie úpravy a/alebo výstupu na obrazovku/papier boli nejednoznačnou úlohou, ktorej boli venované celé monografie.

V roku 2012 to už bolo jednoduchšie. Teraz môžete pripojiť potrebné doplnky (Firemath pre FireFox a Daum Equation Editor pre Chrome). Ale nejednoznačnosť štandardov (a podpory) nás v skutočnosti prinútila napísať rovnaký článok pre každý z prehliadačov (a pre ich verzie). Alebo pozdravte používateľov magickým pozdravom „Váš prehliadač je potrebné aktualizovať alebo pridať rozšírenie.“

Nepohodlné? - Áno! Bolo časovo náročné nájsť univerzálne riešenie? - Áno! Núti vás premýšľať o tom, aký typ nahrávky je lepší (prezentácia alebo obsah), aký konvertor použiť (a je ich len asi tucet známych)? - ÁNO! ÁNO! ÁNO!

Výsledkom bolo, že vydavateľská práca sa zmenila na vývoj dvoch alebo troch značkovacích lexikónov a štúdium fungovania aspoň jedného programu transkodéra.

Teraz, s príchodom HTML5, sú veci oveľa jednoduchšie. Má nový kontajner .
Každá platná inštancia MathML musí byť v tomto kontajneri.
Neumožňuje vnorenie, ale vo vnútri môže byť ľubovoľný počet ďalších podradených prvkov.

Atribúty značky

Okrem nasledujúcich atribútov značka akceptuje akékoľvek atribúty z "> .

trieda, id, štýl
Pri použití v spojení so štýlmi.
r
Určuje smer vzorca: ltr - zľava doprava alebo rtl - sprava doľava.
ref
Používa sa na nastavenie hypertextového prepojenia na zadaný URI.
matematické pozadie
Farba pozadia. Môžete použiť #rgb , #rrggbb a názvy farieb HTML.
matematická farba
Farba textu. Môžete použiť #rgb , #rrggbb a názvy farieb HTML.
displej
Tento atribút určuje metódu výstupu. Možné hodnoty:

  • blokovať- znamená, že tento prvok sa zobrazí mimo aktuálneho rozsahu textu ako blok, ktorý možno umiestniť kdekoľvek bez zmeny významu textu;
  • inline - znamená, že tento prvok bude zobrazený v rámci aktuálneho rozsahu textu a nedá sa z neho presunúť bez zmeny hodnoty tohto textu.

Predvolená hodnota je inline.

režim

Hodnota atribútu zobrazenia bola ukončená.
Možné hodnoty sú display (čo má rovnaký účinok ako display="block") a inline .
pretečeniu
Určuje, ako sa výraz správa, ak je text príliš dlhý na to, aby sa zmestil do určeného rozsahu šírky.
Možné hodnoty: linebreak (predvolené), scroll , elide , truncate , scale .

Príklady

Reprezentácia v HTML5

MathML v HTML5 a 2 + b 2 = c 2

Reprezentácia v XHTML

MathML v XHTML a 2 + b 2 = c 2
Poznámky: Dokumenty XHTML s MathML musia byť podávané ako application/xhtml+xml . Môžete to jednoducho dosiahnuť pridaním prípony .xhtml do vašich lokálnych súborov. Pre servery Apache môžete nastaviť súbor .htaccess pre túto príponu na správny typ MIME. Keďže sme uložili náš MathML ako dokument XML, musíme si byť istí, že dokument XML je v správnom formáte.

Podpora prehliadača

Podpora prehliadača

Plné verzie
Prvok Chrome Firefox (Gecko) internet Explorer Opera safari
Popis XHTML (iba 24.) 1.0 (1.7 a vyššie) 9.5 5.1
Popis HTML5 (iba 24.) 4.0 (2.0) 5.1
r 12.0 (12.0)
href Chyba WebKit 85733 7.0 (7.0) Chyba WebKit 85733
matematické pozadie (iba 24.) 4.0 (2.0) 5.1
matematická farba (iba 24.) 4.0 (2.0) 5.1
pretečeniu

Mobilné verzie

Prvok Android Chrome pre Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Popis XHTML 1.0 (1.0)
Popis HTML5 4.0 (2.0)
r 12.0 (12.0)
href 7.0 (7.0)
matematické pozadie 4.0 (2.0)
matematická farba 4.0 (2.0)
pretečeniu

Používa sa na prezentáciu a vzorce v . MathML odporúča matematická skupina.

Verzia špecifikácie MathML 1.01 bola vydaná v júli, verzia 2.0 sa objavila vo februári. V októbri bolo zverejnené druhé vydanie MathML verzie 2.0, čo je momentálne najnovšia špecifikácia vydaná matematickou skupinou.

MathML zvažuje nielen výkon, ale tiež význam prvky vzorca. Vyvíja sa aj matematický sémantický značkovací systém, ktorý dopĺňa MathML. Volá sa OpenMath.

Príklad

Softvérová podpora

Hlavné priamo podporujúce MathML sú najnovšie verzie a variácie. Mnoho iných prehliadačov podporuje tento formát inštaláciou príslušného . Napríklad na podporu MathML sa používa doplnok MathPlayer.

Okrem toho MathML podporujú hlavné kancelárske programy ako a , ako aj matematické softvérové ​​produkty, napr.

S rozvojom matematickej symboliky sa metódy vyvíjali a zdokonaľovali
jeho uchovávanie a prenos. Napríklad matematici starovekého Babylonu si robili poznámky
na hlinených tabuľkách, v období neskorého stredoveku prvá tlačená
knihy a napokon, moderná doba je charakteristická stále sa zvyšujúcim prílevom elektroniky
publikácií. Je to hľadanie adekvátnych metód pre tvorbu matematických textov
na internete a viedli k vytvoreniu MathML.

Potreba takéhoto nástroja je spôsobená skutočnosťou, že formát HTML má napriek mnohým úžasným vlastnostiam dosť obmedzené možnosti na prenos matematického zápisu. Vzorce na stránkach HTML sú najčastejšie prezentované ako grafika (rastrová alebo vektorová), ale táto metóda má zjavné nevýhody. Napríklad vzorec výkresu je takmer nemožné upraviť a jeho kvalita tlače zvyčajne zanecháva veľa požiadaviek. Už na základe toho je jasné, že pre Web je žiadúce nejako zakódovať matematickú symboliku a pre klientske programy (prehliadače) čo najtransparentnejšie. Vývoj týchto myšlienok viedol k vytvoreniu celej rodiny matematických značkovacích jazykov, medzi ktoré patrí aj dnes zvažovaný MathML.

Treba poznamenať, že problém reprezentácie matematických symbolov v elektronickej forme sa neobmedzuje len na potrebu vyvinúť samostatnú špecifikáciu. Ide o zložitý vedecko-technický problém, ktorý má ďaleko od konečného riešenia, čo potvrdzuje prítomnosť veľkého množstva navrhovaných prístupov, ktoré sú často navzájom nedostatočne koordinované. Jedným z takýchto prístupov sú špecializované značkovacie jazyky, medzi ktoré patrí MathML. Jeho vývojári si samozrejme uvedomovali hĺbku tohto problému a stanovili si za cieľ vytvoriť špecifikáciu, ktorá spĺňa nasledujúce obmedzené, no stále dosť dôležité požiadavky:

  • jednoduchosť vývoja a manuálna sada základnej matematickej notácie;
  • maximálna kompatibilita s inými matematickými formátmi, ktorú by mali zabezpečiť príslušné prevodníky;
  • schopnosť odosielať vzorce do rôznych koncových zariadení;
  • podpora rozšíriteľnosti, teda zavádzanie nových symbolov, schém a pod.

K týmto cieľom súvisiacim s princípmi konštrukcie špecifikácie boli pridané ďalšie súvisiace so zvláštnosťami používania MathML v aplikáciách. Je potrebné zabezpečiť výstup vzorcov na obrazovkách a tlačiarňach s najvyššou kvalitou, organizovať prostriedky výmeny informácií (napríklad vyrovnávacie operácie kopírovania/vkladania fragmentov vzorcov). Je jasné, že toto všetko budú implementovať vývojári aplikačného softvéru, ale na začiatku musia byť zabudované možnosti.

V niekoľkých slovách načrtneme miesto MathML v jeho príbuznej skupine matematických značkovacích jazykov. Na rozdiel od mnohých svojich predstaviteľov, z ktorých treba spomenúť predovšetkým TeX, má MathML sémantické prostriedky na vytváranie matematických výrazov. Ak je dokument toho istého TeXu v skutočnosti podrobným popisom nejakého textu s presným uvedením polohy všetkých jeho prvkov, potom je MathML (presnejšie viazaný na obsah) v tomto smere oveľa flexibilnejší, pretože finálnu podobu dokumentu je možné jednoducho meniť podľa požiadaviek užívateľa.

O MathML

MathML je podmnožinou rozšíreného značkovacieho jazyka XML, ktorý sa často používa na vytváranie iných jazykov. Toto použitie XML je dnes celkom prirodzené a dobre sa osvedčilo v iných prípadoch, keď použitie HTML na prenos nových typov údajov narazilo na obmedzenia tohto formátu. K dnešnému dňu W3C zverejnilo 2. vydanie verzie 2.0 špecifikácie jazyka MathML, čo naznačuje životaschopnosť a udržateľnosť projektu.

Všeobecným princípom používania MathML je, že matematické konštrukcie sú vložené do bežného HTML dokumentu a (ak prehliadač alebo špeciálny program podporuje túto špecifikáciu) sú adekvátne reprodukované, keď je dokument stiahnutý zo siete.

Prvá vec, s ktorou sa musíte v MathML vyrovnať a čo odlišuje tento značkovací jazyk od jeho analógov, je použitie dvoch spôsobov kódovania výrazov. Jedna z nich je založená na priamom prenose syntaxe formuly (prezentácie), druhá, naopak, odráža sémantiku výrazu (obsahu). Jednoducho povedané, prvý spôsob sprostredkúva zápis vzorca bez ohľadu na jeho význam, druhý, naopak, odráža jeho matematický obsah.

Syntaktické kódovanie

Ryža. jeden

Ak sa pozriete na formu reprezentácie rôznych matematických výrazov, môžete
všimnite si, že pri pomerne veľkom počte špeciálnych znakov existuje
pomerne málo spôsobov, ako ich usporiadať. Takto sa dajú vytvárať výrazy
pomocou horných a dolných indexov môže byť jedna časť vzorca nad / pod druhou,
výrazy môžu byť v maticových prvkoch atď. Tento princíp je
základom syntaktického kódovania, v ktorom sú matematické výrazy akejkoľvek zložitosti
sú tvorené pomocou malej sady šablón (takzvané schémy rozloženia),
zodpovedajú základným vzťahom, s ktorými sa stretávame v matematických vzorcoch.

Aby sme demonštrovali tento princíp, pozrime sa, ako sa bežný zlomok zapisuje v MathML. Má iba dva prvky - čitateľa a menovateľa, ktorý sa odráža v príslušnej šablóne:

Tu tag , ako už bolo spomenuté, slúži na vytvorenie skutočného zlomku. Atribút linethickness určuje hrúbku deliacej čiary, ak sa vynechá, použije sa štandardná hodnota (obe možnosti sú znázornené na obrázku).

Čitateľ je reprezentovaný značkou , ktorý zase obsahuje podradené prvky. Táto značka môže obsahovať ľubovoľný počet vnorených výrazov, ktoré vytvárajú vzorec, ktorý je horizontálne zarovnaný pozdĺž základnej čiary. V našom prípade ide o súčet dvoch premenných X a r(význam značiek a bude vysvetlené nižšie). Všimnite si, že záznam bez značky by viedlo k chybe, pretože prvý výraz, s ktorým sa v zázname stretneme, by sa bral ako čitateľ ( X). Nakoniec menovateľ pozostáva z jednej premennej Z, prešiel značkou .

Hlavnými prvkami používanými v reprezentácii MathML sú symboly (tokeny) a šablóny (schémy rozloženia uvedené vyššie). Prvým sú prvky jazyka, ktoré môžu obsahovať iba písmená (napríklad na označenie premenných) a vlastné matematické symboly, ale nie iné prvky.

Prvok slúži na zadávanie identifikátorov. Funguje podľa nasledujúceho pravidla: ak je hodnota prvku jeden znak, považuje sa za premennú a zobrazuje sa kurzívou, ak je hodnotou reťazec, zobrazuje sa v latinke (táto vlastnosť sa používa na písanie funkcií ako hriech, ln atď.). Prvok je navrhnutý tak, aby zobrazoval matematické operátory a , s ktorým sme sa ešte nestretli, je na zobrazovanie čísel. Každý z opísaných prvkov má určitú sadu atribútov, ktoré vám umožňujú zmeniť predvolené zobrazenie znakov.

Teraz sa pozrime na niektoré šablóny MathML, ktoré poskytujú základné matematické výrazy. Vyššie sme sa stretli s dvoma z nich: sú to značky na špecifikovanie obyčajného zlomku a výrazu zarovnaného pozdĺž základnej čiary. Ostatné najdôležitejšie vzory sa odovzdávajú s nasledujúcimi značkami:

  • vypíše radikálny znak s vnoreným výrazom. Podobná značka slúži na zobrazenie koreňa n stupeň;
  • určuje výraz uzavretý v zátvorkách. Atribúty možno použiť na určenie oddeľovača pre vnorené výrazy a niektoré ďalšie charakteristiky;
  • značky na odovzdávanie horných/dolných indexov. Napríklad výraz s horným indexom
    (stupeň) je uvedený ako HIGH_INDEX EXPRESSION

Existujú aj šablóny na navrhovanie takmer všetkých najdôležitejších matematických výrazov a matíc (spolu asi 30 typov).

Sémantické kódovanie

Teraz prejdime k spôsobu kódovania pomocou sémantiky výrazov. Ako je uvedené vyššie, odráža matematický obsah vzorca. Kľúčom k sprostredkovaniu sémantiky je prvok . Ukážme si jeho použitie na jednoduchom príklade. Nasledujúci kód vytvorí zlomok rovnakého tvaru, ako je znázornené na obr. jeden.

Ryža. 2

V našom príklade prvý ide prvok označujúci
delenie (zlomok). Povedzme hneď, že v sémantickom kódovaní väčšina operátorov
prechádzajú značkami ako , v ktorom pred uzatváracou uhlovou zátvorkou
je tam lomítko (takzvané „prázdne“ prvky). Potom nasledujte
argumenty: ešte jeden prvok , prechádzajúci operátorom súčtu X
a r a - Z. Podľa toho súčet (prvý argument operátora delenia)
zobrazí sa ako čitateľ zlomku a premenná Z- ako menovateľ. MathML
obsahuje asi 90 operátorov rozdelených do niekoľkých kategórií: aritmetické,
algebraické, logické atď.

V tomto príklade bol každý operátor, s ktorým sme sa stretli, aplikovaný na pár argumentov. Ale, ako vyplýva z vyššie uvedeného všeobecného pohľadu na prvok , môže existovať ľubovoľný počet argumentov (ak to samotný operátor umožňuje). Napríklad výraz znázornený na obr. 2 sa píše ako

V posledných dvoch príkladoch zostal jeden bod bez vysvetlenia – tagy na prenos
abecedné identifikátory a čísla. to a resp
- úplné analógy prvkov a pri kódovaní syntaxe.
Všimnite si, že značka nemá analóg pri použití sémantiky,
keďže všetky informácie o operátorovi sú prenášané špeciálnym operátorským štítkom,
prichádza po .

Ak chcete nastaviť štruktúru vzorca, nielen . Napríklad na vyjadrenie vzťahu (rovnosť, nerovnosť, inklúzia atď.) existuje špeciálna značka . Nasledujúci úryvok vytvorí vzorec znázornený na obr. 3.



X

r
z


Tu hovorí, že matematický výraz obsahuje jeden zo vzťahov a značku "prázdny". označuje jeho špecifický typ, "menej ako". ID bude na ľavej strane. X, vpravo - súčet dvoch premenných, určených pomocou známeho prvku .

Informácie, ktoré sme poskytli o MathML, aj keď zďaleka nie sú úplné, sú dosť na to, aby ste tento jazyk začali používať sami. Okrem toho existujú špeciálne softvérové ​​​​nástroje navrhnuté tak, aby sa zbavili rutinnej práce.

Softvér MathML

Súvisiaca stránka W3C poskytuje odkazy na približne
tri desiatky odporúčaných produktov pre prácu s MathML. Zdá sa, že najdôležitejšie je
situáciu s prehliadačmi, keďže v najväčšej miere charakterizuje stupeň rozpoznávania
akúkoľvek webovú technológiu. K dnešnému dňu sú správne pripravené iba dva produkty
interpretovať MathML: Amaya (ktorý je možné stiahnuť zo stránky rovnakého W3C) a
Mozilla. Žiaľ, iní vývojári sa neponáhľajú so zahrnutím podpory pre svoje produkty.
túto sľubnú technológiu. Naše najobľúbenejšie prehliadače Microsoft Internet
Prieskumník a Netscape Navigator v základnom MathML „nerozumejú“
existujú však špeciálne
zásuvné moduly - od IBM , Design
Veda, teoretik
interaktívne.

Tie isté tri spoločnosti tiež dodávajú kompletnejšie verzie svojho softvéru, ktorý je už navrhnutý na vytváranie dokumentov MathML. Príklady pre tento článok boli pripravené najmä v prehliadači IBM techexplorer Hypermedia Browser. Podobné úlohy je možné riešiť pomocou menej špecializovaných aplikácií. Napríklad počítačové matematické systémy (Mathematica, Maple, Mathcad) zvyčajne exportujú svoje dokumenty do formátu HTML s „škvrnami“ MathML.

MathML je podporovaný aj niektorými počítačovými publikačnými systémami na prípravu
vedeckej a technickej dokumentácie. Z najznámejších produktov tejto triedy
možno nazvať WebEQ,
čo je balík Java aplikácií, ktoré poskytujú kompletný cyklus
a publikovanie dokumentov vo formátoch MathML a WebTeX; wolfram
Publicon za prípravu matematických textov v prezentačnej kvalite s
schopnosť exportovať do MathML; textové procesory od MacKichana
Softvér, ktorý dokáže ukladať dokumenty z ich hlavného formátu TeX
v MathML.

Existujú aj špeciálne konvertory na prevod do/z MathML. TeX je najbežnejší zdrojový formát. MathML sa zase zmení na rovnaký TeX alebo populárne grafické formáty.

Avšak aj bez takýchto, nie vždy dostupných balíkov, ktoré máte k dispozícii, môžete po určitej príprave vytvárať dokumenty MathML manuálne. Ide predsa o obyčajné textové súbory, na prácu s ktorými (rovnako ako s HTML) stačí jednoduchý textový editor.

Na záver ešte raz zdôrazňujeme, že MathML sa objavil relatívne nedávno (popis verzie 1.0 bol publikovaný v roku 1998) a je v plienkach. Nedá sa vylúčiť, že o pár rokov MathML ustúpi výkonnejšej a pokročilejšej technológii. Už teraz však možno povedať, že hlboké myšlienky vložené do tohto jazyka poslúžia ako pevný základ pre vytváranie budúcich metód prezentácie zložitých vedeckých a technických dokumentov.