Mendelova zemědělská a lesnická univerzita v Brně Provozně ekonomická fakulta
Použití matematického textu v prostředí webu Bakalářská práce
Vedoucí práce: Ing. Roman Malo, Ph. D.
David Schubert
Brno 2008
Děkuji Ing. Romanu Malovi, Ph.D. za vedení, podporu a cenné připomínky při tvorbě této práce.
Prohlašuji, že jsem tuto bakalářskou práci vytvořil samostatně podle pokynů vedoucího bakalářské práce s využitím odborné a jiné literatury uvedené v seznamu.
Abstract Schubert D. Application of mathematical text in web enviroment. Bachelor thesis. Brno, 2008 This bachelor thesis presents current possibilities of mathematical notation in the web environment. The document analyses individual ways of the notation with the help of available technologies. Furthermore it is focused on the notation of mathematical text with the aid of the Mathematical Markup Language (MathML) and desribes suitable working procedures for forming of mathematical text in order to be possible to display it in a high quality in the web enviroment.
Abstrakt Schubert D. Použití matematického textu v prostředí webu. Bakalářská práce. Brno 2008 Tato bakalářská práce pojednává o současných možnostech zápisu matematického textu ve webovém prostředí. Dokument analyzuje jednotlivé způsoby zápisu za pomocí dostupných technologií. Dále se pak soustředí na zápis matematického textu pomocí značkovacího jazyka MathML a popisuje vhodné pracovní postupy k vytvoření matematického textu tak, aby jej bylo možné kvalitně zobrazovat ve webovém prostředí.
5
OBSAH
Obsah 1 Úvod a cíl práce 1.1 Uvedení do problematiky . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Cíl práce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Teoretická východiska 2.1 Historie matematiky na počítačích . . . . . . . . . . . . 2.1.1 Vkládání matematických výrazů pro výpočet . . 2.1.2 Vkládání matematických výrazů pro zobrazení a 2.2 Způsoby zápisu matematického textu v prostředí webu 2.2.1 Rastrový obrázek . . . . . . . . . . . . . . . . . 2.2.2 Formát PDF . . . . . . . . . . . . . . . . . . . . 2.2.3 Jazyk HTML . . . . . . . . . . . . . . . . . . . 2.2.4 Další značkovací jazyky . . . . . . . . . . . . . . 2.2.5 Jazyk MathML . . . . . . . . . . . . . . . . . .
4.2.7 Výběr nástrojů . . . . . . Převod mezi TEXem a MathML . 4.3.1 TEX a MathML . . . . . . 4.3.2 Převod TEXu do MathML 4.3.3 Převod MathML do TEXu
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
38 40 40 41 43
5 Závěr
45
6 Literatura
47
Přílohy
48
A Prezentační elementy MathML
49
1
ÚVOD A CíL PRÁCE
1 1.1
7
Úvod a cíl práce Uvedení do problematiky
Otázka, jak vkládat matematické výrazy, rovnice a vzorce, je stará stejně jako počítače samy. První počítače byly vyvinuty aby prováděly vědecké výpočty a první počítačový jazyk byl navrhnut tak, aby zjednodušil proces překladu matematických vzorců do počítačově srozumitelné formy. Dokonce první jazyk FORTRAN byl pojmenován podle tohoto úkonu: FORmula TRANslation, do češtiny přeloženo jako překlad vzorců. Jelikož se počítače stávaly čím dál více výkonnějšími a grafické výstupní zařízení přijatelné a běžné, vyvstala otázka, zda by nemohla existovat nějaká sada písmen nebo znaků, která by mohla být použita jako vstup pro výpočtový systém. To bylo ale vcelku nemožné. Existovalo více systémů pro tvorbu a tisk matematických výrazů a také více systémů pro provádění matematických výpočtů. Zkrátka neexistoval a stále neexistuje nějaký obecný standard pro tvorbu matematického textu. V posledním desetiletí, kdy dochází k masivnímu rozšiřování převážně textového webu se, však tento problém stává více závažnějším, neboť potřeba prezentace matematického textu stále roste. Například školní weby v rámci studijní podpory potřebují svým studentům nabídnout jako doplněk ke studiu různé matematické, fyzikální, chemické a jiné vzorce a tím jim vzniká problém s jejich zápisem a prezentací. Proto v roce 1995 bylo organizací W3C uznáno, že nemožnost výměny matematických a příbuzných vzorců představuje vážný problém. Bylo navrhnuto rozšíření HTML jazyka o nové elementy (na HTML 3.0), které formátování vzorců umožní. Později ale bylo od tohoto záměru upuštěno a bylo ustanoveno, že by měl vzniknout obecný mechanismus pro zápis vzorců. Vznikl tedy jazyk MathML, který je podmnožinou jazyka XML. Jazyk MathML slouží k popisu matematického výrazu a uchování jeho struktury a obsahu. Cílem MathML je umožnit matematice, aby byla spravována, přijímána a prováděna na webu tak, jako je jazyku HTML dovoleno zpracovávat text. A právě na jazyk MathML a problematiku s ním spojenou se bude tato práce převážně soustředit.
1.2
Cíl práce
Cílem této práce je analyzovat problematiku využití matematického textu ve webovém prostředí a porovnat jednotlivé přístupy jeho zápisu. Práce se bude soustředit především na problematiku zápisu matematického textu pomocí značkovacího jazyka MathML. Na jednotlivých příkladech budou demonstrovány principy jeho zápisu. Dále pak bude analyzována podpora MathML v současných internetových prohlížečích a uveden způsob tvorby dokumentů pro jednotlivé prohlížeče.
1.2
Cíl práce
8
V práci budou také navrhnuty uživatelské postupy pro vytváření matematického textu pro web na základě dostupných softwarových aplikací pro jeho přípravu a také uvedeny možnosti konverze mezi jazykem MathML a TEXem.
2
TEORETICKÁ VÝCHODISKA
2 2.1
9
Teoretická východiska Historie matematiky na počítačích
Problém kódování matematiky pro počítačové zpracování nebo elektronické komunikace je mnohem starší než web. Vývoj vkládání matematického textu tvořily dvě linie. První se soustředila na vkládání matematických výrazů pro jejich výpočet a druhá byla zaměřena na vkládání matematických výrazů pro zobrazení a tisk (Wolfram Research, 2008). 2.1.1
Vkládání matematických výrazů pro výpočet
Jak již bylo uvedeno, první počítače byly navrženy tak, aby prováděly vědecké výpočty. Pro tyto účely byl vytvořen počítačový jazyk, který zjednodušoval vkládání a překlad matematických vzorců. Byl to jazyk FORTRAN. Název FORTRAN pochází z anglického názvu FORmula TRANslation, do češtiny přeloženo jako překlad vzorců. Od té doby, co byl na dřívějších počítačích omezován vstup a výstup na jednoduché posloupnosti štítků (např. děrných štítků nebo pomocí dálnopisu), bylo přirozené použít jednoduchý lineární zápis jako 1/(2+a**2), který představoval vzorec 1 . Základní představou bylo používat jednoduchý textový editor (nebo děrné (2+a2 ) štítky) pro vytvoření vstupního výrazu (programu). Jakmile byl vytvořen vstupní výraz, byl předložen systému, který si ho přeložil podle pravidel počítačového jazyka a vytvořil si tak jeho vnitřní reprezentaci,ve které byly jednotlivým částem výrazu přiřazeny jejich významy (např. druhá mocnina proměnné a byla převedena na výraz a**2) (Wolfram Research, 2008). 2.1.2
Vkládání matematických výrazů pro zobrazení a tisk
Vedle problému s vyhodnocováním matematických výrazů vyvstal také problém s jejich zápisem do přehledné, čitelné a tisknutelné formy. Lidé proto začali vyvíjet jazyky a programy, které budou umožňovat zápis matematických vzorců pomocí tisknutelné sady znaků. Výrazy by potom byly vytvořeny tak, aby mohly být zobrazeny a vytištěny ve formě, která co nejvěrohodněji vystihuje původní matematický vzorec. Za tímto účelem byl vytvořen sázecí systém TEX, který ještě v dnešní době představuje fenomén v oblasti sazby matematického textu. Další možnost zápisu, která byla také hojně užívána, představoval značkovací jazyk ISO 12083 vycházející ze SGML. Tyto jazyky jsou užívány pro popis matematického výrazu tak, aby byl ve srozumitelné formě zobrazen výstupním zařízením (monitor, tisk). Protože matematická sazba zahrnuje jen velmi omezený počet způsobů zápisu (typ písma jako horní a dolní index, vertikální a horizontální zarovnání, sadu zvláštních a speciálních znaků
2.2
Způsoby zápisu matematického textu v prostředí webu
10
jako druhá odmocnina atd.), mohla by se zdát jednoduchá. Hlavní problém spočívá ve velkém množství zvláštních znaků, jako jsou řecká písmena, hebrejské znaky, znaky integrálu, atd). Tyto znaky byly vytvořeny grafickými editory, které dovolovaly uživateli interaktivně konstruovat sady písmen, které pak mohly být uloženy například v TEXovém nebo podobném formátu. V devadesátých letech, kdy se začal rozvíjet web, vyvstal problém, jak tento matematický text začít zobrazovat právě na webu. Jedním z řešení bylo zobrazení založené na formátu TEX nebo ISO 12083. Toto zobrazení ale nebylo vhodné, proto se muselo najít takové řešení, které by dovolovalo zobrazovat matematický text ve srozumitelné formě. Za tímto účelem byl vytvořen jazyk MathML (Wolfram Research, 2008).
2.2
Způsoby zápisu matematického textu v prostředí webu
Způsobů zápisu matematického textu v prostředí webu existuje hned celá řada. Asi jeden z nejjednodušších je zapsání matematického textu přímo do HTLM dokumentu za pomocí například horních a dolních indexů, znakových entit, lomítek a hvězdiček apod. Dalším a asi nejrozšířenějším způsobem prezentace je zobrazení pomocí rastrového obrázku. Tento způsob však doprovází mnoho dalších mezikroků, které musí uživatel podniknout před samotnou prezentací. Jedním ze způsobů je také prezentace za pomocí přenosného formátu vyvinutého firmou Adobe a to formátem PDF. Ten je vytvořen tak, aby ho bylo možno zobrazit nezávisle na typu zařízení, které uživatel používá. Za nejlepší nástroj pro sazbu matematického textu je obecně považován sázecí systém TEX naprogramovaný profesorem Donaldem Knuthem. Všechny tyto způsoby zobrazení řeší stránku vizuální, ale na druhou stranu opomínají stránku významovou, kterou si matematický výraz nese. Tento problém řeší zápis za pomocí značkovacího jazyka MathML. Tento jazyk byl vyvinut konsorciem W3C z důvodu nemožnosti kvalitní a rozumné prezentace ve webovém prostředí. S posledními možnostmi prezentace souvisí i další možný způsob zobrazení, a to za pomocí zásuvných modulů pro webové prohlížeče. Ty byly vytvořeny z důvodů špatné podpory MathML v prohlížečích a umožňují zobrazení i v prohlížečích, které přirozeně nepodporují MathML 2.2.1
Rastrový obrázek
Nejjednodušší a také jeden z nejrozšířenějších způsobů, jak vložit matematické vzorce do webových stránek je reprezentovat každý vzorec jako obrázek, typicky ve formátu GIF nebo JPEG. Nicméně tento přístup s sebou přináší řadu stinných stránek:
2.2
Způsoby zápisu matematického textu v prostředí webu
11
• Pokud bude mít stránka více rovnic, každá musí být uložena jako samostatný obrázek. To sebou nese velkou velikost souboru a delší dobu stahování. • Velikost, typ, styl a barva písma použitého pro zobrazení vzorce jsou fixní a nemohou být aktualizovány a měněny přímo ve zdrojovém kódu stránky. • Když je vzorec uložen jako obrázek, všechny informace o jeho významu jsou ztraceny. To ztěžuje jeho vyhledávání v databázi a získávání dokumentů obsahujících tento vzorec. • Kvalita obrázků může být špatná a nevhodná pro online prohlížení a tisk. Obrázky mají obvykle nižší rozlišení než obklopující text. Tato nesourodost v rozlišení dělá obrázek někdy těžko čitelným. • Rovnice uložené jako obrázek nemohou být kopírovány a vkládány z jedné aplikace do druhé tak, aby bylo možné je opětovně bez problému použít. 2.2.2
Formát PDF
PDF (zkratka anglického názvu Portable Document Format) – formát pro přenositelné dokumenty je univerzální souborový formát vyvinutý firmou Adobe pro ukládání a přenos souborů nezávisle na softwaru i hardwaru, na kterém byly pořízeny. Soubor typu PDF může obsahovat text i obrázky, přičemž tento formát zajišťuje, že se libovolný dokument na všech zařízeních zobrazí stejně. Z tohoto důvodu jsou soubory formátu PDF další oblíbenou metodou pro prezentaci matematických zápisů na webu. Matematické vzorce vložené do PDF souboru jsou ve velmi dobré kvalitě a rozlišení a jsou vhodné pro prohlížení a tisk. Nicméně soubory PDF však mají své nedostatky (Královec, 2006): • Zobrazení PDF souboru vyžaduje speciální prohlížecí aplikaci, která musí být nainstalována zvlášť a každé její spouštění zabere určitou dobu. • PDF soubor nemůže být dobře začleněn do webového prostředí. Při spuštění zásuvného modulu v okně prohlížeče je zabráno celé jeho okno a není možné kombinovat vzorce ve formě PDF s jiným webovým obsahem jako je HTML. Matematický obsah v PDF souboru nemůže být kopírován a vkládán do jiných aplikací, aniž by nezměnil svou strukturu. Z tohoto důvodu jsou tyto informace méně přenosné a znovu použitelné. 2.2.3
Jazyk HTML
Pomocí jazyka HTML je možné do jisté míry matematický text zobrazovat, ale jsme omezeni fyzickým formátováním textu za pomocí HTML tagů (např. horních a dolních indexů). Speciální znaky lze vkládat také znakovými entitami. V rámci zvoleného kódování je možné vkládat do HTML kódu znaky podle čísla v ASCII tabulce. To je umožněno zápisem číslo;. Dále je možné použít závorky (kulaté, hranaté nebo složené), hvězdiček (ve významu násobení), lomítek (ve významu dělení), znaku plus a znaku mínus (Janovský, 2008). Snad jedinou možnou výhodou by mohl být fakt, že by se dal obsah vzorce editovat přímo ve zdrojovém kódu.
2.2
Způsoby zápisu matematického textu v prostředí webu
12
Ale práce s takovýmto kódem je velmi náročná a nepřehledná a je potřeba znalost ordinálních hodnot v ASCII tabulce nebo jejich dohledání pro vkládání speciálních znaků. Nevýhody lze opět shrnout do následujících bodů: • Zápis vzorce za pomocí HTML tagů a znakových entit je často velmi složitý, zdlouhavý a nepřehledný. • Při vytváření rovnic je potřeba znalost ordinálních hodnot speciálních matematických znaků. • Absence mnoha znaků. • Jazyk HTML je určen pro formátování textu. Není však určen pro formátování textu matematického. 2.2.4
Další značkovací jazyky
Již před nástupem Webu používali vědci značkovací jazyky ke kódování matematiky. Zvláště mezi fyziky a matematiky byl široce přijímán sázecí systém TEX vytvořený Donaldem Knuthem v sedmdesátých letech. TEXové dokumenty ale nemohou být zobrazeny na webu bez složitějšího zpracování. Pro jejich zobrazení je nutné použít některé nástroje (např. plugin techexplorer), které dokáží převádět dokumenty napsané v TEXu do jazyka MathML. TEX je primárně určen pro formátování textu jak běžného, tak i matematického a navržen tak, aby nesl informaci o jeho vizuálním vzhledu, nikoliv však o jeho významu. Je proto nevhodný pro aplikace, kde je jeho významová stránka důležitá. Dalšími značkovacími jazyky, které byly vyvinuty pro zachycení matematiky, jsou ISO 12083 a OpenMath. ISO 12083 je SGML aplikace pro prezentaci matematických zápisů. Stejně jako TEX je ISO 12083 jen prezentační jazyk a nedokáže přímo vystihnout význam matematického výrazu. OpenMath je standard, který je oproti předchozím dvěma jazykům vyvinutý pro kódování významové části matematiky. OpenMath používá OpenMath objekty, napsané speciálně v XML formátu, které definují význam matematického objektu. Hlavním smyslem OpenMath je popis matematických výrazů z hlediska významového. Nedokáže však již zachycovat stránku vizuální. V jistém slova smyslu je OpenMath opakem TEXu a ISO 12083 (Wolfram Research, 2008; W3C, 2003; OpenMath, 2006). 2.2.5
Jazyk MathML
MathML nebo-li Mathematical Markup Language (v češtine matematický značkovací jazyk) je XML aplikace sloužící k popisu matematického textu a pro zachycení jak jeho struktury, tak i jeho významu. Jelikož MathML zachycuje oba tyto prvky, je proto nutné použít dvojího způsobu značkování pomocí reprezentačních a významových elementů. Prezentační elementy určují, jak bude kódovaný výraz v prohlížeči zobrazen. Významové elementy popisují přímo význam matematického vzorce (např. funkce, vektory, množiny atd.).
3 METODICKÁ VÝCHODISKA PRO TVORBU MATEMATICKÉHO TEXTU PRO WEB POMOCí JAZYKA MATHML 13
3
Metodická východiska pro tvorbu matematického textu pro web pomocí jazyka MathML
„Existuje celá řada značkovacích jazyků, ale do začátku dubna 1998 bychom mezi nimi našli pouze jediný, který umožňuje sazbu matematických vzorců. Jde o jazyk HTML 3.0. Tento jazyk však nebyl nikdy přijat jako standard, protože byl příliš složitý. Další jazyky podporovaly pouze index a exponent, což opravdu na složitější výrazy nepostačí. MathML (Mathematical Markup Language) je značkovací jazyk, který vznikl především jako prostředek pro prezentaci matematiky na Webu. V současné době jsou na tento jazyk však kladeny vyšší požadavky. Jde především o podporu rozšiřitelnosti tohoto jazyka, o podporu efektivního vyhledávání, o ulehčení konverze z a do jiných nejen matematických formátů na úrovni prezentační a obsahové. Mezi požadované výstupy patří grafický, zvukový výstup, vstup pro systémy počítačové algebry. Cílem MathML je umožnit prezentaci a zpracovávání matematiky na Webu. MathML je XML aplikace sloužící k popisu matematického zápisu a k vyjádření jak struktury matematického výrazu, tak i jeho obsahu. Z tohoto důvodu používá MathML dvojího značkování, pomocí prezentačních elementů a sémantických elementůÿ (Okálková, 2003).
3.1 3.1.1
Historie jazyka MathML MathML 1.0
„Mathematical Markup Language 1.0 Specification byl přijat konsorciem W3C 7. dubna 1998. Tvůrci tohoto jazyka (XML aplikace) tvořili tým skládající se ze členů Americké matematické společnosti a členů Geometrického centra Minnesotské univerzity, jmenovitě Patrick Ion, Robert Miner, Stephen Bushwell, Stan Devitt, Angel Diaz, Nico Poppelier, Bruce Smith, Neil Soiffer, Robert Sutor, Stephen Watt. Celá tato skupina je jednotně označována jako W3C Math Working Group. MathML 1.0 představuje specifikaci definující značkovací jazyk pro matematiku. Tato specifikace značkovacího jazyka byla původně určena pro čtenáře skládajících se z těch, kteří tento jazyk budou rozšiřovat, implementovat nebo vytvářet software, který bude při komunikaci používat MathML jako vstupní a výstupní protokol. 7. července roku 1999 byla konsorciem W3C přijata další verze MathML 1.01. Nejde o žádné podstatné rozšíření jazyka MathML. Ve skutečnosti jde pouze o ediční změny původního znění z roku 1998. Významného posunu vývoje dostálo MathML další verzí, která byla konsorciem přijata v roce 2001 ÿ (Okálková, 2003). 3.1.2
MathML 2.0
„Verze 2.0 jazyka MathML byla přijata konsorciem W3C 20. února 2001. Jde o rozšíření verze 1.0. Jazyk MathML 2.0 se stejně jako předchozí verze snaží odstranit
3.2
Popis MathML
14
nedostatky MathML jako prostředku pro zpracování matematických výrazů. MathML představuje prostředek pro kódování matematických vzorců pomocí značkování XML, popsaný v DTD pro XML. MathML obsahuje tagy pro formátování vzorců, navíc jsou do tohoto modelu přidány i tagy popisující logický význam výrazu a dovolující porovnávat vzorce při vyhledávání dat. MathML je navrženo takovým způsobem, aby bylo kompatibilní i se systémem TEX ÿ (Okálková, 2003). 3.1.3
MathML 3.0
28. 6. 2006 byla sestavena nová pracovní skupina, aby zlepšila dosavadní specifikaci MathML 2.0. Tato skupina byla pověřena, aby do konce února 2008 vytvořila nové doporučení MathML 3.0. K dispozici však zatím není úplné doporučení, ale jen pracovní návrh. Změny by měly zahrnovat zejména podporu základních matematických záznamů, jako jsou smíšená čísla, dvourozměrné záznamy pro sčítání, násobení a nezkrácené dělení. Dále pak online analýzu, rozšíření prezentačního MathML, silnější selektory pro lokalizaci MathML, zvláště pro arabské písmo. Rozšíření MathML s větší podporou pro značení rovnic včetně automatického číslování, řešení odkazů. Zlepšit aktuální prezentační prvky pro přesné rozvržení a lepší překlad souvislostí. Aktualizovat MathML tak, aby odráželo aktuální verze příbuzných technologií, jako je Unicode, SVG, CDF a jiné, které jsou specifikací zmíněny. Zajištění kompatibility mezi MathML a nově vyvíjenou technologií XML-RELATED (W3C, 2003).
3.2
Popis MathML
Jak již bylo zmíněno, MathML neboli Mathematical Markup Language, je značkovací jazyk založený na jazyku XML, ze kterého vyplývá jeho struktura. Základními stavebními jednotkami jsou elementy. Tyto elementy potom mohou obsahovat atributy a hodnoty atributů. Jako v každém XML dokumentu jsou hodnoty elementů uzavřeny v párových značkách (počáteční a koncový tag) a celý dokument je ohraničen kořenovým elementem math. Vzhled matematických zápisů a jejich význam mají mezi sebou složitý vztah. Dva stejné zápisy mohou znamenat dva zcela odlišné významy, závisející na kontextu. Například, výraz f (x + y) by mohl být interpretován dvěma způsoby: • jako hodnota funkce f se dvěma argumenty, • jako proměnná f , která násobí součet proměnných x a y. Proto je důležité odlišit od sebe vzhled a význam daného výrazu. Řešení přijaté v jazyce MathML spočívá v použití dvou skupin značení – prezentační značení a významové značení. Prezentační značení je používáno k zápisu vzhledu matematického vzorce. Významové značení je na druhou stranu použito pro zápis významové stránky vzorce, který může být poté použit k výpočtům. Z tohoto důvodu může být v MathML každý matematický zápis reprezentován několika různými způsoby (W3C, 2003):
3.2
Popis MathML
15
• Použitím prezentačního značení. Tento způsob je potřebný v situaci, kdy primárním cílem je zobrazit matematický zápis bez ohledu na jeho význam. Například pokud potřebujeme vložit vzorec do dokumentu pouze pro zobrazení na webu. • Použitím významového značení. Toto značení je používáno v případě, kdy je důležité zachytit matematický význam. Například pokud potřebujeme vzorec použít pro výpočet. • Použitím kombinace prezentačních a významových elementů. Tento typ je nazýván kombinační značení. Používá se v případě, kdy chceme definovat nestandardní zápis pro běžnou matematickou konstrukci nebo pro spojení určitého matematického výrazu s některým typem zápisu, který má obvykle jiný význam. 3.2.1
Prezentační značení
Prezentační značení se skládá asi ze 30 elementů (seznam těchto elementů naleznete v příloze této práce) a 50 atributů. Nejdůležitějšími prezentačními elementy jsou takzvané znakové elementy (token elements) – mo, mn a mi – které jsou používány pro reprezentaci operátorů (jako + nebo − ), čísel (jako 3, 14 nebo −5), a identifikátorů (jako jsou proměnné např. x nebo y). Znakové elementy jsou prezentační elementy, které jako jediné mohou obsahovat znaková data. Všechny ostatní elementy mohou obsahovat pouze ostatní MathML elementy. Důvod pro oddělené používání operátorů, číslic a identifikátorů je, že každý typ položky může mít jiný způsob sazby. Například operátor může mít kolem sebe větší odsazení, čísla mají obvykle svislý sklon a identifikátory jsou psány obvykle kurzívou. Pro názornost budou uvedeny příklady, které se mohou nejběžněji vyskytnout. Tento jednoduchý příklad prezentačního značení znázorňuje výraz x + y: <math> <mrow> <mi>x <mo>+ <mi>y Kořenovým elementem je zde math element, který je nezbytný proto, aby bylo jasné, že se jedná o MathML. Dalšími elementy jsou elementy mi pro reprezentaci identifikátorů x a y a element mo pro znázornění operátoru +. Tyto elementy jsou uzavřeny v elementu mrow, který určuje, že každý jeho přímý potomek bude zobrazen vodorovně na řádku. Zde je stejný příklad, který je mírně komplikovaný. Výraz (x + y)2 :
3.2
Popis MathML
16
<math> <msup> <mrow> <mo>( <mrow> <mi>x <mo>+ <mi>y <mo>) <mn>2 Prvním elementem po math je msup, který udává fakt, že výraz bude umocněn na druhou. Element msup má dva argumenty, které zastupují výraz a horní index. Základ tvoří samostatný element mrow, který představuje první argument a obsahuje zápis x + y. Horní index představuje druhý argument a je uzavřen ve znakovém elementu mn. Tento příklad naznačuje některé z obecných principů, jak je možné vymezit zápis pro kterýkoliv matematický výraz. Každý výraz je rozložen do sestávajících se podvýrazů a proces pokračuje rekurzivně tak dlouho, dokud není dosaženo základních a nedělitelných prvků, jako jsou čísla, identifikátory nebo operátory (znakové elementy). √ 2 Další příklad ilustruje, jak jsou zachyceny zlomky a odmocniny: x = −b± 2ab −4ac <math > <mrow> <mi>x <mo>= <mfrac> <mrow> <mo>- <mi>b <mo>± <msqrt> <mrow> <msup> <mi>b <mn>2 <mo>-
3.2
Popis MathML
17
<mrow> <mn>4 <mo>⁢ <mi>a <mo>⁢ <mi>c <mrow> <mn>2 <mo>⁢ <mi>a Elementy mfrac a msqrt jsou použity pro zlomek a pro odmocninu. Element mfrac má syntaxi <mfrac> a b , kde a je čitatel zlomku a b je jmenovatel zlomku. Dále zde byla použita entita ⁢, která zastupuje násobení a entita ±, která zastupuje symbol ±. a b Dalším příkladem prezentačního značení bude zápis matice : c d <math> <mrow> <mo>( <mtable> <mtr> <mtd><mi>a <mtd><mi>b <mtr> <mtd><mi>c <mtd><mi>d <mo>)
3.2
18
Popis MathML
Základní element matice je element mtable, který je použit pro reprezentace každého typu tabulky nebo pole. Každý řádek tabulky je uzavřen do elementu mtr a každý údaj nebo buňka jsou uzavřeny v elementu mtd. R∞ Jako poslední příklad bude uveden vzorec zahrnující integrál e−x dx = 1: 0
<math> <mrow> <mrow> <msubsup> <mo>∫ <mn>0 <mi>∞ <mrow> <msup> <mi>ⅇ <mrow> <mo>- <mi>x <mo>⁢ <mrow> <mo>ⅆ <mi>x <mo>= <mn>1 Novým elementem je v tomto příkladu element msubsup, jehož syntaxe je <msubsup> dolní index horní index . Tento element je používán pro pozici horního a dolního indexu nad jedním znakem. Dále zde byly použity entity ∫, ⅇ, ⅆ, které zastupují symboly integrálu, exponenciálu a diferenciálu. Použitím těchto znaků je poskytována užitečná informace o významu tohoto výrazu. Seznam všech prezentačních elementů se nachází v příloze této práce.
3.2
Popis MathML
3.2.2
19
Významové značení
Významové značení obsahuje asi 150 elementů a 12 atributů. Většina významových elementů jsou prázdné elementy, které reprezentují určité operátory, funkce a relace. Jako příklad je možné uvést elementy plus, power, log nebo sin. Významové značení obsahuje tři znakové elementy. Jsou to cn, ci a csymbol, které jsou používány pro zápis číslic, identifikátorů a uživatelem definovaných symbolů. Tyto tři elementy jsou jediné elementy, které obsahují znaková data. Všechny ostatní jsou prázdné elementy a mohou obsahovat kterýkoliv jiný element. Nejdůležitější významový element je element apply, který je používán k užití operátoru nebo funkce. První argument apply elementu je typicky element, který zastupuje operátor nebo funkci. Zbývající argumenty zastupují jeden nebo více výrazů, na které je první argument aplikován. Významové značení je založeno na prefixovém zápisu. V prefixovém zápisu je každý výraz zapsán tak, že na prvním místě je operátor, po kterém následují objekty, se kterými se má provést tato operace. Například výraz x + y by v prefixovém zápise vypadal +xy. Podobně x2 by bylo zapsáno jako power x 2. Ve významovém značení by x2 vypadalo takto (W3C, 2003): <math> <power> x2 Značení obsahuje element apply následovaný třemi elementy, které jsou jeho argumenty. První element je prázdný element power, který zastupuje funkci, která má být s daným výrazem provedena. Další dva elementy ci a cn reprezentují argumenty, na které se bude funkce vztahovat. Element ci zastupuje základ x a cn druhou mocninu. Zde je výraz x + y zapsaný ve významovém značení: <math> xy Značení opět obsahuje jeden element apply následovaný elementem plus (zastupuje funkci, která má být provedena) a dvěma elementy ci (zastupují dva argumenty, na které se vztahuje plus).
3.2
Popis MathML
20
Zde je příklad zápisu vzorce (x + y)2 : <math> <power/> xy2 Tento příklad kombinuje elementy z předešlých dvou příkladů. Používají se zde dva apply elementy. Vnitřní element apply je použit pro zápis x + y a vnější pro umocnění celého výrazu na druhou. Dalším příkladem je výraz x2 − 2x + 1: <math> <minus/> <power/> x22x1 V tomto příkladu jsou použity opět elementy apply, plus a power jako v minulých příkladech. Novými elementy jsou zde minus a times, které představují odčítání a násobení. √ V dalším příkladu bude uvedeno, jak bude vypadat zápis zlomku 1+2 5 :
3.2
21
Popis MathML
<math> 152 Tento příklad demonstruje zápis jednoduché matice
a b c d
<math> <matrix> <matrixrow> ab <matrixrow> cd V posledním příkladu je uveden zápis integrálu
<minus/> x1 V tomto příkladu je elementem int znázorněn integrál. Elementy lowlimit, uplimit a bvar jsou použity k zápisu dolní hranice integrálu, horní hranice integrálu a proměnné integrálu. Konstanty ∞ a e jsou reprezentovány použitím významových elementů infinity a exponentiale.
3.3 3.3.1
Podpora MathML v prohlížečích Firefox a ostatní prohlížeče založené na Mozille
Internetový prohlížeč Mozilla Firefox je jeden z celosvětově nejpoužívanějších prohlížečů, ve kterém je implementována podpora zobrazování MathML. Není zde zapotřebí instalace žádného zásuvného modulu. Pro správného zobrazení speciálních znaků je však nutné doinstalovat balíček fontů (Grimmich, 2004). 3.3.2
Internet Explorer
Internet Explorer nepodporuje přímo zobrazení v jazyce MathML. Firma Microsoft doporučuje řešit tento problém za pomocí zásuvných modulů jako je Techexplorer Media Browser nebo Mathplayer. Techexplorer je nabízen zdarma pro nekomerční užívání. Placená verze však navíc obsahuje prohledávání a umožňuje tisk. Navíc ho lze použít i v prohlížeči Opera. Oproti tomu Mathplayer je určen pouze pro Microsoft Internet Explorer, a to od verze 5.5 a vyšší (Grimmich, 2004). 3.3.3
Opera
Prohlížeč Opera donedávna nepodporoval zobrazování matematických vzorců vůbec. Řešení by mohly poskytnout zásuvné moduly, jako je již zmíněný Techexplorer Hypermedia Browser, který umožňuje prohlížení MahtML 1.0, 1.01, 2.0 a prvků TEX, LATEX a AMS-LATEX zabudovaných do webových stránek. V současné době je k dispozici prohlížeč Opera Kestrel, jehož poslední testovací verze 9656 přináší podporu MathML. Tento prohlížeč je ale ještě ve stádiu vývoje, proto zde není zaručena stoprocentní spolehlivost a stabilita (Večeřa, 2007).
3.3
Podpora MathML v prohlížečích
3.3.4
23
Amaya
Amaya je webový prohlížeč a editor vyvinutý konsorciem W3C. Hlavní motivací vývoje tohoto prohlížeče byla snaha poskytnout uživateli rámec technologií vyvinutých právě konsorciem W3C a demonstrovat je. Proto podporuje jazyk MathML. Umožňuje uživateli snadno editovat prezentační značení, generovat komplexní struktury z jednoduchých částí textu napsaných uživatelem, kombinovat MathML a XHTML atd. Tento prohlížeč je však pro běžné prohlížení webových stránek zcela nevhodný. Amaya je OpenSource a je zdarma ke stažení. Stáhnout si ji můžete například na stránkách W3C1 (W3C).
1
http://www.w3.org/Amaya/User/BinDist.html
4
TVORBA MATEMATICKÉHO TEXTU V JAZYCE MATHML
4
24
Tvorba matematického textu v jazyce MathML
Vytvářet matematický text v jazyce MathML je možné dvěma způsoby. Můžeme ho tvořit v některém z textových editorů, jako je například PSPad nebo poznámkový blok. Tvorba a formátování tímto způsobem je závisí čistě na našich znalostech a dovednostech. Takovýto postup tvorby lze nazvat jako tvorba bez softwarové podpory. Další možností je, že budeme vytvářet MathML kód v některém programu či editoru, který podporuje jazyk MathML. Takovéto vytváření lze označit jako tvorba se softwarovou podporou.
4.1
Tvorba bez softwarové podpory
4.1.1
Univerzální MathML styl
Univerzální MathML styl specifikuje, jak transformovat dokument obsahující MathML ve formě vyhovující pro prohlížeč nebo MathML doplněk, který je dostupný na klientském zařízení. Univerzální MathML styl řeší také problém konfliktu požadavků na MIME typ a DOCTYPE v jednotlivých prohlížečích pro XHTML+ MathML dokumenty. Výhoda univerzálního MathML stylu je to, že transformace probíhá automaticky a autor nemusí udělat nic víc, než vložit referenci na tento styl. Použitím tohoto stylu může autor vytvářet MathML dokumenty, které mohou být prohlíženy ve kterémkoliv prohlížeči s a nebo bez speciálních doplňků. Dalším důležitým znakem univerzálního MathML stylu je fakt, že dovoluje transformovat také významové značení na prezentační. Pravidla pro použití univerzálního MathML stylu jsou následující (W3C, 2003): • Styl nepodporuje zobrazení znakových entit, jako je například ± nebo ⁢, proto nesmějí být používány. • MathML značení musí být vloženo do XHTML dokumentu s příponou .xhtml. • Každý MathML element musí mít zápis v prefixu (např. m:math). XML deklarace procesní instrukce bude následující: Tento zápis řekne prohlížeči, aby stáhl XSLT styl s názvem mathml.xsl z uvedené adresy a použil jej na tento dokument. Celý XML dokument by pak mohl vypadat následovně: ...
4.1
Tvorba bez softwarové podpory
25
<m:math> <m:mrow> <m:msqrt><m:mi>x Jelikož univerzální MathML styl převádí automaticky významové značení na prezentační a dokument by obsahoval pouze prezentační značení, je možné použít místo stylu mathml.xsl styl pmathml.xsl, který transformuje pouze prezentační značení. V tomto případě by procesní instukce vypadala následovně: Styl pmathml.xsl je menší než mathml.xsl, protože obsahuje pouze pravidla pro transformaci prezentačních elementů. Z tohoto důvodu se dokument zobrazí rychleji. Metoda odkazující na styl na W3C by ale nemusela fungovat v Internet Exploreru, pokud je nastaveno implicitní zabezpečení. Internet Explorer totiž neakceptuje styl, který je uložen na jiném serveru, než je samotný dokument. Řešením může být přenastavení zabezpečení. Lepším řešením je však umístit kopie stylů na server, kde je dokument uložen. V procesní instrukci pak bude určeno umístění techto stylů na serveru například takto (W3C, 2003): Univerzální MathML styl se skládá z následujících čtyř souborů, které jsou ke stažení na stránkách W3C2 (W3C, 2003): • pmathml.xsl : je hlavní styl pro prezentační MathML. Rozpoznává prohlížeče a dostupné doplňky na klientském zařízení a určí vhodnou transformaci. • mathml.xsl : je stejný jako pmathml.xsl, kromě toho, že jako první použije styl ctop.xsl pro transformaci vyznamového MathML na prezentační MathML. • ctop.xsl : transformuje významové MathML na prezentační MathML. • pmathmlcss.xsl : transformuje prezentační MathML na XHTML používající CSS a JavaScript. 4.1.2
Prohlížeče podporující jazyk MathML
Prohlížeče, které přirozeně podporují zobrazování MathML a dokáží ho zobrazit přímo jsou Mozilla, Netscape a Amaya. 2
www.w3c.org/Math/XSL
4.1
Tvorba bez softwarové podpory
26
Mozilla a Netscape Mozilla nepodporuje dokumenty, ve kterých se mísí XML a HTML, a nedokáže proto interpretovat MathML obsažené v HTML souboru. Ke správnému zobrazení musí být MathML značení vloženo v XHTML dokumentu. Mozilla také požaduje, aby každý XHTML dokument měl deklarován svůj typ dokumentu (DOCTYPE deklaraci), který odkazuje na XHTML DTD. Pro správné zobrazení v Mozille je tedy zapotřebí následující deklarace DTD: ]> Dokumetn by měl být uložen s příponou .xml nebo .xhtml. Minimální dokument s obsaženým MathML by mohl vypadat následovně (Sidje R. B., 2004): ]> Zde je jednoduchy zlomek.
<math xmlns="&mathml;"> <mfrac> <mi>a <mi>b
Důležitou součástí pro zobrazování MathML v prohlížečích jsou příslušné sady znaků pro matematické symboly a jiné speciální znaky. Mozilla však neobsahuje tyto speciální znaky pro zobrazení matematických výrazů. Z tohoto důvodu je nutné dodatečně nainstalovat tyto matematické symboly. Tento instalační soubor je ke stažení na domovských stránkách Mozilly3 . 3
http://www.mozilla.org/projects/mathml/fonts/
4.1
Tvorba bez softwarové podpory
27
Amaya Pro prohlížení MathML obsahu v prohlížeči Amaya je nutné uzavřít každou instanci MathML do elementu math, tak jak je uvedeno ve specifikaci MathML. Není zde potřeba používat jmenných prostorů. Je povoleno volně míchat MathML značení spolu s běžnými HTML tagy pro zobrazení textu a obrázků. Příklad dokumentu zobrazitelného v prohlížeči Amaya: MathML Priklad
Zde je jednoduchy zlomek.
<math> <mfrac> <mi>a <mi>b
4.1.3
Softwarové doplňky
V této části práce jsou uvedeny dva různé typy doplňků dostupné pro prohlížení MathML v Internet Exploreru. Jsou to MathPlayer a Techexplorer. MathPlayer MathPlayer je volně dostupný4 zásuvný modul vyvinutý společností Design Science. Umožňuje zobrazovat MathML v prohlížeči Internet Explorer od verze 5.5 a vyšší. Dokáže výborně zobrazovat oba dva typy značení, jak prezentačního, tak i významového. MathPlayer je napsán v jazyce C++ a to ho dělá velmi efektivním a rychlým. Zahrnuje v sobě sadu speciálních znaků pro zobrazení matematických symbolů. Tyto znaky jsou nainstalovány do počítače automaticky při instalaci MathPlayeru. MathPlayer dovoluje zpřístupnit MathML obsah pro každou zobrazenou rovnici. Po kliknutím pravého tlačitka myši je možno zvolit kopírování MathML kódu do schránky a poté vkládat tento kód do jiných aplikací a dále s ním pracovat. MathPlayer také podporuje některé interaktivní funkce, jako jsou například zvětšování velikosti rovnic, přepínání obsahů, změna barvy pozadí rovnice po kliknutí myši a zobrazování zpráv v prohlížeči nad oblastí rovnice po přejetí kurzoru (Design Science, 2008). Po stažení a nainstalování MathPlayeru se mohou vyskytnout problémy s blokováním tohoto doplňku Internet Explorerem, proto je potřeba jej v aplikaci povolit. 4
Dokumenty zobrazované pomocí MathPlayeru mohou být vytvořeny buď jako HTML dokument nebo XHTML dokument. V následujícím příkladu je ukázka typického HTML dokumentu, který obsahuje rovnici zobrazitelnou v Internet Exploreru za pomocí MathPlayeru:
Atribut xmlns:m v html tagu připojuje ke každému prefixu m: jmenný prostor MathML a určuje tak, že každý tag v dokumentu ve formě m:jméno bude interpretován jako tag MathML. Element object připojuje MathPlayer ID s MathPlayer softwarem. Tato asociace je zajištěna atributy: • id: definuje klíčové slovo pro odkaz na software. • classid: je unikátní označení, které identifikuje MathPlayer v registrech Windows. Řekne Internet Exploreru, kde je MathPlayer nainstalován. Procesní instrukce import řekne, že každý element s prefixem m: bude zobrazen za použití softwaru, kde ID je MathPlayer (Design Science, 2008).
4.1
Tvorba bez softwarové podpory
29
V následujícím příkladu je uveden vzorový příklad, jak by mohl vypadat XHTML dokument zobrazitelný v Internet Exploreru za pomocí MathPlayeru:
XHTML dokument musí začínat procesní instrukcí a musí obsahovat validní XHTML + MathML typ dokumentu. Všechny názvy tagů musí být malými pismeny. html element a každý math element musí mít určený vlastní jmenný prostor (Design Science, 2008). Techexplorer Techexplorer je další doplněk, který dokáže zobrazovat matematické vzorce v Internet Exploreru. Dokáže zobrazovat vzorce jak v jazyce MathML, tak i v TEXu nebo LATEXu. Techexplorer je možno použít jako prvek AktivX pro zobrazení interaktivních rovnic ve Windows aplikacích, jako je Word, Excel a PowerPoint. Techexplorer je k dostání ve dvou verzích. První verze (Introductory edition) je nabízena zdarma k nekomerčnímu užívání. Obsahuje základní funkce pro prohlížení vědeckých dokumentů. Druhá verze (Professional edition) je placená a zahrnuje
4.1
Tvorba bez softwarové podpory
30
další speciální funkce, jako je například tisk, vyhledávání nebo možnost skriptování za použití JavaScriptu nebo Javy. Techexplorer je daleko víc než jen prohlížeč matematických vzorců, podporuje také řadu dalších speciálních příkazů, díky kterým je možno například přehrávání audio nebo video souborů, přepínání mezi dvěma rozdílnými zobrazeními, možnost ovládání za použití JavaScriptu nebo Javy díky programovému rozhraní, atd. Tyto vlastnosti dovolují vytvářet díky techexploreru interaktivní webové stránky. Po nainstalování Techexploreru je prohlížeč automaticky nastaven pro prohlížení souborů s příponami .mml, .tex, .ltx. a .tcx (MathML, TEX, LATEX a Techexplorer). Pokud bude otevřen dokument s některou z těchto přípon, Techexplorer zobrazí celý tento dokument. Je také možné vkládat jednotlivé instance MathML, TEXu nebo LATEXu do HTML dokumentu (Integre, 2004). Vzorový HTML dokument vytvořený pro zobrazení pomocí Techexploreru je uveden v následujícím příkladu:
Here is a simple equation
Pro Internet Explorer je Techexplorer implementován jako prvek AktivX. Z tohoto důvodu musí být MathML data uzavřena v elementu object. Některé důležité atributy elementu object jsou: • classid: unikátní číslo Techexploreru v registrech Windows. • width a height: určují velikost AktivX prvku v pixelech nebo v procentech. • autosize: určuje minimální prostor potřebný pro zobrazení výrazu. Pokud je nastaveno na true, je vzorec zobrazen bez posuvníků, pokud je false, je vetší vzorec zobrazen s posuvníky.
4.2
Tvorba se softwarovou podporou
31
• name: dovoluje pojmenovat začleněný objekt tak, aby bylo možné se odkazovat na JavaScript nebo Java program nebo jiný doplněk. • param: určuje způsob, jak specifikovat další vlastnosti začleněného objektu. • data: určuje URL nebo aktuální data dokumentu pro zobrazení. • datatype: určuje, jaký typ dat bude zobrazen. Hodnoty jsou zobrazeny v tabulce č.1. Tab. 1: Hodnoty atributu datatype
Hodnoty atributu datatype Typ dat 0 TEX nebo LATEX data 1 MathML data 2 URL TEX nebo LATEX dokumentu 3 ULR MathML dokumentu Z tabulky je patrné, že při patřičném nastavení hodnoty atributu datatype, je možné zapisovat matematické vzorce i ve tvaru určeném pro zpracování systémem TEX nebo LATEX.
4.2
Tvorba se softwarovou podporou
Protože je MathML velmi rozmanitý jazyk, obsahující mnoho elementů, je ruční tvorba samotného MathML kódu velmi pracná, zdlouhavá a náchylná k chybám. Z tohoto důvodu začaly vznikat programy a editory, které dokáží generovat MathML kód, aniž by uživatel musel znát MathML elementy. Tyto aplikace dokáží generovat kód obsahující jak sémantické a prezentační značení, tak i kombinaci obou. Obvykle jsou založeny na interaktivním uživatelském rozhraní. Výsledná rovnice nebo vzorec mohou být převedeny do jazyka MathML za použití překládacího mechanismu, který je většinou implementován přímo v menu příkazu. Mezi tyto nástroje patří např. MathType, WebEQ, EzMath, Mathematica nebo Publicon. 4.2.1
MathType
MathType je výkonný editor od společnosti Design Science na tvorbu matematických výrazu a rovnic vyvinutý pro osobní počítače s operačním systémem Windows nebo MacOS. Je to softwarový doplněk, který se používá v kombinaci s některou aplikací jako, je např. Microsoft Word. Tvorba matematických vzorců je zde umožněna grafickým rozhraním s řadou šablon. Výsledný vzorec může být následně převeden do několika různých formátů, které pak mohou být použity pro tvorbu webových stránek nebo pro značkovací jazyky, jako je TEX, LATEX a MathML. MathType je profesionální verze programu Equation Editor, který je obsažený v Microsoft Wordu (Design Science, 2008).
4.2
Tvorba se softwarovou podporou
32
Pracovní prostředí Pracovní prostředí MathType se skládá z řady palet a šablon pro vkládání symbolů a rovnic. Symboly a šablony jsou organizovány ve skupinách, které jsou dostupné v horní liště jako vysunovací menu. Jsou zde šablony pro vytváření všech významnějších typů matematických notací zahrnující zlomky, odmocniny, indexy, sumy, součiny, integrály a matice. Vytváření rovnice je realizováno kliknutím na tlačítko s požadovanou šablonou. Po kliknutí je šablona vložena do pracovní plochy s prázdnými místy pro obsah, který je možno zadávat z klávesnice, nebo pro další šablonu. Za použití šablon jako stavebních prvků je potom možné vytvářet komplexní a rozsáhlé výrazy a rovnice. MathType automaticky použije příslušná pravidla pro sazbu znaků, mezer, zarovnání a ostatních parametrů závisejících na obsahu. Tyto parametry je také možno ručně nastavovat. MathType je ke stažení na adrese společnosti Design Science5 jako zkušební verze na třicet dní. Placená verze je k dostání za 97 dolarů pro běžné uživatele nebo za 57 dolarů pro školy, učitele a studenty.
Obr. 1: Okno MathType s šablonami a speciálními znaky
Převod rovnic do jazyka MathML MathType od verze 5.1 zahrnuje kompletní podporu pro MathML 2.0. Za použití dialogu pro nastavení překladu je možné zvolit vhodný překladač, který zajistí, aby kopírovaná rovnice byla při vkládání do jiného dokumentu či aplikace v požadovaném formátu. Tento dialog lze spustit po kliknutí na příkaz Translators, který se nachází 5
v menu v sekci Preferences. Zde je na výběr několik překladačů pro generování MathML a jiných značení. Po nastavení vhodného formátu je možné kopírovat celou rovnici nebo výraz do schránky a poté ji vložit do jiného dokumentu nebo aplikace. Matematický text bude do dokumentu vložen ve zvoleném formátu. Jelikož MathType nedokáže vytvářet kompletní HTML dokumenty, je tedy nutné vložit vygenerovaný kód do HTML dokumentů podle způsobu, který je uveden v kapitole 4.1.
Obr. 2: Dialog pro převod do jednotlivých formátů
4.2.2
WebEQ
Dalším z nástrojů pro tvorbu matematického textu je WebEQ. WebEQ je sada nástrojů založená na Javě a MathML technologii. Pro tvorbu MathML jsou nejdůležitější dvě komponenty: Editor a Publisher. Editor WebEQ Editor je Java aplikace, která poskytuje grafické rozhraní pro tvorbu rovnic. Rozhraní WebEQ je velmi podobné jako u MathTypu, což není nic zvláštního, protože WebEQ je také vytvořen společností Design Science. Rozdíl mezi těmito dvěma programy je v tom, že MathType je softwarový doplněk, který je používán v kombinaci s některou aplikací, jako je Microsoft Word. WebEQ také daleko více využívá vlastností jazyka MathML, jako jsou atributy a akce (Design Science, 2008). Vkládání rovnic a symbolů je zajištěno stejně jako u MathTypu za pomocí šablon a symbolů v horní liště okna. Jsou zde šablony, které odpovídají základním stavebním prvkům matematických zápisů, jako jsou zlomky, odmocniny, indexy, integrály, atd. Tímto způsobem je opět možné interaktivně vytvářet složité matematické zápisy. Po vytvoření rovnice je možné uložit tuto rovnici ve třech formátech. Prvním formátem je klasický obrázek ve formátu JPEG, GIF nebo PNG. Další možností je uložit rovnici ve formě Java appletu. Poslední možností je uložit vzorec ve formě
4.2
Tvorba se softwarovou podporou
34
MathML. Tyto možnosti uložení jsou ke zvolení v menu file → save as... Nastavení vlastností jednotlivých formátů lze nastavit v menu preferences. Konkrétně u nastavení vlastností pro jazyk MathML je možné nastavit, zda má být rovnice ukládána v prezentačním nebo významovém značení, dále pak nastavení jmenných prostorů, prefixů, atd.
Obr. 3: Vytváření rovnic ve WebEQ Editoru
Publisher WebEQ Publisher je Java aplikace pro zpracování HTML dokumentů obsahující matematické rovnice. Dokumenty jsou zpracovány programem tak, aby je bylo možné zobrazovat v příslušných prohlížečích. WebEQ Publisher převede všechny výrazy na vstupu do formátů zvolených uživatelem (obrázek, MathML nebo WebEQ applet) (Design Science, 2008). Jako vstup můžeme zvolit celý soubor, který WebEQ Publisher zpracuje a zapíše výstup do druhého souboru. Vstup je také možné zadávat přímo do textového pole a výstup si prohlédnout v samostatném okně. Vytvoření dokumentu s matematickými vzorci lze dosáhnout následujícím způsobem: 1. Vytvoříme HTML dokument obvyklým způsobem, jak jsme zvyklí. 2. Ve WebEQ Editoru vytvoříme všechny rovnice, které chceme vložit do dokumentu. 3. Zkopírujeme každou rovnici jako MathML a vložíme na požadované místo v dokumentu. 4. Jakmile jsou všechny rovnice vloženy do HTML dokumentu, zvolíme tento dokument jako vstup pro WebEQ Publisher. 5. V menu Option nastavíme příslušná pravidla pro překlad dokumentu, jako jsou jmenné prostory, styl písma, atd.
4.2
Tvorba se softwarovou podporou
35
6. Po kliknutí na tlačítko Process now zpracujeme dokument. Tímto způsobem je možné zpracovávat HTML dokumenty tak, aby byly zobrazitelné v jednotlivých prohlížečích s nebo bez softwarových doplňků.
Obr. 4: WebEQ Publisher
4.2.3
Mathematica
Mathematica je výkonná aplikace na provádění matematických výpočtů a pro tvorbu technických dokumentů, které lze následně přěvádět do jazyka MathML. V následujícím textu se budeme soustředit na tvorbu matematického textu v jazyce MathML (Wolfram Research, 2008). Notebook rozhraní Mathematika se skládá ze dvou samostatných aplikací: aplikace, která poskytuje uživatelské rozhraní pro tvorbu a editaci dokumentů a z jádra, které provádí matematické výpočty. První aplikace obsahuje důmyslný způsob sazby matematického textu, díky kterému lze, za pomocí palet, menu příkazů a klávesových zkratek, rychle a jednoduše vytvářet komplexní matematické zápisy a vzorce. Dokumenty Mathematiky se nazývají notebooks. Notebooks mohou obsahovat text, vzorce, grafiku, aktivní elementy atd. Po spuštění programu Mathematica se otevře prázdné okno s paletami pro zadávání vstupů. Tyto palety obsahují tlačítka, díky kterým lze po kliknutím vkládát jednotlivé šablony, grafiku, styly, symboly, atd. Matematické výrazy je možné vytvářed třemi způsoby: pomocí palet, menu příkazů a klavesových zkratek.
4.2
Tvorba se softwarovou podporou
36
Export a import MathML Po vytvoření dokumentu obsahující matematické vzorce lze jednotlivé výrazy exportovat do jiných aplikací. Toho lze dosáhnout tak, že označíme požadovanou rovnici a po kliknutí pravého tlačítka vybereme příkaz Copy As → MathML. Tímto způsobem umístíme rovnici ve tvaru MathML do schránky a můžeme ji následně vkládat do jiných aplikací. Tímto způsobem je možné rovnice kopírovat také ve tvaru obrázku nebo v zápisu LATEXu. Celý dokument je také možné uložit jako dokument XML. To je zajištěno příkazem Save As..., který vyvolá dialogové okno, ve kterém vybereme požadovaný typ souboru. Sobory lze také ukládat ve formátech PDF, PostScript, HTML, atd.
Obr. 5: Mathematica
4.2.4
Publicon
Publicon je aplikace pro tvorbu strukturovaných technických dokumentů vyvinutá společností Wolfram Research. Publicon obsahuje propracované grafické rozhraní se speciálními paletami pro vytváření rozmanitých stylů dokumentu a vkládání formátovaných vstupů jako jsou seznamy, tabulky a číslované rovnice. Navíc poskytuje podporu pro přidávání poznámek, citací a křížových odkazů (Wolfram Research, 2008). Publicon obsahuje řadu palet pro tvorbu dokumentů ve specifických formátech, jako je TEX nebo XML. Jsou zde například samostatné palety pro tvorbu fyzikálních nebo medicínských dokumentů. Publicon je proto vhodný nástroj pro toho, kdo chce vytvářet rozsáhlé technické dokumenty nebo dokumenty, které jsou schopny spolupracovat s TEXem nebo XML.
4.2
Tvorba se softwarovou podporou
37
Po spuštění Publiconu se zobrazí prázdná pracovní plocha a dvě palety: sázecí paleta pro vkládání matematických notací a paleta pro formátování dokumentu. Sázecí paleta Sázecí paleta je hlavní paleta složená ze sedmi podplalet. Každá podpaleta obsahuje tlačítko na zadávání jednolivých notací, jako jsou matematické zápisy, symboly, relační operátory a šipky, latinské a řecké písmena, různé typy písma, mezery a zarovnání, atd. Paleta pro formátování dokumentu Pro tvorbu dokumentu v určitém formátu je určena paleta na formátování dokumentu, díky které lze po kliknutí vkládat např. nadpisy, titulky, atd. Dále obsahuje předdefinované styly pro články, referáty nebo knihy. Tato paleta je celá dostupná z menu File → Standard Palettes. Publicon navíc zahrnuje sadu upravitelných palet, které implementují styly specifických deníků. Některé z podporovaných stylů jsou již zmíněné fyzikální nebo lékařské dokumenty.
Obr. 6: Publicon
Export a import MathML Po vytvoření dokumentu je možné dokument uložit v některém z formátů za použití příkazu File → Save As. Pro MathML je to formát XHTML+MathML. Dokument
4.2
Tvorba se softwarovou podporou
38
je standardně ukládán ve formátu NotebookML, ve kterém jsou všechny rovnice ve formě MathML. Z vytvořeného dokumentu je možné kopírovat jednotlivé rovnice do schránky a potom je vkládat do jiných aplikací. To zajistíme tak, že označíme vzorec a v menu vybereme edit → Copy As MathML. Vkládání MathML vzorců z jiných aplikacích jako je např. internetový prohlížeč zajistíme tak, že vzorec jednoduše zkopírujeme do schránky a vložíme do Publiconu. Rovnici můžeme klasicky vložit po kliknutí pravého tlačítka myši. Rovnici lze vložit doslovně, jako MathML řetězec, za pomocí příkazu Paste nebo v příslušném tvaru matematického zápisu pomocí příkazu Paste As → Converted MathML. 4.2.5
EzMath
EzMath je značkovací jazyk, jehož zápis úzce odpovídá vzorci, tak jak je vysloven. Byl vyvinut Davem Raggettem a Davym Batsallem. EzMath je používán pro zápis matematických vzorců ve významovém tvaru MathML. Tento program je volně ke stažení na stránkách W3C6 . Jazyk EzMath je založen na přepisu anglického jazyka √ do odpovídajícího −b± b2 −4ac MathML značení. Pro příklad je uveden zápis vzorce x = : 2a x = { -b plus or minus square root of {b squared - 4ac}} / 2a} Integrál
Rπ
sin (x)dx je pomocí jazyka EzMath zapsán:
0
integral of sin x from 0 to 2pi wrt x EzMath Editor má v menu tři príkazy: Math, Edit a Help. Menu Math obsahuje příklady matematických zápisů organizovaných v jednotlivých podmenu, jako je algebra, teorie množin, trigonometrie, linearní algebra a diferenciální počet. Po vybrání některého z příkladu je výraz zobrazen v EzMath okně. Zápis je možné si prohlédnout po zvolení příkazu Edit → View expression. Ten otevře editační okno, ve kterém je možné si zápis prohlédnout. Výraz se zde dá také editovat. Pokud matematický výraz změníme a klikneme na tlačítko OK, výraz se automaticky aktualizuje. Jakmile jsme s editací hotoví, můžeme výraz ve významovém MathML zkopírovat do schránky a dále jej použít pro další aplikace: 1. Nastavíme schránku na formát MathML kliknutím na tlačítko Set clipboard format to MathML (třetí tlačítko zleva). 2. Klikneme na tlačítko Copy to Clipboard a tím umístíme výraz do schránky. 3. Pro zobrazení výrazu ve významovém MathML je možné kliknout na tlačítko View Clipboard. 4. Vložíme výraz do jiné aplikace nebo HTML dokumentu. 6
http://www.w3.org/People/Raggett/ezmath1_1.zip
4.2
Tvorba se softwarovou podporou
39
Obr. 7: EzMath
4.2.6
Amaya
Jak již bylo řečeno, prohlížeč Amaya přirozeně podporuje zobrazení jazyka MathML obsaženého v HTML dokumentu. Amaya obsahuje také omezenou podporu pro vytváření a editování prezentačního MathML. Podpora pro významové MathML však prozatím nebyla po současnou verzi 10.0 implementována. Matematické vzorce zde můžeme vytvářet pomocí palety předdefinovaných šablon, které jsou dostupné buď z podmenu math v menu insert nebo z nástrojové lišty. Vložení každé šablony je možné také za pomocí klávesových zkratek, což dovoluje velmi rychlé a snadné vkládání vzorců a rovnic. Matematický vzorec vytvoříme tak, že v menu klikneme na příkaz new a z něj vybereme new formula. Po té se nám zobrazí dialogové pro volbu znakové sady a zadání názvu souboru a cesty, kam bude soubor uložen. Po potvrzení dialogu je možné vkládat jednotlivé šablony a znaky. Takto vytvořený dokument je však nutné pro další zobrazení v jednotlivých prohlížečích upravit tak, jak je to popsáno v části 4.1. 4.2.7
Výběr nástrojů
V této kapitole byly popsány různé nástroje na tvorbu MathML. Tato část práce zhodnotí silné a slabé stránky těchto nástrojů a pomůže uživateli při rozhodování, kterou volbu zvolit. Nástroje na tvobu MathML můžeme rozdělit do tří skupin podle komplexnosti a ceny. Za spodní hranici lze označit Amayu a EzMath. Tyto nástroje nabízejí minimální možnosti a neprovádějí žádné speciální akce, ale na druhou stranu jsou volně dostupné. Amaya může být použita pro vytváření prezentačního MathML a EzMath pro tvorbu významového MathML. Tyto aplikace může uživatel zvolit, po-
4.2
Tvorba se softwarovou podporou
40
Obr. 8: Tvorba v prohlížeči Amaya
kud nepotřebuje vytvářet velké množství vzorců nebo pokud chce s MathML jen experimentovat. Další kategorií nástrojů tvorby vhodné pro uživatele, kteří chtějí vytvářet větší množství technichnického obsahu. Mezi tyto nástroje lze zařadit MathType a WebEQ. MathType je vhodný nástroj pro uživatele pracující s Microsoft Wordem, ve kterém poskytuje výbornou podporu na tvorbu matematických rovnic. Nevýhodou tohoto nástroje je, že nedokáže vytvářet rozsáhlé dokumenty a nepodporuje tvorbu významového značení. WebEQ je všestranější a výkonější aplikace než MathType, co se týče využití vlastností jazyka MathML. WebEQ je vhodný nástroj pro webové vývojáře, kteří chtějí vytvářet a spravovat interaktivní webové stránky s matematickým obsahem, protože nabízí celeou řadu nástrojů na tvorbu MathML, zpracování dokumentů a vkládání interaktivních vzorců na web. Do poslední skupiny nástrojů patří Mathematica a Publicon. Tyto aplikace poskytují všestrannou podporu pro tvorbu technických dokumentů. Mohou být použity na tvorbu kompletních dokumentů, které obsahují text, rovnice, grafiku a další elementy. Za použití příkazů v menu je možné tyto dokumenty převádět do HTML+MathML formy, která je zobrazitelná na webu. Publicon a Mathematica poskytují výbornou podporu jak pro vytváření individuálnch MathML vzorců, tak i kompletních dokumentů. Publicon obsahuje palety dokumentu pro vytváření dokumentů ve stylu specifických formátů. Mathematica je vynikající nástroj pro uživatele, kteří chtějí vytvářet velké množství technických dokumentů. Nevíhodou je však její vysoká cena.
4.3
41
Převod mezi TEXem a MathML
Tab. 2: Vlastnosti nástrojů pro tvorbu MathML Produkt
Prezentační MathML
Významové MathML
Nastavitelný výstup
Individuální rovnice
Kompletní dokumenty
MathType
ano
ne
ano
ano
ne
WebEQ
ano
ano
ano
ano
ne
Mathematica
ano
ano
ano
ano
ano
2 495$
Publicon
ano
ano
ne
ano
ano
149$
Amaya
ano
ne
ne
ano
ne
zdarma
EzMath
ne
ano
ne
ano
ne
zdarma
4.3 4.3.1
Cena 97$ 495$
Převod mezi TEXem a MathML TEX a MathML
TEX (čte se ”tech”) je systém pro zpracování textu vytvořený Donaldem E. Knuthem ze Stanfordské univerzity, který umožňuje vytvářet profesionálně formátovaný text. „Sám autor tvrdí, že systém pro počítačovou sazbu vytvořil proto, aby mohl své texty publikovat v požadovaném tvaru, protože sazeči v tiskárně vnesli obvykle do matematických vztahů mnoho chybÿ (Rybička, 2003). Práci na TEXu začal v roce 1977 a první verze byla hotová v roce 1979. Dnes je TEX široce používán všude, kde je důležitá vysoká kvalita výstupních dokumentů. TEX obsahuje sadu příkazů, díky kterým lze specifikovat jednotlivé části textu tak, aby byl zajištěn precizní a profesionální vzhled. Jelikož je TEX velmi rozsáhlý a komplexní systém a obsahuje přes tři sta příkazů, byly vytvořeny jeho nadstavby, které umožňují i běžným uživatelům snadnější a přirozenější zápis sázeného textu. Jedna z nejvýznamnějších nadstaveb, která je volně šířená, je LATEX (Rybička, 2003). TEX poskytuje speciální příkazy pro mnoho různých druhů matematických konstrukcí, jako jsou zlomky, odmocniny, dolní a horní indexy, a také řadu speciálních znaků a symbolů důležitých pro matematický zápis. Použitím TEXu může autor zapsat komplikovaný matematický vzorec rychle a jednoduše za použití kláves na standardní klávesnici. Poté TEX zpracuje výraz a převede jej do běžného matematického zápisu. Tato kombinace jednoduchého a rychlého zápisu matematických vzorců a jejich následný profesionální vzhled dělá TEX velmi populární mezi vědci a matematiky. Ačkoliv TEX a MathML můžou být použity jako značkovací jazyky pro popis matematických výrazů, mají rozdílné vlastnosti: • TEX je kompaktní, zatímco jazyk MathML je rozsáhlý. Zápis matematického vzorce v TEXu je pro člověka vcelku snadný, zatímco zápis v MathML se může mnohdy jevit nepřehledný, proto je lépe jej vytvářet pomocí softwarových nástrojů. • TEX dokáže zachytit pouze vzhled matematických vzorců, kdežto MathML dokáže popsat i jejich významovou část.
4.3
Převod mezi TEXem a MathML
42
• TEX je určen pro vytváření tisknutelného výstupu. Jazyk MathML je určen primárně pro zobrazení matematiky na webu. Z těchto důvodů mají TEX a MathML rozdílné role pro zachycení matematiky a autor může použít zápis podle kontextu v jednom nebo druhém jazyce. S rostoucím používáním MathML se stává převod mezi TEXem a MathML stále více důležitějším, proto vznikla řada nástrorů pro jejich vzájemnou konverzi. 4.3.2
Převod TEXu do MathML
WebEQ WebEQ Publisher poskytuje možnost převodu matematických vzorců zapsaných v TEXu nebo LATEXu. Je zde možné převádět jednotlivé rovnice nebo celé HTML dokumenty, které obsahují instance TEXových notací s matematickými výrazy. Jako vstup lze podobně jako v části 4.2.2 zadat zdrojový soubor HTML nebo vkládat rovnice do textového pole. Celý dokument pak zpracujem kliknutím na tlačítko Process now.
Obr. 9: Převod pomocí WebEQ Publisher
Itex2mml Itex2mml je volně dostupný program napsaný v jazyce C, který převádí matematické vzorce zapsané v TEXu do MathML. Program je napsán Paulem Gartsidem z pittsburské univerzity, který se zabývá matematikou a je členem projektu MathZilla (MathML v Mozille ) (MathZilla, 2001). Pro převedení webové stránky obsahující matematické vzorce zapsané v TEXu za použití itex2mml musíme nejprve vytvořit HTML dokument obvyklým způsobem a vložit všechny matematické vzorce, které mají TEXovou syntaxi. Poté je možné dokument odeslat7 ke zpracování. Program nahradí každou instanci TEXového zna7
čení v dokumentu odpovídající MathML rovnicí. Se zbylým textem v dokumentu se žádné akce provádět nebudou. Itex2mml je volně ke stažení8 ve formě předkompilovaných souborů pro platformu Linux. Itex2mml je také možno zkompilovat i pro další platformy.
Obr. 10: Převod pomocí Itex2mml
ORCCA (The Ontario Research Centre for Computer Algebra) Jiný postup pro převod rovnic v LATEXu do MathML zvolil Stehen Watt a jeho kolegové z výzkumného střediska pro počítačovou algebru, vykonávající výzkum a vývoj matematického softwaru zaměřeného na počítačovou algebru. Vyvinuli Java program, který vezme LATEX zápis jako vstup a přeloží ho do prezentačního MathML. Převod je založený na mapovacím souboru, který obsahuje skupinu šablon. Každá šablona určuje MathML zápis, který odpovídá jednotlivým typům TEXové konstrukce. Mapovací soubor je napsán v XML, pro který je poskytován DTD. Detaily syntaxe mapovacího souboru a jednotlivé elementy a atributy jsou dostupné na webu9 . Tato konverze je velmi podobná XSLT transformaci. Mapovací soubor hraje roli XSLT stylu a Java Program slouží jako XSLT procesor. ORCCA konverter je demonstrován na domovských stránkách Ontarijskeho výzkumného střediska10 . Při převodu z TEXu do MathML má uživatel možnost vkládat výrazy přímo do vstupního pole nebo uvést URL cílového dokumentu, který chce konvertovat. Může také uvést svůj e-mail pro případ, pokud si chce výsledný soubor nechat poslat. Existuje i možnost nastavit vlastnosti výstupního dokumentu. 8
XSLT styly XSLT transformace poskytuje flexibilní a výkonnou metodu pro převod libovolných XML dat do jiného formátu. Je proto možné použít XSLT pro transformaci MathML vzorců do LATEXu. Tento přístup byl implementován Vasilem Yaroschevichem jako soubor šesti XSLT stylů, které společně specifikují, jak převést jakýkoliv MathML zápis do LATEXu. Tyto styly se skládají z následujících šesti stylů: • mmltex.xsl, • tokens.xsl, • glayout.xsl, • scripts.xsl, • tables.xsl, • entities.xsl. Šablony pro převod znakových elementů, schémat, indexů, tabulek a entit jsou umístěny v jednotlivých stylech z důvodu modularity. Pro transformaci příslušného MahtML dokumentu je zapotřebí odkazovat na hlavní styl nazvaný mmltex.xsl. Ten obsahuje příkazy pro import šablon ze všech ostatních stylů. Pro použití těchto stylů máme dvě možnosti. Je možné vytvořit interaktivní webové stránky, jako jsou na adrese autora11 , kde je možné vkládat do textového pole jakýkoliv MathML výraz a potvrdit kliknutím pro zobrazení odpovídajícího LATEX zápisu. Tento způsob je použitelný pro převod jednotlivých rovnic. 11
http://www.raleigh.ru/MathML/mmltex/online.php
4.3
Převod mezi TEXem a MathML
45
Pokud bychom chtěli zpracovat větší objem dokumentů, je možné všechny tyto styly stáhnout12 a použít některý z XSLT procesorů pro transformaci na lokálním počítači. ORCCA Dalším způsobem pro převod MathML rovnic do LATEXu je použití online překladače ORCCA. Jak již bylo zmíněno v části 4.3.2, ORCCA využívá mapovacího souboru obsahující šablony, které obsahují odpovídající konstrukce mezi TEXem a MathML. Java program pak použije tyto šablony z mapovacího souboru a na každou LATEX rovnici a vyprodukuje MathML jako výstup. Skupina, pracující na tomto převaděči vytvořila také obrácený způsob převodu, a to z prezentačního MathML do LATEXu. Tento překlad využívá také mapovacího souboru. Tento online převaděč je dostupný na domovských stránkách Ontarijského výzkumného střediska pro počítačovou algebru13 . Jako vstup textového pole je možné zadávat jakékoliv MathML výrazy. Výstup je pak zobrazen na stránce nebo si ho uživatel může nechat poslat na svůj e-mail.
Matematika vyjadřuje své myšlenky pomocí vzorců. Tyto vzorce se ve většině případů podobají spíše grafice než běžnému textu. V poslední době, kdy dochází k masivnímu rozšiřování internetu, který představuje trend ve výměně informací, vyvstal problém právě s výměnou a prezentací matematického textu. Matematický text je možné zobrazovat na webu různými způsoby. Jedním z nejpoužívanějších způsobu je zobrazení za pomocí obrázku. Obrázek však v sobě nenese žádnou informaci o významu a struktuře vzorce, obtížně se edituje a více zatěžuje server. Matematický vzorec lze na webu také prezentovat za pomocí formátu PDF. Jeho výhodou je fakt, že jeho zobrazení není závislé na softwaru a hardwaru, na kterém byly porízeny. K zobrazení je potřeba mít naistalovánu speciální prohlížecí aplikaci, která se v prohlížeči spouští vždy, když chceme soubor prohlížet. To zabere určitou dobu, což může být u pomalejších počítačů nepříjemné. Navíc nelze matematické vzorce ze souboru kopírovat a dále s nimi pracovat. Další možností je zapsat vzorec přímo v jazyce HTML pomocí speciální znakových entit a některých znaků. Jelikož je jazyk HTML určen k formátování běžného textu, je zcela nevhodný pro matematické výrazy. Dalším způsobem zachycení matematického textu je použití zápisu v TEXové formě. Zobrazení v takovémto tvaru však vyžaduje speciální zpracování za pomocí různých doplňků. Navíc zápis v TEXu v sobě nese pouze informaci o tom, jak má výsledný vzorec vypadat. Nenese však informaci o jeho významu. Dalšími jazyky pro zachycení matematických vzorců jsou ISO 12083 a OpenMath. ISO 12083 stejně jako TEX nese informaci o výrazu pouze ve formě, v jaké má být zobrazen. OpenMath se zase na druhou stranu soustředí na významovou část matematického zápisu. Všechny výše uvedené způsoby mají mnoho nedostatků, které řeší právě jazyk MathML. Jazyk MathML je XML aplikace, která slouží k zobrazení matematického textu na webu. Dokáže vystihonout matematický vzorec jak po stránce vizuální, tak i po stránce významové, z čehož plyne i dvojí způsob značkování – prezentační a významové. Díky prezentačnímu značkování je možné kvalitně zobrazovat matematiké vzorce. Díky významovému značení je možné dané výrazy zpracovávat aplikacemi a provádět s nimi výpočty. V současné době má jazyk MathML přirozenou podporu zobrazování pouze v prohlížečích Mozilla a Netscape, dále pak v prohlížeči Amaya, který je však pro běžné prohlížení webových stránek nevhodný. Ostatní prohlížeče, jako je Internet Explorer a Opera, nepoodporují jazyk MathML přímo. Je zde nutné použít některý ze softwarových doplňků jako je MathPlayer nebo Techexplorer. Jelikož je MathML složitý a rozmanitý jazyk, který obsahuje mnoho elementlů a atributů, je tvorba rozsáhlých vzorců v tomto jazyce zdlouhavá, náročná a náchylná k chybám. Z tohoto důvodu vznikla řada nástrojů, které podporují interaktivní tvorbu vzorců právě v jazyce MathML. Mezi tyto nástroje patří např. WebEQ, MathType, Mathematica, Publicon, Amaya a EzMath. Tyto aplikace se od sebe liší
5
ZÁVĚR
47
zejména v tom, jak dokáží využívat vlastností jazyka MathML, zda umějí vytvářet pouze samostatné rovnice nebo celé HTML dokumenty nebo zda umějí tvořit vzorce ve významovém nebo prezentačním značení. Již řadu let je považován za fenomén sazby bězných i matematických textů sázecí systém TEX. Tento systém zajištuje precizní vzhled sázeného dokumentu. Zápis matematického vzorce pomocí TEXu je poměrně snadné a rychlé, což je u mnoha uživatelů oblíbené. Jelikož v posledním desetiletí dochází k masivnímu rozšiřování internetu, dochází také k většímu využívání jazyka MathML. Z tohoto důvodu je důležitá konverze mezi formáty TEX a MathML. Pro konverzi z TEXu do MathML existuje také řada nástrojů jako je např. WebEQ Publisher, Itex2MML. Převod lze také realizovat i opačným směrem. Toho lze dosáhnout např. použitím XSLT stylu. Se současným rozvojem internetu se dá předpokládat, že se jazyk MahtML bude mezi uživateli rozšiřovat a stávat se stále více oblíbeným. Tato bakalářská práce by mohla těmto uživatelům posloužit jako návod na tvorbu a prezentaci matematického textu v prostředí webu.
6
6
LITERATURA
48
Literatura
Design Science: Creating MathML Web Pages [on-line]. 2008 [cit. 7. 5. 2008]. Dostupné na internetu: http://www.mathmlcentral.com/history.html. Design Science: Products [on-line]. 2008 [cit. 10. 5. 2008]. Dostupné na internetu: http://www.dessci.com/en/products/. Gartside, P.: MahtML and Mozilla [on-line]. 2001 [cit. 16. 5. 2008]. Dostupné na internetu: http://pear.math.pitt.edu/mathzilla/itex2mml.html. Grimmich, Š.: Podpora MathML v prohlížečích a editorech [on-line]. 14. 5. 2004 [cit. 8. 5. 2008]. Dostupné na internetu: http://interval.cz/clanky/ podpora-mathml-v-prohlizecich-a-editorech/. Integree: Integre techexplorer Hypermedia Browser Documentation [on-line]. [cit. 8. 4. 2008]. Dostupné na internetu: http://www.jakpsatweb.cz/html/ entity.html. Janovský, D.: Znakové entity [on-line]. 2. 3. 2008 [cit. 8. 4. 2008]. Dostupné na internetu: http://www.jakpsatweb.cz/html/entity.html. Královec, K.: Formát PDF [on-line]. 2006. [cit. 8. 4. 2008] Dostupné na internetu: http://www.studio2k.cz/pdf.htm. Okálková, J.: Authoring MathML for Mozilla [on-line]. 2003 [cit. 15. 4. 2008]. Dostupné na internetu: http://www.fi.muni.cz/usr/jkucera/pv109/2003/ xokalkov_index.htm. Rybička. J. Latex pro začátečníky 2. vyd. Brno: Konvoj, spol. s r. o., 1999. 191 s. ISBN 80-85615-74-6. Sidje, R. B.: Authoring MathML for Mozilla [on-line]. 13. 1. 2004 [cit. 6. 5. 2008]. Dostupné na internetu: https://www.mozilla.org/projects/ mathml/authoring.html. The OpenMath Society: OpenMath and MathML [on-line]. 2006 [cit. 11. 4. 2008]. Dostupné na internetu: http://www.openmath.org/overview/om-mml.html. Večeřa, Š.: Opera 9.5 s podporou matematických vzorců [on-line]. 20. 11. 2007 [cit. 25. 4. 2008]. Dostupné na internetu: http://www.zive.cz/default.aspx? server=1&article=139044. W3C: Mathematical Markup Language (MathML) Version 2.0 (Second Edition) [on-line]. 21 3. 2003 [cit. 21. 4. 2008]. Dostupné na internetu: http://www.w3. org/TR/2003/REC-MathML2-20031021/. W3C: XSLT stylesheets for MathML [on-line]. 26 6. 2003 [cit. 28. 4. 2008]. Dostupné na internetu: http://www.w3.org/Math/XSL/Overview-tech.html. Wolfram Research, Inc.: History of MathML [on-line]. 2008 [cit. 18. 3. 2008]. Dostupné na internetu: http://www.mathmlcentral.com/history.html. Wolfram Research, Inc.: Products [on-line]. 2008 [cit. 20. 5. 2008]. Dostupné na internetu: http://www.wolfram.com/products/.
Přílohy
A
A
PREZENTAČNí ELEMENTY MATHML
Prezentační elementy MathML
Znakové elementy mi mo mtext mspace ms mglyph
identifikátor operátor, závorky nebo oddělovač text mezera řetězcový literál zpřístupňující glyf pro znaky z MathML
Obecná konstrukční schémata mtable mlabeledtr mtr mtd maligngroup a malignmark
tabulka nebo matice označený řádek v tabulce nebo matici řádek v tabule nebo matici jedne záznam v tabulce nebo matici zarovnávací značky
k základnímu obsahu dolní index k základnímu obsahu horní index k základnímu obsahu dvojici dolní a horní index prvek pod základní obsah prvek nad základní obsah prvky pod a nad základní obsah předpisy a rejstříky k základnímu obsahu
Tabulky a matice mtable mlabeledtr mtr mtd maligngroup a malignmark
tabulka nebo matice označený řádek v tabulce nebo matici řádek v tabulce nebo matici jedne záznam v tabulce nebo matici zarovnávací značky