1.1 Matematika a její zápis

1.2 Původ a cíle

1.2.1 Historie MathML

1.2.2 Omezení HTML

1.2.3 Požadavky na matematické značkování

1.2.4 Cíle projektu MathML

1.3 Role MathML na webu

1.3.1 Stávající matematické značkovací jazyky

1.3.2 Mechanismus rozšíření HTML

1.3.3 Mechanismus rozšíření prohlížeče

1.4 Přehled MathML

1.4.1 Taxonomie prvků MathML

1.4.2 Označení zobrazení

1.4.3 Označení obsahu

1.4.4 Kombinace prezentace a obsahu

1.5 MathML v dokumentech

1.6 Příklady MathML

1.6.1 Zobrazení příkladů značek

1.6.2 Příklady označení obsahu

1.6.3 Příklady smíšených značek

1.7 Syntaxe a gramatika MathML

1.7.2 Pří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 pro matematické aplikace. Byl vyvinut konsorciem WWW (W3C) a přijat jako doporučení. současná verze je Mathematical Markup Language (MathML) verze 2.0 (druhé vydání), schváleno 21. října 2003.

MathML implementuje dva "úhly pohledu" matematického značení. Jedním z jeho typů je Presentation Markup, který popisuje vizuální formu reprezentace matematického vzorce. Druhým je Content Markup, který vyjadřuje sémantický obsah.

MathML zohledňuje nejen prezentaci, ale také význam prvků vzorce. Vyvíjí se také matematický sémantický značkovací systém, který doplní MathML. Jmenuje se OpenMath.

1.2.1 Historie MathML

Úkol prezentovat matematické informace pro počítačové zpracování a elektronické komunikační prostředky vznikl dávno před nástupem internetu. Dříve bylo běžnou praxí, že vědci psali články v nějaké formě založené na znacích ASCII a poté si je posílali prostřednictvím e-mailem. Několik matematických značkovacích jazyků, zejména T E X, bylo široce používáno již v roce 1992, tedy dříve, než měl web tak prominentní postavení.

Síť se od počátku osvědčila jako velmi účinná metoda zpřístupnit informace velkému počtu lidí. I když byl World Wide Web původně koncipován a implementován vědci pro vědce, možnosti začlenění matematických výrazů do HTML byly extrémně omezené. V současné době je většina matematických informací na webu prezentována ve formě textu grafické obrázky vědecké výrazy (ve formátu GIF nebo JPEG) nebo jako celé dokumenty PDF.

World Wide Web Consortium (W3C) pochopilo, že hlavním problémem je nedostatek základů pro vědeckou komunikaci. Již v roce 1994 předložil Dave Raggett návrh na zahrnutí HTML Math do prototypu HTML 3.0. Na konferenci v Darmstadtu v dubnu 1995 se konal kulatý stůl o matematickém zápisu. V listopadu téhož roku předložili zástupci Wolfram Research týmu W3C návrh na implementaci podpory matematiky v HTML. Schůzka Iniciativy digitální knihovny v Champaign-Urbana v květnu 1996 sehrála důležitou roli při sbližování mnoha zúčastněných stran. Toto setkání vyústilo ve vytvoření redakční rady pro HTML Math. Následně toto pracovní skupina rostla a v březnu 1997 byla formálně přeformována jako první W3C Math Working Group. Druhá W3C Math Working Group byla založena v červenci 1998.

Projekt MathML odráží zájmy a názory různých skupin specialistů. Mnoho ve vývoji MathML si zaslouží zvláštní zmínku. Týká se to například otázky přístupnosti, kde byly obzvláště hmatatelné potíže. T. V. Raman udělal v tomto směru velký kus práce. Neil Soiffer a Bruce Smith z Wolfram Research se podělili o své zkušenosti s řešením problémů matematické reprezentace získané během práce na projektu Mathematica 3.0. Jejich nápady měly důležitý vliv na strukturu pohledových prvků. Paul Topping z Design Science také přispěl k matematickému formátování a úpravám. MathML velmi těží z partnerství s řadou členů pracovních skupin spojených s další prací na kódování matematických informací v SGML a v komunitách počítačové algebry. Patří mezi ně Stephen Buswell ze 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 byl také ovlivněn projektem OpenMath, prací pracovní skupiny ISO 12083 a prací Stilo Technologies na fragmentu DTD pro „sémantickou“ matematiku. Americká matematická společnost hrála klíčovou roli ve vývoji MathML. Zástupci této organizace se mimo jiné stali předsedy obou W3C Math Working Groups. Od května 1996 do března 1997 kapelu vedl Ron Whitney. Patrick Ion byl spolupředsedou skupiny od března 1997 do června 1998 s Robertem Minerem z Geometry Center a od července 1998 s Angelem Diazem z IBM.

Cíle vývoje MathML vyžadují flexibilní a rozšiřitelný systém matematických zápisů, který umožňuje interakci s externími programy a vysoce kvalitní zobrazení v různých informačních prostředích. Ale každý značkovací jazyk, který splňuje všechny tyto požadavky, je poměrně komplikovaný.

Pro mnoho uživatelských skupin, jako jsou studenti, je zároveň důležité mít snadný způsob, jak do webových stránek zahrnout matematické výrazy. Podobně pro další skupiny, např. pro uživatele systému T E X, nejlepší řešení existoval by systém, který by umožňoval přímé začlenění značek do webových stránek pomocí jazyka, jako je T E X. Obecně platí, že různé skupiny uživatelů vyžadují různé formy vstupu a výstupu, které nejlépe vyhovují jejich potřebám. Systém pro umísťování matematických dokumentů na web by proto v ideálním případě měl poskytovat jak specializované služby pro vstup a výstup, tak i obecné služby pro výměnu a zobrazování informací v různých informačních prostředích.

V praxi vede přezkum toho, co by měl matematický standard poskytovat v síti pro specializované a obecné potřeby, k myšlence vrstvené architektury. První úroveň zahrnuje standardní výkonné nástroje pro výměnu, zpracování a zobrazení matematických dat. Druhá úroveň zahrnuje specializované nástroje určené pro konkrétní skupiny uživatelů, pomocí kterých můžete snadno kódovat matematické informace pro distribuci omezenému okruhu uživatelů.

MathML je navrženo pro označení matematických informací na nižší, obecnější úrovni dvouvrstvé architektury. To zahrnuje označení složité notační a sémantické struktury v přísné, pravidelné formě, kterou lze snadno zpracovat zobrazovacími, vyhledávacími a indexovacími nástroji a dalšími matematickými aplikacemi.

V důsledku toho není značkování MathML určeno k přímému použití autory. MathML je čitelný pro člověka, což hodně pomáhá při ladění, ale ve všech případech kromě těch nejjednodušších je příliš složité na ruční kódování. Místo toho budou muset autoři používat speciální editory vzorců, převodníky a další specializované software pro tvoření MathML dokumenty. Alternativně mohou některé vykreslovací programy a systémy podpory matematických dokumentů převádět jiné vstupní formáty do MathML za běhu.

V některých ohledech je MathML podobný jiným nízkoúrovňovým komunikačním formátům, jako je jazyk PostScript vyvinutý společností Adobe. Můžete vytvářet PostScriptové soubory různé způsoby, v závislosti na vašich potřebách: odborníci je vytvářejí a upravují ručně, autoři je vytvářejí pomocí textové procesory, designéři - ilustrátoři a tak dále. Pokud máte PostScriptový soubor, můžete jej distribuovat velmi širokému publiku, protože PostScriptová zobrazovací zařízení, jako jsou tiskárny a prohlížeče obrazovky, jsou široce dostupná.

Jedním z důvodů rozvoje MathML jako značkovacího jazyka na obecné komunikativní úrovni je stimulace rozvoje matematického software Sítě nejvyšší úrovně. MathML je způsob koordinace úsilí vývojářů softwarových modulů vytvářet a zobrazovat matematický materiál. Zjednodušení vývoje funkčních částí velký systém, MathML může stimulovat vývoj programů, které budou velmi užitečné pro potenciální uživatele.

