Možnosti konverze matematických objektů v soudobém programovém vybavení



Podobné dokumenty
Elektronické publikování. doc. RNDr. Petr Šaloun, Ph.D. katedra informatiky FEI VŠB TU Ostrava

VY_32_INOVACE_INF3_18. Textové formáty PDF, TXT, RTF, HTML, ODT

Programy pro psaní textů. textové editory, textové procesory

Elektronické publikování. Základní pojmy. B žné systémy. Publika ní nástroje. doc. RNDr. Petr Šaloun, Ph.D. FEI VŠB TU Ostrava

TVORBA TEXTOVÉHO DOKUMENTU PROSTŘEDKY, PŘENOSITELNOST

Název materiálu: Open Office

FAKULTA STAVEBNÍ OBOR GEODÉZIE A KARTOGRAFIE KATEDRA MAPOVÁNÍ A KARTOGRAFIE

Základy informatiky. Elektronické publikování. Daniela Szturcová Část převzata z přednášky P. Děrgela

Značkovací jazyky a spol. HTML/XHTML XML JSON YAML Markdown, Texy!

Základy informatiky. 02 Elektronické publikování. Michal Kačmařík upraveno z přednášek D. Szturcové a P. Děrgela

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Prezentační prostředky v matematice

MBI - technologická realizace modelu

APLIKACE XML PRO INTERNET

Základy informatiky. Elektronické publikování. Daniela Szturcová Část převzata z přednášky P. Děrgela

Škola: Gymnázium, Brno, Slovanské náměstí 7 III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN

Základy informatiky. 02 Elektronické publikování. Kačmařík/Szturcová/Děrgel/Rapant

b) červená, zelená, modrá, c) černá, bílá, d) černá, bílá, šedá. 5. PNG je formát: a) textový,

Mgr. Stěpan Stěpanov, 2013

MS EXCEL. MS Excel

Úvod do TeXu. Jan Vaněk. Nové Hrady 2011

Typografické programy (1) WYSIWYG

Typy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu

Sada 2 Microsoft Word 2007

Krejčí Richard Písmo - Font Sazba Postscriptová písma

O projektu Nasazení OpenOffice.org v praxi

Dnešní téma. Oblasti standardizace v ICT. Oblasti standardizace v ICT. Oblasti standardizace v ICT

Odborný článek. Petr Klán, VŠE v Praze, IMRAD Introduction, Material and Method, Results, Discussion

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě

Registrační číslo projektu: CZ.1.07/1.5.00/ Název projektu: Moderní škola 21. století. Zařazení materiálu: Ověření materiálu ve výuce:

Tvorba kurzu v LMS Moodle

MS Word 2007 Šablony programu MS Word

Metodika vkládání dat do e-learningu Patrik Vlnas

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Správa barev. PS a PDF. Správa barev. Vytvořila: Jana Zavadilová Vytvořila dne: 13. února DUM číslo: 18 Název: PS a PDF

PSANÍ VZORCŮ A ROVNIC

XML versus TEX jemné porovnání. Martin Tůma 31. srpna 2004

Export tabulky výsledků

24. XML. Aby se dokument XML vůbec zobrazil musí být well-formed (správně strukturovaný). To znamená, že splňuje formální požadavky specifikace XML.

ZNAČKOVACÍ JAZYKY A JEJICH VYUŽÍVÁNÍ MARKUP LANGUAGE AND THEIR USE. Zdeněk Havlíček

Název školy: Základní škola a Mateřská škola Žalany. Číslo projektu: CZ. 1.07/1.4.00/ Téma sady: Informatika pro pátý až šestý ročník

Škola: Gymnázium, Brno, Slovanské náměstí 7 III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN

Jazyk XSL XPath XPath XML. Jazyk XSL - rychlá transformace dokumentů. PhDr. Milan Novák, Ph.D. KIN PF JU České Budějovice. 9.

Základní nastavení textového editoru Word 8.0 (Microsoft Office 97)

Začínáme pracovat s tabulkovým procesorem MS Excel

Webové stránky. 4. Tvorba základní HTML webové stránky. Datum vytvoření: str ánk y. Vytvořil: Petr Lerch.

Základy WWW publikování

(Nepříliš) stručně o systémech TEX a L A TEX

Typografické programy (1) WYSIWYG

Tabulkový procesor. Základní rysy

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Inovace výuky prostřednictvím šablon pro SŠ

2.3.3 PRÁCE S JEDNÍM A VÍCE DOKUMENTY

O projektu OpenOffice.org a IBM OS/2 OS/2 a Open Source

Programovací jazyky Přehled a vývoj

On-line textové editory. Google Dokumenty (Google Docs)

6. Statistica (pokračování) Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Jarkovský, L. Dušek, M. Cvanová

Identifikátor materiálu: ICT-1-20

Stránka se dá otevřít dvěma způsoby

IVT. Grafické formáty. 8. ročník

TISKOVÁ ZPRÁVA ČESKÉHO LOKALIZAČNÍHO TÝMU OPENOFFICE.ORG ČESKÝ LOKALIZAČNÍ TÝM OZNAMUJE DOKONČENÍ ČESKÉ VERZE NOVÉ VLASTNOSTI. 7.

Softwarová konfigurace PC

INFORMATIKA. Grafické studio ve škole

HTML - Úvod. Zpracoval: Petr Lasák

Prozkoumání příkazů na pásu karet Každá karta na pásu karet obsahuje skupiny a každá skupina obsahuje sadu souvisejících příkazů.

Webové stránky. 2. Úvod do jazyka HTML. Datum vytvoření: str ánk y. Vytvořil: Petr Lerch.

Inovace výuky prostřednictvím šablon pro SŠ

Kartografická webová aplikace. Přednáška z předmětu Počítačová kartografie (KMA/POK) Otakar Čerba Západočeská univerzita

Základní práce v souborovém manažeru

Jak psát Bc. resp. Mgr. závěrečnou práci. Zpracoval: Karel Bílek

WORD. (zobecněno pro verzi 2007)

1.1 Seznámení s programy Office

VY_32_INOVACE_INF.19. Inkscape, GIMP, Blender

Registrační číslo projektu: Škola adresa: Šablona: Ověření ve výuce Pořadové číslo hodiny: Třída: Předmět: Název: MS Excel I Anotace:

Webové stránky. 13. Obrázky na webových stránkách, modul Uložit pro web a zařízení. Datum vytvoření: str ánk y. Vytvořil: Petr Lerch

Grafický software ve výuce a pro výuku

Uspořádání klient-server. Standardy pro Web

Úvod do aplikací internetu a přehled možností při tvorbě webu

Matematický software pro Linux

Quo vadis, informatiko na LDF? (TEX, nvu, maxima, bash)

František Hudek. duben ročník

MS Word. verze Přehled programů pro úpravu textu

Inovace výuky prostřednictvím šablon pro SŠ

Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý

Databázové aplikace pro internetové prostředí PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku

Vzdělávací obsah předmětu

Výukový materiál KA č.4 Spolupráce se ZŠ

Práce s kalkulátorem

Středoškolská technika SCI-Lab

Windows - základy. Hlavním vypínačem na základní jednotce. K datům uloženým do výchozí složky.

Uživatelský manuál aplikace. Dental MAXweb

CZ.1.07/1.5.00/

Zobrazte si svazy a uspořádané množiny! Jan Outrata

5.15 INFORMATIKA A VÝPOČETNÍ TECHNIKA

MS POWERPOINT. MS PowerPoint

Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. PORTÁL KUDY KAM. Manuál pro editaci ŽS. Verze 1.

OpenOffice.org: Cesta k Open Source vkanceláři Pavel Janík, nezávislý konzultant, Josef Cacek, FI a ESF MU

Transkript:

Mendelova univerzita v Brně Provozně ekonomická fakulta Možnosti konverze matematických objektů v soudobém programovém vybavení Bakalářská práce Adam Hanuš Vedoucí práce:: RNDr. Tomáš Hála, Ph. D. Brno 2013

MÍSTO TÉTO STRANY VLOŽ ORIGINÁL ZADÁNÍ PRÁCE

