diff options
author | Norbert Preining <norbert@preining.info> | 2020-10-20 03:01:01 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2020-10-20 03:01:01 +0000 |
commit | 6c4fb500d344400c932c5792f94aee3e34cbe6a7 (patch) | |
tree | 1f0ea6814385527023371b2f0226a5187d0b3e44 /macros/luatex/optex/base | |
parent | 3fdf82ec77f470d0bf97c17c3085ef2fd58ea65f (diff) |
CTAN sync 202010200300
Diffstat (limited to 'macros/luatex/optex/base')
-rw-r--r-- | macros/luatex/optex/base/alloc.opm | 6 | ||||
-rw-r--r-- | macros/luatex/optex/base/bib-iso690.opm | 2 | ||||
-rw-r--r-- | macros/luatex/optex/base/f-ebgaramond.opm | 31 | ||||
-rw-r--r-- | macros/luatex/optex/base/f-kerkis.opm | 32 | ||||
-rw-r--r-- | macros/luatex/optex/base/f-lmfonts.opm | 2 | ||||
-rw-r--r-- | macros/luatex/optex/base/fams-ini.opm | 9 | ||||
-rw-r--r-- | macros/luatex/optex/base/fonts-resize.opm | 2 | ||||
-rw-r--r-- | macros/luatex/optex/base/hyperlinks.opm | 14 | ||||
-rw-r--r-- | macros/luatex/optex/base/hyphen-lan.opm | 6 | ||||
-rw-r--r-- | macros/luatex/optex/base/math-macros.opm | 14 | ||||
-rw-r--r-- | macros/luatex/optex/base/math-preload.opm | 6 | ||||
-rw-r--r-- | macros/luatex/optex/base/more-macros.opm | 4 | ||||
-rw-r--r-- | macros/luatex/optex/base/optex.ini | 3 | ||||
-rw-r--r-- | macros/luatex/optex/base/plain-macros.opm | 25 | ||||
-rw-r--r-- | macros/luatex/optex/base/prefixed.opm | 55 | ||||
-rw-r--r-- | macros/luatex/optex/base/uni-lcuc.opm | 4 | ||||
-rw-r--r-- | macros/luatex/optex/base/usebib.opm | 22 |
17 files changed, 164 insertions, 73 deletions
diff --git a/macros/luatex/optex/base/alloc.opm b/macros/luatex/optex/base/alloc.opm index b981c25b56..e68db40266 100644 --- a/macros/luatex/optex/base/alloc.opm +++ b/macros/luatex/optex/base/alloc.opm @@ -75,7 +75,7 @@ \_chardef\_insertmin = 201 \_def\_newinsert #1{% - \_advance\_insertalloc by-1 + \_global\_advance\_insertalloc by-1 \_ifnum\_insertalloc <\_insertmin \_errmessage {No room for a new \_string\insert}% \_else @@ -150,11 +150,11 @@ the array-like declarator of counters. \_maicount = \maicount % first value is top of the array \def\newcountarray #1[#2]{% \newcountarray \foo[100] - \advance\_maicount by -#2\relax + \global\advance\_maicount by -#2\relax \ifnum \_countalloc > \_maicount \errmessage{No room for a new array of \string\count}% \else - \chardef#1=\_maicount + \global\chardef#1=\_maicount \fi } \def\usecount #1[#2]{% \usecount \foo[2] diff --git a/macros/luatex/optex/base/bib-iso690.opm b/macros/luatex/optex/base/bib-iso690.opm index 612258baee..e7af4c9595 100644 --- a/macros/luatex/optex/base/bib-iso690.opm +++ b/macros/luatex/optex/base/bib-iso690.opm @@ -882,7 +882,7 @@ howpublished = "\Mtext{blue-ray}" Now, you can set the variants of blue-ray into your macros: \begtt -\mtdef {blue-ray} {Blue-ray disc} {Blue-ray disk} {} +\_mtdef {blue-ray} {Blue-ray disc} {Blue-ray disk} {} \endtt diff --git a/macros/luatex/optex/base/f-ebgaramond.opm b/macros/luatex/optex/base/f-ebgaramond.opm new file mode 100644 index 0000000000..e2e3056720 --- /dev/null +++ b/macros/luatex/optex/base/f-ebgaramond.opm @@ -0,0 +1,31 @@ +%% This is part of OpTeX project, see http://petr.olsak.net/optex + +\_famdecl [EB Garamond] \EBGaramond {Based on Garamond} + {\medium \semibold \caps} {\rm \bf \it \bi \initials} {} + {[EBGaramond-Regular]} + {\_def\_fontnamegen {[EBGaramond-\_currV]:\_capsV\_fontfeatures}} + +\_wlog{\_detokenize{% +Modifiers:^^J + \caps ...... caps & small caps^^J + \medium .... medium weight^^J + \semibold .. semibold weight^^J +Variant:^^J + \initials .. Initials, only letters ADFGLNOQT^^J +}} + +\_moddef \resetmod {\_fsetV caps={} \_fvars Regular Bold Italic BoldItalic } +\_moddef \medium {\_fvars Medium ExtraBold MediumItalic ExtraBoldItalic } +\_moddef \semibold {\_fvars SemiBold ExtraBold SemiBoldItalic ExtraBoldItalic } +\_moddef \caps {\_fsetV caps=+smcp;+onum; } + +\_famvardef \initials {\_fvars Initials . . . \rm} + + +\_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/macros/luatex/optex/base/f-kerkis.opm b/macros/luatex/optex/base/f-kerkis.opm new file mode 100644 index 0000000000..133f776c59 --- /dev/null +++ b/macros/luatex/optex/base/f-kerkis.opm @@ -0,0 +1,32 @@ +%% This is part of OpTeX project, see http://petr.olsak.net/optex + +\_famdecl [Kerkis] \Kerkis {Free Bookman alternative with Greek letters} + {\semibold \sans \sanssemi \caps} {\rm \bf \it \bi \calli} {} + {[Kerkis]} + {\_def\_fontnamegen {[Kerkis\_currV]:\_fontfeatures}} + +\_wlog{\_detokenize{% +Modifiers:^^J + \semibold .. semibold weight (only \rm, \it)^^J + \caps ...... caps & small caps (only \rm \bf, bad accents in \bf)^^J + \sans ...... sans serif^^J + \sanssemi .. semibold sans serif (only \rm, accented letters not available)^^J +Variant:^^J + \calli ..... Calligraphic (only upercase, lowercase letters equal to Italic)^^J +}} + +\_moddef \resetmod {\_fvars {} -Bold -Italic -BoldItalic } +\_moddef \semibold {\_fvars -SemiBold . -SemiBold-Italic . } +\_moddef \caps {\_fvars -SmallCaps.otf -BoldSmallCaps . . } +\_moddef \sans {\_fvars Sans Sans-Bold Sans-Italic Sans-BoldItalic } +\_moddef \sanssemi {\_fvars Sans-SmallCaps . . . } + +\_famvardef \calli {\_fvars -Calligraphic . . . \rm} + + +\_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/macros/luatex/optex/base/f-lmfonts.opm b/macros/luatex/optex/base/f-lmfonts.opm index 9f9a650a83..06e96c4df4 100644 --- a/macros/luatex/optex/base/f-lmfonts.opm +++ b/macros/luatex/optex/base/f-lmfonts.opm @@ -105,7 +105,7 @@ Sub-modifiers (selects special variants of given subfamily):^^J \_moddef \caps {\_onlyif subfam=rm,tt: {\_fvars rc . ic . }} \_def \_tryloadtt {\_fontdef\_tentt{\_LMfonts \_addto\_fontfeatures{-tlig;}\_ttset \_rm}} -\_private \LMfonts \ttset ; % \tt variant selector re-defined +\_private \LMfonts \ttset ; % used in \_tryloadtt \_initfontfamily % new font family must be initialized diff --git a/macros/luatex/optex/base/fams-ini.opm b/macros/luatex/optex/base/fams-ini.opm index d89a29c7a1..c92782260b 100644 --- a/macros/luatex/optex/base/fams-ini.opm +++ b/macros/luatex/optex/base/fams-ini.opm @@ -62,6 +62,15 @@ { -,\caps: {\rm\bf\it\bi} } \_famalias [BaskervilleF] +\_faminfo [EB Garamond] {Free variants of classical Garamond} {f-ebgaramond} + { -,\caps,\medium,\medium\caps,\semibold,\semibold\caps: {\rm\bf\it\bi} + -: {\initials} } +\_famalias [Garamond] + +\_faminfo [Kerkis] {Free Bookman alternative with Greek letters} {f-kerkis} + { -,\sans: {\rm\bf\it\bi} \caps: {\rm\bf} \semibold: {\rm\it} + \sanssemi: {\rm} -:{\calli} } + \_faminfo [Technika] {Fonts from visual style of CTU in Prague} {f-technika} { -,\light,\book, \caps, \caps\book: {\rm\bf\it\bi} -:{\stencil} } \_famalias [CTU Technika] diff --git a/macros/luatex/optex/base/fonts-resize.opm b/macros/luatex/optex/base/fonts-resize.opm index 1709cb05cf..c21f426c89 100644 --- a/macros/luatex/optex/base/fonts-resize.opm +++ b/macros/luatex/optex/base/fonts-resize.opm @@ -203,7 +203,7 @@ \_regtfm lmbx 0 ec-lmbx5 5.5 ec-lmbx6 6.5 ec-lmbx7 7.5 ec-lmbx8 8.5 ec-lmbx9 9.5 ec-lmbx10 11.1 ec-lmbx12 * \_regtfm lmri 0 ec-lmri7 7.5 ec-lmri8 8.5 ec-lmri9 9.5 ec-lmri10 11.1 ec-lmri12 * -\_regtfm lmtt 0 ec-lmtt10 11.1 ec-lmtt12 * +\_regtfm lmtt 0 ec-lmtt8 8.5 ec-lmtt9 9.5 ec-lmtt10 11.1 ec-lmtt12 * \_setfontsize {at10pt} % default font size diff --git a/macros/luatex/optex/base/hyperlinks.opm b/macros/luatex/optex/base/hyperlinks.opm index ab0909b553..ebcc8cf814 100644 --- a/macros/luatex/optex/base/hyperlinks.opm +++ b/macros/luatex/optex/base/hyperlinks.opm @@ -63,18 +63,18 @@ \_doc ---------------------------- The `\_pdfstartlink` primitive uses `\_pdfborder{<type>}` in its parameter - (see \^`\_linkactive` or \^`\_urlactive` macros). The \`\_pdfborder``{<type>}` - expands to `attr{/C[? ? ?] /Border[0 0 .6]}` if the - `\<type>border` (i.e.\ \`\refborder`, \`\citeborder`, \`\tocborder`, \`\pgborder`, - \`\urlborder`, \`\fntborder` or \`\fnfborder`) + (see \^`\_linkactive` or \^`\_urlactive` macros). The \`\_pdfborder``{<type>}` + expands to `attr{/C[? ? ?] /Border[0 0 .6]}` if the + `\_<type>border` (i.e.\ \`\_refborder`, \`\_citeborder`, \`\_tocborder`, + \`\_pgborder`, \`\_urlborder`, \`\_fntborder` or \`\_fnfborder`) is defined. User can define it in order to create colored frames around active links. For example - `\def\tocborder{1 0 0}` causes red frames in TOC (not printed, only visible + `\def\_tocborder{1 0 0}` causes red frames in TOC (not printed, only visible in PDF viewers). \_cod ---------------------------- -\_def\_pdfborder#1{\_ifcsname #1border\_endcsname - attr{/C[\_csname #1border\_endcsname] /Border[0 0 .6]}% +\_def\_pdfborder#1{\_ifcsname _#1border\_endcsname + attr{/C[\_csname _#1border\_endcsname] /Border[0 0 .6]}% \_else attr{/Border[0 0 0]}\_fi } diff --git a/macros/luatex/optex/base/hyphen-lan.opm b/macros/luatex/optex/base/hyphen-lan.opm index 27de1af376..c6a43bc0af 100644 --- a/macros/luatex/optex/base/hyphen-lan.opm +++ b/macros/luatex/optex/base/hyphen-lan.opm @@ -70,7 +70,7 @@ \_next % runs itself in processing state } \_addto\_langlist{ #1(#2)}% - \_sdef{#1lang}{\_csname _#1lang\_endcsname}% unprefixed \<isocode>lang + \_sdef{#1lang\_ea}\_ea{\_csname _#1lang\_endcsname}% unprefixed \<isocode>lang } \_def\_loadpattrs#1 #2 {% \_directlua{ @@ -124,9 +124,9 @@ \_preplang es Spanish \_esPatt 126 22 \_preplang sl Slovenian \_slPatt 128 22 \_preplang fi Finnish \_fiPatt 129 22 -\_preplang hy Hungarian \_huPatt 130 22 +\_preplang hu Hungarian \_huPatt 130 22 \_preplang tr Turkish \_trPatt 131 22 -\_preplang et Estoniak \_etPatt 132 23 +\_preplang et Estonian \_etPatt 132 23 \_preplang eu Basque \_euPatt 133 22 \_preplang ga Irish \_gaPatt 134 23 \_preplang nb Bokmal \_nbPatt 135 22 diff --git a/macros/luatex/optex/base/math-macros.opm b/macros/luatex/optex/base/math-macros.opm index 6189dec1c7..70983fbda5 100644 --- a/macros/luatex/optex/base/math-macros.opm +++ b/macros/luatex/optex/base/math-macros.opm @@ -21,7 +21,7 @@ `\<word>``_<letter><nonletter>` to `\<word> _<letter><nonletter>` at input processor level. The \`\mathsboff` deactivates it. You can ask by \`\_ifmathsb` if this feature is activated or deactivated. - By default, is is activated in the `\everyjob`. + By default, is is activated in the `\everyjob`, see section~\ref[init]. \_cod ----------------------------- \catcode`\_ = 8 \let\sb = _ @@ -32,14 +32,14 @@ \_newifi\_ifmathsb \_mathsbfalse \_def \_mathsbon {% \_directlua{ - callback.register("process_input_buffer", + callback.register_x("process_input_buffer", function (str) return string.gsub(str.." ", "(\_nbb[a-zA-Z]+)_([a-zA-Z]?[^_a-zA-Z])", "\_pcent 1 _\_pcent 2") end) }% \_global\_mathsbtrue } \_def \_mathsboff {% - \_directlua{ callback.register("process_input_buffer", nil) }% + \_directlua{ callback.register_x("process_input_buffer", nil) }% \_global \_mathsbfalse } \_public \mathsboff \mathsbon ; @@ -467,10 +467,14 @@ \_protected\_def\widehat{\_mathaccent"0362 } \_doc ----------------------------- - \`\overrightarrow`, \`\overleftarrow`, \`\overbrace`, \`\underbrace`, \`\skew` macros. + \`\_math`, \`\skew`, + \`\overrightarrow`, \`\overleftarrow`, \`\overbrace`, \`\underbrace` macros. + The last four are redefined when Unicode math is loaded. \_cod ----------------------------- \_def\_math{\_mathsurround0pt } +\_protected\_def\_skew #1#2#3{{\_muskip0=#1mu\_divide\_muskip0=by2 \_mkern\_muskip0 + #2{\_mkern-\_muskip0{#3}\_mkern\_muskip0}\_mkern-\_muskip0}{}} \_protected\_def\_overrightarrow #1{\_vbox{\_math\_ialign{##\_crcr \_rightarrowfill\_crcr\_noalign{\_kern-.1em \_nointerlineskip} $\_hfil\_displaystyle{#1}\_hfil$\_crcr}}} @@ -484,8 +488,6 @@ \_protected\_def\_underbrace #1{\_mathop{\_vtop{\_math\_ialign{##\_crcr $\_hfil\_displaystyle{#1}\_hfil$\_crcr\_noalign{\_kern.3em \_nointerlineskip} \_upbracefill\_crcr\_noalign{\_kern.3em}}}}\_limits} -\_protected\_def\_skew #1#2#3{{\_muskip0=#1mu\_divide\_muskip0=by2 \_mkern\_muskip0 - #2{\_mkern-\_muskip0{#3}\_mkern\_muskip0}\_mkern-\_muskip0}{}} \_public \overrightarrow \overleftarrow \overbrace \underbrace \skew ; diff --git a/macros/luatex/optex/base/math-preload.opm b/macros/luatex/optex/base/math-preload.opm index 633b5ebeb8..09d447e3d4 100644 --- a/macros/luatex/optex/base/math-preload.opm +++ b/macros/luatex/optex/base/math-preload.opm @@ -94,7 +94,7 @@ \_regtfm cmbx 0 cmbx5 5.5 cmbx6 6.5 cmbx7 7.5 cmbx8 8.5 cmbx9 9.5 cmbx10 11.1 cmbx12 * \_regtfm cmti 0 cmti7 7.5 cmti8 8.5 cmti9 9.5 cmti10 11.1 cmti12 * -\_regtfm cmtt 0 cmtt10 11.1 cmtt12 * +\_regtfm cmtt 0 cmtt8 8.5 cmtt9 9.5 cmtt10 11.1 cmtt12 * %% AMS math fonts, optical sizes: @@ -103,8 +103,8 @@ %% fraktur, rsfs, optical sizes: -\_regtfm eufm 0 eufm5 5.5 eufm6 6.5 eufm7 7.5 eufm8 8.5 eufm9 9.5 eufm10 * -\_regtfm eufb 0 eufb5 5.5 eufb6 6.5 eufb7 7.5 eufb8 8.5 eufb9 9.5 eufb10 * +\_regtfm eufm 0 eufm5 6 eufm7 8.5 eufm10 * +\_regtfm eufb 0 eufb5 6 eufb7 8.5 eufb10 * \_regtfm rsfs 0 rsfs5 6 rsfs7 8.5 rsfs10 * %% bf and bi sansserif math alternatives: diff --git a/macros/luatex/optex/base/more-macros.opm b/macros/luatex/optex/base/more-macros.opm index 595a4f2ed3..fc33596bc0 100644 --- a/macros/luatex/optex/base/more-macros.opm +++ b/macros/luatex/optex/base/more-macros.opm @@ -11,12 +11,12 @@ is read correctly with correct catcode settings. In order to achieve this, we declare \`\optexcatcodes` catcode table - and \`\plaintexcatocdes`. They save the commonly used catcode tables. + and \`\plaintexcatcodes`. They save the commonly used catcode tables. Note that `\catcodetable` is a part of \LuaTeX/ extension. The catcodetable stack is implemented by \OpTeX/ macros. The \`\setctable` `<catcode table>` pushes current catcode table to the stack and activates catcodes from - the `<catcode table>`. The \`\restorectable` returns to the saved catocdes + the `<catcode table>`. The \`\restorectable` returns to the saved catcodes from the catcode table stack. So, the `\opinput` macro can be implemented simply: \_cod ----------------------------- diff --git a/macros/luatex/optex/base/optex.ini b/macros/luatex/optex/base/optex.ini index 8e6d9f36d0..e9a8babd91 100644 --- a/macros/luatex/optex/base/optex.ini +++ b/macros/luatex/optex/base/optex.ini @@ -21,7 +21,7 @@ % OpTeX version -\def\optexversion{Beta 0.15 Jun 2020} +\def\optexversion{Beta 0.16 Oct.2020} \def\fmtname{OpTeX} % Engine testing: @@ -89,6 +89,7 @@ \_everyjob = {% \_message{This is OpTeX (Olsak's Plain TeX), version <\optexversion>^^J}% \_mathchardef\_fnotestack=\_pdfcolorstackinit page {0 g 0 G}% + \_directlua {callback.register_x = callback.register}% ltluatex.lua rewrites it \_mathsbon % replaces \int_a^b to \int _a^b \_inputref % inputs \jobname.ref if exists } diff --git a/macros/luatex/optex/base/plain-macros.opm b/macros/luatex/optex/base/plain-macros.opm index d3a158008e..c7ecdb75b5 100644 --- a/macros/luatex/optex/base/plain-macros.opm +++ b/macros/luatex/optex/base/plain-macros.opm @@ -294,13 +294,14 @@ } \_doc ----------------------------- - The last part of plain \TeX/ macros. + The plain \TeX/ macros \`\hrulefill`, \`\dotfill`, \`\rightarrowfill`, \`\leftarrowfill`, - \`\magnification`, \`\bye`. - Math macros are defined in the `math-macros.opm` file. + \`\downbracefill`, \`\upbracefill`. + The last four are used in non-Unicode variants of `\overrightarrow`, + `\overleftarrow`, `\overbrace` and `\underbrace` macros, see + section~\ref[math-macros]. \_cod ----------------------------- - \_def \_hrulefill {\_leaders\_hrule\_hfill} \_def \_dotfill {\_cleaders\_hbox{$\_math \_mkern1.5mu.\_mkern1.5mu$}\_hfill} \_def \_rightarrowfill {$\_math\_smash-\_mkern-7mu% @@ -310,18 +311,24 @@ \_cleaders\_hbox{$\_mkern-2mu\_smash-\_mkern-2mu$}\_hfill \_mkern-7mu\_smash-$} -\_public \hrulefill \dotfill \rightarrowfill \leftarrowfill ; - -% \downbracefill \upbracefill will be re-defined when Unicode-math is used \_mathchardef \_braceld="37A \_mathchardef \_bracerd="37B \_mathchardef \_bracelu="37C \_mathchardef \_braceru="37D -\_def \downbracefill {$\_math \_setbox0=\_hbox{$\_braceld$}% +\_def \_downbracefill {$\_math \_setbox0=\_hbox{$\_braceld$}% \_braceld \_leaders\_vrule height\_ht0 depth0pt \_hfill \_braceru \_bracelu \_leaders\_vrule height\_ht0 depth0pt \_hfill \_bracerd$} -\_def \upbracefill {$\_math \_setbox0=\_hbox{$\_braceld$}% +\_def \_upbracefill {$\_math \_setbox0=\_hbox{$\_braceld$}% \_bracelu \_leaders\_vrule height\_ht0 depth0pt \_hfill \_bracerd \_braceld \_leaders\_vrule height\_ht0 depth0pt \_hfill \_braceru$} +\_public \hrulefill \dotfill + \rightarrowfill \leftarrowfill \downbracefill \upbracefill ; + + \_doc ----------------------------- + The last part of plain \TeX/ macros: \`\magnification`, \`\bye`. + Note that math macros are defined in the `math-macros.opm` file + (section~\ref[math-macros]). + \_cod ----------------------------- + \_def \_magnification {\_afterassignment \_magA \_count255 } \_def \_magA {\_mag=\_count255 \_truedimen\_hsize \_truedimen\_vsize \_dimen\_footins=8truein diff --git a/macros/luatex/optex/base/prefixed.opm b/macros/luatex/optex/base/prefixed.opm index a409a44697..f3ed071be0 100644 --- a/macros/luatex/optex/base/prefixed.opm +++ b/macros/luatex/optex/base/prefixed.opm @@ -37,10 +37,10 @@ \_def \_pkglabel{} \_def \_public {\_xargs \_publicA} -\_def \_publicA #1{\_ea\_let \_ea#1\_csname \_pkglabel _\_csstring #1\_endcsname} +\_def \_publicA #1{\_ea\_let \_ea#1\_csname _\_csstring #1\_endcsname} \_def \_private {\_xargs \_privateA} -\_def \_privateA #1{\_ea\_let \_csname \_pkglabel _\_csstring #1\_endcsname =#1} +\_def \_privateA #1{\_ea\_let \_csname _\_csstring #1\_endcsname =#1} \_public \public \private \xargs \ea ; @@ -71,30 +71,40 @@ \_doc ----------------------------- The `\_mathsbon` and `\_mathsboff` are defined in `math-macros.opm` file. - Now, we define the macro \`\_namespace` `{<pkg label>}` for package writers, see - section~\ref[pkg-namespace]. + Now, we define the macros + \`\_namespace` `{<pkg label>}`, \`\_resetnamespace` `{<pkg label>}`, \`\_endnamespace`, + \`\_nspublic` and \`\_nsprivate` + for package writers, see section~\ref[pkg-namespace]. \_cod ----------------------------- +\_def \_pkglabel{} \_def\_namespace #1{% \_ifcsname namesp:#1\_endcsname \_errmessage {The name space "#1" is used already, it cannot be used twice}% \_endinput - \_else - \_ea \_gdef \_csname namesp:#1\_endcsname {}% - \_gdef \_pkglabel{_#1}% - \_directlua{ - callback.register("process_input_buffer", + \_else \_resetnamespace{#1}\_fi +} +\_def\_resetnamespace #1{% + \_ea \_gdef \_csname namesp:#1\_endcsname {}% + \_gdef \_pkglabel{_#1}% + \_directlua{ + callback.register_x("process_input_buffer", function (str) return string.gsub(str, "\_nbb[.]([a-zA-Z])", "\_nbb _#1_\_pcent 1") end ) - }% - \_gdef \_endcode {% - \_ifmathsb \_mathsbon \_else \_mthsboff \_fi - \_gdef \_pkglabel{_#1}% - \_global \_let \_endcode=\_endinput - \_endinput }% - \_fi + }% } +\_def\_endnamespace {% + \_ifmathsb \_mathsbon \_else \_mathsboff \_fi + \_gdef \_pkglabel{}% +} + +\_def \_nspublic {\_xargs \_nspublicA} +\_def \_nspublicA #1{\_ea\_let \_ea#1\_csname \_pkglabel _\_csstring #1\_endcsname} + +\_def \_nsprivate {\_xargs \_nsprivateA} +\_def \_nsprivateA #1{\_ea\_let \_csname \_pkglabel _\_csstring #1\_endcsname =#1} + \_endcode %---------------------------------------------------- @@ -222,14 +232,19 @@ is declared at the beginning of the macro file then all occurrences of The macro writer can write (and backward can read his/her code) simply with `\.foo`, `\.bar` control sequences and `\_<pkg>_foo`, `\_<pkg>_bar` control sequences are processed internally. -The scope of the \^`\_namespace` command ends at the \^`\_endcode` command +The scope of the \^`\_namespace` command ends at the \^`\_endnamespace` command or when another \^`\_namespace` is used. This command checks if the same package label is not declared by the \^`\_namespace` twice. -The \^`\public` macro does `\let\foo = \_<pkg>_foo` when -\^`\_namespace{<pkg>}` is declared. And the \^`\private` macro does reverse +The \^`\_nspublic` macro does `\let\foo = \_<pkg>_foo` when +\^`\_namespace{<pkg>}` is declared. And the \^`\_nsprivate` macro does reverse operation to it. Example: you can define `\def\.macro{...}` and then -set it to the user name space by `\_public \macro;`. +set it to the user name space by `\_nspublic \macro;`. + +Don't load another packages (which are using their own name space) inside your +name space. Do load them before your \^`\_namespace`~`{<pkg>}` is +initialized. Or close your name space by \^`\_endnamespace` and open it again +(after other packages are loaded) by \^`\_resetnamespace`~`{<pkg>}`. If the package writer needs to declare a control sequence by \^`\newif`, then there is an exception of the rule described above. Use diff --git a/macros/luatex/optex/base/uni-lcuc.opm b/macros/luatex/optex/base/uni-lcuc.opm index 3ddf286011..f5cb977f57 100644 --- a/macros/luatex/optex/base/uni-lcuc.opm +++ b/macros/luatex/optex/base/uni-lcuc.opm @@ -15931,9 +15931,9 @@ E01EF . All codes in unicode table keep information about pairs lowecase-uppercase letters or single letter. We need to read such information and set appropriate `\lccode` and `\uccode`. The `\catcode` above the code 127 -is not set, i.\,e.\ the `\catocde`=12 for all codes above 127. +is not set, i.\,e.\ the `\catcode`=12 for all codes above 127. -The file `uni-lcuc.opm` does this work. It is not much intereting file, only +The file `uni-lcuc.opm` does this work. It is not much interesting file, only first few lines from 15928 lines in total is shown here. {\everytt={\typosize[8/10]\_let\_printverbline=\_printcodeline \medskip}\ttline=-1 diff --git a/macros/luatex/optex/base/usebib.opm b/macros/luatex/optex/base/usebib.opm index b109e384c2..7f772b09d2 100644 --- a/macros/luatex/optex/base/usebib.opm +++ b/macros/luatex/optex/base/usebib.opm @@ -5,23 +5,17 @@ \_doc ----------------------------- Loading the `librarian.tex` macro package. See `texdoc librarian` for more information about it. + + We want to ignore `\errmessage` and we want not to create `\jobname.lbr` + file. \_cod ----------------------------- -\_def\_tmp{} -\_let\_errmessageori=\_errmessage % we needn't \errmessage during \input librarian -\_def\_errmessage#1{\_def\_tmp{error}} -\_let\_newwriteori=\_newwrite % we need not to create \jobname.lbr: -\_def\_newwrite#1{\_csname lb@restoreat\_endcsname \_endinput} +\_def\errmessage#1{} +\_def\newwrite#1{\_csname lb@restoreat\_endcsname \_endinput} \_def\_tmpb{\_catcode`\_=12 \_input librarian \_catcode`\_=11 }\_tmpb -\_let\_errmessage=\_errmessageori -\_let\_newwrite=\_newwriteori -\_ifx\_tmp\_empty\_else - \_def\_usebib/#1 (#2) #3 {% - \_opwarning{eTeX and (pdfTeX or XeTeX or LuaTeX) not detected}% - \_immediate\_write16{\_space\_space - But librarian package needs it. \_noexpand\usebib ignored.}% - } - \_endinput \_fi +\_let\errmessage=\_errmessage +\_let\newwrite=\_newwrite + \_private \BibFile \ReadList \SortList \SortingOrder \NameCount \AbbreviateFirstname \CreateField \RetrieveFieldInFor \RetrieveFieldIn ; |