Obrázky
TeX byl napsán pro sazbu technické literatury, zvláště pak matematické, kde nemá konkurenci již několik desetiletí. Bohužel se trochu opomnělo na obrázky, což v době, kdy počítače měly jen několik kB operační paměti, stejně bylo velmi obtížně realizovatelné. Samozřejmě, že bez vkládání obrázku to nešlo (v matematice se také používají grafy :). Obrázky se ovšem nevkládají přímo do dokumentu, ale pouze se vytváří odkaz na zdrojový soubor s obrázkem. Po kompilaci je v souboru .dvi
stále pouze odkaz na tento soubor. A zde je vidět trik, kterým TeX obchází zpracování obrázku, nechává vše na programech zpracovávajících DVI soubory do výstupních formátů. Nejvíce tedy záleží na programech zpracovávajících DVI do potřebných formátů ( dvips
pro PostScript nebo dvipdf
pro PDF).
Ovšem co by to bylo za typografický nástroj, kdybychom tyto programy nemohli jednoduše ovlivnit přímo z dokumentu. Nejpoužívanějším balíčkem v LaTeXu pro práci s obrázky (ale nejen s nimi) je graphics
nebo jeho rozšířený bráška graphicx
, kterému se zde budeme věnovat.
Detailnější popis prostředí graphics
a graphicx
lze najít v souboru grfguide.ps
jako součást dokumentace k těmto balíkům.
Použití
V první řadě je nutné naimportovat balík graphicx
do našeho dokumentu:
\usepackage[driver]{graphicx}
Defaultní nastavení pro driver je dvips
, a to proto, že se jako výstupní předpokládá dokument PostScript. Každý driver umí zpracovávat různé typy vstupních souborů. Díky tomu se náš dokument stává závislejší na výstupním formátu, protože například driver pdftex
neumí zpracovat obrázek ve formátu PS, a naproti tomu dvips
zase PDF, o grafických formátech, jako jsou JPG, PNG, BMP a další už ani nemluvě. Obecně se většinou dozvíte, že nejlepší je převést obrázek do formátu EPS a s tím v TeXu pracovat. Nejdůležitější je tedy rozvážit, jaké máte obrázky, jaké jsou vaše potřeby a co s dokumentem zamýšlíte, případně co od něj požadujete. Podle toho se rozhodnout, jaký výstupní formát použijete, a tomu přizpůsobit obrázky.
Nezřídka se ovšem stává, že obrázky už máte a vaším úkolem je sepsat dokumentaci. Na tuto potřebu myslí balík graphicx
tím, že vám umožňuje nadefinovat příkaz, kterým lze daný formát převést na potřebný, například pokud máte obrázky v gzipu, tak je nasnadě použít gunzip -c obrázek.ps.gz
a tím virtuálně rozšířit možnosti daného driveru. Více o této a dalších možnostech se lze dočíst v dokumentaci k prostředí graphics
. Dále budeme předpokládat, že požadujeme výstup do PostScriptu a tudíž použijeme defaultní driver dvips
s tím, že vstupní obrázky máme v EPS (Encapsulated PostScript).
Vložení obrázku pak provedeme příkazem:
\includegraphics[parametry]{obrázek.eps}
Pokud nepovinné parametry vynecháme, vloží se obrázek bez úprav. Ovšem to většinou nevyhovuje, a tak můžeme použít parametry:
- angle
- natočení obrázku o libovolný počet stupňů, a to v kladném i záporném směru
- height
- nastavení výšky obrázku
- width
- nastavení šířky obrázku
- scale
- změna velikosti obrázku poměrně ke stranám, výsledná velikost bude násobkem zadané hodnoty a původní velikosti
- type
- definice typu vstupního souboru, nebude brán zřetel na příponu souboru s obrázkem
Jednotlivé parametry oddělujeme mezi sebou čárkou a hodnoty přiřazujeme rovnítkem, například.:
angle=-45, height=7cm, width=35mm
Příkaz umožňuje mnoho dalších parametrů (viz grfguide.ps), zde jsou jen ty, které užijete nejčastěji.
Obrázky většinou vkládáme do plovoucích prostředí, pro obrázek se používá prostředí figure
zmíněné v osmém dílu tohoto seriálu. A nejlépe s nějakým hezkým popisem, na který se můžeme odkazovat:
\begin{figure} \includegraphicx[scale=1.3, angle=17]{obrazek.ps} \caption{Obrázek vložený prostředím \texttt{graphicx}.} \label{obr.graphicx} \end{figure}
Příklad
Slíbený úsměvný příklad je zde, nedávno totiž na mě zaútočil kombajn :-), na to, jak to bylo před a po, se můžete podívat v příkladu.
\usepackage{graphicx} \begin{document} \begin{figure} \begin{center} \includegraphics[scale=0.5,angle=10]{pred_leva.ps} \includegraphics[scale=0.5,angle=-10]{pred_prava.ps} \includegraphics{pred_predni.ps} \caption{Před útokem} \label{obr.pred} \end{center} \end{figure} \begin{figure} \begin{center} \includegraphics[scale=0.5,angle=-10]{po_leva.ps} \includegraphics[scale=0.5,angle=10]{po_prava.ps} \includegraphics{po_predni.ps} \caption{Po útoku} \label{obr.po} \end{center} \end{figure} \end{document}
[ tex | dvi | ps | ps.gz | jpg | tar.gz ]
Součástí balíku graphicx
je také ukázkový obrázek a.ps
, který použijeme v příkladu:
\usepackage{graphicx} \begin{document} \begin{figure} \begin{center} \includegraphics[scale=0.25]{a.ps} \includegraphics[scale=0.5]{a.ps} \includegraphics{a.ps} \caption{Změna velikosti v násobcích $0,25$x, $0.5$x a $1$x.} \end{center} \end{figure} \begin{figure} \begin{center} \includegraphics[scale=0.25, angle=15]{a.ps} \includegraphics[scale=0.5, angle=30]{a.ps} \includegraphics[angle=45]{a.ps} \caption{Změna velikosti v násobcích $0,25$x, $0.5$x a $1$x s rotací po 15 stupních.} \end{center} \end{figure} \begin{figure} \begin{center} \includegraphics[width=10cm, height=1cm,angle=-10]{a.ps} \caption{Kombinace parametrů \texttt{width=10cm, height=1cm, angle=-10}.} \end{center} \end{figure} \begin{figure} \begin{center} \includegraphics[width=4cm]{a.ps} \caption{Parametr \texttt{width=4cm} upraví také ve stejném poměru \texttt{height}.} \end{center} \end{figure} \end{document}
[ tex | dvi | ps | jpg | tar.gz ]
Rozsáhlé komentáře
Je to pravda, na takto zdánlivě jednoduchou věc je potřeba samostatné prostředí comment
, které opravdu slouží pouze k vytváření komentářů. Tyto komentáře se nedostanou do výstupního dokumentu, ale jsou k dispozici ve zdrojovém kódu. Tím umožňuje snadné vyřazení části dokumentu, aniž byste museli do zdrojového kódu nějak výrazně zasahovat. Ovšem je třeba mít stále na paměti, že musíte dodržet správnost dokumentu, po zakomentování nesmí vzniknout překrývající se prostředí nebo „směsi“ prostředí, kterým by překladač nerozuměl.
Komentovat jednotlivé řádky samozřejmě umíme pomocí znaku %
, ale zkuste si zakomentovat celý odstavec nebo kapitolu. Nyní na to budou stačit dva řádky navíc (a jeden řádek v hlavičce dokumentu):
\usepackage{comment} \begin{document} Tento text zůstane zobrazen, ale kapitola níže ne. \begin{comment} \section{zakomentovaná kapitola} Tohle se nikdy nikde nesmí objevit, protože je tajné :-) už jen to, že to vůbec je. \end{comment} A teď vidíte, že nic nevidíte. \end{document}
Pozor na to, že ukončovací \end{comment}
nesmí být odsazený, jinak překladač začne hlásit chybu. Pro \begin{comment}
to není nutné, ale vypadá lépe, když jsou oba příkazy neodsazené.
Závěr
Vkládání obrázků není vyřešeno zrovna ideálně, ale TeX není určen na sazbu časopisů nebo prospektů. V technické dokumentaci je většinou důležitější vlastní text a obrázky se příliš nevyskytují. Prostředí graphicx
se snaží všemožně tuto nevýhodu smazat a nabídnout uživateli relativní komfort pro práci s obrázky, umožňuje také nejrůznější triky s textem a mnoho jiných zajímavých operací.