Grafika v LaTeXu

Transkript

Grafika v LaTeXu
SLEZSKÁ UNIVERZITA V OPAVĚ
Filozoficko-přı́rodovědecká fakulta
Ústav informatiky
DIPLOMOVÁ PRÁCE
Michal Blažek
2006 Opava
SLEZSKÁ UNIVERZITA V OPAVĚ
Filozoficko-přı́rodovědecká fakulta
Ústav informatiky
Michal Blažek
BAKALÁŘSKÁ DIPLOMOVÁ PRÁCE
Grafika v LATEXu
Vedoucı́ diplomové práce:
Mgr. Šárka Vavrečková
Opava 2006
PROHLÁŠENÍ
Prohlašuji, že jsem tuto diplomovou práci vypracoval samostatně a použil pouze
uvedené zdroje a literaturu.
V Opavě, 28. dubna 2006
..........................................
Michal Blažek
PODĚKOVÁNÍ
Chtěl bych poděkovat Mgr. Šárce Vavrečkové za cenné rady a připomı́nky při tvorbě
této diplomové práce.
Obsah
1 Úvod
2
2 Druhy grafiky
3
3 Sazba obrázků do dokumentu
5
3.1 Formáty podporovaných externı́ch obrázků . . . . . . . . . . . . . . . .
5
3.2 Plovoucı́ prostředı́ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
3.3 Obtékánı́ obrázků textem . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
4 Vytvářenı́ jednoduché vektorové grafiky pomocı́ LATEXu
10
4.1 Prostředı́ picture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4.1.1 Objekty, které je možné vložit na kreslicı́ plochu . . . . . . . . . 11
4.1.2 Nastavenı́ vlastnostı́ jednotlivých objektů . . . . . . . . . . . . . . 16
4.2 Balı́čky rozšiřujı́cı́ možnosti prostředı́ picture . . . . . . . . . . . . . . 17
5 Balı́čky LATEXu pro práci s grafikou
20
5.1 Balı́ček graphics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5.2 Balı́ček graphicx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
5.3 Balı́ček color
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.4 Balı́ček pstricks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
6 Tvorba prezentacı́ v LATEXu
31
7 Externı́ grafické nástroje
37
8 Závěr
39
A Zdrojové kódy snı́mků uvedených v kapitole 6
40
1
1 Úvod
Tato práce se zabývá možnostmi sázecı́ho systému LATEX v oblasti grafiky. LATEX
byl původně určen hlavně pro sazbu textu a matematiky. V dnešnı́ době však již
existuje několik řešenı́, jak s jeho pomocı́ vytvářet dokumenty s obrázky.
Cı́lem práce bylo vytvořit komplexnı́ přı́ručku, která čtenáře s těmito řešenı́mi
seznámı́, jelikož informace o daném tématu sice existujı́, ale jsou obvykle roztroušeny v mnoha publikacı́ch. Tyto publikace se většinou grafice v LATEXu věnujı́ jen
okrajově a navı́c jsou často v angličtině.
V prvnı́ části této přı́ručky jsou popsány základnı́ dva druhy dnešnı́ počı́tačové
grafiky – rastrová a vektorová grafika, možnosti jejich využitı́, jejich výhody, nevýhody a rozdı́ly mezi nimi. Dalšı́ část pojednává o možných způsobech vkládánı́
obrázků do LATEXového dokumentu. Je zde rovněž popsána závislost formátu vkládáných obrázků na typu výstupnı́ho dokumentu, tj. .dvi, .ps nebo .pdf.
LATEX sám umı́ vykreslovat jednoduchou vektorovou grafiku. Lze ji vytvářet uvnitř
prostředı́ picture. Jeho popisem se zabývám ve čtvrté kapitole této práce. Pokud
chceme do dokumentu vložit nějaký externı́ obrázek, můžeme k tomu použı́t některého z podpůrných balı́čků LATEXu pro práci s grafikou. Pátá kapitola popisuje tři
z nich, a to balı́čky graphics, graphicx a pstricks. Dále je zde popsán i balı́ček
color, který sice nenı́ přı́mo „grafickým“ balı́čkem, ale své mı́sto zde má, jelikož
umožňuje práci s barvami.
Dalšı́ oblastı́, kterou se tato práce zabývá, je v dnešnı́ době docela potřebná
tvorba prezentacı́. LATEX má pro ni vytvořeny různé třı́dy dokumentů (např. slides),
resp. přı́davné balı́čky (pdfslide apod.), které umožňujı́ vytvářet prezentace na
velmi vysoké úrovni.
V poslednı́ kapitole popisuji některé z externı́ch nástrojů, které se použı́vajı́
pro vytvářenı́ různých grafických objektů, jež pak můžeme vkládat do LATEXového
dokumentu. Nejčastěji se jedná o jednoduché nástroje pro tvorbu grafů, fontů atd.
Použitı́ jednotlivých přı́kazů a nástrojů je zde ilustrováno názornými přı́klady pro
co nejlepšı́ pochopenı́ dané problematiky. Obvykle se přı́klady skládajı́ ze dvou částı́.
V prvnı́ části je napsán zdrojový text LATEXu a v druhé části je ukázáno, jak LATEX
tento zdrojový text interpretuje (tj. co bude vysázeno ve výstupnı́m dokumentu).
2
2 Druhy grafiky
Dřı́ve, než budeme popisovat možnosti systému LATEX při práci s grafikou, popı́šeme
si stručně druhy počı́tačové grafiky, se kterými se dnes můžeme nejčastěji setkat.
Jsou jimi rastrová a vektorová grafika.
Rastrová grafika
Tento druh grafiky se také označuje jako bitmapová nebo bodová grafika. Obrázek
je tvořen jemnou sı́tı́ bodů, tzv. rastrem. Každý takový bod má svou barvu a pozici. Při určitém množstvı́ bodů a velké jemnosti bitmapy pak body vytvářejı́ zdánı́
jednolitého obrazu.
Princip rastrové grafiky je velmi jednoduchý a účinný, proto nacházı́ široké
uplatněnı́ v mnoha oborech, např. v oblasti digitálnı́ fotografie, tvorby webových
stránek atd. Pro vytvářenı́, úpravu a prohlı́ženı́ bitmapových obrázků existuje mnoho nástrojů (např. Adobe Photoshop). Nejčastějšı́mi formáty pro rastrovou grafiku
jsou .bmp, .gif a .jpg.
Bodová grafika má však i své nevýhody. Mezi ty základnı́ patřı́ jejı́ velká prostorová náročnost. Je třeba mı́t uloženy informace o každém bodě obrázku (pozici,
barvu, přı́p. informace o průhlednosti). Obrázek pak může zabı́rat několik megabajtů. Tento problém částečně řešı́ různé metody komprese rastrové grafiky. Asi
nejznámějšı́ je metoda JPEG. Dalšı́m problémem rastrové grafiky je výrazné snižovánı́ kvality obrázku při jeho zvětšovánı́. Zvětšujı́ se totiž samotné body a rastr
ztrácı́ svou jemnost.
LATEX rastrové obrázky vytvářet sice neumı́, ale umožňuje jejich vkládánı́.
Vektorová grafika
Narozdı́l od rastrové grafiky nenı́ vektorová grafika založena na principu tvořenı́
obrazu z jednotlivých bodů. Celý obrázek se skládá z různých matematicky definovatelných objektů (kružnice, obdélnı́ky atd.) Ty jsou popsány pomocı́ vektorů, což
jsou v tomto pojetı́ křivky spojujı́cı́ tzv. kotevnı́ body. Každá taková křivka může
nést informace o své barvě, barvě své výplně, průhlednosti atd.
3
2
DRUHY GRAFIKY
4
Hlavnı́ výhodou vektorové grafiky je to, že můžeme obrázek libovolně zvětšovat
či zmenšovat a jeho kvalita se nezměnı́. I při obrovském zvětšenı́ zůstanou křivky
krásně hladké. Jakmile totiž zvětšı́me obrázku jeho velikost, všechny informace
o něm se ihned přepočı́tajı́. Navı́c můžeme křivky snadno upravovat posouvánı́m
jejich bodů. Dalšı́ přednostı́ je možnost pracovat jednotlivě s dı́lčı́mi objekty.
Bohužel má i vektorová grafika své nevýhody. Hodı́ se pouze pro tvorbu jednoduššı́ch obrázků, jako jsou např. různá loga, schémata a diagramy. Nakreslit takto
nějakou fotografii by bylo velmi náročné. Problémy jsou také s podporou takovýchto
obrázků – programů pro prohlı́ženı́ vektorových obrázků je málo a nejsou moc rozšı́řené. Obvykle se tento problém řešı́ vytvořenı́m obrázku pomocı́ vektorů a jeho
následným převedenı́m do rastrové podoby.
Z editorů vektorové grafiky jmenujme Adobe Illustrator a CorelDraw. Tento druh
grafiky se také využı́vá pro tvorbu animacı́ v prostředı́ Macromedia Flash. Každý
program pro tvorbu vektorových obrázků má vlastnı́ formát, do kterého obrázky
ukládá, např. CorelDraw vytvářı́ soubory typu .cdr. Je ale lepšı́ mı́t je uložené
v nějakém univerzálnějšı́m formátu, např. .eps nebo .pdf.
Obrázky těchto dvou formátů se dajı́ do LATEXem vytvářených dokumentů vkládat
(viz kap. 3.1 a kap. 5), jednoduchá vektorová grafika jde také vytvořit přı́mo pomocı́
LATEXu (kap. 4.1).
3 Sazba obrázků do dokumentu
TEX nebyl původně navržen pro práci s grafikou. Jeho hlavnı́m úkolem je sázet text.
Dı́ky jeho nástavbám (LATEX apod.) a spolupráci s podpůrnými programy dnes však
existuje rovnou několik možnostı́, jak vkládat obrázky do dokumentů. Každá z nich
má své výhody a své nedostatky. LATEX obsahuje prostředı́ picture, ve kterém je
možno vykreslit jednoduchou vektorovou grafiku přı́mo pomocı́ LATEXových přı́kazů
(viz kap. 4.1). Takto se však nedajı́ vytvořit složitějšı́ obrázky, proto LATEX umožňuje
i vkládánı́ obrázků externı́ch, tj. vytvořených v některém grafickém editoru.
3.1 Formáty podporovaných externı́ch obrázků
Již jsem zmı́nil, že způsobů vkládánı́ obrázků do dokumentu je několik. V závislosti
na tom, kterou z možnostı́ si vybereme, musı́me vybı́rat formáty souborů s obrázky.
Samozřejmě se budou lišit i formáty vytvořených dokumentů:
• Prvnı́ možnostı́ je dokument ve formátu .dvi (Device Independent). Obrázek
můžeme vložit pouze pomocı́ přı́kazu \special{parametry}. Tento přı́kaz vložı́
do souboru .dvi své parametry, jinak nemá žádnou zvláštnı́ funkci. Interpretace jeho parametrů pak záležı́ na zobrazovači výstupnı́ho souboru. Obecně se
doporučuje vždy převést soubor ve formátu .dvi do formátu .ps nebo .pdf.
• Při vytvářenı́ dokumentu typu .ps (PostScript) se použije program dvips, který
převádı́ soubory s přı́ponou .dvi na soubory typu .ps. Pokud jsou parametry
přı́kazu \special použitého pro vloženı́ obrázku v jazyce PostScript, jejich
interpretace proběhne v pořádku a obrázek se bez problému vložı́ do dokumentu. Jediným omezenı́m při vytvářenı́ PostScriptového dokumentu je, aby
byl vkládaný externı́ obrázek ve formátu .eps, přı́p. .ps.
• Cı́lový dokument můžeme vytvořit také ve formátu .pdf. Toho lze dosáhnout
převedenı́m souboru .ps na soubor .pdf (k tomuto účelu existuje řada nástrojů, např. GhostScript1 ). Je také možné použı́t Pdf TEX. Zdrojový dokument
se tak zkompiluje do formátu .pdf přı́mo. Pdf TEX podporuje obrázky typu
1
Tento nástroj je freeware
5
3
SAZBA OBRÁZKŮ DO DOKUMENTU
6
.pdf, .jpg a .png. PostScriptové obrázky se musı́ nějakým nástrojem převést
do formátu .pdf. Výjimku tvořı́ .ps soubory vytvořené programem METAFONT,
které Pdf TEX zpracovat umı́.
Potřebujeme-li v TEXu vložit obrázek do dokumentu, můžeme použı́t již zmı́něného
přı́kazu \special. Z důvodu většı́ přenositelnosti (parametry přı́kazu \special
nejsou nijak standardizovány a jsou různé se pro každý zobrazovač) je ale lepšı́
využı́t některý z přı́davných balı́čků pro práci s grafikou, např. graphics, graphicx
a dalšı́ (viz kap. 5).
3.2 Plovoucı́ prostředı́
Vkládáme-li objekt do dokumentu, potřebujeme někdy, aby se vysázel celý na jedné
stránce (tzn. aby nebyl rozdělen v přı́padě, že během jeho sázenı́ dojde ke stránkovému zlomu). Dalšı́m problémem, který může nastat, je možnost, že i když se takový
objekt vysázı́ z důvodu nedostačujı́cı́ho prostoru až na stránce druhé, zůstane na
prvnı́ stránce volné mı́sto.
Tyto problémy řešı́ tzv. plovoucı́ prostředı́. Objekt umı́stěný uvnitř takového prostředı́ se vysázı́ vždy vcelku na jedné stránce dokumentu a na mı́sto, které by jinak
zůstalo prázdné, se vysázı́ dalšı́ text. Řı́káme, že objekt v textu „plave“. V LATEXu
existujı́ dvě taková prostředı́ – table (použı́vá se pro vkládánı́ tabulek) a figure (je
určeno pro obrázky). Do plovoucı́ho prostředı́ ale může být umı́stěn jakýkoli objekt
(např. i text). V dalšı́m textu se zaměřı́me pouze na prostředı́ figure ve spojitosti
s obrázky. Přı́kazy pro prostředı́ table jsou podobné.
Umı́stěnı́ obrázku vloženého pomocı́ prostředı́ figure na stránce můžeme z části
ovlivnit. Prostředı́ má nepovinný parametr, skládajı́cı́ se z několika těchto pı́smen:
• h (here): umı́stı́ obrázek v mı́stě, ve kterém je uveden ve zdrojovém textu,
• t (top): umı́stı́ obrázek na začátek stránky,
• b (bottom): umı́stı́ obrázek na konec stránky,
• p (page): vložı́ obrázek na samostatnou stránku2
2
Tuto stránku umı́stı́ na konec kapitoly či dokumentu. Tam také přı́p. umı́stı́ i dalšı́ vkládané
obrázky.
3
SAZBA OBRÁZKŮ DO DOKUMENTU
7
Pı́smena jsou v parametru seřazena podle priority. Implicitnı́ nastavenı́ tohoto parametru je [tbp]. LATEX se nejprve pokusı́ umı́stit obrázek nahoru na stránku.
Pokud to nepůjde, zkusı́ ho vysázet dole a když zklame i tato možnost, umı́stı́ jej na
samostatnou stránku.
Obrázek lze na stránce stejně jako text různě zarovnat vůči jejı́mu levému a
pravému okraji. Základnı́ nastavené zarovnánı́ je zarovnánı́ doleva. Toto můžeme
změnit vloženı́m obrázku do prostředı́ center – obrázek bude zarovnán doprostřed –
či flushright – obrázek se vložı́ k pravému okraji. Pro zarovnánı́ vlevo samozřejmě
existuje prostředı́ flushleft. Tato nastavenı́ fungujı́, i když obrázek nenı́ uvnitř
prostředı́ figure.
Popisek daného obrázku můžeme nastavit přı́kazem \caption[text1 ]{text2 }.
Za povinný parametr volı́me text, který se vysázı́ jako popisek obrázku, nepovinný
parametr určuje text, který se objevı́ v seznamu obrázků. Chceme-li změnit označenı́ obrázku (při použitı́ balı́čku czech je to implicitně Obrázek), můžeme jej změnit
vloženı́m přı́kazu \renewcommand{\figurename}{označenı́}do preambule zdrojového textu dokumentu.
Máme-li v dokumentu vı́ce sloupců, můžeme rozhodnout, zda se plovoucı́ obrázek vložı́ přes všechny sloupce, nebo jen do sloupce jednoho. Pokud použijeme přı́kaz \begin{figure*} . . . \end{figure*}, vložı́ se obrázek přes všechny sloupce.
Druhé možnosti dosáhneme použitı́m tohoto přı́kazu bez hvězdičky.
Na některé obrázky se je někdy v textu třeba odkazovat. K tomu nám sloužı́
přı́kazy \label{označenı́} a \ref{označenı́}. Přı́kazem \label obrázek označı́me
symbolickým jménem. Toto jméno určuje parametr označenı́. Přı́kaz \label musı́
být ve zdrojovém textu až za přı́kazem \caption. V mı́stě, kde se budeme chtı́t
na obrázek odkázat, pak do textu vložı́me přı́kaz \ref. Přı́kazy \label a \ref se
rovněž použı́vajı́ např. pro odkazovánı́ na různé oddı́ly textu (kapitoly atd.)
• Přı́klad 3
\begin{figure}
\begin{center}
3
Přı́kaz \includegraphics je podrobněji rozebrán v kapitolách 5.1 a 5.2. Přı́kaz \noindent sloužı́
ke zrušenı́ odsazenı́ prvnı́ho řádku odstavce. V délkovém registru \textwidth je uložena šı́řka textu.
3
SAZBA OBRÁZKŮ DO DOKUMENTU
8
Obrázek 1: Obrázek vložený uvnitř plovoucı́ho prostředı́
\includegraphics[width=0.4\textwidth]{obrazek}
\end{center}
\caption{Obrázek vložený uvnitř plovoucı́ho prostředı́}
\label{obrfig}
\end{figure}
\noindent Na obrázek \ref{obrfig} se můžeme odkázat.
Na obrázek 1 se můžeme odkázat.
3.3 Obtékánı́ obrázků textem
Jestliže vložı́me obrázek do dokumentu, zobrazı́ se nám mimo text (zpravidla pod
nı́m). Často jej však potřebujeme mı́t vložený uvnitř textu, aby ho text tzv. obtékal. V tomto přı́padě máme několik možnostı́. Můžeme např. vytvořit dvě prostředı́
minipage (jedná se o prostředı́, které se chová jako malá stránka, vı́ce viz [RYBIČKA]).
Jednomu nastavı́me takovou šı́řku, aby se do něj vešel náš obrázek, druhému takovou, aby součet šı́řek obou prostředı́ byl menšı́ než šı́řka stránky. Pozor musı́me
dát na to, aby mezi těmito prostředı́mi nebyl přechod na nový řádek.
Dalšı́m způsobem, jak zařı́dit vloženı́ obrázku dovnitř textu, je využitı́ přı́kazů
\hangindent{hodnota} a \hangafter{hodnota}. Prvnı́m přı́kazem definujeme velikost odsazenı́ textu na řádku zleva (pokud chceme změnit odsazenı́ zprava, stačı́
uvést zápornou hodnotu). Druhý přı́kaz definuje, kolik řádků od začátku odstavce
bude mı́t původnı́ hodnotu odsazenı́.
Tyto přı́kazy lze použı́t, pokud chceme změnit velikost řádků na jednu hodnotu
a tu již neměnit. Může se však stát, že vkládáme obrázek, u kterého chceme, aby
3
SAZBA OBRÁZKŮ DO DOKUMENTU
9
jej text obtékal podle jeho tvaru. K tomu sloužı́ přı́kaz \parshape{parametry}.
Prvnı́m parametrem je počet řádků, kterých se obtékánı́ bude týkat, ostatnı́ jsou
zadávány ve dvojicı́ch odsazenı́ zleva – celková velikost řádku. Jednotlivé parametry
se oddělujı́ čárkami.
Pro nastavenı́ obtékánı́ obrázků textem existuje také několik přı́davných balı́čků,
jako např. floatfig, wrapfig aj. Tyto balı́čky se navzájem lišı́ svými možnostmi.
Bližšı́ informace o nich jsou uvedeny v [ROZCESTNÍK].
4 Vytvářenı́ jednoduché vektorové grafiky pomocı́ LATEXu
V této kapitole si ukážeme, jak lze pouze s pomocı́ LATEXu bez žádných externı́ch
nástrojů nakreslit jednoduché vektorové obrázky. LATEX má pro tento účel vytvořeno
prostředı́, které se nazývá picture.
4.1 Prostředı́ picture
Prostředı́ picture vytvářı́ kreslicı́ plochu. Tato plocha má definovaný pravoúhlý
souřadnicový systém, do kterého se vkládajı́ všechny vytvářené obrazové objekty.
Počátek tohoto systému je standardně v levém dolnı́m rohu kreslicı́ plochy (lze jej
však posunout i do jiného bodu). V prostředı́ picture se mohou použı́vat pouze
přı́kazy pro umı́st’ovánı́ objektů na kreslicı́ plochu, přı́kazy nastavujı́cı́ jejich délky
a velikosti apod.
Před zavolánı́m prostředı́ picture si nejprve nastavı́me základnı́ jednotku jeho
souřadného systému. Toto se provádı́ změnou délkového registru \unitlenth,
např. \unitlenth 1mm. Všechny parametry přı́kazů v prostředı́ picture zastupujı́cı́ souřadnice na kreslicı́ ploše určujı́, kolikrát se má vynásobit základnı́ jednotka.
Samotná deklarace prostředı́ picture vypadá takto:
\begin{picture}(x, y)(x 0 , y0 )
Parametr x určuje šı́řku a parametr y výšku vytvářené kreslicı́ plochy. Definovaná
výška a šı́řka však určujı́ pouze velikost mı́sta, které se má pro obrázek při sazbě
vynechat. Kreslené objekty lze umist’ovat i za hranice této plochy. Vysázı́ se pak
např. přes text. V některých situacı́ch toho lze využı́t.
Pokud je zadaná šı́řka menšı́ než šı́řka stránky a obrázek je zarovnán doleva
či doprava, bude obtékán textem. Parametry x 0 a y0 jsou nepovinné a určujı́, ve
kterém bodě má být počátek souřadnicového systému. Pokud nenı́ druhá závorka
uvedena, bude počátek v bodě (0, 0).4
4
Z vlastnı́ zkušenosti doporučuji druhou závorku neuvádět. Všechny objekty se i v přı́padě jejı́
přı́tomnosti vkládajı́ do obrázku ve vztahu k bodu (0, 0), pouze docházı́ k posunu kreslicı́ plochy a to
může být v některých přı́padech matoucı́.
10
4
VYTVÁŘENÍ JEDNODUCHÉ VEKTOROVÉ GRAFIKY POMOCÍ LATEXU
11
Asi nejdůležitějšı́m přı́kazem v prostředı́ picture je přı́kaz \put(x, y){objekt}.
Sloužı́ k umı́st’ovánı́ jednotlivých objektů na kreslicı́ plochu. Parametry x a y určujı́
souřadnice tzv. vztažného bodu objektu (každý objekt má vlastnı́ vztažný bod).
Mimo přı́kaz \put existuje také přı́kaz \multiput(x 0 , y0 )(d x , d y ){n}{objekt},
který umožňuje vložit tentýž objekt do obrázku několikrát po sobě. Prvnı́ parametr
určuje počátečnı́ souřadnice vztažného bodu objektu. Parametry d x a d y definujı́
posun souřadnic vztažného bodu ve vodorovném (resp. svislém) směru pro každé
dalšı́ vloženı́ objektu a parametr n stanovuje, kolikrát se objekt takto vložı́.
Zajı́mavostı́ je, že pomocı́ přı́kazů pro vloženı́ objektu můžeme na kreslicı́ plochu vložit dalšı́ prostředı́ picture. Tomuto prostředı́ pak můžeme definovat jeho
vlastnosti (např. jednotku jeho souřadného systému) zcela samostatně a odlišně od
nastavenı́ vlastnostı́ obrázku, do kterého jej vkládáme.
4.1.1
Objekty, které je možné vložit na kreslicı́ plochu
Základnı́mi objekty, které lze vložit do obrázku v prostředı́ picture jako parametr
přı́kazu \put, přı́p. \multiput, jsou tyto:
Čáry (úsečky)
Čáry se vkládajı́ přı́kazem \line{x, y}{délka}. Vztažným bodem úsečky je jejı́ počátečnı́ bod. Parametry x a y jsou celá čı́sla z intervalu <-6, 6> a jejich společný
dělitel nesmı́ být většı́ než 1. Udávajı́ sklon vytvářené úsečky (tı́m, že se posuneme
na vodorovné ose o x jednotek a na svislé ose o y jednotek, dostaneme druhý bod –
ne nutně koncový – dané čáry). Z toho vyplývá, že pomocı́ tohoto přı́kazu můžeme
vykreslit jen úsečky s určitým sklonem. Parametr délka určuje délku průmětu čáry
do vodorovné osy. Jelikož se čáry sázejı́ z určitých základnı́ch znaků, nelze ani nakreslit úsečku s libovolně malou délkou. Výjimkou jsou čáry vodorovné a svislé,
jsou totiž vytvářeny jiným způsobem.
Vektory
Vektory jsou úsečky, majı́cı́ v koncovém bodě šipku. Sázejı́ se pomocı́ přı́kazu
\vector(x, y){délka}. Parametry majı́ tentýž význam, jako u vytvářenı́ úseček,
4
VYTVÁŘENÍ JEDNODUCHÉ VEKTOROVÉ GRAFIKY POMOCÍ LATEXU
12
jen x a y musı́ ležet v intervalu <-4, 4>. Ostatnı́ omezenı́ pro tyto parametry platı́
také. Vykreslı́me-li nulový vektor (tj. vektor s délkou rovnou nule), šipka se i přesto
nakreslı́. Vztažným bodem vektoru je jeho počátečnı́ bod.
• Přı́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
Dalšı́m objektem, který můžeme vložit do obrázku v prostředı́ picture, je text. Jeho
vztažným bodem je levý dolnı́ roh rámečku, který si kolem textu můžeme představit.
Sloupce textů
Na kreslicı́ plochu můžeme také umı́stit sloupec libovolných textů. Umožňuje to
přı́kaz \shortstack[zarovnánı́]{texty}. Za parametr zarovnánı́ můžeme dosadit
pı́smeno l, resp. r – pro zarovnánı́ doleva, resp. doprava. Pokud nenı́ parametr
uveden, texty budou zarovnány na střed. Do parametru texty napı́šeme jednotlivé
texty, které chceme vysázet do sloupce. Jednotlivé řádky oddělujeme přı́kazem \\.
Vztažným bodem je stejně jako v předchozı́m přı́padě levý dolnı́ roh pomyslného
rámečku, který tuto „tabulku“ obklopuje.
• Přı́klad
\unitlength 1mm
\begin{picture}(40,35)
\put(20,13){Vložený text}
Text
rozložený
do vı́ce
sloupců
\put(15,19){\shortstack[l]{Text\\%
rozložený\\do vı́ce\\sloupců}}
\end{picture}
Vložený text
4
VYTVÁŘENÍ JEDNODUCHÉ VEKTOROVÉ GRAFIKY POMOCÍ LATEXU
13
Rámečky
Rámečky podporované prostředı́m picture jsou trojı́ho druhu:
• \framebox(x, y)[poloha]{objekt} – jedná se o rámeček, který bude orámován
souvislou čarou. Parametry x a y určujı́ šı́řku a výšku rámečku, parametr objekt určuje objekt, který má být uvnitř rámečku. Nepovinný parametr poloha
se skládá z jednoho nebo dvou pı́smen a určuje polohu objektu v rámečku. Pokud je vynechán, objekt se umı́stı́ doprostřed rámečku. Do parametru můžeme
vložit tato pı́smena:
– l (left): zarovnánı́ doleva
– r (right): zarovnánı́ doprava
– c (center): zarovnánı́ doprostřed
– t (top): zarovnánı́ nahoru
– b (bottom): zarovnánı́ dolů
• \dashbox{délka}(x, y)[poloha]{objekt} – Tento přı́kaz vysázı́ rámeček s čárkovaným orámovánı́m. Parametr délka udává délku čárek a mezer v tomto
orámovánı́. Ostatnı́ parametry jsou stejné jako u rámečku \framebox.
• \makebox(x, y)[poloha]{objekt} – Tento přı́kaz sloužı́ k vytvořenı́ neorámovaného rámečku. Parametry přı́kazu jsou stejné jako u předchozı́ch dvou.
• Přı́klad
\unitlength 1mm
\begin{picture}(40,40)
Text v neviditelném rámeč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˜neviditelném rámečku}}
\end{picture}
©
*
©©
4
14
VYTVÁŘENÍ JEDNODUCHÉ VEKTOROVÉ GRAFIKY POMOCÍ LATEXU
Kružnice a kruhy
Kružnici lze vysázet pomocı́ přı́kazu \circle{průměr}. Rovněž i na vytvářenı́ kružnic se vztahujı́ jistá omezenı́ daná způsobem jejich sazby. Proto můžeme vysázet kružnici s maximálnı́m průměrem okolo 15 mm. Vztažným bodem je střed
kružnice. Použijeme-li přı́kaz \circle*{průměr}, dostaneme vyplněnou kružnici
(kruh). Tvorba kruhu je omezena ještě vı́ce a jeho největšı́ možný průměr je kolem
5 mm.
• Přı́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}
Ovály
Přı́kazem \oval(x, y)[část] lze vysázet ovál. Parametry x a y určujı́ jeho šı́řku
a výšku. Nepovinný parametr část nám umožňuje vykreslit jen některou z částı́
daného oválu. Pokud nenı́ uveden, vysázı́ se ovál celý. Parametr můžou tvořit jedno
nebo dvě z těchto pı́smen: t (hornı́ část), b (dolnı́ část), l (levá část) a r (pravá část).
Vztažným bodem je střed oválu.
• Přı́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}
¯
°
®
©
ª
Á
¹
À
4
VYTVÁŘENÍ JEDNODUCHÉ VEKTOROVÉ GRAFIKY POMOCÍ LATEXU
15
Bézierovy křivky
LATEX umı́ pomocı́ prostředı́ picture vykreslit také Bézierovy křivky druhého stupně. Jsou to křivky určené třemi body – počátečnı́m, koncovým a tzv. řı́dı́cı́m bodem.
Tı́m je bod, ve kterém se protı́najı́ tečny ke křivce vedené jejı́mi krajnı́mi body.
Položı́me-li řı́dı́cı́ bod tak, aby ležel v přı́mce s krajnı́mi body, vysázı́ se úsečka,
která krajnı́ body spojuje. Takto lze „obejı́t“ omezenı́ pro délku a sklon čar, která
platı́ pro přı́kaz \line. U Bézierových křivek žádná podobná omezenı́ neplatı́.
Jediným problémem je, že jsou Bézierovy křivky vykreslovány pomocı́ jednotlivých vypočı́taných bodů (ty jsou sázeny jako malé čtverečky). Z tohoto důvodu může
v některých přı́padech nastat situace, kdy se nedokončı́ překlad dokumentu5 , protože při jeho vykonávánı́ dojde k přeplněnı́ paměti počı́tače.
Pro sazbu Bézierových křivek existujı́ v LATEXu dva přı́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 určujı́ souřadnice krajnı́ch bodů křivky a parametry x 2
a y2 souřadnice řı́dı́cı́ho bodu. Parametr n určuje, pomocı́ kolika bodů se křivka
vysázı́. U prvnı́ho z těchto dvou přı́kazů je nepovinný a pokud jej neuvedeme, vysázı́
se nám křivka plná. V opačném přı́padě bude tečkovaná.
Přı́kazy \qbezier a \bezier jsou samostatné a nepotřebujı́ vkládat jako parametry do přı́kazu \put.
• Přı́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
např. během sazby grafu nějaké složitějšı́ funkce pomocı́ Bézierových křivek
Tento přı́kaz je implementován pouze z důvodu zajištěnı́ kompatibility s verzı́ LATEXu 2.09
4
VYTVÁŘENÍ JEDNODUCHÉ VEKTOROVÉ GRAFIKY POMOCÍ LATEXU
4.1.2
16
Nastavenı́ vlastnostı́ jednotlivých objektů
U každého vkládaného objektu můžeme pomocı́ speciálnı́ch přı́kazů nastavit některé vlastnosti, s jakými se má vysázet.
Šı́řka čar
Všem výše popsaným objektům lze nastavit šı́řku čáry, jakou se vykreslı́. Existujı́
pro to přı́kazy \thinlines, \thicklines a \linethickness{šı́řka}. Prvnı́ z nich
nastavı́ šı́řku čáry na 4 pt, druhý na 8 pt. Poslednı́ nám umožňuje nastavit si vlastnı́
požadovanou šı́řku čáry, bohužel se ale dá použı́t pouze pro některé objekty. Jedná
se o svislé a vodorovné čáry, rámečky a Bézierovy křivky.
Orámovánı́ objektu
Libovolný objekt, který vkládáme na kreslicı́ plochu, můžeme orámovat. K tomu
sloužı́ přı́kaz \frame{objekt}.7
• Přı́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
Nějaký text
C
C
C
C
\thinlines
²
¯
\put(0,18){\vector(-1,4){7}}
±
°
\put(20,35){\frame{Nějaký text}}
\end{picture}
\end{multicols}
7
Při rámovánı́ jiných objektů než textu mi tento přı́kaz nefungoval správně.
4
VYTVÁŘENÍ JEDNODUCHÉ VEKTOROVÉ GRAFIKY POMOCÍ LATEXU
17
4.2 Balı́čky rozšiřujı́cı́ možnosti prostředı́ picture
V této podkapitole si stručně rozebereme některé z LATEXových balı́čků, které rozšiřujı́ možnosti prostředı́ picture.
Balı́ček epic
Balı́ček epic obsahuje několik nových přı́kazů. Nejdůležitějšı́mi jsou tyto:
\drawline[n](x 1 , y1 ) . . . (x n , yn )
Tento přı́kaz vykreslı́ lomenou čáru, postupně procházejı́cı́ body zadanými
parametry (x i , yi ). Nepovinný parametr n může nabývat celočı́selných hodnot
z intervalu (-100, ∞). Pokud zadáme zápornou hodnotu, vysázı́ se lomená čára
čárkovaně. V ostatnı́ch přı́padech bude vysázena plná čára.
LATEX vytvářı́ tuto čáru z malých částı́, které majı́ omezené množstvı́ sklonů (podobně jako u přı́kazu \line), proto může být výsledná lomená čára poněkud
„zubatá“.
\dashline{n}[m](x 1 , y1 ) . . . (x n , yn )
Pomocı́ tohoto přı́kazu můžeme vykreslit čárkovanou lomenou čáru. Parametr
n určuje délku jedné čárky. Pokud uvedeme i nepovinný parametr m, jednotlivé
čárky budou vysázeny tečkovaně a parametr m nastavı́ mezery mezi tečkami.
Ostatnı́ parametry jsou stejné jako v předchozı́m přı́padě.
\dottedline[znak]{n}(x 1 , y1 ) . . . (x n , yn )
Vykreslı́ tečkovanou lomenou čáru. Parametr znak nám umožňuje definovat
znak, který se vykreslı́ mı́sto teček. Parametr n určuje vzdálenost mezi jednotlivými znaky, tvořı́cı́mi tuto čáru.
4
VYTVÁŘENÍ JEDNODUCHÉ VEKTOROVÉ GRAFIKY POMOCÍ LATEXU
18
• Přı́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ı́ček eepic
Balı́ček eepic rozšiřuje nejen možnosti LATEXu, ale i balı́čku epic. Rušı́ omezenı́
při vkládánı́ některých standardnı́ch objektů (viz kap. 4.1.1). Týká se to hlavně čar
a kružnic (resp. kruhů). Přı́kazem \line je tak možno vykreslit čáru s jakoukoli
délkou a za parametry určujı́cı́ jejı́ sklon můžeme dosadit jakákoli celá čı́sla (omezenı́ pro sazbu vektorů však zůstávajı́ stejná). Přı́kazem \circle (resp. \circle*)
můžeme vykreslit kružnici či kruh s libovolným průměrem8 . Přı́kazy pro tvorbu lomených čar definované v balı́čku epic jsou rovněž optimalizovány. Čáry jsou sázeny
způsobem, který je rychlejšı́ a mnohem méně náročný na přidělenou pamět’.
S balı́čkem eepic je dobré vkládat do dokumentu i balı́ček epic (ten musı́ být
deklarován jako prvnı́). Pokud budeme mı́t s balı́čkem eepic problémy9 , můžeme
mı́sto něj použı́t balı́ček eepicemu, bohužel však u něj neplatı́ výhody, které balı́ček
eepic přinášı́ a objekty zde definované se tvořı́ ze standardnı́ch objektů (např.
elipsa je vykreslena jako ovál). Z těchto důvodů zde neuvádı́m přı́klad.
Kromě rozšı́řenı́ možnostı́ standardnı́ch přı́kazů jsou definovány v balı́čku eepic
také některé přı́kazy nové. Jsou jimi např.:
\Thicklines
Nastavı́ šı́řku čar použı́vaných pro sazbu jednotlivých objektů na cca 1,5 násobek šı́řky definované přı́kazem \thicklines.
8
V dokumentaci tohoto balı́čku doslova stojı́, že za jeho průměr můžeme dosadit „jakékoli čı́slo
akceptovatelné TEXem“
9
Stalo se mi, že se při použitı́ tohoto balı́čku vysázela mı́sto obrázku jen prázdná plocha.
4
19
VYTVÁŘENÍ JEDNODUCHÉ VEKTOROVÉ GRAFIKY POMOCÍ LATEXU
\path (x 1 , y1 ) . . . (x n , yn )
Funguje stejně jako přı́kaz \drawline v balı́čku epic. Rozdı́lem je, že se lomená čára vysázı́ pěkně hladká, protože balı́ček eepic použı́vá jinou metodu
sazby.
\ellipse{a}{b}, resp. \ellipse*{a}{b}
Umožňuje nakreslit elipsu o šı́řce a a výšce b. Přı́kaz s hvězdičkou vykreslı́
elipsu s vyplněným vnitřkem.
Balı́ček graphpap
Tento balı́ček obsahuje velmi užitečný přı́kaz \graphpaper[n](x 1 , y1 )(x 2 , y2 ).
Při použitı́ tohoto přı́kazu se na kreslicı́ ploše vytvořı́ souřadnicová sı́t’. Nepovinný
parametr n určuje, jaké budou rozestupy mezi jednotlivými čarami mřı́žky. Jeho
implicitnı́ nastavenı́ je 10. Parametry x 1 a y1 označujı́ souřadnice levého dolnı́ho
rohu této sı́tě a parametry x 2 a y2 určujı́ jejı́ šı́řku a výšku. Všechny parametry
musı́ být celá čı́sla a udávajı́ se v základnı́ch jednotkách souřadnicového systému
obrázku.
Každá pátá čára (na vodorovné i svislé ose) je zvýrazněna a označena čı́slem
souřadnice, ve které je vykreslena. Dı́ky tomu tento přı́kaz výrazně napomáhá při
vkládánı́ různých objektů na kreslicı́ plochu.
• Přı́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ı́čky LATEXu pro práci s grafikou
Již jsme si ukázali, že pomocı́ prostředı́ picture lze v LATEXových dokumentech
vykreslovat jednoduché obrázky. K dispozici však máme i podpůrné balı́čky, které
možnosti práce LATEXu s grafikou značně rozšiřujı́. My zde postupně rozebereme
nejpoužı́vanějšı́ z nich, a to balı́čky graphics, graphicx, color a pstricks.
5.1 Balı́ček graphics
Balı́ček graphics je základnı́m balı́čkem pro vkládánı́ externı́ch obrázků do LATEXových dokumentů a následnou práci s nimi (rotace, nastavovánı́ velikosti atd.) Předpokládá přı́tomnost ovladače pro práci s obrázky. Standardně se zpracovává grafika
vytvořená v jazyce PostScript.
Je potřeba, aby byl výstupnı́ soubor v jazyce PostScript (jinými slovy musı́me
soubor .dvi převést do formátu .ps, např. pomocı́ programu dvips). Pokud chceme
k vytvořenı́ výstupnı́ho souboru použı́t Pdf TEX, musı́me PostScriptový obrázek převést do formátu .pdf, resp. .png nebo .jpg a v preambuli dokumentu volat balı́ček
zápisem \usepackage[pdftex]{graphics}.
Přı́kazy definované v balı́čku
\includegraphics{soubor}
Přı́kaz pro vloženı́ obrázku do dokumentu. Je také možné jej použı́t ve tvaru
\includegraphics*[x1 , y1 ][x2 , y2 ]{soubor}. Parametry x1 a y1 udávajı́ souřadnice levého hornı́ho rohu výřezu obrázku, který se vložı́ do dokumentu.
Parametry x2 a y2 pak udávajı́ souřadnice jeho pravého dolnı́ho rohu. Neuvedeme-li v přı́kaze hvězdičku, ale nepovinné parametry ano, vložı́ se obrázek do
dokumentu celý, ale TEX pro něj rezervuje jen mı́sto udané těmito parametry.
\graphicspath{{cesta 1 }{cesta 2 }. . . }
Tento přı́kaz nám umožňuje zadat, ve kterých složkách se nacházejı́ soubory
s obrázky, které chceme vkládat do LATEXového dokumentu.
20
5
21
BALÍČKY LATEXU PRO PRÁCI S GRAFIKOU
\scalebox{h-mı́ra}[v-mı́ra]{objekt}
Změna velikosti objektu. Objektem může být text, ale např. i obrázek. Pokud to
má být obrázek, dosadı́me za parametr objekt celý přı́kaz \includegraphics.
Parametr h-mı́ra udává, kolikrát se objekt zvětšı́ ve horizontálnı́m směru, nepovinný parametr v-mı́ra udává, kolikrát se obrázek zvětšı́ ve směru vertikálnı́m. Pokud nenı́ tento parametr uveden, nastavı́ se jeho hodnota na hodnotu
parametru h-mı́ra.
\rotatebox{úhel}{objekt}
Přı́kaz pro vloženı́ objektu, který bude otočený o určitý úhel. Ten se zadává
ve stupnı́ch a otáčenı́ probı́há proti směru hodinových ručiček. Za objekt můžeme stejně jako u přı́kazu \scalebox dosadit text, přı́p. obrázek. Přı́kazy
\scalebox a \rotatebox můžeme navzájem kombinovat.
\resizebox{šı́řka}{výška}{objekt}
Umožňuje roztaženı́ objektu na určitou výšku a šı́řku. Nahradı́me-li některý
z rozměrů znakem ! , bude jeho hodnota dopočı́tána tak, aby zůstal zachován
poměr stran objektu.
\reflectbox{objekt}
Pomocı́ tohoto přı́kazu můžeme objekt definovaný v jeho povinném parametru
zrcadlově otočit podél svislé osy.
• Přı́klad
\noindent
\scalebox{0.4}
{\includegraphics{obrazek}}\\
\resizebox{60mm}{2mm}
{Text se změněnou velikostı́}\\
\rotatebox{10}{Otočený text}\\
\reflectbox{Převrácený text}
Text se změněnou velikostı́
ý text
Otočen
txet ýnecárveřP
5
BALÍČKY LATEXU PRO PRÁCI S GRAFIKOU
22
5.2 Balı́ček graphicx
Tento balı́ček je rozšı́řenı́m balı́čku graphics. Co se týká možnostı́, jsou tyto balı́čky
zhruba na stejné úrovni, balı́ček graphicx pouze dovoluje nastavit vı́ce parametrů.
Autor dokumentace k tomuto balı́čku pı́še, že pokud s jejich pomocı́ tvořı́me pouze
dokument, záležı́ jen na tom, který balı́ček nám je vı́ce sympatický. Většı́ rozdı́ly se
projevı́, budeme-li na základě těchto balı́čků potřebovat vytvořit vlastnı́ přı́davný
balı́ček. V tom přı́padě už na tom, který balı́ček si vybereme, bude záležet.
Přı́kazy definované v balı́čku
\includegraphics[seznam parametrů]{soubor}
Stejně jako v předchozı́m balı́čku sloužı́ tento přı́kaz ke vloženı́ externı́ho obrázku do dokumentu. Do prvnı́ho parametru můžeme vložit některé z těchto
položek (uvádı́m zde jen ty nejdůležitějšı́, ostatnı́ jsou popsány v dokumentaci
balı́čku graphicx):
• bb = a b c d: Umožňuje nastavit tzv. bounding box obrázku, tj. informace
o výřezu obrázku, který se vložı́ do dokumentu. Hodnoty a a b udávajı́
souřadnice levého hornı́ho rohu tohoto výřezu, c a d jsou souřadnice jeho
pravého dolnı́ho rohu.
• angle = n: Určuje úhel natočenı́ obrázku (ve stupnı́ch).
• width = n: Nastavenı́ požadované šı́řky obrázku.
• height = n: Požadovaná výška obrázku.
• scale = n: Udává, kolikrát se zmenšı́ (zvětšı́) vkládaný obrázek.
Tyto položky se navzájem oddělujı́ čárkou. U výšky a šı́řky je třeba zadat i
jednotku (např. mm).
\rotatebox[seznam položek]{úhel}{objekt}
Přı́kaz pro otočenı́ nějakého objektu (např. textu či obrázku) o určitý úhel
zadaný ve stupnı́ch (popř. v jiné jednotce, definované jednou z položek uvnitř
nepovinného parametru). Položky, které můžeme uvést v prvnı́m parametru
tohoto přı́kazu jsou tyto:
5
23
BALÍČKY LATEXU PRO PRÁCI S GRAFIKOU
• origin = pı́smena: Umožňuje nastavit střed otáčenı́ objektu. Za rovnı́tko
můžeme napsat jedno nebo dvě z těchto pı́smen: t (nahoře), c (uprostřed),
b (dole), r (vpravo), l (vlevo) a B (základnı́ čára).
• x = n, y = m: Má stejnou funkci jako položka origin, ale umožňuje nastavit
jako střed otáčenı́ libovolný bod objektu. Hodnoty m a n se udávajı́ i
s jednotkami.
• units = n: Parametr pro nastavenı́ jednotky a směru otáčenı́ objektu. Např.
[units=-6.28] nastavı́ jednotku na radiány a směr otáčenı́ ve směru
hodinových ručiček.
Jelikož je balı́ček graphicx rozšı́řenı́m balı́čku graphics, umožňuje použitı́ i ostatnı́ch přı́kazů v tomto balı́čku definovaných. Jedná se např. o přı́kazy \reflectbox,
\resizebox, \graphicspath atd. Bližšı́ informace o těchto přı́kazech jsou uvedeny
v předchozı́ podkapitole (kap. 5.1).
• Přı́klad
\includegraphics%
[scale=0.5]{obrazek}\\
\rotatebox[origin=tc]%
{20}{Otočený text}\\
\includegraphics[scale=0.35,%
angle=45]{obrazek}
Oto
čen
ý
text
5
BALÍČKY LATEXU PRO PRÁCI S GRAFIKOU
24
5.3 Balı́ček color
Balı́ček color použijeme, když budeme potřebovat pracovat s barvami – vysázet
barevný text, změnit barvu nějakého grafického objektu či pozadı́ stránky atd.
Přı́kazy definované v balı́čku
\definecolor{jméno}{model}{hodnoty}
Tento přı́kaz sloužı́ k definovánı́ barvy. Parametr model určuje použitý barevný
model. Standardnı́mi barevnými modely jsou rgb, cmyk a gray. Model rgb
definuje barvu pomocı́ třı́ složek (red, green, blue), model cmyk použı́vá složky
čtyři (cyan, magenta, yellow a black) a model gray umožňuje pracovat se
stupni šedi.
Parametr hodnoty určuje jas jednotlivých složek daného modelu. Hodnoty se
oddělujı́ čárkou a každá ležı́ v intervalu <0, 1>.
Některé barvy jsou již předdefinovány. Jsou to black (černá), white (bı́lá),
red (červená), green (zelená), blue (modrá), yellow (žlutá), cyan (azurová) a
magenta (purpurová).
\color{předdefinovaná barva}, resp.
\color[model]{hodnoty}
V prvnı́m přı́padě nastavı́ aktuálnı́ barvu na standardně předdefinovanou
barvu, přı́p. na barvu definovanou dřı́ve přı́kazem \definecolor. Druhý tvar
přı́kazu umožňuje požadovanou barvu nastavit přı́mo. Parametry model a hodnoty majı́ stejný význam, jako u přı́kazu \definecolor.
\textcolor{předdefinovaná barva}{text}, resp.
\textcolor[model]{hodnoty}{text}
Jedná se o obměnu přı́kazu \color. Text, který zadáme jako parametr přı́kazu, se vysázı́ vybranou barvou. Poté se barva vrátı́ na svou předchozı́ hodnotu.
5
25
BALÍČKY LATEXU PRO PRÁCI S GRAFIKOU
\pagecolor
Tento přı́kaz má stejné parametry jako přı́kaz \color. Použı́vá se pro nastavenı́ barvy stránky. Tato barva se použije na aktuálnı́ stránku a všechny
následujı́cı́ stránky dokumentu (nebo do opětovného použitı́ tohoto přı́kazu –
s jinou barvou v argumentu).
\colorbox
Přı́kaz \colorbox má stejné parametry jako přı́kaz \textcolor. Barva zadaná
v parametrech však neměnı́ barvu textu, ale nastavuje barvu výplně obdélnı́ku
(boxu), který se pod zadaným textem vytvořı́.
\fcolorbox{barva okraje}{barva výplně}{text}
Podobně jako přı́kaz \colorbox i tento přı́kaz vytvářı́ pod textem barevný
obdélnı́k, navı́c se ale kolem tohoto obdélnı́ku objevı́ ještě orámovánı́. Šı́řka
tohoto okraje je určena délkovým registrem \fboxrule a minimálnı́ vzdálenost
textu od tohoto okraje registrem \fboxsep.
\normalcolor
Nastavı́ aktuálnı́ barvu textu na barvu „normálnı́“, tj. tu, která byla použita
na začátku dokumentu. Standardně je to černá.
• Přı́klad:
\definecolor{seda}{gray}{0.5}
Světlý text
\definecolor{zelena}{rgb}{0,0.7,0}
Tmavě šedý text
\textcolor[gray]{0.7}%
Jeste jeden radek
{Světlý text}\\
\color{seda}
Tmavě šedý text\\
Jeste jeden radek\\
\color{white}
\colorbox{zelena}%
{Bı́lý text na zeleném podkladě}\\
\fboxrule 1mm
\fcolorbox{red}{seda}{Rámeček}
Bı́lý text na zeleném podkladě
Rámeček
5
BALÍČKY LATEXU PRO PRÁCI S GRAFIKOU
26
5.4 Balı́ček pstricks
Tento balı́ček představuje velmi silný nástroj pro vykreslovánı́ vektorové grafiky. Je
založen na jazyce PostScript, proto při jeho použitı́ musı́me vždy náš zdrojový text
zkompilovat do formátu .ps. Pokud chceme mı́t cı́lový dokument ve formátu .pdf,
můžeme jej zı́skat jedině převodem ze souboru .ps. Pdf TEX použı́t nelze.
V balı́čku pstricks je definováno prostředı́ pspicture, které (podobně jako
LATEXové prostředı́ picture – viz kap. 4.1) vytvářı́ kreslicı́ plochu, na nı́ž se postupně nanášejı́ jednotlivé kreslené objekty. Pro objekty vkládané do prostředı́
pspicture ale neplatı́ omezenı́, která platila v prostředı́ picture, jelikož jsou vykreslovány pomocı́ jiných algoritmů. Prostředı́ pspicture deklarujeme přı́kazem
\begin{pspicture}(x1 , y1 )(x2 , y2 ). Parametry x 1 a y1 udávajı́ souřadnice jeho
levého dolnı́ho rohu a parametry x 2 a y2 souřadnice jeho pravého hornı́ho rohu.
Pokud má mı́t levý dolnı́ roh obrázku souřadnice (0, 0), pak se prvnı́ závorka nemusı́
uvádět.
Na kreslicı́ plochu prostředı́ pspicture lze vkládat mnoho různých objektů,
např. čáry, kružnice, elipsy, mřı́žky apod. s různými barvami, výplněmi a jinými
vlastnostmi. Lze je libovolně otáčet, opakovaně vkládat a dokonce je možné vykreslit
graf nějaké matematické funkce.
My si ukážeme některé základnı́ možnosti práce s prostředı́m pspicture, ostatnı́
jsou detailně popsány v různých manuálech týkajı́cı́ch se balı́čku pstricks.
Přı́kazy definované v balı́čku
\psdots[vl](x 1 , y1 ). . . (x n , yn )
Tento přı́kaz vykreslı́ bod (resp. body) v souřadnicı́ch udaných parametry
(x i , yi ). Parametr vl určuje jeho (resp. jejich) vlastnosti. Jednotlivé volby se
navzájem oddělujı́ čárkou a mohou to být např.:
• dotstyle = znak: udává, jaký znak se vysázı́ v daném bodě,
• dotscale = n: kolikrát se zmenšı́ (zvětšı́) znak, kterým se bod vysázı́,
• dotangle = n: úhel natočenı́ tohoto znaku.
5
27
BALÍČKY LATEXU PRO PRÁCI S GRAFIKOU
\psline[vl](x 1 , y1 ). . . (x n , yn )
Přı́kaz pro vytvořenı́ (lomené) čáry mezi 2 a vı́ce body. Za vlastnosti můžeme
zvolit tyto položky:
• linestyle = styl: umožňuje nastavit, aby čára byla čárkovaná (za styl dosadı́me dashed), nebo tečkovaná (dotted)
• linewidth = n: určenı́ tloušt’ky čáry, je třeba udat jednotku
• arrows = styl: styl konců čáry, např. <-> (oboustranná šipka), |-| (úsečka
s označenými koncovými body), c-c (zaoblené konce) apod.
Vlastnosti linestyle a linewidth můžeme použı́t i u ostatnı́ch vkládaných objektů.
\pspolygon[vl](x 1 , y1 ). . . (x n , yn )
Sloužı́ k vykreslenı́ polygonu (mnohoúhelnı́ku) určeného n body. Použijeme-li
přı́kaz \pspolygon*, bude mnohoúhelnı́k vyplněný.
• Přı́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 )
Vytvořı́ čtverec (obdélnı́k). Parametry x 1 a y1 určujı́ souřadnice jeho levého
dolnı́ho rohu, x 2 a y2 jsou souřadnice pravého hornı́ho rohu. Za parametr vl
můžeme dosadit vlastnost framearc = n, která ovlivňuje zaoblenı́ rohů tohoto
objektu. Přı́kaz \psframe* vykreslı́ čtverec (obdélnı́k) vyplněný.
5
BALÍČKY LATEXU PRO PRÁCI S GRAFIKOU
28
\pscircle[vl](x r , yr ){r}
Přı́kaz pro vykreslenı́ kružnice se středem v bodě (x r , yr ) a poloměrem r. Kruh
nakreslı́me pomocı́ přı́kazu \pscircle*.
\psellipse[vl](x 1 , y1 )(x 2 , y2 )
Vložı́ na kreslicı́ plochu elipsu. Parametry x 1 a y1 udávajı́ souřadnice středu
elipsy, x 2 a y2 jsou velikosti jejı́ horizontálnı́ a vertikálnı́ poloosy. Přı́kazem
\pselipse* nakreslı́me vyplněnou elipsu.
\pscurve[vl](x 1 , y1 ). . . (x n , yn )
Vytvořı́ křivku procházejı́cı́ body určenými parametry (x i , yi ). Použijeme-li přı́kaz \psccurve, křivka bude uzavřená.
• Přı́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}
Použitı́m balı́čku pstcol zı́skáme možnost u jednotlivých objektů použı́vat také
vlastnosti linecolor (barva čáry), fillstyle (styl výplně) a fillcolor (barva výplně), přı́p.
hatchcolor (barva šrafovánı́). Barvy se definujı́ stejně jako u balı́čku color přı́kazem
\definecolor, přı́p. jsou již pojmenované (viz kap. 5.3). Vlastnost fillstyle může mı́t
tyto hodnoty:
• solid: objekt bude celý vybarven, bez šrafovánı́,
• vline: vertikálnı́ šrafovánı́,
• hline: horizontálnı́ šrafovánı́,
• crosshatch: oboje šrafovánı́.
5
BALÍČKY LATEXU PRO PRÁCI S GRAFIKOU
29
Souřadnicové mřı́žky a grafy funkcı́
Kromě výše popsaných objektů můžeme pomocı́ balı́čku pstricks vykreslit i souřadnicovou mřı́žku nebo také graf libovolné matematické funkce.
Souřadnicovou mřı́žku vytvořı́me pomocı́ přı́kazu \psgrid[vl](x 1 , y1 )(x 2 , y2 ).
Parametry x 1 , y1 , x 2 a y2 určujı́ souřadnice jejı́ch protilehlých rohů. Podobně jako
ostatnı́m objektům můžeme i souřadnicové mřı́žce nastavit různé vlastnosti, např.:
• subgriddiv = n: počet dı́lů, na které se dělı́ hlavnı́ mřı́žka; implicitně je to 5,
• gridwidth (resp. subgridwidth) = n: tloušt’ka čáry hlavnı́ mřı́žky (resp. mřı́žky
druhé úrovně), je třeba udat jednotku; standardně 8 pt (resp. 4 pt),
• gridlabels = n: velikost pı́sma čı́sel označujı́cı́ch mřı́žku, je třeba udat jednotku;
základnı́ nastavenı́ je 10 pt,
• gridcolor (resp. subgridcolor) = barva: barva čar tvořı́cı́ch hlavnı́ mřı́žku (resp.
mřı́žku druhé úrovně); standardnı́ barvou je černá,
• gridlabelcolor = barva: barva čı́sel označujı́cı́ch mřı́žku; implicitně je černá.
Přı́kaz \psplot[vl]{min x}{max x}{funkce} vykreslı́ graf matematické funkce udané v jeho poslednı́m parametru. Tato funkce musı́ být zadaná v jazyce PostScript.
Zápis funkce v tomto tvaru nenı́ obtı́žný (viz tabulka 1 na str. 30)10 . Parametry min
x a max x určujı́ rozmezı́ hodnot proměnné, pro které se daný graf vykreslı́. Přı́kaz
\psplot nenı́ definován přı́mo v balı́čku pstricks, musı́me navı́c použı́t i balı́ček
pst-plot. Za parametr vl můžeme dosadit např. tyto vlastnosti:
• plotstyle = hodnota: Nastavenı́ způsobu, jakým se graf funkce vykreslı́. Této
vlastnosti můžeme přiřadit hodnotu line (graf se vykreslı́ pomocı́ čar), curve
(pomocı́ křivek), dots (tečkovaně) apod.
• plotpoints = n: Počet bodů, kterými se graf vykreslı́.
• linecolor = barva: Barva, kterou se graf vykreslı́.
10
Zápis složitějšı́ funkce zı́skáme snadno kombinacı́ několika jednoduchých, např. funkce 5 + log x
má zápis 5 x log add.
5
BALÍČKY LATEXU PRO PRÁCI S GRAFIKOU
Matematický výraz
Jeho zá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: Zápis některých matematických výrazů v jazyce PostScript
• Přı́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ı́čku pstricks se dajı́ nakreslit velmi pěkné obrázky, grafy a schémata. Doporučuji přečı́st si o něm nějakou podrobnějšı́ dokumentaci (např. [ITUG]) a
vyzkoušet jeho možnosti v praxi.
11
Přı́kaz \psgrid je bohužel zakomentován, jelikož při kompilaci této práce docházelo k chybě
z důvodu nekompatibility přı́kazu s balı́čkem czech.
6 Tvorba prezentacı́ v LATEXu
Oblastı́, která s grafikou také úzce souvisı́, je tvorba prezentacı́. LATEX má k dispozici
několik nástrojů, jak vytvořit prezentace na profesionálnı́ úrovni. My si zde některé
z nich popı́šeme.
Základnı́m způsobem vytvářenı́ prezentacı́ v LATEXu je použitı́ standardnı́ třı́dy
dokumentu slides. Snı́mky prezentace obvykle chceme mı́t otočené „na šı́řku“,
proto do deklarace této třı́dy přidáme navı́c nepovinný parametr landscape –
\documentclass[landscape]{slides}. Jeden snı́mek prezentace je zde představován prostředı́m slide, které je ve třı́dě slides definováno. Vkládáme do něj tedy
všechna data, která majı́ být na snı́mku. Třı́da dokumentu slides nemá definovány přı́kazy pro členěnı́ dokumentu, které známe ze třı́dy article (tj. \section,
\subsection apod.), nelze je zde tedy použı́t. Většinu prostředı́, např. itemize a
verse však použı́t můžeme.
Snı́mky takto vytvořené prezentace můžeme dotvářet za pomoci různých přı́davných balı́čků, např. balı́ček color (kap. 5.3) nám mj. umožňuje definovat barvu
pozadı́ snı́mku. Pomocı́ balı́čku fancyhdr můžeme nastavit hlavičku, která se bude
objevovat na snı́mcı́ch12 . Samozřejmě lze do prezentace vkládat i obrázky použitı́m
balı́čku graphics (resp. graphicx).
Dalšı́ třı́dy dokumentů a přı́davné balı́čky
Kromě třı́dy slides existujı́ i dalšı́, které se použı́vajı́ při tvorbě prezentacı́. Obvykle již majı́ přednastavenou strukturu prezentace a jejı́ vzhled, tato nastavenı́
však můžeme měnit. Rovněž máme k dispozici různé balı́čky určené přı́mo pro
práci s prezentacemi. My si stručně popı́šeme třı́du prosper a balı́čky texpower,
ifmslide a pdfslide.
Třı́da prosper
Při deklaraci třı́dy prosper můžeme přednastavit některé vlastnosti našı́ prezentace
jako nepovinné parametry. Jsou to např.:
12
Balı́ček fancyhdr jsem použil i pro tvorbu hlavičky stránek této přı́ručky.
31
6
TVORBA PREZENTACÍ V LATEXU
32
• total: Na jednotlivých snı́mcı́ch bude uvedeno nejen čı́slo aktuálnı́ho snı́mku,
ale i jejich celkový počet,
• slideBW : Snı́mky budou černobı́lé,
• noFooter: Na snı́mcı́ch nebudou v zápatı́ uvedeny žádné informace.
Tato třı́da má již vytvořených několik vzhledů pro vytvářené prezentace, ze kterých
si můžeme vybrat (např. azure, autumn, nuancegris, lignesbleues aj.). Název zvoleného vzhledu pak vložı́me do deklarace třı́dy podobně jako výše uvedené možnosti.
Dalšı́ vlastnosti můžeme také zvolit v preambuli dokumentu. Je možno uvést
název prezentace (\title{název}), podtitul prozentace (\subtitle{podtitul}), autora (\author{jméno}) apod. Tyto informace pak vložı́me na snı́mek přı́kazem
\maketitle.
Text uvedený jako parametr přı́kazu \slideCaption{text} bude uveden na každém snı́mku. Podobně přı́kaz \Logo(x, y){objekt} sloužı́ ke vloženı́ objektu (většinou obrázku), který se má vložit na každý snı́mek. Parametry x a y určujı́ souřadnice, na kterých bude umı́stěn levý dolnı́ roh loga.
Pro volbu pı́sma nadpisů a textu jsou definovány přı́kazy \FontTitle{volba} a
\FontText{volba}. Za parametr volba dosazujeme rodinu fontu (informace o rodinách fontů viz [RYBIČKA]). Použijeme-li tyto přı́kazy s malými počátečnı́mi pı́smeny,
pak jejich funkce spočı́vá ve vysázenı́ textu uvedeného v parametru. Tento text se
vysázı́ s formátovánı́m zvoleným přı́kazy \FontTitle nebo \FontText.
Stejně jako u třı́dy slides i zde je snı́mek představován prostředı́m slide.
Toto prostředı́ má povinný parametr, do kterého musı́me zadat název snı́mku.13
Snı́mkům lze také přiřazovat různé vizuálnı́ efekty. Toto se provádı́ pomocı́ přı́kazu
\overlays{n}{snı́mek}. Parametr n určuje, z kolika kroků se animace bude skládat, za druhý parametr dosadı́me celé prostředı́ slide – tedy snı́mek, kterého se
animace bude týkat. Animace se vytvořı́ tak, že z původnı́ho snı́mku vznikne n nových snı́mků. Každý z nich pak představuje jeden krok animace. Uvnitř snı́mku
vloženého přı́kazem \overlays můžeme použı́t některé z těchto přı́kazů:
13
Přı́kazy pro členěnı́ dokumentu třı́dy article použı́t lze, ale jen mimo prostředı́ slide. Tyto prvky
se pak nevysázı́ na snı́mky, ale na normálnı́ stránky s textem.
6
TVORBA PREZENTACÍ V LATEXU
33
Obrázek 2: Přı́klad snı́mku vytvořeného pomocı́ třı́dy prosper
• \untilSlide{p}{data}: Data vložená do druhého parametru se objevı́ na
všech vzniklých snı́mcı́ch od prvnı́ho do p,
• \fromSlide{p}{data}: Data se objevı́ na všech vzniklých snı́mcı́ch od p do n,
• \onlySlide{p}{data}: Data se objevı́ jen na snı́mku p.
Tyto přı́kazy můžeme použı́t i s velkými počátečnı́mi pı́smeny. Potom nemajı́ druhý
parametr a jejich funkce se vztahuje na vše, co je ve zdrojovém textu za nimi.
Na obrázku 2 vidı́me přı́klad snı́mku, který můžeme pomocı́ třı́dy dokumentu
prosper vytvořit. Jeho zdrojový kód je uveden v přı́loze A.
Třı́da prosper vyžaduje, aby byl zdrojový text překládán do cı́lového formátu
přes formát .dvi (popř. i .ps). Pdf TEX bohužel nelze použı́t. Od toho se odvı́jı́ i
omezenı́ na formáty obrázků, které bychom přı́padně chtěli do prezentace vložit (viz
kap. 3.1). Možnosti této třı́dy rozšiřuje balı́ček HA-prosper.
Balı́ček texpower
Balı́ček texpower funguje hlavně jako rozšı́řenı́ možnostı́ třı́d a ostatnı́ch balı́čků
určených pro tvorbu prezentacı́ o dynamické prvky. Obsahuje přı́kazy pro práci
6
TVORBA PREZENTACÍ V LATEXU
34
Obrázek 3: Přı́klad snı́mku vytvořeného pomocı́ balı́čku ifmslide
s barvami, vkládánı́ navigačnı́ch tlačı́tek, tvorbu animacı́ apod. Pro správnou funkci
balı́čku je třeba před jeho deklaracı́ zavolat také balı́čky hyperref a soul.
Balı́ček ifmslide
Balı́ček ifmslide nabı́zı́ podobné funkce jako třı́da prosper. Umožňuje nám také
vložit do prezentace panel s navigačnı́mi tlačı́tky, měnit jeho polohu, pozadı́ apod.
Lze jej použı́t v dokumentech třı́dy powersem, přı́p. seminar. Při jeho deklaraci
můžeme zvolit některé vlastnosti, např. nepovinný parametr button nastavı́ hezčı́
vzhled tlačı́tek na navigačnı́m panelu. Důležitá je volba display, pokud nenı́ uvedena, budou vypnuty všechny efekty. Balı́ček vyžaduje, aby byly nainstalovány balı́čky texpower a hyperref. Před vloženı́m balı́čku ifmslide by měl být deklarován
balı́ček soul.
Navigačnı́ panel vložı́me přı́kazem \pagestyle{panel} a jeho polohu určı́me
přı́kazem \panelposition{pozice}. Pozice panelu může být left (vlevo), right (vpravo), top (nahoře), bottom (dole) a outsidebottom (panel bude dole, ale nebude součástı́ snı́mku). Nechceme-li navigačnı́ panel, použijeme přı́kaz \pagestyle{empty}.
Obsah snı́mku se opět vkládá do prostředı́ slide. Fungujı́ zde také přı́kazy pro
6
TVORBA PREZENTACÍ V LATEXU
35
Obrázek 4: Přı́klad snı́mku vytvořeného pomocı́ balı́čku pdfslide
členěnı́ textu \section atd. Názvy takto definovaných částı́ textu jsou zvýrazněny.
Balı́ček má implicitně nastaveno, že se obsah snı́mků vertikálně zarovnává doprostřed. Toto nastavenı́ lze zrušit přı́kazem \centerslidesfalse. Vizuálnı́ efekty
se provádějı́ pomocı́ přı́kazů definovaných v balı́čku texpower (jde např. o postupné
zobrazovánı́ informacı́ na snı́mku atp. – viz dokumentace balı́čku texpower).
Pro překlad zdrojového textu můžeme použı́t oba způsoby (tedy i Pdf TEX). Použijeme-li však Pdf TEX, nevložı́ se nám do prezentace panel nástrojů. Přı́klad snı́mku
vytvořeného pomocı́ tohoto balı́čku vidı́me na obrázku 3 (jeho zdrojový kód lze najı́t
v přı́loze A).
Balı́ček pdfslide
Jde o dalšı́ balı́ček pro tvorbu prezentacı́ s již přednastaveným vzhledem snı́mků.
Pro svou práci potřebuje, aby byl nainstalován balı́ček hyperref. Vkládáme jej do
dokumentu třı́dy article, slides apod. Použijeme-li třı́du article14 , platı́ pro
použı́vánı́ přı́kazů \section atd. totéž, co u balı́čku ifmslide.
Přı́kazem \overlay{soubor} můžeme snı́mku nastavit na pozadı́ libovolný ob14
Tuto volbu doporučuji
6
TVORBA PREZENTACÍ V LATEXU
36
rázek. Ten se roztáhne přes celou plochu snı́mku. Každému snı́mku lze nastavit
jiné pozadı́. I tento balı́ček má definován navigačnı́ panel. Vzhled jeho tlačı́tek ovlivnı́me zadánı́m nepovinného parametru při deklaraci balı́čku. Možné hodnoty jsou
contnav (doporučená volba) a ams (použı́vá se v přı́padě, že nemáme nainstalovány
fonty contnav). Součástı́ balı́čku je i přı́kaz \pagedissolve, který nám umožňuje
nastavit, jakým způsobem se provede přechod na nový snı́mek (např. že nový snı́mek překryje starý jako roleta apod. – vı́ce viz dokumentace tohoto balı́čku). Na
obrázku 4 je přı́klad snı́mku, který lze pomocı́ balı́čku vytvořit (jeho zdrojový kód je
opět uveden v přı́loze A).
Balı́ček pdfslides pro překlad zdrojového textu použı́vá Pdf TEX.
Kromě výše popsaných třı́d dokumentů a balı́čků pro tvorbu prezentacı́ existuje celá
řada dalšı́ch. Jmenujme alespoň třı́du beamer, seminar nebo již zmı́něný balı́ček
HA-prosper.
7
EXTERNÍ GRAFICKÉ NÁSTROJE
37
7 Externı́ grafické nástroje
V této kapitole si povı́me o několika nástrojı́ch, které můžeme použı́t při zpracovávánı́ grafiky pomocı́ LATEXu. Jsou jimi programy METAFONT, bm2font a GNUPlot.
Informace o dalšı́ch pomocných programech pro TEX lze najı́t např. na webových
stránkách [ROZCESTNÍK].
METAFONT
METAFONT je program pro tvorbu složitějšı́ vektorové grafiky, než nám umožňuje
prostředı́ picture. Vytvořil ho autor TEXu Donald E. Knuth. Použı́vá se zejména
pro tvorbu pı́sem (fontů), ale i pro kreslenı́ jiných obrázků. Struktura a chovánı́
METAFONTu jsou podobné jako jako u TEXu. Jeho výstupem je soubor typu .gf,
obsahujı́cı́ bitmapu fontu v požadovaném rozlišenı́.
Z jazyka METAFONTu vznikl jazyk METAPOST, který má podobné možnosti. Lišı́
se však formátem výstupu. Vytvořı́me-li obrázek METAPOSTem, uložı́ se ve formátu
.ps (PostScript), což je pro nás mnohem přijatelnějšı́.
Podrobnějšı́ informace o programu METAFONT lze najı́t v knize [KNUTH], z českých
publikacı́ jmenujme např. knihu [OLŠÁK].
bm2font
Jedná se o program, který dokáže převést bitmapové obrázky různých typů (např.
.bmp, .gif, .pcx aj.) na fonty, se kterými pak TEX (přı́p. LATEX) pracuje. Zpracovávaný obrázek je programem rozdělen na části, ze kterých se pak vytvořı́ jednotlivé
znaky fontu. Současně se také vygeneruje soubor typu .tex obsahujı́cı́ přı́kazy pro
správné vloženı́ takto upraveného obrázku.
Před samotným vloženı́m obrázku do dokumentu se musı́me ujistit, zda jsou
všechny vygenerované soubory ve složce, kde máme uložený dokument. Také je
třeba soubory typu .pk zkopı́rovat do složky, ve které má TEX standardně uloženy
fonty. Obrázek pak do dokumentu vložı́me pomocı́ přı́kazů \input{název.tex} a
\setnázev.15 Program bm2font je zdarma.
15
Za název dosadı́me název souboru s obrázkem, např. \input{obrazek.tex} \setobrazek
7
EXTERNÍ GRAFICKÉ NÁSTROJE
38
GNUPlot
Nástroj GNUPlot se použı́vá pro tvorbu grafů různých matematických funkcı́. Může
se jednat jak o funkce jedné, tak i dvou proměnných. Program ovládáme (podobně
jako TEX) pomocı́ jednoduchých přı́kazů. Ty můžeme zadávat bud’ jednotlivě přı́mo
do přı́kazové řádky GNUPlotu nebo jejich posloupnost uložı́me do nějakého textového souboru a ten pak programem zpracujeme. Přı́kazy se mohou týkat dat, která
se majı́ vykreslit, formátovánı́ grafu, typu výstupu (můžeme určit, že chceme mı́t
obrázek s grafem např. ve formátu .eps) apod. Tento nástroj je volně dostupný a
doporučuji jej vyzkoušet.16
16
Informace o GNUPlotu naleznete na internetové stránce http://www.gnuplot.info
8 Závěr
Cı́lem této práce bylo ukázat, jaké možnosti skrývajı́ typografický systém TEX a jeho
nástavba LATEX v oblasti grafiky.
Na začátku práce jsem popsal dva základnı́ druhy současné počı́tačové grafiky
– rastrovou a vektorovou grafiku. V dalšı́ kapitole jsem se zaměřil na možnosti
vkládánı́ externı́ch obrázků do vytvářeného dokumentu. Jednalo se hlavně o popis
závislosti formátu obrázku na formátu výstupnı́ho dokumentu a charakteristiku
tzv. plovoucı́ch prostředı́ (zejména prostředı́ figure, které se použı́vá pro vkládánı́
obrázků do dokumentu). Také jsem ukázal některé způsoby, jak zajistit „obtékánı́“
obrázku textem.
Ve čtvrté kapitole jsem se věnoval LATEXovému prostředı́ picture, které se použı́vá pro sazbu jednoduché vektorové grafiky. Popsal jsem základnı́ objekty, které
lze v tomto prostředı́ vložit na kreslicı́ plochu, omezenı́, která pro ně platı́ a způsoby,
jak lze měnit některé jejich vlastnosti. Rovněž jsem uvedl některé LATEXové balı́čky,
které možnosti prostředı́ picture rozšiřujı́ a stručně je popsal.
O balı́čcı́ch, které v LATEXu umožňujı́ pohodlnějšı́ a snadnějšı́ práci s grafikou,
pojednávala pátá kapitola. Jednalo se o balı́čky graphics, graphicx, pstricks a
také o balı́ček color, který podporuje práci s barvami.
Šestá kapitola se zabývala tvorbou prezentacı́ pomocı́ LATEXu. Uměnı́ tvorby prezentacı́ je v současnosti důležitou složkou mnoha odvětvı́ pracovnı́ho života. Prezentace se použı́vajı́ např. ve školstvı́, na vědeckých konferencı́ch apod. LATEX nabı́zı́
několik způsobů, jak vytvořit prezentaci podle našich představ.
V poslednı́ kapitole jsem se zaměřil na některé externı́ nástroje, které se obvykle
použı́vajı́ při práci s grafikou v LATEXu. Jde např. o program METAFONT (vytvořený
samotným autorem TEXu D. E. Knuthem) pro tvorbu fontů nebo program GNUPlot,
který se použı́vá pro tvorbu různých grafů apod.
Funkce všech popsaných LATEXových přı́kazů a nástrojů jsem se snažil ilustrovat
na vhodných přı́kladech.
Tato práce je k dispozici (i se svým zdrojovým kódem) v elektronické podobě
s obrázky v barvě na přiloženém CD.
Popisem výše zmı́něných metod práce s grafikou v LATEXu jsem splnil cı́l práce.
39
A
A
ZDROJOVÉ KÓDY SNÍMKŮ UVEDENÝCH V KAPITOLE 6
Zdrojové kódy snı́mků uvedených v kapitole 6
Následujı́cı́m kódem byl vygenerován snı́mek na obrázku 2 (str. 33):
\documentclass[nuancegris]{prosper}
\usepackage{graphicx}
\usepackage{bookman}
\usepackage{czech}
\begin{document}
\slideCaption{Prezentace vytvořená pomocı́ třı́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 můžeme dát seznam:
{\small
\begin{itemize}
\item Prvnı́ položka
\item Druhá položka
\item Poslednı́ položka
\end{itemize}}
\end{slide}
\end{document}
Tı́mto kódem byl vytvořen snı́mek na obrá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
ZDROJOVÉ KÓDY SNÍMKŮ UVEDENÝCH V KAPITOLE 6
\begin{slide}
\section{Snı́mek vytvořený balı́č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
Ještě vložı́me obrázek
\includegraphics[scale=0.5]{obrazek}
\end{slide}
\end{document}
Snı́mek na obrázku 4 (str. 35) jsem vytvořil pomocı́ tohoto kódu:
\documentclass[a4paper,landscape]{article}
\usepackage[contnav]{pdfslide}
\usepackage{bookman}
\usepackage{czech}
\usepackage{graphicx}
\begin{document}
\overlay{pozadi}
\section{Dalšı́ snı́mek...}
Tento snı́mek byl vytvořen pomocı́ balı́čku \texttt{pdfslide}.
Skládá se z˜tohoto textu, navigačnı́ho panelu a vloženého obrázku.
\subsection{Vložený obrázek}
\includegraphics[scale=0.5]{obrazek}
\end{document}
41
Reference
[RYBIČKA]
RYBIČKA, J. LATEX pro začátečnı́ky.
Brno: Konvoj, 2003.
[KNUTH]
KNUTH, D. E. The METAFONT book.
Massachusetts: Addison-Wesley, 1986.
[OLŠÁK]
OLŠÁK, P. Typografický systém TEX.
Brno: Konvoj, 1997.
[ZDRÁHAL]
ZDRÁHAL, T. Hypertextová přı́ručka k LATEXu.
Opava, 2004.
[BUK]
BUK, T. Začı́náme s TEXem na [fi studovna].muni.cz.
Brno, 2002.
[HELLER]
HELLER, J. Typografický systém TEX.
Praha, 2005.
[SOPUCH]
SOPUCH, P. LATEX v kostce [online]. 2001. Dostupný z WWW:
<http://www.it.cas.cz/manual/latex/>
[ŠVAMBERG]
ŠVAMBERG, M. Jak na LATEX [online]. 2003. Dostupný z WWW:
<http.//www.root.cz/serialy/jak-na-latex/>
[WIEDMANN]
WIEDMANN, M. Screen Presentation Tools [online]. 2004.
Dostupný z WWW:
<http://www.miwie.org/presentations/presentations.html>
[ITUG]
The Indian TEX Users Group. Graphics with pstricks [online]. 2002.
Dostupný z WWW:
<http://www.tug.org.in>
[ROZCESTNÍK] Rozcestnı́k grafiky v TEXu [online]. Dostupný z WWW:
<http://buteo.szm.sk/tex/grafika vekt.htm>
[BM2FONT]
bm2font [online]. Dostupný z WWW:
<http://vacek.2net.cz/tex/bm2font.html>
42
43
REFERENCE
[VEKT]
Vektorová grafika Slovnı́k internetových výrazů SYMBIO [online].
Dostupný z WWW:
<http://www.symbio.cz/slovnik/vektorova-grafika.html>
[RASTR]
Rastrová grafika Slovnı́k internetových výrazů SYMBIO [online].
Dostupný z WWW:
<http://www.symbio.cz/slovnik/rastrova-grafika.html>
[DRSNY]
Drsný úvod do LATEXu aneb Moc se s tı́m nemazlete [online]. 2005.
Dostupný z WWW:
<http://apfyz.upol.cz/ucebnice/minitexty.html>
[COLOR]
CARLISHE, D. P. The color package. 1995.
Dokumentace k balı́čku color.
[GRFPAC]
CARLISHE, D. P. Packages in the ‘graphics’ bundle. 1999.
Součást dokumentace ke grafickým balı́čkům.
[EEPIC]
KWOK, C. EEPIC (Extensions to epic and LATEX Picture Environment
Version 1.1). 1998.
Dokumentace k balı́čku eepic.
[IFMSLIDE]
EMMEL, T. ifmslide.sty - Powerful presentations with Pdf LATEX and
LATEX. 2001.
Dokumentace k balı́čku ifmslide.
[PDFSLIDE]
The Indian TEX Users Group. Presentations with Pdf TEX.
Dokumentace k balı́čku pdfslide.
[PROSPER]
GOUALARD, F., NEERGAARD, P. M.
Making slides in LATEX with prosper.
Dokumentace k třı́dě dokumentu prosper.
Aktuálnost webových odkazů jsem zkontroloval dne 20. dubna 2005. Uvedená dokumentace k jednotlivým balı́čkům je součástı́ plné instalace TEXLive.
Vysázeno systémem LATEX

Podobné dokumenty

Elektronická verze - Zpravodaj Československého sdružení

Elektronická verze - Zpravodaj Československého sdružení by pravděpodobně vyžadovalo množství práce a úsilí v rozsahu samostatného článku.

Více

Jiří Wolker: Výber z poézie

Jiří Wolker: Výber z poézie ;t 1lrlltlrltt0 tčžkéje jak pronrokllii pIášť, t1 ží,llillrriv:lšitni za vámi jťlu, l rlzlirllill ll()lill vám něco k oběťtu ;l v rtr'lítl|t rrcsu vám klid. t tlrtlrl:i,l scdnu a hleťIím, jak jíte,...

Více

Te19 emata diplomovy19 ych prac19 2007

Te19 emata diplomovy19 ych prac19 2007 Technologie vycházı́ z toho, že současné grafické karty disponujı́ velkým množstvı́m výpočetnı́ch jader, která narozdı́l od (několika málo) jader běžných CPU (procesorů) sice mohou ...

Více

Ne úplně nejkratší úvod do formátu LATEX2ε

Ne úplně nejkratší úvod do formátu LATEX2ε Kapitola 2 popisuje detaily sazby vašeho dokumentu. Vysvětluje většinu základních LATEXových příkazů a prostředí. Po přečtení této kapitoly budete schopni napsat své první dokumenty. Kapitola 3 vys...

Více

Elektronická verze

Elektronická verze Naším cílem bude nakreslit čáru z místa A do místa B. Podmínkou bude, aby obě místa ležela na téže straně, i když třeba uvnitř odstavce. Každé místo označíme pomocí značky \posMark{A}, kde A je zvo...

Více

Bažákův průvodce publikačním systémem LATEX

Bažákův průvodce publikačním systémem LATEX hojně používané – interpunkční znaménko (zde se okolo použijí mezery). Protože pomlčka na půlčtverčík se nesmí vyskytnout na začátku řádku, neuděláte chybu, když před ni dáte – jako právě zde – nez...

Více

Cvicen´ı 8: Delphi - unita Graph2d, propojen´ı formulár˚u

Cvicen´ı 8: Delphi - unita Graph2d, propojen´ı formulár˚u Umožňuje nastavenı́ velikosti kreslicı́ho plátna. Velikost je udávána v pixelech. Dále tato procedura nastavı́ hloubku obrazu, která je nezbytná pro pozdějšı́ vykreslenı́ útvarů. Tuto p...

Více

Prvn´ı dojmy z komercn´ı verze OpenOffice.org 1.1.1 pro OS/2

Prvn´ı dojmy z komercn´ı verze OpenOffice.org 1.1.1 pro OS/2 vı́ce překvapujı́cı́, že OpenOffice pracuje s unikódem a soubory ukládá vnitřně v kódovánı́ UTF-8. Tento problém nenı́ dle mého názoru problémem samotného portu OpenOffice, ale Window...

Více

2 Typografický systém TEX 38 2.1 Jak to všechno funguje

2 Typografický systém TEX 38 2.1 Jak to všechno funguje (toho, kdo dokument vytvářı́), ale také hodně nevýhod plynoucı́ch většinou z toho, že program musı́ pořád „myslet za uživatele“, někde uvnitř mı́t uloženy informace o tom, jak má co ...

Více