summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/cstex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-03-05 22:11:57 +0000
committerKarl Berry <karl@freefriends.org>2018-03-05 22:11:57 +0000
commitb9f3cc768394b195b6ea6598ec3d47ef3e68f0bb (patch)
tree4013f99025a35411c67550396f2a5b3d67b1af13 /Master/texmf-dist/doc/cstex
parentbb7ef4b993327dd47fb8f1848e1603f93f12eb64 (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')
-rw-r--r--Master/texmf-dist/doc/cstex/opmac-d.tex53
-rw-r--r--Master/texmf-dist/doc/cstex/opmac-u-en.pdfbin238427 -> 240216 bytes
-rw-r--r--Master/texmf-dist/doc/cstex/opmac-u-en.tex64
-rw-r--r--Master/texmf-dist/doc/cstex/opmac-u.pdfbin273342 -> 276587 bytes
-rw-r--r--Master/texmf-dist/doc/cstex/opmac-u.tex66
5 files changed, 130 insertions, 53 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 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 @@ petenho znaku ukld do "\tabdata" odpovdajc sek skuten deklarace pro
\inext{scantabdata}{^^B\cbrace}{++}
-OPmac peddefinuje ti "<znaky>" pro "<deklaraci>", sice "<znaky>" "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 "<deklartory>" pro sloupce tabulky, sice "<znaky>"
+"c", "l", "r", "p" v~makrech \db tabdeclarec, \db tabdeclarel, \db
+tabdeclarer a \db paramtabdeclarep.
+Je-li deklartor bez parametru, je teba definovat "\tabdeclare<znak>" a
+je-li s parametrem, je teba definovat "\paramtabdeclare<znak>".
+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 @@ nm pedchz dal "\vrule". Pokud ano, vlo dodatenou mezeru
\inext{addtabitem}{\empty}{+-}
Ne se pustme do vkladu dalch maker, pedvedeme pklad, ve kterm je
-definovno dal psmeno "P" pro "<deklaraci>". 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 poteba vrtit "\tabstrutA" do pvodnho stavu.
\inext{tskip}{\empty}{+-}
+Makro \db mspan "<slo>[<deklarace>]{<text>}" pekon "<slo>" sloupc a
+dle "<text>" v tomto prostoru formtuje podle "<deklarace>". 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
--- a/Master/texmf-dist/doc/cstex/opmac-u-en.pdf
+++ b/Master/texmf-dist/doc/cstex/opmac-u-en.pdf
Binary files 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{<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,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{<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
%
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:
-
-\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 <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.
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
diff --git a/Master/texmf-dist/doc/cstex/opmac-u.pdf b/Master/texmf-dist/doc/cstex/opmac-u.pdf
index 1989b2b57e0..a65f94ff528 100644
--- a/Master/texmf-dist/doc/cstex/opmac-u.pdf
+++ b/Master/texmf-dist/doc/cstex/opmac-u.pdf
Binary files 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 <deklaraci> 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 <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 <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 @@ 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>[<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,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 "<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
"\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ů