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( Matematické značky 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 vytváranie dokumentov MathML. 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 na všeobecnej komunikačnej úrovni 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. Rôzne programy, ktoré pracujú s MathML, môžu byť použité na tom istom dokumente na výstup do reči a tlače, ako aj na vstup do systému počítačovej algebry a na jeho správu 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 generovanie dokumentov a zobrazovanie. 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ý globálny mechanizmus rozšírenia a matematické informácie sú len jedným z typov štruktúrovaných údajov, ktoré je možné 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, zatiaľ čo 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šovanie je chyba 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 používa tento dokument 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 jednotka horizontálnej 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. Jednotky súvisiace s písmom sú uprednostňované pred absolútnymi jednotkami, pretože umožňujú zväčšiť alebo zmenšiť veľkosť vykreslené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é, s výnimkou prípadov, keď je to výslovne uvedené v syntaxi (ako "+" alebo "+") a jeho prítomnosť môže zmeniť význam hodnoty atribútu (napr. popí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 sa jednotky používané v typografickej sadzbe vyberajú ako štandardné jednotky; ak nie je uvedená konkrétna 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 v tabuľkách atribútov v normálnom písme 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 vykresľovania, 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 zo špecifickej č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é s SGML syntaktickými analyzátormi, ktoré umožňujú, aby viaceré atribúty jedného prvku MathML mali rovnakú hodnotu (napríklad true a false), a aby sa umožnilo rozšírenie zoznamu 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, ako je tento:

"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/

Hoci internet vznikol z veľkej časti úsilím fyzikov a matematikov, cesta matematického vzorca na jeho stránkach bola veľmi dlhá a tŕnistá. Až v posledných rokoch môžeme povedať, že matematické vzorce sa na webe pevne usadili.

Faktom je, že v jazyku HTML, pomocou ktorého sa vytvárajú webové stránky, neexistujú žiadne prostriedky na zobrazenie vzorcov. Tvorcovia webových stránok sa museli nejako dostať von: použiť tabuľky, indexy a iné riešenia. Uvádza sa zoznam takýchto techník a možno ho zhrnúť takto - cesta je náročná a výsledok je mizerný.

Čiastočným východiskom bolo vkladanie vzorcov vo forme obrazcov. Nástrojov na ich vytváranie je veľa. Môžete použiť vizuálny editor (napríklad Editor rovníc z balíka Microsoft Office) alebo previesť vzorec napísaný v LaTeX-e pomocou online konvertora. Nakoniec je tu Google Docs, ktorého editor vzorcov implementuje obe tieto funkcie. Správca webu však musel vybrať rozmery a umiestniť obrázok. O interaktivite stránky sa teda mohlo len snívať. Na to bol potrebný jazyk, ktorý by umožnil návštevníkovi stránky písať vzorce sám.

Na prelome roku 2000 existovali dva takéto jazyky: LaTeX – na vizuálnu reprezentáciu vzorcov a MathML – na popis ich štruktúry. V tom čase sa LaTeX používal už mnoho rokov na prípravu matematických textov, takže nie je prekvapujúce, že sa používal na sieťovú matematiku. Jedným z prvých pokusov tohto druhu bol program LaTeXML. Je napísaný v Perle, spracováva dokument LaTeX a výstupom je súbor XML. Jeho post-procesor následne prevedie výsledné XML do iných textových formátov ako HTML a XHTML (a teraz aj MathML) alebo obrázkov. Môžete vidieť výsledky práce LaTeXML.

Porovnanie zápisu vzorca vMathML aLaTeX

Problémy s interaktivitou to však nevyriešilo. Aby to bolo možné, musel byť obslužný program spustený priamo v prehliadači. jsMath Davida Cervoneho ako prvý prešiel na stranu klienta. Prevádza vzorce napísané používateľom v LaTeX-e na obrázky vykreslené pomocou HTML a CSS. To umožnilo vytvárať skutočne interaktívne matematické webové stránky.

Prvý krok bol urobený, ale stále bolo veľa problémov. Bolo potrebné zabezpečiť, aby program fungoval vo všetkých prehliadačoch (počnúc veteránmi, ako je Internet Explorer 6) a exportovať vzorce do rôznych formátov, predovšetkým do MathML. Na vyriešenie týchto problémov bol vyzvaný projekt MathJax, ktorý bol spustený v roku 2009 pod vedením Americkej matematickej spoločnosti a podporovaný portálom Stack Exchange. Výsledná knižnica MathJax funguje vo všetkých prehliadačoch a dokáže ukladať vzorce v HTML+CSS, SVG a MathML. Používateľ nemusí inštalovať pluginy ani fonty – teraz to jednoducho funguje.

Zadanie vzorcaMatematický Jax…

a jeho zobrazenie

Ak jsMath oživil matematiku na internete, potom MathJax „vypustil džina z fľaše“, čo umožnilo realizovať množstvo skvelých nápadov v krátkom čase. Chcete získať matematické vzdelanie na webe? Pozrite sa sem a sem. Potrebujete chatovať s kolegami? Prosím. Vytvárať publikácie so „živým“ kódom a vzorcami? Tu a tu. Máte záujem o systém počítačovej algebry v systéme Android? Prečo nie . Chatovať s podporou matematiky? ľahko . Vytvorte si blog, kde budete hovoriť o svojej práci? Prosím . MathJax tiež používa Wikipédiu, bezplatný archív elektronických publikácií arXiv a All-Russian Mathematical Portal. MathJax sa tak stal de facto štandardom pre zobrazovanie vzorcov na webových stránkach.

Znamená to, že všetky problémy sú minulosťou? Samozrejme, že nie. takže,

.

Potreba Označenie MathML je spôsobené tým, že formát HTML má napriek svojim mnohým úžasným vlastnostiam dosť obmedzené možnosti prenosu 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. Vývoj nápadov viedol k vytvoreniu celej rodiny matematických značkovacích jazykov, medzi ktoré patrí aj MathML.Vývojári si boli vedomí hĺbky problému a stanovili si cieľ vytvoriť špecifikáciu, ktorá spĺňa nasledujúce obmedzené, ale stále dosť dôležité požiadavky:

ü jednoduchosť učenia a manuálne písanie základných matematických zápisov

ü maximálnu kompatibilitu s inými matematickými formátmi, ktorú musia zabezpečiť príslušné obálky

ü schopnosť zobrazovať vzorce na rôznych koncových zariadeniach

ü podpora rozšíriteľnosti, t.j. zavádzanie nových symbolov, schém.

Všeobecným princípom používania MathML je, že matematické konštrukty sú vložené do normálneho HTML dokumentu a reprodukované, keď je dokument stiahnutý z webu.

Jazyk MathML ponúka flexibilný a rozšíriteľný systém na písanie matematického materiálu, ktorý umožňuje interakciu s externými programami a vysokokvalitné zobrazovanie v rôznych informačných prostrediach. Všeobecným princípom používania MathML je vložiť matematické konštrukcie do XHTML/HTML dokumentu.Vytváranie webových stránok pomocou MathML je možné tromi spôsobmi: HTML + prezentačný MathML, XHTML + prezentačný MathML, XML + MathML

Na prevod matematických výrazov do MathML existuje veľa komunálne služby. Hlavné prehliadače ktoré podporujú priamo MathML sú najnovšie verzie Mozilla a jej odrôd. Mnoho iných prehliadačov podporuje tento formát nastavením vhodného pluginy . MathML navyše podporujú hlavné kancelárske programy ako napr Microsoft Word a OpenOffice.org , ako aj matematické softvérové ​​produkty ako napr Mathematica, Maple. MathML - asi Veľmi výkonný a všestranný značkovací jazyk vzorcov. Pravda, ed.aktivovať vzorce (ačítať) je dosť ťažké. Jazyk MathML je založený na technológii XML a na definovanie fragmentov vzorcov sa používajú jeho vlastné značky.

Príklad jednoduchého popisu vzorca

X

+

3

Príklad 2

Vkladanie vzorcov do html dokumentov pomocou značiek TeX

TeXje populárny značkovací jazyk, ktorý mnoho ľudí používa, najmä v matematickom svete, textový procesor, systém formátovania dokumentov.

Balík vám umožňuje automatizovať mnohé úlohy písania a prípravy článkov, vrátane písania vo viacerých jazykoch, číslovania sekcií a vzorcov, krížových odkazov, umiestňovania ilustrácií a tabuliek na stránku, udržiavania bibliografie atď.

Vzorce v LaTeX-e sa zadávajú pomocou špeciálnych príkazov. Napríklad vzorec prenormálne rozdelenie v LaTeXe by to vyzeralo takto: \frac(1)(\sigma\sqrt(2\pi))\exp\left(-\frac((x-\mu) ^2)(2\sigma^2)\ right )

a zobrazí sa takto:

Zdrojový kód matematického vzorca je napísaný vo vnútri značky ... Medzery sú ignorované (TeX si ich vytvorí sám). Prázdne riadky nie sú povolené.

Výhody TEXu:

  • existujú softvérové ​​implementácie TEXu pre takmer všetky typy počítačov
  • nízke nároky na hardvérové ​​prostriedky (na prevádzku postačuje IBM PC kompatibilný počítač s procesorom 286/386)
  • prenosnosť zdrojových textov (výsledky formátovania, t. j. konečný vzhľad vášho dokumentu, budú rovnaké pre všetky platformy)
  • tlač vytvára text v typografickej kvalite,
  • veľké množstvo bezplatných implementácií
  • schopnosť pripraviť matematické a iné vzorce akejkoľvek zložitosti, ktoré budú vyzerať skvele po vytlačení, pri vynaložení minimálneho úsilia
  • rozšíriteľnosť (na základe existujúcich základných príkazov si môžete vytvárať vlastné, zložitejšie)

Jednou z hlavných funkcií začlenených do TeXu počas jeho návrhu bola schopnosť jednoducho nastavovať matematické vzorce.

Sada zložitých vzorcov je oveľa jednoduchšia a rýchlejšia ako „vizuálne“ editory (M $ Equation, MathCAD). Je to viditeľné najmä tam, kde je potrebné zarovnať vzorce navzájom, usporiadať číslovanie a tiež pri použití neštandardného matematického zápisu.

Vzorce sú podporované iba v notácii TeX. Príklad:

notation='TeX'>E=mc^2

ktorý bude vyzerať takto:

Vkladanie vzorcov do html dokumentov ako obrázkov

Najjednoduchším spôsobom je vložiť vzorce ako bitmapy pomocou značky img. Obrázok vzorca je možné získať manuálne (z vizuálneho editora vzorcov) aj automaticky. Vzorce sú reprezentované ako zásuvné objekty vložené do dokumentu. Môžu obsahovať viacúrovňové jednoduché zlomky, grécke písmená, matice.

Výhody:

sa zobrazujú rovnako ako v origináli vo všetkých prehliadačoch, ktoré zobrazujú obrázky

pomerne jednoduché kopírovanie do dokumentov balíka Office

nedostatky:

najväčšia veľkosť strany so vzorcami zo všetkých uvažovaných možností

nie je možné zmeniť veľkosť vzorca - často je príliš malý alebo príliš veľký vzhľadom na text alebo príliš malý alebo príliš veľký vzhľadom na text

pri tlači vyzerá zle – rozlíšenia sa nezhodujú

je nemožné zmeniť vzorec bez jeho zdrojového kódu a špeciálneho programu

pomerne ťažké vycentrovať vzorec v texte

nie je možné preniesť vzorec slovami - v prípade potreby rozdeliť do niekoľkých riadkov

Referencie.

1. 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.

2. D. Knut. "Všetko o TeX."

3. http://math.accent.kiev.ua

4. http://www.raleigh.ru/MathML/MathML2/chapter2.html

5. www.elbib.ru/index.phtml?page=elbib/rus/journal/2005/

6. http://www.ibb.ru/articles/tex/node3.phtml

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 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 pre 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š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. 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 reprezentačné prvky 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é. Znaky medzier 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 nulový 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ň je možné na programovanie 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 oboznámenie čitateľa 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

Všetko uvedené platí pre jednotlivé vzorce mimo kontextu dokumentu. Pozrime sa bližšie na príklad zodpovedajúci príkladu „Hello, World!“, ktorý sa používa pri učení sa programovacích jazykov. Predstavujeme úplný kód dokumentu XHTML 1.0, ktorý obsahuje druhú mocninu dvoch premenných diskutovaných vyššie:

Hello Square od MathML

Toto je perfektný štvorec:

Toto je štandardná štruktúra dokumentu XHTML. Začína to otváracou značkou Obsahuje deklaráciu priestoru názvov XML a deklaráciu jazyka. Prvok head obsahuje nadpis ako zvyčajne. Otváracia značka začiatok má tiež deklaráciu menného priestoru so skratkovým prefixovým písmenom m, ktoré sa má použiť pre štandardný menný priestor MathML. Potom nasleduje obvyklý odsek. A nakoniec je tu prvok math, ktorý má tiež deklaráciu menného priestoru. Vnútri matematického prvku je označenie MathML.

Príklady MathML

Zobraziť príklady značiek

Zápis: X 2 + 4X + 4 = 0.

Značenie:

Všimnite si použitie vnorených prvkov mrow na označenie výrazov. Napríklad ľavá strana rovnice je operandom pre "=". Zvýraznenie výrazov výrazne zlepšuje štruktúru vizuálneho zobrazenia, prehrávania hlasu a zalamovania riadkov. Symbol MathML InvisibleTimes sa používa na to, aby povedal rendereru, že medzi 4 a x nie je povolené žiadne zalomenie riadku. V skutočnosti sa toto použitie tohto prvku, zavedené v MathML 1.0, neodporúča. Všetky údaje vo formáte čistého textu sú špecifikované kódmi Unicode. Zatiaľ čo v Unicode 3.2 sa očakáva náhradný znak a zvažujú sa návrhy na zlepšenie Unicode, v aktuálnej verzii Unicode 3.0 sa takýto znak nepoužíva. Môžeme použiť očakávaný číselný odkaz ࠎ, ale pre prehľadnosť budeme v príkladoch naďalej používať prvok InvisibleTimes.

Značenie:

±

Prvky mfrac a msqrt sa používajú na vytváranie zlomkov a odmocnín.

Všimnite si, že znamienko plus/mínus je dané špeciálnou entitou , aj keď v tomto prípade existuje znak Unicode ako B1;. MathML poskytuje rozsiahly zoznam názvov prvkov, ktoré definujú matematické symboly. Okrem matematických symbolov na zobrazenie a tlač dokumentu poskytuje MathML aj symboly na reprodukciu dokumentu pomocou reči. Pre prehrávanie pomocou reči je dôležité automaticky určiť, ako sa má fragment čítať.

ako" z vynásobte hodnotou X plus r"alebo" z vynásobiť X plus r". Znaky (U+2062) a (U+2061) poskytujú autorom spôsob, ako priamo zakódovať takéto rozdiely pre rečové programy. Napríklad v prvom prípade by mal byť znak (U+2062) vložený za riadok obsahujúce z. MathML tiež obsahuje entity ako (U+2146) predstavujúce diferenciál. Pri tlači sa zobrazuje v intervaloch odlišných od obvyklého znaku „d“ a možno ho vysloviť ako „d“ alebo „vzhľadom k“. Zatiaľ čo na odstránenie nejednoznačnosti sa používajú značky obsahu alebo akýkoľvek iný mechanizmus, autori by mali vždy použiť znaky opísané vyššie ako entity, aby boli dokumenty prístupnejšie.

Značenie:

X

r

z

w

Prvok mtable ukazuje na začiatok tabuľky v MathML. Element mtr definuje riadok tabuľky a element mtd obsahuje údaje pre element riadok (bunka). Väčšina prvkov má atribúty, ktoré určujú vlastnosti zobrazenia na obrazovke a na tlači. Napríklad prvok mfenced má atribúty, ktoré určujú, ktoré znaky by sa mali použiť na začiatku a na konci výrazu zoskupenia. Atribúty prvkov operátora sú nastavené na predvolenú hodnotu definovanú odkazom pomocou prvku .