Děkuji RNDr. Tomáši Hálovi za vedení, podporu a cenné připomínky při tvorbě této práce. Poděkování také patří mým nejbližším za skvělé studijní zázemí, které mi poskytují.

Prohlašuji, že jsem tuto práci vyřešil samostatně s použitím literatury, kterou uvádím v seznamu. V Brně dne 20. května 2013

5 Abstract H, A. Conversion options of the mathematical objects in the contemporary software. Bachelor thesis. Brno, 2013. This bachelor thesis presents the current possibilities of conversion of the mathematical objects. There is a compilation of the contemporary software for a mathematical notation and furthemore, there are the results of conversion with the quality valorization of conversion between several formats, that support displaying and writting mathematics. The most important part of the thesis is the implementation of the converter of the mathematical objects, using a XSL style and an available freeware XSL processors. Also, it is focused on describtion of options of the math objects display in MathML and TeX languages. Key words: conversion, converter, MathML, mathematical objects, TeX, XSL, XSLT

6 Abstrakt H, A. Možnosti konverze matematických objektů v soudobém programovém vybavení. Bakalářská práce. Brno, 2013. Tato bakalářská práce se zabývá možnostmi konverze matematických objektů. V dokumentu je sestaven přehled soudobého programového vybavení pro zápis matematiky a taktéž jsou zde provedeny konverze s hodnocením kvality konverze mezi různými formáty, které podporují zobrazení a zápis matematických objektů. Nejdůležitějším bodem práce je implementace konvertoru matematických objektů za pomocí stylu XSL a veřejně dostupných procesorů XSL. Práce také popisuje způsoby zobrazení matematických objektů v jazyce MathML a TeX. Klíčová slova: konverze,konvertor, MathML, matematické objekty, TeX, XSL, XSLT

7 Obsah 1 Úvod a cíl práce 11 1.1 Úvod................................................... 11 1.2 Cíl práce................................................ 11 2 Teoretická východiska 13 2.1 Historie matematického zápisu.............................. 13 2.2 Formáty pro zápis matematiky.............................. 14 2.2.1 Textový formát MS Word (DOC)........................ 14 2.2.2 Textový formát Office Open XML (DOCX)................ 15 2.2.3 Open Document Format (ODT, ODF)..................... 15 2.2.4 OpenOffice Math Format (SXM)......................... 15 2.2.5 Textový formát (TXT)................................. 16 2.2.6 MathML (MML)...................................... 16 2.2.7 Extensible Markup Language (XML)..................... 17 2.2.8 TEX................................................ 17 2.2.9 Postscript (PS), JPG, GIF, PNG a jiné grafické formáty....... 18 2.2.10 Portable Document Format (PDF)........................ 18 2.2.11 HyperText Markup Language (HTML).................... 19 2.2.12 Rich Text Format (RTF)................................ 19 2.2.13 Starmath formát (SMF) a podobné formáty kancelářských balíku založených na OpenOffice............ 19 2.2.14 Standard Generalized Markup Language (SGML)........... 20 2.3 Programové vybavení..................................... 20 2.3.1 Apache OpenOffice.org................................ 20 2.3.2 LibreOffice.......................................... 21 2.3.3 Microsoft Office...................................... 21 2.3.4 CAS nástroje (Maple, Maxima, Mathematica, )............ 21 2.3.5 Moodle............................................. 21 2.3.6 DragMath.......................................... 22 2.3.7 MathCast........................................... 22 2.3.8 Formula Sheet Equation Editor.......................... 22 2.3.9 Lyx................................................ 23 2.3.10 MathMagic.......................................... 23 2.3.11 MathType.......................................... 23

8 2.3.12 Google Documents................................... 24 2.3.13 Panel pro matematický zápis ve Windows 7............... 24 3 Konverze 25 3.1 Určení kvality konverze.................................... 25 3.2 Microsoft Office 2010...................................... 26 3.3 OpenOffice.org........................................... 27 3.4 Google Documents........................................ 28 3.5 Editor Math balíku OpenOffice.org (LibreOffice)................ 29 3.6 MathType............................................... 31 3.7 MathCast............................................... 32 3.8 MathMagic.............................................. 33 3.9 DragMath............................................... 35 3.10 Lyx.................................................... 36 3.11 Formula Sheet Equation Editor.............................. 37 3.12 Panel pro matematický zápis................................ 37 3.13 Závěr a doporučení....................................... 37 4 Hlubší souvislosti matematické sazby 39 4.1 TEX.................................................... 39 4.1.1 Srovnání TEXu a L A TEXu............................... 40 4.1.2 Ukázky matematických prostředí........................ 40 4.1.3 Tvorba matematického seznamu........................ 42 4.1.4 Mezera............................................. 42 4.1.5 Text v matematické formuli............................ 43 4.1.6 Písmo.............................................. 43 4.1.7 Základní matematické konstrukce....................... 44 4.1.7.1 Matematické akcenty.............................. 44 4.1.7.2 Aritmetické operace................................ 45 4.1.7.3 Zlomky a závorky................................. 45 4.1.7.4 Indexy.......................................... 46 4.1.7.5 Kombinační čísla.................................. 47 4.1.7.6 Integrály........................................ 47 4.1.7.7 Mocniny a odmocniny.............................. 47 4.2 MathML................................................ 48 4.2.1 MathML a HTML a jeho podpora v prohlížečích............ 48 4.2.2 Syntax a sémantika MathML........................... 49 4.2.3 Prezentační zápis..................................... 50

9 4.2.4 Základní matematické konstrukce....................... 52 4.2.4.1 Základní aritmetika............................... 52 4.2.4.2 Zlomek......................................... 52 4.2.4.3 Odmocniny...................................... 54 4.2.4.4 Indexy a exponenty................................ 55 4.2.4.5 Text v matematické formuli......................... 55 4.2.5 Významové značení................................... 56 4.2.6 Spojení prezentačního a významového značení............. 59 5 Konvertor matematických objektů 61 5.1 Dostupná technologie..................................... 61 5.1.1 XML a MathML...................................... 61 5.1.2 XSL............................................... 62 5.1.3 Použití XPath v XSLT................................. 62 5.1.4 XSLT procesory a parsery.............................. 63 5.1.5 Podpora XSLT v prohlížečích........................... 63 5.2 Jak to funguje............................................ 64 5.2.1 Jmenný prostor...................................... 64 5.2.2 Elementy XSL souboru................................ 65 5.2.3 Módy šablon a priorita................................ 66 5.3 Metodika řešení.......................................... 66 5.3.1 Šablona pro zlomek................................... 67 5.3.2 Šablona pro zmenšený zlomek.......................... 68 5.3.3 Šablona pro index a exponent........................... 68 5.3.4 Šablona pro integrál s mezemi na místě indexu a exponentu.. 68 5.3.5 Šablona pro integrál s mezemi nad a pod znakem integrálu... 69 5.3.6 Šablona pro matice................................... 69 5.3.7 Šablona pro kombinační číslo........................... 69 5.3.8 Šablona pro různé druhy závorek........................ 69 5.3.9 Šablona pro goniometrické funkce....................... 70 5.3.10 Šablona pro akcenty.................................. 70 5.3.11 Šablona pro operátory................................. 70 5.3.12 Šablona pro mezery................................... 71 5.4 Implementace konvertoru.................................. 71 6 Diskuze 73

10 7 Závěr 75 8 Literatura 76 Literatura 76 10 Seznam tabulek 81 11 Seznam obrázků 82 12 Přílohy 83 12.1 Screenshoty testovaných programů.......................... 83

