summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/cstex/opmac-d.tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2014-08-16 21:43:28 +0000
committerKarl Berry <karl@freefriends.org>2014-08-16 21:43:28 +0000
commit9caacf53d7d2a1620a603aa644617293a60183e2 (patch)
tree231eaf764696a85098e37d8ec19045fbb72c0a77 /Master/texmf-dist/doc/cstex/opmac-d.tex
parent48523b6ca61cfc84ac2bbe578b12fed09cbd70eb (diff)
cstex (16aug14)
git-svn-id: svn://tug.org/texlive/trunk@34952 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/cstex/opmac-d.tex')
-rw-r--r--Master/texmf-dist/doc/cstex/opmac-d.tex61
1 files changed, 47 insertions, 14 deletions
diff --git a/Master/texmf-dist/doc/cstex/opmac-d.tex b/Master/texmf-dist/doc/cstex/opmac-d.tex
index ab78fec6146..7fd3da08a92 100644
--- a/Master/texmf-dist/doc/cstex/opmac-d.tex
+++ b/Master/texmf-dist/doc/cstex/opmac-d.tex
@@ -7,7 +7,8 @@
% This file is encoded in ISO-8859-2 because
% UTF-8 encTeX has a conflict with DocByTeX
-\def\projectversion{May 2014}
+\chyph
+\def\projectversion{Jul 2014}
\def\headtitle{OPmac}
\widowpenalty=10000
@@ -20,7 +21,6 @@
\def\csplain{\CS plain}
\def\CS{CS}
-\chyph
\input docby.tex
@@ -1027,8 +1027,17 @@ chceme navíc takový seznam nahradit zápisem 13--16. Makro
\inext{Xindex}{\empty}{+-}
-Činnost makra "\Xindex" si vysvětlíme za chvíli podrobněji. Nejprve ovšem
-definujeme pomocné makro \db firstdata "\,<heslo>"~"\<cs>", které expanduje na
+Činnost makra "\Xindex" si vysvětlíme za chvíli podrobněji. Nyní jen
+uvedeme, že "\Xindex" je jen speciální variantou obecného makra
+\db Xindexg při "#1=,". Takže pracuje s kontrolními sekvencemi typu
+"\,<heslo>". Následující text popisuje jen tento případ. Makro "\Xindexg"
+je možné použít pro pralelní vytváření dalších seznamů stránek
+stejných hesel (např. seznam vyznačený kurzívou, tučně atd.). Jak to udělat
+je popsáno v OPmac triku 0072.
+
+Údaje o stranách spojených s rejstříkovým heslem jsou ukládány do makra
+"\,<heslo>" a jsou rozděleny do dvou částí ve tvaru "{prvni}{druhy}".
+Definujeme pomocné makro \db firstdata "\,<heslo>"~"\<cs>", které expanduje na
"\<cs>"~"<první-datový-údaj-hesla>&". Je-li třeba "\,aa" definováno jako
"{prvni}{druhy}", pak "\firstdata"~"\,aa"~"\cosi" expanduje na "\cosi"~"prvni&".
Tím máme možnost vyzískat data z makra. Podobně makro
@@ -1073,7 +1082,7 @@ if (první výskyt \,<heslo>) {
<seznam-stran> = "<strana>"; <stav> = +; <posledni-strana> = <strana>;
return;
}
-if (<strana> == <posledni-strana>) return;
+if (<strana> == <empty> || <strana> == <posledni-strana>) return;
if (<stav> == +) {
if (<strana> == <posledni-strana>+1) {
<seznam-stran> += "--";
@@ -1093,6 +1102,15 @@ else {
<poslední-strana> = <strana>;
\endtt
+V makru "\Xindex" pracujeme ještě se dvěma pomocnými makry
+\db pgfolioA a \db pgfolioB. Pro kladné stránky se tato makra chovají
+stejně, jako kdyby tam vůbec nebyla. Ovšem v plain\TeX{}u
+(viz maro "\folio") se mohou stránkové číslice vyskytnout
+na začátku dokumentu záporné, v takovém případě se mají tisknout
+římskými číslicemi. Proto jsou uvedená makra definována poněkud chytřeji.
+
+\inext{pgfolioA}{\empty}{+-}
+
\def\begtthook{}
Makro \db makeindex nejprve definuje přechodný význam rekurzivního
"\act" tak, aby byly uzavřeny seznamy stránek (tj. aby seznam nekončil
@@ -1776,12 +1794,15 @@ expandujeme "\tmpb" pomocí pěti "\expandafter" a poté ho pronulujeme,
takže to pracuje jako
"\def\tmbb{}\tmp<původní obsah tmpb>\/<string1>\relax".
-\inext{replacestring}{\empty}{+-}
+V makru pracujeme s tokeny "!" a "?" kategorie 3, které slouží jako
+separátory. Předpokládáme, že takové tokeny se ve zpracovávaném textu nikdy neobjeví.
+
+\inext{bgroup}{\empty}{+-}
-Na konci "<textu>" je vložena sekvence "\/", která jej odděluje od přidaného
-"<string1>". Kdybychom ji tam nedali, pak při "<string1>=//" a při lomítku
+Na konci "<textu>" je vložen "?", který jej odděluje od přidaného
+"<string1>". Kdybychom jej tam nedali, pak při "<string1>=//" a při lomítku
na konci "<textu>" bychom měli "...///" a to způsobí potíže.
-V závěru makra "\replacestring" je přidaná sekvence "\/" zase odstraněna.
+V závěru makra "\replacestring" je přidaný otazník zase odstraněn.
\subsec Outlines -- obsah v záložce PDF dokumentu
@@ -2026,10 +2047,10 @@ raději i mezery za položkou uděláme nepodstatné.
Příklad: po deklaraci: "{|cr||cl|}" makro "\scantabdata" vytvoří:
\begtt
-tabdata: \vrule\tabiteml\hfil#\unsskip\hfil\tabitemr
- &\tabiteml\hfil#\unsskip\tabitemr \vrule\kern\vvkern\vrule
- &\tabiteml\hfil#\unsskip\hfil\tabitemr
- &\tabiteml#\unsskip\hfil\tabitemr\vrule
+tabdata: \vrule\tabiteml\hfil#\unsskip\hfil\tabitemr\tabstrutA
+ &\tabiteml\hfil#\unsskip\tabitemr \vrule\kern\vvkern\vrule\tabstrutA
+ &\tabiteml\hfil#\unsskip\hfil\tabitemr\tabstrutA
+ &\tabiteml#\unsskip\hfil\tabitemr\vrule\tabstrutA
ddlinedata: &\dditem &\dditem\vvitem &\dditem &\dditem
\endtt
@@ -2270,10 +2291,22 @@ zásobník barev, který je pomocí \db mnoteD vrácen do stavu, v jakém byl před
zahájemním zpracování "\mnote". Uživatel může v prametru "\mnote" používat
"{\localcolor\Green X{\localcolor\Blue Y}Z}" s~očekávaným výsledkem.
Barvy neoznačené "\localcolor" končí svou platnost na konci poznámky
-"\mnote".
+"\mnote".
\inext{mnoteC}{^^B\cbrace}{++}
+Základová barva lokálního zásobníku barev je převzata jako
+aktuální barva v době zpracování "\mnote", ale je pozměněna prefixem "\long",
+aby explicitní nastavení barvy vždy založilo barvu. Obecně
+totiž "\setcmykcolor" zakládá barvu jen tehdy, když je rozdílná od
+aktuální. Zde je rozdílnost zajištěna prefixem "\long".
+Tento trik zabere, pokud se uvnitř "\mnote" pomocí "A{\localcolor\Red BC}DE"
+má přejít k původní barvě pro písmena "DE". Ovšem ne vždy bude barva "A"
+shodná s barvou "DE", protože barva "A" odpovídá barvě na koci aktuálního
+řádku odstavce, zatímco "DE" odpovídá barvě v době činnosti makra "\mnote".
+Pokud toto bude uživateli vadit, musí si pomocí "\mnotehook" nastavit
+explicitní barvu poznámky.
+
Makro \db Xmnote pracuje během čtení REF souboru a využívá toho, že makro
"\Xpage" nastavuje číslo právě procesované strany do registru "\lastpge".
Takže stačí použít "\sxdef" následujícím způsobem: