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