diff options
author | Karl Berry <karl@freefriends.org> | 2018-03-05 22:11:57 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2018-03-05 22:11:57 +0000 |
commit | b9f3cc768394b195b6ea6598ec3d47ef3e68f0bb (patch) | |
tree | 4013f99025a35411c67550396f2a5b3d67b1af13 /Master/texmf-dist/doc/cstex/opmac-d.tex | |
parent | bb7ef4b993327dd47fb8f1848e1603f93f12eb64 (diff) |
cstex (5mar18)
git-svn-id: svn://tug.org/texlive/trunk@46849 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.tex | 53 |
1 files changed, 37 insertions, 16 deletions
diff --git a/Master/texmf-dist/doc/cstex/opmac-d.tex b/Master/texmf-dist/doc/cstex/opmac-d.tex index ea51adbc3a9..bfb3b636dd2 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{Jun. 2016} +\def\projectversion{Jun. 2017} \def\headtitle{OPmac} \widowpenalty=10000 @@ -1785,7 +1785,7 @@ uvedená makra "\toclink", "\pglink", "\citelink" a "\reflink" probouzejí k \inext{hyperlinks}{^^B\cbrace}{+-} -Makro "\toclink" čte parametr ve fromátu \uv{číslo kapitoly, sekce, +Makro "\toclink" čte parametr ve formá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 @@ -2080,8 +2080,20 @@ přečteného znaku ukládá do "\tabdata" odpovídající úsek skutečné deklarace pro \inext{scantabdata}{^^B\cbrace}{++} -OPmac předdefinuje tři "<znaky>" pro "<deklaraci>", sice "<znaky>" "c", "l", "r" -v makrech \db tabdeclarec, \db tabdeclarel, \db tabdeclarer. +Pomocná makra \db scantabdataA a \db scantabdataB +řeší případy, kdy deklarátor nemá nebo má parametr. Dále makra +\db scantabdataC a \db scantabdataD se starají o případné opakování úseku +deklarace. + +\inext{scantabdataA}{^^B\cbrace}{++} + +OPmac předdefinuje čtyři "<deklarátory>" pro sloupce tabulky, sice "<znaky>" +"c", "l", "r", "p" v~makrech \db tabdeclarec, \db tabdeclarel, \db +tabdeclarer a \db paramtabdeclarep. +Je-li deklarátor bez parametru, je třeba definovat "\tabdeclare<znak>" a +je-li s parametrem, je třeba definovat "\paramtabdeclare<znak>". +V případě typu "p" přidáváme na konec odstavce (do posledního řádku) strut +nulové výšky, ale hloubku má podle "\tabstrutA". \inext{tabdeclarec}{\empty}{+-} @@ -2114,20 +2126,21 @@ ním předchází další "\vrule". Pokud ano, vloží dodatečnou mezeru \inext{addtabitem}{\empty}{+-} Než se pustíme do výkladu dalších maker, předvedeme příklad, ve kterém je -definováno další písmeno "P" pro "<deklaraci>". Písmeno "P" vymezí -tabulkovou položku, jež má stanovenou šířku a delší text se láme -do více řádků. Je možné si vyzkoušet třeba tento kód: +definován deklarátor "F" pro centrovanou položku, kde text +je v rámečku (deklarátor bez parametru) a dále definujeme analogii +deklarátoru "p" s parametrem (bude se jmenovat "V"), který umístí odstavce +různě vysoké vedle sebe vertikálně centrovaně. \begtt -\newdimen\Pwidth -\def\tabdeclareP {\enskip\vtop{\hsize=\Pwidth \rightskip=0pt plus1fil - \baselineskip=1.2em\lineskiplimit=0pt - \noindent##\unskip\tabstrutA}\hss\enskip -} -\Pwidth=3cm \table{|c|P|}{\crl \tskip3pt - aaa & Tady je delší textík, který se nevejde na řádek. \crl \tskip3pt - bb & A tady je taky je něco delšího. \crl} -\endtt +\def\tabdeclareF{\tabiteml\hfil\frame{##\unsskip}\hfil\tabitemr} +\def\paramtabdeclareV#1{\tabiteml{$\vcenter{\hsize=#1 + \baselineskip=\normalbaselineskip \lineskiplimit=0pt + \noindent\vbox{\hbox{\tabstrutA}\kern-\prevdepth}##\unsskip + \vbox to0pt{\vss\hbox{\tabstrutA}}}$}\tabitemr} +\def\tabstrut{\vrule height 20pt depth10pt width0pt} + +\table{V{3cm\raggedright} V{4cm}} {delší text & text \cr text & delší text} +\endtt Pusťme se nyní do rozboru maker na ukončení řádků. Makro \db crl přidá čáru pomocí "\noalign". Makro \db crll přidá dvojitou @@ -2157,6 +2170,14 @@ Nakonec je potřeba vrátit "\tabstrutA" do původního stavu. \inext{tskip}{\empty}{+-} +Makro \db mspan "<číslo>[<deklarace>]{<text>}" překoná "<číslo>" sloupců a +dále "<text>" v tomto prostoru formátuje podle "<deklarace>". K tomu účelu +provede "\multispan" pomocí "\loop" v \db mspanA a dále připraví tělo +formátovacího makra postupným čtením deklarace pomocí \db mspanB. V závěru +je toto tělo použito v~makru "\tmpa", které je nakonec spuštěno. + +\inext{mspan}{\empty}{+-} + Globální změna šířek všech linek tvořených pomocí "\vrule" a "\hrule" je provedena makry \db rulewidth a \db rulewidthA. Myšlenka je dokumentována v TBN na str.~328. |