Hlavní navigace

Specifikace MathML 3.0: výpočty „pod sebe“

Martin Smola

Jak lze zapisovat tzv. „dvojrozměrné“, „dvoudimensionální“ či „elementární“ matematické zápisy pomocí specifikace MathML 3.0? Pojďme se podívat na to, jak se sčítá, odečítá, násobí nebo dělí pod sebe a naučme se spoustu nových vlastností a tagů, které můžeme využít i v jiných oblastech zápisu matematiky.

Vítejte u dnešního dílu o specifikaci MathML 3.0. Vysvětlíme si zápis sčítání, odečítání, násobení a dělení „pod sebe“. Tato část specifikace má svoje vlastní tagy, které si postupně rozebereme a uvedeme si několik příkladů od každé početní operace.

Hlavním tagem, definujícím tyto matematické operace, které specifikace popisuje jako dvojrozměrný matematický zápis výpočtu, je <mstack></mstack>. V překladu něco jako matematická/ý „hromada“, „stoh“… Do těchto tagů zapisujeme vše, co se má zobrazovat jako „dvojrozměrný“ zápis.

Jeden z podstatných tagů pro zápis tohoto druhu početních operací je horizontální čára, kterou lze využít nejen zde, ale i například v zápisu soustav rovnic. Zapisujeme ji nepárovým tagem <msline/> „Math Stack Line“.

Jednotlivé řádky následně obalujeme do tagů <msrow></msrow>, „Math Stack Row“.

Ostatní čísla a operátory, zapisujeme stejně, jako v ostatních oblastech MathML 3.0. Tedy <mn> 478 </mn> „Math Number“ a <mo> + </mo> „Math Operator“.

Pro zajímavost si uvedeme ještě nepárový tag <none/>, který nám vytvoří prázdný znak.

Bohužel jsme se pomalu prokousali k části MathML, kterou ještě žádný velký prohlížeč nepodporuje, avšak na podpoře se pracuje a s budoucími verzemi prohlížečů bude jistě specifikace plně podporována.

Sčítání a odečítání

Součet a rozdíl pod sebe vytvoříme tedy následovně:

  <math xmlns="http://www.w3.org/1998/Math/MathML">
      <mstack> <!-- Tag obalující celý zápis -->
        <mn>251</mn> <!-- Horní číslo, není v <msrow></msrow> -->
        <msrow> <mo>+</mo> <none/> <mn>48</mn> </msrow> <!-- Ostatní řádky kromě první a poslední s výsledkem, obalujeme do <msrow></msrow> -->
        <msline/> <!-- Horizontální čára, oddělující výpočet od výsledku -->
        <mn>299</mn> <!-- Výsledek pod čarou  -->
      </mstack> <!-- uzavření dvourozměrného zápisu -->
  </math>

Asi není třeba zvlášť vysvětlovat odečítání, které má stejný zápis, jen změníme znaménko:

Násobení

Další šikovný tag je <msgroup></msgroup>. „Math Stack Group“ je skupina odřádkovaných čísel, kterým lze nastavit, o kolik se další řádka odsadí od předchozí. To využijeme především u násobení a dělení. Zápis poté vypadá takto:

<math xmlns="http://www.w3.org/1998/Math/MathML">
<mstack>
  <msgroup>
    <mn>123</mn>
    <msrow><mo>&#xD7;<!-- Znak násobení --></mo><mn>321</mn></msrow>
  </msgroup>
  <msline/> <!-- první horizontální čára -->
  <msgroup shift="1"> <!-- odsazení jednotlivých řádků -->
    <mn>123</mn>
    <mn>246</mn>
    <mn>369</mn>
  </msgroup>
  <msline/> <!-- druhá horizontální čára -->
</math>

Dělení

U dělení pod sebe používáme stejných triků jako u násobení jen u tagu <msgroup> nastavíme hodnotu shift=„-1“. Řádky se nám tedy budou odsazovat o jeden znak směrem doprava. (Opačně jak u násobení s hodnotou shift=„1“.) Tag <msgroup> použijeme v tomto případě na odsazování dvojic, které budou tvořeny vnořenými <msgroup> s defaultním shift=„0“. Pro <msline/> použijeme atribut length=„2“, tedy horizontální čára přes dva znaky.

Výsledek poté vypadá následovně:

<math xmlns="http://www.w3.org/1998/Math/MathML">
<mstack>
  <msgroup>
    <mn>1306</mn>
    <msrow><mo>:</mo><mn>3</mn><mo>=</mo><mn>435,3</mn></msrow>
  </msgroup>
  </msgroup shift="1">
        <msgroup>
             <mn>12</mn>
             <msline length="2"/>
        </msgroup>
        <msgroup>
             <mn>10</mn>
             <mn>9</mn>
             <msline length="2"/>
        </msgroup>
        <msgroup>
             <mn>16</mn>
             <mn>15</mn>
             <msline length="2"/>
        </msgroup>
        <msgroup>
             <mn>1</mn>
             <mn>9</mn>
             <msline length="2"/>
        </msgroup>
        <msgroup>
             <mn>1</mn>
        </msgroup>
    </msgroup>
</math>

Naučili jsme se opět mnoho nového ohledně specifikace MathML 3.0. Doufám, že bude tímto článkem rozšířeno povědomí o těchto vlastnostech specifikace a tím i přispěno k její budoucí podpoře v prohlížečích. Tímto bych ukončil dnešní díl a těšte se na příští týden.

Našli jste v článku chybu?
120na80.cz: 5 nejčastějších mýtů o kondomech

5 nejčastějších mýtů o kondomech

Podnikatel.cz: Změny v cestovních náhradách 2017

Změny v cestovních náhradách 2017

Lupa.cz: Kdo pochopí vtip, může jít do ČT vyvíjet weby

Kdo pochopí vtip, může jít do ČT vyvíjet weby

Vitalia.cz: Jmenuje se Janina a žije bez cukru

Jmenuje se Janina a žije bez cukru

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

120na80.cz: Co všechno ovlivňuje ženskou plodnost?

Co všechno ovlivňuje ženskou plodnost?

Podnikatel.cz: Udávání a účtenková loterie, hloupá komedie

Udávání a účtenková loterie, hloupá komedie

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

Vitalia.cz: Proč vás každý zubař posílá na dentální hygienu

Proč vás každý zubař posílá na dentální hygienu

Podnikatel.cz: Chaos u EET pokračuje. Jsou tu další návrhy

Chaos u EET pokračuje. Jsou tu další návrhy

Měšec.cz: Jak levně odeslat balík přímo z domu?

Jak levně odeslat balík přímo z domu?

Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

Podnikatel.cz: Snížení DPH na 15 % se netýká všech

Snížení DPH na 15 % se netýká všech

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

Vitalia.cz: Spor o mortadelu: podle Lidlu falšovaná nebyla

Spor o mortadelu: podle Lidlu falšovaná nebyla

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?

120na80.cz: Horní cesty dýchací. Zkuste fytofarmaka

Horní cesty dýchací. Zkuste fytofarmaka