Osobitné spôsoby sadzby CSTUG

Ľudia stále vymýšľajú triedy, ktoré majú nahradiť štandardné: súčasný autor vyrobil v roku 1980 triedu ukart používajúcu balík sober a pár vecí špecifických pre Britov (ako tie, čo sa objavujú v špecializácii babelu pre britskú angličtinu). Trieda sa stále príležitostne používa.

Podobné verejné snahy boli dostupné v dobe LaTeX 2.09: významným príkladom, ktorého potešujúci design sa zrejme časom veľmi nezmenil, je trida ntgclass. Každá zo štandardných tried je nahradená výberom tried pomenovaných v holandčine (občas s jednou pridanou číslicou). Takže máme triedy artikel2, rapport1, boek3brief. Tieto dokumenty sú priemerne zdokumentované v angličtine.

Balík tried KOMA-script (triedy pomenované scr...) je v súčasnosti silným súťažiacim. Triedy sú aktívne podporované, sú obsiahle v pokrytí dôležitostí sadzby, produkujú dobre vyzerajúci výstup a sú dobre dokumentované v angličtine i nemčine (scrguien v anglickej distribúcii, scrguide v nemeckej).

Ďalšou porovnateľnou triedou je memoir. Táto má za cieľ priamo nahradiť triedy bookreport. Podobne ako KOMA-script je obsiahla v pokrytí drobný problémov. Dokumentácia triedy memoir (memman) je často vychvaľovaná a jej dlhý úvod je pravidelne doporučovaný ako tutoriál pre sadzbu.
balík KOMA-script: CTANkoma-script
memoir.cls: CTANmemoir
balík NTGclass: CTANntgclass
sober.sty: CTANsober


Kreslenie s TeXom

V TeXu/LaTeXu samotnom je veľa prostriedkov na kreslenie obrázkov (čo je lepšie ako importovať obrázky externé), od jednoduchých, ako je prostredie picture, trochu lepších, ako je balík epic, až po výborné (ale pomalé) kreslenie s PiCTeXom. V závislosti na type kreslenia by jeden zo štyroch nasledujúcich systémov mohol byť pre Vás špičkový:

  1. pstricks; umným využívaním príkazu \special dáva prístup k plnej sile PostScriptu z TeXu. Potrebujete slušný prekladač z DVI do PostScriptu, ale výsledok stojí za to. Dobre zdokumentovaný balík vám dáva možnosť použiť nielen príkazy nižšej úrovne, ktoré vykresľujú priamky, kruhy či kružnice, ale aj makrá vysokej úrovne na manipuláciu s objektami či textovými rámami, kreslenie stromov, či matíc, pre efekty 3D grafiky a ďalšie. Balík nájdete na CTANpstricks. Používatelia PDFTeXu môžu používať pdftricks, ktorý (ako aj epstopdf — viď Otázku Importovaná grafika v PDFLaTeXu) generuje PDF súbory za behu z príkazov pstricks.

  2. METAPOST; mali ste radi METAFONT, ale nikdy Vás neuchvátili súbory písiem? Vyskúšajte METAPOST (pozri Otázku Čo je to METAPOST). Má všetku silu METAFONTu, ale generuje PostScript. METAPOST je v súčasnosti súčasťou najdôležitejších distribúcií TeXu/LaTeXu. D. Knuth ho používa pri svojej práci.

  3. Mfpic; páči sa Vám METAFONT, ale nerozumiete jeho jazyku? Tento balík (CTANmfpic) vytvorí pre Vás kód METAFONTu z jednoduchšie zvládnuteľných TeXovských makier. Nemá všetku silu METAFONTu, ale priateľskejší vzhľad.

  4. Páči sa Vám PiCTeX, ale nemáte dosť pamäti alebo času? Pozrite sa na makrá v CTAN adresári CTANdratex od Eitana Guarariho, ktoré sú tak silné, ako väčšina ostatných balíkov, ale je to celkom nová implementácia, dobre čitateľná a plne zdokumentovaná.


Prostrkávaná sazba

Jednou ze základních metod zvýrazňování textu v dokumentu je změna vzdálenosti mezi písmeny. Tato technika se nazývá prostrkávaná sazba. Toto zvýraznění však není doporučováno, protože ubírá textu na čitelnosti, což je proti principům typografie. Proto Donald Knuth také neumožnil jednoduše měnit vzdálenosti mezi znaky.

Jeden z nejvetších typografů — Eric Gill — toto přirovnal ke „kradení oveček“, což v jeho době byl jeden z nejčastějších přestupků v Británii. Vkládání mezer mezi velká písmena je však povážováno za menší „zločin“, než mezi malá písmena. Bežně se ale tato technika používá při zvýraznění textu psaného gotickým (nebo jiným podobným) písmem.

Na CTANu je balík CTANletterspacing, v němž je definováno makro \letterspace. Používá se podobně jako \hbox :
\letterspace to 1.3\naturalwidth{Důkaz:}

Lepší balík je CTANsoul, který je optimalizován pro použití v LaTeXu, ale funguje i v plainTeXu. Soul také umožnuje dělení takto zvýraznených slov.


Formátovanie diplomových a disertačních prác v LaTeXu

Štýl pre dizertáciu je obvykle veľmi špecifický pre danú univerzitu. Preto spravidla nie je príliš užitočné pátrať po takomto štýle mimo rámec univerzity alebo inštitúcie. Mnoho univerzít vo svojej excentricite stále používa pre dizertácie dvojité riadkovanie. Vtedy vás môžeme odkázať na Otázku Dvojité riadkovanie v dokumentoch LaTeXu. Ak chcete napísať vlastný štýl pre dizertácie, môže vám poslúžiť ako dobrý štart štýl University of California (dostupné v CTANucthesis), ale nemá cenu púšťať sa do ťažkostí. (Ak vedenie nepripustí štandardné typografické konvencie, aj tak nebudete schopný vytvoriť esteticky uspokojivý dokument.)


Obtekanie obrázkov v LaTeXu

Existuje niekoľko LaTeXovských balíkov, ktoré majú za cieľ toto umožňovať, ale všetky majú svoje ohraničenia, pretože TeX nebol navrhovaný na riešenie takejto úlohy. Piet van Oostrum, ktorý vytvoril prehľad dostupných balíkov, odporúča:

  • picins picins.sty je časť veľkého balíku umožňujúceho zahrnutie obrázkov (napr. so šedými boxami, rôznymi DOS formátmi, ...). Nachádza sa v CTANpicins. Príslušný príkaz je:
    \parpic(šírka,výška)(x-off, y-off)[Options][Pozícia]{ Obrázok}
    Text odstavca

    Všetky parametre okrem Obrázok sú voliteľné. Obrázok môže byť umiestnený vľavo alebo vpravo, orámovaný obdĺžnikom, oválom alebo čiarkovane. Môže mať popis (\caption), ktorý bude zahrnutý do zoznamu obrázkov.

    Nanešťastie (pre tých, ktorí nerozumejú nemecky) je dokumentácia v nemeckom jazyku. Piet van Oostrum však napísal anglické resumé (CTANpicins-summary).

  • floatflt CTANfloatflt je zdokonalená verzia floatfig.sty (pre LaTeX 2e), a jeho syntax je:
    \begin{floatingfigure}[options]{ šírka obrázku}
    Obrázok
    \end{floatingfigure}

    Existuje aj (viacmenej podobné) prostredie floatingtable.

    Tabuľky alebo obrázky môžu byť dané na pravú/ ľavú časť strany a párnu/ nepárnu stranu pri dokumentoch, ktoré rozlišujú párne a nepárne strany.

    Tento balík umožňuje použiť aj balík multicol, ale nespolupracuje s ďalšími blízkymi prostrediami.

  • wrapfig CTANwrapfig má syntax:
    \begin{wrapfigure}[výška obrázku v riadkoch]{l,r,atď}[presah ]{šírka}
    obrázok, popis obrázku atď.
    \end{wrapfigure}

    Syntax prostredia wraptable je podobná.

    Výška môže byť vynechaná. Vtedy je dopočítaná automaticky programom. Program vždy berie väčšiu hodnotu z vypočítanej a udanej hodnoty. Parameter {l,r atď} môže byť tiež špecifikovaný ako i (inside – vnútro) alebo o (outside – vonkajšok), pre dokumenty, ktoré rozlišujú párne a nepárne strany. Keď použijeme veľké písmená, obrázok môže byť pohyblivý. Parameter presah dovoľuje presah obrázku do okrajov. Obrázok alebo tabuľka môžu byť zahrnuté do zoznamu, keď použijeme príkaz \caption.

    Uvedené prostredia nepracujú vnútri zoznamov, ktoré končia pred dolným okrajom obrázku alebo tabuľky, ale môžu byť použité v prostrediach parbox, minipage a to aj pri dvojstĺpcovej sadzbe.


Alternatívne head- a footline v LaTeXu

Štandardný LaTeX zahŕňa v sebe niekoľko štýlov, ktoré špecifikujú riadok záhlavia a spodku strany (headline, footline). Možnosti, ktoré máme na zmeny, sú veľmi obmedzené. LaTeX umožňuje veľa, ale nie je jednoduché to urobiť. My to robiť nemusíme, urobil to Piet van Oostrum.

Balík je v adresári CTANfancyhdr. Tento balík poskytuje jednoduchý mechanizmus na definovanie rôznych variantov záhlavia a spodnej časti strany. Adresár obsahuje aj celkom dobrú dokumentáciu a ďalší jeden alebo dva balíky. Balík fancyhdr umožňuje aj predefinovať štýl strany a úvodnej strany (pozri Otázku Užití \pagestyle{empty} na první stránce v LaTeXu).


Doslovné (verbatim) vložení souboru v LaTeXu

Dobré řešení je použití verbatim.sty od Rainera Schöpfa, které poskytuje příkaz \verbatiminput, který určuje jméno vstupního souboru jako argument. Balík je součástí 2etools (na CTANu v CTAN2etools).

\usepackage{verbatim}
...
\verbatiminput{verb.txt}

Jiná metoda je použití prostředí alltt, které vyžaduje alltt.sty (ten je standardní částí LaTeXu).

Toto prostředí vkládá obsah souboru „vetšinou“ doslovně, provádí však TeXové příkazy, které v souboru objeví. Pro vložení souboru verb.txt stačí napsat:

  \usepackage{alltt}
  ...
  \begin{alltt}
   \input{verb.txt}
  \end{alltt}
Jistě, tak málo stačí pro vložení souboru...

Balík moreverb (CTANmoreverb) rozšiřuje možnosti balíku verbatim, nabízí prostředí listing a příkaz \listinginput, který umožňuje číslovat řádky vkládaného souboru. Balík obsahuje také příkaz csx{verbatimtabinput}, který respektuje TAB znaky na vstupu (prostředí listing a příkaz csx{listinginput} taky respektují TAB znaky).

Balík fancyvrb obsahuje konfigurovatelné implementace všeho, co obsahují balíky moreverb a verbatim a ještě něco navíc. V současné době bystří sazeči sahají po tomto produktu nejraději, ale bohatství možností z něho dělá velice komplexní „potvoru“. Z tohoto důvodu si raději před jeho použitím důkladně prostudujte dokumentaci.


Vložení čísel řádků do výstupního souboru

Pro celkové číslování řádků existují dva balíky použitelné pod LaTeXem: lineno (který dovoluje k jednotlivým řádkům výstupu připojit hesla) a numline. Oba balíky však neberou ohledy na LaTeXový výstup, což může způsobit problémy. Na to by si měli dát uživatelé pozor.

Pokud však chcete číslovat doslovný text (verbatim), pak je nejlepší použít balíky (moreverb nebo fancyvrb, viz Otázku Doslovné (verbatim) vložení souboru v LaTeXu). Další balík – edmac (edmac) – nabízí pomoc v případech kritických edicí.
lineno: CTANlineno
numline: CTANnumline
moreverb: CTANmoreverb
fancyvbr: CTANfancyvrb
edmac: CTANedmac


Generovanie registra v TeXu/LaTeXu

Vytvorenie registra – indexu – nie je jednoduchá úloha. Čo to je index a ako ho robiť je ťažko rozhodnúť. Rovnako je ťažké urobiť všeobecnú dohodu, ako je správne index robiť. V každom prípade musíte označiť všetky položky v texte (obvykle príkazom \index), ktoré majú byť indexované.

Triedenie veľkého indexu priamo v TeXu nie je praktické, preto sa používajú postprocessing programy, ktoré spracovávajú index mimo TeXu a register je dostupný v ďalšom behu programu TeX.

Dostupné sú nasledujúce programy:

  • makeindex pre LaTeX pod Unixom (ale pracuje aj pod inými operačnými systémami rovnako). Je v CTANmakeindex. Verzia pre Macintosh je dostupná na CTANe pod názvom macmakeindex (CTANmacmakeindex), pre MSDOS je súčasťou distribúcie emTeXu a gTeXu (emTeX má verziu aj pre OS/2).

    Dokumentácia pre makeindex predstavuje dobrý zdroj informácií ako vytvárať register. Makeindex môžeme použiť aj s niektorými balíkmi makier TeXu, ako je napríklad Eplain (pozri Otázku Co je to Eplain) alebo TeXsis. (CTANtexsis)

  • idxtex pre LaTeX pod VMS. Je dostupný (s „poznámkovačom“ glotexCTANglo+idxtex).

  • texindex Veľmi vtipná malá utilita pre LaTeX pod operačným systémom Unix. Je dostupná v CTANtexindex.

    Existujú aj iné programy s menom texindex, napríklad ten, ktorý je súčasťou distribúcie Texinfo (pozri Otázku Co je to Texinfo).

  • xindy novo vyvinutý, navrhnutý ako rozsiahlo flexibilný (vrátane podpory viacjazičných indexov), založený na Common Lispe. Systém je dostupný na CTANe (CTANxindy), ale je jednoduchšie prístupný internetovým prehliadačom na adrese http://www.iti.informatik.th-darmstadt.de/xindy/, pretože distribúcia obsahuje niekoľko odlišných implementácii.


Používanie BibTeXu s plainTeXom

Súbor CTANbtxmactex obsahuje makrá a dokumentáciu pre BibTeX s plain TeXom alebo priamo s Eplainom (pozri Otázku Co je to Eplain). Pozrite si aj Otázku Dokumentace k BibTeXu, ktorá obsahuje ďalšie informácie o BibTeXu samotnom.


Sazba URL

V poslední době se URL prodlužují a obsahují znaky, které jim mohou přirozeně zabraňovat v hladkém dělení, pokud nejsou typicky označeny \ttfamily. Proto bez zvláštního ošetření mohou přečnívat za hranici sloupce a jejich výsledná sazba je hrozná.

Existují tři možnosti přístupu k tomuto problému:

  • CTANpath, který definuje příkaz \path. Tento příkaz definuje každý potenciálně problematický znak jako \discretionary a umožňuje každému uživateli definovat svůj osobní seznam těchto znaků. Jeho hlavní nevýhoda je, že patří mezi křehké příkazy. Navzdory své dlohé historii už není doporučován.
  • CTANurl, který definuje příkaz \url (mezi jinými také obsahuje vlastní příkaz \path). Tento příkaz přiřadí každému problematickému znaku matematický kód a pak URL vysází v matematickém režimu fontem, který si uživatel vybere. V LaTeXovém prostředí umožňuje vytvářet robustní příkazy (viz Otázku Proč se v LaTeXu užívá ochran (protection)). Všimněte si, že jelikož je operace provedena v matematickém módu, jsou mezery v URL parametru ingorovány (když neuděláte specielní kroky). Balík url je možné použít v plain TeXu s pomocí balíku miniltx (jež byl původně vyvíjen pro použití grafického balíku LaTeXu v plain TeXu). Potřebná je ale malá úprava, požadovaná sekvence je tedy:
    \input miniltx
    \expandafter\def\expandafter\+%
                                      \expandafter{\+}
    \input url.sty
    

  • balík CTANhyperref, který používá sázečí kód balíku url v kontextu, kdy vysázený text tvoří ukontvění odkazu.

Autor této odpovědi preferuje (novější) balík url (přímo nebo nepřimo). Oba balíky pathurl pracují skvěle v plain TeXu (ikdyž tam samozřejmě přitažlivé LaTeXovské prostředky balíku url nemají co dělat). (hyperref není ve verzi pro plain TeX dostupný.)


Sadzba nôt v TeXu

V minulosti bol napísaný balík mutex od Angeliky Schoferovej a Andreu Steinbacha, ktorý dokazoval, že sadzba hudby je možná. Balík bol však veľmi obmedzený a naďalej nie je dostupný.

Výkonný balík, ktorý umožňuje sadzbu zložitých notových osnov, je MusicTeX, ktorý napísal Daniel Taupin (taupin@rsovax.lps.u-psud.fr). Je dostupný v CTANmusictex, ale nie je naďalej odporúčaný. V nedávnej minulosti Daniel (ako aj mnohí ďalší, ako Ross Mitchell a Andreas Egler) pracovali na vývoji MusicTeXu, ktorý má názov MusiXTeX. MusiXTeX je trojprechodový systém (s predprocesorovým programom, ktorý počíta medzery pre prvky) a dosahuje jemnejšiu kontrolu, ako je možné dosiahnuť v nemodifikovanom MusicTeXu. Momentálne je vyvíjaná iba verzia Daniela Taupina (Andreas Egler mal tiež svoju verziu, ale v súčasnosti už pracuje a inom balíku) MusiXTeXu. Obe sú dostupné v CTANmusixtex-taupinCTANmusixtex-egler.

Vstup pre MusixTeX je extrémne zložitá záležitosť. Preferovanou metódou vytvárania vstupu pre Taupinovu verziu je preprocesor Dona Simonsa pmx. Pmx veľmi uľahčuje používanie MusixTeXu, ale nepodporuje všetky prostriedky MusixTeXu priamo. Dovoľuje však in-line kód MusixTeXu v zrdojovom kóde pmx.

Fanúšikovia digitálnej hudby môžu sádzať notáciu použitím midi2tex, ktorý prekladá MIDI súbory do zdrojového kódu MusicTeXu. Je dostupný z CTANmidi2tex.

O dosť jednoduchší zápis ako MusicTeX má abc2mtex. Je to balík navrhnutý pre zápis melódie vo forme ASCII znakov (abc notácia). Táto notácia bola navrhnutá hlavne pre zápis ľudových melódií západoeurópskeho pôvodu (írskych, anglických a škótskych), ktoré môžu byť zapísané aj klasickým spôsobom na jednej notovej osnove. Ale môže byť použitá aj na mnoho iných typov hudby. Balík je dostupný v CTANabc2mtex.

Pre diskusiu o problémoch sadzby nôt v systéme TeX{} využívajte vytvorený mailing list TeX-music@icking-music-archive.org. Pre subskripciu využite možnosti stránky URL{http://icking-music-archive.org/mailman/listinfo/tex-music/}.


Kreslenie Feynmanových diagramov v LaTeXu

Makro-balík pre kreslenie Feynmanových diagramov v LaTeXu od Michaela Lavine je dostupný v CTANfeynman.

Môžeme tiež použiť CTANfeynmf, balík makier pochádzajúci od Thorstena Ohla, ktorý pracuje v kombinácii s METAFONTom (alebo METAPOSTom).

Makrá z balíkov feynmf alebo feynmp čítajú popis diagramu, ktorý je napísaný v TeXu, a zapisujú svoj kód. METAFONT (alebo METAPOST) potom môže vytvoriť v ďalšom behu LaTeXu príslušné písma. Pre nových používateľov, ktorí majú možnosť použiť METAPOST, možno odporúčať PostScriptovú verziu pre lepšiu prenositeľnosť dokumentov, ako aj niektoré ďalšie dôvody.

Ďalšie balíky použiteľné na tento účel sú: axodraw Josa Vermaserena (CTANaxodraw) a feyn Normana Graya (CTANfeyn).


Nulové odsadenie odstavcov

Bežný spôsob sadzby textu nemá odstavce navzájom oddelené, iba prvý riadok každého odstavca je odsadený.

Konvenciou pre text písaný na písacom stroji naopak bolo neodsadzovanie odstavcov. Takýto štýl je vyžadovaný pre publikácie ako technické manuály a v štýloch vyžadujúcich originál písaný písacím strojom (ako napríklad oficiálne špecifikované formáty dizertácií).

Každý po chvíľke rozmýšlania vidí, že pri nulovom odsadení odstavcov musia byť tieto oddelené prázdnym miestom, inak bude nemožné rozoznať zlomy medzi odstavcami.

Jednoduchým prístupom je teda vynulovanie odsadenia odstavcov:

  \setlength{\parindent}{0pt}
  \setlength{\parskip}{\baselineskip}
a v najjednoduchších textoch je to dobré riešenie.

Avšak nenulový csx{parskip} prekáža zoznamom a podobnému formátovaniu, takže výsledky vyzerajú hrozne. Balík parskip upravuje veci tak, aby vyzerali rozumne. Nie je bezchybný, ale vysporiada sa s väčšinou problémov.

Sada tried skupiny používateľov z Holandska obsahuje ekvivatent triedy article (artikel3) a triedy report (rapport3), ktorých návrh zahŕňa nulové odsadenie a nenulový csx{parskip}.
triedy \acro{NTG}: CTANntgclass
parskip.sty: CTANparskip


Iniciálky

Bežným štýlom sadzby, v súčasnosti málo sa vyskytujúcim (okrem novín), je začatie odstavca (v knihách, zvyčajne prvého odstavca kapitoly) prvým písmenom dostatočne veľkým (rozsahu niekoľkých riadkov).

Tento štýl sa nazýva „iniciálky“ (dropped capitals) alebo (po francúzsky) „lettrines“. TeXovské prostriedky umožňujú jeho jednoduchú a priamočiaru implementáciu.

Balík dropping prácu vykoná jednoducho, má ale zvláštny postoj k výpočtom veľkosti fontu veľkých písmen (iniciálok). Príklady sú uvedené v dokumentácii, takže pred spracovaním súboru .dtx musíte mať balík už nainštalovaný. dropping má bohužiaľ chúlostivý vzťah k sade ovládačov zariadení dostupných v prvých verziách grafického balíku LaTeXu. Nemôžeme si teda byť istý, že bude pracovať s novinkami ako PDFTeX, VTeX alebo DVIpdfm.

V takýchto prípadoch pravdepodobne uspeje novší balík lettrine. Balík má dobre konštruované pole volieb a príklady (celkom pôsobivá sada) sú dodávané ako osobitný súbor distribúcie (dostupné tiež v PostScripte, aby mohli byť prezreté bez nutnosti inštalovať balík).
dropping: CTANdropping
lettrine: CTANlettrine


Psací písma pro matematický režim

Font vybraný příkazem \mathcal je jediným zabudovaným psacím písmem. Nicméně však v moderních TeXových distribucích jsou zabudovány i další kaligrafické fonty.

  • Euler \usepackage{eucal} Je součástí pouze několika nejmodernějších TeXových distribucí, nicméně je volně dostupný na CTANu archívu na adrese CTANeucal.sty. Je součástí AMS fontů. Nabízí nepatrně „zakroucenější“ font. Tento balík mění fonty, které jsou vybrány   příkazem \mathcal. Verze Type 1 těchto fontů jsou dostupné v distribuci AMS fontů (CTANamsps-type1).
  • RSFS \usepackage{mathrsfs} (součást CTANjknappen) používá opravdu ozdobné psací písmo (zkratka z „Ralph Smith's Formal Scripts“), které je již součástí nejmodernějších distribucí (můžete ho najít i ve CTANovském archívu v CTANrsfs). Balík vytváří nový příkaz \mathscr. Tyto fonty ve verzi Type 1 byly zpřístupněny Tacem Hoekwaterem. Jsou přístupné na CTANu na adrese CTANhoekwater.
  • Zapf Chancery je standardní postscriptový kaligrafický font. Není spojen s žádnými balíky, ale snadno ho můžete zpřístupnit příkazem
    \DeclareMathAlphabet{\mathscr}{OT1}{pzc}{m}{it}
    ve vaší preambuli. Také ho můžete použít v jiné velikosti:
    \DeclareFontFamily{OT1}{pzc}{}
    \DeclareFontShape{OT1}{pzc}{m}{it}{<-> s * [0.900] pzcmi7t}{}
    \DeclareMathAlphabeth{\mathscr}{OT1}{pzc}{m}{it}
    Adobe Zapf Chancery (který výše zmíněný příklad používá) je distribuován s některými postscriptovými tiskárnami. V podstatě identický font z URW a je distribuován s Ghostscriptem.

Příklady dostupných stylů jsou předvedeny na CTANscriptfonts.pdf.


„Vodoznak“ na každé stránce

Občas je užitečné na pozadí každé stránky dokumentu umístit jistý text (např. „DRAFT“). Uživatelé LaTeXu toho dosáhnou použitím balíku CTANdraftcopy. Umí pracovat s mnoha typy DVI procesorů a umí přeložit slovo „DRAFT“ do širokého množství jazyků (také si však můžete vybrat vlastní slovo). Vypracovanějších vodoznaků dosáhnete pomocí balíku eso-pic, který ještě využívá balíček everyshi. Oba jsou distribuovány v balíku CTANms. Eso-pic ke každé stránce připojí prostředí picture, do prostředí můžete vkládat věci. Balík poskytuje příkazy pro umísťování věcí do určitých užitečných míst obrázku (jako „text nahoru vlevo“, ldots), ale máte možnosť dělat, co se vám zblíbí.


Sazba textu naležato

Občas je nezbytné vysázet část textu dokumentu naležato. Abychom tohoto dosáhli, nestačí pouze změnit rozměry stránky, musíme ještě informovat tiskárnu, že má tuto stránku tisknout odlišně. Existují dva možné způsoby, jak toho docílit:

  • Pokud máte objekt, který svou šířkou přesahuje šířku stránky a hodí se pouze na stránku naležato, pak můžete použít balík rotating (CTANrotating, který definuje dvě různá prostředí sidewaysfigure a sidewaystable, které pracují pouze s celou stránkou.
  • Pokud máte více těchto objektů, které potřebujete vysázet naležato (např. seznamy různých kódů, široké prostředí tabbing nebo velké tabulky sázené pomocí supertabular nebo longtable), pak můžete použít balík lscape (CTANgraphics), připadně pdflscape (když generujete PDF výstup; CTANoberdiek). Ten definuje prostředí landscape, které vymaže běžnou stránku a zahájí znovu její sazbu naležato (a smaže stránku na konci prostředí před vrácením do režimu nastojato).

Žádné běžně dostupné balíky nevytvářejí přímé opatření pro sazbu v obou možných orientacích na jedné stránce. Pokud byste takové chování nutně potřebovali, použijte techniku popsanou v Otázce Obtekanie obrázkov v LaTeXu. Výsledek můžete otočit pomocí balíku graphics (CTANgraphics. Návrat k vertikální orientaci (portrait) je snazší: vertikálně orientovaná část stránky bude spodním floatem na konci horizontální (landscape) sekce s otočeným obsahem.

Pro vysázení celého dokumentu horizontálně můžete použít lscape kolem celého dokumentu. Lepší je volba landscape balíku geometry. Jestliže mu předáte také volbu dvips nebo pdftex, geometry vychrlý rotační instrukce, které spůsobí, že výstup bude správné orientován. Třída memoir v tomto ohledu poskytuje stejné prostředky jako geometry.

Na závěr ještě jedno varování: běžně dostupné prohlížeče TeXových souborů většinou zanedbávají požadavky na rotaci v DVI souborech. Pokud váš prohlížeč není schopný rotace, je nutno přeložit soubor do formátu PS nebo PDF a výsledek pak můžete prohlédnout vhodným programem.


Umiestňovanie na fixné pozície na stránke

TeXovský model sveta je (obecne povedané), že autor píše text a TeX a jeho makrá rozhodujú, ako sa to všetko zmestí na stránku. Toto nie je dobrá správa pre autora, ktorý požaduje, aby boli určité veci umiestnené na presné miesta na stránke.

Na stránke existujú miesta, na ktorých môžu byť „zavesené“ veci. Dva LaTeXovské balíky vám dovoľujú umiestňovanie relatívne k týmto miestam, čím poskytujú absolútne umiestnenie.

Balík textpos pomáha vytvárať stránky z bodov umiestnených vôkol stránky (ako pri plagáte). Vy mu zadáte lokáciu, on príslušne umiestni sádzací box.

eso-pic definuje „obrázok“ pokrývajúci stránku. Používateľ do tohto obrázku môže pridávať príkazy módu picture, ktoré môžu obsahovať samozrejme aj umiestnenia boxov ako aj iných príkazov picture módu. (Eso-pic potrebuje služby balíku everyshi, ktorý teda musí tiež byť dostupný.)
eso-pic.sty: CTANeso-pic
everyshi.sty: distribuované ako súčasť CTANms
textpos.sty: CTANtextpos


Zabránenie zlomu stránky medzi riadkami

Občas je potrebné, aby blok vysádzaného materiálu bol na jednej strane. Zabezpečenie tejto podmienky je prekvapivo zložité.

LaTeX poskytuje prostredie samepage, ktoré o sebe tvrdí, že práve toto za vás spraví. Postupuje nastavením pokút (penalties) za všetky možné situácie vedúce k zlomu stránky na nekonečno, no v mnohých prípadoch nepomáha. Ak sa pokúšate udržať text pohromade, budete musieť ukončiť odstavec vo vnútri prostredia. Ak veci, čo chcete udržať pohromade, vkladajú vlastné náznaky na zlom stránky, samepage nad nimi nemá moc: dobrým príkladom sú položky zoznamu — navrhujú medzi sebou zlom stránky. Dokonca aj keď prostredie funguje, je pravdepodobné, že na spodku stránky nechá určité veci vyčnievať.

Vhodným trikom je vysádzať všetko dôležité do \parbox (v prípade, že obsahuje niečo, čo nemôže byť parametrom \parboxu, do prostredia minipage). Výsledný box sa medzi stranami určite „nezlomí“, ale to neznamená, že spraví to, čo chcete: takisto môže presahovať spodný okraj stránky.

Prečo žiadna z týchto vecí nefunguje? Pretože TeX nerozlíši nekonečne „zlé“ veci. Prostredie samepage spraví každý možný bod zlomu nekonečne zlým a boxy dokonca ani neposkytujú možnosť zlomu, ale ak je alternatívou ponechanie nekonečne zlých pár centimetrov prázdneho papieru na konci strany, TeX sa vyberie cestou najmenšieho odporu a nespraví nič.

Problém vzniká aj keď máte v platnosti \raggedbottom: TeX si nevšimne jeho hodnotu, pokiaľ neodošle stránku von. Jeden prístup je nestavenie:

\raggedbottom
\addtolength{\topskip}{0pt plus 10pt}

10pt naznačuje výstupnej rutine, že stĺpec možno roztiahnuť. Toto spôsobí, že TeX bude pri budovaní stránky tolerantnejší k potrebe roztiahnutia. Ak to robíte ako dočasné opatrenie, zrušte zmenu u \topskip:

\addtolength{\topskip}{0pt plus-10pt}

Mali by ste aj resetovať \flushbottom. Všimnite si, že 10pt sa v skutočnosti nikdy neukáže, pretože pri odosielaní stránky von je prekonané roztiahnuteľnosťou vloženou \raggedbottom; mohlo by však mať nejaký účinok, ak by učinkovalo aj \flushbottom.

Alternatívou (odvodenou z Knuthovho návrhu v TeXbooku) je balík needspace alebo trieda memoir, pričom v oboch je definovaný príkaz \needspace, ktorého parameter mu vraví, aký prestor je potreba. Ak priestor nie je dostupný, materiál, ktorý musí zostať spolu, je vložený na druhú stranu. Ak napríklad 4 riadky textu musia zostať pohromade, použite:

\par
\needspace{4\baselineskip}
% veci, čo musia zostať pohromade

% a teraz veci, na ktorých nám nezáleží

Ďalší Knuthov trik je užitočný, ak máte postunosť malých blokov textu, ktoré individuálne potrebujú zostať na svojej vlastnej stránke. Vložte príkaz \filbreak pred každý malý blok a dosaihnete požadovaný efekt. Technika môže byť použitá v prípade postupností sekcií LaTeXovského štýlu. Zabudujte \filbreak do definície príkazu. Jednoduchou a efektívnou úpravou je:

\let\oldsubsubsection=\subsubsection
\renewcommand{\subsubsection}{%
  \filbreak
  \oldsubsubsection
}

Trik funguje pre nasledujúce postupnosti blokov. V prípade, že postupnosť je prerušená vynúteným zlomom stránky (ako \clearpage, ktorý môže byť vložený príkazom \chapter alebo koncom dokumentu), je však trochu obtiažne dostať sa z takých sekvencii von. Ak postupnosť nie je prerušená, posledný blok bude pravdepodobne vytlačený na novú stranu bez ohľadu na to, či to skutočne potrebuje.

Ak akceptujete, že nie všetko sa dá dosiahnuť úplne automaticky, najlepším spôsobom je vysádzať dokument a skontrolovať problémové veci. V takomto prípade sa môžete rozhodnúť, ako sa s problémom vysporiadať pri poslednej kontrole čítaním. Možnosti sú vloženie príkazov \clearpage tam, kde sú potrebné, alebo použitie \enlargethispage. Predpokladajme, že máte jeden alebo dva zatúlané riadky. Zadajte príkaz \enlargethispage{2\baselineskip} a na aktuálnu stránku budú pridané dva riadky. Záleží na dokumente, či toto vyzerá nemožne alebo akceptovateľne, ale príkaz zostáva užitočnou položkou vo výzbroji.
memoir.cls: CTANmemoir
needspace.sty: CTANneedspace


Paralelná sadzba textu

Bežne je potrebné prezentovať text v dvoch jazykoch spoločne na jednej stránke alebo na opačných stranách dvojstranového rozloženia. Aby to bolo akceptovateľné, musí medzi textami existovať určité zarovnanie.

Balík parallel tieto potreby uspokojuje. Umožňuje sadzbu do dvoch stĺpcov (nie nutne rovnakej šírky) na jednej strane alebo do opačných strán dvojstranového rozloženia.
parallel.sty: CTANparallel


Sadzba epigrafov

Epigrafy sú tie krásne citáty, ktoré autori vkladajú na začiatok kapitol (alebo dokonca na koniec kapitol, Knuth v TeXbooku vkladá na koniec kapitol).

Ich sadzba je tak trochu umenie, ale nie je nemožné spraviť ju vlastnoručne. Balík epigraph však spraví prácu za nás, dokonca aj v situáciach, kde je mimoriadne protivné spraviť to správne.

Balík definuje príkaz \epigraph na vytvorenie jedného epigrafu (ako na vrchu kapitoly):

\chapter{The Social Life of Rabbits}
\epigraph{Oh!  My ears and whiskers!}%
         {Lewis Carroll}

Ďalej definuje prostredie epigraphs na zadávanie viacerých epigrafov za sebou v istom druhu zoznamu tvoreného príkazmi \qitem:

\begin{epigraphs}
\qitem{What I tell you three times is true}%
      {Lewis Carroll}
\qitem{Oh listen do, I'm telling you!}%
      {A.A. Milne}
\end{epigraphs}

Príkaz \epigraphhead vám dovoľuje umiestniť epigraf nad hlavičku kapitoly:

\setlength{\unitlength}{1pt}
...
\chapter{The Social Life of Rabbits}
\epigraphhead[]{%
  \epigraph{Oh!  My ears and whiskers!}%
           {Lewis Carroll}%
}

(vzdalenosť) udáva, ako ďaleko nad nadpis kapitoly sa má epigraf umietniť; je to vyjadrené v zmysle \unitlength (používané v prostredí picture). Autor balíku odporúča hodnotu 70pt.

Balík tiež poskytuje rôzne triky na nastavenie rozloženia hlavičky kapitoly (potrebné, ak ste našli veľmi dlhú citáciu pre \epigraphhead), na úpravu bibliografie, na úpravu strán \part a tak ďalej. (Niektoré z týchto úprav vás povedú cez písanie vlastného balíku...)

Trieda memoir poskytuje všetky prostriedky balíku epigraph. Triedy Koma-script obsahujú príkazy \setchapterpreamble\dictum, ktoré tieto prostriedky tiež poskytujú.
epigraph.sty: CTANepigraph
balík KOMA script: CTANkoma-script
memoir.cls: CTANmemoir


Dokumenty s jinou základní velikostí písma

LaTeXové standardní třídy mají koncept základních velikostí dokumentových fontů. Tyto velikosti jsou základem, na němž jsou postaveny jiné fonty. Tyto třídy jsou postaveny na předpokladu, že nebudou používány v jiné velikosti, než kterou umožňuje TeX (10–12 bodů), avšak lidé často potřebují psát jinou velikostí. Typograficky správné řešení tohoto požadavku spočívá ve vytvoření nového designu dokumentu, avšak tato představa spoustu lidí odrazuje. Někteří lidé proto používají balíček CTANextsizes, který umožňuje vytváření dokumentů třídy article, letter, report nebo book ve velikostech 8, 9, 14, 17 a 20 bodů stejně dobře jako ve velikostech 10–12.


Dvojité riadkovanie v dokumentoch LaTeXu

Rýchlym a jednoduchým spôsobom, ako získať medziriadkový priestor pre korektúry, je zmena \baselinestretch — \linestretch{1.2} (alebo \renewcommand{\baselinestretch}{1.2}) môže pomôcť. Všimnite si, že zmeny \baselinestretch sa neuplatnia, pokým si nevyberiete nový font, takže zmenu robte v preambule predtým, než si vyberiete font. Nepokúšajte sa zmeniť \baselineskip: jeho hodnota je zmenená po každom príkaze meniacom veľkosť, takže výsledky by boli nekonzistentné.

Prednosť dajte radšej (pri produkčnom dokumente ako dizertačná práca alebo článok) riadkovaciemu balíku. Jediným momentálne podporovaným balíkom je setspace (nenechajte sa zviesť balíkom doublespace — jeho výkon v aktuálnom LaTeX je prinajlepšom problematický). Setspace vypína dvojité riadkovanie na miestach, kde by aj najdrsnejší úradník spochybnil jeho užitočnosť (poznámky pod čiarou, popisky obrázkov atď.). Je veľmi ťažké toto spraviť konzistentne, ak manipulujete s \baselinestretch sami.

Skutočným riešením je samozrejme (pre iné účely než korektúra) nepoužívať dvojité riadkovanie vôbec. Chovanie univerzít vyžadujúcich dvojité riadkovanie v prácach je neospravedlniteľné: LaTeX je sádzací systém, nie náhrada písacieho stroja a vie spraviť (správnym použitím) text s jednoduchým riadkovaním dokonca čitateľnejší ako dvojito riadkovaný text. Ak máte na systém vašej univerzity akýkoľvek vplyv (napríklad ako vedúci práce), stálo by za to pokúsiť sa o zmenu pravidiel (aspoň povoliť formát dobre navrhnutej knihy —„well-designed book“).

Dvojito riadkované príspevky sú tiež obvykle požadované na konferenciách alebo v žurnáloch. Našťastie (súdiac podľa otázok uživateľov) je táto požiadavka čoraz zriedkavejšia.

Dokumentácia setspace sa objavuje v samotnom balíku v podobe TeXovských komentárov.
setspace.sty: CTANsetspace


CSTUG
(c) 1997, 1998, 2003 Tomáš Hudec, Libor Škarvada
Poslední aktualizace: 13.11.2004 23:15