Syntaxe závorek a práce s nimi v modulu Math

obecna.png Každý začínající i pokročilejší uživatel modulu Math programu OpenOffice.org by se měl co nejdříve seznámit se způsobem, jak se v něm píší závorky. Závorky totiž při psaní vzorců hrají velkou roli, ať už funkční z hlediska syntaxe, anebo prostě významovou.  

V článku si ukážeme, jak těchto specifik využít, abyste poznali, že jejich používání se řídí jasně danými pravidly a že jejich dodržování je nejen žádoucí, ale umožní vám přidat do Mathu funkcionalitu, která například v Editoru rovnic v Microsoft Office není.

Image

Na výše uvedeném příkladu vidíte reálný vzorec přejatý z jisté matematické příručky (týká se výpočtu obsahu části plochy prostřednictvím určitého integrálu). Po přečtení tohoto článku byste měli být s to takové vzorce psát bez nahlížení do nápovědy a připomínání si pravidel, jen s využitím vlastní hlavy a nabytých poznatků. Kód pro tento vzorec je:

alignl size *1,5 {
S`=`color blue {int from -4 to 4 lline f(x)rline "d"x}`=`}
newline
size *1,5 {"   " =`
color red {left lline int from -4 to -3 f(x)"d"x right rline}`+`
color green {int from -3 to 0 f(x)"d"x}`+`
color magenta left lline int from 0 to 4 f(x)"d"x right rline
}

Typy závorek

Math umožňuje vytvářet nejrůznější typy závorek – stačí v panelu Prvky vzorce navolit sekci Závorky, respektive využít kontextové nabídky v editačním okně, a sice položku Závorky. Dá se říci, že většinou budete používat pouze čtyři typy závorek:

  • kulaté závorky (,)… jejich syntaxe je obvyklá, najdete je na klávesnici, stačí je napsat,
  • složené závorky {,}… doporučuji využívat pravý [Alt] v kombinaci s písmeny b, respektive n; v Mathu mají tyto závorky specifický význam, oddělují se jimi jednotlivé výrazy; závorky se nezobrazují, pokud je zapíšete jako znaky; případně lze použít výraz brace opatřený ještě umístěním, takže lbrace pro levou závorku a rbrace pro pravou a v takovém případě se závorky zobrazují
  • hranaté závorky [,]… nemají specifický význam, jsou to typické závorky, na které jsme zvyklí ze školy, píší se prostřednictvím pravého [Alt] s písmeny f, g,
  • jednoduché čáry |,|, které využijete např. v případě absolutních hodnot, se píší výrazem line, takže máme lline a rline,
  • ve středoškolské matematice se ještě setkáte se špičatými závorkami 〈,〉, např. při množinových zápisech, zde je možno použít kód angle, tedy langle a rangle.

Pravidla pro psaní závorek

Je důležité si uvědomit, že závorky tvoří kompaktní, celistvý celek. Není možné psát závorky osamoceně, např. (. Na druhé straně výrazu musí být závorka opačná a téhož druhu, tzn. ). Není je tedy možné kombinovat.

Skutečně?

Math naštěstí umožňuje dělat se závorkami hotové divy. Podívejte se na následující zápis (i když je významově nesmyslem):

Image

Jeho syntaxe je velmi jednoduchá:

sin(x)`=`
x`+`left(dx over x right )`+`
left (a over b`+`3c \)right none

Pojďme si ji rozebrat:

Na levé straně stojí samotné sin(x) – závorka nemusí být ohraničena mezerami, protože výraz sin je funkce a Math jej tak také chápe (to znamená, že mění jeho řez na stojatý). Následuje podivný znak `. Co znamená a jak se tvoří? Kdybyste použili panel Prvky vzorce pro psaní výrazů, zjistili byste záhy dvě věci: Jednak je to otravně pomalé a jednak znaky operátorů jsou velmi nepřirozeně blízko k dalším znakům. Vypadá to, že Math nepřidává povinnou mezeru mezi například „+“ a další znak. Srovnejte „a+b=c” a „a + b = c”. Jistě potvrdíte, že druhý příklad se čte snáze (od toho typografické zásady jsou :-)). Takže je třeba buď dodatečně (pokud využíváte panel Prvky vzorce), či při psaní mezeru dopisovat. Používá se k tomu zkratka [Alt + 96].

