Grafika v LaTeXu
Transkript
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í
by pravděpodobně vyžadovalo množství práce a úsilí v rozsahu samostatného
článku.
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,...
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 ...
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...
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...
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...
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...
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...
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 ...