## Úprava matematických vzorcov

Program Amaya umožňuje vkladať do webových stránok matematické vzorce pomocou jazyka Mathematical Markup Language (MathML).

Matematické vzorce sa vkladajú ako štrukturované prvky, ktoré sú väčšinou podobné prvkom jazyka HTML. Vďaka tomu s nimi môžete vo väčšine prípadov manipulovať rovnako ako s ostatnými časťami dokumentu HTML. Všetky príkazy na editovanie textu, ktoré poskytuje program Amaya sú rovnako použiteľné i na úpravu matematických vzorcov. Okrem toho program Amaya poskytuje aj ďalšie príkazy na zadávanie matematických konštrukcií.

### Vytváranie nového vzorca

Ak chcete vytvoriť nový matematický vzorec, presuňte kurzor na miesto, kde ho chcete vložiť, a potom stlačte vzorec v nástrojovej lište "Vzorce" alebo vyberte Nový vzorec z XML menu.

#### Príkazy menu a nástrojovej lišty

Menu XML > Základné prvky obsahuje prvky, ktoré nenájdete na nástrojovej lište. Obsahuje položky: Text (`mtext`), Identifikátor (`mi`), Číslo (`mn`), Operátor (`mo`). Tieto príkazy používajte na vytvorenie nových prvkov v matematických vzorcoch. Pomocou nich môžete tiež zmeniť typ jedného alebo viacerých už vytvorených prvkov.

Ďalším príkazom je Medzera (`mspace`), ktorá pridá medzeru do vzorca. Veľkosť tejto medzery môžete zmeniť úpravou atribútu width.

Ďalšia položka, Znaky (`&xxx;`) umožňuje vkladať znaky, ktoré nie je možné zadať pomocou klávesnice. Funkcia zobrazí dialóg, kde je možné zadať názov alebo číslo znaku (ak napríklad zadáte `alpha,` dostanete grécke písmeno α).

Príkazy InvisibleTimes a ApplyFunction sa používajú na zadanie neviditeľných znakov s takýmto názvom.

Menu XML > Konštrukcie alebo nástrojová lišta dovoľujú zostavovať výsledný matematický vzorec pomocou základných konštrukčných prvkov. Ak sa pokúsite konštrukciu vložiť mimo oblasti určenej na vkladanie vzorca, program Amaya automaticky najprv vytvorí prvok `vzorec`, do ktorého umiestni vybranú konštrukciu. Program obsahuje tieto konštrukcie:

- N-tú odmocninu, `mroot` v jazyku MathML: x + 1 3
- Druhú odmocninu, `msqrt`: x + 1
- Uzatvorenie, `menclose`: 1234
- Zlomok, `mfrac`: 1 x + 1
- Výraz s horným a dolným indexom, `msubsup`: x i + 1 nor ∫0∞
- Výraz s dolným indexom, `msub`: x i
- Výraz s horným indexom, `msup`: x n
- Výraz s dolnou a hornou medzou, `munderover`: ∑ i = 1 n
- Výraz s dolnou medzou, `munder`: x Ż
- Výraz s hornou medzou, `mover`: x → maps to y
- Výraz so zátvorkami, `mrow`: ( a + b )
- Výraz s predpismi a tenzorovými indikátormi, `mmultiscripts`: X i j kl

Menu XML > Matice umožňuje vytvárať a upravovať matice:

- Matica alebo tabuľka, `mtable`: a bcd

Maticu môžete vytvoriť pomocou prvej položky menu alebo príslušným tlačidlom na nástrojovej lište Vzorce. Následne je potrebné v dialógu zadať počet riadkov a stĺpcov, ktoré má matica obsahovať. Ďalej môžete s maticou manipulovať rovnako ako s HTML tabuľkou prostredníctvom menu XML > Matice.

#### Vytváranie matematických konštrukcií za pomoci klávesnice

Na to, aby ste vytvorili nový vzorec alebo ho upravovali, nepotrebujete používať menu ani nástrojovú lištu. Matematické konštrukcie môžete zadávať priamo z klávesnice, pretože každej z konštrukcií prislúcha klávesová skratka. zoznam týchto klávesových skratiek môžete nájsť v menu alebo v zozname klávesových skratiek.

Na pohyb medzi jednotlivými konštrukciami môžete použiť šípky. Ľavou a pravou šípkou môžete presúvať vstupný bod pre novú konštrukciu matematického vzorca. Napríklad v zlomku, keď je kurzor na konci čitateľa, pravou šípkou sa presuniete na začiatok menovateľa.

### Zadávanie znakov do vzorca

Ak zadávate znaky do vzorca, Amaya robí rozbor zadávaného textu a automaticky generuje prvky mo (operátor), mn (číslo), mi (identifikátor) a mtext (text).

Napríklad ak zadáte vzorec x = 2 a + b