Úvod a cíl práce 11 1 Úvod a cíl práce 1.1 Úvod V době neustálého rozvoje počítačových technologií je orientace ve všech dostupných programech a formátech docela složitou záležitostí. Přitom to není tak dávno, kdy pro jeden účel člověk používal vždy jen několik programových nástrojů. Skoro stejně tak dávno je i od doby, kdy člověk začal přemýšlet, jak co nejlépe zapsat matematické objekty pomocí počítačů. Jedním z nejstarších pokusů je sázecí systém TEX, který se narozdíl od např. značkovacího jazyka ISO 12038 nebo unixového preprocesoru eqn používá dodnes a rozhodně jeho popularita nijak výrazně neklesá. Žádné z novějších aplikací totiž zatím nepřinesly lepši typografický výstup nebo tak "texovsky" úžasnou přizpůsobitelnost a programovatelnost. Na druhou stranu je celkově trochu složitější na pochopení z důvodu neinteraktivnosti. O nic lepší uživatelskou přívětivost nemá ani jazyk konsorcia W3C nazvaný Math- ML či koncept OpenMath. Prvně jmenovaný se dostal do povědomí lidí už v devadesátých letech a nyní patří společně s TEXem ke špičce nástrojů pro tvorbu matematiky. Většina lidí je dnes zvyklá na editační logiku kancelářských balíků typu MS Office a jejich WYSIWYG rozhraní. Důvodem úspěchu těchto druhů formátů je následování trendu vývojářů spočívající v co největším zjednodušování a zpřístupnění masám. Daní za to je ne příliš přesvědčivý grafický výsledek a řada dalších problémů nejen ve věci konverze. Tato práce poukazuje na dostupné formy zápisu matematiky. Snaží se rozebrat výhody a nevýhody jednotlivých formátů a konverze mezi nimi, proniknout hlouběji do sazby matematiky v systémech TEX a MathML a na základě literárních opor, vlastního výzkumu a bádání implementovat konvertor matematických objektů. 1.2 Cíl práce Hlavním cílem této práce je vytvořit konvertor matematických objektů. Nutným prostředkem ke splnění požadavku je prozkoumání současných programových nástrojů na tvorbu matematických objektů. Dále také určení kvality konverze u některých vybraných programů a formátů a srovnání jejich přesnosti v interpretaci matematiky. Práce se především soustředí na systémy TEX a MathML, jejichž formáty budou

Úvod a cíl práce 12 použity v implementační části práce a analyzuje také problematiku zápisu matematiky v souvislosti se zobrazením na webu. Bakalářská práce také v souvislosti s řešením praktické části podrobněji zkoumá transformační možnosti formátu XML a současné nástroje k tomu potřebné. Jsou zde uvedeny obecně platné postupy pro tvorbu matematických rovnic, tudíž může práce z části sloužit jako jednodušší manuál k jejich tvorbě.

Teoretická východiska 13 2 Teoretická východiska 2.1 Historie matematického zápisu S možností nějakým způsobem zapsat matematický objekt se setkáváme už při samotném vzniku počítačů. Podle matematické organizace Wolfram Research byly úplně první počítače vyvinuty přímo za účelem vědeckých výpočtů. Také první z programovacích jazyků FORTRAN (FORmula TRANslation) byl uzpůsoben k překladu matematických objektů do počítačem přijatelné formy. Vzhledem k tomu, že vstupní a výstupní proudy byly u prvních počítačů limitovány jednoduchou sekvencí znaků, bylo normální psát vzorce typu a^2+a/x^2 =c^2 jako jedoduchou posloupnost znaků a**2+a/x**2=c**2. V praxi to vypadalo tak, že se pomocí jednoduchého textového editoru zapsal vzorec, který se následně předložil jako vstupní výraz počítači a ten si ho převedl do sobě známé vnitřní reprezentace a přiřadil každému znaku jeho konkrétní význam (např. výraz a b byl zapsán jako a/b). (Wolfram Research, 2013) Jak ale jistě cítíme, tento postup psaní jen pomocí sady ASCII asi nedokázal řešit nějaké složitější matematické zápisy. Zápis matematických vzorců se dlouhou dobu řešil pomocí bitmapového obrázku, což sebou ale neslo několik nedostatků jako je obtížná modifikovatelnost a vytvořitelnost. V osmdesátých letech se začal velice masově rozšiřovat systém TEX, založen Donaldem Knuthem a v roce 1989 se stal standardem v zápisu matematiky také na webu. Ve stejném období byl Brianem Kernighanem a Lorindou Cherry vytvořen preprocesor eqn, umožňující zobrazení a zápis matematických vzorců, pro již známý unixový program troff na formátování textu. (Kernighan, 1978) Později se objevila možnost zápisu vzorce do webových stránek pomocí Java-apletů WebEQ (Web EQuation), kde je vzorec obsažen uvnitř zdrojového kódu jako hodnota a jeho zápis vychází z TEXu. (Grimmich, 2004) Dalším používaným značkovacím jazykem byl ISO 12083, vycházející ze SGML. Matematika použitá v tomto jazyce sdílí dost aspektů s TEXem. Vynucuje přísnější strukturu a regularitu než TEX, proto je většina prací kompatibilních s TEXem také aplikovatelná na ISO 12083. (Grimmich, 2004) TEXnastavil vysokou laťku v přesném vizuálním ztvárnění, z čehož vycházela v devadesátých letech organizace W3C a představila rozšíření tehdy již hojně používaného jazyka HTML o nové matematické prvky a později i úplně nový jazyk, nazvaný

Teoretická východiska 14 MathML, založený na značkovacím jazyce XML. Bylo to přesněji v roce 1997, kdy byla poprvé představena první specifikace MathML. Zpočátku byl jazyk MathML vytvořen pro přesné zachycení matematiky na webu, ale později se stal důležitým formátem pro přenos matematických dat a komunikaci pro širokou škálu vědeckých a matematických aplikací. (Design Science, 2013) Za zmínku také stojí značkovací jazyk OpenMath z roku 2000, který byl vytvořen v Helsinkách asociací OpenMath s důrazem na zachycení významu a sémantiky matematické rovnice. (OpenMath, 2013) 2.2 Formáty pro zápis matematiky V této kapitole se seznámíme s použitelnými formáty pro zápis matematických objektů. V dnešní době se každodenně potkáváme s desítkami a stovkami různých formátů, protoje čím dál těžší a těžší správně vybrat takový software a formát, který by nejlépe zachytil podobu a význam námi myšlené matematické formule. Tento mírný chaos je dán tím, že teoreticky každá nově vytvořená aplikace může přijít se svým jedinečným formátem, ikdyž se třeba v konečném důsledku ukáže, že se jedná o ekivalent již existujícího formátu s jiným názvem. Postupně se podíváme na formáty, se kterými pracují všeobecně nejpoužívanější kancelářské balíky, editory nebo i jiný software s možností zápisu matematiky. 2.2.1 Textový formát MS Word (DOC) Jedná se o formát vytvořený společností Microsoft, od devadesátých let používaný v textovém procesoru Microsoft Word, který je součástí kancelářského balíku Microsoft Office. Dříve během osmdesátých let byl používán jako souborová přípona plain textu (neformátovaná posloupnost textových znaků) (Doc(computing), 2013). V roce 2007 byl nahrazen novějším a úspornějším formátem DOCX, přesto se stále hojně používá a podporují ho i nejnovější verze textových procesorů. Podpora matematiky v tomto formátu je i není. Matematická rovnice se do dokumentu vkládá jako objekt, pomocí externího editoru rovnic (v některých verzích MS Office je modul nutný manuálně doinstalovat). Použitý integrovaný editor je zjednodušenná verze aplikace MathType od společnosti Design Science.