Autoři mohou vytvářet dokumenty MathML pomocí nástrojů, které nejlépe vyhovují jejich potřebám. Studenti mohou preferovat vizuální editory vzorce s možností uložit bloky značek MathML do souboru XHTML. Výzkumníci mohou používat balíčky počítačové algebry, které automaticky kódují matematické informace, aby je kolegové mohli převzít z webové stránky a zpracovat je. Vydavatelé akademických časopisů mohou používat program, který převádí značky T E X do HTML a MathML. Bez ohledu na způsob vytvoření webové stránky obsahující MathML jsou dostupné všechny výhody společné komunikační vrstvy. Různé programy, které pracují s MathML, mohou být použity na stejném dokumentu pro výstup do řeči a tisku, stejně jako pro vstup do systému počítačové algebry a pro jeho správu jako součást velkého archivu webových dokumentů. Pro kvalitní tisk matematických dokumentů ve formátu MathML zpětný převod do standardní systémy layouty včetně T E X, který je speciálně vytvořen pro tento účel. Konečně lze očekávat, že MathML bude časem integrován do dalších oblastí, kde se vyskytují matematické vzorce, jako jsou tabulky, agregační balíčky a inženýrské nástroje.

W3C Math Working Group spolupracuje s různými softwarovými společnostmi, aby zajistila, že různé nástroje MathML budou brzy dostupné, včetně nástrojů pro generování a zobrazování dokumentů. Aktuální seznam programů, které pracují s MathML, je umístěn na stránce Math World Wide Web Consortium.

Původní koncept HTML Math byl jednoduše rozšířit sadu HTML tagů a poskytnout tak přímou interpretaci v prohlížeči. Ještě předtím však explodující růst sítě jasně ukázal, že je zapotřebí mechanismus globálního rozšíření a matematické informace jsou pouze jedním z typů strukturovaných dat, které lze pomocí takového mechanismu integrovat do webu.

Vzhledem k tomu, že MathML má být integrován do webu jako rozšíření, je velmi důležité, aby MathML a programy, které jej používají, mohly dobře spolupracovat se stávajícím webovým prostředím. Zejména MathML musí být navržen s ohledem na tři typy interakce. Za prvé, pro vytváření matematického obsahu je důležité, aby existující matematické značkovací jazyky mohly být převedeny na MathML a aby byla možnost vytvářet dokumenty MathML přidána do stávajících editorů. Za druhé, mělo by být možné vložit značky MathML do značek HTML jako jejich doplněk, v takovém případě bude v budoucnu k dispozici prohlížečům, vyhledávače a všechny typy webových aplikací, které nyní pracují s HTML. A konečně musí být možné zobrazit MathML vložený do HTML, moderní prohlížeče i když výsledek není zdaleka ideální. S přechodem z HTML na XHTML budou všechny výše uvedené požadavky ještě nezbytnější.

World Wide Web je zcela mezinárodní. Matematika je jazyk používaný po celém světě. Matematický zápis ve vědě a technice úzce souvisí s národními jazyky. W3C si klade za cíl být konstruktivní silou při přinášení komunikace do světa. Vývojáři MathML proto čelili problému internacionalizace. Není známo, že by tato verze MathML byla nekompatibilní s jazyky se zápisem zleva doprava. Zápis zleva doprava je v MathML 2 standardní a je jasné, že potřeba psát matematické vzorce do textů v některých národních jazycích zatím nevznikla. Takzvaná „obousměrná technologie“ se teprve vyvíjí a nejlepší podporu vzorce je v této souvislosti úkolem pro budoucí vývoj.

1.7.1 Syntaxe a gramatika MathML

MathML je založen na (Extensible Markup Language), což znamená, že jeho syntaxe se řídí pravidly syntaxe XML a jeho gramatika je definována pomocí DTD (Document Type Definition). Jinými slovy, podrobnosti pro použití značek, atributů, entit a všeho ostatního jsou definovány ve specifikaci jazyka XML, zatímco podrobnosti o prvcích a atributech MathML, vnoření prvků atd. jsou definovány v MathML DTD.

W3C ve snaze zvýšit snadnost a flexibilitu používání XML na webu a podporovat vytváření modulárních aplikací XML zjistilo, že základní forma DTD není dostatečně flexibilní. Proto byla vytvořena pracovní skupina W3C pro vývoj schémat XML, což jsou dokumenty specifikace a měly by nahradit DTD. MathML 2.0 je navržen tak, aby matematikům umožnil plně využít nové webové technologie. Existuje tedy schéma pro MathML.

MathML také kromě toho definuje pravidla syntaxe a gramatiky hlavní pravidla, kterou zdědí jako XML aplikaci. Tato pravidla umožňují MathML reprezentovat podstatně více informací, než je možné s čistým XML, aniž by je museli představovat velký počet nové prvky a používají výrazně složitější DTD nebo schémata. Nevýhodou zavedení specifických pravidel MathML je samozřejmě to, že vygenerované dokumenty nemohou být zpracovány procesory a validátory XML.

Existují dva hlavní typy dalších pravidel gramatiky a syntaxe MathML. První typ zahrnuje nastavení dalších kritérií pro hodnoty atributů. Například v čistém XML není možné vyžadovat, aby hodnota atributu byla kladné celé číslo. Druhý typ pravidla definuje podrobnější omezení pro podřízené prvky (jako je jejich pořadí), než jaká jsou uvedena v DTD nebo dokonce schématech. XML například nemůže určit, že s prvním podřízeným prvkem by se mělo zacházet jinak než se zbytkem.

1.7.2 Příklad syntaxe XML

Protože MathML je založeno na XML, používá specifikace MathML terminologii XML. Data XML se skládají ze znaků Unicode (které zahrnují normální znaky ASCII), odkazů na entity (neformálně nazývané entity), jako je např.<, которые обычно представляют расширенные символы, и элементы, такие как X.

Prvky často obsahují další data XML, nazývaná jejich „obsah“ nebo „tělo“, mezi značkami „open“ a „end“, stejně jako v HTML. Nechybí ani „prázdné prvky“ jako např Kde úvodní značka končí znakem />, který označuje, že prvek nemá žádný obsah nebo koncovou značku. Úvodní značka musí obsahovat pojmenované možnosti, nazývané atributy, jako je fontstyle="normal" ve výše uvedeném příkladu.

Protože se v XML rozlišují velká a malá písmena, názvy prvků a atributů MathML rozlišují velká a malá písmena. Specifikace MathML pro čitelnost definuje většinu z nich malými písmeny.

Ve formální diskusi o značkách XML se rozlišuje mezi prvkem, jako je mrow, a značkami, které jej definují. a. Co je mezi značkami a, se nazývá obsah nebo tělo prvku mrow. „Prázdný prvek“, například žádný, nemá žádné tělo a je definován jedinou značkou zobrazení . Tato specifikace nebude zdůrazňovat tento rozdíl mezi značkami a prvky. Například někdy budeme odkazovat na prvky a , což znamená prvek, ke kterému tyto značky patří. To se provádí tak, aby byly odlišeny odkazy na prvky od odkazů na atributy. Budou však použity výrazy „prvek“ a „značka“. přísné dodržování s terminologií XML.

1.7.3 Podřízené prvky versus argumenty

Mnoho prvků MathML vyžaduje určitý počet podřízených prvků nebo dává podřízeným prvkům na konkrétní pozici další význam. Jak bylo uvedeno výše, tento typ omezení je specifický pro MathML a nelze jej specifikovat pomocí syntaxe a gramatiky XML. Když podřízený prvek daného prvku MathML tyto požadavky splňuje dodatečné podmínky, budeme o tom mluvit jako argument a ne o podřízený prvek zdůraznit specifičnost jeho použití. Všimněte si, že výraz "argument" se používá v tomto technickém smyslu, pokud není uvedeno jinak.

Některé prvky mají různé požadavky na počet nebo typ argumentů. Tyto dodatečné požadavky jsou popsány pro každý konkrétní prvek.

1.7.4 Hodnoty atributů MathML

Podle specifikace jazyka XML musí být atributy prvků zadány v jedné z následujících forem:

atribut-name="value"

atribut-name="value"

kde mezery kolem znaku "=" jsou volitelné.

Názvy atributů se v textu specifikace objevují jednoprostorovým písmem, stejně jako příklady.

Hodnoty atributů, které v MathML mohou být řetězcem libovolných znaků, musí být uzavřeny ve dvojitých ("") nebo jednoduchých ("") uvozovkách. Hodnota atributu může obsahovat typ uvozovek, které se nepoužívají k uzavření celé hodnoty.

