%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Obsah: Špeciality systému LaTeX
% $Id: spec.tex,v 1.2 1996/01/25 14:01:06 oetiker Exp oetiker $
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\chapter{Špeciality}
\begin{intro}
Pri spájaní veľkého dokumentu vám \LaTeX{} pomôže riešiť
niektoré špeciálne problémy, akými sú vytváranie registra, manažment bibliografických údajov a iné veci. Podstatne úplnejší popis špecialít a rozšírení prístupných v~\LaTeX{}u môžete nájsť v~{\normalfont\manual{}} a {\normalfont \companion}.
\end{intro}

\section{Vkladanie EPS grafiky}
Pomocou prostredí \texttt{figure} a \texttt{table} poskytuje \LaTeX{}
základné možnosti na prácu s~plávajúcimi objektmi, napríklad
s~obrázkami alebo grafikou.

Pomocou \LaTeX{}u alebo \LaTeX{}ových doplňujúcich balíkov je možné
vytvárať aj obrázky. Nanešťastie väčšina užívateľov považuje
tento spôsob za náročný na pochopenie. Z~tohoto dôvodu sa ďalej
nebudeme vytváraním obrázkov v~\LaTeX u~v~tomto manuále zaoberať.\footnote{V slovenskom preklade sa budeme, pozri oddiel \ref{pictureenv} na strane \pageref{pictureenv}. (pozn. prekl.).}
Bližšie informácie o~tvorbe obrázkov nájdete v~\companion{} a
\manual.

Oveľa jednoduchším spôsobom, ako dostať grafiku do dokumentu, je
vytvoriť si daný obrázok špeciálnym grafickým programom%
\footnote{Ako napríklad  XFig, CorelDraw!, Freehand, Gnuplot, \ldots}
a potom vložiť hotový obrázok do dokumentu. \LaTeX{} tu znovu  ponúka širokú
škálu balíkov, ktoré ponúkajú množstvo spôsobov, ako to urobiť.
V~tomto úvode sa budeme zaoberať len typom \textsc{Encapsulated
PostScript} (EPS), nakoľko je pomerne jednoduchý a často používaný.
Aby ste mohli používať obrázky vo formáte EPS, musíte mať k~dispozícii
\textsc{PostScript}ovú tlačiareň.\footnote{Druhý spôsob, ako použiť
\textsc{PostScript}, je pomocou programu \textsc{GhostScript} dostupného
na adrese \texttt{CTAN:/tex-archive/support/ghostscript}.}
\index{Encapsulated PostScript@\textsc{Encapsulated PostScript}}
\index{PostScript@\textsc{PostScript}}
\index{GhostScript@\textsc{GhostScript}}

Prospešnú sadu príkazov na vkladanie grafiky poskytuje balík
\pai{graphicx}, ktorého autorom je D.~P.~Carlisle.
Je to časť celej rodiny balíkov nazývanej \uv{grafický}
uzol.\footnote{\texttt{CTAN:/tex-archive/macros/latex/packages/graphics}}

Ak pracujete na systéme, ktorý má k~dispozícii
\textsc{PostScript}ovú tlačiareň a má nainštalovaný balík
\textsf{graphicx}, tak môžete používať nasledujúci návod, kde sa krok
za krokom dozviete, ako vložiť grafiku do dokumentu:

\begin{enumerate}
\item Uložte svoj obrázok v~grafickom programe vo formáte EPS.\footnote{Ak váš softvér nedokáže exportovať do formátu EPS, môžete si skúsiť nainštalovať ovládač \textsc{PostScript}ovej tlačiarne (napríklad nejaký Apple LaserWriter) a potom tlačiť s~týmto ovládačom do súboru. Pri troche šťastia bude tento súbor vo formáte EPS. Poznamenajme, že EPS obrázok nesmie obsahovať viac ako jednu stranu. Niektoré ovládače tlačiarní môžu byť explicitne nakonfigurované na vytváranie formátu EPS.}

\item Aktivujte balík \textsf{graphicx} v~hlavičke zdrojového
súboru príkazom
\begin{lscommand}
\verb|\usepackage[|\emph{ovládač}\verb|]{graphicx}|
\end{lscommand}
\emph{ovládač} je názov vášho \uv{dvi to postscript} prekladača.%
\footnote{Najrozšírenejší program sa volá \texttt{dvips}.}
Tento názov je požadovaný balíkom, pretože neexistuje štandard na včlenenie grafiky do \TeX{}u. Poznajúc \emph{ovládač}, balík \textsf{graphicx}
zvolí správnu metódu na vloženie informácie o obrázku do súboru~\texttt{.dvi} tak, aby ju tlačiareň pochopila a mohla správne začleniť EPS súbor.