Teoretická východiska 15 2.2.2 Textový formát Office Open XML (DOCX) Od roku 2007 zavedla firma Microsoft do svého kancelářského balíku nové formáty založené na XML a ZIP nazývané Office Open XML. Jak uvádí společnost Microsoft (Microsoft, 2013), nové formáty zaručují transparentnost a kompatibilitu pro všechny již exstující nebo nové soubory Microsoft Office. Vydáním nového formátu si Microsoft sliboval hlavně zvýšení bezpečnosti souborů, snížení pravděpodobnosti poškození souboru, snížení velikosti souboru a sdílení dat v různých systémech uchování. (Docx, 2007) S formátem DOCX vydal Microsoft pro své Office 2007 aplikaci pro tvorbu matematických objektů. Se starším formátem DOC je kompatibilita řešená tím, že se výsledná rovnice překonvertuje do dokumentu jako obrázek. Starý objektový způsob vkládání rovnice pomocí MS Equation Editor zůstal zachován i v tomto formátu. Po řadě kontroverzí byl i Office Open XML přijat jako standard ISO. 2.2.3 Open Document Format (ODT, ODF) Formát OpenDocument (celým názvem OASIS Open Document Format for Office Applications) je otevřený souborový formát založený na formátu XML a ZIP, používaný aplikacemi OpenOffice.org nebo třeba LibreOffice. Od 3. května 2006 je zařazen mezi standardy Mezinárodní organizací pro normalizaci jako standard ISO 26300. (Open Document, 2008) Stejně jako formát DOCX, i otevřený odt umí přenášet matematické objekty. V kancelářském balíku OpenOffice.org se o to stará samostatný editor Math, který se automaticky spouští ve všech součástech OpenOffice, pokud chceme vložit matematický objekt. K intepretaci matematiky je použit jazyk MathML, jehož zdrojový kód dostaneme jednodušše po extrahování formátu ODT. Math má dokonce svůj skriptovací jazyk a vzorce můžeme tvořit buď pomocí jednoduchého WYSIWYG menu, nebo přímo psaním kódu. 2.2.4 OpenOffice Math Format (SXM) Otevřený formát pro zápis matematických formulí na bázi XML. Nativní formát aplikací typu OpenOffice.org, StarOffice, atd. do té doby, než byl vyvinut novější Open-

Teoretická východiska 16 Document formát. 2.2.5 Textový formát (TXT) Obyčejný textový formát, neboli plain text nám umožňuje napsat matematický vzorec pouze pomocí kláves dostupných na klávesnici, respektive pomocí znaků ASCII (Unicode) sady. Samozřejmě, že nikdy nedostaneme moc graficky uspokojivý výsledek. Pro zachycení nejjednodušších matematických operací nicméně tento formát stačí. Jako formu plain textu můžeme brát také AsciiMath. Psaní matematiky za použité ASCII znaků je vhodné, pokud mluvíme o jednoduchých výrazech k zaslání například v e-mailové zprávě. Máme jistotu, že co je napsané pomocí ASCIIMathu, dokáže přečíst úplně každý bez ohledu na to, jestli jeho prohlížeč podporuje matematickou sazbu. Zlomek zapíšeme například takto: 1/(2x) nebo 1 --. 2x 2.2.6 MathML (MML) Mathematical Markup Language vychází z rodiny jazyka XML, vytvořeného konsorciem W3C a současně je součástí jazyka HTML5. Je známo, že na vědecké půdě je kladen důraz na přesnost a kvalitu zápisu, proto byl jazyk MathML navržen tak, aby splnil veškeré pestré požadavky vědecké komunity. Jeho tvůrci si vytyčily tyto nejdůležitější cíle (W3C, 2013): 1. Zobrazit matematický materiál vhodný pro výuku a vědecké výpočty na všech úrovních 2. Ukázat v matematickém zápisu i význam výrazu 3. Zprostředkovávat konverzi z a do jiných matematických formátů, včetně prezentačních a sémantických. Výstupní formáty by měly zahrnovat: grafické displeje, další matematické typografické jazyky jako TEX, zobrazování jednoduchého textu, tiskárny a Braillovo písmo. 4. Poskytovat rozšiřitelnost a být integrovatelný do šablon a jiných forem pro zápis vzorců 5. Kód by měl být bezproblémově čitelný pro člověka a jednodušše upravitelný

Teoretická východiska 17 a vytvořitelný softwarem Zápis matematických vzorců v jazyce MathML je na pohled objemnější než zápis například v TEXu a pro člověka je i hůře čitelný jeho obsah, ale právě jeho struktura umožňuje valné využití např. ve webových prohlížečích či jiných matematických programech. Velkou výhodou je možnost uchování jak struktury, tak i významu matematického textu. K zápisu se používají významové (určují přímý význam matematické formule, jedná-li se o vektor, množinu, apod.) a prezentační (určují, jakým způsobem se bude vzorec zobrazovat) elementy (W3C, 2013). 2.2.7 Extensible Markup Language (XML) XML je značkovací jazyk vytvořený konsorciem W3C jako zjednoduššená verze jazyka SGML. Umožňuje vývojáři vytvářet nové značky. Hlavním cílem XML je zápis struktury dokumentu. Struktura XML dokumentu se dělí na logickou (rozděluje dokument do pojmenovaných jednotek nazývaných elementy) a fyzickou (umožňuje pojmenovat a uložit samostatné části dokumentu). (Kosek, 2000) K upravování dokumentu formátu XML stačí obyčejný textový editor. Jazyk XML je uznávaný jako standard a existuje k němu mnoho api (application programming interface). Hlavní použitelnost XML (Faigl, 2013): 1. Publikování na webu pomocí značek se dobře vyhledává 2. Publikování v různých formátech využití konverze XML do libovolného formátu 3. Výměna strukturovaných dat odstranění problému kompatibility 2.2.8 TEX Od vzniku sázecího systému TEX amerického matematika Donalda Knutha již uplynulo hodně let, ale i přes to a přes svoji uživatelskou nepřívětivost je to stále výborný nástroj pro sázení matematiky. Byl koneckonců vyvinut pro matematické a vědecké účely a především na akadamické půdě si pořád drží své místo. Nutno podotknout, že se za léta vývoje čím dál méně bavíme o základním TEXu, ale spíše o jeho uživatelsky přívětivějších nadstavbách (balíků maker) jako jsou plaintex, MikTEX nebo L A TEX. Sázecí systém TEX má svůj speciální matematický mód pro tvoření matematických formulí aktivovaný a deaktivovaný párovým znakem dolaru nebo dvojznakem

Teoretická východiska 18 dolaru. K použití TEXu potřebujeme zpravidla jeho odpovídající implementaci, která zahrnuje kromě samotného překladače a sad řídicích sekvencí pro různá použití také prohlížeče, konvertory a jiné doplňky. (Grafika, 2004) Pro sazbu matematiky se nejlépe hodí rozšíření Ams-L A TEX, které poskytuje velké množství příkazů, rozšiřujících možnosti matematické sazby a také velké množství nových symbolů. 2.2.9 Postscript (PS), JPG, GIF, PNG a jiné grafické formáty Rastrové obrázky jsou bezesporu důležitou a dodnes velmi používanou formou zobrazení matematických formulí. Příkladem je obrovsky populární webová encyklopedie Wikipedia, která sice ke generování matematických vzorců používá systém TEX, ale ve výsledném zobrazení na webu jsou použity pouze grafické formáty. Zobrazení matematiky pomocí obrázku má však několik úskalí (EVLM, 2013): Každá matematická formule je uložena v samostatném obrázku. Velikost dokumentu by se mohla rapidně zvětšit s počtem a kvalitou vložených obrázků. Velikost, font, styl a jiné možnosti není možné nastavit v dokumentu. Jsou spjaté přímo s konkrétním obrázkem. Matematické objekty uložené jako obrázek nelze kopírovat a vkládat do jiných aplikací. Rovnice v obrázcích se hůře čtou, vidí a jsou méně kvalitní, než okolní text v prohlížeči. Tento problém se ještě rozšíří v okamžiku tisku. Rozlišení obrázků bývá kolem 70 dpi, zatímco okolní text je v křivkách, tedy bezztrátový. 2.2.10 Portable Document Format (PDF) Formát pro přenositelné dokumenty byl vyvinut jako univerzální souborový formát firmou Adobe. Pdf soubory jsou jednodušše uložitelné a přenositelné nezávisle na systému a hardwaru. Matematické vzorce vložené do souboru formátu PDF jsou ve velmi dobré kvalitě a svým rozlišením jsou vhodné i pro tisk. Určitou nevýhodu může být použití speciálního softwaru pro prohlížení a editaci. Ve webových prohlížečích se o korektní zobrazení PDF obsahu starají přídavné moduly. Je důležité říci, že formát PDF, naproti třeba TEXu nebo MathML neslouží k přímému vytvoření matematických vzorců, ale dá se spíše připodobnit ke grafickým formátům. (Portable Document Format, 2013)