1. Ak kurzor nie je vo vnútri matematického vzorca, najprv z menu vyberte XML > Nový vzorec (math).

2. Zadajte nasledujúcich 6 znakov: `x=2a+b`

Zobrazte zdrojový kód pomocou Zobraziť > Zdrojový kód stránky, v ktorom uvidíte ako Amaya automaticky zmenila prvky vzorca:

`<mi>x</mi><mo>=</mo><mn>2</mn><mi>a</mi><mo>+</mo><mi>b</mi>`

Ak výsledok nezodpovedá tomu, čo ste chceli zadať, vyznačte znaky, ktoré program zle rozpoznal a zmeňte ich typ pomocou príkazov text (`mtext`), identifikátor (`mi`), číslo (`mn`), operátor (`mo`) alebo medzera (`mspace`), ktoré nájdete v menu XML > Základné prvky.

### Vkladanie medzier

Amaya sama pridáva medzery do vzorcov, v niektorých prípadoch je však potrebné dodatočne pridať medzery do matematického výrazu. Presuňte kurzor na pozíciu, kde chcete vložiť medzeru a z menu vyberte XML> Základné prvky > Medzera (mspace). Tento príkaz vytvorí medzeru s preddefinovanou veľkosťou, ktorú však môžete zmeniť pomocou atribútu width. Okrem veľkosti tiež môžete upraviť aj ostatné atribúty (height, depth, linebreak), pomocou ktorých môžete zmeniť i vertikálny rozostup. Pre bližšie informácie si pozrite špecifikáciu jazyka MathML.

### Vkladanie zátvoriek

Ak do výrazu chcete vložiť zátvorky ako napríklad v takomto prípade:

f ( x ) = 1 x

Zadanie postupnosti znakov `f(x)= ...` vedie k výrazu:

f ( x ) = 1 x

Napriek tomu radšej vyberte na nástrojovej lište tlačidlo "Zátvorky", pomocou ktorého sa zátvorky správne zadávajú.

### Vkladanie symbolov a špeciálnych znakov

Na vkladanie symbolov a špeciálnych znakov, ktoré sa normálne nedajú vložiť z klávesnice, slúži príkaz Znaky, ktorý nájdete v menu XML > Základné prvky. Typy a mená symbolov a špeciálnych znakov sú definované v špecifikácii jazyka MathML. Miesto mena znaku môžete zadať i jeho číselnú hodnotu v kóde Unicode. Túto hodnotu môžete zadať v desiatkovej sústave v tvare '#kód' alebo v šestnástkovej sústave v tvare '#xkód'. Znak '#' zadáte pomocou kombinácie Ctrl+Alt+x. Pre rýchlejšie vkladanie stačí zadať kód v šestnástkovej sústave bez predpony'#x', ale takéto zadanie môže byť niekedy nejednoznačné (napríklad 'af' môže byť i meno znaku i kód). V prípade nejednoznačnosti bude takéto zadanie rozpoznané ako meno znaku.

Symboly a špeciálne znaky môžete tiež zadávať pomocou nástrojovej lišty Špeciálne znaky. Stlačením tlačidla na tejto lište vyberiete skupinu znakov, z ktorých si potom môžete vybrať konkrétny znak pomocou rozbaľovacieho poľa. Ak ste si vybrali znak, do dokumentu ho vložíte kliknutím na tlačidlo Vložiť.

### Zmena štruktúry vo výrazoch

Ak chcete zmeniť štruktúru existujúcich výrazov, môžete napríklad pridať horný index, doplniť zátvorky, či premiestniť výraz do čitateľa zlomku. Takéto operácie môžete vykonať vybraním príslušných konštrukcií z nástrojovej lišty alebo menu XML > Konštrukcie.

Môžete tiež použiť menu Úpravy > Transformovať. Vyznačte výraz, ktorý chcete zmeniť a príkaz Transformovať zobrazí zoznam všetkých možných výrazov, na ktoré sa zadaný výraz dá zmeniť.

### Zobrazenie štruktúry MathML

Štruktúru dokumentu MathML môžete zobraziť vybraním položky menu Zobraziť > Štruktúru. Po tomto výbere sa vytvorí zobrazenie, v ktorom uvidíte prehľadne usporiadané jednotlivé prvky dokumentu a tiež ich obsah.

Matematické výrazy môžete upravovať v normálnom zobrazení i pri zobrazení štruktúry.

Zobrazenie štruktúry je užitočné najmä ak sa chcete vyhnúť nejednoznačnému zápisu. Napríklad pri písaní rovnice, ktorá je nižšie, ak umiestnite kurzor za písmeno b, nie je jednoznačné či chcete dopísať niečo k identifikátoru b alebo k operátoru +.

x = a + b + 1