Všimněte si, že například značka proměnné je vysázena italikou (pozn. red. skloněným písmem), ale například číslice již ne. Tak to je podle typografických pravidel také správně. Číslice, názvy funkcí, závorky, operátory se vždy sází stojatě, ale proměnné ležatě. Sporné je to u diferenciálu, zde je naležato; v předchozím případě byl stojatě. Stojatosti docílíte tak, že znak dáte do uvozovek. V Mathu se používají nikoliv typografické „“ (uvozovky), známé jako „devítky dole, šestky nahoře“, ale programátorské "," (uvozovky). Na to je třeba myslet.

Pokud byste například ve Writeru napsali kód a zkopírovali ho do Mathu, pak pokud bude obsahovat uvozovky, ty se zobrazí jako české uvozovky, jak je znáte. Uvozovky v Mathu mají ten význam, že takto vymezený text považuje Math skutečně za text, nikoliv součást vzorce, a tím tak můžete například vyřešit psaní samostatně stojících závorek – pokud totiž napíšete „)“, máte po problému a program vás nebude upozorňovat na chybu (protože čeká ještě opačnou závorku téhož druhu). Chcete-li v Mathu napsat klasické typografické uvozovky, uděláte to přes zkratku [Alt + 0132] a [Alt + 0147]. Programátorské uvozovky v Mathu vyrobíte jedině přes panel Katalog. Obyčejně se píší jako [ALT+0034].

