texlive[54650] Master: optex, with move to doc/luatex/optex

commits+karl at tug.org commits+karl at tug.org
Sat Apr 11 23:25:25 CEST 2020


Revision: 54650
          http://tug.org/svn/texlive?view=revision&revision=54650
Author:   karl
Date:     2020-04-11 23:25:25 +0200 (Sat, 11 Apr 2020)
Log Message:
-----------
optex, with move to doc/luatex/optex

Modified Paths:
--------------
    trunk/Master/texmf-dist/tex/luatex/optex/colors.opm
    trunk/Master/texmf-dist/tex/luatex/optex/fnotes.opm
    trunk/Master/texmf-dist/tex/luatex/optex/fonts-opmac.opm
    trunk/Master/texmf-dist/tex/luatex/optex/graphics.opm
    trunk/Master/texmf-dist/tex/luatex/optex/lists.opm
    trunk/Master/texmf-dist/tex/luatex/optex/makeindex.opm
    trunk/Master/texmf-dist/tex/luatex/optex/multicolumns.opm
    trunk/Master/texmf-dist/tex/luatex/optex/optex.ini
    trunk/Master/texmf-dist/tex/luatex/optex/others.opm
    trunk/Master/texmf-dist/tex/luatex/optex/output.opm
    trunk/Master/texmf-dist/tex/luatex/optex/parameters.opm
    trunk/Master/texmf-dist/tex/luatex/optex/sections.opm
    trunk/Master/texmf-dist/tex/luatex/optex/slides.opm
    trunk/Master/texmf-dist/tex/luatex/optex/styles.opm
    trunk/Master/texmf-dist/tex/luatex/optex/verbatim.opm
    trunk/Master/tlpkg/libexec/ctan2tds

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/luatex/optex/
    trunk/Master/texmf-dist/doc/luatex/optex/README
    trunk/Master/texmf-dist/doc/luatex/optex/op-demo.tex
    trunk/Master/texmf-dist/doc/luatex/optex/op-letter.tex
    trunk/Master/texmf-dist/doc/luatex/optex/op-ring.png
    trunk/Master/texmf-dist/doc/luatex/optex/op-slides.tex
    trunk/Master/texmf-dist/doc/luatex/optex/optex-doc.pdf
    trunk/Master/texmf-dist/doc/luatex/optex/optex-doc.tex
    trunk/Master/texmf-dist/doc/luatex/optex/slides-bg.png

Removed Paths:
-------------
    trunk/Master/texmf-dist/doc/latex/optex/

Added: trunk/Master/texmf-dist/doc/luatex/optex/README
===================================================================
--- trunk/Master/texmf-dist/doc/luatex/optex/README	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/luatex/optex/README	2020-04-11 21:25:25 UTC (rev 54650)
@@ -0,0 +1,42 @@
+OpTeX: the LuaTeX format based on Plain TeX and OPmac
+
+Author: Petr Olsak, <petr at olsak.net>
+
+This software is in public domain.
+
+See http://petr.olsak.net/optex
+
+History:
+
+<0.08> \numberedpar implmented. \emergencystretch=20pt added as default. 
+       \inoval, \incircle, \clipinoval, \clipincircle imlemented. 
+       \puttext, \putpic x,y instead -y,x (incompatible change!) 
+       footnotes have separated color stack now. 
+       \fnotelinks implemented.
+       Lists by \begitems...\enditems improved (\novspaces \_vspacehalf, \ilevel).
+<0.07> demos: op-letter.tex and op-slides.tex added.
+       \inkinspic, \transformbox, \slides added.
+       documentation improved and updated.
+<0.06> tables re-implemented, opmac-rest removed.
+       footnotes, marginal notes reimplemented.
+       sections.opm, graphics.opm, colors.opm, languages re-implemented
+       Cite-bib re-implemented.
+       Index, sorting re-implemented.
+<0.05> \boldmath reimplemented
+       \fontcolor, \letterspacing implemented
+       font catalogue improved
+<0.04> references.opl, hyperlinks.opl re-implemented.  
+       \fontfam, f-* rewritten: no usage of boundary "..." in \_fontnamegen
+       \fnote{...} corrected: (parameter is not really parameter)
+       verbatim.opl re-implemented + doc added
+       file-ref.opl implemented (new \_Xrefversion{3})
+       bugfixing
+<0.03> optex-doc optex.1 included,
+       verbatim.opm re-implmented,
+       math-unicode implemented,
+       usebib.opm + bib-style.opm included
+       \catcodetable stack implemented
+       bugfixing of macros.
+       catcodes.opl: removed, one can use \catcodetable, ... primitives,
+       pdfuni-string: lua code for lua5.3 fixed.
+<0.02> Released.


