diff options
Diffstat (limited to 'tex/context/base/mkxl/math-ttv.lmt')
-rw-r--r-- | tex/context/base/mkxl/math-ttv.lmt | 358 |
1 files changed, 62 insertions, 296 deletions
diff --git a/tex/context/base/mkxl/math-ttv.lmt b/tex/context/base/mkxl/math-ttv.lmt index e33a23478..3393ecc03 100644 --- a/tex/context/base/mkxl/math-ttv.lmt +++ b/tex/context/base/mkxl/math-ttv.lmt @@ -13,6 +13,48 @@ local setdigits = vfmath.setdigits local mathencodings = fonts.encodings.math +local nps = fonts.helpers.newprivateslot + +-- mathencodings["large-to-small-private"] = { +-- [0xFE07A] = 0x7A, -- bracehtipdownleft +-- [0xFE07B] = 0x7B, -- bracehtipdownright +-- [0xFE07C] = 0x7C, -- bracehtipupleft +-- [0xFE07D] = 0x7D, -- bracehtipupright +-- } + +mathencodings["large-to-small-private"] = { + [nps("ul brace piece")] = 0x7A, -- bracehtipdownleft + [nps("ur brace piece")] = 0x7B, -- bracehtipdownright + [nps("ll brace piece")] = 0x7C, -- bracehtipupleft + [nps("lr brace piece")] = 0x7D, -- bracehtipupright +} + +-- mathencodings["extensible-jmn-private"] = { +-- [0xFE080] = 200, -- minusjmn +-- [0xFE081] = 201, -- minusrightjmn +-- [0xFE082] = 202, -- minusleftjmn +-- [0xFE083] = 203, -- equaljmn +-- [0xFE084] = 204, -- equalrightjmn +-- [0xFE085] = 205, -- equalleftjmn +-- [0xFE086] = 206, -- arrowleftjmn +-- [0xFE087] = 207, -- arrowrightjmn +-- [0xFE088] = 208, -- arrowdblleftjmn +-- [0xFE089] = 209, -- arrowdblrightjmn +-- } + +-- mathencodings["extensible-jmn-private"] = { +-- [nps("rule middle piece")] = 200, -- minusjmn +-- [nps("rule right piece")] = 201, -- minusrightjmn +-- [nps("rule left piece")] = 202, -- minusleftjmn +-- [nps("double rule middle piece")] = 203, -- equaljmn +-- [nps("double rule right piece")] = 204, -- equalrightjmn +-- [nps("double rule left piece")] = 205, -- equalleftjmn +-- [nps("arrow left piece")] = 206, -- arrowleftjmn +-- [nps("arrow right piece")] = 207, -- arrowrightjmn +-- [nps("double arrow left piece")] = 208, -- arrowdblleftjmn +-- [nps("double arrow right piece")] = 209, -- arrowdblrightjmn +-- } + -- varphi is part of the alphabet, contrary to the other var*s' mathencodings["large-to-small"] = { @@ -59,14 +101,6 @@ mathencodings["large-to-small"] = { [0x02044] = 0x0E, -- / } -mathencodings["large-to-small-private"] = { - [0xFE07A] = 0x7A, -- bracehtipdownleft - [0xFE07B] = 0x7B, -- bracehtipdownright - [0xFE07C] = 0x7C, -- bracehtipupleft - [0xFE07D] = 0x7D, -- bracehtipupright - -} - -- Beware: these are (in cm/lm) below the baseline due to limitations -- in the tfm format but the engine (combined with the mathclass) takes -- care of it. If we need them in textmode, we should make them virtual @@ -111,17 +145,17 @@ mathencodings["tex-mr"] = { -- [0x002D8] = 0x15, -- [math]breve -- [0x000AF] = 0x16, -- [math]bar -- [0x00021] = 0x21, -- ! - [0x00028] = 0x28, -- ( - [0x00029] = 0x29, -- ) - [0x0002B] = 0x2B, -- + - [0x0002F] = 0x2F, -- / - [0x0003A] = 0x3A, -- : - [0x02236] = 0x3A, -- colon - [0x0003B] = 0x3B, -- ; - [0x0003C] = 0x3C, -- < - [0x0003D] = 0x3D, -- = - [0x0003E] = 0x3E, -- > - [0x0003F] = 0x3F, -- ? + [0x00028] = 0x28, -- ( + [0x00029] = 0x29, -- ) + [0x0002B] = 0x2B, -- + + [0x0002F] = 0x2F, -- / + [0x0003A] = 0x3A, -- : + [0x02236] = 0x3A, -- colon + [0x0003B] = 0x3B, -- ; + [0x0003C] = 0x3C, -- < + [0x0003D] = 0x3D, -- = + [0x0003E] = 0x3E, -- > + [0x0003F] = 0x3F, -- ? [0x00391] = 0x41, -- Alpha [0x00392] = 0x42, -- Beta [0x02145] = 0x44, @@ -136,8 +170,8 @@ mathencodings["tex-mr"] = { [0x003A4] = 0x54, -- Tau [0x003A7] = 0x58, -- Chi [0x00396] = 0x5A, -- Zeta - [0x0005B] = 0x5B, -- [ - [0x0005D] = 0x5D, -- ] + [0x0005B] = 0x5B, -- [ + [0x0005D] = 0x5D, -- ] -- [0x0005E] = 0x5E, -- [math]hat -- the text one [0x00302] = 0x5E, -- [math]hat -- the real math one -- [0x002D9] = 0x5F, -- [math]dot @@ -204,8 +238,10 @@ mathencodings["tex-mi"] = { [0x021BD] = 0x29, -- leftharpoondown [0x021C0] = 0x2A, -- rightharpoonup [0x021C1] = 0x2B, -- rightharpoondown - [0xFE322] = 0x2C, -- lhook (hook for combining arrows) - [0xFE323] = 0x2D, -- rhook (hook for combining arrows) +-- [0xFE322] = 0x2C, -- lhook (hook for combining arrows) +-- [0xFE323] = 0x2D, -- rhook (hook for combining arrows) + [nps("left hook piece")] = 0x2C, -- bracehtipdownleft + [nps("right hook piece")] = 0x2D, -- bracehtipdownleft [0x025B7] = 0x2E, -- triangleright : cf lmmath / BJ [0x025C1] = 0x2F, -- triangleleft : cf lmmath / BJ [0x022B3] = 0x2E, -- triangleright : cf lmmath this a cramped triangles / BJ / see * @@ -463,281 +499,11 @@ mathencodings["tex-sy"] = { [0x02662] = 0x7D, -- diamondsuit [0x02661] = 0x7E, -- heartsuit [0x02660] = 0x7F, -- spadesuit - [0xFE321] = 0x37, -- mapstochar - - [0xFE325] = 0x30, -- prime 0x02032 + -- [0xFE321] = 0x37, -- mapstochar + -- [0xFE325] = 0x30, -- prime 0x02032 + [nps("maps to piece")] = 0x37, -- mapstochar } --- -- The names in masm10.enc can be trusted best and are shown in the first --- -- column, while in the second column we show the tex/ams names. As usual --- -- it costs hours to figure out such a table. --- --- mathencodings["tex-ma"] = { --- [0x022A1] = 0x00, -- squaredot \boxdot --- [0x0229E] = 0x01, -- squareplus \boxplus --- [0x022A0] = 0x02, -- squaremultiply \boxtimes --- [0x025A1] = 0x03, -- square \square \Box --- [0x025A0] = 0x04, -- squaresolid \blacksquare --- [0x025AA] = 0x05, -- squaresmallsolid \centerdot --- [0x022C4] = 0x06, -- diamond \Diamond \lozenge --- [0x02666] = 0x07, -- diamondsolid \blacklozenge --- [0x021BB] = 0x08, -- clockwise \circlearrowright --- [0x021BA] = 0x09, -- anticlockwise \circlearrowleft --- [0x021CC] = 0x0A, -- harpoonleftright \rightleftharpoons --- [0x021CB] = 0x0B, -- harpoonrightleft \leftrightharpoons --- [0x0229F] = 0x0C, -- squareminus \boxminus --- [0x022A9] = 0x0D, -- forces \Vdash --- [0x022AA] = 0x0E, -- forcesbar \Vvdash --- [0x022A8] = 0x0F, -- satisfies \vDash --- [0x021A0] = 0x10, -- dblarrowheadright \twoheadrightarrow --- [0x0219E] = 0x11, -- dblarrowheadleft \twoheadleftarrow --- [0x021C7] = 0x12, -- dblarrowleft \leftleftarrows --- [0x021C9] = 0x13, -- dblarrowright \rightrightarrows --- [0x021C8] = 0x14, -- dblarrowup \upuparrows --- [0x021CA] = 0x15, -- dblarrowdwn \downdownarrows --- [0x021BE] = 0x16, -- harpoonupright \upharpoonright \restriction --- [0x021C2] = 0x17, -- harpoondownright \downharpoonright --- [0x021BF] = 0x18, -- harpoonupleft \upharpoonleft --- [0x021C3] = 0x19, -- harpoondownleft \downharpoonleft --- [0x021A3] = 0x1A, -- arrowtailright \rightarrowtail --- [0x021A2] = 0x1B, -- arrowtailleft \leftarrowtail --- [0x021C6] = 0x1C, -- arrowparrleftright \leftrightarrows --- -- [0x021C5] = 0x00, -- \updownarrows (missing in lm) --- [0x021C4] = 0x1D, -- arrowparrrightleft \rightleftarrows --- [0x021B0] = 0x1E, -- shiftleft \Lsh --- [0x021B1] = 0x1F, -- shiftright \Rsh --- [0x021DD] = 0x20, -- squiggleright \leadsto \rightsquigarrow --- [0x021AD] = 0x21, -- squiggleleftright \leftrightsquigarrow --- [0x021AB] = 0x22, -- curlyleft \looparrowleft --- [0x021AC] = 0x23, -- curlyright \looparrowright --- [0x02257] = 0x24, -- circleequal \circeq --- [0x0227F] = 0x25, -- followsorequal \succsim --- [0x02273] = 0x26, -- greaterorsimilar \gtrsim --- [0x02A86] = 0x27, -- greaterorapproxeql \gtrapprox --- [0x022B8] = 0x28, -- multimap \multimap --- [0x02234] = 0x29, -- therefore \therefore --- [0x02235] = 0x2A, -- because \because --- [0x02251] = 0x2B, -- equalsdots \Doteq \doteqdot --- [0x0225C] = 0x2C, -- defines \triangleq --- [0x0227E] = 0x2D, -- precedesorequal \precsim --- [0x02272] = 0x2E, -- lessorsimilar \lesssim --- [0x02A85] = 0x2F, -- lessorapproxeql \lessapprox --- [0x02A95] = 0x30, -- equalorless \eqslantless --- [0x02A96] = 0x31, -- equalorgreater \eqslantgtr --- [0x022DE] = 0x32, -- equalorprecedes \curlyeqprec --- [0x022DF] = 0x33, -- equalorfollows \curlyeqsucc --- [0x0227C] = 0x34, -- precedesorcurly \preccurlyeq --- [0x02266] = 0x35, -- lessdblequal \leqq --- [0x02A7D] = 0x36, -- lessorequalslant \leqslant --- [0x02276] = 0x37, -- lessorgreater \lessgtr --- [0x02035] = 0x38, -- primereverse \backprime --- -- [0x0] = 0x39, -- axisshort \dabar --- [0x02253] = 0x3A, -- equaldotrightleft \risingdotseq --- [0x02252] = 0x3B, -- equaldotleftright \fallingdotseq --- [0x0227D] = 0x3C, -- followsorcurly \succcurlyeq --- [0x02267] = 0x3D, -- greaterdblequal \geqq --- [0x02A7E] = 0x3E, -- greaterorequalslant \geqslant --- [0x02277] = 0x3F, -- greaterorless \gtrless --- [0x0228F] = 0x40, -- squareimage \sqsubset --- [0x02290] = 0x41, -- squareoriginal \sqsupset --- -- wrong: see ** --- -- [0x022B3] = 0x42, -- triangleright \rhd \vartriangleright --- -- [0x022B2] = 0x43, -- triangleleft \lhd \vartriangleleft --- -- cf lm --- [0x022B5] = 0x44, -- trianglerightequal \unrhd \trianglerighteq --- [0x022B4] = 0x45, -- triangleleftequal \unlhd \trianglelefteq --- -- --- [0x02605] = 0x46, -- star \bigstar --- [0x0226C] = 0x47, -- between \between --- [0x025BC] = 0x48, -- triangledownsld \blacktriangledown --- [0x025B6] = 0x49, -- trianglerightsld \blacktriangleright --- [0x025C0] = 0x4A, -- triangleleftsld \blacktriangleleft --- -- [0x0] = 0x4B, -- arrowaxisright --- -- [0x0] = 0x4C, -- arrowaxisleft --- [0x025B2] = 0x4D, -- triangle \triangleup \vartriangle --- [0x025B2] = 0x4E, -- trianglesolid \blacktriangle --- [0x025BD] = 0x4F, -- triangleinv \triangledown --- [0x02256] = 0x50, -- ringinequal \eqcirc --- [0x022DA] = 0x51, -- lessequalgreater \lesseqgtr --- [0x022DB] = 0x52, -- greaterlessequal \gtreqless --- [0x02A8B] = 0x53, -- lessdbleqlgreater \lesseqqgtr --- [0x02A8C] = 0x54, -- greaterdbleqlless \gtreqqless --- [0x000A5] = 0x55, -- Yen \yen --- [0x021DB] = 0x56, -- arrowtripleright \Rrightarrow --- [0x021DA] = 0x57, -- arrowtripleleft \Lleftarrow --- [0x02713] = 0x58, -- check \checkmark --- [0x022BB] = 0x59, -- orunderscore \veebar --- [0x022BC] = 0x5A, -- nand \barwedge --- [0x02306] = 0x5B, -- perpcorrespond \doublebarwedge --- [0x02220] = 0x5C, -- angle \angle --- [0x02221] = 0x5D, -- measuredangle \measuredangle --- [0x02222] = 0x5E, -- sphericalangle \sphericalangle --- -- [0x0] = 0x5F, -- proportional \varpropto --- -- [0x0] = 0x60, -- smile \smallsmile --- -- [0x0] = 0x61, -- frown \smallfrown --- [0x022D0] = 0x62, -- subsetdbl \Subset --- [0x022D1] = 0x63, -- supersetdbl \Supset --- [0x022D3] = 0x64, -- uniondbl \doublecup \Cup --- [0x022D2] = 0x65, -- intersectiondbl \doublecap \Cap --- [0x022CF] = 0x66, -- uprise \curlywedge --- [0x022CE] = 0x67, -- downfall \curlyvee --- [0x022CB] = 0x68, -- multiopenleft \leftthreetimes --- [0x022CC] = 0x69, -- multiopenright \rightthreetimes --- [0x02AC5] = 0x6A, -- subsetdblequal \subseteqq --- [0x02AC6] = 0x6B, -- supersetdblequal \supseteqq --- [0x0224F] = 0x6C, -- difference \bumpeq --- [0x0224E] = 0x6D, -- geomequivalent \Bumpeq --- [0x022D8] = 0x6E, -- muchless \lll \llless --- [0x022D9] = 0x6F, -- muchgreater \ggg \gggtr --- [0x0231C] = 0x70, -- rightanglenw \ulcorner --- [0x0231D] = 0x71, -- rightanglene \urcorner --- [0x024C7] = 0x72, -- circleR \circledR --- [0x024C8] = 0x73, -- circleS \circledS --- [0x022D4] = 0x74, -- fork \pitchfork --- [0x02214] = 0x75, -- dotplus \dotplus --- [0x0223D] = 0x76, -- revsimilar \backsim --- [0x022CD] = 0x77, -- revasymptequal \backsimeq -- AM: Check this! I mapped it to simeq. --- [0x0231E] = 0x78, -- rightanglesw \llcorner --- [0x0231F] = 0x79, -- rightanglese \lrcorner --- [0x02720] = 0x7A, -- maltesecross \maltese --- [0x02201] = 0x7B, -- complement \complement --- [0x022BA] = 0x7C, -- intercal \intercal --- [0x0229A] = 0x7D, -- circlering \circledcirc --- [0x0229B] = 0x7E, -- circleasterisk \circledast --- [0x0229D] = 0x7F, -- circleminus \circleddash --- } --- --- mathencodings["tex-mb"] = { --- -- [0x0] = 0x00, -- lessornotequal \lvertneqq --- -- [0x0] = 0x01, -- greaterornotequal \gvertneqq --- [0x02270] = 0x02, -- notlessequal \nleq --- [0x02271] = 0x03, -- notgreaterequal \ngeq --- [0x0226E] = 0x04, -- notless \nless --- [0x0226F] = 0x05, -- notgreater \ngtr --- [0x02280] = 0x06, -- notprecedes \nprec --- [0x02281] = 0x07, -- notfollows \nsucc --- [0x02268] = 0x08, -- lessornotdbleql \lneqq --- [0x02269] = 0x09, -- greaterornotdbleql \gneqq --- -- [0x0] = 0x0A, -- notlessorslnteql \nleqslant --- -- [0x0] = 0x0B, -- notgreaterorslnteql \ngeqslant --- [0x02A87] = 0x0C, -- lessnotequal \lneq --- [0x02A88] = 0x0D, -- greaternotequal \gneq --- -- [0x0] = 0x0E, -- notprecedesoreql \npreceq --- -- [0x0] = 0x0F, -- notfollowsoreql \nsucceq --- [0x022E8] = 0x10, -- precedeornoteqvlnt \precnsim --- [0x022E9] = 0x11, -- followornoteqvlnt \succnsim --- [0x022E6] = 0x12, -- lessornotsimilar \lnsim --- [0x022E7] = 0x13, -- greaterornotsimilar \gnsim --- -- [0x0] = 0x14, -- notlessdblequal \nleqq --- -- [0x0] = 0x15, -- notgreaterdblequal \ngeqq --- [0x02AB5] = 0x16, -- precedenotslnteql \precneqq --- [0x02AB6] = 0x17, -- follownotslnteql \succneqq --- [0x02AB9] = 0x18, -- precedenotdbleqv \precnapprox --- [0x02ABA] = 0x19, -- follownotdbleqv \succnapprox --- [0x02A89] = 0x1A, -- lessnotdblequal \lnapprox --- [0x02A8A] = 0x1B, -- greaternotdblequal \gnapprox --- [0x02241] = 0x1C, -- notsimilar \nsim --- [0x02247] = 0x1D, -- notapproxequal \ncong --- -- [0x0] = 0x1E, -- upslope \diagup --- -- [0x0] = 0x1F, -- downslope \diagdown --- -- [0x0] = 0x20, -- notsubsetoreql \varsubsetneq --- -- [0x0] = 0x21, -- notsupersetoreql \varsupsetneq --- -- [0x0] = 0x22, -- notsubsetordbleql \nsubseteqq --- -- [0x0] = 0x23, -- notsupersetordbleql \nsupseteqq --- [0x02ACB] = 0x24, -- subsetornotdbleql \subsetneqq --- [0x02ACC] = 0x25, -- supersetornotdbleql \supsetneqq --- -- [0x0] = 0x26, -- subsetornoteql \varsubsetneqq --- -- [0x0] = 0x27, -- supersetornoteql \varsupsetneqq --- [0x0228A] = 0x28, -- subsetnoteql \subsetneq --- [0x0228B] = 0x29, -- supersetnoteql \supsetneq --- [0x02288] = 0x2A, -- notsubseteql \nsubseteq --- [0x02289] = 0x2B, -- notsuperseteql \nsupseteq --- [0x02226] = 0x2C, -- notparallel \nparallel --- [0x02224] = 0x2D, -- notbar \nmid \ndivides --- -- [0x0] = 0x2E, -- notshortbar \nshortmid --- -- [0x0] = 0x2F, -- notshortparallel \nshortparallel --- [0x022AC] = 0x30, -- notturnstile \nvdash --- [0x022AE] = 0x31, -- notforces \nVdash --- [0x022AD] = 0x32, -- notsatisfies \nvDash --- [0x022AF] = 0x33, -- notforcesextra \nVDash --- [0x022ED] = 0x34, -- nottriangeqlright \ntrianglerighteq --- [0x022EC] = 0x35, -- nottriangeqlleft \ntrianglelefteq --- [0x022EA] = 0x36, -- nottriangleleft \ntriangleleft --- [0x022EB] = 0x37, -- nottriangleright \ntriangleright --- [0x0219A] = 0x38, -- notarrowleft \nleftarrow --- [0x0219B] = 0x39, -- notarrowright \nrightarrow --- [0x021CD] = 0x3A, -- notdblarrowleft \nLeftarrow --- [0x021CF] = 0x3B, -- notdblarrowright \nRightarrow --- [0x021CE] = 0x3C, -- notdblarrowboth \nLeftrightarrow --- [0x021AE] = 0x3D, -- notarrowboth \nleftrightarrow --- [0x022C7] = 0x3E, -- dividemultiply \divideontimes --- [0x02300] = 0x3F, -- diametersign \varnothing --- [0x02204] = 0x40, -- notexistential \nexists --- [0x1D538] = 0x41, -- A (blackboard A) --- [0x1D539] = 0x42, -- B --- [0x02102] = 0x43, -- C --- [0x1D53B] = 0x44, -- D --- [0x1D53C] = 0x45, -- E --- [0x1D53D] = 0x46, -- F --- [0x1D53E] = 0x47, -- G --- [0x0210D] = 0x48, -- H --- [0x1D540] = 0x49, -- I --- [0x1D541] = 0x4A, -- J --- [0x1D542] = 0x4B, -- K --- [0x1D543] = 0x4C, -- L --- [0x1D544] = 0x4D, -- M --- [0x02115] = 0x4E, -- N --- [0x1D546] = 0x4F, -- O --- [0x02119] = 0x50, -- P --- [0x0211A] = 0x51, -- Q --- [0x0211D] = 0x52, -- R --- [0x1D54A] = 0x53, -- S --- [0x1D54B] = 0x54, -- T --- [0x1D54C] = 0x55, -- U --- [0x1D54D] = 0x56, -- V --- [0x1D54E] = 0x57, -- W --- [0x1D54F] = 0x58, -- X --- [0x1D550] = 0x59, -- Y --- [0x02124] = 0x5A, -- Z (blackboard Z) --- [0x02132] = 0x60, -- finv \Finv --- [0x02141] = 0x61, -- fmir \Game --- -- [0x0] = 0x62, tildewide --- -- [0x0] = 0x63, tildewider --- -- [0x0] = 0x64, Finv --- -- [0x0] = 0x65, Gmir --- [0x02127] = 0x66, -- Omegainv \mho --- [0x000F0] = 0x67, -- eth \eth --- [0x02242] = 0x68, -- equalorsimilar \eqsim --- [0x02136] = 0x69, -- beth \beth --- [0x02137] = 0x6A, -- gimel \gimel --- [0x02138] = 0x6B, -- daleth \daleth --- [0x022D6] = 0x6C, -- lessdot \lessdot --- [0x022D7] = 0x6D, -- greaterdot \gtrdot --- [0x022C9] = 0x6E, -- multicloseleft \ltimes --- [0x022CA] = 0x6F, -- multicloseright \rtimes --- -- [0x0] = 0x70, -- barshort \shortmid --- -- [0x0] = 0x71, -- parallelshort \shortparallel --- -- [0x02216] = 0x72, -- integerdivide \smallsetminus (2216 already part of tex-sy --- -- [0x0] = 0x73, -- similar \thicksim --- -- [0x0] = 0x74, -- approxequal \thickapprox --- [0x0224A] = 0x75, -- approxorequal \approxeq --- [0x02AB8] = 0x76, -- followsorequal \succapprox --- [0x02AB7] = 0x77, -- precedesorequal \precapprox --- [0x021B6] = 0x78, -- archleftdown \curvearrowleft --- [0x021B7] = 0x79, -- archrightdown \curvearrowright --- [0x003DC] = 0x7A, -- Digamma \digamma --- [0x003F0] = 0x7B, -- kappa \varkappa --- [0x1D55C] = 0x7C, -- k \Bbbk (blackboard k) --- [0x0210F] = 0x7D, -- planckover2pi \hslash % 0x7D --- [0x00127] = 0x7E, -- planckover2pi1 \hbar % 0x7E --- [0x003F6] = 0x7F, -- epsiloninv \backepsilon --- } --- --- mathencodings["tex-mc"] = { --- -- this file has no tfm so it gets mapped in the private space --- [0xFE324] = "mapsfromchar", --- } - mathencodings["tex-fraktur"] = { -- [0x1D504] = 0x41, -- A (fraktur A) -- [0x1D505] = 0x42, -- B |