ˇ ´ UNIVERZITA V OPAVE SLEZSKA Filozoficko-prˇ´ırodove ˇ decka ´ fakulta ´ stav informatiky U
´ PRA ´ CE DIPLOMOVA
Michal Blazˇek
2006 Opava
´ UNIVERZITA V OPAVE ˇ SLEZSKA Filozoficko-prˇ´ırodoveˇdecka´ fakulta ´ stav informatiky U
Michal Blazˇek ´R ´ DIPLOMOVA ´ PRA ´ CE ˇ SKA BAKALA
Grafika v LATEXu Vedoucı´ diplomove´ pra´ce: ˇ a´rka Vavrecˇkova´ Mgr. S
Opava 2006
´S ˇ ENI´ PROHLA Prohlasˇuji, zˇe jsem tuto diplomovou pra´ci vypracoval samostatneˇ a pouzˇil pouze uvedene´ zdroje a literaturu.
V Opaveˇ, 28. dubna 2006
.......................................... Michal Blazˇek
´ NI´ ˇ KOVA PODE ˇ a´rce Vavrecˇkove´ za cenne´ rady a prˇipomı´nky prˇi tvorbeˇ Chteˇl bych podeˇkovat Mgr. S te´to diplomove´ pra´ce.
Obsah ´ vod 1 U
2
2 Druhy grafiky
3
3 Sazba obra´zku˚ do dokumentu
5
3.1 Forma´ty podporovany´ch externı´ch obra´zku ˚ . . . . . . . . . . . . . . . .
5
3.2 Plovoucı´ prostrˇedı´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
3.3 Obte´ka´nı´ obra´zku ˚ textem . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
4 Vytva´ˇrenı´ jednoduche´ vektorove´ grafiky pomocı´ LATEXu
10
4.1 Prostrˇedı´ picture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 4.1.1 Objekty, ktere´ je mozˇne´ vlozˇit na kreslicı´ plochu . . . . . . . . . 11 4.1.2 Nastavenı´ vlastnostı´ jednotlivy´ch objektu ˚ . . . . . . . . . . . . . . 16 4.2 Balı´cˇky rozsˇirˇujı´cı´ mozˇnosti prostrˇedı´ picture . . . . . . . . . . . . . . 17 5 Balı´c ˇky LATEXu pro pra´ci s grafikou
20
5.1 Balı´cˇek graphics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 5.2 Balı´cˇek graphicx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 5.3 Balı´cˇek color
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.4 Balı´cˇek pstricks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 6 Tvorba prezentacı´ v LATEXu
31
7 Externı´ graficke´ na´stroje
37
8 Za´ve ˇr
39
A Zdrojove´ ko ´ dy snı´mku˚ uvedeny ´ ch v kapitole 6
40
1
´ vod 1 U Tato pra´ce se zaby´va´ mozˇnostmi sa´zecı´ho syste´mu LATEX v oblasti grafiky. LATEX byl pu ˚ vodneˇ urcˇen hlavneˇ pro sazbu textu a matematiky. V dnesˇnı´ dobeˇ vsˇak jizˇ existuje neˇkolik rˇesˇenı´, jak s jeho pomocı´ vytva´rˇet dokumenty s obra´zky. Cı´lem pra´ce bylo vytvorˇit komplexnı´ prˇ´ırucˇku, ktera´ cˇtena´rˇe s teˇmito rˇesˇenı´mi sezna´mı´, jelikozˇ informace o dane´m te´matu sice existujı´, ale jsou obvykle roztrousˇeny v mnoha publikacı´ch. Tyto publikace se veˇtsˇinou grafice v LATEXu veˇnujı´ jen okrajoveˇ a navı´c jsou cˇasto v anglicˇtineˇ. V prvnı´ cˇa´sti te´to prˇ´ırucˇky jsou popsa´ny za´kladnı´ dva druhy dnesˇnı´ pocˇ´ıtacˇove´ grafiky – rastrova´ a vektorova´ grafika, mozˇnosti jejich vyuzˇitı´, jejich vy´hody, nevy´hody a rozdı´ly mezi nimi. Dalsˇ´ı cˇa´st pojedna´va´ o mozˇny´ch zpu ˚ sobech vkla´da´nı´ obra´zku ˚ do LATEXove´ho dokumentu. Je zde rovneˇzˇ popsa´na za´vislost forma´tu vkla´da´ny´ch obra´zku ˚ na typu vy´stupnı´ho dokumentu, tj. .dvi, .ps nebo .pdf. LATEX sa´m umı´ vykreslovat jednoduchou vektorovou grafiku. Lze ji vytva´rˇet uvnitrˇ prostrˇedı´ picture. Jeho popisem se zaby´va´m ve cˇtvrte´ kapitole te´to pra´ce. Pokud chceme do dokumentu vlozˇit neˇjaky´ externı´ obra´zek, mu ˚ zˇeme k tomu pouzˇ´ıt neˇktere´ho z podpu ˚ rny´ch balı´cˇku ˚ LATEXu pro pra´ci s grafikou. Pa´ta´ kapitola popisuje trˇi z nich, a to balı´cˇky graphics, graphicx a pstricks. Da´le je zde popsa´n i balı´cˇek color, ktery´ sice nenı´ prˇ´ımo „graficky´m“ balı´cˇkem, ale sve´ mı´sto zde ma´, jelikozˇ umozˇn ˇ uje pra´ci s barvami. Dalsˇ´ı oblastı´, kterou se tato pra´ce zaby´va´, je v dnesˇnı´ dobeˇ docela potrˇebna´ tvorba prezentacı´. LATEX ma´ pro ni vytvorˇeny ru ˚ zne´ trˇ´ıdy dokumentu ˚ (naprˇ. slides), resp. prˇ´ıdavne´ balı´cˇky (pdfslide apod.), ktere´ umozˇn ˇ ujı´ vytva´rˇet prezentace na velmi vysoke´ u ´ rovni. V poslednı´ kapitole popisuji neˇktere´ z externı´ch na´stroju ˚ , ktere´ se pouzˇ´ıvajı´ pro vytva´rˇenı´ ru ˚ zny´ch graficky´ch objektu ˚ , jezˇ pak mu ˚ zˇeme vkla´dat do LATEXove´ho dokumentu. Nejcˇasteˇji se jedna´ o jednoduche´ na´stroje pro tvorbu grafu ˚ , fontu ˚ atd. Pouzˇitı´ jednotlivy´ch prˇ´ıkazu ˚ a na´stroju ˚ je zde ilustrova´no na´zorny´mi prˇ´ıklady pro co nejlepsˇ´ı pochopenı´ dane´ problematiky. Obvykle se prˇ´ıklady skla´dajı´ ze dvou cˇa´stı´. V prvnı´ cˇa´sti je napsa´n zdrojovy´ text LATEXu a v druhe´ cˇa´sti je uka´za´no, jak LATEX tento zdrojovy´ text interpretuje (tj. co bude vysa´zeno ve vy´stupnı´m dokumentu). 2
2 Druhy grafiky Drˇ´ıve, nezˇ budeme popisovat mozˇnosti syste´mu LATEX prˇi pra´ci s grafikou, popı´sˇeme si strucˇneˇ druhy pocˇ´ıtacˇove´ grafiky, se ktery´mi se dnes mu ˚ zˇeme nejcˇasteˇji setkat. Jsou jimi rastrova´ a vektorova´ grafika.
Rastrova´ grafika Tento druh grafiky se take´ oznacˇuje jako bitmapova´ nebo bodova´ grafika. Obra´zek je tvorˇen jemnou sı´tı´ bodu ˚ , tzv. rastrem. Kazˇdy´ takovy´ bod ma´ svou barvu a pozici. Prˇi urcˇite´m mnozˇstvı´ bodu ˚ a velke´ jemnosti bitmapy pak body vytva´rˇejı´ zda´nı´ jednolite´ho obrazu. Princip rastrove´ grafiky je velmi jednoduchy´ a u ´ cˇinny´, proto nacha´zı´ sˇiroke´ uplatneˇnı´ v mnoha oborech, naprˇ. v oblasti digita´lnı´ fotografie, tvorby webovy´ch stra´nek atd. Pro vytva´rˇenı´, u ´ pravu a prohlı´zˇenı´ bitmapovy´ch obra´zku ˚ existuje mnoho na´stroju ˚ (naprˇ. Adobe Photoshop). Nejcˇasteˇjsˇ´ımi forma´ty pro rastrovou grafiku jsou .bmp, .gif a .jpg. Bodova´ grafika ma´ vsˇak i sve´ nevy´hody. Mezi ty za´kladnı´ patrˇ´ı jejı´ velka´ prostorova´ na´rocˇnost. Je trˇeba mı´t ulozˇeny informace o kazˇde´m bodeˇ obra´zku (pozici, barvu, prˇ´ıp. informace o pru ˚ hlednosti). Obra´zek pak mu ˚ zˇe zabı´rat neˇkolik megabajtu ˚ . Tento proble´m cˇa´stecˇneˇ rˇesˇ´ı ru ˚ zne´ metody komprese rastrove´ grafiky. Asi nejzna´meˇjsˇ´ı je metoda JPEG. Dalsˇ´ım proble´mem rastrove´ grafiky je vy´razne´ snizˇova´nı´ kvality obra´zku prˇi jeho zveˇtsˇova´nı´. Zveˇtsˇujı´ se totizˇ samotne´ body a rastr ztra´cı´ svou jemnost. LATEX rastrove´ obra´zky vytva´rˇet sice neumı´, ale umozˇn ˇ uje jejich vkla´da´nı´.
Vektorova´ grafika Narozdı´l od rastrove´ grafiky nenı´ vektorova´ grafika zalozˇena na principu tvorˇenı´ obrazu z jednotlivy´ch bodu ˚ . Cely´ obra´zek se skla´da´ z ru ˚ zny´ch matematicky definovatelny´ch objektu ˚ (kruzˇnice, obde´lnı´ky atd.) Ty jsou popsa´ny pomocı´ vektoru ˚ , cozˇ jsou v tomto pojetı´ krˇivky spojujı´cı´ tzv. kotevnı´ body. Kazˇda´ takova´ krˇivka mu ˚ zˇe ne´st informace o sve´ barveˇ, barveˇ sve´ vy´plneˇ, pru ˚ hlednosti atd.
3
2
DRUHY GRAFIKY
4
Hlavnı´ vy´hodou vektorove´ grafiky je to, zˇe mu ˚ zˇeme obra´zek libovolneˇ zveˇtsˇovat cˇi zmensˇovat a jeho kvalita se nezmeˇnı´. I prˇi obrovske´m zveˇtsˇenı´ zu ˚ stanou krˇivky kra´sneˇ hladke´. Jakmile totizˇ zveˇtsˇ´ıme obra´zku jeho velikost, vsˇechny informace o neˇm se ihned prˇepocˇ´ıtajı´. Navı´c mu ˚ zˇeme krˇivky snadno upravovat posouva´nı´m jejich bodu ˚ . Dalsˇ´ı prˇednostı´ je mozˇnost pracovat jednotliveˇ s dı´lcˇ´ımi objekty. Bohuzˇel ma´ i vektorova´ grafika sve´ nevy´hody. Hodı´ se pouze pro tvorbu jednodusˇsˇ´ıch obra´zku ˚ , jako jsou naprˇ. ru ˚ zna´ loga, sche´mata a diagramy. Nakreslit takto neˇjakou fotografii by bylo velmi na´rocˇne´. Proble´my jsou take´ s podporou takovy´chto obra´zku ˚ – programu ˚ pro prohlı´zˇenı´ vektorovy´ch obra´zku ˚ je ma´lo a nejsou moc rozsˇ´ırˇene´. Obvykle se tento proble´m rˇesˇ´ı vytvorˇenı´m obra´zku pomocı´ vektoru ˚ a jeho na´sledny´m prˇevedenı´m do rastrove´ podoby. Z editoru ˚ vektorove´ grafiky jmenujme Adobe Illustrator a CorelDraw. Tento druh grafiky se take´ vyuzˇ´ıva´ pro tvorbu animacı´ v prostrˇedı´ Macromedia Flash. Kazˇdy´ program pro tvorbu vektorovy´ch obra´zku ˚ ma´ vlastnı´ forma´t, do ktere´ho obra´zky ukla´da´, naprˇ. CorelDraw vytva´rˇ´ı soubory typu .cdr. Je ale lepsˇ´ı mı´t je ulozˇene´ v neˇjake´m univerza´lneˇjsˇ´ım forma´tu, naprˇ. .eps nebo .pdf. Obra´zky teˇchto dvou forma´tu ˚ se dajı´ do LATEXem vytva´rˇeny´ch dokumentu ˚ vkla´dat (viz kap. 3.1 a kap. 5), jednoducha´ vektorova´ grafika jde take´ vytvorˇit prˇ´ımo pomocı´ LATEXu (kap. 4.1).
3 Sazba obra´zku˚ do dokumentu TEX nebyl pu ˚ vodneˇ navrzˇen pro pra´ci s grafikou. Jeho hlavnı´m u ´ kolem je sa´zet text. Dı´ky jeho na´stavba´m (LATEX apod.) a spolupra´ci s podpu ˚ rny´mi programy dnes vsˇak existuje rovnou neˇkolik mozˇnostı´, jak vkla´dat obra´zky do dokumentu ˚ . Kazˇda´ z nich ma´ sve´ vy´hody a sve´ nedostatky. LATEX obsahuje prostrˇedı´ picture, ve ktere´m je mozˇno vykreslit jednoduchou vektorovou grafiku prˇ´ımo pomocı´ LATEXovy´ch prˇ´ıkazu ˚ (viz kap. 4.1). Takto se vsˇak nedajı´ vytvorˇit slozˇiteˇjsˇ´ı obra´zky, proto LATEX umozˇn ˇ uje i vkla´da´nı´ obra´zku ˚ externı´ch, tj. vytvorˇeny´ch v neˇktere´m graficke´m editoru.
3.1 Forma´ty podporovany ´ ch externı´ch obra´zku˚ Jizˇ jsem zmı´nil, zˇe zpu ˚ sobu ˚ vkla´da´nı´ obra´zku ˚ do dokumentu je neˇkolik. V za´vislosti na tom, kterou z mozˇnostı´ si vybereme, musı´me vybı´rat forma´ty souboru ˚ s obra´zky. Samozrˇejmeˇ se budou lisˇit i forma´ty vytvorˇeny´ch dokumentu ˚: • Prvnı´ mozˇnostı´ je dokument ve forma´tu .dvi (Device Independent). Obra´zek mu ˚ zˇeme vlozˇit pouze pomocı´ prˇ´ıkazu \special{parametry}. Tento prˇ´ıkaz vlozˇ´ı do souboru .dvi sve´ parametry, jinak nema´ zˇa´dnou zvla´sˇtnı´ funkci. Interpretace jeho parametru ˚ pak za´lezˇ´ı na zobrazovacˇi vy´stupnı´ho souboru. Obecneˇ se doporucˇuje vzˇdy prˇeve´st soubor ve forma´tu .dvi do forma´tu .ps nebo .pdf. • Prˇi vytva´rˇenı´ dokumentu typu .ps (PostScript) se pouzˇije program dvips, ktery´ prˇeva´dı´ soubory s prˇ´ıponou .dvi na soubory typu .ps. Pokud jsou parametry prˇ´ıkazu \special pouzˇite´ho pro vlozˇenı´ obra´zku v jazyce PostScript, jejich interpretace probeˇhne v porˇa´dku a obra´zek se bez proble´mu vlozˇ´ı do dokumentu. Jediny´m omezenı´m prˇi vytva´rˇenı´ PostScriptove´ho dokumentu je, aby byl vkla´dany´ externı´ obra´zek ve forma´tu .eps, prˇ´ıp. .ps. • Cı´lovy´ dokument mu ˚ zˇeme vytvorˇit take´ ve forma´tu .pdf. Toho lze dosa´hnout prˇevedenı´m souboru .ps na soubor .pdf (k tomuto u ´ cˇelu existuje rˇada na´stroju ˚ , naprˇ. GhostScript1 ). Je take´ mozˇne´ pouzˇ´ıt Pdf TEX. Zdrojovy´ dokument se tak zkompiluje do forma´tu .pdf prˇ´ımo. Pdf TEX podporuje obra´zky typu 1
Tento na´stroj je freeware
5
SAZBA OBRA´ZKU˚ DO DOKUMENTU
3
6
.pdf, .jpg a .png. PostScriptove´ obra´zky se musı´ neˇjaky´m na´strojem prˇeve´st do forma´tu .pdf. Vy´jimku tvorˇ´ı .ps soubory vytvorˇene´ programem METAFONT, ktere´ Pdf TEX zpracovat umı´. Potrˇebujeme-li v TEXu vlozˇit obra´zek do dokumentu, mu ˚ zˇeme pouzˇ´ıt jizˇ zmı´neˇne´ho prˇ´ıkazu \special. Z du ˚ vodu veˇtsˇ´ı prˇenositelnosti (parametry prˇ´ıkazu \special nejsou nijak standardizova´ny a jsou ru ˚ zne´ se pro kazˇdy´ zobrazovacˇ) je ale lepsˇ´ı vyuzˇ´ıt neˇktery´ z prˇ´ıdavny´ch balı´cˇku ˚ pro pra´ci s grafikou, naprˇ. graphics, graphicx a dalsˇ´ı (viz kap. 5).
3.2 Plovoucı´ prostrˇedı´ Vkla´da´me-li objekt do dokumentu, potrˇebujeme neˇkdy, aby se vysa´zel cely´ na jedne´ stra´nce (tzn. aby nebyl rozdeˇlen v prˇ´ıpadeˇ, zˇe beˇhem jeho sa´zenı´ dojde ke stra´nkove´mu zlomu). Dalsˇ´ım proble´mem, ktery´ mu ˚ zˇe nastat, je mozˇnost, zˇe i kdyzˇ se takovy´ objekt vysa´zı´ z du ˚ vodu nedostacˇujı´cı´ho prostoru azˇ na stra´nce druhe´, zu ˚ stane na prvnı´ stra´nce volne´ mı´sto. Tyto proble´my rˇesˇ´ı tzv. plovoucı´ prostrˇedı´. Objekt umı´steˇny´ uvnitrˇ takove´ho prostrˇedı´ se vysa´zı´ vzˇdy vcelku na jedne´ stra´nce dokumentu a na mı´sto, ktere´ by jinak ˇ ´ıka´me, zˇe objekt v textu „plave“. V LATEXu zu ˚ stalo pra´zdne´, se vysa´zı´ dalsˇ´ı text. R existujı´ dveˇ takova´ prostrˇedı´ – table (pouzˇ´ıva´ se pro vkla´da´nı´ tabulek) a figure (je urcˇeno pro obra´zky). Do plovoucı´ho prostrˇedı´ ale mu ˚ zˇe by´t umı´steˇn jaky´koli objekt (naprˇ. i text). V dalsˇ´ım textu se zameˇrˇ´ıme pouze na prostrˇedı´ figure ve spojitosti s obra´zky. Prˇ´ıkazy pro prostrˇedı´ table jsou podobne´. Umı´steˇnı´ obra´zku vlozˇene´ho pomocı´ prostrˇedı´ figure na stra´nce mu ˚ zˇeme z cˇa´sti ovlivnit. Prostrˇedı´ ma´ nepovinny´ parametr, skla´dajı´cı´ se z neˇkolika teˇchto pı´smen: • h (here): umı´stı´ obra´zek v mı´steˇ, ve ktere´m je uveden ve zdrojove´m textu, • t (top): umı´stı´ obra´zek na zacˇa´tek stra´nky, • b (bottom): umı´stı´ obra´zek na konec stra´nky, • p (page): vlozˇ´ı obra´zek na samostatnou stra´nku2 2
Tuto stra´nku umı´stı´ na konec kapitoly cˇi dokumentu. Tam take´ prˇ´ıp. umı´stı´ i dalsˇ´ı vkla´dane´
obra´zky.
SAZBA OBRA´ZKU˚ DO DOKUMENTU
3
7
Pı´smena jsou v parametru serˇazena podle priority. Implicitnı´ nastavenı´ tohoto parametru je [tbp]. LATEX se nejprve pokusı´ umı´stit obra´zek nahoru na stra´nku. Pokud to nepu ˚ jde, zkusı´ ho vysa´zet dole a kdyzˇ zklame i tato mozˇnost, umı´stı´ jej na samostatnou stra´nku. Obra´zek lze na stra´nce stejneˇ jako text ru ˚ zneˇ zarovnat vu ˚ cˇi jejı´mu leve´mu a prave´mu okraji. Za´kladnı´ nastavene´ zarovna´nı´ je zarovna´nı´ doleva. Toto mu ˚ zˇeme zmeˇnit vlozˇenı´m obra´zku do prostrˇedı´ center – obra´zek bude zarovna´n doprostrˇed – cˇi flushright – obra´zek se vlozˇ´ı k prave´mu okraji. Pro zarovna´nı´ vlevo samozrˇejmeˇ existuje prostrˇedı´ flushleft. Tato nastavenı´ fungujı´, i kdyzˇ obra´zek nenı´ uvnitrˇ prostrˇedı´ figure. Popisek dane´ho obra´zku mu ˚ zˇeme nastavit prˇ´ıkazem \caption[text1 ]{text2 }. Za povinny´ parametr volı´me text, ktery´ se vysa´zı´ jako popisek obra´zku, nepovinny´ parametr urcˇuje text, ktery´ se objevı´ v seznamu obra´zku ˚ . Chceme-li zmeˇnit oznacˇenı´ obra´zku (prˇi pouzˇitı´ balı´cˇku czech je to implicitneˇ Obra´zek), mu ˚ zˇeme jej zmeˇnit vlozˇenı´m prˇ´ıkazu \renewcommand{\figurename}{oznacˇenı´ }do preambule zdrojove´ho textu dokumentu. Ma´me-li v dokumentu vı´ce sloupcu ˚ , mu ˚ zˇeme rozhodnout, zda se plovoucı´ obra´zek vlozˇ´ı prˇes vsˇechny sloupce, nebo jen do sloupce jednoho. Pokud pouzˇijeme prˇ´ıkaz \begin{figure*} . . . \end{figure*}, vlozˇ´ı se obra´zek prˇes vsˇechny sloupce. Druhe´ mozˇnosti dosa´hneme pouzˇitı´m tohoto prˇ´ıkazu bez hveˇzdicˇky. Na neˇktere´ obra´zky se je neˇkdy v textu trˇeba odkazovat. K tomu na´m slouzˇ´ı prˇ´ıkazy \label{oznacˇenı´ } a \ref{oznacˇenı´ }. Prˇ´ıkazem \label obra´zek oznacˇ´ıme symbolicky´m jme´nem. Toto jme´no urcˇuje parametr oznacˇenı´. Prˇ´ıkaz \label musı´ by´t ve zdrojove´m textu azˇ za prˇ´ıkazem \caption. V mı´steˇ, kde se budeme chtı´t na obra´zek odka´zat, pak do textu vlozˇ´ıme prˇ´ıkaz \ref. Prˇ´ıkazy \label a \ref se rovneˇzˇ pouzˇ´ıvajı´ naprˇ. pro odkazova´nı´ na ru ˚ zne´ oddı´ly textu (kapitoly atd.) • Prˇ´ıklad 3 \begin{figure} \begin{center} 3
Prˇ´ıkaz \includegraphics je podrobneˇji rozebra´n v kapitola´ch 5.1 a 5.2. Prˇ´ıkaz \noindent slouzˇ´ı
ke zrusˇenı´ odsazenı´ prvnı´ho rˇa´dku odstavce. V de´lkove´m registru \textwidth je ulozˇena sˇ´ırˇka textu.
3
SAZBA OBRA´ZKU˚ DO DOKUMENTU
8
Obra´zek 1: Obra´zek vlozˇeny´ uvnitrˇ plovoucı´ho prostrˇedı´ \includegraphics[width=0.4\textwidth]{obrazek} \end{center} \caption{Obra ´zek vloz ˇeny ´ uvnitr ˇ plovoucı ´ho prostr ˇedı ´} \label{obrfig} \end{figure} \noindent Na obra ´zek \ref{obrfig} se mu ˚z ˇeme odka ´zat.
Na obra´zek 1 se mu ˚ zˇeme odka´zat.
3.3 Obte´ka´nı´ obra´zku˚ textem Jestlizˇe vlozˇ´ıme obra´zek do dokumentu, zobrazı´ se na´m mimo text (zpravidla pod ˇ asto jej vsˇak potrˇebujeme mı´t vlozˇeny´ uvnitrˇ textu, aby ho text tzv. obte´nı´m). C kal. V tomto prˇ´ıpadeˇ ma´me neˇkolik mozˇnostı´. Mu ˚ zˇeme naprˇ. vytvorˇit dveˇ prostrˇedı´ minipage (jedna´ se o prostrˇedı´, ktere´ se chova´ jako mala´ stra´nka, vı´ce viz [RYBICˇKA]). Jednomu nastavı´me takovou sˇ´ırˇku, aby se do neˇj vesˇel na´sˇ obra´zek, druhe´mu takovou, aby soucˇet sˇ´ırˇek obou prostrˇedı´ byl mensˇ´ı nezˇ sˇ´ırˇka stra´nky. Pozor musı´me da´t na to, aby mezi teˇmito prostrˇedı´mi nebyl prˇechod na novy´ rˇa´dek. Dalsˇ´ım zpu ˚ sobem, jak zarˇ´ıdit vlozˇenı´ obra´zku dovnitrˇ textu, je vyuzˇitı´ prˇ´ıkazu ˚ \hangindent{hodnota} a \hangafter{hodnota}. Prvnı´m prˇ´ıkazem definujeme velikost odsazenı´ textu na rˇa´dku zleva (pokud chceme zmeˇnit odsazenı´ zprava, stacˇ´ı uve´st za´pornou hodnotu). Druhy´ prˇ´ıkaz definuje, kolik rˇa´dku ˚ od zacˇa´tku odstavce bude mı´t pu ˚ vodnı´ hodnotu odsazenı´. Tyto prˇ´ıkazy lze pouzˇ´ıt, pokud chceme zmeˇnit velikost rˇa´dku ˚ na jednu hodnotu a tu jizˇ nemeˇnit. Mu ˚ zˇe se vsˇak sta´t, zˇe vkla´da´me obra´zek, u ktere´ho chceme, aby
3
SAZBA OBRA´ZKU˚ DO DOKUMENTU
9
jej text obte´kal podle jeho tvaru. K tomu slouzˇ´ı prˇ´ıkaz \parshape{parametry}. Prvnı´m parametrem je pocˇet rˇa´dku ˚ , ktery´ch se obte´ka´nı´ bude ty´kat, ostatnı´ jsou zada´va´ny ve dvojicı´ch odsazenı´ zleva – celkova´ velikost rˇa´dku. Jednotlive´ parametry se oddeˇlujı´ cˇa´rkami. Pro nastavenı´ obte´ka´nı´ obra´zku ˚ textem existuje take´ neˇkolik prˇ´ıdavny´ch balı´cˇku ˚, jako naprˇ. floatfig, wrapfig aj. Tyto balı´cˇky se navza´jem lisˇ´ı svy´mi mozˇnostmi. Blizˇsˇ´ı informace o nich jsou uvedeny v [ROZCESTNI´K].
4 Vytva´ˇrenı´ jednoduche´ vektorove´ grafiky pomocı´ LATEXu V te´to kapitole si uka´zˇeme, jak lze pouze s pomocı´ LATEXu bez zˇa´dny´ch externı´ch na´stroju ˚ nakreslit jednoduche´ vektorove´ obra´zky. LATEX ma´ pro tento u ´ cˇel vytvorˇeno prostrˇedı´, ktere´ se nazy´va´ picture.
4.1 Prostrˇedı´ picture Prostrˇedı´ picture vytva´rˇ´ı kreslicı´ plochu. Tato plocha ma´ definovany´ pravou ´ hly´ sourˇadnicovy´ syste´m, do ktere´ho se vkla´dajı´ vsˇechny vytva´rˇene´ obrazove´ objekty. Pocˇa´tek tohoto syste´mu je standardneˇ v leve´m dolnı´m rohu kreslicı´ plochy (lze jej vsˇak posunout i do jine´ho bodu). V prostrˇedı´ picture se mohou pouzˇ´ıvat pouze prˇ´ıkazy pro umı´st’ova´nı´ objektu ˚ na kreslicı´ plochu, prˇ´ıkazy nastavujı´cı´ jejich de´lky a velikosti apod. Prˇed zavola´nı´m prostrˇedı´ picture si nejprve nastavı´me za´kladnı´ jednotku jeho sourˇadne´ho syste´mu. Toto se prova´dı´ zmeˇnou de´lkove´ho registru \unitlenth, naprˇ. \unitlenth 1mm. Vsˇechny parametry prˇ´ıkazu ˚ v prostrˇedı´ picture zastupujı´cı´ sourˇadnice na kreslicı´ plosˇe urcˇujı´, kolikra´t se ma´ vyna´sobit za´kladnı´ jednotka. Samotna´ deklarace prostrˇedı´ picture vypada´ takto: \begin{picture}(x, y)(x 0 , y0 ) Parametr x urcˇuje sˇ´ırˇku a parametr y vy´sˇku vytva´rˇene´ kreslicı´ plochy. Definovana´ vy´sˇka a sˇ´ırˇka vsˇak urcˇujı´ pouze velikost mı´sta, ktere´ se ma´ pro obra´zek prˇi sazbeˇ vynechat. Kreslene´ objekty lze umist’ovat i za hranice te´to plochy. Vysa´zı´ se pak naprˇ. prˇes text. V neˇktery´ch situacı´ch toho lze vyuzˇ´ıt. Pokud je zadana´ sˇ´ırˇka mensˇ´ı nezˇ sˇ´ırˇka stra´nky a obra´zek je zarovna´n doleva cˇi doprava, bude obte´ka´n textem. Parametry x 0 a y0 jsou nepovinne´ a urcˇujı´, ve ktere´m bodeˇ ma´ by´t pocˇa´tek sourˇadnicove´ho syste´mu. Pokud nenı´ druha´ za´vorka uvedena, bude pocˇa´tek v bodeˇ (0, 0).4 4
Z vlastnı´ zkusˇenosti doporucˇuji druhou za´vorku neuva´deˇt. Vsˇechny objekty se i v prˇ´ıpadeˇ jejı´
prˇ´ıtomnosti vkla´dajı´ do obra´zku ve vztahu k bodu (0, 0), pouze docha´zı´ k posunu kreslicı´ plochy a to mu ˚ zˇe by´t v neˇktery´ch prˇ´ıpadech matoucı´.
10
4
´ VEKTOROVE ´ GRAFIKY POMOCI´ LATEXU ˇ ENI´ JEDNODUCHE VYTVA´R
11
Asi nejdu ˚ lezˇiteˇjsˇ´ım prˇ´ıkazem v prostrˇedı´ picture je prˇ´ıkaz \put(x, y){objekt}. Slouzˇ´ı k umı´st’ova´nı´ jednotlivy´ch objektu ˚ na kreslicı´ plochu. Parametry x a y urcˇujı´ sourˇadnice tzv. vztazˇne´ho bodu objektu (kazˇdy´ objekt ma´ vlastnı´ vztazˇny´ bod). Mimo prˇ´ıkaz \put existuje take´ prˇ´ıkaz \multiput(x 0 , y0 )(d x , d y ){n}{objekt}, ktery´ umozˇn ˇ uje vlozˇit tenty´zˇ objekt do obra´zku neˇkolikra´t po sobeˇ. Prvnı´ parametr urcˇuje pocˇa´tecˇnı´ sourˇadnice vztazˇne´ho bodu objektu. Parametry d x a d y definujı´ posun sourˇadnic vztazˇne´ho bodu ve vodorovne´m (resp. svisle´m) smeˇru pro kazˇde´ dalsˇ´ı vlozˇenı´ objektu a parametr n stanovuje, kolikra´t se objekt takto vlozˇ´ı. Zajı´mavostı´ je, zˇe pomocı´ prˇ´ıkazu ˚ pro vlozˇenı´ objektu mu ˚ zˇeme na kreslicı´ plochu vlozˇit dalsˇ´ı prostrˇedı´ picture. Tomuto prostrˇedı´ pak mu ˚ zˇeme definovat jeho vlastnosti (naprˇ. jednotku jeho sourˇadne´ho syste´mu) zcela samostatneˇ a odlisˇneˇ od nastavenı´ vlastnostı´ obra´zku, do ktere´ho jej vkla´da´me. 4.1.1
Objekty, ktere´ je moz ˇne´ vloz ˇit na kreslicı´ plochu
Za´kladnı´mi objekty, ktere´ lze vlozˇit do obra´zku v prostrˇedı´ picture jako parametr prˇ´ıkazu \put, prˇ´ıp. \multiput, jsou tyto: ˇ a´ry (u C ´ sec ˇky) ˇ a´ry se vkla´dajı´ prˇ´ıkazem \line{x, y}{de´lka}. Vztazˇny´m bodem u C ´ secˇky je jejı´ pocˇa´tecˇnı´ bod. Parametry x a y jsou cela´ cˇ´ısla z intervalu <-6, 6> a jejich spolecˇny´ deˇlitel nesmı´ by´t veˇtsˇ´ı nezˇ 1. Uda´vajı´ sklon vytva´rˇene´ u ´ secˇky (tı´m, zˇe se posuneme na vodorovne´ ose o x jednotek a na svisle´ ose o y jednotek, dostaneme druhy´ bod – ne nutneˇ koncovy´ – dane´ cˇa´ry). Z toho vyply´va´, zˇe pomocı´ tohoto prˇ´ıkazu mu ˚ zˇeme vykreslit jen u ´ secˇky s urcˇity´m sklonem. Parametr de´lka urcˇuje de´lku pru ˚ meˇtu cˇa´ry do vodorovne´ osy. Jelikozˇ se cˇa´ry sa´zejı´ z urcˇity´ch za´kladnı´ch znaku ˚ , nelze ani nakreslit u ´ secˇku s libovolneˇ malou de´lkou. Vy´jimkou jsou cˇa´ry vodorovne´ a svisle´, jsou totizˇ vytva´rˇeny jiny´m zpu ˚ sobem. Vektory Vektory jsou u ´ secˇky, majı´cı´ v koncove´m bodeˇ sˇipku. Sa´zejı´ se pomocı´ prˇ´ıkazu \vector(x, y){de´lka}. Parametry majı´ tenty´zˇ vy´znam, jako u vytva´rˇenı´ u ´ secˇek,
4
´ VEKTOROVE ´ GRAFIKY POMOCI´ LATEXU ˇ ENI´ JEDNODUCHE VYTVA´R
12
jen x a y musı´ lezˇet v intervalu <-4, 4>. Ostatnı´ omezenı´ pro tyto parametry platı´ take´. Vykreslı´me-li nulovy´ vektor (tj. vektor s de´lkou rovnou nule), sˇipka se i prˇesto nakreslı´. Vztazˇny´m bodem vektoru je jeho pocˇa´tecˇnı´ bod. • Prˇ´ıklad \unitlength 1mm \begin{picture}(40,35) \put(0,5){\line(2,3){15}} \put(40,3){\vector(-1,4){7}} \put(15,15){\vector(3,-2){20}} \put(12,5){\vector(1,-3){0}}
OC C C C C Q Q C Q C Q N QQ s C
\end{picture}
Text Dalsˇ´ım objektem, ktery´ mu ˚ zˇeme vlozˇit do obra´zku v prostrˇedı´ picture, je text. Jeho vztazˇny´m bodem je levy´ dolnı´ roh ra´mecˇku, ktery´ si kolem textu mu ˚ zˇeme prˇedstavit. Sloupce textu˚ Na kreslicı´ plochu mu ˚ zˇeme take´ umı´stit sloupec libovolny´ch textu ˚ . Umozˇn ˇ uje to prˇ´ıkaz \shortstack[zarovna´nı´ ]{texty}. Za parametr zarovna´nı´ mu ˚ zˇeme dosadit pı´smeno l, resp. r – pro zarovna´nı´ doleva, resp. doprava. Pokud nenı´ parametr uveden, texty budou zarovna´ny na strˇed. Do parametru texty napı´sˇeme jednotlive´ texty, ktere´ chceme vysa´zet do sloupce. Jednotlive´ rˇa´dky oddeˇlujeme prˇ´ıkazem \\. Vztazˇny´m bodem je stejneˇ jako v prˇedchozı´m prˇ´ıpadeˇ levy´ dolnı´ roh pomyslne´ho ra´mecˇku, ktery´ tuto „tabulku“ obklopuje. • Prˇ´ıklad \unitlength 1mm \begin{picture}(40,35) \put(20,13){Vloz ˇeny ´ text}
Text rozlozˇeny´ do vı´ce sloupcu ˚
\put(15,19){\shortstack[l]{Text\\% rozloz ˇeny ´\\do vı ´ce\\sloupcu ˚ }} \end{picture}
Vlozˇeny´ text
4
´ VEKTOROVE ´ GRAFIKY POMOCI´ LATEXU ˇ ENI´ JEDNODUCHE VYTVA´R
13
Ra´mec ˇky Ra´mecˇky podporovane´ prostrˇedı´m picture jsou trojı´ho druhu: • \framebox(x, y)[poloha]{objekt} – jedna´ se o ra´mecˇek, ktery´ bude ora´mova´n souvislou cˇarou. Parametry x a y urcˇujı´ sˇ´ırˇku a vy´sˇku ra´mecˇku, parametr objekt urcˇuje objekt, ktery´ ma´ by´t uvnitrˇ ra´mecˇku. Nepovinny´ parametr poloha se skla´da´ z jednoho nebo dvou pı´smen a urcˇuje polohu objektu v ra´mecˇku. Pokud je vynecha´n, objekt se umı´stı´ doprostrˇed ra´mecˇku. Do parametru mu ˚ zˇeme vlozˇit tato pı´smena: – l (left): zarovna´nı´ doleva – r (right): zarovna´nı´ doprava – c (center): zarovna´nı´ doprostrˇed – t (top): zarovna´nı´ nahoru – b (bottom): zarovna´nı´ dolu ˚ • \dashbox{de´lka}(x, y)[poloha]{objekt} – Tento prˇ´ıkaz vysa´zı´ ra´mecˇek s cˇa´rkovany´m ora´mova´nı´m. Parametr de´lka uda´va´ de´lku cˇa´rek a mezer v tomto ora´mova´nı´. Ostatnı´ parametry jsou stejne´ jako u ra´mecˇku \framebox. • \makebox(x, y)[poloha]{objekt} – Tento prˇ´ıkaz slouzˇ´ı k vytvorˇenı´ neora´movane´ho ra´mecˇku. Parametry prˇ´ıkazu jsou stejne´ jako u prˇedchozı´ch dvou. • Prˇ´ıklad \unitlength 1mm \begin{picture}(40,40)
Text v neviditelne´m ra´mecˇku
\put(0,0){\framebox(20,10)% {\vector(2,1){10}}}
Text
\put(13,15){\dashbox{2}(25,5)% [ct]{Text}} \put(15,25){\makebox(1,10)% {Text v˜neviditelne ´m ra ´mec ˇku}} \end{picture}
©
* ©©
4
´ VEKTOROVE ´ GRAFIKY POMOCI´ LATEXU ˇ ENI´ JEDNODUCHE VYTVA´R
14
Kruz ˇnice a kruhy Kruzˇnici lze vysa´zet pomocı´ prˇ´ıkazu \circle{pru˚meˇr}. Rovneˇzˇ i na vytva´rˇenı´ kruzˇnic se vztahujı´ jista´ omezenı´ dana´ zpu ˚ sobem jejich sazby. Proto mu ˚ zˇeme vysa´zet kruzˇnici s maxima´lnı´m pru ˚ meˇrem okolo 15 mm. Vztazˇny´m bodem je strˇed kruzˇnice. Pouzˇijeme-li prˇ´ıkaz \circle*{pru˚meˇr}, dostaneme vyplneˇnou kruzˇnici (kruh). Tvorba kruhu je omezena jesˇteˇ vı´ce a jeho nejveˇtsˇ´ı mozˇny´ pru ˚ meˇr je kolem 5 mm. • Prˇ´ıklad
¾»
\unitlength 1mm \begin{picture}(40,40)
½¼
\put(10,30){\circle{10}} \put(25,10){\circle{5}}
~
\put(0,5){\circle*{6}} \put(35,25){\circle*{3}}
m
x
\end{picture}
Ova´ly Prˇ´ıkazem \oval(x, y)[cˇa´st] lze vysa´zet ova´l. Parametry x a y urcˇujı´ jeho sˇ´ırˇku a vy´sˇku. Nepovinny´ parametr cˇa´st na´m umozˇn ˇ uje vykreslit jen neˇkterou z cˇa´stı´ dane´ho ova´lu. Pokud nenı´ uveden, vysa´zı´ se ova´l cely´. Parametr mu ˚ zˇou tvorˇit jedno nebo dveˇ z teˇchto pı´smen: t (hornı´ cˇa´st), b (dolnı´ cˇa´st), l (leva´ cˇa´st) a r (prava´ cˇa´st). Vztazˇny´m bodem je strˇed ova´lu. • Prˇ´ıklad \unitlength 1mm
®
\begin{picture}(40,40) \put(10,30){\oval(10,5)} \put(22,15){\oval(9,15)[bl]} \put(-10,10){\oval(7,11)[r]} \put(35,25){\oval(20,12)[b]} \put(7,9){\oval(10,5)[tl]} \end{picture}
¯ °
®
© ª
Á
¹
À
´ VEKTOROVE ´ GRAFIKY POMOCI´ LATEXU ˇ ENI´ JEDNODUCHE VYTVA´R
4
15
Be´zierovy krˇivky LATEX umı´ pomocı´ prostrˇedı´ picture vykreslit take´ Be´zierovy krˇivky druhe´ho stupneˇ. Jsou to krˇivky urcˇene´ trˇemi body – pocˇa´tecˇnı´m, koncovy´m a tzv. rˇ´ıdı´cı´m bodem. Tı´m je bod, ve ktere´m se protı´najı´ tecˇny ke krˇivce vedene´ jejı´mi krajnı´mi body. Polozˇ´ıme-li rˇ´ıdı´cı´ bod tak, aby lezˇel v prˇ´ımce s krajnı´mi body, vysa´zı´ se u ´ secˇka, ktera´ krajnı´ body spojuje. Takto lze „obejı´t“ omezenı´ pro de´lku a sklon cˇar, ktera´ platı´ pro prˇ´ıkaz \line. U Be´zierovy´ch krˇivek zˇa´dna´ podobna´ omezenı´ neplatı´. Jediny´m proble´mem je, zˇe jsou Be´zierovy krˇivky vykreslova´ny pomocı´ jednotlivy´ch vypocˇ´ıtany´ch bodu ˚ (ty jsou sa´zeny jako male´ cˇtverecˇky). Z tohoto du ˚ vodu mu ˚ zˇe v neˇktery´ch prˇ´ıpadech nastat situace, kdy se nedokoncˇ´ı prˇeklad dokumentu5 , protozˇe prˇi jeho vykona´va´nı´ dojde k prˇeplneˇnı´ pameˇti pocˇ´ıtacˇe. Pro sazbu Be´zierovy´ch krˇivek existujı´ v LATEXu dva prˇ´ıkazy: \qbezier[n](x 1 , y1 )(x 2 , y2 )(x 3 , y3 ) \bezier{n}(x 1 , y1 )(x 2 , y2 )(x 3 , y3 )6 Parametry x 1 , y1 , x 3 a y3 urcˇujı´ sourˇadnice krajnı´ch bodu ˚ krˇivky a parametry x 2 a y2 sourˇadnice rˇ´ıdı´cı´ho bodu. Parametr n urcˇuje, pomocı´ kolika bodu ˚ se krˇivka vysa´zı´. U prvnı´ho z teˇchto dvou prˇ´ıkazu ˚ je nepovinny´ a pokud jej neuvedeme, vysa´zı´ se na´m krˇivka plna´. V opacˇne´m prˇ´ıpadeˇ bude tecˇkovana´. Prˇ´ıkazy \qbezier a \bezier jsou samostatne´ a nepotrˇebujı´ vkla´dat jako parametry do prˇ´ıkazu \put. • Prˇ´ıklad \unitlength 1mm \begin{picture}(40,35) \qbezier(0,5)(10,3)(15,25) \qbezier(15,25)(15,5)(28,8) \qbezier(0,20)(-10,25)(30,30) \end{picture} 5 6
naprˇ. beˇhem sazby grafu neˇjake´ slozˇiteˇjsˇ´ı funkce pomocı´ Be´zierovy´ch krˇivek Tento prˇ´ıkaz je implementova´n pouze z du ˚ vodu zajisˇteˇnı´ kompatibility s verzı´ LATEXu 2.09
´ VEKTOROVE ´ GRAFIKY POMOCI´ LATEXU ˇ ENI´ JEDNODUCHE VYTVA´R
4
4.1.2
16
Nastavenı´ vlastnostı´ jednotlivy ´ ch objektu˚
U kazˇde´ho vkla´dane´ho objektu mu ˚ zˇeme pomocı´ specia´lnı´ch prˇ´ıkazu ˚ nastavit neˇktere´ vlastnosti, s jaky´mi se ma´ vysa´zet. ˇ ´ıˇrka c S ˇar Vsˇem vy´sˇe popsany´m objektu ˚ m lze nastavit sˇ´ırˇku cˇa´ry, jakou se vykreslı´. Existujı´ pro to prˇ´ıkazy \thinlines, \thicklines a \linethickness{sˇ´ıˇrka}. Prvnı´ z nich nastavı´ sˇ´ırˇku cˇa´ry na 4 pt, druhy´ na 8 pt. Poslednı´ na´m umozˇn ˇ uje nastavit si vlastnı´ pozˇadovanou sˇ´ırˇku cˇa´ry, bohuzˇel se ale da´ pouzˇ´ıt pouze pro neˇktere´ objekty. Jedna´ se o svisle´ a vodorovne´ cˇa´ry, ra´mecˇky a Be´zierovy krˇivky. Ora´mova´nı´ objektu Libovolny´ objekt, ktery´ vkla´da´me na kreslicı´ plochu, mu ˚ zˇeme ora´movat. K tomu slouzˇ´ı prˇ´ıkaz \frame{objekt}.7 • Prˇ´ıklad \unitlength 1mm \begin{picture}(40,50) \linethickness{2mm} \qbezier(0,5)(10,3)(15,25) \thicklines \put(30,10){\oval(12,6)}
CO C
C C
Neˇjaky´ text C
C
C C
\thinlines
²
¯
\put(0,18){\vector(-1,4){7}}
±
°
\put(20,35){\frame{Ne ˇjaky ´ text}} \end{picture} \end{multicols}
7
Prˇi ra´mova´nı´ jiny´ch objektu ˚ nezˇ textu mi tento prˇ´ıkaz nefungoval spra´vneˇ.
4
´ VEKTOROVE ´ GRAFIKY POMOCI´ LATEXU ˇ ENI´ JEDNODUCHE VYTVA´R
17
4.2 Balı´c ˇky rozs ˇirˇujı´cı´ moz ˇnosti prostrˇedı´ picture V te´to podkapitole si strucˇneˇ rozebereme neˇktere´ z LATEXovy´ch balı´cˇku ˚ , ktere´ rozsˇirˇujı´ mozˇnosti prostrˇedı´ picture. Balı´c ˇek epic Balı´cˇek epic obsahuje neˇkolik novy´ch prˇ´ıkazu ˚ . Nejdu ˚ lezˇiteˇjsˇ´ımi jsou tyto: \drawline[n](x 1 , y1 ) . . . (x n , yn ) Tento prˇ´ıkaz vykreslı´ lomenou cˇa´ru, postupneˇ procha´zejı´cı´ body zadany´mi parametry (x i , yi ). Nepovinny´ parametr n mu ˚ zˇe naby´vat celocˇ´ıselny´ch hodnot z intervalu (-100, ∞). Pokud zada´me za´pornou hodnotu, vysa´zı´ se lomena´ cˇa´ra cˇa´rkovaneˇ. V ostatnı´ch prˇ´ıpadech bude vysa´zena plna´ cˇa´ra. LATEX vytva´rˇ´ı tuto cˇa´ru z maly´ch cˇa´stı´, ktere´ majı´ omezene´ mnozˇstvı´ sklonu ˚ (podobneˇ jako u prˇ´ıkazu \line), proto mu ˚ zˇe by´t vy´sledna´ lomena´ cˇa´ra poneˇkud „zubata´“. \dashline{n}[m](x 1 , y1 ) . . . (x n , yn ) Pomocı´ tohoto prˇ´ıkazu mu ˚ zˇeme vykreslit cˇa´rkovanou lomenou cˇa´ru. Parametr n urcˇuje de´lku jedne´ cˇa´rky. Pokud uvedeme i nepovinny´ parametr m, jednotlive´ cˇa´rky budou vysa´zeny tecˇkovaneˇ a parametr m nastavı´ mezery mezi tecˇkami. Ostatnı´ parametry jsou stejne´ jako v prˇedchozı´m prˇ´ıpadeˇ. \dottedline[znak]{n}(x 1 , y1 ) . . . (x n , yn ) Vykreslı´ tecˇkovanou lomenou cˇa´ru. Parametr znak na´m umozˇn ˇ uje definovat znak, ktery´ se vykreslı´ mı´sto tecˇek. Parametr n urcˇuje vzda´lenost mezi jednotlivy´mi znaky, tvorˇ´ıcı´mi tuto cˇa´ru.
´ VEKTOROVE ´ GRAFIKY POMOCI´ LATEXU ˇ ENI´ JEDNODUCHE VYTVA´R
4
18
• Prˇ´ıklad \unitlength 1mm \begin{picture}(40,40) \drawline(6,20)(12,15)% (18,25)(24,15) \dashline{2}(0,0)(10,10)%
" " T " aa T aa"" T
(20,0)(30,15) \dottedline(10,25)(20,35)% (25,29)(35,25) \end{picture}
Balı´c ˇek eepic Balı´cˇek eepic rozsˇirˇuje nejen mozˇnosti LATEXu, ale i balı´cˇku epic. Rusˇ´ı omezenı´ prˇi vkla´da´nı´ neˇktery´ch standardnı´ch objektu ˚ (viz kap. 4.1.1). Ty´ka´ se to hlavneˇ cˇar a kruzˇnic (resp. kruhu ˚ ). Prˇ´ıkazem \line je tak mozˇno vykreslit cˇa´ru s jakoukoli de´lkou a za parametry urcˇujı´cı´ jejı´ sklon mu ˚ zˇeme dosadit jaka´koli cela´ cˇ´ısla (omezenı´ pro sazbu vektoru ˚ vsˇak zu ˚ sta´vajı´ stejna´). Prˇ´ıkazem \circle (resp. \circle*) mu ˚ zˇeme vykreslit kruzˇnici cˇi kruh s libovolny´m pru ˚ meˇrem8 . Prˇ´ıkazy pro tvorbu loˇ a´ry jsou sa´zeny meny´ch cˇar definovane´ v balı´cˇku epic jsou rovneˇzˇ optimalizova´ny. C zpu ˚ sobem, ktery´ je rychlejsˇ´ı a mnohem me´neˇ na´rocˇny´ na prˇideˇlenou pameˇt’. S balı´cˇkem eepic je dobre´ vkla´dat do dokumentu i balı´cˇek epic (ten musı´ by´t deklarova´n jako prvnı´). Pokud budeme mı´t s balı´cˇkem eepic proble´my9 , mu ˚ zˇeme mı´sto neˇj pouzˇ´ıt balı´cˇek eepicemu, bohuzˇel vsˇak u neˇj neplatı´ vy´hody, ktere´ balı´cˇek eepic prˇina´sˇ´ı a objekty zde definovane´ se tvorˇ´ı ze standardnı´ch objektu ˚ (naprˇ. elipsa je vykreslena jako ova´l). Z teˇchto du ˚ vodu ˚ zde neuva´dı´m prˇ´ıklad. Kromeˇ rozsˇ´ırˇenı´ mozˇnostı´ standardnı´ch prˇ´ıkazu ˚ jsou definova´ny v balı´cˇku eepic take´ neˇktere´ prˇ´ıkazy nove´. Jsou jimi naprˇ.: \Thicklines Nastavı´ sˇ´ırˇku cˇar pouzˇ´ıvany´ch pro sazbu jednotlivy´ch objektu ˚ na cca 1,5 na´sobek sˇ´ırˇky definovane´ prˇ´ıkazem \thicklines. 8
V dokumentaci tohoto balı´cˇku doslova stojı´, zˇe za jeho pru ˚ meˇr mu ˚ zˇeme dosadit „jake´koli cˇ´ıslo
akceptovatelne´ TEXem“ 9 Stalo se mi, zˇe se prˇi pouzˇitı´ tohoto balı´cˇku vysa´zela mı´sto obra´zku jen pra´zdna´ plocha.
4
´ VEKTOROVE ´ GRAFIKY POMOCI´ LATEXU ˇ ENI´ JEDNODUCHE VYTVA´R
19
\path (x 1 , y1 ) . . . (x n , yn ) Funguje stejneˇ jako prˇ´ıkaz \drawline v balı´cˇku epic. Rozdı´lem je, zˇe se lomena´ cˇa´ra vysa´zı´ peˇkneˇ hladka´, protozˇe balı´cˇek eepic pouzˇ´ıva´ jinou metodu sazby. \ellipse{a}{b}, resp. \ellipse*{a}{b} Umozˇn ˇ uje nakreslit elipsu o sˇ´ırˇce a a vy´sˇce b. Prˇ´ıkaz s hveˇzdicˇkou vykreslı´ elipsu s vyplneˇny´m vnitrˇkem. Balı´c ˇek graphpap Tento balı´cˇek obsahuje velmi uzˇitecˇny´ prˇ´ıkaz \graphpaper[n](x 1 , y1 )(x 2 , y2 ). Prˇi pouzˇitı´ tohoto prˇ´ıkazu se na kreslicı´ plosˇe vytvorˇ´ı sourˇadnicova´ sı´t’. Nepovinny´ parametr n urcˇuje, jake´ budou rozestupy mezi jednotlivy´mi cˇarami mrˇ´ızˇky. Jeho implicitnı´ nastavenı´ je 10. Parametry x 1 a y1 oznacˇujı´ sourˇadnice leve´ho dolnı´ho rohu te´to sı´teˇ a parametry x 2 a y2 urcˇujı´ jejı´ sˇ´ırˇku a vy´sˇku. Vsˇechny parametry musı´ by´t cela´ cˇ´ısla a uda´vajı´ se v za´kladnı´ch jednotka´ch sourˇadnicove´ho syste´mu obra´zku. Kazˇda´ pa´ta´ cˇa´ra (na vodorovne´ i svisle´ ose) je zvy´razneˇna a oznacˇena cˇ´ıslem sourˇadnice, ve ktere´ je vykreslena. Dı´ky tomu tento prˇ´ıkaz vy´razneˇ napoma´ha´ prˇi vkla´da´nı´ ru ˚ zny´ch objektu ˚ na kreslicı´ plochu. • Prˇ´ıklad \unitlength 1mm \begin{picture}(40,40)
40 30
\graphpaper[2](0,0)(40,40) \end{picture}
20 10 0 0
10
20
30
40
5 Balı´c ˇky LATEXu pro pra´ci s grafikou Jizˇ jsme si uka´zali, zˇe pomocı´ prostrˇedı´ picture lze v LATEXovy´ch dokumentech vykreslovat jednoduche´ obra´zky. K dispozici vsˇak ma´me i podpu ˚ rne´ balı´cˇky, ktere´ mozˇnosti pra´ce LATEXu s grafikou znacˇneˇ rozsˇirˇujı´. My zde postupneˇ rozebereme nejpouzˇ´ıvaneˇjsˇ´ı z nich, a to balı´cˇky graphics, graphicx, color a pstricks.
5.1 Balı´c ˇek graphics Balı´cˇek graphics je za´kladnı´m balı´cˇkem pro vkla´da´nı´ externı´ch obra´zku ˚ do LATEXovy´ch dokumentu ˚ a na´slednou pra´ci s nimi (rotace, nastavova´nı´ velikosti atd.) Prˇedpokla´da´ prˇ´ıtomnost ovladacˇe pro pra´ci s obra´zky. Standardneˇ se zpracova´va´ grafika vytvorˇena´ v jazyce PostScript. Je potrˇeba, aby byl vy´stupnı´ soubor v jazyce PostScript (jiny´mi slovy musı´me soubor .dvi prˇeve´st do forma´tu .ps, naprˇ. pomocı´ programu dvips). Pokud chceme k vytvorˇenı´ vy´stupnı´ho souboru pouzˇ´ıt Pdf TEX, musı´me PostScriptovy´ obra´zek prˇeve´st do forma´tu .pdf, resp. .png nebo .jpg a v preambuli dokumentu volat balı´cˇek za´pisem \usepackage[pdftex]{graphics}. Prˇ´ıkazy definovane´ v balı´c ˇku \includegraphics{soubor} Prˇ´ıkaz pro vlozˇenı´ obra´zku do dokumentu. Je take´ mozˇne´ jej pouzˇ´ıt ve tvaru \includegraphics*[x1 , y1 ][x2 , y2 ]{soubor}. Parametry x1 a y1 uda´vajı´ sourˇadnice leve´ho hornı´ho rohu vy´rˇezu obra´zku, ktery´ se vlozˇ´ı do dokumentu. Parametry x2 a y2 pak uda´vajı´ sourˇadnice jeho prave´ho dolnı´ho rohu. Neuvedeme-li v prˇ´ıkaze hveˇzdicˇku, ale nepovinne´ parametry ano, vlozˇ´ı se obra´zek do dokumentu cely´, ale TEX pro neˇj rezervuje jen mı´sto udane´ teˇmito parametry. \graphicspath{{cesta 1 }{cesta 2 }. . . } Tento prˇ´ıkaz na´m umozˇn ˇ uje zadat, ve ktery´ch slozˇka´ch se nacha´zejı´ soubory s obra´zky, ktere´ chceme vkla´dat do LATEXove´ho dokumentu.
20
5
ˇ KY LATEXU PRO PRA´CI S GRAFIKOU BALI´C
21
\scalebox{h-mı´ra}[v-mı´ra]{objekt} Zmeˇna velikosti objektu. Objektem mu ˚ zˇe by´t text, ale naprˇ. i obra´zek. Pokud to ma´ by´t obra´zek, dosadı´me za parametr objekt cely´ prˇ´ıkaz \includegraphics. Parametr h-mı´ra uda´va´, kolikra´t se objekt zveˇtsˇ´ı ve horizonta´lnı´m smeˇru, nepovinny´ parametr v-mı´ra uda´va´, kolikra´t se obra´zek zveˇtsˇ´ı ve smeˇru vertika´lnı´m. Pokud nenı´ tento parametr uveden, nastavı´ se jeho hodnota na hodnotu parametru h-mı´ra. \rotatebox{u´hel}{objekt} Prˇ´ıkaz pro vlozˇenı´ objektu, ktery´ bude otocˇeny´ o urcˇity´ u ´ hel. Ten se zada´va´ ve stupnı´ch a ota´cˇenı´ probı´ha´ proti smeˇru hodinovy´ch rucˇicˇek. Za objekt mu ˚zˇeme stejneˇ jako u prˇ´ıkazu \scalebox dosadit text, prˇ´ıp. obra´zek. Prˇ´ıkazy \scalebox a \rotatebox mu ˚ zˇeme navza´jem kombinovat. \resizebox{sˇ´ıˇrka}{vy´sˇka}{objekt} Umozˇn ˇ uje roztazˇenı´ objektu na urcˇitou vy´sˇku a sˇ´ırˇku. Nahradı´me-li neˇktery´ z rozmeˇru ˚ znakem ! , bude jeho hodnota dopocˇ´ıta´na tak, aby zu ˚ stal zachova´n pomeˇr stran objektu. \reflectbox{objekt} Pomocı´ tohoto prˇ´ıkazu mu ˚ zˇeme objekt definovany´ v jeho povinne´m parametru zrcadloveˇ otocˇit pode´l svisle´ osy. • Prˇ´ıklad \noindent \scalebox{0.4} {\includegraphics{obrazek}}\\ \resizebox{60mm}{2mm} {Text se zme ˇne ˇnou velikostı ´}\\ \rotatebox{10}{Otoc ˇeny ´ text}\\ \reflectbox{Pr ˇevra ´ceny ´ text}
Text se zme ˇ ne ˇ nou velikostı ´
y´ text Otocˇen
txet y´neca´rverˇP
5
ˇ KY LATEXU PRO PRA´CI S GRAFIKOU BALI´C
22
5.2 Balı´c ˇek graphicx Tento balı´cˇek je rozsˇ´ırˇenı´m balı´cˇku graphics. Co se ty´ka´ mozˇnostı´, jsou tyto balı´cˇky zhruba na stejne´ u ´ rovni, balı´cˇek graphicx pouze dovoluje nastavit vı´ce parametru ˚. Autor dokumentace k tomuto balı´cˇku pı´sˇe, zˇe pokud s jejich pomocı´ tvorˇ´ıme pouze dokument, za´lezˇ´ı jen na tom, ktery´ balı´cˇek na´m je vı´ce sympaticky´. Veˇtsˇ´ı rozdı´ly se projevı´, budeme-li na za´kladeˇ teˇchto balı´cˇku ˚ potrˇebovat vytvorˇit vlastnı´ prˇ´ıdavny´ balı´cˇek. V tom prˇ´ıpadeˇ uzˇ na tom, ktery´ balı´cˇek si vybereme, bude za´lezˇet. Prˇ´ıkazy definovane´ v balı´c ˇku \includegraphics[seznam parametru˚ ]{soubor} Stejneˇ jako v prˇedchozı´m balı´cˇku slouzˇ´ı tento prˇ´ıkaz ke vlozˇenı´ externı´ho obra´zku do dokumentu. Do prvnı´ho parametru mu ˚ zˇeme vlozˇit neˇktere´ z teˇchto polozˇek (uva´dı´m zde jen ty nejdu ˚ lezˇiteˇjsˇ´ı, ostatnı´ jsou popsa´ny v dokumentaci balı´cˇku graphicx): • bb = a b c d: Umozˇn ˇ uje nastavit tzv. bounding box obra´zku, tj. informace o vy´rˇezu obra´zku, ktery´ se vlozˇ´ı do dokumentu. Hodnoty a a b uda´vajı´ sourˇadnice leve´ho hornı´ho rohu tohoto vy´rˇezu, c a d jsou sourˇadnice jeho prave´ho dolnı´ho rohu. • angle = n: Urcˇuje u ´ hel natocˇenı´ obra´zku (ve stupnı´ch). • width = n: Nastavenı´ pozˇadovane´ sˇ´ırˇky obra´zku. • height = n: Pozˇadovana´ vy´sˇka obra´zku. • scale = n: Uda´va´, kolikra´t se zmensˇ´ı (zveˇtsˇ´ı) vkla´dany´ obra´zek. Tyto polozˇky se navza´jem oddeˇlujı´ cˇa´rkou. U vy´sˇky a sˇ´ırˇky je trˇeba zadat i jednotku (naprˇ. mm). \rotatebox[seznam polozˇek]{u´hel}{objekt} Prˇ´ıkaz pro otocˇenı´ neˇjake´ho objektu (naprˇ. textu cˇi obra´zku) o urcˇity´ u ´ hel zadany´ ve stupnı´ch (poprˇ. v jine´ jednotce, definovane´ jednou z polozˇek uvnitrˇ nepovinne´ho parametru). Polozˇky, ktere´ mu ˚ zˇeme uve´st v prvnı´m parametru tohoto prˇ´ıkazu jsou tyto:
5
ˇ KY LATEXU PRO PRA´CI S GRAFIKOU BALI´C
23
• origin = pı´smena: Umozˇn ˇ uje nastavit strˇed ota´cˇenı´ objektu. Za rovnı´tko mu ˚ zˇeme napsat jedno nebo dveˇ z teˇchto pı´smen: t (nahorˇe), c (uprostrˇed), b (dole), r (vpravo), l (vlevo) a B (za´kladnı´ cˇa´ra). • x = n, y = m: Ma´ stejnou funkci jako polozˇka origin, ale umozˇn ˇ uje nastavit jako strˇed ota´cˇenı´ libovolny´ bod objektu. Hodnoty m a n se uda´vajı´ i s jednotkami. • units = n: Parametr pro nastavenı´ jednotky a smeˇru ota´cˇenı´ objektu. Naprˇ. [units=-6.28] nastavı´ jednotku na radia´ny a smeˇr ota´cˇenı´ ve smeˇru hodinovy´ch rucˇicˇek. Jelikozˇ je balı´cˇek graphicx rozsˇ´ırˇenı´m balı´cˇku graphics, umozˇn ˇ uje pouzˇitı´ i ostatnı´ch prˇ´ıkazu ˚ v tomto balı´cˇku definovany´ch. Jedna´ se naprˇ. o prˇ´ıkazy \reflectbox, \resizebox, \graphicspath atd. Blizˇsˇ´ı informace o teˇchto prˇ´ıkazech jsou uvedeny v prˇedchozı´ podkapitole (kap. 5.1). • Prˇ´ıklad \includegraphics% [scale=0.5]{obrazek}\\ \rotatebox[origin=tc]% {20}{Otoc ˇeny ´ text}\\ \includegraphics[scale=0.35,% angle=45]{obrazek}
Oto
cˇen y´
text
5
ˇ KY LATEXU PRO PRA´CI S GRAFIKOU BALI´C
24
5.3 Balı´c ˇek color Balı´cˇek color pouzˇijeme, kdyzˇ budeme potrˇebovat pracovat s barvami – vysa´zet barevny´ text, zmeˇnit barvu neˇjake´ho graficke´ho objektu cˇi pozadı´ stra´nky atd. Prˇ´ıkazy definovane´ v balı´c ˇku \definecolor{jme´no}{model}{hodnoty} Tento prˇ´ıkaz slouzˇ´ı k definova´nı´ barvy. Parametr model urcˇuje pouzˇity´ barevny´ model. Standardnı´mi barevny´mi modely jsou rgb, cmyk a gray. Model rgb definuje barvu pomocı´ trˇ´ı slozˇek (red, green, blue), model cmyk pouzˇ´ıva´ slozˇky cˇtyrˇi (cyan, magenta, yellow a black) a model gray umozˇn ˇ uje pracovat se stupni sˇedi. Parametr hodnoty urcˇuje jas jednotlivy´ch slozˇek dane´ho modelu. Hodnoty se oddeˇlujı´ cˇa´rkou a kazˇda´ lezˇ´ı v intervalu <0, 1>. Neˇktere´ barvy jsou jizˇ prˇeddefinova´ny. Jsou to black (cˇerna´), white (bı´la´), red (cˇervena´), green (zelena´), blue (modra´), yellow (zˇluta´), cyan (azurova´) a magenta (purpurova´). \color{prˇeddefinovana´ barva}, resp. \color[model]{hodnoty} V prvnı´m prˇ´ıpadeˇ nastavı´ aktua´lnı´ barvu na standardneˇ prˇeddefinovanou barvu, prˇ´ıp. na barvu definovanou drˇ´ıve prˇ´ıkazem \definecolor. Druhy´ tvar prˇ´ıkazu umozˇn ˇ uje pozˇadovanou barvu nastavit prˇ´ımo. Parametry model a hodnoty majı´ stejny´ vy´znam, jako u prˇ´ıkazu \definecolor. \textcolor{prˇeddefinovana´ barva}{text}, resp. \textcolor[model]{hodnoty}{text} Jedna´ se o obmeˇnu prˇ´ıkazu \color. Text, ktery´ zada´me jako parametr prˇ´ıkazu, se vysa´zı´ vybranou barvou. Pote´ se barva vra´tı´ na svou prˇedchozı´ hodnotu.
5
ˇ KY LATEXU PRO PRA´CI S GRAFIKOU BALI´C
25
\pagecolor Tento prˇ´ıkaz ma´ stejne´ parametry jako prˇ´ıkaz \color. Pouzˇ´ıva´ se pro nastavenı´ barvy stra´nky. Tato barva se pouzˇije na aktua´lnı´ stra´nku a vsˇechny na´sledujı´cı´ stra´nky dokumentu (nebo do opeˇtovne´ho pouzˇitı´ tohoto prˇ´ıkazu – s jinou barvou v argumentu). \colorbox Prˇ´ıkaz \colorbox ma´ stejne´ parametry jako prˇ´ıkaz \textcolor. Barva zadana´ v parametrech vsˇak nemeˇnı´ barvu textu, ale nastavuje barvu vy´plneˇ obde´lnı´ku (boxu), ktery´ se pod zadany´m textem vytvorˇ´ı. \fcolorbox{barva okraje}{barva vy´plneˇ}{text} Podobneˇ jako prˇ´ıkaz \colorbox i tento prˇ´ıkaz vytva´rˇ´ı pod textem barevny´ ˇ ´ırˇka obde´lnı´k, navı´c se ale kolem tohoto obde´lnı´ku objevı´ jesˇteˇ ora´mova´nı´. S tohoto okraje je urcˇena de´lkovy´m registrem \fboxrule a minima´lnı´ vzda´lenost textu od tohoto okraje registrem \fboxsep. \normalcolor Nastavı´ aktua´lnı´ barvu textu na barvu „norma´lnı´“, tj. tu, ktera´ byla pouzˇita na zacˇa´tku dokumentu. Standardneˇ je to cˇerna´. • Prˇ´ıklad: \definecolor{seda}{gray}{0.5}
Sveˇtly´ text
\definecolor{zelena}{rgb}{0,0.7,0}
Tmaveˇ sˇedy´ text
\textcolor[gray]{0.7}%
Jeste jeden radek
{Sve ˇtly ´ text}\\ \color{seda}
Tmave ˇ s ˇedy ´ text\\
Jeste jeden radek\\ \color{white}
\colorbox{zelena}%
{Bı ´ly ´ text na zelene ´m podklade ˇ}\\ \fboxrule 1mm \fcolorbox{red}{seda}{Ra ´mec ˇek}
Bı´ly´ text na zelene´m podkladeˇ Ra´mecˇek
5
ˇ KY LATEXU PRO PRA´CI S GRAFIKOU BALI´C
26
5.4 Balı´c ˇek pstricks Tento balı´cˇek prˇedstavuje velmi silny´ na´stroj pro vykreslova´nı´ vektorove´ grafiky. Je zalozˇen na jazyce PostScript, proto prˇi jeho pouzˇitı´ musı´me vzˇdy na´sˇ zdrojovy´ text zkompilovat do forma´tu .ps. Pokud chceme mı´t cı´lovy´ dokument ve forma´tu .pdf, mu ˚ zˇeme jej zı´skat jedineˇ prˇevodem ze souboru .ps. Pdf TEX pouzˇ´ıt nelze. V balı´cˇku pstricks je definova´no prostrˇedı´ pspicture, ktere´ (podobneˇ jako LATEXove´ prostrˇedı´ picture – viz kap. 4.1) vytva´rˇ´ı kreslicı´ plochu, na nı´zˇ se postupneˇ nana´sˇejı´ jednotlive´ kreslene´ objekty. Pro objekty vkla´dane´ do prostrˇedı´ pspicture ale neplatı´ omezenı´, ktera´ platila v prostrˇedı´ picture, jelikozˇ jsou vykreslova´ny pomocı´ jiny´ch algoritmu ˚ . Prostrˇedı´ pspicture deklarujeme prˇ´ıkazem \begin{pspicture}(x1 , y1 )(x2 , y2 ). Parametry x 1 a y1 uda´vajı´ sourˇadnice jeho leve´ho dolnı´ho rohu a parametry x 2 a y2 sourˇadnice jeho prave´ho hornı´ho rohu. Pokud ma´ mı´t levy´ dolnı´ roh obra´zku sourˇadnice (0, 0), pak se prvnı´ za´vorka nemusı´ uva´deˇt. Na kreslicı´ plochu prostrˇedı´ pspicture lze vkla´dat mnoho ru ˚ zny´ch objektu ˚, naprˇ. cˇa´ry, kruzˇnice, elipsy, mrˇ´ızˇky apod. s ru ˚ zny´mi barvami, vy´plneˇmi a jiny´mi vlastnostmi. Lze je libovolneˇ ota´cˇet, opakovaneˇ vkla´dat a dokonce je mozˇne´ vykreslit graf neˇjake´ matematicke´ funkce. My si uka´zˇeme neˇktere´ za´kladnı´ mozˇnosti pra´ce s prostrˇedı´m pspicture, ostatnı´ jsou detailneˇ popsa´ny v ru ˚ zny´ch manua´lech ty´kajı´cı´ch se balı´cˇku pstricks. Prˇ´ıkazy definovane´ v balı´c ˇku \psdots[vl](x 1 , y1 ). . . (x n , yn ) Tento prˇ´ıkaz vykreslı´ bod (resp. body) v sourˇadnicı´ch udany´ch parametry (x i , yi ). Parametr vl urcˇuje jeho (resp. jejich) vlastnosti. Jednotlive´ volby se navza´jem oddeˇlujı´ cˇa´rkou a mohou to by´t naprˇ.: • dotstyle = znak: uda´va´, jaky´ znak se vysa´zı´ v dane´m bodeˇ, • dotscale = n: kolikra´t se zmensˇ´ı (zveˇtsˇ´ı) znak, ktery´m se bod vysa´zı´, • dotangle = n: u ´ hel natocˇenı´ tohoto znaku.
5
ˇ KY LATEXU PRO PRA´CI S GRAFIKOU BALI´C
27
\psline[vl](x 1 , y1 ). . . (x n , yn ) Prˇ´ıkaz pro vytvorˇenı´ (lomene´) cˇa´ry mezi 2 a vı´ce body. Za vlastnosti mu ˚ zˇeme zvolit tyto polozˇky: • linestyle = styl: umozˇn ˇ uje nastavit, aby cˇa´ra byla cˇa´rkovana´ (za styl dosadı´me dashed), nebo tecˇkovana´ (dotted) • linewidth = n: urcˇenı´ tlousˇt’ky cˇa´ry, je trˇeba udat jednotku • arrows = styl: styl koncu ˚ cˇa´ry, naprˇ. <-> (oboustranna´ sˇipka), |-| (u ´ secˇka s oznacˇeny´mi koncovy´mi body), c-c (zaoblene´ konce) apod. Vlastnosti linestyle a linewidth mu ˚ zˇeme pouzˇ´ıt i u ostatnı´ch vkla´dany´ch objektu ˚. \pspolygon[vl](x 1 , y1 ). . . (x n , yn ) Slouzˇ´ı k vykreslenı´ polygonu (mnohou ´ helnı´ku) urcˇene´ho n body. Pouzˇijeme-li prˇ´ıkaz \pspolygon*, bude mnohou ´ helnı´k vyplneˇny´. • Prˇ´ıklad: \begin{pspicture}(0,0)(5,3) \psdots[dotstyle=diamond,% dotangle=60, dotscale=3](1,0)
(1,1)(3,2)(4,3)(5,2)
ld
\psline[linestyle=dotted]%
\psline[arrows=<->](2,1)(3,0) \pspolygon*(4,0)(5,1)(4,2)
\psframe[vl](x 1 , y1 )(x 2 , y2 ) Vytvorˇ´ı cˇtverec (obde´lnı´k). Parametry x 1 a y1 urcˇujı´ sourˇadnice jeho leve´ho dolnı´ho rohu, x 2 a y2 jsou sourˇadnice prave´ho hornı´ho rohu. Za parametr vl mu ˚ zˇeme dosadit vlastnost framearc = n, ktera´ ovlivn ˇ uje zaoblenı´ rohu ˚ tohoto objektu. Prˇ´ıkaz \psframe* vykreslı´ cˇtverec (obde´lnı´k) vyplneˇny´.
5
ˇ KY LATEXU PRO PRA´CI S GRAFIKOU BALI´C
28
\pscircle[vl](x r , yr ){r} Prˇ´ıkaz pro vykreslenı´ kruzˇnice se strˇedem v bodeˇ (x r , yr ) a polomeˇrem r. Kruh nakreslı´me pomocı´ prˇ´ıkazu \pscircle*. \psellipse[vl](x 1 , y1 )(x 2 , y2 ) Vlozˇ´ı na kreslicı´ plochu elipsu. Parametry x 1 a y1 uda´vajı´ sourˇadnice strˇedu elipsy, x 2 a y2 jsou velikosti jejı´ horizonta´lnı´ a vertika´lnı´ poloosy. Prˇ´ıkazem \pselipse* nakreslı´me vyplneˇnou elipsu. \pscurve[vl](x 1 , y1 ). . . (x n , yn ) Vytvorˇ´ı krˇivku procha´zejı´cı´ body urcˇeny´mi parametry (x i , yi ). Pouzˇijeme-li prˇ´ıkaz \psccurve, krˇivka bude uzavrˇena´. • Prˇ´ıklad: \begin{pspicture}(0,0)(5,4) \psframe(0,0)(1,1) \psframe*[framearc=0.5](3,3)(5,4) \pscircle*(2,1){0.5} \psellipse(4,1)(1,0.5) \pscurve(0,2)(0.8,3)(1.4,2)(2,4) \end{pspicture}
Pouzˇitı´m balı´cˇku pstcol zı´ska´me mozˇnost u jednotlivy´ch objektu ˚ pouzˇ´ıvat take´ vlastnosti linecolor (barva cˇa´ry), fillstyle (styl vy´plneˇ) a fillcolor (barva vy´plneˇ), prˇ´ıp. hatchcolor (barva sˇrafova´nı´). Barvy se definujı´ stejneˇ jako u balı´cˇku color prˇ´ıkazem \definecolor, prˇ´ıp. jsou jizˇ pojmenovane´ (viz kap. 5.3). Vlastnost fillstyle mu ˚ zˇe mı´t tyto hodnoty: • solid: objekt bude cely´ vybarven, bez sˇrafova´nı´, • vline: vertika´lnı´ sˇrafova´nı´, • hline: horizonta´lnı´ sˇrafova´nı´, • crosshatch: oboje sˇrafova´nı´.
ˇ KY LATEXU PRO PRA´CI S GRAFIKOU BALI´C
5
29
Sourˇadnicove´ mrˇ´ız ˇky a grafy funkcı´ Kromeˇ vy´sˇe popsany´ch objektu ˚ mu ˚ zˇeme pomocı´ balı´cˇku pstricks vykreslit i sourˇadnicovou mrˇ´ızˇku nebo take´ graf libovolne´ matematicke´ funkce. Sourˇadnicovou mrˇ´ızˇku vytvorˇ´ıme pomocı´ prˇ´ıkazu \psgrid[vl](x 1 , y1 )(x 2 , y2 ). Parametry x 1 , y1 , x 2 a y2 urcˇujı´ sourˇadnice jejı´ch protilehly´ch rohu ˚ . Podobneˇ jako ostatnı´m objektu ˚ m mu ˚ zˇeme i sourˇadnicove´ mrˇ´ızˇce nastavit ru ˚ zne´ vlastnosti, naprˇ.: • subgriddiv = n: pocˇet dı´lu ˚ , na ktere´ se deˇlı´ hlavnı´ mrˇ´ızˇka; implicitneˇ je to 5, • gridwidth (resp. subgridwidth) = n: tlousˇt’ka cˇa´ry hlavnı´ mrˇ´ızˇky (resp. mrˇ´ızˇky druhe´ u ´ rovneˇ), je trˇeba udat jednotku; standardneˇ 8 pt (resp. 4 pt), • gridlabels = n: velikost pı´sma cˇ´ısel oznacˇujı´cı´ch mrˇ´ızˇku, je trˇeba udat jednotku; za´kladnı´ nastavenı´ je 10 pt, • gridcolor (resp. subgridcolor) = barva: barva cˇar tvorˇ´ıcı´ch hlavnı´ mrˇ´ızˇku (resp. mrˇ´ızˇku druhe´ u ´ rovneˇ); standardnı´ barvou je cˇerna´, • gridlabelcolor = barva: barva cˇ´ısel oznacˇujı´cı´ch mrˇ´ızˇku; implicitneˇ je cˇerna´. Prˇ´ıkaz \psplot[vl]{min x}{max x}{funkce} vykreslı´ graf matematicke´ funkce udane´ v jeho poslednı´m parametru. Tato funkce musı´ by´t zadana´ v jazyce PostScript. Za´pis funkce v tomto tvaru nenı´ obtı´zˇny´ (viz tabulka 1 na str. 30)10 . Parametry min x a max x urcˇujı´ rozmezı´ hodnot promeˇnne´, pro ktere´ se dany´ graf vykreslı´. Prˇ´ıkaz \psplot nenı´ definova´n prˇ´ımo v balı´cˇku pstricks, musı´me navı´c pouzˇ´ıt i balı´cˇek pst-plot. Za parametr vl mu ˚ zˇeme dosadit naprˇ. tyto vlastnosti: • plotstyle = hodnota: Nastavenı´ zpu ˚ sobu, jaky´m se graf funkce vykreslı´. Te´to vlastnosti mu ˚ zˇeme prˇirˇadit hodnotu line (graf se vykreslı´ pomocı´ cˇar), curve (pomocı´ krˇivek), dots (tecˇkovaneˇ) apod. • plotpoints = n: Pocˇet bodu ˚ , ktery´mi se graf vykreslı´. • linecolor = barva: Barva, kterou se graf vykreslı´.
10
Za´pis slozˇiteˇjsˇ´ı funkce zı´ska´me snadno kombinacı´ neˇkolika jednoduchy´ch, naprˇ. funkce 5 + log x
ma´ za´pis 5 x log add.
ˇ KY LATEXU PRO PRA´CI S GRAFIKOU BALI´C
5
Matematicky ´ vy ´ raz
Jeho za´pis v jazyce PostScript
a+b
a b add
a−b
a b sub
a∗b
a b mul
a/b
a b div
xn √ x
x n exp
log x
x log
30
x sqrt
Tabulka 1: Za´pis neˇktery´ch matematicky´ch vy´razu ˚ v jazyce PostScript • Prˇ´ıklad11 \begin{pspicture}(0,0)(5,2.5) %\psgrid(0,0)(5,2.5) \psplot[linecolor=blue]% {0}{4}{x 2 exp 8 div} \end{pspicture}
Pomocı´ balı´cˇku pstricks se dajı´ nakreslit velmi peˇkne´ obra´zky, grafy a sche´mata. Doporucˇuji prˇecˇ´ıst si o neˇm neˇjakou podrobneˇjsˇ´ı dokumentaci (naprˇ. [ITUG]) a vyzkousˇet jeho mozˇnosti v praxi.
11
Prˇ´ıkaz \psgrid je bohuzˇel zakomentova´n, jelikozˇ prˇi kompilaci te´to pra´ce docha´zelo k chybeˇ
z du ˚ vodu nekompatibility prˇ´ıkazu s balı´cˇkem czech.
6 Tvorba prezentacı´ v LATEXu Oblastı´, ktera´ s grafikou take´ u ´ zce souvisı´, je tvorba prezentacı´. LATEX ma´ k dispozici neˇkolik na´stroju ˚ , jak vytvorˇit prezentace na profesiona´lnı´ u ´ rovni. My si zde neˇktere´ z nich popı´sˇeme. Za´kladnı´m zpu ˚ sobem vytva´rˇenı´ prezentacı´ v LATEXu je pouzˇitı´ standardnı´ trˇ´ıdy dokumentu slides. Snı´mky prezentace obvykle chceme mı´t otocˇene´ „na sˇ´ırˇku“, proto do deklarace te´to trˇ´ıdy prˇida´me navı´c nepovinny´ parametr landscape – \documentclass[landscape]{slides}. Jeden snı´mek prezentace je zde prˇedstavova´n prostrˇedı´m slide, ktere´ je ve trˇ´ıdeˇ slides definova´no. Vkla´da´me do neˇj tedy vsˇechna data, ktera´ majı´ by´t na snı´mku. Trˇ´ıda dokumentu slides nema´ definova´ny prˇ´ıkazy pro cˇleneˇnı´ dokumentu, ktere´ zna´me ze trˇ´ıdy article (tj. \section, \subsection apod.), nelze je zde tedy pouzˇ´ıt. Veˇtsˇinu prostrˇedı´, naprˇ. itemize a verse vsˇak pouzˇ´ıt mu ˚ zˇeme. Snı´mky takto vytvorˇene´ prezentace mu ˚ zˇeme dotva´rˇet za pomoci ru ˚ zny´ch prˇ´ıdavny´ch balı´cˇku ˚ , naprˇ. balı´cˇek color (kap. 5.3) na´m mj. umozˇn ˇ uje definovat barvu pozadı´ snı´mku. Pomocı´ balı´cˇku fancyhdr mu ˚ zˇeme nastavit hlavicˇku, ktera´ se bude objevovat na snı´mcı´ch12 . Samozrˇejmeˇ lze do prezentace vkla´dat i obra´zky pouzˇitı´m balı´cˇku graphics (resp. graphicx).
Dals ˇ´ı trˇ´ıdy dokumentu˚ a prˇ´ıdavne´ balı´c ˇky Kromeˇ trˇ´ıdy slides existujı´ i dalsˇ´ı, ktere´ se pouzˇ´ıvajı´ prˇi tvorbeˇ prezentacı´. Obvykle jizˇ majı´ prˇednastavenou strukturu prezentace a jejı´ vzhled, tato nastavenı´ vsˇak mu ˚ zˇeme meˇnit. Rovneˇzˇ ma´me k dispozici ru ˚ zne´ balı´cˇky urcˇene´ prˇ´ımo pro pra´ci s prezentacemi. My si strucˇneˇ popı´sˇeme trˇ´ıdu prosper a balı´cˇky texpower, ifmslide a pdfslide. Trˇ´ıda prosper Prˇi deklaraci trˇ´ıdy prosper mu ˚ zˇeme prˇednastavit neˇktere´ vlastnosti nasˇ´ı prezentace jako nepovinne´ parametry. Jsou to naprˇ.: 12
Balı´cˇek fancyhdr jsem pouzˇil i pro tvorbu hlavicˇky stra´nek te´to prˇ´ırucˇky.
31
TVORBA PREZENTACI´ V LATEXU
6
32
• total: Na jednotlivy´ch snı´mcı´ch bude uvedeno nejen cˇ´ıslo aktua´lnı´ho snı´mku, ale i jejich celkovy´ pocˇet, • slideBW : Snı´mky budou cˇernobı´le´, • noFooter: Na snı´mcı´ch nebudou v za´patı´ uvedeny zˇa´dne´ informace. Tato trˇ´ıda ma´ jizˇ vytvorˇeny´ch neˇkolik vzhledu ˚ pro vytva´rˇene´ prezentace, ze ktery´ch si mu ˚ zˇeme vybrat (naprˇ. azure, autumn, nuancegris, lignesbleues aj.). Na´zev zvolene´ho vzhledu pak vlozˇ´ıme do deklarace trˇ´ıdy podobneˇ jako vy´sˇe uvedene´ mozˇnosti. Dalsˇ´ı vlastnosti mu ˚ zˇeme take´ zvolit v preambuli dokumentu. Je mozˇno uve´st na´zev prezentace (\title{na´zev}), podtitul prozentace (\subtitle{podtitul}), autora (\author{jme´no}) apod. Tyto informace pak vlozˇ´ıme na snı´mek prˇ´ıkazem \maketitle. Text uvedeny´ jako parametr prˇ´ıkazu \slideCaption{text} bude uveden na kazˇde´m snı´mku. Podobneˇ prˇ´ıkaz \Logo(x, y){objekt} slouzˇ´ı ke vlozˇenı´ objektu (veˇtsˇinou obra´zku), ktery´ se ma´ vlozˇit na kazˇdy´ snı´mek. Parametry x a y urcˇujı´ sourˇadnice, na ktery´ch bude umı´steˇn levy´ dolnı´ roh loga. Pro volbu pı´sma nadpisu ˚ a textu jsou definova´ny prˇ´ıkazy \FontTitle{volba} a \FontText{volba}. Za parametr volba dosazujeme rodinu fontu (informace o rodina´ch fontu ˚ viz [RYBICˇKA]). Pouzˇijeme-li tyto prˇ´ıkazy s maly´mi pocˇa´tecˇnı´mi pı´smeny, pak jejich funkce spocˇ´ıva´ ve vysa´zenı´ textu uvedene´ho v parametru. Tento text se vysa´zı´ s forma´tova´nı´m zvoleny´m prˇ´ıkazy \FontTitle nebo \FontText. Stejneˇ jako u trˇ´ıdy slides i zde je snı´mek prˇedstavova´n prostrˇedı´m slide. Toto prostrˇedı´ ma´ povinny´ parametr, do ktere´ho musı´me zadat na´zev snı´mku.13 Snı´mku ˚ m lze take´ prˇirˇazovat ru ˚ zne´ vizua´lnı´ efekty. Toto se prova´dı´ pomocı´ prˇ´ıkazu \overlays{n}{snı´mek}. Parametr n urcˇuje, z kolika kroku ˚ se animace bude skla´dat, za druhy´ parametr dosadı´me cele´ prostrˇedı´ slide – tedy snı´mek, ktere´ho se animace bude ty´kat. Animace se vytvorˇ´ı tak, zˇe z pu ˚ vodnı´ho snı´mku vznikne n novy´ch snı´mku ˚ . Kazˇdy´ z nich pak prˇedstavuje jeden krok animace. Uvnitrˇ snı´mku vlozˇene´ho prˇ´ıkazem \overlays mu ˚ zˇeme pouzˇ´ıt neˇktere´ z teˇchto prˇ´ıkazu ˚: 13
Prˇ´ıkazy pro cˇleneˇnı´ dokumentu trˇ´ıdy article pouzˇ´ıt lze, ale jen mimo prostrˇedı´ slide. Tyto prvky
se pak nevysa´zı´ na snı´mky, ale na norma´lnı´ stra´nky s textem.
6
TVORBA PREZENTACI´ V LATEXU
33
Obra´zek 2: Prˇ´ıklad snı´mku vytvorˇene´ho pomocı´ trˇ´ıdy prosper • \untilSlide{p}{data}: Data vlozˇena´ do druhe´ho parametru se objevı´ na vsˇech vznikly´ch snı´mcı´ch od prvnı´ho do p, • \fromSlide{p}{data}: Data se objevı´ na vsˇech vznikly´ch snı´mcı´ch od p do n, • \onlySlide{p}{data}: Data se objevı´ jen na snı´mku p. Tyto prˇ´ıkazy mu ˚ zˇeme pouzˇ´ıt i s velky´mi pocˇa´tecˇnı´mi pı´smeny. Potom nemajı´ druhy´ parametr a jejich funkce se vztahuje na vsˇe, co je ve zdrojove´m textu za nimi. Na obra´zku 2 vidı´me prˇ´ıklad snı´mku, ktery´ mu ˚ zˇeme pomocı´ trˇ´ıdy dokumentu prosper vytvorˇit. Jeho zdrojovy´ ko´d je uveden v prˇ´ıloze A. Trˇ´ıda prosper vyzˇaduje, aby byl zdrojovy´ text prˇekla´da´n do cı´love´ho forma´tu prˇes forma´t .dvi (poprˇ. i .ps). Pdf TEX bohuzˇel nelze pouzˇ´ıt. Od toho se odvı´jı´ i omezenı´ na forma´ty obra´zku ˚ , ktere´ bychom prˇ´ıpadneˇ chteˇli do prezentace vlozˇit (viz kap. 3.1). Mozˇnosti te´to trˇ´ıdy rozsˇirˇuje balı´cˇek HA-prosper. Balı´c ˇek texpower Balı´cˇek texpower funguje hlavneˇ jako rozsˇ´ırˇenı´ mozˇnostı´ trˇ´ıd a ostatnı´ch balı´cˇku ˚ urcˇeny´ch pro tvorbu prezentacı´ o dynamicke´ prvky. Obsahuje prˇ´ıkazy pro pra´ci
6
TVORBA PREZENTACI´ V LATEXU
34
Obra´zek 3: Prˇ´ıklad snı´mku vytvorˇene´ho pomocı´ balı´cˇku ifmslide s barvami, vkla´da´nı´ navigacˇnı´ch tlacˇ´ıtek, tvorbu animacı´ apod. Pro spra´vnou funkci balı´cˇku je trˇeba prˇed jeho deklaracı´ zavolat take´ balı´cˇky hyperref a soul. Balı´c ˇek ifmslide Balı´cˇek ifmslide nabı´zı´ podobne´ funkce jako trˇ´ıda prosper. Umozˇn ˇ uje na´m take´ vlozˇit do prezentace panel s navigacˇnı´mi tlacˇ´ıtky, meˇnit jeho polohu, pozadı´ apod. Lze jej pouzˇ´ıt v dokumentech trˇ´ıdy powersem, prˇ´ıp. seminar. Prˇi jeho deklaraci mu ˚ zˇeme zvolit neˇktere´ vlastnosti, naprˇ. nepovinny´ parametr button nastavı´ hezcˇ´ı vzhled tlacˇ´ıtek na navigacˇnı´m panelu. Du ˚ lezˇita´ je volba display, pokud nenı´ uvedena, budou vypnuty vsˇechny efekty. Balı´cˇek vyzˇaduje, aby byly nainstalova´ny balı´cˇky texpower a hyperref. Prˇed vlozˇenı´m balı´cˇku ifmslide by meˇl by´t deklarova´n balı´cˇek soul. Navigacˇnı´ panel vlozˇ´ıme prˇ´ıkazem \pagestyle{panel} a jeho polohu urcˇ´ıme prˇ´ıkazem \panelposition{pozice}. Pozice panelu mu ˚ zˇe by´t left (vlevo), right (vpravo), top (nahorˇe), bottom (dole) a outsidebottom (panel bude dole, ale nebude soucˇa´stı´ snı´mku). Nechceme-li navigacˇnı´ panel, pouzˇijeme prˇ´ıkaz \pagestyle{empty}. Obsah snı´mku se opeˇt vkla´da´ do prostrˇedı´ slide. Fungujı´ zde take´ prˇ´ıkazy pro
TVORBA PREZENTACI´ V LATEXU
6
35
Obra´zek 4: Prˇ´ıklad snı´mku vytvorˇene´ho pomocı´ balı´cˇku pdfslide cˇleneˇnı´ textu \section atd. Na´zvy takto definovany´ch cˇa´stı´ textu jsou zvy´razneˇny. Balı´cˇek ma´ implicitneˇ nastaveno, zˇe se obsah snı´mku ˚ vertika´lneˇ zarovna´va´ doprostrˇed. Toto nastavenı´ lze zrusˇit prˇ´ıkazem \centerslidesfalse. Vizua´lnı´ efekty se prova´deˇjı´ pomocı´ prˇ´ıkazu ˚ definovany´ch v balı´cˇku texpower (jde naprˇ. o postupne´ zobrazova´nı´ informacı´ na snı´mku atp. – viz dokumentace balı´cˇku texpower). Pro prˇeklad zdrojove´ho textu mu ˚ zˇeme pouzˇ´ıt oba zpu ˚ soby (tedy i Pdf TEX). Pouzˇijeme-li vsˇak Pdf TEX, nevlozˇ´ı se na´m do prezentace panel na´stroju ˚ . Prˇ´ıklad snı´mku vytvorˇene´ho pomocı´ tohoto balı´cˇku vidı´me na obra´zku 3 (jeho zdrojovy´ ko´d lze najı´t v prˇ´ıloze A). Balı´c ˇek pdfslide Jde o dalsˇ´ı balı´cˇek pro tvorbu prezentacı´ s jizˇ prˇednastaveny´m vzhledem snı´mku ˚. Pro svou pra´ci potrˇebuje, aby byl nainstalova´n balı´cˇek hyperref. Vkla´da´me jej do dokumentu trˇ´ıdy article, slides apod. Pouzˇijeme-li trˇ´ıdu article14 , platı´ pro pouzˇ´ıva´nı´ prˇ´ıkazu ˚ \section atd. tote´zˇ, co u balı´cˇku ifmslide. Prˇ´ıkazem \overlay{soubor} mu ˚ zˇeme snı´mku nastavit na pozadı´ libovolny´ ob14
Tuto volbu doporucˇuji
6
TVORBA PREZENTACI´ V LATEXU
36
ra´zek. Ten se rozta´hne prˇes celou plochu snı´mku. Kazˇde´mu snı´mku lze nastavit jine´ pozadı´. I tento balı´cˇek ma´ definova´n navigacˇnı´ panel. Vzhled jeho tlacˇ´ıtek ovlivnı´me zada´nı´m nepovinne´ho parametru prˇi deklaraci balı´cˇku. Mozˇne´ hodnoty jsou contnav (doporucˇena´ volba) a ams (pouzˇ´ıva´ se v prˇ´ıpadeˇ, zˇe nema´me nainstalova´ny fonty contnav). Soucˇa´stı´ balı´cˇku je i prˇ´ıkaz \pagedissolve, ktery´ na´m umozˇn ˇ uje nastavit, jaky´m zpu ˚ sobem se provede prˇechod na novy´ snı´mek (naprˇ. zˇe novy´ snı´mek prˇekryje stary´ jako roleta apod. – vı´ce viz dokumentace tohoto balı´cˇku). Na obra´zku 4 je prˇ´ıklad snı´mku, ktery´ lze pomocı´ balı´cˇku vytvorˇit (jeho zdrojovy´ ko´d je opeˇt uveden v prˇ´ıloze A). Balı´cˇek pdfslides pro prˇeklad zdrojove´ho textu pouzˇ´ıva´ Pdf TEX. Kromeˇ vy´sˇe popsany´ch trˇ´ıd dokumentu ˚ a balı´cˇku ˚ pro tvorbu prezentacı´ existuje cela´ rˇada dalsˇ´ıch. Jmenujme alespon ˇ trˇ´ıdu beamer, seminar nebo jizˇ zmı´neˇny´ balı´cˇek HA-prosper.
´ NA´STROJE EXTERNI´ GRAFICKE
7
37
7 Externı´ graficke´ na´stroje V te´to kapitole si povı´me o neˇkolika na´strojı´ch, ktere´ mu ˚ zˇeme pouzˇ´ıt prˇi zpracova´va´nı´ grafiky pomocı´ LATEXu. Jsou jimi programy METAFONT, bm2font a GNUPlot. Informace o dalsˇ´ıch pomocny´ch programech pro TEX lze najı´t naprˇ. na webovy´ch stra´nka´ch [ROZCESTNI´K].
METAFONT METAFONT je program pro tvorbu slozˇiteˇjsˇ´ı vektorove´ grafiky, nezˇ na´m umozˇn ˇ uje prostrˇedı´ picture. Vytvorˇil ho autor TEXu Donald E. Knuth. Pouzˇ´ıva´ se zejme´na pro tvorbu pı´sem (fontu ˚ ), ale i pro kreslenı´ jiny´ch obra´zku ˚ . Struktura a chova´nı´ METAFONTu jsou podobne´ jako jako u TEXu. Jeho vy´stupem je soubor typu .gf, obsahujı´cı´ bitmapu fontu v pozˇadovane´m rozlisˇenı´. Z jazyka METAFONTu vznikl jazyk METAPOST, ktery´ ma´ podobne´ mozˇnosti. Lisˇ´ı se vsˇak forma´tem vy´stupu. Vytvorˇ´ıme-li obra´zek METAPOSTem, ulozˇ´ı se ve forma´tu .ps (PostScript), cozˇ je pro na´s mnohem prˇijatelneˇjsˇ´ı. Podrobneˇjsˇ´ı informace o programu METAFONT lze najı´t v knize [KNUTH], z cˇesky´ch publikacı´ jmenujme naprˇ. knihu [OLSˇA´K].
bm2font Jedna´ se o program, ktery´ doka´zˇe prˇeve´st bitmapove´ obra´zky ru ˚ zny´ch typu ˚ (naprˇ. .bmp, .gif, .pcx aj.) na fonty, se ktery´mi pak TEX (prˇ´ıp. LATEX) pracuje. Zpracova´vany´ obra´zek je programem rozdeˇlen na cˇa´sti, ze ktery´ch se pak vytvorˇ´ı jednotlive´ znaky fontu. Soucˇasneˇ se take´ vygeneruje soubor typu .tex obsahujı´cı´ prˇ´ıkazy pro spra´vne´ vlozˇenı´ takto upravene´ho obra´zku. Prˇed samotny´m vlozˇenı´m obra´zku do dokumentu se musı´me ujistit, zda jsou vsˇechny vygenerovane´ soubory ve slozˇce, kde ma´me ulozˇeny´ dokument. Take´ je trˇeba soubory typu .pk zkopı´rovat do slozˇky, ve ktere´ ma´ TEX standardneˇ ulozˇeny fonty. Obra´zek pak do dokumentu vlozˇ´ıme pomocı´ prˇ´ıkazu ˚ \input{na´zev.tex} a \setna´zev.15 Program bm2font je zdarma. 15
Za na´zev dosadı´me na´zev souboru s obra´zkem, naprˇ. \input{obrazek.tex} \setobrazek
´ NA´STROJE EXTERNI´ GRAFICKE
7
38
GNUPlot Na´stroj GNUPlot se pouzˇ´ıva´ pro tvorbu grafu ˚ ru ˚ zny´ch matematicky´ch funkcı´. Mu ˚ zˇe se jednat jak o funkce jedne´, tak i dvou promeˇnny´ch. Program ovla´da´me (podobneˇ jako TEX) pomocı´ jednoduchy´ch prˇ´ıkazu ˚ . Ty mu ˚ zˇeme zada´vat bud’ jednotliveˇ prˇ´ımo do prˇ´ıkazove´ rˇa´dky GNUPlotu nebo jejich posloupnost ulozˇ´ıme do neˇjake´ho textove´ho souboru a ten pak programem zpracujeme. Prˇ´ıkazy se mohou ty´kat dat, ktera´ se majı´ vykreslit, forma´tova´nı´ grafu, typu vy´stupu (mu ˚ zˇeme urcˇit, zˇe chceme mı´t obra´zek s grafem naprˇ. ve forma´tu .eps) apod. Tento na´stroj je volneˇ dostupny´ a doporucˇuji jej vyzkousˇet.16
16
Informace o GNUPlotu naleznete na internetove´ stra´nce http://www.gnuplot.info
8 Za´ve ˇr Cı´lem te´to pra´ce bylo uka´zat, jake´ mozˇnosti skry´vajı´ typograficky´ syste´m TEX a jeho na´stavba LATEX v oblasti grafiky. Na zacˇa´tku pra´ce jsem popsal dva za´kladnı´ druhy soucˇasne´ pocˇ´ıtacˇove´ grafiky – rastrovou a vektorovou grafiku. V dalsˇ´ı kapitole jsem se zameˇrˇil na mozˇnosti vkla´da´nı´ externı´ch obra´zku ˚ do vytva´rˇene´ho dokumentu. Jednalo se hlavneˇ o popis za´vislosti forma´tu obra´zku na forma´tu vy´stupnı´ho dokumentu a charakteristiku tzv. plovoucı´ch prostrˇedı´ (zejme´na prostrˇedı´ figure, ktere´ se pouzˇ´ıva´ pro vkla´da´nı´ obra´zku ˚ do dokumentu). Take´ jsem uka´zal neˇktere´ zpu ˚ soby, jak zajistit „obte´ka´nı´“ obra´zku textem. Ve cˇtvrte´ kapitole jsem se veˇnoval LATEXove´mu prostrˇedı´ picture, ktere´ se pouzˇ´ıva´ pro sazbu jednoduche´ vektorove´ grafiky. Popsal jsem za´kladnı´ objekty, ktere´ lze v tomto prostrˇedı´ vlozˇit na kreslicı´ plochu, omezenı´, ktera´ pro neˇ platı´ a zpu ˚ soby, jak lze meˇnit neˇktere´ jejich vlastnosti. Rovneˇzˇ jsem uvedl neˇktere´ LATEXove´ balı´cˇky, ktere´ mozˇnosti prostrˇedı´ picture rozsˇirˇujı´ a strucˇneˇ je popsal. O balı´cˇcı´ch, ktere´ v LATEXu umozˇn ˇ ujı´ pohodlneˇjsˇ´ı a snadneˇjsˇ´ı pra´ci s grafikou, pojedna´vala pa´ta´ kapitola. Jednalo se o balı´cˇky graphics, graphicx, pstricks a take´ o balı´cˇek color, ktery´ podporuje pra´ci s barvami. ˇ esta´ kapitola se zaby´vala tvorbou prezentacı´ pomocı´ LATEXu. Umeˇnı´ tvorby preS zentacı´ je v soucˇasnosti du ˚ lezˇitou slozˇkou mnoha odveˇtvı´ pracovnı´ho zˇivota. Prezentace se pouzˇ´ıvajı´ naprˇ. ve sˇkolstvı´, na veˇdecky´ch konferencı´ch apod. LATEX nabı´zı´ neˇkolik zpu ˚ sobu ˚ , jak vytvorˇit prezentaci podle nasˇich prˇedstav. V poslednı´ kapitole jsem se zameˇrˇil na neˇktere´ externı´ na´stroje, ktere´ se obvykle pouzˇ´ıvajı´ prˇi pra´ci s grafikou v LATEXu. Jde naprˇ. o program METAFONT (vytvorˇeny´ samotny´m autorem TEXu D. E. Knuthem) pro tvorbu fontu ˚ nebo program GNUPlot, ktery´ se pouzˇ´ıva´ pro tvorbu ru ˚ zny´ch grafu ˚ apod. Funkce vsˇech popsany´ch LATEXovy´ch prˇ´ıkazu ˚ a na´stroju ˚ jsem se snazˇil ilustrovat na vhodny´ch prˇ´ıkladech. Tato pra´ce je k dispozici (i se svy´m zdrojovy´m ko´dem) v elektronicke´ podobeˇ s obra´zky v barveˇ na prˇilozˇene´m CD. Popisem vy´sˇe zmı´neˇny´ch metod pra´ce s grafikou v LATEXu jsem splnil cı´l pra´ce. 39
A
A
´ KO´DY SNI´MKU˚ UVEDENY´CH V KAPITOLE 6 ZDROJOVE
Zdrojove´ ko ´ dy snı´mku˚ uvedeny ´ ch v kapitole 6
Na´sledujı´cı´m ko´dem byl vygenerova´n snı´mek na obra´zku 2 (str. 33): \documentclass[nuancegris]{prosper} \usepackage{graphicx} \usepackage{bookman} \usepackage{czech}
\begin{document} \slideCaption{Prezentace vytvor ˇena ´ pomocı ´ tr ˇı ´dy \texttt{prosper}} \Logo(8.8,-0.2){\textit{MojeLogo}} \FontText{pbk} %Nastavenı ´ rodiny pı ´sma textu na Bookman
\begin{slide}{Snı ´mek} Na snı ´mek mu ˚z ˇeme da ´t seznam: {\small \begin{itemize} \item Prvnı ´ poloz ˇka \item Druha ´ poloz ˇka \item Poslednı ´ poloz ˇka \end{itemize}} \end{slide} \end{document}
Tı´mto ko´dem byl vytvorˇen snı´mek na obra´zku 3 (str. 34): \documentclass[landscape]{powersem}
\usepackage{bookman} \usepackage{graphicx} \usepackage{czech} \usepackage{soul} \usepackage[display,button]{ifmslide}
\begin{document} \pagestyle{panel} \panelposition{right} \centerslidesfalse
40
A
´ KO´DY SNI´MKU˚ UVEDENY´CH V KAPITOLE 6 ZDROJOVE
\begin{slide} \section{Snı ´mek vytvor ˇeny ´ balı ´c ˇkem \texttt{ifmslide}} Na tomto snı ´mku je tabulka
{\small \begin{tabular}{|p{2cm}|p{2cm}|p{3cm}|} \hline $a$ & $b$ 325 & 222
& $a+b$ \\ \hline & 547
\\ \hline
11
& 3523 & 3534
\\ \hline
1
& 1
\\ \hline
& 2
\end{tabular}}
\bigskip Jes ˇte ˇ vloz ˇı ´me obra ´zek
\includegraphics[scale=0.5]{obrazek} \end{slide} \end{document}
Snı´mek na obra´zku 4 (str. 35) jsem vytvorˇil pomocı´ tohoto ko´du: \documentclass[a4paper,landscape]{article} \usepackage[contnav]{pdfslide} \usepackage{bookman} \usepackage{czech} \usepackage{graphicx}
\begin{document} \overlay{pozadi}
\section{Dals ˇı ´ snı ´mek...} Tento snı ´mek byl vytvor ˇen pomocı ´ balı ´c ˇku \texttt{pdfslide}. Skla ´da ´ se z˜tohoto textu, navigac ˇnı ´ho panelu a vloz ˇene ´ho obra ´zku.
\subsection{Vloz ˇeny ´ obra ´zek} \includegraphics[scale=0.5]{obrazek} \end{document}
41
Reference [RYBICˇKA]
ˇ KA, J. LATEX pro zacˇa´tecˇnı´ky. RYBIC Brno: Konvoj, 2003.
[KNUTH]
KNUTH, D. E. The METAFONT book. Massachusetts: Addison-Wesley, 1986.
[OLSˇA´K]
ˇA ´ K, P. Typograficky´ syste´m TEX. OLS Brno: Konvoj, 1997.
[ZDRA´HAL]
´ HAL, T. Hypertextova´ prˇ´ırucˇka k LATEXu. ZDRA Opava, 2004.
[BUK]
BUK, T. Zacˇ´ına´me s TEXem na [fi studovna].muni.cz. Brno, 2002.
[HELLER]
HELLER, J. Typograficky´ syste´m TEX. Praha, 2005.
[SOPUCH]
SOPUCH, P. LATEX v kostce [online]. 2001. Dostupny´ z WWW:
ˇ VAMBERG] [S
ˇ VAMBERG, M. Jak na LATEX [online]. 2003. Dostupny´ z WWW: S
[WIEDMANN]
WIEDMANN, M. Screen Presentation Tools [online]. 2004. Dostupny´ z WWW:
[ITUG]
The Indian TEX Users Group. Graphics with pstricks [online]. 2002. Dostupny´ z WWW:
[ROZCESTNI´K] Rozcestnı´k grafiky v TEXu [online]. Dostupny´ z WWW:
[BM2FONT]
bm2font [online]. Dostupny´ z WWW:
42
43
REFERENCE
[VEKT]
Vektorova´ grafika Slovnı´k internetovy´ch vy´razu˚ SYMBIO [online]. Dostupny´ z WWW:
[RASTR]
Rastrova´ grafika Slovnı´k internetovy´ch vy´razu˚ SYMBIO [online]. Dostupny´ z WWW:
[DRSNY]
Drsny´ u´vod do LATEXu aneb Moc se s tı´m nemazlete [online]. 2005. Dostupny´ z WWW:
[COLOR]
CARLISHE, D. P. The color package. 1995. Dokumentace k balı´cˇku color.
[GRFPAC]
CARLISHE, D. P. Packages in the ‘graphics’ bundle. 1999. Soucˇa´st dokumentace ke graficky´m balı´cˇku˚m.
[EEPIC]
KWOK, C. EEPIC (Extensions to epic and LATEX Picture Environment Version 1.1). 1998. Dokumentace k balı´cˇku eepic.
[IFMSLIDE]
EMMEL, T. ifmslide.sty - Powerful presentations with Pdf LATEX and LATEX. 2001. Dokumentace k balı´cˇku ifmslide.
[PDFSLIDE]
The Indian TEX Users Group. Presentations with Pdf TEX. Dokumentace k balı´cˇku pdfslide.
[PROSPER]
GOUALARD, F., NEERGAARD, P. M. Making slides in LATEX with prosper. Dokumentace k trˇ´ıdeˇ dokumentu prosper.
Aktua´lnost webovy´ch odkazu ˚ jsem zkontroloval dne 20. dubna 2005. Uvedena´ dokumentace k jednotlivy´m balı´cˇku ˚ m je soucˇa´stı´ plne´ instalace TEXLive.
Vysa´zeno syste´mem LATEX