texlive[46849] Master/texmf-dist/doc/cstex: cstex (5mar18)

commits+karl at tug.org commits+karl at tug.org
Mon Mar 5 23:11:58 CET 2018


Revision: 46849
          http://tug.org/svn/texlive?view=revision&revision=46849
Author:   karl
Date:     2018-03-05 23:11:57 +0100 (Mon, 05 Mar 2018)
Log Message:
-----------
cstex (5mar18)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/cstex/opmac-d.tex
    trunk/Master/texmf-dist/doc/cstex/opmac-u-en.pdf
    trunk/Master/texmf-dist/doc/cstex/opmac-u-en.tex
    trunk/Master/texmf-dist/doc/cstex/opmac-u.pdf
    trunk/Master/texmf-dist/doc/cstex/opmac-u.tex

Modified: trunk/Master/texmf-dist/doc/cstex/opmac-d.tex
===================================================================
--- trunk/Master/texmf-dist/doc/cstex/opmac-d.tex	2018-03-05 22:11:19 UTC (rev 46848)
+++ trunk/Master/texmf-dist/doc/cstex/opmac-d.tex	2018-03-05 22:11:57 UTC (rev 46849)
@@ -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 @@
 
 \inext{hyperlinks}{^^B\cbrace}{+-}
 
-Makro "\toclink" \xE8te parametr ve from\xE1tu \uv{\xE8\xEDslo kapitoly, sekce,
+Makro "\toclink" \xE8te parametr ve form\xE1tu \uv{\xE8\xEDslo kapitoly, sekce,
 kapitoly.sekce atd.}.
 Makro "\pglink" zase vy\xBEaduje sv\xF9j parametr jen jako \xE8\xEDslo strany. Kdy\xBE je dokument
 rozd\xEClen do blok\xF9 a v~ka\xBEd\xE9m je samostatn\xE9 \xE8\xEDslov\xE1n\xED stran, respektive bloky
@@ -2080,9 +2080,21 @@
 
 \inext{scantabdata}{^^B\cbrace}{++}
 
-OPmac p\xF8eddefinuje t\xF8i "<znaky>" pro "<deklaraci>", sice "<znaky>" "c", "l", "r"
-v makrech \db tabdeclarec, \db tabdeclarel, \db tabdeclarer.
+Pomocn\xE1 makra \db scantabdataA a \db scantabdataB
+\xF8e\xB9\xED p\xF8\xEDpady, kdy deklar\xE1tor nem\xE1 nebo m\xE1 parametr. D\xE1le makra
+\db scantabdataC a \db scantabdataD  se staraj\xED o p\xF8\xEDpadn\xE9 opakov\xE1n\xED \xFAseku
+deklarace.
 
+\inext{scantabdataA}{^^B\cbrace}{++}
+
+OPmac p\xF8eddefinuje \xE8ty\xF8i "<deklar\xE1tory>" pro sloupce tabulky, sice "<znaky>"
+"c", "l", "r", "p" v~makrech \db tabdeclarec, \db tabdeclarel, \db
+tabdeclarer a \db paramtabdeclarep. 
+Je-li deklar\xE1tor bez parametru, je t\xF8eba definovat "\tabdeclare<znak>" a
+je-li s parametrem, je t\xF8eba definovat "\paramtabdeclare<znak>".
+V p\xF8\xEDpad\xEC typu "p" p\xF8id\xE1v\xE1me na konec odstavce (do posledn\xEDho \xF8\xE1dku) strut
+nulov\xE9 v\xFD\xB9ky, ale hloubku m\xE1 podle "\tabstrutA".
+
 \inext{tabdeclarec}{\empty}{+-}
 
 Makro \db unsskip vkl\xE1dan\xE9 na konec ka\xBEd\xE9 datov\xE9 polo\xBEky odebere mezeru,
@@ -2114,21 +2126,22 @@
 \inext{addtabitem}{\empty}{+-}
 
 Ne\xBE se pust\xEDme do v\xFDkladu dal\xB9\xEDch maker, p\xF8edvedeme p\xF8\xEDklad, ve kter\xE9m je
-definov\xE1no dal\xB9\xED p\xEDsmeno "P" pro "<deklaraci>". P\xEDsmeno "P" vymez\xED 
-tabulkovou polo\xBEku, je\xBE m\xE1 stanovenou \xB9\xED\xF8ku a del\xB9\xED text se l\xE1me 
-do v\xEDce \xF8\xE1dk\xF9. Je mo\xBEn\xE9 si vyzkou\xB9et t\xF8eba tento k\xF3d:
+definov\xE1n deklar\xE1tor "F" pro centrovanou polo\xBEku, kde text
+je v r\xE1me\xE8ku (deklar\xE1tor bez parametru) a d\xE1le definujeme analogii
+deklar\xE1toru "p" s parametrem (bude se jmenovat "V"), kter\xFD um\xEDst\xED odstavce
+r\xF9zn\xEC vysok\xE9 vedle sebe vertik\xE1ln\xEC centrovan\xEC.
 
 \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\xB9\xED text\xEDk, kter\xFD se nevejde na \xF8\xE1dek. \crl \tskip3pt
-   bb  & A tady je taky je n\xECco del\xB9\xEDho. \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\xB9\xED text & text \cr text & del\xB9\xED text}
+\endtt 
+
 Pus\xBBme se nyn\xED do rozboru maker na ukon\xE8en\xED \xF8\xE1dk\xF9.
 Makro \db crl p\xF8id\xE1 \xE8\xE1ru pomoc\xED "\noalign". Makro \db crll p\xF8id\xE1 dvojitou
 \xE8\xE1ru pomoc\xED "\noalign".