\item Na vloženie \emph{súboru} do dokumentu použite
príkaz
\begin{lscommand}
\ci{includegraphics}\verb|[|\emph{kľúč}=\emph{hodnota},
\ldots\verb|]{|\emph{file}\verb|}|
\end{lscommand}
Za voliteľné parametre sa berie zoznam čiarkami oddelených
\emph{kľúčov}~a ich hodnôt.
\emph{Kľúče} sa môžu použiť na zmenu šírky, výšky
a otáčanie vkladanej grafiky. Tabuľka~\ref{keyvals} uvádza zoznam
najdôležitejších kľúčov.
\end{enumerate}

\begin{table}[htb]
\caption{Názvy kľučov pre balík \textsf{graphicx}}
\label{keyvals}
\begin{lined}{9cm}
\begin{tabular}{@{}ll}
\texttt{width}& zmení obrázok na danú šírku \\
\texttt{height}& zmení obrázok na danú výšku \\
\texttt{angle}& otočí obrázok v~smere hodinových ručičiek\\
\texttt{scale}& zmení mierku obrázka \\
\end{tabular}

\bigskip
\end{lined}
\end{table}

Nasledujúci príklad, dúfajme, urobí vo veciach jasno:
\begin{code}
\begin{verbatim}
\begin{figure}
\begin{center}
\includegraphics[angle=90, width=0.5\textwidth]{test.eps}
\end{center}
\end{figure}
\end{verbatim}
\end{code}
Príkaz vloží obrázok uložený v~súbore \texttt{test.eps}. Obrázok je
\emph{najprv} otočený o~90 stupňov a \emph{potom} rozšírený na
konečnú šírku rovnajúcu sa polovici šírky štandardného odseku. 
Pomer výšky a šírky sa nezmenil, nakoľko sme
nedefinovali žiadnu špeciálnu výšku. Parametre šírky a výšky môžu byť tiež zadané v~absolútnych jednotkách. Pozrite sa na tabuľku \ref{units} na strane 
\pageref{units}. Ak sa o tejto téme chcete dozvedieť viac, určite si prečítajte \cite{graphics} a \cite{eps}.

\section{Prostredie \texttt{picture}}\label{pictureenv}

\cih{picture}
Na tomto mieste doplníme stručný popis prostredia \ei{picture}.%
\footnote{Doplnené pri slovenskom preklade (pozn. prekl.).}
Podrobnejší popis nájdete v~knižke \cite{rybicka}. \LaTeX{}ovské
prostredie \ei{picture} umožňuje priamo v~\LaTeX{}u vytvárať
jednoduché obrázky, pozostávajúce z~rovných čiar, šípiek, kružníc
a oválov (respektíve polkružníc, štvrťkružníc). Okrem toho vyrába
Bezierove krivky. Toto prostredie je vhodné aj na umiestňovanie
popisov a to aj popisov ku grafike, vytváranej mimo \TeX{}u,
napríklad k~bitmapovým obrázkom. Takýmto spôsobom sa dosiahne
jednota textu a popisov obrázkov. Nasledujúci
obrázok~\ref{picture} ilustruje uvedené možnosti. Bol vytvorený
programom \TeX{}cad~3.2 (autori G.~Horn a J.~Winkelmann),
ktorý je aj súčasťou distribúcie \CSTeX{}u. Tento program je
vhodný na prvé zoznámenie sa s~prostredím \texttt{picture}, používateľ
môže neskôr písať príkazy samostatne.
Pri použití príkazov \verb+\emline+ a \verb+\bezier+ sú potrebné
štýly \verb+emlines2.sty+ a \verb+bezier.sty+. Navyše nie všetky 
ovládače zobrazia výsledok príkazu \verb+\emline+.

Syntax prostredia je približne nasledujúca:
\begin{lscommand}
\verb+\begin{picture}+\texttt{(\textit{šírka},\textit{výška})($x_r$,$y_r$)}\\
\verb+\put+\texttt{($x$,$y$)\char'173\textit{objekt}\char'175}\\
\verb+\end{picture}+
\end{lscommand}
\noindent Parametre \textit{šírka} a \textit{výška} udávajú
rozmery vytvoreného \uv{boxu}. Zadanie $(0,0)$ spôsobí, že
vytvorený objekt má nulový rozmer, teda \TeX{} ostáva na mieste,
kde bol pred zadaním prostredia \verb+picture+. Nepovinné
$(x_r,y_r)$ sú súradnice \uv{referenčného bodu}, teda bodu,
v~ktorom sa momentálne \TeX{} nachádza, v~súradnicovom systéme
prostredia \verb+picture+.
\begin{example}
Uprostred slo\begin{picture}(0,0)(0,0)
\unitlength=1mm
\put(2,2.5)
    {\framebox(4,2.5)[tr]{$\bullet$}}
\end{picture}va môžem na chvíľu odísť.
\end{example}

\begin{figure}[!h]
{\small
\begin{verbatim}
\special{em:linewidth 0.4pt} \unitlength 1mm \linethickness{0.4pt}
\begin{picture}(56.00,73.00)
\put(0,0){\vector(1,0){56}} \put(0,0){\vector(0,1){73}} % osi x,y
\multiput(0,0)(10,0){6}{\emline{0}{0}{1}{0}{-1}{1}} % znacky osi x
\multiput(0,0)(0,10){8}{\emline{0}{0}{1}{-1}{0}{1}} % znacky osi y
\put(8.67,28.33){\makebox(0,0)[rt]{Kuku}}
\put(15.67,21.00){\framebox(15.67,5.67)[lt]{Zavretý}}
\put(36.67,26.67){\dashbox{3.33}(17.33,9.33)[cc]{Som tu}}
\put(21.67,30.00){\rule{10.00\unitlength}{5.67\unitlength}}
\emline{31.67}{16.67}{1}{19.33}{6.33}{2}
\put(12.33,13.33){\vector(-1,1){0.2}}
\emline{19.33}{6.33}{3}{12.33}{13.33}{4} %\end
\put(43.67,10.33){\circle{13.33}} \put(43.67,10.33){\circle*{4.00}}
\put(12.83,46.00){\oval(10.33,4.67)[l]}
\put(24.17,51.50){\oval(12.33,6.33)[rt]}
\put(44.17,46.67){\oval(17.00,6.67)[]}
\bezier{132}(52.67,59.33)(56.00,72.67)(37.00,69.67)
\bezier{116}(18.67,64.00)(5.67,68.33)(7.67,53.67)
\put(7.67,53.67){\vector(1,-4){0.2}} \put(9.33,73.00){$e^x$}
\end{picture}
\end{verbatim}

}
\begin{center}
\input{picture.pic}
\end{center}
\caption{Príklad použitia prostredia \texttt{picture}}
\label{picture}
\end{figure}


\section{Zoznam použitej literatúry}

Prostredím \ei{thebibliography} môžete vytvárať \wi{zoznam
použitej literatúry}. Každý záznam sa začína príkazom
\begin{lscommand}
\ci{bibitem}\verb|{|\emph{značka}\verb|}|
\end{lscommand}
\emph{značka} sa potom používa na citovanie knihy v~dokumente.
\begin{lscommand}
\ci{cite}\verb|{|\emph{značka}\verb|}|
\end{lscommand}
Číslovanie záznamov je automatické. Maximálny počet záznamov
určuje parameter za príkazom \verb|\begin{thebibliography}|. 
V~nižšie uvedenom príklade vytvárame zoznam literatúry, ktorý
nebude mať viac ako 99 položiek.
\begin{example}
Partl~\cite{pa}
navrhol, že \ldots