Teoretická východiska 19 2.2.11 HyperText Markup Language (HTML) Značkovací jazyk HTML byl první rozšířenou aplikací jazyka SGML. Nabízí možnost zápisu spíše jednodušší matematiky. Jazyku totiž chybí dostatečné množství značek pro různé matematické struktury. Výhodou je nutnost použití pouze jednoduchého HTML editoru a znalost jednoho jazyka k dobrání se kýženému výsledku. Podle zvoleného kódování máme možnost vložit do HTML kódu znaky podle čísla v ASCII tabulce. To lze provést zápisem &#číslo. Pro zobrazení matematických objektů, které nejsou pokryty párovými znaky jazyka musíme sáhnout po běžně používaných znacích. Známý vzorec pro výpočet kořenů polynomu vypadá v jazyce HTML takto: <b> <pre> -b ± Sqrt(b<sup>2</sup> - 4ac) x = ------------------- 2a </pre> </b> Aktuální verze HTML 5.0 již podporuje vnitřní použití MathML tagů. Ke správnému zobrazení je nutný prohlížeč podporující MathML. (Tutorialspoint, 2013) 2.2.12 Rich Text Format (RTF) Textový formát vytvořený společností Microsoft v roce 1987. Podporuje jak plain text, tak také objekty OLE, kresby nebo komentáře. Rich text formát je možné editovat v prosté textové podobě, tudíž k jeho otevření nepotřebujeme žádný speciální editor. 2.2.13 Starmath formát (SMF) a podobné formáty kancelářských balíku založených na OpenOffice Formát pro matematický zápis aplikace StarMath kancelářského balíku StarOffice. Vlastnosti jsou stejné jako u formátu sxm. Takovýto podobný formát mají i ostatní

Teoretická východiska 20 balíky typu OpenOffice. 2.2.14 Standard Generalized Markup Language (SGML) Většina probíraných formátů a jazyků vychází z normy SGML (Standard Generalized Markup Language). SGML je značkovací metajazyk, od roku 1986 je standardem ISO 8879 pro textové a kancelářské systémy (SGML, 2013). Pro matematické využití se ale ukázal býti příliš složitý. (Kamthan, 2000) 2.3 Programové vybavení Pokud zamýšlíme vytvořit nějaký druh matematického objektu, máme prakticky tři možnosti. Buď využijeme jeden z textových editorů (procesorů), který nějakým způsobem podporuje tvorbu vzorců nebo formuli vytvoříme ve WYSIWYG editoru a následně ji do dokumentu uložíme jako rastrový obrázek, nebo jako část kódu (TEX, MML), pokud práci s ním daný editor podporuje. Poslední volbou pro zdatnější uživatelé je ruční vytvoření kódu, pokud máme dostatečné znalosti syntaxe. Do výběru programů byly zahrnuty nejznámější placené i otevřené kancelářské balíky, pak také samostatné matematické editory a software pracující pouze ve webovém prostředí. 2.3.1 Apache OpenOffice.org V balíku OpenOffice se o matematiku stará modul Math, který se automaticky spouští ve všech součástech OpenOffice, pokud chceme vložit matematický objekt. Druhou možností je manuální spuštění Mathu jako samostatného editoru. Velmi zajímavá je možnos dvojího způsobu vytváření matematického výrazu. Základní obrazovka je totiž rozdělena na dvě části. V jedné vidíme přímo vykreslený vzorec (můžeme zde vkládat objekty z ne moc bohaté nabídky) a v druhé jeho zápis ve vnitřní syntaxi. Výhoda tkví v možnosti zápisu vlastní matematické formule s přiměřenou znalostí skriptovacího jazyka (který se tolik neliší například od TEXu). Export matematických objektů je možný do formátu PDF s nastavením ztrátovosti, HTML, RTF, TXT, MathML 1.01 a nativních ODF a SXM. (OpenOffice, 2013)

Teoretická východiska 21 2.3.2 LibreOffice LibreOffice je otevřený kancelářský balík používající formáty Open document. Stejně jako v sadě OpenOffice.org je jeho součástí kromě jiných i aplikace Math. (LibreOffice, 2013) 2.3.3 Microsoft Office Kancelářský balík od firmy Microsoft využívá od verze z roku 2007 k psaní vzorců svoji vlastní aplikaci. Druhou, starší alternativou je externí program od společnosti Design Science s názvem Equation editor, který vkládá vzorec do dokumentu v podobě objektu. K balíku MS Office bylo vyvinuto bezpočet různých pluginů, které umožňují pracovat s formáty jako TEX (např Aurora) nebo MathML (MathType SDK), nativně ale tyto formáty podporovány nejsou a musíme si vystačit s interním formátem omath (Office Open XML Math) pro zápis matematických objektů. (Microsoft, 2013). Odlišné chování vzorců vytvořených oběma způsoby si ukážeme v další kapitole. 2.3.4 CAS nástroje (Maple, Maxima, Mathematica, ) Skupina složitějších vědecko-algebraických aplikací, které podporují vykreslování grafů, matematické výpočty,atd. Programy často využívají svůj programovací jazyk k vytváření skriptů, který je možný převádět do dostupných jazyků, jako jsou C++, Java, atd. Soubory je možné ve většině případů exportovat do známých formátů jako XML nebo TEX a tím zajistit výbornou přenositelnost mezi odlišnými systémy. Z důvodu větší komplexnosti jsou tyto nástroje poměrně dosti drahé. (CAS, 2013) 2.3.5 Moodle Moodle je modulové objektově orientované dynamické vzdělávací prostředí, které umožňuje vytvářet on-line kurzy k výuce. Disponuje příjemným uživatelským roz-

Teoretická východiska 22 hraním, neklade přílišné požadavky na počítačovou gramotnost a nevyžaduje ke spuštění žádný speciální prohlížeč. Moodle k editaci textu využívá jednoduchý editor, svými funkcemi podobný nejznámějším textovým procesorům. K tvorbě matematických objektu je použita v Moodle nadstavba DragMath. (Dougiamas, 2013) 2.3.6 DragMath DragMath je open-source editor matematických rovnic napsaný v programovacím jazyku JAVA. Matematické výrazy zvládne exportovat do několika jazyků, včetně MathML, L A TEXu nebo Maplu. Aplikace je spustitelná přímo v internetovém prohlížeči. (Dragmath, 2010) Tvorba vzorců probíhá trochu krkolomně stylem WYSIWYG stejně jako například v MathTypu. Každý matematický objekt má v hlavním menu svoji šablonu, která se po kliknutí přímo přenese na hlavní obrazovku s prázdnými místy pro doplnění. 2.3.7 MathCast MathCast je open-source editor rovnic vytvořený v jazyce JavaScript. K implementaci starších verzí posloužil jazyk C++. Rovnice vytvořené v editoru MathCast můžeme exportovat jako obrázek nebo MathML kód. (Mathcast, 2013) 2.3.8 Formula Sheet Equation Editor Jedná se o on-line aplikaci spustitelnou v prohlížeči s výstupem do formátu TEX, PDF a PNG. Umožňuje také jedním kliknutím kopírovat matematické objekty do MS Word 2007 a novějších verzí (formát DOCX). Kompatibilita s MS Equation editorem je perfektní.

