Príprava matematických textov pomocou MathML. Cvičenie: MathML (Mathematical Markup Language) Mathml príklady

  • 05.11.2019

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 zastupovanie, ale tiež význam prvky vzorca. Na doplnenie MathML sa vyvíja aj matematický sémantický značkovací systém. 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.

Pred HTML5 bolo používanie vzorcov skutočným problémom. 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 sa venovali 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 nemožno ho 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ť doručené 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

S rozvojom matematickej symboliky sa metódy rozví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á
kníh a napokon, moderná doba je charakteristická neustá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 možno „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 obrazovky a tlačiarne 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 možnosti musia byť zabudované na začiatku.

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 (špecifickejšie viazaný na obsah) v tomto smere oveľa flexibilnejší, keďž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). Zjednodušene 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úce 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, ktorý sa v zázname vyskytuje, by sa považoval za čitateľa ( X). Napokon 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 dvomi 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

K dispozícii sú 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ý nájdený operátor 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 operátor sám 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. Toto 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 systémami na prípravu
vedecká a technická dokumentácia. 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.

Pred HTML5 bolo používanie vzorcov skutočným problémom. 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 sa venovali 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 nemožno ho 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ť doručené 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

Táto stránka vysvetľuje, ako písať matematické výrazy pomocou jazyka MathML. Rovnako ako HTML, základnými prvkami MathML sú značky a atribúty. HTML dokument sa stáva zložitým, keď obsahuje štruktúry ako zoznamy alebo tabuľky, ale našťastie existuje veľa generátorov založených na jednoduchom zápise, WYSIWYG editoroch a iných systémoch na správu obsahu, ktoré vám pomôžu vytvárať webové stránky.

Matematická notácia je ešte zložitejšia so štruktúrami, ako sú zlomky, odmocniny alebo matice, ktoré si pravdepodobne vyžadujú svoje vlastné značky. Preto sú vývojové nástroje súvisiace s MathML veľmi dôležité. Niektoré z týchto nástrojov sú popísané nižšie. Najmä tím Mozilla MathML vyvíja TeXZilla (prevodník JavaScript Unicode LaTeX-to-MathML), ktorý je určený na použitie v mnohých tu opísaných scenároch. Samozrejme, tento zoznam nie je v žiadnom prípade vyčerpávajúci a odporúčame vám pozrieť si zoznam softvéru W3C MathML, kde nájdete ďalšie nástroje.

Všimnite si, že MathML je dobre integrovaný do HTML5. Využiť môžete najmä bežné webové nástroje ako CSS, DOM, Javascript, či SVG. Táto téma je mimo rámca tohto dokumentu, ale ktokoľvek so základnými znalosťami webových jazykov môže tieto nástroje jednoducho integrovať do MathML. Pozrite si naše príklady a ďalšie podrobnosti.

Použitie MathML

MathML na stránkach HTML

Presentation MathML môžete použiť v dokumentoch HTML5:

MathML v HTML5

MathML v HTML5

Druhá odmocnina z dvoch: 2



Prehliadače obsah MathML nepodporujú. Odporúča sa, aby ste pred publikovaním rozloženie skonvertovali z Content MathML na Presentation MathML, napríklad pomocou šablóny štýlov. Nástroje uvedené na tejto stránke generujú prezentačný MathML.

Možnosti pre prehliadače bez podpory MathML

Bohužiaľ, niektoré prehliadače nedokážu zobraziť výrazy MathML alebo majú obmedzenú podporu. Preto budete musieť použiť polyfill MathML, aby ste poskytli nejaké núdzové vykresľovanie. Ak potrebujete iba základné matematické konštrukty, ako sú tie, ktoré sa používajú v tejto wiki MDN, potom môže stačiť malá šablóna so štýlmi mathml.css. Ak ho chcete použiť, jednoducho vložte jeden riadok do hlavy dokumentu:

Ak potrebujete zložitejšie konštrukcie, môžete namiesto toho použiť bohatšiu knižnicu MathJax ako polyfill MathML:

Všimnite si, že tieto dva skripty rozpoznávajú prvky mspace alebo mpadded (pozri Maticu kompatibility prehliadača na týchto stránkach). Existuje aj podobný skript, ktorý zobrazuje varovanie v hornej časti stránky pre prehliadače bez dobrej podpory MathML a umožňuje používateľom vybrať si jednu z nasledujúcich možností:

Ak nechcete použiť tento odkaz na GitHub, ale namiesto toho chcete integrovať tieto polyfilly alebo niečo iné do svojho projektu, možno budete potrebovať skript, ktorý kontroluje úroveň podpory MathML. Napríklad nasledujúce funkčné testy na podporu MathML testovaním prvku mspace (môžte nahradiť mspace mpadded):

Funkcia hasMathMLSupport() ( var div = document.createElement("div"), box; div.innerHTML = " "; document.body.appendChild(div); box = div.firstChild.firstChild.getBoundingClientRect(); document.body.removeChild(div); return Math.abs(box.height - 23)<= 1 && Math.abs(box.width - 77) <= 1; }

Alternatívne, nasledujúca analýza reťazca UA bude definovať vykresľovacie jadro s natívnou podporou MathML (Gecko a WebKit). Upozorňujeme, že analýza reťazca UA nie je najspoľahlivejšou metódou a môže zlyhať medzi verziou:

Varua = navigator.userAgent; var isGecko = ua.indexOf("Gecko") > -1 && ua.indexOf("KHTML") === -1 && ua.indexOf("Trident") === -1; var isWebKit = ua.indexOf("AppleWebKit") > -1 && ua.indexOf("Chrome") === -1;

Matematické písma

Ak chcete získať dobré označenie alebo štýl, je dôležité mať matematické písma. Vždy je dobré poskytnúť odkaz na príručku k fontom MDN, aby si vaši návštevníci mohli skontrolovať, či sú v ich systéme nainštalované vhodné fonty. Je tiež dobré, ak sa vytvorí záložná kópia webových písiem.

Pred verziou Gecko 31.0 (Firefox 31.0 / Thunderbird 31.0 / SeaMonkey 2.28) bolo únavné inštalovať matematické fonty (pozrite si pokyny na inštaláciu fontov Mozilla 2.0). Pre Gecko 31.0 (Firefox 31.0 / Thunderbird 31.0 / SeaMonkey 2.28) je to oveľa jednoduchšie a kompatibilné so všetkými nástrojmi na vykresľovanie webu s podporou MathML. Tu je napríklad minimálna šablóna so štýlmi na použitie písma Latin Modern pre text a písma Latin Modern Math pre matematické výrazy:

@namespace url("http://www.w3.org/1999/xhtml"); @namespace m url("http://www.w3.org/1998/Math/MathML"); telo, m|mtext ( rodina fontov: Latin Modern; ) m|math ( rodina fontov: Latin Modern Math; )

MathML v dokumentoch XML (XHTML, EPUB atď.)

Ak z nejakého dôvodu potrebujete použiť MathML v dokumentoch XML, určite dodržujte obvyklé požiadavky: dobre vytvorený dokument, použitie správneho typu MIME, priestor názvov MathML "http://www.w3.org/1998/Math/ MathML" s koreňovým prvkom . Napríklad XHTML verzia predchádzajúceho príkladu vyzerá takto:

Príklad XHTML+MathML

Príklad XHTML+MathML

Druhá odmocnina z dvoch: 2



MathML v e-mailových klientoch a klientoch na odosielanie okamžitých správ

Moderní e-mailoví klienti môžu odosielať a prijímať e-mailové správy HTML5, čo znamená, že môžu používať výrazy MathML. Nezabudnite povoliť možnosti „odoslať ako HTML“ a „zobraziť ako HTML“. V Thunderbirde môžete použiť príkaz „Insert HTML“ na vloženie kódu HTML + MathML. MathBird je praktický doplnok Thunderbird na vkladanie takýchto výrazov MathML pomocou vstupnej syntaxe AsciiMath. Navyše, vstupné pole LaTeX-to-MathML bolo tiež integrované do SeaMonkey od verzie 2.28 a do Thunderbirdu od verzie 31. Na druhej strane spracovanie kódu MathML a kvalita vykresľovania MathML sú špecifické pre poštového klienta. Aj keď váš prehliadač podporuje MathML, váš e-mail vám môže brániť v odosielaní alebo prijímaní správ s MathML vo vnútri.

