summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/cstex/opmac-d.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/cstex/opmac-d.tex')
-rw-r--r--Master/texmf-dist/doc/cstex/opmac-d.tex53
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.