Teoretická východiska 23 2.3.9 Lyx Lyx je textový procesor, založený na principu WYSIWYM (What you see is what you mean). Kombinuje v sobě složitost a rozmanitost TEXového, resp. L A TEXového zápisu s jednoduchostí grafického rozhraní a paletového výběru po vzoru Wordu. (Lyx, 2013) Exportovat soubory lze do formátů PDF, L A TEX, TXT nebo postscript. Zápis matematických vzorců zvládne i začátečník díky obrazovému menu a časem se i naučí i TEXovou syntaxi, protože editor obsahuje také náhled zdrojového kódu. 2.3.10 MathMagic Velice rozšířeným nástrojem na tvorbu rovnic je program MathMagic od společnosti InfoLogic, který je dostupný pro platformy Mac OS X, Windows a Android. Jedná se o editor na podobné úrovni jako MathType. Hotové matematické vzorce lze exportovat do formátů TEX, L A TEX, MathML nebo AsciiMath. Jeho velkou výhodou je také spolupráce s webovou aplikací Google documents a matematickým softwarem Wolfram Alpha nebo Zoho, s jejichž formáty si MathMagic skvěle rozumí. Samozřejmostí je export do formátů obrázků PDF, JPEG, GIF nebo třeba PNG. MathMagic je vyvíjen od roku 1998 a v dnešní době je nabízen ve třech verzích, Personal edition, Lite edition nebo Pro edition. Nainstalovaná aplikace zabere kolem 30 MB volného místa na disku a její cena je od 49 dolarů za verzi pro studenty po 695 dolarů za Pro verzi s dvouletým bezplatným upgradem (Mathmagic, 2013). 2.3.11 MathType Tento program od společnosti Design Science je velice mocným nástrojem na tvorbu matematických vzorců a jejich následné kódování do TEXu (LaTEXu) nebo MathML nebo jen prosté uložení do některého z obrázkových formátů. MathType podporuje znakovou sadu Unicode, mezinárodní znaky a umožňuje jejich zadávání přímo z klávesnice. Jako doplněk na vkládání rovnic se používá ve známých aplikacích jako jsou MS Word, Corel WordPerfect nebo LibreOffice.

Teoretická východiska 24 K tvorbě matematických rovnic je uživateli k k dispozici kromě WYSIWYG menu s přednastavenými výrazy také možnost zadávání vzorců skrze dotykovou obrazovku pomocí stylusu. K dispozici je uživateli 30denní zkušební verze zdarma, poté je nutné si produkt zakoupit za 97 dolarů (57 dolarů pro studenty). Nároky na hardware jsou naprosto minimální. (Design Science, 2013a). Uživatelské prostředí MathTypu je velice přívětivé a jednoduché. Skládá se z hlavního panelu, kde je obsaženo několik palet a šablon pro vkládání matematických objektů a hlavního zobrazovacího okna. Předpřipravené šablony zahrnují většinu známějších objektů jako mocniny, integrály, matice, limity, nebo sumy. Proces tvorby rovnice je intuitivní. Z výběrového menu zvolíme požadovaný objekt, který se po poklikání přenese do zobrazovací části s prázdnými místy pro vložení obsahu. Poté máme k dispozici z několika možností překladu do ruzných formátů TEXu a MathML. Převod realizujeme tak, že v nabídce překladačů v záložce Preferences zvolíme námi preferovaný formát a celou formuli pak jednodušše zkopírujeme. 2.3.12 Google Documents Google Documents představují sadu on-line nástrojů pro vytváření textových dokumentů, tabulek a prezentací. Jedná se o všestrannou aplikaci, která zefektivňuje spolupráci více uživatelů i v reálném čase. K využívání programu potřebujeme pouze počítač připojený k internetu a standardní webový prohlížeč. (Google, 2013) Pro textové dokumenty jsou možné konverze z interního Google formátu do formátů DOCX, ODT, RTF, PDF nebo obyčejného TXT. Google Docs mají svůj vlastní editor na vkládání matematických vzorců. Funkčnost je řešena výběrem objektů z palety nebo přímým psaním LaTEXového kódu. Např. při zapsání \alpha se zobrazí znak α. 2.3.13 Panel pro matematický zápis ve Windows 7 Tato zajímavá aplikace umožňuje pomocí kurozoru myši či stylusu napsat matematický vzorec, jehož znaky jsou automaticky rozpoznávány a vysázeny tisknutelným písmem. Poté máme možnost vložit formuli do aplikace, která podporuje MathML.

Konverze 25 3 Konverze Tato kapitola má za úkol objasnit odlišnosti v konverzích mezi jednotlivými formáty a stanovit kvalitu každé konverze. Provedou se konverze všech známých matematických výrazů mezi všemi zkoumanými programy z minulé kapitoly. 3.1 Určení kvality konverze V programech typu textového procesoru byl vytvořen stejný dokument se sadou matematických objektů a ten byl následně konvertován do ostatních formátů, které daný software nabízí. Byla zvolena čtyřstupnňová klasifikace, která postačuje pro základní posouzení kvality konverze: 1. Přesné přenesení bez nedostatků 2. Jemné nedostatky chyby jen kosmetického charakteru. Pro příklad je zde uvedeno zobrazení integrálu s mezemi nad a pod znakem integrálu a následná konverze, která meze samovolně posune do míst indexu a exponentu. Význam výrazu je po takové konverzi zachován. Příklad je reálna konverze z formátu ODT do DOCX. 3. Výraznější chyby u výrazu chybí podstatné části, které ovlivňují jeho význam. Zde je uveden stejný příklad konverze integrálu, avšak tentokrát je konverze provedena opačně. Integrál s mezemi v indexu a exponentu se po exportu zobrazí jako prostý integrál bez mezí. Příklad je reálná konverze z formátu ODT do DOCX. 4. Nic nepřevedeno nejdůležitějším kritériem je, zda-li se z jednoho formátu do druhého přenesla alepoň část výrazu Do seznamu matematických objektů, na nichž bude zkoumána konverze, byly zařazeny: zlomek zlomek ve zmenšeném formátu index a exponent integrál s mezemi integrál s mezemi na místě indexu a exponentu suma s mezemi matice kombinační číslo závorky automaticky měnící svoji velikost

