summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-04-15 21:39:56 +0000
committerKarl Berry <karl@freefriends.org>2016-04-15 21:39:56 +0000
commit1450af3d3e883477599a3de6492b6cfdb8f2fba4 (patch)
tree1332b6ef07f634e401a425f18e916fd99822816c /Master
parent5e77de80c3619d378c8a85ab0e2413086a57a8a5 (diff)
cstex (15apr16)
git-svn-id: svn://tug.org/texlive/trunk@40539 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/cstex/README-opmac2
-rw-r--r--Master/texmf-dist/doc/cstex/opmac-d.tex197
-rw-r--r--Master/texmf-dist/doc/cstex/opmac-u-en.pdfbin227735 -> 235111 bytes
-rw-r--r--Master/texmf-dist/doc/cstex/opmac-u-en.tex183
-rw-r--r--Master/texmf-dist/doc/cstex/opmac-u.pdfbin264133 -> 270987 bytes
-rw-r--r--Master/texmf-dist/doc/cstex/opmac-u.tex171
6 files changed, 451 insertions, 102 deletions
diff --git a/Master/texmf-dist/doc/cstex/README-opmac b/Master/texmf-dist/doc/cstex/README-opmac
index b3a34b07dc5..28b3bb7e280 100644
--- a/Master/texmf-dist/doc/cstex/README-opmac
+++ b/Master/texmf-dist/doc/cstex/README-opmac
@@ -2,7 +2,7 @@ The documentation of the OPmac is:
opmac-u.tex,pdf ... user documentation (in Czech)
opmac-u-en.tex,pdf ... user documentation (in English)
-opamc-d.tex ... technical documentation (in Czech)
+opmac-d.tex ... technical documentation (in Czech)
See http://petr.olsak.net/opmac.html for more information.
diff --git a/Master/texmf-dist/doc/cstex/opmac-d.tex b/Master/texmf-dist/doc/cstex/opmac-d.tex
index 8643c42bdba..767b6a096e1 100644
--- a/Master/texmf-dist/doc/cstex/opmac-d.tex
+++ b/Master/texmf-dist/doc/cstex/opmac-d.tex
@@ -8,7 +8,7 @@
% UTF-8 encTeX has a conflict with DocByTeX
\chyph
-\def\projectversion{Dec. 2014}
+\def\projectversion{Apr. 2016}
\def\headtitle{OPmac}
\widowpenalty=10000
@@ -25,7 +25,7 @@
\input docby.tex
\setlinecomment{\percent} \noactive{\nb\percent} \noactive{\percent\cbrace}
-\noactive{\nb fontdimen}
+\noactive{\nb fontdimen} \noactive{\nb empty}
\title OPmac -- rozšiřující makra plain\TeX{}u
@@ -175,8 +175,25 @@ druhé závorky. Pomocí "\futurelet" uloží zkoumaný znak do "\next" a spustí
\inext {isnextchar}{\empty}{+-}
+Makro \db eoldef "\foo#1{<makro>}" pracuje jako "\def", ale parametr "#1" je
+separován koncem řádku. Takže třeba
+
+\begtt
+\eoldef\foo#1{param={#1}}
+\foo tady je parametr
+\endtt
+expanduje na "param={tady je parametr}". Implementace se opírá o to, že
+při "\eoldef\foo" se definují "\foo" a "\\foo:M".
+Přitom "\foo" ve skupině pozmění catcode znaku pro konec řádku a spustí
+\db eoldefA "\foo". Toto makro načte parametr "#2" do konce řádku (po "^^M"),
+dále ukončí skupinu a spustí "\\foo:M{parametr}". Konečně
+"\\foo:M" vykoná to, co definoval uživatel.
+
+\inext {eoldef}{\empty}{+-}
+
Makro \db maybebreak "<rozměr>" umožní uživateli rozlomit řádek
-nebo stránku v místě použití. Zlom se uskuteční, chybí-li do konce
+nebo stránku v místě použití. Pomocné marko \db maybebreakA se spustí po
+načtení parametru. Zlom se uskuteční, chybí-li do konce
řádku/stránky zhruba méně než "<rozměr>" místa. Jinak se zlom neuskuteční a
nestane se nic. Makro je závislé na módu \TeX{}u (vertikální/horizontální).
Chcete-li jím lámat
@@ -295,7 +312,9 @@ uživatelské dokumentaci.
\dgn \nb ttpenalty
\dgn \nb tthook
\dgn \nb intthook
+\dgn \nb ptthook
\dgn \nb iiskip
+\dgn \nb itemhook
\dgn \nb bibskip
\dgn \nb tabstrut
\dgn \nb tabiteml
@@ -312,6 +331,7 @@ uživatelské dokumentaci.
\dgn \nb sechook
\dgn \nb secchook
\dgn \nb cnvhook
+\dgn \nb prepghook
\dgn \nb pghook
\dgn \nb toclinehook
\dgn \nb fnotehook
@@ -360,9 +380,10 @@ Do nových velikostí tedy půjdeme se starými názvy přepínačů
"\ten<něco>" a to slovo "ten" budeme chápat jen jako historický relikt,
který nám ovšem napoví, že kontrolní sekvence je fontovým přepínačem.
-OPmac si zjistí, zda je definovaný "\regfont". Pokud ne, upozorní na starou
-verzi \csplain{}u na terminálu a potřebná makra si definuje. Je to kopie
-kódu ze souboru "csfontsm.tex" z balíčku \csplain{}.
+OPmac si zjistí, zda je definovaný "\regfont" (tj. je detekován dostatečně
+nový csplain). Pokud ne, upozorní na nedostupnost vicejazyčné podpory na
+terminálu a potřebná makra pro fonty si definuje. Je to kopie kódu ze
+souboru "csfontsm.tex" z balíčku \csplain{}.
\inext {regfont}{\empty}{+-}
@@ -528,6 +549,12 @@ Je-li detekován místo CSplainu e\TeX, nastavíme značky jazyků dle hodnoty
\inext {uselanguage}{\empty}{+-}
+Makro \db isolangset "{<dlouhý-název>}{<iso-zkratka>}" přiřadí dlohému názvu
+jazyka (a související hodnotě registu "\language") jeho
+zkratku dle ISO~639-1 při použití formátu generovaného z "etex.src".
+Naopak, při použití CSplainu makro nedělá nic, protože ISO
+zkratky a jejich propojení na hodnoty "\language" jsou nastaveny
+přímo v CSplainu.
\subsec REF soubor
@@ -555,8 +582,8 @@ Makro \db inputref spustíme na konci čtení souboru "opmac.tex", tedy v
situaci, kdy už budeme mít definovány všechny kontrolní sekvence, které se v
REF souboru mohou vyskytnout. Nyní si toto makro jen připravíme.
Makro ověří existenci souboru "\jobname.ref" a pokud existuje, provede
-"\input \jobname.ref". V takovém případě po načtení REF souboru jej otevře
-k~zápisu a připraví "\wref" do stavu, kdy toto
+"\input \jobname.ref". V takovém případě po načtení REF souboru jej
+pomocí makra "\openrefA" otevře k~zápisu a připraví "\wref" do stavu, kdy toto
makro bude ukládat data do souboru.
\inext {inputref}{^^B\cbrace}{+-}
@@ -564,20 +591,26 @@ makro bude ukládat data do souboru.
Makro \db openref kdekoli v dokumentu si vynutí založení souboru
"\jobname.ref". Toto makro neprovede nic, je-li REF soubor už založen. To
pozná podle toho, že makro "\wref" nemá význam "\wrefrelax". Jestliže soubor
-ještě není založen, makro jej založí, předefinuje "\wref" a vloží první
-řádek do souboru. Tím je zaručeno, že při příštím \TeX{}ování dokumentu
-je soubor neprázdný, takže jej OPmac rovnou přečte a znovu založí na začátku
-své činnosti. Nakonec se "\openref" zasebevraždí, aby se nemuselo při
-opakovaném volání obtěžovat vykonávat nějakou práci. Práce už je totiž
-hotova.
+ještě není založen, makro zavolá \db openrefA, které REF soubor založí,
+předefinuje "\wref" a vloží první řádek do souboru. Tím je zaručeno, že při
+příštím \TeX{}ování dokumentu je soubor neprázdný, takže jej OPmac rovnou
+přečte a znovu založí na začátku své činnosti. Nakonec se "\openref"
+zasebevraždí, aby se nemuselo při opakovaném volání obtěžovat vykonávat
+nějakou práci. Práce už je totiž hotova.
-\inext {openref}{^^B\cbrace}{++}
+\inext {openref}{\count=2 ^^B\cbrace}{++}
Pro zápisy do REF souboru používáme tuto konvenci: první kontrolní sekvence
na řádku je vždy tvaru "\X<název>", takže máme přehled, která kontrolní sekvence
pochází z REF souboru.
+Jako první je do REF souboru vložen příkaz \db Xrefversion "{<číslo>}". Pokud
+toto "<číslo>" mení rovno \db REFversion, REF soubor se nepřečte. Tím
+je zaručeno, že OPmac nezkolabuje při čtení REF souboru kvůli tomu, že je
+zde zmatení verzí. Číslo verze "\REFversion" zvětším o jedničku vždy, když
+v~budoucí verzi OPmac přidám nebo uberu v REF souboru nějakou funkci.
+\inext {REFversion}{\empty}{+-}
\subsec Lejblíky a odkazy
%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -749,10 +782,20 @@ v OPmac takto:
Příkazem "\firstnoindent" dávají tato makra najevo,
že následující odstavec nebude mít odstavcovou zarážku.
+{\bf Upozornění}: Od verze Apr. 2016 jsou makra "\tit", "\chap", "\sec" a
+"\secc" definována pomocí "\eoldef", tedy titulek ve zdrojovém kódu je
+ukončen koncem řádku a ne následujícím prázdným řádkem. Chcete-li mít delší
+titulek ve zdrojovém kódu rozdělen do více řádků, ukončete \uv{pokračovací
+řádky} symbolem~"%".
+Pokud chcete makra "\chap", "\sec" atd. použít uvnitř vlastních maker,
+nelze je použít přímo. Můžete to ale vyřešit třeba takto:
+
+\begtt
+\def\mymacro#1{... \csname\string\sec:M\endcsname{#1} ...}
+\endtt
+
Makro pro titul \db tit počítá s tím, že bude titul na více řádcích. Sází ho
-tedy jako odstavec s~pružnými "\leftskip" a "\rightskip". Příkaz "\unskip"
-těsně za parametrem "#1" odstraní mezeru z konce řádku, která tam obvykle
-je. Teprve poté je nadpis řádně centrován.
+tedy jako odstavec s~pružnými "\leftskip" a "\rightskip".
\inext{tit}{^^B\cbrace}{++}
@@ -795,13 +838,24 @@ zavolají odpovídající makro "\printchap",
V proměnlivé části makra "\dotocnum", tedy v "\dotocnumafter", se řeší
uložení informací o kapitole, sekci nebo podsekci do obsahu. K tomu je
-využito makro \db wcontents, které provede
+využito makro \db wtotoc "<úroveň><font>{<text>}", které vytvoří
\bgroup\def\begtthook{\langleactive}
\begtt
-\write\reffile{\string#1{<expandovaný thetocnum>}{#2}{\the\pageno}}
+\write\reffile
+ {\string\Xtoc{<úroveň>}{<font>}{<expandovaný thetocnum>}{<text>}{\the\pageno}}
\endtt
\par\egroup
+\noindent
+Přitom "<úroveň>" je číslo rovné nule, jedná-li se o kapitolu, je rovné
+jedné, jedná-li se o sekci a je rovno dvěma, jedná-li se podsekci.
+
+\inext{wtotoc}{^^B\cbrace}{++}
+
+Makro \db wcontents je v kódu ponecháno pro zpětnou kompatibilitu (ukládalo
+do REF souboru údaje pro obsah "\Xchap", "\Xsec" a "\Xsecc").
+Někdy v roce 2016 je pravděpodobně zcela odstraním.
+
\inext{wcontents}{^^B\cbrace}{++}
Makro \db dotocnum "{<text>}" umístí cíl odkazu do místa, které je od
@@ -984,15 +1038,23 @@ Pomocí \db ifischap se budeme ptát, zda v dokumentu jsou kapitoly.
V době čtení REF souboru vložíme veškerá data obsahu do makra "\toclist"
tak, že v tomto bufferu budeme mít za sebou sekvence "\tocline" následované pěti
-parametry. Makra \db Xchap, \db Xsec a \db Xsecc
-mají parametry "{<číslo>}{<text>}{<strana>}" a jsou definovány následovně:
+parametry, které jsou shodné, jako parametry
+makra \db Xtoc "<úroveň><info><číslo><text><strana>".
+
+\inext{Xtoc}{}{++}
+
+Makra \db Xchap, \db Xsec a \db Xsecc přetrvávají v kódu jen pro zpětnou
+kompatibilitu a někdy v roce 2016 je odstraním.
\inext{Xchap}{\empty}{+-}
-Makro \db tocline "{<odsazení>}{<font>}{<číslo>}{<text>}{<strana>}" vytvoří
-řádek obsahu. Řádek tiskneme jako odstavec, protože "<text>" může být třeba
-delší. Registr "\leftskip" nastavíme jako součin "<odsazení>" krát "\iindent".
-Pokud se v dokumentu vyskytují kapitoly, odsadíme ještě o další "\iindent".
+Makro \db tocline "{<úroveň>}{<info>}{<číslo>}{<text>}{<strana>}" vytvoří
+řádek obsahu. Údaj "<úroveň>" je číslo 0 pro kapitolu, 1 pro
+sekci a 2 pro podsekci. Údaj "<info>" používá OPmac pro informaci
+o fontu, kterým se má tisknout řádek v obsahu.
+Řádek obsahu tiskneme jako odstavec, protože "<text>" může být třeba
+delší. Registr "\leftskip" nastavíme jako součin "<úroveň>" krát "\iindent".
+Pokud se v~dokumentu vyskytují kapitoly, odsadíme ještě o další "\iindent".
Registr "\rightskip" nastavíme na 2"\iindent", aby delší "<text>" se zalomil
dřív než v místě, kde jsou stránkové číslice. Konec odstavce se stránkovou
číslicí pak vytáhneme mimo tento rozsah pomocí "\hskip-2\iindent". Odstavec
@@ -1343,6 +1405,9 @@ makro s~neseparovaným parametrem. Ovšem my budeme chtít mezeru přečíst.
Makrem "\setignoredchars" se zcela nakonec nastaví ignorovaným znakům
"\lccode" tečky.
+Makro \db sortingmessage ukládá informaci o použitém "\sortingdata", což
+bude později vypsáno na terminál makrem "\dosorting".
+
Makro \db setsecondarysorting se volá opakovaně a příležitostně pro případy,
kdy jsou hesla z~hlediska primárního řazení totožná. Nastaví jinak "\lccode"
znaků. Tentokrát mají všechny znaky ze "\sortingdata" rozdílný "\lccode", ve
@@ -1428,7 +1493,8 @@ skupiny. Pak osmipoložkové~atd. V~závěru (na řádku~\cite[konecsortu])
je první skupina celá setříděná a druhá obsahuje "\end", tj.
všechny položky jsou už setříděné v první skupině, takže stačí
ji uložit do "\iilist" a ukončit činnost. Pomocí \db gobbletoend
-odstraníme druhé "\end" ze vstupního proudu.
+odstraníme druhé "\end" ze vstupního proudu. Makro \db sortreturn ukončí
+činnost až po koncové "\relax" a dále vykoná svůj parametr.
\noactive{dvojice}
\ilabel [merge:porovnani] {isAleB}
@@ -1436,7 +1502,7 @@ odstraníme druhé "\end" ze vstupního proudu.
\ilabel [merge:p1] {ifx,}
\ilabel [merge:p2] {fif\nb mergesort\cbrace}
\ilabel [konecsortu] {empty\nb iilist}
-\inext {def\nb mergesort }{^^B\cbrace}{++}
+\inext {def\nb mergesort }{\empty}{+-}
{\def\quotehook{\catcode`\<12}
Jádro "\mergesort" vidíme na řádcích~\cite[merge:porovnani]
@@ -1601,7 +1667,7 @@ Není-li použit pdf\TeX{}, některá makra pro barvu deaktivujeme:
\inext{ifpdftex}{\empty}{+-}
-Makro \db draft vloží do "\headline" box nulové výšky a šířky "\draftbox",
+Makro \db draft vloží do "\prepghook" box nulové výšky a šířky "\draftbox",
který vystrčí svou šedou sazbu ven ze svého rozměru a je tištěn dřív, než
jakýkoli jiný materiál na stránce.
@@ -1688,7 +1754,20 @@ Ovšem po použití makra \db hyperlinks "{<barva-lok>}{<barva-url>}" se
uvedená makra "\toclink", "\pglink", "\citelink" a "\reflink" probouzejí k
životu. Zde je také definováno makro \db urlcolor.
-\inext{hyperlinks}{\empty}{+-}
+\inext{hyperlinks}{^^B\cbrace}{+-}
+
+Makro "\toclink" čte parametr ve fromátu \uv{číslo kapitoly, sekce,
+kapitoly.sekce atd.}.
+Makro "\pglink" zase vyžaduje svůj parametr jen jako číslo strany. Když je dokument
+rozdělen do bloků a v~každém je samostatné číslování stran, respektive bloky
+obsahují samostatné číslování sekcí, je potřeba rozlišit mezi těmito bloky,
+aby interní odkaz při "\hyperlinks" v dokumentu byl jednoznačný. Proto
+jsou zavedena (implicitně prázdná) makra \db tocilabel a \db pgilabel.
+Každý blok v dokumentu by pak měl mít svůj vlastní "\tocilabel" a
+"\pgilabel" o což se musí programátor maker postarat sám.
+
+
+\inext{tocilabel}{}{+-}
Pdf\TeX{}ové primitivy pro klikací odkazy dovolují dopravit do PDF další
atributy odkazu za slovem "attr". Tam je možné dát najevo, že chceme vidět
@@ -1727,7 +1806,7 @@ kategorie. Pak by ale makro "\url" nefungovalo uvnitř parametrů jiných
maker. V zájmu jednoduchosti makra "\url" to neděláme. Takže pokud uživatel
má v URL znak procento, musí psát "\%"
nebo si změní kategorie sám. Podobná poznámka platí pro znaky "{", "}", "\",
-"#" a "$".
+"#" a "$". %$
\subsec Outlines -- obsah v záložce PDF dokumentu
@@ -1748,7 +1827,7 @@ znovu projde "\toclist".
\inext{def\nb outlines}{^^B\cbrace}{++}
-V makru \db outlinesA "{<odsazení>}{<font>}{<číslo>}{<text>}{<strana>}"
+V makru \db outlinesA "{<odsazení>}{<info>}{<číslo>}{<text>}{<strana>}"
počítáme potomky. Makro je navrženo tak, aby bylo
snadno rozšířitelné na libovolnou úroveň hloubky stromu, nicméně pro potřeby
OPmac stačí hloubka tři (kapitoly, sekce, podsekce). Úroveň uzlu přečteme v
@@ -1775,15 +1854,9 @@ když je ji poprvé potřeba zvětšit o~jedničku.
\inext{outlinesA}{\count=2 ^^B\cbrace}{++}
-V makru \db outlinesB "{<odsazení>}{<font>}{<číslo>}{<text>}{<strana>}"
-vkládáme jednotlivou položku obsahu do záložek pomocí pdf\TeX{}ového
-primitivu\hfil\break
-"\pdfoutline goto name{<lejblík>} count<potomci> {<text>}".
-Číslo "<potomci>" je opatřeno znaménkem mínus právě tehdy, když chceme, aby
-položka ve výchozím stavu nezobrazovala své potomky, ale jen trojúhelníček.
-Potomci se zobrazí až po kliknutí na trojúhelníček. V makru \db outlinelevel
-máme makrem "\outlines" připravenu úroveň rozevření, kterou si uživatel
-přeje. Nejprve přičtením "\count<odsazení>" dostaneme řadu
+V makru \db outlinesB "{<odsazení>}{<info>}{<číslo>}{<text>}{<strana>}"
+vkládáme položku obsahu do záložek.
+Nejprve přičtením "\count<odsazení>" dostaneme řadu
"\count0:\count1:\count2" do stejného stavu, jako v předchozím prvním průchodu
a máme tím jednoznačně přidělen uzel stromu.
Do "\tmpnum" vložíme údaj o počtu potomků daného uzlu. K tomu je potřeba
@@ -1800,8 +1873,28 @@ vzápětí provedeme, ale nejprve ještě do toho může promluvit uživatel v makru
\inext{outlinesB}{^^B\cbrace}{++}
-Makro \db setcnvcodesA zkontroluje podle definovanosti "\r", zda je zapnutý
-"\csaccents" a pokud je, expanduje "\toasciidata".
+Makro \db outlinesC "{<úroveň>}{<lejblík>}{<minus>}{<potomci>}{<text>}"
+konečně zavolá primitivní
+"\pdfoutline goto name{<lejblík>} count<minus><potomci> {<text>}".
+a vytvoří lejblík v dané úrovni zanoření na
+základě předpočítaného údaje "<potomci>", který obsahuje počet potomků právě
+vkládané záložky. Údaj "<minus>" je (po expanzi)
+prázdný, pokud nechceme mít potomky skryté a obsahuje znak minus, pokud
+chceme mít potomky ve výchozím stavu skryté.
+Připomínám, že v makru \db outlinelevel
+máme makrem "\outlines" připravenu úroveň rozevření, kterou si uživatel
+přeje. Makro "\outlinesC" je připraveno k
+předefinování v modulu "opmac-xetex.tex", který pro vytvoření záložek
+používá "\special" a nepotřebuje znát údaj "<potomci>". Příslušný "\special"
+využije přímo údaj "<úroveň>".
+
+\inext{outlinesC}{}{+-}
+
+Makro \db setcnvcodesA zkontroluje, zda je uživatelem definováno makro
+"\toasciidata<iso-kód>". Pokud je, použije ho jako "\toasciidata" ke
+konverzi akcentovaných znaků na neakcentované. Jinak
+podle definovanosti "\r" zkontroluje, zda je zapnutý
+"\csaccents" a pokud je, expanduje interní "\toasciidata".
Makro \db toasciidata potřebujeme expandovat, protože
neobsahuje přímý zápis znaků. Důvod je zřejmý, nechceme, aby se
soubor {\tt opmac.tex} stal závislý na použitém kódování.
@@ -1852,6 +1945,10 @@ pomocí "\futurelet") a \db testparC (ošetří, zda tento následující znak je
\inext{testparA}{\empty}{+-}
+Makro \db printttline vytiskne číslo řádku.
+
+\inext{printttline}{\empty}{+-}
+
Makro \db activettchar pracuje podobně, jako makro "\adef". Navíc
potřebuje použít nově načtený znak ve své aktivní kategorii jako separátor
vymezující konec parametru. Do sekvencí \db savedttchar a \db savedttcharc
@@ -1917,11 +2014,10 @@ se ověří, zda následuje prázdný řádek.
V prvním cyklu "\loop" v těle makra "\doverbinput" se opakovaně volá
\db vireadline, což je makro, které přečte další řádek ze souboru. V druhém
cyklu se opakovaně volá "\vireadline" následované \db viprintline. Toto
-makro vytiskne přečtený řádek do dokumentu. Před řádkem může být v "\llap"
-vytištěno číslo řádku. Záleží na hodnotě "\ttline". Je to naprogramováno v
-souladu s uživatelskou dokumentací.
+makro vloží přečtený řádek do "\tmpb". Nakonec se "\tmpb" vytiskne stejným
+způsobem, jako při přečtení textu makrem "\begtt".
-\inext{vireadline}{\empty}{++}
+\inext{vireadline}{\empty}{+-}
\subsec Jednoduchá tabulka
@@ -2064,6 +2160,9 @@ Není-li aktivován PDF výstup, napíšeme jen varování a neprovedeme nic.
\inext{ifpdftex}{\empty}{+-}
+Makro \db inspicpage může při natažení PDF obsahovat text "page<number>".
+Pak se jako obrázek použije odpovídající strana PDF dokumentu.
+
\subsec PDF transformace
%%%%%%%%%%%%%%%%%%%%%%%%
@@ -2535,7 +2634,9 @@ která je obklopeno makry "\begoutput" a "\endoutput". Makro \db begoutput
zapíše do REF souboru údaj o čísle strany a předefinuje makra, která se
mohou vyskytnout v záhlaví či zápatí stránky, pokud od nich chceme, aby
se chovaly jinak než obvykle. Makro \db endoutput je prázdné a je určeno
-pro strýčka Příhodu.
+pro strýčka Příhodu. Makro \db prephoffset je rovněž implictně prázdné,
+spouští se v "\begoutput" a může v něm být nastaveno střídání
+okrajů pro liché a sudé stránky, viz též makro "\margins".
\inext{opmacoutput}{\empty}{+-}
diff --git a/Master/texmf-dist/doc/cstex/opmac-u-en.pdf b/Master/texmf-dist/doc/cstex/opmac-u-en.pdf
index 1a30d653693..9a2a9c24833 100644
--- a/Master/texmf-dist/doc/cstex/opmac-u-en.pdf
+++ b/Master/texmf-dist/doc/cstex/opmac-u-en.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/cstex/opmac-u-en.tex b/Master/texmf-dist/doc/cstex/opmac-u-en.tex
index c81b6c9ac19..5cc91d877c9 100644
--- a/Master/texmf-dist/doc/cstex/opmac-u-en.tex
+++ b/Master/texmf-dist/doc/cstex/opmac-u-en.tex
@@ -5,14 +5,16 @@
\typosize[11/13]
-\def\thefnote{$^{\locfnum}$}
+%\def\thefnote{$^{\locfnum}$}
+\addto\footstrut{\hang}
\catcode`<=13
\def<#1>{\hbox{$\langle$\it#1\/$\rangle$}}
\activettchar"
-\insertoutline{CONTENTS} \outlines{0} \hyperlinks{\Blue}{\Green}
+\hyperlinks{\Blue}{\Green}
+\insertoutline{CONTENTS} \outlines{0}
\tit OPmac -- macros for plain\TeX\fnotemark1
@@ -27,7 +29,8 @@
\fnotetext {This text is second revised version. The first version was
published in TUGboat 34:1, 2013, pp.~88--96}
-\notoc\nonum \sec Contents\par\maketoc
+\notoc\nonum \sec Contents
+\maketoc
\nonum \sec Introduction
%%%%%%%%%%%%
@@ -67,7 +70,7 @@ OPmac package offers a markup language for authors of texts (like \LaTeX),
i.e. the fixed set of tags to define the structure of the document. This
markup is different from the \LaTeX{} markup. It may offer to write the
source text of the document somewhat clearer and more attractive. The OPmac
-package, however, does not care for typographic of the document. The simple
+package, however, does not care for the typography of the document. The simple
sober document is created if no additional macros are used. We assume that
the author of additional macros is able to create a look of the document to
suit specific requirement.
@@ -76,7 +79,7 @@ OPmac has a small number of additional packages: "pdfuni", "opmac-xetex" and
"opmac-bib" (see the end of \url{http://petr.olsak.net/opmac-e.html} page).
Moreover, there exist many tens of little OPmac tricks comparable with
\LaTeX{} packages
-mentioned on \url{http://petr.olsak.net/opmac-tricks.html} page.
+mentioned on \url{http://petr.olsak.net/opmac-tricks-e.html} page.
\secnum=-1
@@ -96,8 +99,9 @@ Here is a text.
\bye
\endtt
-You can use \TeX, pdf\TeX, Xe\TeX{} or lua\TeX{} with "etex.src" or \csplain{}
-preloaded. The \csplain{} is recommended but it is not explicitly requested if you
+You can use \TeX, pdf\TeX, Xe\TeX{} or lua\TeX{} with plain \TeX{} format
+(classical "plain.tex", "etex.src" or \csplain{}).
+The \csplain{} is recommended but it is not explicitly requested if you
don't need to use Czech/Slovak specific features\fnote
{Warnings: ``falling back to ASCII sorting''
or ``CZ/SK outline-conversion is off'' may occur without \csplain{}.}.
@@ -183,14 +187,14 @@ This is {\em important} text. % = This is {\it important\/} text.
%%%%%%%%%%%%%%%%%%%%%%%%%%
The document can be divided into chapters, sections and subsections and titled
-by "\tit" command. The parameters have to be separed by empty line (no
+by "\tit" command. The parameters are separed by the end of current line (no
braces are used):
\begtt
-\tit Document title <empty line>
-\chap Chapter title <empty line>
-\sec Section title <empty line>
-\secc Subsection title <empty line>
+\tit Document title <end of line>
+\chap Chapter title <end of line>
+\sec Section title <end of line>
+\secc Subsection title <end of line>
\endtt
The chapters are numbered by one number, sections by two numbers
@@ -555,7 +559,7 @@ DRAFT on the background of every page.
\sec Hyperlinks, outlines
%%%%%%%%%%%%%%%%%%%%%%%%%
-If the command "\hyperlins{<color-in>}{<color-out>}" is used at the beginning of
+If the command "\hyperlinks{<color-in>}{<color-out>}" is used at the beginning of
the file, then the following objects are hyperlinked when PDF output is used:
\begitems
@@ -597,7 +601,7 @@ The "\url" macro prints its parameter in "\tt" font and creates a potential
breakpoints in it (after slash or dot, for example). If "\hyperlinks"
declaration is used then the parameter of "\url" is treated as an external URL link.
An example: "\url{http://www.olsak.net}" creates \url{http://www.olsak.net}.
-The charecters {\tt\%}, "\", "#", "$", "{" and "}" have to be protected by
+The charecters {\tt\%}, "\", "#", "$", "{" and "}" have to be protected by %$
backslash in the "\url" argument, the other special charecters "~", "_",
"^", "&" can be written as single character. You can insert the "\|" command
in the "\url" argument as a potential breakpoint.
@@ -606,10 +610,10 @@ If the linked text have to be different than the URL, you can use
"\ulink[<url>]{text}" macro. For example:
\begtt
-\ulink[http://www.olsak.net/opmac-e.html]{OPmac page}
+\ulink[http://petr.olsak.net/opmac-e.html]{OPmac page}
\endtt
creates
-\ulink[http://www.olsak.net/opmac-e.html]{OPmac page}.
+\ulink[http://petr.olsak.net/opmac-e.html]{OPmac page}.
The PDF format provides ``outlines'' which are notes placed in the special frame of
the PDF viewer. These notes can be managed as structured and hyperlinked
@@ -798,7 +802,7 @@ can be set by the command "\rulewidth=<dimen>". The default value given
by \TeX{} is 0.4pt.
Many tips about tables can be seen on
-\url{http://petr.olsak.net/opmac-tricks.html}.
+\url{http://petr.olsak.net/opmac-tricks-e.html}.
\sec Images
%%%%%%%%%%%
@@ -874,11 +878,16 @@ the footnotes are numbered from one in whole document in such case.
Alternatives are possible, see OPmac tricks or technical documentation.}.
The "<text>" is scaled by
"\typoscale[800]". The implicit visual aspect of the footnote mark is defined by
-"\def\thefnote{$^{\locfnum}$)}". User can redefine it, for example:
+"\def\thefnote{$^{\locfnum}$}".
+%\fnote{%
+% Note the right parenthesis in the mark. This isn't bug, this is used in Czech
+% traditional typography. If you need to remove it, you can define
+% {\def\s{\string}\tt\s\def\s\thefnote\s{\$\s^\s{\s\locfnum\s}\$\s}}.
+% }.
+User can redefine it, for example:
\begtt
-\def\thefnote{\ifcase\locfnum\or
- *\or**\or***\or$^{\dag}$\or
+\def\thefnote{\ifcase\locfnum\or *\or**\or***\or$^{\dag}$\or
$^{\ddag}$\or$^{\dag\dag}$\fi}
\endtt
@@ -1064,7 +1073,7 @@ of the entry) and "\the\bibmark" (the mark of the entry used when
\endtt
Next examples can be found on the
-\ulink[http://petr.olsak.net/opmac-tricks.html]{OPmac tricks WWW page}.
+\ulink[http://petr.olsak.net/opmac-tricks-e.html]{OPmac tricks WWW page}.
\sec Typesetting math
@@ -1092,7 +1101,7 @@ manual (or TX-fonts manual) for complete list of symbols.
The following math alphabets are available:
-{\def\tthook{\catcode`\$=3 \catcode`/=0 \medmuskip=0mu}%
+{\def\tthook{\catcode`\$=3 \catcode`/=0 \medmuskip=0mu \adef{ }{ }}%
\begtt
\mit % mathematical variables $abc-xyz,ABC-XYZ$
\it % text italics $/it abc-xyz,ABC-XYZ$
@@ -1128,6 +1137,11 @@ You can change this behavior by following commands:
\itvariables % variables typeset by text italics.
\mitvariables % variables typeset by math italics.
\endtt
+%
+{\bf Note:} Due to the features described in this section (AMS symbols, "\bbchar",
+"\script", "\frak" characters and sans serif bold in math) more special fonts are loaded
+(from AMS package and from EC fonts). If you dislike such dependency, you
+can follow the \ulink[http://petr.olsak.net/opmac-tricks-e.html\#onlycm]{OPmac trick 0111}.
\sec Setting the margins
@@ -1179,8 +1193,8 @@ mirrored in such case, it means that <left> is replaced by <right> and vice
versa.
The "<fmt>" can be in the form "(<width>,<height>)<unit>" where "<unit>" is
-optional. If it is missing then "<unit>" after margins sspecification is
-used. Fo example:
+optional. If it is missing then "<unit>" after margins specification is
+used. For example:
\begtt
\margins/1 (100,200) (7,7,7,7)mm
@@ -1224,15 +1238,128 @@ page'':
\footline={\hss \rm \thefontsize[10]\the\pageno/\the\lastpage \hss}
\endtt
+\sec Using other language
+%%%%%%%%%%%%%%%%%%%%%%%%%
+
+OPmac supports all languages but only English, Czech and Slovak languages
+are immediately ready for use. When using another language, you have to do
+little more work. First of all, use \TeX{} engine and \TeX{} format ready
+for such language (with hyphenation patterns preloaded). In order to not
+fall to the ``encoding hell'', I recommend to use Unicode engine ("xetex" or
+"luatex") and to use Unicode font family where all characters and letters
+needed for your language are prepared.
+
+The "xetex" and "luatex" run with e\TeX{} plain format (generated from
+"etex.src" sources) by default. This format includes hyphenation tables for
+all languages. For example, you can select Spanish language by
+"\uselanguage{espanol}".
+
+OPmac needs to know the translation of three auto-generated words
+``Chapter'', ``Table'' and ``Figure'' for selected language. And this
+language is marked by its ISO 639-1 code, "es" for Spanish, for example.
+
+If you are using e\TeX{} plain format you
+must set the connection between long language name and short ISO code
+by the macro "\isolangset{<long-name>}{<iso-code>}". This command does nothing if
+\csplain{} is used, because \csplain{} sets ISO codes during format generation.
+
+The full example with Spanish language follows. Use "xetex example"
+or "luatex example" for compiling this.
+
+\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 % lua code to re-define \font primitive, irrelevant in XeTeX
+
+\font\tenrm="DejaVu Serif" % Unicode font family,
+\font\tenbf="DejaVu Serif/B" % where all needed characters are ready
+\font\tenit="DejaVu Serif/I"
+\font\tenbi="DejaVu Serif/IB"
+\tenrm
+
+\input tx-math % Math setting using TX fonts
+
+\isolangset {espanol}{es}
+\sdef{mt:chap:es}{CapĂ­tulo} % Chapter in es
+\sdef{mt:t:es}{Cuadro} % Table in es
+\sdef{mt:f:es}{Figura} % Figure in es
+
+\uselanguage{espanol} % Spanish hyphenation + autogenerated words
+\typosize[12/14.4]
+
+\tit MaĂąana
+
+\sec MaĂąana
+
+MaĂąana.
+
+\caption/f Test % generates the text "Figura 1.1 Test"
+
+\bye
+\endtt
+
+When sorting the index by "\makeindex" in the non-\csplain{} format, OPmac
+writes a warning: ``falling back to ASCII sorting''.
+If you want to use sorting rules given for your language,
+you must define the macro "\sortingdata<iso-code>". And you can optionally
+define the "\specsortingdata<iso-code>" macro. Example:
+{\emergencystretch=2em\par}
+
+\begtt
+\def\sortingdataes {aAäÄáÁ,bB,cCçÇ,^^P^^Q^^R,dD,...,zZ,.}
+\def\specsortingdataes {ch:^^P Ch:^^Q CH:^^R}
+\endtt
+
+There are groups of letters separated by comma and ended by comma-dot in
+the macro "\sortingdata<iso-code>". (In the example above, three dots must
+be replaced by real data by the user.) All letters in one group are not
+distinguished during first step of sorting (primary sorting). If some items
+are equal from this point of view then the secondary sorting is processed
+for such items where all mentioned letters are distinguished in the order
+given in the macro.
+
+Sorting algorithm can treat couple of letters (like Dz, Ch etc.) as one letter
+if the macro "\specsortingdata<iso-code>" is defined. There is
+a space separated list of items in the form "<couple>:<one-token>". The
+replacing from <couple> to <one-token> is done before sorting, so you can
+use "<one-token>" in the "\sortingdata<iso-code>" macro. The "<one-token>"
+must be something special not used as the letter of the alphabet. The usage of "^^A",
+"^^B" etc. is recommended but you must avoid the "^^I" and "^^M" because
+these characters have special catcode.
+
+The macro "\sortingdata<iso-code>" (if it is defined and the hyphenation of
+given language is selected) has precedence before an internal "\sortingdata"
+defined in OPmac. The internal "\sortingdata" are optimized for Czech,
+Slovak and English languages.
+
+The list of ignored characters for sorting point of view is defined in the
+"\setignoredchars" macro. OPmac defines this macro like:
+
+{\catcode`\<=12
+\begtt
+\def\setignoredchars{\setlccodes ,.;.?.!.:.'.".|.(.).[.].<.>.=.+.{}{}}
+\endtt
+}%
+It means that comma, semicolon, question mark, \dots, plus mark are treated
+as dot and dot is ignored by sorting algorithm. You can redefine this macro,
+but you must keep the format, keep "\setlccodes" in the front and "{}{}" in
+the end.
+
+
\sec Summary
%%%%%%%%%%%%
\def\tthook{\adef!{\string\endtt}\adef&{\kern.25em}}
\begtt
-\tit Title (terminated by a blank line)
-\chap Chapter Title (terminated by a blank line)
-\sec Section Title (terminated by a blank line)
-\secc Subsection Title (terminanted by a blank line)
+\tit Title (terminated by end of line)
+\chap Chapter Title (terminated byend of line)
+\sec Section Title (terminated by end of line)
+\secc Subsection Title (terminanted by end of line)
\maketoc % table of contents generation
\ii item1,item2 % insertion the items to the index
diff --git a/Master/texmf-dist/doc/cstex/opmac-u.pdf b/Master/texmf-dist/doc/cstex/opmac-u.pdf
index 3a485896585..224f494d611 100644
--- a/Master/texmf-dist/doc/cstex/opmac-u.pdf
+++ 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
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