Všimněte si dále, že první zlomek je obklopen závorkami, které se ale zvětšují. Mají tedy velikost – výšku – větší, než jak tomu je u normálně stojících závorek. Byl jim totiž přidán parametr left, right. Tím se docílí efektu zvětšujících se závorek a můžete jej použít na jakýkoliv jejich druh. Jenže jakmile jej použijete na jedné straně, musíte jej použít i na straně druhé, jinak program zahlásí chybu. A tento problém řeší poslední výraz. Všimněte si, že úplně posledním parametrem je „right none“. To znamená, že pravá závorka chybí. Myslí se tím pravá zvětšující se kulatá závorka. Namísto ní je použita kulatá obyčejná pravá závorka. Jenže když ji napíšete jako ), program opět zahlásí chybu, protože očekává začínající, tzn. pravou závorku ( na druhé straně. Aby bylo vše v pořádku, můžete udělat dvě věci:

  • Závorku napsat do uvozovek, jak již bylo popsáno.
  • Před znak závorky dáte zpětné lomítko – \. Jakmile napíšete před závorku tento znak, můžete ji nechat zcela samostatně, volně a můžete ji umístit kamkoliv.

Vidíte, že výraz „3c“ není obklopen mezerou. Co to má za následek? Písmeno „c“ je psáno stojatě. Na to je třeba dávat si pozor. Podívejte se na následující příklad:

Image

Tato krátká rovnice má kód:

bold c (a`+`b)`=`bold ca`+`bold c b

Co z toho vyčteme? Parametr bold, který má za následek ztučnění písma, byl použit na písmeno „c“. I kdyby bylo „c“ přiřazeno k závorce bez mezery, zůstane závorka i její obsah beze změny, protože tato závorka „přebije“ sílu parametru bold. Aby se ztučnila i závorka se svým obsahem, museli bychom napsat:

bold {c (a`+`b)},

Nicméně pozor: Ztučňovat znaménko není zrovna nejlepší nápad. Za rovnítkem je pak stejný parametr použit na dvojici písmen „ca“, čímž došlo ke ztučnění „c“ i „a“. Kdežto v posledním členu je mezi „c“ a „b“ mezera, která způsobila, že se parametr bold přenesl jen na „c“.

Toto je trochu podobný případ:

Image

Jeho syntaxe je následující:

bold a sup 0`=`1 over abs bold a bold a

Možná trochu matoucí je, že „0“ v horním indexu je také ztučněná. Je to proto, že indexy přebírají parametry po základních znacích. Dávejte si tedy na tohle pozor, abyste nepsali kurzívou číslice a podobně – opakuji, ty nikdy nejsou kurzívou, ani v indexech ne.

Pokud byste tedy chtěli napsat předchozí příklad správně, museli byste si opět vypomoci závorkami:

Image

{bold a} sup 0`=`1 over abs bold a bold a

Výše uvedený příklad lze ještě rozšířit takto:

Image

{bold a} sup {a sup n}`=`1 over abs bold a bold a

Chcete-li tedy udělat například horní index hornímu indexu, nemůžete jej psát jako sup a sup a, ale musíte obsah druhého indexu dát do závorek.

Pokud se vám tento vzorec zdá větší než předchozí, vidíte správně. Je tomu tak proto, že všechny znaky mají dvojnásobnou velikost pomocí parametru size. Úplný kód pro tento vzorec tedy je:

size *2 {
{bold a} sup {a sup n}`=`1 over abs bold a bold a
}

Znaky jsou zvětšené, abyste dobře viděli i druhý index.

Vidíte, že závorky slouží k tomu, abyste přesně vymezili, na jaké znaky se dané parametry použijí. U výrazů, které mají těsně přiléhající znaky, to není problém (vynechá se mezera mezi nimi v zápisu), ale u složených výrazů to problém je. Tehdy přistupují ke slovu závorky.

Je třeba dávat pozor i na to, že pokud použijete řádkování (parametr newline), musíte před něj a za něj umístit závorky nanovo.

Horší to je v případě, že chcete rozdělit obsah závorky – to znamená, část obsahu závorky přesunout na jiný řádek. Nicméně to by neměl být problém. Stačí zadat namísto očekávané pravé závorky příkaz right none a nový řádek začít příkazem left none. Samozřejmě musíte i u levé první a pravé spodní závorky použít parametr left, respektive right, čímž dojde k tomu, že se stanou většími (velikost se vyrovná podle obsahu závorky). Pokud tomu chcete zamezit, je na to již uvedený trik: Levou horní závorku dejte do uvozovek, vynechte příkaz right na prvním řádku vpravo a na druhém řádku vynechte parametr left a pravou závorku opět dejte do uvozovek. Ukažme si to na následujícím příkladě.

Image

x`=`"(" dx over x`+ ""
newline
"  "+`k")"

Uvozovky za znaménkem „+“ na konci prvního řádku jsou umístěny proto, že Math očekává za tímto znaménkem nějaký znak (pakliže se nachází takto osamoceně na konci řádku), který tu ale chybí. Vypomoci si můžete např. tak, že tam vložíte prázdný znak – {}, případně "". Také si můžete vypomoci příkazem phantom a přiřadit za něj jakýkoliv znak.

Výše uvedený příklad porovnejte s následujícím; je to totéž, akorát se zvětšující se závorkou.

Image

x`=`left( dx over x`+ "" right none
newline 
"  "left none +`k over x right)

Nyní tedy nadešel čas pokusit se zdolat příklad, který byl v úvodu tohoto článku a který byste nyní již měli být s to dešifrovat.

Image

alignl size *1,5 {
S`=`color blue {int from -4 to 4 lline f(x)rline "d"x}`=`}
newline
size *1,5 {"   " =`
color red {left lline int from -4 to -3 f(x)"d"x right rline}`+`
color green {int from -3 to 0 f(x)"d"x}`+`
color magenta left lline int from 0 to 4 f(x)"d"x right rline
}

Rozeberme si vzorec člen po členu. Příkaz alignl značí zarovnání vzorce doleva. Parametr size jsme již vysvětlovali, zde se velikost zvětšuje o padesát procent. Velikost písma se zmenšuje parametrem size /. Zvětšen je celý výraz až po příkaz newline, který znamená odsun na další řádek. Protože se příkaz pro zarovnání i velikost vztahuje na celý tento první řádek, je ohraničen závorkami. Dále máme klasické kulaté závorky, pak závorky typu jednoduché čáry, máme tu i diferenciál obklopený uvozovkami (aby se mu dodalo stojatého vzhledu), ale nemusí být. (Stejnou funkci má parametr italic.) Parametr color obarvuje text, na výběr máte možnosti yellow, green, magenta, cyan, red, green, blue, tedy základní barvy CMYKového a RGB barevného režimu.

Na novém řádku musíte opět nadefinovat velikost písma, pak je s pomocí uvozovek a mezer počátek nového řádku odsunut a zbytek by měl být již jasný.

CMYK: Základní barvy, které se na povrchu odráží. Používá se např. v barevné tiskárně. (C: cyan – azurová; M: magenta – purpurová; Y: yellow – žlutá; K: black nebo také key, tj. klíčová – černá.) Součet těchto barev dává černou.

RGB: Základní barvy, které zařízení vyzařuje. Používá se např. v monitorech nebo projektorech (R: red – červená; G: green – zelená; B: blue – modrá.) Součet těchto barev dává bílou.

(Jako ve škole) Průměr: 2.00 | Hodnotilo: 9
 

Komentáře

user avatar Pushkin
Odpovědět
Syntaxe závorek a práce s nimi v modulu Math
18. 02. 2011, 08:25:28
Pro začátačníka určitě poučné, ale místy zbytečně komplikované - například místo dlouhé kombinace "lline f(x) rline" lze jednoduše napsat "abs{f(x)}". Stejně tak lze místo "sup" a "sub" používat znaky "^" (na Linuxu pravý alt+m, na Windows tuším alt+94) a "_" - lze tak nahradit kontrukci "{bold a} sup {a sup n}" kratším "{bold a}^{a^n}".
user avatar PetrV
Odpovědět
Syntaxe závorek a práce s nimi v modulu Math
18. 02. 2011, 16:11:22
Z pedagogických důvodů jsem uvedl tu podobu, jakou jsem uvedl. A popravdě jsem si zvykl psát sub a sup, je to rychlejší než _ a ^. A víte, proč? Musel bych si pamatovat, jak napsat ^. Pokud zpracováváte desítky a desítky vzorců, pak stojíte o každé zjednodušení.
user avatar Pushkin
Odpovědět
Re:Syntaxe závorek a práce s nimi v modulu Math
19. 02. 2011, 13:14:03
Samozřejmě výsledný text e vždy závislý na zvycích autora, jen mi připadlo vhodné tuto vlastnost Mathu zmínit. Zvláště pro uživatele Octave je totiž velmi příjemná, neboť lze uplatnit stejnou syntaxi v popiscích grafů v Octave i ve vzorcích v OpenOffice.
user avatar PetrV
Odpovědět
Re:Re:Syntaxe závorek a práce s nimi v modulu Math
19. 02. 2011, 13:39:09
Jo, máte pravdu, přemýšlel jsem, zda to tam dát či ne... pak zvítězila střídmost, protože bych to zbytečně udělal komplikovanější. A myslím si, že čtenář, který získá představu o tom, jak Math funguje, je s to zapojit rozum a mozek a ledacos si pak najít v nápovědě. Tyhle články jsou vždycky určeny jako startovací pro ty, kteří jsou zmateni a nevědí, jak s tím či oním naložit.
Octave jsem až dosud neznal, takže to je zajímavá připomínka.

Přidat názor

 

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích najdete v nápovědě. Diskuzi můžete sledovat pomocí RSS kanálu.

 
Petr Valach

Petr Valach

Redaktor & editor OpenOffice.cz a LinuxEXPRES.cz. Správce sociálních médií těchto redakcí. Člen nadace The Document Foundation. Ve svém volnu se věnuje popularizaci vědy a fotografování.

 
 
 
woo jaw demo hz