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 | |
parent | 5e77de80c3619d378c8a85ab0e2413086a57a8a5 (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-opmac | 2 | ||||
-rw-r--r-- | Master/texmf-dist/doc/cstex/opmac-d.tex | 197 | ||||
-rw-r--r-- | Master/texmf-dist/doc/cstex/opmac-u-en.pdf | bin | 227735 -> 235111 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/cstex/opmac-u-en.tex | 183 | ||||
-rw-r--r-- | Master/texmf-dist/doc/cstex/opmac-u.pdf | bin | 264133 -> 270987 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/cstex/opmac-u.tex | 171 |
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 Binary files differindex 1a30d653693..9a2a9c24833 100644 --- a/Master/texmf-dist/doc/cstex/opmac-u-en.pdf +++ b/Master/texmf-dist/doc/cstex/opmac-u-en.pdf 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 Binary files differindex 3a485896585..224f494d611 100644 --- a/Master/texmf-dist/doc/cstex/opmac-u.pdf +++ b/Master/texmf-dist/doc/cstex/opmac-u.pdf 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 |