@@ -2157,6 +2170,14 @@
 
 \inext{tskip}{\empty}{+-}
 
+Makro \db mspan "<\xE8\xEDslo>[<deklarace>]{<text>}" p\xF8ekon\xE1 "<\xE8\xEDslo>" sloupc\xF9 a
+d\xE1le "<text>" v tomto prostoru form\xE1tuje podle "<deklarace>". K tomu \xFA\xE8elu
+provede "\multispan" pomoc\xED "\loop" v \db mspanA a d\xE1le p\xF8iprav\xED t\xEClo
+form\xE1tovac\xEDho makra postupn\xFDm \xE8ten\xEDm deklarace pomoc\xED \db mspanB. V z\xE1v\xECru
+je toto t\xEClo pou\xBEito v~makru "\tmpa", kter\xE9 je nakonec spu\xB9t\xECno.
+
+\inext{mspan}{\empty}{+-}
+
 Glob\xE1ln\xED zm\xECna \xB9\xED\xF8ek v\xB9ech linek tvo\xF8en\xFDch pomoc\xED "\vrule" a "\hrule" je
 provedena makry \db rulewidth a \db rulewidthA. My\xB9lenka je dokumentov\xE1na v
 TBN na str.~328.

Modified: trunk/Master/texmf-dist/doc/cstex/opmac-u-en.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/cstex/opmac-u-en.tex
===================================================================
--- trunk/Master/texmf-dist/doc/cstex/opmac-u-en.tex	2018-03-05 22:11:19 UTC (rev 46848)
+++ trunk/Master/texmf-dist/doc/cstex/opmac-u-en.tex	2018-03-05 22:11:57 UTC (rev 46849)
@@ -766,8 +766,7 @@
 
 \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 @@
 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 @@
    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{<size>}" 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{<size>\raggedright}", then the paragraph will be only left aligned.
 
+An arbitrary part of the "<declaration>" can be repeated by a "<number>"
+prefixed. For example ``"3c"'' means ``"ccc"'' or ``"c 3{|c}"'' means
+``"c|c|c|c"''. Note that spaces in the <declaration> are ignored and you 
+can use them in
+order to more legibility.
+ 
+The command "\cr" used in the "<data>" 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{<list>}" \dots\ like "\crli" but the lines are drawn only in the
+columns mentioned in comma separated "<list>" of their numbers.
+The "<list>" can include "<from>-<to>" declarators, for example
+"\crlp{1-3,5}" is equal to "\crlp{1,2,3,5}". 
 \enditems
 
 The "\tskip<dimen>" command works like the "\noalign{\vskip<dimen>}" 