MathML používá pro hodnoty atributů složitější syntaxi než obecná syntaxe XML specifikovaná MathML DTD. Tato dodatečná pravidla jsou pro aplikace MathML a jejich porušení je chybou MathML, ale nemohou být sledována procesory XML. Syntaxe hodnot pro prvky MathML je definována v tabulce atributů a následuje popis každého prvku pomocí níže popsané notace. Když aplikace MathML zpracovává hodnoty atributů, všechny mezery, kromě těch, které oddělují jednotlivá slova nebo čísla, jsou ignorovány. Znaková data mohou být zahrnuta do hodnot atributů přímo nebo pomocí referenčních entit.

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

MathML DTD, deklaruje typy většiny hodnot atributů jako řetězec CDATA. To vám umožní zvýšit kompatibilitu se stávajícím softwarem založeným na SGML a XML a rozšířit seznam předdefinovaných hodnot. Stejná úvaha platí pro schémata XML.

1.7.4.1 Syntaktické zápisy používané ve specifikaci MathML

K popisu syntaxe specifické pro MathML pro platné hodnoty atributů používá tento dokument následující konvence a zápisy.

Notový zápis Co dělá
číslo desetinné celé číslo nebo racionální číslo (řetězec číslic s jednou desetinnou čárkou), případně začínající znakem "-"
nepodepsané číslo desítkové celé číslo nebo reálné číslo, bez znaménka
celé číslo dekadické celé číslo, případně začínající znakem "-".
kladné celé číslo celé desítkové číslo, bez znaménka, nikoli 0
tětiva libovolný řetězec (vždy plná hodnota atributu)
charakter jeden znak bez mezer nebo odkazující entita MathML; případně odděleny mezerami
#rrggbb barva ve formátu RGB; Tři páry hexadecimálních číslic v příkladu č. 5599dd definují podíl červené, zelené a modré na stupnici x00 až xFF, který vytváří jasnou azurovou.
h-jednotka horizontální jednotka délky (povolené jednotky jsou uvedeny níže)
v-jednotka vertikální jednotka délky (povolené jednotky jsou uvedeny níže)
css-fontfamily
css-color-name vysvětleno níže v podsekci CSS
další slova kurzívou vysvětleno v textu, pro každý atribut zvlášť
formulář + jednu nebo více instancí "formuláře".
formulář* žádný nebo více výskytů "form"
f1 f2...fn jedna instance každého formuláře, po sobě, volitelně oddělená mezerou
f1 | f2 |... | fn kteroukoli z výše uvedených forem
volitelná instance "formuláře".
(formulář) stejně jako právě forma
neoznačená slova slova zahrnutá doslovně v hodnotách atributu (pokud nejsou součástí vysvětlující fráze)
znaky v uvozovkách znaky doslovně zahrnuté v hodnotě atributu (například „+“ nebo „+“)

Priorita operace, od nejvyšší po nejnižší:

formulář + nebo formulář *

f1 f2... fn (sekvence tvarů)

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

Typ tětiva může obsahovat libovolné znaky, které jsou definovány v hodnotách atributů XML CDATA. V MathML nejsou žádná pravidla syntaxe tětiva může být součástí hodnoty atributu, nikoli celou hodnotou.

Sousední klíčová slova a čísla v hodnotách atributů musí být odděleny mezerami, s výjimkou identifikátorů jednotek následujících za čísly (jak je uvedeno v syntaxi znaků h-unit a v-unit). Mezery nejsou povinné, ale jsou povoleny mezi kterýmkoli z výše uvedených tokenů, s výjimkou (z důvodu kompatibility CSS) bezprostředně před identifikátory jednotek, mezi znaky a čísly „-“, mezi # a rrggbb nebo rgb.

Hodnoty pro číselné atributy, které určují rozměry a musí být závislé na aktuálním písmu, mohou být zadány v jednotkách spojených s písmem nebo v zadaných absolutních jednotkách (popsáno níže). Vodorovné rozměry jsou obvykle uvedeny v em a svislé rozměry v ex. Za číslem bezprostředně následují identifikátory em nebo ex. Například horizontální odsazení z operátoru "+" se obvykle zadává v ems, ačkoli mohou být použity i jiné jednotky. Jednotky související s písmem jsou preferovány před absolutními jednotkami, protože umožňují zvětšit nebo zmenšit velikost vykreslovaného prvku na základě aktuální velikosti písma.

U většiny číselných atributů jsou možné hodnoty omezeny na určitou podmnožinu, ostatní hodnoty nejsou chyby (pokud není uvedeno jinak), ale mapovač je zaokrouhlí nahoru nebo dolů na nejbližší platnou hodnotu. Sada platných hodnot může záviset na rendereru a není definována MathML.

Pokud může číselná hodnota podle syntaxe atributu obsahovat znaménko mínus („-“), jako je číslo nebo celé číslo, není chybou ji použít, když záporné hodnoty nejsou významné. Místo toho musí být hodnota zpracována aplikací, jak je popsáno v předchozím odstavci. Explicitní uvedení znaménka plus ("+") jako součásti číselné hodnoty je zakázáno, pokud není výslovně uvedeno v syntaxi (jako "+" nebo "+"), a jeho přítomnost může změnit význam hodnoty atributu (např. popsané v každém z těchto atributů).

Symboly h-unit, v-unit, css-fontfamily a css-color-name jsou diskutovány v následujících podsekcích.

1.7.4.2 Atributy s jednotkami

Některé atributy přijímají vodorovné a svislé rozměry jako čísla následovaná „identifikátorem jednotky“ (často označovaným jako „jednotka“). Symboly syntaxe h-unit a v-unit odkazují na horizontální a vertikální rozměry. Možné měrné jednotky a velikosti, na které se vztahují, jsou uvedeny v tabulce níže; jsou stejné pro horizontální a vertikální rozměry, ale syntaktické symboly jsou odlišné (jako připomínka směru, který používají).

Identifikátory jednotek a jejich sémantický význam jsou převzaty z. Syntaxe čísla následovaného identifikátorem v MathML však není totožná se syntaxí v CSS, protože čísla v CSS nemohou končit desetinnou čárkou a mohou začínat znaménkem „+“.

Platné horizontální a vertikální jednotky v MathML:

Typografické jednotky em a ex jsou dále diskutovány v části "Další poznámky".

% je "relativní jednotka"; když je hodnota atributu uvedena jako n% (pro libovolnou číselnou hodnotu n), je hodnota definována jako výchozí hodnota vynásobená n dělená 100. Výchozí hodnota (nebo způsob, jak ji lze získat, pokud se nejedná o konstantu) je popsán v atributové tabulce pro každý prvek a jeho význam je popsán v následné dokumentaci atributů. (Prvek mpadded má svou vlastní syntaxi pro % a neumožňuje jeho použití jako identifikátor jednotky)

