From b9f3cc768394b195b6ea6598ec3d47ef3e68f0bb Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 5 Mar 2018 22:11:57 +0000 Subject: cstex (5mar18) git-svn-id: svn://tug.org/texlive/trunk@46849 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/cstex/opmac-d.tex | 53 ++++++++++++++++------- Master/texmf-dist/doc/cstex/opmac-u-en.pdf | Bin 238427 -> 240216 bytes Master/texmf-dist/doc/cstex/opmac-u-en.tex | 64 +++++++++++++++++----------- Master/texmf-dist/doc/cstex/opmac-u.pdf | Bin 273342 -> 276587 bytes Master/texmf-dist/doc/cstex/opmac-u.tex | 66 +++++++++++++++++++++++------ 5 files changed, 130 insertions(+), 53 deletions(-) (limited to 'Master/texmf-dist/doc/cstex') 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 \inext{hyperlinks}{^^B\cbrace}{+-} -Makro "\toclink" te parametr ve fromtu \uv{slo kapitoly, sekce, +Makro "\toclink" te parametr ve formtu \uv{slo kapitoly, sekce, kapitoly.sekce atd.}. Makro "\pglink" zase vyaduje svj parametr jen jako slo strany. Kdy je dokument rozdlen do blok a v~kadm je samostatn slovn stran, respektive bloky @@ -2080,8 +2080,20 @@ p \inext{scantabdata}{^^B\cbrace}{++} -OPmac peddefinuje ti "" pro "", sice "" "c", "l", "r" -v makrech \db tabdeclarec, \db tabdeclarel, \db tabdeclarer. +Pomocn makra \db scantabdataA a \db scantabdataB +e ppady, kdy deklartor nem nebo m parametr. Dle makra +\db scantabdataC a \db scantabdataD se staraj o ppadn opakovn seku +deklarace. + +\inext{scantabdataA}{^^B\cbrace}{++} + +OPmac peddefinuje tyi "" pro sloupce tabulky, sice "" +"c", "l", "r", "p" v~makrech \db tabdeclarec, \db tabdeclarel, \db +tabdeclarer a \db paramtabdeclarep. +Je-li deklartor bez parametru, je teba definovat "\tabdeclare" a +je-li s parametrem, je teba definovat "\paramtabdeclare". +V ppad typu "p" pidvme na konec odstavce (do poslednho dku) strut +nulov vky, ale hloubku m podle "\tabstrutA". \inext{tabdeclarec}{\empty}{+-} @@ -2114,20 +2126,21 @@ n \inext{addtabitem}{\empty}{+-} Ne se pustme do vkladu dalch maker, pedvedeme pklad, ve kterm je -definovno dal psmeno "P" pro "". Psmeno "P" vymez -tabulkovou poloku, je m stanovenou ku a del text se lme -do vce dk. Je mon si vyzkouet teba tento kd: +definovn deklartor "F" pro centrovanou poloku, kde text +je v rmeku (deklartor bez parametru) a dle definujeme analogii +deklartoru "p" s parametrem (bude se jmenovat "V"), kter umst odstavce +rzn vysok vedle sebe vertikln 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 textk, kter se nevejde na dek. \crl \tskip3pt - bb & A tady je taky je nco delho. \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 Pusme se nyn do rozboru maker na ukonen dk. Makro \db crl pid ru pomoc "\noalign". Makro \db crll pid dvojitou @@ -2157,6 +2170,14 @@ Nakonec je pot \inext{tskip}{\empty}{+-} +Makro \db mspan "[]{}" pekon "" sloupc a +dle "" v tomto prostoru formtuje podle "". K tomu elu +provede "\multispan" pomoc "\loop" v \db mspanA a dle piprav tlo +formtovacho makra postupnm tenm deklarace pomoc \db mspanB. V zvru +je toto tlo pouito v~makru "\tmpa", kter je nakonec sputno. + +\inext{mspan}{\empty}{+-} + Globln zmna ek vech linek tvoench pomoc "\vrule" a "\hrule" je provedena makry \db rulewidth a \db rulewidthA. Mylenka je dokumentovna v TBN na str.~328. diff --git a/Master/texmf-dist/doc/cstex/opmac-u-en.pdf b/Master/texmf-dist/doc/cstex/opmac-u-en.pdf index 4e95a6226f0..21724b8ebbc 100644 Binary files a/Master/texmf-dist/doc/cstex/opmac-u-en.pdf and b/Master/texmf-dist/doc/cstex/opmac-u-en.pdf differ diff --git a/Master/texmf-dist/doc/cstex/opmac-u-en.tex b/Master/texmf-dist/doc/cstex/opmac-u-en.tex index b77643592e0..03809c3a482 100644 --- a/Master/texmf-dist/doc/cstex/opmac-u-en.tex +++ b/Master/texmf-dist/doc/cstex/opmac-u-en.tex @@ -766,8 +766,7 @@ These letters can be combined by the ``{\tt\char`\|}'' character \begtt \table{||lc|r||}{ \crl - Month & commodity & price \crli - \tskip.2em + Month & commodity & price \crli \tskip.2em January & notebook & \$ 700 \cr February & skateboard & \$ 100 \cr July & yacht & k\$ 170 \crl} @@ -776,7 +775,7 @@ These letters can be combined by the ``{\tt\char`\|}'' character generates the following result: \bigskip -\table{||lc|r||}{ \crl +\hfil\table{||lc|r||}{ \crl Month & commodity & price \crli \tskip.2em January & notebook & \$ 700 \cr @@ -784,14 +783,31 @@ generates the following result: July & yacht & k\$ 170 \crl} \bigskip -The command "\cr" is generally known. Moreover OPmac defines following similar -commands: +Apart from "l", "r", "c" declarators, you can use the "p{}" declarator +which declares the column of given width. More preciselly, a long text in +the table cell is printed as an paragraph with given width. +To avoid the problems with narrow left-right aligned paragraphs you can write +"p{\raggedright}", then the paragraph will be only left aligned. + +An arbitrary part of the "" can be repeated by a "" +prefixed. For example ``"3c"'' means ``"ccc"'' or ``"c 3{|c}"'' means +``"c|c|c|c"''. Note that spaces in the are ignored and you +can use them in +order to more legibility. + +The command "\cr" used in the "" part of the table (the end row +separator) is generally known. +Moreover OPmac defines following similar commands: \begitems * "\crl" \dots\ the end of the row with a horizontal line after it. * "\crli" \dots\ like "\crl" but the horizontal line doesn't intersect the vertical double lines. * "\crlli" \dots\ like "\crli" but horizontal line is doubled. +* "\crlp{}" \dots\ like "\crli" but the lines are drawn only in the +columns mentioned in comma separated "" of their numbers. +The "" can include "-" declarators, for example +"\crlp{1-3,5}" is equal to "\crlp{1,2,3,5}". \enditems The "\tskip" command works like the "\noalign{\vskip}" @@ -811,39 +827,39 @@ with their default values: If you do "\def\tabiteml{$\enspace}\def\tabitemr{\enspace$}" then the "\table" acts like \LaTeX's array environment. +If there is an item which spans to more than one column in the table then you can use +"\multispan{}" macro from plain \TeX{} or "\mspan[]{}" +from OPmac, which spans columns and formats the by the +. The must include exactly one letter ``"c"'' or +``"l"'' or ``"r"'' and may include characters ``"|"'' +for vertical rules. If your table includes vertical rules and you want to +create continuous vertical rules by "\mspan", then use rules in +only after ``"c"'', ``"l"'' or ``"r"'' letter in "\mspan" . The +exception is only in the case when "\mspan" includes first +column and the table have rules on the left side. The example of "\mspan" usage is below. + The "\frame{}" makes a frame around "". You can put the whole "\table" into "\frame" if you need double-ruled border of the table. Example: \begtt -\frame{\table{|c||l||r|}{\crl - \multispan3\vrule\hss\bf Title\hss \vrule\tabstrut \crl - \noalign{\kern\hhkern}\crli +\frame{\table{|c||l||r|}{ \crl + \mspan3[|c|]{\bf Title} \crl \noalign{\kern\hhkern}\crli first & second & third \crlli seven & eight & nine \crli}} \endtt % creates the following result: -\bigskip -\frame{\table{|c||l||r|}{\crl - \multispan3\vrule\hss\bf Title\hss \vrule\tabstrut \crl - \noalign{\kern\hhkern}\crli +%\bigskip +\hfil\frame{\table{|c||l||r|}{\crl + \mspan3[|c|]{\bf Title} \crl \noalign{\kern\hhkern}\crli first & second & third \crlli seven & eight & nine \crli}} \bigskip -The "c", "l" and "r" are default letters but you can define -more such letters by "\def\tabdeclare{##}". For -example: - -\begtt -\newdimen\Pwidth -\def\tabdeclareP {\enskip\vtop{\hsize=\Pwidth \rightskip=0pt plus1fil - \baselineskip=1.2em\lineskiplimit=0pt\noindent##\tabstrutA}\hss\enskip} -\endtt -% -declares the letter P which means the tabular column with "\vtop"s. This is -similar to \LaTeX's parbox. +The "c", "l", "r" and "p" are default letters but you can define +more such letters by "\def\tabdeclare{##}". The +technical documentation "opmac-d.pdf" describes this feature more preciselly. The rule width of tables (and implicit width of all "\vrule"s and "\hrule"s) can be set by the command "\rulewidth=". The default value given diff --git a/Master/texmf-dist/doc/cstex/opmac-u.pdf b/Master/texmf-dist/doc/cstex/opmac-u.pdf index 1989b2b57e0..a65f94ff528 100644 Binary files a/Master/texmf-dist/doc/cstex/opmac-u.pdf and b/Master/texmf-dist/doc/cstex/opmac-u.pdf differ diff --git a/Master/texmf-dist/doc/cstex/opmac-u.tex b/Master/texmf-dist/doc/cstex/opmac-u.tex index b06b913b1c8..a4450421637 100644 --- a/Master/texmf-dist/doc/cstex/opmac-u.tex +++ b/Master/texmf-dist/doc/cstex/opmac-u.tex @@ -971,23 +971,48 @@ Uvedený příklad povede na následující výsledek: \medskip Ve skutečnosti výsledek nebude uprostřed řádku, ale tam, kam "\table" -napíšete. Kromě písmen "c", "l", "r" se v mohou objevit znaky -\uv{svislítko}, které vymezují svislou čáru mezi sloupci. +napíšete. -V datové části musí být tolik sloupců, kolik jich bylo deklarováno. +Kromě písmen "c", "l", "r" se v mohou objevit znaky +\uv{svislítko}, které vymezují svislou čáru mezi sloupci. +Dále kromě deklarátorů jednotlivých sloupců "c", "l", "r" je v OPmac od verze Jun +2017 připraven deklarátor "p{}", který vymezí sloupec +tabulky s pevnou šířkou sloupce . Delší text se formátuje jako odstavec +dané šířky bez odstavcové zarážky, kratší jednořádkový text je vlevo. Například +"p{42mm}" +vytvoří sloupec pro text široký 42\,mm. Při velmi úzkých sloupcích nastávají +obvykle potíže s formátováním odstavce do bloku. V takovém případě můžete +hned za přidat třeba "\raggedright" a odstavec bude formátován +s~nezarovnaným pravým okrajem, například "p{42mm\raggedright}". + +V je možné místo opakování stejného deklarátoru použít číslo +následované deklarátorem, tedy třeba "4c" je totéž jako "cccc". Opakovat se +mohou celé úseky , pokud za číslem pokračuje úsek ve svorkách. +Například "c 3{|c}" je totéž jako "c|c|c|c". Mezery v~ se ignorují a +je možné je použít pro zvýšení přehlednosti. + +V datové části tabulky musí být přesně tolik sloupců, kolik jich bylo deklarováno. Jsou odděleny znakem "&" nebo symbolem pro konec řádku "\cr". Z toho vyplývá, že na každém řádku musí být v datové části o jeden znak "&" méně, než je počet sloupců. Nedodržíte-li toto pravidlo, \TeX{} se pomstí chybovou hláškou - \begtt ! Extra alignment tab has been changed to \cr \endtt % -nebo vytvoří nedomrlou tabulku. Místo symbolu pro konec řádku "\cr" je možno +nebo vytvoří nedomrlou tabulku. + +Místo symbolu pro konec řádku "\cr" je možno použít "\crl" (přidá jednoduchou vodorovnou čáru) nebo "\crll" (přidá dvojitou čáru), "\crli" (přidá čáru přerušenou svislými dvojitými linkami, tj.~{\bf i}nterrupted) a "\crlli" (přidá dvojitou čáru přerušenou svislými dvojitými linkami). +Konečně lze použít "\crlp{}", což vloží přerušovanou čáru jako +"\crli", ale jen ve sloupcích, jejichž pořadová čísla oddělená čárkami +jsou vyjmenována v . Takže třeba užití "\crlp{1,2}" v ukázce tabulky výše +(místo "\crli") vytvoří čáru jen pod slovy \uv{měsíc} a \uv{zboží}. V + lze používat zkratky typu "-", napříkad "1-3,5" je totéž jako +"1,2,3,5". + Těsně za "\cr", "\crl" atd. může následovat "\tskip", což vytvoří vertikální mezeru velikosti , přitom se nepřeruší svislé čáry v tabulce. @@ -1032,6 +1057,18 @@ Tip: vyzkoušejte si každá datová položka bude zpracována v matematickém módu. Makro "\table" se nyní podobá \LaTeX{}ovému prostředí "array". +Chcete-li přesáhnout jedním údajem více sloupců tabulky, můžete použít +plain\TeX{}ové makro "\multispan{<číslo>}" nebo makro z OPmac +"\mspan<číslo>[]{}", které přesáhne <číslo> sloupců a +v tomto prostoru formátuje podle , která obsahuje právě jedno +písmeno "c", "l" nebo "r" (označující způsob formátování) a dále může obsahovat +jeden nebo více znaků "|" (označující svislé čáry). Máte-li v tabulce svislé čáry +a chcete, aby svislé čáry z "\mspan" na ně navazovaly, pak použijte v +"\mspan" čáry před údajem "c", "l" nebo "r" jedině v případě, že "\mspan" zasahuje do +prvního sloupce. V ostatních případech používejte čáry výhradně na konci +, protože každý sloupec (s výjimkou prvního) přidává případné +svislé čáry jen na svůj konec. + Makro "\frame{}" vytvoří rámeček kolem s vnitřními okraji o~velikostech "\vvkern" a "\hhkern". Například "\frame{ahoj}" vytvoří \frame{ahoj}. Povšimněte si, že účaří rámovaného textu zůstalo nezměněno. Pokud chcete mít @@ -1041,32 +1078,35 @@ a nahoře a dole s~jednoduchými čarami a celou ji zabalit do "\frame": \vbox{ \begtt \frame{\table{|c||l||r||c|}{\crl - \multispan4\vrule\hss\bf Nadpis\hss \vrule\tabstrut \crl + \mspan4[|c|]{\bf Nadpis} \crl \noalign{\kern\hhkern}\crli první & druhý & třetí & čtvrtý \crlli sedmý & osmý & devátý & desátý \crli}} \endtt \par\removelastskip\vskip-8.3ex \hfill\frame{\table{|c||l||r||c|}{\crl - \multispan4\vrule\hss\bf Nadpis\hss \vrule\tabstrut \crl + \mspan4[|c|]{\bf Nadpis} \crl \noalign{\kern\hhkern}\crli první & druhý & třetí & čtvrtý \crlli sedmý & osmý & devátý & desátý \crli}} } \medskip -Kromě předdefinovaných znaků "c,l,r,|" se může v "" objevit -libovolný další symbol, stačí připravit -"\def\tabdeclare{##}". V technické dokumentaci je -příklad deklarace položky "P", která se při delším textu láme do více řádků. +Kromě předdefinovaných znaků "c,l,r,p" lze v "" "\table" použít +libovolný další symbol pro deklaraci sloupce, stačí připravit +"\def\tabdeclare{##}". Toto je podrobněji popsáno +v technické dokumentaci. Tloušťka všech čar je v \TeX{}u implicitně 0,4pt. OPmac umožňuje tuto implicitní tloušťku nastavit jinak pomocí "\rulewidth=<šířka>", například "\rulewidth=1.5pt". Další příklad použití makra "\table" najdete v sekci~\ref[cislovani]. -Pokud potřebujete vytvořit komplikovanější tabulky, nezbude než prostudovat -TBN, kapitolu čtvrtou. +Pokud potřebujete vytvořit komplikovanější tabulky, můžete se inspirovat +sekcí \ulink[http://petr.olsak.net/opmac-tricks.html]{OPmac triků} +věnující se tabulkám. Můžete si také definovat případně další vlastní tabulkové +deklarátory nebo použít přímo primitivní "\halign", což vyžaduje zřejmě +prostudovat TBN, kapitolu čtvrtou. \sec Vkládání obrázků -- cgit v1.2.3