@@ -811,13 +827,23 @@
 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{<number>}" macro from plain \TeX{} or "\mspan<number>[<declaration>]{<text>}"
+from OPmac, which spans <number> columns and formats the <text> by the
+<declaration>. The <declaration> 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" <declaration>. 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{<text>}" makes a frame around "<text>". 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
@@ -824,27 +850,17 @@
 %
 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 <declaration> letters but you can define
-more such letters by "\def\tabdeclare<letter>{<left>##<right>}". For
-example:
+The "c", "l", "r" and "p" are default <declaration> letters but you can define
+more such letters by "\def\tabdeclare<letter>{<left>##<right>}". The
+technical documentation "opmac-d.pdf" describes this feature more preciselly.
 
-\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 rule width of tables (and implicit width of all "\vrule"s and "\hrule"s)
 can be set by the command "\rulewidth=<dimen>". The default value given 
 by \TeX{} is 0.4pt.

Modified: trunk/Master/texmf-dist/doc/cstex/opmac-u.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/cstex/opmac-u.tex
===================================================================
--- trunk/Master/texmf-dist/doc/cstex/opmac-u.tex	2018-03-05 22:11:19 UTC (rev 46848)
+++ trunk/Master/texmf-dist/doc/cstex/opmac-u.tex	2018-03-05 22:11:57 UTC (rev 46849)
@@ -971,23 +971,48 @@
 \medskip
 
 Ve skutečnosti výsledek nebude uprostřed řádku, ale tam, kam "\table"
-napíšete. Kromě písmen "c", "l", "r" se v <deklaraci> mohou objevit znaky
+napíšete. 
+
+Kromě písmen "c", "l", "r" se v <deklaraci> 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{<rozměr>}", který vymezí sloupec
+tabulky s pevnou šířkou sloupce <rozměr>. 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 <rozměr> přidat třeba "\raggedright" a odstavec bude formátován 
+s~nezarovnaným pravým okrajem, například "p{42mm\raggedright}".
 
-V datové části musí být tolik sloupců, kolik jich bylo deklarováno.
+V <deklaraci> 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 <deklarace>, pokud za číslem pokračuje úsek ve svorkách.
+Například "c 3{|c}" je totéž jako "c|c|c|c".  Mezery v~<deklaraci> 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{<seznam>}", což vloží přerušovanou čáru jako
+"\crli", ale jen ve sloupcích, jejichž pořadová čísla oddělená čárkami 
+jsou vyjmenována v <seznamu>. 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
+<seznamu> lze používat zkratky typu "<od>-<do>", napříkad "1-3,5" je totéž jako
+"1,2,3,5".
+
 Těsně za "\cr", "\crl" atd. může následovat "\tskip<dimen>",
 což vytvoří vertikální mezeru velikosti <dimen>, přitom se nepřeruší svislé
 čáry v tabulce.
@@ -1032,6 +1057,18 @@
 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>[<deklarace>]{<text>}", které přesáhne <číslo> sloupců a <text>
+v tomto prostoru formátuje podle <deklarace>, 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
+<deklarace>, protože každý sloupec (s výjimkou prvního) přidává případné
+svislé čáry jen na svůj konec.
+
 Makro "\frame{<text>}" vytvoří rámeček kolem <textu> 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,7 +1078,7 @@
 \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}}
@@ -1048,7 +1085,7 @@
 \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}}
@@ -1055,10 +1092,10 @@
 }
 \medskip
 
-Kromě předdefinovaných znaků "c,l,r,|" se může v "<deklaraci>" objevit
-libovolný další symbol, stačí připravit 
-"\def\tabdeclare<symbol>{<vlevo>##<vpravo>}". 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 "<deklaraci>" "\table" použít
+libovolný další symbol pro deklaraci sloupce, stačí připravit 
+"\def\tabdeclare<symbol>{<vlevo>##<vpravo>}". 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
@@ -1065,8 +1102,11 @@
 "\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ů



More information about the tex-live-commits mailing list