diff options
author | Karl Berry <karl@freefriends.org> | 2012-12-21 17:17:30 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2012-12-21 17:17:30 +0000 |
commit | 2257828845c52e3a8b6becfa850d1eafdf6f20e5 (patch) | |
tree | e2b67b1c091e49fe54a1a551823339974ca31410 /Master/texmf-dist/doc/cstex/opmac-u.tex | |
parent | 99eb8d14f7469f1d9a1c7edc39c573ccaa36dc44 (diff) |
new doc package cstex (20dec12)
git-svn-id: svn://tug.org/texlive/trunk@28595 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/cstex/opmac-u.tex')
-rw-r--r-- | Master/texmf-dist/doc/cstex/opmac-u.tex | 1511 |
1 files changed, 1511 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/cstex/opmac-u.tex b/Master/texmf-dist/doc/cstex/opmac-u.tex new file mode 100644 index 00000000000..bd679271be8 --- /dev/null +++ b/Master/texmf-dist/doc/cstex/opmac-u.tex @@ -0,0 +1,1511 @@ +%% OPmac -- Olsak's PlainTeX macros +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% User documetation +% This file is encoded in UTF-8 + +\chyph % use (pdf)csplain +\input opmac + +\typosize[11/13] + +\catcode`<=13 +\def<#1>{\hbox{$\langle$\it#1\/$\rangle$}} + +\activettchar" + +\insertoutline{OBSAH} \outlines{0} \hyperlinks{\Blue}{\Green} + + +\tit OPmac -- rozšiřující makra plain\TeX{}u +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\centerline{\it Petr Olšák, listopad, prosinec 2012} + +\bigskip +\centerline{\url{http://petr.olsak.net/opmac.html}} + +\def\thesecnum{}\printsec{\unskip Obsah} \maketoc + + +\sec Úvod +%%%%%%%%% + +OPmac je balík jednoduchých doplňujících maker k plain\TeX{}u umožňující +uživatelům základní \LaTeX{}ovou funkcionalitu: změny velikosti písma, +automatickou tvorbu obsahu a rejstříku, práci s {\tt bib} databázemi, +referencemi, možnost proložení referencí hyperlinkovými odkazy atd. + +Hlavní zásady balíku OPmac jsou: + +\begitems +* V jednoduchosti je síla. +* Makra nejsou univerzální, ale jsou čitelná a srozumitelná. +* Uživatel si makra může snadno předefinovat k obrazu svému. +\enditems + +Každé makro je napsáno s cílem co největší srozumitelnosti pro lidi, kteří +to budou chtít číst a měnit. Troufám si říci, že balík nabízí čtenáři +inspiraci, jak se programují \TeX{}ová makra. Z~kódu maker je cítit jistá +elegance. Technická část dokumentace k OPmac by tedy mohla sloužit jako učebnice +programování \TeX{}ových maker. +To je zásadní rozdíl od koncepce \LaTeX{}u. Když se člověk podívá +do \LaTeX{}ového souboru "latex.ltx", vystřeví se na něj množství zavináčů a +makra, ze kterých je často cítit topornost a mnohdy nepochopení vnitřní +koncepce \TeX{}u. Skoro nikdo se v~tom nevyzná. Soubor "latex.ltx" obsahuje +8000 řádků a schopnosti \LaTeX{}u jsou navíc ukryty v~desítkách různých +dalších makro souborech, zatímco v~OPmac vidíte vše pohromadě a názorně. +Navíc v některých věcech OPmac výrazně překračuje možnosti \LaTeX{}u: +generování rejstříků bez externího programu, práce s~předgenerovanou +databází bibliografických záznamů, listingy externích souborů. + +Balík OPmac nabízí podobně jako \LaTeX{} autorům textů {\it rozhraní}, tj. +smluvenou sadu značek na vymezení struktury dokumentu. Je jiná, než v +\LaTeX{}u, možná nabídne napsat zdrojový text článku poněkud přehledněji a +oku více lahodícím způsobem. Balík OPmac ovšem neřeší typografický vzhled +dokumentu. Bez doplňujících maker vyleze jednoduchý střízlivý dokument. +Předpokládá se, že autor dodatečných plain\TeX{}ových maker ušije vzhled +dokumentu na míru konkrétnímu požadavku. + +Makro OPmac ponechává implicitní fonty \csplain{}u a načítá +soubor {\tt ams-math.tex}, takže funguje kompletní matematická sazba +v~libovolné velikosti. Jsou k dispozici rozšiřující matematické +abecedy a dále stovky nových kontrolních sekvencí umožňujících uživateli +přístup ke speciálním matematickým symbolům. +Není ovšem vyloučeno, že uživatel +po načtení {\tt opmac.tex} zavede jiné fonty a použije jiný balíček typu +{\tt *-math.tex}, například {\tt tx-math.tex}. Příklad začátku dokumentu: + +\begtt +\input opmac % zavedení makra OPmac +\chyph % zapnutí češtiny +\input lmfonts % použití Latin Modern fontů +\typosize[12/14] % nastavení základní velikosti sazby +\endtt + +Makro OPmac potřebuje ke své činnosti \csplain{} optimálně ve verzi aspoň +"Nov.2012". Po vynaložení menšího úsilí funguje OPmac i v plain\TeX{}u +samotném. + +Uživatelům OPmac nabízím konzultace po emailu a uvítám hlášení o chybách. +Pojďme společnými silami tomu odstranit případné mouchy a mušky. + + +\sec Velikosti fontů a řádkování +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +Všechna makra popsaná v této sekci nastavují změny ve fontech a dalších +parametrech jen lokálně, takže po ukončení skupiny se nastavení vrací k původním +hodnotám. + +Makro "\typosize[<velikost fontu>/<řádkování>]" nastaví velikost textových i +matematických fontů a řádkování. Je-li některý z parametrů prázdný, makro +nastaví jen údaje plynoucí z neprázdného parametru. +Parametry neobsahují jednotku, jednotka pt se doplní v~makru. Příklady + +\begtt +\typosize[10/12] % to je implicitní nastavení +\typosize[11/12.5] % font velikosti 11pt, řádkování 12.5pt +\typosize[8/] % font velikosti 8pt, řádkování nezměněno. +\endtt + +Začátek dokumentu tedy může vypadat takto: + +\begtt +\input opmac \typosize[11.5/13] % sazba v písmu 11.5pt s řádkováním 13pt +\endtt + +Makro "\typoscale[<faktor-font>/<faktor-řádkování>]" zvětší nebo zmenší velikost +textových i matematických fontů resp. řádkování <faktor> krát aktuální +velikost fontů resp. řádkování. +Faktor je celé číslo, přitom 1000 znamená +jedničku (jako za slovem "scaled" v~příkazu "\font"). Je-li parametr +prázdný, je to stejné, jako by byl roven 1000. + +\begtt +\typoscale[800/800] % fonty i řádkování se zmenší na 80 % +\typoscale[\magstep2/] % \magstep2 je 1440, tj. fonty se zvětší 1,44krát +\endtt + +Tato makra můžeme použít pro nadpisy nebo poznámky s tím, že velikost bude +relativní vzhledem k základnímu písmu celého dokumentu. + +Pokud zavedete font příkazem "\font\prepinac=<metrika> <nic-nebo-at-nebo-scaled>", +pak "\prepinac" přepíná do pevně stanoveného fontu, který není ovlivněn +makry na nastavování velikosti. Ale co není, může být. Stačí font +registrovat pomocí "\regfont\prepinac" a nyní i "\prepinac" přepíná do fontu +podle velikosti nastavené pomocí "\typosize" nebo "\typoscale". Příklad: +\par\nobreak + +\begtt +\font\zapfchan=pzcmi8z \regfont\zapfchan +\typosize[20/] Taky \zapfchan přepne do Zapf-Chancery ve velikosti 20pt. +\endtt + +Při inicializaci \csplain{}u je registrováno pět fontových přepínačů +ukrytých v makrech "\rm", "\it", "\bf", "\bi", "\tt". Takže tato makra +implicitně nastavují font do stanovené velikosti. + +Na místo "\typosize" a "\typoscale" je možno použít +makra na změnu velikosti jen textových fontů +"\textfontsize[<velikost-fontu>]" a "\textfontscale[<faktor>]". +Tato makra nemění matematické fonty ani řádkování. + +Makra "\thefontsize[<velikost-fontu>]" nebo "\thefontscale[<faktor>]" +změní velikost jen aktuálního fontu, nemění +žádné jiné fonty a nemění řádkování. +Tato makra používají interní fontový přepínač "\thefont". Je možné si jej +\uv{vypůjčit} příkazem "\let" pro pozdější použití: + +\begtt +\tenrm \thefontscale[700]\let\sevenrm=\thefont \tenrm +\endtt +% +Díky přepínači "\tenrm" na konci ukázky sazba dále pokračuje neškálovaným +fontem, ovšem škálovaný font máme uložen v přepínači "\sevenrm". + +Všechna zde uvedená makra na změnu velikosti fontů jsou vybavena +inteligencí: hledají metriku, která má svou designovanou velikost nejblíže +požadované velikosti. Takže při požadavku na velikost 13pt se použije metrika +"csr12 at13pt", zatímco při velikosti 7.5pt se použije metrika +"csr8 at7.5pt". Data pro tuto inteligenci jsou přečtena ze souboru +"ams-math.tex", kde je najdete u příkazů "\regtfm". + +Poslední poznámka se týká makra "\em", které sice nepřepíná velikost fontů, +ale přepíná jejich variantu. Je to kontextové makro, které pracuje v +závislosti na aktuálně zvoleném fontu. Implicitně přepíná na "\it". Pokud +ale je aktuálním fontem "\it", přepne na "\rm". Je-li aktuálním fontem "\bf" +přepne na "\bi" a obráceně. Makro navíc správně doplní italické korekce ke +slovu před jeho použitím a za jeho použitím. Takže se o italické korekce +není nutno starat. Příklad: + +\begtt +To je {\em zdůrazněný} text. % jako: To je {\it zdůrazněný\/} text. +\it To je {\em zdůrazněný} text. % jako: To je\/ {\rm zdůrazněný} text. +\bf To je {\em zdůrazněný} text. % jako: To je {\bi zdůrazněný\/} text. +\bi To je {\em zdůrazněný} text. % jako: To je\/ {\bf zdůrazněný} text. +\endtt + + +\label[cleneni] +\sec Členění dokumentu +%%%%%%%%%%%%%%%%%%%%%% + +Dokument se může skládat z kapitol, kapitola ze sekcí a sekce z podsekcí. +Titul dokumentu vyznačte pomocí "\tit <titul><prázdný řádek>", kapitolu +zahajte "\chap<titul><prázdný-řádek>" a podobně novou sekci zahajte +"\sec<titul><prázdný-řádek>" a podsekci +"\secc<titul><prázdný-řádek>". +Takže třeba: + +\begtt +\chap Brouci + +\sec Chrousti + +\secc O nesmrtelnosti chroustů + +Bla bla bla bla ... +Bla bla bla a ještě bla. +\endtt + +Kapitoly se automaticky číslují jedním číslem, sekce dvěma čísly (číslo +kapitoly.sekce) a podsekce třemi čísly. Pokud dokument neobsahuje kapitoly, +číslo kapitoly chybí, tj. sekce má jedno číslo a podsekce dvě. + +Implicitní vzhled nadpisů kapitol, sekcí a podsekcí je definován v +makrech "\printchap", "\printsec" a "\printsecc". Můžete se na obsah těchto +maker podívat do technické dokumentace nebo do "opmac.tex". Můžete se těmi +makry inspirovat a třeba je předefinovat podle vlastního typografického návrhu. + +První odstavec za titulem kapitoly, sekce a podsekce není odsazen. Pokud jej +chcete mít odsazen jako ostatní odstavce, napište "\let\firstnoindent=\relax". + +Jestliže je název kapitoly, sekce nebo podsekce příliš dlouhý, rozlomí se do +řádků. V takovém případě je někdy lepší rozdělit název do řádků manuálně. +K tomu slouží makro "\nl", které odřádkuje v místě použití (newline). +Toto makro se navíc v obsahu chová jako mezera. + + +\label[cislovani] +\sec Další číslované objekty a odkazy na ně +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +Kromě kapitol, sekcí a podsekcí se automaticky číslují ještě rovnice a +popisky pod obrázky a pod tabulkami. + +Pokud na konci display módu je uvedeno +"\eqmark", tato rovnice bude číslovaná. Formát číslování je implicitně jediné +číslo uzavřené v kulaté závorce resetované při každém zahájení nové sekce. +Příklad: "$$ a^2 + b^2 = c^2 \eqmark $$" vytiskne +$$ + a^2 + b^2 = c^2 \eqmark +$$ + +Je-li potřeba očíslovat jedním číslem více rovnic sestavených pomocí +"\eqalignno", pak použijte "\eqmark" v posledním sloupci, například takto: + +\begtt +$$ + \eqalignno{a^2+b^2 &= c^2 \cr + c &= \sqrt{a^2+b^2} & \eqmark \cr} +$$ +\endtt +Ukázka dává tento výsledek: + +\label[vypocet] +$$ + \eqalignno{a^2+b^2 &= c^2 \cr + c &= \sqrt{a^2+b^2} & \eqmark \cr} +$$ + +Dalšími číslovanými objekty jsou popisky. +Popisek pod obrázky je potřeba uvést slovem "\caption/f" a popisek pod +tabulkami slovem "\caption/t". Pak následuje text popisku ukončený +prázdným řádkem. Příklad: + +\begtt +\hfil\table{rl}{věk & hodnota \crl\noalign{\smallskip} + 0--1 & neměřitelná \cr + 1--6 & projevující se \cr + 6--12 & výrazná \cr + 12--20 & extrémní \cr + 20--40 & mírnější \cr + 40--60 & různá \cr + 60--$\infty$ & umírněná} % vytvoření tabulky +\par\nobreak\medskip +\caption/t Závislost závislosti na počítačích na věku. +\endtt +% +Tato ukázka vytvoří: + +\label[zkouším] +\medskip +\hfil\table{rl}{věk & hodnota \crl\noalign{\smallskip} + 0--1 & neměřitelná \cr + 1--6 & projevující se \cr + 6--12 & výrazná \cr + 12--20 & extrémní \cr + 20--40 & mírnější \cr + 40--60 & různá \cr + 60--$\infty$ & umírněná} +\par\nobreak\medskip +\caption/t Závislost závislosti na počítačích na věku. +\medskip + +Vidíme, že makro "\caption/t" doplnilo slovo \uv{Tabulka} následované číslem. +Toto číslo přebírá číslo sekce a za tečku doplňuje ještě číslo +tabulky. Podobně se chová "\caption/f", jen místo slova \uv{Tabulka} se v textu +zjeví slovo \uv{Obrázek}. Obrázky a tabulky jsou číslovány nezávisle. +Popisek je centrován. Je-li popisek delší na více řádcích, je centrován +poslední řádek. + +Způsob číslování lze změnit jinou definicí makra "\thednum" (pro +rovnici), "\thetnum" (pro tabulky) a "\thefnum" (pro obrázky). Makro OPmac +je definuje implicitně takto: + +\begtt +\def\thednum{(\the\dnum)} +\def\thetnum{\thesecnum.\the\tnum} +\def\thefnum{\thesecnum.\the\fnum} +\endtt + +Makro OPmac vloží slovo \uv{Tabulka} v závislosti na nastaveném jazyce +příkazem "\chyph", "\shyph", "\ehyph". Při "\shyph" dostaneme \uv{Tabuľka} a +při "\ehyph" máme \uv{Table}. Podobně se chovají slova +\uv{Obrázek/Obrázok/Figure} a \uv{Kapitola/Kapitola/Chapter}. +Jiná automaticky generovaná slova OPmac nepoužívá. + +Předefinovat tato slova lze pomocí "\sdef", jak ukazuje následující příklad, +který zamění celá slova za zkratky. + +\begtt +\sdef{mt:t:cz}{Tab.} \sdef{mt:t:sk}{Tab.} \sdef{mt:t:en}{Tab.} +\sdef{mt:f:cz}{Obr.} \sdef{mt:f:sk}{Obr.} \sdef{mt:f:en}{Fig.} +\endtt + +\LaTeX{}oví uživatelé jsou zvyklí, že jim tabulky a obrázky plavou v +dokumentu, přičemž inklinují k horní části stránky. To se při použití OPmac +implicitně neděje, ale je možno plavání zařídit +pomocí plain\TeX{}ového makra "\topinsert" resp. "\midinsert". Například: + +\begtt +\topinsert + \hfil\table{rl}{...} % vytvoření tabulky + \medskip + \caption/t Závislost závislosti na počítačích na věku. + \par +\endinsert +\endtt + +Na automaticky číslované objekty je nutno se občas v textu odkazovat. +Protože dopředu nevíme, pod jakým číslem se rovnice, sekce, tabulka atd. +vytiskne, je potřeba použít interní lejblíky k označkování odkazovaných +objektů. K tomu slouží makro "\label[<lejblík>]", které musí předcházet +makru, jež generuje číslo. Není nutné, aby "\label" předcházel těsně danému +makru. Tedy například: + +\begtt +\label[chroust] \sec O nesmrtelnosti chroustů + +\label[zavislaci] +\hfil\table{rl}{...} % vytvoření tabulky +\caption/t Závislost závislosti na počítačích na věku. + +\label[pythagoras] +$$ a^2 + b^2 = c^2 \eqmark $$ + +Nyní můžeme hovořit o~sekci~\ref[chroust] na straně~\pgref[chroust] nebo +taky o~rovnici~\ref[pythagoras] na straně~\pgref[pythagoras]. Dále bude +potřeba upozornit na tabulku~\ref[zavislaci] na straně~\pgref[zavislaci], +která shrnuje jistý druh závislosti. +\endtt + +Text z ukázky vytvoří zhruba toto: \uv{Nyní můžeme hovořit o sekci 2.1 +na straně 13 nebo taky o rovnici (1) na straně 15. Dále bude +potřeba upozornit na tabulku 1.3.1 na straně 42, +která shrnuje jistý druh závislosti.} + +Jestliže se v textu vyskytují dopředné reference (tj. odkazujeme na objekt, +který ještě není vytištěn) nebo text odkazuje na stránky ("\pgref"), je nutné +\TeX{}ovat dokument dvakrát. + + +\sec Odrážky +%%%%%%%%%%%% + +Jednotlivé myšlenky je občas potřeba vypíchnout odrážkami. Prostředí s +odrážkami se vymezuje sekvencemi "\begitems" a "\enditems". Uvnitř tohoto +prostředí je hvězdička aktivním znakem, který zahajuje odrážky. Prostředí s +odrážkami je možné vnořit do sebe. Pomocí "\style <znak>" hned za slovem +"\begitems" je možné vymezit některé z předdefinovaných vzhledů odrážek: + +\begtt +\style o % malý puntík +\style O % velký puntík $\bullet$ (implicitní volba) +\style - % spojovník +\style n % odrážky číslované 1., 2., 3., ... +\style N % odrážky číslované 1), 2), 3), ... +\style i % odrážky číslované (i), (ii), (iii), (iv), ... +\style I % odrážky číslované I, II, III, IV, ... +\style a % odrážky s písmeny a), b), c), ... +\style A % odrážky s písmeny A), B), C), ... +\style x % malý čtvereček +\style X % velký čtvereček +\endtt + +Příklad: + +\begtt +\begitems \style n +* Tady je první myšlenka. +* A tady druhá, která je rozdělena na + \begitems \style a + * podmyšlenku + * a hned následuje další podmyšlenka, + * poslední podmyšlenka. + \enditems +* Tady je třetí myšlenka. +\enditems +\endtt +% +vytvoří následující výstup: + +\begitems \style n +* Tady je první myšlenka. +* A tady druhá, která je rozdělena na + \begitems \style a + * podmyšlenku + * a hned následuje další podmyšlenka, + * poslední podmyšlenka. + \enditems +* Tady je třetí myšlenka. +\enditems + +Chcete-li uvnitř prostředí s odrážkami vytisknout hvězdičku, pište~"\char`\*". + +Pomocí "\sdef{item:<písmeno>}{<text>}" si můžete dodefinovat vzhled odrážek +podle svých představ. Implicitní odrážku můžete předefinovat pomocí +"\def\normalitem{<text>}". + +Jednotlivá prostředí s odrážkami se odsazují podle +velikosti registru "\iindent", který je nastaven na hodnotu "\parindent" v +době čtení souboru "opmac.tex". Pokud později změníte "\parindent", +doporučuji na stejnou hodnotu nastavit "\iindent". +Vertikální mezera nad a pod prostředím s odrážkami je řízena makrem +"\iiskip". + + +\sec Tvorba obsahu +%%%%%%%%%%%%%%%%%% + +Makro "\maketoc" vytiskne v místě svého použití obsah dokumentu bez nadpisu, +jen jednotlivé řádky obsahu. Odsazení jednotlivých řádků je nastaveno na +násobky registru "\iindent". Často je potřeba dokument \TeX{}ovat vícekrát, +než se obsah zjeví a než se stránkové číslice srovnají správně, protože po +prvním zjevení obsahu se mohou stránky posunout jinam. + +Nadpis pro obsah většinou nebudeme psát pomocí "\chap" nebo "\sec", protože +by se údaj o~obsahu dostal do obsahu, což obvykle není žádoucí. Je proto +potřeba použít vnitřního makra "\printsec" a před jeho použitím vyprázdnit +obsah "\thesecnum", abychom neměli tuto sekci číslovanou. Takže obsah +vyrobíme třeba takto: + +\begtt +\def\thesecnum{}\printsec{\unskip Obsah}\maketoc +\endtt + +Tituly kapitol, sekcí a podsekcí zapisuje OPmac pro účely sestavení obsahu do +externího souboru "*.ref". Může se stát, že uživatel v těchto textech +použije nějaké komplikované makro, které se pak v souboru \uv{rozsype} do +takového stavu, že nejde vzápětí přečíst. V takovém případě je potřeba +makro zabezpečit proti expanzi při zápisu do souboru pomocí +deklarace "\addprotect\makro". Takto deklarované makro je pak zabezpečené +proti expanzi do "*.ref" souboru. Například OPmac deklaruje: + +\begtt +\addprotect~ \addprotect\TeX \addprotect\thefontsize \addprotect\em +\endtt +% +a mnoho dalších. Není možné ale předvídat všechno, co může uživatel +nacpat do titulu sekce nebo kapitoly. Pokud se tedy \uv{rozsype} +REF soubor, je potřeba si tímto způsobem zabezpečit používané makro. + + +\sec Sestavení rejstříku +%%%%%%%%%%%%%%%%%%%%%%%% + +Makro pro zanášení slov do rejstříku je navrženo s ohledem na optimalizaci +počtu úhozů na klávesnici. Autor už napsal své dílo, má daný termín +odevzdání a nyní ho čeká úmorná práce vyhledávání slov v textu, které by +měly přijít do rejstříku, a jejich vyznačování. Je třeba mu tuto práci co +nejvíce usnadnit. + +Pro zanesení slova do rejstříku slouží makro "\ii". Je to zkratka za +\uv{insert to index}. +Jeho parametr je <slovo> bez mezery ukončené mezerou (obecnější tvar parametru +uvedeme později). Toto slovo se přepíše do rejstříku, ve kterém jsou všechna +takto deklarovaná slova seřazena podle abecedy a jsou k nim připojena čísla +stránek, na kterých bylo použito odpovídající makro "\ii <slovo>". +Příklad: + +\begtt +Tady mluvím o jistém +\ii bazmek +bazmeku, který provokoval moji zvědavost. +\endtt + +Makro "\ii" viditelně neudělá v sazbě nic. Přilepí se na následující slovo (v +našem příkladě slovo \uv{bazmeku}) jako skrytá značka. Číslo strany, +kde se ta značka objeví, bude v rejstříku vedle slova \uv{bazmek}. + +Je-li "\ii" zapsáno ve vertikálním módu, zahájí se v daném místě odstavec, +aby se mohla neviditelná značka z "\ii" nalepit na následující slovo. Pokud +si to z nějakých důvodů nepřejete, použijte interní variantu makra +"\iindex{<slovo>}", která nezahajuje odstavec. + +Pokud se v rejstříku má objevit stejné slovo jako v textu, není nutno je psát +dvakrát. Stačí použít makro "\iid" (zkratka za "\ii" double): + +\begtt +Hlavní zásady jsou \iid nestrannost , \iid pravdomluvnost a \iid odvaha . +\endtt +% +To povede ke stejnému výsledku jako + +\begtt +Hlavní zásady jsou \ii nestrannost nestrannost, +\ii pravdomluvnost pravdomluvnost a \ii odvaha odvaha. +\endtt +% +Povšimněte si, že čárky a tečky jsou odstrčeny od dublovaného slova, protože +mezera je ukončovací znak parametru "\iid". Do textu se mezera vrátí právě +tehdy, když nenásleduje tečka nebo čárka. V našem příkladě před spojkou \uv{a} +mezera ve výsledku je, ale před tečkou nebo čárkou mezera není. + +Vlastnosti makra "\iid" jsou tímto popsány zcela. Vraťme se k makru "\ii", +které poskytuje další možnosti. + +Parametr "\ii" je vždy ukončen mezerou. Může obsahovat čárky (bez mezer), +které naznačují, že se do rejstříku dává více slov: + +\begtt +{\bf Definice.} +\ii lineární~prostor,vektorový~prostor +{\em Lineárním prostorem} (nebo též vektorovým prostorem) rozumíme ... +\endtt +% +Dostaneme totéž jako při "\ii lineární~prostor \ii vektorový~prostor " +a tato ukázka demonstruje ještě jednu věc: je-li potřeba do parametru "\ii" +dostat mezeru, pište vlnku. + +Pokud se v rejstříku objeví hesla skládající se z více slov, obvykle chceme, +aby u~hesla, které opakuje první slovo, se toto slovo +v rejstříku nevypisovalo opakovaně, ale +aby bylo nahrazeno pomlčkou. Například: +\par\nobreak +\medskip +\hbox{\indent lineární podprostor 12, 16, 18, 29}\nobreak +\hbox{\indent \space --- prostor 12, 16--32, 51}\nobreak +\hbox{\indent \space --- závislost 18--20, 34} +\medskip + +\noindent Při takovém požadavku pište místo vlnky mezi slovy lomítko. Příklad: + +\begtt +\ii lineární/prostor,vektorový/prostor +\endtt + +Někdy je vhodné kromě hesla lineární/prostor zařadit i heslo +prostor/lineární. Aby se to nemuselo psát dvakrát, je k dispozici zkratka +"@" napsaná za čárku na konci parametru: + +\begtt +\ii lineární/prostor,vektorový/prostor,@ +% je totéž jako \ii lineární/prostor,vektorový/prostor +% \ii prostor/lineární,prostor/vektorový +\endtt + +Počet lomítek v hesle pro rejstřík není omezen. Můžete tedy vytvořit +víceúrovňový rejstřík. Nicméně je třeba vědět, že zkratka "@" nevytváří +všechny permutace, ale jen prohazuje první údaj před lomítkem se všemi +ostatními. Takže "\ii a/b/c,@" je totéž jako "\ii a/b/c" "\ii b/c/a". + +Samotný rejstřík vznikne v místě příkazu "\makeindex". Rejstřík obsahuje +data z předchozího zpracování dokumentu \TeX{}em, takže je potřeba +\TeX{}ovat aspoň dvakrát. Makro "\makeindex" abecedně seřadí data v rejstříku +podle českých a slovenských pravidel řazení a upraví odkazy na stránky +(aby se stránky neopakovaly a inklinovaly k zápisu ve tvaru 26--28). Makro +"\makeindex" se nestará o prostředí, do kterého sazbu vyvrhne, ani o nadpis. +To musíme udělat sami. OPmac nabízí pro sazbu do více sloupců makra +"\begmulti <počet-sloupců> ... \endmulti". Příklad: + +\begtt +\sec Rejstřík\par +\begmulti 3 \makeindex \endmulti +\endtt + +Do rejstříku musejí být zařazena jen \uv{čistá} slova, která neobsahují makra +expandující na primitivní příkazy \TeX{}u. Pokud chcete vytisknout v rejstříku +něco komplikovanějšího, můžete sestavit slovník výjimek pomocí +maker "\iis <heslo><mezera>{<tisk>}" +(název makra můžeme číst jako "\ii" speciální). +Funkci si vysvětlíme na příkladu: + +\begtt +\iis chikvadrat {$\chi$-kvadrát} +\iis relax {{\tt \char`\\relax}} +\iis Geodelova/věta/o~neúplnosti {G\"odelova/věta/o~neúplnosti} +\iis věta/o~neúplnosti/Geodelova {věta/o~neúplnosti/G\"odelova} +\endtt +% +Lze pak psát "\ii relax" nebo "\ii chikvadrat" nebo +"\ii Geodelova/věta/o~neúplnosti,@". +OPmac abecedně řadí podle těchto hesel, ale když dojde +na potřebu heslo vytisknout do rejstříku, vytiskne místo těchto hesel +materiál, +který je uveden na pravé straně slovníku. +Příklad ukazuje, že tím lze +řešit nejen tisk hesel, která je potřeba ošetřit +speciálními makry (v příkladu slovo relax), ale také +výjimky abecedního řazení (písmeno "\"{\tt\char`\"o} +nemáme v české abecedě, kdoví, kam by se to zařadilo). +% +Slovník výjimek je možný zapsat kamkoli před "\makeindex", +typicky se píše na začátek dokumentu. + +Výjimku z řazení dvojhlásky ch (například ve slově mochnátý, tj. mnohonohý) +je možné zařídit pomocí tečky, která má stejně jako ostatní interpunční +znaky, nulovou řadicí platnost (OPmac hesla řadí, jakoby tam interpunkce +nebyla). Takže třeba takto: +\begtt +... \ii moc.hnátý ... +\iis moc.hnátý {mochnátý} +\endtt +% +Je-li při zpracování "\makeindex" zapnutý anglický jazyk (implicitní +nastavení nebo po přepínači +"\ehyph"), pak se ch neinterpretuje jako dvojhláska. Ostatní pravidla řazení +zůstávají nezměněna. + +Pro různé speciální znaky můžete využít znak "@", který se řadí před celou +abecedou. Speciální znak pak nahradíte až ve slovníku výjimek. +Takže třeba "\ii Ernst~@~Young" pro řazení a +"\iis Ernst~@~Young {Ernst \& Young}" pro tisk. + + +\sec Barvy, vodoznaky +%%%%%%%%%%%%%%%%%%%%% + +Makra uvedená v této sekci nastavují barvy jen při použití pdf\TeX{}u a při +výstupu do PDF. Jinak tato makra neudělají nic. + +Barvu textu můžete nastavit pomocí přepínačů "\Blue", "\Red", "\Brown", +"\Green", "\Yellow", "\White", "\Grey" a "\Black". Je potřeba si uvědomit, že tyto +přepínače pracují globálně nezávisle na skupině uvnitř boxu i mimo, prostě +kdekoli. Barvu jinou než černou je potřeba nakonec vypnout přepínačem +"\Black". Pokud barvu jinou než černou zapnete na některé stránce a text v +této barvě přeteče do stránek dalších, při opakovaném \TeX{}ování se objeví +správná barva i na následujících stránkách. Tuto skutečnost si totiž +\TeX{} musí ujasnit prostřednictvím pomocného souboru s odkazy. + +Společně s barvou textu tyto přepínače zapínají i barvu větších ploch +vytvořených pomocí "\hrule" a "\vrule". Ve specifikaci formátu PDF je +nicméně ještě jeden přepínač barev nezávislý na barvě textu a větších ploch. +Jsou to barvy linek, které mají tloušťku menší než 1pt. Tento \uv{druh +barvy} se přepíná stejnými přepínači "\Blue", ..., "\Black" ovšem +před tímto přepínačem musí bezprostředně předcházet slovo "\linecolor". +Takže "\linecolor\Red" zapne barvu linek na červenou, ale barva textu +zůstane původní. Nebo "\Black" vrátí do normálu barvu textu, zatímco +"\linecolor\Black" způsobí, že také linky budou dále černé. + +\def\podbarvi#1#2#3{\setbox0=\hbox{#3}\leavevmode + \rlap{#1\strut\vrule width\wd0}#2\box0\Black} + +Kromě uvedených barevných přepínačů si můžete \uv{namíchat} v režimu CMYK +i barvy vlastní. Stačí se inspirovat, jak jsou uvedené přepínače +definovány:\par\nobreak + +\begtt +\def\Red{\setcmykcolor{0.0 1.0 1.0 0}} +\def\Brown{\setcmykcolor{0 0.67 0.67 0.5}} +... +\endtt +% +Následuje příklad, kterým vytvoříme \podbarvi\Yellow\Brown{podbarvený text:} + +\begtt +\def\podbarvi#1#2#3{\setbox0=\hbox{#3}\leavevmode + \rlap{#1\strut\vrule width\wd0}#2\box0\Black} + \podbarvi\Yellow\Brown{Tady je hnědý text na žlutém pozadí.} +\endtt + +{\bf Vodoznakem} je míněn šedý text opakující se na každé stránce, +který je vytištěn pod obvyklým textem. Například OPmac nabízí makro +"\draft", které způsobí, že každá stránka obsahuje šikmo napsaný veliký šedý +nápis DRAFT. Můžete se inspirovat v technické dokumentaci, jak je to +uděláno. + + +\label[klikani] + +\sec Klikací odkazy +%%%%%%%%%%%%%%%%%%% + +Pokud napíšete na začátek dokumentu "\hyperlinks{<color-in>}{<color-out>}", pak +se v dokumentu při výstupu do PDF stanou klikacími: + +\begitems +* čísla generovaná pomocí "\ref" a "\pgref", +* čísla kapitol, sekcí, podsekcí a stránek v obsahu, +* čísla nebo značky generované pomocí "\cite" (odkazy na literaturu), +* texty tištěné pomocí makra "\url". +\enditems + +Poslední z uvedených odkazů je externí a bude mít barvu <color-out>, zatímco +ostatní čísla jsou interními odkazy a budou mít barvu <color-in>. Příklad: + +\begtt +\hyperlinks{\Blue}{\Green} % vnitřní odkazy modré, URL zelené +\endtt + +Je možné zobrazit rámečky ohraničující aktivní plochu pro klikání. Tyto +rámečky jsou viditelné jen v PDF prohlížeči, při tisku na tiskárně se +nezobrazují. Stačí těmto rámečkům \uv{namíchat} barvu (tentokrát RGB) a +definovat některé ze sekvencí "\pgborder", "\tocborder", "\citeborder", +"\refborder" a "\urlborder". První část jména kontrolní sekvence +určuje, jakých odkazů se to týká. Příklad: + +\begtt +\def\tocborder{1 0 0} % odkazy v obsahu vlevo budou mít červený rámeček +\def\pgborder{0 1 0} % odkazy na stránky budou mít zelený rámeček +\def\citeborder{0 0 1} % odkazy na publikace budou mít modrý rámeček +\endtt +% +Implicitně tato makra nejsou definována, což znamená, že se rámečky netvoří. + +Manuálně je možno vytvořit cíl odkazu makrem +"\dest[<typ>:<lejblík>]{<výška>}" +a klikací text makrem "\link[<typ>:<lejblík>]{<color>}{<text>}". +Parametr <typ> je typ odkazu (toc, pg, cite, ref nebo další). Parametr +<výška> určuje vzdálenost cíle nad účařím. Protože PDF prohlížeče většinou +lícují horní hranu okna přesně s místem cíle, je potřeba cíl umístit poněkud výše, +abychom viděli i odkazovaný text. + +Makro "\url" vytiskne odkaz do internetu. Příklad: "\url{http://petr.olsak.net}" +vytvoří \url{http://petr.olsak.net}. Text je psán strojopisem a může se +lámat do řádků za lomítky. Je-li nastaveno "\hyperlinks", stává se tento +text aktivním vnějším odkazem. + +Obsah dokumentu se dá přesunout do levé záložky PDF prohlížeče tak, že klikáním na +něj se přechází v~dokumentu na požadované místo. Ve specifikaci PDF se tomu +říká \uv{outlines}. Makro, které uvedenou věc zařídí, se jmenuje +"\outlines{<úroveň>}". Záložky budou implicitně rozevřeny do <úrovně> +včetně. Takže při <úroveň>=0 jsou +vidět jen úrovně kapitol, při <úroveň>=1 vidíme i sekce a při +<úroveň>$\geq$2 vidíme rozevřeno všechno. Bohužel písmo v záložkách typicky +nezvládá správně česká a slovenská písmena. Proto OPmac konvertuje texty do +záložek tak, že tam jsou bez hacku a carek. Chcete-li vypnout tuto konverzi, +napište "\def\toasciidata{}". + +Samotný řádek do záložek vložíte makrem +"\insertoutline{<text>}". Text v~tomto případě nepodléhá konverzi. +V sazbě se neobjeví nic, jen se stane cílem, když uživatel na záložku +s~<textem> klikne. Obsah se do záložek vloží celý během činnosti makra +"\outlines", takže další řádky vložené pomocí "\insertoutline" tomuto +obsahu předcházejí nebo následují podle toho, zda předcházejí nebo následují +místu, kde je použito "\outlines". + + +\sec Verbatim texty +%%%%%%%%%%%%%%%%%%% + +Vytisknout část textu verbatim \uv{tak jak je} bez interpretace +speciálních znaků lze +v prostředí vymezeném makry "\begtt" a "\endtt". Příklad: + +{\def\tthook{\adef/{\string\endtt}} +\begtt +\begtt +Tady je vše + napsáno bez interpretace speciálních znaků, jakými + jsou mezera, %, $, \, ~, ^, _, {, }, #, &. +/ +\endtt +} +Ve výstupu se objeví: + +\begtt +Tady je vše + napsáno bez interpretace speciálních znaků, jakými + jsou mezera, %, $, \, ~, ^, _, {, }, #, &. +\endtt +% +Není-li za "\endtt" prázdný řádek, nemá následující odstavec výchozí +odsazení. + +Je-li před zahájením "\begtt" nastaven registr "\ttline" na nezápornou +hodnotu, bude makro číslovat řádky. První řádek má číslo "\ttline+1" +a po práci makra se registr "\ttbline" posune na číslo posledního +vytištěného řádku. Takže v~dalším prostředí "\begtt" ... "\endtt" +číslování pokračuje tam, kde přestalo. Implicitně je "\ttline=-1", +takže číslování neprobíhá. + +Levé odsazení každého řádku v "\begtt...\endtt" je nastaveno na "\ttindent". +Tento registr má výchozí hodnotu rovnu "\parindent" (v době čtení souboru +"opmac.tex"). Vertikální mezera nad a pod verbatim výpisem je vložena +makrem "\ttskip". + +Makro "\begtt" zahájí skupinu a v ní nastaví všem speciálním znakům plain\TeX{}u +kategorii 12. Pak spustí makro "\tthook", které +je implicitně prázdné. V něm je možno nastavit další kategorie znaků podle +potřeby. Definici aktivních znaků je potřeba udělat +pomocí "\adef<znak>{<text>}". Normální "\def" nefunguje, důvod je +vysvětlen v~TBN, str.~26. Příklad: + +{\def\tthook{\adef/{\string\endtt}} +\begtt +\def\tthook{\adef!{?}} +\begtt +Nyní se každý vykřičník promění v otazník. Že nevěříte? Vyzkoušejte! +/ +\endtt +} +Jednou definovaný "\tthook" funguje ve všech verbatim výpisech, dokud jej +nepředefinujete jinak. Tipy: +\par\nobreak +\begtt +\def\tthook{\typosize[9/11]} % jiná velikost verbatim výpisů +\def\tthook{\ttline=0} % všechny výpisy číslovány od jedničky +\def\tthook{\adef{ }{\char`\ }} % místo mezer budou vaničky +\endtt + +Verbatim lze tisknout i v řádku uvnitř odstavce. Pomocí "\activettchar<znak>" si +uživatel zvolí znak, který bude aktivní a bude zahajovat i končit verbatim +výpisy uvnitř odstavce. Verbatim výpis se v odstavci nikdy nerozlomí (je v +boxu). Autor makra OPmac obvykle nastavuje +"\activettchar"{\tt\char`\"}, takže pak může psát třeba toto: + +\begtt +Je-li před zahájením "\begtt" nastaven registr "\ttline" na nezápornou... +\endtt +% +Znak nastavený pomocí "\activettchar" má lokální platnost a ruší se také +pozdějším nastavením "\activettchar" na jinou hodnotu. Při zahájení každého +řádkového verbatim výpisu se spustí makro "\intthook", které je implicitně +prázdné. {\bf Upozornění:} deklaraci "\activettchar<znak>" proveďte až po přečtení všech +makrosouborů. Důvod: "\activettchar" nastavuje <znak> jako aktivní, což může při +čtení souborů maker vadit. + +Verbatim listingy je možné tisknout z externího souboru. Například + +\begtt +\verbinput (12-42) program.c +\endtt +% +vytiskne ve stejné úpravě, jako při použití "\begtt", ... "\endtt", +řádky 12 až 42 ze souboru "program.c". +Parametry v kulaté závorce mohou vypadat také takto: + +\begtt +\verbinput (-60) program.c % výpis od začátku souboru do řádku 60 +\verbinput (61-) program.c % výpis od řádku 61 do konce souboru +\verbinput (-) program.c % výpis celého souboru +\verbinput (70+10) program.c % čtení od řádku 70, přečteno bude 10 řádků +\endtt + +V dalších ukázkách OPmac čte od řádku, který následuje za naposledy +přečteným řádkem souboru z předchozího volání "\verbinput". Je-li soubor +čten poprvé, začíná číst prvním řádkem. Tento prvně čtený +řádek je označen v komentářích jako "n". + +\begtt +\verbinput (+10) program.c % čtení deseti řádků od řádku n +\verbinput (+) program.c % čtení od řádku n do konce souboru +\vebrinput (-5+7) program.c % vynechá 5 řádků, od n+5 tiskne dalších 7 +\verbinput (-3+) program.c % vynechá 3 řádky, tiskne do konce souboru +\endtt +% +Narazí-li čtení na konec souboru dřív, než je vytištěno vše, co si žádá +uživatel, přepis souboru je ukončen a žádná chyba se nezjeví. + +Výpisy provedené makrem "\verbinput" jsou ovlivněny registrem +"\ttindent" a makrem "\tthook" stejně, jako prostředí "\begtt"\dots"\endtt". +Při "\ttline"{\tt\char`\<-1} se netisknou čísla řádků. Je-li "\ttline=-1", čísluje se podle +řádků souboru. Je-li "\ttline" nezáporné, čísluje se od "\ttline+1". + + +\sec Jednoduché tabulky +%%%%%%%%%%%%%%%%%%%%%%% + +\LaTeX{}oví uživatelé jsou zvyklí při vymezení pravidel zarovnávání v +tabulce používat deklarace typu "{cclr}". Každé písmeno vymezí jeden sloupec +v tabulce, přitom písmeno "c" znamená centrovaný sloupec, "l" je sloupec +zarovnaný doleva a "r" sloupec zarovnaný doprava. +Podobnou možnost deklarace jednoduchých tabulek nabízí +OPmac v makru "\table{<deklarace>}{<data>}". Příklad: + +\begtt +\table{||lc|r||}{\crl + Měsíc & zboží & cena\hfil \crli \tskip.2em + leden & noťas & 14 kKč \cr + únor & skejt & 2 kKč \cr + červenec & jachtička & 3,4 MKč \crl} +\endtt + +Uvedený příklad povede na následující výsledek: + +\medskip +\hfil\table{||lc|r||}{\crl + Měsíc & zboží & cena\hfil \crli \tskip.2em + leden & noťas & 14 kKč \cr + únor & skejt & 2 kKč \cr + červenec & jachtička & 3,4 MKč \crl} +\medskip + +Ve skutečnosti výsledek nebude uprostřed řádku, ale tam, kam "\table" +napíšete. Kromě písmen "c", "l", "r" se v <deklaraci> mohou objevit znaky +\uv{svislítko}, které vymezují svislou čáru mezi sloupci. + +V datové části musí být tolik sloupců, kolik jich bylo deklarováno. +Jsou odděleny znakem "&" nebo symbolem pro konec řádku "\cr". Z toho vyplývá, +že na každém řádku musí být v datové části o jeden znak "&" méně, než je počet sloupců. +Nedodržíte-li toto pravidlo, \TeX{} se pomstí chybovou hláškou + +\begtt +! Extra alignment tab has been changed to \cr +\endtt +% +nebo vytvoří nedomrlou tabulku. Místo symbolu pro konec řádku "\cr" je možno +použít "\crl" (přidá jednoduchou vodorovnou čáru) nebo "\crll" (přidá dvojitou +čáru), "\crli" (přidá čáru přerušenou svislými dvojitými linkami, +tj.~{\bf i}nterrupted) a +"\crlli" (přidá dvojitou čáru přerušenou svislými dvojitými linkami). +Těsně za "\cr", "\crl" atd. může následovat "\tskip<dimen>", +což vytvoří vertikální mezeru velikosti <dimen>, přitom se nepřeruší svislé +čáry v tabulce. + +Za povšimnutí stojí, že v ukázce u slova \uv{cena} je připojeno +"\hfil", což vloží pružnou mezeru vpravo od položky. Protože sloupec "r" +obsahuje implicitní stejnou pružnou mezeru vlevo, je slovo \uv{cena} centrováno, +zatímco ostatní údaje ve sloupci jsou zarovnány +napravo. + +Makro "\table" pracuje s předdefinovanými hodnotami, které můžete změnit, +pokud chcete dosáhnout jiný vzhled tabulky: + +\begtt +\def\tabiteml{\enspace} % co vkládá vlevo každé datové položky +\def\tabitemr{\enspace} % co vkládá vpravo každé datové položky +\def\tabstrut{\strut} % podpěra vymezující výšku řádků +\def\vvkern{1pt} % velikost mezery mezi dvojitou svislou linkou +\def\hhkern{1pt} % velikost mezery mezi dvojitou vodorovnou linkou +\endtt + +Vyzkoušejte si tabulku po "\def\tabiteml{}\def\tabitemr{}". Sloupce budete +mít na sebe nalepeny bez mezer. Příklad definice "\tabstrut": + +\begtt +\def\tabstrut{\vrule height11pt depth3pt width0pt} +\endtt +% +Tento příklad vymezuje v tabulce vzdálenost mezi účařím 14pt, z toho +11pt je rezervováno pro přetahy nad účařím a 3pt pro přetahy pod +účařím. Vyskytne-li se větší písmeno, zvětší to v~daném místě řádkování. + +OPmac definuje "\strut" závislý na zvoleném řádkování (při použití příkazu +"\typosize") zhruba takto: + +\begtt +\def\strut{\vrule height.709<baselineskip> depth.291<baselineskip> width0pt} +\endtt + +Tip: vyzkoušejte si +"\def\tabiteml{$\enspace} \def\tabitemr{\enspace$}". Ty dolary způsobí, že +každá datová položka bude zpracována v matematickém módu. Makro "\table" se +nyní podobá \LaTeX{}ovému prostředí "array". + +Makro "\frame{<text>}" vytvoří rámeček kolem <textu> s vnitřními okraji +o~velikostech "\vvkern" a "\hhkern". Například "\frame{ahoj}" vytvoří \frame{ahoj}. +Povšimněte si, že účaří rámovaného textu zůstalo nezměněno. Pokud chcete mít +tabulku s dvojitými čarami, je výhodné ji vytvořit po stranách +a nahoře a dole s~jednoduchými čarami a celou ji zabalit do "\frame": + +\vbox{ +\begtt +\frame{\table{|c||l||r||c|}{\crl + \multispan4\vrule\hss\bf Nadpis\hss \vrule\tabstrut \crl + \noalign{\kern\hhkern}\crli + první & druhý & třetí & čtvrtý \crlli + sedmý & osmý & devátý & desátý \crli}} +\endtt +\par\removelastskip\vskip-8.3ex +\hfill\frame{\table{|c||l||r||c|}{\crl + \multispan4\vrule\hss\bf Nadpis\hss \vrule\tabstrut \crl + \noalign{\kern\hhkern}\crli + první & druhý & třetí & čtvrtý \crlli + sedmý & osmý & devátý & desátý \crli}} +} +\medskip + +Kromě předdefinovaných znaků "c,l,r,|" se může v "<deklaraci>" objevit +libovolný další symbol, stačí připravit +"\def\tabdeclare<symbol>{<vlevo>##<vpravo>}". V technické dokumentaci je +příklad deklarace položky "P", která se při delším textu láme do více řádků. + +Tloušťka všech čar je v \TeX{}u implicitně 0,4pt. OPmac umožňuje tuto +implicitní tloušťku nastavit jinak pomocí "\rulewidth=<šířka>", například +"\rulewidth=1.5pt". + +Další příklad použití makra "\table" najdete v sekci~\ref[cislovani]. +Pokud potřebujete vytvořit komplikovanější tabulky, nezbude než prostudovat +TBN, kapitolu čtvrtou. + + +\sec Vkládání obrázků +%%%%%%%%%%%%%%%%%%%%% + +Nejprve je potřeba nastavit šířku obrázku do registru "\picw" a pak je možné +použít makro "\inspic <jméno>.<přípona>". Obrázek se vloží jako "\hbox" dané +šířky "\picw". Registr "\picw" si ponechá svou hodnotu, takže další obrázek +bude mít stejnou šířku, pokud ji nezměníte. +Přípony souboru s obrázkem mohou být: "png", "jpg", "jbig2", "pdf". + +Obrázek je vyhledán v adresáři "\picdir". Toto makro je implicitně prázdné, +tj. obrázek je vyhledán v aktuálním adresáři. + +O umístění obrázku v sazbě se musíte postarat vlastními prostředky. +Například: + +\begtt +\picw=.5\hsize \centerline{\inspic hodiny.jpg }\nobreak\medskip +\caption/f Hodiny na brněnském náměstí Svobody. +\endtt + +Makro není vhodné použít při opakovaném použití stejného obrázku v dokumentu +(opakující se grafika na každé straně nebo obrázek jako +odrážka ve výčtu položek). V takovém případě je vhodnější natáhnout obrázek +do PDF dokumentu jen jednou pdf\TeX{}ovým příkazem "\pdfximage" a dále +opakovat jeho zobrazení na různých místech dokumentu pomocí "\pdfrefximage". +Dokumentace k pdf\TeX{}u řekne víc. + +Makro "\inspic" pracuje jen v pdf\TeX{}u při výstupu do PDF. Pokud máte +nastaven výstup do DVI, +můžete použít makro "epsf.tex". Vzhledem k omezeným možnostem (obrázek jen +ve formátu EPS) není tento způsob práce s obrázky v makru OPmac podporován. + +Chcete-li \uv{programovat} obrázky přímo ve zdrojovém textu \TeX{}u, lze +použít plain\TeX{}ové rozhraní vynikajícího makra Ti{\em k}Z, se kterým je OPmac +kompatibilní. + +\sec PDF transformace +%%%%%%%%%%%%%%%%%%%%% + +Veškerá sazba v pdf\TeX{}u může podléhat lineární transformaci, která je +daná transformační maticí +"\pdfsetmatrix{<a> <b> <c> <d>}". Tato matice se v lineární algebře +zapisuje do dvou řádků: +$$ + \pmatrix{a&c\cr b&d}, \quad \hbox{např. zvětšení: } + \pmatrix{s_1&0\cr 0&s_2}, \quad \hbox{nebo rotace: } + \pmatrix{\cos\varphi&\ -\sin\varphi \cr \sin\varphi&\ \hphantom-\cos\varphi}. +$$ +Pdf\TeX{}ové primitivy "\pdfsetmatrix", "\pdfsave" a "\pdfrestore" bohužel +nejsou v dokumentaci pdf\TeX{}u uvedeny, tak je musím dokumentovat aspoň +zde. Příkaz "\pdfsave" uloží stávající transformační matici a aktuální bod +sazby. V době konání příkazu "\pdfrestore" se matice vrátí do původní podoby +a aktuální bod sazby v té době musí být na stejném místě, jako byl v~době +"\pdfsave", jinak se nám sazba rozjede a pdf\TeX{} nadává. Toho se dá +docílit např. pomocí "\pdfsave...\rlap{<text>}\pdfrestore". +Transformační matice se nastavují pomocí "\pdfsetmatrix". Opakované použití +"\pdfsetmatrix" způsobí pronásobení transformační matice novou maticí, +takže to funguje jako skládání zobrazení. OPmac nabízí dvě užitečná makra +"\pdfscale{<vodorovně>}{<svisle>}" a "\pdfrotate{<úhel>}". Parametr "<úhel>" +je interpretován ve stupních. Tato makra provedou odpovídající +"\pdfsetmatrix". + +Aplikujeme-li více matic za sebou, je potřeba vědět, že výchozí text +prochází transformací jednotlivých matic \uv{odzadu dopředu}, takže +například: + +\begtt +První: \pdfsave \pdfrotate{30}\pdfscale{-2}{2}\rlap{text1}\pdfrestore + % text1 je zvětšen dvakrát a překlopen podél svislé osy, + % dále je otočen o 30 stupňů doleva a konečně je vytištěn. +druhý: \pdfsave \pdfscale{-2}{2}\pdfrotate{30}\rlap{text2}\pdfrestore + % text2 je otočen o 30 stupňů doleva, dále zvětšen a překlopen + % podél svislé osy, nakonec vytištěn. +třetí: \pdfsave \pdfrotate{-15.3}\pdfsetmatrix{2 0 1.5 2}\rlap{text3}% + \pdfrestore % nejprve zkosení, pak otočení o 15.3 stupňů doprava +\endtt + +\bigskip +Ukázka dává následující výsledek. První: + \pdfsave \pdfrotate{30}\pdfscale{-2}{2}\rlap{text1}\pdfrestore +druhý: + \pdfsave \pdfscale{-2}{2}\pdfrotate{30}\rlap{text2}\pdfrestore +třetí: + \pdfsave \pdfrotate{-15.3}\pdfsetmatrix{2 0 1.5 2}\rlap{text3}% + \pdfrestore +\bigskip\bigskip + + + +\sec Poznámky pod čarou a na okraji +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +{\bf Poznámku pod čarou} +vytvoříte pomocí "\fnote{<text>}". V místě tohoto zápisu +v textu se objeví automaticky generovaná značka a pod čarou dole na stránce +je tato značka zopakovaná a vedle ní je <text>. + +Značka je implicitně definovaná jako číslo v exponentu +následované závorkou. Číslování poznámek je na každé stránce započato +jedničkou. Čísla jsou vygenerována správně až po +opakovaném \TeX{}ování. Při prvním zpracování jsou místo čísel otazníky. + + +Implicitní značkování je možné změnit předefinováním makra "\thefnote". +Například po + +\begtt +\def\thefnote{\ifcase\locfnum\or + *\or**\or***\or$^{\dag}$\or$^{\ddag}$\or$^{\dag\dag}$\fi} +\endtt +% +bude první poznámka mít hvězdičku, druhá dvě hvězdičky atd. Uvedená +definice předpokládá, že na jedné stránce nebudete mít více než 6 poznámek. + +Makro "\fnote" je možné zapsat jen v běžném textu odstavce, nikoli v boxu +(například v~tabulce). Chcete-li odkazovat třeba z tabulky, je nutné v +tabulce vytvořit jen značky a mimo tabulku (ovšem tak, aby to neuteklo na +jinou stránku) zapíšete texty poznámek. K vytvoření značky použijte +"\fnotemark<číslo>" a text (bez značky) vytvoří "\fnotetext{<text>}". +Příklad: + +\begtt +{\typoscale[/1200]\table{||lc|r||}{\crl + Měsíc & zboží & cena\hfil \crli \tskip.2em + leden & noťas\fnotemark1 & 14 kKč \cr + únor & skejt\fnotemark2 & 2 kKč \cr + červenec & jachtička\fnotemark3 & 3,4 MKč \crl}} +\par\nobreak \fnotetext{notebook}\fnotetext{scateboard}\fnotetext{jachta} +\endtt +% +Čísla za slovy "\fnotemark" jsou vztažena vzhledem k jedné tabulce a nemusejí +souviset se skutečným číslem poznámky. Například, je-li na stejné stránce nad +tabulkou z ukázky normální "\fnote", bude mít vytištěno číslo 1, +odkazy v tabulce budou mít čísla~2, 3, 4 a případná další poznámka pod +tabulkou na stejné stránce obdrží číslo 5. + +{\bf Poznámku na okraji stránky} vytvoříte pomocí řídicí sekvence +"\mnote{<text>}". Poznámka je vlevo (na pravou zarážku) na sudé stránce a je +vpravo (na levou zarážku) na liché stránce. Tuto vlastnost mají poznámky až +po opakovaném \TeX{}ování. Při prvním \TeX{}ování jsou všechny poznámky vpravo. +Chcete-li mít poznámky i při opakovaném \TeX{}ování jen vpravo nebo jen +vlevo, pište do úvodu dokumentu "\fixmnotes\right" nebo "\fixmnotes\left". + +Řídicí sekvenci "\mnote{<text>}" můžete napsat do odstavce nebo před +odstavec. S odstavcem samotným to nic neudělá. Řádek odstavce, kde je +"\mnote" vložena jako neviditelná značka, je na stejné úrovni, jako první +řádek textu poznámky. + +Text poznámky je od sazby odsazen o "\mnoteindent" a maximální šířka +poznámky je "\mnotesize". Text poznámky se rozlomí do více řádků, aby +nepřesáhl "\mnotesize". + +Není ošetřen případ, kdy je "\mnote" víceřádková a je umístěna na úroveň +například posledního řádku strany. Pak text poznámky přečuhuje poněkud +dolů ze strany. Je tedy nutné "\mnote" použít jen na velmi krátké poznámky a +případně si tento jev pohlídat a ošetřit před definitivní sazbou manuálně. + + +\sec Bibliografické údaje +%%%%%%%%%%%%%%%%%%%%%%%%% + +Pomocí "\cite[<lejblík>]" nebo "\cite[<lejbík1>,<lejblík2>,<lejblík3>]" +(atd.) vytvoříme v textu odkazy na položky v seznamu literatury. V seznamu +literatury je třeba uvést záznamy, které mají odkazované lejblíky. Tyto +záznamy dostanou v seznamu automaticky vygenerovaná čísla a sekvence "\cite" +se pak promění na číselné odkazy, například [27] nebo [18,~24,~42] (atd.). +Souvislé řady čísel [1,~2,~3,~5,~6] se promění v~intervaly [1--3,~5--6~] +jen tehdy, když je v úvodní deklaraci dokumentu napsáno "\shortcitations". + +Seznam literatury je možné vložit do dokumentu třemi různými +způsoby: + +\begitems +* Manuálně: pomocí jednotlivých položek "\bib[<lejblík>]" přímo v dokumentu. +* S využitím Bib\TeX{}u makrem "\usebibtex{<bib-báze>}{<bst-styl>}". +* Využitím jednou vygenerované databáze makrem "\usebbl/<typ> <bbl-báze>". +\enditems + +Jednotlivé způsoby jsou níže probrány podrobněji. + +\medskip\noindent +{\bf Manuálně vložený seznam literatury} v dokumentu vypadá například takto: + +\begtt +\bib[tbn] P. Olšák. {\it\TeX{}book naruby.} 468~s. Brno: Konvoj, 1997. +\bib[tst] P. Olšák. {\it Typografický systém \TeX.} + 269~s. Praha: CSTUG, 1995. +\endtt +% +Výše uvedená ukázka dá následující výstup: +\medskip +\bib[tbn] P. Olšák. {\it\TeX{}book naruby.} 468~s. Brno: Konvoj, 1997. +\bib[tst] P. Olšák. {\it Typografický systém \TeX.} + 269~s. Praha: CSTUG, 1995. + +\medskip\noindent +{\bf Využití Bib\TeX{}u.} Předpokládá se, že uživatel disponuje souborem +"<bib-báze>.bib", ve kterém jsou nashromážděny bibliografické údaje ve +formátu, v jakém je čte program Bib\TeX{}. V~\TeX{}ové distribuci jistě +najdete nějaký "*.bib" soubor, tak se do něj podívejte. Lejblíkem je první +údaj u~každého bibliografického záznamu. Soubor "<bib-báze>.bib" by měl +obsahovat bibliografické údaje, které jsou nadmnožinou toho, co potřebuje +uživatel vypsat ve svém dokumentu. +Na místo, kde budete chtít vypsat seznam +literatury, vložte následující pokyn: + +\begtt +\usebibtex{<bib-báze>}{<bst-styl>} +\endtt + +Parametr "<bib-báze>" je jméno souboru bez přípony ".bib", ve kterém jsou +připraveny bibliografické záznamy. Parametr "<bst-styl>" je jméno +stylového souboru bez přípony ".bst", který použije Bib\TeX{} pro konverzi ze zdroje +"<bib-báze>.bib" do výstupu "<dokument>.bbl". Tento výstup pak bude makrem +"\usebibtex" přečten a vložen do dokumentu. Typicky používané <bst-styly> +jsou "plain", "alpha", "apalike", "ieeetr", "unsrt". +Styl "alpha" způsobí, že se místo čísel začnou zjevovat v dokumentu zkratky, +a to jednak v seznamu literatury a jednak v místě výskytu příkazů "\cite". +V takovém případě pochopitelně "\shortcitations" nefunguje a pokud byste se +o něj pokusili, tak makro havaruje. +Existují desítky, možná stovky dalších ".bst" stylů, viz internet. + + +Při prvním zpracování dokumentu \TeX{}em makro "\usebibtex" připraví vstupní +pokyny pro Bib\TeX{} do souboru "<dokument>.aux" a zjistí, že soubor +"<dokument>.bbl" zatím neexistuje. To dá najevo na terminálu: + +\begtt +WARNING: .bbl file doesn't exist. Use the ``bibtex <dokument>'' command. +\endtt + +Přejděte tedy na příkazový řádek a napíšeme "bibtex <dokument>". Tím se +spustí program Bib\TeX{}, který přečte ze souboru "<dokument>.aux" vstupní +pokyny (kterou otevřít ".bib" databázi, který ".bst" styl a jaké lejblíky +jsou požadovány) a na základě toho vygeneruje soubor "<dokument>.bbl", který +obsahuje výběr jen těch záznamů, které byly uživatelem citovány pomocí +"\cite". Soubor "<dokument>.bbl" je navíc zkonvertovaný z +".bib" formátu do formátu čitelného \TeX{}em. +Tato konverze je řízena stylem ".bst". + +Když znovu \TeX{}ujete dokument, makro "\usebibtex" v tomto případě shledá, +že soubor "<dokument>.bbl" existuje, načte jej a vytvoří seznam literatury. +Seznam obsahuje jen citované položky. Druhé spuštění \TeX{}u obvykle +nestačí, protože příkazy "\cite" jsou typicky dopřednými referencemi, takže +zatím nemají ponětí o přiřazení čísel k "<lejblíkům>" v seznamu literatury. +To se dozvědí až v~místě použití "\usebibtex", což je typicky na konci +dokumentu. Takže teprve třetí \TeX{}ování dá vše do pořádku. + +Seznam literatury obsahuje po použití Bib\TeX{}u jen citovaná dílka. Pokud +chcete do seznamu zařadit další položky, které nejsou v textu explicitně +odkazovány příkazem "\cite", použijte "\nocite[<lejblík>]". Toto makro dá +Bib\TeX{}u pokyn, aby do seznamu zahrnul i položku s~<lejblíkem>, ale v +místě použití tohoto makra se nevytiskne nic. Konečně pomocí "\nocite[*]" dáváme +Bib\TeX{}u vzkaz, že chceme mít v seznamu literatury celou ".bib" databázi. + +Zdroj bibliografických záznamů může být ve více ".bib" souborech. V +takovém případě stačí jejich názvy oddělit čárkou: +"\usebibtex{<bib-báze1>,<bib-báze2>}{<bst-styl>}". + +Někdy se stane, že autoři ".bib" databází nebo ".bst" stylů neopustili při +tvorbě těchto souborů \LaTeX{}ový způsob myšlení a občas jim uklouzne nějaká +\LaTeX{}ová konstrukce z prstů až do počítače. Odtud se dostane do +čteného ".bbl" souboru a náš plain\TeX{} si s~tím nebude vědět rady. K tomu +slouží seznam "\bibtexhook", kde můžete uvést definice těchto \LaTeX{}ových +konstrukcí. Tyto definice budou mít lokální platnost jen při čtení ".bbl" +souboru. Například + +\begtt +\def\bibtexhook{\def\emph##1{{\em##1}}\def\frac##1##2{{##1\over##2}}} +\endtt + +\noindent +{\bf Využití jednou vygenerované databáze.} Tvorba seznamů +literatury Bib\TeX{}em má jistou nevýhodu. Pokud později do dokumentu +vložíte další "\cite[<lejblík>]", musíte veškerou anabázi s bib\TeX{}em +provést znovu. A protože v současné době probíhá inflace odborných publikací +způsobená tím, že se podle kvanta publikací a citací daňový poplatník +rozhodl odměňovat vědce, je každé zjednodušení práce s bibliografickými +záznamy přínosné. +Makro OPmac navrhuje řešení, při kterém stačí použít Bib\TeX{} pro mnoho nových +článků jen jednou. + +\begitems \style n +* Vytvořte si zvláštní dokument "<mojebáze>.tex", do kterého napíšete: +\begtt +\input opmac \genbbl{<bib-báze>}{<bst-styl>} \end +\endtt +* Po \TeX{}ování dokumentu "<mojebáze>.tex" spusťte "bibtex <mojebáze>". + Tím se vytvoří soubor "<mojebáze>.bbl". +* Zpracujte \TeX{}em soubor "<mojebáze>.tex" ještě jednou. Vytvoří se + seznam veškeré literatury, který byl v souboru "<bib-báze>.bib", přitom každá + položka je označena svým <lejblíkem>. Vytiskněte si tento výstup a + dejte si jej na nástěnku. +* Uložte soubor "<mojebáze>.bbl" někam, kde jej umí přečíst \TeX{} bez ohledu + na to, v kterém pracujete adresáři. +* Přejděte k editaci svého dokumentu, pište "\cite" nebo "\nocite" podle potřeby a + v místě seznamu literatury dejte sekvenci "\usebbl/<typ> <mojebáze> ". + Údaj <typ> má tyto možnosti: +\begtt +\usebbl/a <mojebáze> % vypsat kompletně celou <mojebaze> (a=all), +\usebbl/b <mojebáze> % jen \(no)cite údaje řadit dle <mojebaze> (b=base), +\usebbl/c <mojebáze> % jen \(no)cite řadit podle pořadí citace (c=cite). +\endtt +\removelastskip +\enditems + + +Kroky 2 až 4 budete muset opakovat pouze tehdy, když budete chtít přidat do +"<mojebáze>.bbl" další údaj, tj. po upgradu souboru "<bib-báze>.bib". +Prudí-li různí odběratelé vaší vědecké činnosti požadavky na různé +"<bst-styly>", stačí si vygenerovat +podle různých stylů různé soubory typu "mybbl-plain.bbl", +"mybbl-ieeetr.bbl". + + +\sec Matematická sazba +%%%%%%%%%%%%%%%%%%%%%% + +Následující text popisuje vlastnosti souboru maker "ams-math.tex" (resp. +"tx-math.tex" při použití některých PostScriptových fontů). Toto makro je +makrem OPmac načítáno, takže uvedené vlastnosti jsou k dispozici též +uživatelům OPmac. + +V matematické sazbě (mezi dolary) nefungují přepínače textových fontů +deklarovaných příkazem "\font". Místo toho se tam přepíná mezi tzv. {\it +matematickými abecedami}. Jakmile začnete psát písmena +mezi dolary bez použití přepínače, je použita implicitní matematická abeceda +"\mit". Celkově jsou k dispozici následující abecedy: + +{\def\tthook{\catcode`\$=3 \catcode`/=0 \medmuskip=0mu}% +\begtt +\mit % matematická kurzíva $abc-xyz,ABC-XYZ$ +\it % textová kurzíva $/it abc-xyz,ABC-XYZ$ +\rm % textová antikva $/rm abc-xyz,ABC-XYZ$ +\cal % jednoduché cal. znaky $/cal ABC-XYZ$ +\script % kroucenější cal. znaky $/script ABC-XYZ$ +\frak % fraktura $/frak abc-xyz,ABC-XYZ$ +\bbchar % zdvojené tahy $/bbchar ABC-XYZ$ +\bf % sans serif bold $/bf abc-xyz,ABC-XYZ$ +\bi % sans serif bold slanted $/bi abc-xyz,ABC-XYZ$ +\endtt +} + +Dále jsou v matematické sazbě k dispozici stovky symbolů dostupných pomocí +"\<něco>", například "\alpha" $\alpha$, "\geq" $\geq$, "\sum" $\sum$, +"\sphericalangle" $\sphericalangle$, "\bumpeq", $\bumpeq$. Seznam všech těchto symbolů +najdete v dokumentaci k AMS\TeX{}u, která se typicky jmenuje "amsguide.ps". + +Matematická sazba funguje v nastavené velikosti písma podle "\typosize" nebo +"\typoscale". V~nadpisech se doporučuje použít boldifikovanou sadu všech +fontů, která se zapíná pomocí makra "\boldmath". Například: + +\begtt +\def\nadpis#1\par{\centerline{\typosize[17/]\bf\boldmath #1}} +\nadpis Tady je nadpis včetně vzorce $\int_a^b f(x) {\rm d}x$ +\endtt + +Makro "ams-math.tex" nastavuje jako implicitní abecedu matematickou kurzívu, +která je mírně jinak kreslena než kurzíva textová. Naopak makro +"tx-math.tex" nastavuje jako implicitní abecedu textovou kurzívu převzatou z +\uv{okolního} textového fontu. Ta se ve vzorečcích spolu s~textovým fontem +bude esteticky snášet daleko lépe. Chcete-li toto implicitní chování změnit, +je možné použít následující globální přepínače: + +\begtt +\itvariables % implicitní abeceda bude textová kurzíva, +\mitvariables % implicitní abeceda bude matematická kurzíva. +\endtt + +\sec Okraje +%%%%%%%%%%% + +Plain\TeX{} nastavuje levý okraj 1~in a šířku sazby ("\hsize") nastavuje +tak, aby i pravý okraj při formátu papíru \uv{letter} byl 1\,in. Také horní a +dolní okraj (do kterého přesahuje záhlaví a stránková číslice) jsou +nastaveny na 1~in při formátu papíru \uv{letter} a tím je určena výška sazby +("\vsize"). \csplain{} dělá totéž, tj. okraje jsou 1~in, ale formát papíru +je~A4.\fnote + {Přesněji: \csplain{} nastavuje výšku sazby {\tt\char`\\vsize=239.2mm}, což vede + k~dolnímu okraji o 7\,mm většímu než 1\,in.} +OPmac umožňuje toto nastavení změnit příkazem:\par\nobreak + +\begtt +\margins/<pg> <formát> (<levý>,<pravý>,<horní>,<dolní>)<jednotka> +například: +\margins/1 b5 (2,2,2,2)cm % nastaví všechny okraje na 2 cm pro papír b5. +<pg>... 1 = shodné okraje pro všechny stránky, +<pg>... 2 = okraje pro liché stránky, sudé mají prohozeny <levý>/<pravý>, +<formát>... a3, a4, a5, b5, letter nebo uživatelem definovaný, +<levý>,<pravý>,<horní>,<dolní>... velikosti okrajů, +<jednotka>... mm, cm, in, pt, pc, bp, dd, cc. +\endtt + +Každý z parametrů <levý>, <pravý>, <horní>, <dolní> může být prázdný. +Jsou-li prázdné oba <levý> i <pravý>, je zachováno nastavení "\hsize" a +levý i pravý okraj je stejný. Je-li jen jeden z parametrů +<levý>, <pravý> prázdný, zůstává zachováno "\hsize" a neurčený okraj se +dopočítá. Jsou-li <levý> i <pravý> neprázdné, jsou oba okraje určeny +a je podle nich upraveno "\hsize". +Analogické pravidlo platí pro <horní>, <dolní> v souvislosti +s~výškou sazby "\vsize". Například + +\begtt +\margins/2 a4 (,18,,)mm % vnější okraj na dvojstraně 2*a4 je 18mm + % \hsize, \vsize beze změny. +\endtt + +Uživatel může před použitím "\margins" definovat vlastní <formát> papíru pomocí +příkazu "\sdef{pgs:<formát>}{<šířka> <výška>}". +Opmac například implicitně definuje: + +\begtt +\sdef{pgs:a4}{(210,297)mm} \sdef{pgs:letter}{(8.5,11)in} +\sdef{pgs:b5}{(176,250)mm} +\endtt + +Celou sazbu na úkor okrajů je možno zvětšit/zmenšit příkazem +"\magscale[<factor>]". Například "\magscale[500]" zmenší sazbu na polovinu. +Při této změně zůstává na místě \uv{Knuthův bod}, tj. bod o souřadnicích +1\,in, 1\,in od horního a levého okraje. Sazba samotná je zalomena zcela +stejně. Jednotky +použité v dokumentu jsou od této chvíle relativní. Například po +"\magscale[2000]" je použitá jednotka v dokumentu "1mm" ve skutečnosti "2mm". +Makro "\magscale" ponechává nezměněny jen rozměry stránek dané formátem +stránek (a4, a3, atd.). Možnost použití +makra: "\magscale[1414] \margins/1 a4 (,,,)mm" umístí sazbu, která je určena +pro tisk na a5, doprostřed stránky a4 a odpovídajícím způsobem ji zvětší, +aby se to korektorům lépe četlo. + + +\sec Poslední strana +%%%%%%%%%%%%%%%%%%%% + +Číslo poslední strany dokumentu (to nemusí být počet stran) je uloženo při +opakovaném zpracování \TeX{}em v~registru "\lastpage". K tomu musí být +otevřen soubor REF s daty pro křížové odkazy, rejstřík a obsah. Pokud +pracujete s těmito daty, je soubor REF automaticky otevřen. Pokud ne, +můžete si vynutit jeho otevření příkazem "\openref". +Není-li soubor REF otevřen, je hodnota registru "\laspage" rovna nule. +Příklad využití: + +\begtt +\footline={\hss \rm \thefontsize[10]\the\pageno/\the\lastpage \hss} +\endtt + +\vfill\break + +\sec Shrnutí +%%%%%%%%%%%% + +Klíčová makra balíku OPmac jsou stručně shrnuta v následujícím výpisu. + +\def\tthook{\adef!{\string\endtt}\adef&{\kern.25em}} +\begtt +\tit <Název titulu (ukončený prázdným řádkem)> +\chap <Název kapitoly (ukončený prázdným řádkem)> +\sec <Název sekce (ukončený prázdným řádkem)> +\secc <Název podsekce (ukončený prázdným řádkem)> + +\maketoc % generování obsahu +\ii <heslo>,<heslo> % vložení hesel do rejstříku +\makeindex % generování rejstříku + +\label[<lejblík>] % deklarace před cílem odkazu +\ref[<lejblík>] % odkaz na kapitolu, sekci nebo podsekci +\cite[<lejblík>] % odkaz do seznamu literatury +\pgref[<lejblík>] % odkaz na stránku + +\caption/t % číslovaný popisek tabulky +\caption/f % číslovaný popisek obrázku +\eqmark % číslovaná rovnice + +\begitems % začátek výčtu položek +\enditems % konec výčtu položek +\begtt % začátek verbatim výpisu +! % konec verbatim výpisu +\activettchar <znak> % inicializace znaku pro in-text verbatim +\verbinput % verbatim výpis ze souboru +\begmulti % začátek vícesloupcové sazby +\endmulti % konec vícesloupcové sazby + +\bib[<lejblík>] % položka v seznamu literatury +\cite[<lejblík>] % místo, odkud se odkazuje do seznamu literatury +\usebibtex{<bib-báze>}{<bst-styl>} % použití bibTeXu pro seznam literatury +\genbbl{<bib-báze>}{<bst-styl>} % předgenerování seznamu literatury +\usebbl/? <bbl-báze> % použití předgenerované databáze, ? je z {a,b,c} + +\typosize[<font-velikost>/<řádkování>] % nastavení velikosti sazby +\typoscale[<faktor-font>/<faktor-řádkování>] % škálování velikosti sazby +\thefontsize[<velikost>] \thefontscale[<faktor>]& % velikost aktuálního fontu + +\inspic <soubor>.<přípona> % vložení obrázku, přípony: jpg, png, pdf +\table{<pravidlo>}{<data>} &% makro pro tabulku +\frame{<text>} % orámovaný text + +\fnote{<text>} % poznámka pod čarou (lokální číslování na každé stránce) +\mnote{<text>} % poznámka na okraji (pravém nebo levém podle stránky) + +\hyperlinks{<barva-in>}{<barva-out>} % v PDF budou odkazy klikací +\outlines{<úroveň>} & % PDF bude mít záložku s obsahem + +\magscale[<faktor>] % zvětšení/zmenšení sazby beze změny zlomu +\margins/<pg> <formát> (<levý>,<pravý>,<horní>,<dolní>)<jednotka> % okraje +\endtt + + +\end + |