From aa3471d9cc6e366651884f1d1e883511bb15132a Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 17 May 2022 20:11:50 +0000 Subject: optex (17may22) git-svn-id: svn://tug.org/texlive/trunk@63325 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/optex/base/bib-iso690.opm | 44 +++++---- Master/texmf-dist/tex/optex/base/bib-simple.opm | 43 +++++---- Master/texmf-dist/tex/optex/base/f-baskervald.opm | 22 +++++ Master/texmf-dist/tex/optex/base/f-heros.opm | 12 ++- Master/texmf-dist/tex/optex/base/fams-ini.opm | 5 + Master/texmf-dist/tex/optex/base/hi-syntax.opm | 26 ++--- Master/texmf-dist/tex/optex/base/hisyntax-html.opm | 9 +- Master/texmf-dist/tex/optex/base/if-macros.opm | 24 ++--- Master/texmf-dist/tex/optex/base/lang-data.opm | 4 + Master/texmf-dist/tex/optex/base/makeindex.opm | 5 +- Master/texmf-dist/tex/optex/base/multicolumns.opm | 106 ++++++++++++++------- Master/texmf-dist/tex/optex/base/optex.ini | 2 +- Master/texmf-dist/tex/optex/base/others.opm | 19 +++- Master/texmf-dist/tex/optex/base/parameters.opm | 6 +- Master/texmf-dist/tex/optex/base/slides.opm | 14 +-- Master/texmf-dist/tex/optex/base/table.opm | 24 +++-- Master/texmf-dist/tex/optex/base/verbatim.opm | 32 ++++--- Master/texmf-dist/tex/optex/pkg/tikz.opm | 17 +++- 18 files changed, 267 insertions(+), 147 deletions(-) create mode 100644 Master/texmf-dist/tex/optex/base/f-baskervald.opm (limited to 'Master/texmf-dist/tex/optex') 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 ; + \_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 + \_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` values declared in the `hicolors-.opm` file. -The steps are: copy `\_hicolors={...}` -from `hicolors-.opm` to your document, -rename it to `\hicolors={...}` and do your own colors modifications. +Users can re-declare default colors by \^`\hicolors``={}`. +This value has precedence over `\_hicolors` values declared in the +`hicolors-.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` (without the `_` prefix) and set the color palette there. It has precedence before `\_hicolors` (with the `_` prefix) declared in -the `hicolors-.opm` file. -This is useful when there are more hi-syntax languages used in one document. +the `hicolors-.opm` file. You must re-declare all colors used in the +corresponding `hisyntax-.opm` file. \secl4 Notes for hi-syntax macro writers The file `hisyntax-.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{}\iftrue` is true if the `` 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``` 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{}` 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``` sets initial value `\dimen1=` 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``[]`. - This macro prints only one selected paragraph and does not add `\_par`. + such `\_par` here, use \`\lipsumtext``[]` or `\lipsum[.]` + (i.e.\ dot after the parameter). The first case prints the paragraph + without the final `\_par` and the second case prints only + first sentence from the paragraph 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[]. changed to \lipsum[.] to keep macro expandable. +2022-04-21 syntax \lipsum[]. 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` declared in the file `hisyntax-.opm`. + \`\hicolors` can include a list of \~`\hicolor` commands with + re-declarations of default colors + mentioned in the `\_hicolors` from `hisyntax-.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``{}{}` macro is inserted into @@ -59,8 +59,11 @@ \_doc ----------------------------- The \`\_tableB` saves `` 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&\_egroup \_else\_egroup \_printverbline{#1}\_fi + \_ifcat&\_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 diff --git a/Master/texmf-dist/tex/optex/pkg/tikz.opm b/Master/texmf-dist/tex/optex/pkg/tikz.opm index 84743a18b68..87b2f7369a1 100644 --- a/Master/texmf-dist/tex/optex/pkg/tikz.opm +++ b/Master/texmf-dist/tex/optex/pkg/tikz.opm @@ -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@startup@env {\let\foreach=\pgffor@foreach} +\_let\.foreach=\pgffor@foreach % \_pgf_foreach is \pgffor@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 -- cgit v1.2.3