Konverze 26 goniometrické funkce akcenty složitější limita aritmetické operátory násobení, dělení, znaménko menší, přibližně a rovnítko Kvalitu konverze názorně ukazují tabulky 3.1 až 3.5. Jako splnění nejvyššího stupně kritéria hodnocení se bere i konverze do obrázkového formátu, ikdyž tímto úkonem samozřejmě zcela zanikají editační možnosti matematického vzorce. Stupeň hodnocení klesne, ikdyž je většina výrazů zobrazena správně, ale objeví se alespoň jeden výraz, který spadá do nižšího stupně hodnocení. V matematických editorech typu MathType byl postup takový, že se vytvořily různé známé rovnice (např. rovnice pro výpočet kořenů polynomu), které se následně převáděly do dostupných formátů. Nakonec byla zhodnocena míra přesnosti zobrazení u jednotlivých programů. U formátu TEX posloužily pro kontrolu dostupné online nástroje na tvorbu matematických rovnic - např itex2img (dostupný z http://www.sciweavers.org/free-online-latex-equation-editor) nebo Texify (dostupný z http://www.texify.com/links.php). 3.2 Microsoft Office 2010 Aplikace zahrnuté v MS Office jsou plně kompatibilní samozřejmě se všemi formáty vyvinutými společností Microsoft, ale v novějších verzích také s konkurenčními OpenOffice, ikdyž o tom by se dalo stále polemizovat. Např. formát omath pro zápis matematiky není plně kompatibilní s MathML, za což sklidil Microsoft velkou kritiku. Samozřejmostí jsou formáty jako PDF, HTML nebo TXT. Hodnocení konverzí je tady docela obtížné, protože v MS Office není možné ukládat vzorce v samostatném formátu, ale vždy jako součást dokumentu. Nutno podotknout, že po konverzi do ostatních formátů byly soubory jako RTF, ODT či XML spustitelné s korektně zobrazeným obsahem znovu jen v Microsoft Office. Ostatní programy podporující daný formát zobrazovaly vzorce pouze v podobě směsi znaků.

Konverze 27 Tabulka 3.1 Seznam vzorců vytvořený aplikací Equation editor dostupnou pro starší verze MS Office formáty hodnocení konverze docx výchozí formát doc 1 vše beze změny odt 1 vše zkopírováno jako bezztrátový obrázek png pdf 1 vše beze změny rtf 1 vše beze změny txt 4 nic nepřevedeno xml 1 vše beze změny html 1 vše zkopírováno jako obrázek png Seznam vzorců vytvořený nativním editorem (MS Office 2007 a no- Tabulka 3.2 vější) formáty hodnocení konverze docx výchozí formát doc 1 vše zkopírováno jako rastrový obrázek odt 3(2) kompatibilní s Math editorem. Ignoruje zobrazení zmenšeného zlomku, kombinačního čísla a akcentu pdf 1 vše beze změny rtf 1 vše beze změny txt 3 většina výrázů zkopírována pomocí nejrůznějších znaků ASCII sady, odlišné postavení mezí integrálu, akcentů xml 1 vše beze změny html 1 vše zkopírováno jako obrázek png 3.3 OpenOffice.org S formáty XML a RTF je stejný problém jako v MS Word. Korektně se zobrazí zase jen v aplikaci, ve které byly vytvořeny.

Konverze 28 Tabulka 3.3 Seznam vzorců vytvořený v OpenOffice Writer aplikací Math formáty hodnocení konverze odt výchozí formát sxw 1 vše beze změny doc 1 vše zkopírováno správně jako objekt OpenDocument. Nepodařilo se ale objekt editovat, ikdyž byly OpenOffice(LibreOffice) korektně nainstalované docx 3(2) kompatibilita s nativním editorem. Meze integrálu v místě indexu a exponentu nejsou zobrazeny, zatímco meze nad a pod integrálem se zobrazí jako index a exponent. Ignoruje aplikaci funkce na argument pdf 1 vše beze změny rtf 1 vše zkopírováno jako rastrový obrázek txt 4 nic nepřevedeno xml 1 vše beze změny html 1 vše zkopírováno jako obrázek gif 3.4 Google Documents Dostupný je velmi zjednoduššený výběr matematických objektů. Chybí zmenšený zlomek, meze integrálu nejdou zapsat jako index a exponent, matice nelze zapsat, omezené množství akcentů. Naštěstí lze dost objektů, které nejsou v nabídce zapsat L A TEXovou syntaxí (kombinační číslo).

Konverze 29 Tabulka 3.4 Seznam vzorců vytvořený aplikací Google Documents formáty hodnocení konverze odt 1 vše zkopírováno jako rastrový obrázek docx 2 kompatibilita s editorem Equation. Nepřesné přenesení mezí integrálu. Celkově chybné vyplnění volných míst (např. u znaku integrálu si editor Equation nechá volná okénka pro meze a základ integrálu. Po přenesení zůstávají některá okénka prázdná pdf 1 vše beze změny rtf 1 vše zkopírováno jako rastrový obrázek txt 4 nic nepřevedeno html 1 vše zkopírováno jako obrázek png Google Documents se samozřejmě kromě uložení souborů do různých formátů chlubí také jejich načtením, pokud byly dříve vytvořeny jinou aplikací. Zobrazení je bohužel dosti nepřesné, pokud se vůbec uskuteční. Seznam vzorců vytvořený jinými aplikacemi, načtený Google docu- Tabulka 3.5 ments formáty aplikace hodnocení načtení docx nativní editor 4 nenačte žádný matematický objekt Equation editor 3 nenačtou se akcenty, finální vzhled vzorce vypadá jinak (odlišné postavení závorek) odt editor Math 4 nepodaří se načíst dokument, neexistuje ani náhled rtf MS Word 4 nepodaří se načíst dokument, neexistuje ani náhled 3.5 Editor Math balíku OpenOffice.org (LibreOffice) Při samostatném spuštění aplikace Math máme možnost konverze vzorce do formátů MML, ODF a SXM. Za velkou nevýhodu lze považovat absenci TEXu a nemožnost exportu do rastrového obrázku.

Konverze 30 Rovnice na výpočet kořenů polynomu vypadá ve formátu MML takto: <?xml version="1.0" encoding="utf-8"?> <math xmlns="http://www.w3.org/1998/math/mathml"> <semantics> <mrow> <mfrac> <mrow> <mrow> <mrow> <mo stretchy="false">-</mo> <mi>b</mi> </mrow> <mo stretchy="false">±</mo> <msqrt> <mrow> <mrow> <msup> <mi>b</mi> <mrow> <mn>2</mn> </mrow> </msup> <mo stretchy="false">-</mo> <mn>4ac</mn> </mrow> </mrow> </msqrt> </mrow> </mrow> <mrow> <mn>2a</mn> </mrow> </mfrac> </mrow> <annotation encoding="starmath 5.0">{-b+-sqrt{b^{2}-4ac} {2a} </annotation> </semantics> </math> } over Ve výsledku lze pozorovat použití parametru stretchy="false" při každém po-

Konverze 31 užití mo znaku. V uvedeném příkladu je to ale dosti zbytečné. Chybou je zde použití párových znaků mn pro celý výraz (v tomto případě třeba 4ac), přižemž by měla být jeho využitelnost jen u číselných hodnot, případně pro jejich slovní interpretaci (jedna). Závorky program Math zobrazuje s použitím tagů mfenced. 3.6 MathType V MathTypu můžeme vytvořený vzorec přímo uložit jako soubor GIF, postscript nebo WMF. Další možností je překlad kódu vzorce do jazyků TEX, L A TEX (i s nadstavbami AMS TEX/L A TEX) a MathML (verze 1.0 a 2.0). Všeobecně známá rovnice pro výpočet kořenu polynomu vypadá v kódování L A TEXu programem MathType takto: \[ \frac{{ - b \pm \sqrt {b^2 \] - 4ac} }}{{2a}} V kódování TEXu takto: $$ {{ - b \pm \sqrt {b^2-4ac} } \over {2a}} $$ V kódování MathML verze 2.0 takto: <math display='block'> <semantics> <mrow> <mfrac> <mrow> <mo> </mo><mi>b</mi><mo>±</mo><msqrt> <mrow> <msup> <mi>b</mi> <mn>2</mn> </msup> <mo> </mo><mn>4</mn><mi>a</mi><mi>c</mi> </mrow> </msqrt>

Konverze 32 </mrow> <mrow> <mn>2</mn><mi>a</mi> </mrow> </mfrac> </mrow> <annotation encoding='mathtype-mtef'> </annotation> </semantics> </math> V podání aplikace MathType jsou i často používané operátory interpretovány svým kódovým značením v Unicode sadě. Závorky MathType řeší tagem mo. 3.7 MathCast V programu MathCast je konverze kromě obrázku možná pouze do formátu MathML. Výsledek převodu rovnice je následující: <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/tr/mathml2/dtd/xhtml-math11-f.dtd" [<!ENTITY mathml 'http://www.w3.org/1998/math/mathml'>]> <html xmlns="http://www.w3.org/1999/xhtml"> <head><title>mathcastrovnice</title> <!-- MathML created with MathCast Equation Editor version 0.92 --> </head> <body> <math display="block" xmlns="http://www.w3.org/1998/math/mathml"> <mrow> <mi>x</mi> <mo>=</mo> <mfrac> <mrow> <mrow> <mo>-</mo> <mi>b</mi>

Konverze 33 </mrow> <mo>±<!--plus-minus SIGN--></mo> <msqrt> <mrow> <msup> <mi>b</mi> <mn>2</mn> </msup> <mo>-</mo> <mrow> <mn>4</mn> <mo> <!--INVISIBLE TIMES--></mo> <mi>a</mi> <mo> <!--INVISIBLE TIMES--></mo> <mi>c</mi> </mrow> </mrow> </msqrt> </mrow> <mrow> <mn>2</mn> <mo> <!--INVISIBLE TIMES--></mo> <mi>a</mi> </mrow> </mfrac> </mrow> </math></body> </html> Po exportu je MathML kód vložen do HTML kódu, což může být v některých situacích výhodné, ale také naopak. Plusem můžou být zakomentované vysvětlivky při použití kódu z Unicode sady znaků. 3.8 MathMagic Aplikace MathMagic využívá nejvíce potenciál jazyka MathML v podobě parametrů. L A TEX: \[

Konverze 34 %Translator MathMagic Personal Winv7.4,LaTeX converter,2013.3.30 \mathrm{\frac{{-}{b}\pm\sqrt{{b}^{2}{-}{4}{ac}}}{2a}} \] TEX: $$ {{-b\pm\sqrt{b^{2}-4ac}}\over{2a}} $$ MathML: <!--MathMagic Personal Win v7.4,mathml 2.0 converter,2013.3.30--> <math xmlns="http://www.w3.org/1998/math/mathml"> <semantics> <mstyle mathcolor="#000000"mathsize="12.0pt"mathvariant="normal"> <mfrac> <mrow> <mo> </mo> <mi mathvariant="italic">b</mi> <mo>±</mo> <msqrt> <mrow> <msup> <mi mathvariant="italic">b</mi> <mn mathsize="50.0%">2</mn> </msup> <mo> </mo> <mn>4</mn> <mi mathvariant="italic">ac</mi> </mrow> </msqrt> </mrow> <mrow> <mn>2</mn> <mi mathvariant="italic">a</mi> </mrow> </mfrac> </mstyle> </semantics> </math>

Konverze 35 3.9 DragMath Vzorec na výpočet kořenů polynomu lze v aplikaci DragMath vytvořit také, ovšem je třeba si zvyknout na poněkud divný systém vkládání objektů z hlavního menu. Aplikace navíc do formule automaticky přidává závorky nebo například operátory. Tím se celý výraz stává, co se kódu týká, trochu složitějším. Je také nutné upozornit na odlišnou interpretaci některých znaků v jazyce MathML. Zatímco ostatní programy standardně používají k vyznačení méně častých znaků jejich unicodové identifikační číslo, aplikace Dragmath tento problém řeší zapsáním například &minus nebo &PlusMinus pro operátory a ±. L A TEX: \frac{-\left(b\right) \pm \sqrt{b^{2}-4 \cdot ac} }{2 \cdot a}} MathML: <math xmlns="http://www.w3.org/1998/math/mathml"> <mfrac> <mrow> <mo> </mo> <mfenced> <mrow> <mi>b</mi> </mrow> </mfenced> <mo> &PlusMinus; </mo> <msqrt> <mrow> <msup> <mrow> <mi>b</mi> </mrow> <mrow> <mn>2</mn> </mrow> </msup> <mo> </mo> <mn>4</mn> <mo> </mo> <mtext>ac</mtext>

Konverze 36 </mrow> </msqrt> </mrow> <mrow> <mn>2</mn> <mo> </mo> <mi>a</mi> </mrow> </mfrac> </math> Maple a Maxima: (-(b)±sqrt(b^2-4*ac))/(2*a) MoodleTEX: $$ \frac{-\left(b\right) \pm \sqrt{b^{2}-4 \cdot ac} }{2 \cdot a} $$ AsciiMathML: ` (-(b) +- sqrt{b^{2}-4 * ac} )/(2 * a) ` 3.10 Lyx V editoru Lyx lze vzorec vytvořit logicky ve formátu TEX, přesněji jsou nabízeny varianty XeTEX, LuaTEX a L A TEX. Dále je export možný do formátu HTML, TXT, ODT nebo AsciiMath. Rovnice vypadá po konverzi takto: L A TEX: \[ x=\frac{-b\pm\sqrt{b^{2}-4ac}}{2a} \] AsciiMath: x=-b+-pb2-4ac2a1

Konverze 37 3.11 Formula Sheet Equation Editor Tento online nástroj na editaci rovnic má skvělou kompatibilitu s MS Office Equation editorem. Dalšími možnostmi je konverze do formátu PNG a TEX. U vytvořených rovnic lze nastavit rozlišení, použitý font a barvu. Rovnice pro výpočet polynomů vypadá takto: \begin{equation} \frac{-b\pm\sqrt{b^{2}-4ac}}{2a} \end{equation} 3.12 Panel pro matematický zápis Korektní přenesení se podařilo uskutečnit pouze v aplikaci MS Word 2010 a vyšší. 3.13 Závěr a doporučení Doporučit nějaké obecně vhodné pravidlo pro konverzi objektů ve formátech kancelářských balíků je složité. Nejlépe uživatel udělá, když se bude držet formátu, v kterém byl daný objekt vytvořen. Toto pravidlo jen potvrzuje matematický editor společnosti Microsoft, který podporuje jen svůj vlastní formát omath. V případě konverze je nejbezpečnější převést matematický vzorec do některého z obrázkových formátů. Dle hodnocení kvality konverze se ukázalo, že mezi kancelářskými balíky neexistují formáty, které by mezi sebou byly plně kompatibilní a dokázaly mezi sebou převádět výrazy bez chyby. Po stránce přenositelnosti formátů mezi jednotlivými programy jsou na tom nejlépe formáty TEX, MML a samozřejmě také plain text. U těchto formátů se obsah kódu mění v jednotlivých programech po konverzi jen velmi minimálně a často jen v detailech odvozených od použití odlišné verze jazyka (myšleno predevším v případě TEXových nadstaveb). Narozdíl od TeXové reprezentace, kdy všechny programy dávaly víceméně stejný výstup s ohledem na použitou nadstavbu, ve formátu MML se výstupy lišily v množství použitých paramtetrů. Nejsložitější MathML kód exportuje program MathMagic. Pokud bereme v úvahu kvalitu formátů co se týče přesnosti zobrazení a co nejvyšší

Konverze 38 vyjadřovací schopnosti, zase by se daly doporučit formáty MathML a TEX, jejichž robustnost zápisu nemá konkurenci. Kvalita konverze se tedy logicky odvíjí od toho, z jakého a do kterého formátu ji pořizujeme. Asi těžko se provede kvalitní konverze z TEXu do TXT, když výstupní formát zkrátka nenabízí takové matematické možnosti jako vstupní. Doporučení je konvertovat matematické objekty mezi formáty u kterých víme, že dokáží pojmout danou problematiku (v dostupných editorech jsou většinou v nabídce takové formáty, aby se v jejich exportované interpretaci daný vzorec kvalitativně nezměnil. Situace ve využití formátů pro sazbu matematiky se má tak, že mnoho jedinců, používajících matematické vzorce jen přiležitostně asi nejčastěji sáhne po nějakém textovém procesoru jako MS Word nebo OpenOffice.org, kde si v klidu vystačí s nabízenými paletami různých matematických objektů. Je tu také varianta výběru z řady editorů, které umožňují uložit výstup jako obrázek. To vše v případě občasného použití matematiky v dokumentu. V případě častější manipulace se složitějšími matematickými objekty, včetně přenášení mezi aplikacemi se jako nejvýhodnější jeví zvolit jazyk TEX a jazyk MathML. Tyto dva formáty jsou natolik rozsáhlé a variabilní a poskytují dostatek možností pro vytvoření i těch nejsložitějších matematických objektů. Protože je tvoření MathML kódu velice zdlouhavé a složité, nemluvě o náchylnosti k chybě, vzniklo postupně od jeho počátku mnoho aplikací umožňujících tvorbu vzorců ve formátu MML. Pokud by bylo požadováno takto vytvořené vzorce začlenit například do bakalářských či diplomových prací, hodí se z důvodu větší přehlednosti a jednolitosti (právě závěrečné práce se často píší ve formátu TEX ) jednoduchá konverze do některého z TEXových formátů. Praktická část této práce se proto zabývá iplementací jednoduchého konvertoru z formátu prezentačního MathML do formátu TEX.

Hlubší souvislosti matematické sazby 39 4 Hlubší souvislosti matematické sazby Tato kapitola blíže zkoumá jazyky TEX a MathML, které budou použity v prakticé části práce. 4.1 TEX Systém TEX je stále velice kvalitní nástroj pro sázení matematiky. Byl koneckonců vyvinut pro matematické a vědecké účely a především na akadamické půdě si pořád drží své místo. V této kapitole se podíváme podrobněji na možnosti sazby různých typů matematických objektů v prostředí TEXu i jeho nejnámější nadstavby L A TEXu. name: /img/princip-texu.png file: /img/princip-texu.png state: unknown Obrázek 4.1 Jednoduchý princip práce systému TEX (L A TEX), zdroj: gjszlin.cz, 2013