Hlavní navigace

Jak na LaTeX: balíčky graphicx a comment

15. 5. 2003
Doba čtení: 5 minut

Sdílet

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 ]

UX DAy - tip 2

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

Byl pro vás článek přínosný?