summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2012-12-21 17:17:30 +0000
committerKarl Berry <karl@freefriends.org>2012-12-21 17:17:30 +0000
commit2257828845c52e3a8b6becfa850d1eafdf6f20e5 (patch)
treee2b67b1c091e49fe54a1a551823339974ca31410 /Master
parent99eb8d14f7469f1d9a1c7edc39c573ccaa36dc44 (diff)
new doc package cstex (20dec12)
git-svn-id: svn://tug.org/texlive/trunk@28595 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/cstex/00-README-cslatex23
-rw-r--r--Master/texmf-dist/doc/cstex/INSTALL.cslatex35
-rw-r--r--Master/texmf-dist/doc/cstex/README-csplain4
-rw-r--r--Master/texmf-dist/doc/cstex/README-cspsfont55
-rw-r--r--Master/texmf-dist/doc/cstex/README-doc30
-rw-r--r--Master/texmf-dist/doc/cstex/README-opmac7
-rw-r--r--Master/texmf-dist/doc/cstex/README.cslatex211
-rw-r--r--Master/texmf-dist/doc/cstex/cspsfonts-gen/README12
-rwxr-xr-xMaster/texmf-dist/doc/cstex/cspsfonts-gen/fontgen72
-rw-r--r--Master/texmf-dist/doc/cstex/cspsfonts-gen/kernoff.c45
-rwxr-xr-xMaster/texmf-dist/doc/cstex/cspsfonts-gen/mkf9
-rwxr-xr-xMaster/texmf-dist/doc/cstex/cspsfonts-gen/mkfc9
-rw-r--r--Master/texmf-dist/doc/cstex/cspsfonts-gen/xl2.enc332
-rw-r--r--Master/texmf-dist/doc/cstex/cspsfonts-gen/xt2.enc321
l---------Master/texmf-dist/doc/cstex/cstexman.pdf1
-rw-r--r--Master/texmf-dist/doc/cstex/cstexman.tex3265
-rw-r--r--Master/texmf-dist/doc/cstex/jemny.errata15
-rw-r--r--Master/texmf-dist/doc/cstex/jemny.pdfbin0 -> 502779 bytes
-rw-r--r--Master/texmf-dist/doc/cstex/jemny.tar.gzbin0 -> 558398 bytes
-rw-r--r--Master/texmf-dist/doc/cstex/lic-gpl.eng340
-rw-r--r--Master/texmf-dist/doc/cstex/opmac-d.pdfbin0 -> 644772 bytes
-rw-r--r--Master/texmf-dist/doc/cstex/opmac-d.tex2170
-rw-r--r--Master/texmf-dist/doc/cstex/opmac-u.pdfbin0 -> 252876 bytes
-rw-r--r--Master/texmf-dist/doc/cstex/opmac-u.tex1511
-rw-r--r--Master/texmf-dist/doc/cstex/prvni.pdfbin0 -> 256105 bytes
-rw-r--r--Master/texmf-dist/doc/cstex/prvni.tex1562
-rw-r--r--Master/texmf-dist/doc/cstex/test8z.pdfbin0 -> 632360 bytes
-rw-r--r--Master/texmf-dist/doc/cstex/test8z.tex81
-rw-r--r--Master/texmf-dist/doc/cstex/testgyre8z.pdfbin0 -> 1098766 bytes
-rw-r--r--Master/texmf-dist/doc/cstex/testgyre8z.tex81
-rw-r--r--Master/texmf-dist/doc/cstex/testlat.tex30
-rw-r--r--Master/texmf-dist/doc/cstex/zmeny.txt184
-rwxr-xr-xMaster/tlpkg/bin/tlpkg-ctan-check4
-rw-r--r--Master/tlpkg/tlpsrc/collection-langczechslovak.tlpsrc1
-rw-r--r--Master/tlpkg/tlpsrc/cslatex.tlpsrc4
-rw-r--r--Master/tlpkg/tlpsrc/csplain.tlpsrc13
-rw-r--r--Master/tlpkg/tlpsrc/cstex.tlpsrc0
37 files changed, 10421 insertions, 6 deletions
diff --git a/Master/texmf-dist/doc/cstex/00-README-cslatex b/Master/texmf-dist/doc/cstex/00-README-cslatex
new file mode 100644
index 00000000000..900105f5928
--- /dev/null
+++ b/Master/texmf-dist/doc/cstex/00-README-cslatex
@@ -0,0 +1,23 @@
+
+The CSLaTeX package is obsolete and it will be maintained no more.
+This is our decision discussed on the CSTeX list
+
+ https://groups.google.com/forum/?fromgroups#!forum/cz.comp.cstex
+
+in October 2012.
+
+The last two changes was done by Petr Olsak in Oct.2012.
+
+1) in cslatex.ini file: The cslatex.fmt is generated as usual but there
+ is one difference. The \everyjob gives the following message:
+
+ ***** WARNING ******** CSLaTeX is obsolete, don't use it please *****
+ ***** You can use ``normal'' LaTeX+Babel or XeLaTeX+polyglossia *****
+
+2) The files czech.sty and slovak.sty are obsolete too. But they was moved
+ from csplain package to their right place: to the cslatex package.
+
+3) The cslatex files from cspsfonts.tar.gz was moved to cslatex.tar.gz
+
+That's all.
+
diff --git a/Master/texmf-dist/doc/cstex/INSTALL.cslatex b/Master/texmf-dist/doc/cstex/INSTALL.cslatex
new file mode 100644
index 00000000000..19695bb86cc
--- /dev/null
+++ b/Master/texmf-dist/doc/cstex/INSTALL.cslatex
@@ -0,0 +1,35 @@
+CSLaTeX 2e
+----------
+
+Toto je LaTeX2e z jna 1997 upraven pro eskou a slovenskou
+sazbu. Vznikl pizpsobenm starch verz autor Jiho Zlatuky a
+Zdeka Wagnera.
+
+Posledn poetn provedl pan Jaroslav Snajdr, viz
+http://home.zcu.cz/~snajdr5/cslatex.
+
+Pebalen do taru s ji docstipovanmi soubory pro UNIX provedl
+Petr Olk.
+
+Tar cslatex-01-98.tar obsahuje jednak plnou verzi LaTeXu 2e datovanou
+k prosinci 1997, dle balk tools a graphics. Ve je ji po
+"rozbalen" programem docstrip pipraveno pmo k provozu. Proto je
+instalace jednoduch:
+
+INSTALACE
+---------
+
+0. Je poteba mt instalovn tex, csplain, ltfonts a csfonty.
+
+1. Rozbalte tar do adrese, ve kterm mte texmf (v teTeXu mezi prvnm a
+ druhm texmf)
+
+2. cd texmf/web2c
+
+3. initex cslatex.ini
+
+Ped i po bodu 3 je vhodn aktualizovat databzi ls-R, napklad
+pkazem MakeTeXls-R.
+
+
+
diff --git a/Master/texmf-dist/doc/cstex/README-csplain b/Master/texmf-dist/doc/cstex/README-csplain
new file mode 100644
index 00000000000..1650145e965
--- /dev/null
+++ b/Master/texmf-dist/doc/cstex/README-csplain
@@ -0,0 +1,4 @@
+The documentation of csplain is on the site
+
+ http://petr.olsak.net/csplain.html
+
diff --git a/Master/texmf-dist/doc/cstex/README-cspsfont b/Master/texmf-dist/doc/cstex/README-cspsfont
new file mode 100644
index 00000000000..323cceed417
--- /dev/null
+++ b/Master/texmf-dist/doc/cstex/README-cspsfont
@@ -0,0 +1,55 @@
+
+ Informace o balíku cspsfont
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%
+ 23. 11. 1995 Petr Olšák
+ 5. 1. 1996 Zdeněk Wagner
+ 20. 10. 2012 Petr Olšák
+
+Dokumentace k tomto balíku je v souboru cstexman.pdf v kapitole třetí.
+
+Dokumentaci k LaTeXové části tohoto balíku získáte pomocí latex
+cspsfont.drv, ovšem je to dokumentace z roku 1996, která se týká
+CSLaTeXu. To považujeme za zastaralé.
+
+Historie
+%%%%%%%%
+
+říjen 2012 - Přegenerovány metriky podle URW metrik.
+ - Přidány znaky Euro, TM, registered a další (viz cstexman.pdf).
+ - Přidán soubor chars-8z.tex pro csplain.
+ - Soubory ctimes.tex a jim podobné volají chars-8z.tex.
+ - Aktualizována dokumenace.
+ - Přidány *8z.vf a *8z.tfm rodiny Charter
+
+24. 3. 1999: POZOR! Pro šest fontů pcrb8t, pcrbc8t, pcrbo8t, pcrr8t, pcrrc8t
+ a pcrro8t jsme museli změnit názvy na *8u, takže nyní se
+ správně jmenují: pcrb8u, pcrbc8u, pcrbo8u, pcrr8u,
+ pcrrc8u a pcrro8u. Důvod: Názvy *8t byly v konfliktu se
+ stejnými názvy používanými v LaTeXu v kódování T1.
+ Nebude-li vám tedy fungovat čeština v rodině Courier,
+ nezapomeňte změnit svá makra, která obsahují konfliktní
+ názvy *8t.
+
+5. 1. 1996 Přegenerovány metriky Z. Wagnerem a přidána podpora pro
+ CSLaTeX.
+
+23. 11. 1995 Vytvořeny metriky a makra pro csplain.
+
+
+Copyright
+%%%%%%%%%
+
+Tento balík patří mezi volně šířený software; můžete
+jej dále distribuovat anebo modifikovat za podmínek GNU General Public
+License, jak ji publikovala Free Software Foundation; buď ve verzi 2
+této licence nebo (podle Vaší volby) v libovolné pozdější verzi.
+
+Tento software je distribuován s přáním, aby byl užitečný, ale BEZ
+ŽÁDNÉ ZÁRUKY. Viz GNU General Public License.
+
+Anglický originál GNU General Publics License najdete v distribuci
+CSTeXu a mnoha dalších volně šířených programů. Můžete si též o něj
+napsat na adresu Free Software Foundation, Inc., 59 Temple Place,
+Suite 330, Boston, MA 02111-1307 USA
+
+
diff --git a/Master/texmf-dist/doc/cstex/README-doc b/Master/texmf-dist/doc/cstex/README-doc
new file mode 100644
index 00000000000..0b99758a0a0
--- /dev/null
+++ b/Master/texmf-dist/doc/cstex/README-doc
@@ -0,0 +1,30 @@
+V tomto adresari jsou ulozeny ceske preklady (a do budoucna mozna i
+puvodni texty) nekterych prirucek o TeXu. Tyto dokumenty jsou
+vystaveny ve zdrojove forme v kodovani ISO-8859-2, pokud neni receno jinak.
+
+cstexman.tex, cstexman.ps, cstexman.pdf
+ Manual k CSTeXu -- referencni manual. Petr Olsak (2002, 2012)
+prvni.tex, prvni.ps, prvni.pdf
+ Prvni seznameni s TeXem. Petr Olsak (1999)
+parpozn.tex, parpozn.ps, parpozn.pdf
+ Par poznamek k CSTeXu -- zastaraly dokument z roku 1996
+csuvodlat.tar.gz
+ Uvod do LaTeXu (2.09). H. Partl, E. Schlegl and I. Hyna (1987-1990)
+ Preklad: P. Sykora (1992)
+uvodlat.zip
+ Totez, ale v DOSovem formatu koncu radku a v kodovani Kamenickych.
+jemny.tar.gz
+ Jemny uvod do TeXu (plainu). Michael Doob
+ Preklad: Josef Danes a Jiri Vesely
+jemny.zip
+ Totez, ale v DOSovem formatu koncu radku a v kodovani CP852.
+jemny.errata
+ ERRATA vyse zmineneho dokumentu
+lshort-0.9beta-cz.tgz
+ Ne prilis strucny uvod do systemu LaTeX2e. Tobias Oetiker
+ Preklad: Michal Kocer
+lshort2e-0.9beta-cz.ps.gz, lshortps.zip
+ Totez v PostScriptovem formatu
+lshort09.zip
+ Totez, ale v DOSovem formatu koncu radku a v kodovani CP852.
+
diff --git a/Master/texmf-dist/doc/cstex/README-opmac b/Master/texmf-dist/doc/cstex/README-opmac
new file mode 100644
index 00000000000..53632ef9a14
--- /dev/null
+++ b/Master/texmf-dist/doc/cstex/README-opmac
@@ -0,0 +1,7 @@
+The documentation of the OPmac is:
+
+opmac-u.tex,pdf ... user documentation (in Czech)
+opamc-d.tex,pdf ... technical documentation (in Czech)
+
+See http://petr.olsak.net/opmac.html for more information.
+
diff --git a/Master/texmf-dist/doc/cstex/README.cslatex b/Master/texmf-dist/doc/cstex/README.cslatex
new file mode 100644
index 00000000000..17acb5b46a7
--- /dev/null
+++ b/Master/texmf-dist/doc/cstex/README.cslatex
@@ -0,0 +1,211 @@
+CSLaTeX --- pravy LaTeXu 2e pro eskou a slovenskou sazbu
+ Verze pro LaTeX z prosince '96
+==========================================================
+28.10.1997 Jaroslav najdr
+
+CSLaTeX je sada konfiguranch soubor pro LaTeX2e, kter umouj v
+tomto systmu pipravovat esk a slovensk dokumenty. Balk je
+distribuovn (jak je u LaTeXu zvykem) v souboru cslatex.dtx, kter
+obsahuje pslun makra i s dkladnou dokumentac. Soubor cslatex.ins
+je dvka pro program docstrip, kter z dtx zdroje vygeneruje vlastn
+soubory.
+
+Instalace
+---------
+
+(jednodu postup instalace z balku cslatex-10-97.tar, viz INSTALL.cslatex)
+
+Pro instalaci potebujete (krom TeXu):
+
+o CS-fonty.
+
+o esk a slovensk vzory dlen czhyphen.tex a skhyphen.tex. Jsou
+ soust csplainu.
+
+o LaTeXov "obrzkov" fonty lasy, lcircle a line.
+
+o Originln LaTeX2e. Distribun soubory jsou k nalezen na CTANu v
+ adresi /tex-archive/macros/latex/base/.
+
+Pokud toto vechno mte, mete zat instalovat:
+
+o Smate (zazlohujte) starou verzi LaTeXu. POZOR! Toto se netk
+ podprnch balk, nap. graphics, tools nebo psnfss. Jejich
+ upgrade (je-li k dispozici novj verze) je samostatnou zleitost
+ a nen bezpodmnen nutn. Pokud mte nainstalovanou star verzi
+ CSLaTeXu, mly by zmizet adrese texmf/tex/latex/cslatex, input a
+ src. Mte-li v adresi input nkter styly, kter nejsou standardn
+ soust LaTeXu (nap. a4, a4wide, fancyhdr), vytvote adres
+ texmf/tex/latex/misc a pesute je tam.
+
+o Pokud v TeX pouv ke hledn v adresovm stromu hashovac
+ soubor (nap. v teTeXu ls-R), nechte ho znovu vytvoit, aby se
+ projevily proveden zmny -- smazan soubory. V teTeXu k tomuto
+ slou pkaz texhash.
+
+o Vytvote si nkde v /tmp doasn adres, do kterho zkoprujete
+ distribun soubory LaTeXu a CSLaTeXov soubory cslatex.dtx a
+ cslatex.ins.
+
+o V tomto adresi rozbalte distribuci LaTeXu pkazy "initex
+ unpack.ins" a "initex cslatex.ins".
+
+o V normln konfiguraci pouv LaTeX v kdovn T1 dc-fonty. Mte-li
+ novj ec-fonty, vytvote pslun upraven definin soubory
+ pkazem "initex ec.ins". Tento krok mus nsledovat a PO
+ zpracovn unpack.ins.
+
+o Vytvote formt LaTeX pkazem "initex latex.ltx".
+
+Nyn mme v naem adresi 266 soubor, z nich ty potebn pesuneme
+na pslun msta do adresov struktury TeXu:
+
+o Soubor latex.fmt pesute do adrese s formty -- v teTeXu
+ texmf/web2c.
+
+o Konfiguran soubory pro etinu pesuneme do adrese
+ texmf/tex/latex/cslatex. Jsou to tyto:
+
+ fonttext.cfg
+ hyphen.cfg
+ il2enc.def
+ il2*.fd
+ lczech.sty
+ lslovak.sty
+
+o Do adrese texmf/tex/latex/input dme vstupn soubory LaTeXu:
+
+ docstrip.tex
+ *.cls
+ *.clo
+ *.sty
+ *.fd
+ *.ist
+ *.def
+ *.cfg
+
+o Zdrojov soubory LaTeXu
+
+ fontmath.ltx
+ fonttext.ltx
+ hyphen.ltx
+ latex.ltx
+ ltpatch.ltx
+ preload.ltx
+
+nejsou teba pro normln prci, ale budeme je potebovat, pokud
+chceme vygenerovat znovu formt. Tento ppad me nastat, kdy budeme
+do LaTeXu pidvat nov vzory dlen, nebo kdy si fmt soubor prost
+omylem smaeme. Proto je pesuneme do adrese /texmf/tex/latex/src.
+
+Ostatn soubory nebudeme potebovat, proto je meme smazat.
+
+Vygenerujeme hashovac soubor pro TeX pkazem "texhash"
+(teTeX). LaTeX je nainstalovn a meme ho otestovat na njakm
+krtkm dokumentku.
+
+
+Konfigurace dlen slov
+-----------------------
+
+Konfiguran pkazy se nachzej v souboru cslatex/hyphen.cfg.
+Pslun st souboru je viditeln ohraniena komentovmi
+dkami. K zaveden vzor dlen slou pkaz
+
+ \DeclareLanguage[seznam kdovn]{jmno pkazu zapnut vzor}%
+ {jmno souboru se vzory a vjimkami}%
+ {\lefthyphenmin=slo \righthyphenmin=slo
+ \@requesthyphens <nebo> \@splitrequestedfalse}
+
+Vzory dlen naten s \@requesthyphens um vyuvat funkci penen
+pomlky pi dlen (viz ne).
+
+Implicitn je zavedena americk anglitina, etina a sloventina v
+kdovn IL2. Pro zaveden etiny v IL2 i T1 pouijte:
+
+ \DeclareLanguage[IL2,T1]{\czech}{czhyphen.tex}%
+ {\lefthyphenmin=2 \righthyphenmin=3
+ \@requesthyphens}%
+
+V bnm TeXu me bt maximln 4 a 5 vzor najednou -- vc se do
+jeho pamti nevejde.
+
+
+Styl czech.sty/slovak.sty
+-------------------------
+
+Bez zaveden tohoto stylu se CSLaTeX chov jako normln LaTeX a
+pouv cm-fonty bez eskch znak.
+
+Pomocn styl zavedeme pomoc
+
+ \usepackage[parametry]{czech}
+pop.
+ \usepackage[paremetry]{slovak}
+
+Parametry mou bt:
+
+T1
+ Cork kdovn. Budou se pouvat dc(ec) fonty. Aby se sprvn
+ dlila slova, mus bt vzory dlen nataeny tak pro T1 (viz
+ ve). Bez tohoto parametru je pouito kdovn IL2.
+
+split
+ Zapn penen pomlky pi dlen slov typu propan-
+ -butan. Tato vlastnost funguje skoro bez problm -- vjimkou
+ je pouit `-' jako minus v sle, kter te TeX v
+ horizontlnm mdu (tak bv zadvno nap. \looseness=-1); v
+ tchto ppadech je pi zapnutm penen dltka mon
+ napsat \minus.
+
+nosplit
+ Vypn penen pomlky. To je tak implicitn chovn.
+
+nocaptions
+ Nebudou pedefinovny texty vkldan LaTeXem jako "Kapitola"
+ nebo "Obsah". Zstanou tedy pvodn "Chapter" nebo "Contents".
+
+olduv
+ Pkaz \uv je (nov) definovn tak, e zajist sprvn kerning
+ kolem uvozovek, ale uvnit jeho argumentu nelze pout pkaz
+ \verb. Pouitm volby olduv dostaneme starou definici, kter
+ se chovala pesn obrcen -- patn kerning, lze pout \verb.
+ Oba tyto poadavky se navzjem vyluuj a nikdo dosud
+ nevymyslel een, kde by fungovalo oboj najednou.
+
+Volba 'cstex', kter umoovala pouvn pkaz \csprimeson/off,
+byla zruena a tyto pkazy lze pouvat rovnou. Kvli zptn
+kompatibilit je stle deklarovna, ale vbec nic nedl -- jej
+pouit pouze nezpsob chybu.
+
+Pkazy definovan ve stylu czech/slovak.sty
+--------------------------------------------
+
+\dateczech
+ Pkaz \today expanduje na esk datum, nap. 30. srpna 1977.
+
+\dateslovak
+ Slovensk datum, nap. 30. augusta 1977.
+
+\dateUSenglish
+ Americk \today, nap. August 30th, 1977.
+
+\dateenglish
+ Britsk \today, nap. 30th August 1977.
+
+\captionsczech
+ esk captions -- Pedmluva, Tabulka.
+
+\captionsslovak
+ Slovensk captions -- Predhovor, Tabuka.
+
+\captionsenglish
+ Anglick captions -- Preface, Table.
+
+\csprimeson, \csprimesoff
+ ``Anglick'' uvozovky se (ne)budou szet jako esk 99 66.
+
+\cstieon, \cstieoff
+ Pedefinuje vlnku ~, aby se v mat. mdu (ne)szela mezera.
+
+--
diff --git a/Master/texmf-dist/doc/cstex/cspsfonts-gen/README b/Master/texmf-dist/doc/cstex/cspsfonts-gen/README
new file mode 100644
index 00000000000..9225b898141
--- /dev/null
+++ b/Master/texmf-dist/doc/cstex/cspsfonts-gen/README
@@ -0,0 +1,12 @@
+Font generation tools of cspsfonts
+----------------------------------
+Petr Olsak, 2012
+
+The script fontgen was used to generate the metrics of cspsfonts pckage.
+The script mkf generates one ``normal'' metrics.
+The script mkc generates one ``Caps&SmalCaps'' metrics.
+
+The program kenroff removes small (invisible) kerns form AFM metric in order
+to do the tfm more simple. The kerns smaller then 9/1000 of font size was
+removed.
+
diff --git a/Master/texmf-dist/doc/cstex/cspsfonts-gen/fontgen b/Master/texmf-dist/doc/cstex/cspsfonts-gen/fontgen
new file mode 100755
index 00000000000..0a35ae76c85
--- /dev/null
+++ b/Master/texmf-dist/doc/cstex/cspsfonts-gen/fontgen
@@ -0,0 +1,72 @@
+# mkfc command have to preceede the mkf command with the same metric name
+# because mkfc makes the raw metrics (and deletes it) and after then the mkf
+# command makes the fine metrics with kerns and ligatures used by TeX.
+
+export AFMDIR="/usr/share/texmf-dist/fonts/afm/urw/*"
+
+./mkfc ptmr8z ptmrc8z xl2.enc utmr8a.afm
+./mkfc ptmb8z ptmbc8z xl2.enc utmb8a.afm
+
+./mkf ptmr8z xl2.enc utmr8a.afm
+./mkf ptmb8z xl2.enc utmb8a.afm
+./mkf ptmri8z xl2.enc utmri8a.afm
+./mkf ptmbi8z xl2.enc utmbi8a.afm
+
+./mkfc pagk8z pagkc8z xl2.enc uagk8a.afm
+./mkfc pagd8z pagdc8z xl2.enc uagd8a.afm
+
+./mkf pagk8z xl2.enc uagk8a.afm
+./mkf pagko8z xl2.enc uagko8a.afm
+./mkf pagd8z xl2.enc uagd8a.afm
+./mkf pagdo8z xl2.enc uagdo8a.afm
+
+./mkfc pbkd8z pbkdc8z xl2.enc ubkd8a.afm
+./mkfc pbkl8z pbklc8z xl2.enc ubkl8a.afm
+
+./mkf pbkd8z xl2.enc ubkd8a.afm
+./mkf pbkdi8z xl2.enc ubkdi8a.afm
+./mkf pbkl8z xl2.enc ubkl8a.afm
+./mkf pbkli8z xl2.enc ubkli8a.afm
+
+./mkfc pcrb8u pcrbc8u xt2.enc ucrb8a.afm
+./mkfc pcrr8u pcrrc8u xt2.enc ucrr8a.afm
+
+./mkf pcrb8u xt2.enc ucrb8a.afm
+./mkf pcrbo8u xt2.enc ucrbo8a.afm
+./mkf pcrro8u xt2.enc ucrro8a.afm
+./mkf pcrr8u xt2.enc ucrr8a.afm
+
+./mkfc pncb8z pncbc8z xl2.enc uncb8a.afm
+./mkfc pncr8z pncrc8z xl2.enc uncr8a.afm
+
+./mkf pncb8z xl2.enc uncb8a.afm
+./mkf pncbi8z xl2.enc uncbi8a.afm
+./mkf pncri8z xl2.enc uncri8a.afm
+./mkf pncr8z xl2.enc uncr8a.afm
+
+./mkfc phvb8z phvbc8z xl2.enc uhvb8a.afm
+./mkfc phvr8z phvrc8z xl2.enc uhvr8a.afm
+
+./mkf phvb8z xl2.enc uhvb8a.afm
+./mkf phvbo8z xl2.enc uhvbo8a.afm
+./mkf phvro8z xl2.enc uhvro8a.afm
+./mkf phvr8z xl2.enc uhvr8a.afm
+
+./mkfc phvbn8z phvbnc8z xl2.enc uhvb8ac.afm
+./mkfc phvrn8z phvrnc8z xl2.enc uhvr8ac.afm
+
+./mkf phvbn8z xl2.enc uhvb8ac.afm
+./mkf phvbon8z xl2.enc uhvbo8ac.afm
+./mkf phvrn8z xl2.enc uhvr8ac.afm
+./mkf phvron8z xl2.enc uhvro8ac.afm
+
+./mkfc pplr8z pplrc8z xl2.enc uplr8a.afm
+./mkfc pplb8z pplbc8z xl2.enc uplb8a.afm
+
+./mkf pplbi8z xl2.enc uplbi8a.afm
+./mkf pplri8z xl2.enc uplri8a.afm
+./mkf pplr8z xl2.enc uplr8a.afm
+./mkf pplb8z xl2.enc uplb8a.afm
+
+./mkf pzcmi8z xl2.enc uzcmi8a.afm
+
diff --git a/Master/texmf-dist/doc/cstex/cspsfonts-gen/kernoff.c b/Master/texmf-dist/doc/cstex/cspsfonts-gen/kernoff.c
new file mode 100644
index 00000000000..45bdbb5810b
--- /dev/null
+++ b/Master/texmf-dist/doc/cstex/cspsfonts-gen/kernoff.c
@@ -0,0 +1,45 @@
+/* This program removes kerns smaller then KERNLIMIT from AFM file
+ Petr Olsak, 2012
+ input AFM file = stdin, output = stdout, no parameters */
+
+
+#include <stdio.h>
+
+#define KERNLIMIT 9
+
+char line[500];
+
+int mygets(char *s, int num)
+{
+ int c, i;
+ if ((c=fgetc(stdin))==EOF) return EOF;
+ if (c=='\n') return s[0] = 0;
+ s[0] = c; i=1;
+ while (1) {
+ if (i>=num) {
+ fprintf (stderr, "line is too long\n");
+ s[num-1] = 0;
+ return;
+ }
+ if ((c=fgetc(stdin))==EOF) return s[i] = 0;
+ if (c=='\n') return s[i] = 0;
+ s[i++]=c;
+ }
+}
+
+int main(int argc, char *argv[])
+{
+ int i, v;
+ while (1) {
+ if (mygets(line,500)==EOF) return 0;
+ v=100;
+ if (line[0]=='K' && line[1]=='P' && line[2]=='X' && line[3]==' ') {
+ i = 4;
+ while (line[i]!=' ') i++;
+ i++;
+ while (line[i]!=' ') i++;
+ v = atoi(&line[i]);
+ }
+ if (v>KERNLIMIT || v<-KERNLIMIT) printf("%s\n", line);
+ }
+}
diff --git a/Master/texmf-dist/doc/cstex/cspsfonts-gen/mkf b/Master/texmf-dist/doc/cstex/cspsfonts-gen/mkf
new file mode 100755
index 00000000000..f05e423bd7c
--- /dev/null
+++ b/Master/texmf-dist/doc/cstex/cspsfonts-gen/mkf
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+echo $1 $2
+cat $AFMDIR/$3 | ./kernoff > $3
+afm2tfm $3 -T $2 -v $1 $1.tfm
+rm $1.tfm
+vptovf $1
+rm $1.vpl $1.vf
+
diff --git a/Master/texmf-dist/doc/cstex/cspsfonts-gen/mkfc b/Master/texmf-dist/doc/cstex/cspsfonts-gen/mkfc
new file mode 100755
index 00000000000..f0d9664389e
--- /dev/null
+++ b/Master/texmf-dist/doc/cstex/cspsfonts-gen/mkfc
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+echo $1 $2 $3
+cat $AFMDIR/$4 | ./kernoff > $4
+afm2tfm $4 -T $3 -V $2 $1.tfm
+rm $1-c.tfm
+vptovf $2
+rm $2.vpl
+
diff --git a/Master/texmf-dist/doc/cstex/cspsfonts-gen/xl2.enc b/Master/texmf-dist/doc/cstex/cspsfonts-gen/xl2.enc
new file mode 100644
index 00000000000..e13e0f2e18b
--- /dev/null
+++ b/Master/texmf-dist/doc/cstex/cspsfonts-gen/xl2.enc
@@ -0,0 +1,332 @@
+% @psencodingfile{
+% author = "Petr Olsak, Zdenek Wagner",
+% date = "19oct12",
+% filename = "xl2.enc",
+% license = "public domain",
+% email = "tex-fonts@tug.org",
+% codetable = "ISO/ASCII",
+% docstring = "
+% some of our (CSTUG- czech TeX Users Group) users want to support
+% 8bit font coding such that:
+% -- lower 7bit is exactly OT1 (but with differences imposed
+% by DEK -- e.g. layout of cmr is different from cmtt)
+% -- upper part is taken from ISO-Latin 2 (iso 8859-2),
+% but some of empty positions are filled with useful characters
+% usually available in type-1 font (permill sign etc.)
+% "
+% }
+%
+% 19oct12 - added: /Euro, /trademark, /copyright, /registered
+% /guilsinglleft/right, /quotesinglbase, /quoteleft.
+% fi and ff LIGKERN's added. (Petr Olsak)
+% 27aug05 - record Petr Olsak and Zdenek Wagner as the authors.
+% 12jun05 - remove Texinfo @'s from LIGKERN's.
+%
+/XL2encoding [
+%%%%% '000 = "00
+ /Gamma
+ /Delta
+ /Theta
+ /Lambda
+ /Xi
+ /Pi
+ /Sigma
+ /Upsilon
+%%%%% '010 = "08
+ /Phi
+ /Psi
+ /Omega
+ /ff
+ /fi
+ /fl
+ /ffi
+ /ffl
+%%%%% '020 = "10
+ /dotlessi
+ /dotlessj
+ /grave
+ /acute
+ /caron
+ /breve
+ /macron
+ /ring
+%%%%% '030 = "18
+ /cedilla
+ /germandbls
+ /ae
+ /oe
+ /oslash
+ /AE
+ /OE
+ /Oslash
+%%%%% '040 = "20
+ /.notdef
+ /exclam
+ /quotedblright
+ /numbersign
+ /dollar
+ /percent
+ /ampersand
+ /quoteright
+%%%%% '050 = "28
+ /parenleft
+ /parenright
+ /asterisk
+ /plus
+ /comma
+ /hyphen
+ /period
+ /slash
+%%%%% '060 = "30
+ /zero
+ /one
+ /two
+ /three
+ /four
+ /five
+ /six
+ /seven
+%%%%% '070 = "38
+ /eight
+ /nine
+ /colon
+ /semicolon
+ /exclamdown
+ /equal
+ /questiondown
+ /question
+%%%%% '100 = "40
+ /at
+ /A
+ /B
+ /C
+ /D
+ /E
+ /F
+ /G
+%%%%% '110 = "48
+ /H
+ /I
+ /J
+ /K
+ /L
+ /M
+ /N
+ /O
+%%%%% '120 = "50
+ /P
+ /Q
+ /R
+ /S
+ /T
+ /U
+ /V
+ /W
+%%%%% '130 = "58
+ /X
+ /Y
+ /Z
+ /bracketleft
+ /quotedblleft
+ /bracketright
+ /circumflex
+ /dotaccent
+%%%%% '140 = "60
+ /quoteleft
+ /a
+ /b
+ /c
+ /d
+ /e
+ /f
+ /g
+%%%%% '150 = "68
+ /h
+ /i
+ /j
+ /k
+ /l
+ /m
+ /n
+ /o
+%%%%% '160 = "70
+ /p
+ /q
+ /r
+ /s
+ /t
+ /u
+ /v
+ /w
+%%%%% '170 = "78
+ /x
+ /y
+ /z
+ /endash
+ /emdash
+ /hungarumlaut
+ /tilde
+ /dieresis
+%%%%% '200 = "80
+ /ellipsis
+ /dagger
+ /daggerdbl
+ /bullet
+ /sterling
+ /paragraph
+ /Euro
+ /.notdef
+%%%%% '210 = "88
+ /trademark
+ /copyright
+ /registered
+ /.notdef
+ /.notdef
+ /perthousand
+ /guilsinglleft
+ /guilsinglright
+%%%%% '220 = "90
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+%%%%% '230 = "98
+ /Agrave
+ /.notdef
+ /quotesinglbase
+ /quoteleft
+ /hyphen
+ /ogonek
+ /guillemotleft
+ /guillemotright
+%%%%% '240 = "A0
+ /.notdef
+ /Aogonek
+ /breve
+ /Lslash
+ /currency
+ /Lcaron
+ /Sacute
+ /section
+%%%%% '250 = "A8
+ /dieresis
+ /Scaron
+ /Scedilla
+ /Tcaron
+ /Zacute
+ /.notdef
+ /Zcaron
+ /Zdotaccent
+%%%%% '260 = "B0
+ /ring
+ /aogonek
+ /cedilla
+ /lslash
+ /acute
+ /lcaron
+ /sacute
+ /caron
+%%%%% '270 = "B8
+ /agrave
+ /scaron
+ /scedilla
+ /tcaron
+ /zacute
+ /hungarumlaut
+ /zcaron
+ /zdotaccent
+%%%%% '300 = "C0
+ /Racute
+ /Aacute
+ /Acircumflex
+ /Abreve
+ /Adieresis
+ /Lacute
+ /Cacute
+ /Ccedilla
+%%%%% '310 = "C8
+ /Ccaron
+ /Eacute
+ /Eogonek
+ /Edieresis
+ /Ecaron
+ /Iacute
+ /Icircumflex
+ /Dcaron
+%%%%% '320 = "D0
+ /Eth
+ /Nacute
+ /Ncaron
+ /Oacute
+ /Ocircumflex
+ /Ohungarumlaut
+ /Odieresis
+ /multiply
+%%%%% '330 = "D8
+ /Rcaron
+ /Uring
+ /Uacute
+ /Uhungarumlaut
+ /Udieresis
+ /Yacute
+ /Togonek
+ /germandbls
+%%%%% '340 = "E0
+ /racute
+ /aacute
+ /acircumflex
+ /abreve
+ /adieresis
+ /lacute
+ /cacute
+ /ccedilla
+%%%%% '350 = "E8
+ /ccaron
+ /eacute
+ /eogonek
+ /edieresis
+ /ecaron
+ /iacute
+ /icircumflex
+ /dcaron
+%%%%% '360 = "F0
+ /eth
+ /nacute
+ /ncaron
+ /oacute
+ /ocircumflex
+ /ohungarumlaut
+ /odieresis
+ /divide
+%%%%% '370 = "F8
+ /rcaron
+ /uring
+ /uacute
+ /uhungarumlaut
+ /udieresis
+ /yacute
+ /quotedblbase
+ /quotedblleft
+] def
+
+% LIGKERN f i =: fi ; f fi =: ffi ;
+% LIGKERN f f =: ff ;
+% LIGKERN hyphen hyphen =: endash ; endash hyphen =: emdash ;
+% LIGKERN quoteleft quoteleft =: quotedblleft ;
+% LIGKERN quoteright quoteright =: quotedblright ;
+% LIGKERN exclamdown exclamdown =: guillemotleft ;
+% frenchdblquotes
+% LIGKERN questiondown questiondown =: guillemotright ;
+% csquoteleft
+% LIGKERN comma comma =: quotedblbase ;
+% LIGKERN space {} * ; * {} space ; zero {} * ; * {} zero ;
+% LIGKERN one {} * ; * {} one ; two {} * ; * {} two ;
+% LIGKERN three {} * ; * {} three ; four {} * ; * {} four ;
+% LIGKERN five {} * ; * {} five ; six {} * ; * {} six ;
+% LIGKERN seven {} * ; * {} seven ; eight {} * ; * {} eight ;
+% LIGKERN nine {} * ; * {} nine ;
+% LIGKERN question {} quoteleft ; exclam {} quoteleft ;
diff --git a/Master/texmf-dist/doc/cstex/cspsfonts-gen/xt2.enc b/Master/texmf-dist/doc/cstex/cspsfonts-gen/xt2.enc
new file mode 100644
index 00000000000..26d1d3af51e
--- /dev/null
+++ b/Master/texmf-dist/doc/cstex/cspsfonts-gen/xt2.enc
@@ -0,0 +1,321 @@
+% @psencodingfile{
+% author = "Petr Olsak, Zdenek Wagner",
+% date = "19aug12",
+% filename = "xt2.enc",
+% license = "public domain",
+% email = "tex-fonts@tug.org",
+% codetable = "ISO/ASCII",
+% docstring = "This is the typewriter version of xl2."
+% }
+%
+% 19oct12 - added: /Euro, /trademark, /copyright, /registered
+% /guilsinglleft/right, /quotesinglbase, /quoteleft (Petr Olsak)
+% 27aug05 - record Petr Olsak and Zdenek Wagner as the authors.
+% 12jun05 - remove Texinfo @'s from LIGKERN's.
+%
+/XT2encoding [
+%%%%% '000 = "00
+ /Gamma
+ /Delta
+ /Theta
+ /Lambda
+ /Xi
+ /Pi
+ /Sigma
+ /Upsilon
+%%%%% '010 = "08
+ /Phi
+ /Psi
+ /Omega
+ /arrowup
+ /arrowdown
+ /quotesingle
+ /exclamdown
+ /questiondown
+%%%%% '020 = "10
+ /dotlessi
+ /dotlessj
+ /grave
+ /acute
+ /caron
+ /breve
+ /macron
+ /ring
+%%%%% '030 = "18
+ /cedilla
+ /germandbls
+ /ae
+ /oe
+ /oslash
+ /AE
+ /OE
+ /Oslash
+%%%%% '040 = "20
+ /.notdef
+ /exclam
+ /quotedblright
+ /numbersign
+ /dollar
+ /percent
+ /ampersand
+ /quoteright
+%%%%% '050 = "28
+ /parenleft
+ /parenright
+ /asterisk
+ /plus
+ /comma
+ /hyphen
+ /period
+ /slash
+%%%%% '060 = "30
+ /zero
+ /one
+ /two
+ /three
+ /four
+ /five
+ /six
+ /seven
+%%%%% '070 = "38
+ /eight
+ /nine
+ /colon
+ /semicolon
+ /less
+ /equal
+ /greater
+ /question
+%%%%% '100 = "40
+ /at
+ /A
+ /B
+ /C
+ /D
+ /E
+ /F
+ /G
+%%%%% '110 = "48
+ /H
+ /I
+ /J
+ /K
+ /L
+ /M
+ /N
+ /O
+%%%%% '120 = "50
+ /P
+ /Q
+ /R
+ /S
+ /T
+ /U
+ /V
+ /W
+%%%%% '130 = "58
+ /X
+ /Y
+ /Z
+ /bracketleft
+ /backslash
+ /bracketright
+ /circumflex
+ /underscore
+%%%%% '140 = "60
+ /quoteleft
+ /a
+ /b
+ /c
+ /d
+ /e
+ /f
+ /g
+%%%%% '150 = "68
+ /h
+ /i
+ /j
+ /k
+ /l
+ /m
+ /n
+ /o
+%%%%% '160 = "70
+ /p
+ /q
+ /r
+ /s
+ /t
+ /u
+ /v
+ /w
+%%%%% '170 = "78
+ /x
+ /y
+ /z
+ /braceleft
+ /bar
+ /braceright
+ /tilde
+ /dieresis
+%%%%% '200 = "80
+ /ellipsis
+ /dagger
+ /daggerdbl
+ /bullet
+ /sterling
+ /paragraph
+ /Euro
+ /.notdef
+%%%%% '210 = "88
+ /trademark
+ /copyright
+ /registered
+ /.notdef
+ /.notdef
+ /perthousand
+ /guilsinglleft
+ /guilsinglright
+%%%%% '220 = "90
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+ /.notdef
+%%%%% '230 = "98
+ /Agrave
+ /.notdef
+ /quotesinglbase
+ /quoteleft
+ /hyphen
+ /ogonek
+ /guillemotleft
+ /guillemotright
+%%%%% '240 = "A0
+ /.notdef
+ /Aogonek
+ /breve
+ /Lslash
+ /currency
+ /Lcaron
+ /Sacute
+ /section
+%%%%% '250 = "A8
+ /dieresis
+ /Scaron
+ /Scedilla
+ /Tcaron
+ /Zacute
+ /.notdef
+ /Zcaron
+ /Zdotaccent
+%%%%% '260 = "B0
+ /ring
+ /aogonek
+ /cedilla
+ /lslash
+ /acute
+ /lcaron
+ /sacute
+ /caron
+%%%%% '270 = "B8
+ /agrave
+ /scaron
+ /scedilla
+ /tcaron
+ /zacute
+ /hungarumlaut
+ /zcaron
+ /zdotaccent
+%%%%% '300 = "C0
+ /Racute
+ /Aacute
+ /Acircumflex
+ /Abreve
+ /Adieresis
+ /Lacute
+ /Cacute
+ /Ccedilla
+%%%%% '310 = "C8
+ /Ccaron
+ /Eacute
+ /Eogonek
+ /Edieresis
+ /Ecaron
+ /Iacute
+ /Icircumflex
+ /Dcaron
+%%%%% '320 = "D0
+ /Eth
+ /Nacute
+ /Ncaron
+ /Oacute
+ /Ocircumflex
+ /Ohungarumlaut
+ /Odieresis
+ /multiply
+%%%%% '330 = "D8
+ /Rcaron
+ /Uring
+ /Uacute
+ /Uhungarumlaut
+ /Udieresis
+ /Yacute
+ /Togonek
+ /germandbls
+%%%%% '340 = "E0
+ /racute
+ /aacute
+ /acircumflex
+ /abreve
+ /adieresis
+ /lacute
+ /cacute
+ /ccedilla
+%%%%% '350 = "E8
+ /ccaron
+ /eacute
+ /eogonek
+ /edieresis
+ /ecaron
+ /iacute
+ /icircumflex
+ /dcaron
+%%%%% '360 = "F0
+ /eth
+ /nacute
+ /ncaron
+ /oacute
+ /ocircumflex
+ /ohungarumlaut
+ /odieresis
+ /divide
+%%%%% '370 = "F8
+ /rcaron
+ /uring
+ /uacute
+ /uhungarumlaut
+ /udieresis
+ /yacute
+ /quotedblbase
+ /quotedblleft
+] def
+
+% LIGKERN quoteleft quoteleft =: quotedblleft ;
+% LIGKERN quoteright quoteright =: quotedblright ;
+% LIGKERN exclamdown exclamdown =: guillemotleft ;
+% frenchdblquotes
+% LIGKERN questiondown questiondown =: guillemotright ;
+% csquoteleft
+% LIGKERN comma comma =: quotedblbase ;
+% LIGKERN space {} * ; * {} space ; zero {} * ; * {} zero ;
+% LIGKERN one {} * ; * {} one ; two {} * ; * {} two ;
+% LIGKERN three {} * ; * {} three ; four {} * ; * {} four ;
+% LIGKERN five {} * ; * {} five ; six {} * ; * {} six ;
+% LIGKERN seven {} * ; * {} seven ; eight {} * ; * {} eight ;
+% LIGKERN nine {} * ; * {} nine ;
+% LIGKERN question {} quoteleft ; exclam {} quoteleft ;
+% LIGKERN f {} f ; f {} i ; f {} l ;
diff --git a/Master/texmf-dist/doc/cstex/cstexman.pdf b/Master/texmf-dist/doc/cstex/cstexman.pdf
new file mode 120000
index 00000000000..5ab3fbfdc51
--- /dev/null
+++ b/Master/texmf-dist/doc/cstex/cstexman.pdf
@@ -0,0 +1 @@
+doc/cstexman.pdf \ No newline at end of file
diff --git a/Master/texmf-dist/doc/cstex/cstexman.tex b/Master/texmf-dist/doc/cstex/cstexman.tex
new file mode 100644
index 00000000000..a9ac921f609
--- /dev/null
+++ b/Master/texmf-dist/doc/cstex/cstexman.tex
@@ -0,0 +1,3265 @@
+
+\chyph % pouzijte csplain
+
+\mag=\magstephalf
+
+\csaccents
+\raggedbottom
+
+\hsize=30pc % 30 pica
+\vsize=46pc % 46 řádků po 12pt (zhruba)
+\hoffset=.8cm
+
+\emergencystretch=4em
+\parindent=12pt
+
+\widowpenalty=10000
+\clubpenalty=10000
+\exhyphenpenalty=10000
+
+\newcount\subnum \newcount\subsubnum
+\newwrite\fileref \newread\testin
+\newcount\numlink
+\newif\iflinecolor \linecolorfalse
+
+\def\beglink#1{}
+\def\endlink{}
+\def\aimlink#1{}
+\def\urllink#1{{\tt#1}}
+\def\zalozka#1{}
+
+\def\subtitle #1 | #2\par{\subsubnum=0 \advance\subnum by1
+ \bigskip\noindent{\llap{\raise15pt\hbox{\zalozka{#2}}\kapfont\the\subnum. }%
+ \kapfont #1}%
+ \writetoc\refsub{\ifnum\subnum=0 \else\the\subnum. \fi#1}%
+ \par\nobreak\medskip}
+\def\subsub#1| #2\par{\advance\subsubnum by1
+ \bigskip\noindent{\llap{\raise15pt\hbox{\zalozka{ \space#2}}%
+ \bf\the\subnum.\the\subsubnum\space}%
+ \bf\let\CS=\bCS \let\AMS=\bAMS \let\LaTeX=\bLaTeX #1}%
+ \writetoc\refsubsub{\the\subnum.\the\subsubnum\space #1}%
+ \par\nobreak\medskip}
+\def\writetoc #1#2{{\noexpandcs\xdef\act{%
+ \write\fileref{\noexpand\noexpand\noexpand#1{%
+ \noexpand\the\noexpand\pageno}{#2}}}}\act}
+
+\def\url#1{{\tt #1}}
+
+\def\delejobsah{\bgroup \subnum=-1
+ \noindent {\kapfont Obsah} \bigskip
+ \softinput \jobname.ref
+ \immediate\openout\fileref\jobname.ref
+ \egroup \vfil\break}
+\def\softinput #1 {\let\next=\relax \openin\testin=#1
+ \ifeof\testin \message{VAROVÁNÍ: pro vytvoření obsahu TeXujte ještě jednou.}%
+ \else \closein\testin \def\next{\input #1 }\fi
+ \next}
+\def\tocfill{\leaders\hbox{ . }\hfill}
+\def\refsub#1#2{\advance\subnum by1
+ \line{#2\unskip\tocfill\space#1}}
+\def\refsubsub#1#2{\advance\subnum by1
+ \line{\indent#2\unskip\tocfill\space#1}}
+\def\noexpandcs{\let\csplain=\relax \let\cslatex=\relax \let\CSfont=\relax \let\tt=\relax
+ \let\AMS=\relax \let\TeX=\relax \let\LaTeX=\relax \let~=\relax \let\mf=\relax}
+\output={\noexpandcs \plainoutput}
+
+
+\font\mflogo=logo10 % METAFONT logo
+\font\boldsy=cmbsy10 % Tučné \CS, \AMS.
+\font\titulfontinternal=csb10 scaled\magstep4
+\font\titulboldsy=cmbsy10 scaled\magstep4
+\def\titulfont{\titulfontinternal \let\CS=\bCS \let\boldsy=\titulboldsy}
+\font\kapfontinternal=csbx12
+\font\kapboldsy=cmbsy10 at12pt
+\font\kaptt=cstt12
+\def\kapfont{\kapfontinternal \let\CS=\bCS \let\boldsy=\kapboldsy
+ \let\tt=\kaptt \let\sevenbf=\tenbf \let\LaTeX=\bLaTeX}
+
+
+\def\CS{$\cal C\kern-.1667em\lower.5ex\hbox{$\cal S$}\kern-.075em $}
+\def\bCS{{\boldsy C\kern-.1667em\lower.5ex\hbox{S}\kern-.04em}}
+\def\CSTeX{\CS\TeX}
+\def\CSTUG{\CS TUG}
+\def\CSfont{\CS\kern.1em font}
+\def\csplain{\CS\kern.1em plain}
+\def\mf{{\mflogo META}\-{\mflogo FONT}}
+\def\mp{{\mflogo META}\-{\mflogo POST}}
+\def\LaTeX{L\kern-.36em\raise.5ex\hbox{\sevenrm A}\kern-.12em\TeX}
+\def\twoe{$2_{\textstyle\varepsilon}$}
+\def\LaTeXe{\LaTeX\thinspace\twoe}
+\def\bLaTeX{L\kern-.3em\raise.5ex\hbox{\sevenbf A}\kern-.12em\TeX}
+\def\cslatex{\CS\LaTeX}
+\def\twoe{$2_{\textstyle\varepsilon}$}
+\def\LaTeXe{\LaTeX\thinspace\twoe}
+\def\AMS{$\cal A\kern-.166em\lower.5ex\hbox{$\cal M$}\kern-.075em S$}
+\def\bAMS{{\boldsy A\kern-.166em\lower.5ex\hbox{M}\kern-.075em S}}
+\def\ps{Post\-Script}
+\let\copyleft=\copyright
+
+%% Definice verbatim prostředí %% !verb.
+\catcode`\"=13
+\def"{\hbox\bgroup\let"=\egroup\setverb\tt}
+\def\setverb{\def\do##1{\catcode`##1=12}\dospecials\obeyspaces}
+\def\begtt{\medskip\bgroup
+ \nobreak\setverb \parskip=0pt %\parindent=0pt
+ \def\par{\endgraf\penalty500 }
+ \catcode`\"=12 \obeylines
+ \startverb}
+{\catcode`\|=0 \catcode`\\=12
+ |gdef|startverb#1\endtt{%
+ |tt#1|nobreak|egroup|penalty0|medskip|scannexttoken}}
+{\obeyspaces\gdef {\ }}
+\long\def\scannexttoken#1{\ifx#1\par\else\noindent#1\fi}
+
+
+%% Prostředí s puntíkatými nebo číslovanými položkami %%
+\def\begitems{\medskip\bgroup\catcode`\*=13 \narrower}
+\def\enditems{\par\egroup\medskip}
+{\catcode`\*=13 \gdef*{\par\noindent\llap{$\bullet$\ }\ignorespaces}
+\gdef\numerate{% \numerate napsat těsně za \begitems
+ \def*{\par\advance\itemnum by1\noindent
+ \llap{\bf\the\itemnum. }\ignorespaces}}}
+
+\newcount\bibnum
+\def\cit#1{\expandafter\ifx \csname b:#1\endcsname \relax
+ \message{Warning: The bibitem #1 is not defined}[??#1]%
+ \else [\csname b:#1\endcsname]\fi}
+
+\def\bib #1 {\smallskip\advance\bibnum by1
+ \immediate\write\fileref{\noexpand\bibref{#1}{\the\bibnum}}
+ \noindent \llap{[\the\bibnum]\enspace}\ignorespaces}
+\def\bibref #1#2{\expandafter\gdef \csname b:#1\endcsname{#2}}
+
+\def\reference{\subtitle Reference | REFERENCE\par}
+
+\let\Red=\relax \let\Black=\relax
+\def\startcolor#1{} \def\stopcolor#1{}
+
+\def\newstart{\startcolor{Red}}
+\def\newstop{\stopcolor{Black}}
+\def\startcc#1#2{}
+\def\stopcc#1#2{}
+
+
+\def\new#1{\leavevmode\newstart#1\newstop}
+\def\newAbox#1{\Red\hbox{#1}\Black}
+
+\def\skrt#1{\let\barva=\Red
+ \dimen0=\maxdimen \leavevmode \skrtslovo #1 {} }
+
+\def\skrtrule{\vrule height2.8pt depth-2.5pt}
+
+\def\skrtslovo #1 {\def\tmp{#1}\ifx\tmp\empty \else
+ \ifdim\dimen0=\maxdimen \else
+ \linecolortrue\barva \leaders\skrtrule\hskip
+ \fontdimen2\the\font plus\fontdimen3\the\font minus\fontdimen4\the\font
+ \Black\linecolorfalse
+ \fi
+ \setbox0=\hbox{#1}\dimen0=\wd0%
+ \rlap{\box0}%
+ {\linecolortrue\barva\skrtrule width\dimen0\Black\linecolorfalse}%
+ \expandafter\skrtslovo\fi}
+
+\def\setbrackets{\catcode`!=0 \catcode`\[=1 \catcode`\]=2 }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Makra pro pdfTeX %%%%%%%%%%%%%%%%%%%%%%%
+
+\ifx\pdfoutput\undefined\else %%%% pdfTeX is used %%%%%%%%%%
+\ifnum\pdfoutput>0
+
+\pdfhorigin=3mm \pdfvorigin=10mm
+\pdfpagewidth=14.5cm
+\pdfpageheight=22cm
+
+\ifx\pdfannotlink\undefined %%% Backward compatibility
+ \let\pdfannotlink=\pdfstartlink
+\fi
+
+\def\beglink#1{% % Začátek textu odkazu, #1 je klíč odkazu
+ \Green \pdfannotlink height9pt depth3pt
+ attr{/Border[0 0 0]} goto name{#1}\relax}
+\def\endlink{\pdfendlink\Black}
+\def\aimlink#1{% % Místo cíle odkazu, #1 je klíč odkazu
+ \expandafter\ifx \csname aim:#1\endcsname \relax
+ \expandafter\gdef \csname aim:#1\endcsname {}%
+ \vbox to0pt{\vss\hbox{\pdfdest name{#1} fith}\kern15pt}%
+ \fi
+}
+\def\zalozka#1{\global\advance\numlink by1
+ \pdfdest num\numlink fith\relax
+ {\let~=\space\pdfoutline goto num\numlink {#1}}}
+
+\def\pdfsetcmykcolor#1{\special{PDF:#1 \iflinecolor K\else k\fi}}
+\def\Red{\pdfsetcmykcolor{0.1 0.9 0.9 0.3}}
+\def\Black{\pdfsetcmykcolor{0 0 0 1}}
+\def\Green{\pdfsetcmykcolor{0.9 0.1 0.9 .3}}
+\def\Blue{\pdfsetcmykcolor{0.9 0.9 0.1 0}}
+\def\Orange{\pdfsetcmykcolor{0 0.7 1 .5}}
+
+\footline={\hss\Black\tenrm\folio\hss}
+\headline={\hss \csname cc:\the\pageno\endcsname}
+\edef\footnoterule{\noexpand\Black\footnoterule}
+
+\csname newcount\endcsname\ccnum
+
+\def\startcc#1#2{\def\ccval{#1}\ccnum=#2 }
+\def\stopcc#1#2{\loop \ifnum\ccnum<#2
+ \advance\ccnum by1
+ \expandafter\xdef\csname cc:\the\ccnum\endcsname
+ {\noexpand\csname\ccval\noexpand\endcsname}\repeat}
+
+\def\startcolor#1{\csname#1\endcsname
+ \write\fileref{\string\startcc{#1}{\the\pageno}}}
+\def\stopcolor#1{\csname#1\endcsname
+ \write\fileref{\string\stopcc{#1}{\the\pageno}}}
+
+\pdfcompresslevel=9
+\pdfinfo{/Author (Petr Olsak)
+ /CreationDate (September 2002)
+ /ModDate (\the\year-\the\month-\the\day)
+ /Creator (TeX)
+ /Producer (pdfTeX)
+ /Title (CSTeX Manual)
+ /Subject (Documentation)
+ /Keywords (TeX, Czech+Sloavk localisation)
+}
+\pdfcatalog{/PageMode /UseOutlines}\relax
+
+
+\fi\fi %%%%%%%%%%%%%%%%%%%%%%%%%%%% Konec maker PDFTeXu %%%%%
+
+
+%%%%%%%%%%%%%%%%%%%%%%% Titulni strana %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+{\nopagenumbers \vglue 5cm
+
+\centerline{\titulfont Manuál k \CS\TeX{}u}
+
+\vskip 2cm
+
+\centerline{\titulfont Petr Olšák}
+
+\vfill
+
+\hrule
+\bigskip
+
+\noindent
+\hfil Hněvanice, Morávka, Praha -- léto 2002, \newAbox{podzim 2012}
+
+\vfil\break
+
+Autor \TeX{}u je profesor Donald Knuth.
+\bigskip
+
+\TeX{} je ochranná známka American Mathematical Society.
+\bigskip
+
+Ostatní v manuálu použité názvy programových produktů, firem
+apod. mohou být ochrannými známkami nebo registrovanými ochrannými
+známkami příslušných vlastníků.
+
+\vfill
+
+Tento text je volně šířen společně s~balíkem \CSTeX. Jedná se
+o~referenční manuál k tomuto balíku. Text je k~dispozici ve
+formátech "tex" (\csplain), PostScript a PDF. Výchozí adresa textu je
+\url{ftp://math.feld.cvut.cz/pub/cstex/doc}.
+
+Text můžete tisknout a jinak používat pro soukromé účely. V~nezměněném
+stavu v elektronické podobě jej můžete také distribuovat bez dalšího
+omezení. Není dovoleno tento text zveřejňovat v~pozměněném stavu a
+publikovat jej v~papírové podobě bez předchozí dohody s~autorem.
+
+\bigskip
+
+This document is free distributed as a part of the \CSTeX{} package.
+It is a reference manual of the \CSTeX. It is available
+in formats "tex" (\csplain), PostScript and PDF. The base URL of it
+is \url{ftp://math.feld.cvut.cz/pub/cstex/doc}.
+
+You can print this document or use it in another way only as an individual
+end-user. If you don't do any change in this document then you can
+distribute it in electronical form without any limitation.
+It is not permitted to distribute this document in changed versions or to
+publish it in hardcopy form without previous agreement with the
+author.
+
+\bigskip
+
+This original is written in Czech language.
+The translation into other languages are welcome.
+
+
+\vfill
+
+Verze textu 15. 5. 2003
+
+\leavevmode\newAbox{Verze textu 30. 11. 2012}
+\bigskip
+
+\copyleft{} RNDr. Petr Olšák, 2002\newAbox{, 2012}
+
+\bigskip
+
+%\leavevmode\newAbox{\bf Upozornění: tato verze textu je provizorní.}
+
+%\leavevmode\newAbox{\bf Během několika týdnů se ještě bude měnit.}
+
+\break
+
+}
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\delejobsah
+
+
+\subtitle Úvod | ÚVOD
+%%%%%%%%%%%%%%%%%%%%%
+
+\new{Po skoro deseti letech se k tomuto textu vracím, abych jej
+aktualizoval. Veškeré změny jsou vyznačeny touto barvou. Černý text je
+naopak původní z roku 2003. Nabízím čtenáři dva bonbónky v jednom: podrobnou
+technickou dokumentaci i pohled do historie.}
+
+V~tomto manuálu se pokusím vyčerpávajícím způsobem popsat
+vlastnosti \CSTeX{}u. Z~tohoto důvodu to asi nebude jednoduché čtení
+pro \TeX{}ové začátečníky. Těm doporučuji nejprve přečíst~\cit{prvni}.
+
+\CSTeX{} je sada \TeX{}ových maker, fontů, vzorů dělení slov a
+doplňujícího software pro podporu české a slovenské sazby
+v~\TeX{}u. Je vytvořen tak, aby mohl být použit na libovolné \TeX{}ové
+distribuci na libovolném operačním systému.
+
+Dříve byla slovem \CSTeX{} označována také kompletní em\TeX{}ová
+distribuce doplněná o~zmíněná makra, fonty a vzory dělení. To bylo
+v~roce 1993, kdy sdružení \CSTUG{} rozesílalo pod tímto názvem em\TeX{}ovou
+distribuci na disketách svým členům. V~té době většina členů používala
+DOS, takže em\TeX{} pro DOS byl pro ně vyhovující. V~dnešní době uživatelé
+pracují s~nejrůznějšími operačními systémy a s~různými distribucemi
+\TeX{}u pro tyto systémy. Z~toho důvodu se v~tomto manuálu přidržíme
+jen užšího významu slova \CSTeX, definovaného v~předchozím odstavci.
+
+\CSTeX{} sestává ze \skrt{tří} \new{dvou}
+základních pilířů: \CSfont{}y, \csplain{} \skrt{a \CS\LaTeX}.
+\CSfont{}y jsou konzervativním rozšířením Knuthových Computer Modern
+fontů, \csplain{} je konzervativním rozšířením Knuthova formátu plain
+a konečně \cslatex{} \skrt{je} \new{byl} jistou modifikací běžně používaného formátu
+\LaTeX. Tyto \skrt{tři} pilíře jsou podrobně dokumentovány v~následujících
+kapitolách. K~těmto pilířům \CSTeX{}u je ještě připojena podpora
+použití základních 35 PostScriptových fontů v~češtině a slovenštině
+prostřednictvím virtuálních fontů.
+
+Základní balíčky \CSTeX{}u přístupné na Internetu mají následující názvy:
+
+{\setbrackets
+\begtt
+csfonts.tar.gz ... CSfonty -- Metafontové soubory a metriky.
+csplain.tar.gz ... Makra pro formát CSplain a vzory dělení slov.
+cslatex.tar.gz ... Makra pro formát CSLaTeX. !newAbox[-- zastaralé]
+cspsfonts.tar.gz ... Virtuální fonty základních 35 PostScriptových
+ fontů v~kódování podle CSfontů.
+\endtt
+\par}
+
+Pokud někdo řekne, že má na své distribuci \TeX{}u instalován \CSTeX,
+pak to znamená, že má určitě instalovány tyto čtyři balíky.
+Kromě toho k~\CSTeX{}u řadíme i následující doplňující software,
+který už nemusejí mít všichni uživatelé \CSTeX{}u instalován:
+
+{\setbrackets
+\begtt
+csfonts-t1.tar.gz .. Varianta CSfontů ve formátu PostScript Type1.
+enctex.tar.gz ... Makra a návod na modifikaci tex.ch souboru !skrt[na]
+ !skrt[zahrnutí podpory přímého přístupu k vektorům]
+ !skrt[xord/xchr prostřednictvím primitivů.]
+ !new[pro vícebytové překódování v input procesoru.]
+cstrip.tar.gz ... Test funkcionality formátu CSplain.
+csindex-19980713.tar.gz ... Zdrojové soubory v~jazyce C programu
+ csindex, který je modifikací programu
+ makeindex se zahrnutou podporou českého a
+ slovenského řazení.
+vlna.tar.gz ... Zdrojové soubory v~jazyce C a v~jazyce cweb
+ programu vlna na automatické doplňování vlnek
+ za neslabičné předložky.
+\endtt
+\par}
+
+Na Internetu naleznete všechny uvedené balíky na
+
+\begtt
+ftp://math.feld.cvut.cz/pub/cstex/base
+\endtt
+
+Základní balíčky a {\tt csfonts-t1.tar.gz} obsahují adresářovou strukturu
+podle TDS (\TeX{} directory standard), takže pokud vaše distribuce
+\TeX{}u používá tento standard, pak rozbalení balíčků nad adresářem
+{\tt texmf} povede automaticky k~zařazení všech souborů na správná
+místa v~{\tt texmf} stromu.
+
+Starší verze uvedených balíků najdete na
+
+\begtt
+ftp://math.feld.cvut.cz/pub/cstex/base/old
+\endtt
+
+Dokumentaci k~\CSTeX{}u (včetně tohoto manuálu) najdete na
+
+\begtt
+ftp://math.feld.cvut.cz/pub/cstex/doc
+\endtt
+
+Adresář "ftp://math.feld.cvut.cz/pub/cstex/"\new{{\tt old/}} obsahuje kromě
+zmíněných věcí kompletní distribuci em\TeX{}u s~podporou \CSTeX{}u
+(v~podadresáři {\tt emtex}), minimalizovanou distribuci
+em\TeX{}u+\CSTeX{}u pro pouhé tři instalační diskety (v~podadresáři
+{\tt minitex}), návody a software na instalaci web2c \TeX{}u
+(v~podadresáři {\tt web2c}) a RPM balíky te\TeX{}u podporující \CSTeX{}
+pro různé distribuce Linuxu (v~podadresáři {\tt tetex-rpm}). Tyto
+podadresáře vznikaly postupně v~poslední dekádě minulého
+tisíciletí podle potřeby a zájmu o~uvedené distribuce \TeX{}u.
+Podle toho, jak rostla a klesala popularita jednotlivých distribucí,
+jsou tyto podadresáře aktualizovány (nebo spíše neaktualizovány).
+Na druhé straně mohou vzniknout další adresáře s~balíčky dalších
+distribucí \TeX{}u obsahujících \CSTeX{}~-- stačí, když je někdo udělá a
+pošle o~tom informaci na mou elektronickou adresu. Mohu třeba založit
+podadresář {\tt miktex-zip} analogicky k~adresáři {\tt tetex-rpm},
+pokud se to někomu bude hodit a pokud ty archivy samozřejmě udělá.
+
+
+\subtitle \CSfont{}y | CSFONTY
+%%%%%%%%%%%%%%%%%%%%
+
+\CSfont{}y jsou konzervativním rozšířením CM fontů Donalda Knutha. Tím je
+míněno, že každý \CSfont{} má svůj protějšek v~nějakém CM fontu,
+přičemž se naprosto shoduje v~kódování, tvarech a šířkách znaků na
+prvních 128 pozicích (kódy 0~až~127), tj. na všech pozicích, které
+jsou tímto CM fontem použity. \CSfont{} tedy pouze doplňuje další
+znaky do pozic s~kódem větším než 127. Tam jsou umístěny znaky české
+a slovenské abecedy podle kódování ISO~8859-2.
+Některé pozice stále zůstávají neobsazeny.
+Níže uvádím tabulku \CSfont{}u. Druhý znak na
+pozicích 0B~až 0F se vyskytuje namísto prvního znaku ve fontech
+bez ligatur typu fi ({\tt csr5}, {\tt cstt*} a {\tt cssltt*}),
+druhý znak na pozicích~20, 3C, 3E, 5C, 5F a
+7B~až~7D najdeme ve strojopisných fontech ({\tt cstt*} a {\tt cslstt*}) a
+konečně libra místo dolaru na pozici~24 se vyskytuje v kurzívách
+({\tt csti*}). Tyto nejednoznačnosti v~kódování mají samozřejmě i
+původní CM fonty.
+
+%------------------------------------------------------------
+
+\newcount\colnum \newcount\linenum \newcount\posnum
+\def\tabfont #1{\posnum=0
+ \vbox\bgroup \offinterlineskip #1
+ \line{\hfil {\tt \space\space\space}\vrule depth.4em
+ \loop
+ \ifnum\colnum<16
+ \hbox to.055\hsize{\hfil\tentt\hex\colnum\hfil}\vrule
+ \advance\colnum by1
+ \repeat
+ }% end of \line
+ \loop
+ \ifnum\linenum<16
+ \hrule
+ \line{\hfil{\tentt \hex\linenum x }%
+ \vrule height 1.0em depth .4em\tabline}
+ \advance\linenum by1
+ \repeat
+ \hrule
+ \egroup
+}
+\def\tabline{
+ \colnum=0
+ \loop
+ \ifnum\colnum<16
+ \tabitem
+ \advance\colnum by1
+ \repeat
+}
+\def\tabitem{\hbox to.055\hsize{\hfil\char\posnum\altchar\hfil}%
+ \vrule\global\advance\posnum by1}
+\def\altchar{\ifcase\posnum
+ \or\or\or\or\or\or\or\or\or\or\or\a\or\a\or\a\or\a\or\a\or
+ \or\or\or\or\or\or\or\or\or\or\or\or\or\or\or\or
+ \a\or\or\or\or\kern2pt{\it\$}\or\or\or\or\or\or\or\or\or\or\or\or
+ \or\or\or\or\or\or\or\or\or\or\or\or\a\or\or\a\or\or
+ \or\or\or\or\or\or\or\or\or\or\or\or\or\or\or\or
+ \or\or\or\or\or\or\or\or\or\or\or\or\a\or\or\or\a\or
+ \or\or\or\or\or\or\or\or\or\or\or\or\or\or\or\or
+ \or\or\or\or\or\or\or\or\or\or\or\a\or\a\or\a\or\or\or
+ \fi}
+\def\a{\kern2pt{\tt\char\posnum}}
+\def\hex#1{\ifcase#1\relax 0\or1\or2\or3\or4\or5\or6\or7\or8\or
+ 9\or A\or B\or C\or D\or E\or F\fi}
+\bigskip
+\tabfont {\font\f=csr10 \font\it=csti10 \font\tt=cstt10 \f}
+\bigskip
+%----------------------------------------------------------------
+
+Následuje seznam všech CM fontů. Pokud není vpravo uveden alternativní název
+\CSfont{}u, jedná se o~matematický font, který nemá v~\CSfont{}ech alternativu.
+Také ji nepotřebuje.
+
+\begtt
+CM font CSfont
+------------------------------------------------------------------
+cmr17, 12, 10, 9, 8, 7, 6, 5 csr17, 12, 10, 9, 8, 7, 6, 5
+cmbx12, 10, 9, 8, 7, 6, 5 csbx12, 10, 9, 8, 7, 6, 5
+cmsl12, 10, 9, 8 cssl12, 10, 9, 8
+cmtt12, 10, 9, 8 cstt12, 10, 9, 8
+cmsltt10, cmvtt10 cssltt10, csvtt10
+cmss17, 12, 10, 9, 8 csss17, 12, 10, 9, 8
+cmssi17, 12, 10, 9, 8 csssi17, 12, 10, 9, 8
+cmssdc10, cmssbx10 csssdc10, csssbx10
+cmssqi8, cmssq8 csssqi8, csssq8
+cmdunh10, cmbxsl10, cmb10 csdunh10, csbxsl10, csb10
+cmff10, cmfib10 csff10, csfib10
+------------------------------------------------------------------
+cmti12, 10, 9, 8, 7 csti12, 10, 9, 8, 7
+cmbxti10, cmitt10 csbxti10, csitt10
+cmu10, cmfi10 csu10, csfi10
+------------------------------------------------------------------
+cmcsc10, cmtcsc10 cscsc10, cstcsc10
+------------------------------------------------------------------
+cminch10 csinch10
+------------------------------------------------------------------
+cmmi12, 10, 9, 8, 7, 6, 5
+cmmib10
+------------------------------------------------------------------
+cmtex10, 9, 8
+------------------------------------------------------------------
+cmsy10, 9, 8, 7, 6, 5
+cmbsy10
+------------------------------------------------------------------
+cmex10
+------------------------------------------------------------------
+\endtt
+
+Mezi soubory metrik \CSfont{}ů navíc najdeme metriky vytvořené Sauterovou
+extrapolací, které nemají přímou obdobu mezi CM fonty:
+
+\begtt
+ CSfont
+------------------------------------------------------------------
+ csb17, 12, 9, 8, 7, 6, 5
+ csbxsl12, 5, 6, 7, 8, 9
+ csbxti17, 12
+ cscsc17, 12
+ csdunh17, 12, 5, 6, 7, 8, 9
+ csfib12, 10, 9
+ csitt12, 17, 8, 9
+ cssl17, 5, 6, 7
+ cssltt12, 8, 9
+ csssbx12, 17, 9
+ cstcs12, 17
+ csti17
+ csu12, 17, 7, 8, 9
+ csvtt12, 8, 9
+------------------------------------------------------------------
+\endtt
+
+\mf{}ová makra pro Sauterovu extrapolaci jsou součástí balíčku
+s~\CSfont{}y {\tt csfonts.tar.gz}. Princip této extrapolace je například
+popsán v~\cit{tst}.
+\new{Fonty vytvořené Sauterovou extrapolací nedoporučujeme používat, protože
+nemají svou implementaci pomocí PostScriptového fontu. Do výstupního PDF se
+při použití takového fontu zavede bitmapový výstup z \mf{}u, což může vést
+ke komplikacím.}
+
+
+\subsub Odlišnosti od CM fontů | Odlisnosti od CMfontu
+%-----------------------------
+
+Nelze tvrdit, že text používající jen znaky z~pozic 0--127 bude
+100\% shodně zpracován při použití CM fontů i \CSfont{}ů. Odlišnosti existují,
+ale jsou tak nepatrné, že je velmi malá prvaděpodobnost, že by při běžném
+užívání byla pozorovatelná rozdílnost. Nicméně přesto zde všechny
+odlišnosti uvádím včetně komentářů. Uvedené hodnoty jsou příkladem
+při srovnání fontu "csr10" s~"cmr10".
+
+\medskip{\bf 1. Kerningové páry}
+
+Mezi tečkami ("..") je v "csr10" implicitní kern, aby bylo možno sázet
+ elipsu. Kern~$0,011111$pt. V cmr10 není.
+
+Dvojice "ka" -- "csr10": $-0,0027777$pt, "cmr10": $-0,0055555$pt.
+
+Dvojice "P." a "P," -- "csr10": $-0,0027777$pt, "cmr10" není.
+
+Dvojice "F.", "F,", "V.", "V,", "W." a "W," -- "csr10": $-0,0055555$pt, "cmr10" není.
+
+Dvojice "Av" a "Aw" -- "csr10": $-0,011111$pt, "cmr10" není.
+
+
+\medskip{\bf 2. Ligatury}
+
+Dvojice "<<" vede v csr10 na francouzské uvozovky, kód 158, v cmr10 není.
+
+Dvojice ">>" vede v csr10 na francouzské uvozovky, kód 159, v cmr10 není.
+
+
+\medskip{\bf 3. Výšky znaků}
+
+Formát "tfm" je omezen na maximálně 16 různých výšek znaků v~jednom fontu.
+V~"cmr10" je obsazeno všech 16 různých výšek. Přitom v~"csr10" přicházejí další
+výšky znaků dané akcentovanými znaky. Proto \mf{} provedl v~"csr10" jistá
+zaokrouhlení, která způsobí odlišnost výšek od výšek v~"cmr10" maximálně
+o~0,007779pt. Jedná se o~tyto znaky:
+
+\begitems
+* $\Gamma$ až $\Omega$, \AE, \OE{} a všechny kapitálky:
+ v~"csr10" jsou menší o~0,00773pt.
+
+* Nadržítko (kód 22), nadpuntík (kód 95) a přehláska (kód 127):
+ v~"csr10" větší o~0,007779pt.
+
+* Písmena i, j jsou v~"csr10" větší o~0,007779pt.
+
+* Znak plus (+) je v~"csr10" menší o~0,007778pt.
+\enditems
+
+Rozdílnost výšek není kritická, protože při sazbě se většinou berou v~úvahu
+jen šířky znaků. Pouze výjimečně promluví do sazby i výška (většinou když
+objekt v~řádku je větší než "\baselineskip").
+
+
+\subsub Struktura \mf{}ových zdrojových souborů \CSfont{}ů |
+%---------------------------------------------------------
+ Struktura METAFONTovych zdrojovych souboru CSfontu
+
+\mf{} čte nejprve soubor, který má stejné jméno, jako je jméno
+generovaného fontu, a má příponu {\tt mf}. Například {\tt csr10.mf}.
+Takovému souboru říkáme hlavní soubor generování fontu. V~\CSfont{}ech je
+takových hlavních souborů celkem 121. Všechny mají stejný dvouřádkový
+obsah:
+
+\begtt
+input cscode
+use_driver;
+\endtt
+
+V~souboru {\tt cscode.mf} se načtou jména a kódy akcentovaných znaků
+(jsou uspořádány podle ISO~8859-2) a definuje se "use_driver"
+v~závislosti na jménu hlavního souboru tak, že se načte odpovídající
+hlavní soubor CM fontů (tj. odpojí se předpona "cs" a připojí předpona
+"cm"). V~případě fontu "csr10" se tedy načte v~tuto chvíli
+soubor~{\tt cmr10.mf}. Navíc je v~souboru {\tt cscode.mf}
+předefinováno {\tt generate} (v~CM fontech má význam {\tt input}) tak,
+že poslední řádek {\tt cmr10.mf} s~textem
+
+\begtt
+generate roman
+\endtt
+%
+neprovede {\tt input roman.mf}, ale provede {\tt input kmroman.mf}.
+Další průběh výpočtu je tedy zase v~režii \CSfont{}ů. Kromě souboru
+{\tt kmroman.mf} jako alternativy k~souboru {\tt roman.mf} z~CM fontů
+najdeme analogické alternativy s~názvy {\tt kmtextit.mf},
+{\tt kmcsc.mf}, {\tt kmtexset.mf} a {\tt kmtitle.mf}.
+
+Z~uvedených souborů se postupně načítají soubory generující tvary
+jednotlivých znaků. Jedná o~všechny odpovídající soubory
+z~CM fontů a navíc soubory uvedené v~následující tabulce.
+
+\begitems
+* {\tt csaccent.mf} definuje makra pro akcenty,
+* {\tt csacutl.mf} generuje á, é, í, ó, \'r, ú, ý,
+* {\tt csacutu.mf} generuje Á, É, Í, \'L, Ó, \'R, Ú, Ý,
+* {\tt cshachel.mf} generuje č, ě, ň, ř, š, ž,
+* {\tt cshacheu.mf} generuje Č, Ď, Ě, Ň, Ř, Š, Ť, Ž,
+* {\tt csotherl.mf} generuje \^o, ů, \`a, \'l, \v t, \v d, \v l, \"a,
+ \"o, \"u,
+* {\tt csotheru.mf} generuje \^O, Ů, \`A, \v L, \"A, \"O, \"U,
+* {\tt csadded.mf} generuje \clqq\kern2pt, \crqq, >>, <<, \promile, \ogonek{},
+* {\tt cshyph.mf} generuje alternativní hyphenchar.
+\enditems
+
+V~souboru {\tt kmroman.mf} a jemu podobných souborech jsou ještě zapsány
+kernové páry a údaje pro tabulku ligatur. V~tomto souboru činnost
+\mf{}u končí příkazem {\tt bye}.
+
+
+\subsub Alternativní hyphenchar | Alternativni hyphenchar
+%------------------------------
+
+Na pozici 156 je v~\CSfont{}ech spojovník s~úplně stejnou kresbou a
+metrikou, jako na pozici~45. Nastavíme-li
+"\hyphenchar\beznyfont=156", budeme mít zaručeno, že ve slovech
+\uv{je-li} nebude \TeX{} dělit slovo. Bez tohoto nastavení by \TeX{}
+rozdělil \uv{je-/li}, což není v~souladu s~požadavky na českou sazbu.
+Mnoho dalších způsobů řešení tohoto problému najdeme v~\cit{tbn}.
+
+Další aplikací znaku 156 je modifikace jeho metriky tak, aby kresba
+přesahovala přes šířku znaku výrazně doprava. Pak nastavením
+"\hyphenchar\beznyfont=156" dosáhneme tzv.~visící interpunkce,
+viz například~\cit{texbook} nebo~\cit{tbn}. V~poslední době se visící
+interpunkce stává módní záležitostí, protože to umí i nejnovější verze
+programu Adobe InDesign. Metriku \CSfont{}u můžete pro vlastní potřeby
+modifikovat například programy tftopl a pltotf. Takto modifikovanou
+metriku ovšem nesmíte distribuovat pod stejným názvem, jaký má
+původní metrika \CSfont{}u.
+
+
+\subsub Anabáze UNIXových hard-linků | Anabase UNIXovych hard-linku
+%-----------------------------------
+
+Jak jsme uvedli v předchozí sekci,
+hlavní \mf{}ové soubory \CSfont{}ů mají jednu zvláštnost: ačkoli zde existuje
+121 různě nazvaných souborů, všechny obsahují stejný dvouřádkový text.
+
+Rozhodl jsem se těch 121 stejných různě nazvaných souborů
+implementovat pro úsporu inodů v~UNIXu jako hard linky. Takto jsem
+fonty zabalil do balíčku {\tt csfonts.tar.gz} a dal k~dispozici
+internetové veřejnosti.
+
+Pokud je systém, na který se balíček {\tt csfonts.tar.gz} instaluje,
+rovněž UNIXo\-vého typu, pak program {\tt tar} vytvoří v~cílovém
+adresáři 121 hard linků a je vše v~pořádku. Systém ušetřil 120 inodů,
+které nemusel alokovat.
+
+Jestliže ale cílový systém nepracuje s~hard linky, mohou nastat
+potíže. Osobně se ale domnívám, že pokud tento systém provozuje
+nějakou implementaci programu {\tt tar}, měla by se tato implementace
+s~problémem hard linků vyrovnat například tak, že místo hard linků
+vytvoří při extrahování archivu stejné soubory.
+
+Proto považuji stížnosti uživatelů MS Windows na podivnost archivu
+{\tt csfonts.tar.gz} za neopodstatněné. Tito uživatelé si stěžují, že
+se jim rozbalí z~těch 121 souborů jen jeden, přičemž používají jakýsi
+"Wintar". Odpovídám: nechť si tito uživatelé stěžují u~svého dodavatele
+implementace programu {\tt tar}. Odmítám kvůli Windowsovým uživatelům
+balit \CSfont{}y jinak a opustit tak možnost šetření inodů na UNIXových
+systémech. Navíc se mi doneslo, že Windowsoví uživatelé mají možnost
+použít jiné implementace programu {\tt tar}, které popsanou chybu
+neobsahují, a skutečně na Windowsovém filesystému založí 121 různých
+souborů se stejným obsahem.
+
+
+\subsub Virtuální fonty přidané do balíčku \CSfont{}ů |
+%----------------------------------------------------
+ Virtualni fonty pridane do balicku CSfontu
+
+V~balíčku {\tt csfonts.tar.gz} jsou přítomny dvě skupiny virtuálních
+fontů. Jedny mapují \CSfont{}y na CM fonty a druhé mapují CM fonty na
+\CSfont{}y. V~tomto odstavci vysvětlím důvody existence obou skupin a
+způsob jejich použití.
+
+Až donedávna bylo potřeba při prohlížení "dvi" souborů programem "xdvi"
+(a~jemu podobnými programy) počkat, až se pomocí \mf{}u a programu
+"gftopk" vygenerují potřebné bitmapy fontů, a teprve pak jsme je viděli
+v~prohlížeči. Teprve od roku 2002 má program "xdvi" schopnost přímo
+zobrazovat Type1 verze fontů, ale popisované virtuální fonty vznikly
+v~době, kdy tomu tak nebylo a kdy \CSfont{}y ještě neměly svou Type1
+variantu. Pokud jsme tehdy nemuseli čekat na generování nových fontů
+\mf{}em, pak jen proto, že už byly fonty vygenerovány dříve a zůstaly
+uloženy na disku v~podobě {\tt pk} souborů.
+
+Za této situace bylo výhodné udržovat na disku co nejméně {\tt pk}
+souborů. Protože uživatel \CSTeX{}u obvykle používá \CSfont{}y, dá se
+předpokládat, že jejich {\tt pk} soubory má na disku v~hojném
+množství. Když pak jednou za čas potřebuje takový uživatel prohlédnout
+{\tt dvi} soubor odkazující na CM fonty, pak je přeci zbytečné pro ně
+generovat nové bitmapy, když \CSfont{}y jsou nadmnožinou CM fontů a
+bitmapy \CSfont{}ů pravděpodobně na disku už vygenerované jsou. Stačí pro
+zobrazení znaků CM fontů čerpat z~bitmap \CSfont{}ů.
+
+Právě k~tomu účelu slouží první skupina virtuálních fontů označovaná
+jako cm2cs. Po rozbalení {\tt csfonts.tar.gz} je tato skupina
+virtuálních fontů uložena do adresáře {\tt fonts/vf/public} a je tedy aktivní.
+Každý "dvi"-ovladač, který potřebuje vykreslit znak z~CM fontu, pak
+použije tyto virtuální fonty, které jej nasměrují na \CSfont{}y. Takže
+"dvi"-ovladač bude tyto znaky nakonec čerpat z~\CSfont{}ů. K~žádnému
+zkreslení informace přitom nedochází, protože všechny znaky CM fontů
+jsou v~odpovídajících \CSfont{}ech na stejných pozicích a vypadají úplně
+stejně.
+
+Pokud \CSfont{}y vůbec nepoužíváte (nebo jen občas), bude pro vás
+asi výhodné virtuální fonty cm2cs z~adresáře {\tt fonts/vf/public}
+odstranit. Stejně tak se nehodí mít tyto virtuální fonty aktivní
+v~mezinárodních \TeX{}ových distribucích, kde většina uživatelů \CSfont{}y
+nikdy nepoužije. Tito uživatelé by asi byli velmi překvapeni, že při
+prohlížení {\tt dvi} souboru se standardními CM fonty jim distribuce
+generuje na disk bitmapy jakýchsi \CSfont{}ů.
+
+Druhá skupina virtuálních fontů s~označením cs2cm není po rozbalení
+balíčku s~\CSfont{}y aktivní, protože není v~adresáři {\tt fonts/vf}, ale
+v~adresáři {\tt fonts/vf-cnv}, který dvi-ovladače s~obvyklou konfigurací
+neprocházejí.
+
+Tuto skupinu virtuálních fontů použijeme v~případě, že jsme vytvořili
+v~\CSTeX{}u dokument odkazující na \CSfont{}y, a nyní jej chceme ve
+formátovaném tvaru (jako soubor {\tt dvi}) poslat například do
+zahraničí. Přitom předpokládáme, že příjemce nebude mít ve své \TeX{}ové
+distribuci \CSfont{}y.
+
+Virtuální fonty cs2cm mapují všechny znaky \CSfont{}ů
+na odpovídající znaky z~CM fontů. Pokud znak v~CM fontech
+neexistuje, virtuální font jej nahradí kompozitem (například
+písmeno+háček). Pokud tedy aplikujeme například program "dvicopy" s~těmito
+virtuálními fonty, dostáváme nový {\tt dvi} soubor, který už odkazuje
+jen na CM fonty, a akcentovaná písmena jsou v~tomto {\tt dvi} souboru
+nahrazena kompozity. Takový "dvi" soubor můžeme poslat do zahraničí a máme
+jistotu, že bude zpracovatelný na libovolné \TeX{}ové distribuci,
+protože každá distribuce obsahuje CM fonty. Kvalita sazby se ovšem
+zhorší, protože akcenty (coby samostatné znaky) jsou v~CM fontech
+takové poněkud nedomrlé, zatímco v~\CSfont{}ech jsou kresleny společně
+s~písmenem s~velikou péčí. Informace v~dokumentu
+ovšem není uvedenou modifikací {\tt dvi} souboru
+vůbec změněna. Výjimkou je případ výskytu jednoho z těchto čtyř znaků:
+promile, ogonek (ocásek pod polské a), levá a pravá francouzská
+uvozovka. Tyto znaky nelze nijak pomocí CM fontů nahradit. Pokud
+dokument některý z~těchto znaků obsahuje, pak program
+"dvicopy" ohlásí \uv{{\tt---missing character packet}} a ponechá místo
+těchto znaků prázdná místa.
+
+Ve web2c distribuci \TeX{}u v UNIXu můžete pro uvedenou
+konverzi "dvi" souboru z~\CSfont{}ů na CM~fonty použít příkaz:
+
+\begtt
+VFFONTS=\$TEXMF/fonts/vf-cnv// dvicopy vstup.dvi vystup.dvi
+\endtt
+
+Poznamenejme, že v~žádném případě nesmí "dvi" ovladač najít současně
+virtuální fonty cm2cs i cs2cm. V~takovém případě dojde k~havárii,
+neboť odkazy ve virtuálních fontech se dostanou do nekonečného cyklu.
+
+
+
+
+\subsub Historie a budoucnost \CSfont{}ů | Historie a budoucnost CSfontu
+%------------------------------------
+
+Tvary akcentů \CSfont{}ů byly vytvořeny a implementovány v~jazyce
+\mf{}u Petrem Novákem ve spolupráci s~českými typografy někdy na
+začátku 90.~let. Autor přenechal \CSfont{}y \CSTUG{}u, který s~nimi
+může libovolně nakládat.
+
+\mf{}ový kód byl pak v~letech 1992--1993 dále upraven Karlem Horákem.
+Karel se inspiroval z~\mf{}ových zdrojů pro fonty vytvořené v~Polsku.
+Zapracoval tam možnost nastavení kódování fontu a vytvořil makra
+umožňující mít všechny hlavní {\tt mf} soubory se stejným
+dvouřádkovým obsahem.
+
+Na schůzce tvůrců \CSTeX{}u na FEL v~roce 1993 bylo rozhodnuto, že
+\CSfont{}y budou mít kódování podle ISO~8859-2. Později, při
+implementaci \CSTeX{}u do UNIXo\-vých distribucí nepodporujících
+změny xord/xchr vektorů, se ukázalo, že to bylo velmi prozíravé
+rozhodnutí.
+
+V~roce 1993 jsem převzal údržbu \CSfont{}ů do svých rukou. Udělal jsem
+jen velmi drobné změny. Poslední 28.~9.~1996:
+
+Písmeno Č a další akcentované kapitálky měly před tímto datem větší
+výšku než kresba o~1,2pt. Opravil jsem.
+Také jsem tehdy odstranil nevhodné záporné kerny:
+ Tě, Tř, T\"o, T\"u, T\"a, T\`a (analogicky pro Ť, Y, Ý).
+ Vě, Vř, V\"o, V\"u (analogicky pro F, W)
+a redukoval jsem přílišné záporné kerny:
+ Té, Tó, Tů, Tŕ, Tá, Tú (analogicky pro Ť, Y, Ý).
+
+Pak jsem vývoj \CSfont{}ů zmrazil podobným způsobem, jako Knuth přestal
+měnit CM~fonty. Prioritním požadavkem je, aby dokument opírající se
+o~\CSfont{}y byl od roku 1996 formátován naprosto stejně dnes i kdykoli
+v~budoucnu. Aby byl tento požadavek splněn, není tedy možné zasáhnout
+do rozměrů znaků, kernů a ligaturních tabulek.
+
+V~roce 1996 jsem do \CSfont{}ů přidal virtuální fonty podporující náhradu
+Computer Modern fonty a naopak.
+
+V~roce 1998 se podařilo dohodnout s~autorem te\TeX{}u Thomassem
+Esserem, aby zařadil do své distribuce \CSfont{}y a celý \CSTeX.
+Od této chvíle jsou distribuce odvozené z~te\TeX{}u implicitně
+vybaveny \CSfont{}y.
+
+V~roce 1998 jsem také pro potřeby výstupu do formátu PDF vytvořil
+variantu \CSfont{}ů, tentokrát ve formátu PostScript
+Type1. Vyšel jsem z~BaKoMa Type1 implementace
+CM~fontů a vytvořil jsem si program {\tt t1accent}, který k~písmenkům
+přidával akcenty podle vzorových PostScriptových tahů generovaných
+z~původních \CSfont{}ů \mp{}em. Na mnoha místech jsem byl nucen přistoupit
+k~mikrotypografickým kompromisům~-- v~drobnostech se kresby některých znaků
+\CSfont{}ů z~Type1 liší od svých originálních \mf{}ových protějšků.
+Proto jsem distribuci Type1 \CSfont{}ů označil jako \uv{alpha} a do
+komentáře jsem dal důrazné varování, že tyto fonty je možné používat
+na vlastní riziko. Z~toho důvodu jsem také ponechal
+implicitní konfiguraci programu "dvips" tak, aby program používal
+léty osvědčený výstup z~\mf{}u, tedy bitmapy formátu "pk".
+Type1 \CSfont{}y byly původně konfigurovány jen pro pdf\TeX.
+
+Rozhodnutí ponechat "dvips" pracovat implicitně s~bitmapami naráželo na
+problémy. Neustále dokola se uživaté ptali, jak je možné, že výstup
+z~pdf\TeX{}u je dobrý, ale při cestě dvips~-- pstopdf dostávají
+roztřesená písmenka. Protože jsem byl uondán velmi častým
+odpovídáním na tuto otázku, ani jsem se nakonec nezlobil, když v~roce
+2001 autor te\TeX{}u rozhodl, že bude \CSfont{}y pro "dvips" implicitně
+konfigurovat ve verzi Type1. Asi ty mikrotypografické kompromisy ani
+tak moc nevadí, zatímco roztřesená písmenka v~PDF způsobovala oheň na
+střeše.
+
+V~současné době existují volně dostupné nástroje, jako například
+"textrace" opírající se o~"autotrace". Tyto nástroje umožní převést
+\mf{}ový font do Type1 \uv{obtahováním bitmap} skoro automaticky.
+Vyzkoušel jsem to na \CSfont{}ech a s~výsledkem jsem nebyl vůbec
+spokojen: výsledné {\tt pfb} soubory byly asi pětkrát větší než ty
+moje \uv{ručně} vyrobené. Proto jsem zatím alpha verzi Type1 formátu
+\CSfont{}ů z~roku 1998 neopustil.
+
+Do budoucna bych velmi rád do \CSfont{}ů přidal znak euro a paragraf.
+Taková změna by byla zpětně kompatibilní, takže bych se jí nebránil.
+\mf{}ové zdroje pro paragraf ověřené na všech \CSfont{}ech už několik
+let mám, ale nezveřejnil jsem je. \mf{}ové zdroje znaku euro by se
+snadno daly převzít z~jiného \mf{}ového fontu. Největší potíž je ovšem
+v~tom, že s~uvedením nové verze \CSfont{}ů dnes nestačí zveřejnit jen
+\mf{}ové zdroje a metriky, ale je třeba mít okamžitě s~tím
+konzistentní Type1 varianty fontů. Do manuální práce na nové verzi
+Type1 varianty \CSfont{}ů se mi ale moc nechce. Je to nevděčná a rozsáhlá
+práce: {\tt pfb} souborů je v~balíčku 57 a každý je třeba disassemblovat,
+v~editoru přidat nové znaky a znovu převést na {\tt pfb}.
+Přitom s~automatickými nástroji, jak jsem uvedl před chvílí, nejsem
+spokojen.
+
+
+
+\subtitle {\tt cspsfonts.tar.gz} -- 35 základních PostScriptových fontů |
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+CSPSFONTS - 35 ZAKLADNICH FONTU
+
+Každý \ps{}ový RIP musí být vybaven aspoň 35 základními fonty ze sady
+\uv{base~35}. Sada mimo jiné obsahuje sedm rodin textových fontů,
+každá rodina obsahuje čtyři fonty (základní, kurzíva, tučný a tučná
+kurzíva, \new{Helvetica navíc čtyři zúžené varianty}).
+Strojopis se obvykle kombinuje z~rodiny Courier.
+Pro tyto fonty je vytvořena podpora ve formě metrik v~kódování
+\CSfont{}ů a virtuálních fontů, které tyto metriky mapují na
+skutečné fonty, kódované samozřejmě úplně jinak. Tato podpora je
+v~balíčku {\tt cspsfonts.tar.gz}, který je povinnou součástí \CSTeX{}u.
+
+Kódování těchto metrik je inspirováno kódováním \CSfont{}ů, ale chybí
+matematické znaky ze začátku tabulky a znaky, které v běžných
+\ps{}ových fontech nenajdeme (např. pozice 20: škrtátko polského l).
+Na druhé straně jsou přidány znaky s~kódy 80--86 (hexadecimálně) a
+některé další (např. kompletní polské \L{} a~\l). Viz následující tabulku
+fontu "ptmr8z", implementující písmo Times-Roman pro \CSTeX.
+
+Fonty rodiny Courier mají kódování inspirováno \CSfont{}em "cstt10",
+takže se na pozicích 3C, 3E, 5C, 5F a 7B až 7D znaky poněkud liší.
+Toto kódování je označeno "8u" na rozdíl od kódování ostatních
+PostScriptových fontů z balíčku "cspsfonts.tar.gz", které je nazváno
+"8z". Tuto nejednotnost kódování známe už u~\CSfont{}ů a prapůvodně
+existuje u~Computer Modern fontů. Znak vlevo na zmíněných pozicích
+odpovídá kódování "8z" a znak vpravo kódování "8u". Na ostatních
+pozicích je kódování "8z" a "8u" shodné.
+
+\def\tabitem{\hbox to.055\hsize{\hfil
+ \if|\testchar|\char\posnum\fi
+ \if A\testchar \newAbox{\char\posnum}\fi
+ \altchar\hfil}%
+ \vrule\global\advance\posnum by1}
+\def\altchar{\ifcase\posnum
+ \or\or\or\or\or\or\or\or\or\or\or\or\or\or\or\or
+ \or\or\or\or\or\or\or\or\or\or\or\or\or\or\or\or
+ \or\or\or\or\or\or\or\or\or\or\or\or\or\or\or\or
+ \or\or\or\or\or\or\or\or\or\or\or\or\a\or\or\a\or\or
+ \or\or\or\or\or\or\or\or\or\or\or\or\or\or\or\or
+ \or\or\or\or\or\or\or\or\or\or\or\or\a\or\or\or\a\or
+ \or\or\or\or\or\or\or\or\or\or\or\or\or\or\or\or
+ \or\or\or\or\or\or\or\or\or\or\or\a\or\a\or\a\or\or\or
+ \fi}
+\def\testchar{\ifcase\posnum
+ \or.\or\or\or\or\or\or\or\or\or\or\or\or\or\or\or
+ \or\or\or\or\or\or\or\or\or\or\or\or\or\or\or\or
+ \or\or\or\or\or\or\or\or\or\or\or\or\or\or\or\or
+ \or\or\or\or\or\or\or\or\or\or\or\or\or\or\or\or
+ \or\or\or\or\or\or\or\or\or\or\or\or\or\or\or\or
+ \or\or\or\or\or\or\or\or\or\or\or\or\or\or\or\or
+ \or\or\or\or\or\or\or\or\or\or\or\or\or\or\or\or
+ \or\or\or\or\or\or\or\or\or\or\or\or\or\or\or\or
+ \or\or\or\or\or\or A\or.\or A\or A\or A\or.\or.\or\or A\or A\or
+ .\or.\or.\or.\or.\or.\or.\or.\or\or.\or A\or A\or\or\or\or\or
+ .\or A\or.\or\or\or\or.\or\or.\or\or.\or\or.\or.\or\or.\or
+ .\or A\or.\or\or.\or\or.\or.\or\or\or.\or\or.\or.\or\or.\or
+ \or\or\or.\or\or\or.\or\or\or\or.\or\or\or\or\or\or
+ .\or.\or\or\or\or.\or\or.\or\or\or\or.\or\or\or.\or.\or
+ \or\or\or.\or\or\or.\or\or\or\or.\or\or\or\or\or\or
+ .\or.\or\or\or\or.\or\or.\or\or\or\or.\or\or\or\or\or
+ \fi}
+\bigskip
+\tabfont {\font\f=ptmr8z \font\tt=pcrr8u \f}
+\bigskip
+
+{\bf Upozornění:} Ve výše uvedené tabulce jsou prázdná místa, na
+kterých mohou být umístěny nedokumentované znaky. Když si vytisknete
+například skutečnou tabulku fontu "ptmr8z", zjistíte, že tomu tak
+skutečně je. Pokud chcete mít dokument zpracovatelný i v budoucích
+verzích \CSTeX{}u, nemůžete se o tyto nedokumentované znaky opírat.
+Tyto znaky byly obsazeny v rámci soukromé iniciativy Zdeňka Wagnera,
+který potřeboval použít font pro více jazyků. Bohužel umístil některé
+znaky na pozice, které nejsou pro budoucí rozšíření fontů vhodné.
+Každý si může do volných pozic doplnit co potřebuje, ovšem s tím
+rizikem, že jeho dokumenty využívající tyto pozice nemusejí být
+kompatibilní s~\CSTeX{}em.
+
+Sada metrik balíčku "cspsfonts.tar.gz" zahrnuje následující fonty:
+
+{\setbrackets \catcode`/=13 \def/#1/{\skrt{#1}}
+\begtt
+Metrika /odkazuje na/ Odpovídající PostScriptový font
+-----------------------------------------------------------
+pagk8z /rpagk/ AvantGarde-Book
+pagko8z /rpagko/ AvantGarde-BookOblique
+pagd8z /rpagd/ AvantGarde-Demi
+pagdo8z /rpagdo/ AvantGarde-DemiOblique
+pagkc8z * /rpagk/ AvantGarde-Book Caps & Small Caps
+pagdc8z * /rpagd/ AvantGarde-Demi Caps & Small Caps
+pbkl8z /rpbkl/ Bookman-Light
+pbkli8z /rpbkli/ Bookman-LightItalic
+pbkd8z /rpbkd/ Bookman-Demi
+pbkdi8z /rpbkdi/ Bookman-DemiItalic
+pbklc8z * /rpbkl/ Bookman-Light Caps & Small Caps
+pbkdc8z * /rpbkd/ Bookman-Demi Caps & Small Caps
+pcrr8u /rpcrr/ Courier
+pcrro8u /rpcrro/ Courier-Oblique
+pcrb8u /rpcrb/ Courier-Bold
+pcrbo8u /rpcrbo/ Courier-BoldOblique
+pcrrc8u * /rpcrr/ Courier Caps & Small Caps
+pcrbc8u * /rpcrb/ Courier-Bold Caps & Small Caps
+phvr8z /rphvr/ Helvetica
+phvro8z /rphvro/ Helvetica-Oblique
+phvb8z /rphvb/ Helvetica-Bold
+phvbo8z /rphvbo/ Helvetica-BoldOblique
+phvrc8z * /rphvr/ Helvetica Caps & Small Caps
+phvbc8z * /rphvb/ Helvetica-Bold Caps & Small Caps
+phvrn8z !skrt[*] /rphvrrn/ Helvetica-Narrow
+phvron8z !skrt[*] /rphvron/ Helvetica-Narrow-Oblique
+phvbn8z !skrt[*] /rphvbrn/ Helvetica-Narrow-Bold
+phvbon8z !skrt[*] /rphvbon/ Helvetica-Narrow-BoldOblique
+phvrnc8z * /rphvrrn/ Helvetica-Narrow Caps & Small Caps
+phvbnc8z * /rphvbrn/ Helvetica-Narrow-Bold Narrow C & Small C
+pncr8z /rpncr/ NewCenturySchlbk-Roman
+pncri8z /rpncri/ NewCenturySchlbk-Italic
+pncb8z /rpncb/ NewCenturySchlbk-Bold
+pncbi8z /rpncbi/ NewCenturySchlbk-BoldItalic
+pncrc8z * /rpncr/ NewCenturySchlbk-Roman Caps & Small Caps
+pncbc8z * /rpncb/ NewCenturySchlbk-Bold Caps & Small Caps
+pplr8z /rpplr/ Palatino-Roman
+pplri8z /rpplri/ Palatino-Italic
+pplb8z /rpplb/ Palatino-Bold
+pplbi8z /rpplbi/ Palatino-BoldItalic
+pplrc8z * /rpplr/ Palatino-Roman Caps & Small Caps
+pplbc8z * /rpplb/ Palatino-Bold Caps & Small Caps
+ptmr8z /rptmr/ Times-Roman
+ptmri8z /rptmri/ Times-Italic
+ptmb8z /rptmb/ Times-Bold
+ptmbi8z /rptmbi/ Times-BoldItalic
+ptmrc8z * /rptmr/ Times-Roman Caps & Small Caps
+ptmbc8z * /rptmb/ Times-Bold Caps & Small Caps
+pzcmi8z /rpzcmi/ ZapfChancery-MediumItalic
+\endtt
+\par}
+
+V tabulce jsou hvězdičkou označeny ty metriky, které neodkazují \new{přímo} na
+speciální \ps{}ový font, ale jsou implementovány pomocí
+virtuálního fontu (Caps \& Small Caps). \skrt{Nebo se jedná o~Narrow varianty fontu
+Helvetica, které jsou konfigurovány v "psfonts.map" pomocí \ps{}ové
+transformace.}
+
+České a slovenské znaky \skrt{jsou} \new{byly} ve fontech
+"8z" a "8u" implementovány
+jako kompozity (tj. virtuální font je posklád\skrt{á}\new{al}
+ze samostatného akcentu
+a základního písmene).
+\new{Tento přístup přinášel problémy: ve výsledném PDF nebylo možno
+vyhledávat český text a nebylo možno přenést text clipboardem do jiné
+aplikace. Proto jsem v roce 2012 zveřejnil novou verzi fontů, které
+odkazují přímo na PostScriptový font, který překódovávají pomocí {\tt
+/Encoding} vektoru. Bývalý argument, že nemáme jistotu, zda ve fontu naše
+akcentované znaky jsou, už dávno neplatí.}
+%
+\skrt{Použité segmenty jsou přítomny v~každém
+PostScriptovém fontu. Proto virtuální fonty po sestavení kompozitů
+odkazují na metriky fontů (s písmenem "r" na začátku), které jsou již
+kódovány podle StandardEncoding. Fonty v~PostScriptovém RIPu tedy
+nepotřebujeme mít počeštěny ani poslovenštěny a také nepotřebujeme
+měnit Encoding vektor těchto fontů na úrovni \ps{}u.}
+
+Program {\tt dvips} je obvykle konfigurován tak, že do výstupního
+\ps{}ového kódu nezavádí žádný z~fontů \uv{base~35} a ponechá tam
+jenom odkaz. Starost o~font přenechá \ps{}ovému RIPu. PostScriptové
+fonty z~\uv{base35} tedy principiálně není nutné pro provoz v \TeX{}u
+instalovat na disk a nejsou tedy ani obsaženy v~balíčku
+"cspsfonts.tar.gz". \new{Programu {\tt dvips} je doporučeno nabídnout
+mapovací soubor {\tt cs-a35-nodownload.map}.}
+
+\new{Program {\tt pdftex} je naopak konfigurován tak, že do výstupního PDF
+vkládá všechny použité fonty. Pokud je použit Adobe font z~\uv{base35}, je za něj
+připravena a zavedena náhrada z~dílny URW, která je přítomna v běžných
+\TeX{}ových distribucích. Programu {\tt pdftex} je tedy potřeba nabídnout
+jiný mapovací soubor {\tt cs-a35-urwdownload.map}.}
+
+Pokud \skrt{si chcete prohlížet} \new{jste si prohlíželi}
+{\tt dvi} soubor odkazující na fonty
+z~\uv{base~35} například starší verzí programu {\tt xdvi}, pak tento
+program potřeb\skrt{uje}\new{oval} (alespoň na přechodnou dobu) bitové mapy těchto fontů.
+Pokud bitové mapy v~instalaci ještě \skrt{neexistují} \new{nebyly},
+program zavol\skrt{á}\new{al} skript
+{\tt mktexpk}, který pro vytvoření rastru vol\skrt{á}\new{al} dále Ghostscript.
+To je implementace \ps{}ového RIPu, která musí obsahovat fonty
+z~\uv{base~35}.%
+\footnote*{Z licenčních důvodů Ghostscript neobsahuje originální fonty od
+ Adobe, ale jen jejich hodně dobré náhražky od firmy URW.
+ Rozdíl většinou pouhým okem nerozeznáte.}
+Odtud se fonty konvertují do bitových map {\tt pk} a odtud je
+nakonec použije program {\tt xdvi}.
+
+Poznamenejme ještě, že novější verze programu {\tt xdvi} obsahují
+tzv.~modul "t1lib", díky němuž {\tt xdvi} umí přímo číst PostScriptové
+fonty a vykreslovat je na obrazovku. Není tedy potřeba vůbec vyrábět
+{\tt pk} bitmapy fontů, ani na přechodnou dobu. Náhražky fontů od
+firmy URW z~\uv{base~35} jsou proto v~novějších distribucích
+\TeX{}u přímo instalovány a nespoléhá se v~tomto případě
+na Ghostscript. Nemusíte pak ani spoléhat na přítomnost fontů
+v PostScriptovém RIPu v tiskárně. Novější verze web2c \TeX{}u
+nabízejí pro takový případ možnost použít u~programu
+"dvips" přepínač "-Pdownload"\new{{\tt35}}.
+
+
+\subsub Historie a budoucnost balíčku {\tt cspsfonts.tar.gz} |
+%-----------------------------------------------------------
+ Historie a budoucnost balicku cspsfonts
+
+Balíček "cspsfonts.tar.gz" má méně bohatou historii než \CSfont{}y.
+Tento balíček začal vznikat v~září roku 1994. Tehdy jsem zjistil, že
+popisy kompozitů v~"AFM" metrice pomocí řádků "CC" jsou správně převáděny
+programem "afm2tfm" na odpovídající kompozity ve vytvářeném virtuálním
+fontu. Problém byl jen v tom, že originální "AFM" metriky od Adobe
+neobsahovaly popisy všech kompozitů potřebných pro český a slovenský
+jazyk. Z toho důvodu jsem si vytvořil program "a2ac"~\cit{a2ac}, který
+na základě přehledné tabulky kompozity do "AFM" metrik doplnil a
+současně doplnil kerningové informace pro nově vytvářené znaky. Za
+použití tohoto programu pak vznikla sada metrik a virtuálních fontů
+s~písmenem "c" na začátku (např. "cptmr"). \new{České a slovenské znaky měly
+plovoucí akcenty.}
+
+V roce 1996 pak uveřejnil pan Wagner nové metriky generované stejným
+způsobem, ovšem opravil několik estetických nedostatků a navíc metriky
+nazval podle doporučení Karla Berryho ("8z" a "8t" na konci). Od té
+doby jsou v balíčku "cspsfonts.tar.gz" obsaženy metriky pana Wagnera.
+
+\skrt{Konečně v} \new{V} roce 1999 jsem musel po konzultaci s~Karlem Berrym metriky
+pro rodinu Courier přejmenovat z původního "*8t" na nynější "*8u",
+protože názvy s~"8t" na konci nám kolidovaly s~názvy stejných fontů
+v~kódování podle Corku. To je zatím poslední změna v tomto
+balíčku.
+
+Chyst\skrt{ám} \new{al jsem} doplnění balíčku {\tt cspsfonts.tar.gz} o~nové metriky kódované
+jako "8z", které mapují další běžně používané \ps{}ové fonty.
+Jako první na řadě se nabízí přidání metrik "8z" pro volně
+šířenou rodinu fontů Charter písmolijny BitStream.
+
+\newstart
+V roce 2012 jsem přidal do merik fontů z tohoto balíčku znak Euro a další
+znaky (viz vybarvené znaky v tabulce). Bohužel po letech už nebyly k
+dispozici zdroje, ze kterých metriky generoval kdysi pan Wagner.
+Zejména nebyl k dohledání správný soubor {\tt xl2.enc}. V metrikách tedy bylo
+plno nedokumentovatelných slotů, o kterých jsem těžko mohl soudit, co byly
+zač. Takové sloty považuji za chybu. Proto jsem ustoupil od zpětné
+kompatibility a přegeneroval všechny metriky kompletně znovu. Je možné že sazba
+těmito fonty někdy
+výjde mírně jinak než kdysi, ale aspoň máme metriky, které přesně
+korespondují souboru {\tt xl2.enc}. Protože se mi nepodařilo dohledat AFM
+metriky fontů přímo od adobe takové, které obsahují znak {rcaron}, fonty
+jsem vygeneroval z metrik URW. Generující skript je obsahem balíčku.
+
+Z balíčku {\tt cspsfonts.tar.gz} jsem přemístil soubory {\tt ctimes.tex}
+atd. do balíčku {\tt csplain.tar.gz}, kam jsem přidal další podobné soubory.
+
+\newstop
+
+\subtitle Formát \csplain{} | FORMAT CSPLAIN
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\new{Formát \csplain{} má svou stránku na
+{\tt http://petr.olsak.net/csplain.html}. Je tam poněkud stručněji řečeno
+víceméně totéž, jako zde.}
+
+Popíšu \skrt{jenom} \new{zejména} odlišnosti formátu \csplain{} (povel {\tt csplain}) od
+Knuthova formátu plain (povel {\tt tex}), popsaného
+v~\TeX{}booku~\cit{texbook}.
+
+
+\subsub Překódování v~input procesoru \TeX{}u | Prekodovani v input procesoru TeXu
+%--------------------------------------------
+
+\skrt{Vstupní text pro formát \csplain{} se předpokládá 8bitový.} Kódování
+češtiny nebo slovenštiny vstupního textu je takové, jaké
+běžně používáte v~systému, kde je váš \TeX{} instalován. O~tomto kódování
+budeme nadále mluvit jako o~{\it vstupním kódování}.
+
+Ze vstupního kódování je třeba text překódovat do {\it vnitřního
+kódování}, se kterým interně pracuje \TeX. Toto vnitřní kódování je
+v~\csplain{}u implicitně nastaveno na ISO-8859-2 nezávisle na operačním
+systému. V~tomto kódování musí být připraveny fonty použité
+v~dokumentu. \CSfont{}y a fonty zaváděné pomocí "\input ctimes",
+"\input cbookman" atd. tuto vlastnost mají.
+
+Překódování textu \skrt{do vnitřního kódování můžete udělat ručně před
+spuštěním \TeX{}u (to moc nedoporučuji) nebo} je \skrt{tato konverze}
+implementován\skrt{a}\new{o} do input procesoru samotného \TeX{}u. Jak je to uděláno
+závisí na použité distribuci \TeX{}u. Nejběžnější metody nastavení
+input procesoru budou zmíněny níže.
+
+Problém vztahu vstupního a vnitřního kódování ilustruji na
+příkladě. Nechť je ve vstupním souboru napsáno "\char174=Ž". Po
+zpracování \csplain{}em musím na výstupu dostat: Ž=Ž. Tímto příkladem
+jsem naznačil dvě věci. Za prvé: některá makra mohou být závislá na
+zvoleném vnitřním kódování \TeX{}u (zde makro "\char174", které má
+vytisknout písmeno Ž). Pokud použiju v~systému povel {\tt csplain} bez
+doplňujících maker, pak předpokládám, že kód 174 znamená písmeno~Ž.
+
+Za druhé: pokud vpravo od rovnítka vidím v~editoru, kterým zpracovávám
+vstupní dokument, písmeno~Ž, pak se tento znak musí dostat do
+vnitřních částí \TeX{}u pod kódem 174, ačkoli v~tom editoru je třeba
+kódován úplně jinak. Konverze by měla být implementována (závisle
+na použitém vstupním kódování) v~input procesoru
+\TeX{}u. Důležité je, že to ve svém editoru {\it vidím jako Ž\/} a
+očekávám na základě této vizuální informace jednotné chování \csplain{}u
+na všech systémech, kde existují editory, kterými se mohu do zdrojového
+textu podívat a vidět~Ž (ačkoli různé operační systémy mohou toto~Ž
+kódovat různě).
+
+\new{Pokud se zdrojový soubor \csplain{}u přenáší mezi systémy s různým
+kódováním, pak předpokládáme, že příjemce se na soubor podívá ve svém
+editoru a když uvidí rozsypaný čaj, nejprve si obdržený soubor
+opraví}.
+
+\new{Jak bylo řečeno, konverze mezi vstupním kódováním a vnitřním kódováním
+probíhá na úrovni input procesoru \TeX{}u. To}
+\skrt{Konverzi do jednotného vnitřního kódování} je možné realizovat
+v~různých distribucích \TeX{}u různě. Pročtěte si dokumentaci k~použité
+distribuci. V~em\TeX{}u se pro tyto účely používá tzv.~TCP tabulka
+zaváděná při inicializaci formátu. Ve velmi starých web2c distribucích
+\TeX{}u (léta 1992--1997) můžete najít tzv.~Škarvadovu záplatu, která
+nastavovala kódování podle proměnné prostředí systému. Později se pro
+překódování používal enc\TeX (rok 1997), který nastavoval
+xord/xchr vektor input procesoru \TeX{}u pomocí
+přidaných primitivů (viz~\cit{enctex} a \cit{putovani}). \skrt{Dnes}
+\new{Ještě později}
+(po roce 1998) se v~distribucích web2c, te\TeX{}, \TeX{}live a
+odvozených používají tzv.~TCX tabulky,
+které se vyvolají z~příkazového řádku pomocí přepínače
+"-translate-file" nebo "-default-translate-file".
+\new{Dnes doporučuji se k enc\TeX{}u vrátit, protože jeho současná verze nabízí
+(na rozdíl od TCX tabulek) novou možnost: konverzi vícebytového kódování na vnitřní jednobytové,
+takže zvládne vstup kódovaný v UTF-8. Toto kódování je od roku 2012
+doporučeno jako implicitní vstupní kódování \csplain{}u.}
+
+Se správným nastavením překódovací tabulky úzce souvisí schopnost
+\TeX{}u zapisovat přímo znaky použité abecedy \skrt{8bitový text}
+do logů a do "\write" souborů \new{zpětně ve vstupním kódování.}
+\skrt{(tam musí být text zpětně konvertován do vstupního kódování).}
+\TeX{} implicitně pro výstup do těchto souborů používá pro znaky
+s~kódem větším než 127 hexadecimální přepis uvozený dvěma znaky "^".
+To je pro \csplain{} nepřípustné, a proto je nutné v~\TeX{}u rozšířit
+tzv.~tabulku znaků povolených pro tisk do logů a pracovních
+souborů. Ta je ve web2c distribuci rozšířena automaticky zavedením~TCX
+tabulky: znaky, které jsou v~této tabulce zmíněny, se stávají povolenými pro
+tisk. To vysvětluje nutnost používání tabulky "il2-cs.tcx" v~UNIXových
+distribucích, přestože tabulka pouze deklaruje překódování
+\uv{jedna ku jedné}. \new{Detekuje-li \csplain{} při generování formátu
+aktivovaný enc\TeX, nastaví se tisknutelnost znaků s kódem větším než 127
+automaticky}.
+
+Věnujte prosím při implementaci \csplain{}u do jiných \TeX{}ových
+distribucí zvýšenou pozornost právě problémům překódování v~input
+procesoru a problému množiny povolených znaků pro tisk do logů a
+pracovních souborů. Pokud se chcete přesvědčit o~správnosti
+implementace \csplain{}u, vyzkoušejte test cstrip (viz~\cit{cstrip}).
+
+
+\subsub Inicializace formátu | Inicializace formatu
+%---------------------------
+
+Pokud se vám podařilo \csplain{}em zpracovat tento dokument, pak máte
+formát \csplain{} již inicializovaný a můžete směle tuto sekci
+přeskočit. Pokud používáte \skrt{nejnovější verzi} \TeX{}live, pak stačí
+napsat na příkazový řádek {\tt csplain dokument} a \new{použije se
+předgenerovaný formát, nebo se}
+\skrt{pokud tak činíte
+poprvé,} formát \skrt{se} automaticky vytvoří. Také můžete inicializovat
+formát \csplain{} pomocí nástroje {\tt texconfig} například
+tak, že odstraníte komentářové znaky u~slova {\tt csplain} v~souboru
+{\tt texmf/web2c/fmtutil.cnf} a spustíte "texconfig init".
+
+Následující text popisuje možnost vytvoření formátu \uv{ručně}.
+\newstart
+\csplain{} v \TeX{}live se vstupním kódováním UTF-8 vygenerujete za použití
+enc\TeX{}u (přepínač {\tt-enc}) z příkazové řádky takto:
+
+{\font\tt=cstt9
+\begtt
+pdfetex -ini -enc "\let\enc=u \input csplain.ini"
+\endtt
+\par}
+
+Takto vygenerovaný formát implicitně vystupuje do DVI. Dále pdf\csplain{}
+vygenerujete z příkazové řádky:
+
+{\font\tt=cstt9
+\begtt
+pdfetex -jobname=pdfcsplain -ini -enc "\let\enc=u \input csplain.ini"
+\endtt
+\par}
+
+Pozorování: těsně před "\dump" je ve výpisu a v~log souboru napsáno toto hlášení:
+{\tt jobname=pdfcsplain, PDF output initialised.} Takže nyní je implicitně
+nastaven výstup do PDF.
+
+Soubory {\tt csplain.fmt} a {\tt pdfcsplain.fmt} je třeba umístit někam, kde je
+\TeX{}ová distribuce najde. Místo použití výše uvedených příkazů se můžete pokusit
+editovat konfigurační soubor v~\TeX{}ové distribuci a spustit generování
+formátu prostředky, které k tomu účelu nabízí distribuce.
+
+Spuštění \csplain{}u (resp. pdf\csplain{}u) provedete jedním z příkazů
+
+\begtt
+pdfetex -fmt=csplain.fmt dokument
+csplain dokument
+pdfetex -fmt=pdfcsplain.fmt dokument
+pdfcsplain dokument
+\endtt
+
+Druhý a čtvrtý řádek obsahuje typické zkratky implementované různým způsobem
+v~závislosti na operačním systému a \TeX{}ové distribuci.
+
+Další možností je vygenerovat csplain s jednobytovým vstupním kódováním pomocí tcx
+tabulek. To se dělá přepínačem "-translate-file", za kterým následuje
+název použité tcx tabulky.
+Zbylý text v této sekci většinou dokresluje situaci před deseti a více lety.
+
+\newstop
+
+Příkazem {\tt initex} označuji v tomto textu spuštění \TeX{}u
+v~inicializačním módu, kdy \TeX{} dokáže načítat tabulky vzorů dělení pro
+různé jazyky a ukládat nabyté vědomosti příkazem "\dump" do
+binárních souborů, tzv. formátů. Dříve na to existoval zvláštní
+program ini\TeX, dnes se často používá nějaký přepínač:
+{\tt tex -ini}, {\tt tex /i} atd.
+
+Formát \csplain{} (soubor {\tt csplain.fmt}) vygenerujete jednoduše:
+
+\begtt
+initex csplain.ini
+\endtt
+
+Používat jej pak můžete pomocí příkazu
+
+\begtt
+tex &csplain dokument
+\endtt
+
+V~UNIXu musíte použít "tex \&csplain dokument", aby se znak "&"
+neinterpretoval na úrovni shellu. Nezapomeňte ale
+nastavit správnou překódovací \new{tcx} tabulku způsobem obvyklým v~použité
+\TeX{}ové distribuci. Níže uvádím několik příkladů.
+
+\begitems \parindent=0pt
+* {\bf te\TeX{}, \TeX{}Live, vstupní kódování ISO-8859-2}:
+
+\skrt{inicializace: {\tt tex -ini csplain.ini}}
+
+\skrt{obsah skriptu {\tt csplain}:}\hfil\break\null\hfil
+ \skrt{{\tt tex -fmt=csplain -default-translate-file=il2-cs \char`\$@}}
+
+\newstart
+inicializace: "tex -ini -translate-file=il2-cs csplain.ini"
+
+instalace povelu {\tt csplain}:\quad
+ "ln -s tex csplain"
+\newstop
+
+spuštění \csplain{}u: "csplain dokument"
+
+\medskip
+* {\bf te\TeX{}, \TeX{}Live, vstupní kódování podle Kamenických}
+(hypotetický příklad):
+
+inicializace: "tex -ini csplain.ini"
+
+obsah skriptu {\tt csplain}:\hfil\break\null\hfil
+ "tex -fmt=csplain -default-translate-file=kam-cs $@"
+
+spuštění \csplain{}u: "csplain dokument"
+
+\medskip
+* {\bf web2c\TeX{} s~enc\TeX{}em, vstupní kódování ISO-8859-2}:
+
+inicializace: "tex -ini csplain.ini"
+
+instalace povelu {\tt csplain}:\quad
+ "ln -s tex csplain"
+
+spuštění \csplain{}u: "csplain dokument"
+
+\medskip
+* {\bf web2\TeX{} s~enc\TeX{}em, vstupní kódování podle Kamenických}:
+
+inicializace: {\tt tex -ini \newAbox{-enc}} "'\let\enc=k \input csplain.ini'"
+
+instalace povelu {\tt csplain}:\quad
+ "ln -s tex csplain"
+
+spuštění \csplain{}u: "csplain dokument"
+
+\medskip
+* {\bf em\TeX{}, vstupní kódování podle Kamenických}:
+
+inicializace: "htex386 /i /8 /mt26000 /Ckamenic.tcp csplain.ini"
+
+obsah dávky {\tt csplain.bat}:\hfil\break\null\hfil
+ "htex386 /mt26000 &csplain %1 %2 %3 %4 %5 %6 %7"
+\enditems
+
+Zastavím se na chvíli u~em\TeX{}u. Parametr {\tt /mt} zde zvětšuje
+prostor pro ukládání vzorů dělení slov tak, aby se do formátu vešlo
+celkem pět vzorů dělení: anglické vzory dělení a dále české i
+slovenské vzory dělení obě v~kódování ISO-8859-2 a Cork%
+ \footnote*{Možnost zapnout kódování Cork jako alternativní
+ vnitřní kódování \csplain{}u je implementována od verze "<Feb 2000>".
+ Podrobněji se o~tom zmiňuji v~sekci~4.5.}.
+Paměť pro vzory dělení v~\TeX{}u se skládá ze dvou částí. První
+je nastavována interní \TeX{}ovou proměnnou trie\_size (ta
+koresponduje s~přepínačem {\tt/mt}) a druhá proměnnou trie\_op\_size
+(viz~\cit{tbn}, str.~301). Bohužel, hodnota trie\_op\_size není
+v~em\TeX{}u měnitelná a je ve verzích "tex.exe" a "tex386.exe" nastavena na
+malou hodnotu: pět vzorů dělení slov se tam nevejde. Proto jsem
+v~příkladu použil "htex386.exe", ve kterém je trie\_op\_size nastavena na
+dostatečně velkou hodnotu. Pokud chcete v~em\TeX{}u použít "tex.exe"
+nebo "tex386.exe", pak musíte generovat formát \csplain{} jen se třemi
+vzory dělení -- vyloučit alternativní kódování Cork. Toho lze
+dosáhnout jednak tím, že použijete verzi \csplain{}u starší než
+"<Feb. 2000>", nebo tak, že potlačíte opakované volání vzorů
+dělení pro Cork pomocí "\let\Cork=\relax" takto:
+
+\begtt
+tex /i/8/mt17000/Ckamenic.tcp \let\Cork=\relax \input csplain.ini
+\endtt
+
+Poznamenejme, že potlačit načítání vzorů dělení v~alternativním
+kódování (Cork) lze pomocí "\let\Cork=\relax" ve všech distribucích
+\TeX{}u. Nejedná se tedy jen o~em\TeX{}ovou záležitost. Nicméně
+v~ostatních mě dostupných distribucích nejsou problémy s~výchozí
+hodnotou paměti \TeX{}u pro vzory dělení a je možno načíst bez
+nutnosti cokoli nastavovat všech pět vzorů dělení.
+
+
+\subsub Výchozí nastavení v~\csplain{}u | Vychozi nastaveni v CSplainu
+%--------------------------------------
+
+Aby byla zachována co největší kompatibilita s~mezinárodním formátem
+plain a aby se necítili Češi nebo Slováci vzájemně utlačováni, jsou při
+startu \csplain{}u inicializovány americké vzory dělení slov a zapnuto
+větší mezerování za tečkami (tzv.~"\nonfrenchspacing").
+
+Pro přepnutí na české vzory dělení slov použijte povel "\chyph" a
+do slovenštiny přepnete pomocí "\shyph". Oba povely navíc zapnou
+stejnoměrné mezerování i za tečkou (tzv.~"\frenchspacing"). Takové
+mezerování je v~české a slovenské sazbě obvyklejší. Zpět na americké
+vzory dělení a větší mezerování za tečkou přejdete pomocí povelu
+"\ehyph".
+
+Příklad: Chceme-li v~\csplain{}u zpracovat český dokument, stačí na
+začátku dokumentu uvést "\chyph":
+
+\begtt
+\chyph
+Tady už bude vše fungovat česky.
+\bye
+\endtt
+
+\newstart
+Přepínače "\chyph", resp. "\shyph", resp. "\ehyph" je možné v dokumentu používat kdekoli
+(například i uvnitř odstavce) na oddělení částí dokumentu, které podléhají
+českým resp. slovenským resp. anglickým pravidlům dělené slov.
+
+Příkazy pro akcenty "\v", "\^", "\`", "\'", "\v", {\tt\char`\\\char`\"}
+mají implicitně původní význam z~plainu, tj. pracují s primitivem "\accent",
+který sestavuje znak z akcentu a základu.
+To menusí být žádoucí, protože pak nefunguje dělení slov. Příkazem
+"\csaccents" se uvedené příkazy předefinují tak, že expandují přímo na
+akcentované znaky jako celek. Začne fungovat dělení slov v případech, kdy
+jsou slova napsána "takov\'ym podivn\'ym zp\r usobem".~
+Nově je po "\csaccents" definován příkaz "\r" pro
+akcent kroužku. Konečně se správně vysázejí i sekvence "\v d" nebo "\'i", které
+původně činily potíže.
+
+\newstop
+
+\skrt{{\bf Upozornění:} nedoporučuji v~dokumentech pro \csplain{} používat styl
+{\tt czech.sty} resp. {\tt slovak.sty}.
+Tím se totiž dokument zcela zbytečně stává
+závislým na externím balíku maker, který není příliš stabilní. Pokud
+k~tomu nemáte vážné důvody, styl {\it nepoužívejte}. Styl je
+vyvíjen
+spíše pro uživatele \LaTeX{}u, zatímco uživatel \csplain{}u si vystačí
+s~povely {\tt\char`\\chyph} a {\char`\\shyph}. V~budoucnu přestěhuji tyto styly
+z~archivního souboru {\tt csplain.tar.gz} (kam nepatří a jsou tam jen
+z~historických důvodů) do archivu {\tt cslatex.tar.gz}.}
+
+Rozměr tiskového zrcadla (výška a šířka textu) je implicitně nastaven
+tak, aby všechny čtyři okraje měly velikost 1~palec na papíru formátu
+A4. To je významný rozdíl oproti nastavení ve formátu plain, kde se sice
+také předpokládají okraje 1~in, ale na papíru US-letter. Níže uvádím
+tabulku nastavení rozměrů zrcadla v~\csplain{}u a pro srovnání tytéž parametry
+v~originálním plainu:
+
+\begtt
+ CSplain plain
+-----------------------------------------------------
+\hsize = 159.2mm \hsize = 6.5in (165.1mm)
+\vsize = 239.2mm \vsize = 8.9in (226.06mm)
+\hoffset = 0mm \hoffset = 0in
+\voffset = 0mm \voffset = 0in
+\endtt
+
+\newstart
+Kromě znaků anglické abecedy jsou v \csplain{}u za písmena považovány i
+všechny akcentované znaky české a slovenské abecedy, takže i tyto znaky mají
+nastaven "\catcode=11" a dále mají nastaveny odpovídající "\lccode" a "\uccode".
+\newstop
+
+Výchozí fonty zavedené do formátu \csplain{} jsou \CSfont{}y. Pro matematiku
+jsou zavedeny původní Computer Modern fonty. Na rozdíl od plainu formát
+\csplain{} nezavádí do paměti při inicializaci desítky dalších fontů
+označených jako "\preloaded", protože další fonty se dají zavést
+povelem "\font" až v~době potřeby. Na starodávných strojích bylo možná
+užitečné zavést fonty \uv{do rezervy} už při inicializaci formátu, aby
+pak příkaz "\font" použitý v~dokumentu moc nezdržoval. Při dnešních
+rychlostech počítačů je toto opatření zcela zbytečné, a proto
+v~\csplain{}u nepoužité.
+
+Matematická sazba funguje v~\csplain{}u zcela stejně, jako v~originálním
+plainu. Je to díky tomu, že implicitně zavedené \CSfont{}y jsou
+konzervativním rozšířením Computer Modern fontů. Při zavádění jiných
+fontů do dokumentu je potřeba počítat při matematické sazbě
+s~některými obtížemi (viz následující dvě sekce).
+
+
+\newstart
+
+\subsub Makro {\tt opmac.tex} |
+%----------------------------
+ Makro opmac.tex
+
+Makro {\tt opmac.tex} je od konce roku 2012 součástí balíčku \csplain{}u.
+Napíšete-li do záhlaví dokumentu
+
+\begtt
+\chyph \input opmac
+\endtt
+%
+pak máte k dispozici další makra, která řeší následující věci:
+automatickou tvorbu obsahu, číslování, kapitoly, sekce, křížové reference,
+verbatim prostředí, vkládání obrázků, bibtexové odkazy. Tuto sadu svých maker
+dávám k dispozici s tím, že jsem si vědom, že makra neřeší všechno a ve
+všech souvislostech, nicméně kladu důraz na jednoduchost a srozumitelnost
+maker. Předpokládám, že si je uživatelé předefinují k obrazu svému, nicméně
+usnadním začínajícímu uživateli první kroky směrem k \csplain{}u.
+
+WWW stránka nabízející OPmac je {\tt http://petr.olsak.net/opmac.html}.
+Uživatelká dokumentace k makrům je v souboru {\tt opmac-u.pdf}
+a technická dokumentace v souboru {\tt opmac-d.pdf}.
+\newstop
+
+
+\subsub Použití \ps{}ových fontů v~\csplain{}u |
+%------------------------------------------
+ Pouziti PostScriptovych fontu v CSplainu
+
+Součástí \CSTeX{}u v~balíčku {\tt cspsfonts.tar.gz} jsou kromě metrik
+také soubory, které předefinují textové fonty z~výchozích \CSfont{}ů na
+fonty některé rodiny z~\uv{base~35}. Jak jsme již uvedli v předchozí
+kapitole, fonty z balíčku {\tt cspsfonts.tar.gz} jsou kódovány
+v~ISO-8859-2, tedy v~souladu s~vnitřním kódováním použitým
+v~\csplain{}u. Níže je tabulka souborů, které zavádějí \ps{}ové
+fonty do \TeX{}u primitivem "\font":
+
+\begtt
+soubor Rodina fontů
+--------------------------------
+cavantga.tex Avantgarde Book
+cbookman.tex Bookman
+chelvet.tex Helvetica
+cncent.tex New Century
+cpalatin.tex Palatino
+ctimes.tex Times Roman
+\endtt
+%
+Chcete-li například přepnout do písma Bookman, stačí napsat na začátek
+dokumentu:
+
+\begtt
+\input cbookman
+\endtt
+
+Pokud sami pracujete s~primitivem "\font" například pro zavedení
+větších velikostí fontů u nadpisů, doporučuji použít následující
+konstrukci:
+
+\begtt
+\font\titulfont=\fontname\tenbf\space scaled \magstep2
+\endtt
+%
+Tato konstrukce není závislá na konkrétním fontu, takže když později
+změníte před takovou konstrukcí "\input bookman" například na
+"\input cpalatin", změní se automaticky i font pro nadpisy.
+
+\newstart
+Uvedené soubory {\tt cavantga.tex}, \dots, {\tt ctimes.tex}
+zavádějí čtyři běžné varianty textových fontů "\tenrm", "\tenit",
+"\tenbf", "\tenbi" a k nim pátou variantu "\tentt" implicitně ve velikosti
+10pt. Uživatel místo přímého použití uvedených přepínačů používá obvykle makra
+"\rm", "\it", "\bf", "\bi", "\tt".
+
+Je možné tyto jednou zavedené fonty kdykoli později změnit do jiné velikosti.
+Například po "\def\sizespec{at12pt}\resizeall" bude všech pět variant fontů
+připraveno ve velikosti 12pt. Individuálně lze změnit velikost každému fontu
+zvlášť příkazem "\resizefont" jehož parametr je fontový přepínač (nikoli
+makro). Přepínač změní velikost svého fontu podle makra "\sizespec".
+Pozor: makra "\resizefont" a "\resizeall" sice změní velikosti fontů
+odpovídajícím přepínačům, ale nenastaví aktuální sazbu novým fontem, takže
+bez následného použití přepínače nevidíte výsledek. Je tedy nutno například
+psát: "\def\sizespec{at12pt}\resizeall\tenrm".
+
+Změna velikosti fontů má lokální
+platnost, takže třeba makro pro sazbu titulu může vypadat takto:
+
+{\font\tt=cstt9
+\begtt
+\def\titul#1{\centerline{\def\sizespec{at20pt}\resizefont\tenbf\tenbf#1}}
+\endtt
+\par}
+
+Makro "\resizeall" lze rozšiřovat o další fontové přepínače mimo uvedených
+pět. O toto rozšíření se postará makro "\regfont <přepínač>". Po použití
+tohoto makra je "<přepínač>" tzv. \uv{registrovaný}, takže bude měnit
+velikost svého fontu po spuštění makra "\resizeall". Fontové
+soubory {\tt cavantga.tex}, \dots,
+{\tt ctimes.tex} nastavují obvykle jen základních pět variant a žádné nové
+přepínače neregistrují. Zavádí-li ale
+fontový soubor fonty i pro další varianty, měl by použít "\regfont".
+
+Fontové soubory {\tt cavantga.tex}, \dots, {\tt ctimes.tex} automaticky načtou
+další soubor maker {\tt tx-math.tex}.
+Tato makra zavedou do matematické sazby TXfonty. Ty jsou vizuálně
+kompatibilní s Times\-Roman a mnoha dalšími fonty.
+
+Po zavedení makra "tx-math.tex" jsou k dispozici stovky příkazů pro jednotlivé
+znaky matematické sazby (nadmnožina znaků z AMS\TeX{}u) a dále jsou
+(kromě přepínače "\cal" z plain\TeX{}u) k dispozici
+následující přepínače matematických abeced:
+
+\begtt
+\frak % matematická fraktura
+\script % skript mnohem zakroucenější než \cal
+\bbchar % písmena kreslená dvěma tahy
+\bf % bold sans-serif písmo
+\bi % bold slanted sans-serif písmo, někdo tím značí vektory
+\endtt
+
+Kompletní soubor matematických fontů je makrem "tx-math.tex" zaveden ve
+velikosti 10/7/5pt (základní/indexová/indexindexová velikost). Ovšem tuto
+implicitní volbu je možné kdykoli v dokumentu změnit pomocí (například):
+
+\begtt
+\setmathsizes[12/8.4/6]\normalmath
+\endtt
+
+Příkaz "\normalmath" pozmění všechny matematické fonty do potřebných nových
+velikostí deklarovaných pomocí "\setmathsizes". Příkaz "\boldmath" dělá
+totéž, ale připraví místo \uv{normálních} fontů jejich tučné varianty. Tento
+příkaz se hodí použít do maker s nadpisy. Změny fontů mají lokální platnost.
+
+Kromě "tx-math.tex" je k dispozici analogické makro "ams-math.tex", které
+ponechává v matematické sazbě \CS{}fonty a přidává k nim kompletní sadu
+\AMS{} fontů. Toto makro nabízí pro práci s fonty (volba matematické abecedy,
+změna velikostí a duktu) stejné příkazy jako makro "tx-math.tex".
+
+Obě makra navíc nabízejí dva přepínače, které mění chování proměnných,
+číslic a fontů pro sazbu $\sin$, $\cos$, $\lim$, atd.:
+
+\begtt
+\itvariables % proměnné a \rm z aktuálního textového fontu
+\mitvariables % proměné ze speiálního fontu, \rm taky.
+\endtt
+
+Volba "\itvariables" je implicitní v "tx-math.tex", protože se předpokládá,
+že \uv{kolem} je textový font se kterým by měly být proměnné v matematice v
+souladu. Naopak v "ams-math.tex" je implicitní "\mitvrariables", aby se
+využilo mírně modifikované kurzívy vyvinuté speciálně pro matematickou sazbu
+v Computer Modern. \uv{Kolem} se totiž předpokládá běžný text v
+\CS{}fontech nebo ve vizuálně kompatibilních fontech.
+
+Kromě souborů {\tt cavantga.tex}, \dots, {\tt ctimes.tex} jsou v balíčku
+\csplain{}u připraveny další obdobné, jejichž názvy větčinou začínají na
+{\tt cs-}. Například {\tt cs-antt.tex} zavádí fonty Antykwy Toru\'nske.
+Přehled o všech takových souborech by se měl objevit na terminálu po
+{\tt\char`\\input cs-all}. Toto makro nevykoná nic, jen vypíše seznam
+dostupných fontových souborů. Iniciativě k přidání dalších fontových souborů
+se meze nekladou.
+
+\newstop
+
+
+\skrt{%
+Po zavedení rodiny \ps{}ových fontů je potřeba dát pozor na
+matematickou sazbu. Jedná se o~veškerou sazbu realizovanou ve
+zdrojovém textu mezi dolary. Ta i po změně textových fontů pracuje
+s~původními \CSfont{}y a Computer Modern fonty. Jedině tak je dosaženo,
+že realizace všech matematických symbolů z~plainu zůstává zachována.
+%
+Napíšete-li po zavedení nového textového fontu v~textu například
+číslovku 2 bez použití dolarů, dostanete dvojku z~nového
+fontu. Použijete-li ale "$2$", na výstupu bude dvojka z~\CSfont{}ů.
+Toto míchání fontů není estetické. Chcete-li se mu aspoň částečně
+vyhnout, použijte po zavedení rodiny fontů povel {\tt\char`\\setsimplemath},
+například:}
+
+{\catcode`/=0 \catcode`[=1 \catcode`]=2
+\begtt
+/skrt[\input cbookman \setsimplemath]
+\endtt
+\relax}%
+\skrt{Příkaz zavede i pro fonty, které \TeX{} používá při sazbě mezi dolary
+(\TeX{}ová rodina 0 a 1), odkazy na nově použité \ps{}ové fonty. Tento
+příkaz je ale potřeba použít s~velkou opatrností, protože bude fungovat
+zřejmě jen jednoduchá matematika. Například řecké symboly, které
+použité rodiny fontů neobsahují, nenávratně ztratíte. Navíc matematické
+symboly a natahovací závorky (\TeX{}ová rodina 2 a 3) zůstávají i
+nadále v~Computer Modern, takže se míchání typů fontů zcela nevyhnete.}
+
+\skrt{Pokud chcete používat složitější matematickou sazbu kombinovanou
+s~Post-}\break\skrt{Scriptovými fonty, pak máte dvě možnosti:}
+
+\skrt{1. Nastavit {\tt\char`\\mathcode} všech matematických
+ symbolů tak, aby byly
+ použity například znaky z~PostScriptového fontu Symbol. Matematické
+ znaky z~tohoto fontu jsou navrženy jako doplněk k~fontu Times Roman,
+ ale hodí se i k~jiným PostScriptovým fontům. Bohužel, natahovací
+ závorky a velké operátory (jedna ze specialit \TeX{}u) v~tomto fontu
+ nejsou, takže tyto objekty je nutné ponechat v~Computer Modern.
+ Abyste nemuseli {\tt\char`\\mathcode} pracně nastavovat, doporučuji použít
+ makro OFS~\cit{OFS}.}
+
+\skrt{2. Zakoupit nějaký komerční matematický font včetně natahovacích
+ závorek. Vhodný je například MathTimes firmy Y\&Y.
+ Pro šťastné majitele této sady fontů je v~\csplain{}u
+ distribuován soubor {\tt cmt.tex}, takže pokud na začátku dokumentu
+ uvedete}
+
+{\setbrackets
+\begtt
+!skrt[\input ctimes]
+!skrt[\input cmt]
+\endtt
+%
+\relax}\skrt{pak budete mít i matematickou sazbu v~\uv{Times-Roman stylu} se vším
+ všudy včetně řeckých symbolů a natahovacích závorek. Jen některé
+ drobnosti (například skákavé číslice v~plainu dosažené pomocí
+ "\fam=1") musíte udělat jinak. Přečtěte si manuál k~zakoupené sadě
+ fontů.
+}
+
+\skrt{Matematické fonty v~\uv{Times-Roman stylu} se dají kombinovat i
+ s~mnoha textovými \ps{}ovými fonty dynamické antikvy s~dostačujícím
+ estetickým výsledkem. Podstatně horší je kombinovat dynamickou antikvu
+ textového \ps{}ového fontu se statickou antikvou Computer Modern. To
+ je důvod, proč se nákup sady fontů MathTime vyplatí.}
+{\hbadness=4000\par}
+
+\new{Pokud chcete používat rozsáhlé množství fontů sofistikovaným
+způsobem v matematické i textové sazbě, můžete
+použít balíček OFS~\cit{OFS}.}
+
+
+\newstart
+
+\subsub UTF-8 kódovaný \csplain{} | UTF-8 kodovany csplain
+%--------------------------------
+
+Od roku 2012 je doporučeno implicitně generovat \csplain{} se vstupním
+kódováním UTF-8 pomocí enc\TeX{}u. Každý znak mimo ASCII je v UTF-8 kódován
+dvěma nebo více byty. Tato sekce pojednává o vlastnostech takto generovaného
+formátu. Poznáte jej podle toho, že do logu a na terminál napíše:
+
+\begtt
+The utf8->iso8859-2 re-encoding of Czech+Slovak alphabet
+ activated by encTeX
+\endtt
+
+Vygenerovaný formát zaručí správné zpracování ASCII znaků. Dále je při
+výchozím nastavení zaručeno správné zpracování jen znaků české a
+slovenské abecedy, tedy znaků:
+
+\medskip
+{\spaceskip=2pt
+Á á Ä ä Č č Ď ď É é Ě ě Í í Ĺ ĺ Ľ ľ Ň ň Ó ó Ö ö Ô ô
+Ŕ ŕ Ř ř Š š Ť ť Ú ú Ů ů Ü ü Ý ý Ž ž
+}\medskip
+
+Tyto znaky jsou z UTF-8 kódu mapovány na interní jeden byte podle kódování
+\CS{}fontů. Dále jsou implicitně mapovány UTF-8 kódy všech znaků, které
+mají svou řídicí sekvenci definovanou v plainu nebo v \csplain{}u. Jsou
+to tyto znaky:
+
+{\catcode`/=13 \def/#1/{{\rm \csname#1\endcsname}}
+\begtt
+plain: \ss /ss/ \l /l/ \L /L/ \ae /ae/ \oe /oe/ \AE /AE/ \OE /OE/
+ \o /o/ \O /O/ \i /i/ \j /j/ \aa /aa/ \AA /AA/
+ \S /S/ \P /P/ \copyright /copyright/ \dots /dots/ \dag /dag/ \ddag /ddag/
+csplain: \clqq /clqq/ \crqq /crqq/ \flqq /flqq/ \frqq /frqq/ \promile /promile/
+\endtt
+\par}
+
+Pokud je na vstupu jakýkoli jiný UTF-8 kód, implicitně je nemá \csplain{}
+mapován, takže se vypíše na terminál a do logu následující varování:
+
+\begtt
+WARNING: unknown UTF-8 code: `X = ^^xx^^xx' (line: ??)
+\endtt
+%
+a do tiskového výstupu se vloží na dané místo černý čtvereček. Uživatel si musí
+takový znak dodefinovat. Například po hlášení:
+
+{\catcode`!=0
+\begtt
+WARNING: unknown UTF-8 code: `!~N = ^^c3^^91' (line: 42)
+\endtt
+\relax}%
+si uživatel do záhlaví dokumentu například doplní definici:
+
+\begtt
+\mubyte\Ntilde ^^c3^^91\endmubyte % UTF-8 kód mapován na \Ntilde
+\def\Ntilde{{\~N}} % sekvence \Ntilde definována
+\endtt
+%
+Po této úpravě se
+při zpracování dokumentu už varování neobjeví a vstupní kód se zpracuje jako
+řídicí sekvence "\Ntilde", která expanduje na "\~N", takže v tiskovém
+výstupu se objeví~\~N.
+
+Pokud se řídicí sekvence mapovaná pomocí "\mubyte" objeví v argumentu
+"\write" souboru, nebude expandovat, ale promění se při zápisu do souboru
+zpětně do odpovídajícího UTF-8 kódu.
+
+Během "\write" a při zápisu do logu se také zpět na UTF-8 kódy proměňují
+interní byte, které byly mapovány. Implicitně tedy jsou to znaky české a
+slovenské abecedy vyjmenované výše. Ostatní nemapované interní byte s kódem
+větším jak 127 se přepisují podle dvouzobákové konvence např.~takto:~"^^ad".
+Jestliže do deklarace dokumentu napíšete
+"\xprncodes=1", budou se ostatní nemapované byty vypisovat přímo.
+
+Příkazy "\mubytein", "\mubyte" a "\endmubyte" jsou součástí enc\TeX{}u a
+jsou popsány v jeho dokumentaci. Stručně řečeno
+"\mubytein=0" vypíná přechodně použití kódovací tabulky a
+"\mubyte token string\endmubyte" zařadí do kódovací tabulky
+další údaj: "string" bude na vstupu převeden na interní "token" v~\TeX{}u
+a při činnosti "\write" bude "token" zpětně převeden na "string".
+
+Při použití jiných fontů pomocí "\input ctimes" (atd., viz sekci 4.5) je zavolán
+soubor "chars-8z.tex", který mapuje další UTF-8 kódy na řídicí sekvence,
+jež jsou pomocí "\chardef" propojeny se znakem fontu. Jsou to tyto znaky:
+
+{\font\f=ptmr8z
+\catcode`/=13 \def/#1/{{\f\char#1}}
+\begtt
+\euro /134/ \trademark /136/ \registered /138/ \ellipsis /128/
+\textbullet /131/ \sterling /132/ \currency /164/
+\endtt
+\par}
+
+Soubor "chars-8z.tex" navíc předefinovává makra plainu "\P", "\S",
+"\dag", "\ddag", "\copyright", "\lslash", "\Lslash" pomocí "\chardef", aby
+tyto řídicí sekvence vedly přímo na znak ve fontu.
+
+V balíčku {\tt enctex.tar.gz} (a podruhé i v {\tt csplain.tar.gz}) jsou
+připraveny soubory, které mapují UTF-8 kódy celých bloků UNICODE tabulky na
+řídicí sekvence a definují jejich výchozí chování. Můžete použít:
+
+\begtt
+\input utf8lat1 % Latin-1 Supplement U+0080--U+00FF
+\input utf8lata % Latin Extended-A U+0100--U+017F
+\endtt
+%
+a možná v budoucnu i další. Po zavedení těchto souborů se nově deklarované
+UTF-8 kódy mapují na řídicí sekvenci, např. \"e se mapuje na "\edieresis" a
+tato sekvence expanduje na příslušné sestavení akcentu, v tomto příkladě na
+{\tt\char`\\\char`\"e}. Na interní byte zůstávají mapovány jen znaky české a
+slovenské abecedy. Pokud ale {\it před zavedením těchto souborů\/} použijete
+"\input t1code" (přechod na interní kódování T1, tj. podle Corku), pak se na
+interní byte mapují také všechny znaky definované v T1 kódování. Pro nově
+mapované řídicí sekvence jsou použity definice ze souborů {\tt utf8lat*.tex}
+jen tehdy, pokud tyto řídicí sekvence nejsou definovány dříve.
+
+Pokud předložíte \csplain{}u (generovaném pro UTF-8 kodování vstupu)
+dokument kódovaný jinak, než v UTF-8, skoro jistě se dočkáte chybového
+hlášení:
+
+{\font\tt=cstt9
+\begtt
+! UTF-8 INPUT IS CORRUPTED ! May be you are using another input encoding.
+\endtt
+\par}
+
+Je ovšem možné snadno přejít do módu, při němž UTF-8 kódovaný \csplain{}
+pracuje stejně jako \csplain{} s kódováním ISO-8859-2. Stačí na začátek
+dokumentu napsat:
+\begtt
+\mubytein=0 \mubyteout=0 \mubytelog=0 \xprncodes=1
+\endtt
+%
+Tuto práci vykoná také soubor "utf8off.tex", tj. stačí napsat "\input utf8off".
+Tento soubor navíc definuje makro "\clearmubyte", které vymaže
+data deklarovaná pomocí "\mubyte...\endmubyte".
+
+Je dokonce možné mít na vstupu při sazbě jediného dokumentu různé soubory
+různě kódované. Není nutné při přechodu z jednoho kódování přepínat na
+druhé. Stačí na začátek dokumentu napsat:
+\begtt
+\input mixcodes
+\endtt
+a od této chvíle je možné na vstupu střídat texty kódované dle UTF-8,
+ISO-8859-2 nebo CP1250 dle libosti. Všechny výstupy pomocí "\write" jsou
+kódovány podle UTF-8 a jsou tedy opět připraveny k načtení.
+
+V předchozím odstavci není zcela přesná formulace \uv{střídat kódování dle libosti}.
+Platí to jen pro český text. Slovákům nefunguje \frqq\v l\flqq{} v~CP1250. Pokud jim to
+vadí, napíšou "\shyph" před voláním "\input mixcodes". Pak ale zase
+nefunguje \frqq ž\flqq{} v~ISO-8859-2. Tyto dva znaky jsou v uvedených dvou kódováních
+poněkud v~konfliktu. UTF-8 vstup ale funguje bez problémů.
+
+\newstop
+
+
+\subsub Použití fontů kódovaných podle Corku (T1 kódování) nebo v Unicode |
+%--------------------------------------------------------------------
+ Pouziti fontu kodovanych podle Corku nebo v Unicode
+
+Od verze \csplain{}u "<Feb. 2000>" načítá tento formát při
+inicializaci tabulky vzorů dělení nejen v~ISO-8859-2, ale též
+v~kódování podle Corku (tzv.~T1 kódování). Tyto tabulky \uv{čekají} na
+případ, kdy uživatel bude chtít použít ve svém dokumentu fonty,
+jejichž metriky jsou kódované v~T1. Může se totiž stát, že uživatel
+nebude chtít připravovat metriky a virtuální fonty pro nově zakoupené
+\skrt{\ps{}ové} fonty ručně (pomocí programů "a2ac" a "afm2tfm" nebo pomocí
+"fontinst"), ale bude chtít využít již hotové metriky nabízené
+v~\TeX{}ových archivech. Tyto hotové metriky jsou ale většinou v~T1
+kódování.
+
+\newstart
+
+Od verze \csplain{}u "<Nov. 2012>" načítá tento formát při své inicializaci
+tabulky vzorů dělení také v UNICODE, pokud detekuje, že je použit \TeX{}ový
+program, který interně dovede pracovat v UNICODE. Takovým \TeX{}ovým
+programem může být Lua\TeX{}, Xe\TeX{} nebo Omega.
+
+\newstop
+
+Upozorňuji na určitá omezení použití \csplain{}u s~T1 kódovanými fonty:
+
+\begitems
+* Všechny fonty v~celém dokumentu musejí být kódovány jednotně
+ v~ISO-8859-2 nebo v~T1 \new{nebo v UNICODE}.
+ V~dokumentu nelze fonty \skrt{obou}\new{těchto} kódování jednoduše míchat.
+* \csplain{} {\it implicitně} nastavuje vnitřní kódování do
+ ISO-8859-2. Změníte-li tuto vlastnost, pak použitý povel v~systému
+ se už nesmí nazývat {\tt csplain}.
+* Změnit vnitřní kódování \TeX{}u příkazem "%&" na prvním řádku
+ dokumentu je možné ve web2c distribucích \TeX{}u a odvozených.
+ V~jiných instalacích nemusí být tato vlastnost možná. Proto je
+ třeba počítat s~tím, že dokument opírající se o~tento příkaz
+ nemusí být zcela přenositelný na jiné implementace \TeX{}u.
+\enditems
+
+
+
+Přepnutí na vnitřní kódování podle Corku uděláte příkazem
+"\input t1code". \newstart Přepnutí na kódování UNICODE provedete pomocí
+"\input ucode". Toto by měl být první příkaz v dokumentu, pak teprve
+následuje "\chyph" nebo "\input opmac" nebo načítání fontových souborů.
+\newstop
+
+\skrt{Kromě toho,} \new{Nemáte-li UTF-kódovaný csplain,}
+\skrt{se} musíte \new{se} postarat o~to, aby se vstupní
+kódování správně konvertovalo na vnitřní kódování \TeX{}u. Například
+ve web2c distribuci použijete volbu "-translate-file".
+Příklad použití T1 kódovaného fontu:
+
+\begtt
+%&csplain -translate-file=il2-t1
+\input t1code %% Některé definice závislé na kódování
+\chyph %% Příkaz nyní zapne tabulku 15 místo tabulky 5
+\font\f=ptmr8t %% Zavedení T1 kódovaného fontu Times-Roman
+\f
+Tady je český text zpracovaný uvnitř \TeX{}u v kódování T1
+včetně použití správné tabulky pro dělení slov.
+\end
+\endtt
+
+Takto připravený soubor \TeX{}ujte na web2c instalaci nikoli povelem
+{\tt csplain}, ale raději povelem {\tt tex}, tedy:
+
+\begtt
+tex dokument
+\endtt
+
+Program {\tt tex} z~web2c implementace se podívá do prvního řádku dokumentu
+a pokud tam najde dvojici "%&", zavede formát a TCX tabulku (která
+pozměňuje xord/xchr vektor) podle toho, co je za touto dvojicí napsáno.
+Pokud byste použili skript {\tt csplain} obsahující přepínač
+"-translate-file=il2-cs", nebude to fungovat,
+protože přepínač na příkazovém řádku má vyšší prioritu než v~dokumentu.
+V~novějších implemetacích příkazu {\tt csplain} je použit skript,
+který obsahuje přepínač
+"-default-translate-file=il2-cs". Ten má prioritu nižší, takže
+pak lze při zpracování dokumentu s~konstrukcí "%&" použít i příkaz
+{\tt csplain}.
+
+Do distribuce \csplain{}u jsou zařazeny soubory {\tt dcfonts.tex},
+{\tt ecfonts.tex} \skrt{a pro inspiraci též {\tt ttimes.tex}}. Pokud na
+začátku dokumentu například napíšete:
+
+\begtt
+%&csplain -translate-file=il2-t1
+\input ecfonts
+\chyph
+\endtt
+\noindent
+převádíte celou sazbu do EC fontů kódovaných podle Corku. V~zaváděném
+souboru "ecfonts.tex" je proveden "\input t1code", takže se o~to
+přímo v~dokumentu už není potřeba starat.
+
+\skrt{Při zavádění \ps{}ových fontů (například použitím {\tt ttimes.tex})
+nastávají stejné problémy s~matematickou sazbou, jako při použití
+\ps{}ových fontů kódovaných v~ISO-8859-2. Tyto problémy jsou popsány
+v~předchozí sekci.}
+
+\newstart
+Pokud dáte "\input t1code" před "\input ctimes", (nebo "\input cavantga",
+atd.), budou požadované fonty zavedeny v T1 kódování. Takže k sazbě
+Bookmanem v T1 kódování stačí v UTF-8 kódovaném \csplain{}u napsat:
+
+\begtt
+\input t1code \input cbookan
+\endtt
+
+Bohužel T1 kódované fonty jsou generovány programem fontinst, který má ve
+svých konfiguračních souborech chybu pro písmena ť a ď. Tato písmena jediná nejsou
+v těchto fontech realizovaná jako přímé znaky a jsou poskládána z komponent
+naprosto odstrašujícím způsobem. Kdo opraví tuto chybu ve fontinstu, nechť o
+tom, prosím, reportuje na příslušných místech, aby mohli správci distribucí
+přegenerovat {\tt 8t}~metriky.
+
+Pokud dáte v 16bitovém \TeX{}u (tj. Xe\TeX, Lua\TeX{} nebo v něčem podobném)
+"\input ucode" před "\chyph" a "\input lmfonts", bude čeština uvnitř \TeX{}u
+zpracována v Unicode a tištěna Latin Modern Unicode fonty.
+Jiné soubory pro čtení fontů zatím pro 16bitový \TeX{} upraveny nejsou.
+
+
+\subsub Vzory dělení slov v různých jazycích a kódováních |
+%------------------------------------------------------
+ Vzory deleni slov v ruznych jazycich a kodovanich
+
+Implicitně načítá \csplain{} při generování formátu následující
+vzory dělení:
+
+\begitems
+* "\USenglish=0" ... (implicitní vzor z plain\TeX{}u) v ASCII kódování
+* "\czILtwo=5" ... čeština v ISO-8859-2
+* "\skILtwo=6" ... slovenština v ISO-8859-2
+* "\czCork=15" ... čeština v T1 kódování
+* "\skCork=16" ... slovenština v T1 kódování
+* "\czUnicode=115" ... čeština v Unicode (jen, pokud je detekován
+ Xe\TeX, Lua\TeX, nebo jiný 16bitový \TeX)
+* "\skUnicode=116" ... slovenština v Unicode (jen, pokud je detekován
+ Xe\TeX, Lua\TeX, nebo jiný 16bitový \TeX)
+\enditems
+
+Jednotlivé vzory dělení se v dokumentu zapínají pomocí "\uslang", "\czlang"
+a "\sklang". Příkaz "\uslang" zapne také "\nonfrenchspacing" a ostatní
+zapínají "\frenchspacing". Jsou zachovány staré názvy těchto přepínačů:
+"\ehyph=\uslang", "\chyph=\czlang" a "\shyph=\sklang". Přechod k novým
+názvům s aspoň dvěma písmenky pro jazyk je důsledkem nové
+možnosti v \csplain{}u použít 54 různých jazyků.
+
+V roce 2012 byl zcela přepracován soubor "hyphen.lan", který je použit
+\csplain{}em pro čtení vzorů dělení slov. Na řádcích 48 až 160
+tohoto souboru jsou za dvojtečkami skryty jazyky a kódování zhruba ve tvaru:
+
+\begtt
+\let\czCork=y % Czech
+\let\skCork=y % Slovak
+:\let\deCork=y % German
+:\let\frCork=y % French
+:\let\plCork=y % Polish
+:\let\cyCork=y % Welsh
+:\let\daCork=y % Danish
+...
+:\let\saUnicode=y % Sanskrit
+:\let\ruUnicode=y % Russian
+:\let\ukUnicode=y % Ukrainian
+:\let\hyUnicode=y % Armenian
+:\let\asUnicode=y % Assamese
+\endtt
+
+Stačí si vybrat jazyky, odstranit příslušnou dvojtečku a znovu vygenerovat
+formát \csplain{}. Nebo můžete přidat vzor bez zásahu do souboru
+"hyphen.lan" vhodně zvolenou zprávou na příkazovém řádku při generování
+formátu. Například:\par\nobreak
+
+{\font\tt=cstt9
+\begtt
+pdftex -ini -enc "\let\plCork=y \let\enc=u \input csplain.ini"
+nebo
+pdftex -ini -enc "\let\allpatterns=y \let\enc=u \input csplain.ini"
+
+\endtt
+
+}
+Jakmile je načten vzor dělení pro nový jazyk, je automaticky připraven k
+tomu odpovídající přepínač, tedy například "\delang" po načtení "\deCork".
+Seznam všech načtených vzorů dělení je v makru "\pattlist".
+
+Na začátku zpracování dokumentu jsou inicializovány vzory dělení "\..ILtwo".
+Vzory dělení typu "\..Cork" budou fungovat až po "\input t1code" a vzory
+dělení "\..Unicode" budou fungovat až po "\input ucode". Pozor: \csplain{}
+neřeší správné nastavení "\lccode" a "\uccode" v~16bitovém \TeX{}u v rozsahu
+větším, než jsou znaky z české a slovenské abecedy. Takže při použití
+exotických jazyků si uživatel musí nastavit k tomu správná "\lccode".
+
+\csplain{} definuje pro každý jazyk s načtenými vzory dělení makro "\lan:<číslo>" jako
+"<zkratku jazyka>", například "\lan:5" stejně jako "\lan:15" expandují na
+"cz". Programátor maker toho může využít. Programátor maker dále může využít
+toho, že makra "\czlang", "\delang" atd. volají makro
+"\initlanguage{<zkratka jazyka>}". Toto makro implicitně neudělá nic, ale
+programátor maker si je může předefinovat dle svého. Protože je
+"\initlanguage" zavolán těsně za "\language=<číslo>" v~kontextu:
+
+\begtt
+\..lang -> \language=<číslo>\relax
+ \initlanguage{<značka>}\frenchspacing
+ \lefthyphenmin=<lhm>\righthyphenmin=<rhm>%
+ \message{<text>}
+\endtt
+%
+je možné, aby programátor maker odebral další inteligenci maker "\..lang"
+a převzal je do vlastnívch rukou. Třeba definuje:
+
+\begtt
+\def\initlanguage #1#2#3\message#4{#3\csname lg:#1\endcsname}
+\endtt
+
+Toto řešení přebírá z makra "\..lang" jen nastavení registrů "\lefthyphenmin" a
+"\righthyphenmin", ale ruší implicitní "\message" i nastavení
+"\frenchspacing". Místo toho se předpokládá, že budou definována makra
+"\lg:<značka>", ve kterých budou tyto věci (a možná mnoho dalších jako třeba
+nastavení implicitního fontu) řešeny pro každý jazyk individuálně.
+
+Přepínání mezi kódováními funguje pomocí "\corklangs" ... "\czlang"
+(nyní je aktivní vzor dělení "\czCork") a dále třeba ... "\iltwolangs"
+... "\czlang" (nyní je aktivní vzor dělení "\czILtwo").
+Makra "\iltwolangs", "\corklangs", a "\unicodelangs" jsou spuštěna při
+"\input il2code", "\input t1code" a "\input ucode", takže uživatel to nemusí
+řešit.
+
+Je potřeba si uvědomit, že 8bitovým \TeX{}em sice můžete vynutit načtení
+Unicodových vzorů dělení slov, ale bude vám to málo platné, tedy k ničemu.
+Dále je potřeba vědět, že v 16bitovém \TeX{}u můžete načíst vzory dělení
+"\..ILtwo" a "\..Cork" korektně jen pro češtinu a slovenštinu, protože další
+vzory dělení jsou čteny pomocí triku s aktivními znaky, který dekóduje
+8bitový vstup. Nicméně typicky v~16bitovém \TeX{}u není inicializován
+8bitový vstup, takže se to poláme.
+
+\newstop
+
+\subsub Nové řídicí sekvence \csplain{}u oproti Knuthovu plainu |
+%-----------------------------------------------------------
+ Nove ridici sekvence CSplainu
+
+\bgroup \leftskip=\parindent \parindent=0pt
+
+\hbox{\skrt{\tt\char`\\austrian}} \skrt{Registr rezervovaný pro číslo tabulky vzorů dělení slov pro
+ rakouskou němčinu (hodnota 2).
+ Vzory dělení pro tento jazyk implicitně nejsou zavedeny.}
+
+\newstart
+"\bi" Přejde na tučnou krurzívu. Příkaz doplňuje sadu příkazů "\rm", "\it" a
+"\bf" definovanou v plain\TeX{}u.
+\newstop
+
+"\cmaccents"\nobreak Nastaví řídicí sekvence "\^", "\`", "\'", "\v" a
+ "\"{\tt\char`\"} tak, aby fungovaly stejně, jako
+ v~originálním plainu (použití primitivu "\accent").
+ Sekvence "\r" je nedefinována. Toto je defaultní
+ nastavení. Pokud slovo obsahuje akcentovaný znak zapsaný
+ některou z~těchto sekvencí, pak pro ně nefunguje
+ automatické dělení.
+
+"\cmaccentsmesage" Způsobí výpis informace do logu a na terminál
+ o~použití příkazu "\cmaccents". Pokud vás tato zpráva
+ obtěžuje, nastavte "\let\cmaccentsmesage=\relax" před
+ vyvoláním příkazu "\cmaccents".
+
+\newstart
+"\corklangs" Inicializace vzorů dělení podle T1 kódování (Cork). \newstop
+
+"\csaccents"\nobreak Nastaví řídicí sekvence "\^", "\`", "\'", "\v",
+ "\"{\tt\char`\"} a "\r" tak, aby expandovaly na
+ odpovídající 8bitové reprezentace znaků podle ISO-8859-2
+ (po "\input t1code" pak expandují na kódování podle
+ Corku). Sekvence "\r u" expanduje na ů. Pokud slovo
+ obsahuje akcentovaný znak zapsaný některou z~těchto
+ sekvencí, pak pro ně funguje i automatické dělení slov.
+
+"\csaccentsmesage" Způsobí výpis informace do logu a na terminál
+ o~použití příkazu "\csaccents". Pokud vás tato zpráva
+ obtěžuje, nastavte "\let\csaccentsmesage=\relax" před
+ vyvoláním příkazu "\csaccents".
+
+"\clqq" Vytiskne levé české uvozovky (\clqq).
+
+"\crqq" Vytiskne pravé české uvozovky (\crqq).
+
+\hbox{"\chyph" \new{={\tt\char`\\czlang}}}
+ Aktivuje tabulku dělení slov podle registru "\czech" a
+ nastaví stejnoměrné mezerování za tečkami
+ (tzv.~"\frenchspacing"). \new{Dále nastavuje
+ {\tt\char`\\lefthyphenmin=2} a {\tt\char`\\righthyphenmin=3}. Druhý registr
+ lze změnit na dvojku, vzory dělení jsou na to připraveny.}
+
+"\czech" \nobreak Registr rezervovaný pro číslo tabulky vzorů dělení slov pro
+ češtinu (hodnota "\iltwoczech" nebo "\toneczech" podle toho,
+ zda nebylo nebo bylo použito "\input t1code").
+
+\hbox{"\ehyph" \new{={\tt\char`\\uslang}}}\nobreak
+ Aktivuje tabulku dělení slov podle registru "\USenglish" a
+ nastaví větší mezerování za tečkami
+ (tzv.~"\nonfrenchspacing"). Toto nastavení je výchozí.
+
+\hbox{\skrt{\tt\char`\\english}}
+\nobreak \skrt{Registr rezervovaný pro číslo tabulky vzorů dělení slov pro
+ britskou angličtinu (hodnota 4).
+ Vzory dělení pro tento jazyk implicitně nejsou zavedeny.}
+
+"\extrahyphenchar" Alternativní znak spojovníku (-). Kód 156.
+ Po "\input t1code" není toto makro definováno.
+
+"\extrahyphens"\nobreak Nastaví rozdělovací znak pro běžné textové fonty na
+ "\extrahyphenchar". Defaultně je v~plainu jako rozdělovací znak
+ nastaven znak minus (ASCI~45), což může činit v~českém
+ textu komplikace. \TeX{} totiž v~případě rozdělovacího znaku
+ přímo ve vstupním textu může dělit tak, že znak neopakuje
+ na dalším řádku. Po "\extrahyphens" bude mít dělicí
+ znak kód 156, což je kód, který se na vstupu nevyskytuje.
+ Máme tím zaručeno, že ve slovech \uv{je-li} nebude \TeX{}
+ dělit vůbec. Jinou aplikací je použití speciální metriky
+ nebo dokonce speciálního tvaru pro "\extrahyphenchar".
+
+"\flqq" Levé francouzské uvozovky (\flqq), které se v~češtině a
+ němčině používají vpravo.
+
+"\frqq" Pravé francouzské uvozovky (\frqq), které se v~češtině a
+ němčině používají vlevo, tedy \frqq takto\flqq.
+
+\hbox{\skrt{\tt\char`\\french}}
+ \skrt{Registr rezervovaný pro číslo tabulky vzorů dělení slov pro
+ francouzštinu (hodnota 3).
+ Vzory dělení pro tento jazyk implicitně nejsou zavedeny.}
+
+\hbox{\skrt{\tt\char`\\german}}
+ \skrt{Registr rezervovaný pro číslo tabulky vzorů dělení slov pro
+ němčinu (hodnota 1).
+ Vzory dělení pro tento jazyk implicitně nejsou zavedeny.}
+
+\hbox{"\iltwoczech"\new{={\tt\char`\\czILtwo}}}
+ Konstanta 5 rezervovaná pro číslo tabulky vzorů dělení slov
+ pro češtinu při kódování fontů podle ISO-8859-2.
+
+\newstart
+"\iltwolangs" Inicializace vzorů dělení podle ISO-8859-2 (implicitní).\newstop
+
+\hbox{"\iltwoslovak"\new{={\tt\char`\\skILtwo}}}
+ Konstanta 6 rezervovaná pro číslo tabulky vzorů dělení slov
+ pro slovenštinu při kódování fontů podle ISO-8859-2.
+
+"\ogonek" Vytvoří polský akcent pod písmenem: \ogonek a.
+
+\newstart
+"\pattlist" Seznam všech načtených vzorů dělení. \newstop
+
+"\promile" Vytiskne znak \promile.
+
+\newstart
+"\regfont <přepínač>" Provede registraci fontového přepínače. Tedy přidá
+do existujícího makra "\resizefontall" další dva tokeny:
+"\resizefont <přepínač>".
+
+"\resizeall" Provede "\resizefont" podle aktuláně nastaveného "\sizespec" na
+sekvence "\tenrm", "\tenit", "\tenbf", "\tenbi" a "\tentt" a případně další
+registované fontové přepínače. Příklad:\hfil\break
+"\def\sizespec{at12pt}\resizeall \tenrm"\hfil\break
+"Nastavená \it velikost 12pt \bf funguje \bi všude."
+
+"\resizefont <přepínač>"\nobreak Argumentem musí být fontový "<přepínač>", tj. sekvence
+ dříve deklarovaná pomocí "\font". Tento "<přepínač>" pozmění
+po činnosti příkazu "\resizefont" svůj význam: odkazuje na stejný font ale ve velikosti nastavené podle obsahu
+makra "\sizespec". Naříklad: "\def\sizespec{at14pt}\resizefont\tenbf".
+Od této chvíle je "\tenbf" tučný font (stejný, jako byl původní "\tenbf")
+ve velikosti 14pt. Změna významu je lokální.
+
+"\resizefontskipat"\nobreak Pomocné makro pro "\resizefont".
+\newstop
+
+\hbox{"\shyph"\new{={\tt\char`\\sklang}}}
+ Aktivuje tabulku dělení slov podle registru "\slovak" a
+ nastaví stejnoměrné mezerování za tečkami
+ (tzv.~"\frenchspacing").
+
+\newstart
+"\sizespec" Makro spolupracující s příkazem "\resizefont". Makro
+"\sizespec" je buď prázdné, nebo
+obsahuje \uv{{\tt at<dimen>}}, nebo \uv{{\tt scaled<number>}}. Nezapomeňte
+na klíčová slova {\tt at} resp. {\tt scaled}.
+
+\newstop
+
+"\slovak" Registr rezervovaný pro číslo tabulky vzorů dělení slov pro
+ slovenštinu (hodnota "\iltwoslovak" nebo "\toneslovak" podle toho,
+ zda nebylo nebo bylo použito "\input t1code").
+
+\newstart
+"\tenbi" Font-selector definovaný jako "\font\tenbi=csbxti10". Je totiž
+užitečné mít preloadovanou fontovou čtveřici "\tenrm", "\tenit", "\tenbf" a
+"\tenbi".
+\newstop
+
+\hbox{"\toneczech"\new{={\tt\char`\\czCork}}}
+ Konstanta 15 rezervovaná pro číslo tabulky vzorů dělení slov
+ pro češtinu při kódování fontů podle Corku.
+
+\hbox{"\toneslovak"\new{={\tt\char`\\skCork}}}
+ Konstanta 16 rezervovaná pro číslo tabulky vzorů dělení slov
+ pro slovenštinu při kódování fontů podle Corku.
+
+\newstart
+"\unicodelangs" Inicializace vzorů dělení v Unicode.\newstop
+
+"\USenglish" Registr rezervovaný pro číslo tabulky vzorů dělení slov pro
+ americkou angličtinu (hodnota 0).
+
+"\uv" Makro pro uvozovky. Používá se "\uv{takto}". Makro je
+ definováno tak, aby se uvnitř jeho argumentu dala použít
+ verbatim konstrukce. To ale způsobí, že je potlačen
+ kerning před pravou uvozovkou. Pokud nepoužíváte verbatim
+ konstrukce v~argumentu uvozovek, doporučuji makro
+ předefinovat jednoduše na:
+
+\begtt
+\long\def\uv#1{\clqq#1\crqq}.
+\endtt
+
+{\bf Poznámka:} \csplain{} nedefinuje makro pro ,jednoduché` uvozovky, protože
+ \CSfont{}y neobsahují pro tyto uvozovky speciální znaky. Můžete
+ ale místo nich použít čárku a apostrof třeba takto:
+
+\begtt
+\long\def\singleuv#1{,#1`}
+\endtt
+\par\egroup
+
+
+
+\newstart
+Při generování UTF-8 \csplain{}u se použije enc\TeX, který přidává primitivy
+"\mubyte", "\endmubyte", "\mubytein", "\mubyteout", "\mubytelog",
+"\specialout", "\noconvert", "\xordcode", "\xchrcode" a "\xprncode".
+Během generování je načten soubor {\tt utf8unkn.tex}, který mapuje
+neznámé kódy na "\warntwobytes" a "\warnthreebytes" a tyto sekvence definuje
+jako makra. Dále definuje makra "\badutfinput", "\missingutfchar" a
+"\xprncodes".{\hbadness=4000\par}
+\newstop
+
+\bigskip
+\skrt{{\bf Přidání vzorů dělení slov dalších jazyků}}
+\par\nobreak\bigskip
+
+
+\skrt{\csplain{} implicitně načítá jen anglické vzory dělení (US) a české a
+slovenské. Od verze {\tt <Feb. 2000>} navíc načítá české a slovenské vzory
+dělení nejen v~kódování ISO-8859-2, ale i v~kódování podle Corku.
+Anglické vzory dělení jsou implicitně aktivní a přepínáme na ně pomocí
+{\tt\char`\\ehyph}. České vzory dělení se zapínají pomocí
+{\tt\char`\\chyph} a slovenské
+pomocí {\tt\char`\\shyph}.}
+
+\skrt{Pokud potřebujete přidat další jazyk, pak před generováním formátu
+\csplain{} editujte soubor {\tt hyphen.lan}. Tam najdete příklady doplnění
+vzorů dělení němčiny nebo francouzštiny (stačí odkomentovat
+odpovídající řádky). Podle těchto příkladů můžete analogicky zařadit
+potřebný další jazyk. Nezapomeňte v~souboru {\tt hyphen.lan} také
+definovat přepínač na nové vzory dělení.
+Pro němčinu definujeme například přepínač {\tt ghyph} takto:}
+{\hbadness=3000\par}
+
+
+
+{\catcode`!=\active \def!#1!{\skrt{#1}}
+\begtt
+!\def\ghyph{\language=\german!
+ !\lccode`\'=`\'!
+ !\frenchspacing!
+ !\lefthyphenmin=2!
+ !\righthyphenmin=2 }!
+\endtt
+
+}
+\skrt{Nakonec přegenerujte formát způsobem popsaným v~sekci 4.2.}
+
+\skrt{Vzory dělení západoevropských jazyků jsou většinou kódovány podle
+ISO-8859-1, přičemž kódování Cork je nadmnožinou tohoto kódování. Je
+tedy možné přepnout pomocí {\tt\char`\\input t1code} na začátku dokumentu do
+Corku, použít fonty kódované podle Corku a pak přepínat mezi češtinou
+a třeba němčinou střídavě pomocí přepínačů
+{\tt\char`\\chyph} a {\tt\char`\\ghyph}.}{\hbadness=6500 \par}
+
+\skrt{Vzory dělení exotických jazyků jsou kódovány ve svém specifickém
+kódování, ke kterému musíme sehnat font stejně kódovaný. Po přepnutí
+do nového jazyka musíme přepnout i na tento font. Dále je nutno řešit
+otázku možné kolize vstupního kódování češtiny/slovenštiny se vstupním
+kódováním pro nový jazyk. Je proto bezpečnější si pro speciální znaky
+jazyka udělat makra, která expandují na znak podle kódování fontu, a
+psát vstupní text pomocí těchto maker.}
+
+
+\subsub \csplain{} a \AMS\TeX | CSplain a AMSTeX
+%-------------------------
+
+\AMS\TeX{} můžete používat v~plainu i \csplain{}u bez nutnosti generovat
+kvůli tomu formátový soubor. Máte-li dokument v~\AMS\TeX{}u, napište
+jednoduše na jeho začátek:
+
+\begtt
+\input amstex
+\endtt
+%
+a dále můžete dokument zpracovat příkazem \csplain{}.
+
+
+\subsub pdf\TeX{} + \csplain{} = pdf\csplain{} |
+%---------------------------------------
+ pdfTeX + CSplain = pdfCSplain
+
+Pokud vygenerujete formát \csplain{} pdf\TeX{}em, je potřeba jej nazvat
+jinak, aby byl odlišen od formátu \csplain{} pro originální
+\TeX{}. Proto je v~\CSTeX{}u zvoleno jméno "pdfcsplain.fmt".
+Dále je potřeba připravit příkaz "pdfcsplain", který spustí
+pdf\TeX{} s~formátem "pdfcsplain.fmt" a zajistí případné překódování
+na úrovni input procesoru pdf\TeX{}u stejně, jako do dělá příkaz
+"csplain". Pokud uživatel nepoužil ve svých makrech
+konstrukce měnící sazbu při použití pdf\TeX{}u, měl by dostat
+příkazem "pdfcsplain" naprosto stejný výstup jako při použití
+příkazu "csplain". Pouze s~tím rozdílem, že výstup nebude v~"dvi"
+souboru, ale v~"pdf".
+
+Ve web2c \TeX{}u a odvozených distribucích lze generovat formát
+příkazem
+
+\begtt
+pdftex -ini -fmt pdfcsplain csplain.ini
+\endtt
+%
+a příkaz "pdfcsplain" v~UNIXu implementovat jako skript s~obsahem
+
+\begtt
+pdftex -fmt pdfcsplain -default-translate-file=il2-cs $@
+\endtt
+
+Toto je pouze příklad implementace. Na jiných operačních systémech a
+jiných \TeX{}ových distribucích se situace může trochu lišit.
+
+Poznamenejme, že v~te\TeX{}u a odvozených distribucích většinou
+stačí napsat "pdfcsplain dokument", a pokud jste "pdfcsplain"
+ještě nepoužili, vygeneruje se automaticky.
+
+
+
+\subsub Historie a budoucnost \csplain{}u | Historie a budoucnost CSplainu
+%-------------------------------------
+
+\csplain{} vznikl v~roce 1992 jako jednoduché a minimální rozšíření
+Knuthova \hbox{plainu} používající \CSfont{}y a akceptující 8bitový vstup.
+Jeho vytvoření bylo motivováno zařazením do em\TeX{}ové distribuce,
+která se připravovala k~rozesílání členům \CS{}TUGu.
+
+\csplain{} se opíral a stále opírá o~starší makra {\tt hyphen.lan} a
+{\tt plaina4.tex}, která už měl Olin Ulrych vytvořena dříve.
+\csplain{} v~době svého vzniku načítal české vzory dělení, které
+vytvořil Láďa Lhotka heuristicky bez použití slovníků a programu
+"patgen". Já jsem pro \csplain{} vytvořil {\tt csplain.ini} a makro
+{\tt csfonts.tex}, umožňující při generování formátu číst přímo Knuthovo
+makro {\tt plain.tex}, a přitom natáhnout místo CMfontů \CSfont{}y.
+
+V~roce 1994 byly vzory dělení slov Ládi Lhotky vyměněny za nové české
+vzory dělení od Pavla Ševečka, který na to použil slovník a "patgen".
+V~rámci své firmy tyto vzory dělení prodává komerčním firmám pro
+potřeby DTP programů, jako byly Ventura, PageMaker nebo Quark. Dnes
+jsou tyto vzory dělení také například ve Wordu. Aby Pavel Ševeček
+odlišil volně šířené vzory dělení pro \CSTUG{} od komerčně šířených,
+volně šířené vzory dělení mírně modifikoval. Tvrdí se, že běžný
+uživatel nepozná rozdíl v~kvalitě vzorů dělení komerčních a volně
+šířených. Ševečkovy vzory dělení slov jsou výrazně kvalitnější než
+původní Lhotkovy, a proto jsme u~těchto vzorů dělení zůstali.
+
+Opuštěním Lhotkových vzorů dělení došlo k~poslední změně
+v~\csplain{}u, která může způsobit zpětnou nekompatibilitu: tj. dokumenty
+vytvořené v~\csplain{}u před rokem 1994 mohly dopadnout jinak než dnes,
+protože některá slova mohla být rozdělena jinak. Od této doby je
+\csplain{} fixován a stabilní podobně, jako Knuthův plain.
+
+Protože jsem autorem názvu \csplain{}, souborů {\tt csplain.ini},
+"csfonts.tex" a množství dokumentace k~\csplain{}u a protože jej od
+jeho vzniku udržuji, rozhodl jsem se přísně dbát na zpětnou
+kompatibilitu. Změny do \csplain{}u dělám jen takové, které jsou
+opravdu nezbytné. To se stává jednou za několik let (viz historické
+poznámky v~{\tt csplain.ini}). Změny dělám tak, že pouze přidám další
+nejnutnější makra, ale stávající makra a jejich význam nechávám
+nezměněna. Uživatelům \csplain{}u ručím, že jejich dokumenty napsané
+v~\csplain{}u a opírající se o~neměnné fonty (např. \CSfont{}y nebo
+base 35 PostScriptové fonty, metriky z~\CSTeX{}u), budou i v~budoucnu
+\csplain{}em formátovány naprosto stejně, jako dnes.
+
+Abych mohl takovou záruku uživatelům poskytnout, není \csplain{}
+zveřejněn pod GNU GPL, ale jedná se o~licenci velmi podobnou Knuthově.
+Přesné znění licence je uvedeno na konci souboru {\tt csplain.ini}.
+Zhruba řečeno, jedná se o~\uv{patent na název}. \csplain{} můžete svobodně
+distribuovat, používat a měnit, ale pokud jej změníte, nesmíte jej
+dále distribuovat pod názvem \csplain{}. Změny v~\csplain{}u může dělat jen
+tzv.~\uv{současný administrátor \CSTeX{}u}, což jsem zatím stále já.
+Pokud bych v~budoucnu toto břímě někomu předal, pak určitě jen takovému
+člověku, který má na budoucnost \csplain{}u stejný názor jako já.
+
+\csplain{} i nadále považuji za minimální rozšíření Knuthova plainu a
+nikdy do něj nepřidám žádné složitější makro vylepšující uživatelský
+komfort (jako například eplain). Zastávám názor, že uživatel plainu a
+\csplain{}u chce mít všechna makra pod svou vlastní kontrolou a raději si
+je udělá sám, než aby spoléhal na hotová, ale méně stabilní, řešení.
+Uživatel plainu/\csplain{}u si vytváří vlastní stále znovu používaná
+makra, která mu musí fungovat ve všech i budoucích verzích
+\csplain{}u. Proto se snažím \csplain{} pokud možno neměnit.
+
+Lákavá je například změna definice uvozovek v~\csplain{}u jednoduše na
+
+\begtt
+\long\def\uv#1{\clqq#1\crqq}
+\endtt
+
+aby fungoval automatický kerning s~oběma stranami uvozovek. Tuto
+změnu ale nikdy v~\csplain{}u neudělám, protože není zpětně kompatibilní
+se stávajícím řešením. Raději budu psát do omrzení do dokumentace, že
+taková jednoduchá definice je asi lepší, než ta z~\csplain{}u, a že si ji
+každý může zařadit do svých maker.
+
+Změnu v~\csplain{}u z~"<Feb. 2000>" považuji za asi největší, kterou
+jsem byl ochoten udělat. K~zařazení alternativního kódování Cork
+(které samozřejmě není a nikdy nebude v~\csplain{}u implicitní), mě
+motivovala skutečnost, že se kolem mě pohybovalo mnoho uživatelů
+plainu, kteří rádi používají fonty v~tomto alternativním
+kódování. Svým krokem jsem jim umožnil používat \csplain{}, takže si
+nemusejí vytvářet své vlastní formáty.
+
+
+
+\subtitle Formát \cslatex{} | FORMAT CSLATEX
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newstart Významní uživatelé \LaTeX{}u sice v elektronické konferenci v roce 2012
+přiznali, že už \cslatex{} dávno nepoužívají, nicméně se stále přimlouvají,
+aby v \CS\TeX{}u zůstal. Nebude ale dále rozvíjen a všem uživatelům je
+kladeno silné doporučení, aby přešli na \uv{normální} \LaTeX. Navrhoval jsem
+\cslatex{} zrušit úplně (aby to lidi nepletlo), ale nebyl jsem vyslyšen.
+
+Od roku 2012 napíše \cslatex{} při každém spuštění na terminál a do
+logu toto:
+
+\begtt
+**** WARNING ******* CSLaTeX is obsolete, don't use it please.
+**** You can use ``normal'' LaTeX+Babel or XeLaTeX+polyglossia.
+\endtt
+
+Pokud použijete \LaTeX{}, pak záhlaví dokumentu může vypadat třeba
+takto:
+
+\begtt
+\documentclass[a4paper,12pt,twoside]{article}
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage[czech]{babel}
+\endtt
+
+Při použití Xe\LaTeX{}u s balíčkem {\tt polyglossia} může
+záhlaví dokumentu být například takové:
+
+\begtt
+\documentclass[a4paper,12pt,twoside]{article}
+\usepackage{polyglossia}
+\setdefaultlanguage{czech}
+\usepackage{fontspec}
+\usepackage{xunicode}
+\endtt
+
+Následující text až do konce kapitoly bych mohl celý škrtnout, ale
+nechám jej beze změny. Čtenář to možná ocení jako materiál ke studiu historie
+\CS\TeX{}u.
+
+\newstop
+
+
+\subsub Různé \LaTeX{}y | Ruzne LaTeXy
+%----------------------
+
+Do roku 1992 byl \LaTeX{} udržován Leslie Lamportem. Naposledy měl
+jeho \LaTeX{} verzi 2.09. Typické pro tento \uv{starý} \LaTeX{} bylo
+použití příkazu "\documentstyle" namísto "\documentclass" v~záhlaví
+dokumentu. Tato větev \LaTeX{}u není dále udržována a podporována.
+Dnes převzali iniciativu nad \LaTeX{}em Němci Frank Mittelbach a
+Rainer Sch\"opf a nazvali jej \LaTeXe. Každý půlrok
+vytvářejí novou verzi (většinou obsahující jen opravy předchozí verze)
+a názvem dávají najevo, že se jedná o~předchůdce \LaTeX{}u~3, na němž
+už deset let pracují. Dokument napsaný pro \LaTeXe{} poznáme vesměs
+podle toho, že začíná příkazem "\documentclass" místo "\documentstyle".
+\LaTeXe{} ovšem také akceptuje příkaz "\documentstyle",
+přechází přitom do pokusu o~emulaci starého \LaTeX{}u~2.09, a navíc
+uživatele upozorní na to, že použil zastaralé záhlaví dokumentu.
+
+V~\LaTeX{}u~\twoe{} je zabudovaná \uv{časovaná bomba} s~rozbuškou
+na rok a půl. Ta se projeví při generování formátu, nikoli při běžném
+provozu. Pokud generujete formát ze zdrojů \LaTeX{}u, které jsou
+starší než rok a půl, generování končí chybou a na terminálu se objeví
+varování, že máte instalován příliš starý \LaTeX{} a že je vhodné si
+obstarat nový. Pokud na toto hlášení odpovíte klávesou Enter, formát
+se přesto vygeneruje.
+
+V~tomto manuálu se budeme dále zabývat jen dnes asi nejpoužívanějším
+\LaTeX{}em~\twoe. Pojmem \LaTeX{} tedy budeme rozumět
+\LaTeXe. I~za těchto okolností budeme nuceni
+rozlišovat mezi třemi \uv{druhy} \LaTeX{}ů:
+
+\begitems
+* vanilla \LaTeX
+* babelizovaný \LaTeX
+* \cslatex{}
+\enditems
+
+Vanilla \LaTeX{} (nedotčený \LaTeX) vzniká vygenerováním formátu
+\LaTeX{} pouze za přítomnosti souborů z~adresáře {\tt latex/base}, tj. při
+generování nejsou čteny žádné soubory ovlivňující generování
+formátu. V~distribuci tedy zcela chybí tyto soubory:
+{\tt fonttext.cfg}, {\tt fontmath.cfg},
+{\tt preload.cfg} a {\tt hyphen.cfg}.
+Tento formát obsahuje pouze anglické dělení slov. Pro český nebo
+slovenský jazyk není tedy příliš použitelný. Není často používaný.
+
+Babelizovaný \LaTeX{} vzniká generováním formátu \LaTeX{} za
+přítomnosti souborů {\tt fonttext.cfg}, {\tt fontmath.cfg} a
+{\tt preload.cfg} z~balíčku generic a {\tt hyphen.cfg} z~balíčku Babel.
+Tento formát obsahuje vzory dělení těch jazyků, které jsou v~době
+generování formátu uvedeny v~konfiguračním souboru Babelu s~názvem
+{\tt language.dat}. Je běžně používaný.
+
+Formát \cslatex{} vzniká generováním formátu \LaTeX{} za přítomnosti souborů
+"fonttext.cfg" a "hyphen.cfg" z~balíčku \cslatex{}. Ostatní
+soubory ovlivňující generování formátu mohou chybět nebo být z~balíčku
+generic. Obvykle je formát \cslatex{}u nazván {\tt cslatex.fmt} a nikoli
+{\tt latex.fmt}, aby bylo možno jej odlišit od běžně používaného
+babelizovaného \LaTeX{}u. Z~toho důvodu je v~balíčku \cslatex{}u
+k~dispozici soubor {\tt cslatex.ini}, který provede
+"\input latex.ltx". \cslatex{} obsahuje vzory dělení anglického,
+českého a slovenského jazyka. Navíc příkaz "cslatex" musí zajistit
+konverzi ze vstupního kódování (podle použitého systému) na
+vnitřní kódování ISO~8859-2 na úrovni vstupního preprocesoru
+\TeX{}u. Tento princip je tedy shodný s~\csplain{}em.
+
+Je patrno, že absolutní jistotu o~tom, jaký \LaTeX{} vlastně
+používáme, získáme jen pečlivým pročtením logu po vygenerování
+formátu. Koncept, kdy vlastnosti formátu jsou závislé na obsahu
+nějakých dodatečných souborů v~distribuci v~době generování
+formátů, se mi nelíbí, ale nelze proti tomu nic dělat. Takto
+to navrhli tvůrci \LaTeX{}u a je to tedy jejich věc. Důsledek tohoto
+rozhodnutí je, že pokud řekneme: \uv{používám \LaTeX}, nikdy není
+zcela přesně řečeno, co se tím vlastně myslí. Tím se tento koncept
+diametrálně liší od Knuthova plainu nebo též \csplain{}u.
+
+Co se stane, pokud jsou například v~\TeX{}ové distribuci přítomny
+hned dva soubory {\tt hyphen.cfg}~-- jeden z~balíčku Babel a druhý
+z~balíčku \cslatex{}? Není-li taková situace v~distribuci řešena speciální
+konfigurací, není definováno, který z~těchto souborů se vlastně načte,
+a tudíž není dopředu známo, jaký vygenerujeme \LaTeX.
+
+V~novějších web2c distribucích \TeX{}u lze konfigurovat způsob
+prohledávání {\tt texmf} stromu podle názvu použitého programu nebo
+podle názvu použitého (resp. generovaného) formátu. Nejčastěji jsou
+tyto rozdílnosti konfigurovány v~souboru {\tt web2c/texmf.cnf}.
+Tam je (mimo jiné) řečeno:
+
+\begtt
+% cstex, from Petr Olsak
+TEXINPUTS.cslatex= .;$TEXMF/tex/{cslatex,csplain,latex,generic,}//
+TEXINPUTS.csplain= .;$TEXMF/tex/{csplain,plain,generic,}//
+TEXINPUTS.pdfcslatex= \
+ .;$TEXMF/{pdftex,tex}/{cslatex,csplain,latex,generic,}//
+TEXINPUTS.pdfcsplain= \
+ .;$TEXMF/{pdftex,cstex,tex}/{csplain,plain,generic,}//
+\endtt
+%
+což znamená, že pokud použijeme nebo generujeme formát \cslatex{}, pak se
+vstupní soubory přednostně čtou z~adresáře {\tt tex/cslatex} a {\tt
+tex/csplain} a teprve potom v~ostatních adresářích. Takže {\tt
+hyphen.cfg} a {\tt fonttext.cfg} si ini\TeX{} vezme přednostně
+z~adresáře {\tt tex/cslatex}. Při provozu \cslatex{}u pak bude stylový soubor
+{\tt czech.sty} nebo {\tt slovak.sty} při použití formátu \cslatex{}
+přečten z~adresáře {\tt tex/csplain} a nikoli z~adresáře
+{\tt tex/generic/babel}, kde se nalézá soubor stejného jména, ovšem
+pro balík Babel.
+
+Aby se hledací algoritmy přizpůsobily názvu generovaného formátu, je
+nutné tento formát při generování \cslatex{}u explicitně specifikovat na
+příkazový řádek. Nestačí tedy napsat:
+
+\begtt
+$ tex -ini cslatex.ini
+\endtt
+%
+ale musíme psát
+
+\begtt
+$ tex -ini -fmt cslatex cslatex.ini
+\endtt
+%
+Při provozu formátu pak stačí psát
+
+\begtt
+$ tex -fmt cslatex dokument
+\endtt
+%
+Ve web2c distribuci jsou k~babelizovanému \LaTeX{}u v~konfiguračním
+souboru {\tt web2c/texmf.cnf} uvedeny následující řádky:
+
+\begtt
+TEXINPUTS.latex = .;$TEXMF/tex/{latex,generic,}//
+TEXINPUTS.pdflatex = .;$TEXMF/{pdftex,tex}/{latex,generic,}//
+TEXINPUTS = .;$TEXMF/tex/{generic,}//
+\endtt
+%
+což znamená, že formát přednostně hledá vstupní soubory v~adresáři
+{\tt tex/generic} a tam je podadresář {\tt babel}. Dokonce je babel
+upřednostněn i v~případě, kdy neuvedeme na příkazové řádce
+žádný název formátu.
+
+S~uvedenou konfigurací je možné bezproblémové soužití babelizovaného
+\LaTeX{}u s~\cslatex{}em v~jediné distribuci. \cslatex{} pak obvykle voláme
+skriptem {\tt cslatex}, který provede {\tt tex -fmt cslatex}, zatímco
+babelizovaný \LaTeX{} voláme skriptem {\tt latex}, což spustí
+{\tt tex -fmt latex}.
+
+Pokud nelze ve vaší \TeX{}ové distribuci konfigurovat prohledávací
+algoritmy podle názvu formátu, pak je možné soužití babelizovaného
+\LaTeX{}u s~\cslatex{}em za předpokladu, že budete dodržovat
+následující zásady:
+
+\begitems
+* Babelizovaný \LaTeX{} vygenerujte v~době, kdy není v~distribuci
+přítomen \cslatex{}. Tak máte jistotu, že ini\TeX{} nenajde soubor
+{\tt hyphen.cfg} z~\cslatex{}u, ale z~balíku Babel.
+
+* \cslatex{} pak vygenerujte nad adresářem {\tt cslatex}.
+Aktuální adresář má totiž ve všech distribucích \TeX{}u přednost před
+ostatními adresáři v~{\tt texmf} stromu. Proto si ini\TeX{} přečte soubory
+{\tt fonttext.cfg} a {\tt hyphen.cfg} z~balíčku \cslatex{}.
+
+* Po instalaci \cslatex{}u do {\tt texmf} stromu je nutno ještě vymazat
+soubory
+
+\begtt
+tex/generic/babel/czech.sty
+tex/generic/babel/slovak.sty
+\endtt
+%
+protože soubory s~těmito názvy jsou v~{\tt texmf} stromu
+dvojmo. Přitom v~balíčku Babel je nikdy nevyužijete, pokud budete psát
+korektní záhlaví dokumentu pro babelizovaný \LaTeX{} (o~tom pojednám
+podrobněji v~následující sekci). Na druhé straně soubory
+{\tt czech.sty} a {\tt slovak.sty} z~\cslatex{}u budete potřebovat velmi
+často, takže tyto soubory nemažte.
+\enditems
+
+
+\subsub Záhlaví \LaTeX{}ového dokumentu | Zahlavi LaTeXoveho dokumentu
+%--------------------------------------
+
+Pokud používáte \cslatex{}, pak záhlaví dokumentu může mít tvar
+
+\begtt
+\documentclass{article}
+\usepackage{czech} % nebo \usepackage{slovak}
+... další příkazy záhlaví dokumentu
+\begin{document}
+...
+\end{document}
+\endtt
+
+Jestliže zapomenete na "\usepackage{czech}" nebo "\usepackage{slovak}",
+pak v~dokumentu nebudou fungovat akcentovaná písmena, nebude zapnuto
+české ani slovenské dělení slov a automaticky generované názvy
+(kapitoly, sekce, obrázky,~...) nebudou přeloženy do národního jazyka.
+V~tomto případě tedy \cslatex{} bude pracovat stejně jako vanilla \LaTeX{}.
+
+Pokud naopak používáte babelizovaný \LaTeX{}, pak záhlaví dokumentu
+může mít tvar
+
+\begtt
+\documentclass{article}
+\usepackage[czech]{babel} % nebo \usepackage[slovak]{babel}
+\usepackage[T1]{fontenc}
+\usepackage[kódování-vstupu]{inputenc}
+... další příkazy záhlaví dokumentu
+\begin{document}
+...
+\end{document}
+\endtt
+
+Všimněte si jiného způsobu volání stylového souboru "czech" nebo "slovak".
+V~tomto případě se slovo "czech" či "slovak" zapíše pouze jako volba balíčku
+"babel". Prakticky je to realizováno načtením souboru "czech.lfd" nebo
+"slovak.lfd". Pro fungování Babelu tedy není vůbec nutná existence
+souboru "czech.sty" nebo "slovak.sty". Tyto soubory v~balíčku Babel
+sice existují, ale jejich funkce spočívá pouze v~tom, že \uv{vynadají}
+uživateli za nesprávné použití příkazu "\usepackage" a dále načítají
+odpovídající "lfd" soubor.
+
+Volba "[czech]" nebo "[slovak]" v~balíčku Babel ještě nemusí zajistit
+přepnutí na odpovídající dělení slov. K~tomu je navíc potřeba, aby byl
+babelizovaný \LaTeX{} s~těmito vzory dělení už vygenerován.
+
+Na rozdíl od \cslatex{}u není v~babelizovaném \LaTeX{}u řešena
+synchronizace vstupního kódování dokumentu s~vnitřním kódováním
+\LaTeX{}u. \LaTeX{} implicitně pracuje s~vnitřním
+kódováním podle CM fontů (tzv.~"OT1"), což pro většinu jazyků není
+užitečné. Je tedy třeba při použití babelizovaného \LaTeX{}u přepnout
+do vnitřního kódování podle Corku (tzv.~"T1"), protože v~tomto
+kódování jsou načteny vzory dělení. Použijeme tedy balíček fontenc
+s~volbou "[T1]". Pak se automaticky použijí též fonty v~tomto kódování.
+Babelizovaný \LaTeX{} nepodporuje (na rozdíl od \cslatex{}u) žádné jiné
+vnitřní kódování vhodné pro češtinu nebo slovenštinu.
+
+Dále je potřeba v~babelizovaném \LaTeX{}u na vnitřní kódování "[T1]"
+navázat vstupní kódování dokumentu. Pokud například máte dokument
+napsán v~kódování ISO~8859-2, pak je potřeba použít balíček inputenc
+s~volbou "[latin2]". Pokud máte dokument v~kódování MS~Windows CP~1250,
+napište volbu "[cp1250]".
+
+
+\subsub Vlastnosti \cslatex{}u | Vlastnosti CSLaTeXu
+%--------------------------
+
+Uvedeme podrobně rozdíly mezi vanilla \LaTeX{}em a \cslatex{}em.
+
+Oba formáty deklarují vnitřní kódování CM fontů jako implicitní
+(tzv.~"OT1") a oba načítají ještě deklaraci kódování podle
+Corku (tzv.~"T1"). \cslatex{} navíc načítá deklaraci vnitřního kódování
+podle \CSfont{}ů (tzv.~"IL2").
+
+\cslatex{} má ve svém souboru "hyphen.cfg" u~příkazu "\DeclareLanguage"
+pro jazyky czech a slovak možnost použít kromě volby "IL2" ještě volbu
+"T1". V~novějších distribucích \cslatex{}u jsou již obě volby implicitně
+napsány. V~takovém případě se při generování formátu načtou vzory
+dělení češtiny a slovenštiny nejen v~kódování "IL2", ale
+také v~kódování "T1". \cslatex{} dále definuje mechanismy přepínání mezi
+těmito vzory dělení poté, co uživatel přepne vnitřní kódování
+z~"T1" na "IL2" nebo naopak standardními \LaTeX{}ovými prostředky.
+Kvůli tomu je v~\cslatex{}u předefinováno interní makro \LaTeX{}u
+"\DeclareFontEncoding", protože vanilla \LaTeX{} nepředpokládá,
+že je po přepnutí kódování nutné přepnout i vzory dělení slov.
+
+V~\cslatex{}u je navíc definováno makro "\splithyphens" a
+"\standardhyphens". Po použití makra "\splithyphens" se
+nastaví znak~"-" jako aktivní a funguje podobně jako
+"\discretionary{-}{-}{-}". Znamená to, že slova jako
+\uv{je-li} se rozdělí správně česky: \uv{je-/-li}. Spojovník se
+opakuje na následujícím řádku. Makro navíc složitě ošetřuje výskyt
+"--" a "---", který tiskne \uv{normálně} jako za sebou následující
+znaky s~kódem~45, které se promění v~ligaturu pomlčky nebo dlouhé
+pomlčky. Makro "\standardhyphens" dává vše do původního stavu,
+tj. po jeho použití znak~"-" není aktivní. (Uživatelé \csplain{}u mohou
+pro tyto potřeby použít makro podle~\cit{tbn} na straně~217.)
+
+Příkaz "cslatex" musí také zajistit konverzi z~kódování
+češtiny/slovenštiny obvyklé v~použitém systému do vnitřního
+kódování ISO~8859-2 alias~"IL2".
+Ve web2c distribuci \TeX{}u je proto ve skriptu
+"cslatex" resp.~dávce "cslatex.bat" použit přepínač
+"-default-translate-file". Pro systémy MS~Windows je vedle tohoto
+přepínače použita hodnota "cp1250cs", zatímco pro UNIXové systémy se
+používá hodnota "il2-cs", což nastavuje konverzi \uv{jedna ku jedné}.
+V~jiných distribucích se musí implementovat konverze na úrovni
+vstupního procesoru \TeX{}u způsobem závislým na použité
+distribuci. Například v~em\TeX{}u je možné použít TCP tabulky.
+
+
+\subsub Vlastnosti stylových souborů {\tt czech.sty} a {\tt slovak.sty} |
+%--------------------------------------------------------------
+ Vlastnosti stylovych souboru
+
+V~této sekci budu z~důvodu stručnosti mluvit o~češtině a souboru
+"czech.sty", ale to samé samozřejmě platí i pro slovenštinu a stylový
+soubor "slovak.sty".
+
+Načtení souboru "czech.sty" z~\cslatex{}u pomocí
+"\usepackage{czech}" způsobí následující změny:
+
+\begitems
+* Nastaví se vnitřní kódování \LaTeX{}u na "IL2", takže se
+ implicitně použijí \CSfont{}y.
+* Inicializuje se české dělení slov v~kódování "IL2".
+* Mezerování se nastaví na "\frenchspacing", tj. rovnoměrné mezerování
+ mezi slovy i za tečkami.
+* Nastaví se české názvy pro jména \uv{Kapitola}, \uv{Obsah} atd.
+ Viz následující tabulka.
+* Makro "\today" expanduje na český datum.
+* Definují se makra "\clqq" a "\crqq" pro dvojité české uvozovky,
+ a to i jejich nouzová varianta pro případ, kdy není použito
+ kódování "IL2". Definují se též makra
+ "\clq" a "\crq" pro jednoduché české uvozovky.
+* Definuje se makro "\uv" jako "\def\uv#1{\clqq#1\crqq}".
+* Definují se přepínače "\csprimeson" a "\csprimesoff" (popis viz níže).
+\enditems
+
+Tabulka automaticky generovaných slov \LaTeX{}u, která jsou změněna po
+načtení "czech.sty" na české názvy:
+
+\begtt
+Původní název czech.sty slovak.sty
+-------------------------------------------------------------
+Preface Předmluva Predhovor
+References Reference Literatúra
+Abstract Abstrakt Abstrakt
+Bibliography Literatura Literatúra
+Chapter Kapitola Kapitola
+Appendix Příloha Dodatok
+Contents Obsah Obsah
+List of Figures Seznam obrázků Zoznam obrázkov
+List of Tables Seznam tabulek Zoznam tabuliek
+Index Rejstřík Register
+Figure Obrázek Obr.
+Table Tabulka Tabuľka
+Part Část Časť
+encl Příloha Príloha
+cc Na vědomí cc.
+To Komu Pre
+Page Strana Str.
+see viz viď
+see also viz také viď tiež
+\endtt
+
+Kromě toho styl "czech.sty" akceptuje následující volby:
+
+\bgroup\medskip\leftskip=\parindent \parindent=0pt
+"T1" místo implicitního vnitřního kódování \LaTeX{}u~"IL2"
+ se použije kódování "T1".
+
+"IL2" nemusíte psát, je to implicitní volba.
+
+"OT1" použije se vnitřní kódování podle CM fontů. Pak samozřejmě
+ nefunguje dělení slov češtiny a slovenštiny.
+
+"split" zapne "\splithyphens".
+
+"nocaptions" výstup makra "\today" a automaticky generovaná slova zůstanou
+ v~angličtině.
+
+"olduv" použije se stará definice makra "\uv", která umožňuje
+ použít v~argumentu verbatim konstrukce.
+%"primeson" zapne "\csprimeson". V současné verzi "czech.sty" není
+% tato volba implementována, ale počítáme s ní do budoucí verze.
+\medskip\par\egroup
+
+Například "\usepackage[split,olduv]{czech}" zapne navíc zdvojování
+spojovníku při rozdělení a definuje makro "\uv" tak, že jsou možné
+verbatim konstrukce uvnitř argumentu.
+
+Nyní vysvětlím vlastnosti přepínačů "\csprimeson" a "\csprimesoff".
+Po po\-užití příkazu "\csprimeson" jsou přiděleny znakům
+\uv{"`"} a \uv{"'"} aktivní
+kategorie, aby "``takto po anglicku''" zapsané uvozovky se převedly na
+\uv{takové} uvozovky. Rovněž "`jednoduché'" anglické uvozovky
+jsou pak vytištěny ,jednoduše`. Makro "\csprimesoff" vrací vše do
+původního stavu, kdy jsou uvedené znaky neaktivní. Po načtení
+"czech.sty" je implicitně nastaveno "\csprimesoff".
+
+Uvedený popis chování stylového souboru "czech.sty" se týká jen
+případu, kdy je tento stylový soubor načten z~\cslatex{}u. Pokud je
+načten z~babelizovaného \LaTeX{}u, pak se provede "\input czech.lfd",
+takže veškeré definice \uv{češtiny} jsou v~režii balíku Babel. Tam
+například vůbec není definováno makro "\uv". Pokud je "czech.sty"
+načten z~\csplain{}u, pak se provede "\chyph", definuje se "\csprimeson",
+"\csprimesof" a makro "\today" expanduje na datum po česku. Je-li
+načten "czech.sty" z~originálního plainu, pak se provede totéž jen
+s~tím rozdílem, že místo "\chyph" se objeví na terminálu varování
+o~nemožnosti přepnout na české vzory dělení.
+
+
+\subsub PostScriptové fonty v~\cslatex{}u | PostScriptove fonty v CSLaTeXu
+%-------------------------------------
+
+Při práci s~PostScriptovými fonty v~\cslatex{}u stačí použít standardní
+nástroje NFSS. Například pro zapnutí do fontů rodiny Times~Roman stačí
+napsat do záhlaví dokumentu "\usepackage{times}". Protože \cslatex{} při
+"\usepackage{czech}" implicitně pracuje
+s~vnitřním kódováním podle ISO~8859-2, použijí se v~tomto případě
+virtuální fonty z~balíčku "cspsfonts.tar.gz". Z~toho důvodu jsou
+v~balíčku \cslatex{}u přítomny potřebné "fd" soubory. Následující tabulka
+ukazuje parametry příkazu "\usepackage" pro rodiny fontů ze
+standardní skupiny 35~PostScriptových fontů.
+
+\begtt
+Rodina fontů parametr
+--------------------------
+Avantgarde Book avant
+Bookman bookman
+Helvetica helvet
+New Century newcent
+Palatino palatino
+Times Roman times
+\endtt
+
+
+\subsub Použití fontů kódovaných podle Corku (T1 kódování) v~\cslatex{}u |
+%--------------------------------------------------------------------
+ Pouziti fontu kodovanych podle Corku v CSLaTeXu
+
+Máte-li vzory dělení v~\cslatex{}u načteny i pro kódování T1
+(viz příkaz "\DeclareLanguage" v souboru "hyphen.cfg"), pak můžete
+místo implicitního vnitřního kódování "IL2" použít kódování "T1".
+V~takovém případě se automaticky použijí místo \CSfont{}ů fonty kódované
+podle Corku. Vnitřní kódování "T1" inicializujete zápisem:
+
+\begtt
+\usepackage[T1]{czech} % nebo \usepackage[T1]{slovak}
+\endtt
+
+Protože ale input procesor \TeX{}u při použití příkazu "cslatex"
+konvertuje vstupní kódování dokumentu na ISO~8859-2, je v~tomto
+případě nutné navázat na to další konverzí pomocí balíčku inputenc takto:
+
+\begtt
+\usepackage[latin2]{inputenc}
+\endtt
+
+Zde je potřeba vždy psát "[latin2]", ať je vstupní kódování dokumentu
+jakékoli, protože vstupní procesor \TeX{}u nám toto kódování převedl
+na ISO~8859-2.
+
+Po zapnutí vnitřního kódování na "T1" lze použít PostScriptové fonty
+stejným způsobem jako předtím (například "\usepackage{times}"). Nyní
+se ale použijí metriky dodávané v~mezinárodních distribucích \TeX{}u a
+kódované podle Corku.
+
+
+\subsub pdf\TeX{} + \cslatex{} = pdf\cslatex{} |
+%---------------------------------------
+ pdfTeX + CSLaTeX = pdfCSLaTeX
+
+V~případě spojení \cslatex{}u s~pdf\TeX{}em platí vše naprosto stejně,
+jako bylo řečeno v~sekci \uv{pdf\TeX + \csplain{} = pdf\csplain{}}.
+Nahraďte v~této sekci slovo \csplain{} slovem \cslatex{} a slovo
+pdf\csplain{} slovem pdf\cslatex{} a přečtěte si tuto sekci ještě jednou.
+
+
+\subsub Historie a budoucnost \cslatex{}u | Historie a budoucnost CSLaTeXu
+%-------------------------------------
+
+\cslatex{} vytvořil zhruba v~roce 1992 Jiří Zlatuška. Od něj pochází
+myšlenka načtení vzorů dělení stejného jazyka v~různých kódováních a
+předefinování vnitřního \LaTeX{}ového makra "\DeclareFontEncoding".
+Na své implementaci \TeX{}u tehdy provozoval mimo jiné fonty
+kódované v~KOI-8, takže přepínání vnitřního kódování \LaTeX{}u si
+vlastně udělal pro svoje potřeby.
+Jiří Zlatuška je také autorem maker "\splithyphens" a
+"\standardhyphens". Veškerá makra napsal dobře
+dokumentovaná pro použití v~systému docstrip. Svou práci zveřejnil pod
+licencí GPL mimo jiné podle jeho slov proto, že pokud to bude někoho
+zajímat, tak to může dále udržovat a zvelebovat podle svých vlastních
+představ. On sám se kvůli své zaneprázněnosti v~jiné oblasti
+tímto problémem později zřejmě nezabýval.
+
+Po schůzce tvůrců \CSTeX{}u v~roce 1993 převzal starost o~\cslatex{}
+podle dohody Zdeněk Wagner, který vytvořil definice kódování
+"IL2". Vytvořil také pro \cslatex{} definiční soubory "fd" jednak
+pro \CSfont{}y a jednak pro PostScriptové fonty z~balíčku
+"cspsfonts.tar.gz". Od něj také pochází implementace \cslatex{}u pro
+\LaTeX{}~2.09. V~em\TeX{}ové distribuci \CSTeX{}u je stále tato
+implementace obsažena (pod označením latex209).
+
+Soubor "czech.sty" má asi podstatně delší historii než \cslatex{}. Pochází
+z~dílny Olina Ulricha. který se zřejmě inspiroval podobným stylovým
+souborem pro německý jazyk. Olin rovněž vytvořil makra "\csprimeson" a
+"\csprimesoff". Zdeněk Wagner pak převzal Olinův stylový soubor
+a upravil jej pro provoz v~\cslatex{}u. Slovenskou část včetně vzorů
+dělení slov vytvořila Janka Chlebíková. Soubor "slovak.sty" je
+přesnou kopií souboru "czech.sty" s~výjimkou slovensky
+špecifických částí.
+
+V~duchu licence GPL převzal zhruba v~roce 1997 údržbu \cslatex{}u
+Jaroslav \hbox{Šnajdr}. Udělal několik úprav stylových souborů "czech.sty" a
+"slovak.sty" včetně přechodu na novou definici uvozovek, uvnitř
+jejichž argumentu nefungují verbatim konstrukce. Tím kuriózně
+způsobil, že \cslatex{}em od této doby nejde bez chyb formátovat český
+překlad úvodu do \LaTeX{}u, který je pod názvem balíčku
+"csuvodlat.tar.gz" součástí dokumentace \CSTeX{}u. Je to názorná
+ukázka toho, co může způsobit změna kódu, která nerespektuje zpětnou
+kompatibilitu. Pan Šnajdr rovněž napsal "html" dokumentaci
+k~\cslatex{}u, která popisuje instalaci \cslatex{}u ze zdrojových souborů
+použitím docstripu. Použijete-li ale balíček "cslatex.tar.gz",
+pak nemusíte docstrip aplikovat, protože vedle zdrojových souborů
+jsou tam už přítomny i všechny soubory, které vznikají po aplikaci
+docstripu.
+
+Já osobně jsem o~\LaTeX{} a tím pádem \cslatex{} jevil od začátku
+malý zájem, protože celý projekt je závislý na \LaTeX{}u samotném.
+Nemám tedy jistotu, jaké změny v~něm současný \LaTeX{}-team udělá a jaké
+budou existovat do budoucna potíže se zpětnou kompatibilitou. To je
+zásadní odlišnost od Knuthova plainu a \TeX{}u samotného.
+Raději jsem se tedy do \LaTeX{}ových věcí nemíchal.
+
+V~roce 1999 jsem nicméně přidal pár řádek maker do souboru
+"czhyphen.tex" tak, aby byl použitelný v~babelizovaném \LaTeX{}u.
+Do té doby totiž tato větev \LaTeX{}u používala Lhotkovy
+vzory dělení, zatímco v~\cslatex{}u jsme už dávno měli daleko
+kvalitnější Ševečkovy vzory dělení. Tyto novější vzory dělení jsou
+totiž napsány za použití \TeX{}ových sekvencí, což je sice nezávislé
+na kódování češtiny, ale balíček Babel to implicitně nedokáže strávit
+a očekává vzory dělení v~kódování "T1". Upravený soubor jsem
+nazval Babelovsky: "czhyph.tex", zatímco v~\CSTeX{}u zůstává původní
+soubor "czhyphen.tex". Sjednocení názvů těchto souborů by stejně
+nevyřešilo nejednotnost vývoje \cslatex{}u a babelizovaného \LaTeX{}u.
+
+Na výborové schůzi v~roce 1999 jsem dostal za úkol prověřit
+možnost spojení babelizovaného \LaTeX{}u s~\cslatex{}em. Neustálé
+dotazy začínajících uživatelů, kteří si pletou tyto dva \LaTeX{}y, nás
+utvrzují v~tom, že by se pro sloučení mělo něco udělat.
+
+Analyzoval jsem proto makra Babelu a udělal návrh na možné zapracování
+funkcionality \cslatex{}u do Babelu. Domnívám se, že \cslatex{} klidně
+může přestat existovat, ale babelizovaný \LaTeX{} musí bezpodmínečně
+převzít všechny vlastnosti \cslatex{}u tak, aby dokumenty dříve
+zpracovávané \cslatex{}em byly naprosto stejně a bez jediné úpravy
+zpracované novým babelizovaným \LaTeX{}em. Kvůli tomuto požadavku
+musí babelizovaný \LaTeX{} umět načítat vzory dělení stejného jazyka
+ve více kódováních, jako to nyní dělá \cslatex{}. Dospěl jsem
+k~závěru, že čistým řešením tohoto problému je jedině zásah do jádra
+\LaTeX{}u samotného, aby dokázal při změně kódování fontů přepnout
+automaticky i vzory dělení. Zlatuška kvůli tomu předefinoval makro
+jádra \LaTeX{}u "\DeclareFontEncoding". Tato záplata, či jinak řečeno
+odmítnutí původního kódu tohoto makra, je na úrovni Babelu podle mého
+názoru velmi nečisté řešení. Skutečnost, že přepínání vzorů dělení při
+přepnutí kódování fontů \LaTeX{}ové jádro neřeší, považuji totiž za
+chybu \LaTeX{}u. V~roce 1999 jsem tedy požádal \LaTeX{}-team, aby
+zapracoval změnu v~duchu Zlatuškova návrhu do \LaTeX{}ového jádra.
+Můj návrh nebyl \LaTeX{}-teamem akceptován. Za těchto
+okolností nejsem schopen zapracovat funkcionalitu \cslatex{}u do
+Babelu, protože to prostě nejde. Uživatelé \LaTeX{}u se budou muset
+nadále potýkat s~tím, že jejich oblíbený formát trpí určitou
+schizofrenií.
+
+Společně se sloučením \cslatex{}u s~Babelem jsem připravoval zásadní
+revizi stylů "czech.sty" a "slovak.sty" -- v~podstatě jsem měl
+v~úmyslu jejich totální přepsání. Tyto stylové soubory obsahují
+množství reliktů z~dob minulých, plno zcela nepoužívaných větví ve
+složitém větvení pomocí "\if" a stávají se totálně nepřehlednými.
+Protože ale ke sloučení \cslatex{}u s~Babelem nakonec nedošlo, upustil
+jsem zatím od plánu pracovat na těch stylových souborech.
+Není ale vyloučeno, že k~tomu dojde v~budoucnosti. V~takovém případě
+počítám s~tím, že makra "\splithyphens" a "\standardhyphens"
+přesunu z~formátu do stylového souboru, kam přirozeně patří.
+Dokumenty, které tato makra používají, a přitom nemají v~záhlaví
+"\usepackage{czech}" ani "\usepackage{slovak}", pak nebudou fungovat.
+Předpokládám, že takových dokumentů není mnoho, protože \cslatex{} a
+stylové soubory jsou většinou používány současně.
+
+Protože pan Šnajdr se přestal \cslatex{}em zabývat, byl jsem nucen
+v~roce 2002 zanést do stylových souborů jednu opravu podle požadavku
+pana Kubena. Neznamená to ale, že bych se ujal iniciativy nad \cslatex{}em.
+Jak jsem už vysvětlil, jsem ochoten převzít iniciativu jen tehdy,
+když bude \LaTeX{}ové jádro umět přepínat mezi různě kódovanými
+vzory dělení stejného jazyka. Přitom členové \LaTeX{}-teamu jsou toho
+názoru, že to možná bude zapracováno až do \LaTeX{}u~3.
+
+\reference
+
+\bib cstex
+WWW stránka \CSTeX{}u {\tt http://petr.olsak.net/cstex/}.
+
+\bib cstex
+WWW stránka \csplain{}u {\tt http://petr.olsak.net/csplain.html}.
+
+\bib cstex
+WWW stránka makra OPmac {\tt http://petr.olsak.net/opmac.html}.
+
+
+\bib texbook
+Donald Knuth. {\it The \TeX{}book}. Addison Wesley Publishing Company.
+Eleventh printing, revised, May 1991,
+ISBN 0-201-13447-0
+
+\bib tst
+Petr Olšák. {\it Typografický systém \TeX}. Konvoj, Brno~2000,
+ISBN~80-85615-91-6
+
+\bib tbn
+Petr Olšák. {\it \TeX{}book naruby}. Konvoj, Brno~2001,
+ISBN~80-7302-007-6.
+
+\bib prvni
+Petr Olšák. {\it První setkání s~\TeX{}em}. Volně šířený dokument ve
+formátech "tex", "ps", "pdf" na
+\url{ftp://math.feld.cvut.cz/pub/cstex/doc/prvni.*}, 22~stran.
+
+\bib putovani
+Petr Olšák. {\it Putování písmene ř z klávesy na papír}.
+Zpravodaj \CS{}TUGu, 3/1997, strany 109--118.
+
+\bib enctex
+Petr Olšák. {\it Rozšíření \TeX{}u enc\TeX}. Rozšíření ve formě
+změnového souboru k~"tex.web" je volně šířeno na
+\url{ftp://math.feld.cvut.cz/pub/olsak/enctex/}.
+
+\bib a2ac
+Petr Olšák. {\it Program {\tt a2ac}}. Program včetně zdrojových kódů
+v jazyce~C je volně šířen na
+\url{ftp://math.feld.cvut.cz/pub/olsak/a2ac/}.
+
+\bib cstrip
+Petr Olšák. {\it Test {\tt cstrip}}. Test je nepovinnou součástí
+\CSTeX{}u. Je volně šířen na
+\url{ftp://math.feld.cvut.cz/pub/cstex/base/cstrip.tar.gz}.
+
+\bib OFS
+Petr Olšák. {\it Makro OFS}. \TeX{}ové makro OFS pro práci s
+rozsáhlými kolekcemi fontů je volně šířeno na
+\url{ftp://math.feld.cvut.cz/pub/olsak/ofs/}.
+
+\bye
+
+
diff --git a/Master/texmf-dist/doc/cstex/jemny.errata b/Master/texmf-dist/doc/cstex/jemny.errata
new file mode 100644
index 00000000000..44d393bc47e
--- /dev/null
+++ b/Master/texmf-dist/doc/cstex/jemny.errata
@@ -0,0 +1,15 @@
+
+ ERRATA dokumentu "Jemny uvod do TeXu" (cesky preklad)
+ =====================================================
+
+Protoze vystavovany dokument zatim nechavame v podobe, jak byl
+publikovan v roce 1993, nejsou v nem opraveny nektere nasledujici
+veci.
+
+Znaceni: strana_pocet-radku-zdola nebo strana^pocet-radku-shora.
+
+v_17: Cestina a slovenstina v CSTeXu -> Preplnene a nenaplnene ramecky
+38_10: 1 pica (cc) -> 1 cicero (cc)
+
+
+
diff --git a/Master/texmf-dist/doc/cstex/jemny.pdf b/Master/texmf-dist/doc/cstex/jemny.pdf
new file mode 100644
index 00000000000..6cea9b34024
--- /dev/null
+++ b/Master/texmf-dist/doc/cstex/jemny.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/cstex/jemny.tar.gz b/Master/texmf-dist/doc/cstex/jemny.tar.gz
new file mode 100644
index 00000000000..bdd1ff8f812
--- /dev/null
+++ b/Master/texmf-dist/doc/cstex/jemny.tar.gz
Binary files differ
diff --git a/Master/texmf-dist/doc/cstex/lic-gpl.eng b/Master/texmf-dist/doc/cstex/lic-gpl.eng
new file mode 100644
index 00000000000..60549be514a
--- /dev/null
+++ b/Master/texmf-dist/doc/cstex/lic-gpl.eng
@@ -0,0 +1,340 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) 19yy <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) 19yy name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/Master/texmf-dist/doc/cstex/opmac-d.pdf b/Master/texmf-dist/doc/cstex/opmac-d.pdf
new file mode 100644
index 00000000000..3c591cee1fa
--- /dev/null
+++ b/Master/texmf-dist/doc/cstex/opmac-d.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/cstex/opmac-d.tex b/Master/texmf-dist/doc/cstex/opmac-d.tex
new file mode 100644
index 00000000000..95d241e0f0a
--- /dev/null
+++ b/Master/texmf-dist/doc/cstex/opmac-d.tex
@@ -0,0 +1,2170 @@
+%% OPmac -- Olsak's PlainTeX macros
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Tech-documentation, Petr Olsak, 2012
+
+\input utf8off \clearmubyte
+
+% This file is encoded in ISO-8859-2 because
+% UTF-8 encTeX has a conflict with DocByTeX
+
+\def\projectversion{Dec. 2012}
+\def\headtitle{OPmac}
+
+\widowpenalty=10000
+\clubpenalty=10000
+
+\emergencystretch=2em
+\hbadness=2200
+
+\showboxbreadth=1500 \showboxdepth=2
+
+\def\csplain{\CS plain}
+\def\CS{CS}
+
+\input docby.tex
+
+\setlinecomment{\percent} \noactive{\nb\percent} \noactive{\percent\cbrace}
+\noactive{\nb fontdimen}
+
+\title OPmac -- roziujc makra plain\TeX{}u
+
+\author Petr Olk
+
+\centerline{\ulink[http://www.olsak.net/opmac.html]%
+ {www.olsak.net/opmac.html}}
+
+\def\db{\dg\nb}
+\def\du#1{\api{\nb#1}}
+\let\quotehook=\langleactive
+\def\insdef#1 {\ifirst{docby.tex}{def\nb#1 }{^^B\cbrace}{++}}
+\def\inssdef#1 {\ifirst{docby.tex}{def\nb#1}{\empty}{+-}}
+\bgroup
+ \catcode`\[=1 \catcode`]=2 \catcode`\{=12 \catcode`\}=12
+ \gdef\obrace[{] \gdef\cbrace[}]
+\egroup
+\def\indexhook{%
+% Kontroln sekvence oznaen ipkou ($\succ$) jsou
+% uivatelskmi pkazy. Ostatn kontroln sekvence jsou
+% v~OPmac intern.
+ Tun je oznaena strana, kde je slovo
+ dokumentovno, pak nsleduje seznam vech stran, na kterch se slovo
+ vyskytuje.
+% Uivatelsk pkazy maj v seznamu strnek podtren slo,
+% co je strnka, kde je pkaz vyloen na uivatelsk rovni.
+ \medskip}
+\def\nn#1 {\noactive{\nb#1}} \nn insert \nn undefined
+
+\def\cnvbookmark#1{\lowercase{\lowercase{#1}}}
+\def\bookmarkshook{\lo e \lo s \lo c \lo r \lo z \lo y
+ \lo a \lo i \lo e \lo u \lo u \lo o \lo n }
+\def\lo #1#2{\lccode`#1=`#2}
+
+
+\dotoc \bookmarks
+
+\sec vod
+%%%%%%%%%
+
+OPmac je balk jednoduchch doplujcch maker k plain\TeX{}u umoujc
+uivatelm zkladn La\TeX{}ovou funkcionalitu: zmny velikosti psma,
+automatickou tvorbu obsahu a rejstku, prci s {\tt bib} databzemi,
+referencemi, monost proloen referenc hyperlinkovmi odkazy atd.
+
+
+\sec Uivatelsk dokumentace
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Uivatelsk dokumentace je zatm v souboru "opmac-u.tex" a "opmac-u.pdf".
+Do tohoto msta ji zahrnu pozdji a prolinkuji ji s technickou dokumentac.
+
+
+\sec Technick dokumentace
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Tato st dokumentace je urena pro tvrce maker, kte se chtj zde
+uvedenmi makry inspirovat a ppadn je pizpsobit svmu poadavku.
+Pedpokld se znalost \TeX{}u, tj. napklad aspo zbn orientace
+v~\TeX{}booku naruby. Na tuto knihu je na mnoha mstech odkazovno pod
+zkratkou TBN.
+
+
+\subsec Zkladn makra
+%%%%%%%%%%%%%%%%%%%%%%
+
+Na zatku souboru "opmac.tex" zjistme, zda nen soubor ten podruh. V
+takovm ppad ten odmtneme. Ptme se na to, zda je definovno makro \db
+OPmacversion, kter vzpt definujeme. Je-li nkdo pekvapen, pro jsem
+nepouil "\expandafter\endpinput\fi", me si prostudovat TBN, stranu~358,
+heslo "\endinput".
+
+\ifirst {opmac.tex}{OPmacversion}{\empty}{+-}
+
+Dva pracovn registry:
+\dgn \nb tmpnum
+\dgn \nb tmpdim
+
+\inext {newcount}{\empty}{+-}
+
+OPmac nebude nikdy hlsit chyby. asto ale bude pst pomoc \db opwarning
+na terminl varovn.
+
+\inext {warning}{\empty}{+-}
+
+Makro \db addto "<makro>{<tokeny>}" pid na konec "<makra>" dan "<tokeny>".
+
+\inext {addto}{\empty}{+-}
+
+V OPmac budeme pracovat se seznamem \db protectlist, kter bude obsahovat
+makra, je chceme mt tzv. robustn, tj. chceme, aby se pi "\write" v output
+rutin neexpandovala. Kadmu makru v~seznamu pedchz "\doprotect", take
+seznam "\protectlist" vypad takto:
+
+\def\begtthook{\langleactive}
+\begtt
+\doprotect<makro1> \doprotect<makro2> ...
+\endtt
+
+\def\begtthook{}
+Seznam budeme spoutt v output rutin s tm, e "\doprotect" tam bude mt
+vznam makra, kter zad, aby jeho parametr zskal vznam "\relax".
+Tm bude zabrnno jeho expanzi.
+Naprogramujeme \db addprotect "<makro>", kter zad vloen "<makra>" do seznamu.
+
+\inext {protectlist}{\empty}{+-}
+
+Nkter makra budou fungovat jen v pdf\TeX{}u pi nastavenm "\pdfoutput=1".
+Pipravme si tedy test \db ifpdftex, kter pak pouijeme pi ten souboru
+"opmac.tex". Test nikdy nebudeme vkldat do maker, take pi ten souboru
+"opmac.tex" u mus bt jasn, zda bude vstup smrovn do DVI nebo PDF.
+Pozdj zmna "\pdfoutput" me zpsobit pote.
+
+\inext {ifpdftex}{\empty}{+-}
+
+Makra \db sdef a \db sxdef umouj pohodln definovat kontroln sekvence
+ohranien pomoc "\csname...\endcsname".
+
+\inext {sdef}{\empty}{+-}
+
+Makro \db adef umon nastavit znak na aktivn a rovnou ho definovat, co
+normln uvnit maker nen jednoduch (TBN str. 25 a 26).
+Vyuijeme toho, e "~" je aktivn znak a pomoc
+"\lccode" a "\lowercase" jej pepeme na poadovan znak. Dostaneme tm
+aktivn token s poadovanou ASCII hodnotou a tento token definujeme.
+Pomoc \db lccodetiezero vrtme po piazen (tj. po proveden definice)
+"\lccode" vlnky na pvodn hodnotu.
+
+\inext {adef}{\empty}{+-}
+
+Makrem \db isdefined "{<jmno>}\iftrue" se ptme, zda je definovan
+"\csname<jmno>\endcsname". To zvren pipojen "\iftrue" makro seere,
+ale uivatel ho pe zejmna z toho dvodu, aby mu tato konstrukce fungovala
+uvnit vnoench "\if..\fi"
+
+\inext {isdefined}{^^B\cbrace}{++}
+
+Makro \db isinlist "<list>{<tokeny>}\iftrue" zjist, zda "<tokeny>" jsou
+(jako string) obsaeny v~makru "<list>". Pitom seere "\iftrue" ze stejnch
+dvod, jak je uvedeno ped chvl.
+
+\inext {isinlist}{^^B\cbrace}{++}
+
+Makro \db isnextchar "<znak>{<co dlat pi ano>}{<co dlat pi ne>}"
+pracuje ponkud odlin od pedchozch maker. Zjist, zda nsledujc znak
+je "<znak>" a pokud ano, vykon vnitek prvn zvorky, jinak vykon vnitek
+druh zvorky. Pomoc "\futurelet" ulo zkouman znak do "\next" a spust
+\db isnextcharA.
+
+\inext {isnextchar}{\empty}{+-}
+
+Pedefinujeme makro \db uv z \csplain{}u. Tam je toto makro navreno tak, aby
+mohlo mt za svj parametr verbatim text. Dsledkem toho nefunguje sprvn
+kerning. Povauji za lep mt sprvn kerning a ppadn uvozovn verbatim
+text eit teba pomoc "\clqq...\crqq".
+
+\inext {def\nb uv}{}{+-}
+
+Knuth v souboru "plain.tex" zanechal dic sekvenci "\\" v provizornm stavu
+(cvien: podvejte se v jakm). Domnvm se, e je lep ji dt jednoznan
+vznam "\undefined". Nkterm uivatelm toti me OPmac pipomnat
+La\TeX{} a nen tedy vyloueno, e je napadne pst "\\". Mli by na to
+dostat jednoznanou odpov: {\tt undefined control sequence}.
+
+\inext {undefined}{}{+-}
+
+Do pracovnho souboru urenho k novmu naten budeme chtt vloit
+komente za znakem procento. K tomu potebujeme mt procento jako obyejn
+znak kategorie 12. Na tento znak se v naem kdu peklop otaznk, Take
+\db percent expanduje na znak procento s kategori 12.
+
+\inext {percent}{}{+-}
+
+Makro plain\TeX{}u "\,"
+funguje jen v matematick sazb. Uivatel bude chtt makro asto
+pout napklad mezi slem a jednotkou v textovm mdu: "5\,mm", take
+makro pedefinujeme.
+
+\inext {kern}{}{+-}
+
+
+\subsec Globln parametry
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Zakeme vdovy a sirotky a dle nastavme registry pro listingy tiskovho
+materilu na smysluplnj hodnoty, ne jsou implicitn.
+
+\inext {widowpenalty}{\empty}{+-}
+
+Nsledujc makra a registry ovlivn chovn klovch maker OPmac zpsobem,
+jak je popsno v~komentch. Mnoh z tchto maker a registr byly zmnny v
+uivatelsk dokumentaci.
+\dgn \nb iindent
+\dgn \nb ttindent
+\dgn \nb ttskip
+\dgn \nb ttpenalty
+\dgn \nb tthook
+\dgn \nb intthook
+\dgn \nb iiskip
+\dgn \nb bibskip
+\dgn \nb tabstrut
+\dgn \nb tabiteml
+\dgn \nb tabitemr
+\dgn \nb vvkern
+\dgn \nb hhkern
+\dgn \nb multiskip
+\dgn \nb colsep
+\dgn \nb mnoteindent
+\dgn \nb mnotesize
+\dgn \nb picdir
+\dgn \nb bibtexhook
+\dgn \nb chaphook
+\dgn \nb sechook
+\dgn \nb secchook
+\dgn \nb cnvhook
+\dgn \nb pghook
+
+\inext {newdimen}{\count=7 \empty}{+-}
+
+
+
+\subsec Loga
+%%%%%%%%%%%%
+
+V logu \db OPmac je pomoc "\thefontscale" zvteno psmeno O. Logo \db CS je
+pepsno beze zmny z CS\TeX{}u. Tm snadno vytvome i logo \db csplain.
+
+\inext {def\nb OPmac}{\empty}{+-}
+
+Troufm si tvrdit, e logo \db LaTeX (akoli je plain\TeX{}ist asi moc
+nebudou potebovat) je v~nsledujcm kdu daleko lpe eeno, ne v
+samotnm La\TeX{}u. Pot toti ve spoluprci s makrem \db slantcorr
+i se sklonem psma pi usazovn zmenenho A.
+
+\inext {LaTeX}{\empty}{+-}
+
+Loga se obas mohou vyskytnout v nadpisech. Zabezpeme je tedy proti
+rozboen pi zpisu do REF souboru.
+
+\inext {addprotect}{\empty}{+-}
+
+
+\subsec Velikosti font, dkovn
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\csplain{} od verze "<Nov. 2012>" definuje makro
+\db resizefont "<fontselector>", kter zmn
+velikost fontu danho svm pepnaem a tento zmnn font si ponech
+stejn pepna. Zmna velikosti je dna obsahem makra \db sizespec.
+Tam me bt napklad napsno "at13pt" nebo "scaled800".
+Dle CSplain definuje makro
+\db resizeall, kter zmn velikost
+font s registrovanmi pepnai. Registrovn se provd makrem
+\db regfont. Implicitn jsou registrovny pepnae
+ "\tenrm", "\tenit", "\tenbf", "\tenbi", a "\tentt".
+Do novch velikost tedy pjdeme se starmi nzvy pepna
+"\ten<nco>" a to slovo "ten" budeme chpat jen jako historick relikt,
+kter nm ovem napov, e kontroln sekvence je fontovm pepnaem.
+
+OPmac si zjist, zda je definovan "\regfont". Pokud ne, upozorn na starou
+verzi \csplain{}u na terminlu a potebn makra si definuje. Je to kopie
+kdu ze souboru "csfontsm.tex" z balku \csplain{}.
+
+\inext {regfont}{\empty}{+-}
+
+Implicitn jsou zavedeny \CS{}fonty, take k nim pidme AMS fonty z
+"ams-math.tex", kter vizuln odpovdaj. Pozdji si me uivatel zavst
+jin makro (nap. "tx-math.tex") a zavede si teba i jin textov fonty. To nezmn
+vlastnosti maker v OPmac, pokud nov soubory maker sprvn pedefinuj
+makra "\setmathsizes[<text>/<script>/<scriptscript>]", "\normalmath" a
+"\boldmath".
+
+\inext {ams-math}{\empty}{+-}
+
+Po naten souboru ams-math disponujeme makry \db regtfm na registraci
+rznch metrik pro rzn designovan velikosti font a \db whichtfm, kter
+expanduje na svj parametr nebo na metriku, kter je registrovna pro
+velikost \db dgsize. Registrace metrik \CS{}font je rovn provedena
+v souboru {\tt ams-math.tex}. Jak bylo eeno,
+makro "\resizefont<fontselector>" \csplain{}u zmn
+velikost fontu "<fontselector>" podle obsahu makra "\sizespec" (viz soubor
+{\tt csfontsm.tex}). Toto makro "\resizefont" vol pomocn makro \db
+resizefontskipat na odstrann \uv{sizespec} z nzvu metriky. Toto pomocn
+makro je v OPmac pedefinovno s vyuitm "\whichtfm", take kdy ped
+volnm makra "\resizefont" pipravme sprvnou "\dgsize", \TeX{} pouije
+metriku designovanou na poadovanou velikost:
+
+\inext {resizefontskip}{\empty}{+-}
+
+Makra "\typosize", "\fontsizex", "\textfontsize",
+"\setbaselineskip" poaduj zpis parametru bez jednotky.
+Jednotkou je \db ptunit, kter je nastavena na 1pt. Uivatel me
+jednotku zmnit (nap. "\ptunit=1mm" pi nvrhu plaktu). Dle \db fontdim
+je registr, kter udv aktuln velikost psma.
+
+\inext {ptunit}{\empty}{+-}
+
+asto budeme potebovat odstranit jednotku "pt" ve vpisu "\the<dimen>".
+Provedeme to pomoc "\expandafter\ignorept\the<dimen>". Protoe "\the"
+vyrb znaky pt s kategori 12, je makro \db ignorept definovno trikem pes
+"\lowercase". Z otaznku vznikne p kategorie 12 a z vykinku vznikne t.
+
+\inext {lccode}{\empty}{+-}
+
+Makra \db typosize a \db typoscale zmn velikosti a nastavuj
+vchoz font "\tenrm" a vchoz
+matematiku "\normalmath". Nehrajeme si na OFS nebo NFSS, kter se sna ctt
+naposledy nastaven duktus a variantu. Uivatel si variantu psma a tun
+duktus pro matematiku mus nastavit a po zavoln makra na zmnu velikosti fontu.
+
+\inext {typosize}{\empty}{+-}
+
+Makro \db fontsizex "[<velikost>]" pedpokld svj parametr bez jednotky.
+Psmeno x v nzvu zna, e makro nen v uivatelsk dokumentaci. Uivatel
+toti me pout "\typosize[<velikost>/]" a teba ho napadne si njak
+vlastn makro "\fontsize" definovat.
+Je-li parametr "<velikost>" przdn, makro "\fontsizex" neudl nic.
+Jinak pomoc "\textfontsize" nastav
+velikost textovch font. Dle zavol
+"\setmathsizes[\fontsize/.7\fontsize/.5\fontsize]", ovem v parametru mus
+odstranit jednotky a parametr pichyst pro makro "\setmathsizes"
+expandovan. Pkazem "\normalmath" nakonec nastav matematick fonty do
+nov velikosti.
+
+\inext {fontsizex}{^^B\cbrace}{++}
+
+Makro \db textfontsize "[<velikost>]" pedpokld svj parametr bez
+jednotky. Pipoj jednotku "\ptunit", nastav "\dgsize" a "\sizespec" a
+zavol "\resizeall", co je makro definovan v \csplain{}u, kter postupn
+vol "\resizefont" na vechny registrovan fonty.
+
+\inext {textfontsize}{^^B\cbrace}{++}
+
+Makro \db setbaselineskip "[<velikost>]" pedpokld parametr bez jednotky.
+Pipoj jednotku "\ptunit" a nastav "\baselineskip" bez dodaten
+prunosti. Nastav dal registry, kter s "\baselineskip" souvisej.
+Zmrn nen nastavena "\topskip", "\splittopskip",
+"\above/belowdisplayskip". Tyto parametry (globln pro cel dokument) by si
+ml uivatel nastavit sm.
+
+\inext {setbaselineskip}{^^B\cbrace}{++}
+
+Makro \db withoutunit "\makro<dimen>" odstran jednotku z "<dimen>" a takto
+upraven slo vlo do parametru "\makro", kter oekv daj bez jednotky
+v~hranat zvorce.
+
+\inext {withoutunit}{\empty}{+-}
+
+Makra \db fontscalex "<factor>", \db textfontscale "<factor>" a
+\db scalebaselineskip "<factor>"
+pepotaj "<factor>" podle aktulnho "\fontdim" resp. "\baselineskip"
+na absolutn jednotku a zavolaj odpovdajc makro definovan ped chvl.
+
+\inext {fontscalex}{\count=3 ^^B\cbrace}{++}
+
+Makro \db thefontsize si alokuje aktuln font do sekvence \db thefont a
+tento nov fontov pepna podrob zmn velikosti "\resizefont".
+Makro \db thefontscale pepot parametr na absolutn velikost a zavol
+"\thefontsize".
+
+\inext {thefontsize}{\count=2 ^^B\cbrace}{++}
+
+Plain\TeX{}ov \db magstep m na konci "\relax", take nefunguje jako pouze
+expandujc makro. My ale "\magstep" oekvme v parametrech pkaz
+"\typoscale" a podobnch, proto v "\magstep" je nahrazeno "\relax" mn
+drsnm "\space". To separuje seln parametr dostaten.
+
+\inext {magstep}{\empty}{+-}
+
+Makro \db em pepn kontextov do odpovdajc varianty a ve spoluprci s
+makrem "\additcorr" pidv italickou korekci. Makro \db additcorr
+si pomoc "\lastskip" zapamatuje posledn mezeru, pak ji odstran, vlo
+italickou korekci a nakonec vrt tu odstrannou mezeru.
+
+\inext {def\nb em}{\empty}{+-}
+
+Fontov makra zabezpeme proti rozkladu v parametru "\write".
+
+\inext {addprotect}{\empty}{+-}
+
+
+\subsec Texty ve vce jazycch
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Makro \db mtext "<znaka>" je zkratkou za \uv{multilingual text}.
+Toto makro si podle znaky a aktulnho jazyka (dle registru "\language")
+vyhled, jak text m vypsat.
+
+\inext {mtext}{\empty}{+-}
+
+Jednotliv texty definujeme pomoc "\sdef{mt:<znaka>:<jazyk>}" takto:
+
+\inext {chap:en}{\empty}{+-}
+
+Nkter texty jsou zapsny pomoc "\v" notace. Je lep udlat to takto
+ne vytvoit soubor "opmac.tex" zvisl na kdovn. Aby byla tato notace
+sprvn interpretovna, spustme "\csaccents", co je makro \csplain{}u.
+Pokud nkdo pouv OPmac s jinm formtem, ne \csplain, neprovede se nic,
+protoe konstrukce "\csname csaccents\endcsname" se v takovm ppad perod v
+"\relax". Makro "\csaccents" spustme jen tehdy, pokud je u uivatel
+nespustil ped "\input opmac". To poznme podle toho, zda je definovan
+sekvence "\r".
+
+\inext {}{}{+-}
+
+CSplain od verze "Nov. 2012" pipravuje nsledujc
+makra, kter konvertuj slo "\language" na znaku jazyka pro vechny
+jazyky, kter maj nataeny vzory dlen slov.
+Pro jistotu (pokud je pouita star verze CSplainu) tuto koverzi
+\uv{naume} i makro OPmac:
+
+\inext {sdef}{\empty}{+-}
+
+
+
+\subsec REF soubor
+%%%%%%%%%%%%%%%%%%
+
+OPmac pouv pro vechny poteby (obsah, reference, citace, rejstk,
+poznmky na okraji)
+jedin soubor "\jobname.ref" (tzv. REF soubor).
+Navc, pokud nen poteba, vbec tento soubor
+nezakld. asto toti budeme chtt dlat s OPmac jen jednoduch vci a je
+navn pod na disku kvli tomu uklzet smet.
+
+Je poteba deklarovat souborov deskriptory \db reffile a \db testin:
+
+\inext {newwrite}{\empty}{+-}
+
+Do souboru zapisujeme makrem \db wref "\<sekvence>{<data>}", kter vlo do
+"\reffile" dek obsahujc "\<sekvence><data>".
+Implicitn ale nen "\reffile" zaloeno, take implicitn hodnota tohoto
+makra je \db wrefrelax, tedy nedlej nic.
+
+\inext {wrefrelax}{\empty}{+-}
+
+Makro \db inputref spustme na konci ten souboru "opmac.tex", tedy v
+situaci, kdy u budeme mt definovny vechny kontroln sekvence, kter se v
+REF souboru mohou vyskytnout. Nyn si toto makro jen pipravme.
+Makro ov existenci souboru "\jobname.ref" a pokud existuje, provede
+"\input \jobname.ref". V takovm ppad po naten REF souboru jej oteve
+k~zpisu a piprav "\wref" do stavu, kdy toto
+makro bude ukldat data do souboru.
+
+\inext {inputref}{^^B\cbrace}{+-}
+
+Makro \db openref kdekoli v dokumentu si vynut zaloen souboru
+"\jobname.ref". Toto makro neprovede nic, je-li REF soubor u zaloen. To
+pozn podle toho, e makro "\wref" nem vznam "\wrefrelax". Jestlie soubor
+jet nen zaloen, makro jej zalo, pedefinuje "\wref" a vlo prvn
+dek do souboru. Tm je zarueno, e pi ptm \TeX{}ovn dokumentu
+je soubor neprzdn, take jej OPmac rovnou pete a znovu zalo na zatku
+sv innosti. Nakonec se "\openref" zasebevrad, aby se nemuselo pi
+opakovanm voln obtovat vykonvat njakou prci. Prce u je toti
+hotova.
+
+\inext {openref}{^^B\cbrace}{++}
+
+Pro zpisy do REF souboru pouvme tuto konvenci: prvn kontroln sekvence
+na dku je vdy tvaru "\X<nzev>", take mme pehled, kter kontroln sekvence
+pochz z REF souboru.
+
+
+
+\subsec Lejblky a odkazy
+%%%%%%%%%%%%%%%%%%%%%%%%%
+
+K vytvoen zptnho odkazu provedeme ti kroky (v tomto poad):
+
+\begitems
+\item* V mst "\label[<lejblk>]" si zapamatujeme "<lejblk>".
+\item* V dob vygenerovn sla (sekce, kapitoly, caption, atd.)
+ propojme "<lejblk>" s tmto slem. Provedeme to
+ pomoc "\sxdef{lab:<lejblk>}{<slo>}".
+\item* V mst "\ref[<lejblk>]" vytiskneme "\csname lab:<lejblk>\endcsname",
+ tedy "<slo>".
+\enditems
+
+To je zkladn idea pro zptn odkazy. V takovm ppad nepotebujeme REF
+soubor. Pokud ale chceme dopedn odkazy, je poteba pout REF soubor
+zhruba takto:
+
+\begitems
+\item* V dob vygenerovn sla (sekce atd.) navc ulome informaci
+ "\Xlabel{<lejblk>}{<slo>}" do REF souboru.
+\item* V dob ten REF souboru (tedy na zatku dokumentu) provede "\Xlabel"
+ piazen pomoc "\sdef{lab:<lejblk>}{<slo>}".
+\item* Nyn me pijt "\ref[<lejblk>]"
+ se svm "\csname lab:<lejblk>\endcsname" kdekoli v dokumentu.
+\enditems
+
+Pejdeme od idej k implementaci.
+Makro \db label "[<lejblk>]" si pouze zapamatuje "<lejblk>" do makra \db
+lastlabel, aby s touto hodnotou mohlo pozdji pracovat makro, kter automaticky
+generuje njak slo.
+
+\inext {def\nb label}{\empty}{+-}
+
+Makro, kter automaticky generuje njak slo, m za kol zavolat
+\db wlabel "<slo>". Toto makro propoj "\lastlabel" a "<slo>" tak, e
+definuje sekvenci "\lab:\lastlabel" jako makro s hodnotou "<slo>".
+Krom toho zape expandovan "\lastlabel" i "<slo>" do
+REF souboru (jen, je-li oteven, zptn reference toti funguj i bez
+souboru). Nakonec vrt makru "\lastlabel" jeho pvodn nedefinovanou
+hodnotu, tj.~lejblk
+u byl pouit. Dal makro automaticky generujc slo zavol "\wlabel",
+kter nyn neprovede nic (pokud tedy uivatel nenapsal dal
+"\label[<lejblk>]").
+
+\inext {wlabel}{^^B\cbrace}{++}
+
+\goodbreak
+Makro \db ref "[<lejblk>]" zkontroluje definovanost "\lab:<lejblk>".
+Je-li to pravda, vytiskne "\lab:<lejblk>" (krz reflink, aby to bylo
+ppadn klikac). Jinak vytiskne dva otaznky a pedpokld, e v tomto
+ppad jde o dopednou referenci. Vynut si tedy oteven REF souboru
+zavolnm "\openref".
+
+\inext {ref}{^^B\cbrace}{++}
+
+Makro \db pgref "[<lejblk>]" dl podobnou prci, jako "\ref", jen s makrem
+"\""pgref:<lejblk>". Toto makro je definovno a pi znovunaten REF
+souboru makrem \db Xlabel, protoe ke sprvnmu uren sla strnky
+potebujeme asynchronn "\write".
+
+\inext {pgref}{\empty}{+-}
+
+
+
+\subsec Kapitoly, sekce, podsekce
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Fonty pro titul, kapitoly a sekce \db titfont,
+\db chapfont, \db secfont a \db seccfont
+jsou definovny jako odpovdajc zvten a nastaven tunho duktu.
+Ten je nastaven pomoc \db bfshape jako "\bf" a navc je ztotonn
+"\tenit" s "\tenbi", take kdy nyn uivatel nape "\it", dostane tunou
+kurzvu.
+
+\inext{titfont}{\empty}{+-}
+
+Pro slovn kapitol, sekc a podsekc potebujeme tae:
+
+\dgn \nb chapnum \dgn \nb secnum \dgn \nb seccnum
+
+\inext{newcount}{\empty}{+-}
+
+Makro pro titul \db tit pot s tm, e bude titul na vce dcch. Sz ho
+tedy jako odstavec s~prunmi "\leftskip" a "\rightskip". Pkaz "\unskip"
+tsn za parametrem "#1" odstran mezeru z konce dku, kter tam obvykle
+je. Teprve pot je nadpis dn centrovn.
+
+\inext{tit}{^^B\cbrace}{++}
+
+Makra \db chap, \db sec a \db secc nastav odpovdajc tae, dle vytvo
+slovn pro tisk (sestvajc z vce sel) v makrech \db thechapnum,
+\db thesecnum a \db theseccnum a zavolaj odpovdajc makro "\printchap",
+"\printsec" a "\printsecc".
+Pot zavol "\wlabel" na
+propojen ppadnho labelu s slem kapitoly/sekce/podsekce a
+pomoc \db wcontents ulo do "\reffile" potebn data pro obsah.\par\vskip-1pt
+
+\inext{chap}{\empty}{+-}
+
+Text titulu sekce a jej slo jsou vloeny do "\mark", take tyto daje
+mete pout v plovoucm zhlav. Tato vlastnost nen dokumentovna v
+uivatelsk sti, protoe je ponkud technitjho charakteru. Makro \db
+insertmark "\thesecnum{<text>}" vlo do "\mark" data ve formtu
+"{<secnum>} {<text>}", take je mono je pout pmo expanz nap.
+"\firstmark", nebo je oddlit a zpracovat zvlṻ. Parametru "<text>" je
+zabrnna expanze pomoc protaen tohoto parametru pes "\toks", viz TBN
+str. 54 dole a strany 55--57. Pkaz "\mark" se toti sna o expanzi.
+
+\inext{insertmark}{\empty}{+-}
+
+Pklad pouit plovoucho zhlav v "\headline":
+
+\begtt
+\headline{\expandafter\domark\firstmark\hss}
+\def\domark#1#2{\llap{\it\headsize #1. }\rm\headsize #2}
+\def\headsize{\thefontsize[10]}
+\endtt
+
+Makro "\headsize" v tto ukzce zaru, e bude mt zhlav vdy
+poadovanou velikost. Bez toho ta zruka nen, pokud tedy uivatel v sazb
+dokumentu std velikosti psma. Output rutina toti me pijt nhle,
+teba v okamiku, kdy je zapnut jin velikost psma.
+
+Pokud chcete kombinovat na levch a pravch strnkch plovouc zhlav z
+kapitol a sekc, inspirujte se v TBN na stranch 259 a 260.
+
+Makra \db printchap, \db printsec a \db printsecc vytisknou slo a titul
+kapitoly, sekce resp. podsekce. Pkazem "\firstnoindent" dvaj najevo,
+e nsledujc odstavec nebude mt odstavcovou zarku.
+
+\inext {printchap}{\count=3 ^^B\cbrace}{++}
+
+Makro \db afternoindent potla odstavcovou zarku pomoc pechodnho
+naplnn "\everypar" kdem, kter odstran box vznikl z "\indent" a
+vyprzdn pomoc \db wipeepar registr "\everypar".
+Makro \db firstnoindent je ztotonno s
+"\afternoindent", ale uivatel me pst "\let\firstnoindent=\relax".
+Pak bude "\afternoindent" pracovat jen za verbatim vpisy.
+
+\inext{afternoindent}{firstnoindent}{++}
+
+Nechceme, aby se nm odstavce tvoen z titul kapitol a sekc rozdlily do
+vce stran. Proto msto pkazu "\par" je pouito \db nbpar.
+Konen uivatel me oddkovat napklad v titulu pomoc \db nl.
+Tomuto makru pozdji v "\output" rutin zmnme vznam na mezeru.
+
+\inext{nbpar}{\empty}{+-}
+
+
+\subsec Popisky, rovnice
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+Nejprve deklarujeme potebn tae:
+\dgn \nb tnum \dgn \nb fnum \dgn \nb dnum
+
+\inext{newcount}{\empty}{+-}
+
+Vchoz hodnoty maker, kter se vypisuj v mst generovanho sla jsou:
+
+\inext{thetnum}{\empty}{+-}
+
+Makro \db caption "/<typ> " zvedne ta "\<typ>num" o jedniku,
+dle nastav prun mezery s odsazenm "\iindent" a s centrovnm poslednho
+dku (viz TBN str.~234), propoj pomoc "\wlabel" slo s ppadnm
+lejblkem, vytiskne slovo Tabulka/Obrzek v zvislosti na jazyku makrem
+"\mtext", vytiskne slo "\the<typ>num" a zpracuje odstavec s nastavenmi
+"\leftskip", "\rightskip". Pedefinuje "\par" tak, e prvn vskyt przdnho
+dku ukon skupinu a tm se vechna nastaven vrt do pvodnho stavu.
+
+\inext{caption}{^^B\cbrace}{++}
+
+Makro \db eqmark zvedne "\dnum" o jedniku.
+V display mdu pak pouije primitiv "\eqno", za kterm
+nsleduje "\thednum". V internm mdu (v boxu) vytiskne jen "\thetnum".
+V obou ppadech propoj ppadn lejblk s slem pomoc makra "\wlabel".
+
+\inext{eqmark}{\empty}{+-}
+
+\subsec Odrky
+%%%%%%%%%%%%%%%
+
+Odsazen kad dal vnoen rovn odrek bude o "\iindent" vt.
+Jeho hodnota je nastavena na "\parindent" v dob ten {\tt opmac.tex}.
+Jestlie uivatel pozdji zmn "\parindent", ml by odpovdajcm zpsobem
+zmnit "\iindent". Krom toho deklarujeme ta pro odrky \db itemnum.
+
+\inext{newcount}{\empty}{+-}
+
+Makro \db begitems vlo "\iiskip", zahj novou skupinu, pronuluje "\itemnum",
+zvt odsazen o~"\iindent" a pomoc "\adef" definuje hvzdiku jako
+aktivn makro, kter provede "\startitem". Makro \db enditems ukon
+skupinu a vlo "\iiskip".
+
+\inext{begitems}{\empty}{+-}
+
+Makro \db startitem ukon ppadn pedchoz odstavec, posune ta, zahj
+prvn odstavec jako "\noindent" a vyoupne doleva text definovan v
+\db printitem, kter je implicitn nastaven makrem "\begitems" na
+\db normalitem.
+
+\inext{startitem}{\empty}{+-}
+
+Makro \db style "<znak>" pete "<znak>" a rozvine jen na makro
+"\item:<znak>". Tato jednotliv makra jsou definovna pomoc "\sdef".
+Nen-li makro "\item:<znak>" definovno, pouije se "\normalitem".
+
+\inext{style}{\empty}{+-}
+
+tvereek kreslme jako "\vrule" odpovdajcch rozmr makrem
+\db fullrectangle "{<dimen>}".
+
+\inext{fullrectangle}{\empty}{+-}
+
+Pro pevod mezi numerickou hodnotou tae a pslunm psmenem a, b, c
+atd. je vytvoeno makro \db athe "<number>".
+
+\inext{athe}{\empty}{+-}
+
+
+\subsec Tvorba obsahu
+%%%%%%%%%%%%%%%%%%%%%
+
+Do \db toclist budeme ukldat data pro obsah.
+Pomoc \db ifischap se budeme ptt, zda v dokumentu jsou kapitoly.
+
+\inext{toclist}{\empty}{+-}
+
+V dob ten REF souboru vlome veker data obsahu do makra "\toclist"
+tak, e v tomto bufferu budeme mt za sebou sekvence "\tocline" nsledovan pti
+parametry. Makra \db Xchap, \db Xsec a \db Xsecc
+maj parametry "{<slo>}{<text>}{<strana>}" a jsou definovny nsledovn:
+
+\inext{Xchap}{\empty}{+-}
+
+Makro \db tocline "{<odsazen>}{<font>}{<slo>}{<text>}{<strana>}" vytvo
+dek obsahu. dek tiskneme jako odstavec, protoe "<text>" me bt teba
+del. Registr "\leftskip" nastavme jako souin "<odsazen>" krt "\iindent".
+Pokud se v dokumentu vyskytuj kapitoly, odsadme jet o dal "\iindent".
+Registr "\rightskip" nastavme na 2"\iindent", aby del "<text>" se zalomil
+dv ne v mst, kde jsou strnkov slice. Konec odstavce se strnkovou
+slic pak vythneme mimo tento rozsah pomoc "\hskip-2\iindent". Odstavec
+pru v "\tocdotfill", protoe tento vplnk m vt prunost ne
+"\parfillskip". Registr "\parfillskip" m "1fil", zatmco "\tocdotfill" m
+prunost "1fill". Makro \db tocdotfill je implementovno pomoc "\leaders"
+jako opakovan teky, kter budou lcovat pod sebou.
+
+\inext{tocline}{\empty}{+-}
+
+Makro \db maketoc jednodue spust "\toclist", Pokud je "\toclist" przdn,
+upozorn o tom adekvtnm zpsobem na terminl.
+
+\inext{maketoc}{\empty}{+-}
+
+
+\subsec Sestaven rejstku
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Slovo do rejstku vlome pomoc \db iindex "{<heslo>}". Protoe vskyt
+slova na strnce nen v dob zpracovn znm, je nutn pout REF soubor s
+asynchronnm "\write".
+
+\inext{iindex}{\empty}{+-}
+
+Nyn naprogramujeme ten parametru makra
+\db ii "<slovo>,<slovo>,...<slovo> ". Vzhledem k tomu, e za
+ptomnosti zkratky "@" budeme potebovat projt seznam slov oddlench rkou
+v~parametru jet jednou, zapamatujeme si tento seznam do "\tmp".
+
+\inext{leavevmode}{\empty}{+-}
+
+Makro \db iiA sejme vdy jedno slovo ze seznamu. Podle przdnho parametru
+poznme, e jsme u konce a nedlme nic. Pi vskytu "<slovo>=@" (poznme to
+podle shodnosti parametru s \db iiatsign \unskip),
+spustme "\iiB", jinak vlome daj o slov do rejstku pomoc "\iindex".
+Nakonec makro "\iiA" vol rekurzivn samo sebe.
+
+\inext{iiA}{\empty}{+-}
+
+Makro \db iiB rovn sejme vdy jedno slovo ze seznamu a na konci vol
+rekurzivn samo sebe. Toto makro ovem za pouit makra \db iiC prohod poad
+prvnho podslova ped prvnm lomtkem se zbytkem. Nen-li ve slov lomtko,
+pozn to makro "\iiC" podle toho, e parametr "#2" je przdn. V takovm ppad
+neprovede nic, nebo slovo je u zaneseno do rejstku v makru "\iiA".
+
+\inext{iiB}{\empty}{+-}
+
+Makro \db iid "<slovo> " pole slovo do rejstku a souasn je zopakuje do
+sazby. Pomoc "\futurelet" a \db iiD zjist, zda nsleduje teka nebo rka. Pokud
+ne, vlo mezeru.
+
+\inext{iid}{\empty}{+-}
+
+Pi ten REF souboru se vykonvaj makra \db Xindex "{<heslo>}{<strana>}",
+kter postupn vytvej makra tvaru "\,<heslo>", ve kterch je shromaovn
+seznam strnek pro dan "<heslo>".
+Krom toho kad makro "\,<heslo>" je vloeno do seznamu \db iilist.
+Na konci ten
+REF souboru tedy mme v~"\iilist" seznam vech hesel jako dic sekvence (to
+zabere nejm msta v \TeX{}u). Kad
+"\,<heslo>" na konci ten REF souboru obsahuje dva daje ve svorkch, prvn daj
+obsahuje pomocn data a druh obsahuje seznam strnek. Tedy "\,<heslo>" je makro
+s obsahem "{<pomocn-data>}{<seznam-strnek>}".
+
+Seznam strnek nen jen tup seznam vech strnek, na kterch se objevil
+zznam "\ii" pro dan slovo. Nkter strnky se toti mohou opakovat a my je
+chceme mt jen jednou. Pokud strnky jsou souvisle za sebou: 13, 14, 15, 16,
+chceme navc takov seznam nahradit zpisem 13--16. Makro
+"\Xindex{<heslo>}{<strana>}" je z tohoto dvodu ponkud sofistikovanj.
+
+\ilabel [Xindex:first] {firstdata}
+\ilabel [Xindex:second] {seconddata}
+
+\inext{Xindex}{\empty}{+-}
+
+innost makra "\Xindex" si vysvtlme za chvli podrobnji. Nejprve ovem
+definujeme pomocn makro \db firstdata "\,<heslo>"~"\<cs>", kter expanduje na
+"\<cs>"~"<prvn-datov-daj-hesla>&". Je-li teba "\,aa" definovno jako
+"{prvni}{druhy}", pak "\firstdata"~"\,aa"~"\cosi" expanduje na "\cosi"~"prvni&".
+Tm mme monost vyzskat data z makra. Podobn makro
+\db seconddata "\,<heslo>"~"\<cs>" expanduje na
+"\<cs>"~"<druh-datov-daj-hesla>&".
+
+\inext{firstdata}{\empty}{+-}
+
+Ne se pustme do vkladu makra "\Xindex", vysvtlm, pro pro hesla rejstku
+tvom jednu dic sekvenci, kter je makrem se dvma datovmi daji.
+Mohl bych jednodueji pracovat se dvma rznmi dicmi sekvencemi,
+nap. "\,<heslo>" a "\:<heslo>". Dvod je prost: etm pam \TeX u. D se toti
+oekvat, e poet hesel v rejstku meme potat na tisce a je rozdl
+alokovat kvli tomu tisce kontrolnch sekvenc nebo dvojnsobn mnostv
+takovch sekvenc.
+
+V makru "\Xindex" teme "\firstdata" na dku \cite[Xindex:first]
+a "\seconddata" na dku \cite[Xindex:second].
+ten je provedeno makry \db XindexA a \db XindexB. Prvn sek dat je tvaru
+"<posledn-strana>/<stav>" a druh sek dat obsahuje rozpracovan seznam strnek.
+Podvme-li se na definice "\XindexA" a "\XindexB", shledme, e seznam strnek
+bude uloen v "\tmp", dle "<posledn-strana>" bude v "\tmpa" a "<stav>" je v
+"\tmpb".
+
+\inext{XindexA}{\empty}{+-}
+
+Rozliujeme dva stavy: "<stav>=+", pokud je seznam strnek zakonen konkrtn
+strnkou. Tato konkrtn strnka je uloena v "<posledn-strana>". Druhm
+stavem je "<stav>=-", kdy je seznam strnek ukonen "--" (pesnji obsahem
+makra \db iiendash, kter mete snadno pedefinovat) a v tomto ppad
+"<posledn-strana>" obsahuje posledn strnku, na kter byl zjitn vskyt
+hesla. Tato strana nemus bt v~seznamu strnek explicitn uvedena.
+
+Makro "\Xindex{<heslo>}{<strana>}" tedy postupn vytv seznam stran
+zhruba takto:
+
+\def\begtthook{\langleactive}
+\begtt
+if (prvn vskyt \,<heslo>) {
+ zalo \,<heslo> do iilist;
+ <seznam-stran> = "<strana>"; <stav> = +; <posledni-strana> = <strana>;
+ return;
+}
+if (<strana> == <posledni-strana>) return;
+if (<stav> == +) {
+ if (<strana> == <posledni-strana>+1) {
+ <seznam-stran> += "--";
+ <stav> = - ;
+ }
+else {
+ <seznam-stran> += ", <strana>";
+ <stav> = + ;
+ }
+ else {
+ if (<strana> > <posledni-strana>+1) {
+ <seznam-stran> += "<posledni-strana>, <strana>";
+ <stav> = + ;
+ }
+ }
+}
+<posledn-strana> = <strana>;
+\endtt
+
+\def\begtthook{}
+Makro \db makeindex nejprve definuje pechodn vznam rekurzivnho
+"\act" tak, aby byly uzaveny seznamy strnek (tj. aby seznam nekonil
+znakem "--") a do prvn
+datov oblasti kadho makra typu "\,<heslo>" vlo konverzi textu "<heslo>" do
+tvaru vhodnm pro abecedn azen eskch slov.
+Pomoc "\expandafter \act \iilist \relax" se
+poadovan innost vykon pro kad prvek v "\iilist".
+Dle makro "\makeindex" provede seazen "\iilist" podle abecedy
+makrem "\dosorting" a nakonec provede tisk jednotlivch hesel. K tomu elu
+znovu pechodn pedefinuje "\act" a pedlo mu "\iilist".
+
+\ilabel [mkindex:od] {firstdata}
+\ilabel [mkindex:do] {after\nb act}
+\ilabel [mkindex:orippx] {orippx}
+
+\inext{makeindex}{^^B\cbrace}{++}
+
+Makro \db printiipages sebere z "<druhho-datovho-daje>" seznam strnek a
+jednodue je vytiskne.
+
+\inext{printiipages}{\empty}{+-}
+
+Makro \uv{prepare index item} \db prepii "\,<heslo>" odstran prostednictvm
+\db prepiiA z nzvu kontroln sekvence backslash a rku a zbytek tiskne pomoc
+"\printii". Pokud ale je "\,<heslo>" uloeno v~seznamu "\iispeclist", pak se
+expanduje sekvenci s nzvem "\\,<heslo>", ve kter je uloeno, co se
+m msto hesla vytisknout. Data tchto vjimek jsou pipravena makrem "\iis"
+
+\inext{prepii}{\empty}{+-}
+
+Kontroln otzka: pro se nedotazujeme jednodue na to, zda je
+"\\,<heslo>" definovan dic sekvence? Odpov: museli bychom ji
+sestavit pomoc "\csname...\endcsname", ale to zalo do \TeX{}ov pamti
+novou dic sekvenci pro kad heslo v rejstku. My se sname poet
+tchto dicch sekvenc redukovat na minimum. Potme s tm, e obyejnch
+hesel bude tisce a vjimek jen pr destek.
+
+Makro \db iis "<heslo> {<text>}" vlo dal daj do slovnku vjimek pro
+hesla v rejstku. Pesnji: vlo "\,<heslo>" do \db iispeclist a definuje
+sekvenci "\\,<heslo>" jako "<text>".
+
+\inext{iis}{\empty}{+-}
+
+Makro \uv{print index item} \db printii "<heslo>&" vytiskne jeden daj do
+rejstku. Makro projde prostednictvm \db printiiA jednotliv podslova
+oddlen lomtkem a pepe je do rejstku oddleny mezerou. Pitom
+kontroluje, zda se podslova rovnaj odpovdajcm podslovm z pedchozho
+hesla, kter je uloeno v \db previi. Pokud ano, msto podslova vlo \db
+iiemdash, co je pomlka. Na konci innosti se spust makro \db printiiB,
+kter nastav "\previi" na \db currii (nov slovo se pro dal zpracovn stv
+pedchozm) a vytiskne seznam strnek. Makrem \db everyii
+(implicitn je przdn) dovolme uivateli vstoupit do procesu tisku hesla.
+Me napklad pst "\def\everyii{\indent}", pokud chce.
+
+\ilabel [printii:iindent] {iindent}
+\inext{printii}{\empty}{+-}
+
+Makro \db iiparparams nastavuje parametry sazby odstavce v rejstku. Vlevo
+budeme mt "\leftsip" rovn "\iindent", ale prvn dek posuneme o
+"-\iindent" (viz dek kdu~\cite[printii:iindent]) take prvn dek je
+vystren doleva. Vpravo mme prunou mezeru, aby se seznam sel stran mohl
+rozumn lmat, kdy je moc dlouh. Makro "\iiparparams" si mus poznait do
+makra \db orippx pvodn daje mnnch hodnot. Nen mon se toti schovat
+do skupiny, protoe rejstk je obvykle titn pomoc
+"\begmulti...\endmulti" a toto makro obas ukonuje plnn boxu a spout
+"\flushcolumns". Kdybychom mli "\makeindex" ve skupin, pak by pi
+"\flushcolumns" dolo ke ken skupin. Na konci prce "\makeindex" na
+dku \cite[mkindex:orippx] je makro "\orippx" zavolno a tm jsou parametry
+odstavce vrceny do pvodn podoby.
+
+\inext{iiparparams}{\empty}{+-}
+
+Pomocn makro \db scanprevii "<expanded-previi>&" se podv do "\previi",
+odloupne z nj sek ped prvnm lomtkem a tento sek definuje jako
+"\tmpa".
+
+\inext{scanprevii}{}{+-}
+
+Vchoz hodnota "\previi" ped zpracovnm prvnho slova v rejstku je
+przdn.
+
+\inext{previi}{\empty}{+-}
+
+
+\subsec Abecedn azen rejstku
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Nejprve se zamme na vytvoen makra
+"\isAleB"~"\,<heslo1>"~"\,<heslo2>", kter rozhodne, zda je "<heslo1>" azeno za
+"<heslem2>" nebo ne. Vsledek zkoumn meme provit pomoc "\ifAleB".
+
+Pro porovnn dvou daj vyaduje norma dva prchody. V prvnm (primrn
+azen) se rozliuje jen mezi psmeny A B C D E F G H Ch I J K L M N O P Q
+R S T U V W X Y Z . Pokud jsou hesla z tohoto pohledu stejn, pak se
+provede druh prchod (sekundrn azen), ve kterm jsou azena
+neakcentovan psmena ped pehlasovan ped rkovan ped hkovan ped
+stkovan ped kroukovan a dle s nejni prioritou mal psmena ped
+velk. Pipravme si tedy dv sady "\lccode" dvojic: pro prvn prchod a pro
+druh. Porovnvan hesla zkonvertujeme pomoc "\lowercase" pi nastaven
+"\lccode" odpovdajcho prchodu. Pak takto zkonvertovan hesla teprve
+zaneme porovnvat.
+
+Makro \db setprimarysorting piprav "\lccode" znak esk a slovensk
+abecedy pro prvn prchod a \db setsecondarysorting pro druh prchod.
+Makro "\setprimarysorting" expanduje \db sortingdata
+a pedhod ped takto expandovan data "\act".
+Povimneme si, e pro prvn prchod dostanou stejn "\lccode" vechny znaky
+na spolenm dku makra "\sortingdata", zatmco v druhm prchodu budou mt
+vechny znaky z tohoto makra rozdln "\lccode", ve vzestupnm poad.
+Je to tm, e v makru "\setprimarysorting" se zved "\tmpnum" jen v mst
+rky, zatmco v "\setsecondarysorting" se "\tmpnum" zved pro kad znak.
+Nejni hodnotu m mezera vyznaen v "\sortingdata" pomoc "{ }".
+Tm je zarueno, e krat slovo je azeno dv ne del slovo se stejnm
+zatkem, obsahujc cel krat slovo (ten~tuk$\prec$tento).
+Je sice pravda, e ASCII hodnota mezery je jet men, ale my musme
+mezeru nkam oupnout na jin kd ne 32, jinak by nm ji nepeetlo
+makro s~neseparovanm parametrem. Ovem my budeme chtt mezeru pest.
+
+\ilabel [sorten] {sort:en}
+\ilabel [lan] {lan:}
+\ilabel [chsorting] {chsorting}
+
+\inext{sortingdata}{\count=3 ^^B\cbrace}{++}
+
+Jednm z problm eskho azen je dvojhlska ch. Tu potebujeme
+promnit v jedin znak. Pro poteby azen promnme ch v "^^T", Ch v "^^U"
+a CH v "^^V". Udlme to nsledujcm okultnm kdem, kter definuje makro
+\db preparesorting "\,<heslo>". Toto makro piprav pomoc do "\tmpb"
+"<heslo>" zkonvertovan krz "\lowercase",
+ovem nejprve je dvojhlska ch nahrazena jednm znakem.
+Makro \db chsorting je implicitn nedefinovan, co znamen, e pracujeme s
+dvojhlskou ch. Na dku \cite[sorten], \cite[lan] a \cite[chsorting] je ovem nastaveno
+"\chsorting" jako "n", co je vzkaz, e dvojhlsku ch nechceme
+interpretovat.
+
+\inext{bgroup}{\empty}{+-}
+
+Tento kd je bohuel obtnji iteln, protoe makra "\iiscanch" a dal
+potebuj mt separtor "ch" ve stavu, kdy jednotliv psmena maj "\catcode" 12.
+Pracujeme toti s vstupem primitivu "\string", kter bohuel ve (a na
+mezeru) bal do token s kategori 12. Proto je cel kd obalen do
+"\bgroup", "\egroup" a "\lowercase". Tam jsou znaky 4, 5, 6, 7,
+kter maj kategorii 12, oupnuty na c, h, C, H. Po tomto deifrovn tedy
+vidme, e makro \db iiscanch je definovno takto:
+
+\begtt
+\gdef\iiscanch #1ch#2\relax{#1\if$#2$\else^^T\iiscanch #2\relax\fi}
+\iiscanch Schz hrch, kter bych hzel na stnu.ch\relax
+\endtt
+
+Uveden pklad expanduje postupn na
+
+\begtt
+#1<-S
+#2<-z hrch, kter bych hzel na stnu.ch
+=> s^^T\iiscanch #2\relax
+
+#1<-z hr
+#2<-, kter bych hzel na stnu.ch
+=> s^^Tz hr^^T\iiscanch #2\relax
+
+#1<-, kter by
+#2<- hzel na stnu.ch
+=> s^^Tz hr^^T, kter by^^T\iiscan #2\relax
+
+#1<- hzel na stnu.
+#2<-
+=> s^^Tz hr^^T, kter by^^T hzel na stnu.
+\endtt
+a to nahrad vechny vskyty dvojhlsky ch znakem "^^T". Analogicky pracuj
+makra \db iiscanCh a \db iiscanCH. Makro \db preparesortingA nakonec zavol
+vechna ti makra, take mme nahrazeny vechny dvojhlsky ch, Ch i CH.
+
+V rmci optimalizace rychlosti jsou ped algoritmem na setdn seznamu
+vechna hesla jednorzov zkonvertovan podle pravidel prvnho prchodu
+azen a tato data jsou uloena v prvnm datovm daji hesla (ve druhm mme
+seznam strnek). Nen tedy nutn dlat konverzi pi kadm porovnvn dvou
+hesel. Ovem, pokud porovnn hesel vyjde bez rozdlu, je poteba provst
+druh prchod azen (sekundrn azen). Ten nastavujeme jednotliv jen pro
+takov dvojice hesel, kde to je poteba. Pravdpodobnost, e to je vbec
+nkdy poteba, je miziv. Data pro primrn azen jsou tedy u pipravena na
+dcch \cite[mkindex:od] a \cite[mkindex:do] v makru "\makeindex".
+
+V eskm azen se nem pihlet na interpunkn znaky (teka, stednk,
+otaznk, atd.). Hesla mme adit tak, jako kdyby tam tyto znaky nebyly.
+Kdyby se dv hesla podle tohoto pravidla neliila, norma pedepisuje nasadit
+cca tvrt prchod, ve kterm se tyto znaky rozli. tvrt prchod
+implementovn nen: hesla lic se jen interpunknmi znaky, jsou v OPmac
+pi azen nerozliiteln, tj. jsou azena v poad, v jakm vstupuj do
+rejstku. Ignorovn interpunknch znak je provedeno tak, e vem
+tmto znakm je pidlen makrem \db setignoredchars "\lccode" teky a
+teka je pi zpracovn v~"\setprimarysorting" a "\setsecondarysorting" odstranna
+makrem \db removedot.
+
+\inext{removedot}{\empty}{+-}
+
+Pipravme si "\newif", kterm ohlsme vsledek porovnn dvou hesel:
+
+\inext{newif}{\empty}{+-}
+
+Makro \db isAleB "\,<heslo1>"~"\,<heslo2>" spust\hfil\break
+"\testAleB"~"<zkonvertovan heslo1>&\relax"~"<zkonvertovan heslo2>&\relax"~%
+"\,<heslo1>"~"\,<heslo2>".
+
+\inext{isAleB}{^^B\cbrace}{++}
+
+Idea makra \db testAleB lexikograficky porovnvajc dv slova je v tom, e ze
+dvou string v~parametru oddlench "\relax" postupn odlupuje vdy
+prvn znak "#1" a "#3" z kadho stringu a ten porovnv a samozejm pi rovnosti
+rekurzivn zavol samo sebe. Pokud jsme se dostali na konec bez rozhodnut, co
+je men, narazme na znak "&". V takovm ppad pestoupme do
+sekundrnho prchodu.
+
+\inext{testAleB}{^^B\cbrace}{++}
+
+Makro \db testAleBsecondary "\,<heslo1>"~"\,<heslo2>" zalo skupinu, v n
+nastav "\lccode" dle sekundrnho azen a pomoc "\preparesorting"
+piprav zkonvertovan data do "\tmpa" a "\tmpb". Na chvosty tchto dat
+pidm nulu a jedniku, aby porovnn vdy njak dopadlo, a spustm
+\db testAleBsecondaryX, co pracuje obdobn, jako "\testAleB".
+
+\inext{testAleBsecond}{\count=2 ^^B\cbrace}{++}
+
+Nyn meme pomoc "\isAleB\,<heslo1>\,<heslo2>\ifAleB" rozhodnout, kter
+ze dvou danch parametr m bt azen dve. Sta tedy u jen naprogramovat
+celkov azen seznamu. Toto makro vychzejc z algoritmu mergesort
+vytvoil mj syn Miroslav. Makro bylo poprv pouito v DocBy\TeX{}u, co je
+nstroj, kterm je napklad pozena i tato dokumentace.
+
+Makro \db dosorting pomoc pomocnho makra "\act" dopln za kad daj v
+"\iilist" rku a dle pedlo makru "\mergesort" jako parametr obsah
+"\iilist" ukonen "\end,\end", vyprzdn "\iilist" a spust "\mergesort".
+
+\inext{dosorting}{\empty}{+-}
+
+Makro \db mergesort pracuje tak, e bere ze vstupn fronty vdy dvojici
+skupin
+poloek, kad skupina je zatdn. Skupiny jsou od sebe oddleny
+rkami. Tyto dv skupiny spoj do jedn a zatd. Pak pejde na
+nsledujc dvojici skupin poloek. Jedno zatdn tedy vypad
+napklad takto: dv skupiny: "eimn,bdkz," promn v~jedinou
+skupinu "bdeikmnz,". V tomto pklad jsou poloky jednotliv psmena,
+ve skutenosti jsou to kontroln sekvence, kter obsahuj cel slova.
+
+Na potku jsou skupiny jednoprvkov ("\iilist" oddluje kadou
+poloku rkou). Makro "\mergesort" v tomto ppad projde seznam a vytvo
+seznam zatdnch dvoupolokovch skupin, uloen zptn v
+"\iilist". V dalm prchodu znovu vyvrhne "\iilist" do vstupn
+fronty,
+vyprzdn ho a startuje znovu. Nyn vznikaj typolokov zatdn
+skupiny. Pak osmipolokov~atd. V~zvru (na dku~\cite[konecsortu])
+je prvn skupina cel setdn a druh obsahuje "\end", tj.
+vechny poloky jsou u setdn v prvn skupin, take sta
+ji uloit do "\iilist" a ukonit innost. Pomoc \db gobbletoend
+odstranme druh "\end" ze vstupnho proudu.
+
+\noactive{dvojice}
+\ilabel [merge:porovnani] {isAleB}
+\ilabel [merge:trojka] {mergesort p1+}
+\ilabel [merge:p1] {ifx,}
+\ilabel [merge:p2] {fif\nb mergesort\cbrace}
+\ilabel [konecsortu] {empty\nb iilist}
+\inext {def\nb mergesort }{^^B\cbrace}{++}
+
+{\def\quotehook{\catcode`\<12}
+Jdro "\mergesort" vidme na dcch~\cite[merge:porovnani]
+a~\cite[merge:trojka]. Makro "\mergesort" sejme ze vstupnho proudu
+do "#1" prvn poloku prvn skupiny, do "#2" zbytek prvn skupiny a do
+"#3" prvn poloku druh skupiny. Je-li "#1<#3", je do vstupnho
+zatdnho seznamu "\indexbuffer" vloen "#1", ze vstupnho proudu je
+"#1" odebrn a "\mergesort" je zavoln znovu. V ppad "#3<#1"
+je do "\indexbuffer" vloen "#3", ze vstupnho proudu je "#3" odebrn a
+"\mergesort" je zavoln znovu. dky~\cite[merge:p1]
+a~\cite[merge:p2] e ppady, kdy je jedna ze skupin przdn:
+je poteba vloit do "\indexbuffer" zbytek neprzdn skupiny a pejt
+na dal dvojici skupin. Ostatn dky makra se vyrovnvaj se
+skutenost, e zpracovn narazilo na zarku "\end,\end" a je tedy
+poteba vystartovat dal prchod.
+\par}
+
+
+\subsec Vce sloupc
+%%%%%%%%%%%%%%%%%%%%
+
+Makro pro sazbu do vce sloupc je pevzato z TBN, kde je podrobn
+vysvtleno na stranch 224 a~245. Zkladn mylenka makra spov v tom, e
+se napln jeden velk "\vbox" (box6) jednm sloupcem a "\endmulti" jej
+rozlom do sloupc poadovan vky a str do sazby. Nen k tomu nutno
+mnit vstupn rutinu. Makro z TBN je zde v OPmac ve dvou vcech pepracovno:
+\begitems
+\item * Dslednj balancovn sloupc vyluujc monost ztrty sazby
+ a umoujc mt sazbu s nezlomitelnmi mezerami mezi dky.
+\item * Makro m kumulovanou sazbu a umouje pi rozshlm mnostv
+ tiskovho materilu pechodn pejt do reimu \uv{vyprazdovn}.
+\enditems
+
+Makra \db begmulti, \db endmulti, \db corrsize, \db makecolumns a \db
+splitpart pracuj zhruba tak, jak je popsno v TBN.
+
+\ilabel [mul:endgraf] {endgraf}
+\ilabel [mul:balance] {last balancing}
+\ilabel [mul:relax] {relax\cbrace}
+\ilabel [mul:prevgraf] {prevdepth}
+
+\inext{corrsize}{\count=2 \empty}{+-}
+
+Vstup rozlomen sazby do sloupc probh ve dvou reimech: kdy je teba
+sloupci zaplnit celou strnku, pouijeme "\makecolumns". Toto makro nee
+otzku, e me v kumulovanm boxu~6 zbt njak sazba, protoe se
+pedpokld, e lmn bude pokraovat na dal stran. Pokud ale
+je na aktuln stran vcesloupcov sazba ukonena, pouijeme
+propracovanj \db balancecolumns. Toto makro si zazlohuje materil
+z~boxu~6 do boxu~7 a jme se zkoueti rozlomit box~6 na sloupce s
+vkou "\dimen0". Pokud ale po rozlomen nen vchoz box~6 zcela przdn, makro
+zvt krapnek (o 0,2"\baselineskip") poadovanou vku, vrt se k~zlohovan
+sazb v boxu~7 a zkus rozlomit znovu. To opakuje tak dlouho, dokud je box~6
+przdn.
+
+\inext{balancecolumns}{^^B\cbrace}{++}
+
+Kdy je sazba plnna do boxu~6, me ji bt tak moc, e tento box
+pekro maximln vku boxu, kter je v \TeX{}u bohuel
+omezena na cca pt metr
+(16383~pt). Proto na dku~\cite[mul:endgraf] je pedefinovn "\par", kter
+pit do "\dimen0" celkovou vku postupn kumulovan sazby. Jakmile tato
+vka doshne "0.9\maxdimen", pedefinujeme makro
+"\balancecolumns" na "\flushcolumns" a spustme pedasn "\endmulti". Toto makro
+vyprzdn box pomoc opakovanho "\splitpart", ovem nevyprzdn ho cel.
+Jen tu st, kter zapln cel strnky. Jakmile bude chtt
+"\splitpart" pejt k~vybalancovn sazby pomoc
+"\balancecolumns" na dku \cite[mul:balance], spust se msto bnho
+"\balancecolumns" makro \db flushcolumns. Toto makro ignoruje zbytek innosti
+"\endmulti" a po "\relax" na dku \cite[mul:relax], take vysko z
+trojit zanoenho "\if". Mus tedy vrtit pslun mnostv "\fi" a dle
+vystartuje nov "\setbox6=\vbox". Uvnit tohoto boxu nejprve vysype zbytek
+boxu~6, pomoc "\unskip\unskip" odstran "\vfil" a "\vskip-\prevdepth",
+kter tam vloil "\endmulti" na dku~\cite[mul:prevgraf],
+vrt se k zlohovanmu vznamu makra \db ibalancecolumns
+a znovu definuje "\par" obdobnm zpsobem jako v~"\begmulti".
+Pak pokrauje ve ten sazby.
+
+\inext{flushcolumns}{\empty}{+-}
+
+
+\subsec Barvy
+%%%%%%%%%%%%%
+
+Deklarujeme \db ifpgcolor, co budeme potebovat v makru "\locpgcolor".
+Dle deklarujeme \db lastpage. Tento registr budeme prbn zvtovat pi
+ten REF souboru v makru "\Xpage" a na konci ten REF souboru tedy bude
+obsahovat slo posledn strany.
+
+\inext{ifpgcolor}{\empty}{+-}
+
+Od verze pdf\TeX{}u 1.40 nabz tento program primitivy
+"\pdfcolorstackinit" a "\pdfcolorstack". Makra v OPmac tyto
+primitivy nepouvaj, protoe:
+
+\begitems
+\item * een v OPmac jsem vytvoil a pouil podstatn dv, ne si programtoi
+ pdf\TeX{}u vbec vimli, e existuje problm s pechzenm barev na nov
+ strnky.
+\item * Primitivy "\pdfcolorstackinit" a "\pdfcolorstack" stle nejsou dokumentovan.
+\item * Barevn een v "pdftex.def" pro La\TeX{} nepovauji za koncepn
+ sprvn, protoe se sna pomoc "\aftergroup" vytvoit zdn, e
+ barvy funguj lokln uvnit skupiny. To je zbyten komplikace
+ navc, kter jde proti pirozenosti nastavovn barev v PDF souboru.
+\enditems
+
+Barvy se v PDF pepnaj pomoc PDF specil "<num> <num> <num> <num> k"
+(pro text a plochy) a "<num> <num> <num> <num> K" pro linky. Pro oba typy
+barev pipravme barevn makra \db Blue, \db Red, \db Brown, \db Green, \db
+Yellow, \db Cyan, \db Magenta, \db White, \db Grey, \db LightGrey, \db Black.
+Uivatel si me definovat dal.
+
+\inext{Blue}{\empty}{+-}
+
+Problm barev v PDF je, e od vskytu specilu pro barvu jsou zmnn barvy
+a po jin vskyt takovho specilu nebo po konec strany. Na kad nov
+stran zan sazba v barv ern. Nm ovem nkdy me obarven text petci
+na dal stranu. Pak ale musme v "\output" rutin (v makru "\prepage")
+nastavit barvu, kter petekla. Ovem jak poznme, e nco peteklo do dal
+strany? Jedin pomoc REF souboru a asynchronnho "\write". Proto makro \db
+setcmykcolor nevkld do PDF jen poadovan specil, ale taky ukld o sob
+informaci do REF souboru. Jakmile se pi ten REF souboru objev "\Xpage",
+zkontrolujeme, zda naposledy nastaven barva byla ern. Pokud ne, dme
+pokyn makru "\prepage" prostednictvm makra "\pg:<slo strany>", aby
+aktivovalo hned po "\headline" barvu naposledy nastavenou. To je tedy
+zkladn idea, nyn implementace:
+
+\inext{ifpdftex}{\count=2 \empty}{+-}
+
+Makro \db pdfK m implicitn hodnotu "k" (barva pro texty a plochy) a
+pechodn pi pouit \db linecolor m hodnotu "K". Prv nastavenou barvu
+pak makro "\setcmykcolor" ulo do REF souboru.
+Jen tehdy, kdy je explicitn
+znmo, e barva nepetee do dal strany, je mon pout ped pouitm
+pepnae barvy prefix \db locpgcolor, kter potla v takovm ppad tisk
+informac do REF souboru. Nsledn budou potlaeny zpisy informac do REF souboru
+vech barevnch pepna a po "\Black" vetn. Dal barevn pepnae (po
+"\Black") se chovaj u normln.
+Toto opaten je zde jen proto, aby byl REF soubor
+ponkud men a pehlednj i v ppad, kdy navrhujeme bohat barevn dokument.
+
+Makra \db Xpdfcolork a \db XpdfcolorK udruj pi ten REF souboru
+informaci o naposledy vloen barv v makrech \db pdflastcolork a
+\db pdflastcolorK (nzev koresponduje typu barvy).
+
+\inext{Xpdfcolork}{\empty}{+-}
+
+Output rutina vkld na kad strnce do REF souboru
+\db Xpage "{<slo strany>}".
+Toto makro pi ten REF souboru kontroluje, zda byla naposledy pouita
+na pedchzejc stran barva ern. Pokud ne, pid do makra
+"\pg:<slo strany>" pokyn pro nastaven barvy ve tvaru
+\db setpgcolor "<k nebo K>{<sla barvy>}".
+Toto makro se spust v output rutin na stran "<slo strany>"
+za "\headline", ale ped sestavenm boxu s textem.
+
+\inext{Xpage}{\empty}{+-}
+
+Makro \db draft vlo do "\headline" box nulov vky a ky "\draftbox",
+kter vystr svou edou sazbu ven ze svho rozmru a je titn dv, ne
+jakkoli jin materil na strnce.
+
+\inext{draft}{\empty}{+-}
+
+V makru \db draftbox "{<text>}" je "<text>" otoen o 55 stup, zvten
+desetkrt a vytitn v barv "\LightGrey". K tomu jsou
+vyuity PDF transformace souadnic.
+
+\inext{draftbox}{\empty}{+-}
+
+
+\subsec Klikac odkazy
+%%%%%%%%%%%%%%%%%%%%%%
+
+Makro \db destactive "[<typ>:<lejblk>]{<vka>}" zalo cl odkazu jen tehdy, kdy
+je "<lejblk>" neprzdn. Ve vertiklnm mdu se nalep na pedchoz box
+dky "\prevdepth=-1000pt" a po vloen boxu s clem vrt hodnotu
+"\prevdepth" do pvodnho stavu, aby nsledujc box byl sprvn dkovn.
+V horizontlnm mdu post vlo "\destbox". Makro
+\db destbox "[<typ>:<lejblk>]{<vka>}" vytvo box nulov vky a z~nj
+vystr nahoru cl klikacho odkazu vzdlen od a o "<vka>". Intern
+pouije pdf\TeX{}ov primitiv "\pdfdest" s parametrem "xyz", co
+charakterizuje obvyklou monost chovn PDF prohlee pi odskoku na cl.
+Podrobnji viz manul k~pdf\TeX{}u.
+
+\inext{dest}{\empty}{+-}
+
+V uivatelsk dokumentaci je zmnno msto "\destactive" makro \db dest
+se stejnmi parametry. Toto makro je implicitn przdn a tedy nein.
+Teprve "\hyperlinks" je pinut k innosti.
+
+Klikac text vytvo makro \db link "[<typ>:<lejblk>]{<barva>}{<text>}".
+Makro pouv
+pdf\TeX{}ov primitiv "\pdfstartlink", ve kterm je vymezena vka a hloubka
+aktivn plochy. Nakonec pepne na poadovanou "<barvu>" (pokud nen ern),
+vytiskne aktivn "<text>" a pepne zpt na ernou barvu. Pdf\TeX{}ov primitiv
+"\pdfendlink" ukon sazbu aktivnho textu.
+
+\inext{link}{^^B\cbrace}{++}
+
+Makro \db urllink "[<typ>:<lejblk>]{<text>}" pracuje
+analogicky jako "\link". Jen navc pidv nkter
+atributy do PDF vstupu a pracuje s barvou "\urlcolor".
+
+\inext{urllink}{^^B\cbrace}{++}
+
+Makro \db url "{<odkaz>}" vysz "<odkaz>" strojopisem, piem znak "/" je
+na pechodnou dobu aktivn a definovn jako "\\". Toto makro pi sestavovn
+externho odkazu zptn expanduje na normln "/", ale pi sazb expanduje
+na "\discretionary", aby bylo mon v nm rozdlit sazbu do vce dk.
+
+\inext{url}{\empty}{+-}
+
+Makra \db toclink, \db pglink, \db citelink, \db reflink, \db ulink, kter se
+specializuj na urit typ linku, implicitn nedlaj nic:
+
+\inext{toclink}{\empty}{+-}
+
+Ovem po pouit makra \db hyperlinks "{<barva-lok>}{<barva-url>}" se
+uveden makra "\toclink", "\pglink", "\citelink" a "\reflink" probouzej k
+ivotu:
+
+\inext{hyperlinks}{\empty}{+-}
+
+Pdf\TeX{}ov primitivy pro klikac odkazy dovoluj dopravit do PDF dal
+atributy odkazu za slovem "attr". Tam je mon dt najevo, e chceme vidt
+aktivn plochy ve form rmek. To zad makro \db pdfborder "{<typ>}", kter
+expanduje na nic, pokud nen kontroln sekvence "\<typ>border" definovna.
+Jinak expanduj na "arrt" "/C" s obsahem podle "\<typ>border".
+
+\inext{pdfborder}{\empty}{+-}
+
+Pokud je dokument zpracovn do DVI vstupu, je vhodn ve zmnn makra
+deaktivovat:
+
+\inext{ifpdftex}{\empty}{+-}
+
+
+\subsec Outlines -- obsah v zloce PDF dokumentu
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Hlavn problm implementace strukturovanho obsahu do zloky PDF dokumentu
+spov v~tom, e pi vkldn jednotlivch poloek obsahu je nutno znt
+poet pmch potomk kad poloky (v~rmci stromov struktury poloek),
+ovem tito pm potomci budou zaazeni pozdji. OPmac tento problm e
+dvma prchody nad daty, kter jsou vytvoeny pro tisk obsahu, tj. v makru
+"\toclist". V prvnm prchodu spot potebn potomky a ve druhm
+prchodu zaad vechny poloky postupn jako \uv{outlines} do zloky.
+Pipomeneme si, e v "\toclist" se nachz seznam maker tvaru
+"\tocline{<odsazen>}{<font>}{<slo>}{<text>}{<strana>}".
+Makro \db outlines "{<rove>}" nejprve nastav "\tocline" na hodnotu
+"\outlinesA" a projde "\toclist". Pak je nastav na hodnotu "\outlinesB" a
+znovu projde "\toclist".
+
+\inext{def\nb outlines}{^^B\cbrace}{++}
+
+V makru \db outlinesA "{<odsazen>}{<font>}{<slo>}{<text>}{<strana>}"
+potme potomky. Makro je navreno tak, aby bylo
+snadno roziteln na libovolnou rove hloubky stromu, nicmn pro poteby
+OPmac sta hloubka ti (kapitoly, sekce, podsekce). rove uzlu peteme v
+parametru "<odsazen>". Pro kapitolu je "<odsazen>"=0, pro sekci je
+"<odsazen>"=1 a pro podsekci je "<odsazen>"=2.
+Pedstavme si vedle sebe adu counter
+"\count0:\count1:\count2". Pi sekvennm ten jednotlivch uzl stromu
+si kad uzel zvt v tto pomysln ad hodnotu svho
+counteru o~jedniku. Kapitoly zvtuj "\count0", sekce "\count1", podsekce
+"\count2". Sta tedy zvtit "\count<odsazen>". ada counter pak
+jednoznan uruje zpracovvan uzel.
+Uzly pro kapitoly maj pidlenu kontroln sekvenci "ol:\the\count0"
+a uzly pro sekce maj pidlenu kontroln sekvenci
+"ol:\the\count0:\the\count1". Jsou to makra, jejich obsahem je poet
+potomk danho uzlu. Makrem \db addoneol "<csname>" zvtme obsah dan
+kontroln sekvence o~jedniku. Pkazem "\ifcase<odsazen>" eme, ktermu
+rodii je teba zvednout tuto hodnotu. Pi nule (kapitola) nikomu,
+nebo dan uzel nem rodie. Pi "<odsazeni>"=1 zvtme o
+jedniku poet potomk nadazen kapitole a pi "<odsazeni>"=2 nadazen
+sekci. Asi by bylo pehlednj na zatku definovat vechny potebn
+sekvence "ol:<nco>" a nastavit jim hodnotu~0. Ovem etme pamt i asem,
+take zakldme sekvenci "ol:<nco>" teprve v makru "\addoneol" a to tehdy,
+kdy je ji poprv poteba zvtit o~jedniku.
+
+\inext{outlinesA}{\count=2 ^^B\cbrace}{++}
+
+V makru \db outlinesB "{<odsazen>}{<font>}{<slo>}{<text>}{<strana>}"
+vkldme jednotlivou poloku obsahu do zloek pomoc pdf\TeX{}ovho
+primitivu\hfil\break
+"\pdfoutline goto name{<lejblk>} count<potomci> {<text>}".
+slo "<potomci>" je opateno znamnkem mnus prv tehdy, kdy chceme, aby
+poloka ve vchozm stavu nezobrazovala sv potomky, ale jen trojhelnek.
+Potomci se zobraz a po kliknut na trojhelnek. V makru \db outlinelevel
+mme makrem "\outlines" pipravenu rove rozeven, kterou si uivatel
+peje. Nejprve pitenm "\count<odsazen>" dostaneme adu
+"\count0:\count1:\count2" do stejnho stavu, jako v pedchozm prvnm prchodu
+a mme tm jednoznan pidlen uzel stromu.
+Do "\tmpnum" vlome daj o potu potomk danho uzlu. K tomu je poteba
+rozvtvit vpoet pkazem "\ifcase", protoe pro rznou rove uzlu mme
+daj v~rzn definovanm makru. Pkazem "\protectlist" zastavme expanze
+ppadnch maker registrovanch pomoc "\addprotect" a definujeme vlnku jako
+mezeru (v zloce vypad lp ne vlnka). Dle pomoc "\setcnvcodesA"
+expandujeme "\toasciidata". Pomoc "\setlccodes\toasciidata" pipravme
+"\lccode" znak tak, aby "\lowercase" odstranil hky a rky. To
+vzpt provedeme, ale nejprve jet do toho me promluvit uivatel v makru
+"\cnvhook", kter je implicitn nastaveno na makro przdn.
+
+\ilabel [outlines:setlccodes] {setlccodes}
+
+\inext{outlinesB}{^^B\cbrace}{++}
+
+Makro \db setcnvcodesA zkontroluje podle definovanosti "\r", zda je zapnut
+"\csaccents" a pokud je, expanduje "\toasciidata".
+Makro \db toasciidata potebujeme expandovat, protoe
+neobsahuje pm zpis znak. Dvod je zejm, nechceme, aby se
+soubor {\tt opmac.tex} stal zvisl na pouitm kdovn.
+
+\inext{setcnvcodesA}{\count=2 ^^B\cbrace}{++}
+
+Na dku \cite[outlines:setlccodes]
+se makro \db setlccodes spust jako "\setlccodes AAAAa...{}{}".
+Toto makro si odloupne dva parametry "xy", provede "\lccode`x=`y" a
+v~rekurzivnm cyklu pokrauje v~innosti, dokud nenaraz na "{}{}".
+
+\inext{setlccodes}{\empty}{+-}
+
+Makro \db insertoutline "{<text>}" vlo jedinou poloku do zloky. Pro
+tuto poloku se pedpokld nulov poet potomk. Vyuit: uivatel me
+takto odkzat na zatek nebo konec dokumentu.
+
+\inext{insertoutline}{\empty}{+-}
+
+Pokud je dokument zpracovn do DVI vstupu, je vhodn ve zmnn makra
+deaktivovat:
+
+\inext{ifpdftex}{\empty}{+-}
+
+
+
+\subsec Verbatim
+%%%%%%%%%%%%%%%%
+
+Verbatim vpisy budou odsazeny o "\ttindent". Je nastaven na hodnotu
+"\parindent" v dob ten souboru a spolen s "\parindent" by ml
+uivatel zmnit i "\ttindent". ta \db ttline sluje dky bnho verbatim vstupu,
+ta \db viline sluje dky souboru tenho pomoci "\verbinput". Souborov
+deskriptor \db vifile bude piazen souboru v makru "\verbinput".
+
+\inext{newcount}{\empty}{+-}
+
+Makra \db setverb, \db begtt "...\endtt" jsou dokumentovna v TBN, str. 29.
+
+\inext{setverb}{testparA}{++}
+
+Makro "\begtt" oich na konci sv innosti, zda se nachz pod "\endtt"
+przdn dek (alias "\par"). K tomu slou makra \db testparA (pesko
+mezeru, kter za "\endtt" vdy je), \db testparB (pete nsledujc znak
+pomoc "\futurelet") a \db testparC (oet, zda tento nsledujc znak je
+"\par").
+
+\inext{testparA}{\empty}{+-}
+
+Makro \db activettchar pracuje podobn, jako makro "\adef". Navc
+potebuje pout nov naten znak ve sv aktivn kategorii jako separtor
+vymezujc konec parametru.
+
+\inext{activettchar}{\empty}{+-}
+
+Makro \db verbinput si pomoc "\tmpa" ov, zda minule byl ten stejn
+soubor. Pokud ne, oteve soubor "#2" ke ten pomoc "\openin" a ulo do
+\db vifilename jmno naposledy otevenho souboru. Dle zkontroluje pomoc
+"\ifeof", zda je mon ze souboru st. Pokud ne, vype se varovn a
+pomoc \db skiptorelax se pesko zbytek obsahu makra a po "\relax",
+take se neprovede nic dalho. Je-li soubor spn oteven nebo byl-li
+oteven ji minule, pust se makro "\verbinput" do prozkoumn parametru
+"#1" zapsanho v zvorce ped jmnem souboru.
+
+\inext{verbinput}{\empty}{+-}
+
+Clem vyhodnocen parametru v zvorce makra "\verbinput" jsou dva daje: \db
+vinolines bude obsahovat poet dk, kter je od zatku souboru nutno
+peskoit, ne se m zahjit pepisovn dk a \db vidolines bude
+obsahovat poet dk, kter se maj pepsat ze souboru do dokumentu.
+Psmena "vi" na zatku tchto nzv pedstavuj zkratku pro "verbinput".
+Vyeten parametru ukonenho textem "+\relax" se v makru \db
+viscanparameter vtv na ppad, kdy parametr obsahuje symbol "+" a pouije
+se pak \db viscanplus. Druh ppad, kdy uivatel nenapsal symbol plus
+(take parametr "#2" makra "\viscanparameter" je przdn) je dle
+vyeten v makru \db viscanminus. Ob makra si oddl do svch parametr
+prvn a druhou slici (kad z nich me bt przdn) a nastav podle
+zdokumentovanch pravidel pro zpis parametru odpovdajc intern daje
+"\vinolines" a "\vidolines". Vychz pitom z pedpokladu, e registr
+"\viline" obsahuje slo naposledy petenho dku (nebo nulu, jsme-li na
+zatku souboru).
+
+\inext{viscanparameter}{\count=3 ^^B\cbrace}{++}
+
+Makro \db doverbinput provede samotnou prci: pesko "\vinolines" dk a
+pepe "\vidolines" dk. To provede v prvnm a druhm cyklu "\loop". Ne
+se k tmto cyklm dostane, mus udlat jist ppravn prce. Nejprve odete
+od "\vinolines" poet u petench dk, protoe pi opakovanm ten
+stejnho souboru jej neotevrme znova, jen peskome pslun men poet
+dk. Pokud ale se uke, e rozdl je zporn (je poteba se v souboru
+vracet dozadu), makro znovuoteve soubor ke ten pomoc "\openin" a uprav
+podle toho pslun daje o dcch. Pak zahj skupinu, dle pomoc
+"\setverb" nastav specilnm znakm kategorii 12 a pomoc "\adef{ }{ }"
+nastav mezee aktivn kategorii (bude expandovat na neaktivn mezeru jako
+"\space") a tak nastav kategorii 12 znaku, kter byl deklarovn pomoc
+"\activettchar". Piprav odsazen podle "\ttindent" a spust uivatelsk
+"\tthook". Je-li poteba tisknout sla dk, piprav si na to font
+"\sevenrm", kter m velikost rovnu 0,7 nsobku zkladn velikosti. A pust se do
+zmnnch dvou cykl "\loop". V obou cyklech se me stt, e narazme
+neekan na konec souboru. To je oeteno testem "\ifeof\vifile" a nslednou
+pravou tae "\tmpnum" tak, abychom okamit vyskoili z cyklu. Druh
+cyklus obsahuje jet jeden speciln rys: peje-li si uivatel st a do
+konce souboru, je nastaveno "\vidolines" na nulu a ped zahjenm cyklu je
+ta "\tmpnum" nastaven na "-1". Uvnit cyklu je pak zajitno, e v tomto
+ppad nen ta zvtovn o jedniku. Po ukonen prce v tchto dvou
+cyklech je ukonena skupina, vloena mezera "\ttskip" a makrem "\testparB"
+se ov, zda nsleduje przdn dek.
+
+\inext{doverbinput}{^^B\cbrace}{++}
+
+V prvnm cyklu "\loop" v tle makra "\doverbinput" se opakovan vol
+\db vireadline, co je makro, kter pete dal dek ze souboru. V druhm
+cyklu se opakovan vol "\vireadline" nsledovan \db viprintline. Toto
+makro vytiskne peten dek do dokumentu. Ped dkem me bt v "\llap"
+vytitno slo dku. Zle na hodnot "\ttline". Je to naprogramovno v
+souladu s uivatelskou dokumentac.
+
+\inext{vireadline}{\empty}{++}
+
+
+\subsec Jednoduch tabulka
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Tabulku makrem "\table" vytvome jako "\vbox", ve kterm je "\halign". Je
+tedy poteba nast deklaraci typu "{llc|rr}" a pevst ji na deklaraci pro
+"\halign". Tato deklarace obsahuje znak "#" a tento znak se obtn pidv
+do tla maker. Nashromdme tedy postupn deklaraci pro "\halign" do
+registru typu "\toks", kter je nazvan \db tabdata. Dle definujeme intern
+\db tabstrutA, kter bude obsahovat uivatelv "\tabstrut", ovem pechodn
+budeme toto makro mnit. Tak deklarujeme ta \db colnum, ve kterm budeme
+mt po peten deklarace uloen poet sloupc tabulky.
+Dle bhem skenovn "<deklarace>" vytvome makro \db
+ddlinedata, kter bude obsahovat "&\dditem &\dditem ..." (poet tchto dvojic
+bude roven $n-1$, kde $n$ je poet sloupc). Pokud je v deklaraci dvojit
+svisl ra, bude v makru "\ddlinedata" na pslunm mst jet "\vvitem".
+Makro "\ddlinedata" pak pouijeme v "\crli" a v "\tskip",
+Strek Phoda to me pout jinde a jinak. Konen makro \db vvleft je
+neprzdn, pokud pln vlevo tabulky je dvojit ra.
+
+\inext{newtoks}{\empty}{+-}
+
+Makro \db table "{<deklarace>}{<data>}" vypad takto:
+
+\inext{table}{\empty}{+-}
+
+Makro \db scantabdata postupn te znak po znaku z deklarace "\table" a podle
+petenho znaku ukld do "\tabdata" odpovdajc sek skuten deklarace pro
+"\halign". Vol pitom "\addtabvrule" nebo "\addtabitem{\tabdeclare<znak>}".
+
+\inext{scantabdata}{^^B\cbrace}{++}
+
+OPmac peddefinuje ti "<znaky>" pro "<deklaraci>", sice "<znaky>" "c", "l", "r"
+v makrech \db tabdeclarec, \db tabdeclarel, \db tabdeclarer.
+
+\inext{tabdeclarec}{\empty}{+-}
+
+Makro \db unsskip vkldan na konec kad datov poloky odebere mezeru,
+pokud m nenulovou zkladn velikost. Uivatel toti nkdy dvaj kolem
+datovch poloek mezery a nkdy ne, pitom chtj, aby se jim to chovalo
+stejn. Je nron si pamatovat, e mezery ped polokou jsou
+ignorovny primitivem "\halign", ale mezery za polokou jsou podstatn. Tak
+radji i mezery za polokou udlme nepodstatn.
+
+\inext{unsskip}{}{++}
+
+Pklad: po deklaraci: "{|cr||cl|}" makro "\scantabdata" vytvo:
+
+\begtt
+tabdata: \vrule\tabiteml\hfil#\unsskip\hfil\tabitemr
+ &\tabiteml\hfil#\unsskip\tabitemr \vrule\kern\vvkern\vrule
+ &\tabiteml\hfil#\unsskip\hfil\tabitemr
+ &\tabiteml#\unsskip\hfil\tabitemr\vrule
+ddlinedata: &\dditem &\dditem\vvitem &\dditem &\dditem
+\endtt
+
+Makra \db addtabitem, \db addtabdata a \db addtabvrule vlo do "\tabdata" a
+"\ddlinedata" poadovan daj. Makro "\addtabitem" pozn podle "\colnum=0",
+zda vkld data pro prvn sloupec (nepidv~"&") nebo pro dal sloupce
+(pidv~"&"). Makro "\addtabvrule" pozn podle "\tmpa", zda ped
+nm pedchz dal "\vrule". Pokud ano, vlo dodatenou mezeru
+"\kern\vvkern" a pid "\vvitem" do "\ddlinedata".
+
+\inext{addtabitem}{\empty}{+-}
+
+Ne se pustme do vkladu dalch maker, pedvedeme pklad, ve kterm je
+definovno dal psmeno "P" pro "<deklaraci>". Psmeno "P" vymez
+tabulkovou poloku, je m stanovenou ku a del text se lme
+do vce dk. Je mon si vyzkouet teba tento kd:
+
+\begtt
+\newdimen\Pwidth
+\def\tabdeclareP {\enskip\vtop{\hsize=\Pwidth \rightskip=0pt plus1fil
+ \baselineskip=1.2em \lineskiplimit=0pt \noindent ##\tabstrut}\enskip}
+
+\Pwidth=3cm \table{|c|P|}{\crl
+ aaa & Tady je del textk, kter se nevejde na jeden dek. \crl
+ bb & A tady je taky je nco delho. \crl}
+\endtt
+
+Pusme se nyn do rozboru maker na ukonen dk.
+Makro \db crl pid ru pomoc "\noalign". Makro \db crll pid dvojitou
+ru pomoc "\noalign".
+
+\inext{crl}{\empty}{+-}
+
+Makro \db crli provede "\cr" a dle se vno do dku tabulky, ve kterm
+klade postupn nsledujc
+"\omit\tablinefil &\omit\tablinefil &..."
+Pitom v mst dvojit vertikln ry naklade navc "\tabvvline".
+Makro \db tablinefil vlo natahovac ru na ku cel poloky a makro
+\db tabvvline vlo dv "\vrule" vzdleny od sebe o "\vvkern". Tm vznik
+petrzen msto v postupn tvoen lince. Ke sprvnmu nakladen uvedench
+povel pouije makro "\crli" obsah makra "\ddlinedata" a vlevo pidv
+"\vvleft". Ped sputnm makra "\ddlinedata" definuje odpovdajcm
+zpsobem \db dditem a \db vvitem.
+
+\inext{crli}{\empty}{+-}
+
+Makro \db tskip prostednictvm \db tskipA pechodn vyprzdn "\tabstrut"
+pedefinovnm "\tabstrutA" a tak vyprzdn "\dditem" a "\vvitem", aby
+po pouit "\ddlinedata" vznikl dek tabulky s przdnmi polokami.
+dek je vypodloen strutem stanoven vky "\tmpdim".
+Nakonec je poteba vrtit "\tabstrutA" do pvodnho stavu.
+
+\inext{tskip}{\empty}{+-}
+
+Globln zmna ek vech linek tvoench pomoc "\vrule" a "\hrule" je
+provedena makry \db rulewidth a \db rulewidthA. Mylenka je dokumentovna v
+TBN na str.~328.
+\dgn \nb orivrule
+\dgn \nb orihrule
+
+\inext{orihrule}{\empty}{+-}
+
+Makro \db frame "{<text>}" vlo vnj "\vbox{\hrule..\hrule}".
+V nm se nachz dal box "\hbox{\vrule\kern\vvkern..\kern\vvkern\vrule}"
+a v nm "\vbox{\kern\hhkern..\kern\hhkern}".
+Nejvce uvnit je pak "\hbox{<text>}". To by pro sazbu rmovanho textu
+stailo, nicmn my jet eme pravu vslednho boxu tak, aby ml a
+ve stejnm mst jako je a textu. Proto ulome "\hbox{<text>}" do boxu0
+a zmme mu hloubku. V promnn "\tmpdim" spotme celkovou hloubku
+vslednho boxu. Ve vpotu pitme vku "\hrule", kter nemus bt
+0.4pt. Proto si jej vku zmme v boxu1. Ve vnjm "\vbox"u po
+nakreslen spodn "\hrule" se pak vracme pomoc "\kern-\tmpdim" na rove
+a a zde umstme strut hloubky "\tmpdim", aby sazba smrem dol
+nepenvala, ale byla obsaena v~hloubce vslednho boxu.
+
+\inext{frame}{\empty}{+-}
+
+
+\subsec Vloen obrzku
+%%%%%%%%%%%%%%%%%%%%%%%
+
+Nejprve deklarujeme \db picw.
+
+\inext{picw}{\empty}{+-}
+
+Makro \db inspic je zkratka za pouit primitiv "\pdfximage",
+"\pdfrefximage" a "\pdflastximage". Kdo si to m pod pamatovat.
+Nen-li aktivovn PDF vstup, napeme jen varovn a neprovedeme nic.
+Pokud budeme pracovat se stejnmi obrzky v jednom dokumentu, bude
+vhodn monosti primitiv vyut naplno.
+
+\inext{ifpdftex}{\empty}{+-}
+
+
+\subsec PDF transformace
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+Makro \db pdfscale "{<vodorovn>}{<svisle>}" pracuje jednodue:
+
+\inext{pdfscale}{\empty}{+-}
+
+Na druh stran makro \db pdfrotate "<hel>" vytvo
+"\pdfsetmatrix{"$\cos\varphi\enspace\sin\varphi\enspace
+ {-}\sin\varphi\enspace\cos\varphi$"}",
+co nen jednoduch, protoe funkce $\cos$, $\sin$ nejsou v \TeX{}u
+implementovny. Balek "trig.sty" nabz vyhodnocovn tchto funkc pomoc
+Taylorovch polynom, nicmn OPmac nechce bt zvisl na balcch a tak
+chce ukzat alternativn zpsob implementace. Makro "\pdfrotate" pracuje
+zhruba takto: je-li argument 0, neprovede nic, je-li argument 90, provede
+otoen o~90 stup. V ostatnch ppadech zavol makro \db pdfrotateA,
+kter rozlo argument na celou "#1" a zlomkovou "#2" st. V dal sti
+na dcch~\cite[rot:360] a \cite[rot:smallsin] se
+zabv jen celmi stupni. Nejprve pomoc prvnho a druhho "\loop" posune
+argument o cel nsobky 360 stup tak, e pot je argument mezi
+0 a 360 stupni, a pitom se hodnoty funkc $\sin$ a $\cos$ nezmnily.
+Ve tetm "\loop" postupn sniuje argument o 90 stup a pitom dl rotaci
+o 90 stup tak dlouho, a mme argument mezi nulou a devadesti.
+Je-li dle argument vt ne 44 stup, otome se o 45 a snme argument
+o 45. Je-li dle argument vt ne 22, otome se o 22 a snme argument o
+22. Nyn mme argument v mnoin $\{0, 1, 2, 3, \ldots, 22\}$. Pro kad
+prvek z tto mnoiny argument mme pedpipraveny hodnoty funkc
+$\cos$ a $\sin$ v makrech \db smallcos a \db smallsin. Pouijeme je pro
+zvrenou rotaci. Tm mme sazbu otoenou o cel stupn.
+Dal st makra na dcch \cite[rot:174532] a \cite[rot:else]
+e jemn dotoen podle zlomkov sti argumentu. V intervalu nula a
+jeden stupe aproximujeme funkci $\cos$ konstantn jednikou a funkci $\sin$
+linern funkc $x\cdot \pi/180$. V danm rozmez je to velmi dobr
+aproximace.
+
+\ilabel [rot:360] {360}
+\ilabel [rot:smallsin] {smallsin}
+\ilabel [rot:174532] {174532}
+\ilabel [rot:else] {else\space\space\space\space}
+
+\inext{pdfrotate}{\empty}{+-}
+
+Pro ppad, e nepracujeme s PDF vstupem, definujeme klov primitivy
+pdf\TeX{}u jako makra, kter nedlaj nic.
+
+\inext{ifpdftex}{\empty}{+-}
+
+
+
+\subsec Poznmky pod arou a na okraji strnek
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Makro \db fnote pedpokld, e sprvn slo poznmky na dan strnce je
+pipraveno v makru "\fn:<slo>", kde "<slo>" je celkov slo poznmky nap
+celm dokumentem sledovan globlnm taem \db fnotenum.
+Makro ohls svou existenci do REF souboru zznamem "\Xfnote" (bez
+parametru). Dle vytiskne znaku pomoc "\fnmarkx" a ve skupin pejde na
+men sazbu a zavol plain\TeX{}ov makro "\vfootnote", kter vlo sazbu
+pomoc tzv. insertu (TBN, kapitola~6.7). Plain\TeX{}ov nastaven tto
+tdy insertu nen makrem OPmac nijak mnno.
+
+\inext{fnotenum}{^^B\cbrace}{++}
+
+Makro \db fnotemark pite lokln k "\fnotenum" svj parametr a vytiskne
+odpovdajc znaku. Cel prce makra probh ve skupin, take po ukonen
+makra se "\fnotenum" vrt do sv pvodn hodnoty.
+
+\inext{fnotemark}{^^B\cbrace}{++}
+
+Makro \db fnotetext teprve zvedne ta "\fnotenum" globln a vytiskne
+poznmku pomoc plain\TeX{}ovho "\vfootnote".
+
+\inext{fnotetext}{^^B\cbrace}{++}
+
+Makro \db fnmarkx vytiskne otaznk nebo \db thefnote. Pedpokld se, e si
+uivatel pedefinuje "\thefnote" k obrazu svmu. Lokln slo poznmky na
+strnce m pipraveno v makru \db locfnum.
+
+\inext{fnmarkx}{\empty}{+-}
+
+Pi ten REF souboru se pro kadou stranu pete nejprve "\Xpage", co
+je makro, kter pronuluje \db fnotenumlocal.
+Makru \db Xfnote tedy sta pozvednout
+"\fnotenumlocal" o jedniku a pomoc
+"\sxdef" si tuto hodnotu zapamatovat v makru "\fn:<slo>".
+
+\inext{Xfnote}{\empty}{+-}
+
+Registr \db mnotenum.
+globln sluje okrajov poznmky a pln podobnou funkci, jako registr
+"\fnotenum" pro podrov poznmky.
+
+\inext{mnotenum}{\empty}{+-}
+
+Makro \db mnote ve vertiklnm mdu zalo box nulov vky pomoc
+"\mnoteA" a vycouv na pvodn msto sazby pomoc "\vskip-\baselineskip". V
+odstavcovm mdu toto makro nalep box nulov vky pod prv vytvoen
+dek v odstavci. Vme, e "\vadjust" nalep svj materil bez mezery pod
+tento dek. My ovem potebujeme vycouvat nahoru na a dku. To nejde
+snadno provst, protoe hloubka dku je promnliv. Proto do je dku
+vloen "\strut" a pedpokld se, e nyn m dek hloubku "\dp\strutbox" a
+o tento rozmr makro vycouv nahoru. Vlo poadovan box vky nula na
+rovni a a pak se vrt na pvodn msto.
+
+\inext{mnote}{^^B\cbrace}{++}
+
+Makro \db mnoteA si zjist, zda je v makru "\mn:<slo>" uloen primitivn
+pkaz "\left" nebo "\right". Podle toho pozn, zda m umstit poznmku
+doleva nebo doprava. Rovn d o sob vdt do REF souboru vloenm
+sekvence "\Xmnote" (bez parametru). Sazba mus v obou ppadech vyprodukovat
+box nulov vky i hloubky. Proto je "\vtop", uvnit kterho je text poznmky
+zpracovn, vloen pechodn do boxu0 a je mu pronulovna hloubka. Nulov
+vka je zazena pomoc "\vbox to0pt{\vss\box0}". Vlastn sazbu poznmky
+zahajujeme pomoc "\noindent" s tm, e je pipraven prun "\leftskip" nebo
+"\rightskip" podle toho, zda poznmku klademe vlevo nebo vpravo.
+Pi kladen vlevo musme pout "fill", abychom peprali natahovac mezeru z
+"\parfillskip".
+
+\inext{mnoteA}{^^B\cbrace}{++}
+
+Makro \db Xmnote pracuje bhem ten REF souboru a vyuv toho, e makro
+"\Xpage" nastavuje slo prv procesovan strany do registru "\lastpge".
+Take sta pout "\sxdef" nsledujcm zpsobem:
+
+\inext{Xmnote}{\empty}{+-}
+
+Makro \db fixmnotes "<token>" pedefinuje v cyklu vechny definovan
+kontroln sekvence "\mn:<slo>" tak, e budou obsahovat "<token>".
+Tm toto makro zlikviduje prci makra "\Xmnote", ale o to nm prv jde v
+ppad, kdy chceme mt poznmky na jednoznan dan stran.
+
+\inext{fixmnotes}{\empty}{+-}
+
+
+\subsec Bibliografick reference
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Nejprve uvedeme deklarace deskriptoru \db auxfile a ta
+\db bibnum a \db lastcitenum.
+
+\inext{auxfile}{\empty}{+-}
+
+Makro \db cite "[<lejblk1>,<lejblk2>,...]" si prostednictvm \db citeA
+zavol "\rcite{<lejblk>}" pro kadou jednotlivou poloku oddlenou rkou ve
+svm parametru. Makro "\citeA" v sob skrv fintu: parametr nem jedin,
+ale dva "#1#2". Protoe prvn z nich je neseparovan, ignoruj se ppadn
+mezery za rkou a "#1" obsahuje prvn psmeno "<lejblku>". Uvnit makra
+mnme \db citesep, co je rka a mezera, kter se m mezi daji
+vytisknout. Makro \db nocite "[<lejblk1>,<lejblk2>,...]" je definovno
+stejn, jen piprav jin vznam makra "\docite", krz kter budeme tisknout
+v "\rcite" potebn daj. Veker
+innost maker "\cite" a "\nocite" probh uvnit skupiny.
+
+\inext{cite}{\empty}{+-}
+
+Makro \db rcite "{<lejblk>}" e zhruba eeno nsledujc vci:
+
+
+\begitems
+\item * Zjist, zda je definovn "\csname bib:<lejblk>\endcsname". Pokud ano,
+ vytiskne jeho hodnotu, pokud ne, vytiskne do textu otaznky a na terminl
+ varovn. Tato kontroln sekvence zane bt znm po pouit
+ "\bib[<lejblk>]" nebo "\bibitem{<lejblk>}". Tato makra ulo
+ odpovdajc informaci do REF souboru, odkud ji pi opakovanm \TeX{}ovn
+ vyzvedneme. Je to klasick innost, kterou provozujeme i u ostatnch
+ kovch referenc.
+\item * Ulo o sob zprvu do bufferu "\citelist". To pouijeme
+ v makrech "\usebibtex" nebo "\usebbl".
+\enditems
+
+Makro "\rcite" je naprogramovno zhruba takto
+
+\def\begtthook{\langleactive}
+\begtt
+function rcite(<lejblk>) {
+ if (<lejblk> == '*') { <zapi do> \citelist '*'; return; }
+ if (\bib:<lejblk> == nedef) {
+ <zapi do> \citelist <lejblk>;
+ <na terminl:> "Warning, cite [label] unknown";
+ <do tiskovho vstupu:> "??";
+ \bib:<lejblk> = empty;
+ return;
+ if (\bib:<lejblk> == empty) {
+ <do tiskovho vstupu:> "??";
+ return;
+ }
+ if (\bib:<lejblk> kon znakem '&') {
+ <zapi do> \citelist <lejblk>;
+ <odstra znak & z obsahu makra> \bib:<lejblk>;
+ }
+ <tiskni obsah makra> \bib:<lejblk>;
+}
+\endtt
+
+\def\begtthook{\langleactive}
+Vklad kdu: Protoe chceme etit pamt bufferu "\citelist", zapisujeme
+tam kad "<lejblk>" jen jednou. Zda se nedeklarovan "<lejblk>" vyskytl
+poprv poznme podle nedefinovan hodnoty "\bib:<lejblk>". Zda se vyskytl
+pozdji znovu poznme podle toho, e m hodnotu "empty". Zda se deklarovan
+"<lejblk>" vyskytl poprv poznme podle znaku "&" v jeho obsahu.
+
+Nvrh kdu v C-like notaci nyn pevedeme do maker v \TeX{}u:
+
+\inext{rcite}{^^B\cbrace}{++}
+
+Asi nejzajmavj vychytvka v tomto makru se tk testu na znak "&".
+Implicitn pi ten REF souboru se do makra "bib:<lejblk>" ulo
+"\bibnn{<hodnota>}&". Pkaz "\if" za sebou totln expanduje ve
+nsledujc, take nejprve naraz na "&", pak se obsah "bib:<lejblk>"
+expanduje prostednictvm \db bibnn "{<hodnota>}" na nic a za tmto
+\uv{nic} se zjev druh znak "&", kter se tedy pilep na ten prvn.
+Ano, je pravda, e tyto dva znaky jsou stejn.
+Odstrann tohoto znaku probh znovu totln expanz,
+tentokrt "\bibnn" prvn parametr "<hodnota>" zopakuje a druh parametr
+se znakem "&" zahod.
+
+Ne se pustme do vkladu makra "\docite", pipravme si makra \db printcite
+"<poloka>" a \db printdashcite "<poloka>". Prvn z nich tiskne jednu
+poloku oddlenou od ppadn
+dal rkou, druh tiskne poloku, ped kterou pedchz pomlka
+vyznaujc interval poloek. Pointa makra "\printcite" je v tom, e si samo
+po prvnm zavoln piprav separtor "\citesep" (kter je na zatku
+innosti "\cite" przdn), take pi opakovanm voln "\printcite" se
+vytiskne i poadovan separtor. Pomlka v "\printdashcite" je schovna do
+"\hbox", aby nedochzelo tsn za n ke zlomu dku.
+
+\inext{printcite}{\empty}{+-}
+
+Makro \db docite "<poloka>" vytiskne otaznky pi przdnm parametru a jinak
+vytiskne prostednictvm "\printcite" jednu "<poloku>". Krom toho e pi
+nenulovm "\lastcitenum" sluovn po sob nsledujcch sel poloek do
+interval. Naposledy vytitnou poloku uchovv v registru "\lastcitenum".
+Pi ptm zavoln zvt "\lastcitenum" o jedniku a srovn ji s
+"<polokou>". Jsou-li si rovny, jde o nsledujc poloku v ad a takovou
+poloku netiskneme, nicmn si jej hodnotu uchovme v "\tmpb". Pokud je
+mezi souvislou adou poloek dra, tj. "\lastcitenum" se nerovn
+"<poloce>", pak dovytiskneme pedchoz interval pomoc
+"\printdashcite{\the\tmpb}" a nsledn vytiskneme i "<poloku>".
+Makro \db shortcitations jednodue nastavuje "\lastcitenum" na nenulovou
+hodnotu a tm probud k ivotu hlavn st makra "\docite".
+
+\inext{docite}{\empty}{+-}
+
+Nsleduje kd makra \db bib "[<lejblk>]", kter prostednictvm
+\db wbib "{<lejblk>}{<hodnota>}" vlo do REF souboru propojen daje o
+tom, jak m "<lejblk>" piazeno slo v seznamu literatury.
+Makro "\wbib" pipoj ped "\wref" pkaz "\immediate" prv tehdy, kdy
+"\wref" je ve stavu, kdy skuten zapisuje do souboru REF.
+Makro \db Xbib pracuje pi ten souboru REF a dl to, co jsme si ekli u
+dve: nastav hodnotu makra "\bib:<lejblk>" na "\bibnn{<hodnota>}&".
+
+\inext{bib}{\empty}{+-}
+
+Makro \db addcitelist "{<lejblk>}" pid do \db citelist daj ve tvaru
+"\lcite[<lejblk>]". Hranat zvorky jsou pouity proto, aby fungoval test
+"\isinlist\citelist{[<lejblk>]}". Jak uvidme za chvli, makro
+"\addcitelist" zmn bhem innosti makra "\usebibtex" svj vznam na
+\db writeaux, aby ppadn pouit "\cite" a za "\usebitex" rovnou
+zapisovalo do AUX souboru. Podobn makro "\addcitelist" zmn v makru
+"\usebbl" svj vznam \db writeXcite "{<lejblk>}",
+aby v ptm prchodu \TeX{}em
+mlo makro "\usebbl" pehled i o vskytech "\cite", kter jsou napsny
+pozdji, ne "\usebbl".
+
+\inext{addcitelist}{\empty}{+-}
+
+Ne se pustme do vkladu maker "\usebibtex", "\genbbl" a "\usebbl", uvedeme
+strun popis innosti Bib\TeX{}u. Pkaz "bibtex <dokument>" zpsob,
+e program {\tt bibtex} se podv do souboru "<dokument>.aux" a tam si vm
+sekvenc \db bibdata "{<bib-bze>}", \db bibstyle "{<bib-style>}" a \db
+citation "{<lejblk>}". Na zklad toho nsledn pete soubor
+"<bib-bze>.bib" se zdrojovmi zpisy bibliografickch daj.
+Pro konverzi tchto zdrojovch zpis do vstupnho souboru "<dokument>.bbl"
+pouije stylov soubor "<bib-style>.bst". Nen-li mezi sekvencemi
+"\citation" uvedeno "\citation{*}", program {\tt bibtex} zahrne do vstupu
+jen ty bibliografick daje, kter maj "<lejblk>" shodn s nkterm z
+"<lejblk>" uvedench v parametrech sekvenc "\citation". Kad sekvence
+"\citation{<lejblk>}" v souboru "<dokument>.aux" typicky odpovd jednomu
+pouit pkazu "\cite[<lejblk>]".
+
+Makro \db usebibtex "{<bib-bze>}{<bst-styl>}" oteve soubor AUX
+prostednictvm \db openauxfile "{<bib-bze>}{<bst-styl>}". Nape tam tedy
+poadovan data pro Bib\TeX{}. Dle z "\citelist" pepe do AUX souboru
+lejblky ve formtu "\citation{<lejblk>}". Nakonec se uvnit skupiny pust do
+ten souboru BBL prostednictvm makra "\readbblfile".
+
+\inext{usebibtex}{\count=2 ^^B\cbrace}{++}
+
+Makro \db readbblfile "{<soubor>}" vyzkou, zda je "<soubor>.bbl" pipraven
+ke ten. Pokud ne, pod o tom odpovdajc zprvu na terminl. Jinak
+nastav ta "\bibnum" na nulu a (vdomo si toho, e je sputno ve
+skupin) pust se do loklnch re-definic La\TeX{}ovch konstrukc, kter se
+typicky v BBL souborech pouvaj. Nastav "\leftskip" na "\iindent" a
+spust "\bibtexhook". Konen nate soubor BBL.
+
+\inext{readbblfile}{^^B\cbrace}{++}
+
+V BBL souboru se vyskytuj povely \db bibitem. Za kadm z nich se mon
+objev parametr v~hranat zvorce "[<znaka>]" a nsledn je uveden
+"{<lejblk>}". Pak na dalch dcch jsou bibliografick data jednoho
+zznamu ukonen przdnm dkem. Objev-li se "[<znaka>]", dv tm
+Bib\TeX{} najevo, e se m tato "<znaka>" pout msto bnho slovn
+zznam. Nsleduje kd, kter takov daje pete, vytiskne a vlo do REF
+souboru o tom zprvu prostednictvm "\wref{<lejblk>}{<hodnota>}".
+Rozliuj se dva reimy tisku: nen-li ptomna "[<znaka>]" (makro "\tmpa"
+je przdn), pak pomoc "\llap" vytiskneme "[<slo>]". Jinak se posuneme o
+"-\iindent" a tiskneme "[<znaku>]" nsledovanou mezerou. Pak se vytisknou
+dal daje bibliografickho zznamu.
+\dgn\nb bibitemB \dgn\nb bibitemC \dgn\nb bibitemD
+
+\inext{bibitem}{^^B\cbrace}{++}
+
+Makro \db genbbl "{<bib-bze>}{<bst-style>}" oteve AUX soubor a zape do
+nj daje potebn pro Bib\TeX{} vetn "\citation{*}". Pot se makro pokus
+pest vstup z Bib\TeX{}u pomoc "\readbblfile". V tomto ppad pracuje
+"\bibitem" ve zvltnm reimu, kdy netiskne "<hodnoty>", ale "<lejblky>".
+Z toho dvodu je pedefinovno makro "\bibitemC".
+
+\inext{genbbl}{^^B\cbrace}{++}
+
+Makro \db usebbl "/<typ> <bbl-file>" spust jin makro s nzvem "\bbl:<typ>".
+Ti takov makra jsou definovna pomoc "\sdef". Prvn "\bbl:a" je
+jednoduch: prost projde BBL soubor a vytiskne daje z~nj.
+Druh makro "\bbl:b" projde BBL
+soubor v reimu, pi kterm jsou bibliografick data kadho zznamu (a po
+przdn dek alias "\par") petena do parametru "#2" makra "\bibitemC".
+Cel daj je pak vytitn jen za pedpokladu, e "[<lejblk>]" je ptomen
+v seznamu "\citelist". Tet makro "\bbl:c" pracuje jako druh a na to, e
+daj netiskne, ale zapamatuje si ho do makra "\bb:<lejblk>". Po takovm
+projit BBL souboru jet projde "\citelist", kde se "\lcite[<lejblk>]"
+promn v "\bb:<lejblk>", take se zznam vytiskne. Nyn ale v poad, v
+jakm jsou "<lejblky>" zaazeny do "\citelist".
+
+\inext{usebbl}{\count=3 ^^B\cbrace}{++}
+
+Za zmnku stoj jet prce uvedench maker s "\citelist". Ped vskytem makra
+"\usebbl" se lejblky z "\cite" a "\nocite" hromad v "\citelist". Ovem
+dal "\cite" a "\nocite" se mohou vyskytovat za pkazem "\usebbl". Pokud
+se tak stane, pracuje "\addcitelist" nyn ve vznamu "\writeXcite" a ulo
+potebnou informaci do REF souboru. Pi dalm \TeX{}ovn se tato informace
+pete makrem \db Xcite "{<lejblk>}" z REF souboru takto:
+
+\inext{Xcite}{}{++}
+
+\noindent To tedy znamen, e se ulo do seznamu "\citelistB". Konen
+makra "\bbl:b" a "\bbl:c" si dva seznamy "\citelist" a "\citelistB" ped svou
+innost spoj do seznamu jedinho nazvanho "\citelist".
+
+
+\subsec prava output rutiny
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Msto pvodnho makra "\plainoutput" pouv OPmac makro \db opmacoutput.
+
+\inext{opmacoutput}{}{++}
+
+OPmac mn output rutinu proti originln "\plainoutput" jen v nejnutnjch vcech.
+e tyto dva problmy:
+
+\begitems
+\item * Msto pmho "\shipout" nech nejprve box sestavit jako "\box0",
+ pak provede "\protectlist" a pak provede "\shipout\box0".
+\item * Mezi "\makeheadline" a "\pagebody" vkld "\prepage".
+\enditems
+
+Prvn prava zabrn expanzi maker pidanch pomoc "\addprotect" v dob
+prce pkazu "\shipout", tedy v dob, kdy expanduj parametry "\write".
+Tmto makrm je pidlen prostednictvm \db doprotect "<makro>"
+pro tento okamik vznam "\relax". Je poteba jet
+vysvtlit, pro bylo nutn sestavit nejprve "\box0" a teprve pot jej poslat
+ven pomoc "\shipout". Je to z toho dvodu, e v dob sestavovn "\box0"
+jsou expandovna "\headline" a "\footline" a pro ten ppad jet chceme,
+aby vechna makra sprvn expandovala.
+
+\inext{opmacoutput}{\empty}{+-}
+
+Druh prava vkld makro \db prepage, kter zajist tisk strnkov slice
+do "\reffile" (to je docela uiten) a krom toho nastav sprvnou barvu
+textu strany pomoc PDF specilu.
+
+\inext{prepage}{\empty}{+-}
+
+Kdy budou barvy pechzet na dal stranu, jist nechceme mt obarvenu
+strnkovou slici. Je tedy poteba do \db footline vloit "\Black". Kdy
+bude uivatel mnit velikost font v dokumentu, jist nechce mt
+strnkovou slici pokad jinak velkou. Proto je do "\footline" vloeno
+"\thefontsize". Je nastaveno pevn na 10pt. Pedpokldme, e pokud bude
+nkdo chtt jinak velkou strnkovou slici, jednodue si "\footline"
+nastav podle svho. Jinak je "\footline" shodn s pvodnm nastavenm
+v~plain\TeX{}u.
+
+\inext{footline}{\empty}{+-}
+
+
+\subsec Okraje
+%%%%%%%%%%%%%%
+
+V registrech \db pgwidth a \db pgheight budeme mt po zavoln "\setpagedimens"
+ku a vku strany. V~registru \db shiftoffset budeme mt ppadn rozdl
+okraj mezi levou a pravou strnkou.
+
+\inext{pgwidth}{\empty}{+-}
+
+Makro \db margins "/<typ> <formt> (<lev>,<prav>,<horn>,<doln>)<jednotka> "
+si nastav registry "\pgwidth" a "\pgheight" prostednictvm "\setpagedimens" a dle v
+souladu s uivatelskou dokumentac nastav potebn okraje. V makru "\tmp"
+je schovna jednotka, kterou uivatel taky me zapomenout napsat. V~takovm
+ppad vypeme varovn a doplnme jednotku "mm". Jakmile mnme
+"\hoffset" nebo "\voffset", nastavme je nejprve na "-1in" (tm se dostaneme
+na okraj papru) a pak budeme poadovanou velikost okraje k tmto registrm
+pidvat. Nemohu za to, e Knutha napadla takov ne pli podaen mylenka
+dt vchoz bod sazby kamsi doprosted papru umstn pomoc ujetch
+jednotek. Za zmnku stoj jet dv mylenky. Makro \db rbmargin
+"\h(v)offset\h(v)size{<okraj>}" provede vpoet hodnoty "\hoffset" nebo
+"\voffset" v ppad, e je dna protj hodnota okraje ne je okraj pmo
+nastaviteln pomoc "\h(v)offset".
+A konen posun okraje pi pechodu z prav na levou strnku "\shiftoffset"
+potme jako "\pgwidth"~"-"~"\hsize"~"-"~"2*<lev>" co d stejnou hodnotu jako
+"<prav>-<lev>". Zmna "\hoffset" o tuto hodnotu je provedena v makru
+"\pghook", tedy v "\output" rutin, schovna do skupiny, take po ukonen
+"\output" rutiny se vrt "\hoffset" na pvodn hodnotu.
+
+\inext{margins}{\empty}{+-}
+
+Makro \db setpagedimens "<formt> " spust
+\db setpagedimensA "<ka> <vka>/" a k tomu mus
+dopedu vyexpandovat obsah makra "\pgs:<formt>". To provedeme pomoc t
+"\expandafter".
+
+\inext{setpagedimens}{\empty}{+-}
+
+Jednotliv "<formty>" papru je poteba deklarovat.
+
+\inext{sdef}{\empty}{+-}
+
+Makro \db magscale "[<factor>]" zvt/zmen sazbu nastavenm
+registru "\mag" a definuje dosud przdn makro \db trueunit hodnotou
+"true", aby pozdji pi innosti makra "\setpagedimensA" zstaly zachovny
+rozmry strnek. Pokud ale je makro "\magscale" sputno a po nastaven
+velikosti strnek, jsou tyto velikosti dodaten korigovny na \uv{true}
+jednotky pomoc makra \db truedimen.
+
+\inext{trueunit}{\empty}{+-}
+
+
+\subsec Zvr
+%%%%%%%%%%%%%
+
+Nakonec pomoc "\inputref" peteme REF soubor (pokud existuje) a vrhneme se
+na zpracovn dokumentu, kter nm pipravil uivatel. Peji dobr pozen.
+
+\inext{inputref}{\empty}{+-}
+
+\doindex
+
+
+\bye
+
+
diff --git a/Master/texmf-dist/doc/cstex/opmac-u.pdf b/Master/texmf-dist/doc/cstex/opmac-u.pdf
new file mode 100644
index 00000000000..b5103bc1c31
--- /dev/null
+++ b/Master/texmf-dist/doc/cstex/opmac-u.pdf
Binary files differ
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
+
diff --git a/Master/texmf-dist/doc/cstex/prvni.pdf b/Master/texmf-dist/doc/cstex/prvni.pdf
new file mode 100644
index 00000000000..70c8c469296
--- /dev/null
+++ b/Master/texmf-dist/doc/cstex/prvni.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/cstex/prvni.tex b/Master/texmf-dist/doc/cstex/prvni.tex
new file mode 100644
index 00000000000..a4586a93708
--- /dev/null
+++ b/Master/texmf-dist/doc/cstex/prvni.tex
@@ -0,0 +1,1562 @@
+
+% První setkání s TeXem
+%%%%%%%%%%%%%%%%%%%%%%%%
+% (C) 1999 Petr Olšák
+
+% format: csplain, kódování ISO-8859-2
+
+% Tento dokument můžete vytisknout pro vlastní potřeby nebo jej
+% elektronicky dále šířit v nezměněné podobě jako soubory prvni.tex,
+% prvni.ps a prvni.pdf
+
+\chyph
+\magnification\magstep1
+\advance\vsize by\baselineskip
+
+%% Varianta pro pdftex
+\ifx\pdfoutput\undefined
+ \def\zalozka#1{}
+\else
+ \def\zalozka#1{%
+ \global\advance\secnum by1
+ \pdfdest num\secnum fitbh
+ {\let~=\space \def\TeX{TeX}%
+ \pdfoutline goto num\secnum count 0 {#1}}}
+ \pdfinfo{
+ /Author (Petr Olsak)
+ /CreationDate (D:20121212)
+ /ModDate (D:20121212)
+ /Creator (TeX)
+ /Producer (pdfTeX)
+ /Title (Prvni setkani s TeXem)
+ /Subject (manual)
+ /Keywords (TeX) }
+ \pdfcatalog{/PageMode /UseOutlines}
+ \pdfcompresslevel=9
+\fi
+
+%% Vzhled dokumentu
+\parindent=11pt
+\lineskiplimit=-4pt
+\emergencystretch=2em
+\raggedbottom
+
+%% Deklarace registrů
+\newcount\bibnum
+\newcount\footnum
+\newcount\secnum
+
+% Fonty
+\input cpalatin
+\font\tentt=cstt10 \hyphenchar\tentt=-1
+\font\cmit=csti10
+\font\mflogo=logo10
+\font\showtt=cstt9
+\font\tencsr=csr10
+\font\titulfont=\fontname\tenbf\space scaled\magstep2
+\font\bigfont=\fontname\tenbf\space scaled\magstep5
+\font\scriptm=\fontname\tenrm\space at7pt
+\scriptfont0=\scriptm
+
+%% Základní makra
+\def\sekce #1\par{\removelastskip\penalty0\zalozka{#1}\nobreak\bigskip
+ \noindent{\titulfont #1}\par\nobreak\medskip}
+\def\bod{\item{$\triangleright$}}
+\def\bib{\parindent=22pt\global\advance\bibnum by1
+ \par\hang\indent\llap{[\the\bibnum]\hskip11pt}\ignorespaces}
+
+%% Čárka místo tečky v matematice:
+\mathcode`\.="013B
+\def\doteq{\buildrel\hbox{.}\over=}
+
+%% Verbatim prostředí \begtt...\endtt, "...".
+{\obeyspaces \gdef\activespace{\obeyspaces\let =\ }}
+\def\setverb{\def\do##1{\catcode`##1=12}\dospecials}
+\def\begtt{\medskip\hbox\bgroup\vrule\vbox\bgroup\hrule
+ \smallskip\bgroup \setverb \catcode`\"=12 \activespace
+ \baselineskip=.9\baselineskip
+ \def\par{\leavevmode\strut\endgraf}
+ \obeylines \startverb}
+{\obeylines \catcode`\|=0 \catcode`\\=12
+ |gdef|startverb#1^^M#2\endtt{%
+ |showtt#2|egroup|smallskip|hrule|egroup|vrule|egroup|medskip}}
+\def\"{"} \catcode`\"=13
+\def"{\leavevmode\hbox\bgroup\let"=\egroup\setverb\obeyspaces\tt}
+
+%% Prostředí ukázek
+\def\beguk{\medskip\hbox\bgroup\vrule\vbox\bgroup\hrule\medskip
+ \leftskip=\parindent \rightskip=\parindent \relax}
+\def\enduk{\medskip\hrule\egroup\vrule\egroup\medskip}
+
+%% Tabulky
+\def\begtable{$$\vbox\bgroup
+ \let\par=\cr \obeylines \halign\bgroup &##\hfil\qquad\cr}
+\def\endtable{\egroup\egroup$$}
+\abovedisplayskip=\abovedisplayshortskip
+\def\tabline{\noalign{\smallskip\hrule}}
+\def\.{\hphantom{0}}
+
+%% Výčtová prostředí
+\def\begitems{\medskip\bgroup}
+\def\enditems{\par\egroup\medskip}
+
+%% Loga
+\def\LaTeX{L\kern-.36em\raise.5ex\hbox{\sevenrm A}\kern-.12em\TeX}
+\def\CS{$\cal C\kern-.1667em\lower.5ex\hbox{$\cal S$}\kern-.075em $}
+\def\mf{{\mflogo META}\-{\mflogo FONT}}
+\def\AMS{$\cal A\kern-.166em\lower.5ex\hbox{$\cal M$}\kern-.075em S$}
+\def\twoe{$2_{\textstyle\varepsilon}$}
+
+%% Poznámky pod čarou
+\let\orifootnote=\footnote
+\def\footnote{\global\advance\footnum by1\orifootnote{$^{\the\footnum}$}}
+
+%% Pomocné
+\def\url#1{{\tt #1}}
+\let\pp=\noindent
+\let\,=\thinspace
+
+%% Titulní strana
+\bgroup \nopagenumbers \pageno=0
+\null\vfill
+{\baselineskip=40pt
+\centerline{\bigfont První setkání s~\TeX{}em}
+\centerline{\bigfont Petr Olšák}
+}
+\vskip 0pt plus2fill\break
+\parindent=0pt \parskip=\bigskipamount
+\null\vfil
+Autor programu \TeX{} je profesor Donald Knuth.
+\par
+\TeX{} je ochranná známka American Mathematical Society.
+\par
+Ostatní v manuálu použité názvy programových produktů, firem
+apod. mohou být ochrannými známkami nebo registrovanými ochrannými
+známkami příslušných vlastníků.
+\vfill
+Copyright $\copyright$ RNDr. Petr Olšák, 1999, 2012
+\par
+Tento text si můžete vytisknout pro vlastní potřeby. Je k~dispozici
+společně s~balíkem \CS\TeX{} na
+\url{ftp://math.feld.cvut.cz/pub/cstex/doc}
+ve zdrojovém textu ({\tt prvni.tex}), PostScriptu ({\tt prvni.ps}) a ve
+formátu PDF ({\tt prvni.pdf}). Můžete jej také distribuovat, ale pouze
+v~nezměněné elektronické podobě.
+\bigskip\break
+\egroup
+\pageno=1
+
+
+
+\sekce Úvod
+%%%%%%%%%%%
+
+Tento manuál je koncipován jako \uv{první seznámení s~programem \TeX{}%
+ \footnote{Název \TeX{} se čte \uv{tech}, nikoli \uv{teks}.}
+na jeden večer}. Měl by umožnit začátečníkovi porozumět
+základním principům \TeX{}u. Manuál obsahuje ukázku jednoduchého dokumentu,
+který by si měl čtenář sám přepsat do svého počítače a na něm \TeX{}
+vyzkoušet. Je to dobrý první krok do pestrého světa tohoto programu plného
+zajímavých možností. Ukázka by měla též naznačit užitečnost dobrého návrhu
+značkování vstupního textu tak, aby byl oddělen obsah dokumentu od jeho
+formy. Předvedená ukázka také ilustruje základní principy rozšíření \TeX{}u
+(plain nebo \LaTeX). Tím může uživatel hned na prvním dokumentu rozhodnout,
+které \TeX{}ové rozšíření je bližší jeho srdci a podle toho vybrat další
+literaturu pro doplňující studium.
+
+Předpokládáme, že čtenář má určité důvody proč použít \TeX{}, takže se zde
+nebudeme zdržovat výčtem jeho výhod, rozepisovat obšírně jeho historii a
+nebudeme polemizovat o~užitečnosti či neužitečnosti dávkového či
+interaktivního systému na přípravu sazby.
+
+
+\sekce \TeX\ a jeho okolí
+%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\TeX{} je formátor. Je to program, kterému předložíme vstupní text
+dokumentu v~\uv{holé} textové podobě doplněný textovými
+značkami, které vymezují strukturu dokumentu nebo dávají \TeX{}u pokyny
+o~způsobu formátování dokumentu. Bývá obvyklé (ale není to nutné)
+pojmenovat tento soubor s~použitím přípony {\tt.tex}, například
+\hbox{\tt dokument.tex}. Na výstupu pak po zpracování \TeX{}em dostaneme
+tzv.~{\tt dvi} soubor%,
+ \footnote{Odvozeno z~anglického \uv{device independent}~-- na
+ zařízení nezávislý},
+který obsahuje definitivní informace o~použitých fontech a o~umístění
+jednotlivých znaků na stránce. Tento soubor má název odvozený od názvu
+vstupního souboru, ale má příponu {\tt.dvi}%
+ \footnote{Často se používá modifikace \TeX{}u, která vytváří přímo PDF
+ soubor.}.
+Lze jej prostřednictvím
+vhodného programu prohlédnout na obrazovce (vidíme, jak bude dokument
+skutečně vypadat), nebo jej vytisknout na tiskárně.
+
+\TeX{} tedy čte na svém vstupu soubor s~dobře definovanou syntaxí jazyka
+značek a na výstupu je rovněž soubor s~úplným popisem sazby. \TeX{}
+jako takový je nezávislý na operačním systému. Vývoj samotného \TeX{}u
+je zastaven, takže pro uživatele nehrozí nebezpečí vzniku dalších
+nekompatibilních verzí. Další programy \uv{okolo \TeX{}u} tvoří
+dohromady tzv.~implementaci \TeX{}u a umožní s~\TeX{}em rozumným
+způsobem pracovat.
+
+Začínající uživatel se samozřejmě hlavně ptá po způsobu, jak může
+v~konkrétním operačním systému s~konkrétní \TeX{}ovou implementací
+s~tímto programem pracovat, jak jej spustit, jakými tlačítky se ovládá
+textový editor, jaké nabídky jsou k~dispozici, co nad kterým obrázkem udělá
+myš. Ptá se tedy po uživatelském rozhraní. Jednotlivé manuály o~\TeX{}u
+tradičně odkazují na tzv.~\uv{místní příručku} (Local Guide), která by
+měla toto rozhraní popisovat. Tato příručka je závislá na použitém
+operačním systému, na použité implementaci \TeX{}u, na vybraném textovém
+editoru a někdy též na administrátorovi systému, který konfiguruje některé
+věci specificky pro větší pohodlí uživatelů. Ani v~tomto manuálu nejsou
+uvedeny podrobnosti o~uživatelském rozhraní.
+
+V~graficky orientovaných operačních systémech je většinou možné otevřít
+současně v~jednom okénku textový editor, ve kterém uživatel píše nebo
+modifikuje vstupní text a ve vedlejším okénku prohlížeč výstupního
+{\tt dvi} souboru. Po modifikaci vstupního textu a spuštění \TeX{}u
+(nejlépe klávesovou zkratkou přímo z~editoru) se během pár sekund
+projeví změna v~prohlížeči výsledného dokumentu.
+
+Textový editor, ve kterém připravujeme nebo modifikujeme vstupní texty
+dokumentů, nesmí ukládat na disk žádné skryté formátovací informace
+implementované jen pro tento editor (jako například změna fontu, měkké
+konce řádku apod.). To dělají tzv.~textové procesory, které v~případě
+práce s~\TeX{}em většinou nepoužíváme.
+
+Zvyklosti ve značkování dokumentu jsou vesměs závislé na použitém {\it
+formátu} \TeX{}u, který modifikuje jeho chování. Říkáme, že je
+dokument napsán ve formátu {\it \LaTeX}, pokud je někde na začátku
+vstupního textu dokumentu uvedena značka "\documentclass" nebo
+"\documentstyle". Pokud tam tuto značku nenajdeme, můžeme
+předpokládat, že je dokument napsán ve formátu {\it plain}, v~případě
+česky psaného dokumentu pak ve formátu {\it csplain}. Tento manuál je
+například napsán ve formátu csplain a je uložen v~souboru
+{\tt prvni.tex}. Může se stát, že nějaký dokument je napsán ve formátu
+\AMS\TeX{} nebo v~jiném méně používaném formátu. Tím se ale zde nebudeme
+zabývat. Rozdíl mezi plainem a \LaTeX{}em a smysl použití formátů vyplyne
+až z~dalšího textu.
+
+Následující tabulka ukazuje způsoby spuštění \TeX{}u. Předpokládáme,
+že je k~dispozici operační systém, který umožňuje uživateli zadávat
+pokyny z~příkazového řádku. Tím nevylučujeme, že nelze některé
+popisované činnosti implementovat do nějaké uživatelské nabídky
+konkrétního uživatelského rozhraní. Uvažujme, že je
+vstupní text dokumentu připraven v~souboru {\tt dokument.tex}.
+
+\begtable
+ příkazový řádek & komentář
+ \tabline
+ "tex dokument" & anglický dokument, formát plain
+ "csplain dokument" & český nebo slovenský dokument, formát csplain
+ "pdfcsplain dokument" & český, slovenský dokument s výstupem do PDF
+ "latex dokument" & formát \LaTeX, jazyk je deklarován v~dokumentu
+\endtable
+
+Všimneme si, že v~příkazovém řádku píšeme za jméno formátu název vstupního
+souboru a že příponu {\tt.tex} nemusíme psát. Dobře instalovaná
+implementace \TeX{}u by měla podle jména formátu spustit \TeX{} modifikovaný
+právě tímto formátem.
+
+Pokud nemáme ve své implementaci \TeX{}u formát csplain, je to špatné
+znamení. Nebudeme totiž schopni zpracovat ani tento manuál ani
+ukázku, která je v~něm obsažena. V~takovém případě lze doporučit
+poohlédnout se po \CS\TeX{}u, který najdeme například na
+\url{http://petr.olsak.net/cstex.html}.
+
+K~prohlédnutí dokumentu se používají různé programy (tzv.~dvi~prohlížeče)%
+ \footnote{Nebo PDF prohlížeče při výstupu sazby do PDF}.
+Volba prohlížeče závisí na použitém operačním systému a na implementaci
+\TeX{}u. V~UNIXu je nejčastější program {\tt xdvi} (stačí napsat
+"xdvi dokument"). V~MS Windows se používá {\tt windvi}, {\tt dviwin}
+nebo {\tt yapp}. V~DOSu se setkáme nejčastěji s~programem {\tt dviscr}
+z~implementace em\TeX{}. Pro OS/2 má em\TeX{} \uv{okenní} variantu
+prohlížeče {\tt dvipm}.
+
+Na PostScriptovou tiskárnu vytiskneme {\tt dvi} dokument programem {\tt dvips},
+příkazový řádek: "dvips -Ptiskarna dokument".
+Při výstupu do PDF souboru stačí vytisknout dokument z PDF prohlížeče.
+
+
+\sekce Jdeme na to
+%%%%%%%%%%%%%%%%%%
+
+Nejprve zkusíme v~nějakém textovém editoru vytvořit soubor {\tt pokus.tex},
+který obsahuje zkušební větu:
+
+\begtt %--------------------------------------------------------------
+Ahoj světe!
+\bye
+\endtt %--------------------------------------------------------------
+
+Pokud zpracujeme tento soubor \TeX{}em s~formátem csplain
+(připomínáme, že je možné použít povel {\tt csplain pokus}),
+dostaneme výstupní soubor {\tt pokus.dvi}. Navíc
+\TeX{} uloží informaci o~zpracování do souboru {\tt pokus.log}. Výsledný
+{\tt dvi} soubor si můžeme prohlédnout prohlížečem. Dostaneme
+očekávaný výsledek:
+
+\beguk %-------------------------------------------------------------
+\tencsr Ahoj světe!
+\enduk %-------------------------------------------------------------
+
+\pp Přitom dole na stránce je ještě vytištěno číslo strany:~1.
+Povelem {\tt pdfcsplain pokus} dostaneme tentýž výsledek, ale
+výstupem je PDF soubor.
+
+Pokud zkusíme tentýž soubor zpracovat \TeX{}em s~formátem plain
+(příkazový řádek {\tt tex pokus}), výstup bude zmršený: \uv{Ahoj svte!}.
+Vidíme, že textový soubor s~akcenty nelze jednoduše vnutit originálnímu
+americkému \TeX{}u, ale místo formátu plain je potřeba použít modifikovaný
+csplain.
+
+Kdybychom chtěli tentýž soubor zpracovat \TeX{}em s~formátem \LaTeX{}
+(krátce říkáme, že soubor zpracováváme \LaTeX{}em), obdržíme chybové
+hlášení:
+
+\begtt %--------------------------------------------------------------
+! LaTeX Error: Missing \begin{document}.
+
+See the LaTeX manual or LaTeX Companion for explanation.
+Type H <return> for immediate help.
+ ...
+
+l.1 A
+ hoj světe!
+?
+\endtt %--------------------------------------------------------------
+
+Vidíme tedy, že soubor není vhodně připraven ke zpracování \LaTeX{}em.
+Chybí mu "\begin{document}". Později ukážeme, že mu chybí více věcí, ale
+v~tuto chvíli raději zůstaneme u~csplainu. Komunikaci s~\TeX{}em při
+chybovém hlášení ukončíme odesláním znaku {\tt x}. Chceme-li, aby
+\TeX{} chybu ignoroval a pokračoval ve zpracování dokumentu, stačí na
+otazník odpovědět \uv{Enter} (v~tomto příkladě, kdy dokument vhodný
+pro csplain chceme zpracovat \LaTeX{}em, se pouze dočkáme další
+zavlečené chyby).
+
+Zkusíme si nyní přepsat do počítače následující poněkud rozsáhlejší
+dokument. Soubor nazveme třeba {\tt mujprvni.tex} a vytvoříme jej
+libovolným textovým editorem. Pokud je čtenář od přírody \uv{lenivý}, může
+se místo zdlouhavého přepisování pokusit najít text ukázky ve vstupním
+souboru {\tt prvni.tex} tohoto manuálu a přenést jej do svého souboru
+{\tt mujprvni.tex} jako blok v~textovém editoru.
+
+Možná nám může připadat část označená jako \uv{oblast definic} hodně
+nepochopitelná, skoro jako porucha na lince. Přesto se zatím pokusíme
+překonat odpor k~této poruše a důsledně všechny znaky přepíšeme.
+\TeX{} se nám za to odvděčí silnými možnostmi, které budeme postupně
+odhalovat.
+
+Nemusíme se obtěžovat přepisováním textů, schovaných za znakem "%", protože
+tímto znakem je zahájen komentář, který končí koncem řádku a který je při
+zpracování \TeX{}em ignorován. V~každém případě ale nevynechávejme prázdné
+řádky v~ukázce a věnujme pozornost obsahu části označené jako \uv{vlastní
+text}, kde jsou vyjmenovány základní jevy, se kterými se při pořizování
+textů pro \TeX{} budeme neustále setkávat.
+
+\begtt %=============================================================
+%%%%%%%% Zde začíná "oblast definic" pro tento dokument %%%%%%%%%%%
+
+\chyph % inicializace českého dělení slov v csplainu
+\font\titulfont=\fontname\tenbf\space scaled \magstep2 % větší font
+\def\bod{\item{$\bullet$}} % definice zkratky \bod pro výčet
+\def\nadpis#1\par{ % definice nadpisu:
+ \removelastskip\bigskip % odmaže poslední vert. mezeru a přidá vlastní
+ \indent{\titulfont #1} % odsazený text nadpisu větším fontem
+ \par\nobreak\medskip} % konec řádku, zakázaný zlom, menší mezera
+\let\itemskip=\medskip % kolem výčtu prvků bude menší mezera \medskip
+
+%%%%%%%% Zde začíná "vlastní text" dokumentu %%%%%%%%%%%%%%%%%%%%%%%%
+
+\nadpis Můj první dokument
+
+Zkouším napsat první text v~\TeX u. Tento odstavec musí být
+tak dlouhý, aby bylo vidět, že se rozlomil aspoň na dva řádky.
+
+Jednotlivé odstavce oddělujeme od sebe prázdným řádkem. Prázdnými řádky
+vůbec nešetříme, protože zvyšují přehlednost zdrojového textu.
+Vyzkoušíme si nyní několik věcí.
+
+\itemskip
+\bod Budeme používat české \uv{uvozovky}, které se liší od ``anglických''.
+ Uvědomíme si, že použití "těchto znaků" je úplně špatně!
+\bod Rozlišujme mezi spojovníkem (je-li), pomlčkou ve větě~--
+ a dlouhou pomlčkou---ta se používá v~anglických dokumentech.
+\bod Předpokládáme, že každý dokáže rozeznat 1 (jedničku) od l
+ (písmene el) a 0 (nulu) od O~(písmene~O).
+\bod Zkusíme přepnout do {\bf polotučného písma}, nebo do
+ {\it kurzívy}. Také vyzkoušíme {\tt strojopis}.
+\bod Všimneme si, že ve slovech grafika, firma, apod. se písmena
+ f a i automaticky proměnila v~jediný znak fi (srovnáme to
+ s~nesprávným f\/i).
+\bod Mezery mezi písmeny jsou automaticky vyrovnávány podle tvaru písmen.
+ Ve slově \uv{Tento} je například písmeno~e těsněji přisazeno
+ k~písmenu~T, aby se mezery mezi písmeny opticky jevily stejnoměrné.
+\bod Vypravíme se na malou exkurzi do matematiky: $a^2 + b^2 = c^2$.
+ Zjistíme, že číslo -1 je zde napsáno špatně (prokletý spojovník),
+ zatímco správně má být $-1$.
+\bod Protože \% uvozuje komentář a \$ přepíná do matematické sazby,
+ musíme před ně napsat zpětné lomítko, chceme-li je dostat do dokumentu.
+\itemskip
+
+\nadpis Závěr
+
+To by pro začátek stačilo. Příkazem {\tt\char`\\bye} ukončíme své pokusy.
+\bye
+\endtt %=============================================================
+
+Po zpracování tohoto dokumentu formátem csplain si můžeme prohlédnout
+prohlížečem {\tt dvi} souboru následující výsledek:
+
+\beguk %=============================================================
+\parindent=20truept
+\baselineskip=12truept
+\font\tenbf=csbx10 at10truept \font\tenit=csti10 at10truept
+\font\tentt=cstt10 at10truept
+\font\tenrm=csr10 at10truept \tenrm
+\font\symbol=cmsy10 at10truept
+\font\mmi=cmmi10 at10truept \font\sevenrm=csr7 at7truept
+\textfont0=\tenrm \scriptfont0=\sevenrm
+\textfont1=\mmi \textfont2=\symbol
+\font\titulfont=csbx10 scaled\magstep1 % větší font
+\def\bod{\item{$\bullet$}} % definice zkratky \bod pro výčet
+\def\nadpis#1\par{ % definice nadpisu:
+ \removelastskip\bigskip % odmaže poslední vert. mezeru a přidá vlastní
+ \indent{\titulfont #1} % odsazený text nadpisu větším fontem
+ \par\nobreak\medskip} % konec řádku, zakázaný zlom, menší mezera
+\bigskipamount=12truept \medskipamount=6truept
+\let\itemskip=\medskip % kolem výčtu prvků bude menší mezera \medskip
+
+\nadpis Můj první dokument
+
+Zkouším napsat první text v~\TeX u. Tento odstavec musí být
+tak dlouhý, aby bylo vidět, že se rozlomil aspoň na dva řádky.
+
+Jednotlivé odstavce oddělujeme od sebe prázdným řádkem. Prázdnými řádky
+vůbec nešetříme, protože zvyšují přehlednost zdrojového textu.
+Vyzkoušíme si nyní několik věcí.
+
+\itemskip
+\bod Budeme používat české \uv{uvozovky}, které se liší od ``anglických''.
+ Uvědomíme si, že použití \"těchto znaků\" je úplně špatně!
+\bod Rozlišujme mezi spojovníkem (je-li), pomlčkou ve větě~--
+ a dlouhou pomlčkou---ta se používá v~anglických dokumentech.
+\bod Předpokládáme, že každý dokáže rozeznat 1 (jedničku) od l
+ (písmene el) a 0 (nulu) od O~(písmene~O).
+\bod Zkusíme přepnout do {\bf polotučného písma}, nebo do
+ {\it kurzívy}. Také vyzkoušíme {\tt strojopis}.
+\bod Všimneme si, že ve slovech grafika, firma, apod. se písmena
+ f a i automaticky proměnila v~jediný znak fi (srovnáme to
+ s~nesprávným f\/i).
+\bod Mezery mezi písmeny jsou automaticky vyrovnávány podle tvaru písmen.
+ Ve slově \uv{Tento} je například písmeno~e těsněji přisazeno
+ k~písmenu~T, aby se mezery mezi písmeny opticky jevily stejnoměrné.
+\bod Vypravíme se na malou exkurzi do matematiky: $a^2 + b^2 = c^2$.
+ Zjistíme, že číslo -1 je zde napsáno špatně (prokletý spojovník),
+ zatímco správně má být $-1$.
+\bod Protože \% uvozuje komentář a \$ přepíná do matematické sazby,
+ musíme před ně napsat zpětné lomítko, chceme-li je dostat do dokumentu.
+\itemskip
+
+\nadpis Závěr
+
+To by pro začátek stačilo. Příkazem {\tt\char`\\bye} ukončíme své pokusy.
+\enduk %=============================================================
+
+Všimněme si, že v~příkladu je důsledně oddělena forma od obsahu dokumentu.
+V~části označené \uv{vlastní text} jsou použity značky "\nadpis",
+"\bod" a "\itemskip", které ohraničují logické části dokumentu (vymezení
+nadpisu, uvedení další položky ve výčtu prvků, obklopení skupiny výčtu prvků)
+a nepopisují žádné konkrétní formátovací informace (volba fontu, velikost
+fontu, velikost mezer nad a pod nadpisem, tvar puntíku ve výčtu prvků
+apod.).
+
+Značky vymezující strukturu dokumentu jsou definovány v~části \uv{oblast
+definic}. Zde je řečeno, jaký bude mít nadpis font, jak bude
+v~textu umístěn a jak bude vypadat formátování výčtu prvků. Podrobnější
+rozbor těchto definic uvedeme za chvíli.
+
+Toto oddělení formy od obsahu se v~mnoha případech začátečníkům nedaří.
+Přímo v~textu jejich dokumentů se vyskytují značky jako "\vskip12mm"
+(vertikální mezera 12\,mm), "\vfill\break" (vynucené ukončení strany) a mnoho
+dalších nešvarů. My se pokusíme hned z~počátku se takovým věcem pokud možno
+vyhnout. V~sekci \uv{změna vzhledu dokumentu} uvidíme, že se nám to bohatě
+vyplatí.
+
+
+\sekce Vysvětlení použitých značek v~příkladu
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Jednotlivé značky, které řídí formátování a vymezují strukturu dokumentu
+jsou vesměs ve tvaru "\slovo". Tyto značky se nazývají
+{\it řídicí sekvence\/} a někdy též budeme hovořit o~{\it příkazech},
+protože jimi přikazujeme, aby \TeX{} něco vykonal.
+
+Řídicí sekvence v~příkladu rozdělíme na dvě skupiny. 1.~ty, co jsou
+definovány v~samotném \TeX{}u nebo v~použitém formátu (v~našem případě
+ve formátu {\tt csplain}). 2.~řídicí sekvence, které jsme definovali sami.
+
+Začneme rozborem druhé skupiny řídicích sekvencí:
+
+\begitems
+\bod "\nadpis" je sekvence, která za sebou očekává text nadpisu a pak
+ prázdný řádek.
+\bod "\titulfont" je přepínač pro větší velikost fontu pro nadpis.
+ Je definován na řádku začínajícím příkazem "\font" a použit v~definici
+ řídicí sekvence "\nadpis".
+\bod "\bod" je sekvence, která uvozuje položku ve výčtu prvků. Promění se
+ v~nějakou grafickou realizaci zarážky (zde puntík) a způsobí odsazení
+ textu položky.
+\bod "\itemskip" vytvoří vertikální mezeru, která oddělí výčet prvků
+ od ostatního textu. Použije se na začátku i na konci výčtu.
+\enditems
+
+Ostatní řídicí sekvence jsou definovány v~použitém formátu nebo přímo
+zabudovány v~\TeX{}u. Uživatel se s~nimi bude postupně seznamovat
+studiem vhodné literatury. Zde uvedeme velmi stručně jen ty nejdůležitější
+řídicí sekvence, abychom usnadnili pochopení příkladu.
+
+\begitems
+\bod "\chyph". Tato řídicí sekvence inicializuje české vzory dělení slov a
+ je definována pouze ve formátu csplain. V~případě českých textů
+ bychom ji nikdy neměli vynechat! Analogicky "\shyph" inicializuje
+ slovenské vzory dělení slov. Bez těchto příkazů \TeX{} pracuje
+ implicitně s~anglickými vzory dělení.
+\bod "\font" zavede z~instalace \TeX{}u do dokumentu další font.
+ Struktura parametrů příkazu bude vysvětlena v~sekci o~fontech.
+\bod "\def" definuje novou řídicí sekvenci (zde "\bod" a "\nadpis").
+ Za řídicí sekvencí může následovat formální popis parametrů nové
+ sekvence a pak následuje ve složených závorkách tělo definice.
+ V~ní je popsáno, co se při použití nové řídicí sekvence má vykonat.
+\bod "\item" zahájí výčtovou položku (odsazením textu) a převezme
+ za sebou ve složených závorkách parametr, který popisuje vzhled puntíku.
+\bod "\bullet" vytvoří v~matematickém módu černý puntík: $\bullet$.
+\bod "\bigskip" vytvoří vertikální mezeru velikosti jednoho řádku a
+ "\medskip" velikosti poloviny řádku. "\indent" odsadí další text
+ o~velikost odstavcové zarážky.
+\bod Řídicí sekvence "\par" je explicitní ukončení odstavce. \TeX{} ji
+ interně vytváří v~místě každého prázdného řádku. Ve formálním popisu
+ parametru za "\def\nadpis" má ale "\par" pouze vymezovací
+ účinek. Formální popis parametru v~našem příkladě čteme takto:
+ nově definovaná řídicí sekvence "\nadpis" převezme za sebou text
+ až po první výskyt "\par" (tedy až po první výskyt prázdného řádku)
+ a uloží jej do \uv{proměnné} s~označením "#1".
+\bod "\let" čteme česky nechť. Tento příkaz ztotožní význam nové
+ řídicí sekvence (v~našem příkladě "\itemskip") s~předlohou (v~tomto
+ příkladě "\medskip").
+\enditems
+
+V~naší ukázce jsme použili též některé speciální \TeX{}ovské znaky.
+Vysvětlíme si nyní stručně jejich význam.
+
+\begitems
+\bod Znak "~" znamená nedělitelnou mezeru. Je zde použita za neslabičnými
+ předložkami a před jednopísmennými ukázkami, aby se v~těchto místech
+ nerozdělil řádek. Při pořizování textu nemusíme psát za neslabičnými
+ předložkami vlnku \uv{ručně}. Vlnky tam lze doplnit později jednoduchými
+ programy, které bývají součástí \TeX{}ovských instalací.
+\bod Znaky "{ }" mají v~\TeX{}u tři mírně odlišné významy.
+\itemitem{1.} Obklopují těla definic za příkazem "\def", jak již bylo řečeno.
+\itemitem{2.} Obklopují parametry některých řídicích sekvencí (viz
+ například text {\tt uvozovky}, který je parametrem řídicí sekvence
+ "\uv", nebo text "$\bullet$", který je parametrem řídicí sekvence
+ "\item".
+\itemitem{3.} Samotné znaky "{ }" vymezují jisté skupiny, ve kterých je
+ veškeré přiřazení a nastavení lokální. Skupiny se často používají pro
+ vymezení platnosti přepínačů písma (viz "\bf", "\it", "\tt" a
+ "\titulfont").
+\item{} Závorky "{ }" musí vzájemně párovat, což je důležité zejména ve
+ vymezovacích významech~(ad~1 a~2). Proto třeba tělo definice
+ "\bod" obsahuje text "\item{$\bullet$}" a je ukončeno až druhou
+ závorkou~"}".
+\bod Znak "%" uvozuje komentář až do konce řádku.
+\bod Znak "$" přepíná do {\it matematického módu} a zpět. V matematickém
+ módu \TeX{} sestavuje sazbu poněkud odlišným způsobem (všimneme
+ si, že například proměnné $a$, $b$ jsou v matematickém módu
+ automaticky sázeny kurzívou).
+\bod Znak "^" v~matematickém módu uvozuje horní index (exponent).
+\enditems
+
+\sekce Změna vzhledu dokumentu
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Předvedeme, v~čem spočívá výhoda oddělení obsahu
+dokumentu od formy. Předpokládejme, že nám nějaký zkušenější kolega
+pomůže s~přípravou definic pro náš dokument. Předpokládejme dále, že onen
+kolega má na věc poněkud jiný typografický názor a začne věci předělávat.
+V~editoru modifikuje definice a ve vedlejším okénku v~prohlížeči se průběžně
+mění náš první dokument skoro k~nepoznání. Přitom kolega
+{\it vůbec nemusí\/} zasáhnout do vlastního textu dokumentu.
+
+Především se mu nelíbí rodina fontů Computer Modern, která je
+v~\TeX{}u implicitně nastavena. Mnoho instalací \TeX{}u obsahuje
+nástroje pro práci s~dalšími, zejména PostScriptovými, fonty. Máme-li
+takovou instalaci, můžeme napsat na začátek dokumentu třeba
+"\input cbookman" a máme celý dokument v~rodině Bookman. Příkaz "\input"
+zavádí do dokumentu externí soubor definic, zde soubor s~názvem {\tt
+cbookman.tex}. Tento soubor obsahuje příkazy "\font" na zavedení
+skupiny fontů Bookman a nastaví je jako implicitní.
+
+Kolega se dále rozhodl vkládat mezi každý odstavec drobnou vertikální mezeru
+a místo puntíků pro výčty chce použít čtverečky, které ve větší velikosti
+zařadí i do nadpisů. Konečně velikost fontu pro nadpis se mu zdá příliš
+velká (místo "\magstep2" v~řádku "\font" použije \uv{menší} "\magstep1").
+Výsledek jeho snažení v~\uv{oblasti definic} dopadne třeba takto:
+
+\begtt %=============================================================
+\chyph % inicializace českého dělení slov v csplainu
+\magnification\magstep1 % celý dokument bude 1,2 krát větší
+\input cbookman \setsimplemath % použité písmo: Bookman i v matematice
+\font\titulfont=\fontname\tenbf\space scaled \magstep1 % větší font
+\newdimen\indskip \indskip=15pt % výčty budou odsazeny 15pt
+\def\ctverecek#1{\noindent % čtvereček proměnné velikosti v místě \indskip
+ \hbox to\indskip{\vrule height#1pt depth0pt width#1pt\hss}}
+\def\bod{\par\hangindent=\indskip \ctverecek{4}} % definice zkratky \bod
+\def\nadpis#1\par{ % definice nadpisu:
+ \removelastskip\bigskip % odmaže poslední vert.mezeru a přidá vlastní
+ \ctverecek{7}{\titulfont #1} % nadpis odsazený čtverečkem
+ \par\nobreak} % konec řádku, zakázaný zlom, žádná mezera
+\parskip=\medskipamount % mezi odstavci bude mezera jako \medskip
+\parindent=0pt % odstavce nebudou odsazeny zarážkou
+\let\itemskip=\relax % žádné další mezery mezi výčty
+\endtt %=============================================================
+
+Náš dokument vypadá pak následovně:
+
+\beguk %=============================================================
+\input cbookman % použité písmo: Bookman
+\font\mmi=\fontname\tenit
+\font\sevenrm=\fontname\tenrm\space at 7pt
+\textfont0=\tenrm \scriptfont0=\sevenrm
+\textfont1=\mmi
+
+\font\titulfont=\fontname\tenbf\space scaled \magstep1 % větší font
+\newdimen\indskip \indskip=15pt % výčty budou odsazeny 15pt
+\def\ctverecek#1{\noindent % čtvereček o proměnné velikosti v místě \indskip
+ \hbox to\indskip{\vrule height#1pt depth0pt width#1pt\hss}}
+\def\bod{\par\hangindent=\indskip \ctverecek{4}} % definice zkratky \bod
+\def\nadpis#1\par{ % definice nadpisu:
+ \removelastskip\bigskip % odmaže poslední vert. mezeru a přidá vlastní
+ \ctverecek{7}{\titulfont #1} % nadpis odsazený čtverečkem
+ \par\nobreak} % konec řádku, zakázaný zlom, žádná mezera
+\parskip=\medskipamount % mezi odstavci bude mezera jako \medskip
+\parindent=0pt % odstavce nebudou odsazeny zarážkou
+\let\itemskip=\relax % žádné další mezery mezi výčty
+
+\nadpis Můj první dokument
+
+Zkouším napsat první text v~\TeX u. Tento odstavec musí být
+tak dlouhý, aby bylo vidět, že se rozlomil aspoň na dva řádky.
+
+Jednotlivé odstavce oddělujeme od sebe prázdným řádkem. Prázdnými řádky
+vůbec nešetříme, protože zvyšují přehlednost zdrojového textu.
+Vyzkoušíme si nyní několik věcí.
+
+\itemskip
+\bod Budeme používat české \uv{uvozovky}, které se liší od ``anglických''.
+ Uvědomíme si, že použití \"těchto znaků\" je úplně špatně!
+\bod Rozlišujme mezi spojovníkem (je-li), pomlčkou ve větě~--
+ a dlouhou pomlčkou---ta se používá v~anglických dokumentech.
+\bod Předpokládáme, že každý dokáže rozeznat 1 (jedničku) od l
+ (písmene el) a 0 (nulu) od O~(písmene~O).
+\bod Zkusíme přepnout do {\bf polotučného písma}, nebo do
+ {\it kurzívy}. Také vyzkoušíme {\tt strojopis}.
+\bod Všimneme si, že ve slovech grafika, firma, apod. se písmena
+ f a i automaticky proměnila v~jediný znak fi (srovnáme to
+ s~nesprávným f\/i).
+\bod Mezery mezi písmeny jsou automaticky vyrovnávány podle tvaru písmen.
+ Ve slově \uv{Tento} je například písmeno~e těsněji přisazeno
+ k~písmenu~T, aby se mezery mezi písmeny opticky jevily stejnoměrné.
+\bod Vypravíme se na malou exkurzi do matematiky: $a^2 + b^2 = c^2$.
+ Zjistíme, že číslo -1 je zde napsáno špatně (prokletý spojovník),
+ zatímco správně má být $-1$.
+\bod Protože \% uvozuje komentář a \$ přepíná do matematické sazby,
+ musíme před ně napsat zpětné lomítko, chceme-li je dostat do dokumentu.
+\itemskip
+
+\nadpis Závěr
+
+To by pro začátek stačilo. Příkazem {\tt\char`\\bye} ukončíme své pokusy.
+\enduk %==============================================================
+
+Kdyby náš kolega chtěl, implementoval by třeba automatické číslování
+položek, automatické číslování nadpisů, generování obsahu a další věci.
+Vysvětlení nových řídicích sekvencí, které kolega použil, bohužel
+překračuje rámec tohoto úvodního dokumentu.
+
+Definice lze umístit do jiného souboru než vlastní text dokumentu.
+Na začátku dokumentu pak soubor definic načteme příkazem "\input".
+Nebo naopak, hlavní bude soubor definic, ze kterého se příkazem "\input"
+postupně načítají jednotlivé kapitoly rozsáhlejšího díla.
+
+
+\sekce Stojíme na křižovatce
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+V~předchozím příkladě jsme ilustrovali důležitou vlastnost \TeX{}u~--
+schopnost měnit vzhled dokumentu jen výměnou některých definic. Kromě toho
+ale tyto definice také musejí navazovat na úmluvu, jakými značkami bude
+autor vymezovat strukturu svého dokumentu. Kdyby autor použil místo značky
+"\nadpis" značku "\section", \TeX{} by nám při zpracování dokumentu vynadal:
+
+\begtt %--------------------------------------------------------------
+! Undefined control sequence.
+l.14 \section
+ Můj první dokument
+?
+\endtt %--------------------------------------------------------------
+
+\pp tedy: nedefinovaná řídicí sekvence. Odpovíme-li na otazník pouhým
+stiskem klávesy Enter, \TeX{} tuto sekvenci zcela ignoruje a pracuje dál.
+Žádného zvýraznění nadpisu bychom se nedočkali. Je tedy vidět,
+že je hodně důležité ujasnit si, jaké značkování struktury dokumentu
+použijeme.
+
+V~této souvislosti si musíme odpovědět jednu důležitou otázku. Chceme se
+naučit jazyk definic \TeX{}u na takové úrovni, jako náš imaginární kolega
+z~předchozího příkladu? Budeme raději sami kontrolovat každý detail vzhledu
+dokumentu prostřednictvím vlastních definic, než abychom přebírali hotová
+řešení odjinud?
+Pokud na tyto otázky odpovíme \uv{ano}, pak je pro nás
+výhodné použít formát plain (pro české a slovenské dokumenty jen mírně
+modifikovaný formát csplain), který definuje jen minimum základních
+řídicích sekvencí. O~další řídicí sekvence stejně jako o~modifikaci
+vzhledu dokumentu podle našich představ se musíme postarat sami.%
+ \footnote{Po zveřejnění makra OPmac (\url{http://petr.olsak.net/opmac.html})
+ uvedená věta o nutnosti plain\TeX{}isty vše si programovat vlastními silami
+ není zcela pravdivá.
+ I tito uživatelé mohou použít \uv{hotové řešení} OPmac, ale
+ mají možnost snadno do jeho maker nahlédnout a upravit si je k obrazu
+ svému.}
+V~takovém případě si můžeme sami rozhodnout, jaké značky pro vymezení
+struktury dokumentu použijeme, protože si pro ně nakonec uděláme vlastní
+definice.
+
+Na druhé straně, pokud rádi přebíráme hotová řešení, pokud nechceme
+zbytečně pronikat do problematiky jazyka definic \TeX{}u, pokud se
+spokojíme s~už připravenými šablonami vzhledu dokumentu (tzv. styly),
+pokud jsme ochotni se místo tří set základních příkazů \TeX{}u učit
+zhruba tisíc uživatelských značek pro \LaTeX, bude pro nás
+výhodné použít raději formát \LaTeX{}.
+
+\LaTeX{} doporučuje určité značkování struktury dokumentu. Například se
+předpokládá členění na kapitoly (značka "\chapter") a na sekce (značka
+"\section"). Každý dokument by měl začít záhlavím uvozeným sekvencí
+"\documentclass" (u~staré verze \LaTeX{}u se můžeme setkat ještě se
+sekvencí "\documentstyle"). Parametrem této sekvence by měl být název
+základního stylového souboru (souboru definic upravujících vzhled
+dokumentu). Nejčastěji bývá tímto parametrem "book" (formát knihy)
+nebo "article" (formát článku). Doplňkové stylové soubory se načítají pomocí
+sekvence "\usepackage". Vlastní text dokumentu musí být uzavřen mezi
+značkami "\begin{document}" a "\end{document}". Často se vyskytují další
+značky "\begin" a "\end" vymezující v~\LaTeX{}u jistá prostředí (například
+prostředí pro výčtové položky).
+
+Vraťme se k~našemu příkladu a přepišme jej do značkování podle \LaTeX{}u.
+
+\begtt %=============================================================
+\documentclass{article} % základní styl bude "odborný článek"
+\usepackage[utf8]{inputenc} % je nutno specifikovat kódování dokumentu
+\usepackage[T1]{fontenc} % požadujeme LaTeXovské fonty s akcenty
+\usepackage[czech]{babel} % voláme styl czech z Babelu
+\begin{document}
+
+\section{Můj první dokument}
+
+Zkouším napsat první text v~\TeX u. Tento odstavec musí být
+tak dlouhý, aby bylo vidět, že se rozlomil aspoň na dva řádky.
+
+Jednotlivé odstavce oddělujeme od sebe prázdným řádkem. Prázdnými řádky
+vůbec nešetříme, protože zvyšují přehlednost zdrojového textu.
+Vyzkoušíme si nyní několik věcí.
+
+\begin{itemize}
+\item Budeme používat české \uv{uvozovky}, které se liší od ``anglických''.
+ Uvědomíme si, že použití "těchto znaků" je úplně špatně!
+\item Rozlišujme mezi spojovníkem (je-li), pomlčkou ve větě~--
+ a dlouhou pomlčkou---ta se používá v~anglických dokumentech.
+\item Předpokládáme, že každý dokáže rozeznat 1 (jedničku) od l
+ (písmene el) a 0 (nulu) od O~(písmene~O).
+\item Zkusíme přepnout do {\bf polotučného písma}, nebo do
+ {\it kurzívy}. Také vyzkoušíme {\tt strojopis}.
+\item Všimneme si, že ve slovech grafika, firma, apod. se písmena
+ f a i automaticky proměnila v~jediný znak fi (srovnáme to
+ s~nesprávným f\/i).
+\item Mezery mezi písmeny jsou automaticky vyrovnávány podle tvaru písmen.
+ Ve slově \uv{Tento} je například písmeno~e těsněji přisazeno
+ k~písmenu~T, aby se mezery mezi písmeny opticky jevily stejnoměrné.
+\item Vypravíme se na malou exkurzi do matematiky: $a^2 + b^2 = c^2$.
+ Zjistíme, že číslo -1 je zde napsáno špatně (prokletý spojovník),
+ zatímco správně má být $-1$.
+\item Protože \% uvozuje komentář a \$ přepíná do matematické sazby,
+ musíme před ně napsat zpětné lomítko, chceme-li je dostat do dokumentu.
+\end{itemize}
+
+\section{Závěr}
+
+To by pro začátek stačilo. Příkazem \verb|\bye| ukončíme své pokusy.
+\end{document}
+\endtt %--------------------------------------------------------------
+
+Poznamenejme, že zavedení doplňkového stylu {\tt czech} způsobí aktivaci
+českých vzorů dělení slov a písma s~českými znaky. Bez použití tohoto stylu
+pracuje \LaTeX{} implicitně s~anglickými vzory dělení slov a s~písmy, která
+neobsahují háčkovaná a čárkovaná písmena.
+
+Upozorňujeme, že v~současné době je \LaTeX{}ů několik druhů. Už
+zmíněný \uv{starý \LaTeX} (tzv.~verze 2.09), ve kterém se
+struktura záhlaví dokumentu mírně lišila. Dále je pro potřeby
+českých dokumentů nutné rozlišovat mezi \LaTeX{}em a \CS\LaTeX{}em
+(druhý jmenovaný je dnes považován zastaralý).
+\LaTeX{} implementuje
+český a slovenský jazyk pomocí balíku maker \uv{Babel} nebo
+\uv{polyglossia}, zatímco \CS\LaTeX{} měl k tomu vlastní stylový soubor.
+\CS\LaTeX{} byl u nás mnoho let používán jako jistá
+modifikace \LaTeX{}u. Váče uvedená ukázka předpokládá \LaTeX{} s balíčkem
+Babel.
+
+Výsledek po zpracování našeho dokumentu \LaTeX{}em v~tomto manuálu
+pro stručnost neuvádíme. Kdo chce, může si sám \LaTeX{}
+vyzkoušet. Nelíbí se nám, že za čísly v~nadpisech nejsou tečky?
+Zavedeme do dokumentu prostřednictvím "\usepackage" další doplňkový
+styl, který toto výchozí chování základního stylu {\tt article}
+upraví. Nelíbí se nám, že jsou mezi jednotlivými položkami ve výčtu
+velké mezery a položky jsou až příliš odsazeny? Použijeme v~dokumentu
+další doplňkový styl. Nelíbí se nám, že je použito písmo Computer
+Modern? Napišme třeba "\usepackage{times}".
+
+Otázka ale je, kdo pro nás tyto doplňkové styly (neboli doplňující sady
+definic pro \TeX) bude připravovat. Velké množství stylů na všechno možné
+lze nalézt ve veřejných archivech \TeX{}ovského softwaru. \LaTeX{} nám tedy
+při jednoduchých šablonovitých požadavcích na vzhled dokumentu umožňuje
+zůstat v~roli autora, který pořizuje text. Nemusíme umět poměrně složitý
+jazyk definic \TeX{}u.
+
+Pokud nám žádná z~možností nabízených stylů nevyhovuje, musíme se pokusit
+tyto styly modifikovat podle své potřeby. To ale může být už hodně
+komplikované. Záleží znovu na nás, zda rádi modifikujeme zdrojové kódy
+cizích programů nebo si raději napíšeme programy vlastní. Pokud píšeme
+raději programy vlastní, asi nám bude spíše vyhovovat jednodušší výchozí
+formát plain (csplain).
+
+Jestliže jsme se rozhodli pracovat raději v~plainu, pak lze k~dalšímu
+studiu doporučit následující literaturu:
+
+\begitems
+\bib Michael Doob. {\it Jemný úvod do \TeX{}u}. Třetí vydání českého
+ překladu, \CS{}TUG 1993. Knížka je rovněž volně k~dispozici ve
+ zdrojových textech jako {\tt jemny.tex} v~archivu
+ {\tt ftp://math.feld.cvut.cz/pub/cstex/doc/jemny.tar.gz}.
+ Anglický originál je volně šířen jako {\tt gentle.tex}.%
+ \footnote{Připravuji nový text \uv{\TeX, \CS plain, OPmac -- příručka
+ pro pragmatiky}, který by mohl původní Doobův text nahradit.}
+
+\bib Petr Olšák. {\it \TeX{}book naruby}. Konvoj 1997. Celý text knihy je
+ volně k~dispozici ve formátu {\tt pdf}
+ na \url{http://math.feld.cvut.cz/olsak/tbn.html}.
+\enditems
+
+Vyhovuje-li nám více \LaTeX, pak je možné sáhnout po těchto manuálech:
+
+\begitems
+\bib Jiří Rybička. {\it \LaTeX{} pro začátečníky}. Druhé, upravené vydání,
+ Konvoj 1999.
+\bib Tobias Oetiker. {\it Ne příliš stručný úvod do systému
+ \LaTeX{} \twoe}. Text je šířen volně včetně zdrojových textů a je
+ přeložen do mnoha jazyků. Do češtiny přeložil Michal Kočer.
+ {\tt ftp://math.feld.cvut.cz/pub/cstex/doc/lshort2e.tar.gz}
+\bib Leslie Lamport. {\it\LaTeX---A Document Preparation System---User's
+ Guide and Reference Manual}. Ad\-di\-son-Wes\-ley, Reading, MA,
+ USA, 2nd ed. 1994.
+\bib Michel Goossens, Frank Mittelbach, Alexander Samarin.
+ {\it The \LaTeX{} Companion}. Druhé vydání, Addisson Wesley 1994.
+\bib Michel Goossens, Sebastian Rahtz, Frank Mittelbach.
+ {\it The \LaTeX{} Graphics Companion: Illustrating Documents with
+ \TeX{} and PostScript}. Addisson Wesley 1997.
+\enditems
+
+Pokud budeme používat \LaTeX{} a budeme chtít rozumět použitým stylovým
+souborům, můžeme použít knihu [2]. Popisuje totiž vnitřní algoritmy
+\TeX{}u, což jsou informace, které využijeme jak v~plainu tak v~\LaTeX{}u.
+
+Pro úplnost ještě citujme dva tituly. První z~nich je základní biblí
+k~\TeX{}u od samotného autora \TeX{}u (česká alternativa [2] ji poměrně
+dobře nahrazuje) a druhý titul obsahuje informace o~\TeX{}ových
+souvislostech, tj. popis spolupracujících programů v~běžných distribucích,
+implementace fontů, vkládání obrázků apod.
+
+\begitems
+\bib Donald E. Knuth. {\it The \TeX{}book}. Mnohonásobné vydání. Addison
+ Wesley, 1986--{\tt*}. Díl~A~z~pětidílné monografie k~\TeX{}u a \mf{}u
+ \uv{Computers \& Typesetting}.
+\bib Petr Olšák. {\it Typografický systém \TeX}. \CS{}TUG 1995.
+\enditems
+
+Další text v~tomto manuálu se věnuje základům \TeX{}u, které bývají
+shodné při použití většiny formátů. Ukázky budeme pro jednoduchost
+nadále zkoušet ve formátu csplain, protože jinak bychom museli kolem
+vlastního textu ukázky přidat zmíněné \uv{obkladové řádky} závislé na
+použitém \uv{druhu} \LaTeX{}u.
+
+
+\sekce Technické pozadí formátů
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+V~předchozím textu jsme na mnoha místech hovořili o~formátech \TeX{}u
+(plain, \LaTeX{}, csplain), ale zatím jsme pořádně neřekli, co to je.
+
+Formát je binární soubor (v~\TeX{}ové implementaci má příponu {\tt.fmt}),
+který zahrnuje:
+
+\begitems
+\bod výchozí sadu definic, která rozšiřuje vestavěné řídicí sekvence
+ o~další, pro uživatele většinou snadněji použitelné,
+\bod výchozí nastavení vnitřních parametrů \TeX{}u (například šířka
+ odstavce nebo velikost odstavcové zarážky),
+\bod výchozí fonty, které budou v~dokumentu použity, pokud uživatel
+ nespecifikuje jiné,
+\bod vzory dělení vybraných jazyků, podle kterých \TeX{} dělí slova při
+ zalamování odstavce.
+\enditems
+
+Až na vzory dělení lze vše ostatní ve vlastním dokumentu pomocí
+\TeX{}ových definic dodatečně měnit. Pro načtení vzorů dělení
+jednotlivých jazyků má \TeX{} speciální řídicí sekvenci "\patterns",
+která funguje jen při vytváření formátu. Existuje ještě jedna řídicí
+sekvence, která má smysl pouze při generování formátu: "\dump". Tento
+příkaz způsobí uložení \uv{nabytých vědomostí}
+\TeX{}u z~jeho vnitřní paměti do binárního formátového souboru {\tt *.fmt}
+a ukončí činnost \TeX{}u. Tento soubor se může později při startu
+\TeX{}u načíst, a \TeX{} tím začíná se svými znalostmi z~místa, kde
+naposledy načítání definic skončil v~době příkazu "\dump".
+
+Příkazy "\patterns" a "\dump" umí speciální varianta \TeX{}u zvaná
+ini\TeX{}. V~nových implementacích \TeX{}u není tato varianta
+reprezentována samostatným programem, ale vyvolá se prostřednictvím
+přepínače {\tt -i} nebo {\tt -ini}. Například k~vygenerování formátu
+plain lze postupovat takto:
+
+\begtt
+> tex -ini plain
+* \dump
+\endtt
+
+\TeX{} zde ve variantě ini\TeX{} načetl soubor definic plain.tex a uložil
+nabyté vědomosti do souboru {\tt plain.fmt}. Nyní lze formátový soubor
+použít:
+
+\begtt
+> tex &plain document
+\endtt
+
+V~běžných \TeX{}ových distribucích je implementována nějakým způsobem
+zkratka, která uživateli umožní místo {\tt tex \&plain} psát pouze
+{\tt tex} a třeba místo {\tt tex \&latex} psát pouze {\tt latex}.
+
+
+\sekce Speciální znaky
+%%%%%%%%%%%%%%%%%%%%%%
+
+V~této sekci popíšeme chování speciálních vstupních znaků, které
+nejsou \TeX{}em většinou slepě přepisovány do výstupu, ale \TeX{} na
+ně určitým způsobem zareaguje.
+
+Jedním takovým speciálním znakem je "\" (zpětné lomítko). Pokud za ním
+následuje písmeno, \TeX{} přečte řídicí sekvenci typu "\slovo"
+ukončenou prvním znakem, který není písmeno (separátorem). Je-li
+tímto separátorem mezera, pak se na výstupu neobjeví. Ostatní
+separátory nejsou na rozdíl od mezery ignorovány.
+Vyzkoušejte si:
+
+\begtt %----------------------------------------------------------
+Zkouším \TeX. % Tečka je separátor sekvence \TeX, který se vytiskne
+Píšu v \TeX u % Separátorem je mezera před u, která se netiskne
+\TeX je formátor.
+\endtt %----------------------------------------------------------
+
+Z~posledního řádku ukázky dostáváme nesprávný výsledek: \TeX je formátor.
+Projevila se totiž další vlastnost \TeX{}u: jednu mezeru i více mezer
+za sebou považuje za mezeru jedinou a ta v~našem příkladě funguje jako
+separátor, který mizí. Proto se často používají \uv{zbytečné skupiny},
+jejichž závorky mají funkci separátoru řídicí sekvence:
+
+\begtt %-----------------------------------------------------------
+Píšu v \TeX{}u. \TeX{} je formátor.
+Nebo raději píšu v {\TeX}u a používám {\TeX} jako formátor.
+\endtt %-----------------------------------------------------------
+
+Pokud za zpětným lomítkem následuje něco jiného, než písmeno
+(například "\$"), je řídicí sekvence tvořena jen tímto znakem.
+Mezery za takovými jednoznakovými sekvencemi zůstávají
+zachovány:
+
+\begtt %-----------------------------------------------------------
+Pracuji se 100\% nasazením.
+\endtt %-----------------------------------------------------------
+
+Vidíme, že dalším speciálním znakem v~\TeX{}u je mezera. Jak jsme před
+chvílí uvedli, více mezer za sebou se chová jako mezera jediná.
+
+Všechny mezery na začátku řádku jsou ignorovány až po první znak, který
+není mezera. Toho můžeme využít pro zlepšení přehlednosti našich
+vstupních textů (viz naše ukázka s~výčtem prvků).
+
+Konec řádku je v~\TeX{}u interpretován jako mezera, která se vytiskne,
+pokud není separátorem řídicí sekvence. Pokud si mezeru z~konce
+řádku nepřejeme, můžeme ji \uv{zamaskovat} komentářovým znakem:
+
+\begtt %-----------------------------------------------------------
+Toto je
+ zvrácený
+pří%
+klad v~\TeX
+u.
+\endtt %-----------------------------------------------------------
+
+Prázdný řádek vytvoří interní příkaz "\par", který ukončuje
+odstavec. Není-li co ukončovat, "\par" nedělá nic. Proto více
+prázdných řádků pod sebou se chovají stejně jako jeden prázdný
+řádek. I~toho lze využít pro zvýšení přehlednosti zdrojových textů.
+
+V~následující tabulce je přehled všech znaků, které bývají
+nastaveny jako speciální:
+
+\begtable
+ "\" & uvozuje řídicí sekvenci
+ mezera & speciální vlastnosti popsány výše
+ konec řádku & speciální vlastnosti popsány výše
+ "{" & zahájení skupiny, parametru nebo definice
+ "}" & konec skupiny, parametru nebo definice
+ "$" & přepínač matematického módu
+ "&" & separátor používaný v tabulkách
+ "#" & označení parametru v definicích
+ "^" & konstruktor mocniny v matematickém módu
+ "_" & konstruktor indexu v matematickém módu
+ "~" & nedělitelná mezera
+ "%" & zahajuje na řádku komentář
+\endtable
+
+Speciální význam každého znaku lze v~\TeX{}u nastavit pomocí určitých
+definic. Výše uvedená tabulka tedy není v~ničem definitivní.
+Uvedený seznam speciálních znaků bývá takto nastaven ve
+formátech plain, csplain i \LaTeX.
+
+Pokud chceme vytisknout souvislejší část textu bez speciální
+interpretace, musíme těmto znakům jejich speciální funkce odebrat.
+V~\LaTeX{}u se pro tyto účely používá \LaTeX{}ové prostředí vymezené
+příkazy "\begin{verbatim}" a "\end{verbatim}". Vše mezi těmito příkazy%
+ \footnote{s výjimkou sekvence čtrnácti znaků
+ \uv{{\tt \char`\\end\char`\{verbatim\char`\}}}}
+se vytiskne tak, jak je napsáno ve vstupním textu. Uvedené prostředí
+vždy ukončí odstavec a zahájí tisk textu bez speciální interpretace.
+Pokud chceme mít bez speciální interpretace jen část textu uvnitř
+odstavce, použijeme v~\LaTeX{}u příkaz "\verb|text bez svislé čáry|"
+nebo třeba "\verb+text bez znaku plus+".
+
+V~plainu ani v~csplainu hotové řešení na vypnutí speciální
+interpretace znaků nenajdeme. Můžeme se inspirovat dvojicí "\begtt"
+a "\endtt" ve zdrojovém textu tohoto manuálu.
+
+Pokud chceme vytisknout jen jednotlivé speciální znaky, měli bychom
+vědět, jakou sekvencí to zařídit. Pro znaky používané v~běžném textu
+("$", "&", "#" a "_") jsou ve všech formátech připraveny řídicí
+sekvence "\$", "\&", "\#" a "\_". Tím požadovaný znak vytiskneme
+v~libovolném fontu. Výjimkou je znak \$, který se v~kurzívě
+Computer Modern fontu mění v~libru: {\cmit\$}. Je to taková malá
+kuriozita \TeX{}u.
+
+S~ostatními speciálními znaky to tak jednoduché není. V~implicitně
+nastaveném fontu Computer Modern totiž tyto znaky vesměs nemají ve
+fontu svůj odpovídající obraz. Například na pozici 92 bychom měli
+najít podle normy ASCII znak~"\" (zpětné lomítko), ale místo něj tam
+najdeme znak~`` (obrácené uvozovky). Nemile nás překvapí i jinak
+obyčejný znak "<" (symbol pro relaci je menší), který nemá ve fontu
+svůj obraz a místo něho dostaneme do výstupu < (obrácený
+vykřičník). Pokud chceme, aby se do výstupu věrně dostal znak, který
+známe z~tabulky ASCII, musíme použít variantu fontu "\tt" (strojopis),
+nebo jinou rodinu fontu, která má fonty v~kódování přesně podle
+ASCII. Následující tabulka ukazuje všechny běžné ASCII znaky, které
+mají v~Computer Modern jiný obraz:
+
+\begtable
+ kód znaku & "\tt" (strojopis) & Computer Modern
+ \tabline
+ \.60 & "<" & \tencsr <
+ \.62 & ">" & \tencsr >
+ \.92 & "\" & \tencsr \char92
+ 123 & "{" & \tencsr --
+ 124 & "|" & \tencsr ---
+ 125 & "}" & \tencsr \char125
+\endtable
+
+Znak z~dané pozice ve fontu vytiskneme pomocí příkazu "\char kód".
+Například "\char92" nám vytiskne ve strojopisu "\" a v~antikvě
+Computer Modern {\tencsr\char92}. Pokud si nepamatujeme číselnou
+hodnotu ASCII kódu nějakého znaku, můžeme místo ní použít konstrukci
+"`\znak", takže například "`\\" vrátí číslo 92. Proto při tisku
+zpětného lomítka píšeme "{\tt\char`\\}".
+
+Budeme-li chtít vytisknout některý ze znaků "< > \ { | }", musíme si
+uvědomit, jaký význam daný znak reprezentuje. Většinou se jedná
+o~matematické symboly, takže pro ně použijeme odpovídající řídicí
+sekvence v~matematickém módu (mezi dvěma dolary). Relace \uv{je menší},
+\uv{je větší} a symbol pro absolutní hodnotu lze dokonce
+v~matematickém módu napsat přímo, zatímco v~textovém módu mimo
+strojopis se promění ve španělskou interpunkci nebo pomlčku.
+Následující tabulka udává doporučený způsob zápisu příslušných
+znaků podle jejich významu:
+
+$$\vbox{\let\par=\cr \obeylines \halign{&#\hfil\quad
+ význam znaku & jak jej zapsat & jak se vytiskne
+ \tabline
+ relace \uv{je menší} & "$a < b$" & $a < b$
+ relace \uv{je větší} & "$a > b$" & $a > b$
+ uzavřený interval & "$\langle a,b\rangle$" & $\langle a,b\rangle$
+ ASCII znaky "< >" & "{\tt < >}" & "< >"
+ rozdíl množin & "$A\setminus B$" & $A\setminus B$
+ ASCII znak "\" & "{\tt\char`\\}" & "\"
+ Množinové závorky & "$M = \{a,b,c\}$" & $M = \{a,b,c\}$
+ ASCII znaky "{ }" & "{\tt\char`\{ \char`\}}" & "{ }"
+ absolutní hodnota & "$|x|$" & $|x|$
+ ASCII znak "|" & "{\tt |}" & {\tt|}
+ vlnka jako akcent & "\~a" & \~a
+ samostatný akcent & "\~{}" & \~{}
+ ASCII znak "~" & "{\tt\char`\~}" & "~"
+ stříška jako akcent & "\^a" & \^a
+ ASCII znak "^" & "{\tt\char`\^}" & "^"
+}}$$
+
+V~\LaTeX{}u lze místo konstrukcí "{\tt\char`\znak}" použít
+jednoduššího "\verb|znak|". Ovšem příkaz "\verb", který odebírá znaku
+jeho speciální funkci a zapíná tisk ve strojopisu, nemusí fungovat
+všude. Například jej nelze použít jako argument jiného příkazu
+("\section", "\uv", apod.).
+
+\sekce Rozměrové jednotky používané v~\TeX u a typografii
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Z~historických důvodů v~typografii stále přežívají měrné jednoty
+rozdílné od soustavy SI. Základní měrnou jednotkou, která se používá
+v~anglosaských zemích, je jednotka point ({\tt pt}), která má rozměr
+asi třetinu milimetru. Dvanáctinásobek je pica (čteme pajka, {\tt
+pc}). Jednotkou, která se používala v~Evropě, je \uv{Didotův bod}
+({\tt dd}), který je větší než point, ale zhruba taky měří třetinu
+milimetru. Dvanáctinásobek tohoto bodu je cicero ({\tt cc}).
+V~počítačových programech pro sazbu se používá počítačový bod
+({\tt bp}), který je jen velmi nepatrně větší. 72 počítačových bodů se
+přesně vejde do jednoho palce ({\tt in}, inch používaný především
+v~Americe).
+
+Všechny tyto jednotky je možné použít v~\TeX{}u jako dvoupísmenové zkratky,
+jak ukazuje následující tabulka. Navíc lze použít jednotky odvozené
+z~metru.
+
+\begtable
+ "pt" & monotypový bod & $1\,{\tt pt} = 1/72.27\,{\tt in} \doteq %
+ 0.35146\,{\tt mm}$
+ "pc" & pica & $1\,{\tt pc} = 12\,{\tt pt}$
+ "bp" & počítačový bod & $1\,{\tt bp} = 1/72\,{\tt in}$
+ "dd" & Didotův bod & $1\,{\tt dd} = 1238/1157\,{\tt pt}$
+ "cc" & cicero & $1\,{\tt cc} = 12\,{\tt dd}$
+ "in" & palec (inch, coul) & $1\,{\tt in} = 25.4\,{\tt mm}$
+ "cm" & centimetr & $1\,{\tt cm} = 10\,{\tt mm}$
+ "mm" & milimetr & $1\,{\tt mm} \doteq 2.84528\,{\tt pt}$
+ "sp" & jednotka \TeX{}u & $1\,{\tt sp} = 1/65536\,{\tt pt}$
+ "em" & velikost písma & závislé na aktuálním písmu
+ "ex" & výška malého x & závislé na aktuálním písmu
+\endtable
+
+Velikost písma se měří zhruba jako celková výška řádku, který obsahuje
+všechny znaky písma (mimo akcentované verzálky, tj. neuvažujeme v~takovém
+řádku háčky a čárky nad velkými písmeny). Zhruba to také odpovídá
+šířce velkého písmene M (odtud jednotka {\tt em}). Bohužel, na jednotlivých
+písmech není nic společného, co by se dalo vždy jednoduše změřit a přesně
+říci, že právě to je ona velikost písma.
+
+
+\sekce Práce s~fonty
+%%%%%%%%%%%%%%%%%%%%
+
+Implicitní fonty, které jsou v~každé implementaci \TeX{}u k~dispozici
+a které jsou nezávislé na použitém operačním systému, jsou fonty
+rodiny Computer Modern. Běžná antikva v~této rodině má název {\tt
+cmr10}. To je zkratka pro \uv{Computer Modern Roman ve velikosti 10pt}.
+Fonty Computer Modern bývají už načteny ve formátu a pro
+jednotlivé varianty (antikva, kurzíva, polotučné, strojopis) bývají
+připraveny přepínače "\rm", "\it", "\bf", "\tt".
+
+Fonty Computer Modern neobsahují akcentovaná písmena (s~háčky a čárkami).
+Proto jsou ve formátu csplain místo nich implicitně načteny tak zvané
+\CS{}fonty, které rozšiřují Computer Modern fonty o~písmena s~akcenty
+z~české a slovenské abecedy. Běžná antikva v~této rodině má název
+{\tt csr10}. \LaTeX{} také implicitně pracuje s~rodinou Computer Modern,
+pomocí dodatečných stylů se dá přinutit k zavedení dalších fontů. Používá k
+tomu zabudovaný balík makrer NFSS, který uživatele totálně odstíní od
+primitivního příkazu "\font".
+
+Ve všech formátech (v~\LaTeX{}u navzdory jeho NFSS konceptu)
+můžete zavést nový přepínač pro nové písmo
+pomocí příkazu "\font". Ten má následující syntaxi:
+
+\begtt
+\font\přepínač=název-fontu nepovinné parametry zvětšení
+\endtt
+
+Například
+
+\begtt
+\font\titulfont=csr10 scaled \magstep2
+\endtt
+
+\pp zavede do \TeX{}u font csr10 (tedy běžnou počeštěnou antikvu
+odvozenou z~Computer Modern) ve zvětšení $1.44$ krát normální
+velikost, která je 10 bodů. Tento font se pak v~textu aktivuje
+přepínačem "\titulfont". Proč zrovna koeficient $1.44$? To je
+koeficient, pro který byla v~\TeX{}u vytvořena zkratka
+"\magstep2". Následující tabulka shrnuje všechny zkratky typu
+"\magstep", které jsou definovány ve všech běžně používaných
+formátech.
+
+\begtable
+ sekvence & koeficient & implementováno jako
+ \tabline
+ "\magstep0" & 1:1 (žádné zvětšení) & 1000
+ "\magstep1" & $1.2$ & 1200
+ "\magstep2" & $1.2^2 = 1.44$ & 1440
+ "\magstep3" & $1.2^3 = 1.728$ & 1728
+ "\magstep4" & $1.2^4 = 2.0736$ & 2074
+ "\magstep5" & $1.2^5 = 2.48832$ & 2488
+ "\magstephalf" & $\sqrt{1.2}\doteq1.095445$ & 1095
+\endtable
+
+Odstupňování jednotlivých velikostí písma pomocí mocnin čísla $1.2$ bývá
+v~typografii dobrým zvykem.
+
+Ve sloupci \uv{implementováno jako} vidíme, že koeficient se za slovem
+{\tt magstep} (stejně jako na mnoha dalších místech v~\TeX{}u) zadává jako
+celé číslo odpovídající tisícinásobku uvažované hodnoty. Chceme-li tedy
+použít font dvojnásobně velký, použijeme {\tt scaled~2000} a při požadavku
+na poloviční velikost píšeme {\tt scaled~500}.
+
+Kromě koeficientu zvětšení (slovo {\tt scaled}) můžeme chtít zvětšit
+font bez ohledu na jeho původní velikost do námi požadované velikosti.
+K~tomu se používá slovo {\tt at}, například:
+
+\begtt %--------------------------------------------------------------
+\font\prvni=csr10 at 20pt
+\font\druhy=csr10 scaled 2000
+\endtt %--------------------------------------------------------------
+
+Oba řádky této ukázky zavádějí stejný font ve stejném zvětšení.
+
+Rodina písma Computer Modern (a jeho odvozeniny, například \CS{}fonty)
+obsahuje různé velikosti stejné varianty písma, přitom tyto
+alternativy nejsou jen stejnoměrným násobením všech rozměrů.
+Doporučuje se, zvláště v~menších velikostech písma, používat
+implicitní velikost písma a dále ji nezmenšovat ani nezvětšovat.
+Implicitní velikost písma je označena číslem v~názvu
+fontu, tj. například {\tt csr10} má implicitní velikost 10\,pt a
+{\tt csr5} má velikost 5\,pt. Srovnáme výsledek tohoto příkladu:
+
+\begtt %--------------------------------------------------------------
+\font\zvetseny=csr5 at10pt
+\font\normalni=csr10
+\normalni Tady je přirozená velikost písma 10 bodů
+\zvetseny a tady je písmo navržené pro pět bodů zvětšeno na 10 bodů.
+\endtt %--------------------------------------------------------------
+
+Na výstupu dostaneme:
+
+\beguk %--------------------------------------------------------------
+\font\zvetseny=csr5 at10truept
+\font\normalni=csr10 at10truept
+\baselineskip=12truept
+\normalni Tady je přirozená velikost 10 bodů
+\zvetseny a tady je písmo navržené pro pět bodů zvětšeno na 10 bodů.
+\enduk %--------------------------------------------------------------
+
+Přepnout písmo dokumentu do jiné rodiny fontů znamená postarat se o~změnu
+významu všech přepínačů jednotlivých variant písma ("\rm", "\bf", "\it" a
+"\tt") a nezapomenout na vhodnou změnu fontu též v~nadpisech a v~dalších
+velikostech písma, které jsou v~dokumentu použity. Jednoduché definice
+alternativních přepínačů najdeme pro csplain v~následujících souborech:
+
+\begtable
+ soubor & Rodina fontů
+ \tabline
+ "cavantga.tex" & Avantgarde Book
+ "cbookman.tex" & Bookman
+ "chelvet.tex" & Helvetica
+ "cncent.tex" & New Century
+ "cpalatin.tex" & Palatino
+ "ctimes.tex" & Times Roman
+\endtable
+
+Tyto rodiny fontů jsou instalovány v~každém výstupním PostScriptovém
+zařízení, takže s~těmito fonty můžeme v~\TeX{}u pracovat, aniž bychom je
+museli mít zakoupené. \TeX{} samotný totiž pracuje pouze s~metrickými
+informacemi k~fontům a do výstupu vkládá pouze odkazy na fonty. Metrické
+informace jsou obvykle k~dispozici zdarma. Pokud budeme tisknout na
+PostScriptovém zařízení, pak jsme s~cenou PostScriptového modulu tyto fonty
+vlastně koupili a můžeme v~nich tisknout \TeX{}ové dokumenty. Pokud budeme
+tisknout na zařízení bez PostScriptu, pak je vhodné PostScriptový kód
+zpracovat volně dostupným programem Ghostscript, který má v~sobě zahrnuty
+volně dostupné alternativy k~uvedeným základním fontům. Rozdíl mezi
+alternativou a draze koupeným fontem přitom ani moc nepoznáme.
+
+Chceme-li například přepnout do písma Bookman, stačí napsat do dokumentu
+"\input bookman". Takovou věc jsme už ilustrovali na našem příkladě
+v~předchozím textu.
+
+Podíváme-li se do souborů {\tt cbookman.tex} a dalších, které najdeme
+v~instalaci \TeX{}u někde v~adresáři {\tt csplain}, zjistíme, že zde nejsou
+předefinovány přímo přepínače "\rm", "\bf", "\it" a "\tt", ale že se zde
+místo nich pracuje s~přepínači "\tenrm", "\tenbf", "\tenit" a "\tentt".
+To jsou totiž v~plainu (i csplainu) skutečné přepínače \uv{nejnižší
+úrovně}. Pro uživatele se pak definují značky "\rm", "\bf", "\it" a "\tt"
+s~dalším přihlédnutím na chování těchto značek v~matematickém módu.
+Například "\bf" je definováno takto:
+
+\begtt %--------------------------------------------------------------
+\def\bf{\tenbf \fam\bffam}
+\endtt %--------------------------------------------------------------
+
+Je-li tedy předefinován přepínač "\tenbf", bude se od této chvíle chovat
+jinak i značka "\bf". Kód "\fam\bffam" zde nebudeme rozebírat, protože
+překračuje rámec tohoto úvodního textu. Spokojíme se s~tím, že v~textovém
+módu nemá tento kód žádný vliv a v~matematickém módu cosi udělá.
+
+Příkaz "\fontname\přepínač\space" se promění zpět v~původní název
+fontu ukončený mezerou. Tato vlastnost byla použita v~našem příkladu,
+kde jsme zaváděli větší font pomocí této konstrukce:
+
+\begtt %---------------------------------------------------------------
+\font\titulfont=\fontname\tenbf\space scaled \magstep2 % větší font
+\endtt %---------------------------------------------------------------
+
+Výhodou tohoto zápisu je fakt, že nemusíme znát název fontu, stačí si
+zapamatovat základní přepínače "\tenrm", "\tenbf", "\tenit" a "\tentt".
+Názvy fontů se nejenom těžko pamatují, ale také se mohou změnit,
+pokud před takovou konstrukcí použijeme "\input cbookman" nebo něco
+podobného.
+
+V~\LaTeX{}u asi takové obraty nebudeme potřebovat, protože o~zavedení
+potřebných fontů pro různé velikosti se \LaTeX{} stará sám. Pro
+přepínání mezi rodinami fontů používáme v~\LaTeX{}u příkaz
+"\usepackage" a následuje ve složených závorkách jedno ze slov
+{\tt avantgar}, {\tt bookman}, {\tt helvet}, {\tt newcent},
+{\tt palatino}, {\tt times}. Písmeno {\tt c} na začátku názvu rodiny
+fontů (na rozdíl od csplainu) nepíšeme.
+
+Možná nás začne zajímat, jaké fonty máme v~\TeX{}ové instalaci
+připraveny k~použití. Stačí udělat menší průzkum v~adresáři {\tt tfm}
+(odvozeno od zkratky \TeX{} font metrics) a podívat se do jednotlivých
+podadresářů na názvy přítomných souborů. To jsou současně názvy fontů,
+které jsou použitelné v~příkaze "\font". Chceme rychle vědět, jak který
+font vypadá? Napišme na příkazový řádek
+
+\begtt %-----------------------------------------------------------------
+tex testfont
+\endtt %-----------------------------------------------------------------
+
+\TeX{} se nás vyptá na název fontu, který zadáme bez přípony
+{\tt.tfm}. Pak nás požádá o~instrukci, co s~načteným fontem má dělat.
+Nejlépe je odpovědět "\table\end" a podívat se na tabulku znaků
+testovaného fontu třeba pomocí "xdvi testfont".
+
+
+
+\sekce Umístění sazby na papíře
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Při poznávání \TeX{}u si jistě velmi brzo položíme otázku, jak je
+možné změnit velikost okrajů, neboli jak umístit sazbu na papíře.
+
+V~plainu jsou implicitně nastaveny velikosti okrajů jeden palec
+z~každé strany papíru amerického formátu Letter. Takové formáty papíru
+u~nás většinou nerostou, takže plain nám na papíru A4 udělá jen levý a
+horní okraj velikosti jeden palec a pravý okraj bude menší a spodní
+větší.
+
+V~csplainu jsou implicitně nastaveny velikosti okrajů jeden palec
+z~každé strany pro formát A4. Sazba je tedy v~csplainu mírně užší a
+vyšší, než v~plainu. Sazbu přitom měříme bez případného záhlaví a bez
+stránkových číslic.
+
+Po zavedení makra OPmac v~plainu nebo csplainu je možné
+okraje pohodlně nastavit makrem "\margins". Jak to udělat je popsáno v
+dokumentaci k OPmac. Níže je uveden postup nastavení okrajů v \TeX{}u na
+úrovni \TeX{}u samostného bez použití maker.
+
+Umístění sazby měříme vzhledem k~počátku, který se nalézá na papíře
+1~palec od levého okraje a 1~palec od horního okraje. Levý horní roh
+sazby se kryje s~tímto počátkem, pokud jsou nastaveny registry
+"\hoffset=0pt" a "\voffset=0pt". Levý horní roh sazby se posune
+doprava o~hodnotu "\hoffset" a dolů o~hodnotu "\voffset". Při
+záporných hodnotách těchto registrů se sazba posunuje samozřejmě doleva
+respektive nahoru.
+
+Šířka sazby (přesněji šířka zpracovávaného odstavce) se nastaví pomocí
+registru "\hsize". Výška sazby na stránce se nastaví pomocí "\vsize".
+V~následující ukázce jsou uvedeny hodnoty, které nastavuje plain.
+
+\begtt
+\voffset=0in % velikost horního okraje = \voffset + 1 palec
+\hoffset=0in % velikost levého okraje = \hoffset + 1 palec
+\hsize=6.5in % šířka řádku, 165.1mm
+\vsize=8.9in % výška sazby, 266mm
+\endtt
+
+Formát csplain má registry "\hoffset" a "\voffset" také nulové, ale
+šířku a výšku sazby nastavuje odlišně:
+
+\begtt
+\hsize= 159.2 mm % šířka řádku v csplainu (šířka A4 - 2in)
+\vsize= 239.2 mm % výška sazby (výška A4 - 2in)
+\endtt
+
+Pokud chceme nastavit vlastní velikosti, doporučujeme nejprve registry
+"\hoffset" a "\voffset" nastavit na hodnotu $-1$\,in a pak k~nim přičíst
+hodnoty požadovaných okrajů pomocí příkazu "\advance". Dále
+doporučujeme výšku sazby přesně rozměřit na počet řádků. K~tomu
+potřebujeme vědět, že vzdálenost dvou řádků se určí pomocí registru
+"\baselineskip" (pozor: při větším písmu se toto řádkování může
+rozhodit). Plain i csplain nastavují "\baselineskip" na 12\,pt.
+Kromě toho je účaří prvního řádku od pomyslného horního okraje sazby
+vzdáleno o~"\topskip", který má v~plainu i v~csplainu hodnotu 10\,pt.
+Protože se výška sazby "\vsize" měří od horního pomyslného okraje po
+účaří posledního řádku na stránce, vychází "\vsize" jako
+\hbox{$"\topskip" + (n-1)\times "\baselineskip"$}, kde $n$ je počet řádků na
+stránce. Nastavení velikosti sazby tedy můžeme udělat například takto:
+
+\begtt
+\voffset=-1in
+\advance\voffset by 2cm % velikost horního okraje bude 2cm
+\hoffset=-1in
+\advance\hoffset by 1.5cm % velikost pravého okraje bude 1.5cm
+\hsize=10cm % šířka řádku bude 10cm
+\vsize=\topskip
+\advance\vsize by 15\baselineskip % sazba bude mít 16 řádků na stránce
+\endtt
+
+V~\LaTeX{}u se při nastavování rozměrů sazby používají registry
+speciálně deklarované v~tomto formátu. Jedná se o~"\textheight" (výška
+sazby), "\textwidth" (šířka sazby), "\oddsidemargin" (levý okraj na
+lichých stránkách), "\evensidemargin" (levý okraj na sudých stránkách)
+a "\topmargin" (horní okraj). \LaTeX{} pak sám podle hodnot těchto
+registrů nastaví vnitřní registry \TeX{}u "\hoffset", "\voffset",
+"\hsize" a "\vsize". Uživatel \LaTeX{}u by k~nim neměl přistupovat
+přímo a navíc by měl s~registry zacházet \uv{\LaTeX{}ovsky}, což
+prakticky znamená, že místo jednoduchého přiřazení nebo příkazu
+"\advance" by měl zapisovat své požadavky zhruba takto:
+
+\begtt
+\setlength\topmargin{-1in}
+\addtolength\topmargin{2cm} % velikost horního okraje bude 2cm
+\setlength\oddsidemargin{-1in}
+\addtolength\oddsidemargin{1.5cm} % velikost pravého okraje bude 1.5cm
+\setlength\evensidemargin{\oddsidemargin}
+\setlength\textwidth{10cm} % šířka sazby bude 10cm
+\setlength\textheight{\topskip}
+\addtolength\textheight{15\baselineskip} % 16 řádků
+\endtt
+
+\TeX{}em většinou nenastavujeme parametry pro archovou montáž sazby,
+takže nám výše uvedené příklady pro nastavení velikosti sazby bohatě
+stačí. Pokud bychom chtěli se sazbou dále manipulovat a umisťovat ji
+na jednotlivé archy podle určitých požadavků, použijeme většinou
+pomocné programy, které manipulují s~PostScriptovým výstupem.
+Představme si, že chceme stránky tohoto manuálu zmenšit tak, aby se
+vešly dvě vedle sebe na stranu A4. Dále chceme tyto stránky uspořádat
+tak, abychom po oboustranném vytištění manuálu na šest archů A4
+dostali svazeček, který přeložíme v~půli a máme knížečku
+s~24 na sebe navazujícími stránkami. Pro takový úkol se asi nejlépe hodí
+programy z~volně šířeného balíčku psutils. Na příkazový řádek můžeme
+postupně napsat tyto instrukce:
+
+\begtt
+> csplain prvni
+> dvips prvni
+> psbook prvni.ps p0.ps
+> pstops "4:0L@.7(21cm,.5cm)+1L@.7(21cm,14.4cm)" p0.ps p1.ps
+> pstops "4:2L@.7(21cm,.5cm)+3L@.7(21cm,14.4cm)" p0.ps p2.ps
+> lpr -Ptiskarna p1.ps
+> lpr -Ptiskarna p2.ps
+> rm prvni.ps p0.ps p1.ps p2.ps
+\endtt
+
+Příkaz {\tt dvips} převede dokument do PostScriptu a {\tt psbook}
+uspořádá stránky pro použití do \uv{svazečku}. První volání příkazu
+{\tt pstops} vybere vždy dvě ze čtyř stránek, zmenší je na
+$0.7$\,násobek původní velikosti ({\tt @.7}) a umístí je do archu
+podle uvedených parametrů. Tím vzniká podklad pro tisk lícových stran
+archů A4 ({\tt p1.ps}). Podobně druhé volání příkazu {\tt pstops}
+vytvoří podklad pro rubovou stranu archů. Vlastní tisk ({\tt lpr})
+pak můžeme provést na tiskárně, která neumí oboustranný tisk, ve dvou
+průchodech. Před druhým průchodem obrátíme vytištěné papíry a vložíme
+je do zásobníku tiskárny znovu.
+
+
+\sekce Overfull/Underfull box
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Při práci s~\TeX{}em narazíme postupně na celou řadu chybových
+hlášení, při kterých se program většinou zastaví a vyzve nás k~nějaké
+akci. Ačkoli třeba jen stiskneme klávesu Enter, uvědomíme si, že je
+něco špatně a pokusíme se chybu řešit.
+
+Kromě toho \TeX{} vypisuje varování o~přetečených (overfull) a
+nedoplněných (underfull) boxech. Protože se při těchto výpisech
+nezastavuje, považují to mnozí začátečníci za menší zlo, kterého si
+není nutné všímat. Není to tak docela pravda.
+
+Přetečené boxy (overfull) bychom měli rovněž zařadit do kategorie
+chyb. \TeX{}u se totiž nepodařilo vměstnat sazbu do předepsané šířky
+"\hsize". Prakticky to znamená, že sazba v~daném místě \uv{vyčnívá}
+na pravé straně ven směrem do okraje. Hlášení obsahuje údaj, o~kolik
+bodů sazba vyčnívá, číslo řádku ve zdrojovém kódu a kus textu, který určuje
+problémové místo. Plain a csplain dále nastavuje registr
+"\overfullrule" na 5\,pt, takže se v~sazbě na problémovém místě objeví
+těžko přehlédnutelný černý obdélník. \LaTeX{} tento registr nuluje,
+takže černé obdélníky nejsou vidět, což dává uživateli pocit, že je
+všechno v~pořádku.
+
+Objeví-li se přetečený box v~odstavci, většinou stačí \uv{rozvolnit}
+mezery. Mezery mezi slovy mají totiž pružnost (mohou se smršťovat nebo
+natahovat). Tato pružnost není neomezená, ale je daná jistými
+parametry podle použitého fontu. Chceme-li dát mezerám větší volnost
+v~roztahování, než si přál autor fontu, pišme například
+"\emergencystretch=2cm". \TeX{} má plno dalších vnitřních registrů,
+jejichž nastavením ovlivníme algoritmy na sestavování
+odstavce. Jejich popis ovšem překračuje rámec tohoto úvodního textu.
+
+Nedoplněné boxy (underfull) můžeme na rozdíl od přetečených boxů
+považovat pouze za varování. \TeX{} nás informuje, že byl nucen
+v~některém místě natáhnout mezery víc, než je esteticky zdrávo. Hodnota
+{\tt badness}, která hlášení doprovází, udává zhruba stupeň estetické
+vady v~takovém místě (nebo také velikost násilí provedené na
+mezerách). Čím vyšší badness, tím horší výsledek. Maximální hodnota
+badness je 1000, což značí, že některý řádek je úplně špatně. Stojí
+zato se podívat do sazby na takto označená místa a zamyslet se, co by
+se dalo změnit, aby se zlepšila estetická úroveň výsledku.
+
+\LaTeX{}oví uživatelé dosti často neopatrně pracují s~příkazem "\\",
+který se v~různých \LaTeX{}ových prostředích chová jako ukončení
+řádku. Někdy se dostane takový příkaz i na konec odstavce, což samo
+o~sobě nemá logiku, protože na konci odstavce se samo sebou ukončí
+řádek. Pokud se tak stane, \TeX{} na konci odstavce vytvoří ještě další
+prázdný řádek, ve kterém nemá žádnou mezeru k~natažení na šířku
+"\hsize" a oprávněně se rozčílí: {\tt Underfull hbox badness 1000}.
+V~tomto případě vlastně \TeX{} křičí na uživatele, který nebyl schopen
+opustit principy starodávného psacího stroje a potřebuje mít k~ruce tu
+velikou páku, do které je občas potřeba praštit, aby se přešlo na nový
+řádek.
+
+
+
+\end
+
+
+
+
diff --git a/Master/texmf-dist/doc/cstex/test8z.pdf b/Master/texmf-dist/doc/cstex/test8z.pdf
new file mode 100644
index 00000000000..3ab0b71a127
--- /dev/null
+++ b/Master/texmf-dist/doc/cstex/test8z.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/cstex/test8z.tex b/Master/texmf-dist/doc/cstex/test8z.tex
new file mode 100644
index 00000000000..61b47898c9e
--- /dev/null
+++ b/Master/texmf-dist/doc/cstex/test8z.tex
@@ -0,0 +1,81 @@
+
+% test.tex -- plainTeX file for test of standard PostScript fonts
+% in Czech and Slovak, font metric names: p*8z and p*8u.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Juni 1995 Petr Olšák
+% March 1999: pcr*8t was renamed to pcr*8u
+% October 2012: the text-sample was corrected
+
+% Encoding: UTF-8
+% Needs Format: csplain
+
+\chyph % czech hyphenation used
+
+\advance\vsize by2\baselineskip
+
+\def\allowhyphens{\nobreak\hskip0pt\relax}
+\def \uv#1{\char254 \allowhyphens#1\allowhyphens\char255 }
+
+\def\text#1{Tento text je napsán Post\-Scrip\-to\-vým fontem #1 za použití
+\TeX{}ov\-ské metriky {\tt \fontname\testfont}. Metrika fontu
+v~české/slovenské variantě byla vygenerována z AFM souborů URW fontů
+pomocí programu {\tt afm2tfm}. Je potřeba si všímat méně
+obvyklých slov, jako je slovo šťastný (písmeno ť uprostřed slova), nebo
+třeba slovenské koľko. Věřme, že výsledný text půjde nejen přečíst, ale
+bude i typograficky pokud možno v~pořádku. Také je třeba \uv{sledovat
+chování} našich \uv{uvozovek}.
+\medskip
+Á á Ä ä Č č Ď ď É é Ě ě Í í Ĺ ĺ Ľ ľ Ň ň Ó ó Ô ô Ö ö Ř ř Ŕ ŕ Š š Ť ť Ú ú Ů ů
+Ü ü Ý ý Ž ž \char134.}
+
+\def\test#1 #2 {\font\testfont=#1\extension\space{\testfont\text{#2}\bigskip}}
+\emergencystretch=1em
+
+\def\extension{8z}
+
+\test ptmr Times-Roman
+\test ptmb Times-Bold
+\test ptmbi Times-BoldItalic
+\test ptmri Times-Italic
+\test ptmrc Times-Roman-SmallCaps
+
+\test pagk AvantGarde-Book
+\test pagko AvantGarde-BookOblique
+\test pagd AvantGarde-Demi
+\test pagdo AvantGarde-DemiOblique
+
+\test pbkd Bookman-Demi
+\test pbkdi Bookman-DemiItalic
+\test pbkl Bookman-Light
+\test pbkli Bookman-LightItalic
+
+{\rightskip=0pt plus4em \def\extension{8u}
+\test pcrr Courier
+\test pcrb Courier-Bold
+\test pcrro Courier-Oblique
+\test pcrbo Courier-BoldOblique
+}
+
+\test pncr NewCenturySchlbk-Roman
+\test pncb NewCenturySchlbk-Bold
+\test pncri NewCenturySchlbk-Italic
+\test pncbi NewCenturySchlbk-BoldItalic
+
+\test phvr Helvetica
+\test phvb Helvetica-Bold
+\test phvro Helvetica-Oblique
+\test phvbo Helvetica-BoldOblique
+
+\test phvrn Helvetica-Narrow
+\test phvbn Helvetica-Narrow-Bold
+\test phvron Helvetica-Narrow-Oblique
+\test phvbon Helvetica-Narrow-BoldOblique
+
+\test pplr Palatino-Roman
+\test pplb Palatino-Bold
+\test pplri Palatino-Italic
+\test pplbi Palatino-BoldItalic
+
+\test pzcmi ZapfChancery-MediumItalic
+
+\end
diff --git a/Master/texmf-dist/doc/cstex/testgyre8z.pdf b/Master/texmf-dist/doc/cstex/testgyre8z.pdf
new file mode 100644
index 00000000000..f0ecdb237ab
--- /dev/null
+++ b/Master/texmf-dist/doc/cstex/testgyre8z.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/cstex/testgyre8z.tex b/Master/texmf-dist/doc/cstex/testgyre8z.tex
new file mode 100644
index 00000000000..8eaefcf90d0
--- /dev/null
+++ b/Master/texmf-dist/doc/cstex/testgyre8z.tex
@@ -0,0 +1,81 @@
+
+% test.tex -- plainTeX file for test of standard PostScript fonts
+% in Czech and Slovak, font metric names: p*8z and p*8u.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Juni 1995 Petr Olšák
+% March 1999: pcr*8t was renamed to pcr*8u
+% October 2012: the text-sample was corrected
+
+% Encoding: UTF-8
+% Needs Format: csplain
+
+\chyph % czech hyphenation used
+
+\advance\vsize by2\baselineskip
+
+\def\allowhyphens{\nobreak\hskip0pt\relax}
+\def \uv#1{\char254 \allowhyphens#1\allowhyphens\char255 }
+
+\def\text#1{Tento text je napsán Post\-Scrip\-to\-vým fontem #1 za použití
+\TeX{}ov\-ské metriky {\tt \fontname\testfont}. Metriku fontu
+v~české/slovenské variantě připravili naši polští kolegové.
+Je potřeba si všímat méně
+obvyklých slov, jako je slovo šťastný (písmeno ť uprostřed slova), nebo
+třeba slovenské koľko. Věřme, že výsledný text půjde nejen přečíst, ale
+bude i typograficky pokud možno v~pořádku. Také je třeba \uv{sledovat
+chování} našich \uv{uvozovek}.
+\medskip
+Á á Ä ä Č č Ď ď É é Ě ě Í í Ĺ ĺ Ľ ľ Ň ň Ó ó Ô ô Ö ö Ř ř Ŕ ŕ Š š Ť ť Ú ú Ů ů
+Ü ü Ý ý Ž ž \char134.}
+
+\def\test#1 #2 {\font\testfont=cs-#1 {\testfont\text{#2}\bigskip}}
+\emergencystretch=1em
+
+\def\extension{8z}
+
+\test qtmr Termes-Regular
+\test qtmri Termes-Italic
+\test qtmb Termes-Bold
+\test qtmbi Termes-BoldItalic
+\test qtmr-sc Termes-Roman-SmallCaps
+
+\test qagr Adventor-Regular
+\test qagri Adventor-Italic
+\test qagb Adventor-Bold
+\test qagbi Adventor-BoldItalic
+
+\test qbkr Bonum-Regular
+\test qbkri Bonum-Italic
+\test qbkb Bonum-Bold
+\test qbkbi Bonum-BoldItalic
+
+{\rightskip=0pt plus4em \def\extension{8u}
+\test qcrr Cursor
+\test qcrri Cursor-Italic
+\test qcrb Cursor-Bold
+\test qcrbi Cursor-BoldItalic
+}
+
+\test qcsr Schola-Regular
+\test qcsri Schola-Italic
+\test qcsb Schola-Bold
+\test qcsbi Schola-BoldItalic
+
+\test qhvr Heros-Regular
+\test qhvri Heros-Italic
+\test qhvb Heros-Bold
+\test qhvbi Heros-BoldItalic
+
+\test qhvcr HerosCondensed-Regular
+\test qhvcri HerosCondensed-Italic
+\test qhvcb HerosCondensed-Bold
+\test qhvcbi HerosCondensed-BoldItalic
+
+\test qplr Pagella-Regular
+\test qplri Pagella-Italic
+\test qplb Pagella-Bold
+\test qplbi Pagella-BoldItalic
+
+\test qzcmi Chorus-MediumItalic
+
+\end
diff --git a/Master/texmf-dist/doc/cstex/testlat.tex b/Master/texmf-dist/doc/cstex/testlat.tex
new file mode 100644
index 00000000000..a6a5f861c22
--- /dev/null
+++ b/Master/texmf-dist/doc/cstex/testlat.tex
@@ -0,0 +1,30 @@
+\documentclass[12pt]{article}
+\usepackage[czech]{babel} % Zapne deleni slov.
+\usepackage{times} % Misto CS-fontu budou pouzity PostScriptove fonty
+\usepackage[utf8]{inputenc} % nastavení kódování
+\usepackage[IL2]{fontenc}
+\parskip=\baselineskip % Mezi odstavci bude prázdný řádek
+\emergencystretch=4em % abych dovolil vetsi mezery a nebyly Overfull
+
+\begin{document}
+Tady je text napsaný PostScriptovým fontem včetně zpracování akcentů v~českém
+jazyce a správného dělení slov.
+
+Matematika i při sazbě PostScriptovým fontem zůstává ve fontu CM.
+Proto je rozdíl mezi číslovkou \uv{2} napsanou přímo v textu a číslovkou
+\uv{$2$} napsanou na vstupu mezi dolary.
+
+Kromě stylu {\tt times.sty} je možno použít styly pro přepínání do dalších
+PostScriptových fontů: {\tt avant.sty}, {\tt bookman.sty},
+{\tt helvet.sty}, {\tt newcent.sty}, {\tt palatino.sty}
+(vyzkoušejte si).
+
+V plainu lze též použít stejným způsobem PostScriptové fonty, ovšem
+místo volání výše uvedených stylů je nutno volat soubory
+{\tt ctimes.tex}, {\tt cavantga.tex}, {\tt cbookman.tex},
+{\tt chelvet.tex}, {\tt cncent.tex}, {\tt cpalatin.tex}. Například kdekoli
+v textu píšeme \verb|\input ctimes| a od této chvíle máme text sázený
+fontem Times-Roman.
+
+\end{document}
+
diff --git a/Master/texmf-dist/doc/cstex/zmeny.txt b/Master/texmf-dist/doc/cstex/zmeny.txt
new file mode 100644
index 00000000000..6fe1b6924a2
--- /dev/null
+++ b/Master/texmf-dist/doc/cstex/zmeny.txt
@@ -0,0 +1,184 @@
+Zmeny v nabizenych souborech CSTeXu v dobe verejneho provozu
+
+Datum Soubor Poznamka
+--------------------------------------------------
+18.1.96 i-all.ba Opraven preklep dvipsesxe na dvipsexe
+ i1.ba Opraven odkaz na soubor @ctimne (misto !ctimne)
+22.1.96 mnu.zip Pridana aktualnejsi dokumentace, soubor codelat.txt,
+ user.doc a cfg.doc. Mirna zmena v texset.bat.
+ Uprava napovedy pri initex.bat (dotaz huge/big/std)
+ Zarazena opravena verze kalk.exe (viz chyba 10^10).
+ cstugdoc.zip zrusen soubor cstex.doc, nebod jeho novejsi
+ verze je nyni v mnu.zip
+ Pridan odkaz na diskusi o csTeXu a na soubor zmen.
+25.1.96 listzip.html Opraven preklep wagner@ipf -> wagner@icpf
+ 5.2.96 parpozn.tex Do CSTeXu zarazen clanek o CSTeXu
+ 8.2.96 mnu.zip Opravena chyba v texbat.bat TEXDIR->EMTEXDIR
+ pro texspell a upravena dokumentace.
+ 8.2.96 @ctimne.txt Upravena dokumentace.
+ 8.3.96 cslatex.zip Opravena struktura ZIPu, uz je v souladu s MNU.
+ 8.3.96 mnu.zip Opraveny preklepy v dokumentaci.
+14.3.96 cspsfont.zip *.vf premisteny do fonts\vf\a2ac, oprava dokumenmtace.
+15.3.96 csplain.zip,tar Oprava v souboru csfonts.tex, nyni lze pouzit
+ i mimo iniTeX. Format csplain zcela beze zmeny.
+ newcs5.bat Nyni generuje spell.zip, puvodne chybne texspell.zip.
+ pk Obsah diskety pk2 se vejde na disketu pk1, snizen
+ pocet disket. Opraveno: makeinst.bat, make-d.bat
+ i-all.bat, i-big.bat, listzip.html,txt, @ctimne.txt
+19.3.96 minitex Zavedeny dalsi tri diskety s tzv. miniTeXem
+ Upraveny soubory @ctimne.txt, *.ba, install.bat,
+ make-d.bat, makeinst.bat, listzip.html,txt.
+ pk3 a pk4 Zahrnuty rastry zakladnich PostScriptovych fontu.
+ mnu.zip Opraveno volani VF v em ovladacich; moznost
+ generovani formatu za behu. Upraveno: prints.bat,
+ scr???.cnf, cs.cnf, inibat.bat,mnu, metafont.bat,
+ texbat.bat, texrun.bat.
+ cspsfont.zip Oprava p*c8?.vf, tj. Small Caps varianty PS fontu.
+21.3.96 cspsfont.tar Zaneseny opravy z cspsfont.zip.
+ cslatex.tar Vlozen soubor latex209.cfg.
+26.3.96 @ctimne.txt makeinst.bat i-big.ba i-all.ba Opravy v nesrovnalostech
+ poctu disket v dokumentaci a i-davkach.
+17.4.96 mnu.zip Oprava programu pickfile (chybne chovani po End)
+ listzip.html Odkazy "/ftp/cstex" nahrazeny "ftp://math...".
+30.4.96 cl2*.zip Zaneseny ZIPy obsahujici balicky graph, tools
+ a psnfs pro LaTeX v podobe uz pripravene programem
+ docstrip. Zarazeno na disketu: cs3. Zmeny:
+ i-all,i-big.ba, makeinst.bat, listzip.html,txt.
+17.5.96 minitex Soubory pro minitex maji samostatny adresar.
+23.5.96 dvid16f Zarazena nova verze ovladacu. Odstranena chyba
+ v nespravne interpretaci virtualnich fontu.
+23.5.96 mnu.zip Odstraneny preklepy a vymenen program fix.exe
+ (autor: Pavel Lisy).
+23.5.96 qedit.zip Makro pro editor pri chybe umisteno do /bin.
+23.5.96 minitex2,3 Viz zmeny v mnu.zip a qedit.zip.
+18.6.96 mfjob12b->c
+ em1--em8 Rozhozeni ZIPu podle noveho doporuceni E. Mattesse.
+ Vznika jedna disketa navic. Zmeny se tykaji souboru:
+ @ctimne.txt, makeinst.bat, emtexdoc.zip,
+ i-small,i-all,i-big.ba, listzip.html,txt.
+25.9.96 fontcs.zip,tar Oprava metrik CS-fontu + nova dokumentace cs-font.doc
+25.9.96 csplain.zip,tar Drobna uprava csplain.ini a il2code.tex.
+26.9.96 minitex1,3.zip Zaneseny zmeny z 25.9.96.
+27.9.96 cspsfont.zip,tar Opravy podle Z. Wagnera (Caps and small caps).
+8.11.96 texwin.zip Aktualizovana verze podpory pro MS Win (J. Krob).
+19.11.96 csplain.zip,tar Oprava chybneho \csprimeson v czech.sty a slovak.sty
+25.11.96 zmeny.txt Soubor zarazen do adresare msdos, aby byl automaticky
+ pritomen v instalaci (uprava install.bat, make-d.bat).
+25.11.96 i-add.bat, i-remove.bat -- pridany davky podle J. Demela.
+25.11.96 mnu.zip Nova koncepce nabidek podle J. Demela. Mazani
+ vsech PK v rolete METAFONT.
+25.11.96 texwin.zip, bibtex.zip upravy ZIPu: vyhozeni inibat.mnu, bibtex.exe
+27.11.96 minitex2,minitex3.zip Zaneseny zmeny v mnu.zip z 25.11.96.
+13.12.96 cs-*pk.tar.gz Vychozi knihovny pk CS-fontu balene pro UNIX
+13.12.96 unix/tetex README.tetex a *-tt.tar.gz. Navod na pocesteni teTeXu.
+13.1.97 minitex3.zip Prebalen dosud chybny soubor csacutl.mf
+21.1.97 tetex/cspsfont-tt.tar Odstranena stara verze psnfss.
+21.1.97 tetex/RPMS/i386 Pridano pocesteni tetexu ve formatu rpm
+19.2.97 os2/os2.zip Pridan "modul" pro EPM editor OS/2 pana Mikulika
+3.3.97 tetex/cslatex-12-96.tar Pridano nove pocesteni noveho LaTeXu.
+3.3.97 mnu.zip, minitex3.zip Soubor tiskarny.bat opraveno set DOT=fx100,
+ cs.cnf pridano +height a +width podle A4.
+13.3.97 /unix Zmena koncepce adresare unix/, pridano README.web2c
+ a web2c verze 7. Zruseno web2c verze 6.1. Tary
+ spolecne pro web2c i teTeX (spolecna struktura TDS).
+13.3.97 /unix/RPMS Nove baliky rpm pro tetex-0.4.
+18.3.97 texwin.zip Nova verze s odkazem na (txw)dll.zip (knihovny).
+20.3.97 cslatex-12-96.tar Oprava souboru il2enc.def a lslovak.sty.
+20.3.97 cslatex-1.1-2.*.rpm Zaneseni zmen z cslatex-12-96 do RPM.
+24.3.97 msdos,os2 Nove ZIPy emTeXu a novy cslatex 2e od p. Snajdra.
+25.3.97 minitex*.zip Prebaleno podle novych ZIPu.
+25.3.97 mnu.zip program fix.exe podle pana Ginzela.
+26.3.97 cslatex.tar/zip Pridany styly a4.sty, a4wide.sty a fancyhdr.sty
+3.4.97 cslatex.tar/rpm/zip Akualizovana verze cslatexu z 1.4.97
+4.4.97 mnu.zip texset.bat: set PRNFILE az po volani fix.exe.
+4.4.97 minitex1,3.zip Aktualizace.
+4.4.97 makeinst.bat, i-disk.ba, install.bat Drobne upravy.
+25.4.97 cslatex,csplain.zip,tar Nove styly czech,slovak.sty, ver.2.0.
+28.4.97 minitex1.zip, csplain,cslatex*.rpm Nove styly czech,slovak, ver.2.0
+23.5.97 csfonts.tar,csplain.rpm,fontcs.zip Pridany VF cs2cm a cm2cs
+23.5.97 dvipsexe.zip Uprava config.ps, aby cetl cm2cs automaticky
+23.5.97 install.bat,i3.ba Novy zaver instalacni davky
+23.5.97 mnu.zip Nova koncepce tiskarny.bat (lze editovat VCOM, PCOM),
+ vyhozeno dvi-out, nahrazeno dvicopy s vf-cnv/cs2cm.
+23.5.97 minitex*.zip Zaneseny upravy uvedene vyse.
+1.7.97 csfonts.tar,fontcs.zip,minitex3.zip,*cbas.zip,CS-*pk.tar.gz
+ Uprava CS-fontu (carka nad o, kerning \uv{nebud} \uv{labut}.
+24.9.97 lamstex.zip Pribalena zaplata pro lams*.mf.
+6.10.97 cstocs2.zip Prevzata verze cstocs od pana Tkadlece
+6.10.97 mnu.zip czech.dsi od pana Ginzela, prekompilovan rempks.exe
+6.10.97 minitex2.zip, minitex3.zip Zaneseny zmeny z 6.10.97.
+19.11.97 txwdll.zip Nove zabalene knihovny pro MS Win.
+20.10.97 @ctimne.txt Pridana informace o nedestruktivnosti install.bat.
+22.1.98 cstocs2.zip Opravena chyba r' R' u' U'.
+22.1.98 mnu.zip inibat.mnu Uprava textu 1250_il2 -> 1250
+22.1.98 minitex2,3.zip Zaneseny vyse uvedene opravy.
+27.1.98 texwin.zip, txwdll.zip Aktualizace podle pana Kroba.
+13.2.98 cslatex-12-97.tar Aktualni verze LaTeXu 97/12 a aktualni pocesteni
+13.2.98 cslatex.zip Aktualni pocesteni LaTeXu od pana Snajdra
+13.2.98 csplain.tar,zip Aktualni czech.sty, slovak.sty od p. Snajdra
+13.2.98 l2base.zip l2input.zip l2tools.zip Aktualni LaTeX 97/12 z emTeXu
+13.2.98 emxrsx.zip first.zip german.zip emtexdoc.zip Aktualni emTeX
+13.2.98 makeinst.bat i-all.ba i-big.ba i-small.ba Podle aktualniho emtexu
+16.2.98 cslatex-12-97.tar Pridan chybejici soubor texsys.cfg (chyba z 13.2.)
+17.2.98 csfonts.tar Opraven puvodne vadny cmr17.vf
+17.2.98 README.web2c, README Aktualizovana dokumentace
+17.2.98 enctex.tar Zarazen do distribuce CSTeXu
+24.2.98 enctex.tar il2-t1, 1250-t1, opraven chybny kod pismene \'s
+9.3.98 cstetex-bin-1.3.tar.gz Binarky pro tetex s ceskym I/O a glibc.
+16.3.98 csplain.tar csplain.ini -- pridana detekce encTeXu
+19.3.98 csplain.tar,zip czech/slovak.sty -- pridana navaznost na Babel.
+26.3.98 cspsfont(s).tar,zip IL2*.fd -> il2*fd + oprava podle p. Wagnera
+26.3.98 csplain.tar,zip czech/slovak.sty -- ProvidesPackage bez pripony
+27.3.98 enctex.tar pridan soubor enctex.patch-to-7.2
+1.4.98 README.web2c-7.2 novy popis instalace z web2c 7.2
+1.4.98 texk-7.2,texmflib-7.3,etexlib-2.0,omegalib-1.5,
+ pdftexlib-0.12f,cspdftexlib.tar.gz Nove balicky pro web2c 7.2
+3.4.98 bin-web2c7.2-linuxi-libc5.tar.gz, README.bin-web2c7.2 pridano
+7.5.98 README.web2c-7.2 , pridana sekce o omlazeni pdftexu
+7.5.98 cspdftexlib.tar.gz aktualizovany soubory pdftex.cnf a rawfnts.map
+7.5.98 bin-web2c7.2-linuxi-libc5.tar.gz pridan novy pdftex 0.12l
+25.6.98 cspdftexlib.tar vyhodil jsem DC fonty a pridal jsem type1 CS fonty
+10.8.98 RPMS/i386/*.rpm zamena RPM baliku *-2 za *-4.
+10.8.98 README.web2c-7.2 drobna (nepodstatna) uprava textu
+11.8.98 enctex.tar soubor encmacro.tex: oprava makra \redefaccent
+9.11.98 README.web2c-7.2 aktualizace kapitoly "Omlazeni pdftexu"
+10.11.98 README.web2c-7.2 oprava textu kapitoly "Omlazeni pdftexu"
+19.11.98 enctex.tar pridani tabulky 1250-latex
+26.11.98 csfonts.tar.gz, fontcs.zip oprava vf/cm2cs/cm*17.vf
+27.11.98 RPMS/i386/*.rmp zamena RPM baliku *-5 za *-7.
+2.12.98 csplain.tar,zip pridani moznosti vyuzit enctex
+4.12.98 cslatex-06-98.tar, cslatex,l2base,l2input.zip Aktualizace csLaTeXu
+22.12.98 nova www stranka CSTeXu a licencni soubor license.eng/cz
+22.12.98 nova adresarova struktura FTP CSTeXu (web2c, emtex, tetex-rpm)
+22.12.98 csfonts.tar/fontcs.zip, csplain.tar/zip, cspsfonts.tar/zip
+ enctex.tar, csindex-*.tar.gz dokumentace v souladu s licenci.
+5.1.99 license.eng/cz oprava adresy na horakk@math.cas.cz
+10.2.99 csfonts.tar vymazan zavleceny cscspu.mf z Computer Modern
+19.3.99 cspsfonts.tar, cspsfont.zip do cavatga.tex a dalsich pridano
+ makro \setsimplemath
+24.3.99 cspsfonts.tar, cspsfont.zip zmena nazvu fontu *8t -> *8u
+15.4.99 cslatex.tar premisteni adresare cslatex z tex/latex/ do tex/
+15.4.99 cslatex.tar,zip csplain.tar,zip opraveni chyby v czech/slovak.sty
+15.4.99 aktualizace README.web2c-7.2
+19.5.99 minitex3.zip oprava volani dviscrs v tiskarny.bat
+24.5.99 cstrip.tar.gz zverejnen test csplainu
+28.5.99 cspsfonts.tar,zip logo \TeX pro ruzne rodiny podle I. Jancika
+14.6.99 cslatex.tar zmena defaultniho hyphen.cfg, nyni i T1 kodovani
+14.6.99 README.tetex-1.0 novy popis pocesteni teTeXu 1.0
+14.6.99 csfonts-t1.tar novy archiv obsahujici pouze Type1 CSfonty
+14.6.99 enctex, cspdftexlib, *lib, texk-7.? presunuto do adresare old/
+25.2.00 csplain.tar: pridana podpora kodovani podle Corku
+19.7.02 opravy v czech/slovak.sty (ver. 2.4) podle pripominek pana Kubena
+28.8.02 cslatex.tar: opravena nekonzistence mezi docstipovymi vzory a obrazy
+25.9.02 zalozen adresar base/ (podle pripravovane dokumentace cstexman)
+30.10.02 zverejnen Manual k CSTeXu: doc/cstexman.tex,ps,pdf
+30.10.02 parpozn.tex,ps,pdf presunut z korene do adreare doc/
+30.10.02 vytvoren link cstexman.pdf v koreni ftp adresare CSTeXu
+1.9.03 pridana podpora pro Macioindni kodovani macce.tar.gz
+3.9.03 oprava v macce.def (@tabbacklude, ensuremath)
+10.9.05 csplain.tar.gz, cslatex.tex.gz: pridana podpora UTF8 pomoci encTeXu
+*.10.12 csplain.tar: rozsahle zmeny, viz http://petr.olsak.net/cstex.html
+*.10.12 cslatex.tar: CSLaTeX prohlasen za zastaraly a nepodporovany
+*.10.12 cspsfonts.tar: pregenerovany metriky, pridan Charter
+*.11.12 csplain.tar: podpora 16bit, UTF-8, multi-patterns
+*.11.12 beta testing OPmac
diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check
index 6bb057e1121..9603bd7312a 100755
--- a/Master/tlpkg/bin/tlpkg-ctan-check
+++ b/Master/tlpkg/bin/tlpkg-ctan-check
@@ -123,8 +123,8 @@ my @TLP_working = qw(
countriesofeurope counttexruns courier-scaled courseoutline coursepaper
coverpage covington
cprotect
- crbox crop crossreference crossword crosswrd cryst csbulletin
- csquotes csquotes-de csvsimple csvtools
+ crbox crop crossreference crossword crosswrd cryst
+ cs csbulletin cslatex csquotes csquotes-de csvsimple csvtools csplain cstex
ctanify ctanupload ctable ctex ctex-faq
cursolatex cuisine
currfile currvita curve curve2e curves
diff --git a/Master/tlpkg/tlpsrc/collection-langczechslovak.tlpsrc b/Master/tlpkg/tlpsrc/collection-langczechslovak.tlpsrc
index 249208c3bff..d5f37937246 100644
--- a/Master/tlpkg/tlpsrc/collection-langczechslovak.tlpsrc
+++ b/Master/tlpkg/tlpsrc/collection-langczechslovak.tlpsrc
@@ -5,6 +5,7 @@ depend cs
depend csbulletin
depend cslatex
depend csplain
+depend cstex
depend vlna
depend hyphen-czech
depend hyphen-slovak
diff --git a/Master/tlpkg/tlpsrc/cslatex.tlpsrc b/Master/tlpkg/tlpsrc/cslatex.tlpsrc
index 5fe879b8eb5..1630221b21d 100644
--- a/Master/tlpkg/tlpsrc/cslatex.tlpsrc
+++ b/Master/tlpkg/tlpsrc/cslatex.tlpsrc
@@ -1,9 +1,9 @@
depend latex
#
execute AddFormat name=cslatex engine=pdftex \
- options="-etex -translate-file=cp227.tcx cslatex.ini"
+ options="-etex cslatex.ini"
execute AddFormat name=pdfcslatex engine=pdftex \
- options="-etex -translate-file=cp227.tcx cslatex.ini"
+ options="-etex cslatex.ini"
#
binpattern f bin/${ARCH}/cslatex
binpattern f bin/${ARCH}/pdfcslatex
diff --git a/Master/tlpkg/tlpsrc/csplain.tlpsrc b/Master/tlpkg/tlpsrc/csplain.tlpsrc
index 1e5720ea546..43e11b65815 100644
--- a/Master/tlpkg/tlpsrc/csplain.tlpsrc
+++ b/Master/tlpkg/tlpsrc/csplain.tlpsrc
@@ -1,8 +1,17 @@
depend tex
+#
+# these invocations from Petr Olsak.
execute AddFormat name=csplain engine=pdftex \
- options="-etex -translate-file=cp227.tcx csplain.ini"
+ options="-etex -enc csplain-utf8.ini"
execute AddFormat name=pdfcsplain engine=pdftex \
- options="-etex -translate-file=cp227.tcx csplain.ini"
+ options="-etex -enc csplain-utf8.ini"
+#
+# intentionally no user-level executables for these formats, also named
+# pdfcsplain (a la ConTeXt).
+execute AddFormat name=pdfcsplain engine=xetex \
+ options="-etex csplain.ini"
+execute AddFormat name=pdfcsplain engine=luatex \
+ options="-etex csplain.ini"
#
binpattern f bin/${ARCH}/csplain
binpattern f bin/${ARCH}/pdfcsplain
diff --git a/Master/tlpkg/tlpsrc/cstex.tlpsrc b/Master/tlpkg/tlpsrc/cstex.tlpsrc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/tlpkg/tlpsrc/cstex.tlpsrc