summaryrefslogtreecommitdiff
path: root/macros/luatex/optex/base/unimath-codes.opm
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-06-16 03:02:40 +0000
committerNorbert Preining <norbert@preining.info>2020-06-16 03:02:40 +0000
commit305bf45bf758ea76ec5be2a737bd8eb491f68921 (patch)
treea0d6ad7bdfc7a258d831c6dd746484263ff66b10 /macros/luatex/optex/base/unimath-codes.opm
parent539648a9305d6107a588ecdff34b5cdce48fb930 (diff)
CTAN sync 202006160302
Diffstat (limited to 'macros/luatex/optex/base/unimath-codes.opm')
-rw-r--r--macros/luatex/optex/base/unimath-codes.opm155
1 files changed, 104 insertions, 51 deletions
diff --git a/macros/luatex/optex/base/unimath-codes.opm b/macros/luatex/optex/base/unimath-codes.opm
index d0182a0f85..4718f0dd51 100644
--- a/macros/luatex/optex/base/unimath-codes.opm
+++ b/macros/luatex/optex/base/unimath-codes.opm
@@ -1,6 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \_ncharrmA {Uni math codes <2020-03-14>} % preloaded on demand by \loadmath
+\_codedecl \_ncharrmA {Uni math codes <2020-06-13>} % preloaded on demand by \loadmath
\_doc -----------------------------
The control sequences for `\alpha`, `\beta` etc are redefined here.
@@ -21,7 +21,8 @@
\varrho \varpi \_relax
\_doc -----------------------------
- The math alphabets are declared here using the \^`\_umathrange` macro.
+ The math alphabets are declared here using the
+ \^`\_umathrange {<range>}<class><family><starting-code>` macro.
\_cod -----------------------------
\_chardef\_ncharrmA=`A \_chardef\_ncharrma=`a
@@ -39,20 +40,20 @@
\_chardef\_ncharsxA="1D63C \_chardef\_ncharsxa="1D656
\_chardef\_ncharttA="1D670 \_chardef\_nchartta="1D68A
-\_protected\_def\_rmvariables {\_umathrange{A-Z}\_ncharrmA \_umathrange{a-z}\_ncharrma}
-\_protected\_def\_bfvariables {\_umathrange{A-Z}\_ncharbfA \_umathrange{a-z}\_ncharbfa}
-\_protected\_def\_nitvariables {\_umathrange{A-Z}\_ncharitA \_umathrange{a-z}\_ncharita}
-\_protected\_def\_bivariables {\_umathrange{A-Z}\_ncharbiA \_umathrange{a-z}\_ncharbia}
-\_protected\_def\_calvariables {\_umathrange{A-Z}\_ncharclA \_umathrange{a-z}\_ncharcla}
-\_protected\_def\_bcalvariables {\_umathrange{A-Z}\_ncharbcA \_umathrange{a-z}\_ncharbca}
-\_protected\_def\_frakvariables {\_umathrange{A-Z}\_ncharfrA \_umathrange{a-z}\_ncharfra}
-\_protected\_def\_bfrakvariables {\_umathrange{A-Z}\_ncharbrA \_umathrange{a-z}\_ncharbra}
-\_protected\_def\_bbvariables {\_umathrange{A-Z}\_ncharbbA \_umathrange{a-z}\_ncharbba}
-\_protected\_def\_sansvariables {\_umathrange{A-Z}\_ncharsnA \_umathrange{a-z}\_ncharsna}
-\_protected\_def\_bsansvariables {\_umathrange{A-Z}\_ncharbsA \_umathrange{a-z}\_ncharbsa}
-\_protected\_def\_isansvariables {\_umathrange{A-Z}\_ncharsiA \_umathrange{a-z}\_ncharsia}
-\_protected\_def\_bisansvariables {\_umathrange{A-Z}\_ncharsxA \_umathrange{a-z}\_ncharsxa}
-\_protected\_def\_ttvariables {\_umathrange{A-Z}\_ncharttA \_umathrange{a-z}\_nchartta}
+\_protected\_def\_rmvariables {\_umathrange{A-Z}71\_ncharrmA \_umathrange{a-z}71\_ncharrma}
+\_protected\_def\_bfvariables {\_umathrange{A-Z}71\_ncharbfA \_umathrange{a-z}71\_ncharbfa}
+\_protected\_def\_itvariables {\_umathrange{A-Z}71\_ncharitA \_umathrange{a-z}71\_ncharita}
+\_protected\_def\_bivariables {\_umathrange{A-Z}71\_ncharbiA \_umathrange{a-z}71\_ncharbia}
+\_protected\_def\_calvariables {\_umathrange{A-Z}71\_ncharclA \_umathrange{a-z}71\_ncharcla}
+\_protected\_def\_bcalvariables {\_umathrange{A-Z}71\_ncharbcA \_umathrange{a-z}71\_ncharbca}
+\_protected\_def\_frakvariables {\_umathrange{A-Z}71\_ncharfrA \_umathrange{a-z}71\_ncharfra}
+\_protected\_def\_bfrakvariables {\_umathrange{A-Z}71\_ncharbrA \_umathrange{a-z}71\_ncharbra}
+\_protected\_def\_bbvariables {\_umathrange{A-Z}71\_ncharbbA \_umathrange{a-z}71\_ncharbba}
+\_protected\_def\_sansvariables {\_umathrange{A-Z}71\_ncharsnA \_umathrange{a-z}71\_ncharsna}
+\_protected\_def\_bsansvariables {\_umathrange{A-Z}71\_ncharbsA \_umathrange{a-z}71\_ncharbsa}
+\_protected\_def\_isansvariables {\_umathrange{A-Z}71\_ncharsiA \_umathrange{a-z}71\_ncharsia}
+\_protected\_def\_bisansvariables {\_umathrange{A-Z}71\_ncharsxA \_umathrange{a-z}71\_ncharsxa}
+\_protected\_def\_ttvariables {\_umathrange{A-Z}71\_ncharttA \_umathrange{a-z}71\_nchartta}
\_chardef\_greekrmA="0391 \_chardef\_greekrma="03B1
\_chardef\_greekbfA="1D6A8 \_chardef\_greekbfa="1D6C2
@@ -61,20 +62,18 @@
\_chardef\_greeksnA="1D756 \_chardef\_greeksna="1D770
\_chardef\_greeksiA="1D790 \_chardef\_greeksia="1D7AA
-\_protected\_def\_nitgreek {\_umathrangeGREEK\_greekrmA \_umathrangegreek\_greekita}
-\_protected\_def\_rmgreek {\_umathrangeGREEK\_greekrmA \_umathrangegreek\_greekrma}
-\_protected\_def\_bfgreek {\_umathrangeGREEK\_greekbfA \_umathrangegreek\_greekbfa}
-\_protected\_def\_bigreek {\_umathrangeGREEK\_greekbfA \_umathrangegreek\_greekbia}
-\_protected\_def\_sansgreek {\_umathrangeGREEK\_greeksnA \_umathrangegreek\_greeksna}
-\_protected\_def\_isansgreek {\_umathrangeGREEK\_greeksnA \_umathrangegreek\_greeksia}
-
-% Another possibility (slanted capitals in \_nitgreek, \_bigreek, \_isansgreek):
-%\_protected\_def\_nitgreek {\_umathrangeGREEK\_greekitA \_umathrangegreek\_greekita}
-%\_protected\_def\_rmgreek {\_umathrangeGREEK\_greekrmA \_umathrangegreek\_greekrma}
-%\_protected\_def\_bfgreek {\_umathrangeGREEK\_greekbfA \_umathrangegreek\_greekbfa}
-%\_protected\_def\_bigreek {\_umathrangeGREEK\_greekbiA \_umathrangegreek\_greekbia}
-%\_protected\_def\_sansgreek {\_umathrangeGREEK\_greeksnA \_umathrangegreek\_greeksna}
-%\_protected\_def\_isansgreek {\_umathrangeGREEK\_greeksiA \_umathrangegreek\_greeksia}
+\_protected\_def\_itgreek {\_umathrangegreek71\_greekita}
+\_protected\_def\_rmgreek {\_umathrangegreek71\_greekrma}
+\_protected\_def\_bfgreek {\_umathrangegreek71\_greekbfa}
+\_protected\_def\_bigreek {\_umathrangegreek71\_greekbia}
+\_protected\_def\_bsansgreek {\_umathrangegreek71\_greeksna}
+\_protected\_def\_bisansgreek{\_umathrangegreek71\_greeksia}
+\_protected\_def\_itGreek {\_umathrangeGREEK71\_greekitA}
+\_protected\_def\_rmGreek {\_umathrangeGREEK71\_greekrmA}
+\_protected\_def\_bfGreek {\_umathrangeGREEK71\_greekbfA}
+\_protected\_def\_biGreek {\_umathrangeGREEK71\_greekbiA}
+\_protected\_def\_bsansGreek {\_umathrangeGREEK71\_greeksnA}
+\_protected\_def\_bisansGreek{\_umathrangeGREEK71\_greeksiA}
\_chardef\_digitrmO=`0
\_chardef\_digitbfO="1D7CE
@@ -83,12 +82,12 @@
\_chardef\_digitbsO="1D7EC
\_chardef\_digitttO="1D7F6
-\_protected\_def\_rmdigits {\_umathrange{0-9}\_digitrmO}
-\_protected\_def\_bfdigits {\_umathrange{0-9}\_digitbfO}
-\_protected\_def\_bbdigits {\_umathrange{0-9}\_digitbbO}
-\_protected\_def\_sansdigits {\_umathrange{0-9}\_digitsnO}
-\_protected\_def\_bsansdigits {\_umathrange{0-9}\_digitbsO}
-\_protected\_def\_ttdigits {\_umathrange{0-9}\_digitttO}
+\_protected\_def\_rmdigits {\_umathrange{0-9}71\_digitrmO}
+\_protected\_def\_bfdigits {\_umathrange{0-9}71\_digitbfO}
+\_protected\_def\_bbdigits {\_umathrange{0-9}71\_digitbbO}
+\_protected\_def\_sansdigits {\_umathrange{0-9}71\_digitsnO}
+\_protected\_def\_bsansdigits {\_umathrange{0-9}71\_digitbsO}
+\_protected\_def\_ttdigits {\_umathrange{0-9}71\_digitttO}
\_doc -----------------------------
The \`\cal`, \`\bbchar`, \`\frak`, \`\script`
@@ -99,8 +98,10 @@
You can redefine them again if you need different behavior (for example
you don't want to use sans serif bold in math). What to do:
\begtt \advance\hsize by2em
- \_protected\_def\_bf {\_tryloadbf\_tenbf \_inmath{\_bfvariables\_bfgreek\_bfdigits}}
- \_protected\_def\_bi {\_tryloadbi\_tenbi \_inmath{\_bivariables\_bigreek\_bfdigits}}
+ \_protected\_def\_bf
+ {\_tryloadbf\_tenbf \_inmath{\_bfvariables\_bfgreek\_bfGreek\_bfdigits}}
+ \_protected\_def\_bi
+ {\_tryloadbi\_tenbi \_inmath{\_bivariables\_bigreek\_bfGreek\_bfdigits}}
\_public \bf \bi ;
\endtt
\`\_inmath` `{<cmds>}` applies `<cmds>` only in math mode.
@@ -113,18 +114,21 @@
% \bf and \bi behaves as sans serif in math, ...
\_protected\_def\_rm {\_tryloadrm \_tenrm \_inmath{\_rmvariables \_rmdigits}}
-\_protected\_def\_it {\_tryloadit \_tenit \_inmath{\_nitvariables}}
-\_protected\_def\_bf {\_tryloadbf \_tenbf \_inmath{\_bsansvariables \_sansgreek \_bsansdigits}}
-\_protected\_def\_bi {\_tryloadbi \_tenbi \_inmath{\_bisansvariables \_isansgreek \_bsansdigits}}
+\_protected\_def\_it {\_tryloadit \_tenit \_inmath{\_itvariables}}
+\_protected\_def\_bf
+ {\_tryloadbf \_tenbf \_inmath{\_bsansvariables \_bsansgreek \_bsansGreek \_bsansdigits}}
+\_protected\_def\_bi
+ {\_tryloadbi \_tenbi \_inmath{\_bisansvariables \_bisansgreek \_bsansGreek \_bsansdigits}}
\_protected\_def\_tt {\_tryloadtt \_tentt \_inmath{\_ttvariables \_ttdigits}}
\_protected\_def\_bbchar {\_bbvariables \_bbdigits}
\_protected\_def\_cal {\_calvariables}
\_protected\_def\_frak {\_frakvariables}
-\_protected\_def\_misans {\_isansvariables \_isansgreek \_sansdigits}
-\_protected\_def\_mbisans {\_bisansvariables \_isansgreek \_bsansdigits}
+\_protected\_def\_misans {\_isansvariables \_sansdigits}
+\_protected\_def\_mbisans {\_bisansvariables \_bisansgreek \_bsansGreek \_bsansdigits}
\_protected\_def\_script {\_rmvariables \_fam4 }
+\_protected\_def\_mit {\_itvariables \_rmdigits \_itgreek \_rmGreek }
-\_public \rm \it \bf \bi \tt \bbchar \cal \frak \misans \mbisans \script ;
+\_public \rm \it \bf \bi \tt \bbchar \cal \frak \misans \mbisans \script \mit ;
\_doc -----------------------------
Each Unicode slot carries information about math type. This is saved in
@@ -181,7 +185,7 @@
\_global\_Udelcode`<=1 "027E8 % these characters have different meaning
\_global\_Udelcode`>=1 "027E9 % as normal and as delimeter
-\_nitgreek \_nitvariables \_rmdigits % default setting
+\_mit % default math alphapbets setting
\_Umathcode `- = 2 1 "2212
%\_Umathcode`: = 3 1 "3A % mathclass defines it as 6 1 "3A (punctuation)
@@ -231,6 +235,11 @@
\_let\|=\Vert
\_mathcode`\_="8000
+\_global\_Umathcode "22EF = 0 1 "22EF % mathclass.txt says that it is Rel
+\_global\_Umathchardef \unicodecdots = 0 1 "22EF
+
+\_global\_Umathcode `/ = 0 1 `/ % mathclass says that / is Bin, Plain TeX says that it is Ord.
+
\_doc -----------------------------
Aliases are declared here. They are names not menitioned in the `unimath-table.opm` file
but commonly used in \TeX.
@@ -254,7 +263,7 @@
\_let \gets=\leftarrow
\_let \mathring=\ocirc
\_let \lnot=\neg
-\_let \longdivision=\longdivisionsign
+\_let \longdivisionsign=\longdivision
\_let \backepsilon=\upbackepsilon
\_let \eth=\matheth
\_let \dbkarow=\dbkarrow
@@ -294,15 +303,18 @@
\_let \upvarpi=\mupvarpi
\_doc -----------------------------
- The \^`\not` macro is redefined here.
+ The \`\not` macro is redefined here. If the `\_not!<char>` is defined
+ (by \`\_negationof`)
+ then this macro is used. Else centered / is printed over the <char>.
\_cod -----------------------------
\_protected\_def\_not#1{%
- \_ifcsname _not!\_csstring#1\_endcsname \_csname _not!\_csstring#1\_endcsname
- \_else \_mathrel{\_mathord{\_rlap{\_kern1pt/}}\_mathord{#1}}%
- \_fi
-}
+ \_trycs{_not!\_csstring#1}{\_mathrel\_mathstyles{%
+ \_setbox0=\_hbox{\_math$\_currstyle#1$}%
+ \_hbox to\_wd0{\_hss$\_currstyle/$\_hss}\_kern-\_wd0 \_box0
+}}}
\_def\_negationof #1#2{\_ea\_let \_csname _not!\_csstring#1\_endcsname =#2}
+
\_negationof = \neq
\_negationof < \nless
\_negationof > \ngtr
@@ -314,6 +326,44 @@
\_negationof \greater \ngtr
\_negationof \forksnot \forks
\_negationof \in \notin
+\_negationof \mid \nmid
+\_negationof \cong \ncong
+\_negationof \leftarrow \nleftarrow
+\_negationof \rightarrow \nrightarrow
+\_negationof \leftrightarrow \nleftrightarrow
+\_negationof \Leftarrow \nLeftarrow
+\_negationof \Leftrightarrow \nLeftrightarrow
+\_negationof \Rightarrow \nRightarrow
+\_negationof \exists \nexists
+\_negationof \ni \nni
+\_negationof \paralel \nparalel
+\_negationof \sim \nsim
+\_negationof \approx \napprox
+\_negationof \equiv \nequiv
+\_negationof \asymp \nasymp
+\_negationof \lesssim \nlesssim
+\_negationof \ngtrsim \ngtrsim
+\_negationof \lessgtr \nlessgtr
+\_negationof \gtrless \ngtrless
+\_negationof \prec \nprec
+\_negationof \succ \nsucc
+\_negationof \subset \nsubset
+\_negationof \supset \nsupset
+\_negationof \subseteq \nsubseteq
+\_negationof \supseteq \nsupseteq
+\_negationof \vdash \nvdash
+\_negationof \vDash \nvDash
+\_negationof \Vdash \nVdash
+\_negationof \VDash \nVDash
+\_negationof \preccurlyeq \npreccurlyeq
+\_negationof \succcurlyeq \nsucccurlyeq
+\_negationof \sqsubseteq \nsqsubseteq
+\_negationof \sqsupseteq \nsqsupseteq
+\_negationof \vartriangleleft \nvartriangleleft
+\_negationof \vartriangleright \nvartriangleright
+\_negationof \trianglelefteq \ntrianglelefteq
+\_negationof \trianglerighteq \ntrianglerighteq
+\_negationof \vinfty \nvinfty
\_public \not ;
@@ -357,5 +407,8 @@ can define:
\_endinput
History:
+2020-06-13 Umathcode of / declared asi iin Plain TeX
+2020-06-07 \_itgreek \_itGreek, \_rmgreek \_rmGreek etc. introduced, names changed
+2020-06-03 \not\mid = \nmid added, \not corrected
2020-04-30 Bug fix: \phi, \varpi etc. were bad encoded
2020-04-09 Bug fix: \Udelcode`<, \Udelcode`> added