From bfeb45d26b022e8977bd2379f7dda34d9f3b754f Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 13 Feb 2020 22:10:16 +0000 Subject: cstex (13feb20) git-svn-id: svn://tug.org/texlive/trunk@53767 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/cstex/opmac-d.tex | 75 ++++++++++++++++++++++----------- 1 file changed, 50 insertions(+), 25 deletions(-) (limited to 'Master/texmf-dist/doc') diff --git a/Master/texmf-dist/doc/cstex/opmac-d.tex b/Master/texmf-dist/doc/cstex/opmac-d.tex index 767d9897a31..df97f9fa9be 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{June 2019} +\def\projectversion{July 2019} \def\headtitle{OPmac} \widowpenalty=10000 @@ -1647,39 +1647,62 @@ U \inext{Blue}{\empty}{+-} -Makro \db setcmykcolor "{}" nastaví požadovanou barvu. +OPmac preferuje barevný model CMYK, proto je výše použito k definici barev +makro \db setcmykcolor. Je ovšem možné použít také \db setrgbcolor, což na RGB +zařízeních (monitorech) dá skoro jistě jásavější barvy. Můžete tedy marka +pro jednotlivé barvy předefinovat, např. "\def\Red{\setrgbcolor{1 0 0}}", +ale je vhodné oba barevné modely v jednom dokumentu nemíchat. Tiskárny +přijímají jedině CMYK, ideálně i s konkrétním barevným profilem. + +\inext{setcmykcolor}{setrgbcolor}{++} + +Makra \db formatcmyk a \db formatrgb připravují argument s požadovanou +barvou do formátu podle PDF standardu, tj. např. "1 1 0 0 k 1 1 0 0 K" +v případě CMYK a barvy modré. +Povšimněte si, že se současně +pracuje s barvou textu " k" i s barvou tenkých linek +" K". +Poněkud jiný standard je pak použit v souboru +"opmac-xetex.tex" při použití Xe\TeX{}u. +Ve "\write" příkazech se sice +makra "\formatcmyk" a "\setcmykcolor" expandují, ale expanze se zastaví +u "\setcolor", protože toto makro je deklarováno pomocí "\addprotect". + +\inext{formatcmyk}{\empty}{+-} + +Makro \db setcolor "{}" nastaví požadovanou barvu. Nejprve přepne makro "\ensureblacko" do aktivního stavu. V tomto stavu makro setrvá právě tehdy, když je v dokumentu použit aspoň jednou přepínač barvy. -Dále makro "\setcmykcolor" nastaví při +Dále makro "\setcolor" nastaví při "\localcolorfalse" barvu přímo a při "\localocolortrue" barvu vloží do zásobníku a pomocí "\aftergroup" zajistí návrat k původní hodnotě. -Navíc nastaví na odpovídající hodnotu makro \db currentcolor. +Navíc nastaví na odpovídající hodnotu makro "\currentcolor". -\inext{setcmykcolor}{^^B\cbrace}{++} +\inext{setcolor}{^^B\cbrace}{++} -Makro "\currentcolor" je nastaveno na výchozí hodnotu \db pdfblackcolor +Makro \db currentcolor je nastaveno na výchozí hodnotu \db pdfblackcolor \inext{pdfblackcolor}{currentcolor}{++} Makro \db ensureblacko "{}" je použito pro sazbu záhlaví a zápatí ve výstupní rutině v~makru "\opmacoutput". Implicitně se "\ensureblacko{}" chová stejně jako samotná "", ale po použití přepínače barvy -"\setcmykcolor" začne fungovat jako \db ensureblackoA, což zajistí bravu +"\setcolor" začne fungovat jako \db ensureblackoA, což zajistí bravu "" v~černém. Je to provedeno tak, že je na začátku "" alokována nová úroveň zásobníku barev s výchozí černou barvou a na konci "" je tato úroveň zásobníku ukončena. \inext{ensureblacko}{\empty}{+-} -Makra \db colorstackpush "{}" a \db colorstackpop implementují +Makra \db colorstackpush "{}" a \db colorstackpop implementují práci se zásobníkem barev za použití odpovídajících \TeX{}ových primitivů. +Je použit implicitně inicializovaný zásobník \db colorstackcnt k s číslem nula +(děkuji P. Krajníkovi za tip). Není-li přítomen pdf\TeX{} ve verzi aspoň 1.40, je barva nastavena pomocí "\pdfliteral" (což v komplikovanějších případech při přechodu na další stránky nefunguje správně), jinak je použit "\pdfcolorstack", který je -inicializován pomocí "\pdfcolorstackinit". Povšimněte si, že se současně -pracuje s barvou textu " k" i s barvou tenkých linek -" K". -Konečně makro \db colorstackset "{}" nastavuje barvu přímo s +inicializován pomocí "\pdfcolorstackinit". +Konečně makro \db colorstackset "{}" nastavuje barvu přímo s umístěním této bravy na vrchol zásobníku místo bravy předchozí. \inext{pdfcolorstack}{\empty}{+-} @@ -2268,33 +2291,35 @@ pdf\TeX{}u jako makra, kter \subsec Poznámky pod čarou a na okraji stránek %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -Makro \db fnote předpokládá, že správné číslo poznámky na dané stránce je +Makro "\fnote" předpokládá, že správné číslo poznámky na dané stránce je připraveno v makru "\fn:<číslo>", kde "<číslo>" je celkové číslo poznámky napříč celým dokumentem sledované globálním čítačem \db fnotenum. -Makro ohlásí svou existenci do REF souboru záznamem "\Xfnote" (bez + +\inext{fnotenum}{\empty}{+-} + +Makro "\fnote" ohlásí svou existenci do REF souboru záznamem "\Xfnote" (bez parametru). Dále vytiskne značku pomocí "\fnmarkx" a ve skupině přejde na menší sazbu a zavolá plain\TeX{}ové makro "\vfootnote", které vloží sazbu pomocí tzv. insertu (TBN, kapitola~6.7). Plain\TeX{}ové nastavení této -třídy insertu není makrem OPmac nijak měněno. +třídy insertu není makrem OPmac nijak měněno. To vše je řešeno v interním makru +\db fnoteG "{}{}". + +\inext{fnoteG}{^^B\cbrace}{++} + +Konečně makro \db fnote je implementováno pomocí "\fnoteG" se značkou +"\fnmarkx" zatímco makro \db fnotetext dělá to samé, ale značka v textu je +prázdná. -\inext{fnotenum}{^^B\cbrace}{++} +\inext{fnote}{fnotetext}{++} Makro \db fnotemark přičte lokálně k "\fnotenum" svůj parametr a vytiskne odpovídající značku. Celá práce makra probíhá ve skupině, takže po ukončení makra se "\fnotenum" vrátí do své původní hodnoty. - -\inext{fnotemark}{^^B\cbrace}{++} - -Makro \db fnotetext teprve zvedne čítač "\fnotenum" globálně a vytiskne -poznámku pomocí plain\TeX{}ového "\vfootnote". - -\inext{fnotetext}{^^B\cbrace}{++} - Makro \db fnmarkx vytiskne otazník nebo \db thefnote. Předpokládá se, že si uživatel předefinuje "\thefnote" k obrazu svému. Lokální číslo poznámky na stránce má připraveno v makru \db locfnum. -\inext{fnmarkx}{\empty}{+-} +\inext{fnotemark}{\empty}{+-} Při čtení REF souboru se pro každou stranu přečte nejprve "\Xpage", což je makro, které pronuluje \db fnotenumlocal. -- cgit v1.2.3