\begin{thebibliography}{99}
\bibitem{pa} H.~Partl:
\emph{German \TeX},
TUGboat Vol.~9, No.~1 ('88)
\end{thebibliography}
\end{example}
\chaptermark{Špeciality} % we need to fix the damage done by the
                           %bibliography example.
\thispagestyle{fancyplain}

Pri väčších projektoch sa vám môže hodiť program Bib\TeX{}. Ten je súčasťou väčšiny \TeX{}ovských distribúcií. Umožní vám udržiavať bibliografickú databázu a potom z~nej vyberať odkazy týkajúce sa prác, ktoré citujete vo vašom článku. Vizuálna prezentácia literatúry vytvorenej Bib\TeX{}om je založená na koncepcii štýlov, čo vám umožní vytvárať literatúru podľa požiadaviek širokej množiny rôznych zriadených vzorov. 

\section{Tvorba registrov} \label{sec:indexing}

Veľmi prospešnou stránkou mnohých kníh je ich \wi{register}.
\LaTeX om a podporným programom \texttt{makeindex}%
\footnote{V~systémoch, ktoré nepodporujú názvy dlhšie ako 8~znakov sa môže
nazývať \texttt{makeidx}. Program \texttt{csindex}, vytvorený
pánom Z.~Wagnerom, je česká/slovenská implementácia programu
\texttt{makeindex} (pozn. prekl.).} sa registre dajú vytvárať pomerne
jednoducho. V~tomto návode budú vysvetlené len základné príkazy
na tvorbu registrov. Hlbšie znalosti získate z~knižky \companion.
\index{program na usporiadanie registra!makeindex}
\index{program na usporiadanie registra!csindex}
\index{csindex} \index{makeindex}
%\index{balíky!makeidx@\textsf{makeidx}}
%\index{makeidx1@\textsf{makeidx}}

Aby sa samotný register mohol vytvárať, v~hlavičke musí byť
natiahnutý balík \pai{makeidx}:
\begin{lscommand}
\verb|\usepackage{makeidx}|
\end{lscommand}
\noindent a špeciálne príkazy na vytváranie registra musia byť
aktivované umiestnením príkazu
\begin{lscommand}
  \ci{makeindex}
\end{lscommand}
\noindent do hlavičky zdrojového súboru.

Obsah registra sa určuje príkazmi
\begin{lscommand}
  \ci{index}\verb|{|\emph{kľúč}\verb|}|
\end{lscommand}
\noindent kde \emph{kľúč} je záznam v~registri. Príkazy na tvorbu
registra umiestňujete na miesto v~texte, na ktoré chcete, aby
index odkazoval. Tabuľka~\ref{index} popisuje syntax parametra
\emph{kľúč} s~niekoľkými príkladmi.

\begin{table}[!tp]
\caption{Príklady syntaxe indexového kľúča}
\label{index}
\begin{center}
\begin{tabular}{@{}lll@{}}
  \textbf{Príklad vstupu} &\textbf{Výstup} &\textbf{Poznámka}\\\hline
  \rule{0pt}{1.05em}\verb|\index{hello}| &hello, 1 &základná
položka\\
\verb|\index{hello!Peter}|   &\hspace*{2ex}Peter, 3 &podpoložka
položky \suv{hello} \\
\verb|\index{Sam@\textsl{Sam}}|     &\textsl{Sam}, 2& formátovaný
vstup\\
\verb|\index{Lin@\textbf{Lin}}|     &\textbf{Lin}, 7& podobne ako
vyššie\\
\verb.\index{Jenny|textbf}.     &Jenny, \textbf{3}& formát čísla
strany \\
\verb.\index{Joe|textit}.     &Joe, \textit{5}& podobne ako
vyššie
\end{tabular}
\end{center}
\end{table}

Keď \LaTeX{} prekladá zdrojový súbor, každý príkaz \verb|\index|
zapisuje príslušný indexový záznam spolu s~číslom strany do
špeciáleho súbora. Tento súbor má rovnaký názov ako \LaTeX{}ový
zdrojový dokument, avšak líši sa koncovkou (\verb|.idx|).
Tento \texttt{.idx} súbor potom môže byť spracovaný programom
\texttt{makeindex}:
\begin{lscommand}
  \texttt{makeindex} \emph{menosúboru}
\end{lscommand}
Tento vytvorí usporiadaný register s~rovnakým názvom, avšak v~tomto
prípade s~príponou \texttt{.ind}. V~prípade, ak bude \LaTeX{}
tento zdrojový súbor znovu prekladať, bude tento zoradený register
umiestnený v~dokumente na mieste, kde sa nachádza príkaz
\begin{lscommand}
  \ci{printindex}
\end{lscommand}

Balík \pai{showidx}, ktorý je distribuovaný spolu
s~\LaTeXe, vytlačí všetky indexované údaje na ľavom okraji textu. Toto je
celkom prospešné pri kontrolnom čítaní dokumentu a overovaní
registra.
% Add some infos on PROTECT ...

\section{Exotické hlavičky}
\label{sec:fancy}

Balík \pai{fancyhdr} (od spojenia Fancy Headers)\footnote{Dostupný na
\texttt{CTAN:/tex-archive/macros/latex/contrib/supported/fancyhdr}.} napísaný 
Pietom van Oostrum poskytuje niekoľko jednoduchých príkazov, ktoré vám umožnia prispôsobiť si riadky v~hlavičke alebo v~päte vášho dokumentu. Ak sa pozriete na vrch strany, ktorú práve čítate, môžete vidieť možné použitie tohto balíka.

\begin{figure}[!htbp]
\begin{lined}{\textwidth}
\begin{verbatim}
\documentclass{book}
\usepackage{fancyhdr}
\pagestyle{fancy}
% týmto sa uistíme, že hlavičky pre chapter a section
% budú písané malými písmenami.
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
\fancyhf{}  % ruší aktuálne nastavenia pre hlavičku a pätu
\fancyhead[LE,RO]{\bfseries\thepage}
\fancyhead[LO]{\bfseries\rightmark}
\fancyhead[RE]{\bfseries\leftmark}
\renewcommand{\headrulewidth}{0.5pt}
\renewcommand{\footrulewidth}{0pt}
\addtolength{\headheight}{0.5pt} % vytvára medzeru pre čiaru
\fancypagestyle{plain}{%
   \fancyhead{} % zbaví sa hlavičky na stránkach plain 
   \renewcommand{\headrulewidth}{0pt} % aj čiary
}
\end{verbatim}
\end{lined}
\caption{Príklad nastavenia \pai{fancyhdr}} \label{fancyhdr}
\end{figure}

Skryté a neočakávané ťažkosti sa môžu vyskytnúť, keď sa snažíme do hlavičky alebo päty dostať niečo ako priebežné oddiely a kapitoly. 
\LaTeX{} to vykoná dvojstupňovým prístupom. V~definícii hlavičky a päty použijete príkazy \ci{rightmark} a \ci{leftmark} na reprezentáciu názvu aktuálnej kapitoly, respektíve oddielu. Hodnoty týchto dvoch príkazov budú prepísané pri každom vykonaní príkazu \ci{chapter} alebo \ci{section}.

Pre konečnú pružnosť príkaz \verb|\chapter| s~kamarátmi nepredefinujú
samotné \ci{rightmark} a \ci{leftmark}. Volajú ešte ďalšie príkazy
\ci{chaptermark}, \ci{sectionmark} alebo \ci{subsectionmark}, ktoré sú zodpovedné za predefinovanie obsahu \ci{rightmark} a \ci{leftmark}.

Takže ak chcete zmeniť vzhľad názvu kapitoly v~hlavičkovom riadku, musíte jednoducho \uv{obnoviť} príkaz \ci{chaptermark}. \cih{sectionmark}\cih{subsectionmark}

Obrázok~\ref{fancyhdr} ukazuje možné nastavenia pre balík \pai{fancyhdr}, ktoré vytvoria hlavičky vyzerajúce približne tak ako hlavičky v~tejto brožúrke. 
V~každom prípade vám odporúčam stiahnuť si dokumentáciu k~balíku na adrese
uvedenej v~poznámke.

\section{Balík verbatim}

V~našej knižke ste sa už skôr zoznámili s~\emph{prostredím} \ei{verbatim}.
V~tomto oddiele sa naučíte niečo o \emph{balíku} \pai{verbatim}. 
Balík \pai{verbatim} je v~princípe re-implementácia prostredia \ei{verbatim},  ktorá obchádza niektoré ohraničenia pôvodného prostredia
\ei{verbatim}. Toto samo osebe nie je nič mimoriadne, ale s~touto implementáciou balíka \pai{verbatim} boli pridané aj nové funkcie, čo bolo dôvodom na to, že tu tento balík spomínam. Balík \pai{verbatim} sprístupňuje príkaz

\begin{lscommand}
\ci{verbatiminput}\verb|{|\emph{menosúboru}\verb|}|
\end{lscommand}

\noindent ktorý vám umožní začleniť surový 
ASCII text do vášho dokumentu ako keby bol vo vnútri prostredia \ei{verbatim}.

Keďže balík \pai{verbatim} je časťou uzla \suv{tools}, mali by ste ho nájsť nainštalovaný vo väčšine systémov. Ak sa o tomto balíku chcete dozvedieť viac, určite si prečítajte \cite{verbatim}. 

\section{Ochrana krehkých príkazov}

Text zadaný ako argument príkazov typu \ci{caption} alebo \ci{section} sa môže ukazovať v~dokumente viackrát (napríklad v~obsahu rovnako ako v~samotnom texte). 
Niektoré príkazy skrachujú, ak sú použité ako argument príkazov typu \ci{section}. Tieto príkazy sa nazývajú \wi{krehké príkazy}.
Krehký príkaz je napríklad \ci{footnote} alebo \ci{phantom}. Na to, aby tieto príkazy fungovali, potrebujú ochranu (a my všetci nie?). Môžete ich ochrániť použitím príkazu \ci{protect} umiestneným pred nimi.

\ci{protect} sa vzťahuje len na príkaz nasledujúci bezprostredne za ním, nevzťahuje sa dokonca ani na jeho argumenty.
Nadbytočný príkaz \ci{protect} vo väčšine prípadov neuškodí.
\begin{code}
\verb|\section{Som ohľaduplný|\\
\verb|   \protect\footnote{a chránim svoje poznámky pod čiarou}}|
\end{code}


\endinput

%%% Local Variables:
%%% mode: latex
%%% TeX-master: "lshort2e"
%%% End:
