summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/optex/base
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-05-17 20:11:50 +0000
committerKarl Berry <karl@freefriends.org>2022-05-17 20:11:50 +0000
commitaa3471d9cc6e366651884f1d1e883511bb15132a (patch)
tree2c64bd191bd6d55c4ec54889fce9fc62344b5ac3 /Master/texmf-dist/tex/optex/base
parent905fbaa9cf31d5e79a8ad885abae9604045ac1ed (diff)
optex (17may22)
git-svn-id: svn://tug.org/texlive/trunk@63325 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/optex/base')
-rw-r--r--Master/texmf-dist/tex/optex/base/bib-iso690.opm44
-rw-r--r--Master/texmf-dist/tex/optex/base/bib-simple.opm43
-rw-r--r--Master/texmf-dist/tex/optex/base/f-baskervald.opm22
-rw-r--r--Master/texmf-dist/tex/optex/base/f-heros.opm12
-rw-r--r--Master/texmf-dist/tex/optex/base/fams-ini.opm5
-rw-r--r--Master/texmf-dist/tex/optex/base/hi-syntax.opm26
-rw-r--r--Master/texmf-dist/tex/optex/base/hisyntax-html.opm9
-rw-r--r--Master/texmf-dist/tex/optex/base/if-macros.opm24
-rw-r--r--Master/texmf-dist/tex/optex/base/lang-data.opm4
-rw-r--r--Master/texmf-dist/tex/optex/base/makeindex.opm5
-rw-r--r--Master/texmf-dist/tex/optex/base/multicolumns.opm106
-rw-r--r--Master/texmf-dist/tex/optex/base/optex.ini2
-rw-r--r--Master/texmf-dist/tex/optex/base/others.opm19
-rw-r--r--Master/texmf-dist/tex/optex/base/parameters.opm6
-rw-r--r--Master/texmf-dist/tex/optex/base/slides.opm14
-rw-r--r--Master/texmf-dist/tex/optex/base/table.opm24
-rw-r--r--Master/texmf-dist/tex/optex/base/verbatim.opm32
17 files changed, 252 insertions, 145 deletions
diff --git a/Master/texmf-dist/tex/optex/base/bib-iso690.opm b/Master/texmf-dist/tex/optex/base/bib-iso690.opm
index 5c39c6a6e57..fbc17b4a546 100644
--- a/Master/texmf-dist/tex/optex/base/bib-iso690.opm
+++ b/Master/texmf-dist/tex/optex/base/bib-iso690.opm
@@ -1,19 +1,20 @@
% 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}
\_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 @@ Other options in the option field are silently ignored.
\_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
diff --git a/Master/texmf-dist/tex/optex/base/bib-simple.opm b/Master/texmf-dist/tex/optex/base/bib-simple.opm
index ad1fde28bce..fe1730ba67c 100644
--- a/Master/texmf-dist/tex/optex/base/bib-simple.opm
+++ b/Master/texmf-dist/tex/optex/base/bib-simple.opm
@@ -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] {*.\ }{}%
diff --git a/Master/texmf-dist/tex/optex/base/f-baskervald.opm b/Master/texmf-dist/tex/optex/base/f-baskervald.opm
new file mode 100644
index 00000000000..3a9540a5a8f
--- /dev/null
+++ b/Master/texmf-dist/tex/optex/base/f-baskervald.opm
@@ -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.
+
diff --git a/Master/texmf-dist/tex/optex/base/f-heros.opm b/Master/texmf-dist/tex/optex/base/f-heros.opm
index e7055d84f84..7848b7f9d25 100644
--- a/Master/texmf-dist/tex/optex/base/f-heros.opm
+++ b/Master/texmf-dist/tex/optex/base/f-heros.opm
@@ -23,7 +23,7 @@ Modifiers:^^J
\_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 @@ Modifiers:^^J
\_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
diff --git a/Master/texmf-dist/tex/optex/base/fams-ini.opm b/Master/texmf-dist/tex/optex/base/fams-ini.opm
index 1d47504fc59..ba334ef86aa 100644
--- a/Master/texmf-dist/tex/optex/base/fams-ini.opm
+++ b/Master/texmf-dist/tex/optex/base/fams-ini.opm
@@ -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} }
diff --git a/Master/texmf-dist/tex/optex/base/hi-syntax.opm b/Master/texmf-dist/tex/optex/base/hi-syntax.opm
index 040390db51c..586cfed69eb 100644
--- a/Master/texmf-dist/tex/optex/base/hi-syntax.opm
+++ b/Master/texmf-dist/tex/optex/base/hi-syntax.opm
@@ -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 @@ file name must include it in lowercase letters. For example, the file
\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 @@ text.
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.
diff --git a/Master/texmf-dist/tex/optex/base/hisyntax-html.opm b/Master/texmf-dist/tex/optex/base/hisyntax-html.opm
index 3f0be6a23e8..79c94d1999b 100644
--- a/Master/texmf-dist/tex/optex/base/hisyntax-html.opm
+++ b/Master/texmf-dist/tex/optex/base/hisyntax-html.opm
@@ -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
diff --git a/Master/texmf-dist/tex/optex/base/if-macros.opm b/Master/texmf-dist/tex/optex/base/if-macros.opm
index 6c6318b8415..cf28f3dccfa 100644
--- a/Master/texmf-dist/tex/optex/base/if-macros.opm
+++ b/Master/texmf-dist/tex/optex/base/if-macros.opm
@@ -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
diff --git a/Master/texmf-dist/tex/optex/base/lang-data.opm b/Master/texmf-dist/tex/optex/base/lang-data.opm
index 8201976cb55..df6f43d90f1 100644
--- a/Master/texmf-dist/tex/optex/base/lang-data.opm
+++ b/Master/texmf-dist/tex/optex/base/lang-data.opm
@@ -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}
diff --git a/Master/texmf-dist/tex/optex/base/makeindex.opm b/Master/texmf-dist/tex/optex/base/makeindex.opm
index 7e99859719a..e0e7d7ad6cc 100644
--- a/Master/texmf-dist/tex/optex/base/makeindex.opm
+++ b/Master/texmf-dist/tex/optex/base/makeindex.opm
@@ -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
diff --git a/Master/texmf-dist/tex/optex/base/multicolumns.opm b/Master/texmf-dist/tex/optex/base/multicolumns.opm
index f0489630431..83ed0f9e109 100644
--- a/Master/texmf-dist/tex/optex/base/multicolumns.opm
+++ b/Master/texmf-dist/tex/optex/base/multicolumns.opm
@@ -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
diff --git a/Master/texmf-dist/tex/optex/base/optex.ini b/Master/texmf-dist/tex/optex/base/optex.ini
index 3323491b2ca..ad6c1f408b1 100644
--- a/Master/texmf-dist/tex/optex/base/optex.ini
+++ b/Master/texmf-dist/tex/optex/base/optex.ini
@@ -21,7 +21,7 @@
% OpTeX version
-\def\optexversion{1.06 Mar.2022}
+\def\optexversion{1.07 May 2022}
\def\fmtname{OpTeX}
\let\fmtversion=\optexversion
diff --git a/Master/texmf-dist/tex/optex/base/others.opm b/Master/texmf-dist/tex/optex/base/others.opm
index 3b5edcfa982..47bfe573fde 100644
--- a/Master/texmf-dist/tex/optex/base/others.opm
+++ b/Master/texmf-dist/tex/optex/base/others.opm
@@ -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)
diff --git a/Master/texmf-dist/tex/optex/base/parameters.opm b/Master/texmf-dist/tex/optex/base/parameters.opm
index 6e690e5214b..600fe66f152 100644
--- a/Master/texmf-dist/tex/optex/base/parameters.opm
+++ b/Master/texmf-dist/tex/optex/base/parameters.opm
@@ -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
diff --git a/Master/texmf-dist/tex/optex/base/slides.opm b/Master/texmf-dist/tex/optex/base/slides.opm
index 4a006c38c14..39267064baa 100644
--- a/Master/texmf-dist/tex/optex/base/slides.opm
+++ b/Master/texmf-dist/tex/optex/base/slides.opm
@@ -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
diff --git a/Master/texmf-dist/tex/optex/base/table.opm b/Master/texmf-dist/tex/optex/base/table.opm
index fd66bd9ff56..26131897fc9 100644
--- a/Master/texmf-dist/tex/optex/base/table.opm
+++ b/Master/texmf-dist/tex/optex/base/table.opm
@@ -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 @@ after the second one.
\_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.
diff --git a/Master/texmf-dist/tex/optex/base/verbatim.opm b/Master/texmf-dist/tex/optex/base/verbatim.opm
index 3c20ead1b67..201dc66fd9e 100644
--- a/Master/texmf-dist/tex/optex/base/verbatim.opm
+++ b/Master/texmf-dist/tex/optex/base/verbatim.opm
@@ -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,24 +162,28 @@
\`\_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{%
\_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