Vybraním zobrazenia štruktúry (alebo overením v tomto zobrazení) predídete takýmto nepresnostiam. Umiestnenie prvku v štruktúre tiež môžete skontrolovať v stavovom riadku v spodnej časti okna.

### Odkazy v MathML

V matematických výrazoch môžete vytvára a používať odkazy. Tieto odkazy sa vytvárajú pomocou jazyka XML Linking Language (XLink). Program Amaya umožňuje vytvárať jednoduché jednosmerné hypertextové odkazy spojené s ľubovoľnou časťou vzorca. Ak napríklad urobíte dvojklik na zlomku v nasledujúcom vzorci, budete presmerovaný na domovskú stránku konzorcia W3C:

y = 1 x 2 + 1

Ak chcete vytvoriť odkaz, prepnite sa na zobrazenie štruktúry, vyberte čas matematického vzorca (my sme v príklade vyššie vybrali zlomok), kliknite na tlačidlo Hypertextový odkaz na nástrojovej lište XHTML (alebo vyberte položku menu Prepojenie > Vytvoriť alebo zmeniť odkaz...), a dialógu zadajte URI adresu odkazu.

Ak chcete vzorec alebo jeho časť použiť ako záložku (miesto, na ktoré sa dá odkázať), označte výraz a z menu vyberte položku Prepojenie > Vytvoriť záložku. Tento príkaz vytvorí atribút `id`, v ktorom môžete zmeniť meno záložky, ktoré program Amaya vygeneroval.

### Kompatibilita s prehliadačmi Firefox a IE

Aby sa vzorec správne zobrazil, je potrebné, aby mal dokument obsahujúci vzorec príponu `.xml`, to zaručí, že XHTML dokument bude spracovaný ako XML formát. Bez prípony niektoré prehliadače nezobrazia matematické vzorce správne.

Odporúčame tie použiť znakovú sadu utf-8 pre všetky XML dokumenty.

Program Amaya je prednastavený tak, aby pridal XHTML 1.1 a MathML 2.0 doctype prvok na začiatok dokumentu. Prvok doctype nie je povinný, ale je užitočný

- pre overenie správnosti zápisu dokumentu,
- pre generovanie alfanumerických entít (ako &int;) pre matematické symboly v zdrojovom kóde dokumentu. V opačnom prípade sú matematické značky kódované ako normálne znaky kódu unicode.

Bohužiaľ takýto typ dokumentu nie je podporovaný väčšinou prehliadačov, preto je niekedy potrebné odstrániť prvok doctype pomocou príkazu Súbor > Zmeniť Doctype >Odstrániť doctype.

Prehliadač Internet Explorer nepodporuje jazyk MathML. Používa transformačný štýl `pmathml.xsl` a plugin na zobrazenie MathML kódov zapúzdrených v XHTML dokumentoch. Program Amaya automaticky pridá odkaz na tento transformačný štýl (po odstránení doctype), ale nesmiete zabudnúť súbor s týmto štýlom (pmathml.xsl) uložiť do rovnakého priečinka, v akom je uložený dokument. Okrem tohto súboru je potrebné nahrať i ďalšie nástroje (mathml.xsl, ctop.xsl a pmathmlcss.xsl), ktoré nájdete na stránke pridávanie vzorcov na web pomocou MathMl spolu s podrobným popisom.

Prehliadač Mozilla Firefox a všetky ostatné prehliadače postavené na jadre Gecko, podporujú jazyk MathML natívne. Pre správne zobrazenie vzorcov v prehliadači Mozilla Firefox je však potrebné stiahnuť fonty zo stránky Fonty pre MathML.

Prehliadač Opera jazyk MathML nepodporuje.

### Známe problémy s jazykom MathML

Problémy programu Amaya s jazykom MathML sú nasledujúce:

- V programe Amaya sú implementované iba prezentačné tagy jazyka MathML 2.0, tagy Content Markup nie sú podporované. Všetky prezentačné prvky a atribúty sú prístupné, ale len nasledujúce sa zobrazujú:

  `display, alttext, mathvariant, mathsize, mathcolor, mathbackground, fontsize, fontweight, fontstyle, fontfamily, color, linethickness, numalign, denomalign, bevelled, notation, lquote, rquote, lspace, rspace, largeop, movablelimits, subscriptshift, superscriptshift, form, width`(iba pri mspace), `height` (iba pri mspace), `depth` (iba pri mspace), `align, rowalign, columnalign, frame, framespacing, displaystyle, side, rowspan, columnspan, rowspacing, columnspacing, rowlines, columnlines`.

- Atribúty `class`, `id`, a `style` sú prístupné s rovnakou sémantikou ako v jazyku HTML: Pomocou pravidiel jazyka CSS môžete prvkom jazyka MathML priradiť vzhľad (atribútmi `class` a `style`) a môžete ich zadefinovať i ako záložku pre hypertextové odkazy(`atribútom id`).