texlive[63325] Master/texmf-dist: optex (17may22)

commits+karl at tug.org commits+karl at tug.org
Tue May 17 22:11:50 CEST 2022


Revision: 63325
          http://tug.org/svn/texlive?view=revision&revision=63325
Author:   karl
Date:     2022-05-17 22:11:50 +0200 (Tue, 17 May 2022)
Log Message:
-----------
optex (17may22)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/optex/base/README
    trunk/Master/texmf-dist/doc/optex/base/optex-doc.pdf
    trunk/Master/texmf-dist/doc/optex/base/optex-doc.tex
    trunk/Master/texmf-dist/doc/optex/base/optex-math.tex
    trunk/Master/texmf-dist/doc/optex/base/optex-userdoc.tex
    trunk/Master/texmf-dist/tex/optex/base/bib-iso690.opm
    trunk/Master/texmf-dist/tex/optex/base/bib-simple.opm
    trunk/Master/texmf-dist/tex/optex/base/f-heros.opm
    trunk/Master/texmf-dist/tex/optex/base/fams-ini.opm
    trunk/Master/texmf-dist/tex/optex/base/hi-syntax.opm
    trunk/Master/texmf-dist/tex/optex/base/hisyntax-html.opm
    trunk/Master/texmf-dist/tex/optex/base/if-macros.opm
    trunk/Master/texmf-dist/tex/optex/base/lang-data.opm
    trunk/Master/texmf-dist/tex/optex/base/makeindex.opm
    trunk/Master/texmf-dist/tex/optex/base/multicolumns.opm
    trunk/Master/texmf-dist/tex/optex/base/optex.ini
    trunk/Master/texmf-dist/tex/optex/base/others.opm
    trunk/Master/texmf-dist/tex/optex/base/parameters.opm
    trunk/Master/texmf-dist/tex/optex/base/slides.opm
    trunk/Master/texmf-dist/tex/optex/base/table.opm
    trunk/Master/texmf-dist/tex/optex/base/verbatim.opm
    trunk/Master/texmf-dist/tex/optex/pkg/tikz.opm

Added Paths:
-----------
    trunk/Master/texmf-dist/tex/optex/base/f-baskervald.opm

Modified: trunk/Master/texmf-dist/doc/optex/base/README
===================================================================
--- trunk/Master/texmf-dist/doc/optex/base/README	2022-05-17 20:11:18 UTC (rev 63324)
+++ trunk/Master/texmf-dist/doc/optex/base/README	2022-05-17 20:11:50 UTC (rev 63325)
@@ -22,6 +22,13 @@
 
 History:
 
+<1.07> May 2022:
+       Tikz's \foreach works only in its environment.
+       \lipsum syntax enlarged by dot after paragraph num, example: \lipusm[3.].
+       f-baskervald.opm added.
+       expandable \isinlist implemented.
+       bibstyles \. replaced by \: }due to collision with \oldaccents).
+       Fixed a few bugs.
 <1.06> Mar. 2022:
        \transparency selector using attributes implemented.
        Interface to minim (minim-mp.opm, minim-pdf.opm) introduced.

Modified: trunk/Master/texmf-dist/doc/optex/base/optex-doc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/optex/base/optex-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/optex/base/optex-doc.tex	2022-05-17 20:11:18 UTC (rev 63324)
+++ trunk/Master/texmf-dist/doc/optex/base/optex-doc.tex	2022-05-17 20:11:50 UTC (rev 63325)
@@ -21,7 +21,7 @@
 \tit Format Based on Plain \TeX/ and OPmac\fnotemark1
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
-\hfill Version 1.06
+\hfill Version 1.07
 
 \centerline{\it Petr Olšák, 2020, 2021, 2022}
 

Modified: trunk/Master/texmf-dist/doc/optex/base/optex-math.tex
===================================================================
--- trunk/Master/texmf-dist/doc/optex/base/optex-math.tex	2022-05-17 20:11:18 UTC (rev 63324)
+++ trunk/Master/texmf-dist/doc/optex/base/optex-math.tex	2022-05-17 20:11:50 UTC (rev 63325)
@@ -285,8 +285,8 @@
 The primitives \x`\displaystyle`, \x`\textstyle`, \x`\scriptstyle` and
 \x`\scriptscriptstyle` set the given style regardless the default rules. For
 example, you can create a formula in in-line math mode and in $D$ style by
-`$\displaystyle <fomula>$` or a formula in display mode and $T$ style can be printed
-by `$$\textstyle <fomrula>$$`.
+`$\displaystyle <formula>$` or a formula in display mode and $T$ style can be printed
+by `$$\textstyle <formula>$$`.
 
 If a subformula is placed below something (below a line from root symbol,
 below a fraction line), then the processed style $D, T, S$ or $SS$ is
@@ -717,7 +717,7 @@
 \_def\_marm {\_inmath{\_rmavariables \_rmdigits}} % \_mamrm is used in \rm
 \endtt
 %
-`\_inmath` runs it parameter only in math mode and sets the math alphabets.
+`\_inmath` runs its parameter only in math mode and sets the math alphabets.
 You can see the file `unimath-codes.opm` where all these selectors are
 defined. You can redefine them. For example, \OpTeX/ defines `\bf` as a math
 alphabet selector that selects sans serif bold in math. This is the common

Modified: trunk/Master/texmf-dist/doc/optex/base/optex-userdoc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/optex/base/optex-userdoc.tex	2022-05-17 20:11:18 UTC (rev 63324)
+++ trunk/Master/texmf-dist/doc/optex/base/optex-userdoc.tex	2022-05-17 20:11:50 UTC (rev 63325)
@@ -1775,6 +1775,9 @@
 The \^`\lipsum` macro is equivalent to \^`\lorem`. Example: \^`\lipsum[1-150]`
 prints all prepared paragraphs.
 
+If the dot follows the argument before closing `]` (for example \^`\lipsum[3.]`)
+then only first sentence from given paragraph is printed.
+
 \secc Logos
 %%%%%%%%%%
 

Modified: trunk/Master/texmf-dist/tex/optex/base/bib-iso690.opm
===================================================================
--- trunk/Master/texmf-dist/tex/optex/base/bib-iso690.opm	2022-05-17 20:11:18 UTC (rev 63324)
+++ trunk/Master/texmf-dist/tex/optex/base/bib-iso690.opm	2022-05-17 20:11:50 UTC (rev 63325)
@@ -1,6 +1,6 @@
 % This is part of the OpTeX project, see http://petr.olsak.net/optex
 
-\_codedecl \_undefined {BIB style (iso690) <2022-02-04>} % loaded on demand by \usebib
+\_codedecl \_undefined {BIB style (iso690) <2022-05-10>} % loaded on demand by \usebib
 
 \_ifx\_optexbibstyle\_undefined \_errmessage
    {This file can be read by: \_string\usebib/? (iso690) bibfiles command only}
@@ -7,13 +7,14 @@
    \_endinput \_fi
 
    \_doc -----------------------------