Property changes on: trunk/Master/texmf-dist/doc/luatex/optex/README
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/luatex/optex/op-demo.tex
===================================================================
--- trunk/Master/texmf-dist/doc/luatex/optex/op-demo.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/luatex/optex/op-demo.tex	2020-04-11 21:25:25 UTC (rev 54650)
@@ -0,0 +1,127 @@
+%% This is part of OpTeX project, see http://petr.olsak.net/optex
+
+\fontfam[LMfonts]              % Default font family: Latin Modern
+
+\margins/1 a5 (1,1,1,1.4)cm    % A5 paper + 1cm margins
+\typosize[9/10.5]              % 9pt font / 10.5pt baselineskip
+\parindent=10pt                % typesetting parameters
+\hyperlinks \Blue\Blue         % active hyperlinks
+\activettchar`                 % in-text verbatim by `...`
+\everyintt={\Red}              % in-text verbatim Red
+\enquotes                      % use \"text" for English quotation  
+
+\tit Demonstration
+
+\nonum\notoc\sec Contents
+
+\maketoc  % Table of Contents is auto-generated here
+
+\sec Lists
+
+The lists have to be surrounded by `\begitems`
+and `\enditems` sequences.
+
+\begitems
+* First item.
+* Second item.
+  \begitems \style i
+    * Nested item list,
+    * numbered by roman numerals.
+  \enditems
+* Last item.
+\enditems
+
+\secc Title of\nl Subsection
+
+The subsection text\dots
+
+\sec References
+
+There is a numbered equation. 
+The number is auto-generated by `\eqmark` sequence.
+$$\label[my-eq]
+  a^2 + b^2 = c^2  \eqmark
+$$
+We can refer to Equation~\ref[my-eq]
+on page~\pgref[my-eq].
+We can refer to Table~\ref[my-tab] in
+Section~\ref[tab-sec] too. And Figure~\ref[my-pic]
+is on page~\pgref[my-pic].
+
+\sec Hyperlinks
+
+You can refer to \url{http://petr.olsak.net} using `\url`.
+Or use `\ulink` if the raw URL needs to be hidden:
+\ulink[http://petr.olsak.net/optex]{\OpTeX/ page}.
+The parameter text is colorized and it becomes 
+an active link if the `\hyperlinks` sequence
+is used at the beginning of the document.
+Internal links are activated too.
+
+\sec[tab-sec] Tables 
+
+The `\table` sequence can be used 
+instead of \"low level" `\halign`.
+The following table is framed by `\frame` sequence 
+in order to get a double frame.
+
+\bigskip
+\caption/t [my-tab]  Testing table.
+\cskip
+\centerline{%
+   \frame{\table{|r|c|l|}{\crl
+           \bf Title A & \bf Title B & \bf Title C \crll
+           first & second & third \cr
+           next  & text  & last  \crl }}}
+
+\sec Images
+
+The images (PDF, JPG, PNG, TIFF) can be inserted 
+by `\inspic` sequence. The `\caption` 
+can be added if you need to refer to a figure.
+
+\label[my-pic]
+\centerline {\picwidth=2.7cm \inspic{op-ring.png}}
+\cskip
+\caption/f The nonempty ideal of a simple ring --
+           the ring itself.
+
+\sec Verbatim
+
+In-text verbatim is surrounded by the character declared
+by `\activettchar` sequence. The listing can be surrounded
+by `\begtt` and `\endtt` sequences
+\begtt
+This is verbatim.
+  All characters are printed $$, \, # etc.
+\endtt
+or it can be included by `\verbinput` from external file.
+
+\verbinput (98-100) op-demo.tex
+
+\sec Math
+
+The Math alphabets
+`\mit`, `\cal`, `\script`, `\frak`, `\bbchar`, `\bi`
+are provided. For example:
+$$
+  {\bi A} = \pmatrix {\cal C  & \script C \cr
+                      \frak M & \bbchar R }.  
+$$
+Hundreds of AMS symbols are available:
+$\sphericalangle, \boxplus, \Cup, \Cap, \ldots$
+
+\sec Others
+
+The `\fontfam` command selects a desired family of fonts.
+The `\typosize` or `\typoscale` sequences set the size
+and baselineskip of used fonts (including math fonts).
+The `\fnote` generates a footnote\fnote{Like this} and
+`\mnote` generates a margin note. 
+The `\margins` sets margins and paper dimensions.
+The `\cite` sequence can be used for bibliographic citations.
+The `\bib` sequence creates one bibliography record. Or 
+you can use `\usebib` for direct access to the {\tt.bib} files. 
+The list of features does not end here\dots
+
+\bye


Property changes on: trunk/Master/texmf-dist/doc/luatex/optex/op-demo.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/luatex/optex/op-letter.tex
===================================================================
--- trunk/Master/texmf-dist/doc/luatex/optex/op-letter.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/luatex/optex/op-letter.tex	2020-04-11 21:25:25 UTC (rev 54650)
@@ -0,0 +1,41 @@
+%% This is part of OpTeX project, see http://petr.olsak.net/optex
+
+\letter         % \letter OpTeX style activated
+\fontfam[bonum]
+\cslang
+
+\address
+  Vážený pan
+  Mgr. Bořek Byrokrat
+  ředitel Ústavu pro další možnosti
+  Úřední 789
+  123 45 Praha 1
+
+\hfill V Praze dne \today
+
+\subject Žádost o možnost další možnosti
+
+Vážený pane řediteli
+
+na základě Vašeho dopisu č.j.~123456/78-dat a elektronické výzvy si dovoluji 
+Vás požádat o prozkoumání mé možnosti další možnosti. 
+Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
+eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
+veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
+commodo consequat. 
+
+Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
+eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
+veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
+commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit
+esse cillum dolore eu fugiat nulla pariatur. 
+
+S úctou
+
+\hfill \address
+  {\it Petr Olšák}
+  specialista na \TeX/
+  Ulice 12345
+  Praha 13
+
+\bye


Property changes on: trunk/Master/texmf-dist/doc/luatex/optex/op-letter.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/luatex/optex/op-ring.png
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/luatex/optex/op-ring.png
===================================================================
--- trunk/Master/texmf-dist/doc/luatex/optex/op-ring.png	2020-04-11 15:57:15 UTC (rev 54649)
+++ trunk/Master/texmf-dist/doc/luatex/optex/op-ring.png	2020-04-11 21:25:25 UTC (rev 54650)

Property changes on: trunk/Master/texmf-dist/doc/luatex/optex/op-ring.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/luatex/optex/op-slides.tex
===================================================================
--- trunk/Master/texmf-dist/doc/luatex/optex/op-slides.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/luatex/optex/op-slides.tex	2020-04-11 21:25:25 UTC (rev 54650)
@@ -0,0 +1,288 @@
+%% This is part of OpTeX project, see http://petr.olsak.net/optex
+
+\slides   % OpTeX slides style activated
+
+\catcode`<=13                 % special printing of <text>
+\def<#1>{\hbox{$\langle$\it#1\/$\rangle$}}
+\everyintt={\catcode`\<=13}
+
+\hyperlinks\Blue\Blue         % hyperlinks are used in the title page
+\backgroundpic{slides-bg.png} % background picture
+
+\activettchar`                % inline verbatim
+\enquotes                     % English quotes \"..."
+
+\slideshow %------------------------------------------------------------
+
+
+\tit \OpTeX/ slides
+
+\subtit Petr Olšák\nl petr at olsak.net
+
+\subtit\rm \url{http://petr.olsak.net/optex}
+
+\pg; %------------------------------------------------------------------
+
+\sec Basics
+
+* The the simple document looks like:
+
+\begtt 
+\slides       % style initialized
+%\wideformat  % 16:9
+\slideshow    % partially uncovering ideas
+
+\sec First slide
+text
+\pg;
+
+\sec Second slide
+text
+\pg.
+\endtt
+
+* If `\slideshow` is missing or commented out then 
+  \"partially uncovering ideas" (see later) are deactivated. It is useful 
+  for printing.
+* The `\slideshow` must be the last command in the declaration part of the
+  document.
+* By default, the slides have A5 landscape format. 
+  You can declare `\wideformat`. Then the height is the same
+  but width is 263\,mm, i.\,e.~the ratio width:height is 16:9.
+
+\pg; %------------------------------------------------------------------
+
+\sec Title slide
+
+* Title of the document (used at the first slide) is created
+  by `\tit Title` (terminated by end of line).
+* The `\subtit Author name etc.`\ (terminated by end of line)
+  can be used after `\tit` at the first slide.
+* You can use `\nl` for new line in paragraphs or titles.
+
+\sec Default design
+
+* The paragraph texts are ragged right.
+* Titles, subtitles and section titles are centered.
+* The `\sec` and `\secc` are printed without numbers.
+* Paragraph indentation is zero. There is a little vertical space between
+  paragraphs.
+* The Heros font family (aka Helvetica) is initialized as default.\nl 
+  Sans-serif FiraMath font for math typesetting is used.
+* The items in lists are started by blue square (`\type X` and `\type x` ).
+
+\pg; %------------------------------------------------------------------
+
+\sec One slide (one page)
+
+* Top level item list is activated by default. The asterisk `*` opens 
+  new item at the top level list.
+* Nested items lists (second and more level) should be created in
+  the `\begitems`\dots`\enditems` environments.
+* Each slide (page) must be terminated by `\pg;` command.
+* Lats slide must be terminated by `\pg.` command or by `\bye`.
+
+\begtt 
+\sec My ideas
+
+* First idea
+* Second idea
+  \begitems
+  * First sub-idea
+  * Second sub-idea
+  \enditems
+* Final idea
+\endtt
+
+* Note: each page is processed in a group, so: put your own definitions 
+  (if~exist) before `\slideshow` or use `\global` assignment.
+
+\pg; %------------------------------------------------------------------
+
+\sec Partially uncovering ideas
+
+* The control sequence `\pg` must be followed by:\pg+
+\begitems
+* the character `;` -- normal next page,\pg+
+* the character `.` -- the end of the document,\pg+
+* the character `+` -- next page keeps the same text
+  and a next text is added (usable for partially uncovering of ideas).\pg+ 
+\enditems
+
+* Summary:
+\begtt
+\pg;    ... next page
+\pg.    ... the end of the document
+\pg+    ... uncover next text at the same page
+\endtt
+\pg+
+
+* When `\slideshow` is not declared then `\pg+` is deactivated.\pg+
+* The `\pg+` creates a new \"virtual page", so the current paragraph is
+  terminated.
+
+\pg; %------------------------------------------------------------------
+
+\sec Example with partially uncovering ideas
+
+The previous page was created by:
+
+\begtt
+\sec Partially uncovering ideas
+
+* The control sequence `\pg` must be followed by:\pg+
+
+\begitems
+* the character `.` -- normal next page,\pg+
+* the character `;` -- the end of the document,\pg+
+* the character `+` -- next ... \pg+
+\enditems
+
+* Summary
+...
+* When `\slideshow` is not declared 
+  then `\pg+` is deactivated.\pg+
+* The `\pg+` creates a new \"virtual page", 
+  so the current paragraph is terminated.
+\pg;
+\endtt
+
+\pg; %------------------------------------------------------------------
+
+\sec Notes
+
+* When `\slideshow` is active then you cannot reference sections by 
+  hyperlinked `\ref`. Only `\pgref` works (and goes to the last layer
+  of the referenced page).
+* If the text overfull the page (slide) then it follows to the next page without
+  saying explicitly `\pg;`. But `\slideshow` cannot work in such case.\pg+
+
+\sec More about design
+
+* You can use `\backgroundpic{<image-file>}` for putting an image to the backgroud.
+* You can re-declare `\footline` or re-define internal macros for design as 
+  you wish.
+* You can put the images or text wherever using `\putimege` or `\puttext`
+  macros...
+
+\pg; %------------------------------------------------------------------
+
+\sec Putting images and texts wherever
+
+* `\puttext <right> <up> {<text>}` puts a <text> to the desired place:
+  It moves the current point <right> and <up>, puts the <text> and returns
+  back, so the typesetting continues from previous position. The parameters
+  <right> and <up> are dimensions. For example
+
+\begtt
+\puttext 0mm 50mm {\Red HELLO}
+\endtt
+
+  \puttext 0mm 50mm {\Red HELLO}
+  prints red HELLO, as shown here.\pg+
+
+* `\putpic <right> <up> <width> <height> {<image-file>}`
+  puts the image with desired <width> and <height> at the position like 
+  `\puttext` puts the text.
+
+  \putpic .8\hsize 20mm 30mm \nospec {op-ring.png}
+* The ring above is the result of 
+
+\begtt
+\putpic .8\hsize 20mm 30mm \nospec {op-ring.png} 
+\endtt
+  %
+  used at beginning of this paragraph.\pg+
+* Use `\nospec` for <width> or <height> of the image if you don't want to specify both
+  dimensions (because you don't want to change the image aspect ratio).
+
+\pg; %------------------------------------------------------------------
+
+\sec Limits of the \code{\\pg+} sequence
+
+* The \code{\\pg+} sequence (partially uncovering ideas) cannot be used inside
+  a~group.
+* The exception is the nested environment `\begitems...\enditems`.
+* The `\pg+` always finalizes the current paragraph.
+  It is impossible to hide only a part of horizontal mode.\pg+
+
+\sec The \code{\\layers}\,...\code{\\endlayers} environment
+
+If you really need something unsupported by `\pg+` then you can use 
+
+\begtt \catcode`\<=13
+\layers <number>
+<layered text>
+\endlayers
+\endtt 
+
+* The <layered text> should include conditions like
+  `\ifnum\layernum...` or `\ifcase\layernum`. 
+  It is printed <number> times to more slide pages (layers) with the same
+  surrounding text. See next page... 
+
+\pg; %------------------------------------------------------------------
+
+\sec Example of \code{\\layers} environment
+
+The `\slides` style provides a shortcut `\use` and a macro `\pshow` (means
+partially show):
+
+\begtt
+\def\use#1#2{\ifnum\layernum#1\relax#2\fi}
+\def\pshow#1{\use{=#1}\Red \use{<#1}\Transparent \ignorespaces}
+\endtt
+
+The `{\pshow<num> <text>}` prints <text> in Red when current layer is equal
+to <num> or it prints <text> normally when current layers is greater than <num>.
+The transparent (invisible) font is used in other cases.
+
+The following dance:
+\layers 3
+{\pshow2 Second text.} {\pshow3 Third text.} {\pshow1 First text.} 
+\endlayers
+\pg+
+
+was generated by
+
+\begtt
+\layers 3
+{\pshow2 Second text.} {\pshow3 Third text.} {\pshow1 First text.} 
+\endlayers
+\endtt
+
+\pg+
+* The <layered text> is treated as macro parameter. So, you cannot use verbatim
+  nor `\sec` titles here. Maximal one `\layers` environment can be per one 
+  page (terminated by `\pg+` or `\pg;` or `\pg.`
+
+\pg; %------------------------------------------------------------------
+
+\sec Comparison \OpTeX/ slides with Beamer\fnote{\url{http://www.ctan.org/pkg/beamer}}
+
+The \LaTeX{} package {\bf\Blue Beamer} gives much more features and many themes
+are prepared for Beamer, {\bf\Red but}
+\pg+
+* the user of Beamer is forced to {\em program} his/her document using 
+  dozens of \code{\\begin{foo}} and \code{\\end{foo}} and many another
+  programming constructions,\pg+
+* plain \TeX{} gives you a possibility to simply 
+  {\em write} your document with minimal markup. The result is more compact.
+  You can concentrate to the contents of your document, not to the
+  programming syntax.\pg+
+* User needs to read 250 pages of doc for understanding Beamer,\pg+
+* on the other hand, you need to read only ten 
+  slides\fnote{this eleventh slide isn't counted}
+  and you are ready to use {\bf\Blue\OpTeX/ slides}.
+
+\pg; %------------------------------------------------------------------
+
+\null
+\vskip2cm
+\centerline{\typosize[35/40]\bf Thanks for your attention}\pg+
+
+\vskip2cm
+\centerline{\Blue\typosize[60/70]\bf Questions?}
+
+\pg. %----------------------------- THE END ----------------------------
+


Property changes on: trunk/Master/texmf-dist/doc/luatex/optex/op-slides.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/luatex/optex/optex-doc.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/luatex/optex/optex-doc.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/luatex/optex/optex-doc.pdf	2020-04-11 15:57:15 UTC (rev 54649)
+++ trunk/Master/texmf-dist/doc/luatex/optex/optex-doc.pdf	2020-04-11 21:25:25 UTC (rev 54650)

Property changes on: trunk/Master/texmf-dist/doc/luatex/optex/optex-doc.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/luatex/optex/optex-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/luatex/optex/optex-doc.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/luatex/optex/optex-doc.tex	2020-04-11 21:25:25 UTC (rev 54650)
@@ -0,0 +1,1824 @@
+
+\fontfam[LMfonts]
+\typosize[11/13]
+\enlang
+\margins/1 a4 (2,2,2,2)cm
+
+\catcode`<=13
+\def<#1>{\hbox{$\langle$\it#1\/$\rangle$}}
+\everyintt={\catcode`\<=13}
+\everytt=\everyintt
+\enquotes
+
+\def\new{\mnote{\Red$\blacktriangleleft$}}
+\fixmnotes\right
+
+\activettchar`
+
+\hyperlinks{\Blue}{\Green}
+\insertoutline{CONTENTS} \outlines{0} 
+
+
+\tit \OpTeX/\nl Format Based on Plain \TeX/ and OPmac\fnotemark1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\hfill Version 0.08
+
+\centerline{\it Petr Olšák, 2020}
+
+\bigskip
+\centerline{\url{http://petr.olsak.net/optex}}
+
+\fnotetext {The OPmac package is a set of simple additional macros to Plain \TeX{}. It
+enables users to take advantage of basic \LaTeX/ functionality but keeps
+Plain \TeX/ simplicity. See
+\url{http://petr.olsak.net/opmac-e.html} for more information about it.
+For OPmac users: the red triangle {\Red$\blacktriangleleft$} in the right margin
+means that there is a difference from standard OPmac features.}
+
+\notoc\nonum \sec Contents
+\maketoc
+
+\nonum \sec Introduction
+%%%%%%%%%%%%
+
+\OpTeX/ is \LuaTeX/ format with Plain \TeX/ and OPmac. Only \LuaTeX/ engine
+is supported. The main goal of \OpTeX/ is:
+
+\begitems
+* \OpTeX/ keeps the simplicity (like in Plain \TeX/ and OPmac macros).
+* There is no old obscurities concerning with various 8-bit encodings and
+  various engines.
+* \OpTeX/ provides a powerful font selection system (for Unicode font
+  families, of course).
+* \OpTeX/ supports hyphenations of all languages installed in your \TeX/ system.
+* All features from OPmac macros are copied.
+* Macros are documented in the same place where code is (macros for printing
+  such documentation will come in the future).
+* User name space of control sequences is separated from internal name space
+  of \OpTeX/ and primitives (`\foo` versus `\_foo`).
+\enditems
+
+\OpTeX/ should be a modern Plain \TeX/ with power from OPmac (fonts selection
+system, colors, external graphics, references, hyperlinks, indexing,
+bibliography, ...) with preferred Unicode fonts.
+
+If you need to customize your document or you need to use something
+very specific, then you can copy relevant parts of \OpTeX/ macros into your macro
+file and do changes of these macros here. This is significant difference from
+\LaTeX/ or ConTeXt, which are an attempt to create a new user level with a
+plenty of non-primitive parameters and syntax hiding \TeX/ internals.
+The macros from \OpTeX/ are simple and straightforward because they solve only
+what is explicitly needed, they does not create a new user level for
+controlling your document over \TeX/.
+And you can use \OpTeX/ macros, understand them an modify them.
+
+\OpTeX/ offers a markup language for authors of texts (like \LaTeX),
+i.\,e.\ the fixed set of tags to define the structure of the document. This
+markup is different from the \LaTeX{} markup. It may offer to write the
+source text of the document somewhat clearer and more attractive. 
+
+\new 
+{\bf Disclaimer:} This software is under construction. It is possible
+that some features documented here will be changed in future. 
+
+This manual desribes \OpTeX/ features only. We suppose that user knows \TeX/
+basic principles. They are described in many books. You can see a short
+document \ulink[http://petr.olsak.net/ftp/olsak/optex/tex-nutshell.pdf]
+{\TeX/ in nutshell} too.
+
+
+\sec Starting with \OpTeX/
+%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\new
+\OpTeX/ is compiled as a format for \LuaTeX/. Maybe there is a command
+`optex` in your \TeX/ distribution. Then you can write into command line
+
+\begtt
+optex document
+\endtt
+%
+You can try to process `optex op-demo` or `optex optex-doc`.
+
+If there is no `optex` command, see more information about installation
+\OpTeX/ at \url{http://petr.olsak.net/optex}. 
+
+A minimal document should be
+
+\begtt
+\fontfam[LMfonts]
+Hello World! \bye
+\endtt
+
+The first line `\fontfam[LMfonts]` tells that Unicode Latin Modern 
+fonts (derived from Computer Modern) are used. If you omit this line then
+preloaded Latin Modern fonts are used but preloaded fonts cannot be in
+Unicode\fnote
+{This is a technical limitation of \LuaTeX/ for fonts downloaded in formats:
+only 8bit fonts can be preloaded.}.
+So the sentence `Hello World` will be OK without the first line, but you 
+cannot print such sentence in another languages (for example `Ahoj světe!`) 
+where Unicode fonts are needed
+because of the characters like `ě` are not mapped correctly in preloaded
+fonts.
+
+A somewhat larger example with common settings should be:
+
+\begtt \catcode`!=0
+\fontfam[Termes]   % selecting Unicode font family Termes (section !ref[fontfam])
+\typosize[11/13]   % setting the basic font size and the baselineskip (sec. !ref[sizes])
+\margins/1 a4 (1,1,1,1)in   % setting 1in margins for A4 paper (section !ref[marg])
+\cslang            % Czech hyphenation patterns (section !ref[lang])
+
+Tady je text.
+\bye
+\endtt
+%
+You can look at `op-demo.tex` file for more examples.
+
+
+\sec Page layout
+%%%%%%%%%%%%%%%%
+
+\secc[marg] Setting the margins
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\OpTeX/ declares paper formats a4, a4l (landscape~a4), a5, a5l, b5, letter and
+user can declare another own format by `\sdef`:
+
+\begtt
+\sdef{_pgs:b5l}{(250,176)mm} 
+\sdef{_pgs:letterl}{(11,8.5)in}
+\endtt
+
+The `\margins` command declares margins of the document. This command have
+the following parameters:
+
+\begtt
+\margins/<pg> <fmt> (<left>,<right>,<top>,<bot>)<unit>
+  example:
+\margins/1 a4 (2.5,2.5,2,2)cm
+\endtt
+
+Parameters are:
+
+\begitems
+* <pg> \dots\ `1` or `2` specifies one-page or two-pages design.
+* <fmt> \dots\ paper format (a4, a4l, a5, letter, etc. or user defined).
+* <left>, <right>, <top>, <bot> \dots\ gives the amount of left, right,
+      top and bottom margins.
+* <unit> \dots\ unit used for values <left>, <right>, <top>, <bot>.
+\enditems
+
+Each of the parameters <left>, <right>, <top>, <bot> can be empty.
+If both <left> and <right> are nonempty then `\hsize` is set. Else `\hsize`
+is unchanged. If both <left> and <right> are empty then typesetting area is
+centered in the paper format. The analogical rule works when <top> or <bot>
+parameter is empty (`\vsize` instead `\hsize` is used). Examples:
+
+\begtt
+\margins/1 a4 (,,,)mm   % \hsize, \vsize untouched, 
+                        % typesetting area centered
+\margins/1 a4 (,2,,)cm  % right margin set to 2cm
+                        % \hsize, \vsize untouched, vertically centered
+\endtt
+
+If `<pg>=1` then all pages have the same margins. If `<pg>=2` then the
+declared margins are true for odd pages. The margins at the even pages are
+automaticaly mirrored in such case, it means that <left> is replaced by 
+<right> and vice versa.
+
+The `<fmt>` can be also in the form `(<width>,<height>)<unit>` where `<unit>` is
+optional. If it is missing then `<unit>` after margins specification is
+used. For example:
+
+\begtt
+\margins/1 (100,200) (7,7,7,7)mm
+\endtt
+%
+declares the paper 100$\times$200\,mm with all four margins 7\,mm. The spaces
+before and after <fmt> parameter are necessary.
+
+The command `\magscale[<factor>]` scales the whole typesetting area. 
+\new The fixed point of such scaling is the upper left corner of the paper sheet. 
+Typesetting (breakpoints etc.) is unchanged. All units are relative after
+such scaling. Only paper formats dimensions stays unscaled. Example:
+
+\begtt
+\margins/2 a5 (22,17,19,21)mm
+\magscale[1414] \margins/1 a4 (,,,)mm
+\endtt
+%
+The first line sets the `\hsize` and `\vsize` and margins for final
+printing at a5 format. The setting on the second line centers the scaled 
+typesetting area to the true a4 paper while breaking points for paragraphs
+and pages are unchanged. It may be usable for 
+review printing. After review is done, the second line can be commented out.
+
+\secc Concept of default page
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\OpTeX/ uses for page design very similar \"output routine" like Plain
+\TeX/. There is `\headline` followed by \"page body" followed by
+`\footline`. The `\headline` is empty by default and it can be used
+for running headers repeated on each page. The `\footline` prints
+centered page number by default. You can set the `\footline` to empty
+using `\nopagenumbers` macro.
+
+The margins declared by `\margins` macro (documented in the previous
+section~\ref[marg]) is concerned to the page body,
+i.e.\ the `\headline` and `\footline` are placed to the top and bottom
+margins.
+
+The distance between the `\headline` and the top of the page body is given by
+`\headlinedist` register. The distance between bottom of the page body and 
+the `\footline` is given by `\footlinedist`. The default values are:
+
+\begtt
+\headline = {}
+\footline = {\_hss\_rmfixed \_folio \_hss} % \folio expands to page number
+\headlinedist = 14pt % from baseline of \headline to top of page body 
+\footlinedist = 24pt % from last line in pagebody to baseline of footline
+\endtt
+
+The page body should be divided to top insertions (floating tables and
+figures) followed by a real text and followed by footnotes. 
+Typically, only real text is here. 
+
+The `\pgbackground` tokens list is empty by default but it can be used for
+creating background of each page (colors, picture, watermark for example).
+The macro `\draft` uses this register and puts big text DRAFT as watermark
+to each page. You can try it.
+
+More about the page layout is documented in files `parameters.opm` and 
+`output.opm`.
+
+\secc Footnotes and marginal notes
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+The Plain \TeX/'s macro `\footnote` can be used as usual. But a new macro 
+`\fnote{<text>}` is defined. The footnote mark is added automatically and it
+is numbered 
+\new
+on each chapter from one\fnote
+{You can declare `\fnotenumglobal` if you want footnotes numbered in whole
+document from one or `\fnotenumpages` if you want footnotes numbered at each
+page from one. Default setting is `\fnotenumchapters`}.
+The <text> is scaled to 80 \%. 
+User can redefine footnote mark or scaling, as shown in the file
+`fnotes.opm`.
+
+The `\fnote` macro is fully applicable only in \"normal outer" paragraph.
+It doesn't work inside boxes (tables for example). If you are solving such
+case you can use `\fnotemark<numeric-label>` inside the box: only the 
+footnote mark is generated here. When the box is finished you can use 
+`\fnotetext{<text>}`. This macro puts the <text> to the footnote. 
+The <numeric-label> have to be `1` if only one such command is in the box. 
+Second `\fnotemark` inside the same box have to have the parameter `2` etc. 
+The same number of `\fnotetext`s have to be written 
+after the box as the number of `\fnotemark`s inserted inside the box.
+Example:
+
+\begtt
+Text in a paragraph\fnote{First notice}...    % a "normal" footnote
+\table{...}{...\fnotemark1...\fnotemark2...}  % two footnotes in a box
+\fnotetext{Second notice}   
+\fnotetext{Third notice}
+...
+\table{...}{...\fnotemark1...}                % one footnote in a box
+\fnotetext{Fourth notice}
+\endtt
+
+The marginal note can be printed by the `\mnote{<text>}` macro. The <text>
+is placed to the right margin on the odd pages and it is placed to the left
+margin on the even pages. This is done after second \TeX{} run because the
+relevant information is stored in an external file and read from it again. 
+If you need to place the notes only to the fixed margin write 
+`\fixmnotes\right` or `\fixmnotes\left`.
+
+The <text> is formatted as a little paragraph with the maximal width
+`\mnotesize` ragged left on the left margins or ragged right on the right
+margins. The first line of this little paragraph has its vertical position
+given by the position of `\mnote` in the text. The exceptions are possible
+by setting the `\mnoteskip` register. You can implement such exceptions to
+each `\mnote` manually in final printing in order to margin notes do not
+overlap. The positive value of `\mnoteskip` shifts the note up and negative
+value shifts it down. For example `\mnoteskip=2\baselineskip \mnote{<text>}`
+shifts this (and only this) note two lines up.
+
+
+\sec Fonts
+%%%%%%%%%%
+
+\secc[fontfam] Font families
+%%%%%%%%%%%%%%%%%%%%%%%
+
+You can select the font family by `\fontfam[<Family-name>]`.
+The argument <Family-name> is case insensitive and spaces are ignored. So,
+`\fontfam[LM Fonts]` is equal to `\fontfam[LMfonts]` and it is equal
+to `\fontfam[lmfonts]`. Several aliases are prepared, thus 
+`\fontfam[Latin Modern]` can be used for loading Latin Modern family too.
+
+If you write `\fontfam[?]` then all font families registered in \OpTeX/ 
+are listed on the terminal and in the log file.
+If you write `\fontfam[catalog]` then a catalog of all fonts registered in
+\OpTeX/ and available in your \TeX/ system is printed. The instructions
+how to register your own font family is appended in such catalog.
+
+If the family is loaded then {\em font modifiers} applicable in such font family
+are listed on the terminal: (`\caps`, `\cond` for example).
+And there are four basic {\em variant selectors} (`\rm`, `\bf`, `\it`, `\bi`).
+The usage of variant selectors is the same as in Plain \TeX: 
+`{\it italics text}`, `{\bf bold text}` etc.
+
+The font modifiers (`\caps`, `\cond` for example) can
+be used before a basic variant selector and they
+can be (independently) combined: `\caps\it` or `\cond\caps\bf`. The
+modifiers keeps their internal setting until group ends or until another
+modifier which negates the previous feature is used. So
+`\caps \rm text \it text`  uses normal and italics in Caps and SmallCaps.
+
+\new
+There is one special variant selector `\currvar` which does not change the
+selected variant but reloads the font due to the (maybe newly
+specified) font modifier(s).
+
+The context between variants `\rm`--`\it` and `\bf`--`\bi` is kept by the `\em`
+macro (emphasize text).  
+It switches from current `\rm` to `\it`, from current `\it` to `\rm`, from
+current `\bf` to `\bi` and from current `\bi` to `\bf`.
+The italics correction `\/` is inserted automatically. Example:
+
+\begtt
+This is {\em important} text.     % = This is {\it important\/} text.
+\it This is {\em important} text. % = This is\/ {\rm important} text.
+\bf This is {\em important} text. % = This is {\bi important\/} text.
+\bi This is {\em important} text. % = This is\/ {\bf important} text.
+\endtt
+
+\new
+More about the \OpTeX/ font selection system is written the file
+`fonts-select.opm`. You can mix more font families in your document, you can
+declare your own variant selectors or modifiers etc.
+
+\secc[sizes] Font sizes
+%%%%%%%%%%%%%%%%%%%%%
+
+The command `\typosize[<fontsize>/<baselineskip>]` sets the font size of text and
+math fonts and baselineskip. If one of these two parameters is empty, the
+corresponding feature stays unchanged. Don't write the unit of these
+parameters. The unit is internally set to `\ptunit` which is 1pt by default.
+You can change the unit by the command `\ptunit=<something-else>`, 
+for instance `\ptunit=1mm` enlarges all font sizes declared by `\typosize`.
+Examples:
+
+\begtt
+\typosize[10/12]   % default of Plain TeX
+\typosize[11/12.5] % font 11pt, baseline 12.5pt
+\typosize[8/]      % font 8pt, baseline unchanged
+\endtt
+
+The commands for font size setting described in this section
+have local validity. If you put them into a group, 
+the settings are lost when the group is finished. If you set 
+something relevant with paragraph shape (baselineskip given by 
+`\typosize` for example) then you must first finalize the 
+paragraph and second to close the group: 
+`{\typosize[12/14] ...<text of paragraph>... \par}`. 
+
+The command
+`\typoscale[<font-factor>/<baselineskip-factor>]`
+sets the text and math fonts
+size and baselineskip as a multiple of the current fonts size and
+baselineskip. The factor is written in \"scaled"-like way, it means that 1000
+means factor one. The empty parameter is equal to the parameter 1000,
+i.e. the value stays unchanged. Examples:
+
+\begtt
+\typoscale[800/800]    % fonts and baselineskip re-size to 80 %
+\typoscale[\magstep2/] % fonts bigger 1,44times (\magstep2 expands to 1440)
+\endtt
+
+First usage of `\typosize` or `\typoscale` macro in your document sets so
+called {\em main values}, i.\,e.\ main font size and main baselineskip. They are internally 
+saved in registers `\mainfosize` and `\mainbaselineskip`. 
+
+\new
+The `\typoscale` command does scaling in respect to current values by default. 
+If you want to do it in respect to main values, type `\scalemain` immediately
+before `\typoscale` command.
+
+\begtt
+\typosize[12/14.4] % first usage in document, sets main values internally
+\typosize[15/18]   % bigger font
+\scalemain \typoscale[800/800] % reduces from main values, no from current.
+\endtt
+
+The size of the current font can be changed by the command
+`\thefontsize[<font-size>]` or can be rescaled by
+`\thefontscale[<factor>]`. These macros don't change math fonts sizes nor
+baselineskip.
+
+\new
+There is \"low level" `\setfontsize{<size-spec>}` command which behaves like
+a font modifier and sets given font size used by next variant selectors. 
+For example `\setfontsize{at15pt}\currvar` sets current variant to 15pt.
+
+If you are using a font family with \"optical sizes feature" (i.\,e.\ there
+are more recommended sizes of the same font which are not scaled
+linearly; good example is Computer Modern aka Latin Modern fonts) 
+then the recommended size is selected by all mentioned commands automatically. 
+
+More information about resizing of fonts is documented in `fonts-resize.opm`
+file. 
+
+\secc Typesetting math
+%%%%%%%%%%%%%%%%%%%%%
+
+\OpTeX/ preloads a collection of 7bit Computer Modern math fonts 
+and AMS fonts in its format. You can use them in any size and in the 
+`\boldmath` variant. 
+%
+\new 
+Most declared text font families (see `\fontfam` in the section~\ref[fontfam]) 
+are configured with recommended Unicode
+math font. This font is automaticlaly loaded unless you specify
+`\noloadmath` before first `\fontfam` command. See log file for more
+information about loading text font family and Unicode math fonts. If you
+prefer another Unicode math font, specify it by `\loadmath{[<font-file>]}`
+or `\loadmath{font-name}` before first `\loadfam` command.
+
+Hundreds math symbols and operators like in AMS\TeX/ are accessible. 
+For example  `\alpha` $\alpha$, `\geq`~$\geq$, `\sum` $\sum$, 
+`\sphericalangle` $\sphericalangle$, `\bumpeq`, $\bumpeq$. See AMS\TeX/
+manual for complete list of symbols.
+
+The following math alphabets are available:
+
+\begtt    \catcode`\$=3 \catcode`/=0 \medmuskip=0mu \adef{ }{ }
+\mit     % mathematical variables    $abc-xyz,ABC-XYZ$
+\it      % text italics              $/it abc-xyz,ABC-XYZ$
+\rm      % text roman                $/rm abc-xyz,ABC-XYZ$
+\cal     % normal calligraphics      $/cal ABC-XYZ$
+\script  % script                    $/script ABC-XYZ$
+\frak    % fracture                  $/frak abc-xyz,ABC-XYZ$
+\bbchar  % double stroked letters    $/bbchar ABC-XYZ$
+\bf      % sans serif bold           $/bf abc-xyz,ABC-XYZ$
+\bi      % sans serif bold slanted   $/bi abc-xyz,ABC-XYZ$
+\endtt
+
+The last two selectors `\bf` and `\bi` select the sans serif fonts in math regardless
+the current text font family. This is common notation for vectors and
+matrices. You can re-declare it, see the file `unimath-codes.opm` where math
+variants of `\bf` and `\bi` selectors are defined.
+
+The math fonts can be scaled by `\typosize` and `\typoscale` macros.
+Two math fonts collections are prepared: `\normalmath` for normal weight
+and `\boldmath` for bold. The first one is set by default.
+
+\new
+You can use `\mathbox{<text>}` inside math mode. It behaves as `{\hbox{<text>}}`
+(i.e. the <text> is printed in horizontal non-math mode)
+but the size of the <text> is adapted to the context of math size (text or script or
+scriptscript). 
+
+
+\sec Typical elements of document
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\secc[chap] Chapters and sections
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+The document can be divided into chapters, sections and subsections and titled
+by `\tit` command. The parameters are separated by the end of current line (no
+braces are used):
+
+\begtt
+\tit Document title <end of line>
+\chap Chapter title <end of line>
+\sec Section title <end of line>
+\secc Subsection title <end of line>
+\endtt
+
+If you want to write a title to more lines in your source file then you can
+use percent character before <end of line>. Such <end of line> is not
+scanned and reading of the title continues at next line.
+
+The chapters are automatically numbered by one number, sections by two numbers
+(chapter.section) and subsections by three numbers. If there are no chapters
+then section have only one number and subsection two.
+
+The implicit design of the titles of chapter etc.\ are implemented in the
+macros `\_printchap`, `\_printsec` and `\_printsecc`. A designer can simply change
+these macros if he/she needs another behavior.
+
+The first paragraph after the title of chapter, section and subsection is
+not indented but you can type `\let\_firstnoindent=\relax` if you need all
+paragraphs indented.
+
+If a title is so long then it breaks to more lines. It is better to hint the
+breakpoints because \TeX/ does not interpret the meaning of the title.
+User can put the `\nl` (it means newline) macro to the breakpoints.
+
+The chapter, section or subsection isn't numbered if the `\nonum` precedes.
+And the chapter, section or subsection isn't delivered to the table of
+contents if `\notoc` precedes.
+
+\secc[cap] Another numbered objects
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Apart from chapters, sections and subsections, there are another
+automatically numbered objects: equations, captions for tables and
+figures. The user can declare more numbered object.
+
+If the user writes the `\eqmark` as the last element of the display mode then
+this equation is numbered. The equation number is printed in brackets. This number
+resets in each section by default.
+
+If the `\eqalignno` is used, then user can put `\eqmark` to the last column
+before `\cr`. For example:
+
+\begtt
+\eqalignno{
+    a^2+b^2 &= c^2 \cr
+          c &= \sqrt{a^2+b^2} & \eqmark \cr}
+\endtt
+
+The next automatically numbered objects are captions which is tagged by `\caption/t` for
+tables and `\caption/f` for figures. 
+The caption text follows.
+The `\cskip` can be used between `\caption` text and the real object (table
+or figure). You can use two orders: `<caption>\cskip <object>` or 
+`<object>\cskip <caption>`.
+The `\cskip` creates appropriate vertical space between them. Example:
+
+\begtt
+\caption/t The dependency of the computer-dependency on the age.
+\cskip
+\noindent\hfil\table{rl}{
+    age   & value \crl\noalign{\smallskip}
+    0--1  & unmeasured \cr 
+    1--6  & observable \cr
+    6--12 & significant \cr
+   12--20 & extremal \cr
+   20--40 & normal \cr
+   40--60 & various \cr
+   60--$\infty$ & moderate}
+\endtt
+
+This example produces:
+
+\medskip
+\caption/t The dependency of the computer-dependency on the age.
+\cskip
+\noindent\hfil\table{rl}{
+                age   & value \crl\noalign{\smallskip}
+                0--1  & unmeasured \cr 
+                1--6  & observable \cr
+                6--12 & significant \cr
+               12--20 & extremal \cr
+               20--40 & normal \cr
+               40--60 & various \cr
+               60--$\infty$ & moderate}
+\medskip
+
+You can see that the word \"Table" followed by a number is added by the macro 
+`\caption/t`. 
+The caption text is centered. If it occupies more lines then the 
+last line is centered.
+
+The macro `\caption/f` behaves like `\caption/t` but it is intended for
+figure captions with independent numbering.
+The word (Table, Figure) depends on the actual selected language (see
+section~\ref[lang] about languages). 
+
+If you wish to make the table or figure as floating object, you need to use
+Plain \TeX/ macros `\midinsert` or `\topinsert` terminated by `\endinsert`.
+Example:
+
+\begtt
+\topinsert  % table and its caption is printed at the top of the current page
+   <caption and table>
+\endinsert
+\endtt
+
+\new
+There are five prepared counters `A`, `B`, `C`, `D` and `E`.
+They are reset in each chapter and section\fnote
+{This feature can be changed, see the `sections.opm` in the technical documentation.}.
+They can be used in context of `\numberedpar <letter>{<text>}` 
+macro. For example:
+\begtt
+\def\theorem    {\numberedpar A{Theorem}}
+\def\corollary  {\numberedpar A{Corollary}}
+\def\definition {\numberedpar B{Definition}}
+\def\example    {\numberedpar C{Example}}
+\endtt
+%
+Three independent numbers are used in this example. One for Theorems and Corollaries
+second for Definitions and third for Examples. The user can write
+`\theorem Let $M$ be...` and the new paragraph is started with the text:
+{\bf Theorem 2.3.1.} Let $M$ be... 
+You can add an optional parameter in brackets. For example, 
+`\theorem [(L'Hôpital's rule)] Let $f$, $g$ be...` 
+is printed like {\bf Theorem 2.4.2 (L'Hôpital's rule).} Let $f$, $g$ be...
+
+
+\secc References
+%%%%%%%%%%%%%%%
+
+Each automatically numbered object documented in
+sections \ref[chap] and \ref[cap] can be referenced 
+\new
+if optional parameter
+`[<label>]` is appended to `\chap`, `\sec`,
+`\secc`, `\caption/t`, `\caption/f` or `\eqmark`. The alternative syntax is
+to use `\label[<label>]` before mentioned commands (not necessarily directly
+before). The reference is realized by `\ref[<label>]` or `\pgref[<label>]`.
+Example:
+
+\begtt
+\sec[beatle] About Beatles
+
+\noindent\hfil\table{rl}{...} % the table
+\cskip
+\caption/t [comp-depend] The dependency of the computer-dependency on the age.
+
+\label[pythagoras]
+$$ a^2 + b^2 = c^2 \eqmark $$
+
+Now we can point to the section~\ref[beatle] on the page~\pgref[beatle] 
+or write something about the equation~\ref[pythagoras]. Finally there 
+is an interesting Table~\ref[comp-depend].
+\endtt
+
+If there are forward referenced objects then user have to run \TeX{} twice.
+During each pass, the working `*.ref` file (with references data) is created
+and this file is used (if it exists) at the beginning of the document.
+
+You can use `\label[<label>]` before `\theorem`, `\definition` (macros defined by
+`\numberedpar`) if you want to reference these numbered objects. 
+You can't use `\theorem[<label>]` because the optional parameter 
+is reserved to another purpose.
+
+You can create a reference to whatever else by commands
+`\label[<label>]\wlabel{<text>}`. The connection between <label> and
+<text> is established. The `\ref[<label>]` will print <text>.
+
+By default, labels are not printed, of course. But if you are preparing a
+draft version of document, you can declare `\showlabels`. The labels 
+are printed at their destination places after such declaration.
+
+
+\secc Hyperlinks, outlines
+%%%%%%%%%%%%%%%%%%%%%%%%%
+
+If the command `\hyperlinks <color-in> <color-out>` is used at the beginning of
+the document, then the following objects are hyperlinked in the PDF output:
+
+\begitems
+* numbers generated by `\ref` or `\pgref`,
+* numbers of chapters, sections and subsections in the table of contents,
+* numbers or marks generated by `\cite` command (bibliography references),
+* texts printed by `\url` or `\ulink` commands.
+\enditems
+
+The last object is an external link and it is colored by
+`<color-out>`. Others links are internal and they are colored by
+`<color-in>`. Example:
+
+\begtt
+\hyperlinks \Blue \Green % internal links blue, URLs green.
+\endtt
+
+You can use another marking of active links: by frames which are visible in
+the PDF viewer but invisible when the document is printed. The way to do it
+is to define the macros `\pgborder`, `\tocborder`, `\citeborder`,
+`\refborder` and `\urlborder` as the triple of RGB components of the used
+color. Example:
+
+\begtt
+\def\tocborder {1 0 0}  % links in table of contents: red frame
+\def\pgborder {0 1 0}   % links to pages: green frame
+\def\citeborder {0 0 1} % links to references: blue frame
+\endtt
+
+By default these macros are not defined. It means that no frames are created.
+
+The hyperlinked footnotes can be activated by `\fnotelinks <color-fnt> <color-fnf>`
+where footnote marks in text have `<color-fnt>` and the same footnote marks
+in footnotes have <color-fnf>. You can define relevant borders
+`\fntborder` and `\fnfborder` analogically as `\pgboreder` (for example).
+
+There are \"low level" commands to create the links. You can specify the
+destination of the internal link by `\dest[<type>:<label>]`. The
+active text linked to the `\dest` can be created by
+`\ilink[<type>:<label>]{<text>}`. The `<type>` parameter is one of
+the `toc`, `pg`, `cite`, `ref` or another special for your purpose. 
+These commands create internal links only when `\hyperlinks` is decared.
+
+The `\url` macro prints its parameter in `\tt` font and creates a potential
+breakpoints in it (after slash or dot, for example). If `\hyperlinks`
+declaration is used then the parameter of `\url` is treated as an external URL link.
+An example: `\url{http://www.olsak.net}` creates \url{http://www.olsak.net}.
+The characters \code{\%}, `\`, `#`, `{` and `}` have to be protected by
+backslash in the `\url` argument, the other special characters `~`,
+`^`, `&` can be written as single character\fnote
+{More exactly, there are the same rules as for \code{\\code} command, see
+section~\ref[verbatim].}.
+You can insert the `\|` command 
+in the `\url` argument as a potential breakpoint.
+
+If the linked text have to be different than the URL, you can use
+`\ulink[<url>]{text}` macro. For example:
+`\ulink[http://petr.olsak.net/optex]{\OpTeX/ page}`
+creates
+\ulink[http://petr.olsak.net/optex]{\OpTeX/ page}.
+
+The PDF format provides {\em outlines} which are notes placed in the special frame of
+the PDF viewer. These notes can be managed as structured and hyperlinked
+table of contents of the document. The command `\outlines{<level>}` creates
+such outlines from data used for table of contents in the document. The
+<level> parameter gives the level of opened sub-outlines
+in the default view. The deeper levels can be open by mouse click on the
+triangle symbol after that.
+
+\new
+If you are using a special macro in section titles then `\outlines` macro
+may crash. You must declare variant of the macro for outlines case which is
+expandable. Use `\regmacro` in such case. See the section \ref[toc] for more information
+about `\regmacro`.
+
+The command `\insertoutline{<text>}` inserts next entry into PDF outlines at
+the main level~0. These entries can be placed before table of contents (created
+by `\outlines`) or after it. Theirs hyperlink destination is in the place
+where  `\insertoutline` macro is used.
+
+\secc Lists 
+%%%%%%%%%%
+
+The list of items is surrounded by `\begitems` and `\enditems` commands.
+The asterisk (`*`) is active within this environment and it starts one item.
+The item style can be chosen by `\style` parameter written after `\begitems`:
+
+\begtt
+\style o % small bullet
+\style O % big bullet (default)
+\style - % hyphen char
+\style n % numbered items 1., 2., 3., ...
+\style N % numbered items 1), 2), 3), ...
+\style i % numbered items (i), (ii), (iii), ...
+\style I % numbered items I, II, III, IV, ...
+\style a % items of type a), b), c), ...
+\style A % items of type A), B), C), ...
+\style x % small rectangle
+\style X % big rectangle
+\endtt
+
+For example:
+
+\begtt
+\begitems
+* First idea
+* Second idea in subitems:
+  \begitems \style i
+  * First sub-idea
+  * Second sub-idea
+  * Last sub-idea
+  \enditems
+* Finito
+\enditems
+\endtt
+%
+produces:
+
+\begitems
+* First idea
+* Second idea in subitems:
+  \begitems \style i
+   * First sub-idea
+   * Second sub-idea
+   * Last sub-idea
+  \enditems
+* Finito
+\enditems
+
+Another style can be defined by the command `\sdef{_item:<style>}{<text>}`.
+Default item can be set by `\defaultitem={<text>}`.
+The list environments can be nested. Each new level of item is indented by
+next multiple of `\iindent` which is set to `\parindent` by default.
+The `\ilevel` register says what level of items is currently processed.
+Each `\begitems` starts `\everylist` tokens register. You can set, for
+example:
+\begtt
+\everylist={\ifcase\ilevel\or \style X \or \style x \else \style - \fi}
+\endtt
+
+You can say `\begitems \novspaces` if you don't want vertical spaces above
+and below the list.
+More information about design of lists of items should be found in the `lists.opm` file.
+
+\secc Tables
+%%%%%%%%%%%
+
+The macro `\table{<declaration>}{<data>}` provides similar <declaration>
+of tables as in \LaTeX: you can use letters `l`, `r`, `c`, each letter declares 
+one column (aligned to left, right, center respectively). 
+These letters can be combined by the `|` character (vertical line). Example
+
+\begtt
+\table{||lc|r||}{                  \crl
+   Month    & commodity  & price   \crli \tskip2pt
+   January  & notebook   & \$ 700  \cr
+   February & skateboard & \$ 100  \cr
+   July     & yacht      & k\$ 170 \crl}
+\endtt
+%
+generates the following result:
+
+\bigskip
+\noindent\hfil\table{||lc|r||}{    \crl
+   Month    & commodity  & price   \crli \tskip2pt
+   January  & notebook   &  \$ 700 \cr
+   February & skateboard &  \$ 100 \cr
+   July     & yacht      & k\$ 170 \crl}
+\bigskip
+
+Apart from `l`, `r`, `c` declarators, you can use the `p{<size>}` declarator
+which declares the column of given width. More precisely, a long text in
+the table cell is printed as an paragraph with given width.
+To avoid problems with narrow left-right aligned paragraphs you can write
+`p{<size>\raggedright}`, then the paragraph will be only left aligned.
+
+You can use `(<text>)` in the <declaration>. Then this text is applied in
+each line of the table. For example `r(\kern10pt)l` adds more 10\,pt space
+between `r` and `l` rows. 
+
+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 
+is generally known. It marks end row of the table. 
+Moreover \OpTeX/ 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>}` 
+after `\cr*` commands but it doesn't interrupt the vertical lines.
+
+\new
+You can use following parameters for the `\table` macro. Default values are listed
+too. 
+
+\begtt
+\everytable={}       % code used after settings in \vbox before table processing
+\thistable={}        % code used when \vbox starts, is is removed after using it
+\tabiteml={\enspace} % left material in each column
+\tabitemr={\enspace} % right material in each column
+\tabstrut={\strut}   % strut which declares lines distance in the table
+\tablinespace=2pt    % additional vertical space before/after horizontal lines
+\vvkern=1pt          % space between lines in double vertical line
+\hhkern=1pt          % space between lines in double horizontal line
+\endtt
+
+Example: if you do `\tabiteml={$\enspace}\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
+`\multispan{<number>}` macro from Plain \TeX{} can help you or, you can use
+`\mspan<number>[<declaration>]{<text>}`
+which spans <number> columns and formats the <text> by the
+<declaration>. The <declaration> must include a declaration of only one column
+with the same syntax as common `\table` <declaration>.
+If your table includes vertical rules and you want to
+create continuous vertical rules by `\mspan`, then use rule declarators `|`
+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
+  \mspan3[|c|]{\bf Title} \crl   \noalign{\kern\hhkern}\crli
+  first & second & third  \crlli
+  seven & eight  & nine   \crli}}
+\endtt
+%
+creates the following result:
+
+\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`, `r` and `p` are default \"declaration letters" but you can define
+more such letters by `\def\_tabdeclare<letter>{<left>##<right>}`. More about
+it is in technical documentation in the file `table.opm`.
+
+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.4\,pt.
+
+Many tips about tables can be seen on
+\url{http://petr.olsak.net/opmac-tricks-e.html}.
+
+\label[verbatim]\secc Verbatim
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+The display verbatim text have to be surrounded by the `\begtt` and
+`\endtt` couple. 
+The in-line verbatim have to be tagged (before and after) 
+by a character which is declared by
+`\activettchar<char>`. For example \code{\\activettchar`} 
+declares the character \code{`} 
+for in-line verbatim markup. 
+And you can use \code{`\\relax`} for
+verbatim `\relax` (for example).
+\new
+Another alternative of printing in-line
+verbatim text is `\code{<text>}` (see below). 
+
+If the numerical register `\ttline` is set to the non-negative value then
+display verbatim will number the lines. The first line has the number
+`\ttline+1` and when the verbatim ends then the `\ttline` value is equal to the
+number of last line printed. Next `\begtt...\endtt` environment will follow
+the line numbering. \OpTeX/ sets `\ttline=-1` by default.
+
+The indentation of each line in display verbatim is controlled by
+`\ttindent` register. This register is set to the `\parindent` by default.
+User can change values of the `\parindent` and `\ttindent` independently.
+
+The `\begtt` command starts internal group in which the catcodes are changed. 
+\new
+Then the `\everytt` tokens register is run. It is empty by default and user can
+control fine behavior by it. For example the catcodes can be reseted here. If
+you need to define active character in the `\everytt`, use `\adef` as in the
+following example:
+
+\begtt   \adef@{\string\endtt}
+\everytt={\adef!{?}\adef?{!}}
+\begtt
+Each occurrence of the exclamation mark will be changed to 
+the question mark and vice versa. Really? You can try it! 
+@
+\endtt
+%
+The `\adef` command sets its parameter as active {\it after\/}
+the value of `\everytt` is read. So you don't have to worry about active
+categories. 
+
+There is an alternative to `\everytt` named `\everyintt` which is used for
+in-line verbatim surrounded by an `\activettchar` or processed by the `\code`
+command.
+
+The `\everytt` is applied to all `\begtt...\endtt` environments (if it is not
+decared in a group). There are tips for such global `\everytt` definitions here:
+
+\begtt
+\everytt={\typosize[9/11]}      % setting font size for verbatim
+\everytt={\ttline=0}            % each listing will be numbered from one
+\everytt={\adef{ }{\char9251 }} % visualization of spaces (Unicode fonts)
+\endtt
+
+\new
+If you want to apply a special code only for one `\begtt...\endtt`
+environment then don't set any `\everytt` but put desired material at the 
+same line where `\begtt` is. For example:
+
+\begtt   \adef@{\string\endtt}
+\begtt   \adef!{?}\adef?{!}
+Each occurrence of ? will be changed to ! and vice versa. 
+@
+\endtt
+
+The in-line verbatim surrounded by an `\activettchar` doesn't work in
+parameter of macros and macro definitions, especially in titles declared by
+`\chap`, `\sec` etc. 
+\new
+You can use more robust command `\code{<text>}` in such
+situations, but you must escape following characters in the <text>:
+`\`, `#`, `%`, braces (if the braces are unmatched in the <text>), 
+and space or `^` (if there are more than one subsequent spaces or `^` in 
+the <text>). Examples:
+
+\begtt
+\code{\\text, \%\#} ... prints \text, %#
+\code{@{..}*&^$ $}  ... prints @{..}*&^$ $ without escaping, but you can
+                        escape these characters too, if you want.
+\code{a \ b}        ... two spaces between a  b, the second one must be escaped
+\code{xy\{z}        ... xy{z ... unbalanced brace must be escaped
+\code{^\^M}         ... prints ^^M, the second ^ must be escaped
+\endtt
+
+You can print verbatim listing from external files by `\verbinput` command. 
+Examples:
+
+\begtt
+\verbinput (12-42) program.c  % listing from program.c, only lines 12-42
+\verbinput (-60) program.c    % print from begin to the line 60
+\verbinput (61-) program.c    % from line 61 to the end
+\verbinput (-) program.c      % whole file is printed
+\verbinput (70+10) program.c  % from line 70, only 10 lines printed
+\verbinput (+10) program.c    % from the last line read, print 10 lines 
+\verbinput (-5+7) program.c   % from the last line read, skip 5, print 7
+\verbinput (+) program.c      % from the last line read to the end
+\endtt
+
+
+The `\ttline` influences the line numbering by the same way as in
+`\begtt...\endtt` environment. If `\ttline=-1` then real line numbers are
+printed (this is default). If \code{\\ttline<-1} then no line 
+numbers are printed.
+
+The `\verbinput` can be controlled by `\everytt`, `\ttindent` just like
+in `\begtt...\endtt`.
+
+
+\sec Autogenerated lists
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+\secc[toc] Table of contents
+%%%%%%%%%%%%%%%%%%%%%%
+
+The `\maketoc` command prints the table of contents of all `\chap`, `\sec`
+and `\secc` used in the document. These data are read from external `*.ref` file, so
+you have to run \TeX/ more than once (typically three times if the table of
+contents is at the beginning of the document). 
+
+The name of the section with table of contents is not printed. The direct usage
+of `\chap` or `\sec` isn't recommended here because the table of contents 
+is typically not referenced to itself. You can print the unnumbered and unreferenced
+title of the section by the code:
+
+\begtt
+\nonum\notoc\sec Table of Contents
+\endtt
+
+\new
+If you are using a special macro in section titles or chapter titles 
+and you need different behavior of such macro in other cases then use 
+`\regmacro{<case-toc>}{<case-mark>}{<case-outline>}`.
+The parameters are applied locally in given cases. The `\regmacro` can be
+used repeatedly: the parameters are accumulated (for more macros). 
+If a parameter is empty then original definition is used in given case.
+For example:
+
+\begtt
+% default value of \mylogo macro used in text and in the titles:
+\def\mylogo{\leavevmode\hbox{\Red{\it My}\Black{\setfontsize{mag1.5}\rm Lo}Go}}
+% another variants:
+\regmacro {\def\mylogo{\hbox{\Red My\Black LoGo}}} % used in TOC
+          {\def\mylogo{\hbox{{\it My}\/LoGo}}}     % used in running heads
+          {\def\mylogo{MyLoGo}}                    % used in outlines
+\endtt
+
+\secc Making the index 
+%%%%%%%%%%%%%%%%%%%%%
+
+The index can be included into document by `\makeindex` macro. No external
+program is needed, the alphabetical sorting are done inside \TeX/ at macro
+level.
+
+The `\ii` command (insert to index) declares the word separated by the space
+as the index item. This declaration is represented as invisible atom on the
+page connected to the next visible word. The page number of the page where
+this atom occurs is listed in the index entry. So you can type:
+
+\begtt
+The \ii resistor resistor is a passive electrical component ...
+\endtt
+
+You cannot double the word if you use the `\iid` instead `\ii`:
+
+\begtt
+The \iid resistor is a passive electrical component ...
+or:
+Now we'll deal with the \iid resistor .
+\endtt
+
+Note that the dot or comma have to be separated by space when `\iid` is
+used. This space (before dot or comma) is removed by the macro in 
+the current text.
+
+The multiple-words entries are commonly organized in the index by the format
+(for example): 
+
+\medskip
+
+linear~dependency  11, 40--50
+
+--- independency 12, 42--53
+
+--- space 57, 76
+
+--- subspace 58
+
+\medskip
+
+To do this you have to declare the parts of the index entries by the `/` separator.
+Example:
+
+\begtt
+{\bf Definition.}
+\ii linear/space,vector/space
+{\em Linear space} (or {\em vector space}) is a nonempty set of...
+\endtt
+
+The number of the parts of one index entry is unlimited. Note, that you can
+spare your typing by the comma in the `\ii` parameter. The previous example
+is equivalent to `\ii linear/space` `\ii vector/space`.
+
+Maybe you need to propagate to the index the similar entry to the
+linear/space in the form space/linear. You can do this by the shorthand `,@`
+at the end of the `\ii` parameter. Example:
+
+\begtt
+\ii linear/space,vector/space,@
+is equivalent to:
+\ii linear/space,vector/space \ii space/linear,space/vector
+\endtt
+
+If you really need to insert the space into the index entry, write `~`.
+
+If the `\ii` or `\iid` command is preceded by `\iitype <letter>`, then such
+reference (or more references generated by one `\ii`) has specified type.
+The page numbers of such references should be formatted
+specially in the index. \OpTeX/ implements only `\iitype b`, `\iitype i` and
+`\iitype u`. The page number in bold or in italics or underlined is printed
+in the index when these types are used. Default index type is empty, which
+prints page numbers in normal font. See \TeX/book index as an example.
+
+The `\makeindex` creates the list of alphabetically sorted index entries
+without the title of the section and without creating more columns. \OpTeX/
+provides another macros for more columns: 
+
+\begtt
+\begmulti <number of columns>
+<text>
+\endmulti
+\endtt
+The columns will be balanced. The Index can be printed by the following
+code:
+
+\begtt
+\sec Index
+\begmulti 3 \makeindex \endmulti
+\endtt
+
+Only \"pure words" can be propagated to the index by the `\ii` command. It
+means that there cannot be any macro, \TeX/ primitive, math selector etc.
+But there is another possibility to create such complex index entry. Use
+\"pure equivalent" in the `\ii` parameter and map this equivalent to the
+real word which is printed in the index by `\iis` command. Example:
+
+\begtt
+The \ii chiquadrat $\chi$-quadrat method is 
+...
+If the \ii relax `\relax` command is used then \TeX/ is relaxing.
+...
+\iis chiquadrat {$\chi$-quadrat}
+\iis relax {\code{\\relax}}
+\endtt
+%
+The `\iis <equivalent> {<text>}` creates one entry in the \"dictionary 
+of the exceptions". The sorting is done by the <equivalent> but the
+<text> is printed in the index entry list.
+
+The sorting rules when `\makeindex` runs depends on the current language. 
+See section~\ref[lang] about languages selection.
+
+\secc Bib\TeX/ing
+%%%%%%%%%%%%%%%%
+
+The command `\cite[<label>]` (or its variants of the type
+\hbox{`\cite[<label-1>,<label-2>,...,<label-n>]`})
+creates the citation in the form [42] (or [15,~19,~26]). 
+If `\shortcitations` is declared at the beginning of the document then 
+continuous sequences of numbers are re-printed like this: 
+\hbox{[3--5,~7,~9--11]}. If
+`\sortcitations` is declared then numbers generated by one `\cite` command
+are sorted upward.
+
+If `\nonumcitations` is declared then the marks instead numbers are generated
+depending on the used bib-style. For example the citations look like
+[Now08] or [Nowak, 2008].
+
+The `\rcite[<labels>]` creates the same list as `\cite[<labels>]` but without
+the outer brackets. Example: `[\rcite[tbn], pg.~13]` creates [4,~pg.13].
+
+The `\ecite[<label>]{<text>}` prints the `<text>` only, but the entry labeled
+<label> is decided as to be cited. If `\hyperlinks` is used then <text>
+is linked to the references list.
+
+You can define alternative formating of `\cite` command. Example:
+
+\begtt
+\def\cite[#1]{(\rcite[#1])}    % \cite[<label>] creates (27)
+\def\cite[#1]{$^{\rcite[#1]}$} % \cite[<label>] creates^{27}
+\endtt
+
+The numbers printed by `\cite` correspond to the same numbers generated in
+the list of references. 
+There are two possibilities to generate this
+references list:
+
+\begitems
+* Manually using `\bib[<label>]` commands.
+* By `\usebib/<type> (<style>) <bib-base>` command which reads `*.bib`
+  files directly. 
+\enditems
+
+\new
+Note that another two possibilities documented in OPmac (using external
+Bib\TeX/ program) isn't supported because Bib\TeX/ is old program which does not
+support Unicode. And Biber seems to be not compliant with Plain \TeX.
+
+\medskip\noindent
+{\bf References created manually using `\bib[<label>]` command.}
+
+\begtt  
+\bib [tbn] P. Olšák. {\it\TeX{}book naruby.} 468~s. Brno: Konvoj, 1997.
+\bib [tst] P. Olšák. {\it Typografický systém \TeX.}  
+           269~s. Praha: CSTUG, 1995.
+\endtt
+
+If you are using `\nonumcitations` then you need to declare the <marks>
+used by `\cite` command. To do it you must use long form of the `\bib`
+command in the format `\bib[<label>] = {<mark>}`. The spaces around
+equal sign are mandatory. Example:
+
+\begtt
+\bib [tbn] = {Olšák, 2001} 
+    P. Olšák. {\it\TeX{}book naruby.} 468~s. Brno: Konvoj, 2001.
+\endtt
+
+\noindent
+{\bf Direct reading of `.bib` files} is possible by `\usebib` macro.
+This macro reads and uses macro package `librarian.tex` by Paul Isambert. 
+The usage is:
+
+\begtt
+\usebib/c (<style>) <bib-base> % sorted by \cite-order (c=cite),
+\usebib/s (<style>) <bib-base> % sorted by style (s=style).
+% example:
+\usebib/s (simple) op-example
+\endtt
+
+The <bib-base> is one or more `*.bib` database source files (separated by
+spaces and without extension) and the <style> is the part of the filename
+`bib-<style>.opm` where the formatting of the references list is
+defined. \OpTeX/ supports `simple` or `iso690` styles. The behavior of
+`\usebib` is documented in `usebib.opm` and `bib-iso690.opm` files in detail.
+
+Not all records are printed from <bib-base> files: the command `\usebib`
+selects only such bib-records which were used in `\cite` or `\nocite`
+commands in your document. The `\nocite` behaves as `\cite` but prints
+nothing. It only tels that mentioned bib-record should be printed in the
+reference list. If `\notcite[*]` is used then all records from <bib-base>
+are printed.
+
+
+\sec Graphics
+%%%%%%%%%%%%%
+
+\secc Colors
+%%%%%%%%%%%
+
+\OpTeX/ provides a small number of color selectors: 
+{\Blue `\Blue`}, 
+{\Red `\Red`}, 
+{\Brown `\Brown`},
+{\Green `\Green`}, 
+{\Yellow `\Yellow`}, 
+{\Cyan `\Cyan`}, 
+{\Magenta `\Magenta`}, 
+{`\White`}, 
+{\Grey `\Grey`}, 
+{\LightGrey `\LightGrey`} and
+`\Black`. User can define more
+such selectors by setting four CMYK components 
+\new
+or three RGB components. For example
+
+\begtt
+\def \Orange {\setcmykcolor{0 0.5 1 0}}
+\def \Purple {\setrgbcolor{1 0 1}}
+\endtt
+
+\new
+The command `\morecolors` reads more definitions of color selectors 
+from \LaTeX/ file `x11nam.def`. There is about 300 color names like 
+`\DeepPink`, `\Chocolate` etc. If there are numbered variants of the same
+name, then you can append letters B, C, etc. to the name in \OpTeX/. For example 
+`\Chocolate` is Chocolate1, `\ChocolateB` is Chocolate2 etc.
+
+\new
+The color selectors work locally in groups by default but with limitations. See 
+the file `colors.opm` for more information.
+
+The colors `\Blue`, `\Cyan` etc. are defined with CMYK components using `\setcmykcolor`.
+But you can define a color with three RGB components too and `\morecolors`
+defines such RGB colors. By default, the color model isn't converted but only stored to
+PDF output for each used color by default. Thus, there may be a mix of color
+models in the PDF output which is not good idea. You can overcome this
+problem by declaration `\onlyrgb` or `\onlycmyk`. Then only selected color
+model is used for PDF output and if an used color is declared by another color
+model then it is converted.
+The `\onlyrgb` creates colors more bright (usable for computer
+presentations). On the other hand CMYK makes colors more true\fnote
+{Printed output is more equal to the monitor preview especialy if you are
+using ICC profile for your printer.} 
+for printing.
+
+\new
+You can define your color by a linear combination of previously defined colors using
+`\colordef`. For example:
+
+\begtt
+\colordef \myCyan {.3\Green + .5\Blue}  % 30 % green, 50 % blue, rest is white 
+\colordef \DarkBlue {\Blue + .4\Black}  % Blue mixed with 40 % of black 
+\colordef \myGreen{\Cyan+\Yellow}       % exact the same as \Green
+\colordef \MyColor {.3\Orange+.5\Green+.2\Yellow}
+\endtt
+%
+The linear combination is done in CMYK substractive color space by default 
+(RGB colors used in `\colordef` argument are converted first). 
+If the resulting component is greater than 1 then it is truncated to 1.
+If a convex linear combination (as in the last example above) is used then it
+emulates color behavior on a painter's palette.
+You can use `\rgbcolordef` instead `\colordef` if you want to mix colors 
+in additive RGB color space.
+
+More about colors, about CMYK versus RGB and
+about the `\colordef` command is written in the `colors.opm` file.
+
+\def\coloron#1#2#3{%
+   \setbox0=\hbox{#3}\leavevmode
+   {\localcolor\rlap{#1\strut \vrule width\wd0}#2\box0}%
+}
+The following example defines a macro which creates the
+\coloron\Yellow\Brown{colored text on the colored background}. Usage:
+`\coloron<background><foreground>{<text>}`
+
+The `\coloron` can be defined as follows:
+
+\begtt
+\def\coloron#1#2#3{%
+   \setbox0=\hbox{#3}\leavevmode
+   {\rlap{#1\strut \vrule width\wd0}#2\box0}%
+}
+\coloron\Yellow\Brown{The brown text on the yellow backround}
+\endtt
+
+\secc Images
+%%%%%%%%%%%
+
+The `\inspic {<filename>.<extension>}` or
+`\inspic <filename>.<extension><space>`
+inserts the picture stored in
+the graphics file with the name `<filename>.<extension>` to the document. 
+You can set the picture width by `\picw=<dimen>`
+before `\inspic` command which declares the width of the picture 
+The image files can be in the PNG, JPG, JBIG2 or PDF format. 
+
+The `\picwidth` is an equivalent register to `\picw`. Moreover there is an
+`\picheight` register which denotes the height of the picture. If both
+registers are set then the picture will be (probably) deformed. 
+
+The image files are searched in `\picdir`. This token list is empty 
+by default, this means that the image files are searched in the 
+current directory. Example: `\picdir={img/}` supposes that image files are
+in `img` subdirectory. Note: the directory name must end by `/` in `\picdir`
+declaration.
+
+Inkscape\fnote
+{A powerfull and free wysiwyg editor for creating vector graphics.} 
+is able to save a picture to PDF and labels of the picture to another
+file\fnote
+{Chose \"Omit text in PDF and create LaTeX file" option.}. 
+This second file should be read by \TeX/ in order to print labels
+in the same font as document font. \OpTeX/ supports this feature by
+`\inkinspic {<filename>.pdf}` command. It reads and displays both: PDF image
+and labes generated by Inkscape.
+
+If you want to create a vector graphics (diagrams, schema, geometry
+skicing) then you can do it in Wysiwyg graphics editor (Inkscape, Geogebra for
+example), export the result to PDF and include it by `\inspic`.
+If you want to \"programm" such pictures then Tikz package is recommended.
+It works in Plain \TeX. 
+
+\secc PDF transformations
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+All typesetting elements are transformed by linear
+transformation given by the current transformation matrix. The
+`\pdfsetmatrix {<a> <b> <c> <d>}` command makes the internal multiplication
+with the current matrix so linear transformations can be composed. 
+One linear transformation given by the `\pdfsetmatrix` above transforms
+the vector $[0,1]$ to $[<a>,<b>]$ and $[1,0]$ to $[<c>,<d>]$.
+The stack-oriented commands `\pdfsave` and `\pdfrestore` gives a possibility of
+storing and restoring the current transformation matrix and the current point.
+The position of the current point have to be the same from \TeX{}'s point of
+view as from transformation point of view when `\pdfrestore` is processed.
+Due to this fact the `\pdfsave\rlap{<transformed text>}\pdfrestore` 
+or something similar is recommended.
+
+\OpTeX/ provides two special transformation macros:
+
+\begtt
+\pdfscale{<horizontal-factor>}{<vertical-factor>} 
+\pdfrotate{<angle-in-degrees>}
+\endtt 
+
+These macros simply calls the properly `\pdfsetmatrix` command.
+
+It is known that the composition of transformations is not commutative. It
+means that the order is important. You have to read the transformation
+matrices from right to left. Example:
+
+\begtt
+First: \pdfsave \pdfrotate{30}\pdfscale{-2}{2}\rlap{text1}\pdfrestore
+      % text1 is scaled two times and it is reflected about vertical axis
+      % and next it is rotated by 30 degrees left.
+second: \pdfsave \pdfscale{-2}{2}\pdfrotate{30}\rlap{text2}\pdfrestore
+      % text2 is rotated by 30 degrees left then it is scaled two times
+      % and reflected about vertical axis.
+third: \pdfsave \pdfrotate{-15.3}\pdfsetmatrix{2 0 1.5 2}\rlap{text3}%
+       \pdfrestore % first slanted, then rotated by 15.3 degrees right
+\endtt
+%
+\par\nobreak\bigskip\smallskip
+This gives the following result. 
+First: \pdfsave \pdfrotate{30}\pdfscale{-2}{2}\rlap{text1}\pdfrestore
+second: \pdfsave \pdfscale{-2}{2}\pdfrotate{30}\rlap{text2}\pdfrestore
+third: \pdfsave \pdfrotate{-15.3}\pdfsetmatrix{2 0 1.5 2}\rlap{text3}\pdfrestore
+\par\nobreak\bigskip\penalty0%\bigskip
+
+You can see that \TeX/ knows nothing about dimensions of transfomed material,
+it treats it as with a zero dimension object. 
+\new
+This problem is solved by the `\transformbox{<transformation>}{<text>}` 
+macro which puts the transformed
+material to a box with relevant dimension. The <transfromation> parameter
+includes one or more transfromation commands `\pdfsetmatrix`, `\pdfscale`,
+`\pdfrotate` with their parameters. The <text> is transformed text.
+
+Example: `\frame{\transformbox{\pdfscale{1}{1.5}\pdfrotate{-10}}{moj}}`
+creates \frame{\transformbox{\pdfscale{1}{1.5}\pdfrotate{-10}}{moj}}.
+
+The `\rotbox{<deg>}{<text>}` is a shortcut for 
+`\transformbox{\pdfrotate{<deg>}}{<text>}`.
+
+\secc Ovals, circles
+%%%%%%%%%%%%%%%%%%%%
+
+\new
+The `\inoval{<text>}` creates a box like this: \inoval{text}. 
+Multiline text can be put in an oval by the command `\inoval{\vbox{<text>}}`.
+Local settings can be set by
+`\inoval[<settings>]{<text>}` or you can re-declare global settings by
+`\ovalparams={<settings>}`. The default settings are:
+
+\begtt
+\ovalparams={\roudness=2pt            % diameter of circles in the corners
+             \fcolor=\Yellow          % color used for filling oval
+             \lcolor=\Red             % line color used in the border
+             \lwidth=0.5bp            % line width in the border
+             \shadow=N                % use a shadow effect
+             \overlapmargins=N        % ignore margins by surrounding text
+             \hhkern=0pt \vvkern=0pt} % left-righ margin, top-bottom margin
+\endtt
+The total distance from text to oval boundary is `\hhkern+\roudness` at the left and right 
+sides and
+`\vvkern+\roundness` at the top and bottom sides of the text.
+
+If you need a setting for the `<text>` (color, size, font etc.), use
+`\oval{<text settings><text>}`.
+
+\new
+The `\incircle[\ratio=1.8]{<text>}` creates a box like this \incircle[\ratio=1.8]{text}.
+The `\ratio` is width/height. The usage is analogical like for oval. 
+The default settings of parameters are
+
+\begtt
+\circleparams={\ratio=1 \fcolor=\Yellow \lcolor=\Red \lwidth=0.5bp 
+               \shadow=N \ignoremargins=N \hhkern=2pt \vvkern=2pt}
+\endtt
+
+\new
+The macros `\clipinoval <x> <y> <width> <height> {<text>}`
+and `\clipincircle` (with the same parameters)
+print the `<text>` when a clipping path (oval or cirle) with given
+`<with>` and `<height>` shifted its center by `<x>` to right and by `<y>` to up
+is used. 
+The `\roundness=5mm` is default for `\clipingoval` and user can change it.
+Example:
+
+\begtt 
+\clipingcircle 3cm 3.5cm 6cm 7cm {\picw=6cm \inspic{myphoto.jpg}} 
+\endtt
+
+\secc Putting images and texts wherever
+
+\new
+The `\puttext <x> <y> {<text>}` puts the `<text>` shifted by `<x>` right and by
+`<y>` up from current point of typesetting and does'n not change the
+position of the current point. Assume coordinate system with origin in the
+current point. Then `\puttext <x> <y> {<text>}` puts the text at the
+coordinates `<x>`, `<y>`. More exactly the left edge of its baseline is at that
+position. 
+
+\new
+The `\putpic <x> <y> <width> <height> {<image>}` puts the `<image>` of given 
+`<width>` and `<height>` at given position (its left-bottom corner).
+You can write `\nospec` instead `<width>` or `<height>` if this parameter is
+not given.
+
+\sec Others
+%%%%%%%%%%%
+
+\secc[lang] Using more languages
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\OpTeX/ prepares hyphenation patterns for all languages if such patterns are
+available in your \TeX/ system. 
+\new
+Only USenglish patterns (original from Plain \TeX/) are preloaded.
+Hyphenation patterns of all another languages are loaded on demand when you first use
+the `\<iso-code>lang` command in your document. 
+For example `\delang` for German, `\cslang` for
+Czech, `\pllang` for Polish. The <iso-code> is a shortcut 
+of the language (mostly from ISO 639-1). 
+You can list all available languages by `\langlist` 
+macro. This macro prints now:
+
+\medskip
+{\typosize[9/11.5]\emergencystretch=4em \hbadness=2000
+\noindent \langlist
+\par}
+\medskip
+
+\new
+For compatibility with e-plain macros, there is the command
+`\uselanguege{<language>}`. The parameter <language> is long form of
+language name, i.e.\ `\uselanguage{Czech}` works the same as `\cslang`.
+The `\uselanguage` parameter is case insensitive.
+
+For compatibility with \csplain/, there are macros `\ehyph`, `\chyph`,
+`\shyph` which are equivalent to `\enlang`, `\cslang` and `\sklang`.
+
+You can switch between language patterns by `\<iso-code>lang` commands mentioned
+above. Default is `\enlang`.
+
+\OpTeX/ generates three words used for captions and titles in technical
+articles or books: \"Chapter", \"Table" and \"Figure". These words need to be known
+in used language and it depends on the previously used language selectors
+`\<iso-code>lang`. \OpTeX/ declares these words only for few languages:
+\new
+Czech, German, Spanish, French, Greek, Italian, Polish, Russian, Slovak and 
+English, If you need to use these words in another languages or you want to
+auto-generate more words in your macros, then you can declare it by 
+`\sdef` or `\_langw` commands as shown in the file `languages.opm`.
+
+The `\makeindex` command needs to know the sorting rules used in your language.
+\OpTeX/ defines only few language rules for sorting: Czech,
+Slovak and English. How to declare sorting rules for more languages are
+described in the file `makeindex.opm`.
+
+If you declare `\<iso-code>quotes`, then the control sequences `\"` and `\'`
+should be used like this: `\"<quoted text>"` or `\'<quoted text>'` 
+(note that the terminating character is the same but it isn't escaped).
+This prints language dependent normal or alternative quotes around 
+<quoted text>. The language is specified by <iso-code>. \OpTeX/ declares
+quotes only for Czech, German, Spanish, French, Greek, Italian, Polish, 
+Russian, Slovak and English (`\csquotes`, `\dequotes`, \dots, `\enquotes`). 
+You can simply define your own quotes as shown in `languages.opm` file.
+The `\"` is used for quotes visualy more similar to the `"` character which
+can be primary quotes or secondary quotes depending on the language rules.
+May be you want to alternate meaning of these two types of quotes. Use
+`\<isocode>quotes\altquotes` in such case.
+
+\secc Pre-defined styles
+%%%%%%%%%%%%%%%%%%%%%%%
+
+\OpTeX/ defines three style-declaration macros `\report`, `\letter` and
+`\slides`. You can use them at the beginning of your document if you are
+preparing these types of document and you don't need to create your own
+macros.
+
+The `\report` declaration is intended to create reports. It 
+sets default font size to 11\,pt and `\parindent` (paragraph indentation) to 1.2\,em.
+The `\tit` macro uses smaller font because we assume that \"chapter level"
+will be not used in reports. The first page has no page number, but next pages
+are numbered (from number~2). Footnotes are numbered from one in whole
+document. The macro `\author <authors><end-line>` can be used when 
+`\report` is declared. It prints `<authors>` in italics at center of the
+line. You can separate authors by `\nl` to more lines.
+
+The `\letter` declaration is intended to create letters. See an example in
+the file `op-letter.tex`. The `\letter` style sets default
+font size to 11\,pt and `\parindent` to 0\,pt. It sets half-line space
+between paragraphs. The page numbers are not printed. The `\subject` macro
+can be used, it prints the word \"Subject:" or \"Věc" (or something else
+depending on current language) in bold. Moreover, the `\address` macro
+can be used when `\letter` is declared. The usage of the `\address` macro
+looks like:
+
+\begtt
+\address
+  <first line of address>
+  <second line of address>
+  <etc.>
+  <empty line>
+\endtt
+
+It means that you need not to use any special mark at the end of lines: end
+of lines in the source file are the same as in printed output. The
+`\address` macro creates `\vtop` with address lines. The width of such
+`\vtop` is equal to the most wide line used in it. So, you can use
+`\hfill\address...` in order to put the address box to the right side of the
+document. Or you can use `<prefixed text>\address...` to put 
+`<prefixed text>` before first line of the address.
+
+The `\slides` style ceates a simple presentation slides. See an example
+in the file `op-slides.tex`. Run `optex op-slides.tex` and see the usage of
+`\slides` style in the file `op-slides.pdf`. 
+
+Analogical declaration macros `\book` is not prepared. Each book needs an
+individual typographical care so you need to create specific macros for
+design. 
+
+\secc Lorem ipsum dolor sit
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\new
+A designer needs to concentrate to the design of the output and maybe he/she 
+needs a material for testing macros. There is the possibility to generate a
+neutral text for such experiments. Use `\lorem[<number>]` or
+`\lorem[<from>-<to>]`. It prints a paragraph (or paragraphs) with neutral
+text. The numbers <number> or <from>, <to> must be in the range 1 to 150
+because there are 150 paragraphs with neutral text prepared for you.
+The `\lipsum` macro is equivalent to `\lorem`. Example `\lipsum[1-150]`
+prints all prepared paragraphs.
+
+\secc Logos
+%%%%%%%%%%
+
+\new
+The control sequences for typical logos can be terminated by optional `/`
+which is ignored when printing. This makes logos more legible in source file:
+
+\begtt
+We are using \TeX/ because it is cool. \OpTeX/ is better than \LaTeX.
+\endtt
+
+\secc The last page
+%%%%%%%%%%%%%%%%%%%
+
+The number of the last page (it may be different from number of pages) is
+expanded by `\lastpage` macro. It expands to `?` in first \TeX/ run and to
+the last page in next \TeX/ runs. 
+
+There is an example for footlines in the format \"current page / last page": 
+
+\begtt
+\footline={\hss \fixedrm \folio/\lastpage \hss}
+\endtt
+
+\new
+The `\lastpage` expands to the last `\folio` which is a decimal
+number or roman nummeral (when `\pageno` is negative). If you need to know
+total pages used in the document, use `\totalpages` macro. It expands to 
+zero (in first \TeX/ run) or to the number of all pages in the document
+(in next \TeX/ runs). 
+
+\secc Use \OpTeX/
+%%%%%%%%%%%%%%%%%
+
+\new
+The command `\useOpTeX` (or `\useoptex`) does nothing in \OpTeX/ but it causes 
+an error (undefined control sequence) when another format is used. You can
+put it as the first command in your document:
+
+\begtt
+\useOpTeX % we are using OpTeX format, no LaTeX :) 
+\endtt
+
+\sec Summary
+%%%%%%%%%%%%
+
+\begtt     \typosize[10/12]\adef!{\string\endtt}\adef&{\kern.25em}
+\tit Title (terminated by end of line)
+\chap Chapter Title (terminated by end of line)
+\sec Section Title (terminated by end of line)
+\secc Subsection Title (terminated by end of line)
+
+\maketoc         % table of contents generation
+\ii item1,item2  % insertion the items to the index
+\makeindex       % the index is generated
+
+\label [labname]  % link target location
+\ref [labname]    % link to the chapter, section, subsection, equation
+\pgref [labname]  % link to the page of the chapter, section, ...
+
+\caption/t  % a numbered table caption
+\caption/f  % a numbered caption for the picture
+\eqmark     % a numbered equation
+
+\begitems       % start list of the items
+\enditems       % end of list of the items
+\begtt          % start verbatim text
+!          % end verbatim text
+\activettchar X % initialization character X for in-text verbatim
+\code           % another alternative for in-text verbatim
+\verbinput      % verbatim extract from the external file
+\begmulti num   % start multicolumn text (num columns)
+\endmulti       % end multicolumn text
+
+\cite [labnames]  % refers to the item in the lits of references
+\rcite [labnames] % similar to \cite but [] are not printed.
+\sortcitations \shortcitations \nonumcitations % cite format
+\bib [labname]  % an item in the list of references
+\usebib/? (style) bib-base % direct using of .bib file, ? in {s,c}
+
+\fontfam [FamilyName] % selection of font family
+\typosize [font-size/baselineskip] % size setting of typesetting
+\typoscale [factor-font/factor-baselineskip] % size scaling
+\thefontsize [size] \thefontscale [factor]   % current font size
+
+\inspic file.ext    % insert a picture, extensions: jpg, png, pdf
+\table {rule}{data} % simple macro for the tables like in LaTeX
+
+\fnote {text}   % footnote (local numbering on each page)
+\mnote {text}   % note in the margin (left or right by page number)
+
+\hyperlinks {color-in}{color-out} % PDF links activate as clickable
+\outlines {level}   % PDF will have a table of contents in the left tab
+
+\magscale[factor]  % resize typesetting, line/page breaking unchanged
+\margins/pg format (left, right, top, bottom)unit % margins setting
+
+\report \letter \slides  % style declaration macros
+\endtt
+
+
+\sec Compatibility with Plain \TeX/
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+All macros of Plain \TeX/ are re-written in \OpTeX/. Common macros should
+work in the same sense as in original Plain \TeX. Internal control sequences
+\new 
+like `\p@` or `\f@@t` are removed and mostly replaced by control sequences
+prefixed by `_` (like `\_this`). All primitives and common macros have two
+control sequences with the same meaning: in prefixed and unprefixed form.
+For example `\hbox` is equal to `\_hbox`. 
+Internal macros of \OpTeX/ have and use only prefixed form. User should use
+unprefixed forms, but prefixed forms are accessible too, because the `_` is
+set as a letter category code globally (in macro files and in users document too). User
+should re-define unprefixed forms of control sequences with no worries that
+something internal will be broken (only the sequence `\par` cannot be
+re-defined without internal change of \TeX/ behavior because it is
+hard-coded in \TeX/s tokenization processor).
+
+\new
+The Latin Modern 8bit fonts instead Computer Modern 7bit fonts are
+preloaded in the format, but only few ones. The full family set is ready to
+use after the command `\fontfam[LMfonts]` which reads the fonts in OTF
+format.
+
+\new
+The text accents macros like `\'`, `\v`, `\"` are undefined\fnote 
+{The math accents macros like `\acute`, `\bar`, `\dot`, `\hat` still work.}
+in \OpTeX/. Use real
+letters like á, ř, ž in your source document instead these old accents macros.
+If you really want to use them, you can initialize them by `\oldaccents`
+command. But we don't recommend it.
+
+\new
+The default paper size is not set as letter with 1\,in margins but as A4 with
+2.5\,cm margins. You can change it, for example by 
+`\margins/1 letter (1,1,1,1)in`. This example sets the classical Plain \TeX/
+page layout.
+
+\new
+The origin for typographical area is not at top left 1\,in 1\,in coordinates
+but at top left paper corner exactly. For example, `\hoffset` includes directly left
+margin.
+
+\bye
+


Property changes on: trunk/Master/texmf-dist/doc/luatex/optex/optex-doc.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/luatex/optex/slides-bg.png
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/luatex/optex/slides-bg.png
===================================================================
--- trunk/Master/texmf-dist/doc/luatex/optex/slides-bg.png	2020-04-11 15:57:15 UTC (rev 54649)
+++ trunk/Master/texmf-dist/doc/luatex/optex/slides-bg.png	2020-04-11 21:25:25 UTC (rev 54650)

Property changes on: trunk/Master/texmf-dist/doc/luatex/optex/slides-bg.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/luatex/optex/colors.opm
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/optex/colors.opm	2020-04-11 15:57:15 UTC (rev 54649)
+++ trunk/Master/texmf-dist/tex/luatex/optex/colors.opm	2020-04-11 21:25:25 UTC (rev 54650)
@@ -37,9 +37,9 @@
 \_def\_setcmykcolor#1{\_setcolor{\_formatcmyk{#1}}}
 \_def\_setrgbcolor#1{\_setcolor{\_formatrgb{#1}}}
 \_def\_setgreycolor#1{\_setcolor{\_formatgrey{#1}}}
-\_def\_formatcmyk#1{#1 k #1 K}
-\_def\_formatrgb#1{#1 rg #1 RG}
-\_def\_formatgrey#1{#1 g #1 G}
+\_def\_formatcmyk#1{\_fillstroke{#1 k}{#1 K}}
+\_def\_formatrgb#1{\_fillstroke{#1 rg}{#1 RG}}
+\_def\_formatgrey#1{\_fillstroke{#1 g}{#1 G}}
 \_public \setcmykcolor \setrgbcolor \setgreycolor ;
 
    \_doc -----------------------------
@@ -50,15 +50,19 @@
    The `\onlycmyk` macro does a similar work, it re-defines `\_formatrgb`
    macro. The Grey color space is unnchanged and works in both main
    settings (RGB or CMYK) without collisions.
+   The `\_fillstroke` uses the same color for fills and strokes.
+   If only fills are needed to declare do `\def\_fillstroke#1#2{#1}`.
+   If only strokes are needed to declare do `\def\_fillstroke#1#2{#2}`.
    \_cod -----------------------------
 
+\_def\_fillstroke#1#2{#1 #2}
 \_def\_onlyrgb{\_def\Red{\_setrgbcolor{1 0 0}}%
    \_def\Green{\_setrgbcolor{0 1 0}}\_def\Blue{\_setrgbcolor{0 0 1}}%   
    \_let\_colordef=\_rgbcolordef 
-   \_def\_formatrgb##1{##1 rg ##1 RG}%
-   \_def\_formatcmyk##1{\_cmyktorgb ##1 ; rg \_cmyktorgb ##1 ; RG}}
-\_def\_onlycmyk{\_def\_formatcmyk##1{##1 k ##1 K}%
-   \_def\_formatrgb##1{\_rgbtocmyk ##1 ; k \_rgbtocmyk ##1 ; K}}
+   \_def\_formatrgb##1{\_fillstroke{##1 rg}{##1 RG}}%
+   \_def\_formatcmyk##1{\_fillstroke{\_cmyktorgb ##1 ; rg}{\_cmyktorgb ##1 ; RG}}}
+\_def\_onlycmyk{\_def\_formatcmyk##1{\_fillstroke{##1 k}{##1 K}}%
+   \_def\_formatrgb##1{\_fillstroke{\_rgbtocmyk ##1 ; k}{\_rgbtocmyk ##1 ; K}}}
 \_public \onlyrgb \onlycmyk ;
 
    \_doc -----------------------------
@@ -81,7 +85,8 @@
 }
 \_def\_pdfblackcolor{0 g 0 G}
 \_edef\_currentcolor{\_pdfblackcolor}
-\_def\_ensureblackA#1{\_colorstackpush\_pdfblackcolor #1\_colorstackpop}
+\_def\_ensureblackA#1{\_global\_let\_openfnotestack=\_openfnotestackA
+   \_colorstackpush\_pdfblackcolor #1\_colorstackpop}
 
    \_doc -----------------------------
    The colorstack is initialized here and basic macros 
@@ -95,6 +100,16 @@
 \_def\_colorstackset#1{\_pdfcolorstack\_colorstackcnt set{#1}}
 
    \_doc -----------------------------
+   We need to open a special color stack for footnotes, because footnotes
+   can follow on next pages and their colors are independent on colors
+   used in man page-body.
+   \_cod -----------------------------
+
+%\_mathchardef\_fnotestack=\_pdfcolorstackinit page {0 g 0 G}
+% must be in \everyjob^^^
+\_def \_openfnotestackA {\_pdfcolorstack\_fnotestack current}
+
+   \_doc -----------------------------
    We use lua codes for RGB to CMYK or CMYK to RGB conversions and for
    addition color components in the `\colordef` macro.
    `\_rgbtocmyk <R> <G> <B> ;` expands to <C> <M> <Y> <K>.

Modified: trunk/Master/texmf-dist/tex/luatex/optex/fnotes.opm
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/optex/fnotes.opm	2020-04-11 15:57:15 UTC (rev 54649)
+++ trunk/Master/texmf-dist/tex/luatex/optex/fnotes.opm	2020-04-11 21:25:25 UTC (rev 54650)
@@ -1,6 +1,6 @@
 %% This is part of OpTeX project, see http://petr.olsak.net/optex
 
-\_codedecl \fnote {Footnotes, marginal notes OpTeX <2020-03-19>} % loaded in format
+\_codedecl \fnote {Footnotes, marginal notes OpTeX <2020-03-20>} % loaded in format
 
    \_doc -----------------------------
    \begitems
@@ -41,10 +41,6 @@
    footnote itself, then you can define `\_printfnotemarkA` and `\_printfnotemarkB`.
    The following example shows an implementation of hyperlinked footnotes
    (from text to footnote and bacward):
-   \begtt
-   \def\_printfnotemarkA{\ilink[fnB:\the\gfnotenum]{\_printfnotemark}\dest[fnA::\the\gfnotenum]}
-   \def\_printfnotemarkB{\ilink[fnA:\the\gfnotenum]{\_printfnotemark}\dest[fnB::\the\gfnotenum]}
-   \endtt
    \_cod -----------------------------
 
 \_def \_printfnotemark  {$^{\_fnotenum}$}   % default footnote mark
@@ -51,6 +47,14 @@
 \_def \_printfnotemarkA {\_printfnotemark}  % footnote marks used in text
 \_def \_printfnotemarkB {\_printfnotemark}  % footnote marks used in front of footnotes
 
+\_def \_fnotelinks#1#2{% <inText color> <inFootnote color> 
+   \_def\_printfnotemarkA{\_link[fnt:\the\_gfnotenum]{\_localcolor#1}{\_printfnotemark}%
+                          \_dest[fnf:\the\_gfnotenum]}%
+   \_def\_printfnotemarkB{\_link[fnf:\the\_gfnotenum]{\_localcolor#2}{\_printfnotemark}%
+                          \_dest[fnt:\the\_gfnotenum]}%
+}
+\public \fnotelinks ;
+
    \_doc ----------------------------
    Each footnote saves the `\_Xfnote` (without parameter) to the `.ref` 
    file (if `\openref`). We can create the mapping from <gfnotenum> to <pgfnotenum>

Modified: trunk/Master/texmf-dist/tex/luatex/optex/fonts-opmac.opm
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/optex/fonts-opmac.opm	2020-04-11 15:57:15 UTC (rev 54649)
+++ trunk/Master/texmf-dist/tex/luatex/optex/fonts-opmac.opm	2020-04-11 21:25:25 UTC (rev 54650)
@@ -1,6 +1,6 @@
 %% This is part of OpTeX project, see http://petr.olsak.net/optex
 
-\_codedecl \typosize {Font managing macros from OPmac <2020-02-29>} % loaded in format
+\_codedecl \typosize {Font managing macros from OPmac <2020-03-27>} % loaded in format
 
 \_protected\_def \_typosize [#1/#2]{%
    \_textfontsize{#1}\_mathfontsize{#1}\_setbaselineskip{#2}%
@@ -45,6 +45,7 @@
 \_def\_setmainvalues {%
    \_mainbaselineskip=\_baselineskip
    \_mainfosize=\_optsize
+   \_topskip=\_mainfosize \_splittopskip=\_topskip % added 2020-03-27
    \_bf \_it \_bi \_rm \_normalmath  % load fonts if \typosize is running firstly
    \_let \_setmainvalues =\_setmainvaluesL
 }

Modified: trunk/Master/texmf-dist/tex/luatex/optex/graphics.opm
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/optex/graphics.opm	2020-04-11 15:57:15 UTC (rev 54649)
+++ trunk/Master/texmf-dist/tex/luatex/optex/graphics.opm	2020-04-11 21:25:25 UTC (rev 54650)
@@ -1,6 +1,6 @@
 %% This is part of OpTeX project, see http://petr.olsak.net/optex
 
-\_codedecl \inspic {Graphics <2020-03-18>} % preloaded in format
+\_codedecl \inspic {Graphics <2020-03-29>} % preloaded in format
 
    \_doc -----------------------------
    `\inspic` accepts old syntax `\inspic <filename><space>`
@@ -7,7 +7,7 @@
    or new syntax `\inspic{<filename>}`. So, we need to define
    two auxiliary macros `\_inspicA` and `\_inspicB`.
 
-   You can include more `\pdfximage` parameters (like `page=`)
+   You can include more `\pdfximage` parameters (like `page<number>`)
    in the `\_picparams` macro.
 
    All `\inspic` macros are surrounded in `\hbox` in order user can
@@ -146,11 +146,11 @@
    The `\_scantwodimens` scans two objects with the syntactic rule <dimen>
    and returns `{<number>}{<number>}` in sp unit.
 
-   The `\puttext <down> <right>{<text>}` puts the <text> to desired place:
+   The `\puttext <right> <up>{<text>}` puts the <text> to desired place:
    From current point moves <down> and <right>, puts the <text> and returns
    back. The cuuren tpoint is unchanged after this macro ends.
    
-   The  `\putpic <down> <right> <width> <height> {<image-file>}`
+   The  `\putpic <right> <up> <width> <height> {<image-file>}`
    does `\puttext` with the image scaled to desired <width> and <height>.
    If <with> or <height> is zero, natural dimension is used.
    The `\nospec` is a shortcut to such natural dimension.
@@ -158,18 +158,18 @@
 
 \_def\_scantwodimens{%
    \_directlua{tex.print(string.format('{\_pcent d}{\_pcent d}',
-               token.scan_dimen(),token.scan_dimen{}))}%
+               token.scan_dimen(),token.scan_dimen()))}%
 }
 
 \_def\_puttext{\_ea\_ea\_ea\_puttextA\_scantwodimens}
 \_def\_puttextA#1#2#3{\_setbox0=\_hbox{{#3}}\_dimen1=#1sp \_dimen2=#2sp \_puttextB}
 \_def\_puttextB{%
-   \_ifvmode 
+   \_ifvmode
       \_ifdim\_prevdepth>0pt \_vskip-\_prevdepth \_relax \_fi 
       \_nointerlineskip 
    \_fi
    \_wd0=0pt \_ht0=0pt \_dp0=0pt
-   \_vbox to0pt{\_kern\_dimen1 \_hbox to0pt{\_kern\_dimen2 \_box0\_hss}\_vss}}
+   \_vbox to0pt{\_kern-\_dimen2 \_hbox to0pt{\_kern\_dimen1 \_box0\_hss}\_vss}}
 
 \_def\_putpic{\_ea\_ea\_ea\_putpicA\_scantwodimens}
 \_def\_putpicA#1#2{\_dimen1=#1sp \_dimen2=#2sp \_ea\_ea\_ea\_putpicB\_scantwodimens}
@@ -183,5 +183,240 @@
 \_def\nospec{0pt}
 \_public \puttext \putpic \backgroundpic ;
 
+   \_doc -----------------------------
+   You can use expandable `\_bp{<dimen>}` convertor from
+   \TeX/ `<dimen>` (or from an expression accepted by
+   `\dimexpr` primitive) to a decimal value in big points
+   (used as natural unit in the PDF format). So, you can write, for example:
+   \begtt
+   \pdfliteral{q \_bp{.3\hsize-2mm} \_bp{2mm} m 0 \_bp{-4mm} l S Q}
+   \endtt
+   You can use expandable `\_expr{<expression>}` for analogical purposes.
+   The `<expression>` can include `+-*/()` and decimal numbers in common syntax.
+   \_cod -----------------------------
+
+\_def\_decdigits{3} % digits after decimal point in \_bp and \_expr outputs.
+\_def\_pttopb{%
+   \_directlua{tex.print(string.format('\_pcent.\_decdigits f',
+               token.scan_dimen()/65781.76))}%  pt to bp conversion
+}
+\def\_bp#1{\_ea\_pttopb\_dimexpr#1\_relax}
+\def\_expr#1{\_directlua{tex.print(string.format('\_pcent.\_decdigits f',#1))}}
+
+   \_doc -----------------------------
+   `\)circle<x><y>` creates an ellipse with `<x>` axis and `<y>` axix.
+   The origin is in the center.
+   `\_oval<x><y><roudness>` creates an oval with `<x>`, `<y>` size and with 
+   given `<roundness>`. The real size is bigger by 2`<roundness>`. The
+   orgigin is at the left bottom corner.
+   `\_mv<x><y>{<curve>}` moves current point to `<x>`, `<y>`, crates the
+   `<curve>` and retuns back the current point.
+   All these macros are fully expandable and they can be used in the
+   `\pdfliteral` argument.
+   \_cod -----------------------------
+
+\def\_circle#1#2{\_expr{.5*(#1)} 0 m 
+   \_expr{.5*(#1)} \_expr{.276*(#2)} \_expr{.276*(#1)} \_expr{.5*(#2)} 0 \_expr{.5*(#2)} c
+   \_expr{-.276*(#1)} \_expr{.5*(#2)} \_expr{-.5*(#1)} \_expr{.276*(#2)} \_expr{-.5*(#1)} 0 c
+   \_expr{-.5*(#1)} \_expr{-.276*(#2)} \_expr{-.276*(#1)} \_expr{-.5*(#2)} 0 \_expr{-.5*(#2)} c
+   \_expr{.276*(#1)} \_expr{-.5*(#2)} \_expr{.5*(#1)} \_expr{-.276*(#2)} \_expr{.5*(#1)} 0 c h}
+
+\def\_oval#1#2#3{0 \_expr{-(#3)} m \_expr{#1} \_expr{-(#3)} l 
+    \_expr{(#1)+.552*(#3)} \_expr{-(#3)} \_expr{(#1)+(#3)} \_expr{-.552*(#3)} 
+                                                           \_expr{(#1)+(#3)} 0 c 
+    \_expr{(#1)+(#3)} \_expr{#2} l
+    \_expr{(#1)+(#3)} \_expr{(#2)+.552*(#3)} \_expr{(#1)+.552*(#3)} \_expr{(#2)+(#3)}
+                                             \_expr{#1} \_expr{(#2)+(#3)} c
+    0 \_expr{(#2)+(#3)} l
+    \_expr{-.552*(#3)} \_expr{(#2)+(#3)} \_expr{-(#3)} \_expr{(#2)+.552*(#3)} 
+                                         \_expr{-(#3)} \_expr{#2} c
+    \_expr{-(#3)} 0 l
+    \_expr{-(#3)} \_expr{-.552*(#3)} \_expr{-.552*(#3)} \_expr{-(#3)}  0 \_expr{-(#3)} c h}
+
+\def\_mv#1#2#3{1 0 0 1 \_expr{#1} \_expr{#2} cm #3 1 0 0 1 \_expr{-(#1)} \_expr{-(#2)} cm}
+
+   \_doc -----------------------------
+   The `\inoval` is an example of `\_oval` usage.
+   The `\incircle` is an example of `\_circle` usage.
+   \_cod -----------------------------
+
+\_newdimen \_lwidth 
+\_def\_fcolor{\_let\_fcolorvalue}
+\_def\_lcolor{\_let\_lcolorvalue}
+\_def\_shadow{\_let\_shadowvalue}
+\_def\_overlapmargins{\_let\_overlapmarginsvalue}
+\_def\_ratio{\isnextchar ={\_ratioA}{\_ratioA=}}
+\_def\_ratioA =#1 {\_def\_ratiovalue{#1}}
+\_def\_touppervalue#1{\_ifx#1n\_let#1=N\_fi}
+
+\_def\_setflcolors#1{% use only in a group
+   \_def\_setcolor##1{##1}%
+   \_def\_fillstroke##1##2{##1}%
+   \_edef#1{\_fcolorvalue}%
+   \_def\_fillstroke##1##2{##2}%
+   \_edef#1{#1\_space\_lcolorvalue\_space}%
+}
+
+\_optdef\_inoval[]{\_vbox\_bgroup
+   \_roundness=2pt \_fcolor=\Yellow \_lcolor=\Red \_lwidth=.5bp 
+   \_shadow=N \_overlapmargins=N \_hhkern=0pt \_vvkern=0pt
+   \_the\_ovalparams \_relax \_the\_opt \_relax
+   \_touppervalue\_overlapmarginsvalue \_touppervalue\_shadowvalue
+   \_ifx\_overlapmarginsvalue N%
+      \_advance\_hsize by-2\_hhkern \_advance\_hsize by-2\_roundness \_fi
+   \_setbox0=\_hbox\_bgroup\_bgroup \_aftergroup\_inovalA \_kern\_hhkern \_let\_next=%
+}
+\_def\_inovalA{\_isnextchar\_colorstackpop\_inovalB\_inovalC}
+\_def\_inovalB#1{#1\_isnextchar\_colorstackpop\_inovalB\_inovalC}
+\_def\_inovalC{\_egroup % of \setbox0=\hbox\bgroup
+   \_ifdim\_vvkern=0pt \_else \_ht0=\_dimexpr\_ht0+\_vvkern \_relax
+                              \_dp0=\_dimexpr\_dp0+\_vvkern \_relax \_fi
+   \_ifdim\_hhkern=0pt \_else \_wd0=\_dimexpr\_wd0+\_hhkern \_relax \_fi
+   \_ifx\_overlapmarginsvalue N\_dimen0=\_roundness \_dimen1=\_roundness
+   \_else                      \_dimen0=-\_hhkern   \_dimen1=-\_vvkern \_fi 
+   \_setflcolors\_tmp
+   \_hbox{\_kern\_dimen0 
+      \_vbox to0pt{\_kern\_dp0 
+         \_ifx\_shadowvalue N\_else 
+            \_edef\_tmpb{{\_bp{\_wd0+\_lwidth}}{\_bp{\_ht0+\_dp0+\_lwidth}}{\_bp{\_roundness}}}%
+            \_doshadow\_oval 
+         \_fi
+         \_pdfliteral{q \_bp{\_lwidth} w \_tmp 
+            \_oval{\_bp{\wd0}}{\_bp{\_ht0+\_dp0}}{\_bp{\_roundness}} B Q}\_vss}%
+      \_ht0=\_dimexpr\_ht0+\_dimen1 \_relax \_dp0=\_dimexpr\_dp0+\_dimen1 \_relax
+      \_box0 
+      \_kern\_dimen0}%
+   \_egroup % of \vbox\bgroup
+}
+\_optdef\_incircle[]{\_vbox\_bgroup
+   \_ratio=1 \_fcolor=\Yellow \_lcolor=\Red \_lwidth=.5bp 
+   \_shadow=N \_overlapmargins=N \_hhkern=3pt \_vvkern=3pt
+   \_ea\_the \_ea\_circleparams \_space \_relax
+   \_ea\_the \_ea\_opt \_space \_relax
+   \_touppervalue\_overlapmarginsvalue \_touppervalue\_shadowvalue
+   \_setbox0=\_hbox\_bgroup\_bgroup \_aftergroup\_incircleA \_kern\_hhkern \_let\_next=%
+}
+\_def\_incircleA {\_isnextchar\_colorstackpop\_incircleB\_incircleC}
+\_def\_incircleB #1{#1\_isnextchar\_colorstackpop\_incircleB\_incircleC}
+\_def\_incircleC {\_egroup % of \setbox0=\hbox\bgroup
+   \_wd0=\dimexpr \_wd0+\_hhkern \_relax
+   \_ht0=\dimexpr \_ht0+\_vvkern \_relax \_dp0=\dimexpr \_dp0+\_vvkern \_relax
+   \_ifdim \_ratiovalue\_dimexpr \_ht0+\_dp0 > \_wd0
+          \_dimen3=\_dimexpr \_ht0+\_dp0 \_relax  \_dimen2=\_ratiovalue\_dimen3
+   \_else \_dimen2=\_wd0 \_dimen3=\_expr{1/\_ratiovalue}\_dimen2 \fi
+   \_setflcolors\_tmp
+   \_ifx\_overlapmarginsvalue N\_dimen0=0pt \_dimen1=0pt 
+   \_else \_dimen0=-\hhkern \_dimen1=-\vvkern \_fi
+   \_hbox{\_kern\dimen0 
+      \_ifx\_shadowvalue N\_else 
+         \_edef\_tmpb{{\_bp{\_dimen2+\_lwidth}}{\_bp{\_dimen3+\_lwidth}}{}}%
+         \_doshadow\_circlet
+      \_fi      
+      \_pdfliteral{q \_bp{\_lwidth} w \_tmp \_mv{\_bp{.5\_wd0}}{\_bp{(\ht0-\dp0)/2}}
+                                      {\_circle{\_bp{\_dimen2}}{\_bp{\_dimen3}} B} Q}%
+      \_ifdim\_dimen1=0pt \_else 
+           \_ht0=\dimexpr \_ht0+\_dimen1 \_relax \_dp0=\dimexpr \_dp0+\_dimen1 \_relax \_fi
+      \_box0
+      \_kern\_dimen0}
+   \_egroup % of \vbox\bgroup
+}
+\_def\_circlet#1#2#3{\_circle{#1}{#2}}
+
+\_public 
+   \inoval \incircle \ratio \lwidth \fcolor \lcolor \shadow \overlapmargins ;
+
+   \_doc -----------------------------
+   A shadow effect is implemented here. The shadow is equal to the
+   silhouette of the given path in gray-transparent color shifted by
+   `\shadowmoveto` vector and with blurred boundary.
+   A waistline with the width 2*`\shadowb` around the boundary is blurred.
+   The `\shadowlevels` levels of transparent shapes is used for creating
+   this effect. The `\shadowlevels+1/2` level is equal to the shifted given path.
+   \_cod -----------------------------
+
+\_def\_shadowlevels{9}         % number of layers for blurr effect
+\_def\_shadowdarknessA{0.025}  % transparency of first shadowlevels/2 layers
+\_def\_shadowdarknessB{0.07}   % transparency of second half of layers
+\_def\_shadowmoveto{1.8 -2.5}  % vector defines shifting layer (in bp)
+\_def\_shadowb{1}              % 2*shadowb = blurring area thickness
+
+   \_doc -----------------------------
+   The `\_pdfpageresources` primitive is used to define transparency.
+   It does not work when used in a box. So, we use it at begining of
+   output routine. The modification of output routine is done only once
+   when the shadow effect is used first.
+   \_cod -----------------------------
+
+\_def\_insertshadowresources{%
+   \_global\_addto\_begoutput{\_setshadowresources}%
+   \_xdef\_setshadowresources{%
+      \_pdfpageresources{/ExtGState 
+      <<
+      /op1  << /Type /ExtGState /ca \_shadowdarknessA >>
+      /op2  << /Type /ExtGState /ca \_shadowdarknessB >>
+      >>
+      }%
+   }%
+   \_global\_let\_insertshadowresources=\_relax
+}
+\_def\_doshadow#1{\_vbox{%
+    \_insertshadowresources
+    \_tmpnum=\_numexpr (\_shadowlevels-1)/2 \_relax
+    \_edef\_tmpfin{\_the\_tmpnum}%
+    \_ifnum\_tmpfin=0 \_def\_shadowb{0}\_def\_shadowstep{0}%
+    \_else \_edef\_shadowstep{\_expr{\_shadowb/\_tmpfin}}\_fi
+    \_def\_tmpa##1##2##3{\_def\_tmpb
+        {#1{##1+2*\_the\_tmpnum*\_shadowstep}{##2+2*\_the\_tmpnum*\_shadowstep}{##3}}}%
+    \_ea \_tmpa \_tmpb
+    \_def\_shadowlayer{%
+        \_ifnum\_tmpnum=0 /op2 gs \_fi
+        \_tmpb\_space f
+        \_immediateassignment\_advance\_tmpnum by-1
+        \_ifnum-\_tmpfin<\_tmpnum 
+           \_ifx#1\_oval 1 0 0 1 \_shadowstep\_space \_shadowstep\_space cm \_fi 
+           \_ea \_shadowlayer \_fi
+    }%
+    \_pdfliteral{q /op1 gs 0 g 1 0 0 1 \_shadowmoveto\_space cm  
+       \_ifx#1\_circlet 1 0 0 1 \_expr{\_bp{.5\_wd0}} \_expr{\_bp{(\_ht0-\_dp0)/2}} cm 
+       \_else  1 0 0 1 -\_shadowb\_space -\_shadowb\_space cm \_fi
+       \_shadowlayer Q}
+}}
+
+   \_doc -----------------------------
+   A generic macro `\clipinpath{<x>}{<y>}{<curve>}{<text>}` declares
+   a clipping path by <curve> shifted by <x>, <y>. The <text> is typesset
+   when such clipping path is active. Dimensions are given by bp without the unit here.
+   Macros `\clipinoval <x> <y> <width> <height> {<text>}` and
+   `\clipincircle <x> <y> <width> <height> {<text>}` are defined here.
+   These marcos read normal \TeX/ dimensions in their parameters.
+   \_cod -----------------------------
+
+\_def\_clipinpath#1#2#3#4{% #1=x-pos[bp], #2=y-pos[bp], #3=curve, #4=text
+   \_hbox{\setbox0=\hbox{{#4}}%
+          \_tmpdim=\wd0 \wd0=0pt
+          \_pdfliteral{q \_mv{#1}{#2}{#3 W n}}%
+          \_box0\_pdfliteral{Q}\_kern\_tmpdim
+   }%
+}
+
+\_def\_clipinoval {\_ea\_ea\_ea\_clipinovalA\_scantwodimens}
+\_def\_clipinovalA #1#2{%
+   \_def\_tmp{{#1/65781.76}{#2/65781.76}}%
+   \_ea\_ea\_ea\_clipinovalB\_scantwodimens
+}
+\_def\_clipinovalB{\_ea\_clipinovalC\_tmp}
+\_def\_clipinovalC#1#2#3#4{%
+   \_ea\_clipinpath{#1-(#3/131563.52)+(\_bp{\_roundness})}{#2-(#4/131563.52)+(\_bp{\_roundness})}%
+   {\_oval{#3/65781.76-(\_bp{2\_roundness})}{#4/65781.76-(\_bp{2\_roundness})}{\_bp{\_roundness}}}%
+}
+\_def\_clipincircle {\_ea\_ea\_ea\_clipincircleA\_scantwodimens}
+\_def\_clipincircleA #1#2{%
+   \_def\_tmp{{#1/65781.76}{#2/65781.76}}%
+   \_ea\_ea\_ea\_clipincircleB\_scantwodimens
+}
+\_def\_clipincircleB#1#2{%
+   \_ea\_clipinpath\_tmp{\_circle{#1/65781.76}{#2/65781.76}}%
+}
+
 \_endcode % -------------------------------------
 

Modified: trunk/Master/texmf-dist/tex/luatex/optex/lists.opm
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/optex/lists.opm	2020-04-11 15:57:15 UTC (rev 54649)
+++ trunk/Master/texmf-dist/tex/luatex/optex/lists.opm	2020-04-11 21:25:25 UTC (rev 54650)
@@ -6,12 +6,21 @@
    `\aboveliskip` is used above the list of items, 
    `\belowliskip` is used below the list of items and 
    `\interliskip` is used between items.
+   `\listskipA` is used as `\listskipamount` at level 1 of items.
+   `\listskipB` is used as `\listskipamount` at other levels. 
    \_cod -----------------------------
 
-\_def\_aboveliskip {\_removelastskip \_penalty-100 \_medskip}
-\_def\_belowliskip {\_penalty-200 \_medskip}
+\_def\_aboveliskip {\_removelastskip \_penalty-100 \_vskip\_listskipamount}
+\_def\_belowliskip {\_penalty-200 \_vskip\_listskipamount}
 \_def\_interliskip {}
+\_def\_listskipA {\_medskipamount}
+\_def\_listskipB {0pt plus.5\smallskipamount}
 
+\_def\_setlistskip {%
+   \_ifnum \_ilevel = 1 \_listskipamount = \_listskipA \_relax
+   \_else  \_listskipamount = \_listskipB \_relax 
+   \_fi}
+
    \_doc -----------------------------
    The `\itemnum` is localy reset to zero in each group declared by
    `\begitems`. So nested lists are numbered independently. User can set
@@ -27,14 +36,17 @@
 \_newcount\_itemnum  \_itemnum=0
 \_newtoks\_printitem
 
-\_def\_begitems{\_par \_ifnum\_lastpenalty<10000 \_aboveliskip \_fi
+\_def\_begitems{\_par 
   \_bgroup
+  \_advance \_ilevel by1
+  \_setlistskip
+  \_ifnum\_lastpenalty<10000 \_aboveliskip \_fi
   \_itemnum=0 \_adef*{\_startitem}
   \_advance\_leftskip by\_iindent
   \_printitem=\_defaultitem
-  \_the\_everybegitems
+  \_the\_everylist \_relax
 }
-\_def\_enditems{\_par\_egroup\_belowliskip}
+\_def\_enditems{\_par\_belowliskip\_egroup}
 
 \_def\_startitem{\_par \_ifnum\_itemnum>0 \_interliskip \_fi
    \_advance\_itemnum by1
@@ -41,6 +53,13 @@
    \_the\_everyitem \_noindent\_llap{\_the\_printitem}\_ignorespaces
 }
 
+   \_doc ----------------------------
+   `\novspaces` sets `\listsipamount` to 0pt.
+   \_cod ----------------------------
+
+\_def\_novspaces {\_removelastskip \_listskipamount=0pt \_relax}
+\_public \novspaces ;
+
    \_doc -----------------------------
    Various item marks are saved in `\_item:<letter>` macros.
    You ca re-define then or define more such macros.

Modified: trunk/Master/texmf-dist/tex/luatex/optex/makeindex.opm
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/optex/makeindex.opm	2020-04-11 15:57:15 UTC (rev 54649)
+++ trunk/Master/texmf-dist/tex/luatex/optex/makeindex.opm	2020-04-11 21:25:25 UTC (rev 54650)
@@ -1,6 +1,6 @@
 %% This is part of OpTeX project, see http://petr.olsak.net/optex
 
-\_codedecl \makeindex {Makeindex and sorting <2020-03-16>} % loaded in format
+\_codedecl \makeindex {Makeindex and sorting <2020-04-26>} % loaded in format
 
    \_doc -----------------------------
    `\makeindex` implements sorting algorithm at \TeX/ macrolanguage level.
@@ -67,8 +67,10 @@
    these declared characters are used.
 
    The characters declared in `\_ignoredchars` are ignored in first pass
-   without additional condidion. They are ignored in second pass only if
-   they are not mentioned in the `\_sortingdata<iso-code>` macro.
+   without additional condidion. All characters are taken into acount in
+   second pass: ASCII characters with code $<65$ are sorted first if they
+   are not mentioned in the `\_sortingdata<iso-code>` macro. 
+   Others not mentioned characters have undefined behavior during sorting.
    \_cod -----------------------------   
 
 \_def \_ignoredcharscs  {.,;?!:'"|()[]<>=+}
@@ -116,7 +118,7 @@
       \_ifx##1,\_advance\_tmpnum by1
       \_else \_lccode`##1=\_tmpnum \_fi
       \_ea\_act \_fi}%
-   \_tmpnum=60 \_ea\_act \_sortingdata \_relax
+   \_tmpnum=65 \_ea\_act \_sortingdata \_relax
    \_def \_act ##1{\_ifx##1\_relax \_else
       \_lccode`##1=`\^^I
       \_ea\_act \_fi}% 
@@ -131,7 +133,7 @@
    \_def \_act ##1{\_ifx##1\_relax \_else
       \_ifx##1,\_else \_advance\_tmpnum by1 \_lccode`##1=\_tmpnum \_fi
       \_ea\_act \_fi}%
-  \_tmpnum=60 \_ea\_act \_sortingdata \_relax 
+  \_tmpnum=65 \_ea\_act \_sortingdata \_relax 
 }
 
    \_doc -----------------------------

Modified: trunk/Master/texmf-dist/tex/luatex/optex/multicolumns.opm
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/optex/multicolumns.opm	2020-04-11 15:57:15 UTC (rev 54649)
+++ trunk/Master/texmf-dist/tex/luatex/optex/multicolumns.opm	2020-04-11 21:25:25 UTC (rev 54650)
@@ -1,6 +1,6 @@
 %% This is part of OpTeX project, see http://petr.olsak.net/optex
 
-\_codedecl \begmulti {Balanced columns <2020-03-08>} % preloaded in format
+\_codedecl \begmulti {Balanced columns <2020-03-26>} % preloaded in format
 
    \_doc -----------------------------
    This code is documented in detail in the \"\TeX/book naruby", pages 244--246,
@@ -33,7 +33,7 @@
    \_def\par{\_ifhmode\_endgraf\_global\_advance\_mullines by\_prevgraf\_fi}%
 }
 \_def\_endmulti{\_vskip-\_prevdepth\_vfil
-   \_expandafter\_egroup\_expandafter\_baselineskip\_the\_baselineskip\_relax 
+   \_ea\_egroup\_ea\_baselineskip\_the\_baselineskip\_relax 
    \_dimen0=.8\_maxdimen \_tmpnum=\_dimen0 \_divide\_tmpnum by\_baselineskip 
    \_splittopskip=\_baselineskip
    \_setbox1=\_vsplit6 to0pt
@@ -68,10 +68,10 @@
    \_divide\_dimen0 by\_Ncols \_relax
    \_ifx\_balancecolumns\_flushcolumns \_advance\_dimen0 by-.5\_vsize \_fi
    \_dimen1=\_vsize \_corrsize{\_dimen1}\_dimen2=\_dimen1
-   \_advance\_dimen2 by-\_Ncols\_baselineskip
+   \_advance\_dimen2 by-\_baselineskip
    %% split the material to more pages?
    \_ifvoid6 \_else
-      \_ifdim \_dimen0>\_dimen2 \_expandafter\_expandafter\_expandafter \_splitpart
+      \_ifdim \_dimen0>\_dimen2 \_ea\_ea\_ea \_splitpart
       \_else \_balancecolumns % last balancing
    \_fi \_fi
 }
@@ -88,7 +88,7 @@
    \_ifvoid6 \_else
       \_advance \_dimen0 by.2\_baselineskip
       \_setbox6=\_copy7
-      \_expandafter \_tmp \_fi}\_tmp
+      \_ea \_tmp \_fi}\_tmp
    \_hbox{}\_nobreak\_vskip-\_splittopskip \_nointerlineskip
    \_hbox to\_hsize{\_unhbox1\_unskip}%
    \_egroup

Modified: trunk/Master/texmf-dist/tex/luatex/optex/optex.ini
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/optex/optex.ini	2020-04-11 15:57:15 UTC (rev 54649)
+++ trunk/Master/texmf-dist/tex/luatex/optex/optex.ini	2020-04-11 21:25:25 UTC (rev 54650)
@@ -16,11 +16,12 @@
 \catcode `\^^I=10 % ascii tab is a blank space
 \catcode `\_=11 % underline can be used in control sequences
 \catcode `\~=13 % tilde is active
+\catcode `\^^a0=13 % non breaking space in Unicode
 \catcode 127=12 % normal character
 
 % OpTeX version
 
-\def\optexversion{Alpha 0.07 Mar 2020}
+\def\optexversion{Alpha 0.08 Mar 2020}
 
 % Engine testing:
 
@@ -86,6 +87,7 @@
 
 \_everyjob = {%
    \_message{This is OpTeX (Olsak's Plain TeX), version <\optexversion>^^J}%
+   \_mathchardef\_fnotestack=\_pdfcolorstackinit page {0 g 0 G}%
    \_mathsbon % replaces \int_a^b to \int _a^b
    \_inputref % inputs \jobname.ref if exists
 }

Modified: trunk/Master/texmf-dist/tex/luatex/optex/others.opm
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/optex/others.opm	2020-04-11 15:57:15 UTC (rev 54649)
+++ trunk/Master/texmf-dist/tex/luatex/optex/others.opm	2020-04-11 21:25:25 UTC (rev 54650)
@@ -27,12 +27,17 @@
 \_let\chyph=\cslang   \_let\shyph=\sklang
 \_let\csUnicode=\csPatt \_let\czUnicode=\csPatt \_let\skUnicode=\skPatt
 
+% classical \ten* macros (keeps only preloaded fonts!)
+
 \_let \letfont = \_fontlet
 \_let \tenrm = \_tenrm  \_let \tenbf = \_tenbf
 \_let \tenit = \_tenit  \_let \tenbi = \_tenbi
 \_let \tentt = \_tentt 
 
+% non breaking space in Unicode
 
+\let ^^a0=~
+
 % TikZ needs these control sequences:
 
 \ea\toksdef \csname toks@\endcsname=0

Modified: trunk/Master/texmf-dist/tex/luatex/optex/output.opm
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/optex/output.opm	2020-04-11 15:57:15 UTC (rev 54649)
+++ trunk/Master/texmf-dist/tex/luatex/optex/output.opm	2020-04-11 21:25:25 UTC (rev 54650)
@@ -1,6 +1,6 @@
 %% This is part of OpTeX project, see http://petr.olsak.net/optex
 
-\_codedecl \nopagenumbers {Output routine <2020-03-15>} % preloaded in format
+\_codedecl \nopagenumbers {Output routine <2020-03-28>} % preloaded in format
 
    \_doc -----------------------------
    `\_optexouput` is default output routine. You can create another...
@@ -59,6 +59,7 @@
      \_ensureblack{\_makefootline}}%
 }
 \_def \_ensureblack #1{#1} % will be re-defined by color macros
+\_let \_openfnotestack = \_relax % will be re-defined by color macros
 \_def \_backgroundbox #1{\_moveleft\_hoffset\_vbox to0pt{\_kern-\voffset #1\_vss}}
 
    \_doc -----------------------------
@@ -94,7 +95,7 @@
   \_dimen0=\dp255 \_unvbox255 % open up \box255
   \_ifvoid\_footins \_else % footnote info is present
     \_vskip\_skip\_footins
-    \_ensureblack{\_footnoterule \_unvbox\_footins}\fi
+    \_ensureblack{\_footnoterule \_openfnotestack \_unvbox\_footins}\fi
   \_ifraggedbottom \kern-\_dimen0 \_vfil \_fi
 }
 \_def \_pagedest {{\_def\_destheight{25pt}\_dest[pg:\_the\_gpageno]}}
@@ -132,14 +133,18 @@
 \_def \_opfootnote #1#2{\_insert\_footins\_bgroup
   \_interlinepenalty=\_interfootnotelinepenalty
   \_leftskip=0pt \_rightskip=0pt \_spaceskip=0pt \_xspaceskip=0pt \_relax 
+  \_let\_colorstackcnt=\_fnotestack % special color stack for footnotes
   #1\_relax % local settings used by \fnote macro
   \_splittopskip=\_ht\_strutbox % top baseline for broken footnotes
   \_splitmaxdepth=\_dp\_strutbox \_floatingpenalty=20000
   \_textindent{#2}\_footstrut
-  \_isnextchar \_bgroup {\_bgroup \_aftergroup\_vfootA \_let\_next=}{\_vfootB}%
+  \_isnextchar \_bgroup 
+     {\_bgroup \_aftergroup\_vfootA \_afterassignment\_ignorespaces \_let\_next=}{\_vfootB}%
 }
-\_def\_vfootA{\_strut\_egroup}
-\_def\_vfootB #1{#1\_vfootA}
+\_def\_vfootA{\_unskip\_strut\_isnextchar\_colorstackpop\_closefncolor\_vfootF}
+\_def\_vfootB #1{#1\_uskip\_strut\_vfootF}
+\_def\_vfootF{\_egroup} % close \_insert\_footins\_bgroup
+\_def\_closefncolor#1{#1\_isnextchar\_colorstackpop\_closefncolor\_vfootF}
 \_def \_footstrut {\_vbox to\_splittopskip{}}
 \_skip\_footins=\_bigskipamount % space added when footnote is present
 \_count\_footins=1000 % footnote magnification factor (1 to 1)

Modified: trunk/Master/texmf-dist/tex/luatex/optex/parameters.opm
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/optex/parameters.opm	2020-04-11 15:57:15 UTC (rev 54649)
+++ trunk/Master/texmf-dist/tex/luatex/optex/parameters.opm	2020-04-11 21:25:25 UTC (rev 54650)
@@ -97,6 +97,9 @@
    and set default page dimensions as A4, no letter.
    \_cod -----------------------------
 
+\_emergencystretch=20pt % we want to use third pass of aparagraph building algoritmh
+                        % we need not to keep the compatibility with old documents
+
 \_clubpenalty=10000    % after first line of paragraph
 \_widowpenalty=10000   % before last line of paragraph
 
@@ -121,6 +124,7 @@
    \_cod -----------------------------
 
 \_def\_plaintexsetting{%
+   \_emergencystretch=0pt
    \_clubpenalty=150 
    \_widowpenalty=150
    \_pdfvorigin=1in
@@ -242,14 +246,16 @@
    The default item mark used between `\bgitems` and `\enditems` is bullet.
    The `\everyitem` token list is applied in vertical mode
    at the start of each item. 
-   The `\everybegitems` token list is applied after group is openem by
+   The `\everylist` token list is applied after group is openem by
    `\begitems`.
    \_cod -----------------------------
 
 \_newtoks\_defaultitem  \_defaultitem={$\_bullet$\_enspace}
 \_newtoks\_everyitem
-\_newtoks\_everybegitems
-\_public \defaultitem \everyitem \everybegitems ;
+\_newtoks\_everylist
+\_newskip \_listskipamount  \_listskipamount=\_medskipamount
+\_newcount \_ilevel
+\_public \defaultitem \everyitem \everylist \listskipamount \ilevel ;
 
    \_doc -----------------------------
    The `\tit` macro includes `\vglue\titskip` above the title of the document.
@@ -417,7 +423,24 @@
 \_newtoks \_pgbackground   \_pgbackground={} % for page background
 \_public \pgbackground  ;
 
+   \_doc -----------------------------
+   The parameters used in `\inoval` and `\incircle` macros.
+   The default values (documented in user manual) are set in the macros.
+   User can re-set thse values using tokens \ovalparams, \circleparams. 
+   \_cod -----------------------------
 
+\_newtoks \_ovalparams
+\_newtoks \_circleparams
+%\_ovalparams={\_roundness=2pt \_fcolor=\Yellow \_lcolor=\Red \_lwidth=.5bp 
+%              \_shadow=N \_overlapmargins=N \_hhkern=0pt \_vvkern=0pt }
+%\_circleparams={\_ratio=1 \_fcolor=\Yellow \_lcolor=\Red \_lwidth=.5bp 
+%                \_shadow=N \_overlapmargins=N \_hhkern=3pt \_vvkern=3pt}
+
+\_newdimen \_roundness    \_roundness=5mm % used in \clippingoval macro
+
+\_public \ovalparams \circleparams \roundness ;
+
+
 \_endcode %----------------------------------------------------
 
 The behavior of document processing by \OpTeX/ is

Modified: trunk/Master/texmf-dist/tex/luatex/optex/sections.opm
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/optex/sections.opm	2020-04-11 15:57:15 UTC (rev 54649)
+++ trunk/Master/texmf-dist/tex/luatex/optex/sections.opm	2020-04-11 21:25:25 UTC (rev 54650)
@@ -128,10 +128,13 @@
 \_newcount \_fnum     % figure numbers
 \_newcount \_dnum     % numbered display maths
 
-\_def \_chapx {\_incr\_chapnum \_secnum=0 \_seccnum=0 \_tnum=0 \_fnum=0 \_dnum=0 \_lfnotenum=0 }
-\_def \_secx  {\_incr\_secnum             \_seccnum=0 \_tnum=0 \_fnum=0 \_dnum=0 }
+\_def \_chapx {\_incr\_chapnum \_secnum=0 \_seccnum=0 \_resetcountchap \_lfnotenum=0 }
+\_def \_secx  {\_incr\_secnum             \_seccnum=0 \_resetcountsec }
 \_def \_seccx {\_incr\_seccnum } 
 
+\_def \_resetcountchap {\_tnum=0 \_fnum=0 \_dnum=0 }
+\_def \_resetcountsec  {\_tnum=0 \_fnum=0 }
+
 \_def \_thechapnum {\_the\_chapnum}
 \_def \_thesecnum  {\_othe\_chapnum.\_the\_secnum}
 \_def \_theseccnum {\_othe\_chapnum.\_the\_secnum.\_the\_seccnum}
@@ -350,6 +353,55 @@
 }
 \_public \eqmark ;
 
+   \_doc -----------------------------
+   The `\numberedpar <letter>{<name>}` is implemented here.
+   You can say `\let\resetcountsec=\relax` if you don't want to reset
+   counters A, B, C, D, E nor `\fnum` nor `\tnum` in sections, but only in
+   chapters. Or you can define you own concept of `\_chapx` and `\_secx`
+   macros (see above). Then you will want to re-define `\_theAnum`, `\_thefnum` 
+   etc. macros. 
+   \_cod -----------------------------
+
+\_newcount\_counterA \_newcount\_counterB \_newcount\_counterC 
+\_newcount\_counterD \_newcount\_counterE
+
+\_def\_resetcounters{\_counterA=0 \_counterB=0 \_counterC=0 \_counterD=0 \_counterE=0 }
+\_addto \_resetcountchap {\_resetcounters}
+\_addto \_resetcountsec {\_resetcounters}
+
+\_def \_theAnum {\_othe\_chapnum.\_othe\_secnum.\_the\_counterA}
+\_def \_theBnum {\_othe\_chapnum.\_othe\_secnum.\_the\_counterB}
+\_def \_theCnum {\_othe\_chapnum.\_othe\_secnum.\_the\_counterC}
+\_def \_theDnum {\_othe\_chapnum.\_othe\_secnum.\_the\_counterD}
+\_def \_theEnum {\_othe\_chapnum.\_othe\_secnum.\_the\_counterE}
+
+\_def\_numberedpar#1#2{\_ea \_incr \_csname _counter#1\_endcsname
+   \_def\_tmpa{#1}\_def\_tmpb{#2}\_numberedparparam}
+\_optdef\_numberedparparam[]{%
+   \_ea \_printnumberedpar \_csname _the\_tmpa num\_ea\_endcsname\_ea{\_tmpb}}
+
+   \_doc -----------------------------
+   The `\_printnumberedpar \theXnum {<name>}` opens numbered paragraph and
+   prints it. The optional parameter is in `\_the\_opt`. You can re-define
+   it if you need another design.
+
+   `\_printnumberedpar` need not to be re-define if you only need to print
+   Theorems in italic and to insert vertical skips (for example). You can do this 
+   by the following:
+   \_begtt
+   \def\theorem    {\medskip\bgroup\it \numberedpar A{Theorem}}
+   \def\endtheorem {\par\egroup\medskip}
+   \_endtt
+   \theorem Let $M$ be... \endtheorem
+   \_cod -----------------------------
+
+\_def \_printnumberedpar #1#2{\_par
+   \_noindent\_wlabel #1%
+   {\bf #2 #1\_istoksempty\_opt\_iffalse \_space \_the\_opt \_fi.}\_space
+   \_ignorespaces
+}
+\_public \numberedpar ;
+
+
 \_endcode % -------------------------------------
 
-

Modified: trunk/Master/texmf-dist/tex/luatex/optex/slides.opm
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/optex/slides.opm	2020-04-11 15:57:15 UTC (rev 54649)
+++ trunk/Master/texmf-dist/tex/luatex/optex/slides.opm	2020-04-11 21:25:25 UTC (rev 54650)
@@ -69,15 +69,15 @@
    the next text after `\pg+`. 
    \_cod -----------------------------
 
-\_newcount\_ilevel  \_newcount\_gilevel
+\_newcount\_gilevel
 \_def\*{*}
 \_adef*{\_startitem}
 \_sdef{_item:X}{\Blue\_raise.2ex\_fullrectangle{.8ex}\_kern.5em}
 \_sdef{_item:x}{\Blue\_raise.3ex\_fullrectangle{.6ex}\_kern.4em}
 \_style X
-\_addto\_begitems{\_style x }\public \begitems ;
 \_def\_egroups{\_par\_global\_gilevel=\_ilevel \_egroup}
-\_everybegitems={\_advance\_ilevel by1 \_addto\_egroups{\_egroup}}
+\_everylist={\_novspaces \_ifcase\_ilevel \_or \_style x \_else \_style - \_fi
+   \_addto\_egroups{\_egroup}}
 
    \_doc -----------------------------
    The default values of `\pg;`, `\pg+` and `\pg.` are very simple.

Modified: trunk/Master/texmf-dist/tex/luatex/optex/styles.opm
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/optex/styles.opm	2020-04-11 15:57:15 UTC (rev 54649)
+++ trunk/Master/texmf-dist/tex/luatex/optex/styles.opm	2020-04-11 21:25:25 UTC (rev 54650)
@@ -1,6 +1,6 @@
 %% This is part of OpTeX project, see http://petr.olsak.net/optex
 
-\_codedecl \report {Basic styles of OpTeX <2020-03-18>} % preloaded in format
+\_codedecl \report {Basic styles of OpTeX <2020-03-28>} % preloaded in format
 
    \_doc -----------------------------
    The `{\boxlines <line-1><eol><line-2><eol>...<line-n><eol>}`
@@ -28,6 +28,7 @@
 
 \_def\_report{
    \_typosize[11/13.2]
+   \_vsize=\_dimexpr \_topskip + 52\_baselineskip \_relax % added 2020-03-28
    \_let\_titfont=\_chapfont
    \_titskip=3ex
    \_eoldef\_author##1{\_removelastskip\_bigskip
@@ -42,6 +43,7 @@
    \_def\_subject{{\_bf \_mtext{subj}: }}
    \_public \address \subject ;
    \_typosize[11/14]
+   \_vsize=\_dimexpr \_topskip + 49\_baselineskip \_relax % added 2020-03-28
    \_parindent=0pt
    \_parskip=\_medskipamount
    \_nopagenumbers

Modified: trunk/Master/texmf-dist/tex/luatex/optex/verbatim.opm
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/optex/verbatim.opm	2020-04-11 15:57:15 UTC (rev 54649)
+++ trunk/Master/texmf-dist/tex/luatex/optex/verbatim.opm	2020-04-11 21:25:25 UTC (rev 54650)
@@ -1,6 +1,6 @@
 %% This is part of OpTeX project, see http://petr.olsak.net/optex
 
-\_codedecl \begtt {Verbatim <2020-03-18>} % preloaded in format
+\_codedecl \begtt {Verbatim <2020-03-21>} % preloaded in format
 
    \_doc ----------------------------
    The internal parameters for verbatim macros are set. 
@@ -146,7 +146,7 @@
    \_fi
 }
 \_def\_prepareverbdata#1#2{\_def#1{#2}}
-\_def\_printverbline#1{\_penalty \_ttpenalty \_indent \_printverblinenum #1 \par}
+\_def\_printverbline#1{\_penalty \_ttpenalty \_indent \_printverblinenum #1\par}
 \_def\_initverblinenum{\_tenrm \_thefontscale[700]\_ea\_let\_ea\_sevenrm\_the\_font}
 \_def\_printverblinenum{\_global\_advance\_ttline by1 \_llap{\_sevenrm \_the\_ttline\_kern.9em}}
 

Modified: trunk/Master/tlpkg/libexec/ctan2tds
===================================================================
--- trunk/Master/tlpkg/libexec/ctan2tds	2020-04-11 15:57:15 UTC (rev 54649)
+++ trunk/Master/tlpkg/libexec/ctan2tds	2020-04-11 21:25:25 UTC (rev 54650)
@@ -2333,6 +2333,7 @@
  'ofs',                 'generic',
  'oinuit',              'fonts',
  'oldlatin',            'fonts', 
+ 'optex',		'luatex',
  'orkhun',              'fonts',
  'ot2cyr',              'fonts',
  'pacioli',             'fonts',



More information about the tex-live-commits mailing list.