Pro konzistenci s CSS mohou být jednotky délky v MathML volitelné. V tomto případě je znak jednotky v syntaxi atributu uzavřen v hranatých závorkách, například číslo . Význam hodnoty atributu bez jednotek je popsán v dokumentaci pro každý atribut; obvykle se zadané číslo vynásobí výchozí hodnotou. (V tomto případě je číslo nnn bez jednotky ekvivalentní číslu nnn vynásobenému 100 a se znakem %. Například ( ekvivalentní ()

Výjimečně (také pro kompatibilitu s CSS) číselné hodnoty nula nevyžadují identifikátor jednotky, i když to syntaxe vyžaduje. V tomto případě nezáleží na přítomnosti nebo nepřítomnosti identifikátoru jednotky, protože jakékoli číslo vynásobené 0 je 0.

Pro většinu atributů v této specifikaci jsou jednotky použité v typografické sadě zvoleny jako standardní měrné jednotky; není-li uvedena konkrétní hodnota veličiny, jsou standardní měrné jednotky obvykle uvedeny v tabulce nebo v popisu atributu. Nejčastěji používané jednotky jsou em nebo ex. Lze však použít jakoukoli jednotku, pokud není v popisu konkrétního atributu uvedeno jinak.

Všimněte si, že některé atributy, jako je framepacing in , může obsahovat více než jednu číselnou hodnotu, za každou následuje jiná měrná jednotka.

Je obvyklé používat jednotky ex hlavně pro vertikální rozměry a em pro horizontální rozměry, i když to není podmínkou. Tyto měrné jednotky závisí na písmu použitém k zobrazení prvku, v jehož atributech jsou použity, a na jeho velikosti. Je tedy třeba je interpretovat po atributy jako fontfamily a fontsize, pokud se vyskytují na stejném prvku, protože změna aktuálního fontu nebo jeho velikosti může změnit velikost jednotek.

Definice délky každé měrné jednotky (ale ne syntaxe MathML pro hodnoty délky) je stejná jako v CSS, kromě toho, že písmo nastavuje speciální hodnoty pro em a ex, které se liší od hodnot definovaných v CSS (velikost písma a "x" - výška).

1.7.4.3 Atributy kompatibilní s CSS

Některé z níže uvedených atributů MathML odpovídají vlastnostem zobrazení textu definovaným v CSS1. To se provádí tak, aby vykreslovací moduly mohly při definování výchozích hodnot atributů dotazovat prostředí CSS na příslušné vlastnosti.

Schopnost definovat vlastnosti stylu pomocí atributů MathML a CSS má také nevýhody. Přinejmenším je to matoucí a v nejhorším to způsobí, že rovnice neúmyslně změní význam při změně CSS pro celý dokument. Proto jsou tyto atributy zastaralé. MathML 2.0 zase zavádí čtyři nové atributy matematického stylu. Tyto atributy používají booleovské hodnoty k lepšímu vyjádření abstraktních kategorií symbolů používaných v matematice a poskytují jasné oddělení mezi MathML a CSS.

Následující tabulka mapuje zastaralé atributy stylu MathML 1.01 na jejich protějšky CSS:

Pořadí, ve kterém jsou atributy a šablony stylů zpracovávány.

CSS nebo podobné šablony stylů mohou specifikovat změny vlastností zobrazení prvků MathML. Protože vlastnosti zobrazení mohou být změněny jak atributy prvku, tak rendererem, je nutné určit pořadí, ve kterém ke změnám dochází z různých zdrojů. Příkladem automatického vyjednávání je situace s velikostí písma. V případě "absolutních" změn, jako je nastavení nové hodnoty vlastnosti nezávisle na staré hodnotě (na rozdíl od "relativních" změn, jako je zvýšení nebo násobení číslem), jsou účinné pouze nejnovější absolutní změny, takže zdroj změn s nejvyšší prioritou musí být zpracován jako poslední.

V případě CSS by pořadí, ve kterém jsou zpracovávány změny ovlivňující vlastnosti zobrazení prvku MathML z různých zdrojů, mělo být: (změněno jako první; nejnižší priorita)

Automatické změny vlastností nebo atributů na základě typu nadřazeného prvku a pozice prvku v nadřazeném prvku (jak je uvedeno výše o změnách velikosti písma podle úrovně skriptu; takové změny obvykle aplikuje samotný nadřazený prvek před vykreslením vlastností zobrazení na aktuální prvek

Z čtenářských stylů: styly, které ne prohlásil za "důležité"

Explicitně nastavené atributy aktuálního prvku MathML

Ze stylů čtenáře: styly, které jsou deklarovány jako "důležité" (poslední úprava; nejvyšší priorita).

Všimněte si, že pořadí změn provedených šablonami stylů CSS je definováno v samotném CSS (toto je pořadí definované CSS2). Následující vysvětlení platí pouze pro případ, kdy dochází ke změnám v tomto pořadí kvůli přesné specifikaci atributů MathML.

Vysvětlení: Atributy zobrazení v MathML jsou podobné atributům zobrazení HTML (jako je align), které musí být podle pořadí definovaného v CSS zpracovány se stejnou prioritou. Navíc tato volba přednosti umožňuje čtenářům rozhodnout se definováním stylů CSS jako „důležitých“, které z jejich nastavení by mělo přepsat explicitní nastavení MathML. Vzhledem k tomu, že výrazy MathML sestávající z prvků obsahu nebo prezentace jsou primárně určeny k vyjádření významu a „grafické znázornění“ (pokud existuje) by v tom mělo napomáhat (ale není důležité samo o sobě), je pravděpodobné, že čtenáři budou chtít své preference stylu dostal přednost. Hlavní výjimkou je situace, kdy atributy zobrazení změní význam výrazu.

1.7.4.4 Výchozí hodnoty atributů

Výchozí hodnoty atributů MathML jsou obvykle uvedeny spolu s podrobným popisem odpovídajícího prvku. Výchozí hodnoty v tabulkách atributů v normálním písmu jsou přesné (pokud to nejsou jasná vysvětlení), pasáže psané kurzívou popisují, jak lze výchozí hodnoty vypočítat.

Výchozí hodnoty deklarované jako zděděné jsou převzaty z vykreslovacího prostředí, jak je popsáno pro mstyle, nebo v některých případech popsaných samostatně z hodnot jiných atributů okolních prvků nebo z konkrétní části těchto hodnot. Vždy se používá hodnota, kterou lze přesně zadat, pokud je známa; nikdy nezávisí na obsahu nebo atributech daného prvku, pouze na jeho prostředí. (Jeho význam při použití však může záviset na těchto atributech nebo obsahu)

Výchozí hodnoty popsané jako automatické musí vykreslovač vypočítat takovým způsobem, aby vytvořil vysoce kvalitní obraz. Způsob, jak toho dosáhnout, není obvykle specifikován ve specifikaci MathML. Vždy se používá hodnota, kterou lze přesně zadat, pokud je známa; ale většinou záleží na obsahu prvku a případně na prostředí displeje.

Další popisy výchozích hodnot psané kurzívou, které se vyskytují v tabulkách atributů, jsou vysvětleny samostatně pro každý atribut.

Jednoduché nebo dvojité uvozovky, které musí být uzavřeny v hodnotách atributu umístěného v úvodní značce XML, nejsou uvedeny v syntaxi hodnot v tabulce atributů, ale jsou uvedeny v textu příkladů.

Všimněte si, že obecně neexistují žádné hodnoty, které by bylo možné přesně přiřadit k atributům MathML a napodobovat efekt jejich absence pro atributy, které jsou zděděné nebo automatické. Určení "zděděno" nebo "automatické" rozhodně nebude fungovat a není vůbec povoleno. Navíc i pro atributy zobrazení (pro které jsou zde uvedeny konkrétní výchozí hodnoty) je nutné použít prvek mstyle ke změně prvků, které obsahuje. Proto MathML DTD definuje většinu výchozích hodnot atributů prezentace jako #IMPLIED, což zabraňuje procesorům XML přidávat k těmto atributům jakékoli speciální výchozí hodnoty. Schéma MathML funguje stejným způsobem.

1.7.4.5 Hodnoty atributů v MathML DTD

V XML DTD mohou být povolené hodnoty atributů definovány jako generické řetězce nebo mohou být omezeny různými způsoby (výčtem možných hodnot nebo určením konkrétního datového typu). Volba typu atributu XML ovlivňuje rozsah, v jakém lze provést ověření pomocí DTD.

MathML DTD definuje formální typy atributů XML pro všechny atributy MathML, včetně výčtů platných hodnot v některých případech. Obecně je však MathML DTD poměrně laxní, často definuje hodnoty atributů jako řetězce; to je provedeno tak, aby bylo kompatibilní s SGML analyzátory, které umožňují, aby více atributů jednoho prvku MathML mělo stejnou hodnotu (jako je pravda a nepravda), a aby bylo možné rozšířit seznam předdefinovaných hodnot.

Současně, i když lze hodnotu atributu definovat jako řetězec v DTD, v MathML jsou platné pouze určité hodnoty, jak je popsáno výše a ve zbývající části této specifikace. Mnoho atributů například vyžaduje číselné hodnoty. Následující část popisuje platné hodnoty atributů pro každý prvek. Nedostatek rigidity v DTD však neznamená, že tyto požadavky nejsou součástí MathML nebo že je nemůže vynutit konkrétní renderer MathML.

Kromě toho je MathML DTD poskytován jako pohodlí; ačkoli je zamýšlena plná kompatibilita s textem specifikace, v případě rozporu platí text.

1.7.5 Atributy společné všem prvkům MathML

Pro usnadnění použití stylizačních mechanismů, jako jsou XSLT a CSS2, mají všechny prvky MathML kromě atributů popsaných pro každý prvek také atributy class, style a id. Vykreslovací moduly MathML, které nepodporují CSS, mohou tyto atributy ignorovat. MathML definuje hodnoty těchto atributů jako generické řetězce, i když pro ně stylové enginy mají přísnější syntaxi. V MathML je tedy pro ně platná jakákoliv hodnota.

Aby byla zajištěna kompatibilita s propojovacími mechanismy, mají všechny prvky MathML atribut xlink: href.

Všechny prvky MathML mají také atribut xref pro použití v paralelním značkování. id se také používá v tomto kontextu.

Každý prvek MathML, jako dědictví z MathML 1.0, také přijímá zastaralý atribut other, který měl předat nestandardní atributy bez porušení MathML DTD. Vykreslovací moduly MathML jsou povinny zpracovat tento atribut pouze v případě, že reagují na všechny nestandardní atributy MathML. Použití druhého atributu se však důrazně nedoporučuje, protože v MathML existují jiné způsoby, jak sdělit konkrétní informace.

1.7.6 Sbalení mezer ve vstupu

MathML ignoruje prázdné znaky, které se vyskytují mimo tokeny. Znaky jiné než mezery zde nejsou povoleny. Znaky mezer vyskytující se v obsahu tokenů jsou na koncích odstraněny, to znamená, že jsou odstraněny všechny znaky mezer na začátku a konci obsahu. Prázdné znaky v obsahu prvků MathML jsou sbaleny kónicky, to znamená, že každá sekvence 1 nebo více takových znaků je nahrazena 1 (někdy nazývaným znakem null).

V MathML, stejně jako v XML, bílé znaky označují jednoduchou mezeru, tabulátor, nový řádek nebo nový řádek, tedy znaky s kódy Unicode U+0020, U+0009, U+000A, U+000D.

Například,

( ekvivalentní (, a

ekvivalentní Věta 1:.

Autoři, kteří si přejí umístit prázdné znaky na začátek nebo konec obsahu tokenu nebo sekvenci více než jednoho prázdného znaku, aby nebyly ignorovány, musí použít jiné nezobrazitelné bílé znaky. Například porovnat

Věta 1:

Když je zobrazen první příklad, nejsou žádné mezery před slovem "Věta", jedna mezi "Věta" a "1: " a žádná za "1: ". Ve druhém příkladu se zobrazí jedna mezera před slovem "Věta", dvě mezery před "1: " a žádná za "1: ".

Všimněte si, že atribut xml: space nelze v této situaci použít, protože procesory XML předávají prázdné znaky v tokenech procesoru MathML; k odstranění dochází podle pravidel zpracování MathML.

Pro bílé znaky vyskytující se mimo obsah tokenů mi, mn, mo, ms, mtext, ci, cn a anotací je nutné použít prvek mspace, na rozdíl od prvku mtext obsahujícího pouze prázdné znaky.

2. Možnosti moderních prohlížečů při práci s MathML

Jako testovací případ demonstrující schopnosti prohlížečů byla vytvořena jednoduchá XHTML stránka obsahující příklady obou značek. Popisujeme hlavní požadavky na něj. Nejprve to musí být platný dokument XHTML, tj.

být platným xml dokumentem;

kořenový prvek musí být prvek html ve jmenném prostoru XHTML, jako je tento:

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

Fragmenty MathML musí patřit do jmenného prostoru MathML, například:

...

Testovací případ, který se používá níže: test. xhtml.

2.1 Mozilla a Firefox

Použitá verze: 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 stejném jádru mají vestavěné možnosti vykreslování značek MathML. Pravda, zatím jsou omezeny pouze na podporu pro označení zobrazení. V našem testovacím případě se tedy fragment označení zobrazení zobrazil správně, což se o označení obsahu říci nedá.

Řešením tohoto problému může být použití speciálních XSLT stylů "XSLT stylesheets for MathML". Tento přístup je možný, protože podpora pro transformace XSLT je zabudována do prohlížeče. Chcete-li to provést, musíte si stáhnout sadu stylů XSLT a v prvním řádku naší stránky uvést odkaz na soubor záhlaví mathml. xsl:

Z bezpečnostních důvodů umožňuje Mozilla styly XSLT umístěné v jiné doméně zdrojového zobrazení MathML se zvýrazněním výběru. Pravda, při použití content markup a XSLT stylů neuvidíme zdrojový kód, ale výsledek transformace.

Mezi další funkce patří integrace s vyhledávači. Když je vybrán fragment vzorce, kontextová nabídka vám umožní odeslat dotaz do vyhledávače.

Ale zatím je to rezerva do budoucna, protože takové hledání zatím nepřineslo výsledky.

2.2 Microsoft Internet Explorer

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

Prohlížeč Microsoftu nemá vestavěnou podporu pro MathML. Pro správné zobrazení matematických vzorců můžete použít volně distribuovaný plugin MathPlayer.


Kromě samotného zobrazení matematických značek umožňuje rychle kopírovat zápis MathML. Pokud si přejete, můžete vzorec pro lepší přehlednost zvětšit:

Mezi nedostatky je třeba poznamenat nemožnost vybrat nebo zkopírovat fragment matematického výrazu. Neexistuje také žádný způsob (jako v Mozille) správně zkopírovat vzorec s okolním textem.

2.3 Opera

Použitá verze: 7.54u1 (Build 3918; Platforma Win32; Systém Windows 2000; Java není nainstalována).

Tento prohlížeč v této fázi svého vývoje nemá schopnost správně zobrazovat značky MathML.

Seznam použité literatury

1. Dorofeev A.V., Fedotov A.M. Elektronické publikace v prostředí internetu a mnohonásobnost kódování ruského jazyka // Computational technologies, 1997, v.2, N 3, s.31-44.

2. Oleinik O.V., Tolkacheva E.M., Fedotov A.M. Elektronické edice a prezentace matematických textů na WWW // Computational technologies, 1997, v.2, N 3, s.60-67.

3. Shokin Yu.I., Fedotov A.M., Znamensky S.V. Elektronické publikace a problémy mnohosti kódování ruského jazyka // Informační technologie a výpočetní systémy, 1997, N 2, s. 90-101.

4. Znamensky S.V. Standardizace ruského TeXu: utopie nebo nevyhnutelnost // Computational technologies, 1997, v.2, N 3, s.51 - 59.

5. Galaktionov V.V. Extensible Mark-up Language (XML): Průmyslový standard, který definuje novou generaci internetové softwarové architektury. Komunikace JINR, Р10-2000-44, Dubna, 2000.

6. Mityunin V.A. Přehled nástrojů pro publikování a prohlížení matematických dokumentů na internetu - http://mathmag. spbu.ru/article/4/

7. Matematika na webu: Zpráva o stavu – http://www.dessci.com/ webmath /status/

8. Včetně matematického zápisu na webových stránkách – 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šiřováním globálních počítačových sítí (zejména internetu) bylo nutné do ní umisťovat mimo jiné i matematické texty.

Jazyk MathML je podmnožinou jazyka XML (např X napínatelný M arkup L anguage - Extensible Markup Language), který se často používá k vytváření dalších jazyků. Toto použití XML je dnes zcela přirozené a dobře se osvědčilo v jiných případech, kdy použití HTML k přenosu nových typů dat narazilo na omezení formátu. K dnešnímu dni W3C zveřejnilo 2. vydání verze 2.0 jazykové specifikace MathML, která naznačuje životaschopnost a udržitelnost projektu.

Značkovací jazyky založené na XML:

  • Wireless Markup Language (WML): datový formát pro WAP (bezdrátová) zařízení (mobilní telefony);
  • Jazyk synchronizované multimediální integrace (SMIL):
  • Určuje dočasné rozvržení, vzhled atd. pro multimediální prezentace;
  • Určuje pořadí, ve kterém jsou multimediální soubory přehrávány;
  • K prohlížení je nutný přehrávač kompatibilní se SMIL (AMBULANT, MS IE6);
  • Návod a příklady: http://www.multimedia4everyone.com/
  • Scalable Vector Graphics (SVG): pro popis dvourozměrné vektorové grafiky;
  • Mathematical Markup Language (MathML): popsat matematický zápis (vzorce);
  • Chemical Markup Language (CML): pro reprezentaci chemických vzorců;
  • jiný.

Mezi cíle stanovené pracovní skupinou W3C Mathematics Working Group při vytváření MathML byly:

  • Poskytování kódování matematických materiálů pro komunikaci všech úrovní vzdělávacího a vědeckého typu;
  • poskytování kódování jak matematické symboliky, tak jejích významů;
  • podpora vytváření šablon a dalších technik matematických úprav;
  • zajištění převodu do jiných matematických formátů jak čistě prezentačního a sémantického charakteru, tak z těchto formátů do vytvořeného matematického značkovacího jazyka. Výstupní formáty by měly zahrnovat prostředky pro zobrazování grafických informací, syntézu řeči, reprezentaci textu ve formě vhodné pro vstup do systémů počítačové algebry, kompatibilitu s jinými jazyky pro popis matematických textů, jako je TAR, schopnost zobrazovat „čistý“ text ( tj. bez matematických symbolů a výrazů), možnost tisknout texty v různých formách, včetně výstupu v Braillově písmu. Současně mohou konverze mezi různými formáty vést ke ztrátě informací;
  • schopnost přenášet informace s přihlédnutím k vlastnostem konkrétních vizualizačních programů;
  • podpora efektivních procesů procházení dlouhých matematických výrazů;
  • poskytování rozšiřitelnosti (způsoby, které nejsou předem známy).

Obecným principem používání MathML je, že matematické konstrukce jsou vnořeny do běžného HTML dokumentu a (pokud prohlížeč nebo speciální program podporuje tuto specifikaci) jsou adekvátně reprodukovány, když je dokument stažen ze sítě.

První věc, se kterou se musíte v MathML vypořádat a co odlišuje tento značkovací jazyk od jeho analogů, je použití dvou způsobů kódování výrazů. Jeden z nich je založen na přímém přenosu syntaxe vzorce ( prezentace), druhý naopak odráží sémantiku výrazu ( obsah). Prezentační značky popisují matematickou symboliku s výrazy, které jsou vytvořeny pomocí některých schémat odvození a určují způsoby, jak umístit podvýrazy, jako jsou zlomky, horní a dolní indexy. Sémantické značení popisuje matematické objekty a funkce, kde pro každý uzel je sestaven strom výrazů podle nějakého specifického schématu a větve tohoto stromu odpovídají podvýrazům.

V současné době lze webové stránky vytvořené pomocí MathML prohlížet v následujících prohlížečích (znak „+“ znamená, že fungují i ​​novější verze):

  • Okna:

o IE 5.0 s pluginem Techexplorer

  • Macintosh:

o IE 5.0+ s pluginem Techexplorer

Mozilla 0.9.9+

  • Linux/Unix:

o Netscape 6.1 s pluginem Techexplorer

Mozilla 0.9.9+

o Amaya, všechny verze (pouze Presentation MathML)

Všechny prvky MathML jsou rozděleny do tří skupin: prvky zastoupení, Prvky obsah a rozhraní Prvky.

Prvky pohledu popisují vizuálně orientovanou dvourozměrnou strukturu matematického zápisu. Například prvek mrow obvykle se používá k označení vodorovné řady částí výrazu a prvku msup, který označuje horní index. Každý prvek zobrazení obvykle odpovídá jednomu typu schématu zápisu, jako je řádek, horní index, dolní index a tak dále. Jakýkoli vzorec se skládá z částí, které se mohou skládat z nejjednodušších prvků, jako jsou čísla, písmena nebo jiné symboly.

Nejdůležitější prvky reprezentace jsou mi , mn a mo , které se používají k reprezentaci identifikátorů, čísel a operátorů. Tyto prvky jsou obvykle zobrazeny v různých stylech: čísla jsou v latince, identifikátory jsou kurzívou a kolem operátorů je ponecháno nadbytečné bílé místo.

Z hlediska značek je většina prvků MathML definována otevírací a zavírání tagy, které omezují obsah prvku. Některé prvky, jako jsou provozní značky ( ) jsou definovány jednou značkou.

Podívejme se podrobněji na některé prvky nezbytné pro uspořádání matematických vzorců, přičemž jako příklad použijeme prezentační značky.

Tokeny (prvky tokenu) představují jednotlivé znaky, jména, čísla, označení atd. V zásadě mohou mít tokeny jako obsah pouze znaky.

MathML ignoruje prázdné znaky, které se vyskytují mimo tokeny. Znaky jiné než mezery zde nejsou povoleny. Znaky mezer vyskytující se v obsahu tokenů jsou na koncích odstraněny, to znamená, že jsou odstraněny všechny znaky mezer na začátku a konci obsahu. Znaky mezer v obsahu prvků MathML jsou kanonicky sbaleny, to znamená, že každá sekvence 1 nebo více takových znaků je nahrazena 1 (někdy nazývaným znakem null).

Hlavní prvky

Indexy

Některé matematické operace, které lze s tagem použít .

+ +
< >
<
<= >=
++ ++
.NE. ne
a a
neviditelný znak násobení
+ +

Podívejme se na některé příklady vzorců v MathML.

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

hřích

α

+

cos

α

=

Řecké písmeno α se získá pomocí kódu α (připomeňme, že se používá Unicode).

Výsledek

Připomínáme také, že abyste mohli pracovat s MathML v Internet Exploreru, musíte si nainstalovat MathPlayer.

Každý soubor obsahující značky MathML musí mít řádky před záhlavím dokumentu

Kromě toho se každý kód MathML otevře se značkou

a uzavřena štítkem.

A2

b2

hřích

X+y

2X

X2

y2

Zvažte prvky pro uspořádání tabulek a matic.

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

Příklad 2

AX+by

=C

A1X+

b1y=

C1

V případě potřeby je nutné vyhledat různé matematické symboly v tabulce kódování Unicode.

Příklad.

S

-1

Σ

i=0

Příkladů s integrály lze nalézt poměrně značné množství, takže se jimi zde nebudeme zdržovat, doporučujeme čtenáři seznámit se s příklady na uvedeném zdroji.

Jak bylo uvedeno výše, MathML umožňuje prezentační a sémantické reprezentace. Zde jsme se zaměřili na prezentační jako nejstravitelnější a nejpoužívanější. Abychom si však dali alespoň nějakou představu o druhé možnosti, zvažte malý ilustrativní příklad a napište jej ve dvou vyobrazeních.

Příklad. x 2 - 6x + 9 = 0

Psaní vzorců v MathML je samozřejmě poměrně zdlouhavý úkol a vyžaduje určité úsilí. Avšak ti, kteří v LaTeXu pracovali dostatečně dlouho, příliš rozdílů nezaznamenají. Častěji však uživatel upřednostňuje použití různých nástrojů. Jmenujme alespoň některé.

Za prvé, matematické balíčky, řekněme Mathematica nebo Maple, vám umožňují ukládat vzorce v nich napsané ve formátu MathML.

Tento zdroj používá skript Java ASCIIMathML.js (ver 2.0; září 2007; http://www1.chapman.edu/~jipsen/mathml/asciimath.html, autor Peter Jipsen) spuštěný na počítači uživatele, který se načte, když stažením ukázkové stránky http://www1.chapman.edu/~jipsen/mathml/asciimathdemo.html . Zejména tento zdroj lze tedy využít lokálně: stačí uložit zmíněnou ukázkovou html stránku a můžete převádět jednoduché vzorce bez připojení k internetu.

Závěrem poznamenáváme, že MathML jako značkovací nástroj je také vhodný pro generování různých matematických úloh (viz příklady výše). Zároveň lze k programování využít například JavaScript, uživatel si pak bude moci vygenerovat libovolný počet možností úloh podle svého uvážení. Můžete také zajistit generování odpovědí na všechny úkoly, což je velmi jednoduché.

Očekáváme, že čtenářovo seznámení s prostředky uspořádání matematických textů nekončí a následně si bude moci samostatně vybrat nástroj, který ho zajímá, a možná i aplikovat popsané technologie v praxi.

Literatura a internetové zdroje

Před HTML5 bylo používání vzorců skutečnou bolestí v zadku. Posuďte sami: v roce 2005 bylo nutné mít po ruce buď speciální prohlížeč, nebo rozdělit text do pořádného HTML a vložit z obrázků či PDF. Vyhledávání a další operace editace a/nebo výstupu na obrazovku/papír byl nejednoznačný úkol, kterému byly věnovány celé monografie.

V roce 2012 už to bylo jednodušší. Nyní můžete připojit potřebné pluginy (Firemath pro FireFox a Daum Equation Editor pro Chrome). Ale nejednoznačnost standardů (a podpory) nás vlastně donutila napsat stejný článek pro každý z prohlížečů (a pro jejich verze). Nebo pozdravte uživatele kouzelným pozdravem „Váš prohlížeč je třeba aktualizovat/přidat rozšíření“.

Nepříjemný? - Ano! Bylo časově náročné najít univerzální řešení? - Ano! Nutí vás přemýšlet, jaký typ nahrávky je lepší (prezentace nebo obsah), jaký konvertor použít (a těch známých je jen asi tucet)? - ANO! ANO! ANO!

V důsledku toho se publikační práce změnila ve vývoj dvou nebo tří značkovacích lexikonů a studium provozu alespoň jednoho programu transkodéru.

Nyní, s příchodem HTML5, jsou věci mnohem jednodušší. Má nový kontejner .
Každá platná instance MathML musí být uvnitř tohoto kontejneru.
Neumožňuje vnořování, ale uvnitř může být libovolný počet dalších podřízených prvků.

Atributy značek

Kromě následujících atributů tag přijímá všechny atributy z "> .

třída, id, styl
Při použití ve spojení se styly.
dir
Určuje směr vzorce: ltr - zleva doprava nebo rtl - zprava doleva.
ref
Používá se k nastavení hypertextového odkazu na zadaný URI.
matematické pozadí
Barva pozadí. Můžete použít #rgb , #rrggbb a názvy barev HTML.
matematická barva
Barva textu. Můžete použít #rgb , #rrggbb a názvy barev HTML.
Zobrazit
Tento atribut určuje metodu výstupu. Možné hodnoty:

  • blok- znamená, že tento prvek bude zobrazen mimo aktuální rozsah textu jako blok, který lze umístit kamkoli, aniž by se změnil význam textu;
  • inline - znamená, že tento prvek bude zobrazen uvnitř aktuálního rozsahu textu a nelze jej z něj přesunout, aniž by se změnila hodnota tohoto textu.

Výchozí hodnota je inline .

režimu

Zastaralá hodnota atributu zobrazení.
Možné hodnoty jsou display (což má stejný účinek jako display="block") a inline .
přetékat
Určuje, jak se výraz chová, pokud je text příliš dlouhý a nevejde se do zadaného rozsahu šířky.
Možné hodnoty: linebreak (výchozí), scroll , elide , truncate , scale .

Příklady

Reprezentace v HTML5

MathML v HTML5 A 2 + b 2 = C 2

Reprezentace v XHTML

MathML v XHTML A 2 + b 2 = C 2
Poznámky: Dokumenty XHTML s MathML musí být podávány jako application/xhtml+xml . Toho lze snadno dosáhnout přidáním přípony .xhtml do místních souborů. U serverů Apache můžete nastavit soubor .htaccess pro toto rozšíření na správný typ MIME. Protože jsme uložili náš MathML jako dokument XML, musíme si být jisti, že dokument XML je ve správném formátu.

Podpora prohlížeče

Podpora prohlížeče

Plné verze
Živel Chrome Firefox (Gecko) internet Explorer Opera safari
Popis XHTML (pouze 24.) 1.0 (1.7 a vyšší) 9.5 5.1
Popis HTML5 (pouze 24.) 4.0 (2.0) 5.1
dir 12.0 (12.0)
href Chyba WebKitu 85733 7.0 (7.0) Chyba WebKitu 85733
matematické pozadí (pouze 24.) 4.0 (2.0) 5.1
matematická barva (pouze 24.) 4.0 (2.0) 5.1
přetékat

Mobilní verze

Živel Android Chrome pro Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari pro mobily
Popis XHTML 1.0 (1.0)
Popis HTML5 4.0 (2.0)
dir 12.0 (12.0)
href 7.0 (7.0)
matematické pozadí 4.0 (2.0)
matematická barva 4.0 (2.0)
přetékat

Používá se pro prezentaci a vzorce v . MathML doporučuje matematická skupina.

Verze specifikace MathML 1.01 byla vydána v červenci, verze 2.0 se objevila v únoru. V říjnu bylo zveřejněno druhé vydání MathML verze 2.0, což je aktuálně nejnovější specifikace vydaná matematickou skupinou.

MathML uvažuje nejen výkon, ale také význam prvky vzorce. Vyvíjí se také matematický sémantický značkovací systém, který doplní MathML. Jmenuje se OpenMath.

Příklad

Softwarová podpora

Hlavní přímo podporující MathML jsou nejnovější verze a variace. Mnoho dalších prohlížečů podporuje tento formát instalací příslušného . Například pro podporu MathML se používá plugin MathPlayer.

Kromě toho je MathML podporováno hlavními kancelářskými programy, jako jsou a , stejně jako matematickými softwarovými produkty, např.

S rozvojem matematické symboliky se vyvíjely a zdokonalovaly metody
jeho ukládání a přenos. Jejich poznámky si dělali například matematici starověkého Babylonu
na hliněných tabulkách, v období pozdního středověku, první tisk
knih a konečně, moderní doba je charakterizována stále rostoucím přílivem elektroniky
publikace. Jde o hledání adekvátních metod pro tvorbu matematických textů
na internetu a vedly k vytvoření MathML.

Potřeba takového nástroje je způsobena skutečností, že formát HTML má i přes mnoho úžasných vlastností dosti omezenou schopnost zprostředkovat matematický zápis. Vzorce na stránkách HTML jsou nejčastěji prezentovány jako grafika (rastrová nebo vektorová), ale tato metoda má zjevné nevýhody. Například vzorec výkresu je téměř nemožné upravit a jeho kvalita tisku obvykle ponechává mnoho přání. Již na základě toho je zřejmé, že pro Web je žádoucí matematickou symboliku nějak zakódovat a pro klientské programy (prohlížeče) co možná „nejpřehledněji“. Vývoj těchto myšlenek vedl k vytvoření celé rodiny matematických značkovacích jazyků, mezi které patří i dnes zvažovaný MathML.

Je třeba poznamenat, že problém reprezentace matematických symbolů v elektronické podobě se neomezuje pouze na potřebu vyvinout samostatnou specifikaci. Jedná se o složitý vědecko-technický problém, který má ještě daleko ke svému konečnému řešení, což potvrzuje přítomnost velkého množství navrhovaných přístupů, často špatně vzájemně koordinovaných. Jedním z takových přístupů jsou specializované značkovací jazyky, mezi které patří MathML. Jeho vývojáři si samozřejmě byli vědomi hloubky této problematiky a stanovili si za cíl vytvořit specifikaci, která splňuje následující omezené, ale přesto poměrně důležité požadavky:

  • snadnost vývoje a ruční sada základní matematické notace;
  • maximální kompatibilita s jinými matematickými formáty, kterou by měly zajistit příslušné převodníky;
  • schopnost vydávat vzorce na různá koncová zařízení;
  • podpora rozšiřitelnosti, tedy zavádění nových symbolů, schémat atd.

K těmto cílům souvisejícím s principy konstrukce specifikace byly přidány další související se zvláštnostmi používání MathML v aplikacích. Je nutné zajistit výstup vzorců na obrazovky a tiskárny v nejvyšší kvalitě, organizovat prostředky výměny informací (např. vyrovnávací operace kopírování/vkládání fragmentů vzorců). Je jasné, že to vše budou implementovat vývojáři aplikačního softwaru, ale potenciály musí být zabudovány zpočátku.

Pojďme si několika slovy nastínit místo MathML v jeho příbuzné skupině matematických značkovacích jazyků. Na rozdíl od řady svých zástupců, z nichž je třeba zmínit především TeX, má MathML sémantické prostředky pro konstrukci matematických výrazů. Pokud je dokument stejného TeXu ve skutečnosti podrobným popisem nějakého textu s přesným uvedením pozice všech jeho prvků, pak je MathML (specifičtěji vázaný na obsah) v tomto ohledu mnohem flexibilnější, protože konečnou podobu dokumentu lze snadno měnit podle požadavků uživatele.

O MathML

MathML je podmnožinou rozšířeného značkovacího jazyka XML, který se často používá k vytváření dalších jazyků. Toto použití XML je dnes zcela přirozené a dobře se osvědčilo v jiných případech, kdy použití HTML k přenosu nových typů dat narazilo na omezení formátu. K dnešnímu dni W3C zveřejnilo 2. vydání verze 2.0 jazykové specifikace MathML, která naznačuje životaschopnost a udržitelnost projektu.

Obecným principem používání MathML je, že matematické konstrukce jsou vnořeny do běžného HTML dokumentu a (pokud prohlížeč nebo speciální program podporuje tuto specifikaci) jsou adekvátně reprodukovány, když je dokument stažen ze sítě.

První věc, se kterou se musíte v MathML vypořádat a co odlišuje tento značkovací jazyk od jeho analogů, je použití dvou způsobů kódování výrazů. Jedna z nich je založena na přímém přenosu syntaxe formule (prezentace), druhá naopak odráží sémantiku výrazu (obsahu). Jednoduše řečeno, první způsob předává zápis vzorce bez ohledu na jeho význam, druhý naopak odráží jeho matematický obsah.

Syntaktické kódování

Rýže. jeden

Pokud se podíváte na formu reprezentace různých matematických výrazů, můžete
všimněte si, že s poměrně velkým počtem speciálních znaků existuje
relativně málo způsobů, jak je uspořádat. Takto lze vytvářet výrazy
pomocí horních a dolních indexů může být jedna část vzorce nad / pod druhou,
výrazy mohou být v maticových prvcích apod. Tento princip je
základ syntaktického kódování, ve kterém jsou matematické výrazy jakékoli složitosti
jsou tvořeny pomocí malé sady šablon (tzv. schémat rozložení),
odpovídající základním vztahům, se kterými se setkáváme v matematických vzorcích.

Abychom tento princip demonstrovali, podívejme se, jak se v MathML zapisuje běžný zlomek. Má pouze dva prvky - čitatel a jmenovatel, který se odráží v odpovídající šabloně:

Zde značka , jak již bylo zmíněno, slouží k vytvoření vlastního zlomku. Atribut linethickness určuje tloušťku dělící čáry, pokud je vynechán, použije se standardní hodnota (obě možnosti jsou znázorněny na obrázku).

Čitatel je reprezentován značkou , který zase obsahuje podřízené prvky. Tato značka může obsahovat libovolný počet vnořených výrazů, které vytvářejí vzorec, který je vodorovně zarovnán podél účaří. V našem případě se jedná o součet dvou proměnných X a y(význam značek a bude vysvětleno níže). Všimněte si, že záznam bez značky by vedlo k chybě, protože první výraz nalezený v záznamu by byl brán jako čitatel ( X). Nakonec se jmenovatel skládá z jedné proměnné Z, prošel kolem značky .

Hlavními prvky používanými v reprezentaci MathML jsou symboly (tokeny) a šablony (schémata rozložení uvedená výše). První jsou prvky jazyka, které mohou obsahovat pouze písmena (například k označení proměnných) a vlastní matematické symboly, ale ne jiné prvky.

Živel slouží k zadávání identifikátorů. Funguje podle následujícího pravidla: pokud je hodnota prvku jeden znak, je považována za proměnnou a zobrazuje se kurzívou, pokud je hodnotou řetězec, zobrazuje se v římském typu (tato vlastnost se používá k zápisu funkcí jako hřích, ln atd.). Živel je navržen tak, aby zobrazoval matematické operátory a , se kterým jsme se zatím nesetkali, je pro zobrazování čísel. Každý z popsaných prvků má určitou sadu atributů, které umožňují změnit výchozí zobrazení znaků.

Nyní se podívejme na některé šablony MathML, které zprostředkovávají základní matematické výrazy. Se dvěma z nich jsme se setkali výše: jedná se o značky pro specifikaci běžného zlomku a výrazu zarovnaného podél základní linie. Další nejdůležitější vzory jsou předávány s následujícími značkami:

  • vypíše radikální znak s vnořeným výrazem. Podobná značka slouží k zobrazení kořene n stupeň;
  • určuje výraz uzavřený v závorkách. Atributy lze použít k určení oddělovače pro vnořené výrazy a některé další charakteristiky;
  • značky pro předávání horních/dolních indexů. Například výraz s horním indexem
    (stupeň) je uveden jako HIGH_INDEX EXPRESSION

K dispozici jsou také šablony pro návrh téměř všech nejdůležitějších matematických výrazů a matic (celkem asi 30 typů).

Sémantické kódování

Nyní přejdeme ke způsobu kódování pomocí sémantiky výrazů. Jak je uvedeno výše, odráží matematický obsah vzorce. Klíčem k předání sémantiky je prvek . Pojďme si jeho použití ilustrovat na jednoduchém příkladu. Následující kód vytvoří zlomek stejného formuláře, jak je znázorněno na Obr. jeden.

Rýže. 2

V našem příkladu první jde prvek označující
dělení (zlomek). Řekněme hned, že v sémantickém kódování většina operátorů
jsou předávány značkami jako , ve kterém před závěrnou úhlovou závorkou
je tam lomítko (tzv. „prázdné“ prvky). Pak následujte
argumenty: ještě jeden prvek , předáním operátoru součtu X
a y, a - Z. Podle toho součet (první argument operátoru dělení)
zobrazí se jako čitatel zlomku a proměnná Z- jako jmenovatel. MathML
obsahuje asi 90 operátorů rozdělených do několika kategorií: aritmetické,
algebraické, logické atd.

V tomto příkladu byl každý nalezený operátor aplikován na dvojici argumentů. Ale, jak vyplývá z výše uvedeného obecného pohledu na prvek , může být libovolný počet argumentů (pokud to operátor sám umožňuje). Například výraz znázorněný na Obr. 2 se píše jako

V posledních dvou příkladech zůstal jeden bod bez vysvětlení – tagy pro přenos
abecední identifikátory a čísla. to a respektive
- úplné analogy prvků a při kódování syntaxe.
Všimněte si, že značka nemá analog při použití sémantiky,
protože všechny informace o operátorovi jsou přenášeny speciálním operátorským štítkem,
přichází po .

Chcete-li nastavit strukturu vzorce, nejen . Například pro vyjádření vztahu (rovnost, nerovnost, inkluze atd.) existuje speciální značka . Následující úryvek vytvoří vzorec znázorněný na Obr. 3.



X

y
z


Tady říká, že matematický výraz obsahuje jeden ze vztahů a značku "prázdný". označuje jeho specifický typ, "menší než". ID bude na levé straně. X, vpravo - součet dvou proměnných, určený pomocí známého prvku .

Informace, které jsme o MathML poskytli, i když zdaleka nejsou úplné, jsou dostačující k tomu, abyste tento jazyk začali používat sami. Kromě toho existují speciální softwarové nástroje navržené tak, aby se zbavily rutinní práce.

software MathML

Související stránka W3C poskytuje odkazy na přibližně
tři desítky doporučených produktů pro práci s MathML. Zdá se, že nejdůležitější je
situaci s prohlížeči, protože v největší míře charakterizuje stupeň rozpoznávání
jakékoli webové technologie. K dnešnímu dni jsou správně připraveny pouze dva produkty
interpret MathML: Amaya (který lze stáhnout ze stránek stejného W3C) a
Mozilla. Ostatní vývojáři bohužel s podporou pro své produkty nespěchají.
tuto slibnou technologii. Naše nejoblíbenější prohlížeče Microsoft Internet
Explorer a Netscape Navigator v základním MathML „nerozumí“
existují však speciální
plug-iny – od IBM , Design
Věda, teoretik
interaktivní.

Stejné tři společnosti také dodávají kompletnější verze svého softwaru, který je již navržen pro vytváření dokumentů MathML. Příklady pro tento článek byly připraveny zejména v prohlížeči IBM techexplorer Hypermedia Browser. Podobné úlohy lze řešit pomocí méně specializovaných aplikací. Například počítačové matematické systémy (Mathematica, Maple, Mathcad) obvykle exportují své dokumenty do formátu HTML s „fleky“ MathML.

MathML je také podporováno některými systémy DTP pro přípravu
vědeckou a technickou dokumentaci. Z nejznámějších produktů této třídy
lze nazvat WebEQ,
což je balíček Java aplikací, které poskytují kompletní cyklus
a publikování dokumentů ve formátech MathML a WebTeX; wolfram
Publicon za přípravu matematických textů v prezentační kvalitě
možnost exportu do MathML; textové procesory od MacKichana
Software, který dokáže ukládat dokumenty z jejich hlavního formátu TeX
v MathML.

Existují také speciální konvertory pro převod do/z MathML. TeX je nejběžnější zdrojový formát. MathML se zase promění ve stejný TeX nebo populární grafické formáty.

Avšak i bez takových, ne vždy dostupných balíčků, které máte k dispozici, můžete po určité přípravě vytvářet dokumenty MathML ručně. Jde totiž o obyčejné textové soubory, pro práci s nimiž (stejně jako s HTML) stačí jednoduchý textový editor.

Na závěr ještě jednou zdůrazňujeme, že MathML se objevil relativně nedávno (popis verze 1.0 byl zveřejněn v roce 1998) a je v plenkách. Nelze vyloučit, že za pár let MathML ustoupí výkonnější a pokročilejší technologii. Již nyní však lze s jistotou říci, že hluboké myšlenky vložené do tohoto jazyka poslouží jako pevný základ pro vytváření budoucích metod pro prezentaci složitých vědeckých a technických dokumentů.