summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-07-14 22:58:48 +0000
committerKarl Berry <karl@freefriends.org>2010-07-14 22:58:48 +0000
commitea749b653478cc14465055c40a20f8f221add0c5 (patch)
treeb6e23f5492818996e2f5201a4bc2e24afa249052 /Master
parent827000f2ceadd8c4bd3fa95705d6f8eb1e5d4a7c (diff)
unicode-math update (14jul10)
git-svn-id: svn://tug.org/texlive/trunk@19459 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/latex/unicode-math/README20
-rw-r--r--Master/texmf-dist/doc/latex/unicode-math/unicode-math-testsuite.pdfbin1935089 -> 1930917 bytes
-rw-r--r--Master/texmf-dist/doc/latex/unicode-math/unicode-math.pdfbin417055 -> 344583 bytes
-rw-r--r--Master/texmf-dist/doc/latex/unicode-math/unimath-symbols.pdfbin344505 -> 295990 bytes
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/Makefile145
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/L001a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest001a.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/L001b.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest001b.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/L001c.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest001c.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/L001d.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest001d.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/L001e.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest001e.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/L102b.ltx26
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/L201a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest201a.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/L201b.ltx6
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X001a.ltx10
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X001b.ltx9
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X001c.ltx9
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X001d.ltx9
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X001e.ltx9
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X002a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest002a.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X002b.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest002b.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X002c.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest002c.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X002d.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest002d.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X002e.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest002e.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X003a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003a.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X003b.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003b.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X003c.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003c.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X003d.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003d.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X003e.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003e.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X003f.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003f.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X003g.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003g.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X003h.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003h.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X003i.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003i.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X003j.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003j.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X003k.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003k.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X003l.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003l.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X003m.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003m.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X003n.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003n.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X003o.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003o.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X003p.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003p.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X004a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest004a.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X004b.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest004b.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X004c.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest004c.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X004d.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest004d.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X004e.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest004e.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X004f.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest004f.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X005a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest005a.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X005b.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest005b.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X005c.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest005c.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X005d.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest005d.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X005e.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest005e.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X005f.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest005f.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X005g.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest005g.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X005h.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest005h.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X005i.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest005i.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X005j.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest005j.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X005k.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest005k.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X005l.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest005l.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X010a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest010a.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X010b.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest010b.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X010c.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest010c.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X010d.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest010d.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X011a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest011a.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X011b.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest011b.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X012a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest012a.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X012b.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest012b.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X013a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest013a.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X013b.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest013b.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X013c.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest013c.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X013d.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest013d.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X013e.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest013e.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X014a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest014a.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X014b.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest014b.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X014c.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest014c.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X015a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest015a.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X015b.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest015b.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X016a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest016a.ltx)2
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X016b.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest016b.ltx)2
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X016c.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest016c.ltx)2
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X017a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest017a.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X017b.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest017b.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X017c.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest017c.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X017d.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest017d.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X018a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest018a.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X018b.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest018b.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X019a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest019a.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X019b.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest019b.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X020a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest020a.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X020b.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest020b.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X021a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest021a.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X021b.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest021b.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X030a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest030a.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X031a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest031a.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X031b.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest031b.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X031c.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest031c.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X032a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest032a.ltx)2
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X032b.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest032b.ltx)2
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X032c.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest032c.ltx)2
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X033a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest033a.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X100a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest100a.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X100b.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest100b.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X100c.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest100c.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X100d.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest100d.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X100e.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest100e.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X101a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest101a.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X102a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest102a.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X102b.ltx26
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X150a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest150a.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X151a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest151a.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X200a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest200a.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X200b.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest200b.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X201a.ltx7
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X201b.ltx6
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X202a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest202a.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X202b.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest202b.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X203a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest203a.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X204a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest204a.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X205a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest205a.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X206a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest206a.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X206b.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest206b.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X206c.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest206c.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X207a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest207a.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X300a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest300a.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X400a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest400a.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X401a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest401a.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X500a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest500a.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X501a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest501a.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X501b.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest501b.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X501d.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest501d.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X501e.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest501e.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X502a.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest502a.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X502b.ltx (renamed from Master/texmf-dist/source/latex/unicode-math/testfiles/umtest502b.ltx)0
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/X503a.ltx22
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/umtest-suite-L.tex8
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/umtest-suite-X.tex119
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/testfiles/umtest-suite.tex116
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/unicode-math-testsuite.ltx16
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/unicode-math.dtx1261
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/unimath-symbols.ltx8
-rw-r--r--Master/texmf-dist/tex/latex/unicode-math/unicode-math-table.tex48
-rw-r--r--Master/texmf-dist/tex/latex/unicode-math/unicode-math.sty643
140 files changed, 1594 insertions, 941 deletions
diff --git a/Master/texmf-dist/doc/latex/unicode-math/README b/Master/texmf-dist/doc/latex/unicode-math/README
index ca3e1febdc0..5cc36f73500 100644
--- a/Master/texmf-dist/doc/latex/unicode-math/README
+++ b/Master/texmf-dist/doc/latex/unicode-math/README
@@ -17,9 +17,9 @@ Unicode maths is currently supported to one degree or another by the fonts
- [Cambria Math][CM] (Microsoft),
- [Asana Math][AM] (Apostolos Syropolous),
- - [Neo Euler][NE] (Khalid Hosny),
+ - [Neo Euler][NE] (Khaled Hosny),
- [STIX][SM] (STI Pub), and
- - [XITS Math][XM] (Khalid Hosny).
+ - [XITS Math][XM] (Khaled Hosny).
With the exception of Cambria Math, which is proprietry, the fonts above
are all freely available and released under the [Open Font Licence][OFL].
@@ -49,7 +49,7 @@ Furthermore, it will be in a different font.
REQUIREMENTS
------------
-As well as running XeTeX, of course, this package requires recent versions
+As well as running XeTeX or LuaTeX this package requires recent versions
of the fontspec, expl3 and xpackages packages. If you're using TeX Live 2010
then there'll be no problems.
@@ -135,6 +135,20 @@ changes to unicode-math yourself (be sure to initialise the test suite
changes have not affected the standard behaviour.
+CHANGE HISTORY
+--------------
+
+- v0.5a (2010/07/14): TeX Live 2010 release
+
+ * Numerous documentation improvements
+ * Bug fix against stray catcode changes
+ * Add `\mathcal` and `\mathbfcal` as distinct from the Script style; these are only supported by the XITS fonts at present
+ * Small changes to the range of symbols offered (especially note that `\ac` is now `\invlazys` to avoid acronym package clash)
+ * Superscripts are allowed after primes (as they should be)
+ * Numerous LuaLaTeX improvements, including roots and over/under braces.
+
+- v0.5 (2010/06/03): Initial CTAN release
+
LICENCE
-------
diff --git a/Master/texmf-dist/doc/latex/unicode-math/unicode-math-testsuite.pdf b/Master/texmf-dist/doc/latex/unicode-math/unicode-math-testsuite.pdf
index ffed9b285c2..fce1437a304 100644
--- a/Master/texmf-dist/doc/latex/unicode-math/unicode-math-testsuite.pdf
+++ b/Master/texmf-dist/doc/latex/unicode-math/unicode-math-testsuite.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/unicode-math/unicode-math.pdf b/Master/texmf-dist/doc/latex/unicode-math/unicode-math.pdf
index f7901263371..2ed4201d41d 100644
--- a/Master/texmf-dist/doc/latex/unicode-math/unicode-math.pdf
+++ b/Master/texmf-dist/doc/latex/unicode-math/unicode-math.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/unicode-math/unimath-symbols.pdf b/Master/texmf-dist/doc/latex/unicode-math/unimath-symbols.pdf
index f05f4d310ec..2688ab41e33 100644
--- a/Master/texmf-dist/doc/latex/unicode-math/unimath-symbols.pdf
+++ b/Master/texmf-dist/doc/latex/unicode-math/unimath-symbols.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/unicode-math/Makefile b/Master/texmf-dist/source/latex/unicode-math/Makefile
index c85ecdb407b..f713a001f76 100644
--- a/Master/texmf-dist/source/latex/unicode-math/Makefile
+++ b/Master/texmf-dist/source/latex/unicode-math/Makefile
@@ -14,27 +14,28 @@ help:
echo ' ctan - generate archive for CTAN'
echo ' doc - compile documentation inside build/'
echo ' clean - remove build directory and compiled files'
+ echo ' all - clean & doc & ctan'
echo ' '
echo ' install - install the package into your home texmf tree'
echo ' install-sys - install the package into the system-wide texmf tree'
echo ' (may require administration privileges)'
echo ' install TEXMF=<texmf> - install the package into the path <texmf>'
echo ' '
- echo ' test - run the test suite'
+ echo ' check - run the test suite'
echo ' initest - initialise any new tests'
echo ' '
echo ' xfile F=<abc> - compile file <abc> with XeLaTeX'
echo ' lfile F=<abc> - compile file <abc> with LuaLaTeX'
echo ' '
- echo 'To add a new test, add a file called umtest****.ltx to'
+ echo 'To add a new test, add a file called X****.ltx to'
echo 'directory testfiles/, run `make initest` and ensure'
- echo 'that the output umtest****.safe.png is correct.'
+ echo 'that the output X****.safe.pdf is correct.'
echo ' '
echo '`make test` will then compare future compilations of the'
echo 'test file against this original and warn against any changes.'
- echo '`make build/umtest****.diff.png` will check a single test.'
+ echo '`make build/X****.diff.pdf` will check a single test.'
echo ' '
- echo 'I recommend `make -j4 test` or thereabouts to parallelise'
+ echo 'I recommend `make -j4 check` or thereabouts to parallelise'
echo 'the testing.'
@@ -49,6 +50,8 @@ SUITE = $(PKG)-testsuite
XMPL = unimath-example.ltx
SYM = unimath-symbols
+COPY = cp -a
+
testdir=testfiles
builddir=build
tds=$(builddir)/$(PKG).tds
@@ -56,9 +59,10 @@ tds=$(builddir)/$(PKG).tds
UPDATE = `which dtx-update` || true # TODO: generalise
# these files end up in the CTAN directory:
+
PKGSOURCE = $(PKG).dtx $(TBL) Makefile
DOC = $(PKG).pdf $(SUITE).pdf README $(XMPL) $(SYM).pdf
-CTANFILES = $(PKGSOURCE) $(DOC) ../$(testdir)
+CTANFILES = $(PKGSOURCE) $(DOC) $(testdir)
BUILDCTAN = $(addprefix $(builddir)/,$(CTANFILES))
BUILDDOC = $(addprefix $(builddir)/,$(DOC))
@@ -67,17 +71,16 @@ BUILDDOC = $(addprefix $(builddir)/,$(DOC))
LTXSOURCE = $(PKG).sty $(TBL)
SUITESOURCE = \
- $(testdir)/umtest-preamble.tex \
- $(testdir)/umtest-suite.tex
+ umtest-preamble.tex \
+ umtest-suite-X.tex \
+ umtest-suite-L.tex
-SWEETSAUCE = ginger and chilli
-
-TESTOUT = $(shell ls $(testdir)/umtest*.safe.png)
-BUILDTESTSRC = $(subst $(testdir)/,$(builddir)/,$(subst .safe.png,.ltx,$(TESTOUT)))
-BUILDTESTTARGET = $(subst $(testdir)/,$(builddir)/,$(subst .safe.png,.diff.png,$(TESTOUT)))
+TESTOUT = $(shell ls $(testdir)/*.safe.pdf)
+BUILDTESTSRC = $(subst $(testdir)/,$(builddir)/,$(subst .safe.pdf,.ltx,$(TESTOUT)))
+BUILDTESTTARGET = $(subst $(testdir)/,$(builddir)/,$(subst .safe.pdf,.diff.pdf,$(TESTOUT)))
BUILDSOURCE = $(addprefix $(builddir)/,$(LTXSOURCE))
-BUILDSUITE = $(subst $(testdir)/,$(builddir)/,$(SUITESOURCE))
+BUILDSUITE = $(addprefix $(builddir)/,$(SUITESOURCE))
BUILDFILES = $(BUILDSOURCE) $(BUILDSUITE) $(BUILDTESTSRC)
# and this is how the TDS zip file is produced:
@@ -110,29 +113,20 @@ clean:
rm -rf $(builddir)
rm -f $(PKG).zip $(PKG).pdf $(SUITE).pdf
-$(PKG).pdf: $(builddir)/$(PKG).pdf
- cp $< $@
-
-$(SUITE).pdf: $(builddir)/$(SUITE).pdf
- cp $< $@
-
+all: clean doc ctan
#### BUILD FILES
$(builddir)/$(PKG).dtx: $(PKG).dtx
mkdir -p $(builddir)
$(UPDATE)
- cp -f $< $@
+ $(COPY) $< $@
$(builddir)/$(PKG).sty: $(builddir)/$(PKG).dtx
echo "Updating $@"
cd $(builddir); \
tex $(PKG).dtx > /dev/null ;
-$(builddir)/unicode-math-table.tex: unicode-math-table.tex
- echo "Updating $@"
- cp -f $< $@
-
$(builddir)/$(PKG).pdf: $(builddir)/$(PKG).dtx $(BUILDSOURCE)
cd $(builddir); \
xelatex $(PKG).dtx && \
@@ -144,56 +138,56 @@ $(builddir)/$(SYM).pdf: $(builddir)/$(SYM).ltx
xelatex $(SYM).ltx && \
xelatex $(SYM).ltx;
-$(builddir)/$(SUITE).pdf: $(SUITE).ltx $(BUILDSUITE)
- xelatex -output-directory=$(builddir) $<
+$(builddir)/%.ltx: $(testdir)/%.ltx
+ $(COPY) $< $@
-$(builddir)/umtest-preamble.tex: $(testdir)/umtest-preamble.tex
- cp -f $< $@
+$(builddir)/%.tex: $(testdir)/%.tex
+ $(COPY) $< $@
-$(builddir)/umtest-suite.tex: $(testdir)/umtest-suite.tex
- cp -f $< $@
+$(builddir)/$(testdir): $(testdir)
+ $(COPY) $< $@
-$(builddir)/%.ltx: $(testdir)/%.ltx
- cp -f $< $@
+$(builddir)/%: %
+ $(COPY) $< $@
-$(builddir)/README: README.markdown
- cp -f $< $@
+$(builddir)/README: $(builddir)/README.markdown
+ mv -f $< $@
-$(builddir)/Makefile: Makefile
- cp -f $< $@
-$(builddir)/$(SUITE).ltx: $(SUITE).ltx
- cp -f $< $@
+# Test suite PDF
+
+$(builddir)/$(SUITE).pdf: $(builddir)/$(SUITE).ltx $(BUILDSUITE) $(builddir)/$(testdir)
+ cd $(builddir); \
+ xelatex $(SUITE).ltx
-$(builddir)/$(XMPL): $(XMPL)
- cp -f $< $@
-$(builddir)/$(SYM).ltx: $(SYM).ltx
- cp -f $< $@
##### CTAN INSTALLATION #####
-../$(testdir):
+tds: $(builddir)/$(PKG).tds.zip
-tds: $(TDSFILES)
- cd $(builddir); \
- zip -r $(PKG).tds.zip $(PKG).tds -x *.DS_Store -x *.safe.png
+$(builddir)/$(PKG).tds.zip: $(tds)/$(PKG).tds.zip
+ $(COPY) $< $@
+
+$(tds)/$(PKG).tds.zip: $(TDSFILES)
+ cd $(tds); \
+ zip -r $(PKG).tds.zip ./* -x *.DS_Store -x *.safe.pdf
ctan: $(BUILDCTAN) tds
cd $(builddir); \
zip -r \
../$(PKG).zip $(CTANFILES) $(PKG).tds.zip \
- -x *.DS_Store -x *.safe.png
+ -x *.DS_Store -x *.safe.pdf
$(tds)/doc/latex/$(PKG)/% \
$(tds)/tex/latex/$(PKG)/% \
$(tds)/source/latex/$(PKG)/% : $(builddir)/%
mkdir -p $(shell dirname $@)
- cp -f $< $@
+ $(COPY) $< $@
$(tds)/source/latex/$(PKG)/$(testdir):
- cp -rf $(testdir) $(tds)/source/latex/$(PKG)/$(testdir)
+ $(COPY) $(testdir) $(tds)/source/latex/$(PKG)/
##### LOCAL TEXMF INSTALLATION #####
@@ -203,7 +197,7 @@ TEXMFLOCAL=$(shell kpsewhich --var-value TEXMFLOCAL)
install: $(TDSFILES)
if test -n "$(TEXMFHOME)" ; then \
echo "Installing in '$(TEXMFHOME)'."; \
- cp -rf $(tds)/ $(TEXMFHOME); \
+ $(COPY) $(tds)/ $(TEXMFHOME); \
else \
echo "Cannot locate your home texmf tree. Specify manually with\n\n make install TEXMFHOME=/path/to/texmf\n" ; \
false ; \
@@ -212,7 +206,7 @@ install: $(TDSFILES)
install-sys: $(TDSFILES)
if test -n "$(TEXMFLOCAL)" ; then \
echo "Installing in '$(TEXMFLOCAL)'."; \
- cp -rf $(tds)/ $(TEXMFLOCAL); \
+ $(COPY) $(tds)/ $(TEXMFLOCAL); \
else \
echo "Cannot locate your system-wide local texmf tree. Specify manually with\n\n make install TEXMFLOCAL=/path/to/texmf\n" ; \
false ; \
@@ -223,21 +217,21 @@ install-sys: $(TDSFILES)
##### USEFUL FOR TEST FILES #####
xfile: $(F) $(BUILDSOURCE)
- if [ "$(F)" = "" ] ; then \
+ if test -z "$(F)" ; then \
echo "Need a filename!\nE.g. \`make xfile F=test.ltx\`" ; \
false ; \
fi
echo Typesetting $(F):
- cp -f $(F) $(builddir)/$(F)
+ $(COPY) $(F) $(builddir)/$(F)
cd $(builddir); xelatex $(F)
lfile: $(F) $(BUILDSOURCE)
- if [ "$(F)" = "" ] ; then \
+ if test -z "$(F)" ; then \
echo "Need a filename!\nE.g. \`make lfile F=test.ltx\`" ; \
false ; \
fi
echo Typesetting $(F):
- cp -f $(F) $(builddir)/$(F)
+ $(COPY) $(F) $(builddir)/$(F)
cd $(builddir); lualatex $(F)
@@ -248,40 +242,43 @@ lfile: $(F) $(BUILDSOURCE)
#### All tests ####
-test: $(BUILDFILES) $(BUILDTESTTARGET)
+check: $(BUILDFILES) $(BUILDTESTTARGET)
cd $(testdir); \
- ls umtest*.ltx | sed -e 's/umtest\(.*\).ltx/\\inserttest{\1}/g' > umtest-suite.tex
+ ls X*.ltx | sed -e 's/\(.*\).ltx/\\inserttest{\1}/g' > umtest-suite-X.tex; \
+ ls L*.ltx | sed -e 's/\(.*\).ltx/\\inserttest{\1}/g' > umtest-suite-L.tex;
#### Each step of the process ####
-$(builddir)/%.diff.png: $(builddir)/%.test.png
- echo '$*: Comparing with good PNG.'
- if [ "${shell compare -metric RMSE $(builddir)/$*.test.png $(testdir)/$*.safe.png $(builddir)/$*.diff.png | grep 'dB'}" = "0 dB" ] ; then \
+COMPARE_OPTS = -metric AE -density 300x300
+PIXEL_TOLERANCE = 1
+
+$(builddir)/%.diff.pdf: $(builddir)/%.pdf
+ echo '$*: Comparing with reference PDF.'
+ if [ ${shell compare $(COMPARE_OPTS) $(builddir)/$*.pdf $(testdir)/$*.safe.pdf $(builddir)/$*.diff.pdf 2>&1} -le $(PIXEL_TOLERANCE) ] ; then \
echo '$*: Test passed.' ; \
else \
echo '$*: Test failed.' ; \
false ; \
fi
-$(builddir)/%.test.png: $(builddir)/%.pdf
- echo '$*: Converting PDF to PNG.'
- convert -density 300x300 $< $(builddir)/$*.test.png
+$(builddir)/X%.pdf: $(BUILDSOURCE) $(BUILDSUITE) $(builddir)/X%.ltx
+ echo 'X$*: Generating PDF output from XeLaTeX.'
+ cd $(builddir); xelatex -interaction=batchmode X$*.ltx > /dev/null
-$(builddir)/umtest%.pdf: $(BUILDSOURCE) $(BUILDSUITE) $(builddir)/umtest%.ltx
- echo 'umtest$*: Generating PDF output.'
- cd $(builddir); xelatex -interaction=batchmode umtest$*.ltx > /dev/null
+$(builddir)/L%.pdf: $(BUILDSOURCE) $(BUILDSUITE) $(builddir)/L%.ltx
+ echo 'L$*: Generating PDF output from LuaLaTeX.'
+ cd $(builddir); lualatex -interaction=batchmode L$*.ltx > /dev/null
#### Generating new tests ####
-lonelystub = $(shell cd $(testdir); ls | egrep 'umtest(.*\.ltx)|(.*\.safe.png)' | cut -d . -f 1 | uniq -u)
-lonelyfile = $(addsuffix .safe.png,$(lonelystub))
-lonelypath = $(addprefix $(testdir)/,$(lonelyfile))
-lonelytest = $(addprefix $(builddir)/,$(addsuffix .test.png,$(lonelystub)))
+lonelystub = $(shell cd $(testdir); ls | egrep '(.*\.ltx)|(.*\.safe.pdf)' | cut -d . -f 1 | uniq -u)
+lonelytest = $(addprefix $(testdir)/,$(addsuffix .safe.pdf,$(lonelystub)))
+lonelytesttarget = $(addprefix $(builddir)/,$(addsuffix .pdf,$(lonelystub)))
-initest: $(lonelypath)
+initest: $(lonelytest)
-$(lonelypath): $(lonelytest)
- cp `echo $@ | sed -e s/$(testdir)/$(builddir)/ -e s/.safe.png/.test.png/` $@
+$(lonelytest): $(lonelytesttarget)
+ $(COPY) `echo $@ | sed -e s/$(testdir)/$(builddir)/ -e s/.safe.pdf/.pdf/` $@
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest001a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/L001a.ltx
index a77bb279136..a77bb279136 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest001a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/L001a.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest001b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/L001b.ltx
index ac4562f82a4..ac4562f82a4 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest001b.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/L001b.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest001c.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/L001c.ltx
index f1e18b59a53..f1e18b59a53 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest001c.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/L001c.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest001d.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/L001d.ltx
index 2eb0fe47e45..2eb0fe47e45 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest001d.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/L001d.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest001e.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/L001e.ltx
index 97890262c8f..97890262c8f 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest001e.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/L001e.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/L102b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/L102b.ltx
new file mode 100644
index 00000000000..5d62e1a15ed
--- /dev/null
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/L102b.ltx
@@ -0,0 +1,26 @@
+\documentclass{article}
+\usepackage{unicode-math}
+\begin{document}
+\newcommand\ARRAY[4]{%
+ \begin{array}{cc}
+ #1 & #2 \\ #3 & #4
+ \end{array}}
+\def\test{\[
+ \left.\left[\ARRAY a b c d\right]
+ \middle\slash
+ \left[\ARRAY 1 1 1 {\mathsf 0}\right]
+ \right. \]}
+\setmathfont
+ [slash-delimiter=frac]{Cambria Math}
+\setmathfont
+ [range={\mathsfup},
+ Color=0000FF]
+ {STIXGeneral}
+\test
+\setmathfont
+ [slash-delimiter=frac,
+ range="2044,
+ Color=FF0000]
+ {Cambria Math}
+\test
+\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest201a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/L201a.ltx
index 84d41dd7598..84d41dd7598 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest201a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/L201a.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/L201b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/L201b.ltx
new file mode 100644
index 00000000000..344df2ba222
--- /dev/null
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/L201b.ltx
@@ -0,0 +1,6 @@
+\input{umtest-preamble}
+\usepackage{unicode-math}
+\setmathfont{Cambria Math}
+\begin{document}
+\[ \sqrt[n]{1+\sqrt[n]{1+\sqrt[n]{1+\sqrt[n]{1+\sqrt[n]{1+x}}}}}\]
+\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X001a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X001a.ltx
new file mode 100644
index 00000000000..a77bb279136
--- /dev/null
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X001a.ltx
@@ -0,0 +1,10 @@
+
+\input{umtest-preamble}
+\usepackage[math-style=TeX]{unicode-math}
+\setmathfont{Cambria Math}
+\begin{document}
+\[\LATINtext\]
+\[\latintext\]
+\[\LATINmath\]
+\[\latinmath\]
+\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X001b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X001b.ltx
new file mode 100644
index 00000000000..ac4562f82a4
--- /dev/null
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X001b.ltx
@@ -0,0 +1,9 @@
+\input{umtest-preamble}
+\usepackage[math-style=ISO]{unicode-math}
+\setmathfont{Cambria Math}
+\begin{document}
+\[\LATINtext\]
+\[\latintext\]
+\[\LATINmath\]
+\[\latinmath\]
+\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X001c.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X001c.ltx
new file mode 100644
index 00000000000..f1e18b59a53
--- /dev/null
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X001c.ltx
@@ -0,0 +1,9 @@
+\input{umtest-preamble}
+\usepackage[math-style=literal]{unicode-math}
+\setmathfont{Cambria Math}
+\begin{document}
+\[\LATINtext\]
+\[\latintext\]
+\[\LATINmath\]
+\[\latinmath\]
+\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X001d.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X001d.ltx
new file mode 100644
index 00000000000..2eb0fe47e45
--- /dev/null
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X001d.ltx
@@ -0,0 +1,9 @@
+\input{umtest-preamble}
+\usepackage[math-style=french]{unicode-math}
+\setmathfont{Cambria Math}
+\begin{document}
+\[\LATINtext\]
+\[\latintext\]
+\[\LATINmath\]
+\[\latinmath\]
+\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X001e.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X001e.ltx
new file mode 100644
index 00000000000..97890262c8f
--- /dev/null
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X001e.ltx
@@ -0,0 +1,9 @@
+\input{umtest-preamble}
+\usepackage[math-style=upright]{unicode-math}
+\setmathfont{Cambria Math}
+\begin{document}
+\[\LATINtext\]
+\[\latintext\]
+\[\LATINmath\]
+\[\latinmath\]
+\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest002a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X002a.ltx
index a63656c7b0a..a63656c7b0a 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest002a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X002a.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest002b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X002b.ltx
index de6f5474073..de6f5474073 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest002b.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X002b.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest002c.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X002c.ltx
index 0239bace484..0239bace484 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest002c.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X002c.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest002d.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X002d.ltx
index 4ec5baf1857..4ec5baf1857 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest002d.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X002d.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest002e.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X002e.ltx
index dfa269c4b29..dfa269c4b29 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest002e.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X002e.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003a.ltx
index c41463fee4e..c41463fee4e 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003a.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003b.ltx
index a0c1a095c0c..a0c1a095c0c 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003b.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003b.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003c.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003c.ltx
index 06d6140e8e0..06d6140e8e0 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003c.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003c.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003d.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003d.ltx
index 3617f29eb56..3617f29eb56 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003d.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003d.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003e.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003e.ltx
index 683344f4d8f..683344f4d8f 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003e.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003e.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003f.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003f.ltx
index c9b7566c16a..c9b7566c16a 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003f.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003f.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003g.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003g.ltx
index 93508517c86..93508517c86 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003g.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003g.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003h.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003h.ltx
index 85293b2b647..85293b2b647 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003h.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003h.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003i.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003i.ltx
index 531c9ae9482..531c9ae9482 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003i.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003i.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003j.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003j.ltx
index 101a5bd6125..101a5bd6125 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003j.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003j.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003k.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003k.ltx
index a8820f96cd4..a8820f96cd4 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003k.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003k.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003l.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003l.ltx
index 816465b3262..816465b3262 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003l.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003l.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003m.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003m.ltx
index 0b53338cbc4..0b53338cbc4 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003m.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003m.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003n.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003n.ltx
index b846b3efea2..b846b3efea2 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003n.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003n.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003o.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003o.ltx
index f66c7a1942f..f66c7a1942f 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003o.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003o.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003p.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003p.ltx
index 0758e53180d..0758e53180d 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest003p.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003p.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest004a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X004a.ltx
index e52a7177c3b..e52a7177c3b 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest004a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X004a.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest004b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X004b.ltx
index 4e058413011..4e058413011 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest004b.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X004b.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest004c.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X004c.ltx
index 9a24fb9b2f9..9a24fb9b2f9 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest004c.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X004c.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest004d.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X004d.ltx
index 5e59de81eee..5e59de81eee 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest004d.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X004d.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest004e.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X004e.ltx
index 14fd11049b1..14fd11049b1 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest004e.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X004e.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest004f.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X004f.ltx
index e5de3fc8686..e5de3fc8686 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest004f.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X004f.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest005a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X005a.ltx
index 3b5b0ce2988..3b5b0ce2988 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest005a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X005a.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest005b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X005b.ltx
index 0f57b4a516d..0f57b4a516d 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest005b.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X005b.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest005c.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X005c.ltx
index 3ed6a2c7ce2..3ed6a2c7ce2 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest005c.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X005c.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest005d.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X005d.ltx
index 784b40f67f7..784b40f67f7 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest005d.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X005d.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest005e.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X005e.ltx
index 01c3f606b45..01c3f606b45 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest005e.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X005e.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest005f.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X005f.ltx
index 292e7c35bc0..292e7c35bc0 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest005f.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X005f.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest005g.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X005g.ltx
index 4fa9b07891e..4fa9b07891e 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest005g.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X005g.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest005h.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X005h.ltx
index 08fef7aae97..08fef7aae97 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest005h.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X005h.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest005i.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X005i.ltx
index 95d871566bb..95d871566bb 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest005i.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X005i.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest005j.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X005j.ltx
index 2ac0f34ce13..2ac0f34ce13 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest005j.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X005j.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest005k.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X005k.ltx
index a6912432c61..a6912432c61 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest005k.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X005k.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest005l.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X005l.ltx
index 0d80cab5a5e..0d80cab5a5e 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest005l.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X005l.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest010a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X010a.ltx
index 2b1c9d94450..2b1c9d94450 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest010a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X010a.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest010b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X010b.ltx
index 361ca0bf993..361ca0bf993 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest010b.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X010b.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest010c.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X010c.ltx
index 7d188361a91..7d188361a91 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest010c.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X010c.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest010d.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X010d.ltx
index 51206a6caf5..51206a6caf5 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest010d.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X010d.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest011a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X011a.ltx
index 79ae950c0b6..79ae950c0b6 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest011a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X011a.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest011b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X011b.ltx
index cfc5b7ba7ab..cfc5b7ba7ab 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest011b.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X011b.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest012a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X012a.ltx
index 06c6bc26202..06c6bc26202 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest012a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X012a.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest012b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X012b.ltx
index 845a3211b6a..845a3211b6a 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest012b.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X012b.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest013a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X013a.ltx
index 0192f10d062..0192f10d062 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest013a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X013a.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest013b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X013b.ltx
index 3c65d345ade..3c65d345ade 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest013b.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X013b.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest013c.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X013c.ltx
index 415af4ec8bd..415af4ec8bd 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest013c.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X013c.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest013d.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X013d.ltx
index a00cf42d01b..a00cf42d01b 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest013d.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X013d.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest013e.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X013e.ltx
index f6ceed8dc86..f6ceed8dc86 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest013e.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X013e.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest014a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X014a.ltx
index fc6f553987c..fc6f553987c 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest014a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X014a.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest014b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X014b.ltx
index 4149fc57e12..4149fc57e12 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest014b.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X014b.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest014c.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X014c.ltx
index ba6189e418b..ba6189e418b 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest014c.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X014c.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest015a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X015a.ltx
index f973d4f3a34..f973d4f3a34 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest015a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X015a.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest015b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X015b.ltx
index 5e3c2b63211..5e3c2b63211 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest015b.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X015b.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest016a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X016a.ltx
index 8b5b00a3ac7..29aa54e5c2d 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest016a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X016a.ltx
@@ -1,6 +1,6 @@
\input{umtest-preamble}
\usepackage{unicode-math}
-\setmathfont{Asana Math}
+\setmathfont{Asana-Math.otf}
\begin{document}
\[\mathtt{\LATINtext}\]
\[\mathtt{\latintext}\]
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest016b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X016b.ltx
index ac4f9effd01..9a06c7718b0 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest016b.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X016b.ltx
@@ -1,6 +1,6 @@
\input{umtest-preamble}
\usepackage{unicode-math}
-\setmathfont{Asana Math}
+\setmathfont{Asana-Math.otf}
\begin{document}
\[\mathtt{0123456789}\]
\[\numbersmathtt\]
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest016c.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X016c.ltx
index b9fd8b8d8b4..496b033b10c 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest016c.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X016c.ltx
@@ -1,6 +1,6 @@
\input{umtest-preamble}
\usepackage{unicode-math}
-\setmathfont{Asana Math}
+\setmathfont{Asana-Math.otf}
\begin{document}
\[\LATINmathtt\]
\[\latinmathtt\]
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest017a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X017a.ltx
index 6802a577503..6802a577503 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest017a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X017a.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest017b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X017b.ltx
index 7f86f0b89b9..7f86f0b89b9 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest017b.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X017b.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest017c.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X017c.ltx
index 979c07d7a59..979c07d7a59 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest017c.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X017c.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest017d.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X017d.ltx
index ad8f3741270..ad8f3741270 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest017d.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X017d.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest018a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X018a.ltx
index 54da5dfe0e8..54da5dfe0e8 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest018a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X018a.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest018b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X018b.ltx
index 177e9b3fd91..177e9b3fd91 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest018b.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X018b.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest019a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X019a.ltx
index b41e0d188be..b41e0d188be 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest019a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X019a.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest019b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X019b.ltx
index 77ef28dd8aa..77ef28dd8aa 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest019b.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X019b.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest020a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X020a.ltx
index 6e5f4fc09bb..6e5f4fc09bb 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest020a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X020a.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest020b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X020b.ltx
index 1af7bda0bb7..1af7bda0bb7 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest020b.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X020b.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest021a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X021a.ltx
index 6e5f4fc09bb..6e5f4fc09bb 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest021a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X021a.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest021b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X021b.ltx
index 5df9b942084..5df9b942084 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest021b.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X021b.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest030a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X030a.ltx
index e2235a6e08c..e2235a6e08c 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest030a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X030a.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest031a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X031a.ltx
index 6ec91773f00..6ec91773f00 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest031a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X031a.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest031b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X031b.ltx
index b195695b08e..b195695b08e 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest031b.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X031b.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest031c.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X031c.ltx
index 9807a182d11..9807a182d11 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest031c.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X031c.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest032a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X032a.ltx
index 5341492bd39..b3b4baa80c8 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest032a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X032a.ltx
@@ -1,6 +1,6 @@
\input{umtest-preamble}
\usepackage[partial=upright]{unicode-math}
-\setmathfont{Asana Math}
+\setmathfont{Code2001}
\begin{document}
\[∂𝜕 \quad 𝛛𝝏 \quad 𝞉𝟃\]
\[∂𝜕 \quad \mathbf{∂𝜕} \quad \mathbfsf{∂𝜕}\]
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest032b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X032b.ltx
index 5a67d6ae0a3..4b85ab581a0 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest032b.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X032b.ltx
@@ -1,6 +1,6 @@
\input{umtest-preamble}
\usepackage[partial=italic]{unicode-math}
-\setmathfont{Asana Math}
+\setmathfont{Code2001}
\begin{document}
\[∂𝜕 \quad 𝛛𝝏 \quad 𝞉𝟃\]
\[∂𝜕 \quad \mathbf{∂𝜕} \quad \mathbfsf{∂𝜕}\]
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest032c.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X032c.ltx
index ced2932f8d3..365edcb9f62 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest032c.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X032c.ltx
@@ -1,6 +1,6 @@
\input{umtest-preamble}
\usepackage[partial=literal]{unicode-math}
-\setmathfont{Asana Math}
+\setmathfont{Code2001}
\begin{document}
\[∂𝜕 \quad 𝛛𝝏 \quad 𝞉𝟃\]
\[∂𝜕 \quad \mathbf{∂𝜕} \quad \mathbfsf{∂𝜕}\]
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest033a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X033a.ltx
index 7bc54cf0655..7bc54cf0655 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest033a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X033a.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest100a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X100a.ltx
index 02d67fa4ea5..02d67fa4ea5 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest100a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X100a.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest100b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X100b.ltx
index 7c2fc729287..7c2fc729287 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest100b.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X100b.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest100c.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X100c.ltx
index 4f0963a13d9..4f0963a13d9 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest100c.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X100c.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest100d.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X100d.ltx
index fc776937285..fc776937285 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest100d.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X100d.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest100e.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X100e.ltx
index 471d165b962..471d165b962 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest100e.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X100e.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest101a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X101a.ltx
index 499f862d74e..499f862d74e 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest101a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X101a.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest102a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X102a.ltx
index eda889561eb..eda889561eb 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest102a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X102a.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X102b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X102b.ltx
new file mode 100644
index 00000000000..5d62e1a15ed
--- /dev/null
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X102b.ltx
@@ -0,0 +1,26 @@
+\documentclass{article}
+\usepackage{unicode-math}
+\begin{document}
+\newcommand\ARRAY[4]{%
+ \begin{array}{cc}
+ #1 & #2 \\ #3 & #4
+ \end{array}}
+\def\test{\[
+ \left.\left[\ARRAY a b c d\right]
+ \middle\slash
+ \left[\ARRAY 1 1 1 {\mathsf 0}\right]
+ \right. \]}
+\setmathfont
+ [slash-delimiter=frac]{Cambria Math}
+\setmathfont
+ [range={\mathsfup},
+ Color=0000FF]
+ {STIXGeneral}
+\test
+\setmathfont
+ [slash-delimiter=frac,
+ range="2044,
+ Color=FF0000]
+ {Cambria Math}
+\test
+\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest150a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X150a.ltx
index 0cb4b301d3d..0cb4b301d3d 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest150a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X150a.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest151a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X151a.ltx
index fc8c46ddd91..fc8c46ddd91 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest151a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X151a.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest200a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X200a.ltx
index a26791419ef..a26791419ef 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest200a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X200a.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest200b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X200b.ltx
index 60298e39d60..60298e39d60 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest200b.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X200b.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X201a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X201a.ltx
new file mode 100644
index 00000000000..84d41dd7598
--- /dev/null
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X201a.ltx
@@ -0,0 +1,7 @@
+\input{umtest-preamble}
+\usepackage{unicode-math}
+\setmathfont{Cambria Math}
+\begin{document}
+\[ \sqrt{\sin^{2}x+\cos^{2}x}=1 \]
+\[ \sqrt{1+\sqrt{1+\sqrt{1+\sqrt{1+x}}}}\]
+\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X201b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X201b.ltx
new file mode 100644
index 00000000000..344df2ba222
--- /dev/null
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X201b.ltx
@@ -0,0 +1,6 @@
+\input{umtest-preamble}
+\usepackage{unicode-math}
+\setmathfont{Cambria Math}
+\begin{document}
+\[ \sqrt[n]{1+\sqrt[n]{1+\sqrt[n]{1+\sqrt[n]{1+\sqrt[n]{1+x}}}}}\]
+\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest202a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X202a.ltx
index b6dc986f62b..b6dc986f62b 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest202a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X202a.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest202b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X202b.ltx
index c4f159a85f4..c4f159a85f4 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest202b.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X202b.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest203a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X203a.ltx
index caa793930e7..caa793930e7 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest203a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X203a.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest204a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X204a.ltx
index 95a219a933d..95a219a933d 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest204a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X204a.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest205a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X205a.ltx
index f5887be747d..f5887be747d 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest205a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X205a.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest206a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X206a.ltx
index 08de9dee0aa..08de9dee0aa 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest206a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X206a.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest206b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X206b.ltx
index 0f054b98c6b..0f054b98c6b 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest206b.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X206b.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest206c.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X206c.ltx
index 3ed745d8c2e..3ed745d8c2e 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest206c.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X206c.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest207a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X207a.ltx
index 0edbf0806bc..0edbf0806bc 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest207a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X207a.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest300a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X300a.ltx
index 694c33da949..694c33da949 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest300a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X300a.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest400a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X400a.ltx
index 014bfe1d35a..014bfe1d35a 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest400a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X400a.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest401a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X401a.ltx
index ae6c67abf76..ae6c67abf76 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest401a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X401a.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest500a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X500a.ltx
index 91eb7bcd520..91eb7bcd520 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest500a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X500a.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest501a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X501a.ltx
index 63add88fcc5..63add88fcc5 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest501a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X501a.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest501b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X501b.ltx
index 6aaca122253..6aaca122253 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest501b.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X501b.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest501d.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X501d.ltx
index 5bb0a0fb66d..5bb0a0fb66d 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest501d.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X501d.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest501e.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X501e.ltx
index b9470cd3618..b9470cd3618 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest501e.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X501e.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest502a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X502a.ltx
index b1c897c069c..b1c897c069c 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest502a.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X502a.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest502b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X502b.ltx
index ab050d52225..ab050d52225 100644
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest502b.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X502b.ltx
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X503a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X503a.ltx
new file mode 100644
index 00000000000..1ec7ff2e738
--- /dev/null
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/X503a.ltx
@@ -0,0 +1,22 @@
+\input{umtest-preamble}
+\usepackage{unicode-math}
+\begin{document}
+\setmathfont{XITS Math}
+\[
+ \mathscr{\LATINtext}
+\]
+\[
+ \mathcal{\LATINtext}
+\]
+\setmathfont[range={\mathcal,\mathbfcal},StylisticSet=1]{XITS Math}
+\[
+ \mathscr{\LATINtext}
+\]
+\[
+ \mathcal{\LATINtext}
+\]
+\footnotesize
+\[
+ \mathbfcal{\LATINtext}
+\]
+\end{document}
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest-suite-L.tex b/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest-suite-L.tex
new file mode 100644
index 00000000000..79f447e1537
--- /dev/null
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest-suite-L.tex
@@ -0,0 +1,8 @@
+\inserttest{L001a}
+\inserttest{L001b}
+\inserttest{L001c}
+\inserttest{L001d}
+\inserttest{L001e}
+\inserttest{L102b}
+\inserttest{L201a}
+\inserttest{L201b}
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest-suite-X.tex b/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest-suite-X.tex
new file mode 100644
index 00000000000..d9400a017cc
--- /dev/null
+++ b/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest-suite-X.tex
@@ -0,0 +1,119 @@
+\inserttest{X001a}
+\inserttest{X001b}
+\inserttest{X001c}
+\inserttest{X001d}
+\inserttest{X001e}
+\inserttest{X002a}
+\inserttest{X002b}
+\inserttest{X002c}
+\inserttest{X002d}
+\inserttest{X002e}
+\inserttest{X003a}
+\inserttest{X003b}
+\inserttest{X003c}
+\inserttest{X003d}
+\inserttest{X003e}
+\inserttest{X003f}
+\inserttest{X003g}
+\inserttest{X003h}
+\inserttest{X003i}
+\inserttest{X003j}
+\inserttest{X003k}
+\inserttest{X003l}
+\inserttest{X003m}
+\inserttest{X003n}
+\inserttest{X003o}
+\inserttest{X003p}
+\inserttest{X004a}
+\inserttest{X004b}
+\inserttest{X004c}
+\inserttest{X004d}
+\inserttest{X004e}
+\inserttest{X004f}
+\inserttest{X005a}
+\inserttest{X005b}
+\inserttest{X005c}
+\inserttest{X005d}
+\inserttest{X005e}
+\inserttest{X005f}
+\inserttest{X005g}
+\inserttest{X005h}
+\inserttest{X005i}
+\inserttest{X005j}
+\inserttest{X005k}
+\inserttest{X005l}
+\inserttest{X010a}
+\inserttest{X010b}
+\inserttest{X010c}
+\inserttest{X010d}
+\inserttest{X011a}
+\inserttest{X011b}
+\inserttest{X012a}
+\inserttest{X012b}
+\inserttest{X013a}
+\inserttest{X013b}
+\inserttest{X013c}
+\inserttest{X013d}
+\inserttest{X013e}
+\inserttest{X014a}
+\inserttest{X014b}
+\inserttest{X014c}
+\inserttest{X015a}
+\inserttest{X015b}
+\inserttest{X016a}
+\inserttest{X016b}
+\inserttest{X016c}
+\inserttest{X017a}
+\inserttest{X017b}
+\inserttest{X017c}
+\inserttest{X017d}
+\inserttest{X018a}
+\inserttest{X018b}
+\inserttest{X019a}
+\inserttest{X019b}
+\inserttest{X020a}
+\inserttest{X020b}
+\inserttest{X021a}
+\inserttest{X021b}
+\inserttest{X030a}
+\inserttest{X031a}
+\inserttest{X031b}
+\inserttest{X031c}
+\inserttest{X032a}
+\inserttest{X032b}
+\inserttest{X032c}
+\inserttest{X033a}
+\inserttest{X100a}
+\inserttest{X100b}
+\inserttest{X100c}
+\inserttest{X100d}
+\inserttest{X100e}
+\inserttest{X101a}
+\inserttest{X102a}
+\inserttest{X102b}
+\inserttest{X150a}
+\inserttest{X151a}
+\inserttest{X200a}
+\inserttest{X200b}
+\inserttest{X201a}
+\inserttest{X201b}
+\inserttest{X202a}
+\inserttest{X202b}
+\inserttest{X203a}
+\inserttest{X204a}
+\inserttest{X205a}
+\inserttest{X206a}
+\inserttest{X206b}
+\inserttest{X206c}
+\inserttest{X207a}
+\inserttest{X300a}
+\inserttest{X400a}
+\inserttest{X401a}
+\inserttest{X500a}
+\inserttest{X501a}
+\inserttest{X501b}
+\inserttest{X501d}
+\inserttest{X501e}
+\inserttest{X502a}
+\inserttest{X502b}
+\inserttest{X503a}
diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest-suite.tex b/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest-suite.tex
deleted file mode 100644
index 25d807074c1..00000000000
--- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest-suite.tex
+++ /dev/null
@@ -1,116 +0,0 @@
-\inserttest{001a}
-\inserttest{001b}
-\inserttest{001c}
-\inserttest{001d}
-\inserttest{001e}
-\inserttest{002a}
-\inserttest{002b}
-\inserttest{002c}
-\inserttest{002d}
-\inserttest{002e}
-\inserttest{003a}
-\inserttest{003b}
-\inserttest{003c}
-\inserttest{003d}
-\inserttest{003e}
-\inserttest{003f}
-\inserttest{003g}
-\inserttest{003h}
-\inserttest{003i}
-\inserttest{003j}
-\inserttest{003k}
-\inserttest{003l}
-\inserttest{003m}
-\inserttest{003n}
-\inserttest{003o}
-\inserttest{003p}
-\inserttest{004a}
-\inserttest{004b}
-\inserttest{004c}
-\inserttest{004d}
-\inserttest{004e}
-\inserttest{004f}
-\inserttest{005a}
-\inserttest{005b}
-\inserttest{005c}
-\inserttest{005d}
-\inserttest{005e}
-\inserttest{005f}
-\inserttest{005g}
-\inserttest{005h}
-\inserttest{005i}
-\inserttest{005j}
-\inserttest{005k}
-\inserttest{005l}
-\inserttest{010a}
-\inserttest{010b}
-\inserttest{010c}
-\inserttest{010d}
-\inserttest{011a}
-\inserttest{011b}
-\inserttest{012a}
-\inserttest{012b}
-\inserttest{013a}
-\inserttest{013b}
-\inserttest{013c}
-\inserttest{013d}
-\inserttest{013e}
-\inserttest{014a}
-\inserttest{014b}
-\inserttest{014c}
-\inserttest{015a}
-\inserttest{015b}
-\inserttest{016a}
-\inserttest{016b}
-\inserttest{016c}
-\inserttest{017a}
-\inserttest{017b}
-\inserttest{017c}
-\inserttest{017d}
-\inserttest{018a}
-\inserttest{018b}
-\inserttest{019a}
-\inserttest{019b}
-\inserttest{020a}
-\inserttest{020b}
-\inserttest{021a}
-\inserttest{021b}
-\inserttest{030a}
-\inserttest{031a}
-\inserttest{031b}
-\inserttest{031c}
-\inserttest{032a}
-\inserttest{032b}
-\inserttest{032c}
-\inserttest{033a}
-\inserttest{100a}
-\inserttest{100b}
-\inserttest{100c}
-\inserttest{100d}
-\inserttest{100e}
-\inserttest{101a}
-\inserttest{102a}
-\inserttest{150a}
-\inserttest{151a}
-\inserttest{200a}
-\inserttest{200b}
-\inserttest{201a}
-\inserttest{202a}
-\inserttest{202b}
-\inserttest{203a}
-\inserttest{204a}
-\inserttest{205a}
-\inserttest{206a}
-\inserttest{206b}
-\inserttest{206c}
-\inserttest{207a}
-\inserttest{300a}
-\inserttest{400a}
-\inserttest{401a}
-\inserttest{500a}
-\inserttest{501a}
-\inserttest{501b}
-\inserttest{501d}
-\inserttest{501e}
-\inserttest{502a}
-\inserttest{502b}
diff --git a/Master/texmf-dist/source/latex/unicode-math/unicode-math-testsuite.ltx b/Master/texmf-dist/source/latex/unicode-math/unicode-math-testsuite.ltx
index 9082f0c045b..bbee8ecfde1 100644
--- a/Master/texmf-dist/source/latex/unicode-math/unicode-math-testsuite.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/unicode-math-testsuite.ltx
@@ -5,15 +5,15 @@
\setmonofont{Consolas}
\newcommand\inserttest[1]{%
- \section{Test #1}
+ \subsection{Test #1}
\begin{minipage}{0.5\textwidth}
- \VerbatimInput{testfiles/umtest#1.ltx}
+ \VerbatimInput{testfiles/#1.ltx}
\end{minipage}
\hfill
\begin{minipage}{8cm+4pt}
\fboxsep=1pt
\fboxrule=1pt
- \fbox{\includegraphics[width=8cm]{testfiles/umtest#1.safe.png}}
+ \fbox{\includegraphics[width=8cm]{testfiles/#1.safe.pdf}}
\end{minipage}
}
@@ -25,7 +25,7 @@
\maketitle
\thispagestyle{empty}
-\section*{Preamble}
+\section{Preamble}
\begin{minipage}{0.5\textwidth}
The following pieces of output are generated from the code shown.
@@ -33,6 +33,12 @@ As well as being good minimal examples, these tests are useful to ensure that ne
When the test suite is run, the new output is compared pixel by pixel with that shown here and warnings produced if the outputs are not identical.
\end{minipage}
-\input{testfiles/umtest-suite.tex}
+\section{\XeLaTeX\ test files}
+
+\input{testfiles/umtest-suite-X.tex}
+
+\section{Lua\LaTeX\ test files}
+
+\input{testfiles/umtest-suite-L.tex}
\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/source/latex/unicode-math/unicode-math.dtx b/Master/texmf-dist/source/latex/unicode-math/unicode-math.dtx
index ac8271416b2..fe8cdb34302 100644
--- a/Master/texmf-dist/source/latex/unicode-math/unicode-math.dtx
+++ b/Master/texmf-dist/source/latex/unicode-math/unicode-math.dtx
@@ -17,7 +17,11 @@ This work is "author-maintained" by Will Robertson.
\endpreamble
\nopostamble
\askforoverwritefalse
-\generate{\file{unicode-math.sty}{\from{unicode-math.dtx}{package}}}
+\generate{\file{unicode-math.sty}{
+ \from{unicode-math.dtx}{preamble}
+ \from{unicode-math.dtx}{msg}
+ \from{unicode-math.dtx}{package,stix}
+}}
\nopreamble
\def\tempa{plain}
\ifx\tempa\fmtname\endgroup\expandafter\bye\fi
@@ -25,10 +29,10 @@ This work is "author-maintained" by Will Robertson.
\endgroup
\ProvidesFile{unicode-math.dtx}
%</internal>
-%<package>\ProvidesPackage{unicode-math}
-%<*package>
- [2010/06/03 v0.5 Unicode maths in XeLaTeX]
-%</package>
+%<preamble>\ProvidesPackage{unicode-math}
+%<*preamble>
+ [2010/07/14 v0.5a Unicode maths in XeLaTeX]
+%</preamble>
%<*internal>
\documentclass{ltxdoc}
\usepackage{dtx-style}
@@ -208,8 +212,8 @@ This work is "author-maintained" by Will Robertson.
% single command
% \codeline{\cmd\setmathfont\oarg{font features}\marg{font name}}
% implements this for every every symbol and alphabetic variant.
-% That means |x| to $x$, |\xi| to $\xi$, |\leq| to $\leq$, etc., |\mathcal{H}|
-% to $\mathcal{H}$ and so on, all for Unicode glyphs within a single font.
+% That means |x| to $x$, |\xi| to $\xi$, |\leq| to $\leq$, etc., |\mathscr{H}|
+% to $\mathscr{H}$ and so on, all for Unicode glyphs within a single font.
%
% This package deals well with Unicode characters for maths
% input. This includes using literal Greek letters in formulae,
@@ -466,8 +470,8 @@ This work is "author-maintained" by Will Robertson.
% & & Bold & \cs{mathbfit} & \Y & \Y & \M \\
% Sans serif & Upright & Normal & \cs{mathsfup} & \Y & & \Y \\
% & Italic & Normal & \cs{mathsfit} & \Y & & \M \\
-% & Upright & Bold & \cs{mathsfbfup} & \Y & \Y & \Y \\
-% & Italic & Bold & \cs{mathsfbfit} & \Y & \Y & \M \\
+% & Upright & Bold & \cs{mathbfsfup} & \Y & \Y & \Y \\
+% & Italic & Bold & \cs{mathbfsfit} & \Y & \Y & \M \\
% Typewriter & Upright & Normal & \cs{mathtt} & \Y & & \Y \\
% Double-struck & Upright & Normal & \cs{mathbb} & \Y & & \Y \\
% & Italic & Normal & \cs{mathbbit} & \Y & & \\
@@ -496,6 +500,28 @@ This work is "author-maintained" by Will Robertson.
% with the \cs{mathbbit} alphabet switch, but note that only those five letters
% will give the expected output.
%
+% \subsubsection{Caligraphic vs.\ Script variants}
+%
+% The Unicode maths encoding contains an alphabet style for `Script' letters,
+% and while by default \cs{mathcal} and \cs{mathscr}
+% are synonyms, there are some situations when a
+% separate `Caligraphic' style is needed as well.
+%
+% If a font contains alternate glyphs for a separat caligraphic style,
+% they can be selected explicitly as shown below.
+% This feature is currently only supported by the XITS~Math font, where
+% the caligraphic letters are accessed with the same glyph slots as the
+% script letters but with the first stylistic set feature (|ss01|) applied.
+% \begin{verbatim}
+% \setmathfont[range={\mathcal,\mathbfcal},StylisticSet=1]{XITS Math}
+% \end{verbatim}
+% An example is shown below.
+% \begin{quote}
+% \setmathfont[range=\mathscr]{XITS Math}
+% \setmathfont[range=\mathcal,StylisticSet=1]{XITS Math}
+% The Script style (\cs{mathscr}) in XITS Math is: $\mathscr{ABCXYZ}$\par
+% The Caligraphic style (\cs{mathcal}) in XITS Math is: $\mathcal{ABCXYZ}$
+% \end{quote}
%
%
% \subsection{Miscellanea}
@@ -528,12 +554,12 @@ This work is "author-maintained" by Will Robertson.
% \multicolumn{2}{@{}l}{Description} & Glyph
% \\ \cmidrule(r){1-2}\cmidrule(l){3-3}
% Upright & Serif & $\mathup\nabla$ \\
-% & Bold serif & $\mathup\mbfnabla$ \\
-% & Bold sans & \fontspec{STIXGeneral-BoldItalic}\char"1D76F \\
+% & Bold serif & $\mathbfup\nabla$ \\
+% & Bold sans & \umfont\char"1D76F \\
% \cmidrule(lr){1-2}\cmidrule(lr){3-3}
% Italic & Serif & $\mathit\nabla$ \\
% & Bold serif & $\mathbfit\nabla$ \\
-% & Bold sans & \fontspec{STIXGeneral-Bold}\char"1D7A9 \\
+% & Bold sans & \umfont\char"1D7A9 \\
% \bottomrule
% \end{tabular}
% \end{table}
@@ -839,10 +865,11 @@ This work is "author-maintained" by Will Robertson.
% as input characters to abbreviate common fractions.
%
% \centerline{\fontspec{Calibri}
-% ¼ ½ ¾ ⅐ ⅑ ⅒ ⅓ ⅔ ⅕ ⅖ ⅗ ⅘ ⅙ ⅚ ⅛ ⅜ ⅝ ⅞}
+% ¼ ½ ¾ ↉ ⅐ ⅑ ⅒ ⅓ ⅔ ⅕ ⅖ ⅗ ⅘ ⅙ ⅚ ⅛ ⅜ ⅝ ⅞}
%
% For example, instead of writing `|\tfrac12 x|', it's more readable to have
-% `|½x|' in the source instead.
+% `|½x|' in the source instead. (There are four missing glyphs above for
+% $0/3$, $1/7$, $1/9$, and $1/10$; I don't have a font that contains them.)
%
% If the \cs{tfrac} command exists (i.e., if \pkg{amsmath} is loaded or
% you have specially defined \cs{tfrac} for this purpose), it will be used
@@ -898,9 +925,7 @@ This work is "author-maintained" by Will Robertson.
% \subsubsection{Triangles}
%
% While there aren't as many different sizes of triangle as there are circle,
-% there's some important distinctions to make between a few similar characters.
-% Namely, $\triangle$ and $\vartriangle$ and $\increment$ and $\mathup\Delta$.
-% See \tabref{uptriangles} for the full summary.
+% there's some important distinctions to make between a few similar characters. See \tabref{uptriangles} for the full summary.
%
% These triangles all have different intended meanings. Note for backwards
% compatibility with \TeX, \unichar{25B3} has \emph{two} different mappings
@@ -908,7 +933,7 @@ This work is "author-maintained" by Will Robertson.
% whereas \cs{triangle} is intended to be used as a letter-like symbol.
%
% But you're better off if you're using the latter form to indicate an
-% increment to use the glyph intended for this purpose: $\increment x$.
+% increment to use the glyph intended for this purpose, \unichar{2206}: $\increment x$.
%
% Finally, given that $\triangle$ and $\increment$ are provided for you
% already, it is better off to only use upright Greek Delta $\Delta$ if you're
@@ -957,9 +982,8 @@ This work is "author-maintained" by Will Robertson.
% \StopEventually{}
%
% \part{The \pkg{unicode-math} package}
-%\iffalse
-%<*package>
-%\fi
+%
+%<*preamble>
%
% \section{Things we need}
%
@@ -979,6 +1003,7 @@ This work is "author-maintained" by Will Robertson.
\RequirePackage{xparse}[2009/08/31]
\RequirePackage{l3keys2e}
\RequirePackage{fontspec}[2010/05/18]
+\RequirePackage{catchfile}
% \end{macrocode}
%
% Start using \LaTeX3 --- finally!
@@ -1104,6 +1129,17 @@ This work is "author-maintained" by Will Robertson.
\cs_generate_variant:Nn \fontspec_select:nn {x}
% \end{macrocode}
%
+% \begin{macrocode}
+%</preamble>
+% \end{macrocode}
+%
+% (Error messages and warning definitions go here from the |msg| chunk
+% defined in \secref[vref]{codemsg}.)
+%
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+%
% \subsection{Alphabet Unicode positions}
%
% Before we begin, let's define the positions of the various Unicode
@@ -1132,6 +1168,7 @@ This work is "author-maintained" by Will Robertson.
\usv_set:nnn {bb}{Latin}{"1D538}
\usv_set:nnn {bb}{latin}{"1D552}
\usv_set:nnn {scr}{Latin}{"1D49C}
+\usv_set:nnn {cal}{Latin}{"1D49C}
\usv_set:nnn {scr}{latin}{"1D4B6}
\usv_set:nnn {frak}{Latin}{"1D504}
\usv_set:nnn {frak}{latin}{"1D51E}
@@ -1164,6 +1201,7 @@ This work is "author-maintained" by Will Robertson.
\usv_set:nnn {bffrak}{Latin}{"1D56C}
\usv_set:nnn {bffrak}{latin}{"1D586}
\usv_set:nnn {bfscr}{Latin}{"1D4D0}
+\usv_set:nnn {bfcal}{Latin}{"1D4D0}
\usv_set:nnn {bfscr}{latin}{"1D4EA}
\usv_set:nnn {bfsf}{num}{"1D7EC}
\usv_set:nnn {bfsfup}{num}{"1D7EC}
@@ -1394,6 +1432,17 @@ This work is "author-maintained" by Will Robertson.
\usv_set:nnn {scr}{g}{"210A}
\usv_set:nnn {scr}{o}{"2134}
% \end{macrocode}
+%
+% \begin{macrocode}
+\usv_set:nnn {cal}{B}{"212C}
+\usv_set:nnn {cal}{E}{"2130}
+\usv_set:nnn {cal}{F}{"2131}
+\usv_set:nnn {cal}{H}{"210B}
+\usv_set:nnn {cal}{I}{"2110}
+\usv_set:nnn {cal}{L}{"2112}
+\usv_set:nnn {cal}{M}{"2133}
+\usv_set:nnn {cal}{R}{"211B}
+% \end{macrocode}
% Fractur exceptions:
% \begin{macrocode}
\usv_set:nnn {frak}{C}{"212D}
@@ -1419,222 +1468,224 @@ This work is "author-maintained" by Will Robertson.
%
% \paragraph{Upright}
% \begin{macrocode}
-\usv_set:nnn {stix_sfup}{partial}{"E17C}
-\usv_set:nnn {stix_sfup}{Greek}{"E17D}
-\usv_set:nnn {stix_sfup}{greek}{"E196}
-\usv_set:nnn {stix_sfup}{varTheta}{"E18E}
-\usv_set:nnn {stix_sfup}{varepsilon}{"E1AF}
-\usv_set:nnn {stix_sfup}{vartheta}{"E1B0}
-\usv_set:nnn {stix_sfup}{varkappa}{0000} % ???
-\usv_set:nnn {stix_sfup}{varphi}{"E1B1}
-\usv_set:nnn {stix_sfup}{varrho}{"E1B2}
-\usv_set:nnn {stix_sfup}{varpi}{"E1B3}
-\usv_set:nnn {stix_upslash}{Greek}{"E2FC}
+\usv_set:nnn {stixsfup}{partial}{"E17C}
+\usv_set:nnn {stixsfup}{Greek}{"E17D}
+\usv_set:nnn {stixsfup}{greek}{"E196}
+\usv_set:nnn {stixsfup}{varTheta}{"E18E}
+\usv_set:nnn {stixsfup}{varepsilon}{"E1AF}
+\usv_set:nnn {stixsfup}{vartheta}{"E1B0}
+\usv_set:nnn {stixsfup}{varkappa}{0000} % ???
+\usv_set:nnn {stixsfup}{varphi}{"E1B1}
+\usv_set:nnn {stixsfup}{varrho}{"E1B2}
+\usv_set:nnn {stixsfup}{varpi}{"E1B3}
+\usv_set:nnn {stixupslash}{Greek}{"E2FC}
% \end{macrocode}
%
% \paragraph{Italic}
% \begin{macrocode}
-\usv_set:nnn {stix_bbit}{A}{"E154}
-\usv_set:nnn {stix_bbit}{B}{"E155}
-\usv_set:nnn {stix_bbit}{E}{"E156}
-\usv_set:nnn {stix_bbit}{F}{"E157}
-\usv_set:nnn {stix_bbit}{G}{"E158}
-\usv_set:nnn {stix_bbit}{I}{"E159}
-\usv_set:nnn {stix_bbit}{J}{"E15A}
-\usv_set:nnn {stix_bbit}{K}{"E15B}
-\usv_set:nnn {stix_bbit}{L}{"E15C}
-\usv_set:nnn {stix_bbit}{M}{"E15D}
-\usv_set:nnn {stix_bbit}{O}{"E15E}
-\usv_set:nnn {stix_bbit}{S}{"E15F}
-\usv_set:nnn {stix_bbit}{T}{"E160}
-\usv_set:nnn {stix_bbit}{U}{"E161}
-\usv_set:nnn {stix_bbit}{V}{"E162}
-\usv_set:nnn {stix_bbit}{W}{"E163}
-\usv_set:nnn {stix_bbit}{X}{"E164}
-\usv_set:nnn {stix_bbit}{Y}{"E165}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\usv_set:nnn {stix_bbit}{a}{"E166}
-\usv_set:nnn {stix_bbit}{b}{"E167}
-\usv_set:nnn {stix_bbit}{c}{"E168}
-\usv_set:nnn {stix_bbit}{f}{"E169}
-\usv_set:nnn {stix_bbit}{g}{"E16A}
-\usv_set:nnn {stix_bbit}{h}{"E16B}
-\usv_set:nnn {stix_bbit}{k}{"E16C}
-\usv_set:nnn {stix_bbit}{l}{"E16D}
-\usv_set:nnn {stix_bbit}{m}{"E16E}
-\usv_set:nnn {stix_bbit}{n}{"E16F}
-\usv_set:nnn {stix_bbit}{o}{"E170}
-\usv_set:nnn {stix_bbit}{p}{"E171}
-\usv_set:nnn {stix_bbit}{q}{"E172}
-\usv_set:nnn {stix_bbit}{r}{"E173}
-\usv_set:nnn {stix_bbit}{s}{"E174}
-\usv_set:nnn {stix_bbit}{t}{"E175}
-\usv_set:nnn {stix_bbit}{u}{"E176}
-\usv_set:nnn {stix_bbit}{v}{"E177}
-\usv_set:nnn {stix_bbit}{w}{"E178}
-\usv_set:nnn {stix_bbit}{x}{"E179}
-\usv_set:nnn {stix_bbit}{y}{"E17A}
-\usv_set:nnn {stix_bbit}{z}{"E17B}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\usv_set:nnn {stix_sfit}{Numerals}{"E1B4}
-\usv_set:nnn {stix_sfit}{partial}{"E1BE}
-\usv_set:nnn {stix_sfit}{Greek}{"E1BF}
-\usv_set:nnn {stix_sfit}{greek}{"E1D8}
-\usv_set:nnn {stix_sfit}{varTheta}{"E1D0}
-\usv_set:nnn {stix_sfit}{varepsilon}{"E1F1}
-\usv_set:nnn {stix_sfit}{vartheta}{"E1F2}
-\usv_set:nnn {stix_sfit}{varkappa}{0000} % ???
-\usv_set:nnn {stix_sfit}{varphi}{"E1F3}
-\usv_set:nnn {stix_sfit}{varrho}{"E1F4}
-\usv_set:nnn {stix_sfit}{varpi}{"E1F5}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\usv_set:nnn {stix_cal}{Latin}{"E22D}
-\usv_set:nnn {stix_cal}{Numerals}{"E262}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\usv_set:nnn {stix_sfitslash}{Latin}{"E294}
-\usv_set:nnn {stix_sfitslash}{latin}{"E2C8}
-\usv_set:nnn {stix_sfitslash}{greek}{"E32C}
-\usv_set:nnn {stix_sfitslash}{varepsilon}{"E37A}
-\usv_set:nnn {stix_sfitslash}{vartheta}{"E35E}
-\usv_set:nnn {stix_sfitslash}{varkappa}{"E374}
-\usv_set:nnn {stix_sfitslash}{varphi}{"E360}
-\usv_set:nnn {stix_sfitslash}{varrho}{"E376}
-\usv_set:nnn {stix_sfitslash}{varpi}{"E362}
-\usv_set:nnn {stix_sfitslash}{digamma}{"E36A}
+\usv_set:nnn {stixbbit}{A}{"E154}
+\usv_set:nnn {stixbbit}{B}{"E155}
+\usv_set:nnn {stixbbit}{E}{"E156}
+\usv_set:nnn {stixbbit}{F}{"E157}
+\usv_set:nnn {stixbbit}{G}{"E158}
+\usv_set:nnn {stixbbit}{I}{"E159}
+\usv_set:nnn {stixbbit}{J}{"E15A}
+\usv_set:nnn {stixbbit}{K}{"E15B}
+\usv_set:nnn {stixbbit}{L}{"E15C}
+\usv_set:nnn {stixbbit}{M}{"E15D}
+\usv_set:nnn {stixbbit}{O}{"E15E}
+\usv_set:nnn {stixbbit}{S}{"E15F}
+\usv_set:nnn {stixbbit}{T}{"E160}
+\usv_set:nnn {stixbbit}{U}{"E161}
+\usv_set:nnn {stixbbit}{V}{"E162}
+\usv_set:nnn {stixbbit}{W}{"E163}
+\usv_set:nnn {stixbbit}{X}{"E164}
+\usv_set:nnn {stixbbit}{Y}{"E165}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\usv_set:nnn {stixbbit}{a}{"E166}
+\usv_set:nnn {stixbbit}{b}{"E167}
+\usv_set:nnn {stixbbit}{c}{"E168}
+\usv_set:nnn {stixbbit}{f}{"E169}
+\usv_set:nnn {stixbbit}{g}{"E16A}
+\usv_set:nnn {stixbbit}{h}{"E16B}
+\usv_set:nnn {stixbbit}{k}{"E16C}
+\usv_set:nnn {stixbbit}{l}{"E16D}
+\usv_set:nnn {stixbbit}{m}{"E16E}
+\usv_set:nnn {stixbbit}{n}{"E16F}
+\usv_set:nnn {stixbbit}{o}{"E170}
+\usv_set:nnn {stixbbit}{p}{"E171}
+\usv_set:nnn {stixbbit}{q}{"E172}
+\usv_set:nnn {stixbbit}{r}{"E173}
+\usv_set:nnn {stixbbit}{s}{"E174}
+\usv_set:nnn {stixbbit}{t}{"E175}
+\usv_set:nnn {stixbbit}{u}{"E176}
+\usv_set:nnn {stixbbit}{v}{"E177}
+\usv_set:nnn {stixbbit}{w}{"E178}
+\usv_set:nnn {stixbbit}{x}{"E179}
+\usv_set:nnn {stixbbit}{y}{"E17A}
+\usv_set:nnn {stixbbit}{z}{"E17B}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\usv_set:nnn {stixsfit}{Numerals}{"E1B4}
+\usv_set:nnn {stixsfit}{partial}{"E1BE}
+\usv_set:nnn {stixsfit}{Greek}{"E1BF}
+\usv_set:nnn {stixsfit}{greek}{"E1D8}
+\usv_set:nnn {stixsfit}{varTheta}{"E1D0}
+\usv_set:nnn {stixsfit}{varepsilon}{"E1F1}
+\usv_set:nnn {stixsfit}{vartheta}{"E1F2}
+\usv_set:nnn {stixsfit}{varkappa}{0000} % ???
+\usv_set:nnn {stixsfit}{varphi}{"E1F3}
+\usv_set:nnn {stixsfit}{varrho}{"E1F4}
+\usv_set:nnn {stixsfit}{varpi}{"E1F5}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\usv_set:nnn {stixcal}{Latin}{"E22D}
+\usv_set:nnn {stixcal}{num}{"E262}
+\usv_set:nnn {scr}{num}{48}
+\usv_set:nnn {it}{num}{48}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\usv_set:nnn {stixsfitslash}{Latin}{"E294}
+\usv_set:nnn {stixsfitslash}{latin}{"E2C8}
+\usv_set:nnn {stixsfitslash}{greek}{"E32C}
+\usv_set:nnn {stixsfitslash}{varepsilon}{"E37A}
+\usv_set:nnn {stixsfitslash}{vartheta}{"E35E}
+\usv_set:nnn {stixsfitslash}{varkappa}{"E374}
+\usv_set:nnn {stixsfitslash}{varphi}{"E360}
+\usv_set:nnn {stixsfitslash}{varrho}{"E376}
+\usv_set:nnn {stixsfitslash}{varpi}{"E362}
+\usv_set:nnn {stixsfitslash}{digamma}{"E36A}
% \end{macrocode}
%
% \paragraph{Bold}
%
% \begin{macrocode}
-\usv_set:nnn {stix_bfupslash}{Greek}{"E2FD}
-\usv_set:nnn {stix_bfupslash}{Digamma}{"E369}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\usv_set:nnn {stix_bfbb}{A}{"E38A}
-\usv_set:nnn {stix_bfbb}{B}{"E38B}
-\usv_set:nnn {stix_bfbb}{E}{"E38D}
-\usv_set:nnn {stix_bfbb}{F}{"E38E}
-\usv_set:nnn {stix_bfbb}{G}{"E38F}
-\usv_set:nnn {stix_bfbb}{I}{"E390}
-\usv_set:nnn {stix_bfbb}{J}{"E391}
-\usv_set:nnn {stix_bfbb}{K}{"E392}
-\usv_set:nnn {stix_bfbb}{L}{"E393}
-\usv_set:nnn {stix_bfbb}{M}{"E394}
-\usv_set:nnn {stix_bfbb}{O}{"E395}
-\usv_set:nnn {stix_bfbb}{S}{"E396}
-\usv_set:nnn {stix_bfbb}{T}{"E397}
-\usv_set:nnn {stix_bfbb}{U}{"E398}
-\usv_set:nnn {stix_bfbb}{V}{"E399}
-\usv_set:nnn {stix_bfbb}{W}{"E39A}
-\usv_set:nnn {stix_bfbb}{X}{"E39B}
-\usv_set:nnn {stix_bfbb}{Y}{"E39C}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\usv_set:nnn {stix_bfbb}{a}{"E39D}
-\usv_set:nnn {stix_bfbb}{b}{"E39E}
-\usv_set:nnn {stix_bfbb}{c}{"E39F}
-\usv_set:nnn {stix_bfbb}{f}{"E3A2}
-\usv_set:nnn {stix_bfbb}{g}{"E3A3}
-\usv_set:nnn {stix_bfbb}{h}{"E3A4}
-\usv_set:nnn {stix_bfbb}{k}{"E3A7}
-\usv_set:nnn {stix_bfbb}{l}{"E3A8}
-\usv_set:nnn {stix_bfbb}{m}{"E3A9}
-\usv_set:nnn {stix_bfbb}{n}{"E3AA}
-\usv_set:nnn {stix_bfbb}{o}{"E3AB}
-\usv_set:nnn {stix_bfbb}{p}{"E3AC}
-\usv_set:nnn {stix_bfbb}{q}{"E3AD}
-\usv_set:nnn {stix_bfbb}{r}{"E3AE}
-\usv_set:nnn {stix_bfbb}{s}{"E3AF}
-\usv_set:nnn {stix_bfbb}{t}{"E3B0}
-\usv_set:nnn {stix_bfbb}{u}{"E3B1}
-\usv_set:nnn {stix_bfbb}{v}{"E3B2}
-\usv_set:nnn {stix_bfbb}{w}{"E3B3}
-\usv_set:nnn {stix_bfbb}{x}{"E3B4}
-\usv_set:nnn {stix_bfbb}{y}{"E3B5}
-\usv_set:nnn {stix_bfbb}{z}{"E3B6}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\usv_set:nnn {stix_bftt}{Numerals}{"E3B7}
+\usv_set:nnn {stixbfupslash}{Greek}{"E2FD}
+\usv_set:nnn {stixbfupslash}{Digamma}{"E369}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\usv_set:nnn {stixbfbb}{A}{"E38A}
+\usv_set:nnn {stixbfbb}{B}{"E38B}
+\usv_set:nnn {stixbfbb}{E}{"E38D}
+\usv_set:nnn {stixbfbb}{F}{"E38E}
+\usv_set:nnn {stixbfbb}{G}{"E38F}
+\usv_set:nnn {stixbfbb}{I}{"E390}
+\usv_set:nnn {stixbfbb}{J}{"E391}
+\usv_set:nnn {stixbfbb}{K}{"E392}
+\usv_set:nnn {stixbfbb}{L}{"E393}
+\usv_set:nnn {stixbfbb}{M}{"E394}
+\usv_set:nnn {stixbfbb}{O}{"E395}
+\usv_set:nnn {stixbfbb}{S}{"E396}
+\usv_set:nnn {stixbfbb}{T}{"E397}
+\usv_set:nnn {stixbfbb}{U}{"E398}
+\usv_set:nnn {stixbfbb}{V}{"E399}
+\usv_set:nnn {stixbfbb}{W}{"E39A}
+\usv_set:nnn {stixbfbb}{X}{"E39B}
+\usv_set:nnn {stixbfbb}{Y}{"E39C}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\usv_set:nnn {stixbfbb}{a}{"E39D}
+\usv_set:nnn {stixbfbb}{b}{"E39E}
+\usv_set:nnn {stixbfbb}{c}{"E39F}
+\usv_set:nnn {stixbfbb}{f}{"E3A2}
+\usv_set:nnn {stixbfbb}{g}{"E3A3}
+\usv_set:nnn {stixbfbb}{h}{"E3A4}
+\usv_set:nnn {stixbfbb}{k}{"E3A7}
+\usv_set:nnn {stixbfbb}{l}{"E3A8}
+\usv_set:nnn {stixbfbb}{m}{"E3A9}
+\usv_set:nnn {stixbfbb}{n}{"E3AA}
+\usv_set:nnn {stixbfbb}{o}{"E3AB}
+\usv_set:nnn {stixbfbb}{p}{"E3AC}
+\usv_set:nnn {stixbfbb}{q}{"E3AD}
+\usv_set:nnn {stixbfbb}{r}{"E3AE}
+\usv_set:nnn {stixbfbb}{s}{"E3AF}
+\usv_set:nnn {stixbfbb}{t}{"E3B0}
+\usv_set:nnn {stixbfbb}{u}{"E3B1}
+\usv_set:nnn {stixbfbb}{v}{"E3B2}
+\usv_set:nnn {stixbfbb}{w}{"E3B3}
+\usv_set:nnn {stixbfbb}{x}{"E3B4}
+\usv_set:nnn {stixbfbb}{y}{"E3B5}
+\usv_set:nnn {stixbfbb}{z}{"E3B6}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\usv_set:nnn {stixbfsfup}{Numerals}{"E3B7}
% \end{macrocode}
%
% \paragraph{Bold Italic}
% \begin{macrocode}
-\usv_set:nnn {stix_bfsfit}{Numerals}{"E1F6}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\usv_set:nnn {stix_bfbbit}{A}{"E200}
-\usv_set:nnn {stix_bfbbit}{B}{"E201}
-\usv_set:nnn {stix_bfbbit}{E}{"E203}
-\usv_set:nnn {stix_bfbbit}{F}{"E204}
-\usv_set:nnn {stix_bfbbit}{G}{"E205}
-\usv_set:nnn {stix_bfbbit}{I}{"E206}
-\usv_set:nnn {stix_bfbbit}{J}{"E207}
-\usv_set:nnn {stix_bfbbit}{K}{"E208}
-\usv_set:nnn {stix_bfbbit}{L}{"E209}
-\usv_set:nnn {stix_bfbbit}{M}{"E20A}
-\usv_set:nnn {stix_bfbbit}{O}{"E20B}
-\usv_set:nnn {stix_bfbbit}{S}{"E20C}
-\usv_set:nnn {stix_bfbbit}{T}{"E20D}
-\usv_set:nnn {stix_bfbbit}{U}{"E20E}
-\usv_set:nnn {stix_bfbbit}{V}{"E20F}
-\usv_set:nnn {stix_bfbbit}{W}{"E210}
-\usv_set:nnn {stix_bfbbit}{X}{"E211}
-\usv_set:nnn {stix_bfbbit}{Y}{"E212}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\usv_set:nnn {stix_bfbbit}{a}{"E213}
-\usv_set:nnn {stix_bfbbit}{b}{"E214}
-\usv_set:nnn {stix_bfbbit}{c}{"E215}
-\usv_set:nnn {stix_bfbbit}{e}{"E217}
-\usv_set:nnn {stix_bfbbit}{f}{"E218}
-\usv_set:nnn {stix_bfbbit}{g}{"E219}
-\usv_set:nnn {stix_bfbbit}{h}{"E21A}
-\usv_set:nnn {stix_bfbbit}{k}{"E21D}
-\usv_set:nnn {stix_bfbbit}{l}{"E21E}
-\usv_set:nnn {stix_bfbbit}{m}{"E21F}
-\usv_set:nnn {stix_bfbbit}{n}{"E220}
-\usv_set:nnn {stix_bfbbit}{o}{"E221}
-\usv_set:nnn {stix_bfbbit}{p}{"E222}
-\usv_set:nnn {stix_bfbbit}{q}{"E223}
-\usv_set:nnn {stix_bfbbit}{r}{"E224}
-\usv_set:nnn {stix_bfbbit}{s}{"E225}
-\usv_set:nnn {stix_bfbbit}{t}{"E226}
-\usv_set:nnn {stix_bfbbit}{u}{"E227}
-\usv_set:nnn {stix_bfbbit}{v}{"E228}
-\usv_set:nnn {stix_bfbbit}{w}{"E229}
-\usv_set:nnn {stix_bfbbit}{x}{"E22A}
-\usv_set:nnn {stix_bfbbit}{y}{"E22B}
-\usv_set:nnn {stix_bfbbit}{z}{"E22C}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\usv_set:nnn {stix_bfcal}{Latin}{"E247}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\usv_set:nnn {stix_bfitslash}{Latin}{"E295}
-\usv_set:nnn {stix_bfitslash}{latin}{"E2C9}
-\usv_set:nnn {stix_bfitslash}{greek}{"E32D}
-\usv_set:nnn {stix_sfitslash}{varepsilon}{"E37B}
-\usv_set:nnn {stix_sfitslash}{vartheta}{"E35F}
-\usv_set:nnn {stix_sfitslash}{varkappa}{"E375}
-\usv_set:nnn {stix_sfitslash}{varphi}{"E361}
-\usv_set:nnn {stix_sfitslash}{varrho}{"E377}
-\usv_set:nnn {stix_sfitslash}{varpi}{"E363}
-\usv_set:nnn {stix_sfitslash}{digamma}{"E36B}
+\usv_set:nnn {stixbfsfit}{Numerals}{"E1F6}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\usv_set:nnn {stixbfbbit}{A}{"E200}
+\usv_set:nnn {stixbfbbit}{B}{"E201}
+\usv_set:nnn {stixbfbbit}{E}{"E203}
+\usv_set:nnn {stixbfbbit}{F}{"E204}
+\usv_set:nnn {stixbfbbit}{G}{"E205}
+\usv_set:nnn {stixbfbbit}{I}{"E206}
+\usv_set:nnn {stixbfbbit}{J}{"E207}
+\usv_set:nnn {stixbfbbit}{K}{"E208}
+\usv_set:nnn {stixbfbbit}{L}{"E209}
+\usv_set:nnn {stixbfbbit}{M}{"E20A}
+\usv_set:nnn {stixbfbbit}{O}{"E20B}
+\usv_set:nnn {stixbfbbit}{S}{"E20C}
+\usv_set:nnn {stixbfbbit}{T}{"E20D}
+\usv_set:nnn {stixbfbbit}{U}{"E20E}
+\usv_set:nnn {stixbfbbit}{V}{"E20F}
+\usv_set:nnn {stixbfbbit}{W}{"E210}
+\usv_set:nnn {stixbfbbit}{X}{"E211}
+\usv_set:nnn {stixbfbbit}{Y}{"E212}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\usv_set:nnn {stixbfbbit}{a}{"E213}
+\usv_set:nnn {stixbfbbit}{b}{"E214}
+\usv_set:nnn {stixbfbbit}{c}{"E215}
+\usv_set:nnn {stixbfbbit}{e}{"E217}
+\usv_set:nnn {stixbfbbit}{f}{"E218}
+\usv_set:nnn {stixbfbbit}{g}{"E219}
+\usv_set:nnn {stixbfbbit}{h}{"E21A}
+\usv_set:nnn {stixbfbbit}{k}{"E21D}
+\usv_set:nnn {stixbfbbit}{l}{"E21E}
+\usv_set:nnn {stixbfbbit}{m}{"E21F}
+\usv_set:nnn {stixbfbbit}{n}{"E220}
+\usv_set:nnn {stixbfbbit}{o}{"E221}
+\usv_set:nnn {stixbfbbit}{p}{"E222}
+\usv_set:nnn {stixbfbbit}{q}{"E223}
+\usv_set:nnn {stixbfbbit}{r}{"E224}
+\usv_set:nnn {stixbfbbit}{s}{"E225}
+\usv_set:nnn {stixbfbbit}{t}{"E226}
+\usv_set:nnn {stixbfbbit}{u}{"E227}
+\usv_set:nnn {stixbfbbit}{v}{"E228}
+\usv_set:nnn {stixbfbbit}{w}{"E229}
+\usv_set:nnn {stixbfbbit}{x}{"E22A}
+\usv_set:nnn {stixbfbbit}{y}{"E22B}
+\usv_set:nnn {stixbfbbit}{z}{"E22C}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\usv_set:nnn {stixbfcal}{Latin}{"E247}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\usv_set:nnn {stixbfitslash}{Latin}{"E295}
+\usv_set:nnn {stixbfitslash}{latin}{"E2C9}
+\usv_set:nnn {stixbfitslash}{greek}{"E32D}
+\usv_set:nnn {stixsfitslash}{varepsilon}{"E37B}
+\usv_set:nnn {stixsfitslash}{vartheta}{"E35F}
+\usv_set:nnn {stixsfitslash}{varkappa}{"E375}
+\usv_set:nnn {stixsfitslash}{varphi}{"E361}
+\usv_set:nnn {stixsfitslash}{varrho}{"E377}
+\usv_set:nnn {stixsfitslash}{varpi}{"E363}
+\usv_set:nnn {stixsfitslash}{digamma}{"E36B}
% \end{macrocode}
%
% \begin{macrocode}
@@ -1972,25 +2023,32 @@ This work is "author-maintained" by Will Robertson.
\mathopen {
\tl_if_in:NnTF \l_um_radicals_tl {#2} {
\cs_gset:cpx {\cs_to_str:N #2 sign} { \um_radical:nn {#1} {#4} }
+ \tl_set:cn {l_um_radical_\cs_to_str:N #2_tl} {\use:c{sym #1}~ #4}
}{
- \um_set_delcode:n {#4}
+ \um_set_delcode:nnn {#1} {#4} {#4}
\um_set_mathcode:nnn {#4} \mathopen {#1}
\cs_gset:Npx #2 { \um_delimiter:Nnn \mathopen {#1} {#4} }
}
}
\mathclose {
- \um_set_delcode:n {#4}
+ \um_set_delcode:nnn {#1} {#4} {#4}
\um_set_mathcode:nnn {#4} \mathclose {#1}
\cs_gset:Npx #2 { \um_delimiter:Nnn \mathclose {#1} {#4} }
}
+ \mathaccent {
+ \cs_gset:Npx #2 { \um_accent:Nnn #3 {#1} {#4} }
+ }
\mathfence {
\um_set_mathcode:nnn {#4} {#3} {#1}
- \um_set_delcode:n {#4}
+ \um_set_delcode:nnn {#1} {#4} {#4}
\cs_gset:cpx {l \cs_to_str:N #2} { \um_delimiter:Nnn \mathopen {#1} {#4} }
\cs_gset:cpx {r \cs_to_str:N #2} { \um_delimiter:Nnn \mathclose {#1} {#4} }
}
- \mathaccent {
- \cs_gset:Npx #2 { \um_accent:Nnn #3 {#1} {#4} }
+ \mathover { % LuaTeX only
+ \cs_set:Npn #2 ##1 { \mathop { \um_overbrace:nnn {#1} {#4} {##1} } \limits }
+ }
+ \mathunder { % LuaTeX only
+ \cs_set:Npn #2 ##1 { \mathop { \um_underbrace:nnn {#1} {#4} {##1} } \limits }
}
}{
\um_set_mathcode:nnn {#4} {#3} {#1}
@@ -2048,9 +2106,12 @@ This work is "author-maintained" by Will Robertson.
% \begin{macro}{\um_set_mathcode:nnn}
% \begin{macro}{\um_set_mathchar:NNnn}
% \begin{macro}{\um_set_mathchar:cNnn}
+% \begin{macro}{\um_set_delcode:nnn}
% \begin{macro}{\um_radical:nn}
% \begin{macro}{\um_delimiter:Nnn}
% \begin{macro}{\um_accent:Nnn}
+% These are all wrappers for the primitive commands that take numerical
+% input only.
% \begin{macrocode}
\cs_set:Npn \um_set_mathcode:nnnn #1#2#3#4 {
\Umathcode \intexpr_eval:n {#1} =
@@ -2064,6 +2125,9 @@ This work is "author-maintained" by Will Robertson.
\Umathchardef #1 =
\mathchar@type#2 \csname sym#3\endcsname \intexpr_eval:n {#4} \scan_stop:
}
+\cs_new:Npn \um_set_delcode:nnn #1#2#3 {
+ \Udelcode#2 = \csname sym#1\endcsname #3
+}
\cs_new:Npn \um_radical:nn #1#2 {
\Uradical \csname sym#1\endcsname #2 \scan_stop:
}
@@ -2073,6 +2137,9 @@ This work is "author-maintained" by Will Robertson.
\cs_new:Npn \um_accent:Nnn #1#2#3 {
\Umathaccent \mathchar@type#1 \csname sym#2\endcsname #3 \scan_stop:
}
+% \end{macrocode}
+%
+% \begin{macrocode}
\cs_generate_variant:Nn \um_set_mathchar:NNnn {c}
% \end{macrocode}
% \end{macro}
@@ -2082,6 +2149,23 @@ This work is "author-maintained" by Will Robertson.
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\um_overbrace:nnn}
+% \begin{macro}{\um_underbrace:nnn}
+% \LuaTeX\ functions for defining over/under-braces
+% \begin{macrocode}
+\cs_set:Npn \um_overbrace:nnn #1#2#3 {
+ \luatexUdelimiterover \csname sym#1\endcsname #2 {#3}
+}
+\cs_set:Npn \um_underbrace:nnn #1#2#3 {
+ \luatexUdelimiterunder \csname sym#1\endcsname #2 {#3}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
%
%
% \begin{macro}{\char_gmake_mathactive:N}
@@ -2174,26 +2258,28 @@ This work is "author-maintained" by Will Robertson.
% If we're defining the full Unicode math repetoire, then we skip all
% the parsing processing needed if we're only defining a subset.
% \begin{itemize}
-% \item Math symbols are defined with \cmd\UnicodeMathSymbol; see \secref{mathsymbol}
+% \item Math symbols are defined with \cmd\_um_sym:nnn; see \secref{mathsymbol}
% for the individual definitions
% \end{itemize}
% \begin{macrocode}
\bool_if:NTF \l_um_init_bool {
\tl_set:Nn \um_symfont_tl {um_allsym}
\msg_trace:nnx {unicode-math} {default-math-font} {#2}
- \cs_set_eq:NN \UnicodeMathSymbol \um_process_symbol_noparse:nnnn
+ \cs_set_eq:NN \_um_sym:nnn \um_process_symbol_noparse:nnn
\cs_set_eq:NN \um_set_mathalphabet_char:Nnn \um_mathmap_noparse:Nnn
\cs_set_eq:NN \um_remap_symbol:nnn \um_remap_symbol_noparse:nnn
\cs_set_eq:NN \um_maybe_init_alphabet:n \um_init_alphabet:n
\cs_set_eq:NN \um_map_char_single:nn \um_map_char_noparse:nn
+ \cs_set_eq:NN \um_assign_delcode:nn \um_assign_delcode_noparse:nn
}{
\int_incr:N \g_um_fam_int
\tl_set:Nx \um_symfont_tl {um_fam\int_use:N\g_um_fam_int}
- \cs_set_eq:NN \UnicodeMathSymbol \um_process_symbol_parse:nnnn
+ \cs_set_eq:NN \_um_sym:nnn \um_process_symbol_parse:nnn
\cs_set_eq:NN \um_set_mathalphabet_char:Nnn \um_mathmap_parse:Nnn
\cs_set_eq:NN \um_remap_symbol:nnn \um_remap_symbol_parse:nnn
\cs_set_eq:NN \um_maybe_init_alphabet:n \use_none:n
\cs_set_eq:NN \um_map_char_single:nn \um_map_char_parse:nn
+ \cs_set_eq:NN \um_assign_delcode:nn \um_assign_delcode_parse:nn
}
% \end{macrocode}
% Now defined |\um_symfont_tl| as the \LaTeX\ math font to access everything:
@@ -2201,12 +2287,9 @@ This work is "author-maintained" by Will Robertson.
\DeclareSymbolFont{\um_symfont_tl}
{\encodingdefault}{\zf@family}{\mddefault}{\updefault}
% \end{macrocode}
-% And now we input every single maths char. See File~\ref{part:awk} for
-% the source to |unicode-math.tex| which is used to create
-% |unicode-math-table.tex|.
+% And now we input every single maths char.
% \begin{macrocode}
- \@input{unicode-math-table.tex}
- \cs_set_eq:NN \UnicodeMathSymbol \use_none:nnnn
+ \um_input_math_symbol_table:
% \end{macrocode}
% Finally,
% \begin{itemize}
@@ -2236,6 +2319,7 @@ This work is "author-maintained" by Will Robertson.
\bool_set_true:N \l_um_fontspec_feature_bool
\fontspec_select:xn
{
+ \luatex_if_engine:T { Renderer = Basic, }
BoldFont = {}, ItalicFont = {},
Script = Math,
SizeFeatures = {
@@ -2262,20 +2346,20 @@ This work is "author-maintained" by Will Robertson.
% \subsubsection{Functions for setting up symbols with mathcodes}
% \seclabel{mathsymbol}
%
-% \begin{macro}{\um_process_symbol_noparse:nnnn}
-% \begin{macro}{\um_process_symbol_parse:nnnn}
+% \begin{macro}{\um_process_symbol_noparse:nnn}
+% \begin{macro}{\um_process_symbol_parse:nnn}
% If the \feat{range} font feature has been used, then only
% a subset of the Unicode glyphs are to be defined.
% See \secref{rangeproc} for the code that enables this.
% \begin{macrocode}
-\cs_set:Npn \um_process_symbol_noparse:nnnn #1#2#3#4 {
+\cs_set:Npn \um_process_symbol_noparse:nnn #1#2#3 {
\um_set_mathsymbol:nNNn {\um_symfont_tl} #2#3{#1}
}
% \end{macrocode}
% \begin{macrocode}
-\cs_set:Npn \um_process_symbol_parse:nnnn #1#2#3#4 {
+\cs_set:Npn \um_process_symbol_parse:nnn #1#2#3 {
\um@parse@term{#1}{#2}{#3}{
- \um_process_symbol_noparse:nnnn{#1}{#2}{#3}{#4}
+ \um_process_symbol_noparse:nnn {#1}{#2}{#3}
}
}
% \end{macrocode}
@@ -2352,103 +2436,80 @@ This work is "author-maintained" by Will Robertson.
%
% \subsubsection{Delimiter codes}
%
-% Some symbols that aren't mathopen/mathclose still need to have delimiter codes assigned.
-% The list of vertical arrows may be incomplete.
-% On the other hand, many fonts won't support them all being stretchy.
-% And some of them are probably not meant to stretch, either. But adding them here doesn't hurt.
-% \begin{macro}{\um_setup_delcodes:}
-% \begin{macrocode}
-\cs_new:Npn \um_setup_delcodes: {
- \um_set_delcode:nn {`\/} {\g_um_slash_delimiter_usv}
- \um_set_delcode:nn {"2044} {\g_um_slash_delimiter_usv} % fracslash
- \um_set_delcode:nn {"2215} {\g_um_slash_delimiter_usv} % divslash
- \um_set_delcode:n {"005C} % backslash
- \um_set_delcode:nn {`\<} {"27E8} % angle brackets with ascii notation
- \um_set_delcode:nn {`\>} {"27E9} % angle brackets with ascii notation
- \um_set_delcode:n {"2191} % up arrow
- \um_set_delcode:n {"2193} % down arrow
- \um_set_delcode:n {"2195} % updown arrow
- \um_set_delcode:n {"219F} % up arrow twohead
- \um_set_delcode:n {"21A1} % down arrow twohead
- \um_set_delcode:n {"21A5} % up arrow from bar
- \um_set_delcode:n {"21A7} % down arrow from bar
- \um_set_delcode:n {"21A8} % updown arrow from bar
- \um_set_delcode:n {"21BE} % up harpoon right
- \um_set_delcode:n {"21BF} % up harpoon left
- \um_set_delcode:n {"21C2} % down harpoon right
- \um_set_delcode:n {"21C3} % down harpoon left
- \um_set_delcode:n {"21C5} % arrows up down
- \um_set_delcode:n {"21F5} % arrows down up
- \um_set_delcode:n {"21C8} % arrows up up
- \um_set_delcode:n {"21CA} % arrows down down
- \um_set_delcode:n {"21D1} % double up arrow
- \um_set_delcode:n {"21D3} % double down arrow
- \um_set_delcode:n {"21D5} % double updown arrow
- \um_set_delcode:n {"21DE} % up arrow double stroke
- \um_set_delcode:n {"21DF} % down arrow double stroke
- \um_set_delcode:n {"21E1} % up arrow dashed
- \um_set_delcode:n {"21E3} % down arrow dashed
- \um_set_delcode:n {"21E7} % up white arrow
- \um_set_delcode:n {"21E9} % down white arrow
- \um_set_delcode:n {"21EA} % up white arrow from bar
- \um_set_delcode:n {"21F3} % updown white arrow
-}
-% \end{macrocode}
-% \end{macro}
%
-% \begin{macro}{\um_set_delcode:nn}
-% \begin{macro}{\um_set_delcode:n}
-%: TODO : hook into range feature
+% \begin{macro}{\um_assign_delcode:nn}
+%: TODO : hook csnames into range feature
% \begin{macrocode}
-\cs_new:Npn \um_set_delcode:nn #1#2 {
- \Udelcode#1 = \csname sym\um_symfont_tl\endcsname #2
+\cs_new:Npn \um_assign_delcode_noparse:nn #1#2 {
+ \um_set_delcode:nnn \um_symfont_tl {#1} {#2}
}
-\cs_new:Npn \um_set_delcode:n #1 {
- \Udelcode#1 = \csname sym\um_symfont_tl\endcsname #1
+\cs_new:Npn \um_assign_delcode_parse:nn #1#2 {
+ \um@parse@term {#2}{\@nil}{\@nil} {
+ \um_assign_delcode_noparse:nn {#1} {#2}
+ }
}
% \end{macrocode}
% \end{macro}
-% \end{macro}
%
-% \subsubsection{Maths alphabets' character mapping}
-% \seclabel{mathmap}
-%
-%
-% \subsubsection{Functions for setting up the maths alphabets}
%
-% \begin{macro}{\um_mathmap_noparse:Nnn}
-% \darg{Maths alphabet, \eg, \cmd\mathbb}
-% \darg{Input slot(s), \eg, the slot for `A' (comma separated)}
-% \darg{Output slot, \eg, the slot for `$\mathbb{A}$'}
-% Adds \cs{um_set_mathcode:nnnn} declarations to the specified maths alphabet's definition.
+% \begin{macro}{\um_assign_delcode:n}
+% Shorthand.
% \begin{macrocode}
-\cs_set:Npn \um_mathmap_noparse:Nnn #1#2#3 {
- \clist_map_inline:nn {#2} {
- \tl_put_right:cx {um_switchto_\cs_to_str:N #1:} {
- \um_set_mathcode:nnnn{##1}{\mathalpha}{\um_symfont_tl}{#3}
- }
- }
+\cs_new:Npn \um_assign_delcode:n #1 {
+ \um_assign_delcode:nn {#1} {#1}
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\um_mathmap_parse:Nnn}
-% \darg{Maths alphabet, \eg, \cmd\mathbb}
-% \darg{Input slot(s), \eg, the slot for `A' (comma separated)}
-% \darg{Output slot, \eg, the slot for `$\mathbb{A}$'}
-% When \cmd\um@parse@term\ is executed, it populates the \cmd\l_um_char_num_range_clist\
-% macro with slot numbers corresponding to the specified range. This range is used to
-% conditionally add \cs{um_set_mathcode:nnnn} declaractions to the maths alphabet definition.
+%
+%
+% Some symbols that aren't mathopen/mathclose still need to have delimiter codes assigned.
+% The list of vertical arrows may be incomplete.
+% On the other hand, many fonts won't support them all being stretchy.
+% And some of them are probably not meant to stretch, either. But adding them here doesn't hurt.
+% \begin{macro}{\um_setup_delcodes:}
% \begin{macrocode}
-\cs_set:Npn \um_mathmap_parse:Nnn #1#2#3 {
- \clist_if_in:NnT \l_um_char_num_range_clist {#3} {
- \um_mathmap_noparse:Nnn {#1}{#2}{#3}
- }
+\cs_new:Npn \um_setup_delcodes: {
+ \um_assign_delcode:nn {`\/} {\g_um_slash_delimiter_usv}
+ \um_assign_delcode:nn {"2044} {\g_um_slash_delimiter_usv} % fracslash
+ \um_assign_delcode:nn {"2215} {\g_um_slash_delimiter_usv} % divslash
+ \um_assign_delcode:n {"005C} % backslash
+ \um_assign_delcode:nn {`\<} {"27E8} % angle brackets with ascii notation
+ \um_assign_delcode:nn {`\>} {"27E9} % angle brackets with ascii notation
+ \um_assign_delcode:n {"2191} % up arrow
+ \um_assign_delcode:n {"2193} % down arrow
+ \um_assign_delcode:n {"2195} % updown arrow
+ \um_assign_delcode:n {"219F} % up arrow twohead
+ \um_assign_delcode:n {"21A1} % down arrow twohead
+ \um_assign_delcode:n {"21A5} % up arrow from bar
+ \um_assign_delcode:n {"21A7} % down arrow from bar
+ \um_assign_delcode:n {"21A8} % updown arrow from bar
+ \um_assign_delcode:n {"21BE} % up harpoon right
+ \um_assign_delcode:n {"21BF} % up harpoon left
+ \um_assign_delcode:n {"21C2} % down harpoon right
+ \um_assign_delcode:n {"21C3} % down harpoon left
+ \um_assign_delcode:n {"21C5} % arrows up down
+ \um_assign_delcode:n {"21F5} % arrows down up
+ \um_assign_delcode:n {"21C8} % arrows up up
+ \um_assign_delcode:n {"21CA} % arrows down down
+ \um_assign_delcode:n {"21D1} % double up arrow
+ \um_assign_delcode:n {"21D3} % double down arrow
+ \um_assign_delcode:n {"21D5} % double updown arrow
+ \um_assign_delcode:n {"21DE} % up arrow double stroke
+ \um_assign_delcode:n {"21DF} % down arrow double stroke
+ \um_assign_delcode:n {"21E1} % up arrow dashed
+ \um_assign_delcode:n {"21E3} % down arrow dashed
+ \um_assign_delcode:n {"21E7} % up white arrow
+ \um_assign_delcode:n {"21E9} % down white arrow
+ \um_assign_delcode:n {"21EA} % up white arrow from bar
+ \um_assign_delcode:n {"21F3} % updown white arrow
}
% \end{macrocode}
% \end{macro}
%
%
+%
+%
% \subsection{(Big) operators}
%
% Turns out that \XeTeX\ is clever enough to deal with big operators for us
@@ -2457,7 +2518,7 @@ This work is "author-maintained" by Will Robertson.
% However, the limits aren't set automatically; that is, we want to define,
% a la Plain \TeX\ \etc, |\def\int{\intop\nolimits}|, so there needs to be a
% transformation from \cmd\int\ to \cmd\intop\ during the expansion of
-% \cmd\UnicodeMathSymbol\ in the appropriate contexts.
+% \cmd\_um_sym:nnn\ in the appropriate contexts.
%
% \begin{macro}{\l_um_nolimits_tl}
% This macro is a sequence containing those maths operators that require a
@@ -2501,8 +2562,8 @@ This work is "author-maintained" by Will Robertson.
%
% \subsection{Radicals}
%
-% The radical for square root is organised in \cs{um_set_mathsymbol:nNNn} on
-% page. I think it's the only radical ever.
+% The radical for square root is organised in \cs{um_set_mathsymbol:nNNn}.
+% I think it's the only radical ever.
% (Actually, there is also \cs{cuberoot} and \cs{fourthroot}, but they don't
% seem to behave as proper radicals.)
%
@@ -2516,11 +2577,6 @@ This work is "author-maintained" by Will Robertson.
% \end{macrocode}
% \end{macro}
%
-% \begin{example}{}
-% \setmathfont{Cambria Math}
-% \[ \sqrt[2]{1+\sqrt[3]{1+x}} \]
-% \end{example}
-%
% \subsection{Delimiters}
% \begin{macro}{\left}
% We redefine the primitive to be preceded by \cmd\mathopen;
@@ -2560,12 +2616,12 @@ This work is "author-maintained" by Will Robertson.
%
% \subsection{OpenType maths font features}
% \begin{macrocode}
-\um@zf@feature{ScriptStyle}{
- \zf@update@ff{+ssty=0}
-}
-\um@zf@feature{ScriptScriptStyle}{
- \zf@update@ff{+ssty=1}
-}
+\xetex_or_luatex:nnn { \um@zf@feature {ScriptStyle} }
+ { \zf@update@ff{+ssty=0} }
+ { \zf@update@ff{+ssty=1} }
+\xetex_or_luatex:nnn { \um@zf@feature {ScriptScriptStyle} }
+ { \zf@update@ff{+ssty=1} }
+ { \zf@update@ff{+ssty=2} }
% \end{macrocode}
%
% \subsection{Script and scriptscript font options}
@@ -2615,6 +2671,9 @@ This work is "author-maintained" by Will Robertson.
% |tmpa|: math style (\eg, |\mathscr|)\\
% |tmpb|: alphabets (\eg, |Latin|)\\
% |tmpc|: remap style (\eg, |\mathup|). Defaults to |tmpa|.
+%
+% The remap style can also be |\mathcal->stixcal|, which I marginally prefer
+% in the general case.
% \begin{macrocode}
\prg_new_conditional:Nnn \um_if_mathalph_decl:n {TF} {
\KV_remove_surrounding_spaces:nw {\tl_set:Nf\l_um_tmpa_tl} #1 \q_nil
@@ -2627,7 +2686,7 @@ This work is "author-maintained" by Will Robertson.
\exp_after:wN \um_split_slash:w \l_um_tmpa_tl \q_nil
}
\tl_if_empty:NT \l_um_tmpc_tl { \tl_set_eq:NN \l_um_tmpc_tl \l_um_tmpa_tl }
- \seq_if_in:NVTF \g_um_mathalph_seq \l_um_tmpa_tl {
+ \seq_if_in:NVTF \g_um_mathstyles_seq \l_um_tmpa_tl {
\prg_return_true:
}{
\prg_return_false:
@@ -2635,7 +2694,9 @@ This work is "author-maintained" by Will Robertson.
}
\cs_set:Npn \um_split_arrow:w #1->#2 \q_nil {
\tl_set:Nn \l_um_tmpa_tl {#1}
- \tl_set:Nn \l_um_tmpc_tl {#2}
+ \tl_if_single:nTF {#2}
+ { \tl_set:Nn \l_um_tmpc_tl {#2} }
+ { \exp_args:NNc \tl_set:Nn \l_um_tmpc_tl {math#2} }
}
\cs_set:Npn \um_split_slash:w #1/#2 \q_nil {
\tl_set:Nn \l_um_tmpa_tl {#1}
@@ -2856,35 +2917,74 @@ This work is "author-maintained" by Will Robertson.
% \item Otherwise, use the \ascii\ letters instead.
% \end{itemize}
%
-% \subsection{Defining the math style macros}
+% \subsection{Initialising math styles}
%
-% We call the different shapes that a math alphabet can be a `math style'.
-% Note that different alphabets can exist within the same math style. E.g.,
-% we call `bold' the math style |bf| and within it there are upper and lower
-% case Greek and Roman alphabets and Arabic numerals.
+% \begin{macro}{\um_new_mathstyle:N}
+% This function defines a new command like \cs{mathfrak}.
+% \begin{macrocode}
+\cs_new:Npn \um_new_mathstyle:N #1 {
+ \um_prepare_mathstyle:f {\exp_after:wN \use_none:nnnnn \token_to_str:N #1}
+ \seq_put_right:Nn \g_um_mathstyles_seq {#1}
+}
+% \end{macrocode}
+% \end{macro}
%
-% \begin{macro}{\g_um_mathalph_seq}
+% \begin{macro}{\g_um_default_mathalph_seq}
+% This sequence stores the alphabets in each math style.
+% \begin{macrocode}
+\seq_new:N \g_um_default_mathalph_seq
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\g_um_mathstyles_seq}
% This is every math style known to \pkg{unicode-math}.
% \begin{macrocode}
-\seq_new:N \g_um_mathalph_seq
+\seq_new:N \g_um_mathstyles_seq
% \end{macrocode}
+% \end{macro}
%
% \begin{macrocode}
\AtEndOfPackage{
- \tl_map_inline:nn {
- \mathup\mathit\mathbb\mathbbit
- \mathscr\mathfrak\mathtt
- \mathsf\mathsfup\mathsfit
- \mathbf\mathbfup\mathbfit
- \mathbfscr\mathbffrak
- \mathbfsf\mathbfsfup\mathbfsfit
- }{
- \seq_put_right:Nn \g_um_mathalph_seq {#1}
- \um_prepare_mathstyle:f {\exp_after:wN \use_none:nnnnn \token_to_str:N #1}
- }
+\clist_map_inline:nn {
+ {\mathup } {latin,Latin,greek,Greek,num,misc} {\mathup } ,
+ {\mathit } {latin,Latin,greek,Greek,misc} {\mathit } ,
+ {\mathbb } {latin,Latin,num,misc} {\mathbb } ,
+ {\mathbbit } {misc} {\mathbbit } ,
+ {\mathscr } {latin,Latin} {\mathscr } ,
+ {\mathcal } {Latin} {\mathscr } ,
+ {\mathbfcal } {Latin} {\mathbfscr } ,
+ {\mathfrak } {latin,Latin} {\mathfrak } ,
+ {\mathtt } {latin,Latin,num} {\mathtt } ,
+ {\mathsfup } {latin,Latin,num} {\mathsfup } ,
+ {\mathsfit } {latin,Latin} {\mathsfit } ,
+ {\mathbfup } {latin,Latin,greek,Greek,num,misc} {\mathbfup } ,
+ {\mathbfit } {latin,Latin,greek,Greek,misc} {\mathbfit } ,
+ {\mathbfscr } {latin,Latin} {\mathbfscr } ,
+ {\mathbffrak} {latin,Latin} {\mathbffrak} ,
+ {\mathbfsfup} {latin,Latin,greek,Greek,num,misc} {\mathbfsfup} ,
+ {\mathbfsfit} {latin,Latin,greek,Greek,misc} {\mathbfsfit}
+}{
+ \seq_put_right:Nn \g_um_default_mathalph_seq {#1}
+ \exp_after:wN \um_new_mathstyle:N \use_i:nnn #1
}
% \end{macrocode}
-% \end{macro}
+% These are `false' mathstyles that inherit other definitions:
+% \begin{macrocode}
+\um_new_mathstyle:N \mathsf
+\um_new_mathstyle:N \mathbf
+\um_new_mathstyle:N \mathbfsf
+% \end{macrocode}
+% \begin{macrocode}
+}
+% \end{macrocode}
+%
+%
+% \subsection{Defining the math style macros}
+%
+% We call the different shapes that a math alphabet can be a `math style'.
+% Note that different alphabets can exist within the same math style. E.g.,
+% we call `bold' the math style |bf| and within it there are upper and lower
+% case Greek and Roman alphabets and Arabic numerals.
%
% \begin{macro}{\um_prepare_mathstyle:n}
% \darg{math style name (e.g., \texttt{it} or \texttt{bb})}
@@ -2934,34 +3034,6 @@ This work is "author-maintained" by Will Robertson.
%
% \subsection{Defining the math alphabets per style}
%
-% \begin{macro}{\g_um_default_mathalph_seq}
-% This sequence stores the alphabets in each math style.
-% \begin{macrocode}
-\seq_new:N \g_um_default_mathalph_seq
-% \end{macrocode}
-%
-% \begin{macrocode}
-\clist_map_inline:nn {
- {\mathup } {latin,Latin,greek,Greek,num,misc} {\mathup } ,
- {\mathit } {latin,Latin,greek,Greek,misc} {\mathit } ,
- {\mathbb } {latin,Latin,num,misc} {\mathbb } ,
- {\mathbbit } {misc} {\mathbbit } ,
- {\mathscr } {latin,Latin} {\mathscr } ,
- {\mathfrak } {latin,Latin} {\mathfrak } ,
- {\mathtt } {latin,Latin,num} {\mathtt } ,
- {\mathsfup } {latin,Latin,num} {\mathsfup } ,
- {\mathsfit } {latin,Latin} {\mathsfit } ,
- {\mathbfup } {latin,Latin,greek,Greek,num,misc} {\mathbfup } ,
- {\mathbfit } {latin,Latin,greek,Greek,misc} {\mathbfit } ,
- {\mathbfscr } {latin,Latin} {\mathbfscr } ,
- {\mathbffrak} {latin,Latin} {\mathbffrak} ,
- {\mathbfsfup} {latin,Latin,greek,Greek,num,misc} {\mathbfsfup} ,
- {\mathbfsfit} {latin,Latin,greek,Greek,misc} {\mathbfsfit}
-}{
- \seq_put_right:Nn \g_um_default_mathalph_seq {#1}
-}
-% \end{macrocode}
-% \end{macro}
%
% Variables:
% \begin{macrocode}
@@ -3094,23 +3166,71 @@ This work is "author-maintained" by Will Robertson.
% |\um_config_\l_um_style_tl_##1:n|, we first want to define some functions
% to be used inside them to actually perform the character mapping.
%
-% \darg{Starting input char (single)}
-% \darg{Starting output char}
-% Loops through character ranges setting \cmd\mathcode.
+% \subsubsection{Functions}
+%
+% \begin{macro}{\um_map_char_single:nn}
+% Wrapper for |\um_map_char_noparse:nn| or |\um_map_char_parse:nn|
+% depending on the context.
% \begin{macrocode}
-\cs_set:Npn \um_map_chars_range:nnn #1#2#3 {
- \prg_stepwise_inline:nnnn {0}{1}{#1-1} {
- \um_map_char_single:nn {#2+##1}{#3+##1}
+\cs_new:Npn \um_map_char_single:cc { \exp_args:Ncc \um_map_char_single:nn }
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\um_map_char_noparse:nn}
+% \begin{macro}{\um_map_char_parse:nn}
+% \begin{macrocode}
+\cs_new:Npn \um_map_char_noparse:nn #1#2 {
+ \um_set_mathcode:nnnn {#1}{\mathalpha}{\um_symfont_tl}{#2}
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\cs_new:Npn \um_map_char_parse:nn #1#2 {
+ \um@parse@term {#1} {\@nil} {\mathalpha} {
+ \um_map_char_noparse:nn {#1}{#2}
}
}
-\cs_generate_variant:Nn \um_map_chars_range:nnn {ncc}
% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\um_map_single:nnn}
+% \darg{char name (`dotlessi')}
+% \darg{from alphabet(s)}
+% \darg{to alphabet}
+% \begin{macrocode}
+\cs_new:Npn \um_map_char_single:nnn #1#2#3 {
+ \um_map_char_single:cc { \um_to_usv:nn {#1}{#3} }
+ { \um_to_usv:nn {#2}{#3} }
+}
+\cs_set:Npn \um_map_single:nnn #1#2#3 {
+ \cs_if_exist:cT { \um_to_usv:nn {#3} {#1} }
+ {
+ \clist_map_inline:nn {#2} {
+ \um_map_char_single:nnn {##1} {#3} {#1}
+ }
+ }
+}
+% \end{macrocode}
+% \end{macro}
+%
%
% \begin{macro}{\um_map_chars_range:nnnn}
% \darg{Number of chars (26)}
% \darg{From style, one or more (it)}
% \darg{To style (up)}
% \darg{Alphabet name (Latin)}
+% First the function with numbers:
+% \begin{macrocode}
+\cs_set:Npn \um_map_chars_range:nnn #1#2#3 {
+ \prg_stepwise_inline:nnnn {0}{1}{#1-1} {
+ \um_map_char_single:nn {#2+##1}{#3+##1}
+ }
+}
+\cs_generate_variant:Nn \um_map_chars_range:nnn {ncc}
+% \end{macrocode}
+% And the wrapper with names:
% \begin{macrocode}
\cs_new:Npn \um_map_chars_range:nnnn #1#2#3#4 {
\um_map_chars_range:ncc {#1} { \um_to_usv:nn {#2}{#4} }
@@ -3119,25 +3239,25 @@ This work is "author-maintained" by Will Robertson.
% \end{macrocode}
% \end{macro}
%
+% \subsubsection{Functions for alphabets}
+%
% \begin{macrocode}
-\cs_new:Npn \um_map_char_noparse:nn #1#2 {
- \um_set_mathcode:nnnn {#1}{\mathalpha}{\um_symfont_tl}{#2}
-}
-\cs_new:Npn \um_map_char_parse:nn #1#2 {
- \um@parse@term {#1} {\@nil} {\mathalpha} {
- \um_map_char_noparse:nn {#1}{#2}
- }
-}
\cs_set:Npn \um_map_chars_Latin:nn #1#2 {
\clist_map_inline:nn {#1} {
\um_map_chars_range:nnnn {26} {##1} {#2} {Latin}
}
}
+% \end{macrocode}
+%
+% \begin{macrocode}
\cs_set:Npn \um_map_chars_latin:nn #1#2 {
\clist_map_inline:nn {#1} {
\um_map_chars_range:nnnn {26} {##1} {#2} {latin}
}
}
+% \end{macrocode}
+%
+% \begin{macrocode}
\cs_set:Npn \um_map_chars_greek:nn #1#2 {
\clist_map_inline:nn {#1} {
\um_map_chars_range:nnnn {25} {##1} {#2} {greek}
@@ -3149,46 +3269,89 @@ This work is "author-maintained" by Will Robertson.
\um_map_char_single:nnn {##1} {#2} {varpi}
}
}
+% \end{macrocode}
+%
+% \begin{macrocode}
\cs_set:Npn \um_map_chars_Greek:nn #1#2 {
\clist_map_inline:nn {#1} {
\um_map_chars_range:nnnn {25} {##1} {#2} {Greek}
\um_map_char_single:nnn {##1} {#2} {varTheta}
}
}
+% \end{macrocode}
+%
+% \begin{macrocode}
\cs_set:Npn \um_map_chars_numbers:nn #1#2 {
\um_map_chars_range:nnnn {10} {#1} {#2} {num}
}
% \end{macrocode}
%
-% \begin{macro}{\um_map_single:nnn}
-% \darg{char name (`dotlessi')}
-% \darg{from alphabet(s)}
-% \darg{to alphabet}
+%
+% \subsection{Mapping chars inside a math style}
+%
+% \subsubsection{Functions for setting up the maths alphabets}
+%
+% \begin{macro}{\um_set_mathalphabet_char:Nnn}
+% This is a wrapper for either |\um_mathmap_noparse:Nnn| or |\um_mathmap_parse:Nnn|, depending on the context.
% \begin{macrocode}
-\cs_new:Npn \um_map_char_single:cc { \exp_args:Ncc \um_map_char_single:nn }
-\cs_new:Npn \um_map_char_single:nnn #1#2#3 {
- \um_map_char_single:cc { \um_to_usv:nn {#1}{#3} }
- { \um_to_usv:nn {#2}{#3} }
+\cs_new:Npn \um_set_mathalphabet_char:Ncc {
+ \exp_args:NNcc \um_set_mathalphabet_char:Nnn
}
-\cs_set:Npn \um_map_single:nnn #1#2#3 {
- \cs_if_exist:cT { \um_to_usv:nn {#3} {#1} }
- {
- \clist_map_inline:nn {#2} {
- \um_map_char_single:nnn {##1} {#3} {#1}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\um_mathmap_noparse:Nnn}
+% \darg{Maths alphabet, \eg, \cmd\mathbb}
+% \darg{Input slot(s), \eg, the slot for `A' (comma separated)}
+% \darg{Output slot, \eg, the slot for `$\mathbb{A}$'}
+% Adds \cs{um_set_mathcode:nnnn} declarations to the specified maths alphabet's definition.
+% \begin{macrocode}
+\cs_set:Npn \um_mathmap_noparse:Nnn #1#2#3 {
+ \clist_map_inline:nn {#2} {
+ \tl_put_right:cx {um_switchto_\cs_to_str:N #1:} {
+ \um_set_mathcode:nnnn{##1}{\mathalpha}{\um_symfont_tl}{#3}
}
}
}
% \end{macrocode}
% \end{macro}
%
-% \subsection{Mapping chars inside a math style}
+% \begin{macro}{\um_mathmap_parse:Nnn}
+% \darg{Maths alphabet, \eg, \cmd\mathbb}
+% \darg{Input slot(s), \eg, the slot for `A' (comma separated)}
+% \darg{Output slot, \eg, the slot for `$\mathbb{A}$'}
+% When \cmd\um@parse@term\ is executed, it populates the \cmd\l_um_char_num_range_clist\
+% macro with slot numbers corresponding to the specified range. This range is used to
+% conditionally add \cs{um_set_mathcode:nnnn} declaractions to the maths alphabet definition.
+% \begin{macrocode}
+\cs_set:Npn \um_mathmap_parse:Nnn #1#2#3 {
+ \clist_if_in:NnT \l_um_char_num_range_clist {#3} {
+ \um_mathmap_noparse:Nnn {#1}{#2}{#3}
+ }
+}
+% \end{macrocode}
+% \end{macro}
%
-% \begin{macro}{\um_set_mathalph_range:Nnn}
-% \oarg{Number of iterations}
+% \begin{macro}{\um_set_mathalphabet_char:Nnnn}
+% \darg{math style command}
+% \darg{input math alphabet name}
+% \darg{output math alphabet name}
+% \darg{char name to map}
+% \begin{macrocode}
+\cs_new:Npn \um_set_mathalphabet_char:Nnnn #1#2#3#4 {
+ \um_set_mathalphabet_char:Ncc #1 { \um_to_usv:nn {#2} {#4} }
+ { \um_to_usv:nn {#3} {#4} }
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\um_set_mathalph_range:nNnn}
+% \darg{Number of iterations}
% \darg{Maths alphabet}
% \darg{Starting input char (single)}
% \darg{Starting output char}
% Loops through character ranges setting \cmd\mathcode.
+% First the version that uses numbers:
% \begin{macrocode}
\cs_new:Npn \um_set_mathalph_range:nNnn #1#2#3#4 {
\prg_stepwise_inline:nnnn {0}{1}{#1-1} {
@@ -3197,6 +3360,16 @@ This work is "author-maintained" by Will Robertson.
}
\cs_generate_variant:Nn \um_set_mathalph_range:nNnn {nNcc}
% \end{macrocode}
+% Then the wrapper version that uses names:
+% \begin{macrocode}
+\cs_new:Npn \um_set_mathalph_range:nNnnn #1#2#3#4#5 {
+ \um_set_mathalph_range:nNcc {#1} #2 { \um_to_usv:nn {#3} {#5} }
+ { \um_to_usv:nn {#4} {#5} }
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Individual mapping functions for different alphabets}
%
% \begin{macrocode}
\cs_new:Npn \um_set_mathalphabet_pos:Nnnn #1#2#3#4 {
@@ -3206,28 +3379,43 @@ This work is "author-maintained" by Will Robertson.
}
}
}
+% \end{macrocode}
+%
+% \begin{macrocode}
\cs_new:Npn \um_set_mathalphabet_numbers:Nnn #1#2#3 {
\clist_map_inline:nn {#2} {
\um_set_mathalph_range:nNnnn {10} #1 {##1} {#3} {num}
}
}
+% \end{macrocode}
+%
+% \begin{macrocode}
\cs_new:Npn \um_set_mathalphabet_Latin:Nnn #1#2#3 {
\clist_map_inline:nn {#2} {
\um_set_mathalph_range:nNnnn {26} #1 {##1} {#3} {Latin}
}
}
+% \end{macrocode}
+%
+% \begin{macrocode}
\cs_new:Npn \um_set_mathalphabet_latin:Nnn #1#2#3 {
\clist_map_inline:nn {#2} {
\um_set_mathalph_range:nNnnn {26} #1 {##1} {#3} {latin}
\um_set_mathalphabet_char:Nnnn #1 {##1} {#3} {h}
}
}
+% \end{macrocode}
+%
+% \begin{macrocode}
\cs_new:Npn \um_set_mathalphabet_Greek:Nnn #1#2#3 {
\clist_map_inline:nn {#2} {
\um_set_mathalph_range:nNnnn {25} #1 {##1} {#3} {Greek}
\um_set_mathalphabet_char:Nnnn #1 {##1} {#3} {varTheta}
}
}
+% \end{macrocode}
+%
+% \begin{macrocode}
\cs_new:Npn \um_set_mathalphabet_greek:Nnn #1#2#3 {
\clist_map_inline:nn {#2} {
\um_set_mathalph_range:nNnnn {25} #1 {##1} {#3} {greek}
@@ -3239,19 +3427,7 @@ This work is "author-maintained" by Will Robertson.
\um_set_mathalphabet_char:Nnnn #1 {##1} {#3} {varpi}
}
}
-\cs_new:Npn \um_set_mathalphabet_char:Ncc {
- \exp_args:NNcc \um_set_mathalphabet_char:Nnn
-}
-\cs_new:Npn \um_set_mathalphabet_char:Nnnn #1#2#3#4 {
- \um_set_mathalphabet_char:Ncc #1 { \um_to_usv:nn {#2} {#4} }
- { \um_to_usv:nn {#3} {#4} }
-}
-\cs_new:Npn \um_set_mathalph_range:nNnnn #1#2#3#4#5 {
- \um_set_mathalph_range:nNcc {#1} #2 { \um_to_usv:nn {#3} {#5} }
- { \um_to_usv:nn {#4} {#5} }
-}
% \end{macrocode}
-% \end{macro}
%
% \subsection{Alphabets}
%
@@ -3430,7 +3606,7 @@ This work is "author-maintained" by Will Robertson.
}
% \end{macrocode}
%
-% \subsubsection{Script or caligraphic: \cmd\mathscr\ and \cmd\mathcal}
+% \subsubsection{Script and caligraphic: \cmd\mathscr\ and \cmd\mathcal}
%
% \begin{macrocode}
\cs_new:Npn \um_config_scr_Latin:n #1 {
@@ -3451,6 +3627,21 @@ This work is "author-maintained" by Will Robertson.
\um_set_mathalphabet_pos:Nnnn \mathscr {o}{up,it}{#1}
}
% \end{macrocode}
+% These are by default synonyms for the above, but with the STIX
+% fonts we want to use the alternate alphabet.
+% \begin{macrocode}
+\cs_new:Npn \um_config_cal_Latin:n #1 {
+ \um_set_mathalphabet_Latin:Nnn \mathcal {up,it}{#1}
+ \um_set_mathalphabet_pos:Nnnn \mathcal {B}{up,it}{#1}
+ \um_set_mathalphabet_pos:Nnnn \mathcal {E}{up,it}{#1}
+ \um_set_mathalphabet_pos:Nnnn \mathcal {F}{up,it}{#1}
+ \um_set_mathalphabet_pos:Nnnn \mathcal {H}{up,it}{#1}
+ \um_set_mathalphabet_pos:Nnnn \mathcal {I}{up,it}{#1}
+ \um_set_mathalphabet_pos:Nnnn \mathcal {L}{up,it}{#1}
+ \um_set_mathalphabet_pos:Nnnn \mathcal {M}{up,it}{#1}
+ \um_set_mathalphabet_pos:Nnnn \mathcal {R}{up,it}{#1}
+}
+% \end{macrocode}
%
% \subsubsection{Fractur or fraktur or blackletter: \cmd\mathfrak}
%
@@ -3750,6 +3941,9 @@ This work is "author-maintained" by Will Robertson.
\cs_new:Npn \um_config_bfscr_latin:n #1 {
\um_set_mathalphabet_latin:Nnn \mathbfscr {up,it}{#1}
}
+\cs_new:Npn \um_config_bfcal_Latin:n #1 {
+ \um_set_mathalphabet_Latin:Nnn \mathbfcal {up,it}{#1}
+}
% \end{macrocode}
%
% \subsubsection{Bold upright sans serif: \cmd\mathbfsfup}
@@ -3925,6 +4119,49 @@ This work is "author-maintained" by Will Robertson.
}
% \end{macrocode}
%
+% \section{A token list to contain the data of the math table}
+%
+% Instead of \cmd\input-ing the unicode math table every time we
+% want to re-read its data, we save it within a macro. This has two
+% advantages: 1.~it should be slightly faster, at the expense of memory;
+% 2.~we don't need to worry about catcodes later, since they're frozen
+% at this point.
+%
+% In time, the case statement inside |set_mathsymbol| will be moved in here
+% to avoid re-running it every time.
+% \begin{macrocode}
+\xetex_or_luatex:nnn { \cs_set:Npn \um_symbol_setup: }
+ {
+ \def\mathfence{\mathfence}
+ \def\mathover{\mathover}
+ \def\mathunder{\mathunder}
+ \cs_set:Npn \UnicodeMathSymbol ##1##2##3##4 {
+ \prg_case_tl:Nnn ##3 { \mathover {} \mathunder {} }
+ {
+ \exp_not:n {\_um_sym:nnn{##1}{##2}{##3}}
+ }
+ }
+ }
+ {
+ \cs_set:Npn \UnicodeMathSymbol ##1##2##3##4 {
+ \exp_not:n {\_um_sym:nnn{##1}{##2}{##3}}
+ }
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
+\CatchFileEdef \g_um_mathtable_tl {unicode-math-table.tex} {\um_symbol_setup:}
+% \end{macrocode}
+%
+%
+% \begin{macro}{\um_input_math_symbol_table:}
+% This function simply expands to the token list containing all the data.
+% \begin{macrocode}
+\cs_new:Npn \um_input_math_symbol_table: {\g_um_mathtable_tl}
+% \end{macrocode}
+% \end{macro}
+%
+%
% \section{Definitions of the active math characters}
%
% Here we define every Unicode math codepoint an equivalent macro name.
@@ -3932,7 +4169,7 @@ This work is "author-maintained" by Will Robertson.
%
% \begin{macro}{\um@scancharlet}
% \begin{macro}{\um@scanactivedef}
-% We need to do some trickery to transform the |\UnicodeMathSymbol| argument
+% We need to do some trickery to transform the |\_um_sym:nnn| argument
% |"ABCDEF| into the \XeTeX\ `caret input' form |^^^^^abcdef|. It is \emph{very important}
% that the argument has five characters. Otherwise we need to change the number of |^| chars.
%
@@ -3973,22 +4210,26 @@ This work is "author-maintained" by Will Robertson.
% \end{macro}
% \end{macro}
%
-% Now give \cmd\UnicodeMathSymbol\ a definition in terms of \cmd\um@scancharlet\
+% Now give \cmd\_um_sym:nnn\ a definition in terms of \cmd\um@scancharlet\
% and we're good to go.
-% Make sure |#| is an `other' so that we don't get confused with \cs{mathoctothorpe}.
+%
+% Ensure catcodes are appropriate;
+% make sure |#| is an `other' so that we don't get confused with \cs{mathoctothorpe}.
% \begin{macrocode}
\AtBeginDocument{
\group_begin:
- \char_make_math_superscript:N\^
- \def\UnicodeMathSymbol#1#2#3#4{
+ \char_make_math_superscript:N \^
+ \cs_set:Npn \_um_sym:nnn #1#2#3 {
\bool_if:nF { \cs_if_eq_p:NN #3 \mathaccent ||
\cs_if_eq_p:NN #3 \mathopen ||
- \cs_if_eq_p:NN #3 \mathclose } {
+ \cs_if_eq_p:NN #3 \mathclose ||
+ \cs_if_eq_p:NN #3 \mathover ||
+ \cs_if_eq_p:NN #3 \mathunder } {
\um@scancharlet#2=#1\@nil\ignorespaces
}
}
\char_make_other:N \#
- \@input{unicode-math-table.tex}
+ \um_input_math_symbol_table:
\group_end:
}
% \end{macrocode}
@@ -4061,6 +4302,17 @@ This work is "author-maintained" by Will Robertson.
% \item If pcount>4 or the glyph doesn't exist, insert pcount \cs{prime}s with \cs{primekern} between each.
% \end{itemize}
%
+% This is a wrapper to insert a superscript; if there is a subsequent
+% trailing superscript, then it is included within the insertion.
+% \begin{macrocode}
+\cs_new:Nn \um_arg_i_before_egroup:n {#1\egroup}
+\cs_new:Nn \um_superscript:n {
+ ^\bgroup #1
+ \peek_meaning_remove:NTF ^
+ \um_arg_i_before_egroup:n \egroup
+}
+% \end{macrocode}
+%
% \begin{macrocode}
\muskip_new:N \g_um_primekern_muskip
\muskip_gset:Nn \g_um_primekern_muskip { -\thinmuskip/2 }% arbitrary
@@ -4069,22 +4321,28 @@ This work is "author-maintained" by Will Robertson.
%
% \begin{macrocode}
\cs_new:Npn \um_nprimes:Nn #1#2 {
- ^{
- #1
- \prg_replicate:nn {#2-1} { \mskip \g_um_primekern_muskip #1 }
- }
+ \um_superscript:n {
+ #1
+ \prg_replicate:nn {#2-1} { \mskip \g_um_primekern_muskip #1 }
+ }
}
\cs_new:Npn \um_nprimes_select:nn #1#2 {
\prg_case_int:nnn {#2}{
- {1} { ^{#1} }
+ {1} { \um_superscript:n {#1} }
{2} {
- \um_glyph_if_exist:nTF {"2033} { ^{\um_prime_double_mchar} } {\um_nprimes:Nn #1 {#2}}
+ \um_glyph_if_exist:nTF {"2033}
+ { \um_superscript:n {\um_prime_double_mchar} }
+ { \um_nprimes:Nn #1 {#2} }
}
{3} {
- \um_glyph_if_exist:nTF {"2034} {^{\um_prime_triple_mchar} } {\um_nprimes:Nn #1 {#2}}
+ \um_glyph_if_exist:nTF {"2034}
+ { \um_superscript:n {\um_prime_triple_mchar} }
+ { \um_nprimes:Nn #1 {#2} }
}
{4} {
- \um_glyph_if_exist:nTF {"2057} { ^{\um_prime_quad_mchar} } {\um_nprimes:Nn #1 {#2}}
+ \um_glyph_if_exist:nTF {"2057}
+ { \um_superscript:n {\um_prime_quad_mchar} }
+ { \um_nprimes:Nn #1 {#2} }
}
}{
\um_nprimes:Nn #1 {#2}
@@ -4092,12 +4350,16 @@ This work is "author-maintained" by Will Robertson.
}
\cs_new:Npn \um_nbackprimes_select:nn #1#2 {
\prg_case_int:nnn {#2}{
- {1} { ^{#1} }
+ {1} { \um_superscript:n {#1} }
{2} {
- \um_glyph_if_exist:nTF {"2033} { ^{\um_backprime_double_mchar} } {\um_nprimes:Nn #1 {#2}}
+ \um_glyph_if_exist:nTF {"2036}
+ { \um_superscript:n {\um_backprime_double_mchar} }
+ { \um_nprimes:Nn #1 {#2} }
}
{3} {
- \um_glyph_if_exist:nTF {"2034} {^{\um_backprime_triple_mchar} } {\um_nprimes:Nn #1 {#2}}
+ \um_glyph_if_exist:nTF {"2037}
+ { \um_superscript:n {\um_backprime_triple_mchar} }
+ { \um_nprimes:Nn #1 {#2} }
}
}{
\um_nprimes:Nn #1 {#2}
@@ -4256,6 +4518,22 @@ This work is "author-maintained" by Will Robertson.
%
% \subsection{Unicode radicals}
%
+%
+% \begin{macro}{\sqrt}
+% Redefine this macro for \LuaTeX, which provides us a nice primitive to use.
+% \begin{macrocode}
+\luatex_if_engine:T {
+ \DeclareDocumentCommand \sqrt { O{} m } {
+ \luatexUroot \l_um_radical_sqrt_tl {#1} {#2}
+ }
+ \cs_set:Npn \root #1 \of #2 {
+ \luatexUroot \l_um_radical_sqrt_tl {#1} {#2}
+ }
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
% \begin{macro}{\r@@t}
% \darg{A mathstyle (for \cmd\mathpalette)}
% \darg{Leading superscript for the sqrt sign}
@@ -4504,6 +4782,7 @@ This work is "author-maintained" by Will Robertson.
% \begin{macrocode}
\cs_new:Npn \um_setup_active_frac: {
\group_begin:
+ \um_define_active_frac:Nw ^^^^2189 0/3
\um_define_active_frac:Nw ^^^^2152 1/{10}
\um_define_active_frac:Nw ^^^^2151 1/9
\um_define_active_frac:Nw ^^^^215b 1/8
@@ -4560,12 +4839,6 @@ This work is "author-maintained" by Will Robertson.
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\mathcal}
-% \begin{macrocode}
-\def\mathcal{\mathscr}
-% \end{macrocode}
-% \end{macro}
-%
% \begin{macro}{\mathrm}
% \begin{macrocode}
\def\mathrm{\mathup}
@@ -4640,8 +4913,18 @@ This work is "author-maintained" by Will Robertson.
}
\def\std@minus{\Umathcharnum\Umathcodenum`\-\relax}
\def\std@equal{\Umathcharnum\Umathcodenum`\=\relax}
- \def\@cdots{\mathinner{\cdots}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \cs_set:Npn \@cdots {\mathinner{\cdots}}
\cs_set_eq:NN \dotsb@ \cdots
+% \end{macrocode}
+% This isn't as clever as the \pkg{amsmath} definition but I think it works:
+% \begin{macrocode}
+ \def \resetMathstrut@ {%
+ \setbox\z@\hbox{$($}%
+ \ht\Mathstrutbox@\ht\z@ \dp\Mathstrutbox@\dp\z@
+ }
}
% \end{macrocode}
% \paragraph{\pkg{amsopn}}
@@ -4691,8 +4974,23 @@ This work is "author-maintained" by Will Robertson.
}
% \end{macrocode}
%
+% \begin{macrocode}
+\ExplSyntaxOff
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
%
% \section{Error messages}
+% \seclabel{codemsg}
+%
+% These are defined at the beginning of the package, but we leave their
+% definition until now in the source to keep them out of the way.
+%
+% \begin{macrocode}
+%<*msg>
+% \end{macrocode}
%
% Wrapper functions:
% \begin{macrocode}
@@ -4738,15 +5036,11 @@ This work is "author-maintained" by Will Robertson.
}
% \end{macrocode}
%
-% The end.
% \begin{macrocode}
-\ExplSyntaxOff
-\errorcontextlines=999
+%</msg>
% \end{macrocode}
%
-%\iffalse
-%</package>
-%\fi
+% The end.
%
%
% \section{\STIX\ table data extraction}\label{part:awk}
@@ -5014,7 +5308,7 @@ This work is "author-maintained" by Will Robertson.
\usepackage[svgnames]{xcolor}
\usepackage{array,booktabs,calc,enumitem,fancyvrb,graphicx,ifthen,longtable,refstyle,subfig,topcapt,url,varioref,underscore}
\setcounter{LTchunksize}{100}
-\usepackage[slash-delimiter=frac]{unicode-math}
+\usepackage[slash-delimiter=frac,nabla=literal]{unicode-math}
\usepackage{metalogo}
%\usepackage[rm,small]{titlesec}
@@ -5025,62 +5319,15 @@ This work is "author-maintained" by Will Robertson.
\setmathfont{Cambria Math}
\newfontface\umfont{STIXGeneral}
-\usepackage{hyperref}
+\usepackage{hypdoc}
\linespread{1.069} % A bit more space between lines
\frenchspacing % Remove ugly extra space after punctuation
\definecolor{niceblue}{rgb}{0.2,0.4,0.8}
-\newenvironment{example}[1]
- {\VerbatimEnvironment
- \def\Options{#1}
- \begin{VerbatimOut}[gobble=4]{\examplefilename}}
- {\end{VerbatimOut}\relax
- \typesetexample}
\def\theCodelineNo{\textcolor{niceblue}{\sffamily\tiny\arabic{CodelineNo}}}
-\let\examplesize\normalsize
-\let\auxwidth\relax
-
-\newlength\examplewidth\newlength\verbatimwidth
-\newlength\exoutdent \newlength\exverbgap
-\setlength\exverbgap{1em}
-\setlength\exoutdent{-0.15\textwidth}
-\newsavebox\verbatimbox
-\edef\examplefilename{\jobname.example}
-
-\newcommand\typesetexample{\relax
- \smallskip
- \noindent
- \begin{minipage}{\linewidth}
- \color{niceblue}
- \hrulefill\par
- \edef\@tempa{[gobble=0,fontsize=\noexpand\scriptsize,\Options]}
- \begin{lrbox}{\verbatimbox}\relax
- \expandafter\BVerbatimInput\@tempa{\examplefilename}
- \end{lrbox}
- \begin{list}{}{\setlength\itemindent{0pt}
- \setlength\leftmargin\exoutdent
- \setlength\rightmargin{0pt}}\item
- \ifx\auxwidth\relax
- \setlength\verbatimwidth{\wd\verbatimbox}
- \else
- \setlength\verbatimwidth{\auxwidth}
- \fi
- \begin{minipage}[c]{\textwidth-\exoutdent-\verbatimwidth-\exverbgap}
- \catcode`\%=14\centering\input\examplefilename\relax
- \end{minipage}\hfill
- \begin{minipage}[c]{\verbatimwidth}
- \usebox\verbatimbox
- \end{minipage}
- \end{list}
- \par\noindent\hrulefill
- \end{minipage}
- \smallskip}
-
-\newcommand*\setverbwidth[1]{\def\auxwidth{#1}}
-
\newcommand*\name[1]{{#1}}
\newcommand*\pkg[1]{\textsf{#1}}
\newcommand*\feat[1]{\texttt{#1}}
diff --git a/Master/texmf-dist/source/latex/unicode-math/unimath-symbols.ltx b/Master/texmf-dist/source/latex/unicode-math/unimath-symbols.ltx
index 310a9908d0c..b5dcc98dbfc 100644
--- a/Master/texmf-dist/source/latex/unicode-math/unimath-symbols.ltx
+++ b/Master/texmf-dist/source/latex/unicode-math/unimath-symbols.ltx
@@ -18,7 +18,7 @@
\usepackage{unicode-math}
\setmathfont[SizeFeatures={
{Size=-10, Colour=888888},
- {Size=10-, Colour=FF0000}}]{STIXGeneral}
+ {Size=10-, Colour=FF0000}}]{XITS Math}
\def\TABLE{%
\begin{longtable}[l]{@{}lcll@{}}
@@ -87,16 +87,12 @@ package. Use this document to find the command name or the Unicode glyph slot fo
\clearpage
\section{Accents, \cmd\mathaccent}
-Note that accents will only be properly placed if used with an OpenType font with the necessary information. The examples shown below use `Cambria Math'.
+Note that accents will only be properly placed if used with an OpenType font with the necessary information.
-\setmathfont[Color=FF0000]{Cambria Math}
\begingroup
\def\SYMB#1{$\displaystyle#1 x$}
\SHOW\mathaccent
\endgroup
-\setmathfont[SizeFeatures={
- {Size=-10, Colour=888888},
- {Size=10-, Colour=FF0000}}]{STIXGeneral}
\clearpage
\section{Big operators, \cmd\mathop}
diff --git a/Master/texmf-dist/tex/latex/unicode-math/unicode-math-table.tex b/Master/texmf-dist/tex/latex/unicode-math/unicode-math-table.tex
index d45209ee187..d91f7706c53 100644
--- a/Master/texmf-dist/tex/latex/unicode-math/unicode-math-table.tex
+++ b/Master/texmf-dist/tex/latex/unicode-math/unicode-math-table.tex
@@ -15,7 +15,7 @@
\UnicodeMathSymbol{"0003D}{\equal }{\mathrel}{equals sign r:}%
\UnicodeMathSymbol{"0003E}{\greater }{\mathrel}{greater-than sign r:}%
\UnicodeMathSymbol{"0003F}{\question }{\mathord}{question mark}%
-\UnicodeMathSymbol{"0003F}{\atsign }{\mathord}{commercial at}%
+\UnicodeMathSymbol{"00040}{\atsign }{\mathord}{commercial at}%
\UnicodeMathSymbol{"0005B}{\lbrack }{\mathopen}{left square bracket}%
\UnicodeMathSymbol{"0005C}{\backslash }{\mathord}{reverse solidus}%
\UnicodeMathSymbol{"0005D}{\rbrack }{\mathclose}{right square bracket}%
@@ -44,8 +44,6 @@
\UnicodeMathSymbol{"0030C}{\check }{\mathaccent}{caron}%
\UnicodeMathSymbol{"00310}{\candra }{\mathaccent}{candrabindu (non-spacing)}%
\UnicodeMathSymbol{"00312}{\oturnedcomma }{\mathaccent}{combining turned comma above}%
-\UnicodeMathSymbol{"00313}{\osmooth }{\mathaccent}{greek psili (smooth breathing) (non-spacing)}%
-\UnicodeMathSymbol{"00314}{\orough }{\mathaccent}{greek dasia (rough breathing) (non-spacing)}%
\UnicodeMathSymbol{"00315}{\ocommatopright }{\mathaccent}{combining comma above right}%
\UnicodeMathSymbol{"0031A}{\droang }{\mathaccent}{left angle above (non-spacing)}%
\UnicodeMathSymbol{"00330}{\wideutilde }{\mathaccent}{under tilde accent (multiple characters and non-spacing)}%
@@ -70,6 +68,7 @@
\UnicodeMathSymbol{"003A1}{\upRho }{\mathalpha}{capital rho, greek}%
\UnicodeMathSymbol{"003A3}{\upSigma }{\mathalpha}{capital sigma, greek}%
\UnicodeMathSymbol{"003A4}{\upTau }{\mathalpha}{capital tau, greek}%
+\UnicodeMathSymbol{"003A5}{\upUpsilon }{\mathalpha}{capital upsilon, greek}%
\UnicodeMathSymbol{"003A6}{\upPhi }{\mathalpha}{capital phi, greek}%
\UnicodeMathSymbol{"003A7}{\upChi }{\mathalpha}{capital chi, greek}%
\UnicodeMathSymbol{"003A8}{\upPsi }{\mathalpha}{capital psi, greek}%
@@ -125,10 +124,8 @@
\UnicodeMathSymbol{"02020}{\dagger }{\mathbin}{dagger relation}%
\UnicodeMathSymbol{"02021}{\ddagger }{\mathbin}{double dagger relation}%
\UnicodeMathSymbol{"02022}{\smblkcircle }{\mathbin}{/bullet b: round bullet, filled}%
-\UnicodeMathSymbol{"02024}{\enleaderonedot }{\mathord}{one dot leader}%
\UnicodeMathSymbol{"02025}{\enleadertwodots }{\mathord}{double baseline dot (en leader)}%
\UnicodeMathSymbol{"02026}{\unicodeellipsis }{\mathord}{ellipsis (horizontal)}%
-\UnicodeMathSymbol{"02027}{\hyphenpoint }{\mathord}{hyphenation point}%
\UnicodeMathSymbol{"02032}{\prime }{\mathord}{prime or minute, not superscripted}%
\UnicodeMathSymbol{"02033}{\dprime }{\mathord}{double prime or second, not superscripted}%
\UnicodeMathSymbol{"02034}{\trprime }{\mathord}{triple prime (not superscripted)}%
@@ -166,7 +163,6 @@
\UnicodeMathSymbol{"020EF}{\underrightarrow }{\mathaccent}{combining right arrow below}%
\UnicodeMathSymbol{"020F0}{\asteraccent }{\mathaccent}{combining asterisk above}%
\UnicodeMathSymbol{"02102}{\BbbC }{\mathalpha}{/bbb c, open face c}%
-\UnicodeMathSymbol{"02105}{\incare }{\mathord}{in-care-of symbol}%
\UnicodeMathSymbol{"02107}{\Eulerconst }{\mathord}{euler constant}%
\UnicodeMathSymbol{"0210A}{\mscrg }{\mathalpha}{/scr g, script letter g}%
\UnicodeMathSymbol{"0210B}{\mscrH }{\mathalpha}{hamiltonian (script capital h)}%
@@ -309,7 +305,6 @@
\UnicodeMathSymbol{"021E8}{\rightwhitearrow }{\mathord}{rightwards white arrow}%
\UnicodeMathSymbol{"021E9}{\downwhitearrow }{\mathord}{downwards white arrow}%
\UnicodeMathSymbol{"021EA}{\whitearrowupfrombar }{\mathord}{upwards white arrow from bar}%
-\UnicodeMathSymbol{"021F3}{\updownwhitearrow }{\mathord}{up and down white arrow}%
\UnicodeMathSymbol{"021F4}{\circleonrightarrow }{\mathrel}{right arrow with small circle}%
\UnicodeMathSymbol{"021F5}{\downuparrows }{\mathrel}{downwards arrow leftwards of upwards arrow}%
\UnicodeMathSymbol{"021F6}{\rightthreearrows }{\mathrel}{three rightwards arrows}%
@@ -384,7 +379,7 @@
\UnicodeMathSymbol{"0223B}{\kernelcontraction }{\mathrel}{homothetic}%
\UnicodeMathSymbol{"0223C}{\sim }{\mathrel}{similar}%
\UnicodeMathSymbol{"0223D}{\backsim }{\mathrel}{reverse similar}%
-\UnicodeMathSymbol{"0223E}{\ac }{\mathbin}{most positive [inverted lazy s]}%
+\UnicodeMathSymbol{"0223E}{\invlazys }{\mathbin}{most positive [inverted lazy s]}%
\UnicodeMathSymbol{"0223F}{\sinewave }{\mathord}{sine wave}%
\UnicodeMathSymbol{"02240}{\wr }{\mathbin}{wreath product}%
\UnicodeMathSymbol{"02241}{\nsim }{\mathrel}{not similar}%
@@ -590,12 +585,8 @@
\UnicodeMathSymbol{"02311}{\sqlozenge }{\mathord}{square lozenge}%
\UnicodeMathSymbol{"02312}{\profline }{\mathord}{profile of a line}%
\UnicodeMathSymbol{"02313}{\profsurf }{\mathord}{profile of a surface}%
-\UnicodeMathSymbol{"02315}{\recorder }{\mathord}{telephone recorder symbol}%
-\UnicodeMathSymbol{"02316}{\target }{\mathord}{register mark or target; position}%
\UnicodeMathSymbol{"02317}{\viewdata }{\mathord}{viewdata square}%
-\UnicodeMathSymbol{"02318}{\cloverleaf }{\mathord}{cloverleaf [command key]}%
\UnicodeMathSymbol{"02319}{\turnednot }{\mathord}{turned not sign}%
-\UnicodeMathSymbol{"0231A}{\watchicon }{\mathord}{watch icon}%
\UnicodeMathSymbol{"0231C}{\ulcorner }{\mathopen}{upper left corner}%
\UnicodeMathSymbol{"0231D}{\urcorner }{\mathclose}{upper right corner}%
\UnicodeMathSymbol{"0231E}{\llcorner }{\mathopen}{lower left corner}%
@@ -605,8 +596,6 @@
\UnicodeMathSymbol{"02322}{\frown }{\mathrel}{down curve}%
\UnicodeMathSymbol{"02323}{\smile }{\mathrel}{up curve}%
\UnicodeMathSymbol{"0232C}{\varhexagonlrbonds }{\mathord}{six carbon ring, corner down, double bonds lower right etc}%
-\UnicodeMathSymbol{"0232D}{\cylcty }{\mathord}{cylindricity}%
-\UnicodeMathSymbol{"0232E}{\profalar }{\mathord}{all-around profile}%
\UnicodeMathSymbol{"02332}{\conictaper }{\mathord}{conical taper }%
\UnicodeMathSymbol{"02336}{\topbot }{\mathord}{top and bottom}%
\UnicodeMathSymbol{"0233D}{\obar }{\mathbin}{circle with vertical bar}%
@@ -615,7 +604,6 @@
\UnicodeMathSymbol{"02353}{\APLboxupcaret }{\mathord}{boxed up caret}%
\UnicodeMathSymbol{"02370}{\APLboxquestion }{\mathord}{boxed question mark}%
\UnicodeMathSymbol{"0237C}{\rangledownzigzagarrow }{\mathord}{right angle with downwards zigzag arrow}%
-\UnicodeMathSymbol{"02393}{\dircurrent }{\mathord}{line over dashed line (direct current symbol form 2)}%
\UnicodeMathSymbol{"02394}{\hexagon }{\mathord}{horizontal benzene ring [hexagon flat open]}%
\UnicodeMathSymbol{"0239B}{\lparenuend }{\mathord}{left parenthesis upper hook}%
\UnicodeMathSymbol{"0239C}{\lparenextender }{\mathord}{left parenthesis extension}%
@@ -642,16 +630,17 @@
\UnicodeMathSymbol{"023B1}{\rmoustache }{\mathord}{upper right or lower left curly bracket section}%
\UnicodeMathSymbol{"023B2}{\sumtop }{\mathord}{summation top}%
\UnicodeMathSymbol{"023B3}{\sumbottom }{\mathord}{summation bottom}%
-\UnicodeMathSymbol{"023B4}{\overbracket }{\mathord}{top square bracket}%
-\UnicodeMathSymbol{"023B5}{\underbracket }{\mathord}{bottom square bracket}%
+\UnicodeMathSymbol{"023B4}{\overbracket }{\mathover}{top square bracket}%
+\UnicodeMathSymbol{"023B5}{\underbracket }{\mathunder}{bottom square bracket}%
\UnicodeMathSymbol{"023B6}{\bbrktbrk }{\mathord}{bottom square bracket over top square bracket}%
\UnicodeMathSymbol{"023B7}{\sqrtbottom }{\mathord}{radical symbol bottom}%
\UnicodeMathSymbol{"023B8}{\lvboxline }{\mathord}{left vertical box line}%
\UnicodeMathSymbol{"023B9}{\rvboxline }{\mathord}{right vertical box line}%
\UnicodeMathSymbol{"023CE}{\varcarriagereturn }{\mathord}{return symbol}%
-\UnicodeMathSymbol{"023D0}{\varrowextender }{\mathord}{vertical line extension (used to extend arrows)}%
-\UnicodeMathSymbol{"023DC}{\overparen }{\mathord}{top parenthesis (mathematical use)}%
-\UnicodeMathSymbol{"023DD}{\underparen }{\mathord}{bottom parenthesis (mathematical use)}%
+\UnicodeMathSymbol{"023DC}{\overparen }{\mathover}{top parenthesis (mathematical use)}%
+\UnicodeMathSymbol{"023DD}{\underparen }{\mathunder}{bottom parenthesis (mathematical use)}%
+\UnicodeMathSymbol{"023DE}{\overbrace }{\mathover}{top curly bracket (mathematical use)}%
+\UnicodeMathSymbol{"023DF}{\underbrace }{\mathunder}{bottom curly bracket (mathematical use)}%
\UnicodeMathSymbol{"023E0}{\obrbrak }{\mathord}{top tortoise shell bracket (mathematical use)}%
\UnicodeMathSymbol{"023E1}{\ubrbrak }{\mathord}{bottom tortoise shell bracket (mathematical use)}%
\UnicodeMathSymbol{"023E2}{\trapezium }{\mathord}{white trapezium}%
@@ -768,26 +757,13 @@
\UnicodeMathSymbol{"02605}{\bigstar }{\mathord}{star, filled}%
\UnicodeMathSymbol{"02606}{\bigwhitestar }{\mathord}{star, open}%
\UnicodeMathSymbol{"02609}{\astrosun }{\mathord}{sun}%
-\UnicodeMathSymbol{"0260C}{\conjunction }{\mathord}{conjunction}%
-\UnicodeMathSymbol{"0260E}{\phone }{\mathord}{telephone symbol}%
-\UnicodeMathSymbol{"02612}{\XBox }{\mathord}{ballot cross}%
\UnicodeMathSymbol{"02621}{\danger }{\mathord}{dangerous bend (caution sign)}%
-\UnicodeMathSymbol{"02639}{\frownie }{\mathord}{sad smiley}%
-\UnicodeMathSymbol{"0263A}{\smiley }{\mathord}{happy smiley}%
\UnicodeMathSymbol{"0263B}{\blacksmiley }{\mathord}{black smiling face}%
\UnicodeMathSymbol{"0263C}{\sun }{\mathord}{white sun with rays}%
\UnicodeMathSymbol{"0263D}{\rightmoon }{\mathord}{first quarter moon}%
\UnicodeMathSymbol{"0263E}{\leftmoon }{\mathord}{last quarter moon}%
-\UnicodeMathSymbol{"0263F}{\mercury }{\mathord}{mercury}%
\UnicodeMathSymbol{"02640}{\female }{\mathord}{venus, female}%
-\UnicodeMathSymbol{"02641}{\earth }{\mathord}{earth}%
\UnicodeMathSymbol{"02642}{\male }{\mathord}{mars, male}%
-\UnicodeMathSymbol{"02643}{\jupiter }{\mathord}{jupiter}%
-\UnicodeMathSymbol{"02644}{\saturn }{\mathord}{saturn}%
-\UnicodeMathSymbol{"02646}{\neptune }{\mathord}{neptune}%
-\UnicodeMathSymbol{"02647}{\pluto }{\mathord}{pluto}%
-\UnicodeMathSymbol{"02648}{\aries }{\mathord}{aries}%
-\UnicodeMathSymbol{"02649}{\taurus }{\mathord}{taurus}%
\UnicodeMathSymbol{"02660}{\spadesuit }{\mathord}{spades suit symbol}%
\UnicodeMathSymbol{"02661}{\heartsuit }{\mathord}{heart suit symbol}%
\UnicodeMathSymbol{"02662}{\diamondsuit }{\mathord}{diamond suit symbol}%
@@ -813,14 +789,11 @@
\UnicodeMathSymbol{"02687}{\circledtwodots }{\mathord}{white circle with two dots}%
\UnicodeMathSymbol{"02688}{\blackcircledrightdot }{\mathord}{black circle with white dot right}%
\UnicodeMathSymbol{"02689}{\blackcircledtwodots }{\mathord}{black circle with two white dots}%
-\UnicodeMathSymbol{"026A0}{\triangleexclam }{\mathord}{warning sign}%
\UnicodeMathSymbol{"026A5}{\Hermaphrodite }{\mathord}{male and female sign}%
\UnicodeMathSymbol{"026AA}{\mdwhtcircle }{\mathord}{medium white circle}%
\UnicodeMathSymbol{"026AB}{\mdblkcircle }{\mathord}{medium black circle}%
\UnicodeMathSymbol{"026AC}{\mdsmwhtcircle }{\mathord}{medium small white circle}%
\UnicodeMathSymbol{"026B2}{\neuter }{\mathord}{neuter}%
-\UnicodeMathSymbol{"02702}{\scissors }{\mathord}{scissors, solid open}%
-\UnicodeMathSymbol{"02709}{\envelope }{\mathord}{envelope}%
\UnicodeMathSymbol{"02713}{\checkmark }{\mathord}{tick, check mark}%
\UnicodeMathSymbol{"02720}{\maltese }{\mathord}{maltese cross}%
\UnicodeMathSymbol{"0272A}{\circledstar }{\mathord}{circled white star}%
@@ -1468,7 +1441,6 @@
\UnicodeMathSymbol{"03018}{\Lbrbrak }{\mathopen}{left white tortoise shell bracket}%
\UnicodeMathSymbol{"03019}{\Rbrbrak }{\mathclose}{right white tortoise shell bracket}%
\UnicodeMathSymbol{"03030}{\hzigzag }{\mathord}{zigzag}%
-\UnicodeMathSymbol{"0306E}{\hiraganano }{\mathord}{hiragana letter no}%
\UnicodeMathSymbol{"1D400}{\mbfA }{\mathalpha}{mathematical bold capital a}%
\UnicodeMathSymbol{"1D401}{\mbfB }{\mathalpha}{mathematical bold capital b}%
\UnicodeMathSymbol{"1D402}{\mbfC }{\mathalpha}{mathematical bold capital c}%
@@ -1521,7 +1493,7 @@
\UnicodeMathSymbol{"1D431}{\mbfx }{\mathalpha}{mathematical bold small x}%
\UnicodeMathSymbol{"1D432}{\mbfy }{\mathalpha}{mathematical bold small y}%
\UnicodeMathSymbol{"1D433}{\mbfz }{\mathalpha}{mathematical bold small z}%
-\UnicodeMathSymbol{"1D434}{\mitA }{\mathalpha}{mathematical italic capital a`25}%
+\UnicodeMathSymbol{"1D434}{\mitA }{\mathalpha}{mathematical italic capital a}%
\UnicodeMathSymbol{"1D435}{\mitB }{\mathalpha}{mathematical italic capital b}%
\UnicodeMathSymbol{"1D436}{\mitC }{\mathalpha}{mathematical italic capital c}%
\UnicodeMathSymbol{"1D437}{\mitD }{\mathalpha}{mathematical italic capital d}%
diff --git a/Master/texmf-dist/tex/latex/unicode-math/unicode-math.sty b/Master/texmf-dist/tex/latex/unicode-math/unicode-math.sty
index 3e86a619ba1..dc8c72ececc 100644
--- a/Master/texmf-dist/tex/latex/unicode-math/unicode-math.sty
+++ b/Master/texmf-dist/tex/latex/unicode-math/unicode-math.sty
@@ -4,7 +4,9 @@
%%
%% The original source files were:
%%
-%% unicode-math.dtx (with options: `package')
+%% unicode-math.dtx (with options: `preamble')
+%% unicode-math.dtx (with options: `msg')
+%% unicode-math.dtx (with options: `package,stix')
%% Copyright 2006-2010 by Will Robertson <will.robertson@latex-project.org>
%%
%% This package is free software and may be redistributed and/or modified under
@@ -13,7 +15,7 @@
%%
%% This work is "author-maintained" by Will Robertson.
\ProvidesPackage{unicode-math}
- [2010/06/03 v0.5 Unicode maths in XeLaTeX]
+ [2010/07/14 v0.5a Unicode maths in XeLaTeX]
\usepackage{ifxetex,ifluatex}
\ifxetex\else\ifluatex\else
\PackageError{unicode-math}{%
@@ -25,6 +27,7 @@
\RequirePackage{xparse}[2009/08/31]
\RequirePackage{l3keys2e}
\RequirePackage{fontspec}[2010/05/18]
+\RequirePackage{catchfile}
\ExplSyntaxOn
\@ifclassloaded{memoir}{
\cs_set_eq:NN \um_after_pkg:nn \AtEndPackage
@@ -95,6 +98,43 @@
\um_cs_compat:n {mathaccent}
\um_cs_compat:n {delimiter}
\cs_generate_variant:Nn \fontspec_select:nn {x}
+\cs_new:Npn \um_warning:n { \msg_warning:nn {unicode-math} }
+\cs_new:Npn \um_trace:n { \msg_trace:nn {unicode-math} }
+\cs_new:Npn \um_trace:nx { \msg_trace:nnx {unicode-math} }
+\msg_new:nnn {unicode-math} {maths-feature-only}
+{
+ The~ '#1'~ font~ feature~ can~ only~ be~ used~ for~ maths~ fonts.
+}
+\msg_new:nnn {unicode-math} {disable-beamer}
+{
+ Disabling~ beamer's~ math~ setup.\\
+ Please~ load~ beamer~ with~ the~ [professionalfonts]~ class~ option.
+}
+\msg_new:nnn {unicode-math} {no-tfrac}
+{
+ Small~ fraction~ command~ \protect\tfrac\ not~ defined.\\
+ Load~ amsmath~ or~ define~ it~ manually~ before~ loading~ unicode-math.
+}
+\msg_new:nnn {unicode-math} {default-math-font}
+{
+ Defining~ the~ default~ maths~ font~ as~ '#1'.
+}
+\msg_new:nnn {unicode-math} {setup-implicit}
+{
+ Setup~ alphabets:~ implicit~ mode.
+}
+\msg_new:nnn {unicode-math} {setup-explicit}
+{
+ Setup~ alphabets:~ explicit~ mode.
+}
+\msg_new:nnn {unicode-math} {alph-initialise}
+{
+ Initialising~ \@backslashchar math#1.
+}
+\msg_new:nnn {unicode-math} {setup-alph}
+{
+ Setup~ alphabet:~ #1.
+}
\cs_new:Npn \usv_set:nnn #1#2#3 {
\tl_set:cn { \um_to_usv:nn {#1}{#2} } {#3}
}
@@ -112,6 +152,7 @@
\usv_set:nnn {bb}{Latin}{"1D538}
\usv_set:nnn {bb}{latin}{"1D552}
\usv_set:nnn {scr}{Latin}{"1D49C}
+\usv_set:nnn {cal}{Latin}{"1D49C}
\usv_set:nnn {scr}{latin}{"1D4B6}
\usv_set:nnn {frak}{Latin}{"1D504}
\usv_set:nnn {frak}{latin}{"1D51E}
@@ -141,6 +182,7 @@
\usv_set:nnn {bffrak}{Latin}{"1D56C}
\usv_set:nnn {bffrak}{latin}{"1D586}
\usv_set:nnn {bfscr}{Latin}{"1D4D0}
+\usv_set:nnn {bfcal}{Latin}{"1D4D0}
\usv_set:nnn {bfscr}{latin}{"1D4EA}
\usv_set:nnn {bfsf}{num}{"1D7EC}
\usv_set:nnn {bfsfup}{num}{"1D7EC}
@@ -314,11 +356,191 @@
\usv_set:nnn {scr}{e}{"212F}
\usv_set:nnn {scr}{g}{"210A}
\usv_set:nnn {scr}{o}{"2134}
+\usv_set:nnn {cal}{B}{"212C}
+\usv_set:nnn {cal}{E}{"2130}
+\usv_set:nnn {cal}{F}{"2131}
+\usv_set:nnn {cal}{H}{"210B}
+\usv_set:nnn {cal}{I}{"2110}
+\usv_set:nnn {cal}{L}{"2112}
+\usv_set:nnn {cal}{M}{"2133}
+\usv_set:nnn {cal}{R}{"211B}
\usv_set:nnn {frak}{C}{"212D}
\usv_set:nnn {frak}{H}{"210C}
\usv_set:nnn {frak}{I}{"2111}
\usv_set:nnn {frak}{R}{"211C}
\usv_set:nnn {frak}{Z}{"2128}
+\usv_set:nnn {stixsfup}{partial}{"E17C}
+\usv_set:nnn {stixsfup}{Greek}{"E17D}
+\usv_set:nnn {stixsfup}{greek}{"E196}
+\usv_set:nnn {stixsfup}{varTheta}{"E18E}
+\usv_set:nnn {stixsfup}{varepsilon}{"E1AF}
+\usv_set:nnn {stixsfup}{vartheta}{"E1B0}
+\usv_set:nnn {stixsfup}{varkappa}{0000} % ???
+\usv_set:nnn {stixsfup}{varphi}{"E1B1}
+\usv_set:nnn {stixsfup}{varrho}{"E1B2}
+\usv_set:nnn {stixsfup}{varpi}{"E1B3}
+\usv_set:nnn {stixupslash}{Greek}{"E2FC}
+\usv_set:nnn {stixbbit}{A}{"E154}
+\usv_set:nnn {stixbbit}{B}{"E155}
+\usv_set:nnn {stixbbit}{E}{"E156}
+\usv_set:nnn {stixbbit}{F}{"E157}
+\usv_set:nnn {stixbbit}{G}{"E158}
+\usv_set:nnn {stixbbit}{I}{"E159}
+\usv_set:nnn {stixbbit}{J}{"E15A}
+\usv_set:nnn {stixbbit}{K}{"E15B}
+\usv_set:nnn {stixbbit}{L}{"E15C}
+\usv_set:nnn {stixbbit}{M}{"E15D}
+\usv_set:nnn {stixbbit}{O}{"E15E}
+\usv_set:nnn {stixbbit}{S}{"E15F}
+\usv_set:nnn {stixbbit}{T}{"E160}
+\usv_set:nnn {stixbbit}{U}{"E161}
+\usv_set:nnn {stixbbit}{V}{"E162}
+\usv_set:nnn {stixbbit}{W}{"E163}
+\usv_set:nnn {stixbbit}{X}{"E164}
+\usv_set:nnn {stixbbit}{Y}{"E165}
+\usv_set:nnn {stixbbit}{a}{"E166}
+\usv_set:nnn {stixbbit}{b}{"E167}
+\usv_set:nnn {stixbbit}{c}{"E168}
+\usv_set:nnn {stixbbit}{f}{"E169}
+\usv_set:nnn {stixbbit}{g}{"E16A}
+\usv_set:nnn {stixbbit}{h}{"E16B}
+\usv_set:nnn {stixbbit}{k}{"E16C}
+\usv_set:nnn {stixbbit}{l}{"E16D}
+\usv_set:nnn {stixbbit}{m}{"E16E}
+\usv_set:nnn {stixbbit}{n}{"E16F}
+\usv_set:nnn {stixbbit}{o}{"E170}
+\usv_set:nnn {stixbbit}{p}{"E171}
+\usv_set:nnn {stixbbit}{q}{"E172}
+\usv_set:nnn {stixbbit}{r}{"E173}
+\usv_set:nnn {stixbbit}{s}{"E174}
+\usv_set:nnn {stixbbit}{t}{"E175}
+\usv_set:nnn {stixbbit}{u}{"E176}
+\usv_set:nnn {stixbbit}{v}{"E177}
+\usv_set:nnn {stixbbit}{w}{"E178}
+\usv_set:nnn {stixbbit}{x}{"E179}
+\usv_set:nnn {stixbbit}{y}{"E17A}
+\usv_set:nnn {stixbbit}{z}{"E17B}
+\usv_set:nnn {stixsfit}{Numerals}{"E1B4}
+\usv_set:nnn {stixsfit}{partial}{"E1BE}
+\usv_set:nnn {stixsfit}{Greek}{"E1BF}
+\usv_set:nnn {stixsfit}{greek}{"E1D8}
+\usv_set:nnn {stixsfit}{varTheta}{"E1D0}
+\usv_set:nnn {stixsfit}{varepsilon}{"E1F1}
+\usv_set:nnn {stixsfit}{vartheta}{"E1F2}
+\usv_set:nnn {stixsfit}{varkappa}{0000} % ???
+\usv_set:nnn {stixsfit}{varphi}{"E1F3}
+\usv_set:nnn {stixsfit}{varrho}{"E1F4}
+\usv_set:nnn {stixsfit}{varpi}{"E1F5}
+\usv_set:nnn {stixcal}{Latin}{"E22D}
+\usv_set:nnn {stixcal}{num}{"E262}
+\usv_set:nnn {scr}{num}{48}
+\usv_set:nnn {it}{num}{48}
+\usv_set:nnn {stixsfitslash}{Latin}{"E294}
+\usv_set:nnn {stixsfitslash}{latin}{"E2C8}
+\usv_set:nnn {stixsfitslash}{greek}{"E32C}
+\usv_set:nnn {stixsfitslash}{varepsilon}{"E37A}
+\usv_set:nnn {stixsfitslash}{vartheta}{"E35E}
+\usv_set:nnn {stixsfitslash}{varkappa}{"E374}
+\usv_set:nnn {stixsfitslash}{varphi}{"E360}
+\usv_set:nnn {stixsfitslash}{varrho}{"E376}
+\usv_set:nnn {stixsfitslash}{varpi}{"E362}
+\usv_set:nnn {stixsfitslash}{digamma}{"E36A}
+\usv_set:nnn {stixbfupslash}{Greek}{"E2FD}
+\usv_set:nnn {stixbfupslash}{Digamma}{"E369}
+\usv_set:nnn {stixbfbb}{A}{"E38A}
+\usv_set:nnn {stixbfbb}{B}{"E38B}
+\usv_set:nnn {stixbfbb}{E}{"E38D}
+\usv_set:nnn {stixbfbb}{F}{"E38E}
+\usv_set:nnn {stixbfbb}{G}{"E38F}
+\usv_set:nnn {stixbfbb}{I}{"E390}
+\usv_set:nnn {stixbfbb}{J}{"E391}
+\usv_set:nnn {stixbfbb}{K}{"E392}
+\usv_set:nnn {stixbfbb}{L}{"E393}
+\usv_set:nnn {stixbfbb}{M}{"E394}
+\usv_set:nnn {stixbfbb}{O}{"E395}
+\usv_set:nnn {stixbfbb}{S}{"E396}
+\usv_set:nnn {stixbfbb}{T}{"E397}
+\usv_set:nnn {stixbfbb}{U}{"E398}
+\usv_set:nnn {stixbfbb}{V}{"E399}
+\usv_set:nnn {stixbfbb}{W}{"E39A}
+\usv_set:nnn {stixbfbb}{X}{"E39B}
+\usv_set:nnn {stixbfbb}{Y}{"E39C}
+\usv_set:nnn {stixbfbb}{a}{"E39D}
+\usv_set:nnn {stixbfbb}{b}{"E39E}
+\usv_set:nnn {stixbfbb}{c}{"E39F}
+\usv_set:nnn {stixbfbb}{f}{"E3A2}
+\usv_set:nnn {stixbfbb}{g}{"E3A3}
+\usv_set:nnn {stixbfbb}{h}{"E3A4}
+\usv_set:nnn {stixbfbb}{k}{"E3A7}
+\usv_set:nnn {stixbfbb}{l}{"E3A8}
+\usv_set:nnn {stixbfbb}{m}{"E3A9}
+\usv_set:nnn {stixbfbb}{n}{"E3AA}
+\usv_set:nnn {stixbfbb}{o}{"E3AB}
+\usv_set:nnn {stixbfbb}{p}{"E3AC}
+\usv_set:nnn {stixbfbb}{q}{"E3AD}
+\usv_set:nnn {stixbfbb}{r}{"E3AE}
+\usv_set:nnn {stixbfbb}{s}{"E3AF}
+\usv_set:nnn {stixbfbb}{t}{"E3B0}
+\usv_set:nnn {stixbfbb}{u}{"E3B1}
+\usv_set:nnn {stixbfbb}{v}{"E3B2}
+\usv_set:nnn {stixbfbb}{w}{"E3B3}
+\usv_set:nnn {stixbfbb}{x}{"E3B4}
+\usv_set:nnn {stixbfbb}{y}{"E3B5}
+\usv_set:nnn {stixbfbb}{z}{"E3B6}
+\usv_set:nnn {stixbfsfup}{Numerals}{"E3B7}
+\usv_set:nnn {stixbfsfit}{Numerals}{"E1F6}
+\usv_set:nnn {stixbfbbit}{A}{"E200}
+\usv_set:nnn {stixbfbbit}{B}{"E201}
+\usv_set:nnn {stixbfbbit}{E}{"E203}
+\usv_set:nnn {stixbfbbit}{F}{"E204}
+\usv_set:nnn {stixbfbbit}{G}{"E205}
+\usv_set:nnn {stixbfbbit}{I}{"E206}
+\usv_set:nnn {stixbfbbit}{J}{"E207}
+\usv_set:nnn {stixbfbbit}{K}{"E208}
+\usv_set:nnn {stixbfbbit}{L}{"E209}
+\usv_set:nnn {stixbfbbit}{M}{"E20A}
+\usv_set:nnn {stixbfbbit}{O}{"E20B}
+\usv_set:nnn {stixbfbbit}{S}{"E20C}
+\usv_set:nnn {stixbfbbit}{T}{"E20D}
+\usv_set:nnn {stixbfbbit}{U}{"E20E}
+\usv_set:nnn {stixbfbbit}{V}{"E20F}
+\usv_set:nnn {stixbfbbit}{W}{"E210}
+\usv_set:nnn {stixbfbbit}{X}{"E211}
+\usv_set:nnn {stixbfbbit}{Y}{"E212}
+\usv_set:nnn {stixbfbbit}{a}{"E213}
+\usv_set:nnn {stixbfbbit}{b}{"E214}
+\usv_set:nnn {stixbfbbit}{c}{"E215}
+\usv_set:nnn {stixbfbbit}{e}{"E217}
+\usv_set:nnn {stixbfbbit}{f}{"E218}
+\usv_set:nnn {stixbfbbit}{g}{"E219}
+\usv_set:nnn {stixbfbbit}{h}{"E21A}
+\usv_set:nnn {stixbfbbit}{k}{"E21D}
+\usv_set:nnn {stixbfbbit}{l}{"E21E}
+\usv_set:nnn {stixbfbbit}{m}{"E21F}
+\usv_set:nnn {stixbfbbit}{n}{"E220}
+\usv_set:nnn {stixbfbbit}{o}{"E221}
+\usv_set:nnn {stixbfbbit}{p}{"E222}
+\usv_set:nnn {stixbfbbit}{q}{"E223}
+\usv_set:nnn {stixbfbbit}{r}{"E224}
+\usv_set:nnn {stixbfbbit}{s}{"E225}
+\usv_set:nnn {stixbfbbit}{t}{"E226}
+\usv_set:nnn {stixbfbbit}{u}{"E227}
+\usv_set:nnn {stixbfbbit}{v}{"E228}
+\usv_set:nnn {stixbfbbit}{w}{"E229}
+\usv_set:nnn {stixbfbbit}{x}{"E22A}
+\usv_set:nnn {stixbfbbit}{y}{"E22B}
+\usv_set:nnn {stixbfbbit}{z}{"E22C}
+\usv_set:nnn {stixbfcal}{Latin}{"E247}
+\usv_set:nnn {stixbfitslash}{Latin}{"E295}
+\usv_set:nnn {stixbfitslash}{latin}{"E2C9}
+\usv_set:nnn {stixbfitslash}{greek}{"E32D}
+\usv_set:nnn {stixsfitslash}{varepsilon}{"E37B}
+\usv_set:nnn {stixsfitslash}{vartheta}{"E35F}
+\usv_set:nnn {stixsfitslash}{varkappa}{"E375}
+\usv_set:nnn {stixsfitslash}{varphi}{"E361}
+\usv_set:nnn {stixsfitslash}{varrho}{"E377}
+\usv_set:nnn {stixsfitslash}{varpi}{"E363}
+\usv_set:nnn {stixsfitslash}{digamma}{"E36B}
\DeclareDocumentCommand \unimathsetup {m} {
\clist_clear:N \l_um_unknown_keys_clist
\keys_set:nn {unicode-math} {#1}
@@ -563,25 +785,32 @@
\mathopen {
\tl_if_in:NnTF \l_um_radicals_tl {#2} {
\cs_gset:cpx {\cs_to_str:N #2 sign} { \um_radical:nn {#1} {#4} }
+ \tl_set:cn {l_um_radical_\cs_to_str:N #2_tl} {\use:c{sym #1}~ #4}
}{
- \um_set_delcode:n {#4}
+ \um_set_delcode:nnn {#1} {#4} {#4}
\um_set_mathcode:nnn {#4} \mathopen {#1}
\cs_gset:Npx #2 { \um_delimiter:Nnn \mathopen {#1} {#4} }
}
}
\mathclose {
- \um_set_delcode:n {#4}
+ \um_set_delcode:nnn {#1} {#4} {#4}
\um_set_mathcode:nnn {#4} \mathclose {#1}
\cs_gset:Npx #2 { \um_delimiter:Nnn \mathclose {#1} {#4} }
}
+ \mathaccent {
+ \cs_gset:Npx #2 { \um_accent:Nnn #3 {#1} {#4} }
+ }
\mathfence {
\um_set_mathcode:nnn {#4} {#3} {#1}
- \um_set_delcode:n {#4}
+ \um_set_delcode:nnn {#1} {#4} {#4}
\cs_gset:cpx {l \cs_to_str:N #2} { \um_delimiter:Nnn \mathopen {#1} {#4} }
\cs_gset:cpx {r \cs_to_str:N #2} { \um_delimiter:Nnn \mathclose {#1} {#4} }
}
- \mathaccent {
- \cs_gset:Npx #2 { \um_accent:Nnn #3 {#1} {#4} }
+ \mathover { % LuaTeX only
+ \cs_set:Npn #2 ##1 { \mathop { \um_overbrace:nnn {#1} {#4} {##1} } \limits }
+ }
+ \mathunder { % LuaTeX only
+ \cs_set:Npn #2 ##1 { \mathop { \um_underbrace:nnn {#1} {#4} {##1} } \limits }
}
}{
\um_set_mathcode:nnn {#4} {#3} {#1}
@@ -611,6 +840,9 @@
\Umathchardef #1 =
\mathchar@type#2 \csname sym#3\endcsname \intexpr_eval:n {#4} \scan_stop:
}
+\cs_new:Npn \um_set_delcode:nnn #1#2#3 {
+ \Udelcode#2 = \csname sym#1\endcsname #3
+}
\cs_new:Npn \um_radical:nn #1#2 {
\Uradical \csname sym#1\endcsname #2 \scan_stop:
}
@@ -621,6 +853,12 @@
\Umathaccent \mathchar@type#1 \csname sym#2\endcsname #3 \scan_stop:
}
\cs_generate_variant:Nn \um_set_mathchar:NNnn {c}
+\cs_set:Npn \um_overbrace:nnn #1#2#3 {
+ \luatexUdelimiterover \csname sym#1\endcsname #2 {#3}
+}
+\cs_set:Npn \um_underbrace:nnn #1#2#3 {
+ \luatexUdelimiterunder \csname sym#1\endcsname #2 {#3}
+}
\cs_new:Npn \char_gmake_mathactive:N #1 {
\global\mathcode `#1 = "8000 \scan_stop:
}
@@ -660,24 +898,25 @@
\bool_if:NTF \l_um_init_bool {
\tl_set:Nn \um_symfont_tl {um_allsym}
\msg_trace:nnx {unicode-math} {default-math-font} {#2}
- \cs_set_eq:NN \UnicodeMathSymbol \um_process_symbol_noparse:nnnn
+ \cs_set_eq:NN \_um_sym:nnn \um_process_symbol_noparse:nnn
\cs_set_eq:NN \um_set_mathalphabet_char:Nnn \um_mathmap_noparse:Nnn
\cs_set_eq:NN \um_remap_symbol:nnn \um_remap_symbol_noparse:nnn
\cs_set_eq:NN \um_maybe_init_alphabet:n \um_init_alphabet:n
\cs_set_eq:NN \um_map_char_single:nn \um_map_char_noparse:nn
+ \cs_set_eq:NN \um_assign_delcode:nn \um_assign_delcode_noparse:nn
}{
\int_incr:N \g_um_fam_int
\tl_set:Nx \um_symfont_tl {um_fam\int_use:N\g_um_fam_int}
- \cs_set_eq:NN \UnicodeMathSymbol \um_process_symbol_parse:nnnn
+ \cs_set_eq:NN \_um_sym:nnn \um_process_symbol_parse:nnn
\cs_set_eq:NN \um_set_mathalphabet_char:Nnn \um_mathmap_parse:Nnn
\cs_set_eq:NN \um_remap_symbol:nnn \um_remap_symbol_parse:nnn
\cs_set_eq:NN \um_maybe_init_alphabet:n \use_none:n
\cs_set_eq:NN \um_map_char_single:nn \um_map_char_parse:nn
+ \cs_set_eq:NN \um_assign_delcode:nn \um_assign_delcode_parse:nn
}
\DeclareSymbolFont{\um_symfont_tl}
{\encodingdefault}{\zf@family}{\mddefault}{\updefault}
- \@input{unicode-math-table.tex}
- \cs_set_eq:NN \UnicodeMathSymbol \use_none:nnnn
+ \um_input_math_symbol_table:
\um_remap_symbols:
\um_setup_mathactives:
\um_setup_delcodes:
@@ -688,6 +927,7 @@
\bool_set_true:N \l_um_fontspec_feature_bool
\fontspec_select:xn
{
+ \luatex_if_engine:T { Renderer = Basic, }
BoldFont = {}, ItalicFont = {},
Script = Math,
SizeFeatures = {
@@ -707,12 +947,12 @@
\tl_set_eq:NN \l_um_font \zf@basefont
\bool_set_false:N \l_um_fontspec_feature_bool
}
-\cs_set:Npn \um_process_symbol_noparse:nnnn #1#2#3#4 {
+\cs_set:Npn \um_process_symbol_noparse:nnn #1#2#3 {
\um_set_mathsymbol:nNNn {\um_symfont_tl} #2#3{#1}
}
-\cs_set:Npn \um_process_symbol_parse:nnnn #1#2#3#4 {
+\cs_set:Npn \um_process_symbol_parse:nnn #1#2#3 {
\um@parse@term{#1}{#2}{#3}{
- \um_process_symbol_noparse:nnnn{#1}{#2}{#3}{#4}
+ \um_process_symbol_noparse:nnn {#1}{#2}{#3}
}
}
\cs_new:Npn \um_remap_symbols: {
@@ -747,58 +987,51 @@
\um_set_mathchar:NNnn #2 #3 {\um_symfont_tl} {#1}
\char_gmake_mathactive:n {#1}
}
-\cs_new:Npn \um_setup_delcodes: {
- \um_set_delcode:nn {`\/} {\g_um_slash_delimiter_usv}
- \um_set_delcode:nn {"2044} {\g_um_slash_delimiter_usv} % fracslash
- \um_set_delcode:nn {"2215} {\g_um_slash_delimiter_usv} % divslash
- \um_set_delcode:n {"005C} % backslash
- \um_set_delcode:nn {`\<} {"27E8} % angle brackets with ascii notation
- \um_set_delcode:nn {`\>} {"27E9} % angle brackets with ascii notation
- \um_set_delcode:n {"2191} % up arrow
- \um_set_delcode:n {"2193} % down arrow
- \um_set_delcode:n {"2195} % updown arrow
- \um_set_delcode:n {"219F} % up arrow twohead
- \um_set_delcode:n {"21A1} % down arrow twohead
- \um_set_delcode:n {"21A5} % up arrow from bar
- \um_set_delcode:n {"21A7} % down arrow from bar
- \um_set_delcode:n {"21A8} % updown arrow from bar
- \um_set_delcode:n {"21BE} % up harpoon right
- \um_set_delcode:n {"21BF} % up harpoon left
- \um_set_delcode:n {"21C2} % down harpoon right
- \um_set_delcode:n {"21C3} % down harpoon left
- \um_set_delcode:n {"21C5} % arrows up down
- \um_set_delcode:n {"21F5} % arrows down up
- \um_set_delcode:n {"21C8} % arrows up up
- \um_set_delcode:n {"21CA} % arrows down down
- \um_set_delcode:n {"21D1} % double up arrow
- \um_set_delcode:n {"21D3} % double down arrow
- \um_set_delcode:n {"21D5} % double updown arrow
- \um_set_delcode:n {"21DE} % up arrow double stroke
- \um_set_delcode:n {"21DF} % down arrow double stroke
- \um_set_delcode:n {"21E1} % up arrow dashed
- \um_set_delcode:n {"21E3} % down arrow dashed
- \um_set_delcode:n {"21E7} % up white arrow
- \um_set_delcode:n {"21E9} % down white arrow
- \um_set_delcode:n {"21EA} % up white arrow from bar
- \um_set_delcode:n {"21F3} % updown white arrow
-}
-\cs_new:Npn \um_set_delcode:nn #1#2 {
- \Udelcode#1 = \csname sym\um_symfont_tl\endcsname #2
-}
-\cs_new:Npn \um_set_delcode:n #1 {
- \Udelcode#1 = \csname sym\um_symfont_tl\endcsname #1
+\cs_new:Npn \um_assign_delcode_noparse:nn #1#2 {
+ \um_set_delcode:nnn \um_symfont_tl {#1} {#2}
}
-\cs_set:Npn \um_mathmap_noparse:Nnn #1#2#3 {
- \clist_map_inline:nn {#2} {
- \tl_put_right:cx {um_switchto_\cs_to_str:N #1:} {
- \um_set_mathcode:nnnn{##1}{\mathalpha}{\um_symfont_tl}{#3}
- }
+\cs_new:Npn \um_assign_delcode_parse:nn #1#2 {
+ \um@parse@term {#2}{\@nil}{\@nil} {
+ \um_assign_delcode_noparse:nn {#1} {#2}
}
}
-\cs_set:Npn \um_mathmap_parse:Nnn #1#2#3 {
- \clist_if_in:NnT \l_um_char_num_range_clist {#3} {
- \um_mathmap_noparse:Nnn {#1}{#2}{#3}
- }
+\cs_new:Npn \um_assign_delcode:n #1 {
+ \um_assign_delcode:nn {#1} {#1}
+}
+\cs_new:Npn \um_setup_delcodes: {
+ \um_assign_delcode:nn {`\/} {\g_um_slash_delimiter_usv}
+ \um_assign_delcode:nn {"2044} {\g_um_slash_delimiter_usv} % fracslash
+ \um_assign_delcode:nn {"2215} {\g_um_slash_delimiter_usv} % divslash
+ \um_assign_delcode:n {"005C} % backslash
+ \um_assign_delcode:nn {`\<} {"27E8} % angle brackets with ascii notation
+ \um_assign_delcode:nn {`\>} {"27E9} % angle brackets with ascii notation
+ \um_assign_delcode:n {"2191} % up arrow
+ \um_assign_delcode:n {"2193} % down arrow
+ \um_assign_delcode:n {"2195} % updown arrow
+ \um_assign_delcode:n {"219F} % up arrow twohead
+ \um_assign_delcode:n {"21A1} % down arrow twohead
+ \um_assign_delcode:n {"21A5} % up arrow from bar
+ \um_assign_delcode:n {"21A7} % down arrow from bar
+ \um_assign_delcode:n {"21A8} % updown arrow from bar
+ \um_assign_delcode:n {"21BE} % up harpoon right
+ \um_assign_delcode:n {"21BF} % up harpoon left
+ \um_assign_delcode:n {"21C2} % down harpoon right
+ \um_assign_delcode:n {"21C3} % down harpoon left
+ \um_assign_delcode:n {"21C5} % arrows up down
+ \um_assign_delcode:n {"21F5} % arrows down up
+ \um_assign_delcode:n {"21C8} % arrows up up
+ \um_assign_delcode:n {"21CA} % arrows down down
+ \um_assign_delcode:n {"21D1} % double up arrow
+ \um_assign_delcode:n {"21D3} % double down arrow
+ \um_assign_delcode:n {"21D5} % double updown arrow
+ \um_assign_delcode:n {"21DE} % up arrow double stroke
+ \um_assign_delcode:n {"21DF} % down arrow double stroke
+ \um_assign_delcode:n {"21E1} % up arrow dashed
+ \um_assign_delcode:n {"21E3} % down arrow dashed
+ \um_assign_delcode:n {"21E7} % up white arrow
+ \um_assign_delcode:n {"21E9} % down white arrow
+ \um_assign_delcode:n {"21EA} % up white arrow from bar
+ \um_assign_delcode:n {"21F3} % updown white arrow
}
\tl_new:Nn \l_um_nolimits_tl {
\int\iint\iiint\iiiint\oint\oiint\oiiint
@@ -825,12 +1058,12 @@
}
}
}
-\um@zf@feature{ScriptStyle}{
- \zf@update@ff{+ssty=0}
-}
-\um@zf@feature{ScriptScriptStyle}{
- \zf@update@ff{+ssty=1}
-}
+\xetex_or_luatex:nnn { \um@zf@feature {ScriptStyle} }
+ { \zf@update@ff{+ssty=0} }
+ { \zf@update@ff{+ssty=1} }
+\xetex_or_luatex:nnn { \um@zf@feature {ScriptScriptStyle} }
+ { \zf@update@ff{+ssty=1} }
+ { \zf@update@ff{+ssty=2} }
\keys_define:nn {unicode-math}
{
script-features .tl_set:N = \l_um_script_features_tl ,
@@ -869,7 +1102,7 @@
\exp_after:wN \um_split_slash:w \l_um_tmpa_tl \q_nil
}
\tl_if_empty:NT \l_um_tmpc_tl { \tl_set_eq:NN \l_um_tmpc_tl \l_um_tmpa_tl }
- \seq_if_in:NVTF \g_um_mathalph_seq \l_um_tmpa_tl {
+ \seq_if_in:NVTF \g_um_mathstyles_seq \l_um_tmpa_tl {
\prg_return_true:
}{
\prg_return_false:
@@ -877,7 +1110,9 @@
}
\cs_set:Npn \um_split_arrow:w #1->#2 \q_nil {
\tl_set:Nn \l_um_tmpa_tl {#1}
- \tl_set:Nn \l_um_tmpc_tl {#2}
+ \tl_if_single:nTF {#2}
+ { \tl_set:Nn \l_um_tmpc_tl {#2} }
+ { \exp_args:NNc \tl_set:Nn \l_um_tmpc_tl {math#2} }
}
\cs_set:Npn \um_split_slash:w #1/#2 \q_nil {
\tl_set:Nn \l_um_tmpa_tl {#1}
@@ -953,19 +1188,38 @@
\bool_if:NTF \g_um_texgreek_bool \mitphi \mitvarphi
}
}
-\seq_new:N \g_um_mathalph_seq
+\cs_new:Npn \um_new_mathstyle:N #1 {
+ \um_prepare_mathstyle:f {\exp_after:wN \use_none:nnnnn \token_to_str:N #1}
+ \seq_put_right:Nn \g_um_mathstyles_seq {#1}
+}
+\seq_new:N \g_um_default_mathalph_seq
+\seq_new:N \g_um_mathstyles_seq
\AtEndOfPackage{
- \tl_map_inline:nn {
- \mathup\mathit\mathbb\mathbbit
- \mathscr\mathfrak\mathtt
- \mathsf\mathsfup\mathsfit
- \mathbf\mathbfup\mathbfit
- \mathbfscr\mathbffrak
- \mathbfsf\mathbfsfup\mathbfsfit
- }{
- \seq_put_right:Nn \g_um_mathalph_seq {#1}
- \um_prepare_mathstyle:f {\exp_after:wN \use_none:nnnnn \token_to_str:N #1}
- }
+\clist_map_inline:nn {
+ {\mathup } {latin,Latin,greek,Greek,num,misc} {\mathup } ,
+ {\mathit } {latin,Latin,greek,Greek,misc} {\mathit } ,
+ {\mathbb } {latin,Latin,num,misc} {\mathbb } ,
+ {\mathbbit } {misc} {\mathbbit } ,
+ {\mathscr } {latin,Latin} {\mathscr } ,
+ {\mathcal } {Latin} {\mathscr } ,
+ {\mathbfcal } {Latin} {\mathbfscr } ,
+ {\mathfrak } {latin,Latin} {\mathfrak } ,
+ {\mathtt } {latin,Latin,num} {\mathtt } ,
+ {\mathsfup } {latin,Latin,num} {\mathsfup } ,
+ {\mathsfit } {latin,Latin} {\mathsfit } ,
+ {\mathbfup } {latin,Latin,greek,Greek,num,misc} {\mathbfup } ,
+ {\mathbfit } {latin,Latin,greek,Greek,misc} {\mathbfit } ,
+ {\mathbfscr } {latin,Latin} {\mathbfscr } ,
+ {\mathbffrak} {latin,Latin} {\mathbffrak} ,
+ {\mathbfsfup} {latin,Latin,greek,Greek,num,misc} {\mathbfsfup} ,
+ {\mathbfsfit} {latin,Latin,greek,Greek,misc} {\mathbfsfit}
+}{
+ \seq_put_right:Nn \g_um_default_mathalph_seq {#1}
+ \exp_after:wN \um_new_mathstyle:N \use_i:nnn #1
+}
+\um_new_mathstyle:N \mathsf
+\um_new_mathstyle:N \mathbf
+\um_new_mathstyle:N \mathbfsf
}
\cs_new:Npn \um_prepare_mathstyle:n #1 {
\um_init_alphabet:x {#1}
@@ -992,26 +1246,6 @@
\cs_new:Npn \um_maybe_init_alphabet:V {
\exp_args:NV \um_maybe_init_alphabet:n
}
-\seq_new:N \g_um_default_mathalph_seq
-\clist_map_inline:nn {
- {\mathup } {latin,Latin,greek,Greek,num,misc} {\mathup } ,
- {\mathit } {latin,Latin,greek,Greek,misc} {\mathit } ,
- {\mathbb } {latin,Latin,num,misc} {\mathbb } ,
- {\mathbbit } {misc} {\mathbbit } ,
- {\mathscr } {latin,Latin} {\mathscr } ,
- {\mathfrak } {latin,Latin} {\mathfrak } ,
- {\mathtt } {latin,Latin,num} {\mathtt } ,
- {\mathsfup } {latin,Latin,num} {\mathsfup } ,
- {\mathsfit } {latin,Latin} {\mathsfit } ,
- {\mathbfup } {latin,Latin,greek,Greek,num,misc} {\mathbfup } ,
- {\mathbfit } {latin,Latin,greek,Greek,misc} {\mathbfit } ,
- {\mathbfscr } {latin,Latin} {\mathbfscr } ,
- {\mathbffrak} {latin,Latin} {\mathbffrak} ,
- {\mathbfsfup} {latin,Latin,greek,Greek,num,misc} {\mathbfsfup} ,
- {\mathbfsfit} {latin,Latin,greek,Greek,misc} {\mathbfsfit}
-}{
- \seq_put_right:Nn \g_um_default_mathalph_seq {#1}
-}
\seq_new:N \l_um_missing_alph_seq
\cs_new:Npn \um_setup_alphabets: {
\seq_if_empty:NTF \l_um_mathalph_seq {
@@ -1097,6 +1331,27 @@
}
}
\cs_generate_variant:Nn \um_setup_math_alphabet:Nnn {VVV}
+\cs_new:Npn \um_map_char_single:cc { \exp_args:Ncc \um_map_char_single:nn }
+\cs_new:Npn \um_map_char_noparse:nn #1#2 {
+ \um_set_mathcode:nnnn {#1}{\mathalpha}{\um_symfont_tl}{#2}
+}
+\cs_new:Npn \um_map_char_parse:nn #1#2 {
+ \um@parse@term {#1} {\@nil} {\mathalpha} {
+ \um_map_char_noparse:nn {#1}{#2}
+ }
+}
+\cs_new:Npn \um_map_char_single:nnn #1#2#3 {
+ \um_map_char_single:cc { \um_to_usv:nn {#1}{#3} }
+ { \um_to_usv:nn {#2}{#3} }
+}
+\cs_set:Npn \um_map_single:nnn #1#2#3 {
+ \cs_if_exist:cT { \um_to_usv:nn {#3} {#1} }
+ {
+ \clist_map_inline:nn {#2} {
+ \um_map_char_single:nnn {##1} {#3} {#1}
+ }
+ }
+}
\cs_set:Npn \um_map_chars_range:nnn #1#2#3 {
\prg_stepwise_inline:nnnn {0}{1}{#1-1} {
\um_map_char_single:nn {#2+##1}{#3+##1}
@@ -1107,14 +1362,6 @@
\um_map_chars_range:ncc {#1} { \um_to_usv:nn {#2}{#4} }
{ \um_to_usv:nn {#3}{#4} }
}
-\cs_new:Npn \um_map_char_noparse:nn #1#2 {
- \um_set_mathcode:nnnn {#1}{\mathalpha}{\um_symfont_tl}{#2}
-}
-\cs_new:Npn \um_map_char_parse:nn #1#2 {
- \um@parse@term {#1} {\@nil} {\mathalpha} {
- \um_map_char_noparse:nn {#1}{#2}
- }
-}
\cs_set:Npn \um_map_chars_Latin:nn #1#2 {
\clist_map_inline:nn {#1} {
\um_map_chars_range:nnnn {26} {##1} {#2} {Latin}
@@ -1145,25 +1392,35 @@
\cs_set:Npn \um_map_chars_numbers:nn #1#2 {
\um_map_chars_range:nnnn {10} {#1} {#2} {num}
}
-\cs_new:Npn \um_map_char_single:cc { \exp_args:Ncc \um_map_char_single:nn }
-\cs_new:Npn \um_map_char_single:nnn #1#2#3 {
- \um_map_char_single:cc { \um_to_usv:nn {#1}{#3} }
- { \um_to_usv:nn {#2}{#3} }
+\cs_new:Npn \um_set_mathalphabet_char:Ncc {
+ \exp_args:NNcc \um_set_mathalphabet_char:Nnn
}
-\cs_set:Npn \um_map_single:nnn #1#2#3 {
- \cs_if_exist:cT { \um_to_usv:nn {#3} {#1} }
- {
- \clist_map_inline:nn {#2} {
- \um_map_char_single:nnn {##1} {#3} {#1}
+\cs_set:Npn \um_mathmap_noparse:Nnn #1#2#3 {
+ \clist_map_inline:nn {#2} {
+ \tl_put_right:cx {um_switchto_\cs_to_str:N #1:} {
+ \um_set_mathcode:nnnn{##1}{\mathalpha}{\um_symfont_tl}{#3}
}
}
}
+\cs_set:Npn \um_mathmap_parse:Nnn #1#2#3 {
+ \clist_if_in:NnT \l_um_char_num_range_clist {#3} {
+ \um_mathmap_noparse:Nnn {#1}{#2}{#3}
+ }
+}
+\cs_new:Npn \um_set_mathalphabet_char:Nnnn #1#2#3#4 {
+ \um_set_mathalphabet_char:Ncc #1 { \um_to_usv:nn {#2} {#4} }
+ { \um_to_usv:nn {#3} {#4} }
+}
\cs_new:Npn \um_set_mathalph_range:nNnn #1#2#3#4 {
\prg_stepwise_inline:nnnn {0}{1}{#1-1} {
\um_set_mathalphabet_char:Nnn {#2} { ##1 + #3 } { ##1 + #4 }
}
}
\cs_generate_variant:Nn \um_set_mathalph_range:nNnn {nNcc}
+\cs_new:Npn \um_set_mathalph_range:nNnnn #1#2#3#4#5 {
+ \um_set_mathalph_range:nNcc {#1} #2 { \um_to_usv:nn {#3} {#5} }
+ { \um_to_usv:nn {#4} {#5} }
+}
\cs_new:Npn \um_set_mathalphabet_pos:Nnnn #1#2#3#4 {
\cs_if_exist:cT { \um_to_usv:nn {#4}{#2} } {
\clist_map_inline:nn {#3} {
@@ -1204,17 +1461,6 @@
\um_set_mathalphabet_char:Nnnn #1 {##1} {#3} {varpi}
}
}
-\cs_new:Npn \um_set_mathalphabet_char:Ncc {
- \exp_args:NNcc \um_set_mathalphabet_char:Nnn
-}
-\cs_new:Npn \um_set_mathalphabet_char:Nnnn #1#2#3#4 {
- \um_set_mathalphabet_char:Ncc #1 { \um_to_usv:nn {#2} {#4} }
- { \um_to_usv:nn {#3} {#4} }
-}
-\cs_new:Npn \um_set_mathalph_range:nNnnn #1#2#3#4#5 {
- \um_set_mathalph_range:nNcc {#1} #2 { \um_to_usv:nn {#3} {#5} }
- { \um_to_usv:nn {#4} {#5} }
-}
\cs_new:Npn \um_config_up_num:n #1 {
\um_map_chars_numbers:nn {up}{#1}
\um_set_mathalphabet_numbers:Nnn \mathup {up}{#1}
@@ -1393,6 +1639,17 @@
\um_set_mathalphabet_pos:Nnnn \mathscr {g}{up,it}{#1}
\um_set_mathalphabet_pos:Nnnn \mathscr {o}{up,it}{#1}
}
+\cs_new:Npn \um_config_cal_Latin:n #1 {
+ \um_set_mathalphabet_Latin:Nnn \mathcal {up,it}{#1}
+ \um_set_mathalphabet_pos:Nnnn \mathcal {B}{up,it}{#1}
+ \um_set_mathalphabet_pos:Nnnn \mathcal {E}{up,it}{#1}
+ \um_set_mathalphabet_pos:Nnnn \mathcal {F}{up,it}{#1}
+ \um_set_mathalphabet_pos:Nnnn \mathcal {H}{up,it}{#1}
+ \um_set_mathalphabet_pos:Nnnn \mathcal {I}{up,it}{#1}
+ \um_set_mathalphabet_pos:Nnnn \mathcal {L}{up,it}{#1}
+ \um_set_mathalphabet_pos:Nnnn \mathcal {M}{up,it}{#1}
+ \um_set_mathalphabet_pos:Nnnn \mathcal {R}{up,it}{#1}
+}
\cs_new:Npn \um_config_frak_Latin:n #1 {
\um_set_mathalphabet_Latin:Nnn \mathfrak {up,it}{#1}
\um_set_mathalphabet_pos:Nnnn \mathfrak {C}{up,it}{#1}
@@ -1657,6 +1914,9 @@
\cs_new:Npn \um_config_bfscr_latin:n #1 {
\um_set_mathalphabet_latin:Nnn \mathbfscr {up,it}{#1}
}
+\cs_new:Npn \um_config_bfcal_Latin:n #1 {
+ \um_set_mathalphabet_Latin:Nnn \mathbfcal {up,it}{#1}
+}
\cs_new:Npn \um_config_bfsfup_num:n #1 {
\um_set_mathalphabet_numbers:Nnn \mathbfsf {up}{#1}
\um_set_mathalphabet_numbers:Nnn \mathbfsfup {up}{#1}
@@ -1821,6 +2081,25 @@
}
}
}
+\xetex_or_luatex:nnn { \cs_set:Npn \um_symbol_setup: }
+ {
+ \def\mathfence{\mathfence}
+ \def\mathover{\mathover}
+ \def\mathunder{\mathunder}
+ \cs_set:Npn \UnicodeMathSymbol ##1##2##3##4 {
+ \prg_case_tl:Nnn ##3 { \mathover {} \mathunder {} }
+ {
+ \exp_not:n {\_um_sym:nnn{##1}{##2}{##3}}
+ }
+ }
+ }
+ {
+ \cs_set:Npn \UnicodeMathSymbol ##1##2##3##4 {
+ \exp_not:n {\_um_sym:nnn{##1}{##2}{##3}}
+ }
+ }
+\CatchFileEdef \g_um_mathtable_tl {unicode-math-table.tex} {\um_symbol_setup:}
+\cs_new:Npn \um_input_math_symbol_table: {\g_um_mathtable_tl}
\begingroup
\char_make_other:N \^
\cs_gset:Npn \um@scancharlet#1="#2\@nil {
@@ -1849,16 +2128,18 @@
\endgroup
\AtBeginDocument{
\group_begin:
- \char_make_math_superscript:N\^
- \def\UnicodeMathSymbol#1#2#3#4{
+ \char_make_math_superscript:N \^
+ \cs_set:Npn \_um_sym:nnn #1#2#3 {
\bool_if:nF { \cs_if_eq_p:NN #3 \mathaccent ||
\cs_if_eq_p:NN #3 \mathopen ||
- \cs_if_eq_p:NN #3 \mathclose } {
+ \cs_if_eq_p:NN #3 \mathclose ||
+ \cs_if_eq_p:NN #3 \mathover ||
+ \cs_if_eq_p:NN #3 \mathunder } {
\um@scancharlet#2=#1\@nil\ignorespaces
}
}
\char_make_other:N \#
- \@input{unicode-math-table.tex}
+ \um_input_math_symbol_table:
\group_end:
}
\group_begin:
@@ -1871,26 +2152,38 @@
}
}
|group_end:
+\cs_new:Nn \um_arg_i_before_egroup:n {#1\egroup}
+\cs_new:Nn \um_superscript:n {
+ ^\bgroup #1
+ \peek_meaning_remove:NTF ^
+ \um_arg_i_before_egroup:n \egroup
+}
\muskip_new:N \g_um_primekern_muskip
\muskip_gset:Nn \g_um_primekern_muskip { -\thinmuskip/2 }% arbitrary
\int_new:N \l_um_primecount_int
\cs_new:Npn \um_nprimes:Nn #1#2 {
- ^{
- #1
- \prg_replicate:nn {#2-1} { \mskip \g_um_primekern_muskip #1 }
- }
+ \um_superscript:n {
+ #1
+ \prg_replicate:nn {#2-1} { \mskip \g_um_primekern_muskip #1 }
+ }
}
\cs_new:Npn \um_nprimes_select:nn #1#2 {
\prg_case_int:nnn {#2}{
- {1} { ^{#1} }
+ {1} { \um_superscript:n {#1} }
{2} {
- \um_glyph_if_exist:nTF {"2033} { ^{\um_prime_double_mchar} } {\um_nprimes:Nn #1 {#2}}
+ \um_glyph_if_exist:nTF {"2033}
+ { \um_superscript:n {\um_prime_double_mchar} }
+ { \um_nprimes:Nn #1 {#2} }
}
{3} {
- \um_glyph_if_exist:nTF {"2034} {^{\um_prime_triple_mchar} } {\um_nprimes:Nn #1 {#2}}
+ \um_glyph_if_exist:nTF {"2034}
+ { \um_superscript:n {\um_prime_triple_mchar} }
+ { \um_nprimes:Nn #1 {#2} }
}
{4} {
- \um_glyph_if_exist:nTF {"2057} { ^{\um_prime_quad_mchar} } {\um_nprimes:Nn #1 {#2}}
+ \um_glyph_if_exist:nTF {"2057}
+ { \um_superscript:n {\um_prime_quad_mchar} }
+ { \um_nprimes:Nn #1 {#2} }
}
}{
\um_nprimes:Nn #1 {#2}
@@ -1898,12 +2191,16 @@
}
\cs_new:Npn \um_nbackprimes_select:nn #1#2 {
\prg_case_int:nnn {#2}{
- {1} { ^{#1} }
+ {1} { \um_superscript:n {#1} }
{2} {
- \um_glyph_if_exist:nTF {"2033} { ^{\um_backprime_double_mchar} } {\um_nprimes:Nn #1 {#2}}
+ \um_glyph_if_exist:nTF {"2036}
+ { \um_superscript:n {\um_backprime_double_mchar} }
+ { \um_nprimes:Nn #1 {#2} }
}
{3} {
- \um_glyph_if_exist:nTF {"2034} {^{\um_backprime_triple_mchar} } {\um_nprimes:Nn #1 {#2}}
+ \um_glyph_if_exist:nTF {"2037}
+ { \um_superscript:n {\um_backprime_triple_mchar} }
+ { \um_nprimes:Nn #1 {#2} }
}
}{
\um_nprimes:Nn #1 {#2}
@@ -2050,6 +2347,14 @@
\cs_set_eq:NN ^^^^2037 \um_scan_backtrprime:
}
\group_end:
+\luatex_if_engine:T {
+ \DeclareDocumentCommand \sqrt { O{} m } {
+ \luatexUroot \l_um_radical_sqrt_tl {#1} {#2}
+ }
+ \cs_set:Npn \root #1 \of #2 {
+ \luatexUroot \l_um_radical_sqrt_tl {#1} {#2}
+ }
+}
\cs_set_nopar:Npn \r@@t #1#2 {
\setbox\z@\hbox{$\m@th #1\sqrtsign{#2}$}
\um_mathstyle_scale:Nnn{#1}{\kern}{\fontdimen63\l_um_font}
@@ -2201,6 +2506,7 @@
}
\cs_new:Npn \um_setup_active_frac: {
\group_begin:
+ \um_define_active_frac:Nw ^^^^2189 0/3
\um_define_active_frac:Nw ^^^^2152 1/{10}
\um_define_active_frac:Nw ^^^^2151 1/9
\um_define_active_frac:Nw ^^^^215b 1/8
@@ -2240,7 +2546,6 @@
\bool_if:NTF \g_um_literal_colon_bool {:} { \mathpunct{:} }
}
}
-\def\mathcal{\mathscr}
\def\mathrm{\mathup}
\let\mathfence\mathord
\def\digamma{\updigamma}
@@ -2269,8 +2574,12 @@
}
\def\std@minus{\Umathcharnum\Umathcodenum`\-\relax}
\def\std@equal{\Umathcharnum\Umathcodenum`\=\relax}
- \def\@cdots{\mathinner{\cdots}}
+ \cs_set:Npn \@cdots {\mathinner{\cdots}}
\cs_set_eq:NN \dotsb@ \cdots
+ \def \resetMathstrut@ {%
+ \setbox\z@\hbox{$($}%
+ \ht\Mathstrutbox@\ht\z@ \dp\Mathstrutbox@\dp\z@
+ }
}
\um_patch_pkg:nn {amsopn} {
\cs_set:Npn \newmcodes@ {
@@ -2300,42 +2609,4 @@
\fi
}{}
}
-\cs_new:Npn \um_warning:n { \msg_warning:nn {unicode-math} }
-\cs_new:Npn \um_trace:n { \msg_trace:nn {unicode-math} }
-\cs_new:Npn \um_trace:nx { \msg_trace:nnx {unicode-math} }
-\msg_new:nnn {unicode-math} {maths-feature-only}
-{
- The~ '#1'~ font~ feature~ can~ only~ be~ used~ for~ maths~ fonts.
-}
-\msg_new:nnn {unicode-math} {disable-beamer}
-{
- Disabling~ beamer's~ math~ setup.\\
- Please~ load~ beamer~ with~ the~ [professionalfonts]~ class~ option.
-}
-\msg_new:nnn {unicode-math} {no-tfrac}
-{
- Small~ fraction~ command~ \protect\tfrac\ not~ defined.\\
- Load~ amsmath~ or~ define~ it~ manually~ before~ loading~ unicode-math.
-}
-\msg_new:nnn {unicode-math} {default-math-font}
-{
- Defining~ the~ default~ maths~ font~ as~ '#1'.
-}
-\msg_new:nnn {unicode-math} {setup-implicit}
-{
- Setup~ alphabets:~ implicit~ mode.
-}
-\msg_new:nnn {unicode-math} {setup-explicit}
-{
- Setup~ alphabets:~ explicit~ mode.
-}
-\msg_new:nnn {unicode-math} {alph-initialise}
-{
- Initialising~ \@backslashchar math#1.
-}
-\msg_new:nnn {unicode-math} {setup-alph}
-{
- Setup~ alphabet:~ #1.
-}
\ExplSyntaxOff
-\errorcontextlines=999