Hlavní navigace

Jak na LaTeX: balíčky graphicx a comment

Michal Švamberg 15. 5. 2003

TeX (a tudíž i LaTeX) si nese sebou jedno historické břímě, které se jmenuje "práce s obrázky". Jak jednoduše a snadno do dokumentu vložit obrázek, se dozvíme právě v dnešním dílu. V druhé části si řekneme něco u užitečném prostředí comment. A jako v předchozích dílech nebude chybět úsměvný příklad.

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í graphicsgraphicx 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}

[ tex | dvi | ps | jpg ]

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í.

Našli jste v článku chybu?

6. 12. 2010 20:00

duitak (neregistrovaný)

Zdravím,
mám takovej problém, když napíšu:

\begin{figure}
\begin{center}
\includegraphic­s{image/ring.ep­s}
\end{center}
\caption[Mutace ve scéně se složitou geometrií]{popis.}
\label{mutation}
\end{figure}

tak jsem předpokládal, že se mi objeví obrázek, bohužel obrázek se mi nezobrazí pouze popis. Neví někdo co s tím? Předem děkuji.








25. 11. 2008 13:33

Pašo (neregistrovaný)
Zdravím, chtěl jsem se zeptat, kde je chyba. Když vložím obrázek tak ve výsledném PDFku se mi vedle obrázku zobrazí i cesta, kde je na disku uložen. Používám TeXnicCenter.
Díky
Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Root.cz: Certifikáty zadarmo jsou horší než za peníze?

Certifikáty zadarmo jsou horší než za peníze?

Podnikatel.cz: Nejenom EET, začaly platit další zákony

Nejenom EET, začaly platit další zákony

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

Podnikatel.cz: Babiše přesvědčila 89letá podnikatelka?!

Babiše přesvědčila 89letá podnikatelka?!

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

Podnikatel.cz: EET: Totálně nezvládli metodologii projektu

EET: Totálně nezvládli metodologii projektu

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Root.cz: Vypadl Google a rozbilo se toho hodně

Vypadl Google a rozbilo se toho hodně

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

Vitalia.cz: Manželka je bio, ale na sex moc není

Manželka je bio, ale na sex moc není

Lupa.cz: UX přestává pro firmy být magie

UX přestává pro firmy být magie

Vitalia.cz: Co pomáhá dítěti při zácpě?

Co pomáhá dítěti při zácpě?

Podnikatel.cz: Víme první výsledky doby odezvy #EET

Víme první výsledky doby odezvy #EET

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte