diff options
author | Karl Berry <karl@freefriends.org> | 2020-04-11 21:25:25 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-04-11 21:25:25 +0000 |
commit | ab92e63936783c8aaee1aa7d8b665db287565e96 (patch) | |
tree | 94358c5ef0027cf454a6c5b2b490c966b0c175d9 /Master/texmf-dist/tex | |
parent | d18e7b8da9786016b16a8024e05eb7f0925823c5 (diff) |
optex, with move to doc/luatex/optex
git-svn-id: svn://tug.org/texlive/trunk@54650 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r-- | Master/texmf-dist/tex/luatex/optex/colors.opm | 31 | ||||
-rw-r--r-- | Master/texmf-dist/tex/luatex/optex/fnotes.opm | 14 | ||||
-rw-r--r-- | Master/texmf-dist/tex/luatex/optex/fonts-opmac.opm | 3 | ||||
-rw-r--r-- | Master/texmf-dist/tex/luatex/optex/graphics.opm | 249 | ||||
-rw-r--r-- | Master/texmf-dist/tex/luatex/optex/lists.opm | 29 | ||||
-rw-r--r-- | Master/texmf-dist/tex/luatex/optex/makeindex.opm | 12 | ||||
-rw-r--r-- | Master/texmf-dist/tex/luatex/optex/multicolumns.opm | 10 | ||||
-rw-r--r-- | Master/texmf-dist/tex/luatex/optex/optex.ini | 4 | ||||
-rw-r--r-- | Master/texmf-dist/tex/luatex/optex/others.opm | 5 | ||||
-rw-r--r-- | Master/texmf-dist/tex/luatex/optex/output.opm | 15 | ||||
-rw-r--r-- | Master/texmf-dist/tex/luatex/optex/parameters.opm | 29 | ||||
-rw-r--r-- | Master/texmf-dist/tex/luatex/optex/sections.opm | 58 | ||||
-rw-r--r-- | Master/texmf-dist/tex/luatex/optex/slides.opm | 6 | ||||
-rw-r--r-- | Master/texmf-dist/tex/luatex/optex/styles.opm | 4 | ||||
-rw-r--r-- | Master/texmf-dist/tex/luatex/optex/verbatim.opm | 4 |
15 files changed, 419 insertions, 54 deletions
diff --git a/Master/texmf-dist/tex/luatex/optex/colors.opm b/Master/texmf-dist/tex/luatex/optex/colors.opm index c4ce83ecd91..90d3d6d7a3e 100644 --- a/Master/texmf-dist/tex/luatex/optex/colors.opm +++ b/Master/texmf-dist/tex/luatex/optex/colors.opm @@ -37,9 +37,9 @@ \_def\_setcmykcolor#1{\_setcolor{\_formatcmyk{#1}}} \_def\_setrgbcolor#1{\_setcolor{\_formatrgb{#1}}} \_def\_setgreycolor#1{\_setcolor{\_formatgrey{#1}}} -\_def\_formatcmyk#1{#1 k #1 K} -\_def\_formatrgb#1{#1 rg #1 RG} -\_def\_formatgrey#1{#1 g #1 G} +\_def\_formatcmyk#1{\_fillstroke{#1 k}{#1 K}} +\_def\_formatrgb#1{\_fillstroke{#1 rg}{#1 RG}} +\_def\_formatgrey#1{\_fillstroke{#1 g}{#1 G}} \_public \setcmykcolor \setrgbcolor \setgreycolor ; \_doc ----------------------------- @@ -50,15 +50,19 @@ The `\onlycmyk` macro does a similar work, it re-defines `\_formatrgb` macro. The Grey color space is unnchanged and works in both main settings (RGB or CMYK) without collisions. + The `\_fillstroke` uses the same color for fills and strokes. + If only fills are needed to declare do `\def\_fillstroke#1#2{#1}`. + If only strokes are needed to declare do `\def\_fillstroke#1#2{#2}`. \_cod ----------------------------- +\_def\_fillstroke#1#2{#1 #2} \_def\_onlyrgb{\_def\Red{\_setrgbcolor{1 0 0}}% \_def\Green{\_setrgbcolor{0 1 0}}\_def\Blue{\_setrgbcolor{0 0 1}}% \_let\_colordef=\_rgbcolordef - \_def\_formatrgb##1{##1 rg ##1 RG}% - \_def\_formatcmyk##1{\_cmyktorgb ##1 ; rg \_cmyktorgb ##1 ; RG}} -\_def\_onlycmyk{\_def\_formatcmyk##1{##1 k ##1 K}% - \_def\_formatrgb##1{\_rgbtocmyk ##1 ; k \_rgbtocmyk ##1 ; K}} + \_def\_formatrgb##1{\_fillstroke{##1 rg}{##1 RG}}% + \_def\_formatcmyk##1{\_fillstroke{\_cmyktorgb ##1 ; rg}{\_cmyktorgb ##1 ; RG}}} +\_def\_onlycmyk{\_def\_formatcmyk##1{\_fillstroke{##1 k}{##1 K}}% + \_def\_formatrgb##1{\_fillstroke{\_rgbtocmyk ##1 ; k}{\_rgbtocmyk ##1 ; K}}} \_public \onlyrgb \onlycmyk ; \_doc ----------------------------- @@ -81,7 +85,8 @@ } \_def\_pdfblackcolor{0 g 0 G} \_edef\_currentcolor{\_pdfblackcolor} -\_def\_ensureblackA#1{\_colorstackpush\_pdfblackcolor #1\_colorstackpop} +\_def\_ensureblackA#1{\_global\_let\_openfnotestack=\_openfnotestackA + \_colorstackpush\_pdfblackcolor #1\_colorstackpop} \_doc ----------------------------- The colorstack is initialized here and basic macros @@ -95,6 +100,16 @@ \_def\_colorstackset#1{\_pdfcolorstack\_colorstackcnt set{#1}} \_doc ----------------------------- + We need to open a special color stack for footnotes, because footnotes + can follow on next pages and their colors are independent on colors + used in man page-body. + \_cod ----------------------------- + +%\_mathchardef\_fnotestack=\_pdfcolorstackinit page {0 g 0 G} +% must be in \everyjob^^^ +\_def \_openfnotestackA {\_pdfcolorstack\_fnotestack current} + + \_doc ----------------------------- We use lua codes for RGB to CMYK or CMYK to RGB conversions and for addition color components in the `\colordef` macro. `\_rgbtocmyk <R> <G> <B> ;` expands to <C> <M> <Y> <K>. diff --git a/Master/texmf-dist/tex/luatex/optex/fnotes.opm b/Master/texmf-dist/tex/luatex/optex/fnotes.opm index 9f9a9d3f5e1..91365879a99 100644 --- a/Master/texmf-dist/tex/luatex/optex/fnotes.opm +++ b/Master/texmf-dist/tex/luatex/optex/fnotes.opm @@ -1,6 +1,6 @@ %% This is part of OpTeX project, see http://petr.olsak.net/optex -\_codedecl \fnote {Footnotes, marginal notes OpTeX <2020-03-19>} % loaded in format +\_codedecl \fnote {Footnotes, marginal notes OpTeX <2020-03-20>} % loaded in format \_doc ----------------------------- \begitems @@ -41,16 +41,20 @@ footnote itself, then you can define `\_printfnotemarkA` and `\_printfnotemarkB`. The following example shows an implementation of hyperlinked footnotes (from text to footnote and bacward): - \begtt - \def\_printfnotemarkA{\ilink[fnB:\the\gfnotenum]{\_printfnotemark}\dest[fnA::\the\gfnotenum]} - \def\_printfnotemarkB{\ilink[fnA:\the\gfnotenum]{\_printfnotemark}\dest[fnB::\the\gfnotenum]} - \endtt \_cod ----------------------------- \_def \_printfnotemark {$^{\_fnotenum}$} % default footnote mark \_def \_printfnotemarkA {\_printfnotemark} % footnote marks used in text \_def \_printfnotemarkB {\_printfnotemark} % footnote marks used in front of footnotes +\_def \_fnotelinks#1#2{% <inText color> <inFootnote color> + \_def\_printfnotemarkA{\_link[fnt:\the\_gfnotenum]{\_localcolor#1}{\_printfnotemark}% + \_dest[fnf:\the\_gfnotenum]}% + \_def\_printfnotemarkB{\_link[fnf:\the\_gfnotenum]{\_localcolor#2}{\_printfnotemark}% + \_dest[fnt:\the\_gfnotenum]}% +} +\public \fnotelinks ; + \_doc ---------------------------- Each footnote saves the `\_Xfnote` (without parameter) to the `.ref` file (if `\openref`). We can create the mapping from <gfnotenum> to <pgfnotenum> diff --git a/Master/texmf-dist/tex/luatex/optex/fonts-opmac.opm b/Master/texmf-dist/tex/luatex/optex/fonts-opmac.opm index 20d6d45bf39..7827d76c65a 100644 --- a/Master/texmf-dist/tex/luatex/optex/fonts-opmac.opm +++ b/Master/texmf-dist/tex/luatex/optex/fonts-opmac.opm @@ -1,6 +1,6 @@ %% This is part of OpTeX project, see http://petr.olsak.net/optex -\_codedecl \typosize {Font managing macros from OPmac <2020-02-29>} % loaded in format +\_codedecl \typosize {Font managing macros from OPmac <2020-03-27>} % loaded in format \_protected\_def \_typosize [#1/#2]{% \_textfontsize{#1}\_mathfontsize{#1}\_setbaselineskip{#2}% @@ -45,6 +45,7 @@ \_def\_setmainvalues {% \_mainbaselineskip=\_baselineskip \_mainfosize=\_optsize + \_topskip=\_mainfosize \_splittopskip=\_topskip % added 2020-03-27 \_bf \_it \_bi \_rm \_normalmath % load fonts if \typosize is running firstly \_let \_setmainvalues =\_setmainvaluesL } diff --git a/Master/texmf-dist/tex/luatex/optex/graphics.opm b/Master/texmf-dist/tex/luatex/optex/graphics.opm index d4a868a3d1a..92a1a7a804f 100644 --- a/Master/texmf-dist/tex/luatex/optex/graphics.opm +++ b/Master/texmf-dist/tex/luatex/optex/graphics.opm @@ -1,13 +1,13 @@ %% This is part of OpTeX project, see http://petr.olsak.net/optex -\_codedecl \inspic {Graphics <2020-03-18>} % preloaded in format +\_codedecl \inspic {Graphics <2020-03-29>} % preloaded in format \_doc ----------------------------- `\inspic` accepts old syntax `\inspic <filename><space>` or new syntax `\inspic{<filename>}`. So, we need to define two auxiliary macros `\_inspicA` and `\_inspicB`. - You can include more `\pdfximage` parameters (like `page=`) + You can include more `\pdfximage` parameters (like `page<number>`) in the `\_picparams` macro. All `\inspic` macros are surrounded in `\hbox` in order user can @@ -146,11 +146,11 @@ The `\_scantwodimens` scans two objects with the syntactic rule <dimen> and returns `{<number>}{<number>}` in sp unit. - The `\puttext <down> <right>{<text>}` puts the <text> to desired place: + The `\puttext <right> <up>{<text>}` puts the <text> to desired place: From current point moves <down> and <right>, puts the <text> and returns back. The cuuren tpoint is unchanged after this macro ends. - The `\putpic <down> <right> <width> <height> {<image-file>}` + The `\putpic <right> <up> <width> <height> {<image-file>}` does `\puttext` with the image scaled to desired <width> and <height>. If <with> or <height> is zero, natural dimension is used. The `\nospec` is a shortcut to such natural dimension. @@ -158,18 +158,18 @@ \_def\_scantwodimens{% \_directlua{tex.print(string.format('{\_pcent d}{\_pcent d}', - token.scan_dimen(),token.scan_dimen{}))}% + token.scan_dimen(),token.scan_dimen()))}% } \_def\_puttext{\_ea\_ea\_ea\_puttextA\_scantwodimens} \_def\_puttextA#1#2#3{\_setbox0=\_hbox{{#3}}\_dimen1=#1sp \_dimen2=#2sp \_puttextB} \_def\_puttextB{% - \_ifvmode + \_ifvmode \_ifdim\_prevdepth>0pt \_vskip-\_prevdepth \_relax \_fi \_nointerlineskip \_fi \_wd0=0pt \_ht0=0pt \_dp0=0pt - \_vbox to0pt{\_kern\_dimen1 \_hbox to0pt{\_kern\_dimen2 \_box0\_hss}\_vss}} + \_vbox to0pt{\_kern-\_dimen2 \_hbox to0pt{\_kern\_dimen1 \_box0\_hss}\_vss}} \_def\_putpic{\_ea\_ea\_ea\_putpicA\_scantwodimens} \_def\_putpicA#1#2{\_dimen1=#1sp \_dimen2=#2sp \_ea\_ea\_ea\_putpicB\_scantwodimens} @@ -183,5 +183,240 @@ \_def\nospec{0pt} \_public \puttext \putpic \backgroundpic ; + \_doc ----------------------------- + You can use expandable `\_bp{<dimen>}` convertor from + \TeX/ `<dimen>` (or from an expression accepted by + `\dimexpr` primitive) to a decimal value in big points + (used as natural unit in the PDF format). So, you can write, for example: + \begtt + \pdfliteral{q \_bp{.3\hsize-2mm} \_bp{2mm} m 0 \_bp{-4mm} l S Q} + \endtt + You can use expandable `\_expr{<expression>}` for analogical purposes. + The `<expression>` can include `+-*/()` and decimal numbers in common syntax. + \_cod ----------------------------- + +\_def\_decdigits{3} % digits after decimal point in \_bp and \_expr outputs. +\_def\_pttopb{% + \_directlua{tex.print(string.format('\_pcent.\_decdigits f', + token.scan_dimen()/65781.76))}% pt to bp conversion +} +\def\_bp#1{\_ea\_pttopb\_dimexpr#1\_relax} +\def\_expr#1{\_directlua{tex.print(string.format('\_pcent.\_decdigits f',#1))}} + + \_doc ----------------------------- + `\)circle<x><y>` creates an ellipse with `<x>` axis and `<y>` axix. + The origin is in the center. + `\_oval<x><y><roudness>` creates an oval with `<x>`, `<y>` size and with + given `<roundness>`. The real size is bigger by 2`<roundness>`. The + orgigin is at the left bottom corner. + `\_mv<x><y>{<curve>}` moves current point to `<x>`, `<y>`, crates the + `<curve>` and retuns back the current point. + All these macros are fully expandable and they can be used in the + `\pdfliteral` argument. + \_cod ----------------------------- + +\def\_circle#1#2{\_expr{.5*(#1)} 0 m + \_expr{.5*(#1)} \_expr{.276*(#2)} \_expr{.276*(#1)} \_expr{.5*(#2)} 0 \_expr{.5*(#2)} c + \_expr{-.276*(#1)} \_expr{.5*(#2)} \_expr{-.5*(#1)} \_expr{.276*(#2)} \_expr{-.5*(#1)} 0 c + \_expr{-.5*(#1)} \_expr{-.276*(#2)} \_expr{-.276*(#1)} \_expr{-.5*(#2)} 0 \_expr{-.5*(#2)} c + \_expr{.276*(#1)} \_expr{-.5*(#2)} \_expr{.5*(#1)} \_expr{-.276*(#2)} \_expr{.5*(#1)} 0 c h} + +\def\_oval#1#2#3{0 \_expr{-(#3)} m \_expr{#1} \_expr{-(#3)} l + \_expr{(#1)+.552*(#3)} \_expr{-(#3)} \_expr{(#1)+(#3)} \_expr{-.552*(#3)} + \_expr{(#1)+(#3)} 0 c + \_expr{(#1)+(#3)} \_expr{#2} l + \_expr{(#1)+(#3)} \_expr{(#2)+.552*(#3)} \_expr{(#1)+.552*(#3)} \_expr{(#2)+(#3)} + \_expr{#1} \_expr{(#2)+(#3)} c + 0 \_expr{(#2)+(#3)} l + \_expr{-.552*(#3)} \_expr{(#2)+(#3)} \_expr{-(#3)} \_expr{(#2)+.552*(#3)} + \_expr{-(#3)} \_expr{#2} c + \_expr{-(#3)} 0 l + \_expr{-(#3)} \_expr{-.552*(#3)} \_expr{-.552*(#3)} \_expr{-(#3)} 0 \_expr{-(#3)} c h} + +\def\_mv#1#2#3{1 0 0 1 \_expr{#1} \_expr{#2} cm #3 1 0 0 1 \_expr{-(#1)} \_expr{-(#2)} cm} + + \_doc ----------------------------- + The `\inoval` is an example of `\_oval` usage. + The `\incircle` is an example of `\_circle` usage. + \_cod ----------------------------- + +\_newdimen \_lwidth +\_def\_fcolor{\_let\_fcolorvalue} +\_def\_lcolor{\_let\_lcolorvalue} +\_def\_shadow{\_let\_shadowvalue} +\_def\_overlapmargins{\_let\_overlapmarginsvalue} +\_def\_ratio{\isnextchar ={\_ratioA}{\_ratioA=}} +\_def\_ratioA =#1 {\_def\_ratiovalue{#1}} +\_def\_touppervalue#1{\_ifx#1n\_let#1=N\_fi} + +\_def\_setflcolors#1{% use only in a group + \_def\_setcolor##1{##1}% + \_def\_fillstroke##1##2{##1}% + \_edef#1{\_fcolorvalue}% + \_def\_fillstroke##1##2{##2}% + \_edef#1{#1\_space\_lcolorvalue\_space}% +} + +\_optdef\_inoval[]{\_vbox\_bgroup + \_roundness=2pt \_fcolor=\Yellow \_lcolor=\Red \_lwidth=.5bp + \_shadow=N \_overlapmargins=N \_hhkern=0pt \_vvkern=0pt + \_the\_ovalparams \_relax \_the\_opt \_relax + \_touppervalue\_overlapmarginsvalue \_touppervalue\_shadowvalue + \_ifx\_overlapmarginsvalue N% + \_advance\_hsize by-2\_hhkern \_advance\_hsize by-2\_roundness \_fi + \_setbox0=\_hbox\_bgroup\_bgroup \_aftergroup\_inovalA \_kern\_hhkern \_let\_next=% +} +\_def\_inovalA{\_isnextchar\_colorstackpop\_inovalB\_inovalC} +\_def\_inovalB#1{#1\_isnextchar\_colorstackpop\_inovalB\_inovalC} +\_def\_inovalC{\_egroup % of \setbox0=\hbox\bgroup + \_ifdim\_vvkern=0pt \_else \_ht0=\_dimexpr\_ht0+\_vvkern \_relax + \_dp0=\_dimexpr\_dp0+\_vvkern \_relax \_fi + \_ifdim\_hhkern=0pt \_else \_wd0=\_dimexpr\_wd0+\_hhkern \_relax \_fi + \_ifx\_overlapmarginsvalue N\_dimen0=\_roundness \_dimen1=\_roundness + \_else \_dimen0=-\_hhkern \_dimen1=-\_vvkern \_fi + \_setflcolors\_tmp + \_hbox{\_kern\_dimen0 + \_vbox to0pt{\_kern\_dp0 + \_ifx\_shadowvalue N\_else + \_edef\_tmpb{{\_bp{\_wd0+\_lwidth}}{\_bp{\_ht0+\_dp0+\_lwidth}}{\_bp{\_roundness}}}% + \_doshadow\_oval + \_fi + \_pdfliteral{q \_bp{\_lwidth} w \_tmp + \_oval{\_bp{\wd0}}{\_bp{\_ht0+\_dp0}}{\_bp{\_roundness}} B Q}\_vss}% + \_ht0=\_dimexpr\_ht0+\_dimen1 \_relax \_dp0=\_dimexpr\_dp0+\_dimen1 \_relax + \_box0 + \_kern\_dimen0}% + \_egroup % of \vbox\bgroup +} +\_optdef\_incircle[]{\_vbox\_bgroup + \_ratio=1 \_fcolor=\Yellow \_lcolor=\Red \_lwidth=.5bp + \_shadow=N \_overlapmargins=N \_hhkern=3pt \_vvkern=3pt + \_ea\_the \_ea\_circleparams \_space \_relax + \_ea\_the \_ea\_opt \_space \_relax + \_touppervalue\_overlapmarginsvalue \_touppervalue\_shadowvalue + \_setbox0=\_hbox\_bgroup\_bgroup \_aftergroup\_incircleA \_kern\_hhkern \_let\_next=% +} +\_def\_incircleA {\_isnextchar\_colorstackpop\_incircleB\_incircleC} +\_def\_incircleB #1{#1\_isnextchar\_colorstackpop\_incircleB\_incircleC} +\_def\_incircleC {\_egroup % of \setbox0=\hbox\bgroup + \_wd0=\dimexpr \_wd0+\_hhkern \_relax + \_ht0=\dimexpr \_ht0+\_vvkern \_relax \_dp0=\dimexpr \_dp0+\_vvkern \_relax + \_ifdim \_ratiovalue\_dimexpr \_ht0+\_dp0 > \_wd0 + \_dimen3=\_dimexpr \_ht0+\_dp0 \_relax \_dimen2=\_ratiovalue\_dimen3 + \_else \_dimen2=\_wd0 \_dimen3=\_expr{1/\_ratiovalue}\_dimen2 \fi + \_setflcolors\_tmp + \_ifx\_overlapmarginsvalue N\_dimen0=0pt \_dimen1=0pt + \_else \_dimen0=-\hhkern \_dimen1=-\vvkern \_fi + \_hbox{\_kern\dimen0 + \_ifx\_shadowvalue N\_else + \_edef\_tmpb{{\_bp{\_dimen2+\_lwidth}}{\_bp{\_dimen3+\_lwidth}}{}}% + \_doshadow\_circlet + \_fi + \_pdfliteral{q \_bp{\_lwidth} w \_tmp \_mv{\_bp{.5\_wd0}}{\_bp{(\ht0-\dp0)/2}} + {\_circle{\_bp{\_dimen2}}{\_bp{\_dimen3}} B} Q}% + \_ifdim\_dimen1=0pt \_else + \_ht0=\dimexpr \_ht0+\_dimen1 \_relax \_dp0=\dimexpr \_dp0+\_dimen1 \_relax \_fi + \_box0 + \_kern\_dimen0} + \_egroup % of \vbox\bgroup +} +\_def\_circlet#1#2#3{\_circle{#1}{#2}} + +\_public + \inoval \incircle \ratio \lwidth \fcolor \lcolor \shadow \overlapmargins ; + + \_doc ----------------------------- + A shadow effect is implemented here. The shadow is equal to the + silhouette of the given path in gray-transparent color shifted by + `\shadowmoveto` vector and with blurred boundary. + A waistline with the width 2*`\shadowb` around the boundary is blurred. + The `\shadowlevels` levels of transparent shapes is used for creating + this effect. The `\shadowlevels+1/2` level is equal to the shifted given path. + \_cod ----------------------------- + +\_def\_shadowlevels{9} % number of layers for blurr effect +\_def\_shadowdarknessA{0.025} % transparency of first shadowlevels/2 layers +\_def\_shadowdarknessB{0.07} % transparency of second half of layers +\_def\_shadowmoveto{1.8 -2.5} % vector defines shifting layer (in bp) +\_def\_shadowb{1} % 2*shadowb = blurring area thickness + + \_doc ----------------------------- + The `\_pdfpageresources` primitive is used to define transparency. + It does not work when used in a box. So, we use it at begining of + output routine. The modification of output routine is done only once + when the shadow effect is used first. + \_cod ----------------------------- + +\_def\_insertshadowresources{% + \_global\_addto\_begoutput{\_setshadowresources}% + \_xdef\_setshadowresources{% + \_pdfpageresources{/ExtGState + << + /op1 << /Type /ExtGState /ca \_shadowdarknessA >> + /op2 << /Type /ExtGState /ca \_shadowdarknessB >> + >> + }% + }% + \_global\_let\_insertshadowresources=\_relax +} +\_def\_doshadow#1{\_vbox{% + \_insertshadowresources + \_tmpnum=\_numexpr (\_shadowlevels-1)/2 \_relax + \_edef\_tmpfin{\_the\_tmpnum}% + \_ifnum\_tmpfin=0 \_def\_shadowb{0}\_def\_shadowstep{0}% + \_else \_edef\_shadowstep{\_expr{\_shadowb/\_tmpfin}}\_fi + \_def\_tmpa##1##2##3{\_def\_tmpb + {#1{##1+2*\_the\_tmpnum*\_shadowstep}{##2+2*\_the\_tmpnum*\_shadowstep}{##3}}}% + \_ea \_tmpa \_tmpb + \_def\_shadowlayer{% + \_ifnum\_tmpnum=0 /op2 gs \_fi + \_tmpb\_space f + \_immediateassignment\_advance\_tmpnum by-1 + \_ifnum-\_tmpfin<\_tmpnum + \_ifx#1\_oval 1 0 0 1 \_shadowstep\_space \_shadowstep\_space cm \_fi + \_ea \_shadowlayer \_fi + }% + \_pdfliteral{q /op1 gs 0 g 1 0 0 1 \_shadowmoveto\_space cm + \_ifx#1\_circlet 1 0 0 1 \_expr{\_bp{.5\_wd0}} \_expr{\_bp{(\_ht0-\_dp0)/2}} cm + \_else 1 0 0 1 -\_shadowb\_space -\_shadowb\_space cm \_fi + \_shadowlayer Q} +}} + + \_doc ----------------------------- + A generic macro `\clipinpath{<x>}{<y>}{<curve>}{<text>}` declares + a clipping path by <curve> shifted by <x>, <y>. The <text> is typesset + when such clipping path is active. Dimensions are given by bp without the unit here. + Macros `\clipinoval <x> <y> <width> <height> {<text>}` and + `\clipincircle <x> <y> <width> <height> {<text>}` are defined here. + These marcos read normal \TeX/ dimensions in their parameters. + \_cod ----------------------------- + +\_def\_clipinpath#1#2#3#4{% #1=x-pos[bp], #2=y-pos[bp], #3=curve, #4=text + \_hbox{\setbox0=\hbox{{#4}}% + \_tmpdim=\wd0 \wd0=0pt + \_pdfliteral{q \_mv{#1}{#2}{#3 W n}}% + \_box0\_pdfliteral{Q}\_kern\_tmpdim + }% +} + +\_def\_clipinoval {\_ea\_ea\_ea\_clipinovalA\_scantwodimens} +\_def\_clipinovalA #1#2{% + \_def\_tmp{{#1/65781.76}{#2/65781.76}}% + \_ea\_ea\_ea\_clipinovalB\_scantwodimens +} +\_def\_clipinovalB{\_ea\_clipinovalC\_tmp} +\_def\_clipinovalC#1#2#3#4{% + \_ea\_clipinpath{#1-(#3/131563.52)+(\_bp{\_roundness})}{#2-(#4/131563.52)+(\_bp{\_roundness})}% + {\_oval{#3/65781.76-(\_bp{2\_roundness})}{#4/65781.76-(\_bp{2\_roundness})}{\_bp{\_roundness}}}% +} +\_def\_clipincircle {\_ea\_ea\_ea\_clipincircleA\_scantwodimens} +\_def\_clipincircleA #1#2{% + \_def\_tmp{{#1/65781.76}{#2/65781.76}}% + \_ea\_ea\_ea\_clipincircleB\_scantwodimens +} +\_def\_clipincircleB#1#2{% + \_ea\_clipinpath\_tmp{\_circle{#1/65781.76}{#2/65781.76}}% +} + \_endcode % ------------------------------------- diff --git a/Master/texmf-dist/tex/luatex/optex/lists.opm b/Master/texmf-dist/tex/luatex/optex/lists.opm index adc28a3617e..067fa4a7d96 100644 --- a/Master/texmf-dist/tex/luatex/optex/lists.opm +++ b/Master/texmf-dist/tex/luatex/optex/lists.opm @@ -6,11 +6,20 @@ `\aboveliskip` is used above the list of items, `\belowliskip` is used below the list of items and `\interliskip` is used between items. + `\listskipA` is used as `\listskipamount` at level 1 of items. + `\listskipB` is used as `\listskipamount` at other levels. \_cod ----------------------------- -\_def\_aboveliskip {\_removelastskip \_penalty-100 \_medskip} -\_def\_belowliskip {\_penalty-200 \_medskip} +\_def\_aboveliskip {\_removelastskip \_penalty-100 \_vskip\_listskipamount} +\_def\_belowliskip {\_penalty-200 \_vskip\_listskipamount} \_def\_interliskip {} +\_def\_listskipA {\_medskipamount} +\_def\_listskipB {0pt plus.5\smallskipamount} + +\_def\_setlistskip {% + \_ifnum \_ilevel = 1 \_listskipamount = \_listskipA \_relax + \_else \_listskipamount = \_listskipB \_relax + \_fi} \_doc ----------------------------- The `\itemnum` is localy reset to zero in each group declared by @@ -27,20 +36,30 @@ \_newcount\_itemnum \_itemnum=0 \_newtoks\_printitem -\_def\_begitems{\_par \_ifnum\_lastpenalty<10000 \_aboveliskip \_fi +\_def\_begitems{\_par \_bgroup + \_advance \_ilevel by1 + \_setlistskip + \_ifnum\_lastpenalty<10000 \_aboveliskip \_fi \_itemnum=0 \_adef*{\_startitem} \_advance\_leftskip by\_iindent \_printitem=\_defaultitem - \_the\_everybegitems + \_the\_everylist \_relax } -\_def\_enditems{\_par\_egroup\_belowliskip} +\_def\_enditems{\_par\_belowliskip\_egroup} \_def\_startitem{\_par \_ifnum\_itemnum>0 \_interliskip \_fi \_advance\_itemnum by1 \_the\_everyitem \_noindent\_llap{\_the\_printitem}\_ignorespaces } + \_doc ---------------------------- + `\novspaces` sets `\listsipamount` to 0pt. + \_cod ---------------------------- + +\_def\_novspaces {\_removelastskip \_listskipamount=0pt \_relax} +\_public \novspaces ; + \_doc ----------------------------- Various item marks are saved in `\_item:<letter>` macros. You ca re-define then or define more such macros. diff --git a/Master/texmf-dist/tex/luatex/optex/makeindex.opm b/Master/texmf-dist/tex/luatex/optex/makeindex.opm index 5f13f5ca5ae..2a783d8895f 100644 --- a/Master/texmf-dist/tex/luatex/optex/makeindex.opm +++ b/Master/texmf-dist/tex/luatex/optex/makeindex.opm @@ -1,6 +1,6 @@ %% This is part of OpTeX project, see http://petr.olsak.net/optex -\_codedecl \makeindex {Makeindex and sorting <2020-03-16>} % loaded in format +\_codedecl \makeindex {Makeindex and sorting <2020-04-26>} % loaded in format \_doc ----------------------------- `\makeindex` implements sorting algorithm at \TeX/ macrolanguage level. @@ -67,8 +67,10 @@ these declared characters are used. The characters declared in `\_ignoredchars` are ignored in first pass - without additional condidion. They are ignored in second pass only if - they are not mentioned in the `\_sortingdata<iso-code>` macro. + without additional condidion. All characters are taken into acount in + second pass: ASCII characters with code $<65$ are sorted first if they + are not mentioned in the `\_sortingdata<iso-code>` macro. + Others not mentioned characters have undefined behavior during sorting. \_cod ----------------------------- \_def \_ignoredcharscs {.,;?!:'"|()[]<>=+} @@ -116,7 +118,7 @@ \_ifx##1,\_advance\_tmpnum by1 \_else \_lccode`##1=\_tmpnum \_fi \_ea\_act \_fi}% - \_tmpnum=60 \_ea\_act \_sortingdata \_relax + \_tmpnum=65 \_ea\_act \_sortingdata \_relax \_def \_act ##1{\_ifx##1\_relax \_else \_lccode`##1=`\^^I \_ea\_act \_fi}% @@ -131,7 +133,7 @@ \_def \_act ##1{\_ifx##1\_relax \_else \_ifx##1,\_else \_advance\_tmpnum by1 \_lccode`##1=\_tmpnum \_fi \_ea\_act \_fi}% - \_tmpnum=60 \_ea\_act \_sortingdata \_relax + \_tmpnum=65 \_ea\_act \_sortingdata \_relax } \_doc ----------------------------- diff --git a/Master/texmf-dist/tex/luatex/optex/multicolumns.opm b/Master/texmf-dist/tex/luatex/optex/multicolumns.opm index 291eb1cfd0a..cf4d26bbb4f 100644 --- a/Master/texmf-dist/tex/luatex/optex/multicolumns.opm +++ b/Master/texmf-dist/tex/luatex/optex/multicolumns.opm @@ -1,6 +1,6 @@ %% This is part of OpTeX project, see http://petr.olsak.net/optex -\_codedecl \begmulti {Balanced columns <2020-03-08>} % preloaded in format +\_codedecl \begmulti {Balanced columns <2020-03-26>} % preloaded in format \_doc ----------------------------- This code is documented in detail in the \"\TeX/book naruby", pages 244--246, @@ -33,7 +33,7 @@ \_def\par{\_ifhmode\_endgraf\_global\_advance\_mullines by\_prevgraf\_fi}% } \_def\_endmulti{\_vskip-\_prevdepth\_vfil - \_expandafter\_egroup\_expandafter\_baselineskip\_the\_baselineskip\_relax + \_ea\_egroup\_ea\_baselineskip\_the\_baselineskip\_relax \_dimen0=.8\_maxdimen \_tmpnum=\_dimen0 \_divide\_tmpnum by\_baselineskip \_splittopskip=\_baselineskip \_setbox1=\_vsplit6 to0pt @@ -68,10 +68,10 @@ \_divide\_dimen0 by\_Ncols \_relax \_ifx\_balancecolumns\_flushcolumns \_advance\_dimen0 by-.5\_vsize \_fi \_dimen1=\_vsize \_corrsize{\_dimen1}\_dimen2=\_dimen1 - \_advance\_dimen2 by-\_Ncols\_baselineskip + \_advance\_dimen2 by-\_baselineskip %% split the material to more pages? \_ifvoid6 \_else - \_ifdim \_dimen0>\_dimen2 \_expandafter\_expandafter\_expandafter \_splitpart + \_ifdim \_dimen0>\_dimen2 \_ea\_ea\_ea \_splitpart \_else \_balancecolumns % last balancing \_fi \_fi } @@ -88,7 +88,7 @@ \_ifvoid6 \_else \_advance \_dimen0 by.2\_baselineskip \_setbox6=\_copy7 - \_expandafter \_tmp \_fi}\_tmp + \_ea \_tmp \_fi}\_tmp \_hbox{}\_nobreak\_vskip-\_splittopskip \_nointerlineskip \_hbox to\_hsize{\_unhbox1\_unskip}% \_egroup diff --git a/Master/texmf-dist/tex/luatex/optex/optex.ini b/Master/texmf-dist/tex/luatex/optex/optex.ini index e4a09eec0af..31d5f5171ae 100644 --- a/Master/texmf-dist/tex/luatex/optex/optex.ini +++ b/Master/texmf-dist/tex/luatex/optex/optex.ini @@ -16,11 +16,12 @@ \catcode `\^^I=10 % ascii tab is a blank space \catcode `\_=11 % underline can be used in control sequences \catcode `\~=13 % tilde is active +\catcode `\^^a0=13 % non breaking space in Unicode \catcode 127=12 % normal character % OpTeX version -\def\optexversion{Alpha 0.07 Mar 2020} +\def\optexversion{Alpha 0.08 Mar 2020} % Engine testing: @@ -86,6 +87,7 @@ \_everyjob = {% \_message{This is OpTeX (Olsak's Plain TeX), version <\optexversion>^^J}% + \_mathchardef\_fnotestack=\_pdfcolorstackinit page {0 g 0 G}% \_mathsbon % replaces \int_a^b to \int _a^b \_inputref % inputs \jobname.ref if exists } diff --git a/Master/texmf-dist/tex/luatex/optex/others.opm b/Master/texmf-dist/tex/luatex/optex/others.opm index 4c6b49dd2de..6c656ec0e0e 100644 --- a/Master/texmf-dist/tex/luatex/optex/others.opm +++ b/Master/texmf-dist/tex/luatex/optex/others.opm @@ -27,11 +27,16 @@ \_let\chyph=\cslang \_let\shyph=\sklang \_let\csUnicode=\csPatt \_let\czUnicode=\csPatt \_let\skUnicode=\skPatt +% classical \ten* macros (keeps only preloaded fonts!) + \_let \letfont = \_fontlet \_let \tenrm = \_tenrm \_let \tenbf = \_tenbf \_let \tenit = \_tenit \_let \tenbi = \_tenbi \_let \tentt = \_tentt +% non breaking space in Unicode + +\let ^^a0=~ % TikZ needs these control sequences: diff --git a/Master/texmf-dist/tex/luatex/optex/output.opm b/Master/texmf-dist/tex/luatex/optex/output.opm index a81e5e8c0a5..a10779e7a87 100644 --- a/Master/texmf-dist/tex/luatex/optex/output.opm +++ b/Master/texmf-dist/tex/luatex/optex/output.opm @@ -1,6 +1,6 @@ %% This is part of OpTeX project, see http://petr.olsak.net/optex -\_codedecl \nopagenumbers {Output routine <2020-03-15>} % preloaded in format +\_codedecl \nopagenumbers {Output routine <2020-03-28>} % preloaded in format \_doc ----------------------------- `\_optexouput` is default output routine. You can create another... @@ -59,6 +59,7 @@ \_ensureblack{\_makefootline}}% } \_def \_ensureblack #1{#1} % will be re-defined by color macros +\_let \_openfnotestack = \_relax % will be re-defined by color macros \_def \_backgroundbox #1{\_moveleft\_hoffset\_vbox to0pt{\_kern-\voffset #1\_vss}} \_doc ----------------------------- @@ -94,7 +95,7 @@ \_dimen0=\dp255 \_unvbox255 % open up \box255 \_ifvoid\_footins \_else % footnote info is present \_vskip\_skip\_footins - \_ensureblack{\_footnoterule \_unvbox\_footins}\fi + \_ensureblack{\_footnoterule \_openfnotestack \_unvbox\_footins}\fi \_ifraggedbottom \kern-\_dimen0 \_vfil \_fi } \_def \_pagedest {{\_def\_destheight{25pt}\_dest[pg:\_the\_gpageno]}} @@ -132,14 +133,18 @@ \_def \_opfootnote #1#2{\_insert\_footins\_bgroup \_interlinepenalty=\_interfootnotelinepenalty \_leftskip=0pt \_rightskip=0pt \_spaceskip=0pt \_xspaceskip=0pt \_relax + \_let\_colorstackcnt=\_fnotestack % special color stack for footnotes #1\_relax % local settings used by \fnote macro \_splittopskip=\_ht\_strutbox % top baseline for broken footnotes \_splitmaxdepth=\_dp\_strutbox \_floatingpenalty=20000 \_textindent{#2}\_footstrut - \_isnextchar \_bgroup {\_bgroup \_aftergroup\_vfootA \_let\_next=}{\_vfootB}% + \_isnextchar \_bgroup + {\_bgroup \_aftergroup\_vfootA \_afterassignment\_ignorespaces \_let\_next=}{\_vfootB}% } -\_def\_vfootA{\_strut\_egroup} -\_def\_vfootB #1{#1\_vfootA} +\_def\_vfootA{\_unskip\_strut\_isnextchar\_colorstackpop\_closefncolor\_vfootF} +\_def\_vfootB #1{#1\_uskip\_strut\_vfootF} +\_def\_vfootF{\_egroup} % close \_insert\_footins\_bgroup +\_def\_closefncolor#1{#1\_isnextchar\_colorstackpop\_closefncolor\_vfootF} \_def \_footstrut {\_vbox to\_splittopskip{}} \_skip\_footins=\_bigskipamount % space added when footnote is present \_count\_footins=1000 % footnote magnification factor (1 to 1) diff --git a/Master/texmf-dist/tex/luatex/optex/parameters.opm b/Master/texmf-dist/tex/luatex/optex/parameters.opm index 4ae0aa4d98f..2a85a081596 100644 --- a/Master/texmf-dist/tex/luatex/optex/parameters.opm +++ b/Master/texmf-dist/tex/luatex/optex/parameters.opm @@ -97,6 +97,9 @@ and set default page dimensions as A4, no letter. \_cod ----------------------------- +\_emergencystretch=20pt % we want to use third pass of aparagraph building algoritmh + % we need not to keep the compatibility with old documents + \_clubpenalty=10000 % after first line of paragraph \_widowpenalty=10000 % before last line of paragraph @@ -121,6 +124,7 @@ \_cod ----------------------------- \_def\_plaintexsetting{% + \_emergencystretch=0pt \_clubpenalty=150 \_widowpenalty=150 \_pdfvorigin=1in @@ -242,14 +246,16 @@ The default item mark used between `\bgitems` and `\enditems` is bullet. The `\everyitem` token list is applied in vertical mode at the start of each item. - The `\everybegitems` token list is applied after group is openem by + The `\everylist` token list is applied after group is openem by `\begitems`. \_cod ----------------------------- \_newtoks\_defaultitem \_defaultitem={$\_bullet$\_enspace} \_newtoks\_everyitem -\_newtoks\_everybegitems -\_public \defaultitem \everyitem \everybegitems ; +\_newtoks\_everylist +\_newskip \_listskipamount \_listskipamount=\_medskipamount +\_newcount \_ilevel +\_public \defaultitem \everyitem \everylist \listskipamount \ilevel ; \_doc ----------------------------- The `\tit` macro includes `\vglue\titskip` above the title of the document. @@ -417,6 +423,23 @@ \_newtoks \_pgbackground \_pgbackground={} % for page background \_public \pgbackground ; + \_doc ----------------------------- + The parameters used in `\inoval` and `\incircle` macros. + The default values (documented in user manual) are set in the macros. + User can re-set thse values using tokens \ovalparams, \circleparams. + \_cod ----------------------------- + +\_newtoks \_ovalparams +\_newtoks \_circleparams +%\_ovalparams={\_roundness=2pt \_fcolor=\Yellow \_lcolor=\Red \_lwidth=.5bp +% \_shadow=N \_overlapmargins=N \_hhkern=0pt \_vvkern=0pt } +%\_circleparams={\_ratio=1 \_fcolor=\Yellow \_lcolor=\Red \_lwidth=.5bp +% \_shadow=N \_overlapmargins=N \_hhkern=3pt \_vvkern=3pt} + +\_newdimen \_roundness \_roundness=5mm % used in \clippingoval macro + +\_public \ovalparams \circleparams \roundness ; + \_endcode %---------------------------------------------------- diff --git a/Master/texmf-dist/tex/luatex/optex/sections.opm b/Master/texmf-dist/tex/luatex/optex/sections.opm index dae71df77a0..2a7629560c3 100644 --- a/Master/texmf-dist/tex/luatex/optex/sections.opm +++ b/Master/texmf-dist/tex/luatex/optex/sections.opm @@ -128,10 +128,13 @@ \_newcount \_fnum % figure numbers \_newcount \_dnum % numbered display maths -\_def \_chapx {\_incr\_chapnum \_secnum=0 \_seccnum=0 \_tnum=0 \_fnum=0 \_dnum=0 \_lfnotenum=0 } -\_def \_secx {\_incr\_secnum \_seccnum=0 \_tnum=0 \_fnum=0 \_dnum=0 } +\_def \_chapx {\_incr\_chapnum \_secnum=0 \_seccnum=0 \_resetcountchap \_lfnotenum=0 } +\_def \_secx {\_incr\_secnum \_seccnum=0 \_resetcountsec } \_def \_seccx {\_incr\_seccnum } +\_def \_resetcountchap {\_tnum=0 \_fnum=0 \_dnum=0 } +\_def \_resetcountsec {\_tnum=0 \_fnum=0 } + \_def \_thechapnum {\_the\_chapnum} \_def \_thesecnum {\_othe\_chapnum.\_the\_secnum} \_def \_theseccnum {\_othe\_chapnum.\_the\_secnum.\_the\_seccnum} @@ -350,6 +353,55 @@ } \_public \eqmark ; -\_endcode % ------------------------------------- + \_doc ----------------------------- + The `\numberedpar <letter>{<name>}` is implemented here. + You can say `\let\resetcountsec=\relax` if you don't want to reset + counters A, B, C, D, E nor `\fnum` nor `\tnum` in sections, but only in + chapters. Or you can define you own concept of `\_chapx` and `\_secx` + macros (see above). Then you will want to re-define `\_theAnum`, `\_thefnum` + etc. macros. + \_cod ----------------------------- + +\_newcount\_counterA \_newcount\_counterB \_newcount\_counterC +\_newcount\_counterD \_newcount\_counterE + +\_def\_resetcounters{\_counterA=0 \_counterB=0 \_counterC=0 \_counterD=0 \_counterE=0 } +\_addto \_resetcountchap {\_resetcounters} +\_addto \_resetcountsec {\_resetcounters} + +\_def \_theAnum {\_othe\_chapnum.\_othe\_secnum.\_the\_counterA} +\_def \_theBnum {\_othe\_chapnum.\_othe\_secnum.\_the\_counterB} +\_def \_theCnum {\_othe\_chapnum.\_othe\_secnum.\_the\_counterC} +\_def \_theDnum {\_othe\_chapnum.\_othe\_secnum.\_the\_counterD} +\_def \_theEnum {\_othe\_chapnum.\_othe\_secnum.\_the\_counterE} + +\_def\_numberedpar#1#2{\_ea \_incr \_csname _counter#1\_endcsname + \_def\_tmpa{#1}\_def\_tmpb{#2}\_numberedparparam} +\_optdef\_numberedparparam[]{% + \_ea \_printnumberedpar \_csname _the\_tmpa num\_ea\_endcsname\_ea{\_tmpb}} + \_doc ----------------------------- + The `\_printnumberedpar \theXnum {<name>}` opens numbered paragraph and + prints it. The optional parameter is in `\_the\_opt`. You can re-define + it if you need another design. + + `\_printnumberedpar` need not to be re-define if you only need to print + Theorems in italic and to insert vertical skips (for example). You can do this + by the following: + \_begtt + \def\theorem {\medskip\bgroup\it \numberedpar A{Theorem}} + \def\endtheorem {\par\egroup\medskip} + \_endtt + \theorem Let $M$ be... \endtheorem + \_cod ----------------------------- + +\_def \_printnumberedpar #1#2{\_par + \_noindent\_wlabel #1% + {\bf #2 #1\_istoksempty\_opt\_iffalse \_space \_the\_opt \_fi.}\_space + \_ignorespaces +} +\_public \numberedpar ; + + +\_endcode % ------------------------------------- diff --git a/Master/texmf-dist/tex/luatex/optex/slides.opm b/Master/texmf-dist/tex/luatex/optex/slides.opm index faff5797982..135a2bdce40 100644 --- a/Master/texmf-dist/tex/luatex/optex/slides.opm +++ b/Master/texmf-dist/tex/luatex/optex/slides.opm @@ -69,15 +69,15 @@ the next text after `\pg+`. \_cod ----------------------------- -\_newcount\_ilevel \_newcount\_gilevel +\_newcount\_gilevel \_def\*{*} \_adef*{\_startitem} \_sdef{_item:X}{\Blue\_raise.2ex\_fullrectangle{.8ex}\_kern.5em} \_sdef{_item:x}{\Blue\_raise.3ex\_fullrectangle{.6ex}\_kern.4em} \_style X -\_addto\_begitems{\_style x }\public \begitems ; \_def\_egroups{\_par\_global\_gilevel=\_ilevel \_egroup} -\_everybegitems={\_advance\_ilevel by1 \_addto\_egroups{\_egroup}} +\_everylist={\_novspaces \_ifcase\_ilevel \_or \_style x \_else \_style - \_fi + \_addto\_egroups{\_egroup}} \_doc ----------------------------- The default values of `\pg;`, `\pg+` and `\pg.` are very simple. diff --git a/Master/texmf-dist/tex/luatex/optex/styles.opm b/Master/texmf-dist/tex/luatex/optex/styles.opm index 13aaec91b2e..d2ef38a0136 100644 --- a/Master/texmf-dist/tex/luatex/optex/styles.opm +++ b/Master/texmf-dist/tex/luatex/optex/styles.opm @@ -1,6 +1,6 @@ %% This is part of OpTeX project, see http://petr.olsak.net/optex -\_codedecl \report {Basic styles of OpTeX <2020-03-18>} % preloaded in format +\_codedecl \report {Basic styles of OpTeX <2020-03-28>} % preloaded in format \_doc ----------------------------- The `{\boxlines <line-1><eol><line-2><eol>...<line-n><eol>}` @@ -28,6 +28,7 @@ \_def\_report{ \_typosize[11/13.2] + \_vsize=\_dimexpr \_topskip + 52\_baselineskip \_relax % added 2020-03-28 \_let\_titfont=\_chapfont \_titskip=3ex \_eoldef\_author##1{\_removelastskip\_bigskip @@ -42,6 +43,7 @@ \_def\_subject{{\_bf \_mtext{subj}: }} \_public \address \subject ; \_typosize[11/14] + \_vsize=\_dimexpr \_topskip + 49\_baselineskip \_relax % added 2020-03-28 \_parindent=0pt \_parskip=\_medskipamount \_nopagenumbers diff --git a/Master/texmf-dist/tex/luatex/optex/verbatim.opm b/Master/texmf-dist/tex/luatex/optex/verbatim.opm index c7593a7d7a6..cfd9ed43548 100644 --- a/Master/texmf-dist/tex/luatex/optex/verbatim.opm +++ b/Master/texmf-dist/tex/luatex/optex/verbatim.opm @@ -1,6 +1,6 @@ %% This is part of OpTeX project, see http://petr.olsak.net/optex -\_codedecl \begtt {Verbatim <2020-03-18>} % preloaded in format +\_codedecl \begtt {Verbatim <2020-03-21>} % preloaded in format \_doc ---------------------------- The internal parameters for verbatim macros are set. @@ -146,7 +146,7 @@ \_fi } \_def\_prepareverbdata#1#2{\_def#1{#2}} -\_def\_printverbline#1{\_penalty \_ttpenalty \_indent \_printverblinenum #1 \par} +\_def\_printverbline#1{\_penalty \_ttpenalty \_indent \_printverblinenum #1\par} \_def\_initverblinenum{\_tenrm \_thefontscale[700]\_ea\_let\_ea\_sevenrm\_the\_font} \_def\_printverblinenum{\_global\_advance\_ttline by1 \_llap{\_sevenrm \_the\_ttline\_kern.9em}} |