-   \`\_maybetod` (alias `\.` in the style file group) does not put the second dot.
+   \`\_maybetod` (alias `\:` in the style file group) does not put the second dot.
    \_cod -----------------------------
 
 \_def\_maybedot{\_ifnum\_spacefactor=\_sfcode`\.\_relax\_else.\_fi}
 \_tmpnum=\_sfcode`\. \_advance\_tmpnum by-2 \_sfcode`\.=\_tmpnum
 \_sfcode`\?=\_tmpnum \_sfcode`\!=\_tmpnum
-\_let\.=\_maybedot  % prevents from double periods
+\_let\:=\_maybedot  % prevents from double periods
+\_ifx\.\_undefined \_let\.=\_maybedot \_fi % for backward compatibility
 
    \_doc -----------------------------
    Option field.
@@ -211,13 +212,13 @@
 }
 \_def\_bookgeneric#1{%
    \_bprinta [howpublished]  {[*].\ }{}%
-   \_bprintb [edition]    {\_doedition{##1}\.\ }{}%
+   \_bprintb [edition]    {\_doedition{##1}\:\ }{}%
    \_bprinta [ednote]     {*.\ }{}%
    \_bprinta [address]    {*\_bprintv[publisher]{:}{\_bprintv[year]{,}{.}}\ }{\_bibwarninga}%
    \_bprinta [publisher]  {*\_bprintv[year]{,}{.}\ }{\_bibwarninga}%
    \_bprintb [year]       {\_doyear{##1}\_bprintv[citedate]{\_bprintv[numbering]{.}{}}{.}\ }%
                                                                                      {\_bibwarning}%
-   \_bprinta [numbering]  {\_preparenumbering*\_bprintv[citedate]{}{\.}\ }{}%
+   \_bprinta [numbering]  {\_preparenumbering*\_bprintv[citedate]{}{\:}\ }{}%
    \_bprinta [citedate]   {\_docitedate*///\_relax.\ }{}%
    #1%
    \_bprinta [series]     {*.\ }{}%
@@ -227,26 +228,26 @@
    \_bprintb [url]        {\_preurl\_url{##1}. }{}%
 }
 \_sdef{_print:book}{%
-   \_bprintb [!author]    {\_doauthor1{##1}\.\ }{\_bibwarning}%
-   \_bprintb [title]      {{\_em##1}\_bprintc\_titlepost{\.\ *}\_bprintv[howpublished]{}{\.}\ }%
+   \_bprintb [!author]    {\_doauthor1{##1}\:\ }{\_bibwarning}%
+   \_bprintb [title]      {{\_em##1}\_bprintc\_titlepost{\:\ *}\_bprintv[howpublished]{}{\:}\ }%
                                                                                      {\_bibwarning}%
    \_bookgeneric{}%
 }
 \_sdef{_print:article}{%
    \_biboptionvalue{journalpost}\_journalpost
-   \_bprintb [!author]   {\_doauthor1{##1}\.\ }{\_bibwarning}%
+   \_bprintb [!author]   {\_doauthor1{##1}\:\ }{\_bibwarning}%
    \_bprinta [title]     {*.\ \_bprintc\_titlepost{*.\ }}{\_bibwarning}%
-   \_bprintb [journal]   {{\_em##1}\_bprintc\_journalpost{\.\ *}\_bprintv[howpublished]{}{\.}\ }%
+   \_bprintb [journal]   {{\_em##1}\_bprintc\_journalpost{\:\ *}\_bprintv[howpublished]{}{\:}\ }%
                                                                                      {\_bibwarninga}%
    \_bprinta [howpublished]  {[*].\ }{}%
    \_bprinta [address]   {*\_bprintb[publisher]{:}{,}\ }{}%
    \_bprinta [publisher] {*, }{}%
    \_bprinta [month]     {*, }{}%
-   \_bprintb [year]      {\_doyear{##1}\_bprintv[volume,number,pages]{,}{\.}\ }{}%
-   \_bprinta [numbering] {\_preparenumbering*\_bprintv[citedate]{}{\.}\ }
-                        {\_bprinta [volume] {\_prevolume*\_bprintv[number,pages]{,}{\.}\ }{}%
-                         \_bprinta [number] {\_prenumber*\_bprintv[pages]{,}{\.}\ }{}%
-                         \_bprintb [pages]  {\_prepages\_hbox{##1}\_bprintv[citedate]{}{\.}\ }%
+   \_bprintb [year]      {\_doyear{##1}\_bprintv[volume,number,pages]{,}{\:}\ }{}%
+   \_bprinta [numbering] {\_preparenumbering*\_bprintv[citedate]{}{\:}\ }
+                        {\_bprinta [volume] {\_prevolume*\_bprintv[number,pages]{,}{\:}\ }{}%
+                         \_bprinta [number] {\_prenumber*\_bprintv[pages]{,}{\:}\ }{}%
+                         \_bprintb [pages]  {\_prepages\_hbox{##1}\_bprintv[citedate]{}{\:}\ }%
                                                                                      {\_bibwarninga}}%
    \_bprinta [citedate]  {\_docitedate*///\_relax.\ }{}%
    \_bprinta [issn]      {ISSN~*.\ }{}%
@@ -255,11 +256,11 @@
 }
 \_sdef{_print:inbook}{%
    \_let\_bibwarningb=\_relax
-   \_bprintb [!author]   {\_doauthor1{##1}\.\ }{\_bibwarning}%
+   \_bprintb [!author]   {\_doauthor1{##1}\:\ }{\_bibwarning}%
    \_bprinta [title]     {*.\ }{\_bibwarning}%
                         \_Inclause
-   \_bprintb [!editor]   {\_doeditor1{##1}\.\ }{}%
-   \_bprintb [booktitle] {{\_em##1}\_bprintc\_titlepost{\.\ *}\_bprintv[howpublished]{}{\.}\ }%
+   \_bprintb [!editor]   {\_doeditor1{##1}\:\ }{}%
+   \_bprintb [booktitle] {{\_em##1}\_bprintc\_titlepost{\:\ *}\_bprintv[howpublished]{}{\:}\ }%
                                                                                      {\_bibwarning}%
    \_bookgeneric{\_bprintb [pages]  {\_prepages\_hbox{##1}. }{}}%
 }
@@ -267,8 +268,8 @@
 \_slet{_print:conference}{_print:inbook}
 
 \_sdef{_print:thesis}{%
-   \_bprintb [!author]    {\_doauthor1{##1}\.\ }{\_bibwarning}%
-   \_bprintb [title]      {{\_em##1}\_bprintc\_titlepost{\.\ *}\_bprintv[howpublished]{}{\.}\ }%
+   \_bprintb [!author]    {\_doauthor1{##1}\:\ }{\_bibwarning}%
+   \_bprintb [title]      {{\_em##1}\_bprintc\_titlepost{\:\ *}\_bprintv[howpublished]{}{\:}\ }%
                                                                                      {\_bibwarning}%
    \_bprinta [howpublished]  {[*].\ }{}%
    \_bprinta [address]    {*\_bprintv[school]{:}{\_bprintv[year]{,}{.}}\ }{\_bibwarning}%
@@ -288,8 +289,8 @@
 \_sdef{_print:bachelorsthesis}{\_def\_thesistype{\_Mtext{bib.bachthesis}}\_cs{_print:thesis}}
 
 \_sdef{_print:generic}{%
-   \_bprintb [!author]    {\_doauthor1{##1}\.\ }{\_bibwarning}%
-   \_bprintb [title]      {{\_em##1}\_bprintc\_titlepost{\.\ *}\_bprintv[howpublished]{}{\.}\ }%
+   \_bprintb [!author]    {\_doauthor1{##1}\:\ }{\_bibwarning}%
+   \_bprintb [title]      {{\_em##1}\_bprintc\_titlepost{\:\ *}\_bprintv[howpublished]{}{\:}\ }%
                                                                                      {\_bibwarning}%
    \_bprinta [howpublished]  {[*].\ }{}%
    \_bprinta [ednote]     {\_prepareednote*\_bprintv[citedate]{}{.}\ }{\_bibwarning}%
@@ -907,6 +908,7 @@
 
 \_endinput
 
+2022-05-10 ... \. -> \:, collision with \oldaccents fixed.
 2022-02-04 ... \_langinput used in \_setlang
 2021-04-07 ... \biboptions toks declaration moved, bug fixed.
 2020-03-10 ... released

Modified: trunk/Master/texmf-dist/tex/optex/base/bib-simple.opm
===================================================================
--- trunk/Master/texmf-dist/tex/optex/base/bib-simple.opm	2022-05-17 20:11:18 UTC (rev 63324)
+++ trunk/Master/texmf-dist/tex/optex/base/bib-simple.opm	2022-05-17 20:11:50 UTC (rev 63325)
@@ -1,6 +1,6 @@
 %% This is part of the OpTeX project, see http://petr.olsak.net/optex
 
-\_codedecl \_undefined {BIB style (simple) <2020-03-10>} % loaded on demand by \usebib
+\_codedecl \_undefined {BIB style (simple) <2022-05-10>} % loaded on demand by \usebib
 
 \_ifx\_optexbibstyle\_undefined \_errmessage
    {This file can be read by: \_string\usebib/? (simple) bibfiles command only}
@@ -11,7 +11,8 @@
 \_def\_maybedot{\_ifnum\_spacefactor=\_sfcode`\.\_relax\_else.\_fi}
 \_tmpnum=\_sfcode`\. \_advance\_tmpnum by-2 \_sfcode`\.=\_tmpnum 
 \_sfcode`\?=\_tmpnum \_sfcode`\!=\_tmpnum
-\_let\.=\_maybedot  % prevents from double periods
+\_let\:=\_maybedot  % prevents from double periods
+\_ifx\.\_undefined \_let\.=\_maybedot \_fi % for backward compatibility
 
 % Formatting of Author/Editor lists:
 
