diff options
Diffstat (limited to 'Master/texmf-doc/doc/czechslovak/cstug/csfaq/sectO.html')
-rw-r--r-- | Master/texmf-doc/doc/czechslovak/cstug/csfaq/sectO.html | 3755 |
1 files changed, 3755 insertions, 0 deletions
diff --git a/Master/texmf-doc/doc/czechslovak/cstug/csfaq/sectO.html b/Master/texmf-doc/doc/czechslovak/cstug/csfaq/sectO.html new file mode 100644 index 00000000000..970cda42874 --- /dev/null +++ b/Master/texmf-doc/doc/czechslovak/cstug/csfaq/sectO.html @@ -0,0 +1,3755 @@ +<HTML> +<HEAD> +<META HTTP-EQUIV="Content-Type" content="text/html; charset=iso-8859-2"> +<TITLE>Jak udělám <I>X</I> v TeXu nebo LaTeXu?</TITLE> +<STYLE TYPE="text/css"> +<!-- + ol.section li { font-size:large;font-weight:bold;margin-top:1em; } + ul.question li { font-size:medium;font-weight:normal;margin-top:.2em; } +--> +</STYLE> +</HEAD> +<BODY BACKGROUND="images/back_narrow.gif" +BGCOLOR="#ffffff" +TEXT="#000000" +LINK="#900000" +ALINK="#C14242" +VLINK="#D30000"> +<TABLE BORDER=0> +<TR><TD width=30> </TD> +<TD><TABLE width="100%" BORDER=0> +<TR><TD valign="middle" align="center"><FONT SIZE="+2"><B>Jak udělám <I>X</I> v TeXu nebo LaTeXu?</FONT></TD><TD align="right"> +<a href="http://www.cstug.cz/"><IMG BORDER=0 SRC="images/logo.gif" ALT="CSTUG" HEIGHT=51 WIDTH=165 ALIGN="right"></a><BR> +</TD></TR></TABLE></TD></TR> +<TR><TD></TD><TD></TD></TR> +<TR><TD></TD><TD><HR></TD></TR> + <TR><TD></TD><TD> + <P> + +<P> +Dlho sa považovalo za nemožné vytvoviť prostredie <CODE>proof</CODE>, ktoré by automaticky +vkladalo symbol konca dôkazu. Niektoré dôkazy končia vysádzaním matematiky, iné +nie. Ak vstupný súbor obsahuje <CODE>...\] \end{proof}</CODE>, potom LaTeX ukončí +vysádzanú matematiku a je pripravený na nový riadok bez toho, aby prečítal +akúkoľvek informáciu o ukončení dôkazu. Kód je teda celkom zložitý. Symbol +<EM>môžete</EM> vložiť ručne, ale balík <CODE>ntheorem</CODE> tento problém rieši +za používateľov LaTeXu: skutočne poskytuje automatický spôsob značenia konca +dôkazu. + +<P> +AMSLaTeXovský balík <CODE>amsthm</CODE> tiež poskytoju prostredie <CODE>proof</CODE>, ktoré +toto dokáže, hoci ak dôkaz končí rovnicou, musíte vložiť príkaz csx{qedhere}: +<PRE> +\begin{proof} + text... + \begin{equation*} + matematika... \tag*{\qedhere} + \end{equation*} +\end{proof} +</PRE> +Konštrukcia <CODE>\tag*{\qedhere}</CODE> môže byť použitá v ľubovolnom číslovacom prostredí +AMSLaTeXu.<BR> +<CODE>amsthm.sty</CODE>: distribuované ako súčasť sady AMSLaTeX <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/required/amslatex">amslatex</A><BR> +<CODE>ntheorem</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/ntheorem">ntheorem</A> + +<P> + +<P> +<P><A NAME="Q-theorems"><HR><H3>Matematické věty a definice sázené antikvou</H3></A> + +<P> +Chceme-li využít výhod příkazu <CODE>\newtheorem</CODE>, a přitom nechceme +být omezeni na to, že obsah bude vysázen skloněným fontem +(např. k vytvoření poznámek, +příkladů, důkazů,...) pak použijeme styl <CODE>theorem.sty</CODE> +(<A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/required/tools">2etools</A>). Popřípadě můžeme definovat prostředí, např. <CODE>remark</CODE>, +jehož obsah bude sázen antikvou (roman): +<PRE> + \newtheorem{preremark}{Poznámka} + \newenvironment{remark}% + {\begin{preremark}\upshape}{\end{preremark}} +</PRE> + +<P> +Balík <CODE>ntheorem</CODE> (<A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/required/tools">2etools</A>) poskytuje matematické věty +a definice sázené antikvou přímo. + +<P> + +<P> +<P><A NAME="Q-numbersets"><HR><H3>Označení číselných množin a dvojitě psané písmo</H3></A> + +<P> +Je dobré mít příkazy typu <CODE>\R</CODE> pro standardní množinu reálných či +jiných čísel. Tradičně byly tyto množiny sázeny tučně. +Matematici však obvykle nemají přístup k tlustým křídám, a proto +si vymysleli speciální symboly, které se nyní běžně používají pro označení +<CODE>\R</CODE>, <CODE>\C</CODE>, +atd. Tyto symboly jsou označovány jako „zdvojená latinka“ +(blackboard bold). Dříve, než +začneme trvat na použití těchto symbolů, bylo by dobré se zamyslet, zda by +nebylo lépe se navrátit k původnímu označování číselných množin +prostým tučným písmem, což by činilo věc daleko jednodušší. + +<P> + +<P> +Sada velkých písmen zdvojené latinky je součástí AMS-fontů +„msam“ (např. „msam10“ pro velikost 10pt) a „msbm“. +Fonty obsahují veliké množství matematických symbolů, které podstatně +rozšiřují sadu symbolů dodávanou ve standardní distribuci TeXu v Type 1 +formátu. K dispozici jsou podpůrné soubory pro běh pod Plain TeXem +a LaTeXem (balíky <CODE>amssymb</CODE> a <CODE>amsfonts</CODE>). + +<P> +Součástí balíku jsou i dva soubory, z nichž jeden usnadňuje vkládání fontů do +dokumentu a ve druhém jsou definovány příkazy pro jednotlivé symboly. +Oba lze použít jak v TeXu tak v LaTeXu. +Otázky a doporučení tykající se těchto fontů směrujte na +<CODE>tech-support@math.ams.org.</CODE> + +<P> +Jiná úplná sada fontů zdvojené latinky, rodina fontů bbold, +je dostupná ve zdrojových souborech pro METAFONT v adresáři <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/fonts/bbold">bbold</A>. +Zajímavostí je, že tyto fonty obsahují kromě velkých i malá +písmena, které jsou +na skutečných tabulích vidět jen zřídka. Zdrojový adresář fontu obsahuje také +zdrojové soubory LaTeXovského balíku umožňujícího používaní fontu. Fonty +nejsou dostupny v Type 1 formátu. + +<P> +Alternativním zdrojem Type 1 fontů se znaky zdvojené latinky můžou být pořád +se rozšiřující sady kompletních rodin (jak komerční, tak volně dostupné), které +byly připraveny pro použití s TeXem/LaTeXem ( <A HREF="sectL.html#Q-pschoice">Výběr zvětšovatelných obrysových fontů</A>). +Z volně dostupných sad poskytujý repliky <CODE>msam</CODE> and <CODE>msbm</CODE> +rodiny <CODE>txfonts</CODE> a <CODE>pxfonts</CODE>, rodina <CODE>mathpazo</CODE> +obsahuje „matematicky důležitý“ výběr zdvojené latinky. + +<P> + +<P> +V případě, že font nemáme, lze vytvořit také jednoduchá makra pro tvorbu +zdvojených znaků: +<PRE> + \newcommand{\R}{{\sf R\hspace*{-0.9ex}% + \rule{0.15ex}{1.5ex}\hspace*{0.9ex}}} + \newcommand{\N}{{\sf N\hspace*{-1.0ex}% + \rule{0.15ex}{1.3ex}\hspace*{1.0ex}}} + \newcommand{\Q}{{\sf Q\hspace*{-1.1ex}% + \rule{0.15ex}{1.5ex}\hspace*{1.1ex}}} + \newcommand{\C}{{\sf C\hspace*{-0.9ex}% + \rule{0.15ex}{1.3ex}\hspace*{0.9ex}}} + \newcommand{\openone}{\leavevmode\hbox{\small1\kern-2.8pt\normalsize1}} +</PRE> +která lze s úspěchem použít v případě, že okolní text je sázen <CODE>cmr10</CODE>. +Avšak, jelikož se nejedná o řádné matematické fonty, nelze je +užít v matematických indexech. Krom toho velikost a poloha vertikální +linky je ovlivněna výběrem fontu okolního textu (makra obsahují +<CODE>ex</CODE>). + +<P> + +<P> +<P><A NAME="Q-degree"><HR><H3>Jak vysázím značku stupně v TeXu</H3></A> + +<P> +Pomocí makra <CODE>\degree</CODE> definovaného takto:<BR> +<CODE>\newcommand{\degree}[1][]{\ensuremath{{#1}^\circ}}</CODE> + +<P> + +<P> +<P><A NAME="Q-quotes"><HR><H3>Jak vysázím „středoevropské“ uvozovky</H3></A> + +<P> +Uvozovky v češtině, slovenštině, jakož i jiných středoevropských +jazycích, mají jiný tvar než anglické “”, které TeX sází +implicitně. +Nejjednodušší způsob, jak vysázet text v „našich“ uvozovkách, je +pomocí makra <CODE>\uv</CODE>: <CODE>v~\uv{našich} uvozovkách</CODE>. +Makro <CODE>\uv</CODE> je součástí balíků <CODE>czech.sty</CODE> a <CODE>slovak.sty</CODE>. + +<P> +Lepším a obecnějším řešením je makro Tomáše Hály <CODE>\uviq</CODE>, které +dovoluje uvozované texty vnořovat. Toto makro je součástí distribuce +CSTeX. + +<P> + +<P> + +<P> +<P><A NAME="Q-comma"><HR><H3>Chci desetinnou čárku místo tečky</H3></A> + +<P> +TeX implicitně předpokládá, že v zápisu desetinných čísel +odděluje desetiny od jednotek desetinná tečka. +Čárku zapsanou v matematickém módu TeX považuje za oddělovač položek +v posloupnostech, množinách apod., a proto za ni sází malou mezeru. + +<P> +Chceme-li jednorázově vysázet desetinné číslo s desetinnou čárkou, +stačí čárku uzavřít do skupiny: <CODE>$3{,}14159$</CODE>. + +<P> +Takové řešení je však nevýhodné pro texty, kde je desetinných čísel +mnoho. V takovém případě lze nastavit globálně, že za čárkou +v matematickém módu se mezera sázet nemá: +<PRE> + \mathcode`,="002C + $3,14159$ +</PRE> +Pokud při tomto globálním nastavení přesto někde mezeru udělat +potřebujeme, musíme ji napsat explicitně: +<CODE>$(m,\,n)$</CODE> nebo <CODE>$\{0,\:1,\:2\}$</CODE>. + +<P> +Jiným řešením je ponechat ve vstupním souboru desetinné tečky, +ale přemapovat na čárky (to se hodí třeba tehdy, když máme velké soubory +desetinných čísel z jiných výstupů). +<PRE> + \mathcode`.="002C + $3.14159$ +</PRE> + +<P> +Snad nejjednoduchším řešením je použití balíku <CODE>icomma</CODE>. Balík +zajistí, že za čárkou nebude mezera sázena, pokud ji za čárku nenapíšete (jako +například u <CODE>f(x, y)</CODE>), jinak se za čárku vysází obvyklá malá mezera.<BR> +<CODE>icomma.sty</CODE>: distribuováno jako součást <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/was">was</A> + +<P> +<P><A NAME="Q-breakbox"><HR><H3>Zalamovanie textových boxov</H3></A> + +<P> +TeXovské/LaTeXovské boxy nemôžu byť pri bežnom použití zalamované. Keď raz +niečo vysádzate do boxu, zostane to tam a box bude prečnievať niektorý z okrajov +stránky (v prípade, že sa nezmestí do oblasti, kam má byť vysádzaný). + +<P> +Ak chcete mať podstatnú časť textu orámovanú (alebo zafarbenú), obmedzenia +začínajú predstavovať skutočné bremeno. Našťastie sa problém dá obísť. + +<P> +Balík <CODE>framed</CODE> poskytuje prostredia <CODE>framed</CODE> a <CODE>shaded</CODE>. Obe vkladajú +svoj obsah do niečoho, čo vyzerá ako orámovaný (alebo farebný) box, ale podľa +potreby sa na konci stránky láme. Prostrediam chýbajú poznámky pod čiarou, +marginpar, head-line položky a nebudú fungovať s balíkom <CODE>multicol</CODE> +alebo inými makrami na vyvažovania stĺpcov. Trieda <CODE>memoir</CODE> zahŕňa +funkcionalitu balíku <CODE>framed</CODE>. + +<P> +Balík <CODE>boites</CODE> poskytuje prostredie <CODE>breakbox</CODE>. Príklady použitia +nájdete v distribúcii, <CODE>README</CODE> súbor obsahuje hutnú dokumentáciu. +Prostredia môžu byť vnorované a môžu sa objaviť v prostrediach <CODE>multicols</CODE>. +Plávajúce prostredia, poznámky pod čiarou a marginpar sa však stratia. + +<P> +Pre používateľov <CODE>plain</CODE> TeXu môžu byť užitočné prostriedky balíku +<CODE>backgrnd</CODE>. Tento balík prinúti výstupnú rutinu poskytnúť vertikálne +čiary na označenie textu, makrá sú jasne označené a ukazujú, kde môžu byť +zavedené farebné pozadia (toto vyžaduje balík <CODE>shade</CODE>, ktorý +je distribuovaný ako TeXovské makrá a pre tieňovanie METAFONT nezávislý +na zariadení). Autor <CODE>backgrnd</CODE> tvrdí, že balík pracuje v prostredí +LaTeX 2.09, ale existujú dôvody domnievať sa, že pri práci s aktuálnym LaTeXom +môže byť nestabilný.<BR> +<CODE>backgrnd.tex</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/generic/backgrnd.tex">backgrnd</A><BR> +<CODE>boites.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/boites">boites</A><BR> +<CODE>framed.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/misc/framed.sty">framed</A><BR> +<CODE>memoir.cls</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/memoir">memoir</A><BR> +<CODE>shade.tex</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/generic/shade.sty">shade</A> + +<P> +<P><A NAME="Q-upquot"><HR><H3>Realistické úvodzovky pre doslovné výpisy programov</H3></A> + +<P> +Font <CODE>cmtt</CODE> má „okrúhle“ úvodzovky +, ktoré lahodia oku, ale nesúhlasia s tým, čo môžeme vidieť na modernom +termináli <EM>xterm</EM>. + +<P> +Vzhľad je kritický vo výpisoch programov, hlavne shellovských skriptoch Unixu. +Balík <CODE>upquote</CODE> modifikuje chovanie prostredia <CODE>verbatim</CODE> tak, aby bol +výstup jasnejšou reprezentáciou toho, čo musí používateľ napísať (napr. +do skriptu).<BR> +<CODE>upquote.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/upquote/upquote.sty">upquote</A> + +<P> +<P><A NAME="Q-the-commands"><HR><H3>Predefinovanie csx{the-}príkazov počítadiel</H3></A> + +<P> +Kedykoľvek požadujete od LaTeXu nové počítadlo, LaTeX vytvorí mnoho +„zákulisných“ príkazov ako aj počítadlo samotné. + +<P> +csx{newcounter{fred}} okrem iného vytvorí príkaz csx{the}<CODE><EM>fred</EM></CODE>, +ktorý sa pri sádzaní expanduje na hodnotu počítadla „<CODE>fred</CODE>“. + +<P> +Definícia csx{the}<CODE><EM>fred</EM></CODE> by mala vyjadrovať hodnotu počítadla. +Je takmer vždy chybou používať príkaz na vytvorenie niečoho iného. Hodnota môže +byť rozumne vyjadrená ako arabské, rímske, prípadne grécke číslo, ako abecedný +výraz alebo dokonca ako postupnosť (alebo vzor) symbolov. Ak sa potrebujete +rozhodnúť, či príkaz csx{the}<CODE><EM>fred</EM></CODE> predefinovať, zvážte, čo by +sa mohlo stať, ak sa tak rozhodnet učiniť. + +<P> +Takže ak napríklad chcete, aby čísla sekcií boli ukončené bodkou, môžete upraviť +csx{thesection} tak, aby sa expandoval s ukončovacou bodkou. Takáto zmena +csx{thesection} však má vplyv na definúciu csx{thesubsection}: budete musieť +predefinovať kopu iných vecí. Radšej použite štandardné techniky +na prispôsobenie a prezentáciu čísel sekcií (viď +Otázku <A HREF="sectR.html#Q-seccntfmt">Úprava prezentácie čísel sekcií</A>). + +<P> +Teraz predpokladajme, že chcete, aby číslo stránky bolo na konci každej stránky +obklopené pomlčkami („–nnn–“). Chcete to dosiahnuť +predefinovaním csx{thepage} (všetky čísla stránok v obsahu budú pravdepodobne +rovnakého tvaru) alebo predefinovaním csx{pageref} referencií? V tomto +prípade je najlepšie spraviť modifikáciu predefinovaním štýlu strany, napríklad +balíkom <CODE>fancyhdr</CODE>. + +<P> + +<P> +<P><A NAME="Q-tocloft"><HR><H3>Formát obsahov, ...</H3></A> + +<P> +Formát položiek obsahu je ovládaný niekoľkými internými príkazmi (spomínané +v sekcii 2.4 <I>The LaTeX Companion</I> — viď +Otázku <A HREF="sectC.html#Q-books">Knihy o TeXu a příbuzná literatura</A>). Príkazy csx{@pnumwidth}, +csx{@tocrmarg} a csx{@dotsep} ovládajú priestor pre čísla strán, +odsadenie od praváho okraju a separáciu bodiek v bodkovaných vodiacich linkách. +Séria príkazov csx{l@<EM>xxx</EM>}, kde <CODE><EM>xxx</EM></CODE> je meno nadpisu +sekcie (ako <CODE>kapitola</CODE> alebo <CODE>sekcia</CODE>, ...@), ovláda +rozvrhnutie príslušného nadpisu vrátane miesta pre číso sekcie. Všetky tieto +interné príkazy môžu byť individuálne predefinované, aby mali požadovaný efekt. + +<P> +Balík <CODE>tocloft</CODE> poskytuje sadu príkazov používatelskej úrovne, ktoré +môžete použiť na zmenu formátovania obsahu. Kedže pre zoznamy obrázkov +a zoznamy tabuliek sú použité presne rovnaké mechanizmy, rozvrhnutie týchto +sekcií môžete ovládať rovnakým spôsobom. + +<P> +Triedy <CODE>KOMA-Script</CODE> poskytujú voliteľne variantu štruktúry obsahu a počítajú +priestor potrebný pre čísla automaticky. Trieda <CODE>memoir</CODE> obsahuje funkcionalitu +<CODE>tocloft</CODE>.<BR> +sada <CODE>KOMA script</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/koma-script">koma-script</A><BR> +<CODE>memoir.cls</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/memoir">memoir</A><BR> +<CODE>tocloft.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/tocloft">tocloft</A> + +<P> +<P><A NAME="Q-enumerate"><HR><H3>Pekne číslované zoznamy</H3></A> + +<P> +Balík <CODE>enumerate</CODE> vám dovoľuje kontrolovať zobrazenie počítadla +zoznamu. Balík pridáva prostrediu <CODE>enumerate</CODE> voliteľný paramater, ktorý sa +používa na špecifikáciu rozvrhnutia návestí. Parameter obsahuje typ číslovania +(`<CODE>1</CODE>' pre arabské číslice, `<CODE>a</CODE>' alebo `<CODE>A</CODE>' pre abecedné +„číslovanie“ a `<CODE>i</CODE>' alebo `<CODE>I</CODE>' pre rímske číslice) +a dekorácie číslovania. Takže napríklad +<P> +<PRE> +\usepackage{enumerate} +... +\begin{enumerate}[(a)] +\item ... ... +\end{enumerate} +</PRE> +</P> +začne zoznam, ktorého návestia sú (a), (b), (c), ..., zatiaľ čo +<P> +<PRE> +\usepackage{enumerate} +... +\begin{enumerate}[I/] +\item ... ... +\end{enumerate} +</PRE> +</P> +začne zoznam, ktorého návestia sú I/, II/, III/, ... + +<P> +Balík <CODE>paralist</CODE>, ktorého hlavným účelom je +kompaktnosť zoznamov (viď Otázku <A HREF="sectO.html#Q-complist">Ako zredukovať medzery v zoznamoch</A>), poskytuje rovnaké +prostriedky pre svoje prostredia podobné <CODE>enumerate</CODE>. + +<P> +Ak potrebujete netradičný dizajn balík, <CODE>enumitem</CODE> vám poskytne +flexibilitu na vytvorenie vlastného. Hlúpy „rímsky“ príklad dosiahneme +nasledovne: +<P> +<PRE> +\usepackage{enumitem} +... +\begin{enumerate}[label=\Roman{*}/] +\item ... ... +\end{enumerate} +</PRE> +</P> +Všimnite si, že „<CODE>*</CODE>“ v hodnote kľúča značí počítadlo zoznamu +tejto úrovne. Môžete tiež manipulovať s formátom odkazov na návestia položiek +zoznamu: +<P> +<PRE> +\usepackage{enumitem} +... +\begin{enumerate}[label=\Roman{*}/, + ref=(\roman{*})] +\item ... ... +\end{enumerate} +</PRE> +</P> +aby formát odkazov na položky zoznamu vyzeral ako (i), (ii), +(iii) a tak ďalej. + +<P> +Trieda <CODE>memoir</CODE> obsahuje funkcie, ktoré zodpovedajú funkciám v balíku +<CODE>enumerate</CODE> a obsahuje podobnú funkcionalitu aj pre zoznamy <CODE>itemize</CODE>.<BR> +<CODE>enumerate.sty</CODE>: distribuované ako súčasť <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/required/tools">2etools</A><BR> +<CODE>enumitem.sty</CODE>: distribuované ako súčasť <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/bezos">bezos</A><BR> +<CODE>memoir.cls</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/memoir">memoir</A><BR> +<CODE>paralist.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/paralist">paralist</A> + +<P> +<P><A NAME="Q-complist"><HR><H3>Ako zredukovať medzery v zoznamoch</H3></A> + +<P> +Lamportova kniha (viď Otázku <A HREF="sectC.html#Q-books">Knihy o TeXu a příbuzná literatura</A>) udáva rozličné parametre pre +rozvrhnutie zoznamu (ako napríklad csx{topsep}, csx{itemsep} a csx{parsep}), +ale nespomína už, že sú nastavované automaticky v zozname samotnom. Funguje to +tak, že každý zoznam vykoná príkaz csx{@list}<CODE><hĺbka></CODE> (hĺbka sa +objavuje vo forme malých rímskych číslic). csx{@listi} je naviac zvyčajne +resetované pri zmene veľkosti fontu. Výsledok je, že pre užívateľa je dosť +zložité kontrolovať medzery v zoznamoch (medzery medzi položkami zoznamu). +Správnym riešením je samozrejme používanie dokumentovej triedy navrhnutej +s miernejšími medzerami v zoznamoch, ale všetci vieme, že k takýmto +veciam sa ťažko dostať. Trieda <CODE>memoir</CODE> nebola navrhnutá pre kompaktnejšie +zoznamy, ale poskytuje kontrolu nad medzerami v zoznamoch. + +<P> +Existujú balíky poskytujúce určitú kontrolu nad medzerami v zoznamov, málokedy +však adresujú oddelenie od okolitého textu (definované príkazom csx{topsep}). +Balík <CODE>expdlist</CODE>, spomedzi všetkých svojich ovládacích prvkov vzhľadu +<CODE>description</CODE> zoznamov poskytuje parameter kompaktnosti (viď dokumentáciu); +balík <CODE>mdwlist</CODE> poskytuje príkaz csx{makecompactlist} pre uživateľské +definície zoznamov a používa ho na definície kompaktných zoznamov <CODE>itemize*</CODE>, +<CODE>enumerate*</CODE> a <CODE>description*</CODE>. V skutočnosti môžete celkom jednoducho +definovať podobné zoznamy — napríklad: +<P> +<PRE> +\newenvironment{itemize*}% + {\begin{itemize}% + \setlength{\itemsep}{0pt}% + \setlength{\parskip}{0pt}}% + {\end{itemize}} +</PRE> +</P> +Balík <CODE>paralist</CODE> poskytuje veľa prístupov pre kompaktnejšie zoznamy: +<UL> + <LI> jeho prostredie <CODE>asparaenum</CODE> formátuje každú položku, ako keby to bol + odstavec zavedený počítadlovým návestím (čo v prípade, že texty položiek sú + dlhé, šetrí miesto), + <LI> jeho prostredie <CODE>compactenum</CODE> je rovnakým druhom kompaktného zoznamu + ako v <CODE>expdlist</CODE> a <CODE>mdwlist</CODE>, a + <LI> jeho prostredie <CODE>inparaenum</CODE> vytvára zoznam „v odstavci“, t.j. bez + zlomov medzi položkami, čo veľmi dobre šetrí miesto, ak sú texty položiek + krátke. +</UL> +Balík manipuluje s návestiami svojho prostredia <CODE>enumerate</CODE> ako balík +<CODE>enumerate</CODE> (viď Otázku <A HREF="sectO.html#Q-enumerate">Pekne číslované zoznamy</A>). + +<P> +<CODE>Paralist</CODE> taktiež poskytuje ekvivalenty <CODE>itemize</CODE> (<CODE>asparaitem</CODE>, +...) a <CODE>description</CODE> (<CODE>asparadesc</CODE>, ...). + +<P> +Maximum v kompaktnosti (každého druhu) je poskytované balíkom +<CODE>savetrees</CODE>, zahrnutá je aj kompaktnosť zoznamov. Hlavnou úlohou +balíku je šetrenie miestom na každom kroku: ak máte nejaké dizajnové +obmedzenia, nepoužívajte ho! + +<P> +Balíky <CODE>expdlist</CODE>, <CODE>mdwlist</CODE> a <CODE>paralist</CODE> poskytujú +iné prostriedky konfigurácie zoznamov. Ak potrebujete niektorý z balíkov pre +inú konfiguráciu zoznamu než kompaktnosť, pravdepodobne by ste nemali skúšať +nižšie uvedené postupy. + +<P> +Balík <CODE>enumitem</CODE> pre maximálnu flexibilitu (vrátane manipulácie +s csx{topsep}) povoľuje prispôsobenie parametrov zoznamu pomocou formátu +„<EM>kľúč</EM>{=}<hodnota>“. Môžete teda napísať +<P> +<PRE> +\usepackage{enumitem} +... +\begin{enumerate}[topsep=0pt, partopsep=0pt] +\item ... ... +\end{enumerate} +</PRE> +</P> +čím potlačíte všetky medzery pod a nad vaším zoznamom. <CODE>Enumitem</CODE> tiež +dovoľuje manipulovať s formátom návestia (základnejším spôsobom ako balík +<CODE>enumerate</CODE> — Otázka <A HREF="sectO.html#Q-enumerate">Pekne číslované zoznamy</A>).<BR> +<CODE>enumerate.sty</CODE>: distribuované ako súčasť <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/required/tools">2etools</A><BR> +<CODE>enumitem.sty</CODE>: distribuované ako súčasť <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/bezos">bezos</A><BR> +<CODE>expdlist.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/expdlist">expdlist</A><BR> +<CODE>memoir.cls</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/memoir">memoir</A><BR> +<CODE>mdwlist.sty</CODE>: distribuované ako súčasť <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/mdwtools">mdwtools</A><BR> +<CODE>paralist.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/paralist">paralist</A><BR> +<CODE>savetrees.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/savetrees">savetrees</A> + +<P> +<P><A NAME="Q-interruptlist"><HR><H3>Prerušenie číslovaných zoznamov</H3></A> + +<P> +Často je vhodné mať vysvetľujúci text mimo zoznamu, medzi za sebou idúcimi +položkami. V prípade <CODE>itemize</CODE> zoznamov to nie je problém, keďže neexistuje +nič, čo by odlíšilo za sebou idúce položky. V prípade <CODE>description</CODE> zoznamov sú +návestia položiek pod kontrolou užívateľa, takže automatická kontinuita +neexistuje. + +<P> +Pri <CODE>enumerate</CODE> zoznamoch sú návestia generované automaticky a sú citlivé +na kontext, takže kontext (v tomto prípade je to stav počítadla) musí zostať +zachovaný. + +<P> +Jedným z prístupov je zapamätať si stav číslovania do vlastnej premennej +a neskôr (pri pokračovaní číslovania) ho obnoviť: +<P> +<PRE> +\newcounter{saveenum} + ... +\begin{enumerate} + ... + \setcounter{saveenum}{\value{enumi}} +\end{enumerate} +<vysvetľujúci text> +\begin{enumerate} + \setcounter{enumi}{\value{saveenum}} + ... +\end{enumerate} +</PRE> +</P> + +<P> +Toto je rozumné v malých dávkach. Problémom (okrem „ukecanosti“ riešenia) je +správne nastavenie úrovne ( +„mám použiť čítač <CODE>enumi</CODE>, +<CODE>enumii</CODE>, ...“) a zapamätanie si, že nemáme vnorovať prerušenia +(t.j. nemať ďalší zoznam, ktorý je ťiež prerušený) do vysvetľujúceho textu. + +<P> +Balík <CODE>mdwlist</CODE> definuje príkazy csx{suspend} a csx{resume}, ktoré +proces zjednodušujú: +<P> +<PRE> +\begin{enumerate} + ... +\suspend{enumerate} +<vysvetľujúci text> +\resume{enumerate} + ... +\end{enumerate} +</PRE> +</P> +Balík povoľuje zadať voliteľný názov (ako pri <CODE>\suspend[id]{enumerate}</CODE>), aby +ste mohli identifikovať konkrétne prerušenie, a tým poskytuje možnosť +manipulovania s vnorenými prerušeniami. + +<P> +Ak prerušujete pekne číslované zoznamy (viď Otázku <A HREF="sectO.html#Q-enumerate">Pekne číslované zoznamy</A>), +musíte pri pokračovaní v zozname znovu dodať voliteľné parametre +„item label layout“ (položka, návestie, rozvrhnutie) vyžadované balíkom +<CODE>enumerate</CODE>, nezávisle na tom, ktorý z uvedených postupov ste použili. +Úloha je v prípade balíku <CODE>mdwlist</CODE> trochu zdĺhavá, keďže voliteľný +parameter musí byť celý zapuzdrený vo vnútri voliteľného parametru pre +csx{resume}, čo vyžaduje zátvorky naviac: +<P> +<PRE> +\begin{enumerate}[\textbf{Item} i] + ... +\suspend{enumerate} +<vysvetlivky> +\resume{enumerate}[{[\textbf{Item} i]}] +... +\end{enumerate} +</PRE> +</P> +<CODE>enumerate.sty</CODE>: distribuované ako súčasť <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/required/tools">2etools</A><BR> +<CODE>mdwlist.sty</CODE>: distribuované ako súčasť <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/mdwtools">mdwtools</A> + +<P> + +<P> +<P><A NAME="Q-destable"><HR><H3>Dizajn tabuliek</H3></A> + +<P> +V poslených rokov množstvo autorov argumentovalo, že príklady vytvorené +Lamportom v jeho LaTeX manuálu (viď Otázku <A HREF="sectC.html#Q-books">Knihy o TeXu a příbuzná literatura</A>) obmedzovali štýl autorov +a viedli k extrémne úbohému dizajnu tabuliek. V skutočnosti je ťažke čo i len +zistiť, čo mnohé z príkladov Lamportovej knihy znamenajú. + +<P> +Kritika sa zameriava na prehnané použitie liniek (horizontálnych aj vertikálnych) +a na slabé vertikálne odstupy poskytované Lamportovymi makrami. + +<P> +Problém vertikálnych odstupov je hocikým jednoducho viditeľný a je riešený +v mnohých balíkoch — viď +Otázku <A HREF="sectO.html#Q-struttab">Rozostupy riadkov v tabuľkách</A>. + +<P> +Argument týkajúci sa liniek je prezentovaný v skvelej eseji, ktorá tvorí +predslov dokumentácie balíku <CODE>booktabs</CODE> od Simona Feara. + +<P> +Lamportov LaTeX neflexibilne trval na tom, že popisky majú byť na spodku +tabuľky. Kedže sa tabuľka môže rozprestierať na viacerých stranách, tradičná +typografia umiestňuje popisky navrch plávajúceho prostredia tabuľky. Príkaz +csx{caption} bude mať zlú pozíciu (o <CODE>10pt</CODE>), ak napíšete: +<P> +<PRE> +\begin{table} + \caption{Ukážková tabuľka} + \begin{tabular}{...} + ... + \end{tabular} +\end{table} +</PRE> +</P> +Balík <CODE>topcapt</CODE> tento problém rieši: +<P> +<PRE> +\usepackage{topcaption} +... +\begin{table} + \topcaption{Ukážková tabuľka} + \begin{tabular}{...} + ... + \end{tabular} +\end{table} +</PRE> +</P> +Triedy <CODE>KOMA-script</CODE> poskytujú podobný príkaz csx{captionabove}, obsahujú tiež +voľbu triedy, ktorá zaistí, že v prostredí tabuliek csx{caption} +<EM>znamená</EM> csx{captionabove}. + +<P> +Manuálny postup je celkom jednoduchý: <CODE>topcapt</CODE> prepne hodnoty +parametrov systému LaTeXe{} csx{abovecaptionskip} (štandardne <CODE>10pt</CODE>) +a csx{belowcaptionskip} (štandardne <CODE>0pt</CODE>), takže: +<P> +<PRE> +\begin{table} + \setlength{\abovecaptionskip}{0pt} + \setlength{\belowcaptionskip}{10pt} + \caption{Ukážková tabuľka} + \begin{tabular}{...} + ... + \end{tabular} +\end{table} +</PRE> +</P> +spraví to, čo chceme. (Balík je sám o sebe mierne komplikovanejší...)<BR> +<CODE>booktabs.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/booktabs">booktabs</A><BR> +sada <CODE>KOMA script</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/koma-script">koma-script</A><BR> +<CODE>topcapt.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/misc/topcapt.sty">topcapt</A> + +<P> +<P><A NAME="Q-fixwidtab"><HR><H3>Tabuľky pevnej šírky</H3></A> + +<P> +Existujú dva základné spôsoby na tvorbu tabuliek pevnej šírky v LaTeXu: +môžete roztiahnuť úseky (medzery) medzi stĺpcami, alebo môžete roztiahnuť určité bunky +tabuľky. + +<P> +Základný LaTeX môže roztiahnuť medzery. Prostredie <CODE>tabular*</CODE> si vezme jeden +parameter navyše (pred parametrom rozvrhnutia <CODE>clpr</CODE>), ktorý akceptuje popis +dĺžky (môžete vložiť veci ako „<CODE>15cm</CODE>“ alebo „csx{columnwidth}“). +V parametri rozloženia <CODE>clpr</CODE> musíte mať v direktíve <CODE>@{}</CODE> príkaz +csx{extracolsep}. Príklad: +<PRE> +\begin{tabular*}{\columnwidth}{@{\extracolsep{\fill}}lllr} +</PRE> +csx{extracolsep} je tiež použitý na všetky medzistĺpcové medzery napravo. Ak +nechcete roztiahnuť všetky medzery, pridajte <CODE>\extracolsep{0pt}</CODE>, čím zrušíte +pôvodné. + +<P> +Balík <CODE>tabularx</CODE> definuje extra špecifikáciu <CODE>clpr</CODE> stĺpca, <CODE>X</CODE>. +Stĺpce <CODE>X</CODE> sa správajú ako <CODE>p</CODE> stĺpce, ktoré sa rozširujú, aby zabrali dostupné +miesto. Ak je v tabuľke prítomný viac než jeden <CODE>X</CODE> stĺpec, voľné miesto je +medzi tieto stĺpce rozdelené . + +<P> +Balík <CODE>tabulary</CODE> (od rovnakého autora) poskytuje spôsob +„vyvažovania“ miesta zabraného stĺpcami tabuľky. Balík definuje +špecifikácie stĺpcov zdieľajúcich priestor <CODE>C</CODE>, <CODE>L</CODE>, <CODE>R</CODE> a <CODE>J</CODE> so zarovnaniami +na stred, vľavo, vpravo a zarovnaním na obe strany. Balík skúma, aký by bol +každý zo stĺpcov prirodzene dlhý (t.j. na papiery nekonečnej šírky) a alokuje +príslušné miesto pre každý stĺpec. Prítomné sú aj kontroly, ktoré dohliadajú +na to, aby veľké položky nespôsobili kolaps zvyšných stĺpcov (pre každý stĺpec +existuje maximálna šírka) a aby sa drobné veci nezmenšili pod špecifikovanú +hodnotu minima. Táto práca samozrejme znamená, že balík musí vysádzať každý +riadok niekoľkokrát, takže veci s vedľajšími efektami (napríklad čítač +produkujúci číslo riadku) sú nespoľahlivé a nemali by radšej byť používané. + +<P> +<CODE>ltxtable</CODE> kombinuje vlastnosti balíkov <CODE>longtable</CODE> +a <CODE>tabularx</CODE>. Radšej si prečítajte dokumentáciu, pretože použitie +balíku je značne odlišné.<BR> +<CODE>ltxtable.sty</CODE>: distribuované ako súčasť <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/carlisle">carlisle</A><BR> +<CODE>tabularx.sty</CODE>: distribuované ako súčasť <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/required/tools">2etools</A><BR> +<CODE>tabulary.sty</CODE>: distribuované ako súčasť <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/carlisle">carlisle</A> + +<P> +<P><A NAME="Q-struttab"><HR><H3>Rozostupy riadkov v tabuľkách</H3></A> + +<P> +TeXovské/LaTeXovské mechanizmy správy medzier medzi riadkami (tzv. +„leading“) sa spoliehajú na TeXovský algoritmus výstavby odstavcov, ktorý +porovnáva tvary za sebou idúcich riadkov a upravuje medzeru medzi nimi. + +<P> +Tieto mechanizmy nemôžu pri vytváraní tabuľky fungovať rovnakým spôsobom, +pretože tvorba odstavcov samotné riadky nevidí. Výsledkom je, že tabuľky sú +občas vysádzané s riadkami nepríjemne blízko pri sebe (alebo občas aj veľmi +ďaleko). + +<P> +Tradičný typograf by upravil medzeru medzi riadkami tabuľky +pomocou podpery („strut“; jedná sa o kovový oddelovač). Používateľ TeXu +môže spraviť presne to isté: väčšina balíkov makier definuje príkaz csx{strut}, +ktorý udáva vhodnú medzeru vzhľadom na aktuálnu veľkosť textu. Umiestnenie +príkazu csx{strut} na koniec problémového riadku tabuľky je najjednoduchšie +riešenie problému (ak funguje). Ďalšie uvedené riešenia sú špecifické pre +LaTeX, ale niektoré sa dajú jednoducho preložiť na príkazy <CODE>Plain</CODE> TeXu. + +<P> +Ak sa vo vašej tabuľke ukazuje systematický problém (t.j. každý riadok je +posunutý o rovnaký úsek) použite príkaz csx{extrarowheight} definovaný balíkom +<CODE>array</CODE>: +<PRE> +\usepackage{array}% v preambule +... +\setlength{\extrarowheight}{length} +\begin{tabular}{....} +</PRE> + +<P> +Na napravenie jediného riadku, ktorého zlé nastavenie príkaz csx{strut} +neopravuje, môžete postupovať vlastnou definíciou pomocou +<CODE>\rule{0pt}{length}</CODE> — čo sa podobá definícii príkazu csx{strut}. +Balík <CODE>bigstrut</CODE> definuje podobný príkaz, ktorý môžete na tento účel +použiť: csx{bigstrut} sa sám odkryje nad aj pod aktuálnym riadkom, +<CODE>\bigstrut[t]</CODE> iba nad riadkom a <CODE>\bigstrut[b]</CODE> iba pod riadkom. + +<P> +Dostupné sú však aj obecné riešenia. Balík <CODE>tabls</CODE> na konci každého +riadku tabuľky automaticky generuje podperu správnej veľkosti. Nevýhodou je +pomalosť (kedže stojí v ceste všetkému vo vnútri tabuľky) a (nedostatočná) +kompatibilita s inými balíkmi. + +<P> +Balík <CODE>booktabs</CODE> obsahuje provokatívnu úvahu o tom, ako by mali byť +navrhované tabuľky. Kedže problém rozostupov riadkov v tabuľkách sa +najčastejšie objavuje pri kolíziách s čiarami, autorova myšlienka, že +používatelia LaTeXu majú vo zvyku veľmi často linkovať svoje tabuľky, je +zaujímavá. Balík na podporu autorovej schémy poskytuje linkovacie príkazy, ale +stará sa aj o medziriadkové medzery. Najnovšie vydania <CODE>booktabs</CODE> sa +pýšia kompatibilitou s balíkmi ako <CODE>longtable</CODE>. + +<P> +Dokumentáciu <CODE>bigstrut</CODE> aj <CODE>tabls</CODE> môžete nájsť v podobe +komentárov v samotných súboroch týchto balíkov.<BR> +<CODE>array.sty</CODE>: distribuované ako súčasť <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/required/tools">2etools</A><BR> +<CODE>bigstrut.sty</CODE>: distribuované ako súčasť <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/multirow">multirow</A><BR> +<CODE>booktabs.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/booktabs">booktabs</A><BR> +<CODE>tabls.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/misc/tabls.sty">tabls</A> + +<P> +<P><A NAME="Q-longtab"><HR><H3>Tabuľky dlhšie než jedna strana</H3></A> + +<P> +Tabuľky sú štandardne sádzané do svojich vlastných boxov, čo má za následok, že +sa na hranici stránky nerozdelia. Bohužiaľ náš svet produkuje tabuľky dlhšie +než jedna strana a my ich potrebujeme vysádzať. + +<P> +Pre jednoduché tabuľky (ktorých tvar je veľmi pravidelný) môže byť +najjednoduchším riešením prostredie <CODE>tabbing</CODE>, ktorého nastavenie je trochu +zdĺhavé, ale nevyžaduje všetko na jednu stranu. + +<P> +Balík <CODE>longtable</CODE> v prvom behu vybuduje celú tabuľku (po kúskoch), +a potom použije informáciu, ktorú zapísal do <CODE>.aux</CODE> súboru, aby dostal správne +umiestnenie (obvykle sa mu to podarí v dvoch priechodoch). Kedže balík má +v čase konečného umiestňovania prehľad o celej tabuľke, tabuľka je vysádzaná +jednotne po celej svojej dĺžke (stĺpce na jednotlivých stranách si navzájom +zodpovedajú). O <CODE>longtable</CODE> je známe, že nespolupracuje s inými balíkmi, +spolupracuje však s balíkom <CODE>colortbl</CODE>. Autor poskytol balík +<CODE>ltxtable</CODE>, ktorý obsahuje väčšinu prostriedkov balíku +<CODE>tabularx</CODE> (viď +Otázku <A HREF="sectO.html#Q-fixwidtab">Tabuľky pevnej šírky</A>) aj pre dlhé tabuľky: majte sa +na pozore pred zvláštnymi obmedzeniami jeho použitia — každá dlhá tabuľka by +mala byť vo vlastnom súbore a mala by byť vložená csx{LTXtable{width}{file}}. +Kedže viacstranové tabuľky balíku <CODE>longtable</CODE> nemôžu existovať vo vnútri +plávajúcich prostredí, poskytuje balík možnosti nadpisov v samotnom prostredí +<CODE>longtable</CODE>. + +<P> +Zdanlivou alternatívou k <CODE>ltxtable</CODE> je <CODE>ltablex</CODE>. Je však +zastaralý a nie je úplne funkčný. Jeho najväčší problém je prísne obmedzená +kapacita pamäte (<CODE>longtable</CODE> nie je tak obmedzený, za čo platí +komplikovaným kódom). <CODE>ltablex</CODE> spracuje iba relatívne malé tabuľky, ale +jeho používateľské rozhranie je oveľa jednoduchšie ako u <CODE>ltxtable</CODE>, +takže ak pre vás obmedzenia nie sú problémom, môžete to skúsiť. + +<P> +Balík <CODE>supertabular</CODE> začne a ukončí prostredie <CODE>tabular</CODE> prekaždú stranu +tabuľky. Výsledkom je, že každá „strana tabuľky“ sa skompiluje nezávisle +a šírky navzájom si zodpovedajúcich stĺpcov sa môžu lišiť. Ak však príslušnosť +stĺpcov nehrá úlohu alebo vaše stĺpce majú pevnú šírku, <CODE>supertabular</CODE> +má vo vašom prípade veľkú výhodu v tom, že veci spracuje v jednom priechode. + +<P> +<CODE>Longtable</CODE> aj <CODE>supertabular</CODE> dovoľujú pre tabuľku definovať +nadpisy a poznámky pod čiarou. <CODE>longtable</CODE> odlišuje nadpisy a poznámky +pri prvej a poslednej časti. + +<P> +Balík <CODE>xtab</CODE> opravuje niektoré neblahosti <CODE>supertabular</CODE> +a taktiež poskytuje prostriedok pre „posledný nadpis“ (hoci toto zruší výhodu +<CODE>supertabular</CODE> — spracovanie v jednom behu). + +<P> +Balík <CODE>stabular</CODE> poskytuje jednoducho použiteľné rozšírenie prostredia +<CODE>tabular</CODE>, ktoré umožňuje sadzbu tabuliek bežiacich cez koniec strany. Balík +obsahuje aj rôzne užitočné rozširenia, ale neobsauje prostriedky nadpisov +a poznámok pod čiarou ako väčšie balíky. + +<P> +Dokumentáciu <CODE>ltablex</CODE> môžete nájsť v súbore balíku.<BR> +<CODE>longtable.sty</CODE>: distribuované ako súčasť <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/required/tools">2etools</A><BR> +<CODE>ltablex.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/ltablex/ltablex.sty">ltablex</A><BR> +<CODE>ltxtable.sty</CODE>: generované použitím <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/carlisle/ltxtable.tex">ltxtable</A><BR> +<CODE>stabular.sty</CODE>: distribuované ako súčasť <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/sttools">sttools</A><BR> +<CODE>supertabular.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/supertabular">supertabular</A><BR> +<CODE>xtab.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/xtab">xtab</A> + +<P> +<P><A NAME="Q-tabcellalign"><HR><H3>Ako zmeniť zarovnanie buniek tabuľky</H3></A> + +<P> +Často je potrebné zmeniť zarovnanie <CODE>p</CODE> (odstavcovej; „paragraph“) +bunky tabuľky, obvykle však nastávajú na konci konci riadku tabuľky problémy. +S takouto <CODE>p</CODE> bunkou: +<P> +<PRE> +... & \centering blah ... \\ +</PRE> +</P> +sa ľahko stretnete s chybami sťažujúcimi sa na „misplaced csx{noalign}“ +(zle umiestnený csx{noalign}), „extra alignment tab“ (zarovnávací +tabulátor navyše), prípadne na niečo podobné. +Problém je, že príkaz <CODE><CODE>\bs\bs</CODE></CODE> znamená rozličné veci za rozličných +okolností: prostredie <CODE>tabular</CODE> prepína jeho význam na hodnotu použiteľnú +v tabuľke, csx{centering}, csx{raggedright} a csx{raggedleft} ju menia +na niečo nekompatibilné. Všimnite si, že problém vzniká iba v poslednej bunke +riadku: kedže každá bunka je sádzaná do boxu, jej nastavenia sa strácajú u +<CODE>&</CODE> (alebo <CODE><CODE>\bs\bs</CODE></CODE>), ktorý ho ukončuje. + +<P> +Jednoduchým (starým) riešením je zachovanie významu <CODE><CODE>\bs\bs</CODE></CODE>: +<P> +<PRE> +\newcommand\PBS[1]{\let\temp=\\% + #1% + \let\\=\temp +} +</PRE> +</P> +čo použijete napríklad nasledovne: +<P> +<PRE> +... & \PBS\centering blah ... \\ +</PRE> +</P> + +<P> +Technika používajúca csx{PBS} bola vyvinutá v dobe LaTeX 2.09, pretože skutočná +hodnota <CODE><CODE>\bs\bs</CODE></CODE>, ktorú používalo prostredie <CODE>tabular</CODE>, bola dostupná iba +ako interný príkaz. V súčasnosti je hodnota príkaz verejný a v princípe ju +môžete použiť explicitne: +<P> +<PRE> +... & \centering blah ... \tabularnewline +</PRE> +</P> +Toto môže byť zakomponované do jednoduchého makra: +<P> +<PRE> +\newcommand{\RBS}{\let\\=\tabularnewline} +... +... & \centering\RBS blah ... \\ +</PRE> +</P> +Použitie: +<P> +<PRE> +... & \centering\RBS blah ... \\ +</PRE> +</P> +(zapamätajte si, že spätné lomítko zachovávate s csx{PBS} <EM>pred</EM> príkazom, +ktorý ju mení a obnovujete s csx{RBS} <EM>po</EM> príkaze; csx{RBS} je +v skutočnosti mierne preferovaný, ale starý trik tu zostáva). + +<P> +Fígle csx{PBS} a csx{RBS} nám dobre slúžia tiež v špecifikáciach formátu poľa +(„field format“) v preambule pri balíku <CODE>array</CODE>: +<P> +<PRE> +\begin{tabular}{...>{\centering\RBS}% + p{50mm}} +... +</PRE> +</P> +alebo +<P> +<PRE> +\begin{tabular}{...>{\PBS\centering}% + p{50mm}} +... +</PRE> +</P> +<P> +</P> +<CODE>array.sty</CODE>: distribuované ako súčast <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/required/tools">2etools</A> + +<P> +<P><A NAME="Q-wholerow"><HR><H3>Ako zmeniť celý riadok tabuľky</H3></A> + +<P> +Každá bunka tabuľky je sádzaná do boxu, takže zmena štýlu fontu (prípadne +niečoho iného) platí iba po koniec bunky. Ak máte tabuľku s mnohými bunkami +alebo dlhú tabuľku, v ktorej potrebujete zvýrazniť množstvo riadkov, pridávanie +štýlu fontu do každej bunky bude veľmi zdĺhavé. + +<P> +S balíkom <CODE>array</CODE> môžete definovať modifikátory stĺpcov, ktoré zmenia +štýl písma pre celý <EM>stĺpec</EM>. S trochou jemnosti môžete zmeniť +modifikátory tak, aby upravovali riadky namiesto stĺpcov. Postupujeme +nasledovne: +<P> +<PRE> +\usepackage{array} +\newcolumntype{$}{>{% + \global\let\currentrowstyle\relax}% +} +\newcolumntype{^}{>{\currentrowstyle}} +\newcommand{\rowstyle}[1]{% + \gdef\currentrowstyle{#1}% + #1\ignorespaces +} +</PRE> +</P> +Teraz pred prvý špecifikátor stĺpcu vložíme „<CODE>$</CODE>“ a „<CODE>^</CODE>“ pred +modifikátory nasledujúcich. Potom použijeme csx{rowstyle} na začiatku každého +riadku, ktorý chceme modifikovať: +<P> +<PRE> +\begin{tabular}{|$l|^l|^l|} \hline + \rowstyle{\bfseries} + Nadpis & Veľký a & Tučný \\ \hline + Text & text & text \\ + Text & text & text \\ + \rowstyle{\itshape} + Text & text & v~kurzíve \\ + Text & text & text \\ \hline +\end{tabular} +</PRE> +</P> +Balík <CODE>array</CODE> funguje s rôznymi inými prostrediami typu <CODE>tabular</CODE> +z iných balíkov (napríklad <CODE>longtable</CODE>), tento trik však bohužiaľ nefunguje +vždy.<BR> +<CODE>array.sty</CODE>: distribuované ako súčasť <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/required/tools">2etools</A><BR> + +<P> +<P><A NAME="Q-multirow"><HR><H3>Spájanie buniek v stĺpci tabuľky</H3></A> + +<P> +Nie je ťažké vymyslieť dizajn tabuľky, ktorý bude vyžadovať, aby sa určitá bunka +rozprestierala na viacerých riadkoch. Príkladom môže byť tabuľka, v ktorej +najľavejší stĺpec označuje zbytok tabuľky. Toto môžete spraviť (v jednoduchých +prípadoch) použitím diagonálneho rozdelenia v rohových bunkách. Spomenutá +technika vás však prísne obmedzuje v tom, čo môže byť použité ako obsah bunky. + +<P> +Balík <CODE>multirow</CODE> vám umožňuje vytvárať viacriadkové bunky veľmi +jednoducho. Pre najjednoduchšie použitie môžete napísať: +<P> +<PRE> +\begin{tabular}{|c|c|} +\hline +\multirow{4}*{Bežný text g} + & Stĺpec g2a\\ + & Stĺpec g2b \\ + & Stĺpec g2c \\ + & Stĺpec g2d \\ +\hline +\end{tabular} +</PRE> +</P> +a <CODE>multirow</CODE> umiestni „Bežný text g“ na vertikálny stred priestoru +definovaného ostatnými riadkami. Všimnite si, že riadky neobsahujúce +špecifikáciu „multi-row“ musia mať prázne bunky, v ktorých sa viacriadková +bunka objaví. + +<P> +„<CODE>*</CODE>“ môžete nahradiť špecifikáciou šírky stĺpcu. Parameter v tomto prípade +môže obsahovať nepodmienené zlomy riadku: +<P> +<PRE> +\begin{tabular}{|c|c|} +\hline +\multirow{4}{25mm}{Bežný\\text g} + & Stĺpec g2a\\ + & Stĺpec g2b \\ + & Stĺpec g2c \\ + & Stĺpec g2d \\ +\hline +\end{tabular} +</PRE> +</P> +Podobný efekt (s možnosťou trochu väčšej sofistikovanosti) môžeme dosiahnuť +vložením menšej tabuľky, ktorá zoradí text, do <CODE>*</CODE>-deklarovaného csx{multirow}. + +<P> +Príkaz csx{multirow} môže byť použitý aj na písanie vertikálneho textu oboma +smermi (s pomocou balíkov <CODE>graphics</CODE> alebo <CODE>graphicx</CODE>, ktoré +poskytujú príkaz csx{rotatebox}): +<P> +<PRE> +\begin{tabular}{|l|l|} +\hline +\multirow{4}*{\rotatebox{90}{ahoj}} + & Stĺpec g2a\\ + & Stĺpec g2b \\ + & Stĺpec g2c \\ + & Stĺpec g2d \\ +\hline +\end{tabular} +</PRE> +</P> +Takto dostanete text bežiaci nahor; pre opačný smer použite uhol <CODE>-90</CODE>. + +<P> +<CODE>Multirow</CODE> je nastavený tak, aby spolupracoval s balíkom +<CODE>bigstrut</CODE> (ktorý je spomenutý v odpovedi +na Otázku <A HREF="sectO.html#Q-struttab">Rozostupy riadkov v tabuľkách</A>). Na vyjadrenie počtu +riadkov vo viacriadkovom prostredí, ktoré boli otvorené pomocou csx{bigstrut}, +použijete voliteľný parameter príkazu csx{multirow}. + +<P> +Dokumentácia <CODE>multirow</CODE> a <CODE>bigstrut</CODE> sa dá nájsť v súboroch +balíkov v podobe komentárov.<BR> +<CODE>bigstrut.sty</CODE>: distribuované ako súčasť <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/multirow">multirow</A><BR> +<CODE>multirow.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/multirow">multirow</A> + +<P> + +<P> +<P><A NAME="Q-mcfloat"><HR><H3>Plávajúce prostredia v prostredí multicolumn</H3></A> + +<P> +Ak použijete +<PRE> +\begin{figure} + ... +\end{figure} +</PRE> +v prostredí <CODE>multicols</CODE>, obrázok (figure) sa neobjaví. Ak namiesto toho +použijete +<PRE> +\begin{figure*} + ... +\end{figure*} +</PRE> +obrázok sa roztiahne na šírku stránky (ako prostredie <CODE>figure*</CODE> v štandardnej +možnosti LaTeXu, <CODE>twocolumn</CODE>). + +<P> +Pomocou umiestnenia „<CODE>[H]</CODE>“ zavedeného balíkom <CODE>float</CODE> môžeme mať +jednostĺpcové obrázky a tabuľky s popiskami. Možno sa však bude treba pohrať +s umiestnením, pretože nebudú „plávať“ a budú javiť iné zvláštne znaky +chovania (ako nenápadné „pretekanie“ mimo koniec stĺpca na konci prostredia +<CODE>multicols</CODE>).<BR> +<CODE>float.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/float">float</A><BR> +<CODE>multicol.sty</CODE>: distribuované ako súčasť <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/required/tools">2etools</A> + +<P> +<P><A NAME="Q-vertposfp"><HR><H3>Vertikálne rozloženie strán obsahujúcich floaty</H3></A> +LaTeX štandardne centruje floaty na plávajúcej strane (floatovej) vertikálne; +nie sme sami, komu sa to nepáči. Ovládanie umiestnenia je bohužiaľ +„zakopané“ v interných príkazoch LaTeXu, takže pri zmene rozloženia je +nutná opatrnosť. + +<P> +Plávajúce strany používajú tri LaTeXovské dĺžky (t.j. TeXovské skipy) +na definíciu svojho rozloženia: +<UL> + od začiatku strany k začiatku prvého floatu, + floatmi, + od konca posledného floatu na strane ku koncu strany. +</UL> +(Výstupná rutina v skutočnosti umiestňuje csx{@fpsep} nad každý float, takže +csx{@fptop} obvykle obsahuje opravu.) + +<P> +LaTeXovské štandardy sú:<BR> +csx{@fptop} = (<CODE>0pt + 1fil</CODE>) ensuremath{-} csx{@fpsep}<BR> +csx{@fpsep} = <CODE>8pt + 2fil</CODE><BR> +csx{@fpbot} = <CODE>0pt + 1fil</CODE><BR> +takže medzery sa rozširujú, aby vyplnili priestor, ktorý nie je zabraný +floatami, ale ak je na strane viac než jeden float, medzera medzi nimi sa +rozšíri na dvojnásobok horného a spodného priestoru. + +<P> +Najčastejšia potreba, aby floaty začínali na začiatku strany, sa dá jednoducho +uspokojiť: +<PRE> +\makeatletter +\setlength{\@fptop}{-\@fpsep} +\makeatother +</PRE> +Pamätajte si, že toto je „globálne“ nastavenie (najlepšie vykonané v súbore +triedy alebo prinajhoršom v preambule dokumentu). Zmena pre jediný float bude +pravdepodobne (prinajlepšom) celkom komplikovaná. + +<P> +<P><A NAME="Q-secnumdep"><HR><H3>Nečíslované oddíly v obsahu</H3></A> + +<P> +Nejjednodušším způsobem, jak vytvořit v obsahu položku pro takové zvláštní +části textu jako jsou například předmluvy, je užití čítače +<CODE>secnumdepth</CODE>, který je popsán v dodatku C manuálu LaTeXu. +Například: +<PRE> + \setcounter{secnumdepth}{-1} + \chapter{Předmluva} +</PRE> +Samozřejmě, že před opětovným použitím číslovaného oddílu +je potřeba nastavit parametr <CODE>secnumdepth</CODE> +zpět na jeho obvyklou hodnotu (ve standardních stylech 2). + +<P> +Podobná nastavení jsou provedena automaticky v knižní třídě LaTeXu příkazy +csx{frontmatter} a csx{backmatter}. + +<P> +Následuje vysvětlení. +Použije-li se <CODE>\chapter</CODE> bez hvězdičky: +<OL> + <LI> vloží se něco do <CODE>.toc</CODE> souboru; + <LI> je-li čítač <CODE>secnumdepth</CODE> větší nebo roven nule, + zvětší se čítač kapitoly o jedničku a vysází se jeho hodnota. + <LI> vysází se název kapitoly. +</OL> +Ostatní příkazy na rozdělování textu +(<CODE>\section</CODE>, <CODE>\subsection</CODE>,...) pracují obdobně, avšak + testují jinou hodnotu. + +<P> + +<P> +Hodnota čítače <CODE>tocdepth</CODE> ovlivňuje, který nadpis bude vytištěn v obsahu. +Běžně se má jeho hodnota nastavit v preambuli dokumentu, pak je pro +celý dokument konstantní. Balík <EM>tocvsec2</EM> +(<A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/tocvsec2">tocvsec2</A>) nabízí celkem vyhovující +rozhraní umožňující měnit hodnotu čítače <CODE>secnumdepth</CODE> a/nebo <CODE>tocdepth</CODE> +kdekoliv v těle dokumentu. To nabízí docela slušnou nezávislou kontrolu +nad číslováním položek v obsahu. + +<P> +Balík <EM>abstract</EM> (viz Otázku <A HREF="sectO.html#Q-1abstract2">Jednosloupcový výtah v dvousloupcovém dokumentu</A>) zahrnuje +volbu pro přidání abstraktu do obsahu, zatímco balík <EM>tocbibind</EM> +(<A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/tocbibind">tocbibind</A>) má volbu pro vložení +samotného obsahu, bibliografie, rejstříku atd. do obsahu. + +<P> +<P><A NAME="Q-minitoc"><HR><H3>Obsahy a iné veci po kapitolách</H3></A> + +<P> +Častý štýl „malého“ obsahu pre každú časť, kapitolu alebo dokonca sekciu +je podporovaný balíkom <CODE>minitoc</CODE>. Balík podporuje tiež mini-zoznamy +tabuliek a obrázkov; ale mini-bibliografie sú (čo si všíma aj dokumentácia) +iným problémom — viď Otázku <A HREF="sectM.html#Q-bibkap">Lze zpracovat bibliografii pro každou kapitolu zvlášť</A>. + +<P> +Základný princíp balíku spočíva v generovaní malého <CODE>.aux</CODE> súboru pre každú +kapitolu a jeho spracovaní v kapitole. Jednoduché použitie môže byť: +<P> +<PRE> +\usepackage{minitoc} +... +\begin{document} +... +\tableofcontents +\dominitoc \listoffigures \dominilof ... +\chapter{blah blah} +\minitoc \mtcskip \minilof ... +</PRE> +</P> +hoci je možných veľa možností rozvíjania (napríklad csx{minitoc} pre každú +kapitolu nie je potrebné). + +<P> +<CODE>Babel</CODE> <CODE>minitoc</CODE> nepozná, ale <CODE>minitoc</CODE> sa stará aj +o dokumenty v iných jazykoch než v angličtine — dostupný je široký výber. +Aktuálne verzie balíku <CODE>hyperref</CODE> však s csx{minitoc} zaobchádzajú +ako so „skutočnými“ obsahmi. + +<P> +Dokumentácia je dosť rozsiahla a celko dobre čitateľná: spracujte súbor +distribúcie <CODE>minitoc.tex</CODE>.<BR> +<CODE>babel.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/required/babel">babel</A><BR> +<CODE>hyperref.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/hyperref">hyperref</A><BR> +<CODE>minitoc.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/minitoc">minitoc</A> + +<P> +<P><A NAME="Q-multind"><HR><H3>Viacnásobné indexy</H3></A> + +<P> +Štandardné indexovacie schopnosti LaTeXu (tie, čo sú poskytované balíkom +<CODE>makeidx</CODE>) umožňujú mať vo vašom dokumente iba jeden index. Dokonca aj +neveľké dokumenty môžu byť vylepšené samostatnými indexami pre rozdielne témy. + +<P> +Balík <CODE>multind</CODE> poskytuje jednoduché a priamočiare viacnásobné +indexovanie. Označkujete každý príkaz csx{makeindex}, csx{index} +a csx{printindex} názvom súboru a indexovacie príkazy sú zapísané do (alebo +čítané z) príslušného mena súboru s pripojenou zodpovedajúcou príponou +(<CODE>.idx</CODE> alebo <CODE>.ind</CODE>). Príkaz csx{printindex} je modifikovaný +oproti štandardnej verzii z LaTeXu tak, aby nevytváral vlastný názov kapitoly +alebo sekcie, vy rozhodujete, aké názvy (alebo dokonca úrovene sekcií) sa +použijú, csx{indexname} je úplne ignorované (viď Otázku <A HREF="sectO.html#Q-zmenaslov">Změna slov používaných LaTeXem</A>). + +<P> +Na vytvorenie „obecného“ indexu a indexu „autorov“ môžete napísať: +<P> +<PRE> +\usepackage{multind} +\makeindex{general} +\makeindex{authors} +... +\index{authors}{Robin Fairbairns} +... +\index{general}{FAQs} +... +\printindex{general}{Obecný index} +\printindex{authors}{Index autorov} +</PRE> +</P> +Pre dokončenie úlohy spustite LaTeX na vašom súbore dostatočne mnohokrát, aby +návestia a iné veci boli stabilné, a potom spustite príkazy +<P> +<PRE> +makeindex general +makeindex authors +</PRE> +</P> +pred ďalším spustením LaTeXu. Všimnite si, že názvy indexových súborov, +ktoré sa spracúvajú, nemusia mať žiadny vzťah k názvu LaTeXovského súboru, +ktorý spracúvame. (K balíku sa nedodáva žiadna dokumentácia. Lepší popis, než +vidíte hore, nedostanete.) + +<P> +Balík <CODE>index</CODE> poskytuje vyčerpávajúcu sadu indexovacích prostriedkov, +vrátane príkazu csx{newindex}, ktorý dovoľuje definíciu nových štýlov indexu. +csx{newindex} si vezme „značku“ (pre použitie v indexovacích príkazoch), +náhrady za prípony súborov <CODE>.idx</CODE> a <CODE>.ind</CODE> a názov indexu. +Môže tiež zmeniť položku, voči ktorej sa indexuje (môžete mať napríklad index +umelcov referencovaných čislami obrázkov, na ktorých sú ukážky ich práce). + +<P> +Pre použitie balíku <CODE>index</CODE> na vytvorenie indexu autorov spolu +s „normálnym“ indexom, začnite príkazmi v preambule: +<P> +<PRE> +\usepackage{index} +\makeindex +\newindex{aut}{adx}{and}{Index mien} +</PRE> +</P> +Príkazy nahrajú balík, definujú a „hlavný“ index (pôvodný štýl) a následne +definujú index autorov. V tele dokumentu môžeme nájsť príkazy ako: +<P> +<PRE> +\index[aut]{Robin Fairbairns} +... +\index{FAQs} +</PRE> +</P> +Príkazy uložia záznam do indexu autorov, potom záznam do hlavného indexu. +Na konci dokumentu máme dva príkazy: +<P> +<PRE> +\printindex +\printindex[aut] +</PRE> +</P> +Tieto vytlačia hlavný index, a potom index autorov. Za predpokladu, že sa +príkazy budú nachádzať v súbore <CODE>myfile.tex</CODE>, spustite po dostatočnom +množstve behov LaTeXu, aby boli návestia stabilné, nasledujúce príkazy +(tu sú ukázané shellovské príkazy z Unixu, ale princíp je rovnaký nezávisle +na použitom systéme): +<P> +<PRE> +makeindex myfile +makeindex myfile.adx -o myfile.and +</PRE> +</P> +Potom znovu spustite LaTeX. Príkazy <EM>makeindex</EM> spracujú +<CODE>myfile.idx</CODE> do <CODE>myfile.ind</CODE> (štandardná akcia), a potom +<CODE>myfile.adx</CODE> do <CODE>myfile.and</CODE>. Tie dva súbory sú potrebné ako vstup pre +dva príkazy csx{printindex} v súbore <CODE>myfile.tex</CODE>. + +<P> +Balík <CODE>splitidx</CODE> môže pracovať rovnakým spôsobom ako ostatné: nahrajte +balík s voľbou <CODE>split</CODE> a deklarujte každý index príkazom csx{newindex}: +<P> + <CODE>\newindex[<názov_indexu>]{<skratka>}</CODE> +</P> +a <CODE>splitidx</CODE> vygeneruje súbor csx{jobname}<CODE>.<skratka></CODE> pre +položky indexu generované príkazmi ako <CODE>\sindex[<skratka>]{<položka>}</CODE>. +Ako pri ostatných balíkoch, aj tu je táto metóda limitovaná celkovým počtom +výstupných súborov TeXu. <CODE>splitindex</CODE> je však dodávaný s malým +spustiteľným súborom <EM>splitindex</EM> (dostupný pre množstvo operačných +systémov). Ak tento doplnkový program použijete (a nepoužijete voľbu <CODE>split</CODE>), +nebudete limitovaní počtom indexov. Okrem tohto triku podporuje +<CODE>splitidx</CODE> rovnaké veci ako <CODE>index</CODE>. Príklad použitia nájdete +v dokumentácii. + +<P> +Trieda <CODE>memoir</CODE> má vlastné funkcie pre viacnásobné indexy (ako aj voľby +rozvrhnutia indexu, ktoré ostatné balíky delegujú na indexové štýly používané +programom <EM>makeindex</EM>).<BR> +<CODE>index.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/index">index</A><BR> +<CODE>makeidx.sty</CODE>: súčasť distribúcie LaTeXu<BR> +<CODE>memoir.cls</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/memoir">memoir</A><BR> +<CODE>multind.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex209/contrib/misc/multind.sty">multind</A><BR> +<CODE>splitidx.sty</CODE> a <CODE>splitindex</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/splitindex">splitindex</A> + +<P> + +<P> +<P><A NAME="Q-nameref"><HR><H3>Odkazovanie na veci podľa mena</H3></A> + +<P> +LaTeXovský mechanizmus návestí je navrhnutý pre neosobný svet akademických +publikácií, v ktorých všetko má číslo. Ak si máme zaznamenať <EM>názvy</EM> vecí, +ktorým sme priradili návestie, je potrebné rozšírenie. Sú dostupné dva balíky +rozširujúce príkazy LaTeXu na tvorbu sekcií, aby poskytli možnosť odkazovania +názvom sekcie. + +<P> +Balík <CODE>titleref</CODE> je jednoduchým rozšírením poskytujúcim príkaz +csx{titleref}. Je to samostatný balík — nepoužívajte ho v dokumente, v ktorom +potrebujete aj <CODE>hyperref</CODE>. + +<P> +Balík <CODE>byname</CODE>, hoci pracuje so svojím „priateľom“ +<CODE>smartref</CODE>, funguje (do určitej miery) s balíkom <CODE>hyperref</CODE>, ale +odkazy, ktoré definuje, nie sú hyperlinky. + +<P> +Trieda <CODE>memoir</CODE> zahŕňa funkcionalitu <CODE>titleref</CODE>, ale zrejme nefunguje +s <CODE>byname</CODE> (i keď hľadaním v Newsgroup{comp.text.tex} +na URL{groups.google.com} nájdete úpravu <CODE>byname</CODE> na vyriešenie +problému). + +<P> +Sada <CODE>hyperref</CODE> obsahuje balík <CODE>nameref</CODE>, ktorý funguje +samostatne (t.j. bez <CODE>hyperref</CODE>: v tomto móde, samozrejme, nie sú jeho +odkazy hyperlinkované). Ak nahráte samotný <CODE>hyperref</CODE>, +<CODE>nameref</CODE> sa nahrá automaticky. +<CODE>Memoir</CODE> vyžaduje <CODE>memhfixc</CODE> pri behu s <CODE>hyperref</CODE>. Avšak +po uvedenej postupnosti príkazov môžu byť <CODE>nameref</CODE> príkazy použité +v <CODE>memoir</CODE> dokumente: +<P> +<PRE> +\documentclass[...]{memoir} +... +\usepackage[...]{hyperref} +\usepackage{memhfixc} +</PRE> +</P> + +<P> + +<P> +Všetky tri balíky pre odkazy podľa mena definujú odkazovacie príkazy rovnakého +názvu ako balík: csx{titleref}, csx{byname} a csx{nameref}. Balík +<CODE>nameref</CODE> tiež definuje príkaz csx{byshortnameref}, ktorý používa +voliteľný „krátky“ parameter nadpisu pre príkazy kapitol a sekcií.<BR> +<CODE>byname.sty</CODE>: distribuovaný s <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/smartref">smartref</A><BR> +<CODE>hyperref.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/hyperref">hyperref</A><BR> +<CODE>memoir.cls</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/memoir">memoir</A><BR> +<CODE>nameref.sty</CODE>: distribuovaný s <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/hyperref">hyperref</A><BR> +<CODE>smartref.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/smartref">smartref</A><BR> +<CODE>titleref.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/misc/titleref.sty">titleref</A> + +<P> +<P><A NAME="Q-extref"><HR><H3>Odkazovanie na návestia v iných dokumentoch</H3></A> + +<P> +Pri tvorbe sady vzájomne súvisiacich dokumentov sa budete často chcieť odkazovať +na návestia v druhých dokumentoch sady, ale samostatný LaTeX toto nepovoľuje. + +<P> +Z toho dôvodu bol napísaný balík <CODE>xr</CODE>: ak napíšete +<P> +<PRE> +\usepackage{xr} +\externaldocument{volume1} +</PRE> +</P> +do vášho súčasného dokumentu nahrajú sa všetky odkazy z <CODE>volume1</CODE>. + +<P> +Čo však v prípade, že majú oba dokumenty sekciu s návestím „introduction“ +(úvod; je to celkom pravdepodobné)? Balík poskytuje prostriedky +na transformáciu všetkých importovaných návestí, takže ich nemusíte meniť +v žiadnom dokumente. Napríklad: +<P> +<PRE> +\usepackage{xr} +\externaldocument[V1-]{volume1} +</PRE> +</P> +nahrá odkazy zo súboru <CODE>volume1</CODE>, ale pred každý vloží predponu +<CODE>V1-</CODE>. Takže na úvod v dokumente „volume 1“ by ste sa odkazovali: +<P> +<PRE> +\usepackage{xr} +\externaldocument[V1-]{volume1} +... +... úvod dokumentu volume1 + (\ref{V1-introduction})... +</PRE> +</P> +Aby prostriedky <CODE>xr</CODE> fungovali s balíkom <CODE>hyperref</CODE>, potrebujete +balík <CODE>xr-hyper</CODE>. Pre jednoduché krížové hyperodkazy (t.j. na lokálny +PDF súbor, ktorý ste práve skompilovali) napíšte: +<P> +<PRE> +\usepackage{xr-hyper} +\usepackage{hyperref} +\externaldocument[V1-]{volume1} +... +... the \nameref{V1-introduction})... +</PRE> +</P> +a pomenovaný odkaz sa objaví ako aktívny link na kapitolu „úvod“ súboru +<CODE>volume1.pdf</CODE>. + +<P> +Pre link na PDF dokument na webe, pre ktorý máte .aux súbor, napíšte: +<P> +<PRE> +\usepackage{xr-hyper} +\usepackage{hyperref} +\externaldocument[V1-]{volume1}% + [http://mybook.com/volume1.pdf] +... +... the \nameref{V1-introduction})... +</PRE> +</P> +<CODE>xr.sty</CODE>: distribuované ako súčasť <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/required/tools">2etools</A><BR> +<CODE>xr-hyper.sty</CODE>: distribuované s <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/hyperref">hyperref</A> + +<P> + +<P> +<P><A NAME="Q-varwidth"><HR><H3>Automatická veľkosť <CODE>minipage</CODE></H3></A> + +<P> +Prostredie <CODE>minipage</CODE> vyžaduje, aby ste špecifikovali šírku „stránky“, ktorú +chcete vytvoriť. Toto je občas nepohodlné: chceli by ste (ak je to možné) +zabrať menej miesta, ale <CODE>minipage</CODE> vytvorí box presne podľa špecifikovanej +šírky. + +<P> +Balík <CODE>pbox</CODE> definuje csx{pbox}, ktorého šírka je presne šírkou +najdlhšieho obsiahnutého riadku (závislé od maximálnej širky, ktorú zadáte). +Takže kým <CODE>\parbox{2cm}{Hello\\world!}</CODE> vytvotí box šírky presne <CODE>2cm</CODE>, +<CODE>\pbox{2cm}{Hello\\world!}</CODE> vytvorí box so šírkou <CODE>1.79cm</CODE> (ak +používate štandardný font <CODE>cmr</CODE>). Balík poskytuje aj +<CODE>\settominwidth[min]{length}{text}</CODE> (čo vyzerá takmer ako štandardný príkaz +csx{settowidth}) a csx{widthofpbox} funkčne analogické príkazu csx{widthof} +pre použitie s balíkom <CODE>calc</CODE>. + +<P> +Balík <CODE>eqparbox</CODE> myšlienku balíku <CODE>pbox</CODE> rozširuje tak, že vám +dovoľuje vysádzať sériu boxov s rovnakou (minimalizovanou) šírkou. (Príkaz +neprijíma parameter limitujúci maximálnu šírku.) Dokumentácia balíku ukazuje +nasledujúci príklad z humorného <EM>životopisu</EM>: +<P> +<PRE> +\noindent% +\eqparbox{place}% + {\textbf{Widgets, Inc.}} + \hfill +\eqparbox{title}% + {\textbf{Senior Widget Designer}} + \hfill +\eqparbox{dates}{\textbf{1/95--present}} + +<P> +... + +<P> +\noindent% +\eqparbox{place}% + {\textbf{Thingamabobs, Ltd.}} + \hfill +\eqparbox{title}% + {\textbf{Lead Engineer}} + \hfill +\eqparbox{dates}{\textbf{9/92--12/94}} +</PRE> +</P> +Kód zabezpečí, že všetky tri položky majú rovnakú šírku, takže riadky vyzerajú +pravidelne. Príkaz csx{eqboxwidth} vám dovoľuje použiť zmeranú šírku skupiny: +dokumentácia ukazuje, ako môže byť príkaz použitý na vytvorenie rozumne +vyzerajúcich stĺpcov miešajúcich riadky <CODE>c</CODE>, <CODE>r</CODE> alebo +<CODE>l</CODE>, s ekvivalentnou položkou <CODE>p{...}</CODE> tým, že z riadkov s pevnou šírkou +spravíte skupinu <CODE>eqparbox</CODE> a nakoniec použijete csx{parbox} so šírkou, +ktorá bola pre skupinu zmeraná. + +<P> +Balík <CODE>varwidth</CODE> definuje prostredie <CODE>varwidth</CODE>, ktoré sádza obsah boxu +tak, aby zodpovedal „užšej prirodzenej šírke“, ak nejakú nájde. +(Poskytujete rovnaké parametre ako pri <CODE>minipage</CODE>.) <CODE>Varwidth</CODE> +poskytuje svoj vlastný príkaz csx{narrowragged}, ktorého úlohou je zúžiť +riadky a dostať viac textu do posledného riadku odstavcu (teda vytvorenie +riadkov s väčšou mierou zhody dĺžky riadkov, než je to typicky pri +csx{raggedright}). + +<P> +Dokumentácia (v samotnom súbore balíku) vypisuje rozličné reštrikcie a veci, +ktoré je ešte treba spraviť, ale balík sa ukázal ako užitočný pre rozličné +úlohy.<BR> +<CODE>eqparbox.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/eqparbox">eqparbox</A><BR> +<CODE>pbox.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/pbox">pbox</A><BR> +<CODE>varwidth.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/misc/varwidth.sty">varwidth</A> + +<P> + +<P> +<P><A NAME="Q-pozntab"><HR><H3>Poznámky pod čarou v tabulkách</H3></A> + +<P> +Standardní LaTeXový příkaz <CODE>\footnote</CODE> neumí pracovat v prostředí +tabulek. Toto prostředí totiž poznámkám neumožní „uniknout“ až na +konec stránky. Pokud je tabulka plovoucí, nejlepší řešení je +umístit tabulku do prostředí <CODE>minipage</CODE> a umístit pak poznámky na spodní +okraj stránky nebo použít balík +<A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/misc/threeparttable.sty">threeparttable</A> od +Donalda Arsenaua. + +<P> +Balík <CODE>ctable</CODE> rozšiřuje model <CODE>threeparttable</CODE> a taktéž používá +myšlenky balíku <CODE>booktabs</CODE>. Příkaz csx{ctable} dělá všechnu práci: +sázení tabulky, umístnění popisků a definování poznámek. „Tabulka“ může +obsahovat diagramy a volitelný parametr csx{ctable} udělá vytvořený float +obrázkem místo tabulky. + +<P> +Pokud není tabulka plovoucí, pak můžete použít jednu z možností: +<OL> + <LI> Pomocí <CODE>\footnotemark</CODE> můžete vhodně umístit do textu značku +poznámky před ukončením prostředí <CODE>tabular</CODE> vložte příkaz +<CODE>\footnotetext</CODE>. Tento +způsob je popsán v Lamportově knize, můžete však použít pouze jednu +poznámku. + <LI> Vložte tabulku do prostředí <CODE>minipage</CODE>. To vám umožňuje použít +všechny vlastnosti poznámek bez většího úsilí. + <LI> Použijte +<A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/misc/threeparttable.sty">threeparttable</A>. Balík je +sice vytvořen pro plovoucí tabulky, ale můžete ho použít i v tomto +případě. + <LI> Použijte <CODE>tabularx</CODE> nebo <CODE>longtable</CODE> z LaTeXové distribuce +(<A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/required/tools">2etools</A>). Klasické poznámky sice zvládá +o poznání hůře než prostředí <CODE>tabular</CODE>, avšak povoluje poznámky pod čarou. + <LI> Stáhněte balík <EM>footnote</EM> (skrýtá se v archivu na <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/mdwtools">mdwtools</A>. +Pak vložte vaši +tabulku do prostředí <CODE>savenotes</CODE>. Alternativně můžete do preambule +dokumentu napsat <CODE>\makesavenoteenv{tabular}</CODE> a tabulka zvládne poznámky +pod čarou korektně. + <LI> Použijte <EM>mdwtab</EM> ze stejného adresáře. Ten umí nejen +správně zvládat poznámky pod čarou, ale navíc ještě umí vaši tabulku +zkrášlit. Ten však může být nekompatibilní s jinými balíky. +</OL> + +<P> +Dokumentace <CODE>threeparttable</CODE> je obsažena v souboru balíku samém, +dokumentace <CODE>ctable</CODE> je distribuována jako PDF soubor. + +<P> +<P><A NAME="Q-captsty"><HR><H3>Štýly popiskov</H3></A> + +<P> +Zmeny štýlov popiskov môžete spraviť opätovnou definíciou príkazov, ktoré +popisky vytvárajú. Takže napríklad <CODE>\fnum@figure</CODE> môže byť predefinovaný +vo vašom vlastnom balíku alebo medzi +viď Otázku <A HREF="sectQ.html#Q-atsigns"><CODE>\@</CODE> a <CODE>@</CODE> ve jménech maker</A> +: +<P> +<PRE> +\renewcommand{\fnum@figure}% + {\textbf{Fig.~\thefigure}} +</PRE> +</P> +čo spôsobí, že číslo bude vysádzané tučné. (Všimnite si, že v pôvodnej +definícii bolo použité +viď Otázku <A HREF="sectO.html#Q-zmenaslov">Změna slov používaných LaTeXem</A>.) Prepracovanejších zmien môžeme dosiahnuť +úpravou príkazu <CODE>\caption</CODE>, kedže však na túto prácu neexistujú balíky, nie sú +takéto zmeny (ktoré môžu byť dosť náročné) odporúčané bežných používateľom. + +<P> +Balík <CODE>float</CODE> poskytuje určitú konkrolu na vzhľadom popiskov, aj keď je +určený hlavne na vytváranie neštandardných floatov (plávajúcich tabuliek +a obrázkov). Balíky <CODE>caption</CODE> a <CODE>ccaption</CODE> (všimnite si násobné +'<EM>c</EM>') poskytujú rôzne formátovacie možnosti. + +<P> +<CODE>ccaption</CODE> poskytuje „predĺžené“ popisky a popisky, ktoré môžete +umiestniť mimo prostredí float. Balík <CODE>capt-of</CODE> povoľuje taktiež popisky +mimo prostredia float. Pri zaobchádzaní s vecami predpokladajúcimi postupnosť +floatov (ako v predĺžených popiskoch), alebo prípadným miešaním neplávajúcich +popiskov s plávajúcimi, je potrebné dbať na opatrnosť. + +<P> +Trieda <CODE>memoir</CODE> zahŕňa možnosti balíku <CODE>ccaption</CODE>. Triedy +<CODE>KOMA-script</CODE> tiež poskytujú široký rozsah príkazov na formátovanie popiskov. + +<P> +Dokumentácia <CODE>caption</CODE> je dostupná po spracovaní súboru +<CODE>manual.tex</CODE> vytvoreného pri rozbalovaní <CODE>caption.dtx</CODE>. + +<P> +V minulosti odporúčaný balík <CODE>caption2</CODE> bol znovu prevzatý balíkom +<CODE>caption</CODE>. <CODE>caption2</CODE> však zostáva dostupný pre staršie +dokumenty.<BR> +<CODE>caption.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/caption">caption</A><BR> +<CODE>capt-of.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/misc/capt-of.sty">capt-of</A><BR> +<CODE>ccaption.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/ccaption">ccaption</A><BR> +<CODE>float.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/float">float</A><BR> +balík <CODE>KOMA script</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/koma-script">koma-script</A><BR> +<CODE>memoir.cls</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/memoir">memoir</A> + +<P> +<P><A NAME="Q-titlsty"><HR><H3>Štýly nadpisov dokumentov</H3></A> + +<P> +Balík <CODE>titling</CODE> poskutuje mnoho prostriedkov umožňujúcich manipuláciu +so vzhľadom príkazu <CODE>\maketitle</CODE> (vrátane <CODE>\thanks</CODE> atď.). Balík definuje +prostredie <CODE>titlingpage</CODE>, ktoré je konfigurovateľné. Poskytuje niečo medzi +voľbou <CODE>titlepage</CODE> štandardných tried a prostredím <CODE>titlepage</CODE>.<BR> +<CODE>titling.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/titling">titling</A> + +<P> + +<P> +<P><A NAME="Q-titles"><HR><H3>Vzhled nadpisů</H3></A> + +<P> +Předpokládejme, že editor našeho oblíbeného časopisu vyžaduje, +aby nadpisy oddílů byly centrované a vysázené kapitálkami a pododdíly +byly zarovnány vpravo a vysázeny kurzívou. Nechce se nám však zaplétat do +takového druhu programování jaký je popsán v <EM>The LaTeX Companion</EM> + (viz <A HREF="sectC.html#Q-books">Knihy o TeXu a příbuzná literatura</A>; + <A HREF="sectQ.html#Q-atsigns"><CODE>\@</CODE> a <CODE>@</CODE> ve jménech maker</A> samotné je diskutováno pod `@'). +Následující trik pravděpodobně editory uspokojí. +Nově definované příkazy <CODE>\ssection</CODE> a <CODE>\ssubsection</CODE>: +<PRE> + \newcommand{\ssection}[1]{% + \section[#1]{\centering\textsc{#1}}} + \newcommand{\ssubsection}[1]{% + \subsection[#1]{\raggedright\textit{#1}}} +</PRE> +se pak použijí namísto obvyklých <CODE>\section</CODE> a <CODE>\subsection</CODE>. +Není to však nejhezčí řešení. Čísla v nadpisech oddílů +zůstávají vysázena tučně a hvězdičkovaná forma příkazů musí +být předefinována zvlášť. +Uvedené definice nebudou správně fungovat +v případě, že se použije + <A HREF="sectT.html#Q-NFSS">Makro NFSS (The New Font Selection Scheme)</A> mimo <A HREF="sectT.html#Q-latex2e">LaTeX 2e (nový standard LaTeXu)</A>, +jelikož v takovém případě se příkazy měnící typ písma chovají odlišně. + +<P> +Balík <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/sectsty">sectsty</A> nabízí jednoduše +použitelnou sadu příkazů pro tuto práci, zatímco balík +<A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/titlesec">titlesec</A> umožňuje pokročilejší řešení +této problematiky (<EM>titlesec</EM> přichází s druhým balíkem – +<EM>titletoc</EM> – +který je používán pro úpravu formátu celého obsahu. + +<P> +Záhlaví příkazů <CODE>\chapter</CODE> a <CODE>\part</CODE> jsou vytvářena jiným +mechanismem, balík <EM>sectsty</EM> umí zacházet s oběma, zatímco +<EM>titlesec</EM> +umí upravit pouze <CODE>\chapter</CODE>. Balík +<A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/fncychap">fncychap</A> nabízí širokou +škálu předem definovaných designů nadpisů kapitol. + +<P> +Balík <CODE>fncychap</CODE> poskytuje pěknou kolekci upravených nadpisů kapitol. +Balík <CODE>anonchap</CODE> poskytuje jednoduché nástroje pro sazbu nadpisů kapitol +„jako nadpisů kapitol“ (tedy bez části „Kapitola“). Balík +<CODE>tocbibind</CODE> poskytuje stejné příkazy, avšak za účelem dosažení jiného +cíle. <CODE>fncychap</CODE> bohužel není sladěný s přítomností front a backmatter +v dokumentech třídy <CODE>book</CODE>. + +<P> +<P><A NAME="Q-appendix"><HR><H3>Prílohy</H3></A> + +<P> +LaTeX poskytuje výnimočne jednoduchý mechanizmus príloh: príkaz <CODE>\appendix</CODE> +prepína dokument zo stavu generovania sekcií (v triede <CODE>article</CODE>) alebo kapitol +(v triedach <CODE>report</CODE> a <CODE>book</CODE>) do stavu produkovania príloh. Číslovanie sekcie +alebo kapitoly je reštartované a reprezentácia počítadla sa prepne do abecedného +módu. Takže: +<P> +<PRE> +\section{Moja inšpirácia} +... + +<P> +\section{Rozvíjanie inšpirácie} +... + +<P> +\appendix +\section{Ako ma kopla múza} +... +</PRE> +</P> +sa vysádza (v dokumente triedy <CODE>article</CODE>) nasledovne: +<P> +textbf{1 Moja inšpirácia} + +<P> +... + +<P> +textbf{2 Rozvíjanie inšpirácie} + +<P> +... + +<P> +textbf{A Ako ma kopla múza} + +<P> +... +</P> +čo je väčšinou dostačujúce. Všimnite si, že po tom, čo ste zapli sádzanie +príloh, LaTeX vám neumožňuje cestu späť — po prílohe nemôže nasledovať +normálna sekcia (<CODE>\section</CODE>) alebo kapitola (<CODE>\chapter</CODE>). + +<P> +Balík <CODE>appendix</CODE> poskytuje viacero spôsobov ako túto jednoduchú situáciu +spracovať. Priame použitie balíku vám dovoľuje mať oddelené nadpisy v tele +dokumentu a obsahu. Dosiahnete to pomocou +<P> +<PRE> +\usepackage{appendix} +... +\appendix +\appendixpage +\addappheadtotoc +</PRE> +</P> +Príkaz <CODE>\appendixpage</CODE> pridáva nad prvú prílohu oddelený nadpis +„Appendices“ (prílohy) a príkaz <CODE>\addappheadtotoc</CODE> pridáva podobný nadpis +do obsahu. Tieto jednoduché modifikácie pokrývajú potreby mnohých ľudí týkajúce +sa príloh. + +<P> +Balík tiež poskytuje prostredie <CODE>appendices</CODE>, ktoré poskytuje pestrejšie +využitie Prostredie sa najlepšie ovláda voľbami balíku. Hore vedený príklad +by sme dosiahli takto: +<P> +<PRE> +\usepackage[toc,page]{appendix} +... +\begin{appendices} +... +\end{appendices} +</PRE> +</P> +Skvelé je, že keď prostredie <CODE>appendices</CODE> skončí, môžete v sekciách a kapitolách +pokračovať ako predtým — číslovanie nie je ovplyvnené. + +<P> +Balík poskytuje aj ďalšiu možnosť sádzania príloh — vo forme podriadených +úsekov v dokumente. Prostredie <CODE>subappendices</CODE> dovoľuje vkladať prílohy pre +konkrétnu sekciu oddelene (použíte <CODE>\subsection</CODE> pre sekcie, alebo +<CODE>\section</CODE> pre kapitoly). Môžete teda napísať: +<P> +<PRE> +\usepackage{appendix} +... +\section{Moja inšpirácia} +... +\begin{subappendices} +\subsection{Ako ma kopla múza} +... +\end{subappendices} + +<P> +\section{Rozvíjanie inšpirácie} +... +</PRE> +</P> +Výsledkom bude niečo podobné: +<P> +textbf{1 Moja inšpirácia} + +<P> +... + +<P> +textbf{1.A Ako ma kopla múza} + +<P> +... + +<P> +textbf{2 Rozvíjanie inšpirácie} + +<P> +... +</P> + +<P> +S balíkom sa dá robiť ešte veľa zaujímavých vecí, pre detaili sú užívatelia +odkazovaný na dokumentáciu. + +<P> +Trieda <CODE>memoir</CODE> obsahuje možnosti balíku <CODE>appendix</CODE>. Triedy +<CODE>KOMA-script</CODE> poskytujú príkaz <CODE>\appendixprefix</CODE> na manipuláciu so vzhľadom +príloh.<BR> +<CODE>appendix.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/appendix">appendix</A><BR> +balík <CODE>KOMA script</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/koma-script">koma-script</A><BR> +<CODE>memoir.cls</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/memoir">memoir</A> + +<P> + +<P> +<P><A NAME="Q-widefigs"><HR><H3>Široké obrázky v dvojstĺpcových dokumentoch</H3></A> + +<P> +Plávajúce obrázky a tabuľky obyčajne vychádzajú v rovnakej šírke ako stránka, +ale v dvojstĺpcových dokumentoch sú obmedzené šírkou stĺpca. Toto ale občas +nie je dostačujúce, takže existujú alternatívne verzie prostredí float — +v dvojstĺpcových dokumentoch poskytuje <CODE>figure*</CODE> plávajúci obrázok šírky stránky +(a <CODE>table*</CODE> tabuľku šírky stránky), ktorý sa postará o všetko potrebné. + +<P> +Hviezdičkové plávajúce (float) prostredia sa môžu objaviť iba na vrchu stránky +alebo na celej stránke — direktívy float rozloženia <CODE>h</CODE> alebo <CODE>b</CODE> sú +jednoducho ignorované. + +<P> +Rovnice šírky celej strany môžu byť bohužiaľ prispôsobené iba vnútru float +prostredí. Mali by ste ich zahŕňať do prostredí <CODE>figure</CODE>, alebo používať balík +<CODE>float</CODE>, prípadne <CODE>ccaption</CODE> na definíciu nového typu floatu.<BR> +<CODE>ccaption.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/ccaption">ccaption</A><BR> +<CODE>float.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/float">float</A> + +<P> + +<P> +<P><A NAME="Q-parindent"><HR><H3>Odsazení odstavce po nadpisu</H3></A> + +<P> +LaTeX používá stylů, jež neodsazují první odstavec za nadpisem. +Je mnoho důvodů proč tomu tak je, ale ne každému to vyhovuje +(např. to neodpovídá tradicím české typografie). +Užijeme-li styl +<CODE>indentfirst.sty</CODE> +(<A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/required/tools">2etools</A>), +pak se tento mechanismus potlačí, takže první odstavec bude odsazen. + +<P> +<P><A NAME="Q-poznnadp"><HR><H3>Poznámky v LaTeXových nadpisech</H3></A> + +<P> +Umístění příkazu <CODE>\footnote</CODE> v argumentu příkazu <CODE>\section</CODE> není +dostačující. +Jelikož jsou argumenty příkazu <CODE>\section</CODE> používány v obsahu a potenciálně +i v záhlaví stránky, není použití <CODE>\protect\footnote</CODE> také dobrý nápad. + +<P> +Bohužel neexistuje rozumný způsob, jak zamezit zobrazování těchto +poznámek v záhlaví při povolení zobrazování v obsahu. K jejich potlačení musíte +udělat toto: +<UL> + <LI> Využijte toho, že povinné argumentu nejsou volány, pokud se zde +vyskytují volitelné: <CODE>\section[title]{title\footnote{title ftnt}}</CODE> + <LI> Použijte balík <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/footmisc">footmisc</A> +s volbou balíku <CODE>stable</CODE> – ten upraví poznámky pod čarou tak, že lehce +a tiše zmizí, pokud jsou použité jako nepovinné argumenty. +</UL> + +<P> +<P><A NAME="Q-ftncapt"><HR><H3>Poznámky v popiskoch</H3></A> + +<P> +Poznámky v popiskoch sú obzvlášť komplikované: predstavujú samostatný problém +(navyše k problémom +poznámok v nadpisoch a tabuľkách spomínaných v predchádzajúcich otázkach). + +<P> +Takže okrem používania voliteľného parametru príkazu csx{caption} (alebo +podobného), aby sme sa vyhli migrácii poznámky do Zoznamu ... (List of +...), a vloženia objektu, ktorého popisky obsahujú poznámku, do minipage, +musíme <EM>naviac</EM> čeliť tendencii príkazu csx{caption} vytvárať text +poznámky dvakrát. Pre tento posledný problém neexistuje čisté riešenie, ktorého +by si bol autor vedomý. Ak týmto problémom trpíte, dobre vytvorený príkaz +csx{caption} v prostredí <CODE>minipage</CODE> vo vnútri floatu ako: +<PRE> +\begin{figure} + \begin{minipage}{\textwidth} + ... + \caption[Popisky pre LOF]% + {Skutočné popisky\footnote{blah}} + \end{minipage} +\end{figure} +</PRE> +môže vytvoriť <EM>dve</EM> kópie tela poznámky „blah“. (Efekt sa objavuje +pri popiskoch, ktoré sú dosť dlhé, aby na sadzbu vyžadovali dva riadky, a teda +pri takom krátkom popisku by sa neobjavil.) Dokumentácia balíku +<CODE>ccaption</CODE> popisuje skutočne strašný spôsob, ako problém obísť.<BR> +<CODE>ccaption.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/ccaption">ccaption</A> + +<P> +<P><A NAME="Q-repfootnote"><HR><H3>Poznámky s rovnakým textom</H3></A> + +<P> +Ak sa <EM>rovnaká</EM> poznámka objaví na rozličných miestach v dokumente, je +často nevhodné opakovať celú poznámku znovu. Opakovaniu sa môžeme vyhnúť +poloautomatickou cestou alebo jednoduchým označovaním poznámok, o ktorých +vieme, že ich budeme opakovať, a následným odkazovaním na výsledok. Plne +autmatické riešenie (také, čo detekuje a potláča) neexistuje. + +<P> +Ak viete, že budete mať iba jednu opakovanú poznámku, riešenie je jednoduché: +iba použite voliteľný parameter csx{footnotemark} na zdôraznenie opakovania: +<P> +<PRE> +...\footnote{Opakujúca sa poznámka} +... +...\footnotemark[1] +</PRE> +</P> +...@ čo je veľmi jednoduché, kedže vieme, že bude existovať iba poznámka +čislo 1. Podobná technika môže byť použitá, keď už sú poznámky stabilné, +použijete číslo, ktoré LaTeX alokoval. Toto však môže byť únavné, kedže +ľubovolná zmena sadzby by mohla zmeniť vzťahy medzi poznámkou a opakovaním: +značkovanie je nevyhnuteľne lepšie. + +<P> +Môžeme použiť jednoduché ručné značkovanie poznámok pomocou dedikovaného +počítadla: +<P> +<PRE> +\newcounter{fnnumber} +... +...\footnote{Opakovaný text}% +\setcounter{fnnumber}{\thefootnote}% +... +...\footnotemark[\thefnnumber] +</PRE> +</P> +Je to ale trochu zdĺhavé. Na pomoc si môžeme privolať značkovacie mechanizmy +LaTeXu, ale pred vyhodnotením csx{ref} počas druhého priebehu LaTeXom +sa objavujú nepekné chybové hlásenia: +<P> +<PRE> +...\footnote{Opakovaný text\label{fn:repeat}} +... +...\footnotemark[\ref{fn:repeat}] +</PRE> +</P> +Alternatívne môžete použiť príkaz csx{footref}, ktorého výhodou je schopnosť +fungovať, dokonca aj keď nie je značka poznámky vyjadrená ako číslo. Príkaz je +definovaný v balíku <CODE>footmisc</CODE> a v triede <CODE>memoir</CODE> (prinajmenšom). +csx{footref} zredukuje predchádzajúci príklad na: +<P> +<PRE> +...\footnote{Opakovaný text\label{fn:repeat}} +... +...\footref{fn:repeat} +</PRE> +</P> +Toto je najčistejšie riešenie. Všimnite si, že príkaz csx{label} <EM>musí</EM> +byť vo vnútri parametru csx{footnote}. + +<P> +Balík <CODE>fixfoot</CODE> nám to trochu uľahčuje: pomocou príkazu +csx{DeclareFixedFoot} deklarujete poznámky (typicky v prambule dokumentu), +ktoré budete opakovať, a potom použijete deklarovaný príkaz v tele dokumentu: +<P> +<PRE> +\DeclareFixedFootnote{\rep}{Opakovaný text} +... +...\rep{} +...\rep{} +</PRE> +</P> +Balík zaručuje, že opakovaný text sa objavuje na strane najviac raz: obvykle +zrejme bude potrebný viac než jeden beh LaTeXu, aby ste sa opakovaní +zbavili.<BR> +<CODE>fixfoot.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/fixfoot">fixfoot</A><BR> +<CODE>footmisc.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/footmisc">footmisc</A><BR> +<CODE>memoir.cls</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/memoir">memoir</A> + +<P> +<P><A NAME="Q-footnpp"><HR><H3>Číslovanie poznámok „po stránkach“</H3></A> + +<P> +Očividným riešením je resetovanie počítadla vždy, keď zmeníme stranu, +pomocou interných mechanizmov LaTeXu (viď Otázku <A HREF="sectR.html#Q-addtoreset">„Master“ a „slave“ počítadlá</A>). +Miesto zmeny stránky bohužial nie je predvídateľné (nie na konci tlačenej +stránky, takže takéto spojenie funguje iba so šťastím). + +<P> +Výsledkom je, že resetovanie poznámok je nevyhnuteľne dvojprechodový proces +používajúci určitý druh návestí. Návestia sú tak či tak dôležité, kedže sa +bežne vyskutuje požiadavka na značkovanie poznámok symbolmi (s veľmi malými +množinami symbolov). Existujú tri balíky, ktoré toto dokážu. + +<P> +Balík <CODE>footnpag</CODE> robí iba číslovanie poznámok po stránkach a nič iné. + +<P> +Balík <CODE>perpage</CODE> poskytuje obecný mechanizmus resetovania počítadiel +po jednotlivých stránkach, takže zjavne môže byť na túto úlohu použitý. +Rozhranie je jednoduché: <CODE>\MakePerPage{footnote}</CODE> spraví, čo +potrebujeme. Ak chcete nastaviť počítadlo na inú hodnotu než 1 (napríklad aby +ste sa vyhli niečomu v LaTeXovskom zozname symbolov poznámok), použite: +<CODE>\MakePerPage[2]{footnote}</CODE>. + +<P> +Balík <CODE>footmisc</CODE> poskytuje rozličné spôsoby kontroly vzhľadu poznámok, +medzi ktorými je aj voľba balíku <CODE>perpage</CODE>, ktorá upravuje číslovanie +po stránkach. + +<P> +Dokumentácia <CODE>footnpag</CODE> je dodávaná ako <CODE>.dvi</CODE> súbor +<CODE>footnpag-user</CODE> distribúcie. Dokumentácia <CODE>perpage</CODE> je iba v súbore +balíku (neobsahuje ale viac, než bolo uvedené hore...).<BR> +<CODE>footmisc.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/footmisc">footmisc</A><BR> +<CODE>footnpag.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/footnpag">footnpag</A><BR> +<CODE>perpage.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/misc/perpage.sty">perpage</A> + +<P> +<P><A NAME="Q-changemargin"><HR><H3>Zmena okrajov v LaTeXu</H3></A> + +<P> +Zmena veľkosti tela textu LaTeXovského je prekvapujúco ťažká úloha, najlepšia +rada pre začiatočníkov je, aby to neskúšali. Medzi fundamentálnymi obmedzeniami +TeXu, obmedzeniami spojenými s návrhom LaTeXu a dobrými dizajnovými +a sádzačskými zvykmi existuje určitá spojitosť. Každá zmena musí byť teda dobre +premyslená a musí byť zaistené, že funguje a zároveň je oku príjemná. + +<P> +Lamportove varovanie v jeho sekcii „Customizing the Style“ nesmie byť brané +na ľahkú váhu. Jednopalcové okraje papieru formátu A4 sú prijateľné pre písacie +stroje, ale nie pre sadzbu desaťbodovým (prípadne väčším) písmom, pretože sa +takéto široké, husté riadky ťažko čítajú. Ideálne by na riadok nemalo byť viac +ako 75 znakov (pre dvojstĺpcový text sa obmedzenie mení). +Ovládacie prvky LaTeXu dovoľujú zmeniť vzdialenosť od okajov stránky k ľavému +a hornému okraju vášho textu, ako aj výšku a šírku textu. +Zmena výšky a šírky vyžaduje viac zručnosti, než by ste čakali. Výška by si mala +zachovať určitý vzťah k vzdialenostiam po sebe nasledujúcich účiarí +(<CODE>\baselineskip</CODE>), šírka by mala byť obmedzená podľa už spomenutého pravidla. + +<P> +Ovládacie prvky sú vyjadrené množinou parametrov stránky. V istom zmysle sú +komplexné a pri predefinovávaní rozvrhnutia stránky si môžeme ľahko popliesť ich +vzájomné vzťahy. Balík <CODE>layout</CODE> definuje príkaz <CODE>\layout</CODE> kresliaci +diagram aktuálneho rozvrhnutia stránky s rozmermi (avšak bez ich závislostí). +Toto FAQ odporúča používať balík na vytvorenie konzistentného nastavenia +parametrov, o závislosti sa postarajú balíky. + +<P> +Definitívnym nástrojom pre zmenu rozmerov a pozície tlačeného materiálu +na stránke je balík <CODE>geometry</CODE>. Relatívne priamočiaro môže byť +naprogramovaných množstvo nastavení rozvrhnutia. Dokumentácia +Otázku <A HREF="sectD.html#Q-dtx">Dokumentované LaTeXovské zdroje (<CODE>.dtx</CODE> soubory)</A> +je kvalitná a obsiahla. + +<P> +Použítie balíku <CODE>vmargin</CODE> je trochu jednoduchšie. Balík obsahuje +množinu rozmerov papierov (nadmnožina toho, čo poskytuje LaTeX 2e), opatrenia +pre vlastné rozmery, nastavenia okrajov a opatrenia pre dvojstrannú tlač. + +<P> +Ak to stále chcete spraviť sami, začnite sa zoznamovať s parametrami LaTeXu +pre rozloženie stránky. Pozrite si napríklad sekciu C.5.3 LaTeX manuálu +(str. 181–182) alebo príslušné sekcie v iných manuáloch LaTeXu +(viď Otázku <A HREF="sectC.html#Q-books">Knihy o TeXu a příbuzná literatura</A>). +Parametre <CODE>\oddsidemargin</CODE> a <CODE>\evensidemargin</CODE> vďačia za svoje názvy +skutočnosti, že obvyle sú nepárne stránky na pravej strane dvojstranného +rozloženia („recto“) a párne na ľavej strane („verso“). Oba parametre +odkazujú na <EM>ľavý</EM> okraj. Pravý okraj je potom vydedukovaný z veľkosti +<CODE>\textwidth</CODE>. Začiatok je v DVI koordinátoch jeden palec od horného +okraja a jeden palec od ľavého okraja. Kladné horizontálne hodnoty postupujú +smerom doprava, kladné vertikálne smerom nadol. Takže pre okraje bližšie než +jeden palec k ľavému a hornému kraju stránky môžete príslušné parametre +(<CODE>\evensidemargin</CODE>, <CODE>\oddsidemargin</CODE>, <CODE>\topmargin</CODE>) nastaviť na záporné +hodnoty. + +<P> +Ďalším prekvapením je, že jednoduchou modifikáciou parametrov veľkosti textu +nemôžete zmeniť šírku a výšku textu v dokumente. Parametre by mali byť menené +iba v preambule dokumentu, teda pred výrazom <CODE>\begin{document}</CODE>. Pre zmenu +v dokumente definujeme prostredie: +<PRE> +\newenvironment{changemargin}[2]{% + \begin{list}{}{% + \setlength{\topsep}{0pt}% + \setlength{\leftmargin}{#1}% + \setlength{\rightmargin}{#2}% + \setlength{\listparindent}{\parindent}% + \setlength{\itemindent}{\parindent}% + \setlength{\parsep}{\parskip}% + }% +\item[]}{\end{list}} +</PRE> +Toto prostredie akceptuje dva parametre a odsadí ľavý a pravý okraj podľa +hodnôt príslušných parametrov. Záporné hodnoty spôsobia zúženie okrajov, takže +<CODE>\begin{changemargin}{-1cm}{-1cm}</CODE> zúži ľavý a pravý okraj o 1cm. + +<P> +Balík <CODE>chngpage</CODE> poskytuje na vytvorenie predchádzajúceho stavu hotové +príkazy. Obsahuje opatrenia na zmenu posunov aplikovaných na váš text podľa +toho, či ste na nepárnej alebo párnej stránke dvojstránkového dokumentu. +Dokumentácia balíku (v súbore samotnom) navrhuje stratégiu zmeny rozmerov textu +medzi stranami — ako bolo spomenuté vyššie, zmena rozmerov textu v tele +stránky môže viesť k nepredvídateľným výsledkom.<BR> +<CODE>chngpage.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/misc/chngpage.sty">chngpage</A><BR> +<CODE>geometry.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/geometry">geometry</A><BR> +<CODE>layout.sty</CODE>: distribuované ako súčasť <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/required/tools">2etools</A><BR> +<CODE>vmargin.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/vmargin">vmargin</A> + +<P> +<P><A NAME="Q-nopageno"><HR><H3>Ako sa zbaviť čísel strán</H3></A> + +<P> +Balík <CODE>nopageno</CODE> potlačí čísla strán v celom dokumente. + +<P> +Pre potlačenie iba na jednej strane použite <CODE>\thispagestyle{empty}</CODE> +niekde v texte strany. <CODE>\maketitle</CODE> a <CODE>\chapter</CODE> používajú +<CODE>\thispagestyle</CODE> interne, takže to musíte zavolať po tom, čo ste zavolali +<CODE>\maketitle</CODE> alebo <CODE>\chapter</CODE>. + +<P> +Pre potlačenie číslovania postupnosti strán môžete použiť +<CODE>\pagestyle{empty}</CODE> na začiatku postupnosti strán a obnovte pôvodný štýl +stránky na konci (postupnosti). Bohužiaľ, stále musíte použiť <CODE>\thispagestyle</CODE> +po každom príkaze <CODE>\maketitle</CODE> alebo <CODE>\chapter</CODE>. + +<P> +Problémové príkazy triedy <CODE>memoir</CODE> (<CODE>\maketitle</CODE>, <CODE>\chapter</CODE> atď@) +vyvolajú vlastný štýl stránky (<CODE>title</CODE>, <CODE>chapter</CODE> atď.@), ktorý môžete +predefinovať použitím techník triede vlastných, aby boli ekvivaletné prostrediu +„<CODE>empty</CODE>“. Triedy <CODE>KOMA-script</CODE> majú príkazy štýl stránky, ktorý má byť +použitý, takže môžete napísať: +<P> +<PRE> +\renewcommand*{\titlepagestyle}{empty} +</PRE> +</P> + +<P> +Alternatívou (vo všetkých triedach) je použitie celkom príjemného +<CODE>\pagenumbering{gobble}</CODE>. Má to za následok, že každý pokus o tlač čisla +strany nič nevyprodukuje, takže nie je problém zabrániť ľubovolnej časti +LaTeXu v tlači čísla strany. Príkaz <CODE>\pagenumbering</CODE> však má vedľajší +efekt — nastavuje (resetuje) číslo stránky na 1, čo nemusí byť príjemné. + +<P> +Balík <CODE>scrpage2</CODE> oddeľuje reprezentáciu od resetovania, takže môžete +napísať: +<P> +<PRE> +\renewcommand*{\pagemark}{} +</PRE> +</P> +aby ste dosiahli to isté ako pri triku s <CODE>gobble</CODE>, bez resetovania čísla +stránky.<BR> +<CODE>nopageno</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/carlisle/nopageno.sty">nopageno</A><BR> +balík <CODE>KOMA script</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/koma-script">koma-script</A><BR> +<CODE>memoir.cls</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/memoir">memoir</A><BR> +<CODE>scrpage2.sty</CODE>: distribuované ako súčasť <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/koma-script">koma-script</A> + +<P> +<P><A NAME="Q-stringwidth"><HR><H3>Zjištění šířky písmene, slova nebo sousloví</H3></A> + +<P> +Slovo se vloží do boxu a poté se zjistí šířka tohoto boxu. +Například: +<PRE> + \newdimen\stringwidth + \setbox0=\hbox{hi} + \stringwidth=\wd0 +</PRE> +Je třeba však mít na paměti, že je-li v <CODE>\hbox</CODE>u sousloví, +hodnota, kterou určíme, bude pouze přibližnou šířkou, kterou bude +vysázené zaujímat ve skutečném textu, neboť mezislovní mezery se +při sazbě odstavce mohou změnit. + +<P> +V LaTeXu lze problém řešit takto: +<PRE> + \newlength{\gnat} + \settowidth{\gnat}{\textbf{small}} +</PRE> +Hodnota <CODE>\gnat</CODE> se v tomto případě nastaví na hodnotu šířky +„small“ vysázeného tučně. + +<P> + +<P> +<P><A NAME="Q-filename"><HR><H3>Aký je názov tohto súboru</H3></A> + +<P> +Toto zistenie môžete potrebovať pre automatické generovanie záhlavia alebo päty +stránky zaznamenávajúceho práve spracúvaný súbor. Nie je to jednoduché... + +<P> +TeX si pamätá iba to, čo považuje za názov <EM>práce</EM> (<EM>job</EM>), +v primitíve csx{jobname}. Predstavuje názov súboru, ktorý bol prvý predaný +TeXu, orezaný o meno adresáru a ľubovolnú príponu (ako napríklad <CODE>.tex</CODE>). +Ak nebol predaný žiadny súbor (t.j. používate TeX interaktívne), +csx{jobname} má hodnotu <CODE>texput</CODE> (v tomto prípade názov daný <CODE>.log</CODE> súboru). + +<P> +Toto je v prípade malých dokumentov udržiavaných v jednom súbore. Väčšina +významných dokumentov bude však udržiavaná vo viacerých súboroch a TeX sa +nesnaží držať si prehľad vstupných súborov práce. Prehľad si teda musí +udržiavať užívateľ sám — jediným spôsobom je úprava vstupných príkazov, aby si +pamätali detaily názvov súborov. Toto je práve v prípade <CODE>Plain</CODE> TeXu +zložité, kedže syntax príkazu csx{input} je „svojrázna“. + +<P> +V prípade LaTeXu majú vstupné príkazy pekne pravidelnú syntax. Stačí na ne +teda použiť najjednoduchšie upravovacie techniky: +<PRE> + \def\ThisFile{\jobname} + \newcounter{FileStack} + \let\OrigInput\input + \renewcommand{\input}[1]{% + \stepcounter{FileStack} + \expandafter\let + \csname NameStack\theFileStack\endcsname + \ThisFile + \def\ThisFile{#1}% + \OrigInput{#1}% + \expandafter\let\expandafter + \ThisFile + \csname NameStack\theFileStack\endcsname + \addtocounter{FileStack}{-1}% + } +</PRE> +(Podobne aj pre csx{include}.) Kód predpokladá, že budete vždy pre csx{input} +používať syntax LaTeXu, t.j. vždy použijete parameter uzavretý do zložených +zátvoriek. + +<P> +Balík <CODE>FiNK</CODE> („File Name Keeper“) poskytuje v makre csx{finkfile} +bežný prostriedok na udržanie si prehľadu o názve aktuálneho súboru (spolu +s jeho príponou). Sada zahŕňa súbor <CODE>fink.el</CODE> poskytujúci podporu +pre <EM>emacs</EM> s AUC-TeXom.<BR> +<CODE>fink.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/fink">fink</A> + +<P> +<P><A NAME="Q-filesused"><HR><H3>Všetky súbory použité v tomto dokumente</H3></A> + +<P> +Keď zdielate dokument s niekým iným (možno v rámci spoločného vývoja), je +vhodné, aby obaja korešpondenti mali rovnaký dokument, ako aj rovnakú sadu +pomocných súborov. Váš korešpondent zjavne potrebuje rovnakú sadu súborov +(ak napríklad používate balík <CODE>url</CODE>, druhá strana tiež musí mať +<CODE>url</CODE>). Predpokladajme, že vy máte bezchybnú verziu balíku +<CODE>skvelybalik</CODE>, ale na druhej strane majú stále nestabilnú verziu. Kým +obe strany zistia, čo sa deje, môže byť takáto situácia veľmi mätúca. + +<P> +Najjednoduchším riešením je LaTeXovský príkaz csx{listfiles}. Ten do súboru +logu umiestňuje zoznam použitých súborov a ich verzií. Ak tento zoznam +vypreparujete a pošlete ho so svojím súborom, môže byť použitý ako kontrolný +zoznam v prípade problémov. + +<P> +Majte na pamäti, že csx{listfiles} zaregistruje iba veci vložené +„štandardnými“ LaTeXovskými mechanizmami (csx{documentclass}, +csx{usepackage}, csx{input}, csx{include}, csx{includegraphics} atď.). Ak +však použijete primitívnu syntax TeXu: +<PRE> + \input mymacros +</PRE> +<CODE>mymacros.tex</CODE> <EM>nebude</EM> príkazom csx{listfiles} zahrnutý do zoznamu, +kedže ste obišli mechanizmus zaznamenávajúci jeho použitie. + +<P> +Balík <CODE>snapshot</CODE> pomáha vlastníkovi LaTeXovského dokumentu získať +zoznam externých závislostí dokumentu (vo forme, ktorá môže byť začlenená +na začiatok dokumentu). Balík je určený na tvorbu archívnych kópií dokumentov, +ale má nasadenie aj pri situáciach výmeny dokumentov. + +<P> +Systém <EM>bundledoc</EM> používa csx{listfiles} na tvorbu archívu (napríklad +<CODE>.tar.gz</CODE> alebo <CODE>.zip</CODE>) súborov vyžadovaných vašim dokumentom. Je dodávaný +s konfiguračnými súbormi pre<EM>teTeX</EM> a <EM>mikTeX</EM>. Je užitočný, +hlavne keď posielate prvú kópiu dokumentu.<BR> +<CODE>bundledoc</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/support/bundledoc">bundledoc</A><BR> +<CODE>snapshot.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/snapshot">snapshot</A> + +<P> +<P><A NAME="Q-changebars"><HR><H3>Označovanie zmien v dokumente</H3></A> + +<P> +Často potrebujeme zreteľne vyznačiť, ako náš dokument zmenil. Najčastejší +postup, „pruhy zmien“ (change bars; tiež známe ako „pruhy revízií“ — +revision bars), však vyžaduje od programátora prekvapivo veľkú lstivosť (problém +je, že TeX poriadne neposkytuje programátorovi žiadne informácie o aktuálnej +pozícii, z ktorej by mohol byť vypočítaný domnelý začiatok alebo koniec pruhu; +PDFTeX informácie <EM>poskytuje</EM>, ale nie sme si zatiaľ vedomí o žiadnom +programátorovi, ktorý by to využil na napísanie changebar balíku založeného +na PDFTeXu). + +<P> +Najjednoduchší balík poskytujúci pruhy zmien je <CODE>backgrnd.tex</CODE> od Petra +Schmitta. Bol napísaný ako aplikácia <CODE>Plain</CODE> TeX upravujúca výstupnú rutinu, +ale zrejme funguje aspoň na jednoduchých LaTeXovských dokumentoch. Múdri +používatelia LaTeXu budú po informácii o úprave ich výstupnej rutiny pomocou +<CODE>backgrnd</CODE> ostražití a veľmi pozorne budú sledovať jeho chovanie (úprava +LaTeXovskej rutiny nie je niečo, na čo sa dá ľahko podujať...). + +<P> +Najstarším riešením je balík <CODE>changebar</CODE>, ktorý používa príkazy +csx{special} poskytované ovládačom, ktorý používate. Z tohto dôvodu potrebujete +balíku povedať, pre ktorý ovládač má generovať príkazy csx{special} (rovnakým +spôsobom ako pri balíku <CODE>graphics</CODE>); zoznam dostupných ovládačov je dosť +obmedzený, zahŕňa však <EM>dvips</EM>. Balík je dodávaný so shellovským +skriptom <EM>chbar.sh</EM> (pre použitie na Unixe), ktorý porovnáva dva +dokumenty a generuje tretí, označený makrami <CODE>changebar</CODE> pre zvýraznenie +zmien. Skvelý shareware editor <EM>WinEDT</EM> má makro generujúce makrá +<CODE>changebar</CODE> (alebo iné) na zviditeľnenie zmien voči predchádzajúcej +verzii vašeho súboru uloženého v <EM>RCS</EM> repozitári — viď +URL{http://www.winedt.org/Macros/LaTeX/RCSdiff.php}. + +<P> +Balík <CODE>vertbars</CODE> používa techniky balíku <CODE>lineno</CODE> (musí byť +prítomný) a je teda najmenší z balíkov na značenie pruhov zmien, kedže všetko +zložitejšie necháva inému balíku. Balík <CODE>framed</CODE> je ďalším z balíkov +poskytujúcich pruhy, tentoraz ako vedľajší efekt poskytovanie iných funkcií: +jeho prostredie <CODE>leftbar</CODE> je iba „chudobnejší“ frame (pamätajte si však, že +prostredie vytvára pre svoj obsah vlastný odstavec, takže je najlepšie používať +ho pri konvencii označovania <EM>celého</EM> zmeneného odstavcu). + +<P> +Trieda <CODE>memoir</CODE> dovoľuje okrajové redakčné poznámky, ktoré môžete použiť +na ohraničenie oblastí zmeny textu.<BR> +<CODE>backgrnd.tex</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/generic/backgrnd.tex">backgrnd</A><BR> +<CODE>changebar.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/changebar">changebar</A><BR> +<CODE>framed.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/misc/framed.sty">framed</A><BR> +<CODE>lineno.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/lineno">lineno</A><BR> +<CODE>memoir.cls</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/memoir">memoir</A><BR> +<CODE>vertbars.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/misc/vertbars.sty">vertbars</A> + +<P> +<P><A NAME="Q-conditional"><HR><H3>Podmienená kompilácia a komentáre</H3></A> + +<P> +Aj keď LaTeX (alebo ľubovolný iný balík odvodený z TeXu) nie je +v skutočnosti kompilátor, ľudia často chcú, aby robil veci pre kompilátor +typické. Častou požiadavkou je podmienená „kompilácia“ a blokové komentáre. +Na tento účel je dostupných viacero LaTeXu špecifických prostriedkov. + +<P> +Jednoduché príkazy <CODE>\newcommand{\csx{gobble}}[1]{}</CODE> a +csx{iffalse}<CODE> ... </CODE>csx{fi} nie sú pre komentáre (ako obecné riešenie) +dostačujúce, kedže vynechané veci sú TeXom aj tak preskúmané. Skúmanie +zavádza obmedzenia na veci, ktoré môžete vynechať. Toto nemusí byť problémom +<EM>dnes</EM>, ale v budúcnosti sa to môže vypomstiť. csx{gobble} je naviac pre +netriviálne parametre dosť neefektívny, kedže všetko, čo sa má vynechať, je pred +vynechaním skopírované do zásobníku parametrov. + +<P> +Ak sa vaša požiadavka týka dokumentu, z ktorého chýbajú celé kapitoly, zvážte +LaTeXovský systém csx{include}/csx{includeonly}. Ak vložíte vaše súbory +pomocou csx{include} (namiesto csx{input} — viď +Otázku <A HREF="sectR.html#Q-include">Co se děje při použití příkazu <CODE>\include</CODE>?</A>), LaTeX zapisuje informácie o tom, čo sa deje +na konci každej kapitoly do <CODE>.aux</CODE> súboru. +Pomocou csx{includeonly} môžete LaTeXu dodať vyčerpavajúci zoznam potrebných +súborov. Súbory, ktoré nie sú vložené pomocou csx{include}, sú celé +preskočené, ale spracovanie dokumentu pokračuje, ako keby tam <EM>boli</EM>. +Strany, poznámky a iné čísla nie sú ovplyvnené. Pamatajte si, že sekcie, ktoré +chcete vložiť, si môžete vybrať interaktívne pomocou balíku <CODE>askinclude</CODE>. + +<P> +Pomocou balíku <CODE>excludeonly</CODE> môžete dosiahnuť presný opak: dovoľuje vám +z dokumentu vynechať zoznam súborov vložených pomocou csx{include} použitím +príkazu csx{excludeonly}. + +<P> +Ak si chcete vybrať konkrétne stránky dokumentu, použite balík <CODE>pagesel</CODE> +Heika Oberdieka alebo balík <CODE>selectp</CODE>. Niečo podobné môžete spraviť +s existujúcim PDF dokumentom (ktorý ste mohli skompilovať pomocou +<EM>pdflatex</EM>u) použitím balíku <CODE>pdfpages</CODE>. Spravíte to +s podobne vyzerajúcim dokumentom: +<PRE> + \documentclass{article} + \usepackage[final]{pdfpages} + \begin{document} + \includepdf[pages=30-40]{yoursource.pdf} + \end{document} +</PRE> +(Na vloženie celého dokumentu môžete napísať +<PRE> + \includepdf[pages=-]{yoursource.pdf} +</PRE> +vynechajúc začiatočnú a koncovú stranu dokumentu vo voliteľnom parametri.) + +<P> +Ak chcete byť pri vkladaní alebo vynechávaní malých častí súboru, zvážte balíky +<CODE>comment</CODE>, <CODE>version</CODE> alebo <CODE>optional</CODE>. + +<P> +<CODE>comment</CODE> dovoľuje deklarovať oblasti dokumentu, ktoré majú byť vložené +alebo vynechané; tieto deklarácie robíte v preambule súboru. Príkaz +<CODE>\includeversion{version-name}</CODE> deklaruje prostredie <CODE>version-name</CODE>, ktorého +obsah bude zahrnutý vo vašom dokumente, zatiaľ čo príkaz +<CODE>\excludeversion{version-name}</CODE> definuje prostredie, ktorého obsah bude vynechaný. Balík používa celkom +robustnú metódu vynechávania a dokáže si poradiť aj so zle formovaným textom +(napríklad s nespárovanými zloženými zátvorkami alebo príkazmi csx{if}). + +<P> +<CODE>version</CODE> poskytuje podobné prostriedky ako <CODE>comment.sty</CODE> +(t.j., príkazy csx{includeversion} a csx{excludeversion}); je oveľa +jednoduchší, ale aj menej robustný (a hlavne si nevie poradiť s veľmi +rozsiahlymi oblasťami vypúšťaného/vkladaného textu). + +<P> +Dôležitým rozvojom <CODE>version</CODE>, je balík zavádzajúco pomenovaný +<CODE>versions</CODE> (t.j. iba plurál pôvodneho názvu). +<CODE>Versions</CODE> pridáva príkaz <CODE>\markversion{version-name}</CODE>, ktorý definuje +prostredie pre tlač vloženého textu so zreteľnou značkou okolo neho. + +<P> +Balík <CODE>optional</CODE> definuje príkaz csx{opt}; jeho prvý parameter je +„príznak vloženia“, druhým je vkladaný alebo vynechaný text. Vkladaný alebo +vynechávaný text musí byť dobre utvorený (žiadne syntaktické chyby) a nemal by +byť príliš veľký — ak je potrebný dlhý text, v parametri by mal byť +csx{input}. Dokumentácia (samotnom súbore balíku) vám prezradí, ako deklarovať, +ktoré sekcie majú byť vložené: toto môžete spraviť v preambule dokumentu, ale +dokumentácia navrhuje tiež spôsoby, ktorými to môžete spraviť na príkazovom +riadku vyvolávajúcom LaTeX alebo interaktívne. + +<P> +Konečne balík <CODE>verbatim</CODE> (ktorý by mal byť dostupný v každej +distribúcii) definuje prostredie <CODE>comment</CODE>, ktoré umožňuje dedikovanému +používateľovi editoru potlačiť časti LaTeXovského zdrojového súboru. Trieda +<CODE>memoir</CODE> poskytuje rovnaké prostredie.<BR> +<CODE>askinclude.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/misc/askinclude.sty">askinclude</A><BR> +<CODE>comment.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/comment">comment</A><BR> +<CODE>excludeonly.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/misc/excludeonly.sty">excludeonly</A><BR> +<CODE>memoir.cls</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/memoir">memoir</A><BR> +<CODE>optional.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/misc/optional.sty">optional</A><BR> +<CODE>pagesel.sty</CODE>: distribuované s balíkmi Heika Oberdieka <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/oberdiek">oberdiek</A><BR> +<CODE>pdfpages.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/pdfpages">pdfpages</A><BR> +<CODE>selectp.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/misc/selectp.sty">selectp</A><BR> +<CODE>verbatim.sty</CODE>: distribuované ako súčasť <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/required/tools">2etools</A><BR> +<CODE>version.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/misc/version.sty">version</A><BR> +<CODE>versions.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/versions/versions.sty">versions</A> + +<P> +<P><A NAME="Q-docotherdir"><HR><H3>Časti dokumentu z rozličných adresárov</H3></A> + +<P> +Bežným spôsobom zostavovania veľkých dokumentov je ich rozdelenie na sadu +menších súborov (napr. jeden na každú kapitolu) a uchovávanie všetkého, čo +súvisí s jedným z týchto súborov, v podadresári. + +<P> +TeX bohužiaľ nemá možnosť zmeny aktuálneho adresáru, takže všetky súbory, +na ktoré sa odkazujete, musíte uviest relatívne voči adresáru hlavného súboru. +Väčšina ľudí toto pokladá za neintuitívne. + +<P> +Vhodným riešením môže byť použitie techniky rozšírenia cesty +z Otázky <A HREF="sectE.html#Q-tempinst">„Dočasné“ inštalácie súborov TeXu alebo LaTeXu</A>. Ak však v dokumente používate viacero súborov +rovnakého názvu (napr. <CODE>chapter1/fig1.eps</CODE> a <CODE>chapter2/fig1.eps</CODE>), +pri vyvolaní <CODE>\input{sect1}</CODE> v hlavnom súbore nedávate TeXu žiadnu +informáciu, na ktorý súbor sa odkazujete. Tento problém je jednoducho riešiteľný +pri súboroch vytváraných ľuďmi (používajte rozličné názvy). Názvy automaticky +vytvorených súborov sú často rovnaké a ich zmena je procedúra náchylná +k vytvoreniu chýb. + +<P> +Balík <CODE>import</CODE> vám v tomto prípade prichádza na pomoc. Definuje príkaz +csx{import}, ktorý akceptuje úplnú cestu a názov súboru v tomto adresári, +zabezpečí pritom, aby veci fungovali správne. Takže napríklad súbor +<CODE>/home/friend/results.tex</CODE> môže obsahovať +<PRE> + Graph: \includegraphics{picture} + \input{explanation} +</PRE> +<CODE>\import{/home/friend/}{results}</CODE> potom vloží oba súbory. Príkaz +csx{subimport} robí to isté pre podadresár (relatívna cesta radšej než +absolútna), existujú zodpovedajúce príkazy csx{includefrom} +a csx{subincludefrom}.<BR> +<CODE>import.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/misc/import.sty">import</A> + +<P> +<P><A NAME="Q-make"><HR><H3>Súbory Makefile pre LaTeXovské dokumenty</H3></A> + +<P> +Použitie <EM>make</EM> s LaTeXom je komplikované. Potreba viacnásobného +spustenia LaTeXu (napr. pre ustálenie obsahu, návestí, pridanie +bibliografie, indexu atď.) sa ťažko vyjadruje obvyklým druhom grafu závilostí, +ktorý konštruujeme pre <EM>make</EM>. + +<P> +Z tochto dôvodu bol jediným balíkom podobným <EM>make</EM> na CTANe +(dlhú dobu) <EM>latexmk</EM>, čo je skript pre <EM>Perl</EM> analyzujúci +závislosti vášho dokumentu, v prípade potreby spúšťajúci BibTeX alebo +<EM>makeindex</EM> (v prípade zmeny súborov, ktoré uvedené programy používajú +ako vstup) atď. <EM>Latexmk</EM> je dobrým riešením, nedávno bol +aktualizovaný a obsahuje množstvo skvelých vlastností dovoľujúcich mu pracovať +ako veľmi jednoduchý WYSIWYG systém. + +<P> +Systém <CODE>texinfo</CODE> (viď Otázku <A HREF="sectB.html#Q-texinfo">Co je to Texinfo</A>) je dodávaný +s utilitou nazvanou <EM>texi2dvi</EM>, ktorá umožňuje konvertovanie súborov +LaTeXu alebo <CODE>texinfo</CODE> do DVI (alebo pomocou PDFTeXu +do PDF). + +<P> +Novším prírastkom je balík <CODE>latexmake</CODE> poskytujúci množinu pravidiel +pre <EM>make</EM> podľa potreby vyvolávajúcich <EM>texi2dvi</EM>.<BR> +<CODE>latexmake</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/support/latexmake">latexmake</A><BR> +<CODE>latexmk</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/support/latexmk">latexmk</A><BR> +<CODE>texi2dvi</CODE>: distribuované ako súčasť <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/texinfo/texinfo">texinfo</A> + +<P> +<P><A NAME="Q-howmanypp"><HR><H3>Koľko stránok je v mojom dokumente?</H3></A> + +<P> +Jednoduché dokumenty (tie, čo začínajú stranou 1 a nemajú v číslovaní strán +nijaké zlomy až po poslednú stranu) nepredstavujú pri hľadaní odpovede na túto +otázku žiadny problém. Počet strán hlási balík <CODE>lastpage</CODE> v svojom +návestí <CODE>LastPage</CODE>. + +<P> +Pre komplikovanejšie dokumenty (napríklad knihy s inak čislovanou úvodnou +časťou) tento jednoduchý prístup nestačí. + +<P> +Balík <CODE>count1to</CODE> definuje návestie <CODE>TotalPages</CODE>. Toto je +hodnota jeho kópie csx{count1} (rezervovaný TeXovský počítací +register) na konci dokumentu. + +<P> +Balík <CODE>totpages</CODE> definuje návestie <CODE>TotPages</CODE>, ale tiež +sprístupňuje svoj register na použitie ako LaTeXovské počítadlo +<CODE>TotPages</CODE>, na ktoré sa môžete odkazovať cez csx{theTotPages}. +<CODE>TotPages</CODE> je samozrejme asynchrónny rovnakým spôsobom ako čísla strán, ale +„snapshoty“ môžu byť vo výstupnej rutine bezpečne uskutočnené. + +<P> +Trieda <CODE>memoir</CODE> definuje dve počítadlá (<CODE>lastpage</CODE> +a <CODE>lastsheet</CODE>), ktoré sú nastavené (po prvom spracovaní dokumentu) +na ekvivalent návestí <CODE>LastPage</CODE> a <CODE>TotalPages</CODE>). + +<P> +Balíky <CODE>count1to</CODE> a <CODE>totpages</CODE> potrebujú podporu balíku +<CODE>everyshi</CODE>.<BR> +<CODE>count1to.sty a everyshi.sty</CODE>: distribuované v <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/ms">ms</A><BR> +<CODE>lastpage.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/lastpage">lastpage</A><BR> +<CODE>memoir.cls</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/memoir">memoir</A><BR> +<CODE>totpages.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/totpages">totpages</A> + +<P> +<P><A NAME="Q-inclplain"><HR><H3>Vloženie TeXovských súborov do LaTeXu</H3></A> + +<P> +Napriek tomu, že je LaTeX pôvodne založený na Plain TeXu (viď +Otázku <A HREF="sectB.html#Q-LaTeXandPlain">Aký je vzťah medzi LaTeXom a <CODE>plain</CODE> TeXom?</A>), neobsahuje všetky príkazy Plain TeXu. Čo +je však horšie, niektoré príkazy Plain TeXu sa v LaTeXu objavujú +s odlišnou sémantikou. Dôsledkom toho je, že pre sadzbu dokumentov +Plain TeXu (alebo ich častí) LaTeXom musia byť vykonané špeciálne +opatrenia. + +<P> +Skutočne spoľahlivé riešenia je preloženie príkazov Plain TeXu tak, aby +produkovali ekvivalent pôvodnej sémantiky. Toto však v mnohých prípadoch nie +je praktické a pre tieto prípady si často musíte pomôcť balíkom +<CODE>plain</CODE>. Balík definuje prostredie <CODE>plain</CODE>, v ktorom môže byť +spracovaný dokument Plain TeXu: +<PRE> +\begin{plain} + \input{plain-doc} +\end{plain} +</PRE> +Je známe, že balík zlyháva napríklad pri dokumentoch používajúcich AMSTeX, +určite by zlyhal aj pri požiadavke o načítanie Eplainu. +Všetky tieto problémy sa dajú prekonať (aj keď to niekedy nie je ľahké), ale +nám v mnohých prípadoch šetrí mnoho práce.<BR> +<CODE>plain.sty</CODE>: distribuované ako súčasť <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/carlisle">carlisle</A> + +<P> +<P><A NAME="Q-nohyph"><HR><H3>Moje slová sa nerozdeľujú</H3></A> + +<P> +Predpokladajme, že ste si vybrali správny TeXovský „jazyk“ (viď +Otázku <A HREF="sectD.html#Q-hyphen">Ako funguje v TeXu rozdeľovanie slov?</A>), pravdepodobne nedosiahnete požadovaný výsledok +sadzbou jedného jazyka a použitím rozdeľovacích pravidiel jazyka druhého. +(Ak ste používateľ LaTeXu, vyberte si správny jazyk pomocou <CODE>babel</CODE>. +Takto môžete odhaliť potrebu ďalšej sady rozdeľovacích vzorov, viď +Otázku <A HREF="sectO.html#Q-babeljaz">Používání nových jazyků v babelu</A>). + +<P> +Čo iné sa ešte môže pokaziť? +<UL> + <LI> Od TeXu verzie 3.0 boli medze povolenej vzdialenosti rozdelenia + od začiatku alebo konca slova programovateľné (viď + Otázku <A HREF="sectQ.html#Q-weirdhyphenation">Nezvykle rozdělená slova</A>) a dotyčné hodnoty mohli byť z nejakého + dôvodu v niektorých makrách, ktoré používate, nesprávne nastavené. TeX + nebude rozdeľovať menej než csx{lefthyphenmin} znakov od začiatku slova, ani + menej než csx{righthyphenmin} pred koncom slova, tým pádom nebude rozdeľovať + slová kratšie než súčet týchto dvoch hodnôt. + Napríklad pre angličtinu sú tieto hodnoty 2 a 3, takže TeX nebude + rozdeľovať slová kratšie než 5 písmen, ak si o slove myslí, že je anglické. + <LI> {tolerance=200 emergencystretch=0pt + TeX nebude rozdeľovať slová, ktoré už boli rozdelené. + Napríklad anglické priezvisko Smyth-Postlethwaite nebude rozdelené, + čo môže spôsobovať problémy. + Toto je správny sadzobný štýl pre angličtinu (nemusí byť správny pre iné + jazyky), ak však naozaj rozdelenie potrebujete, môžete nahradiť spojovník + v priezvisku príkazom csx{hyph} definovaným +<PRE> + \def\hyph{\penalty0\hskip0pt\relax} +</PRE> + Tento spôsob ale obvykle neodporúčame. Balík <CODE>hyphenat</CODE> definuje sadu + príkazov na vloženie rozdelenia na miesto rozličných interpunkčných znamienok.} + <LI> Slová môžu byť akcentované. Príčiny a riešenia sú uvedené + v Otázke <A HREF="sectQ.html#Q-accenthyphen">Akcentovaná slova se nedělí</A>. + <LI> Rozdelenie mohlo byť prehliadnuté. TeXovský algoritmus je dobrý, ale + nie je neomylný a v niektorých jazykoch prehliadne vhodné rozdelenia. + V takomto prípade musíte dať TeXu <EM>explicitné</EM> inštrukcie pre + rozdelenie. +</UL> +Príkaz csx{hyphenation} vám dovoľuje zadať explicitné inštrukcie. +Ak je slovo vôbec rozdelené (teda rozdeleniu nebráni nijaké z uvedených +obmedzení), príkaz anuluje hocičo, čo prikazujú rozdeľovacie vzory. Príkaz +akceptuje ako parametre jedno alebo viac rozdeľovaných slov — +<CODE>\hyphenation{ana-lysis pot-able}</CODE> (anglické príklady); všimnite si, že +(v tomto prípade pre slovo „analysis“) môžete anulovať TeXom navrhované +rozdelenie (ana-lysis je britské etimologické rozdelenie; niekomu sa zdá +americké rozdelenie „nešťastné“...).<BR> +<CODE>hyphenat.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/hyphenat">hyphenat</A> + +<P> +<P><A NAME="Q-hyphoff"><HR><H3>Zastavenie všetkých rozdeľovaní</H3></A> + +<P> +Táto akcia sa môže zdať nezvyčajnou (jednou z veľmi propagovaných vlastností +TeXu je kvalita rozdeľovania), ale niekedy je potrebná. Skutočným problémom +je, že kvalita TeXovského výstupu je štandardne do veľkej miery závislá +na prítomnosti rozdeľovania. + +<P> +TeX (zmätočne) ponúka štyri mechanizmy na potlačenie rozdeľovania (pred +rozšíreniami TeXu verzie 3 to boli iba dve). + +<P> +Prvou možnosťou je nastavenie pokút za rozdeľovanie csx{hyphenpenalty} +a csx{exhyphenpenalty} na „nekonečnú“ hodnotu (t.j. napríklad 10000). +Toto znamená, že každý riadok, ktorý by obsahoval rozdelenie, bude pokutovaný +dostatočne na to, aby k nemu nedošlo. Nevýhodou metódy je nutnosť +opätovného vyhodnocovania odstavcov, a teda pomalosť celej metódy. + +<P> +Ďalším spôsobom je výber jazyka, pre ktorý neexistujú rozdeľovacie vzory. +Niektoré distribúcie vytvárajú jazyk <CODE>nohyphenation</CODE> a balík <CODE>hyphenat</CODE> +túto techniku používa pre svoj príkaz csx{nohyphens}, ktorý svoj parameter +vysádza bez rozdelenia. + +<P> +Tretia alternatíva je nastavenie csx{left-} a/alebo csx{righthyphenmin} +na dostatočne veľkú hodnotu, aby sa zabránilo akémukoľvek rozdeľovaniu, +kedže hodnota minima bude väčšia ako dĺžka najdlhšieho slova, ktoré je TeX +ochotný rozdeliť (vhodnou hodnotou je 62). + +<P> +Poslednou možnosťou z násho zozname je potlačenie rozdeľovania celého textu +použitím aktuálneho fontu príkazom +<PRE> + \hyphenchar\font=-1 +</PRE> +Toto nie je práve praktický spôsob potlačenia rozdeľovania, kedže príkaz musí +byť použitý pre každý font v dokumente, ale práve týmto spôsobom zabraňuje +rozdeľovaniu LaTeX samotný v <CODE>tt</CODE> a iných fontoch pevnej šírky. + +<P> +Výber konkrétnej techniky záleží na tom, čo chcete robiť. Ak text, ktorého +rozdelenie chcete potlačiť, nie je celý odstavec, vašou jedinou voľbou je +použitie nerozdeľovaného jazyka: hodnota jazyku je zachovaná s textom (rovnakým +spôsobom ako aktuálny font); na počítanie rozdeľovania sú použité hodnoty +rozdeľovacích limitov a pokút aktívne na konci odstavca. + +<P> +Na druhú stranu, pri písaní viacjazyčného dokumentu použitím balíku +<CODE>babel</CODE> nerozdeľovaný jazyk alebo rozdeľovacie minimum na potlačenie +rozdeľovania použiť <EM>nemôžete</EM>. Všetky tieto hodnoty sa menia pri prepnutí +jazyka balíkom <CODE>babel</CODE>. V tomto prípade použite rozdeľovacie pokuty. + +<P> +Ak jednoducho vypnete rozdeľovanie pre dlhší úsek textu, výstup bude mať +nerovný okraj (s mnohými pretekajúcimi riadkami) a každý beh TeXu vás bude +bombardovať hláškami o pretečení (overfull) a podtečení (underfull) riadkov. +Aby ste sa tomuto vyhli, máte dve možnosti. Môžete použiť csx{sloppy} (alebo +jeho verziu v podobe prostredia <CODE>sloppypar</CODE>) a nechať TeX roztiahnuť riadky +s podtečením a zalomiť riadky s pretečením pred tým, než nastane (a samozrejme +roztiahnuť zbytok). Alternatívne môžete text vysádzať text zarovnaný vpravo +a aspoň sa tak zbaviť riadkov s pretečením.<BR> +<CODE>hyphenat.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/hyphenat">hyphenat</A> + +<P> +<P><A NAME="Q-bold-extras"><HR><H3>Ako spraviť bold-tt alebo bold-sc</H3></A> + +<P> +LaTeX štandardne neposkytuje žiadne prostriedky spracovania tučných +„teletype“ alebo „small-caps“ fontov. Existuje pre to praktický dôvod +(Knuth nikdy takéto fonty nenavrhol), ale existujú aj typografické dôvody +(polotučný font <CODE>cmtt</CODE> je v skutočnosti celkom tučný (v porovnaní s inými +fontami pevnej šírky) a tučné fonty „small-caps“ nie sú u mnohých +profesionálnych typografov populárne). + +<P> +Na CTANe existuje „extra“ sada súborov METAFONTu, ktoré poskytujú tučné +verzie <CODE>cmtt</CODE> a <CODE>cmcsc</CODE> („small-caps“ font). V moderných distribúciach +TeXu môžete začať tieto fonty využívať po umiestnení na vhodné miesto +do <EM>texmf</EM> stromu (viď Otázku <A HREF="sectD.html#Q-TDSwhat">Co je to TDS?</A>). Po opätovnom +vybudovaní potrebných indexov súborov TeX (a priatelia) automaticky vybudujú +všetky potrebné súbory fontov pri prvom odkaze na ne. Balík +<CODE>bold-extra</CODE> vybuduje potrebne dátové štruktúry fontov, aby ste fonty +mohli využívať z LaTeXu. + +<P> +Ak potrebujete použiť Type 1 fonty, nemôžete postupovať s fontami Knuthovho +štýlu, kedže neexistujú Type 1 verzie <CODE>mf-extra</CODE> sady. Komerčné fonty +pevnej šírky (vrátane štandardného balíku <CODE>Courier</CODE>) takmer vždy +obsahujú tučnú verziu, takže tu problém nie je. PSNFSS (viď +Otázku <A HREF="sectL.html#Q-usepsfont">Použití PostScriptových fontů v TeXu</A>) typicky poskytuje „nepravé“ „small-caps“ +fonty a nemá výčitky svedomia ani z ich poskytovania v tučnej forme.<BR> +<CODE>bold-extra.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/misc/bold-extra.sty">bold-extra</A><BR> +<CODE>bold tt a small caps fonty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/fonts/cm/mf-extra/bold">bold</A> + +<P> +<P><A NAME="Q-boldgreek"><HR><H3>Sazba tučných řeckých písmen</H3></A> + +<P> +Jednoduchým řešením tohoto problému je příkaz <CODE>\mathbf</CODE>, který však +nefunguje ve všech případech, protože malá řecká písmena chovají jinak +než velká (z důvodu Knuthova esoterického kódování fontů). Nicméně +za normálních okolností můžeme <CODE>\mathbf</CODE> použít pro řecké verzálky, ale +AMSLaTeXový balík <CODE>amsmath.sty</CODE> nepovoluje toto přepínání fontů +a pak tedy musíte použít jednu z níže popsaných technik. V některých +případech funguje plainTeXové řešení <CODE>{\boldmath$\theta$}</CODE>, ale +<CODE>\boldmath</CODE> nemůže být použit v matematickém módu, pak to musíte +vyřešit následovně:<BR> +<CODE>$...\mbox{\boldmath$\theta$}...$</CODE>, <BR> +to působí problémy v superskriptech a podobně. Tyto problémy mohou být +přičítány použití balíku <CODE>\boldmath</CODE>. +<UL> + <LI> balík <EM>bm</EM>, který je součástí distribuce LaTeXových +nástrojů (<A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/required/tools">2etools</A>) definuje příkaz <CODE>\bm</CODE>, +který lze použít kdekoliv v matematickém režimu. + <LI> balík <EM>amsbsy</EM>, který je součástí AMSLaTeXu +(<A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/required/amslatex">amslatex</A>) definuje příkaz +<CODE>\boldsymbol</CODE>, který pokrývá téměř všechny základní problémy. Všechna +tato řešení můžete použít na všechny matematické symboly, nejen na řecká +písmena. +</UL> + +<P> +<P><A NAME="Q-underscore"><HR><H3>Ako používať znak podčiarknutia</H3></A> + +<P> +Znak podčiarknutia <CODE>_</CODE> sa v TeXu obvykle používa na označenie dolných indexov +v matematickom móde. Ak napíšete znak <CODE>_</CODE> uprostred bežného textu, TeX sa +bude sťažovať. Ak píšete dokument obsahujúci veľké množstvo týchto znakov, +predstava písania csx{_} (alebo ešte horšie csx{textunderscore}) pre každý +z nich vystraší väčšinu bežných ľudí. + +<P> +Stredne pokročilý programátor makier môže vygenerovať rýchly „hack“ +na povolenie sadzby <CODE>_</CODE> vo význame znaku podčiarknutia. Kód je však trochu +komplikovaný a hlavne existuje množstvo bodov, na ktorých sa dá ľahko pokaziť. +Existuje však balík <CODE>underscore</CODE>, ktorý poskytuje obecné riešenie +tejto požiadavky. + +<P> +Existuje tu však jeden problém. Textové fonty OT1 obsahujú znak <CODE>_</CODE> +iba vo typewriter verzii kódovania (používanej fontami pevnej šírky ako +<CODE>cmtt</CODE>). Takže sa musíte uistiť, že sa znaky podčiarknutia objavujú iba +v texte sádzanom fontom písacieho stroja, alebo musíte používať bohatšie +kódovanie, ako napríklad T1, ktoré obsahuje daný znak pre každý font. + +<P> +Ak je požiadavkou iba občasné použitie znaku <CODE>_</CODE>, je možné použiť nasledujúcu +konštrukciu: +<PRE> +\def\us{\char`\_} +... +\texttt{create\us process} +</PRE> +Táto konštrukcia nie je ani najmenej robustná (v bežnom hovorovom význame), +ale je robustná pri expanzii (t.j. v LaTeXovskom význame slova), takže ju +používajte opatrne (nemusíte sa však starať o nadpisy sekcii a podobné veci).<BR> +<CODE>underscore.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/misc/underscore.sty">underscore</A> + +<P> +<P><A NAME="Q-atsign"><HR><H3>Ako vysádzať znak `@'?</H3></A> + +<P> +Pre dlhým časom robili niektoré balíky znak `@' aktívnym, takže pre jeho sadzbu +boli potrebné špeciálne opatrenia. Aj keď sú tieto balíky ešte stále dostupné, +používa ich málo ľudí a tí, čo ich používajú, majú prístup k veľmi dobrej +dokumentácii. + +<P> +Bežným ľuďom (ako sú napríklad autori originálneho anglického FAQ) stačí +jednoducho napísať znak `@'. + +<P> +<P><A NAME="Q-compjobnam"><HR><H3>Porovnávanie „job name“</H3></A> + +<P> +Token csx{jobname} produkuje postupnosť znakov s kódom kategórie 12 +(„iné“) bez ohľadu na to, čo danými znakmi v skutočnosti je. Keďže je +nevyhnutne potrebné porovnať makro s obsahom iného makra (použitím +csx{ifx}), je potrebné vytvoriť makro, ktorého expanzia vyzerá rovnako ako +expanzia csx{jobname}. Toto môžeme spraviť pomocou csx{meaning}, ak +„odrežeme“ prefix príkazu csx{show}. + +<P> +Celý príkaz vyzerá nasledovne: +<P> +<PRE> +\def\StripPrefix#1>{} +\def\jobis#1{FF\fi + \def\predicate{#1}% + \edef\predicate{\expandafter\StripPrefix + \meaning\predicate}% + \edef\job{\jobname}% + \ifx\job\predicate +} +</PRE> +</P> +A je použitý nasledovne: +<P> +<PRE> +\if\jobis{mainfile}% + \message{YES}% +\else + \message{NO}% +\fi +</PRE> +</P> +Zapamätajte si, že príkaz csx{StripPrefix} nemusí byť definovaný, ak používate +LaTeX — tu už interný príkaz (viď Otázku <A HREF="sectQ.html#Q-atsigns"><CODE>\@</CODE> a <CODE>@</CODE> ve jménech maker</A>) +csx{strip@prefix}, ktorý môžete použiť, existuje. + +<P> +<P><A NAME="Q-euro"><HR><H3>Sadzba znaku Euro</H3></A> + +<P> +Európska mena „Euro“ je reprezentovaná symbolom s mierne pochybným dizajnom, +ale je to dôležitá mena a používatelia TeXu/LaTeXu ju potrebujú sádzať. + +<P> +Európska komisia najskôr požadovala, aby symbol Euro bol vždy vysádzaný +grotesk fontom, táto požiadavka však bola našťastie zrušená a teda je +možné najlepšie využiť sadzobné úsilie, aby symbol vyzeral aspoň trochu +solídne (typograficky). + +<P> +Fonty v kódovaní TS1 poskytované ako súčasť distribúcie fontov EC +obsahujú glyfy pre Euro. Fonty sa nazývajú Text Companion (TC) fonty +a poskytujú rovnaký rozsah kresieb ako EC fonty samotné. Balík +<CODE>textcomp</CODE> poskytuje na prístup k symbolu príkaz csx{texteuro}, ktorý +vyberie symbol zodpovedajúci okolitému textu. Dizajn symbolu v TC +fontoch nie je obecne v láske... Napriek tomu, ak produkujete dokument +pomocou Knuthovych Computer Modern fontov, používajte TC fontovú +verziu symbolu. + +<P> +Vstupné kódovanie <CODE>latin9</CODE> definované balíkom <CODE>inputenc</CODE> +má znak Euro definovaný (pozícia 164, v iných ISO Latin znakových sadách +obsadená „symbolom meny“). Kódovanie používa pre symbol príkaz +csx{texteuro}. V súčasnosti je príkaz dostupný iba z balíku +<CODE>textcomp</CODE>. V kódovej stránke MicroSoftu je pozícia tiež, ale +štandardizácia takýchto vecí prebieha dosť odlišným spôsobom a projektu +LaTeX neboli poskytnuté detaily o zmene. + +<P> +Obrysové fonty obsahujúce iba symboly Eura sú (zadarmo) dostupné +z <A HREF="ftp://ftp.adobe.com/pub/adobe/type/win/all/eurofont.exe"><CODE>ftp://ftp.adobe.com/pub/adobe/type/win/all/eurofont.exe</CODE></A> +(súbor je zbalený ako samorozbalovací spustiteľný súbor pre +<EM>Windows</EM>, ale na iných operačných systémoch môže byť dekódovaný ako +archív formátu <CODE>.zip</CODE>). Sada <CODE>euro</CODE> obsahuje metriky, +<EM>dvips</EM> „map“ súbory a makrá (pre Plain TeX a LaTeX) pre +použitie týchto fontov v dokumentoch. Používatelia LaTeXu nájdu v sade dva +balíky: <CODE>eurosans</CODE> poskytuje iba grotesk verziu (pre dodržanie +zastaraného nariadenia o výhradne grotesk symboloch; balík poskytuje +príkaz csx{euro}), zatiaľ čo <CODE>europs</CODE> prispôsobí Euro symbol okolitému +textu (poskytujúc príkaz csx{EUR}). Pre použitie niektorého z balíkov +s <CODE>latin9</CODE> kódovaním potrebujete definovať csx{texteuro} ako alias +pre Euro príkaz, ktorý definuje balík. + +<P> +Adobe fonty sú pre prostredie bez Computer Modern fontov najlepšia voľba. +Zjavne sú navhrnuté tak, aby sedeli s Adobe Times, Helvetica a Courier, ale +sú zrejme použiteľné s širším rozsahom moderných fontov. + +<P> +Balík <CODE>eurofont</CODE> poskytuje kompaktnú analýzu problému symbolu pre Euro +vo svojej dokumentácii a poskytuje makrá na konfiguráciu použitého zdroja +glyfov. Balík je však príliš veľký na každodenné použitie. + +<P> +Sada <CODE>euro-ce</CODE> je celkom potešujúcim METAFONTovským návrhom poskytujúcim +Euro symboly vo viacerých tvaroch. Súbor distribúcie <CODE>euro-ce.tex</CODE> +poskytuje rady, pomocou ktorých môže fonty využiť používateľ Plain TeXu. + +<P> +Symboly Euro sa dajú nájsť na množstve iných miest, ktoré tu pre úplnosť +spomenieme. + +<P> +Fonty <CODE>marvosym</CODE> obsahujú medzi množstvom dobrých vecí aj symbol Eura. +Font na CTANe nie je Adobe <EM>ATM</EM> kompatibilný, ale +kompatibilná verzia je zdarma k dispozícii +na <A HREF="http://www.YandY.com/download/marvosym.zip"><CODE>http://www.YandY.com/download/marvosym.zip</CODE></A>. Font na +CTANe je dodávaný so sadou makier na sadzbu všetkých symbolov, ktoré +obsahuje. + +<P> +Iné sady založené na METAFONTe obsahujúce Euro symboly môžete nájsť v balíku +<CODE>china2e</CODE> (ktorého primárnym cieľom sú čínske dátumy a podobné veci) +a fontoch <CODE>eurosym</CODE>.<BR> +<CODE>china2e bundle</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/china2e">china2e</A><BR> +<CODE>EC fonts</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/fonts/ec">ec</A><BR> +<CODE>euro fonts</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/fonts/euro">euro-fonts</A><BR> +<CODE>euro-ce fonts</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/fonts/euro-ce">euro-ce</A><BR> +<CODE>eurofont.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/eurofont">eurofont</A><BR> +<CODE>eurosym fonts</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/fonts/eurosym">eurosym</A><BR> +<CODE>marvosym fonts</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/fonts/psfonts/marvosym">marvosym-fonts</A><BR> +<CODE>textcomp.sty</CODE>: súčasť distribúcie LaTeXu. + +<P> +<P><A NAME="Q-tradesyms"><HR><H3>Ako získať znaky copyright, trademark, ...</H3></A> + +<P> +Obsiahly zoznam symbolov (viď Otázku <A HREF="sectC.html#Q-symbols">Kde nájdem symbol pre...</A>) obsahuje príkazy +pre symboly csx{textcopyright}, csx{textregistered} a csx{texttrademark}, +ktoré sú dostupné vo fontoch v TS1 kódovaní a ich použitie sa umožňuje +balíkom <CODE>textcomp</CODE>. + +<P> +V skutočnosti sú v štandardnom LaTeXu povolené všetky tri príkazy, ale +glyfy, ktoré dostanete, nie sú veľmi pekné. Konkrétne csx{textregistered} +sa správa zvláštne pri vložení do tučného textu (napríklad nadpis sekcie), +pretože sa skladá z „small-caps“ písmena, ktoré sa typicky pri požiadavke +na vysádzanie v tučnom fonte degraduje na písmeno normálneho tvaru. +Z glyfu sa teda stane `r' v krúžku, ale správnym symbolom malo byť +`R' v krúžku. + +<P> +Tomuto efektu sa použitím <CODE>textcomp</CODE> samozrejme vyhnete. + +<P> +Ďalší problém nastáva, keď chcete csx{textregistered} v pozícii horného +indexu (aby symbol vyzeral podobne ako csx{texttrademark}). Použitím horného +indexu matematického módu za týmto účelom vyvolá množstvo nezmyselných chýb, +takže <EM>musíte</EM> použiť +<P> +<PRE> +\textsuperscript{\textregistered} +</PRE> +</P> + +<P> +<P><A NAME="Q-mathop"><HR><H3>Definice nových označení matematických funkcí v LaTeXu</H3></A> + +<P> +Použije se příkaz <CODE>\mathop</CODE> podobně jako v tomto příkladě: +<PRE> + \newcommand{\diag}{\mathop{\rm diag}} +</PRE> + +<P> +Spodní a horní indexy funkce <CODE>\diag</CODE> +budou umístěny obdobně jako u <CODE>\lim</CODE> (limita). +K tomu, aby indexy byly vždy umístěny vpravo od označení funkce, +se použije tato definice: +<PRE> + \newcommand{\diag}{\mathop{\mathrm{diag}}\nolimits} +</PRE> + +<P> +AMSLaTeX (ve svém balíku <CODE>amsopn</CODE>) poskytuje příkaz +csx{DeclareMathOperator}, který udělá stejnou práci jako první definice nahoře. +Na vytvoření našeho původního příkazu csx{diag} napíšeme: +<PRE> + \DeclareMathOperator{\diag}{diag} +</PRE> +csx{DeclareMathOperator*} deklaruje operátor tak, aby byly spodní a horní indexy +umístněny v pozici csx{limits} (viz +Otázku <A HREF="sectO.html#Q-limits">Pozície horných a dolných indexov operátorov</A>). + +<P> + +<P> +<P><A NAME="Q-braket"><HR><H3>Zátvorky a symboly premenlivej veľkosti</H3></A> + +<P> +Jedným z mála do očí bijúcich nedostatkov v schopnostiach TeXu sádzať +matematiku je nemožnosť sadzby oddeľovačov vo vnútri matematických výrazov. +TeX poskytuje primitíva nazvané csx{left} a csx{right}, ktoré môžu byť +použité na modifikáciu zátvoriek (akéhokoľvek druhu) okolo matematických +výrazov, ako napríklad: +<CODE>\left( <výraz> \right)</CODE> — veľkosť zátvoriek sa prispôsobí vertikálnemu +rozmeru výrazu. + +<P> +V mnohých prípadoch pri matematike budete potrebovať príkaz csx{middle} +na použitie vo výrazoch ako: +<PRE> + \left\{ x\in \mathbb{N} \middle| x \mbox{ párne} \right\} +</PRE> +na špecifikáciu množiny párnych prirodzených čísel +Systém e-TeX (viď <A HREF="sectT.html#Q-NTS">Projekt <I>NTS</I></A>) definuje presne takýto príkaz, ale +používatelia Knuthovho pôvodného systému potrebujú pomoc. Balík Donalda +Arseneaua <CODE>braket</CODE> poskytuje príkazy pre špecifikáciu množín (ako je +uvedené vyššie) a pre Diracovove zátvorky (a symboly „bra“ a „ket“). +Balík používa príkaz zabudovaný do e-TeXu (ak zistí, že beží pod e-TeXom).<BR> +<CODE>braket.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/misc/braket.sty">braket</A> + +<P> +<P><A NAME="Q-mathsize"><HR><H3>Prispôsobenie veľkostí metematických fontov</H3></A> + +<P> +V <CODE>plain</CODE> TeXu musíte pri zavádzaní novej veľkosti fontu deklarovať, aké +veľkosti fontov majú byť použité v matematike. Dá sa to spraviť deklaráciou +csx{textfont}, csx{scriptfont} a csx{scriptscriptfont} pre matematické +rodiny fontov, ktoré používate. Všetky tieto veci sú popísané v kapitole 17 +TeXbooku (Otázka <A HREF="sectC.html#Q-books">Knihy o TeXu a příbuzná literatura</A>) a iných knihách a tutoriáloch +(Otázka <A HREF="sectC.html#Q-LaTeXTut">Tutoriály k TeXu nebo LaTeXu</A>), ktoré sa <CODE>plain</CODE> TeXom zaoberajú dostatočne +detailne. + +<P> +V LaTeXu je samozrejme všetko automatizované: pre každú veľkosť (textového) +fontu existuje schéma určujúca, aké veľkosti matematických fontov sa majú použiť. +„Schéma“ najskôr skontroluje sadu „známych“ veľkostí textu, z ktorých pre +každú sú dopredu deklarované veľkosti matematiky. Ak veľkosť textu nie je +„známa“, sú veľkosti script- a scriptscriptfont vypočítané ako fixné +násobky veľkostí textových fontov. (Použité koeficienty sú +csx{defaultscriptratio}ensuremath{=}0.7, +a csx{defaultscriptscriptratio}ensuremath{=}0.5.) + +<P> +Vzorec pevného násobku môže produkovať nepríjemné výsledky (hlavne ak používate +fonty, o ktorých si LaTeX myslí, že sú dostupné iba vo fixnej sade veľkostí). +Môžete taktiež chcieť úplne zmeniť myšlienky LaTeXu, napríklad sadzbou +matematiky citeľne menšej alebo väčšej, než je okolný text. Za týmto +účelom môže byť použitý LaTeXovský príkaz:<BR> +csx{DeclareMathSizes{<tfs>}{<ts>}{<ss>}{<sss>}}<BR> +(tento príkaz používa aj +LaTeX na definíciu vlastnej sady veľkostí). Toto vytvorí (alebo +znovuvytvorí) veľkosti matematických fontov pre veľkosť textového fontu +<CODE><tfs></CODE> (ako csx{textsize} sa použije <CODE><ts></CODE>, +ako csx{scriptsize} <CODE><ss></CODE> a ako csx{scriptscriptsize} bude použité +<CODE><sss></CODE>). + +<P> +csx{DeclareMathSizes} môže byť použitý iba v preambule dokumentu: dostupné je +iba jedno priradenie pre každú veľkosť textového fontu na celý dokument. + +<P> +<P><A NAME="Q-mathlips"><HR><H3>Tri bodky</H3></A> + +<P> +Tri bodky sú bežne požadované a LaTeX ich natívne poskytuje v celkom +slušnom rozsahu (csx{dots}, csx{cdots}, csx{vdots} a csx{ddots}). Použitím +balíku <CODE>graphics</CODE> môžete zmeniť sklon príkazu csx{ddots}: +<PRE> + $ ... \reflectbox{$\ddots$} ... $ +</PRE> +Hoci postup funguje, nie je odpoúčaným spôsobom dosiahnutia žiadaného výsledku +(viď nižšie). LaTeXovský rozsah naviac nepostačuje požiadavkám každého. +Tri balíky poskytujú rozšírenie. + +<P> +Sada AMSLaTeX poskytuje rozsah „sémanticky pomenovaných“ elíps na použitie +v rôznych situáciach: csx{dotsb} pre použitie medzi dvojicami binárnych +operátorov, csx{dotsc} medzi dvojicami čiarok a tak ďalej. + +<P> +Balík <CODE>yhmath</CODE> definuje príkaz csx{adots}, ktorý je podobný príkazu +csx{ddots} (iba so sklonom nadol namiesto sklonu nahor). <CODE>yhmath</CODE> +obsahuje celkom zaujímavý font, ktorý rozširuje štandardný <CODE>cmex</CODE>, +detaily nájdete v dokumentácii. Nevýhodou tohto nastavenia je (hoci csx{adots} +je iba makro), že sa balík pokúša nahrať vlastný font a v prípade, že font +nemáte nainštalovaný, zapríčíňuje varovnú hlášku substitúcie „missing font“ +(chýbajúci font). + +<P> +Balík <CODE>mathdots</CODE> (okrem opravy chovania TeXovských/LaTeXovských +csx{ddots} a csx{vdots} pri zmene veľkosti fontu) poskytuje +„inverzne diagonálne“ elipsy csx{iddots} (fungujú podobne ako csx{adots} +balíku <CODE>yhmath</CODE>, len lepšie). + +<P> +Dokumentácia <CODE>yhmath</CODE> je v distribúcii spracovaná (nemusíte teda balík +inštalovať iba pre čítanie dokumentácie). Documentácia <CODE>mathdots</CODE> je +na konci samotného súboru balíku.<BR> +<CODE>amslatex</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/required/amslatex">amslatex</A><BR> +<CODE>graphics.sty</CODE>: súčasť sady <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/required/graphics">graphics</A><BR> +<CODE>mathdots.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/generic/mathdots.sty">mathdots</A><BR> +fonty <CODE>yhmath</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/fonts/yhmath">yhmath-fonts</A><BR> +makrá <CODE>yhmath</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/yhmath">yhmath-macros</A> + +<P> +<P><A NAME="Q-limits"><HR><H3>Pozície horných a dolných indexov operátorov</H3></A> + +<P> +Najbežnejším ručne písaným štýlom pre výrazy je umiestnenie limitných výrazov +operátorov ako csx{sum} a csx{int} fyzicky nad a pod operátor. +V TeXu/LaTeXu píšeme tieto výrazy pomocou horných a dolných indexov +aplikovaných na operátor, ale nie vždy sa vo výstupe TeXu objavia ako +v „ručne písanej“ podobe. + +<P> +Dôvod je ten, že keď sa výraz objaví v normálnom texte (je teda v štýle +csx{textstyle}), umiestnenie hraníc operátoru by mohlo viesť k nerovnému +riadkovaniu (a teda k ťažko čitateľnému textu). Je preto obvyklé +(v csx{textstyle}) umiestňovať tieto hranice ako horné a dolné indexy +premenných. + +<P> +Toto však nie je obecne dostačujúce, takže je poskytované primitívum +csx{limits}: +<PRE> + $\sum\limits_{n=1}^{m} ...$ +</PRE> +ktoré umiestni hranice priamo nad a pod symbol. + +<P> +Naopak, môžete chcieť zmeniť usporiadanie hraníc v csx{displaystyle}. +Za týmto účelom existuje príslušný príkaz csx{nolimits}: +<PRE> + \[\sum\nolimits_{n=1}^{m} ...\] +</PRE> +ktorý umiestni hranice ako v csx{textstyle}. + +<P> +(Zapamätajte si, že makro csx{int} má obyvkle csx{nolimits} zabudované +do definície. V TeXbooku existuje príklad, ktorý ukazuje, ako zvláštne +vyzerá csx{int}csx{limits} vysádzané.) + +<P> +<P><A NAME="Q-mathstext"><HR><H3>Text vo vnútri matematiky</H3></A> + +<P> +Keď v TeXu/LaTeXu píšeme matematiku, majú písmená, z ktorých tvoríme bežný +text, špeciálny význam: všetky sa stanú jednopísmenovými názvami premenných. +Písmená sú sádzané kurzívou, ale nie rovnakou kurzívou ako v bežnom texte: +postupnosť písmen v matematike (napríklad „here“) vyzerá zvlášte +„zvlnená“ oproti tomu istému slovu v texte vysádzanom kurzívou. Rozdiel je, +že text v kurzíve je podrezaný (kerned), aby sa písmená k sebe dobre zmestili, +ziatiaľ čo matamtika je sádzaná, aby vyzerala, ako keď navzájom násobíte +<EM>h</EM>, <EM>e</EM>, <EM>r</EM> a písmeno <EM>e</EM>. Ďalšou zvláštnosťou +matematiky v TeXu je ingorovanie medzier: prinajlepšom môžeme v tomto +zvláštnom fonte písať slová. + +<P> +Ak chceme mať dobre vyzerajúci text medzi matematikou, musíme zaviesť určité +opatrenia. Ak používate LaTeX, nasledujúca rada by vám mala pomôcť. + +<P> +Najjednoduchšie je použiť csx{mbox} alebo csx{textrm}: +<P> +<PRE> +$e = mc^2 \mbox{here we go again}$ +</PRE> +</P> +Problém je, že veľkosť textu zostane totožná s okolitým textom, takže +<P> +<PRE> +$z = a_{\mbox{other end}}$ +</PRE> +</P> +vyzerá veľmi zle. + +<P> +Ďalší jednoduchý postup využíva csx{textrm} a vyzerá sľubnejšie: +<P> +<PRE> +$z = a_{\textrm{other end}}$ +</PRE> +</P> +je určite v poriadku. Okolitý text však nemusí byť v našej antikve. Ak vám +záleží na rovnakom texte, musíte si vybrať medzi csx{textrm}, csx{textsf} +a tak ďalej. + +<P> +(Matematická inštancia vašej antikvy (csx{mathrm}) má správnu veľkosť, ale +keďže je určená na použitie v matematike, medzery sú ignorované — používajte +csx{mathrm} iba pre názvy premenných v kolmej rímskej abecede.) + +<P> +Tieto problémy môžete opraviť výbermi veľkosti písma v texte, napr.: +<P> +<PRE> +$z = a_{\mbox{\scriptsize other end}}$ +</PRE> +</P> +Príklad bude fungovať, ak je okolitý text štandardnej dokumentovej veľkosti, +inak dostanete nesprávnu veľkosť. + +<P> +Tieto skratky sú (takmer) v poriadku pre „občasného“ matematika, ale +skutoční matematici žiadajú postup, ktorý odbremeňuje sádzača od myšlienok +vyžadovaných pri predchádzajúcich postupoch. AMSLaTeX, ako obvykle, +poskytuje všetko potrebné — príkaz csx{text}. Príkaz v skutočnosti balík +<CODE>amstext</CODE>, ale ten je nahratý „globálnym“ balíkom <CODE>amsmath</CODE>, +takže kdokoľvek správne používa AMSLaTeX, má príkaz poruke, takže aj vtipný +matematici môžu napísať: +<P> +<PRE> +\usepackage{amsmath} +... +$z = a_{\text{other end}}$ +</PRE> +</P> +a text bude rovnakej veľkosti a v rovnakom fonte ako text okolitý. + +<P> +AMSLaTeX tiež prostredníctvom príkazu csx{intertext} poskytuje opatrenia +pre komentáre vložené do niektorej z jeho viacriadkových zobrazovacích +štruktúr. Napríklad: +<P> +<PRE> +\begin{align} + A_1&=N_0(\lambda;\Omega')- + \phi(\lambda;\Omega'),\\ + A_2&=\phi(\lambda;\Omega')- + \phi(\lambda;\Omega),\\ + \intertext{a konečne} A_3&=\mathcal{N}(\lambda;\omega). +\end{align} +</PRE> +</P> +umiestni text „a konečne“ na samostatný riadok pred posledný riadok +zobrazenia. Príkaz môže byť použitý iba bezprostredne po príkaze <CODE>\\</CODE>. + +<P> +Vyčerpávajúcu dokumentáciu AMSLaTeXu nájdete v súbore <CODE>amsldoc</CODE> +(v distribúcii), ktorý je dostupný aj na webe: +URL{ftp://ftp.ams.org/pub/tex/doc/amsmath/amsldoc.pdf}<BR> +<CODE>amsldoc.tex</CODE>,<BR> +<CODE>amsmath.sty</CODE> a<BR> +<CODE>amstext.sty</CODE> sú distribuované ako súčasť AMSLaTeXu<BR> +<CODE>\AMSLaTeX{}</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/required/amslatex">amslatex</A> + +<P> +<P><A NAME="Q-reuseq"><HR><H3>Opätovné použitie rovnice</H3></A> + +<P> +Pri opakovaní existujúcej rovnice nechcete iba rovnakú matematiku, chcete aj +opätovne použiť pôvodné návestie. +Balík <CODE>amsmath</CODE> nám prichádza na pomoc: +<P> +<PRE> +\usepackage{amsmath} +... +\begin{equation} + a=b + \label{eq1} +\end{equation} +... +Nezabudnite, že +\begin{equation} + a=b + \tag{\ref{eq1}} +\end{equation} +</PRE> +</P> +Druhá inštancia ensuremath{a=b} tu bude vysádzaná s kópiou návestia prvej +inštancie vytvorenou príkazom csx{tag}. + +<P> +Vyčerpávajúcu dokumentáciu AMSLaTeXu nájdete v súbore <CODE>amsldoc</CODE> +(v distribúcii), ktorý je dostupný aj na webe: +URL{ftp://ftp.ams.org/pub/tex/doc/amsmath/amsldoc.pdf}<BR> +<CODE>amsldoc.tex</CODE> a<BR> +<CODE>amsmath.sty</CODE> sú distribuované ako súčasť AMSLaTeXu + (<A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/required/amslatex">amslatex</A>) + +<P> + +<P> +<P><A NAME="Q-pictures"><HR><H3>Obrázky v TeXovém dokumentu</H3></A> + +<P> +Součástí TeXových dokumentů mohou být obrázky. Protože pro obrázky +existuje mnoho formátů, existuje i více způsobů, jak zařídit, aby se nám +na daném místě dokumentu obrázek objevil. Obrázek se však nevkládá +„přímo do zdrojového textu“. Do zdrojového textu se umístí volání +makra, které vytvoří místo pro obrázek. Skutečný import obrazových dat +provede posléze TeXový ovladač. + +<P> +Obvykle používaný formát obrázků je <CODE>eps</CODE> (zapouzdřený PostScript). +Pro vložení takového obrázku lze použít balík <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex209/contrib/epsfig">epsfig</A>. +Další informace o vkládání postscriptových obrázků a odkazy na starší +balíky viz <A HREF="sectL.html#Q-postscriptpics">Vkládání PostScriptových obrázků v LaTeXu</A>. + +<P> +Vkládání bitmapových obrázků ve formátu <CODE>pcx</CODE> podporují ovladače +v emTeXu (viz <A HREF="sectD.html#Q-specials">Příkazy typu <CODE>\special</CODE></A>). + +<P> + +<P> +<P><A NAME="Q-picinp"><HR><H3>Obtékání obrázků</H3></A> + +<P> +Někdy je třeba umístit obrázek dovnitř odstavce, na jednu stranu +textového zrcadla – takovým obrázkům říkáme obtékané. +Balík <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex209/contrib/picinpar">picinpar</A> definuje prostředí <CODE>window</CODE>, kterým lze obrázek +umístit na levou nebo pravou stranu odstavce (nebo dokonce doprostřed). + +<P> +Další podobné balíky můžete v případě zájmu najít na CTANu +(<A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/wrapfig">wrapfig</A> nebo <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex209/contrib/window">window</A>). + +<P> + +<P> +<P><A NAME="Q-logos"><HR><H3>Sazba názvů programů používaných spolu s TeXem</H3></A> + +<P> +Donald Knuth definoval logo TeXu jako konkrétní ukázku toho, +co TeX umí. +Žel, mnozí si však myslí, že tím přivodil záplavu různých log, +jako například AMSTeX, PiCTeX, BibTeX atd. vytvořených pomocí +velkého množství různých fontů, velikostí i základních linek — jistě +vám to znepříjemní čtení. +Lamport vymyslel logo LaTeX, což pak přirozeně vedlo ke vzniku +nynějšího loga LaTeX 2e. + +<P> +Není však nutně třeba uvádět tato loga v jejich +komplikovaném tvaru všude tam, kde se příslušný název +vyskytne, avšak pro ty, kdo trvají na +jejich použití, existuje v souboru <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/info/biblio/texnames.sty">texnames</A> veliké množství +předdefinovaných log. Fonty loga METAFONTu +mohou být přidány k fontům, které LaTeX 2e již zná + (tak, že se pak může měnit jeho rozměr spolu s okolním textem) použitím +balíku <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/mflogo">mflogo</A>. Při použití Knuthova fontu pro MetaPost však můžou +nastat problémy (můžete dostat + něco jako „META O T“). +Nezoufejte, autor samotný používá jenom „MetaPost“. + +<P> +Pro ty, kdo nepotřebují mít v dokumentu vysázená ta „správná“ loga, + stačí použít + <CODE>AMS-\TeX{}</CODE> (AMS-TeX) namísto AMSTeX, +<CODE>Pic\TeX{}</CODE> (PicTeX) namísto PiCTeX, <CODE>Bib\TeX{}</CODE> (BibTeX) +namísto BibTeX atp. + +<P> +<P><A NAME="Q-1abstract2"><HR><H3>Jednosloupcový výtah v dvousloupcovém dokumentu</H3></A> + +<P> +Občas je třeba dvousloupcový článek opatřit jednosloupcovým výtahem. +Nejlepším způsobem je použít následující trik: +<PRE> + \documentclass[twocolumn]{article} + ... + \begin{document} + ... % \author, etc + \twocolumn[ + \begin{@twocolumnfalse} + \maketitle + \begin{abstract} + ... + \end{abstract} + \end{@twocolumnfalse} + ] +</PRE> + +<P> +Takto však nebude pracovat správně, použijete-li <CODE>\thanks</CODE> v seznamu +<CODE>\author</CODE>. Pokud potřebujete takto speciálně číslovaný seznam, +docílíte toho následovně: +<PRE> + \title{Demonstration} + \author{Me, You\thanks{}} + \twocolumn[ + ... to samé, co výše ... + ] + { + \renewcommand{\thefootnote}% + {\fnsymbol{footnote}} + \footnotetext[1]{Thanks for nothing} + } +</PRE> +atd. + +<P> +Alternativně můžete použít balík <EM>abstract</EM> (dostupný +z <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/abstract">abstract</A>), který (kromě jiných +usnadnění práce s abstrakty) poskytuje k použití příkaz <CODE>\saythanks</CODE> a prostředí +<CODE>onecolabstract</CODE>, které odstraní potřebu „švindlovat“ s <CODE>\thanks</CODE> +a poznámkami. Můžete to použít následovně: +<PRE> +\twocolumn[ + \maketitle + \begin{onecolabstract} + ... text + \end{onecolabstract} +] +\saythanks +</PRE> + +<P> +<P><A NAME="Q-zmenaslov"><HR><H3>Změna slov používaných LaTeXem</H3></A> + +<P> +LaTeX používá několik symbolických jmen, které vytvářejí automatický +text (nadpisy, tituly atd.). Např. část textu vysázená příkazem +<CODE>\tableofcontents</CODE> je vždy volána příkazem <CODE>\contentsname</CODE>. +Umožňuje však běžnému uživateli změnit jména používaná standardními +třídami, což je užitečné hlavně při tvorbě neanglických dokumentů. +Pokud třeba daný dokument píše český autor, chce, aby +byl obsah nazván opravdu „Obsah“ a ne „Table of Contents“, v tom +případě musí do preambule dokumentu vložit text<BR> +<CODE>\renewcommand{\contentsname}{obsah}</CODE> + +<P> +Nicméně pro neanglického uživatele je přirozené používat +<EM>babel</EM>, protože nabízí mnoho výhod a zpříjemňuje vytváření +dokumentů v jejich přirozeném jazyce. Zvláště pokud v <EM>babel</EM>u +vyberete +jiný jazyk, tak vám zajistí, že LaTeXová symbolická jména budou vhodně +překládána do vybraného jazyka podle vašeho pořadavku. + +<P> +Bohužel výběr jmen v <EM>babel</EM>u nevyhoví vždy požadavkům uživatele, +proto je +třeba mechanismus pro náhradu standardních jmen. Kdykoliv +<EM>babel</EM> +vybere jiný jazyk, pak jsou všechna standardní jména přeložena právě do +tohoto jazyka. <EM>Babel</EM> zvláště vybírá hlavní jazyk dokumentu, +když je +vykonán příkaz <CODE>\begin{document}</CODE>, který ihned zničí veškeré změny +standardních jmen, která byla provedena v preambuli dokumentu +používajícího <EM>babel</EM>. Proto <EM>babel</EM> definuje příkaz, +který uživateli +umožní změnit definice symbolických jmen na základní výrazy jeho +mateřštiny:<BR> +<CODE>\addto\caption<language></CODE>, kde <CODE><language></CODE> značí jazyk, +který <EM>babel</EM> bude používat jako primární. Např. +<PRE> +\addto\captionczech{% + \renewcommand{\contentsname}{Obsah}% +} +</PRE> + +<P> +<P><A NAME="Q-vypiskod"><HR><H3>Výpisy zdrojových kódů v LaTeXu</H3></A> + +<P> +Někteří neuroticky estetičtí programátoři považují „krásné“ zdrojové +kódy za něco k nezaplacení. Správně strukturované zdrojové kódy však +mají své místo při psaní disertačních prací studenty informatických i +jiných věd, od kterých se očekává, že v budoucnosti budou +programovat. Běžně se používá doslovné citování kódů. + +<P> +Doslovné vkládání kódů je však rozebíráno jinde (viz +Otázku <A HREF="sectN.html#Q-verbatim">Doslovné (verbatim) vložení souboru v LaTeXu</A>). Problém sazby specifikací algoritmů +(otázka <A HREF="sectO.html#Q-algorithms">Sadzba pseudokódu v LaTeXu</A>) je v tomto FAQ uveden také na jiném +místě. + +<P> +„Krásné“ kódy jsou generovány pomocí pre-compileru, avšak balík <CODE>listings</CODE> +toto převádí na LaTeX. + +<P> +Dobrým pre-compilerem je systém <CODE>lgrind</CODE> (<A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/nonfree/support/lgrind">lgrind</A>), který +obsahuje mnoho výhodných vylepšení, která se vám mohou hodit, a také má +velice široký výběr jazyků. + +<P> +Systém <CODE>tiny_c21</CODE> (<A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/support/tiny_c21">tiny_c21</A>) je o něco novější, uživatelé +si zde mohou vygenerovat vlastní ovládací soubory pro daný jazyk, jehož +kódy zpracovávají. + +<P> +Systém <CODE>C++2LaTeX</CODE> (<A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/support/C++2LaTeX-1_1">C++2LaTeX-1_1</A>) přináší mnoho +doporučení pro používání s jazyky C a C++. + +<P> +Systém <EM>highlight</EM> (<A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/support/highlight">highlight</A>) je obecný konvertor +produkující formáty HTML, RTF a také TeX/LaTeX. Tvrdí +o sobě, že je vysoce přispůsobitelný, distribuce obsahuje definice mnoha +jazyků. Dokumentace je poskytována jako <CODE>README</CODE> soubor v distribuci, +který se sám nazýva manuálem.<BR> +<CODE>listings</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/listings">listings</A> + +<P> +<P><A NAME="Q-algorithms"><HR><H3>Sadzba pseudokódu v LaTeXu</H3></A> + +<P> +Konsenzus týkajúci sa správnosti sadzby pseudokódu neexistuje. Máme teda na výber +z množstva balíkov LaTeXu určených na tvorbu esteticky príjemných výpisov +pseudokódu. + +<P> +Pseudokód sa od výpisu skutočného programu líši v tom, že nemá striktnú syntax +ani sémantiku. Pseudokód má predstavovať čistú interpretáciu algoritmu, takže +môže potrebovať použiť matematické zápisy, obrázky, tabuľky a iné vlastnosti +LaTeXu, ktoré sa v tradičných programovacích jazykoch neobjavujú. +Sadzba výpisov programov je opísaná na inom mieste (viď +Otázku <A HREF="sectO.html#Q-vypiskod">Výpisy zdrojových kódů v LaTeXu</A>). + +<P> +Určite si môžete na sadzbu pseudokódu vytvoriť vlastné prostredie, napríklad +pomocou prostredia <CODE>tabbing</CODE> alebo <CODE>list</CODE> — nie je to ťažké, ale môže to byť +nudné. Oplatí sa teda vyskúšať nasledujúce balíky (všetky špecificky navrhnuté +pre sadzbu pseudokódu). + +<P> +Sada <CODE>algorithms</CODE> (obsahujúca balíky <CODE>algorithm</CODE> +a <CODE>algorithmic</CODE>, oba potrebné pre bežné použitie) má jednoduché +rozhranie a produkuje celkom pekný výstup. Poskytuje primitíva pre príkazy, +ktoré môžu obsahovať ľubovolné príkazy LaTeXu, komentáre a sadu iteratívnych +a podmienených konštrukcií. Tieto primitíva môžu byť ľahko predefinované, aby +na výstupe produkovali odlišný text. Podpora pre pridávanie nových primitív +však neexistuje. Samotná sadzba pseudokódu sa koná v balíku +<CODE>algorithmic</CODE>. Balík <CODE>algorithms</CODE> používa prostriedky balíku +<CODE>float</CODE> na sekvenčné číslovanie algoritmov, umožnenie algoritmom +„plávať“ (float) ako obrázky alebo tabuľky a na podporu vloženia zoznamu +algoritmov na úvod dokumentu. + +<P> +Balík <CODE>alg</CODE>, podobne ako <CODE>algorithms</CODE>, poskytuje plávajúce +prostredie algoritmov spolu so všetkými ďalšími drobnosťami. <CODE>alg</CODE> ale +môže svojim plávajúcim prostrediam vytvoriť nadpis v množstve (prirodzených) +jazykov. <CODE>alg</CODE> naviac (narozdiel od <CODE>algorithms</CODE>), umožňuje +jednoducho pridávať nové konštrukcie. + +<P> +Balík <CODE>newalg</CODE> má tak trochu podobné rozhranie ako <CODE>algorithms</CODE>, +ale jeho výstup má pripomínať celkom príjemnú sadzbu použitú v knihe +„Introduction to Algorithms“ od Cormana, Leisersona, Rivesta a Steina. +<CODE>newalg</CODE> bohužiaľ nepodporuje plávajúce prostredie ani prispôsobenie +výstupu. + +<P> +Poctivé použitie štýlu „Introduction to Algorithms“ dosiahneme Cormenovým +vlastným balíkom <CODE>clrscode</CODE>: tento balík bol použitý v druhom vydaní +knihy. + +<P> +Balík <CODE>algorithm2e</CODE> existuje už veľmi dlho a je široko používaný +a odporúčaný. Používa balík <CODE>float</CODE> na poskytnutie možnosti plávajúcich +popisov algoritmov, stále však môžete použiť voľbu „<CODE>H</CODE>“ balíku +<CODE>float</CODE>, ak chcete, aby sa algoritmus obajvil tam, „kde ho napíšete“. + +<P> +Použitie balíku <CODE>program</CODE> sa trochu líši od použitia iných balíkov. +Namiesto textového módu používa pri sadzbe programov matematický mód, zlomy +riadkov sú dôležité. <CODE>program</CODE> neobsahuje plávajúce prostredie, ale +čísluje algorithmy ako <CODE>alg</CODE> a <CODE>algorithms</CODE>. Prispôsobovanie +a rozširovanie nie je podporované. + +<P> +Žiadny z uvedených balíkov nie je dokonalý. Faktory, ktoré by mali ovplyvniť +váš výber, sú preferovaný štýl výstupu, potreba rozšírenia alebo modifikácie +kľúčových slov a potreba umiestniť algoritmy do plávajúceho prostredia ako +obrázky a tabuľky . + +<P> +Dostupnosť dokumentácie: +<UL> + <LI><B>sady <CODE>algorithms</CODE></B> + je poskytovaná v súbore <CODE>algorithms.ps</CODE> + (tiež dostupný ako zdrojový súbor LaTeX{}u). Dokumentácia spomína balíky, ako + by boli v skutočnosti jeden nazvaný <CODE>algorithms</CODE>. + <LI><B>balíku <CODE>program</CODE></B> + (v stave, v akom je) sa nachádza v súbore + <CODE>program.msg</CODE>. + <LI><B>balíku <CODE>clrscode</CODE></B> + sa nachádza v súbore <CODE>clrscode.pdf</CODE> + v distribúcii. + <LI><B>balíku <CODE>algorithm2e</CODE></B> + môžete nájsť v distribúcii v súbore + <CODE>algorithm2e.tex</CODE> (pre spracovanie potrebuje balík samotný). +</UL> +<CODE>algorithm2e.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/algorithm2e">algorithm2e</A><BR> +sada <CODE>algorithms</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/algorithms">algorithms</A><BR> +<CODE>alg.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/alg">alg</A><BR> +<CODE>clrscode.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/clrscode">clrscode</A><BR> +<CODE>float.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/float">float</A><BR> +<CODE>newalg.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/newalg">newalg</A><BR> +<CODE>program.sty</CODE>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/">CTAN</A>: <A HREF="ftp://ftp.cstug.cz/pub/tex/CTAN/macros/latex/contrib/program">program</A> + +<P> +<P><A NAME="Q-integral"><HR><H3>Sazba symbolu hlavní hodnoty integrálu</H3></A> + +<P> +Tento symbol („přeškrtnutý“ znak integrálu) není obsažen v žádném +fontu, který by byl bežně dostupný uživatelům TeXu nebo LaTeXu, +může však být vytvořen pomocí následujícího makra: +<PRE> +\def\Xint#1{\mathchoice + {\XXint\displaystyle\textstyle{#1}}% + {\XXint\textstyle\scriptstyle{#1}}% + {\XXint\scriptstyle\scriptscriptstyle{#1}}% + {\XXint\scriptscriptstyle\scriptscriptstyle{#1}}% + \!\int} +\def\XXint#1#2#3{{\setbox0=\hbox{$#1{#2#3}{\int}$} + \vcenter{\hbox{$#2#3$}}\kern-.5\wd0}} +\def\ddashint{\Xint=} +\def\dashint{\Xint-} +</PRE> +Pro sazbu jednou přeškrtnutého znaku integrálu se použije příkaz +<CODE>\dashint</CODE>, pro sazbu dvakrát přeškrtnutého znaku použijeme +<CODE>\ddashint</CODE>. + +<P> +<P><A NAME="Q-babeljaz"><HR><H3>Používání nových jazyků v babelu</H3></A> + +<P> +<EM>Babel</EM> umí pracovat se širokou řadou jazyků, avšak občas se +stane, že nový +uživatel chce používat jazyk, který jeho instalace TeXu neumí +používat. +Např. požadavek<BR> <CODE>\usepackage[catalan]{babel}</CODE> <BR>vyvolá chybové +hlášení +<PRE> +Package babel Warning: No hyphenation patterns +... were loaded fo the language `Catalan'. +... I will use the patterns loaded for +... \language=0 instead. +</PRE> +Problém je v tom, že TeX neví, jak dělit katalánská slova: +musíte mu to říct dříve, než <EM>babel</EM> začne +pracovat. V LaTeXové +instalaci musíte přidat do souboru <CODE>language.dat</CODE>, který je součástí +babelovké +instalace, řádek <BR> +<CODE>catalan cahyphen.tex</CODE><BR> +který, pokud odstraníte komentovací znaménko <CODE>(%)</CODE>, řekne LaTeXu, že +má +nahrát vzor pro katalánské dělení slov, pokud mu řeknete, aby vytvořil +nový formát. Bohužel, v mnoha babelovských distribucích právě tento +řádek není správný – musíte zkontrolovat jména souborů, obsahující +vzory, které se chystáte použít. Jak můžete vidět, v autorově systému +je očekáván soubor <CODE>cahyphen.tex</CODE>, ačkoliv jméno souboru, který je +v systému, je <CODE>cahyph.tex</CODE>. V lepších distribucích je většina +těchto souborů obsažena, chybějící soubory si můžete najít na CTANovském +archívu. Pokud si stáhnete nový soubor, zajistěte jeho korektní +instalaci (viz Otázku <A HREF="sectE.html#Q-instal">Instalace nových balíčků</A>). Nakonec musíte obnovit +formáty, +které používáte (ve skutečnosti většina uživatelů používá +<EM>babel</EM> +v LaTeXových dokumentech, takže zde bude dost formátů, které bude +nutno upravit; nicméně uživatelé často opravují soubory, které s tímto +nemají nic společného). +<UL> + <LI><B>teTeX, fpTeX</B> +: +pro obnovu všech formátu použijte toto: +<CODE>fmtutil –all</CODE> +Pokud si chcete být jisti, co děláte, (to není pro zbabělé), můžete si +vybrat posloupnost formátů, které chcete upravovat, a pro každý z nich +spustit +<CODE>fmtutil –byfmt <formatname></CODE>, kde <CODE><formatname></CODE> je něco +jako LaTeX nebo +<CODE>fmtutil –byhyphen <hyphenfile></CODE>, kde <CODE><hyphenfile></CODE> je +soubor specifikující dělení slov do formátu – obvykle <CODE>language.dat</CODE>. + <LI><B>MikTeX</B> + +V MikTeXovské distribuci do verze 2.0 udělejte: +<CODE>Start</CODE> –> <CODE>Programs</CODE> –> <CODE>Miktex</CODE> –> <CODE>Maintenance</CODE> –> +<CODE>Create all format files</CODE> nebo otevřete DOSovské okno a napište +<CODE>initexmf –dump</CODE>. +V MikTeXovských distribucích verze 2.0 a vyšší může být celá procedura +provedena pomocí GUI. Nový jazyk vyberete takto: +<CODE>Start</CODE> –> <CODE>Programs</CODE> –> <CODE>Miktex 2</CODE> –> <CODE>Miktex options</CODE> +a vyberte <CODE>Languages</CODE>. Vyberte jazyk ze seznamu a stiskněte tlačítko +<CODE>Apply</CODE> a svou volbu potvrďte stiskem tlačítka <CODE>OK</CODE>. Pak vyberte +<CODE>general</CODE> a stiskněte tlačítko <CODE>Update Now</CODE>. Další možností je +vyeditování souboru <CODE>language.dat</CODE> jak bylo popsáno výš a spusťte +<CODE>initexmf –dump</CODE> +jako u verzí nižších než 2.0. +</UL> + +<P> +POZOR: Je možné, že váš TeX skončí s chybovou hláškou týkající se +nedostatku paměti při vytváření nových formátů. Většina TeXových +implementací má na uchování dat týkajících se tohoto problému vyhrazeno +pole fixní délky. Pokud shledáte, že vám přetekla paměť, může +to být zásluha prohledávání seznamu dostupných jazyků ve vašem souboru +<CODE>language.dat</CODE>, pak se tedy podívejte, který z jazyků může být odstraněn. + +<P> + +<P> + +<P><HR></TD></TR> +<TR><TD></TD><TD><TABLE BORDER=0><TR> +<TD valign=middle align=left> +<a href="http://www.cstug.cz/"> +<IMG BORDER=0 SRC="images/logo.gif" + ALT="CSTUG" HEIGHT=51 WIDTH=165 ALIGN="right"><BR> +</TD><TD valign=top align=left><FONT SIZE="-1"> +(c) 1997, 1998, 2003 +Tomáš Hudec, Libor Škarvada +<BR> +Poslední aktualizace: 13.11.2004 23:15 +</FONT></TD></TR></TABLE></TD></TR></TABLE> + +</BODY> +</HTML> |