diff options
author | Karl Berry <karl@freefriends.org> | 2016-04-15 21:39:56 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2016-04-15 21:39:56 +0000 |
commit | 1450af3d3e883477599a3de6492b6cfdb8f2fba4 (patch) | |
tree | 1332b6ef07f634e401a425f18e916fd99822816c /Master/texmf-dist/doc/cstex/opmac-u.tex | |
parent | 5e77de80c3619d378c8a85ab0e2413086a57a8a5 (diff) |
cstex (15apr16)
git-svn-id: svn://tug.org/texlive/trunk@40539 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/cstex/opmac-u.tex')
-rw-r--r-- | Master/texmf-dist/doc/cstex/opmac-u.tex | 171 |
1 files changed, 146 insertions, 25 deletions
diff --git a/Master/texmf-dist/doc/cstex/opmac-u.tex b/Master/texmf-dist/doc/cstex/opmac-u.tex index fa26b8e53ab..5dcb3351cc8 100644 --- a/Master/texmf-dist/doc/cstex/opmac-u.tex +++ b/Master/texmf-dist/doc/cstex/opmac-u.tex @@ -6,6 +6,7 @@ \chyph % use (pdf)csplain \input opmac \input pdfuni +\hyperlinks{\Blue}{\Green} \typosize[11/13] @@ -14,8 +15,7 @@ \activettchar" -\insertoutline{OBSAH} \outlines{0} \hyperlinks{\Blue}{\Green} - +\insertoutline{OBSAH} \outlines{0} \tit OPmac -- rozšiřující makra plain\TeX{}u %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -25,11 +25,11 @@ \bigskip \centerline{\url{http://petr.olsak.net/opmac.html}} -\notoc\nonum \sec Obsah\par\maketoc +\notoc\nonum \sec Obsah +\maketoc \nonum \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, @@ -92,7 +92,6 @@ 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 jsou-li ve skupině, za ní se nastavení vrací k původním hodnotám. @@ -180,12 +179,11 @@ To je {\em zdůrazněný} text. % jako: To je {\it zdůrazněný\/} text. \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>". +Titul dokumentu vyznačte pomocí "\tit <titul><konec-řádku>", kapitolu +zahajte "\chap <titul><konec-řádku>" a podobně novou sekci zahajte +"\sec <titul><konec-řádku>" a podsekci +"\secc <titul><konec-řádku>". Takže třeba: \begtt @@ -483,13 +481,13 @@ Příklad: \begtt Tady mluvím o jistém -\ii bazmek -bazmeku, který provokoval moji zvědavost. +\ii kroutilík +kroutilíku, 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}. +našem příkladě slovo \uv{kroutilíku}) jako skrytá značka. Číslo strany, +kde se ta značka objeví, bude v rejstříku vedle slova \uv{kroutilík}. 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 @@ -573,7 +571,7 @@ 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 +\sec Rejstřík \begmulti 3 \makeindex \endmulti \endtt @@ -1122,8 +1120,8 @@ 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 zopakována 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 +Značka je implicitně definovaná jako číslo v exponentu. +Číslování poznámek je na každé stránce započato jedničkou\fnote {Toto chování se dá změnit vložením příkazu {\tt\char`\\runningfnotes} na začátek dokumentu. V takovém případě se poznámky číslují od jedné v celém @@ -1136,11 +1134,12 @@ Například po \begtt \def\thefnote{\ifcase\locfnum\or - *\or**\or***\or$^{\dag}$\or$^{\ddag}$\or$^{\dag\dag}$\fi} + *\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. +bude první poznámka mít hvězdičku se závorkou, druhá dvě hvězdičky se +závorkou 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 @@ -1433,7 +1432,7 @@ 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}% +{\def\tthook{\catcode`\$=3 \catcode`/=0 \medmuskip=0mu \adef{ }{ }}% \begtt \mit % matematická kurzíva $abc-xyz,ABC-XYZ$ \it % textová kurzíva $/it abc-xyz,ABC-XYZ$ @@ -1472,6 +1471,13 @@ je možné použít následující globální přepínače: \itvariables % implicitní abeceda bude textová kurzíva, \mitvariables % implicitní abeceda bude matematická kurzíva. \endtt +% +{\bf Poznámka:} Vlastnosti popsané v této kapitole (AMS symboly, "\bbchar", +"\script", "\frak", sans serifový font po přepínačích "\bf", "\bi" v math +módu) vyžadují zavést speciální fonty (AMS fonty, EC fonty). Chcete-li +se vyhnout této závislosti na fontech, můžete využít +\ulink[http://petr.olsak.net/opmac-tricks.html\#onlycm]{OPmac trik~0111}. + \sec Okraje %%%%%%%%%%% @@ -1561,6 +1567,121 @@ Není-li soubor REF otevřen, je hodnota registru "\lastpage" rovna nule. \endtt +\sec Další jazyk +%%%%%%%%%%%%%%%% + +OPmac přímo podporuje češtinu, slovenštinu a angličtinu. Ostatní jazyky lze +použít také, ale je potřeba vynaložit nepatrné úsilí. Především je potřeba +použít \TeX{}ový stroj a formát takový, aby byl jazyk podporován. Formát +musí mít připravené vzory dělení vybraného jazyka. Abychom se nepropadli do +kódovacího pekla, doporučuji použít Unikódový \TeX{}ový stroj ("xetex" nebo +"luatex") a zavést rodinu fontů podporující Unicode, ve které jsou všechny +potřebné znaky abecedy daného jazyka připraveny. + +Na příkladu si ukážeme, jak toto lze udělat v nativním formátu pro Xe\TeX{} +nebo Lua\TeX. Tyto stroje používají formát generovaný ze souboru "etex.src" +jako implicitní (tj. formát je přímo připraven po spuštění příkazu "xetex" nebo "luatex"). +Protože tento formát má vloženy vzory dělení všech dostupných jazyků, je pro +práci s dalšími jazyky ideální. Není totiž nutné nic přegenerovávat. Například +vzory dělení pro španělštinu aktivujete v dokumentu pomocí +"\uselanguage{espanol}". + +OPmac potřebuje znát překlad tří automaticky generovaných slov +\uv{Kapitola}, \uv{Tabulka} a \uv{Obrázek} pro zvolený jazyk. Tento jazyk je +v OPmac označován pomocí zkratky podle ISO~639-1. Například španělština je +tam označena ISO-kódem "es". + +Při použití formátu z "etex.src" je nutné přidělit dlouhému názvu jazyka +jeho ISO kód pomocí "\isolangset{<název>}{<iso-kód>}". Naopak, při použití +\csplain{}u jsou všechny ISO kódy již nastaveny, a proto příkaz +"\isolangset" v takovém případě neudělá nic. + +Následuje příklad pro španělštinu. \TeX{}ujte pomocí "xetex soubor" nebo +"luatex soubor". + +\mubyte \ntie ^^c3^^b1\endmubyte \def\ntie{\~n} +\mubyte \ccedilla ^^c3^^a7\endmubyte \def\ccedilla{\c c} +\mubyte \Ccedilla ^^c3^^87\endmubyte \def\Ccedilla{\c C} + +\begtt +\input opmac + +\ifx\directlua\undefined \else \ifx\luafonts\undefined \input luafonts +\fi\fi % to zavede lua kód na redefinování \font, v XeTeXu je irelevantní + +\font\tenrm="DejaVu Serif" % Unicodová rodina fontů, +\font\tenbf="DejaVu Serif/B" % kde všechny potřebné znaky +\font\tenit="DejaVu Serif/I" % jsou k dispozici +\font\tenbi="DejaVu Serif/IB" +\tenrm + +\input tx-math % Nastavení TX fontů v matematice + +\isolangset {espanol}{es} % Deklarace ISO kódu +\sdef{mt:chap:es}{Capítulo} % "Kapitola" v jazyku es +\sdef{mt:t:es}{Cuadro} % "Tabulka" v jazyku es +\sdef{mt:f:es}{Figura} % "Obrázek" v jazyku es + +\uselanguage{espanol} % Španělské vzory dělení + autogenerovaná slova +\typosize[12/14.4] + +\tit Mañana + +\sec Mañana + +Mañana. + +\caption/f Test % vytvoří text "Figura 1.1 Test" + +\bye +\endtt + +Při abecedním řazení rejstříku pomocí "\makeindex" může OPmac ohlásit +(není-li použit \csplain) varování: ``falling back to ASCII sorting''. +Pokud chcete dodržet pravidla řazení daného jazyka, je proto nutné definovat makro +"\sortingdata<iso-kód>". Dále můžete přidat makro +"\specsortingdata<iso-kód>". Příklad: + +\begtt +\def\sortingdataes {aAäÄáÁ,bB,cCçÇ,^^P^^Q^^R,dD,...,zZ,.} +\def\specsortingdataes {ch:^^P Ch:^^Q CH:^^R} +\endtt + +Prvé makro obsahuje skupiny znaků oddělené od sebe čárkami a ukončené +čárkou-tečkou. Znaky v každé skupině jsou nerozlišitelné při prvém průchodu +(primární řazení). Jsou-li z~tohoto pohledu některé údaje shodné, je na tyto +údaje použito sekundární řazení, ve kterém už jsou všechny znaky rozlišeny a +seřazeny v pořadí, jako v makru. Poznámka: tři tečky v příkladu si musí španělsky +mluvící uživatel doplnit za reálná data sám. + +Řadicí algoritmus umožňuje skupiny znaků (spřežky Ch, Dz atd.) interpretovat +jako jediný znak. K tomu slouží makro "\specsortingdata<iso-kód>". V něm +jsou mezerami od sebe odděleny údaje ve tvaru "<skupina>:<token>". OPmac +provede výměnu "<skupina>" za "<token>" před zahájením řadicího algoritmu, +takže "<token>" je možné vložit do "\sortingdata<iso-kód>" jako jeden znak. +Je nutné používat znaky, které nejsou součástí abecedy jazyka, například +"^^A", "^^B" atd. Přitom je potřeba se vyhnout znakům "^^I" a "^^M" , +protože tyto mají speciální kategorii. + +OPmac definuje interní makro "\sortingdata", které +je možné použít pro češtinu, slovenštinu a angličtinu. +Makro "\sortingdata<iso-code>" má přednost před interním makrem +"\sortingdata", je-li definováno a jazyk odpovídající ISO kódu má +aktivovány vzory dělení slov. + +Konečně můžete pozměnit seznam ignorovaných znaků (z hlediska řazení), který +je uveden v makru "\setignoredchars" takto: + +{\catcode`\<=12 +\begtt +\def\setignoredchars{\setlccodes ,.;.?.!.:.'.".|.(.).[.].<.>.=.+.{}{}} +\endtt +}% +Toto makro můžete předefinovat, ale ponechte v předu "\setlccodes", vzadu +"{}{}" a za každým znakem pište tečku, která je implicitním ignorovaným +znakem. + + \sec Shrnutí %%%%%%%%%%%% @@ -1568,10 +1689,10 @@ Není-li soubor REF otevřen, je hodnota registru "\lastpage" rovna nule. \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)> +\tit <Název titulu (ukončený koncem řádku)> +\chap <Název kapitoly (ukončený koncem řádku)> +\sec <Název sekce (ukončený koncem řádku)> +\secc <Název podsekce (ukončený koncem řádku)> \maketoc % generování obsahu \ii <heslo>,<heslo> % vložení hesel do rejstříku |