@@ -53,9 +54,9 @@
 \_sdef{_print:END}{%
    \_bprinta [note]       {*.}{}%
    \_setbibmark
-}  
+}
 \_sdef{_print:book}{%
-   \_bprinta [!author]    {*\.\ }{\_bibwarning}%
+   \_bprinta [!author]    {*\:\ }{\_bibwarning}%
    \_bprintb [title]      {{\_em##1}.\ }{\_bibwarning}%
    \_bprinta [edition]    {*~\_mtext{bib.edition}.\ }{}%
    \_bprinta [address]    {*: }{\_bibwarning}%
@@ -65,7 +66,7 @@
    \_bprintb [url]        {\_preurl\_url{##1}. }{}%
 }
 \_sdef{_print:article}{%
-   \_bprinta [!author]    {*\.\ }{\_bibwarning}%
+   \_bprinta [!author]    {*\:\ }{\_bibwarning}%
    \_bprinta [title]      {*.\ }{\_bibwarning}%
    \_bprintb [journal]    {{\_em##1}.\ }{\_bibwarning}%
    \_bprinta [year]       {*, }{}%
@@ -75,7 +76,7 @@
    \_bprintb [doi]        {DOI~\_ulink[http://dx.doi.org/##1]{##1}.\ }{}%
 }
 \_sdef{_print:inbook}{%
-   \_bprinta [!author]    {*\.\ }{\_bibwarning}%
+   \_bprinta [!author]    {*\:\ }{\_bibwarning}%
    \_bprintb [title]      {{\_em##1.}\ }{\_bibwarning}%
                          In:~%
    \_bprinta [!editor]    {*,~eds.\ }{}%
@@ -91,7 +92,7 @@
 \_slet{_print:inproceedings}{_print:inbook}
 
 \_sdef{_print:incolection}{%
-   \_bprinta [!author]    {*\.\ }{\_bibwarning}%
+   \_bprinta [!author]    {*\:\ }{\_bibwarning}%
    \_bprintb [title]      {{\_em##1}.\ }{\_bibwarning}%
    \_bprinta [crossreff]  {In~\_cite[*]. }{%
                          \_bprinta [booktitle]  {*. }{\_bibwarning}%
@@ -104,8 +105,8 @@
                          \_bprintb [url]        {\_preurl\_url{####1}. }{}}%
 }
 \_sdef{_print:conference}{%
-   \_bprinta [!author]    {*\.\ }{\_bibwarning}%
-   \_bprintb [title]      {{\_em##1}\.\ }{\_bibwarning}%
+   \_bprinta [!author]    {*\:\ }{\_bibwarning}%
+   \_bprintb [title]      {{\_em##1}\:\ }{\_bibwarning}%
    \_bprinta [edition]    {*~\_mtext{bib.edition}.\ }{}%
    \_bprinta [address]    {*: }{\_bibwarning}%
    \_bprinta [publisher]  {*, }{\_bibwarning}%
@@ -114,8 +115,8 @@
    \_bprintb [url]        {\_preurl\_url{##1}. }{}%
 }
 \_sdef{_print:thesis}{%
-   \_bprinta [!author]    {*\.\ }{\_bibwarning}%
-   \_bprintb [title]      {{\_em##1}\.\ }{\_bibwarning}%
+   \_bprinta [!author]    {*\:\ }{\_bibwarning}%
+   \_bprintb [title]      {{\_em##1}\:\ }{\_bibwarning}%
    \_bprinta [type]       {*,\ }{\_bibwarning}%
    \_bprinta [school]     {*.\ }{}%
    \_bprinta [address]    {*, }{}%
@@ -123,32 +124,32 @@
    \_bprintb [url]        {\_preurl\_url{##1}. }{}%
 }
 \_sdef{_print:proceedings}{%
-   \_bprinta [!author]    {*\.\ }{\_bibwarning}%
-   \_bprintb [title]      {{\_em##1}\.\ }{\_bibwarning}%
+   \_bprinta [!author]    {*\:\ }{\_bibwarning}%
+   \_bprintb [title]      {{\_em##1}\:\ }{\_bibwarning}%
    \_bprinta [publisher]  {*.\ }{%
                          \_bprinta [organization] {*.\ }{\_bibwarning}}%
 }   
 \_sdef{_print:techreport}{%
-   \_bprinta [!author]    {*\.\ }{\_bibwarning}%
-   \_bprintb [title]      {{\_em##1}\.\ }{\_bibwarning}%
+   \_bprinta [!author]    {*\:\ }{\_bibwarning}%
+   \_bprintb [title]      {{\_em##1}\:\ }{\_bibwarning}%
                          \_mtext{bib.techreport}.
    \_bprinta [institution] {*.\ }{}%
 }
 \_sdef{_print:booklet}{%
-   \_bprinta [!author]    {*\.\ }{\_bibwarning}%
-   \_bprintb [title]      {{\_em##1}\.\ }{\_bibwarning}%
+   \_bprinta [!author]    {*\:\ }{\_bibwarning}%
+   \_bprintb [title]      {{\_em##1}\:\ }{\_bibwarning}%
    \_bprinta [howpublished] {*.\ }{\_bibwarning}%
 }
 \_sdef{_print:manual}{%
-   \_bprinta [!author]    {*\.\ }{}%
-   \_bprintb [title]      {{\_em##1}\.\ }{\_bibwarning}%
+   \_bprinta [!author]    {*\:\ }{}%
+   \_bprintb [title]      {{\_em##1}\:\ }{\_bibwarning}%
    \_bprinta [year]       {*.\ }{}%
    \_bprinta [institution] {*.\ }{}%
    \_bprintb [url]        {\_preurl\_url{##1}. }{}%
 }
 \_sdef{_print:misc}{%
-   \_bprinta [!author]    {*\.\ }{}%
-   \_bprintb [title]      {{\_em##1}\.\ }{}%
+   \_bprinta [!author]    {*\:\ }{}%
+   \_bprintb [title]      {{\_em##1}\:\ }{}%
    \_bprinta [howpublished] {*.\ }{}%
    \_bprinta [institution] {*.\ }{}%
    \_bprinta [series]     {*.\ }{}%

Added: trunk/Master/texmf-dist/tex/optex/base/f-baskervald.opm
===================================================================
--- trunk/Master/texmf-dist/tex/optex/base/f-baskervald.opm	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/optex/base/f-baskervald.opm	2022-05-17 20:11:50 UTC (rev 63325)
@@ -0,0 +1,22 @@
+%% This is part of the OpTeX project, see http://petr.olsak.net/optex
+
+\_famdecl [Baskervald] \Baskervald {Free vaiants of classical Baskerville by ADF}
+        {\caps} {\rm \bf \it \bi} {}
+        {[Baskervaldx-Reg]}
+        {\_def \_fontnamegen {[Baskervaldx-\_currV]:script=latn;\_capsV\_fontfeatures}}
+
+\_wlog{\_detokenize{%
+Modifier:^^J
+ \caps ...... caps & small caps^^J
+}}
+
+\_moddef \resetmod {\_fsetV caps={} \_fvars Reg Bol Ita BolIta }
+\_moddef \caps     {\_fsetV caps=+smcp;\_ffonum; }
+
+\_initfontfamily % new font family must be initialized
+
+\_endcode
+
+See the file `f-heros.opm` for information about principles of such
+font-macro-files.
+


Property changes on: trunk/Master/texmf-dist/tex/optex/base/f-baskervald.opm
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/optex/base/f-heros.opm
===================================================================
--- trunk/Master/texmf-dist/tex/optex/base/f-heros.opm	2022-05-17 20:11:18 UTC (rev 63324)
+++ trunk/Master/texmf-dist/tex/optex/base/f-heros.opm	2022-05-17 20:11:50 UTC (rev 63325)
@@ -23,7 +23,7 @@
    \_loadmath {[FiraMath-Regular]}
    \_addto\_normalmath{\_loadumathfamily 5 {xitsmath-regular}{} }
    \_addto\_boldmath  {\_loadumathfamily 5 {xitsmath-bold}{} }
-   \_addto\frak{\_fam5 }\_addto\cal{\_fam5 }
+   \_addto\_frak{\_fam5 }\_addto\_cal{\_fam5 } \_public \frak \cal ;
    \_normalmath
    \_wterm{MATH-FONT(5): "[XITSMath-Regular/Bold]" -- used for \_string\cal, \_string\frak}
    % \bf, \bi from FiraMath:
@@ -33,7 +33,15 @@
    \_let\_bsansdigits=\_bfdigits
    \_let\_bisansvariables=\_bivariables
    \_let\_bisansgreek=\_bigreek
-   \_Umathchardef \triangle "0 "5 "25B3 \_Umathcode "25B3 "0 "5 "25B3
+   % \_resetmathchars <fam-number> <list of \Umathchardef csnames> ;
+   \_def\_resetmathchars #1{\_chardef\_mafam=#1\_relax \_xargs \_resetmathcharX}
+   \_def\_resetmathcharX#1{\_ea\_resetmathcharY
+      \_directlua{tex.print(string.format("\_pcent08X", \_the#1))}#1}
+   \_def\_resetmathcharY#1#2#3#4#5#6#7#8#9{%
+      \_Umathchardef #9\_numexpr"#3/2\_relax \_mafam "#4#5#6#7#8
+      \_Umathcode "#4#5#6#7#8=\_numexpr"#3/2\_relax \_mafam "#4#5#6#7#8 }
+   \_resetmathchars 5 \bigtriangleup \bigblacktriangleup \blacktriangle
+       \vartriangle \smallblacktriangleright ; % ... etc. you can add more
 \_fi
 
 \_endcode

Modified: trunk/Master/texmf-dist/tex/optex/base/fams-ini.opm
===================================================================
--- trunk/Master/texmf-dist/tex/optex/base/fams-ini.opm	2022-05-17 20:11:18 UTC (rev 63324)
+++ trunk/Master/texmf-dist/tex/optex/base/fams-ini.opm	2022-05-17 20:11:50 UTC (rev 63325)
@@ -95,6 +95,11 @@
    { -,\caps: {\rm\bf\it\bi} }
 \_famalias [BaskervilleF]
 
+\_famfrom {Arkandis Digital Foundry}
+\_faminfo [Baskervald] {Free variants of classical Baskerville by ADF} {f-baskervald}
+   { -,\caps: {\rm\bf\it\bi} }
+\_famalias [Baskervald ADF] \_famalias [ADFBaskerville]
+
 \_faminfo [Erewhon] {Derived from Heuristica with slanted variants} {f-erewhon}
    { -: {\rm\bf\it\bi\sl\bs} \caps: {\rm\bf\it\bi} }
 

Modified: trunk/Master/texmf-dist/tex/optex/base/hi-syntax.opm
===================================================================
--- trunk/Master/texmf-dist/tex/optex/base/hi-syntax.opm	2022-05-17 20:11:18 UTC (rev 63324)
+++ trunk/Master/texmf-dist/tex/optex/base/hi-syntax.opm	2022-05-17 20:11:50 UTC (rev 63325)
@@ -1,6 +1,6 @@
 %% This is part of the OpTeX project, see http://petr.olsak.net/optex
 
-\_codedecl \hisyntax {Syntax highlighting of verbatim listings <2020-04-04>} % preloaded in format
+\_codedecl \hisyntax {Syntax highlighting of verbatim listings <2022-04-04>} % preloaded in format
 
    \_doc -----------------------------
    The macros `\replfromto` and `\replthis` manipulate the
@@ -99,12 +99,9 @@
       \_ifcsname _hisyntax\_tmpa\_endcsname
           \_ifcsname hicolors\_tmpa\_endcsname
               \_cs{_hicolors\_tmpa}=\_cs{hicolors\_tmpa}%
-          \_else
-              \_if^\_the\_hicolors^\_else
-                  \_ifcsname _hicolors\_tmpa\_endcsname
-                      \_global\_cs{_hicolors\_tmpa}=\_hicolors \_global\_hicolors={}%
-          \_fi\_fi\_fi
+          \_fi
           \_ea\_the \_csname _hisyntax\_tmpa\_endcsname % \_the\_hisyntax<name>
+          \_the\_hicolors  % colors which have precedece
       \_else\_opwarning{Syntax "\_tmpa" undeclared (no file hisyntax-\_tmpa.opm)}
    \_fi\_fi
    \_replthis{\_start\n^^J}{}\_replthis{^^J\_end}{^^J}%
@@ -150,17 +147,16 @@
 \OpTeX/ provides `hisyntax-{c,python,tex,html}.opm` files.
 You can take inspiration from these files and declare more languages.
 
-Users can re-declare colors by `\hicolors={...}` This value has precedence
-over `\_hicolors<name>` values declared in the `hicolors-<name>.opm` file.
-The steps are: copy `\_hicolors<name>={...}`
-from `hicolors-<name>.opm` to your document,
-rename it to `\hicolors={...}` and do your own colors modifications.
+Users can re-declare default colors by \^`\hicolors``={<list of color declarations>}`.
+This value has precedence over `\_hicolors<name>` values declared in the
+`hicolors-<name>.opm` file.
+For example \^`\hicolors``={`\^`\hicolor`` S \Brown}` causes all strings in brown color.
 
 Another way to set non-default colors is to declare
 `\newtoks\hicolors<name>` (without the `_` prefix) and set the color palette there.
 It has precedence before `\_hicolors<name>` (with the `_` prefix) declared in
-the `hicolors-<name>.opm` file.
-This is useful when there are more hi-syntax languages used in one document.
+the `hicolors-<name>.opm` file. You must re-declare all colors used in the
+corresponding `hisyntax-<name>.opm` file.
 
 \secl4 Notes for hi-syntax macro writers
 The file `hisyntax-<name>.opm` is read only once and in a \TeX/ group.
@@ -223,3 +219,7 @@
   phase is based on the expansion of the whole verbatim text.
 \enditems
 
+\endinput
+
+2022-05-12 \hicolors can include only selected re-declarations.
+2020-04-04 Introduced.

Modified: trunk/Master/texmf-dist/tex/optex/base/hisyntax-html.opm
===================================================================
--- trunk/Master/texmf-dist/tex/optex/base/hisyntax-html.opm	2022-05-17 20:11:18 UTC (rev 63324)
+++ trunk/Master/texmf-dist/tex/optex/base/hisyntax-html.opm	2022-05-17 20:11:50 UTC (rev 63325)
@@ -1,6 +1,6 @@
 %% This is part of the OpTeX project, see http://petr.olsak.net/optex
 
-\_codedecl\_hisyntaxhtml {Syntax highlighting for html or xml sources <2020-04-03>} 
+\_codedecl\_hisyntaxhtml {Syntax highlighting for html or xml sources <2022-05-12>}
 
 \_newtoks\_hisyntaxhtml  \_newtoks\_hicolorshtml
 
@@ -17,8 +17,9 @@
    \_replthis{<}{\y{_hitaghtml}}
    \_replthis{\_string&}{\y{_hientityhtml}}
 }
-\_gdef\_hitaghtml#1>{\_hitaghtmlA#1\ >}
-\_gdef\_hitaghtmlA#1\ #2>{\z A{<}\z T{#1}\_def\_tmpb{#2^}%
+\_bgroup \_lccode`\~=`\ \_lowercase{\_egroup
+\_gdef\_hitaghtml#1>{\_hitaghtmlA#1~>}
+\_gdef\_hitaghtmlA#1~#2>}{\z A{<}\z T{#1}\_def\_tmpb{#2^}%
   \_if^\_tmpb 
   \_else \_space 
       \_replthis{\ ^}{}\_replfromto{"}{"}{\_histringhtml{"##1"}}\z A{\_tmpb}\_fi
@@ -29,3 +30,5 @@
 
 \_endcode %------------------------------------------------
 
+2022-05-12 \_hitaghtmlA #1~#2: bug fixed
+2020-04-03 released

Modified: trunk/Master/texmf-dist/tex/optex/base/if-macros.opm
===================================================================
--- trunk/Master/texmf-dist/tex/optex/base/if-macros.opm	2022-05-17 20:11:18 UTC (rev 63324)
+++ trunk/Master/texmf-dist/tex/optex/base/if-macros.opm	2022-05-17 20:11:50 UTC (rev 63325)
@@ -1,6 +1,6 @@
 %% This is part of the OpTeX project, see http://petr.olsak.net/optex
 
-\_codedecl \newif {Special if-macros, is-macros and loops <2021-08-02>} % preloaded in format
+\_codedecl \newif {Special if-macros, is-macros and loops <2022-05-04>} % preloaded in format
 
    \_doc ----------------------------
    \secc Classical \code{\\newif}
@@ -37,8 +37,8 @@
    \endtt
    \_cod ----------------------------
 
-\_def\_afterfi#1#2\_fi{\_fi#1}
-\_def\afterfi#1#2\fi{\_fi#1}
+\_long\_def \_afterfi#1#2\_fi{\_fi#1}
+\_long\_def \afterfi#1#2\fi{\_fi#1}
 
    \_doc ----------------------------
    \secc Loops
@@ -177,7 +177,7 @@
    \_long\_edef#1##1{\_ea\_noexpand\_csname _body:\_csstring#1\_endcsname
                      ##1\_the\_toks0 \_noexpand\_finbody}%
    \_foreachdefA#1{#2}}
-\_def\_foreachdefA#1#2#3{%
+\_long\_def\_foreachdefA#1#2#3{%
    \_long\_sdef{_body:\_csstring#1}#2{\_testparam##1..\_iftrue #3\_cs{_body:\_csstring#1\_ea}\_fi}}
 
 \_public \foreachdef ;
@@ -222,7 +222,7 @@
    The macro is expandable.
    \_cod ----------------------------
 
-\_def\_isequal#1#2#3{\_directlua{%
+\_long\_def\_isequal#1#2#3{\_directlua{%
    if "\_luaescapestring{\_detokenize{#1}}"=="\_luaescapestring{\_detokenize{#2}}"
    then else tex.print("\_nbb unless") end}#3}
 \_public \isequal ;
@@ -232,7 +232,7 @@
    Category codes are ignored in this testing. The macro is expandable.
    \_cod ----------------------------
 
-\_def\_ismacro#1{\_ea\_isequal\_ea{#1}}
+\_long\_def\_ismacro#1{\_ea\_isequal\_ea{#1}}
 \_public \ismacro ;
 
    \_doc ----------------------------
@@ -246,13 +246,13 @@
    \_doc ----------------------------
    \`\isinlist` `\list{<text>}\iftrue` is true if the
    `<text>` is included the macro body of the `\list`.
-   The category codes are relevant here. The macro is not expandable.
+   The category codes are relevant here. The macro is expandable.
    \_cod ----------------------------
 
-\_long\_def\_isinlist#1#2{\_begingroup
-   \_long\_def\_tmp##1#2##2\_end/_%
-        {\_endgroup\_if\_relax\_detokenize{##2}\_relax \_ea\_unless\_fi}%
-   \_ea\_tmp#1\_endlistsep#2\_end/_%
+\_long\_def\_isinlist#1#2{%
+   \_immediateassignment\_long\_def\_isinlistA##1#2##2\_end/_%
+        {\_if\_relax\_detokenize{##2}\_relax \_ea\_unless\_fi}%
+   \_ea\_isinlistA#1\_endlistsep#2\_end/_%
 }
 \_public \isinlist ;
 
@@ -304,6 +304,8 @@
 
 \_endcode
 
+2022-05-04 \isinlist created expandable.
+2022-03-30 \afterfi defined as \long.
 2021-08-02 more robust \fornum: \fi moved by \afterfi
 2021-02-03 public version of \loop and \foreach are \long
 2020-05-22 \foreach, \fornum: all settings are global, independent on TeX group

Modified: trunk/Master/texmf-dist/tex/optex/base/lang-data.opm
===================================================================
--- trunk/Master/texmf-dist/tex/optex/base/lang-data.opm	2022-05-17 20:11:18 UTC (rev 63324)
+++ trunk/Master/texmf-dist/tex/optex/base/lang-data.opm	2022-05-17 20:11:50 UTC (rev 63325)
@@ -73,6 +73,10 @@
 \_quotationmarks ru {“”«»}
 % todo
 
+\_langdata uk {Ukrainian} % -----------------------------------------------
+\_langw uk  Глави        Таблиця     Малюнок      Тема
+% todo
+
 \_langdata sk {Slovak}  % ------------------------------------------------
 \_langw sk  Kapitola     Tabuľka     Obrázok      Vec
 \_langb sk  { a } { a~kol.} { vyd.} {vid.~} {ročník~} {č.~} {s.~} {~s.} {,~editor} {,~editori}

Modified: trunk/Master/texmf-dist/tex/optex/base/makeindex.opm
===================================================================
--- trunk/Master/texmf-dist/tex/optex/base/makeindex.opm	2022-05-17 20:11:18 UTC (rev 63324)
+++ trunk/Master/texmf-dist/tex/optex/base/makeindex.opm	2022-05-17 20:11:50 UTC (rev 63325)
@@ -1,6 +1,6 @@
 %% This is part of the OpTeX project, see http://petr.olsak.net/optex
 
-\_codedecl \makeindex {Makeindex and sorting <2022-02-19>} % preloaded in format
+\_codedecl \makeindex {Makeindex and sorting <2022-03-18>} % preloaded in format
 
    \_doc -----------------------------
    \^`\makeindex` implements sorting algorithm at \TeX/ macro-language level.
@@ -438,7 +438,7 @@
 \_def\_iiB #1,{\_if$#1$\_else \_iiC#1/\_relax \_ea\_iiB\_fi}
 \_def\_iiC #1/#2\_relax{\_if$#2$\_else\_iindex{#2#1}\_fi}
 
-\_def\_iid #1 {\_leavevmode\_iindex{#1}#1\_futurelet\_tmp\_iiD\_def\_iitypesaved{}}
+\_def\_iid #1 {\_leavevmode\_iindex{#1}\_def\_iitypesaved{}#1\_futurelet\_tmp\_iiD}
 \_def\_iiD{\_ifx\_tmp,\_else\_ifx\_tmp.\_else\_space\_fi\_fi}
 
 \_def\_iis #1 #2{{\_def~{ }\_global\_sdef{_,#1}{#2}}\_ignorespaces}
@@ -450,6 +450,7 @@
 
 \_endcode % -------------------------------------
 
+2022-03-18 \iid didn't ignore space, bug fixed
 2022-02-19 \_sotringdataen etc. moved to lang-data.opm file
 2021-02-15 \_expandafter -> \_ea
 2021-02-01 secodary sorting: start from code 65

Modified: trunk/Master/texmf-dist/tex/optex/base/multicolumns.opm
===================================================================
--- trunk/Master/texmf-dist/tex/optex/base/multicolumns.opm	2022-05-17 20:11:18 UTC (rev 63324)
+++ trunk/Master/texmf-dist/tex/optex/base/multicolumns.opm	2022-05-17 20:11:50 UTC (rev 63325)
@@ -1,9 +1,23 @@
 %% This is part of the OpTeX project, see http://petr.olsak.net/optex
 
-\_codedecl \begmulti {Balanced columns <2021-05-20>} % preloaded in format
+\_codedecl \begmulti {Balanced columns <2022-05-05>} % preloaded in format
 
    \_doc -----------------------------
-   This code is documented in detail in the \"\TeX/book naruby", pages 244--246,
+   \`\_betweencolumns` or \`\_leftofcolumns` or \`\_rightofcolumns` include
+   a material printed between columns or left of all columns or right of all
+   columns respectivelly. The \^`\_betweencolumns` must include a
+   stretchability or a material with exactly \^`\colsep` width. You can
+   redefine these macros. For example the rule between colums can be reached
+   by `\_def\_betweencolumns{\hss\vrule\hss}`.\nl
+   \`\_multiskip` puts its material at the start and at the end of
+   \^`\begmulti`...\^`\endmulti`.
+   \_cod -----------------------------
+
+\_def\_betweencolumns{\_hss} \_def\_leftofcolumns{} \_def\_rightofcolumns{}
+\_def\_multiskip{\_medskip}   % space above and below \begmulti...\endmulti
+
+   \_doc -----------------------------
+   The code used here is documented in detail in the \"\TeX/book naruby", pages 244--246,
    free available, \url{http://petr.olsak.net/tbn.html}, but in Czech.
    Roughly speaking, macros complete all material between
    \`\begmulti``<num-columns>` and \`\endmulti`
@@ -12,23 +26,22 @@
    columns with a height of such free space. This is done only if we have
    enough amount of material in `\vbox 6` to fill the full page by columns.
    This is repeated in a loop until we have less amount of material in `\vbox 6`.
-   Then we run `\_balancecolumns` which balances the last part of the columns.
+   Then we run \`\_balancecolumns` which balances the last part of the columns.
    Each part of printed material is distributed to the main vertical list as
    `\hbox{<columns>}` and we need not do any change in the output routine.
 
-   If you have paragraphs in `\begmulti`... `\endmulti` environment then
+   If you have paragraphs in \^`\begmulti`... \^`\endmulti` environment then
    you may say `\raggedright` inside this environment and you can re-assign
    `\widowpenalty` and `\clubppenalty` (they are set to 10000 in \OpTeX/).
    \_cod -----------------------------
 
-\_def\_multiskip{\_medskip}      % space above and below \begmulti...\endmulti
-
 \_newcount\_mullines
 
-\_def\_begmulti #1 {\_par\_bgroup\_wipeepar\_multiskip\_penalty0 \_def\_Ncols{#1}
+\_def\_begmulti #1 {\_par\_bgroup\_wipeepar \_multiskip \_def\_Ncols{#1}
    \_setbox6=\_vbox\_bgroup\_bgroup \_let\_setxhsize=\_relax \_penalty-99
    %% \hsize := column width = (\hsize+\colsep) / n - \colsep
-   \_advance\_hsize by\_colsep
+   \_setbox0=\_hbox{\_leftofcolumns\_rightofcolumns}%
+   \_advance\_hsize by-\_wd0 \_advance\_hsize by\_colsep
    \_divide\_hsize by\_Ncols  \_advance\_hsize by-\_colsep
    \_mullines=0
    \_def\_par{\_ifhmode\_endgraf\_global\_advance\_mullines by\_prevgraf\_fi}%
@@ -37,18 +50,19 @@
    \_ea\_egroup\_ea\_egroup\_ea\_baselineskip\_the\_baselineskip\_relax
    \_dimen0=.8\_maxdimen \_tmpnum=\_dimen0 \_divide\_tmpnum by\_baselineskip
    \_splittopskip=\_baselineskip
-   \_setbox1=\_vsplit6 to0pt
+   \_setbox1=\_vsplit6 to0pt % initialize first \splittopskip in \box6
    %% \dimen1 := the free space on the page
-   \_ifdim\_pagegoal=\_maxdimen \_dimen1=\_vsize \_corrsize{\_dimen1}
-   \_else \_dimen1=\_pagegoal \_advance\_dimen1 by-\_pagetotal \_fi
+   \_penalty0 % initialize \_pageoal
+   \_ifdim\_pagegoal=\_maxdimen \_setcolsize\_vsize
+   \_else \_setcolsize{\_dimexpr\_pagegoal-\_pagetotal}\_fi
    \_ifdim \_dimen1<2\_baselineskip
-     \_vfil\_break \_dimen1=\_vsize \_corrsize{\_dimen1} \_fi
+     \_vfil\_break \_setcolsize\_vsize \_fi
    \_ifnum\_mullines<\_tmpnum \_dimen0=\_ht6 \_else \_dimen0=.8\_maxdimen \_fi
    \_divide\_dimen0 by\_Ncols \_relax
    %% split the material to more pages?
    \_ifdim \_dimen0>\_dimen1 \_splitpart
    \_else \_balancecolumns \_fi  % only balancing
-   \_multiskip\_egroup
+   \_multiskip \_egroup
 }
 
    \_doc -----------------------------
@@ -56,13 +70,9 @@
    \_cod -----------------------------
 
 \_def\_makecolumns{\_bgroup % full page, destination height: \dimen1
-   \_vbadness=20000 \_setbox1=\_hbox{}\_tmpnum=0
-   \_loop \_ifnum\_Ncols>\_tmpnum
-      \_advance\_tmpnum by1
-      \_setbox1=\_hbox{\_unhbox1 \_vsplit6 to\_dimen1 \_hss}
-   \_repeat
-   \_hbox{}\_nobreak\_vskip-\_splittopskip \_nointerlineskip
-   \_line{\_unhbox1\_unskip}
+   \_vbadness=20000 \_dimen6=\_wd6
+   \_createcolumns
+   \_printcolumns
    \_dimen0=\_dimen1 \_divide\_dimen0 by\_baselineskip \_multiply\_dimen0 by\_Ncols
    \_global\_advance\_mullines by-\_dimen0
    \_egroup
@@ -73,7 +83,7 @@
    \_ifnum\_mullines<\_tmpnum \_dimen0=\_ht6 \_else \_dimen0=.8\_maxdimen \_fi
    \_divide\_dimen0 by\_Ncols \_relax
    \_ifx\_balancecolumns\_flushcolumns \_advance\_dimen0 by-.5\_vsize \_fi
-   \_dimen1=\_vsize \_corrsize{\_dimen1}\_dimen2=\_dimen1
+   \_setcolsize\_vsize \_dimen2=\_dimen1
    \_advance\_dimen2 by-\_baselineskip
    %% split the material to more pages?
    \_ifvoid6 \_else
@@ -88,28 +98,50 @@
 
 \_def\_balancecolumns{\_bgroup \_setbox7=\_copy6 % destination height: \dimen0
    \_ifdim\_dimen0>\_baselineskip \_else \_dimen0=\_baselineskip \_fi
-   \_vbadness=20000
-   \_def\_tmp{%
-      \_setbox1=\_hbox{}\_tmpnum=0
-      \_loop \_ifnum\_Ncols>\_tmpnum
-         \_advance\_tmpnum by1
-         \_setbox1=\_hbox{\_unhbox1
-              \_ifvoid6 \_hbox to\_wd6{\_hss}\_else \_vsplit6 to\_dimen0 \_fi\_hss}
-      \_repeat
-   \_ifvoid6 \_else
-      \_advance \_dimen0 by.2\_baselineskip
-      \_setbox6=\_copy7
-      \_ea \_tmp \_fi}\_tmp
-   \_hbox{}\_nobreak\_vskip-\_splittopskip \_nointerlineskip
-   \_hbox to\_hsize{\_unhbox1\_unskip}%
+   \_vbadness=20000 \_dimen6=\_wd6 \_dimen1=\_dimen0
+   \_def\_tmp{\_createcolumns
+      \_ifvoid6 \_else
+         \_advance \_dimen1 by.2\_baselineskip
+         \_setbox6=\_copy7
+         \_ea \_tmp \_fi}\_tmp
+   \_printcolumns
    \_egroup
 }
-\_def\_corrsize #1{%% #1 := #1 + \splittopskip - \topskip
-   \_advance #1 by \_splittopskip \_advance #1 by-\_topskip
+
+   \_doc -----------------------------
+   \`\_setcolsize``<dimen>` sets initial value `\dimen1=<size>` which is
+   used as height of columns at given page.
+   The correction `\splittopskip`$-$`\topskip` is done if the columns start
+   at the top of the page.\nl
+   \`\_createcolumns` prepares columns with given height `\dimen1` side
+   by side to the `\box1`.\nl
+   \`\_printcolumns` prints the columns prepared in `\box1`.
+   The first `\hbox{}` moves typesetting point to the next baseline.
+   Next negative skip ensures that the first line from
+   splitted columns is at this position.
+   \_cod -----------------------------
+
+\_def\_setcolsize #1{\_dimen1=#1\_relax
+   \_ifdim\_dimen1=\_vsize
+      \_advance \_dimen1 by \_splittopskip \_advance \_dimen1 by-\_topskip \_fi
 }
+\_def\_createcolumns{%
+   \_setbox1=\_hbox{\_leftofcolumns}\_tmpnum=0
+   \_loop \_ifnum\_Ncols>\_tmpnum
+      \_advance\_tmpnum by1
+      \_setbox1=\_hbox{\_unhbox1
+         \_ifvoid6 \_hbox to\_dimen6{\_hss}\_else \_vsplit6 to\_dimen1 \_fi
+         \_ifnum\_Ncols=\_tmpnum \_rightofcolumns \_else \_betweencolumns \_fi}%
+   \_repeat
+}
+\_def\_printcolumns{%
+   \_hbox{}\_nobreak\_vskip-\_splittopskip \_nointerlineskip
+   \_hbox to\_hsize{\_unhbox1}%
+}
 \_public \begmulti \endmulti ;
 
 \_endcode % -------------------------------------
 
+2022-05-05 `\_betweencolumns` etc. introduced.
 2021-05-20 Colors inside \begmulti...\endmuti, bug fixed
 2020-03-26 Introduced

Modified: trunk/Master/texmf-dist/tex/optex/base/optex.ini
===================================================================
--- trunk/Master/texmf-dist/tex/optex/base/optex.ini	2022-05-17 20:11:18 UTC (rev 63324)
+++ trunk/Master/texmf-dist/tex/optex/base/optex.ini	2022-05-17 20:11:50 UTC (rev 63325)
@@ -21,7 +21,7 @@
 
 % OpTeX version
 
-\def\optexversion{1.06 Mar.2022}
+\def\optexversion{1.07 May 2022}
 \def\fmtname{OpTeX}
 \let\fmtversion=\optexversion
 

Modified: trunk/Master/texmf-dist/tex/optex/base/others.opm
===================================================================
--- trunk/Master/texmf-dist/tex/optex/base/others.opm	2022-05-17 20:11:18 UTC (rev 63324)
+++ trunk/Master/texmf-dist/tex/optex/base/others.opm	2022-05-17 20:11:50 UTC (rev 63325)
@@ -1,6 +1,6 @@
 %% This is part of the OpTeX project, see http://petr.olsak.net/optex
 
-\_codedecl \uv {Miscenaleous <2020-08-02>} % preloaded in format
+\_codedecl \uv {Miscenaleous <2022-05-04>} % preloaded in format
 
     \_doc ----------------------------
     \`\useOpTeX` and \`\useoptex` are declared as `\relax`.
@@ -99,13 +99,16 @@
     printings of `\lipsum` expandable, use dummy `\lipsum[0]` first.
 
     `\lipsum` adds `\_par` after each printed paragraph. If you don't need
-    such `\_par` here, use \`\lipsumtext``[<number>]`.
-    This macro prints only one selected paragraph <number> and does not add `\_par`.
+    such `\_par` here, use \`\lipsumtext``[<number>]` or `\lipsum[<number>.]`
+    (i.e.\ dot after the parameter). The first case prints the paragraph
+    <number> without the final `\_par` and the second case prints only
+    first sentence from the paragraph <number> using \`\_lipsumdot`.
     \_cod ----------------------------
 
 \_def\_lipsumtext[#1]{\_lipsumload\_cs{_lip:#1}}
-\_def\_lipsum[#1]{\_lipsumA #1\_empty-\_empty\_end}
-\_def\_lipsumA #1-#2\_empty#3\_end{%
+\_def\_lipsum[#1]{\_lipsumA #1.]{#1}}
+\_def\_lipsumA #1.#2]#3{\_ifx^#2^\_lipsumB #1\_empty-\_empty\_end \_else \_lipsumdot[#1].\_fi}
+\_def\_lipsumB #1-#2\_empty#3\_end{%
    \_fornum #1..\_ifx^#2^#1\_else#2\_fi \_do {\_lipsumtext[##1]\_par}}
 \_def\_lipsumload{{%
    \_setbox0=\_vbox{\_tmpnum=0 % vertical mode during \input lipsum.ltd.tex
@@ -115,6 +118,9 @@
       \_opinput {lipsum.ltd.tex}%
       \_global\_let\_lipsumload=\_empty
    }}}
+\_def\_lipsumdot[#1]{\_lipsumload \_ea\_ea\_ea \_lipsumdotA \_csname _lip:#1\_endcsname.\_end}
+\_def\_lipsumdotA #1.#2\_end {#1}
+
 \_public \lipsum \lipsumtext ;
 \_let \lorem=\lipsum
 
@@ -192,6 +198,9 @@
 
 \_endcode
 
+2022-05-04 \lipsum[<num>]. changed to \lipsum[<num>.] to keep macro expandable.
+2022-04-21 syntax \lipsum[<num>]. introduced.
+2022-02-16 declaration of @-names moved here from plain-at.opm.
 2021-08-02 \SetLipsumLanguage added, fix for new lipusm version
 2021-01-04 \lipsumtext introduced
 2020-05-22 \lipsum uses \fornum (expandable after first usage)

Modified: trunk/Master/texmf-dist/tex/optex/base/parameters.opm
===================================================================
--- trunk/Master/texmf-dist/tex/optex/base/parameters.opm	2022-05-17 20:11:18 UTC (rev 63324)
+++ trunk/Master/texmf-dist/tex/optex/base/parameters.opm	2022-05-17 20:11:50 UTC (rev 63325)
@@ -281,11 +281,11 @@
 \_public \tabspaces ;
 
    \_doc -----------------------------
-   If \`\hicolors` is non-empty then its contents is used instead
-   `\_hicolors<name>` declared in the file `hisyntax-<name>.opm`.
+   \`\hicolors` can include a list of \~`\hicolor` commands with
+   re-declarations of default colors
+   mentioned in the `\_hicolors<name>` from `hisyntax-<name>.opm` file.
    The user can give his/her preferences about colors for
    syntax highlighting by this tokens list.
-   The full color set must be declared here.
    \_cod -----------------------------
 
 \_newtoks\_hicolors

Modified: trunk/Master/texmf-dist/tex/optex/base/slides.opm
===================================================================
--- trunk/Master/texmf-dist/tex/optex/base/slides.opm	2022-05-17 20:11:18 UTC (rev 63324)
+++ trunk/Master/texmf-dist/tex/optex/base/slides.opm	2022-05-17 20:11:50 UTC (rev 63325)
@@ -1,6 +1,6 @@
 % This is part of the OpTeX project, see http://petr.olsak.net/optex
 
-\_codedecl \slideshow {Slides style for OpTeX <2022-03-08>} % loaded on demand by \slides
+\_codedecl \slideshow {Slides style for OpTeX <2022-05-12>} % loaded on demand by \slides
 
    \_doc -----------------------------
    Default margins and design is declared here.
@@ -27,6 +27,7 @@
 \_rightskip=0pt plus 1fil
 \_ttindent=10pt
 \_def\_ttskip{\_smallskip}
+\_let\_scolor=\Blue  % secondary color used in default design
 
 \_onlyrgb   % RGB color space is better for presentations
 
@@ -75,8 +76,8 @@
 \_newcount\_gilevel
 \_def\*{*}
 \_adef*{\_relax\_ifmmode*\_else\_ea\_startitem\_fi} % defined also in styles.opm
-\_sdef{_item:X}{\Blue\_raise.2ex\_fullrectangle{.8ex}\_kern.5em}
-\_sdef{_item:x}{\Blue\_raise.3ex\_fullrectangle{.6ex}\_kern.4em}
+\_sdef{_item:X}{\_scolor\_raise.2ex\_fullrectangle{.8ex}\_kern.5em}
+\_sdef{_item:x}{\_scolor\_raise.3ex\_fullrectangle{.6ex}\_kern.4em}
 \_style X
 \_def\_egroups{\_par\_global\_gilevel=\_ilevel \_egroup}
 \_everylist={\_novspaces \_ifcase\_ilevel \_or \_style x \_else \_style - \_fi
@@ -108,12 +109,12 @@
    \_doc -----------------------------
    We need no numbers and no table of contents when using slides.
    The \^`\_printsec` macro is redefined in order the title is centered
-   and typeset in `\Blue`.
+   and typeset in `\_scolor`.
    \_cod -----------------------------
 
-\_def\_titfont{\_typosize[42/60]\_bf \Blue}
+\_def\_titfont{\_typosize[42/60]\_bf \_scolor}
 \_def\_subtitfont{\_typosize[20/30]\_bf}
-\_def\_secfont{\_typosize[25/30]\_bf \Blue}
+\_def\_secfont{\_typosize[25/30]\_bf \_scolor}
 
 \_nonum \_notoc \_let\_resetnonumnotoc=\_relax
 \_def\_printsec#1{\_par
@@ -292,6 +293,7 @@
 
 The user manual of \OpTeX/ slides are in `op-slides.tex` file.
 
+2022-05-12 \Blue -> \_scolor, user can re-define it
 2022-03-08 \Transparent re-defined, \Visible, \Invisible removed
 2022-03-05 \_addextgstate: new syntax used
 2022-03-03 \supereject in \_endslides before \_byehook added

Modified: trunk/Master/texmf-dist/tex/optex/base/table.opm
===================================================================
--- trunk/Master/texmf-dist/tex/optex/base/table.opm	2022-05-17 20:11:18 UTC (rev 63324)
+++ trunk/Master/texmf-dist/tex/optex/base/table.opm	2022-05-17 20:11:50 UTC (rev 63325)
@@ -1,6 +1,6 @@
 %% This is part of the OpTeX project, see http://petr.olsak.net/optex
 
-\_codedecl \table {Basic macros for OpTeX <2022-02-25>} % preloaded in format
+\_codedecl \table {Basic macros for OpTeX <2022-05-03>} % preloaded in format
 
    \_doc -----------------------------
    The result of the \`\table``{<declaration>}{<data>}` macro is inserted into
@@ -59,8 +59,11 @@
    \_doc -----------------------------
    The \`\_tableB` saves `<data>` to `\_tmpb`
    and does \^`\replstring`s to prefix each macro \^`\crl` (etc.)
-   by `\_crcr`. See \^`\_tabreplstrings`. It cannot be used in a `\table` in
-   another `\table`, so \^`\_tabreplstrings` is set to `\relax` locally.
+   by `\_crcr`. See \^`\_tabreplstrings`.
+   The whole `\_tableB` macro is hidden in `{...}` in order to
+   there may be `\table` in `\table` and we want to manipulate with
+   `&` and `\cr` as with normal tokens in the `\_tabreplstrings`, not as
+   the item delimiters of an outer `\table`.
 
    The `\tabskip` value is saved for places between columns
    into the \`\_tabskipmid` macro. Then it runs
@@ -89,10 +92,10 @@
    work in special cases here like \code{`\{`} for example.
    \_cod -----------------------------
 
-\_long\_def\_tableB #1{\_egroup \_def\_tmpb{#1}%
-   \_tablereplstrings \_let\_tablereplstrings=\_relax
-   \_edef\_tabskipmid{\_the\_tabskip}\_tabskip=\_tabskipl
-   \_ifpxto
+\_long\_def\_tableB #1{\_egroup
+   {\_def\_tmpb{#1}\_tablereplstrings
+    \_edef\_tabskipmid{\_the\_tabskip}\_tabskip=\_tabskipl
+    \_ifpxto
       \_edef\_tsizes{\_global\_tsizesum=\_the\_tsizesum \_gdef\_noexpand\_tsizelast{\_tsizelast}}%
       \_tsizesum=\_zo \_def\_tsizelast{0}%
       \_tsize=-\_hsize \_setbox0=\_vbox{\_tablepxpreset \_halign \_tableC}%
@@ -102,9 +105,10 @@
       \_else \_tsize=\_zo \_fi
       \_tsizes % retoring values if there is a \table pxto inside a \table pxto.
       \_setbox0=\_null \_halign \_tableC
-   \_else
+    \_else
       \_halign\_tablew \_tableC
-   \_fi \_egroup
+    \_fi
+   }\_egroup % \_tablebox\_bgroup is in the \_table macro
 }
 \_def\_tableC{\_ea{\_the\_tabdata\_tabskip=\_tabskipr\_cr \_scantextokens\_ea{\_tmpb\_crcr}}}
 
@@ -583,6 +587,8 @@
 
 \_endinput
 
+2022-05-03 \_let\_tablereplstring\_relax removed and {...} encloses whole \_tableB body
+2022-05-02 \_tablereplstrings put in group: bug fix \table in \halign
 2022-02-25 {}->\(begin|end)group in \_tabdeclare(l|r|c), bug when \tabitem(l|r)={$} fixed.
 2021-08-04 \_patamtabdeclarep reimplemented.
 2021-07-16 grouping based on colors via attributes.

Modified: trunk/Master/texmf-dist/tex/optex/base/verbatim.opm
===================================================================
--- trunk/Master/texmf-dist/tex/optex/base/verbatim.opm	2022-05-17 20:11:18 UTC (rev 63324)
+++ trunk/Master/texmf-dist/tex/optex/base/verbatim.opm	2022-05-17 20:11:50 UTC (rev 63325)
@@ -1,6 +1,6 @@
 %% This is part of the OpTeX project, see http://petr.olsak.net/optex
 
-\_codedecl \begtt {Verbatim <2022-02-22>} % preloaded in format
+\_codedecl \begtt {Verbatim <2022-04-23>} % preloaded in format
 
    \_doc ----------------------------
    The internal parameters
@@ -113,6 +113,11 @@
    active characters (defined as {\visiblesp`\ `}).
    Other characters have normal category 11 or 12.
 
+   The `^^J` is appended to verbatim data because we need to be sure that
+   the data are finished by this character. When `\endtt` is preceded by
+   spaces then we need to close these spaces by `^^J` and such line is not
+   printed due to a trick used in \^`\_printverb`.
+
    When `\_prepareverbdata` finishes then `\_startverb` runs `\_printverb` loop
    over each line of the data and does a final work: last skip plus `\noindent`
    in the next paragraph.
@@ -157,6 +162,10 @@
 
    \`\_putttpenalty` puts \^`\_ttpenalty` before second and next lines, but
    not before first line in each `\begtt...\endtt` environment.
+
+   The `\_ttline` is increased here in the `\_printverb` macro because of
+   comments-blocks: the `\_prinverbline` is not processed in comments-blocks
+   but we need to count the `\_ttline`.
    \_cod ----------------------------
 
 \_def\_printverb #1^^J#2{%
@@ -163,18 +172,18 @@
    \_ifx\_printverblinenum\_relax \_else \_incr\_ttline \_fi
    \_testcommentchars #1\_relax\_relax\_relax
    \_iftrue
-      \_ifx\_end#2 \_printcomments\_fi
+      \_ifx\_end#2\_printcomments\_fi
    \_else
       \_ifx\_vcomments\_empty\_else  \_printcomments \_def\_vcomments{}\_fi
-      \_ifx\_end#2
+      \_ifx\_end#2%
          \_bgroup \_adef{ }{}\_def\t{}% if the last line is emtpy, we don't print it
-         \_ifcat&#1&\_egroup \_else\_egroup \_printverbline{#1}\_fi
+         \_ifcat&#1&\_egroup \_ifx\_printverblinenum\_relax \_else \_decr\_ttline \_fi
+         \_else\_egroup \_printverbline{#1}\_fi
       \_else
          \_printverbline{#1}%
       \_fi
    \_fi
-   \_ifx\_end#2 \_let\_next=\_relax \_else \_def\_next{\_printverb#2}\_fi
-   \_next
+   \_unless\_ifx\_end#2\_afterfi{\_printverb#2}\_fi
 }
 \_def\_printverbline#1{\_putttpenalty \_indent \_printverblinenum \_kern\_ttshift #1\_par}
 \_def\_initverblinenum{\_tenrm \_thefontscale[700]\_ea\_let\_ea\_sevenrm\_the\_font}
@@ -253,8 +262,8 @@
    \_loop \_ifeof\_vifile \_tmpnum=\_vinolines\_space \_fi
          \_ifnum\_tmpnum<\_vinolines\_space
          \_vireadline \_advance\_tmpnum by1 \_repeat      %% skip lines
-   \_edef\_ttlinesave{\_ttline=\_the\_ttline}%
-   \_ifnum\_ttline=-1 \_ttline=\_viline \_fi
+   \_edef\_ttlinesave{\_global\_ttline=\_the\_ttline}%
+   \_ifnum\_ttline=-1 \_ttline=\_viline \_else \_let\_ttlinesave=\_relax \_fi
    \_tmpnum=0 \_def\_tmpb{}%
    \_ifnum\_vidolines=0 \_tmpnum=-1 \_fi
    \_ifeof\_vifile \_tmpnum=\_vidolines\_space \_fi
@@ -266,7 +275,7 @@
    \_ea\_prepareverbdata \_ea \_tmpb\_ea{\_tmpb^^J}%
    \_catcode`\ =10 \_catcode`\%=9 % used in \commentchars comments
    \_ea\_printverb \_tmpb\_end
-   \_global\_ttlinesave
+   \_ttlinesave
    \_par \_restoremathsb
    \_endgroup
    \_ttskip
@@ -313,8 +322,8 @@
    \^`\commentchars`. Each block of comments is accumulated to one line
    and then it is re-interpreted by \TeX. So, the ends of lines in the
    comments block are lost. You cannot use macros which
-   need to scan end of lines, for example `\begtt...\endtt` inside the comments
-   block does not work. The character `%` is ignored in comments but you can use `\%`
+   need to scan end of lines, for example `\begtt...\endtt` inside the comments.
+   The character `%` is ignored in comments but you can use `\%`
    for printing or `%` alone for de-activating `\_endpar` from empty
    comment lines.
 
@@ -376,6 +385,7 @@
 \_endinput
 
 History:
+2022-04-23 ... \_ttline counting: bug fixed
 2022-02-22 ... \_reloading removed due to changes in font-select
 2021-04-18 ... \_protrudechars=0 added
 2021-04-07 ... \_savemathsb, \_restoremathsb introduced

Modified: trunk/Master/texmf-dist/tex/optex/pkg/tikz.opm
===================================================================
--- trunk/Master/texmf-dist/tex/optex/pkg/tikz.opm	2022-05-17 20:11:18 UTC (rev 63324)
+++ trunk/Master/texmf-dist/tex/optex/pkg/tikz.opm	2022-05-17 20:11:50 UTC (rev 63325)
@@ -1,8 +1,9 @@
 % This is macro package used by OpTeX, see http://petr.olsak.net/optex
 
-\_codedecl \tikzpicture {TikZ for OpTeX <2022-02-11>}
+\_codedecl \tikzpicture {TikZ for OpTeX <2022-02-18>}
 \_namespace{pgf}
 \_catcode`\@=11
+\_let\_optexforeach=\foreach
 
    \_doc
    This package is \OpTeX/'s compatibility layer for PGF/TikZ. When users do
@@ -143,10 +144,22 @@
    \_ea\_wref\_ea\.Xpgfsysmark\_ea{\_ea{\.tmp}{\_the\_lastxpos}{\_the\_lastypos}}%
 }
 
+   \_doc
+   I decide to keep \OpTeX's `\foreach` outside the Tikz environment.
+   The Tikz's `\foreach` is activated only inside its environment.
+   If you want to use Tikz's `\foreach` outside too then you can say
+   `\let\foreach=\_pgf_foreach`.
+   \_cod
+
+\addto \tikz at startup@env {\let\foreach=\pgffor at foreach}
+\_let\.foreach=\pgffor at foreach  % \_pgf_foreach is \pgffor at foreach
+\_let\foreach=\_optexforeach    % \foreach is OpTeX's \foreach
+
 % don't worry about reseting catcodes - we are at the end of \opinput'ed file
 \_endnamespace
 \_endcode
 
 History:
-2022-03-05  resources management re-implemented
+2022-03-18  Tikz's \foreach only in its environment.
+2022-03-05  resources management re-implemented.
 2021-07-15  released



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