Klienti IM na báze Gecko môžu integrovať konvertor založený na Javascripte, ktorý konvertuje text na kód MathML (pozri nižšie) a zobrazuje výrazy MathML generované z obyčajného textu IM. Existuje napríklad doplnok Instantbird, ktorý si poradí s výrazmi LaTeXu.

Konverzia z jednoduchej syntaxe

Existuje mnoho jednoduchých systémov syntaxe na generovanie stránok HTML (ako sú wiki alebo značkovacie syntaxe). To isté platí pre MathML: napríklad ASCII syntaxe používané v kalkulačkách alebo výkonnejší jazyk LaTeX sú medzi vedeckou komunitou veľmi obľúbené. V tejto časti uvádzame niektoré z týchto nástrojov na prevod z jednoduchej syntaxe do MathML.

  • plusy:
    • Písanie matematických výrazov môže vyžadovať iba štandardný textový editor.
    • K dispozícii je veľa nástrojov, z ktorých niektoré sú kompatibilné s klasickým pracovným postupom LaTeX-to-pdf.
    • To vám umožní prístup k pokročilým funkciám makier podobným makrám LaTeXu.
  • mínusy:
    • Môže byť ťažšie používať: ľudia sa musia naučiť syntax, preklepy v kóde môžu ľahko viesť k chybám analýzy alebo vykresľovania atď.
    • Rozhranie nie je užívateľsky prívetivé: existuje len editor kódu bez okamžitého zobrazenia matematického výrazu.
    • Žiadna zo syntaxí nebola štandardizovaná, čo sťažuje krížovú kompatibilitu medzi prevodníkmi. Dokonca aj populárny jazyk LaTeX neustále rastie s novými balíkmi.

Konverzia na strane klienta

Na webe je najzrejmejšou metódou konverzie jednoduchej syntaxe do stromu DOM použitie Javascriptu a na splnenie tejto úlohy bolo, samozrejme, vyvinutých mnoho knižníc.

  • plusy:
    • Veľmi jednoduché nastavenie, všetko, čo musíte urobiť, je nahrať niekoľko súborov Javascript a CSS a/alebo pridať odkazy do hlavičky dokumentu.
    • Je to čisto webové riešenie: všetko spravia prehliadače a nie je potrebné inštalovať ani kompilovať žiadny ďalší softvér.
  • mínusy:
    • Toto nebude fungovať, ak má používateľ vypnutý Javascript.
    • Kód MathML nie je podporovaný webovými prehľadávačmi (ako sú matematické vyhľadávacie nástroje alebo agregátory správ). Váš obsah sa na Planete nebude zobrazovať správne.
    • Konverzia sa musí vykonať pri každom načítaní stránky, môže byť pomalá a môže byť v konflikte s analýzou HTML (napr.<" для тегов или "$" для денежных сумм)
    • Možno budete musieť synchronizovať konvertor Javascript s inými programami Javascript na vašej stránke.
latexmlc --dest foo.html --javascript= http://fred-wang.github.io/mathml.css/mspace.js foo.tex # Možnosť pridať CSS latexmlc --dest foo.html --javascript= http://fred-wang.github.io/mathjax.js/mpadded-min.js foo.tex # Možnosť pridať MathJax

Ak je váš dokument LaTeX veľký, možno ho budete chcieť rozdeliť na niekoľko menších stránok, než aby ste všetko umiestnili na jednu veľkú stránku. Napríklad to rozdelí stránky na úrovni \section:

Latexmlc --dest foo.html --splitat=sekcia foo.tex

Konverzia na strane servera

  • plusy:
    • Konverzia sa vykonáva na strane servera a výsledný text MathML je možné uložiť do vyrovnávacej pamäte, čo je efektívnejšie a čistejšie ako konverzia na strane klienta.
  • mínusy:
    • Nastavenie môže byť trochu zložitejšie, pretože na svojom serveri potrebujete práva správcu.

Informácie o zdrojovom dokumente

  • Autori: Frederic Wang
  • Ďalší členovia: Florian Scholz
  • Informácie o autorských právach (Copyright): Autorské práva na tento obsah (© 2010) patria jednotlivým prispievateľom do projektu mozilla.org; Obsah je dostupný pod Creative Commons | .