texlive[46300] Master/texmf-dist: unicode-math (13jan18)

commits+karl at tug.org commits+karl at tug.org
Sat Jan 13 23:25:39 CET 2018


Revision: 46300
          http://tug.org/svn/texlive?view=revision&revision=46300
Author:   karl
Date:     2018-01-13 23:25:39 +0100 (Sat, 13 Jan 2018)
Log Message:
-----------
unicode-math (13jan18)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/unicode-math/CHANGES.md
    trunk/Master/texmf-dist/doc/latex/unicode-math/MANIFEST.md
    trunk/Master/texmf-dist/doc/latex/unicode-math/README.md
    trunk/Master/texmf-dist/doc/latex/unicode-math/um-doc-main.tex
    trunk/Master/texmf-dist/doc/latex/unicode-math/unicode-math-code.ltx
    trunk/Master/texmf-dist/doc/latex/unicode-math/unicode-math-code.pdf
    trunk/Master/texmf-dist/doc/latex/unicode-math/unicode-math.ltx
    trunk/Master/texmf-dist/doc/latex/unicode-math/unicode-math.pdf
    trunk/Master/texmf-dist/doc/latex/unicode-math/unimath-symbols.pdf
    trunk/Master/texmf-dist/source/latex/unicode-math/um-code-amsmath.dtx
    trunk/Master/texmf-dist/source/latex/unicode-math/um-code-epilogue.dtx
    trunk/Master/texmf-dist/source/latex/unicode-math/um-code-main.dtx
    trunk/Master/texmf-dist/source/latex/unicode-math/um-code-mathmap.dtx
    trunk/Master/texmf-dist/source/latex/unicode-math/um-code-opening.dtx
    trunk/Master/texmf-dist/source/latex/unicode-math/unicode-math.dtx
    trunk/Master/texmf-dist/source/latex/unicode-math/unicode-math.ins
    trunk/Master/texmf-dist/tex/latex/unicode-math/unicode-math-luatex.sty
    trunk/Master/texmf-dist/tex/latex/unicode-math/unicode-math-xetex.sty
    trunk/Master/texmf-dist/tex/latex/unicode-math/unicode-math.sty

Removed Paths:
-------------
    trunk/Master/texmf-dist/source/latex/unicode-math/um-code-base.dtx

Modified: trunk/Master/texmf-dist/doc/latex/unicode-math/CHANGES.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/unicode-math/CHANGES.md	2018-01-13 22:25:38 UTC (rev 46299)
+++ trunk/Master/texmf-dist/doc/latex/unicode-math/CHANGES.md	2018-01-13 22:25:39 UTC (rev 46300)
@@ -1,16 +1,26 @@
 CHANGE HISTORY
---------------
+==============
 
-- v0.8j (2018/01/07)
 
-  * NEW
+## v0.8k (2018/01/13)
 
+  * Eliminate warnings `Variant form 'NV' invalid for base form`... (#430).
+  * Fix issue when loading the `cal` range (#431).
+  * Fix issue with `\sqrt[n]{x}` with `amsmath` (#432).
+  * Error when loading on (really) old versions of XeTeX/LuaTeX removed.
+  * More UM fonts listed in the README (#425).
+
+
+## v0.8j (2018/01/07)
+
+  - NEW
+
     * Numbers and latin letters in the fullwidth Unicode range are now supported
       as aliases to their ASCII counterparts (#337).
     * New commands `\(New|Renew)NegationCommand \foo` for defining custom negations
       accessed via `\not\foo`.
 
-  * SYMBOLS
+  - SYMBOLS
 
     * `\typecolon` is now `\mathrel` instead of `\mathbin` (#360).
     * New symbol `\mathhyphen` which acts like a ‘letter’ (#313).
@@ -19,7 +29,7 @@
       in sensible error messages rather than the old behaviour of meaningless
       output: `\arrowvert`, `\Arrowvert`, `\bracevert`. (#411).
 
-  * BUGS
+  - BUGS
 
     * LuaTeX bug with shifted `\underbrace` when it contains accented symbols worked around (#391).
     * When using the `range` feature, users commonly found they needed to call
@@ -37,7 +47,7 @@
     * If `\setmath(rm|sf|tt)` is called *before* loading `unicode-math`, the setting
       is now remembered (#407).
 
-  * INTERNALS
+  - INTERNALS
 
     * A number of improvements to efficiency when loading subsequent math fonts
       using the `range` feature.
@@ -47,15 +57,17 @@
       of whether the test suite is passing.
 
 
-- v0.8i (2017/11/18)
 
+## v0.8i (2017/11/18)
+
   * Many internal changes to support future work.
   * Improved documentation describing the `\mathXX` and `\symXX` commands.
   * Documentation is now split into `unicode-math.pdf` (for the user)
     and `unicode-math-code.pdf` (for the typeset source code).
 
-- v0.8h (2017/10/09)
 
+## v0.8h (2017/10/09)
+
   * Some bugs crept in in the last update due to some code rearrangement:
       * package version wasn't set;
       * some code was being executed at the wrong time;
@@ -63,19 +75,22 @@
   * The layout of the code is now structured far more sensibly.
   * Remove (long deprecated) `\resetmathfont`; for years it has been a synonym for `\setmathfont`.
 
-- v0.8g (2017/10/02)
 
+## v0.8g (2017/10/02)
+
   * Better use of scriptstyle sizes in LuaTeX (I think a regression).
   * Fix regression (`\mathbf` etc. not being set automatically) caused by the renaming of a `fontspec` internal command.
   * Minor documentation improvements.
   * (Only relevant for me: I've also disabled the test suite almost entirely to begin a re-write for ‘continuous integration’.)
 
-- v0.8f (2017/08/02)
 
+## v0.8f (2017/08/02)
+
   * Emergency fix (thanks Bruno) for another bug revealed by `expl3` update.
 
-- v0.8e (2017/07/30)
 
+## v0.8e (2017/07/30)
+
   * Add `\surd` to access the sqrt symbol.
   * Fix bug exposed by `expl3` update to booleans.
   * Add Deja Vu Math TeX Gyre in list of symbols.
@@ -82,8 +97,9 @@
   * Add `\sime` alias for `\simeq` and `\nsimeq` for `\nsime`.
     (For negations it's helpful when they have consistent naming.)
 
-- v0.8d (2017/01/25)
 
+## v0.8d (2017/01/25)
+
   * `vargreek-shape=TeX` and `vargreek-shape=unicode` package options dropped; for consistency and compatibility, `\phi` and `\epsilon` should and will now behave the same as in `TeX`.
   * On that note, when using control sequences such as `\mbfitsansvarphi` (and so on), there were a few faulty definitions. The new behaviour is to consistenyl define the `varphi` and `varepsilon` ones as those with the "curly" designs.
   * Add `\wideoverbar`, `\widebreve`, `\widecheck`.
@@ -91,19 +107,22 @@
   * Remove `\mupvarbeta`, `upold(Kk)oppa`, `\up(Ss)tigma`, `\up(Kk)oppa`, `\up(Ss)ampi` — none of these are maths symbols.
   * `!` (`\mathexclam`) changed from `\mathpunct` to `\mathclose` for backwards compatibility with TeX.
 
-- v0.8c (2015/09/24)
 
+## v0.8c (2015/09/24)
+
   * Add `\over(left/right)harpoon` as "wide" accents.
   * Add RTL mathematics operators `\arabicmaj` and `\arabichad`, which correspond to `U+1EEF0` and `U+1EEF1`, resp.
   * Remove `catchfile` package dependency.
   * Update some internal names to match expl3 standards.
 
-- v0.8b (2015/09/09)
 
+## v0.8b (2015/09/09)
+
   * Bug fix: Use the "ucharcat" package to simplify some code that caused some headaches with \tl_rescan:nn.
 
-- v0.8a (2015/08/06)
 
+## v0.8a (2015/08/06)
+
   * Fix bug with \vert, \|, \(l/r)vert, etc., displaying with the wrong characters.
 
   * Improve documentation to properly reflect changes in v0.8 and fix some broken examples.
@@ -114,8 +133,9 @@
 
       \setmathfont[range=bfit->it]{MinionMath-Bold.otf}
 
-- v0.8  (2015/07/29)  **Breaking changes in this update!**
 
+## v0.8  (2015/07/29)  **Breaking changes in this update!**
+
   * `\mathrm` (`\mathup`), `\mathit`, `\mathbf`, `\mathsf`, and `\mathtt` revert to their traditional LaTeX meanings; they are set up to match their equivalent text fonts unless specifically set using `\setmathrm` and friends from `fontspec` or the new `\setmathfontface` in `unicode-math`. These commands should be used for *multi*-letter identifiers.
 
   * New "symbol" commands have been added, `\symrm` (`\symup`), `symit`, ..., to replace the behaviour of the old commands. These should be used for *single*-letter identifiers. See the package documentation for more detail on these and related commands.
@@ -130,37 +150,44 @@
 
   * Assorted bug fixes and minor changes.
 
-- v0.7e (2014/06/30)
 
+## v0.7e (2014/06/30)
+
   * No longer assume fixltx2e has been loaded.
   * Some ascii math symbols have been renamed with a \math... prefix, such as \mathquestion.
   * Assume latest luaotfload is being used; no need for a separate unicode-math.lua script.
   * Assorted typos and minor bugs.
 
-- v0.7e (2013/05/04)
 
+## v0.7e (2013/05/04)
+
   * Track luaotfload updates.
 
-- v0.7d (2013/03/16)
 
+## v0.7d (2013/03/16)
+
   * More expl3 changes missed first time around. (Sorry again.)
 
-- v0.7c (2013/02/25)
 
+## v0.7c (2013/02/25)
+
   * The Latin Modern math font name changed TWICE. Only caught the first one.
     Sorry for any inconvenience caused.
 
-- v0.7b (2013/02/22)
 
+## v0.7b (2013/02/22)
+
   * Keep in sync with Latin Modern Math font name change.
   * Keep in sync with expl3 changes.
 
-- v0.7a (2012/07/28)
 
+## v0.7a (2012/07/28)
+
   * Keep in sync with expl3 changes.
 
-- v0.7 (2012/05/30): The TeX Live 2012 release.
 
+## v0.7 (2012/05/30): The TeX Live 2012 release.
+
   * Most changes (and all significant ones) in this release thanks to Khaled
     Hosny, who is now credited as an author of the package.
   * Many improvements for XeTeX support to take advantage of the new engine
@@ -182,14 +209,16 @@
       * `\openbox` renamed to `\mathvisiblespace`, since it is already defined
         in amsthm as an empty box.
 
-- v0.6a (2011/09/19)
 
+## v0.6a (2011/09/19)
+
   * Always a bug that slips through the cracks! Fixes `\left.` and `\right.`
   * Add experimental package option `warnings-off=...` which allows warnings
     to be suppressed on an individual basis.
 
-- v0.6 (2011/09/18)
 
+## v0.6 (2011/09/18)
+
   * Keep in sync with fontspec internals
     (sorry for the small delay where things were broken)
   * Keep in sync with expl3 deprecated functions
@@ -213,8 +242,9 @@
     (thanks to Apostolos Syropoulos)
   * Fixed literal sub-/super-script input.
 
-- v0.5e (2011/07/31)
 
+## v0.5e (2011/07/31)
+
   * Fix forward compatibility clash with deprecated expl3 functions (sorry)
   * Command names are now `\protected`; this makes them safe to use in moving
     arguments and so on
@@ -234,8 +264,9 @@
   * Move several LuaTeX-related patches to the `lualatex-math` package
   * Fixed mathtool's `\cramped` in XeLaTeX usage
 
-- v0.5d (2011/01/30)
 
+## v0.5d (2011/01/30)
+
   * Assorted improvements to LuaLaTeX support, including non-growing accents
     available in LuaTeX v0.65 and later
   * Improved behaviour with reading and using maths font dimensions
@@ -243,15 +274,17 @@
     (always more worked needed, though)
   * Fix the default setting for "vargreek-shape"
 
-- v0.5c (2010/09/27)
 
+## v0.5c (2010/09/27)
+
   * Fix a long-standing bug in XeLaTeX in which the "master" math
     families 2 and 3 weren't being set; hence fraction rules and many other
     parameters were not being set correctly
   * Stay in sync with internal fontspec changes
 
-- v0.5b (2010/09/19): Tune-up
 
+## v0.5b (2010/09/19): Tune-up
+
   * Added missing symbols/synonyms:
       \diamond  \smallint  \emptyset  \hbar  \backepsilon  \eth
   * \overline works for LuaLaTeX
@@ -258,8 +291,9 @@
   * Fix \slash; previously, it overwrote the text definition
   * \vartriangle now has the correct math class
 
-- v0.5a (2010/07/14): TeX Live 2010 release
 
+## 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;
@@ -269,5 +303,6 @@
   * 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
 
+## v0.5 (2010/06/03): Initial CTAN release
+

Modified: trunk/Master/texmf-dist/doc/latex/unicode-math/MANIFEST.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/unicode-math/MANIFEST.md	2018-01-13 22:25:38 UTC (rev 46299)
+++ trunk/Master/texmf-dist/doc/latex/unicode-math/MANIFEST.md	2018-01-13 22:25:39 UTC (rev 46300)
@@ -33,13 +33,13 @@
  | um-code-fontopt.dtx      | ‡    | Keyval for `\setmathfont`                                                     |
  | um-code-fontparam.dtx    | ‡    | Cross-platform interface for font parameters                                  |
  | um-code-mathmap.dtx      | ‡    | Setup of symbol alphabets.                                                    |
- | um-code-sym-commands.dtx |      | Definition of "math symbol alphabet" commands such as `\symbf` and co.        |
+ | um-code-sym-commands.dtx | ‡    | Definition of "math symbol alphabet" commands such as `\symbf` and co.        |
  | um-code-alphabets.dtx    | ‡    | Definitions for setting up the "math symbol alphabets".                       |
  | um-code-epilogue.dtx     | ‡    | Assorted definitions to close up.                                             |
  | um-code-primes.dtx       | ‡    | The definitions needed for the input of primes.                               |
  | um-code-sscript.dtx      | ‡    | Setup for active chars needed to process subscript/superscript input chars.   |
  | um-code-compat.dtx       | ‡    | Compatibility with 3rd party packages.                                        |
- | um-code-amsmath.dtx      |      | Compatibility with amsmath.                                                   |
+ | um-code-amsmath.dtx      | ‡    | Compatibility with amsmath.                                                   |
  | unicode-math.ins         | ‡    | Docstrip installer.                                                           |
  | unicode-math-table.tex   | ‡    | Source file of the math symbols.                                              |
 
@@ -102,10 +102,7 @@
 
 ### Test files
 
-These files form the test suite for the package. `.lvt` or `.lte` files are the individual
-unit tests, and `.tlg` are the stored output for ensuring changes to the package produce
-the same output. These output files are sometimes shared and sometime specific for
-different engines (pdfTeX, XeTeX, LuaTeX, etc.).
+These files form the test suite for the package. The listed `.lvt` files are the individual unit tests, with matching `.tlg` (not shown, for brevity) are the stored output for ensuring changes to the package produce the same output.
 
  1. Bbbit.lvt 
  2. aaa-loading.lvt 
@@ -112,76 +109,42 @@
  3. active-frac.lvt 
  4. active-sscripts-amsmath.lvt 
  5. active-sscripts.lvt 
- 6. amsmath-sqrt-exec.lvt 
- 7. amsmath-sqrt-output.lvt 
- 8. ascii-catcodes.lvt 
- 9. fontname-log.lvt 
-10. hyphen.lvt 
-11. input-fullwidth.lvt 
-12. lmdefault-mathrm-it-bf.lvt 
-13. mathit-symit-var.lvt 
-14. mathit-symit.lvt 
-15. mathsizes.lvt 
-16. nabla.lvt 
-17. not.lvt 
-18. operatorname.lvt 
-19. partial.lvt 
-20. range-char-cmd.lvt 
-21. range-class.lvt 
-22. range-up-num.lvt 
-23. setmathsf.lvt 
-24. sqrt-exec.lvt 
-25. sqrt-output.lvt 
-26. Bbbit.luatex.tlg 
-27. Bbbit.xetex.tlg 
-28. aaa-loading.luatex.tlg 
-29. aaa-loading.xetex.tlg 
-30. active-frac.luatex.tlg 
-31. active-frac.xetex.tlg 
-32. active-sscripts-amsmath.luatex.tlg 
-33. active-sscripts-amsmath.xetex.tlg 
-34. active-sscripts.luatex.tlg 
-35. active-sscripts.xetex.tlg 
-36. amsmath-sqrt-exec.luatex.tlg 
-37. amsmath-sqrt-exec.xetex.tlg 
-38. amsmath-sqrt-output.luatex.tlg 
-39. amsmath-sqrt-output.xetex.tlg 
-40. ascii-catcodes.luatex.tlg 
-41. ascii-catcodes.xetex.tlg 
-42. fontname-log.luatex.tlg 
-43. fontname-log.xetex.tlg 
-44. hyphen.luatex.tlg 
-45. hyphen.xetex.tlg 
-46. input-fullwidth.luatex.tlg 
-47. input-fullwidth.xetex.tlg 
-48. lmdefault-mathrm-it-bf.luatex.tlg 
-49. lmdefault-mathrm-it-bf.xetex.tlg 
-50. mathit-symit-var.luatex.tlg 
-51. mathit-symit-var.xetex.tlg 
-52. mathit-symit.luatex.tlg 
-53. mathit-symit.xetex.tlg 
-54. mathsizes.luatex.tlg 
-55. mathsizes.xetex.tlg 
-56. nabla.luatex.tlg 
-57. nabla.xetex.tlg 
-58. not.luatex.tlg 
-59. not.xetex.tlg 
-60. operatorname.luatex.tlg 
-61. operatorname.xetex.tlg 
-62. partial.luatex.tlg 
-63. partial.xetex.tlg 
-64. range-char-cmd.luatex.tlg 
-65. range-char-cmd.xetex.tlg 
-66. range-class.luatex.tlg 
-67. range-class.xetex.tlg 
-68. range-up-num.luatex.tlg 
-69. range-up-num.xetex.tlg 
-70. setmathsf.luatex.tlg 
-71. setmathsf.xetex.tlg 
-72. sqrt-exec.luatex.tlg 
-73. sqrt-exec.xetex.tlg 
-74. sqrt-output.luatex.tlg 
-75. sqrt-output.xetex.tlg 
+ 6. alph-range-calscr.lvt 
+ 7. alph-range-fallback.lvt 
+ 8. alph-range-mapping.lvt 
+ 9. alph-range-sym-alph.lvt 
+10. alph-range-sym-range.lvt 
+11. alph-sym.lvt 
+12. ascii-catcodes.lvt 
+13. boldstyle-french.lvt 
+14. boldstyle-iso.lvt 
+15. boldstyle-literal.lvt 
+16. boldstyle-tex.lvt 
+17. boldstyle-upright.lvt 
+18. fontname-log.lvt 
+19. hyphen.lvt 
+20. input-fullwidth.lvt 
+21. lmdefault-mathrm-it-bf.lvt 
+22. mathit-symit-var.lvt 
+23. mathit-symit.lvt 
+24. mathsizes.lvt 
+25. mathstyle-french.lvt 
+26. mathstyle-iso.lvt 
+27. mathstyle-literal.lvt 
+28. mathstyle-tex.lvt 
+29. mathstyle-upright.lvt 
+30. nabla.lvt 
+31. not.lvt 
+32. operatorname.lvt 
+33. partial.lvt 
+34. range-char-cmd.lvt 
+35. range-class.lvt 
+36. range-up-num.lvt 
+37. setmathsf.lvt 
+38. sqrt-amsmath-exec.lvt 
+39. sqrt-amsmath-output.lvt 
+40. sqrt-exec.lvt 
+41. sqrt-output.lvt 
 
 
 ## TDS manifest
@@ -194,26 +157,28 @@
 All files included in the `unicode-math/source` directory.
 
  1. um-code-alphabets.dtx 
- 2. um-code-api.dtx 
- 3. um-code-base.dtx 
- 4. um-code-compat.dtx 
- 5. um-code-epilogue.dtx 
- 6. um-code-fontopt.dtx 
- 7. um-code-fontparam.dtx 
- 8. um-code-main.dtx 
- 9. um-code-mathmap.dtx 
-10. um-code-mathtext.dtx 
-11. um-code-msg.dtx 
-12. um-code-opening.dtx 
-13. um-code-pkgopt.dtx 
-14. um-code-primes.dtx 
-15. um-code-setchar.dtx 
-16. um-code-sscript.dtx 
-17. um-code-ui.dtx 
-18. um-code-usv.dtx 
-19. um-code-variables.dtx 
-20. unicode-math.dtx 
-21. unicode-math.ins 
+ 2. um-code-amsmath.dtx 
+ 3. um-code-api.dtx 
+ 4. um-code-base.dtx 
+ 5. um-code-compat.dtx 
+ 6. um-code-epilogue.dtx 
+ 7. um-code-fontopt.dtx 
+ 8. um-code-fontparam.dtx 
+ 9. um-code-main.dtx 
+10. um-code-mathmap.dtx 
+11. um-code-mathtext.dtx 
+12. um-code-msg.dtx 
+13. um-code-opening.dtx 
+14. um-code-pkgopt.dtx 
+15. um-code-primes.dtx 
+16. um-code-setchar.dtx 
+17. um-code-sscript.dtx 
+18. um-code-sym-commands.dtx 
+19. um-code-ui.dtx 
+20. um-code-usv.dtx 
+21. um-code-variables.dtx 
+22. unicode-math.dtx 
+23. unicode-math.ins 
 
 ### TeX files (TDS)
 
@@ -257,38 +222,40 @@
  2. MANIFEST.md 
  3. README.md 
  4. um-code-alphabets.dtx 
- 5. um-code-api.dtx 
- 6. um-code-base.dtx 
- 7. um-code-compat.dtx 
- 8. um-code-epilogue.dtx 
- 9. um-code-fontopt.dtx 
-10. um-code-fontparam.dtx 
-11. um-code-main.dtx 
-12. um-code-mathmap.dtx 
-13. um-code-mathtext.dtx 
-14. um-code-msg.dtx 
-15. um-code-opening.dtx 
-16. um-code-pkgopt.dtx 
-17. um-code-primes.dtx 
-18. um-code-setchar.dtx 
-19. um-code-sscript.dtx 
-20. um-code-ui.dtx 
-21. um-code-usv.dtx 
-22. um-code-variables.dtx 
-23. um-doc-legacyfontdimen.tex 
-24. um-doc-main.tex 
-25. um-doc-mathfontdimen.tex 
-26. um-doc-nfsssummary.tex 
-27. um-doc-stixextract.tex 
-28. um-doc-style.tex 
-29. unicode-math-code.ltx 
-30. unicode-math-code.pdf 
-31. unicode-math-table.tex 
-32. unicode-math.dtx 
-33. unicode-math.ins 
-34. unicode-math.ltx 
-35. unicode-math.pdf 
-36. unimath-example.ltx 
-37. unimath-example.pdf 
-38. unimath-symbols.ltx 
-39. unimath-symbols.pdf 
+ 5. um-code-amsmath.dtx 
+ 6. um-code-api.dtx 
+ 7. um-code-base.dtx 
+ 8. um-code-compat.dtx 
+ 9. um-code-epilogue.dtx 
+10. um-code-fontopt.dtx 
+11. um-code-fontparam.dtx 
+12. um-code-main.dtx 
+13. um-code-mathmap.dtx 
+14. um-code-mathtext.dtx 
+15. um-code-msg.dtx 
+16. um-code-opening.dtx 
+17. um-code-pkgopt.dtx 
+18. um-code-primes.dtx 
+19. um-code-setchar.dtx 
+20. um-code-sscript.dtx 
+21. um-code-sym-commands.dtx 
+22. um-code-ui.dtx 
+23. um-code-usv.dtx 
+24. um-code-variables.dtx 
+25. um-doc-legacyfontdimen.tex 
+26. um-doc-main.tex 
+27. um-doc-mathfontdimen.tex 
+28. um-doc-nfsssummary.tex 
+29. um-doc-stixextract.tex 
+30. um-doc-style.tex 
+31. unicode-math-code.ltx 
+32. unicode-math-code.pdf 
+33. unicode-math-table.tex 
+34. unicode-math.dtx 
+35. unicode-math.ins 
+36. unicode-math.ltx 
+37. unicode-math.pdf 
+38. unimath-example.ltx 
+39. unimath-example.pdf 
+40. unimath-symbols.ltx 
+41. unimath-symbols.pdf 

Modified: trunk/Master/texmf-dist/doc/latex/unicode-math/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/unicode-math/README.md	2018-01-13 22:25:38 UTC (rev 46299)
+++ trunk/Master/texmf-dist/doc/latex/unicode-math/README.md	2018-01-13 22:25:39 UTC (rev 46300)
@@ -17,11 +17,16 @@
 Unicode maths is currently supported by the following freely available fonts:
 
  - [Latin Modern Math][LM] (Bogusław Jackowski, Janusz M. Nowacki)
- - [TeX Gyre Pagella Math][PM] (Bogusław Jackowski, Janusz M. Nowacki)
+ - [TeX Gyre Bonum Math][BM] (B. Jackowski, P. Strzel­czyk and P. Pianowski)
+ - [TeX Gyre Pagella Math][PM] (B. Jackowski, P. Strzelczyk and P. Pianowski)
+ - [TeX Gyre Schola Math][SCM] (B. Jackowski, P. Strzelczyk and P. Pianowski)
+ - [TeX Gyre Termes Math][TM] (B. Jackowski, P. Strzelczyk and P. Pianowski)
+ - [DejaVu Math TeX Gyre][DEJA] (B. Jackowski, P. Strzelczyk and P. Pianowski)
  - [Asana Math][AM] (Apostolos Syropolous),
+ - [STIX][STIX] (STIpub), and
  - [Neo Euler][NE] (Khaled Hosny),
- - [STIX][SM] (STI Pub), and
- - [XITS Math][XM] (Khaled Hosny).
+ - [XITS Math][XM] (Khaled Hosny),
+ - [Libertinus Math][LIB] (Philipp H. Poll and Khaled Hosny).
 
 These fonts are available under open source licences
 (the [GUST Font License][GFL] and [Open Font Licence][OFL]).
@@ -28,6 +33,7 @@
 
 The following fonts are proprietary with OpenType maths support:
 
+ - [Lucida Bright Math][LUCI] (Charles Bigelow and Kris Holmes)
  - [Cambria Math][CM] (Microsoft),
  - [Minion Math][MM] (Johannes Küster, typoma GmbH)
 
@@ -35,17 +41,22 @@
 new releases.
 
 [CM]: http://www.ascenderfonts.com/font/cambria-regular.aspx
+[LUCI]: http://tug.org/store/lucida/opentype.html
 [MM]: http://www.typoma.com/en/fonts.html
 [LM]: http://www.gust.org.pl/projects/e-foundry/lm-math
 [PM]: http://www.ctan.org/pkg/tex-gyre-math-pagella
+[BM]: http://www.ctan.org/pkg/tex-gyre-math-bonum
+[SCM]: http://www.ctan.org/pkg/tex-gyre-math-schola
+[TM]: http://www.ctan.org/pkg/tex-gyre-math-termes
+[DEJA]: https://ctan.org/pkg/tex-gyre-math-dejavu
 [AM]: http://www.ctan.org/pkg/asana-math
 [NE]: http://github.com/khaledhosny/euler-otf
-[SM]: http://www.aip.org/stixfonts/
+[STIX]: http://www.stixfonts.org
 [XM]: http://github.com/khaledhosny/xits-math
+[LIB]: https://ctan.org/pkg/libertinus
 [GFL]: http://www.gust.org.pl/projects/projects/e-foundry/licenses/
 [OFL]: http://scripts.sil.org/OFL
 
-
 PACKAGE USAGE
 -------------
 

Modified: trunk/Master/texmf-dist/doc/latex/unicode-math/um-doc-main.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/unicode-math/um-doc-main.tex	2018-01-13 22:25:38 UTC (rev 46299)
+++ trunk/Master/texmf-dist/doc/latex/unicode-math/um-doc-main.tex	2018-01-13 22:25:39 UTC (rev 46300)
@@ -75,7 +75,7 @@
 
 Once the package is loaded, traditional TFM-based maths fonts are no longer supported;
 you can only switch to a different OpenType maths font using the \cs{setmathfont} command.
-If you do not load an OpenType maths font before |\begin{document}|, Latin Modern Math (see above) will be loaded automatically.
+If you do not load an OpenType maths font before |\begin{document}|, Latin Modern Math will be loaded automatically.
 
 \subsection{New commands}
 \LaTeX, since the first version of \LaTeXe, changed the math group
@@ -86,7 +86,7 @@
 loading the needed math groups (or math families) on demand and not
 allocating them if not required by the document.
 
-The introduction of \pkg{unicode-math} posed new problems. For
+The introduction of \pkg{unicode-math} posed some problems fitting into this design. For
 instance, there is a big difference between say |fit| as an operator
 name in boldface type and the product of three boldface variables.
 With legacy \TeX{} engines, |\mathbf{fit}| would use a ligature and
@@ -178,7 +178,16 @@
 deprecated in time. The |\symliteral| command is described in
 \secref{math-style}.
 
+Using the |\sym..| commands, the glyphs used to produce PDF output are Unicode-encoded,
+and therefore a symbol such as $\symcal{G}$ can be copy-pasted into another programme
+(or even into the source of another \LaTeX\ document using \pkg{unicode-math}) without
+loss of meaning.
+This is an important aspect of Unicode mathematics, but the \pkg{unicode-math} package
+is not `pure' in the sense that the package also provides other mechanisms to change
+the fonts used in the PDF output; the philosophy of the package is to provide mechanisms
+for technical authors to invent and experiment with new syntaxes for their work.
 
+
 \subsection{Package options}
 Package options may be set when the package as loaded or at any later
 stage with the \cs{unimathsetup} command. Therefore, the following two
@@ -705,17 +714,14 @@
 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,
+If a font contains alternate glyphs for a separate 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{xits-math.otf}[range={cal,bfcal},StylisticSet=1]
-\end{verbatim}
 An example is shown below.
 \begin{quote}
-\setmathfont{xits-math.otf}[range=scr]
+\setmathfont{xits-math.otf}
 \setmathfont{xits-math.otf}[range=cal,StylisticSet=1]
 The Script style (\cs{mathscr}) in XITS Math is: $\symscr{ABCXYZ}$\par
 The Caligraphic style (\cs{mathcal}) in XITS Math is: $\symcal{ABCXYZ}$

Modified: trunk/Master/texmf-dist/doc/latex/unicode-math/unicode-math-code.ltx
===================================================================
--- trunk/Master/texmf-dist/doc/latex/unicode-math/unicode-math-code.ltx	2018-01-13 22:25:38 UTC (rev 46299)
+++ trunk/Master/texmf-dist/doc/latex/unicode-math/unicode-math-code.ltx	2018-01-13 22:25:39 UTC (rev 46300)
@@ -4,11 +4,6 @@
 \documentclass[a4paper]{ltxdoc}
 \input{um-doc-style.tex}
 \begin{document}
-
-\title{Experimental Unicode mathematical typesetting: The \pkg{unicode-math} package}
-\author{\itshape Will Robertson\\\itshape Philipp Stephani, Joseph Wright, Khaled Hosny\\\url{http://github.com/wspr/unicode-math}}
-\date{\umfiledate \qquad \umfileversion}
-
 \maketitle
 \tableofcontents
 

Modified: trunk/Master/texmf-dist/doc/latex/unicode-math/unicode-math-code.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/unicode-math/unicode-math.ltx
===================================================================
--- trunk/Master/texmf-dist/doc/latex/unicode-math/unicode-math.ltx	2018-01-13 22:25:38 UTC (rev 46299)
+++ trunk/Master/texmf-dist/doc/latex/unicode-math/unicode-math.ltx	2018-01-13 22:25:39 UTC (rev 46300)
@@ -4,11 +4,6 @@
 \documentclass[a4paper]{ltxdoc}
 \input{um-doc-style.tex}
 \begin{document}
-
-\title{Experimental Unicode mathematical typesetting: The \pkg{unicode-math} package}
-\author{\itshape Will Robertson\\\itshape Philipp Stephani, Joseph Wright, Khaled Hosny\\\url{http://github.com/wspr/unicode-math}}
-\date{\umfiledate \qquad \umfileversion}
-
 \maketitle
 
 \input{um-doc-main.tex}

Modified: trunk/Master/texmf-dist/doc/latex/unicode-math/unicode-math.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/unicode-math/unimath-symbols.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/source/latex/unicode-math/um-code-amsmath.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/unicode-math/um-code-amsmath.dtx	2018-01-13 22:25:38 UTC (rev 46299)
+++ trunk/Master/texmf-dist/source/latex/unicode-math/um-code-amsmath.dtx	2018-01-13 22:25:39 UTC (rev 46300)
@@ -186,7 +186,7 @@
           \c_math_toggle_token
         }
       \mkern -\leftroot@ mu
-      \@@_mathstyle_scale:Nnn #1 { \kern } { \fontdimen 63 \g_@@_sqrt_font_cmd_tl }
+      \@@_mathstyle_scale:NnnN #1 { \kern } { \fontdimen 63 \g_@@_sqrt_font_cmd_tl } \g_@@_sqrt_font_cmd_tl
       \box_move_up:nn
         {
           \box_wd:N \l_tmpb_box + (\box_ht:N \l_tmpa_box - \box_dp:N \l_tmpa_box)
@@ -193,7 +193,7 @@
             * \number \fontdimen 65 \g_@@_sqrt_font_cmd_tl / 100
         }
         { \box_use:N \rootbox }
-      \@@_mathstyle_scale:Nnn #1 { \kern } { \fontdimen 64 \g_@@_sqrt_font_cmd_tl }
+      \@@_mathstyle_scale:NnnN #1 { \kern } { \fontdimen 64 \g_@@_sqrt_font_cmd_tl } \g_@@_sqrt_font_cmd_tl
       \mkern \leftroot@ mu
       \box_use_clear:N \l_tmpa_box
     }

Deleted: trunk/Master/texmf-dist/source/latex/unicode-math/um-code-base.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/unicode-math/um-code-base.dtx	2018-01-13 22:25:38 UTC (rev 46299)
+++ trunk/Master/texmf-dist/source/latex/unicode-math/um-code-base.dtx	2018-01-13 22:25:39 UTC (rev 46300)
@@ -1,75 +0,0 @@
-%%^^A%% um-code-base.dtx -- part of UNICODE-MATH <wspr.io/unicode-math>
-%%^^A%% Definition of unicode-math.sty, which splits and loads according to engine.
-
-% \section{The \texttt{unicode-math.sty} loading file}
-%
-% The \texttt{unicode-math.sty} file is a stub which loads necessary packages
-% and then bifurcates into a XeTeX- or LuaTeX-specific version of the package.
-%
-%    \begin{macrocode}
-%<*base>
-%    \end{macrocode}
-% Bail early if necessary.
-%    \begin{macrocode}
-\ifdefined\XeTeXversion
-  \ifdim\number\XeTeXversion\XeTeXrevision in<0.9998in%
-    \PackageError{unicode-math}{%
-      Cannot run with this version of XeTeX!\MessageBreak
-      You need XeTeX 0.9998 or newer.%
-    }\@ehd
-  \fi
-\else\ifdefined\luatexversion
-  \ifnum\luatexversion<64%
-    \PackageError{unicode-math}{%
-      Cannot run with this version of LuaTeX!\MessageBreak
-      You need LuaTeX 0.64 or newer.%
-    }\@ehd
-  \fi
-\else
-  \PackageError{unicode-math}{%
-    Cannot be run with pdfLaTeX!\MessageBreak
-    Use XeLaTeX or LuaLaTeX instead.%
-  }\@ehd
-\fi\fi
-%    \end{macrocode}
-%
-% \paragraph{Packages}
-% Assuming people are running up-to-date packages.
-%    \begin{macrocode}
-\RequirePackage{expl3,xparse,l3keys2e}
-\RequirePackage{fontspec}
-\RequirePackage{filehook}
-\RequirePackage{fix-cm}
-%<debug>\RequirePackage{l3benchmark}
-%    \end{macrocode}
-%
-% \paragraph{Bifurcate}
-%    \begin{macrocode}
-\ExplSyntaxOn
-\sys_if_engine_luatex:T { \RequirePackageWithOptions{unicode-math-luatex} }
-\sys_if_engine_xetex:T  { \RequirePackageWithOptions{unicode-math-xetex}  }
-\ExplSyntaxOff
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-%</base>
-%    \end{macrocode}
-
-\endinput
-
-% /©
-%
-% ------------------------------------------------
-% The UNICODE-MATH package  <wspr.io/unicode-math>
-% ------------------------------------------------
-% This package is free software and may be redistributed and/or modified under
-% the conditions of the LaTeX Project Public License, version 1.3c or higher
-% (your choice): <http://www.latex-project.org/lppl/>.
-% ------------------------------------------------
-% Copyright 2006-2018  Will Robertson, LPPL "maintainer"
-% Copyright 2010-2017  Philipp Stephani
-% Copyright 2011-2017  Joseph Wright
-% Copyright 2012-2015  Khaled Hosny
-% ------------------------------------------------
-%
-% ©/

Modified: trunk/Master/texmf-dist/source/latex/unicode-math/um-code-epilogue.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/unicode-math/um-code-epilogue.dtx	2018-01-13 22:25:38 UTC (rev 46299)
+++ trunk/Master/texmf-dist/source/latex/unicode-math/um-code-epilogue.dtx	2018-01-13 22:25:39 UTC (rev 46300)
@@ -383,7 +383,10 @@
 \@@_undeclare_symbol:N \bracevert
 %    \end{macrocode}
 %
+% \paragraph{Fin}
+% The official end of the package:
 %    \begin{macrocode}
+%<package>\endinput
 %</package>
 %    \end{macrocode}
 

Modified: trunk/Master/texmf-dist/source/latex/unicode-math/um-code-main.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/unicode-math/um-code-main.dtx	2018-01-13 22:25:38 UTC (rev 46299)
+++ trunk/Master/texmf-dist/source/latex/unicode-math/um-code-main.dtx	2018-01-13 22:25:39 UTC (rev 46300)
@@ -91,16 +91,14 @@
   {
     \cs_if_exist:NF \l_@@_fontname_tl
       {
+%<debug>\typeout{SETTING~ DEFAULT~ FONT~(latinmodern-math)}
         \setmathfont{latinmodern-math.otf}
           [BoldFont={latinmodern-math.otf}]
+%<debug>\typeout{END~ DEFAULT~ FONT)}
       }
   }
 %    \end{macrocode}
-% Note that here we reset the `font already loaded' boolean so that a new font being set
-% will do the right thing in terms of setting up defaults.
 %
-% TODO: need a better way to do this for the general case. (Maybe a `reset' command option?)
-%
 % \begin{macro}{\@@_init:n}
 % Reset local variables.
 % Default to defining the font for every math symbol character.
@@ -167,7 +165,7 @@
 
     \group_begin:
       \fontfamily { \l_@@_trial_family_tl } \selectfont
-      \@@_fontface_gset_eq:NV \g_@@_trial_font \font at name
+      \exp_last_unbraced:NNo \@@_fontface_gset_eq:NN \g_@@_trial_font \font at name
       \fontspec_if_script:nF {math}
         {
           \bool_gset_false:N \l_@@_ot_math_bool
@@ -216,11 +214,11 @@
     \int_gincr:N \g_@@_fonts_used_int
     \group_begin:
       \fontfamily { \l_@@_family_tl } \selectfont
-      \@@_fontface_gset_eq:cV {g_@@_mathfont_ \int_use:N \g_@@_fonts_used_int _font} \font at name
+      \exp_last_unbraced:Nno \@@_fontface_gset_eq:cN {g_@@_mathfont_ \int_use:N \g_@@_fonts_used_int _font} \font at name
       \tl_gset:Nx \g_@@_curr_font_cmd_tl { \exp_not:c {g_@@_mathfont_ \int_use:N \g_@@_fonts_used_int _font} }
       \bool_if:NT \l_@@_init_bool
 				{
-					\@@_fontface_gset_eq:NV \l_@@_font \font at name
+					\exp_last_unbraced:NNo \@@_fontface_gset_eq:NN \l_@@_font \font at name
 				}
       \fontspec_if_script:nF {math}
         {

Modified: trunk/Master/texmf-dist/source/latex/unicode-math/um-code-mathmap.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/unicode-math/um-code-mathmap.dtx	2018-01-13 22:25:38 UTC (rev 46299)
+++ trunk/Master/texmf-dist/source/latex/unicode-math/um-code-mathmap.dtx	2018-01-13 22:25:39 UTC (rev 46300)
@@ -22,63 +22,76 @@
 %    \begin{macrocode}
 \cs_new:Npn \@@_setup_alphabets:
   {
-
-    \bool_if:NTF \l_@@_init_bool
+    \bool_if:NTF \l_@@_init_bool { \@@_setup_alphabets_implicit: }
       {
-        % IMPLICIT
-        \@@_log:n {setup-implicit}
-        \seq_gset_eq:NN \g_@@_mathalph_seq \g_@@_default_mathalph_seq
-        \bool_set_true:N \l_@@_implicit_alph_bool
-        \@@_maybe_init_alphabet:n  {sf}
-        \@@_maybe_init_alphabet:n  {bf}
-        \@@_maybe_init_alphabet:n  {bfsf}
-        \cs_set_eq:NN \@@_set_mathalphabet_char:nnn \@@_mathmap_noparse:nnn
-        \cs_set_eq:NN \@@_map_char_single:nn \@@_map_char_noparse:nn
-        \@@_mathalph_map:
-        \seq_if_empty:NF \l_@@_missing_alph_seq { \@@_log:n { missing-alphabets } }
+        \seq_if_empty:NF \g_@@_mathalph_seq { \@@_setup_alphabets_explicit: }
+        \clist_if_empty:NF \l_@@_mathmap_charints_clist { \@@_setup_alphabets_inherit: }
       }
+  }
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{ \@@_setup_alphabets_implicit:}
+%    \begin{macrocode}
+\cs_new:Nn \@@_setup_alphabets_implicit:
+  {
+    \@@_log:n {setup-implicit}
+    \seq_gset_eq:NN \g_@@_mathalph_seq \g_@@_default_mathalph_seq
+    \bool_set_true:N \l_@@_implicit_alph_bool
+    \@@_maybe_init_alphabet:n  {sf}
+    \@@_maybe_init_alphabet:n  {bf}
+    \@@_maybe_init_alphabet:n  {bfsf}
+    \cs_set_eq:NN \@@_set_mathalphabet_char:nnn \@@_mathmap_noparse:nnn
+    \cs_set_eq:NN \@@_map_char_single:nn \@@_map_char_noparse:nn
+    \@@_mathalph_map:
+    \seq_if_empty:NF \l_@@_missing_alph_seq { \@@_log:n { missing-alphabets } }
+  }
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{ \@@_setup_alphabets_explicit:}
+%    \begin{macrocode}
+\cs_new:Nn \@@_setup_alphabets_explicit:
+  {
+    \@@_log:n {setup-explicit}
+    \bool_set_false:N \l_@@_implicit_alph_bool
+    \cs_set_eq:NN \@@_set_mathalphabet_char:nnn \@@_mathmap_noparse:nnn
+    \cs_set_eq:NN \@@_map_char_single:nn \@@_map_char_noparse:nn
+    \@@_mathalph_map:
+    \seq_if_empty:NF \l_@@_missing_alph_seq { \@@_log:n { missing-alphabets } }
+  }
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{ \@@_setup_alphabets_inherit:}
+%    \begin{macrocode}
+\cs_new:Nn \@@_setup_alphabets_inherit:
+  {
+    \seq_gclear:N \g_@@_mathalph_seq
+    \seq_map_inline:Nn \g_@@_default_mathalph_seq
       {
-        \seq_if_empty:NF \g_@@_mathalph_seq
-          {
-            % EXPLICIT
-            \@@_log:n {setup-explicit}
-            \bool_set_false:N \l_@@_implicit_alph_bool
-            \cs_set_eq:NN \@@_set_mathalphabet_char:nnn \@@_mathmap_noparse:nnn
-            \cs_set_eq:NN \@@_map_char_single:nn \@@_map_char_noparse:nn
-            \@@_mathalph_map:
-            \seq_if_empty:NF \l_@@_missing_alph_seq { \@@_log:n { missing-alphabets } }
-          }
+        \tl_set:No    \l_@@_style_tl       { \use_i:nnn   ##1 }
+        \clist_set:No \l_@@_alphabet_clist { \use_ii:nnn  ##1 }
 
-        % INHERIT
-        \clist_if_empty:NF \l_@@_mathmap_charints_clist
+        \clist_map_inline:Nn \l_@@_alphabet_clist
           {
-            \seq_gclear:N \g_@@_mathalph_seq
-            \seq_map_inline:Nn \g_@@_default_mathalph_seq
+            \clist_map_inline:cn {g_@@_named_slots_ \l_@@_style_tl _ ####1 _clist}
               {
-                \tl_set:No    \l_@@_style_tl       { \use_i:nnn   ##1 }
-                \clist_set:No \l_@@_alphabet_clist { \use_ii:nnn  ##1 }
-
-                \clist_map_inline:Nn \l_@@_alphabet_clist
+                \clist_map_inline:Nn \l_@@_mathmap_charints_clist
                   {
-                    \clist_map_inline:cn {g_@@_named_slots_ \l_@@_style_tl _ ####1 _clist}
+                    \@@_int_if_slot_in_range:nnT {################1} {########1}
                       {
-                        \clist_map_inline:Nn \l_@@_mathmap_charints_clist
-                          {
-                            \@@_int_if_slot_in_range:nnT {################1} {########1}
-                              {
-                                \seq_gput_right:Nn \g_@@_mathalph_seq {##1}
-                                \clist_map_break:n { \clist_map_break:n { \clist_map_break: } }
-                              }
-                          }
+                        \seq_gput_right:Nn \g_@@_mathalph_seq {##1}
+                        \clist_map_break:n { \clist_map_break:n { \clist_map_break: } }
                       }
                   }
               }
           }
+      }
 
-        \cs_set_eq:NN \@@_set_mathalphabet_char:nnn \@@_mathmap_parse:nnn
-        \cs_set_eq:NN \@@_map_char_single:nn \@@_map_char_parse:nn
-        \@@_mathalph_map:
-      }
+    \cs_set_eq:NN \@@_set_mathalphabet_char:nnn \@@_mathmap_parse:nnn
+    \cs_set_eq:NN \@@_map_char_single:nn \@@_map_char_parse:nn
+    \@@_mathalph_map:
   }
 %    \end{macrocode}
 % \end{macro}

Modified: trunk/Master/texmf-dist/source/latex/unicode-math/um-code-opening.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/unicode-math/um-code-opening.dtx	2018-01-13 22:25:38 UTC (rev 46299)
+++ trunk/Master/texmf-dist/source/latex/unicode-math/um-code-opening.dtx	2018-01-13 22:25:39 UTC (rev 46300)
@@ -12,16 +12,17 @@
 %<*package>
 %    \end{macrocode}
 %
+% \paragraph{Packages}
+% Assuming people are running up-to-date packages.
 %    \begin{macrocode}
-%<*LU>
-\RequirePackage{lualatex-math}
-%</LU>
+\RequirePackage{xparse,l3keys2e}
+\RequirePackage{fontspec}
+\RequirePackage{filehook}
+\RequirePackage{fix-cm}
+%<LU>\RequirePackage{lualatex-math}
+%<debug>\RequirePackage{l3benchmark}
 %    \end{macrocode}
 %
-%    \begin{macrocode}
-\ExplSyntaxOn
-%    \end{macrocode}
-%
 % \subsection{\pkg{expl3} variants}
 %
 % Variants needed from \pkg{expl3}:
@@ -70,7 +71,7 @@
   {
     \tex_global:D \tex_let:D #1 #2
   }
-\cs_generate_variant:Nn \@@_fontface_gset_eq:NN {NV,cV}
+\cs_generate_variant:Nn \@@_fontface_gset_eq:NN {cN}
 %    \end{macrocode}
 % \end{macro}
 %

Modified: trunk/Master/texmf-dist/source/latex/unicode-math/unicode-math.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/unicode-math/unicode-math.dtx	2018-01-13 22:25:38 UTC (rev 46299)
+++ trunk/Master/texmf-dist/source/latex/unicode-math/unicode-math.dtx	2018-01-13 22:25:39 UTC (rev 46300)
@@ -1,15 +1,13 @@
 %%^^A%% unicode-math.dtx -- part of UNICODE-MATH <wspr.io/unicode-math>
 %%^^A%% Metadata for the package code, including files and versioning
 
-% \section{Package declaration}
+% \section{Package metadata}
 %
-% List all \texttt{dtx} files for
-% (a) the \texttt{ins} file and~(b) typesetting the code.
+% List all \texttt{dtx} files for (a) the \texttt{ins} file and~(b) typesetting the code.
 %    \begin{macrocode}
 %<*dtx>
 \def\DTXFILES{
   \DTX{unicode-math.dtx}
-  \DTX{um-code-base.dtx}
   \DTX{um-code-opening.dtx}
   \DTX{um-code-variables.dtx}
   \DTX{um-code-api.dtx}
@@ -25,39 +23,73 @@
   \DTX{um-code-mathmap.dtx}
   \DTX{um-code-sym-commands.dtx}
   \DTX{um-code-alphabets.dtx}
-  \DTX{um-code-epilogue.dtx}
   \DTX{um-code-primes.dtx}
   \DTX{um-code-sscript.dtx}
   \DTX{um-code-compat.dtx}
   \DTX{um-code-amsmath.dtx}
+  \DTX{um-code-epilogue.dtx}
 }
 %</dtx>
 %    \end{macrocode}
 %
-% Now exit if we're using plain \TeX; this would usually be the case when
-% loading this file with \texttt{unicode-math.ins}.
+% Now exit if we're using plain \TeX\ when loading this file with \texttt{unicode-math.ins}.
 %    \begin{macrocode}
 %<*dtx>
-\def\tmpa{plain}
-\ifx\tmpa\fmtname\expandafter\endinput\fi
+\ifx\plainoutput\undefined\else\expandafter\endinput\fi
 %</dtx>
 %    \end{macrocode}
 %
-% Declare the package version and date. For loading this file directly
-% as a \texttt{dtx} file, \cs{fileversion} and \cs{filedate} will be set
-% correctly when using \cs{GetFileInfo} without having to load the package
-% directly.
+% Metadata for documentation; the title and authors of the package.
 %    \begin{macrocode}
-%<base>\ProvidesPackage{unicode-math}
-%<package&XE>\ProvidesPackage{unicode-math-xetex}
-%<package&LU>\ProvidesPackage{unicode-math-luatex}
 %<*dtx>
-\ProvidesFile{unicode-math.dtx}
+\title{
+  Experimental Unicode mathematical typesetting:
+  The \pkg{unicode-math} package
+}
+\author{
+  \scshape Will Robertson\\
+  \itshape Philipp Stephani, Joseph Wright, Khaled Hosny, and others\\
+  \url{http://github.com/wspr/unicode-math}
+}
 %</dtx>
-%<*base|package>
-  [2018/01/07 v0.8j Unicode maths in XeLaTeX and LuaLaTeX]
-%</base|package>
 %    \end{macrocode}
+%
+% Declare the package version and date.
+%    \begin{macrocode}
+%<base>\RequirePackage{expl3}
+%<base>\ProvidesExplPackage{unicode-math}
+%<package&XE>\ProvidesExplPackage{unicode-math-xetex}
+%<package&LU>\ProvidesExplPackage{unicode-math-luatex}
+%<base|package>  {2018/01/13} {v0.8k} {Unicode maths in XeLaTeX and LuaLaTeX}
+%    \end{macrocode}
+%
+% Here the version and date are setup for typesetting the documentation.
+%    \begin{macrocode}
+%<*dtx>
+\date{
+  \def\filedate{2018/01/13}
+  \def\fileversion{v0.8k}
+  \filedate \qquad \fileversion
+}
+%</dtx>
+%    \end{macrocode}
+%
+% \section{The \texttt{unicode-math.sty} loading file}
+%
+% The \texttt{unicode-math.sty} file is a stub which loads necessary packages
+% and then splits into a XeTeX- or LuaTeX-specific version of the package.
+%
+%    \begin{macrocode}
+%<base>\sys_if_engine_luatex:T { \RequirePackageWithOptions{unicode-math-luatex} }
+%<base>\sys_if_engine_xetex:T  { \RequirePackageWithOptions{unicode-math-xetex}  }
+%<base>\sys_if_engine_pdftex:T
+%<base>  {
+%<base>    \msg_new:nnn {unicode-math} {not-pdftex}
+%<base>      { Cannot~ be~ run~ with~ pdfLaTeX!\\ Use~ XeLaTeX~ or~ LuaLaTeX~ instead. }
+%<base>    \msg_error:nn {unicode-math} {not-pdftex}
+%<base>  }
+%<base>\endinput
+%    \end{macrocode}
 
 \endinput
 

Modified: trunk/Master/texmf-dist/source/latex/unicode-math/unicode-math.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/unicode-math/unicode-math.ins	2018-01-13 22:25:38 UTC (rev 46299)
+++ trunk/Master/texmf-dist/source/latex/unicode-math/unicode-math.ins	2018-01-13 22:25:39 UTC (rev 46300)
@@ -7,6 +7,7 @@
 \keepsilent
 
 \declarepreamble\defaultpreamble
+
 ------------------------------------------------
 The UNICODE-MATH package  <wspr.io/unicode-math>
 ------------------------------------------------
@@ -14,11 +15,12 @@
 the conditions of the LaTeX Project Public License, version 1.3c or higher
 (your choice): <http://www.latex-project.org/lppl/>.
 ------------------------------------------------
-Copyright 2006-2017  Will Robertson, LPPL "maintainer"
+Copyright 2006-2018  Will Robertson, LPPL "maintainer"
 Copyright 2010-2017  Philipp Stephani
 Copyright 2011-2017  Joseph Wright
 Copyright 2012-2015  Khaled Hosny
 ------------------------------------------------
+
 \endpreamble
 
 \nopostamble
@@ -27,17 +29,19 @@
 \def\FROM#1#2{\from{#1}{#2}}
 \def\FROMDEBUG#1#2{\from{#1}{#2,debug}}
 \ifx\DEBUG\undefined\else\let\FROM\FROMDEBUG\fi
+\def\Msg#1{}
+\def\Generate#1#2{%
+  \immediate\write\ttyout{Generating file "#1"}%
+  \generate{\file{#1}{#2}}%
+}
 
-\generate{\file{unicode-math.sty}{
-    \FROM{unicode-math.dtx}{base}
-    \FROM{um-code-base.dtx}{base}
-  }}
+\Generate{unicode-math.sty}{\FROM{unicode-math.dtx}{base}}
 
 \def\DTX#1{\FROM{#1}{package,XE}}
-\generate{\file{unicode-math-xetex.sty}{\DTXFILES}}
+\Generate{unicode-math-xetex.sty}{\DTXFILES}
 
 \def\DTX#1{\FROM{#1}{package,LU}}
-\generate{\file{unicode-math-luatex.sty}{\DTXFILES}}
+\Generate{unicode-math-luatex.sty}{\DTXFILES}
 
 \endbatchfile
 \endinput

Modified: trunk/Master/texmf-dist/tex/latex/unicode-math/unicode-math-luatex.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/unicode-math/unicode-math-luatex.sty	2018-01-13 22:25:38 UTC (rev 46299)
+++ trunk/Master/texmf-dist/tex/latex/unicode-math/unicode-math-luatex.sty	2018-01-13 22:25:39 UTC (rev 46300)
@@ -5,7 +5,6 @@
 %% The original source files were:
 %%
 %% unicode-math.dtx  (with options: `package,LU')
-%% um-code-base.dtx  (with options: `package,LU')
 %% um-code-opening.dtx  (with options: `package,LU')
 %% um-code-variables.dtx  (with options: `package,LU')
 %% um-code-api.dtx  (with options: `package,LU')
@@ -21,11 +20,12 @@
 %% um-code-mathmap.dtx  (with options: `package,LU')
 %% um-code-sym-commands.dtx  (with options: `package,LU')
 %% um-code-alphabets.dtx  (with options: `package,LU')
-%% um-code-epilogue.dtx  (with options: `package,LU')
 %% um-code-primes.dtx  (with options: `package,LU')
 %% um-code-sscript.dtx  (with options: `package,LU')
 %% um-code-compat.dtx  (with options: `package,LU')
 %% um-code-amsmath.dtx  (with options: `package,LU')
+%% um-code-epilogue.dtx  (with options: `package,LU')
+%% 
 %% ------------------------------------------------
 %% The UNICODE-MATH package  <wspr.io/unicode-math>
 %% ------------------------------------------------
@@ -33,26 +33,26 @@
 %% the conditions of the LaTeX Project Public License, version 1.3c or higher
 %% (your choice): <http://www.latex-project.org/lppl/>.
 %% ------------------------------------------------
-%% Copyright 2006-2017  Will Robertson, LPPL "maintainer"
+%% Copyright 2006-2018  Will Robertson, LPPL "maintainer"
 %% Copyright 2010-2017  Philipp Stephani
 %% Copyright 2011-2017  Joseph Wright
 %% Copyright 2012-2015  Khaled Hosny
 %% ------------------------------------------------
+%% 
 %%^^A%% unicode-math.dtx -- part of UNICODE-MATH <wspr.io/unicode-math>
 %%^^A%% Metadata for the package code, including files and versioning
 
-\ProvidesPackage{unicode-math-luatex}
-  [2018/01/07 v0.8j Unicode maths in XeLaTeX and LuaLaTeX]
+\ProvidesExplPackage{unicode-math-luatex}
+  {2018/01/13} {v0.8k} {Unicode maths in XeLaTeX and LuaLaTeX}
 
-%%^^A%% um-code-base.dtx -- part of UNICODE-MATH <wspr.io/unicode-math>
-%%^^A%% Definition of unicode-math.sty, which splits and loads according to engine.
-
-
 %%^^A%% um-code-opening.dtx -- part of UNICODE-MATH <wspr.io/unicode-math>
 %%^^A%% Assorted initialisation tasks, including some low-level function definitions.
 
+\RequirePackage{xparse,l3keys2e}
+\RequirePackage{fontspec}
+\RequirePackage{filehook}
+\RequirePackage{fix-cm}
 \RequirePackage{lualatex-math}
-\ExplSyntaxOn
 \cs_set_protected_nopar:Npn \exp_last_unbraced:NNx { \::N \::x_unbraced \::: }
 \cs_generate_variant:Nn \fontspec_set_family:Nnn {Nx}
 \cs_generate_variant:Nn \prop_get:NnNTF {cx}
@@ -73,7 +73,7 @@
   {
     \tex_global:D \tex_let:D #1 #2
   }
-\cs_generate_variant:Nn \__um_fontface_gset_eq:NN {NV,cV}
+\cs_generate_variant:Nn \__um_fontface_gset_eq:NN {cN}
 \cs_set:Npn \__um_set_mathcode:nnnn #1#2#3#4
   {
     \Umathcode \int_eval:n {#1} =
@@ -1198,7 +1198,7 @@
 
     \group_begin:
       \fontfamily { \l__um_trial_family_tl } \selectfont
-      \__um_fontface_gset_eq:NV \g__um_trial_font \font at name
+      \exp_last_unbraced:NNo \__um_fontface_gset_eq:NN \g__um_trial_font \font at name
       \fontspec_if_script:nF {math}
         {
           \bool_gset_false:N \l__um_ot_math_bool
@@ -1242,11 +1242,11 @@
     \int_gincr:N \g__um_fonts_used_int
     \group_begin:
       \fontfamily { \l__um_family_tl } \selectfont
-      \__um_fontface_gset_eq:cV {g__um_mathfont_ \int_use:N \g__um_fonts_used_int _font} \font at name
+      \exp_last_unbraced:Nno \__um_fontface_gset_eq:cN {g__um_mathfont_ \int_use:N \g__um_fonts_used_int _font} \font at name
       \tl_gset:Nx \g__um_curr_font_cmd_tl { \exp_not:c {g__um_mathfont_ \int_use:N \g__um_fonts_used_int _font} }
       \bool_if:NT \l__um_init_bool
 {
-\__um_fontface_gset_eq:NV \l__um_font \font at name
+\exp_last_unbraced:NNo \__um_fontface_gset_eq:NN \l__um_font \font at name
 }
       \fontspec_if_script:nF {math}
         {
@@ -1819,63 +1819,61 @@
 
 \cs_new:Npn \__um_setup_alphabets:
   {
-
-    \bool_if:NTF \l__um_init_bool
+    \bool_if:NTF \l__um_init_bool { \__um_setup_alphabets_implicit: }
       {
-        % IMPLICIT
-        \__um_log:n {setup-implicit}
-        \seq_gset_eq:NN \g__um_mathalph_seq \g__um_default_mathalph_seq
-        \bool_set_true:N \l__um_implicit_alph_bool
-        \__um_maybe_init_alphabet:n  {sf}
-        \__um_maybe_init_alphabet:n  {bf}
-        \__um_maybe_init_alphabet:n  {bfsf}
-        \cs_set_eq:NN \__um_set_mathalphabet_char:nnn \__um_mathmap_noparse:nnn
-        \cs_set_eq:NN \__um_map_char_single:nn \__um_map_char_noparse:nn
-        \__um_mathalph_map:
-        \seq_if_empty:NF \l__um_missing_alph_seq { \__um_log:n { missing-alphabets } }
+        \seq_if_empty:NF \g__um_mathalph_seq { \__um_setup_alphabets_explicit: }
+        \clist_if_empty:NF \l__um_mathmap_charints_clist { \__um_setup_alphabets_inherit: }
       }
+  }
+\cs_new:Nn \__um_setup_alphabets_implicit:
+  {
+    \__um_log:n {setup-implicit}
+    \seq_gset_eq:NN \g__um_mathalph_seq \g__um_default_mathalph_seq
+    \bool_set_true:N \l__um_implicit_alph_bool
+    \__um_maybe_init_alphabet:n  {sf}
+    \__um_maybe_init_alphabet:n  {bf}
+    \__um_maybe_init_alphabet:n  {bfsf}
+    \cs_set_eq:NN \__um_set_mathalphabet_char:nnn \__um_mathmap_noparse:nnn
+    \cs_set_eq:NN \__um_map_char_single:nn \__um_map_char_noparse:nn
+    \__um_mathalph_map:
+    \seq_if_empty:NF \l__um_missing_alph_seq { \__um_log:n { missing-alphabets } }
+  }
+\cs_new:Nn \__um_setup_alphabets_explicit:
+  {
+    \__um_log:n {setup-explicit}
+    \bool_set_false:N \l__um_implicit_alph_bool
+    \cs_set_eq:NN \__um_set_mathalphabet_char:nnn \__um_mathmap_noparse:nnn
+    \cs_set_eq:NN \__um_map_char_single:nn \__um_map_char_noparse:nn
+    \__um_mathalph_map:
+    \seq_if_empty:NF \l__um_missing_alph_seq { \__um_log:n { missing-alphabets } }
+  }
+\cs_new:Nn \__um_setup_alphabets_inherit:
+  {
+    \seq_gclear:N \g__um_mathalph_seq
+    \seq_map_inline:Nn \g__um_default_mathalph_seq
       {
-        \seq_if_empty:NF \g__um_mathalph_seq
-          {
-            % EXPLICIT
-            \__um_log:n {setup-explicit}
-            \bool_set_false:N \l__um_implicit_alph_bool
-            \cs_set_eq:NN \__um_set_mathalphabet_char:nnn \__um_mathmap_noparse:nnn
-            \cs_set_eq:NN \__um_map_char_single:nn \__um_map_char_noparse:nn
-            \__um_mathalph_map:
-            \seq_if_empty:NF \l__um_missing_alph_seq { \__um_log:n { missing-alphabets } }
-          }
+        \tl_set:No    \l__um_style_tl       { \use_i:nnn   ##1 }
+        \clist_set:No \l__um_alphabet_clist { \use_ii:nnn  ##1 }
 
-        % INHERIT
-        \clist_if_empty:NF \l__um_mathmap_charints_clist
+        \clist_map_inline:Nn \l__um_alphabet_clist
           {
-            \seq_gclear:N \g__um_mathalph_seq
-            \seq_map_inline:Nn \g__um_default_mathalph_seq
+            \clist_map_inline:cn {g__um_named_slots_ \l__um_style_tl _ ####1 _clist}
               {
-                \tl_set:No    \l__um_style_tl       { \use_i:nnn   ##1 }
-                \clist_set:No \l__um_alphabet_clist { \use_ii:nnn  ##1 }
-
-                \clist_map_inline:Nn \l__um_alphabet_clist
+                \clist_map_inline:Nn \l__um_mathmap_charints_clist
                   {
-                    \clist_map_inline:cn {g__um_named_slots_ \l__um_style_tl _ ####1 _clist}
+                    \__um_int_if_slot_in_range:nnT {################1} {########1}
                       {
-                        \clist_map_inline:Nn \l__um_mathmap_charints_clist
-                          {
-                            \__um_int_if_slot_in_range:nnT {################1} {########1}
-                              {
-                                \seq_gput_right:Nn \g__um_mathalph_seq {##1}
-                                \clist_map_break:n { \clist_map_break:n { \clist_map_break: } }
-                              }
-                          }
+                        \seq_gput_right:Nn \g__um_mathalph_seq {##1}
+                        \clist_map_break:n { \clist_map_break:n { \clist_map_break: } }
                       }
                   }
               }
           }
+      }
 
-        \cs_set_eq:NN \__um_set_mathalphabet_char:nnn \__um_mathmap_parse:nnn
-        \cs_set_eq:NN \__um_map_char_single:nn \__um_map_char_parse:nn
-        \__um_mathalph_map:
-      }
+    \cs_set_eq:NN \__um_set_mathalphabet_char:nnn \__um_mathmap_parse:nnn
+    \cs_set_eq:NN \__um_map_char_single:nn \__um_map_char_parse:nn
+    \__um_mathalph_map:
   }
 \cs_set:Nn \__um_mathalph_map:
   {
@@ -3120,179 +3118,6 @@
    }
  }
 
-%%^^A%% um-code-epilogue.dtx -- part of UNICODE-MATH <wspr.io/unicode-math>
-%%^^A%% Assorted definitions to close up.
-
-\AtBeginDocument { \__um_resolve_greek: }
-\cs_new:Npn \__um_resolve_greek:
-  {
-    \clist_map_inline:nn
-      {
-        Alpha,Beta,Gamma,Delta,Epsilon,Zeta,Eta,Theta,Iota,Kappa,Lambda,
-        alpha,beta,gamma,delta,epsilon,zeta,eta,theta,iota,kappa,lambda,
-        Mu,Nu,Xi,Omicron,Pi,Rho,Sigma,Tau,Upsilon,Phi,Chi,Psi,Omega,
-        mu,nu,xi,omicron,pi,rho,sigma,tau,upsilon,phi,chi,psi,omega,
-        varTheta,varsigma,vartheta,varkappa,varrho,varpi,varepsilon,varphi
-      }
-      {
-        \tl_set:cx {##1} { \exp_not:c { mit ##1 } }
-        \tl_set:cx {up ##1} { \exp_not:N \symup \exp_not:c { ##1 } }
-        \tl_set:cx {it ##1} { \exp_not:N \symit \exp_not:c { ##1 } }
-      }
-  }
-\AtBeginDocument{ \@ifpackageloaded { amsmath } { } { \__um_redefine_radical: } }
-\cs_new:Nn \__um_redefine_radical:
-  {
-    \cs_set:Npn \root ##1 \of ##2
-      {
-        \Uroot \l__um_radical_sqrt_tl { ##1 } { ##2 }
-      }
-  }
-\cs_new:Nn \__um_which_frac:nn
-  {
-    \bool_if:NTF \l__um_smallfrac_bool {\tfrac} {\frac} {#1} {#2}
-  }
-\cs_new:Npn \__um_setup_active_frac:
-  {
-    \__um_mathactive_remap:nn {"2189}  { \__um_which_frac:nn {0} {3}  }
-    \__um_mathactive_remap:nn {"2152}  { \__um_which_frac:nn {1} {10} }
-    \__um_mathactive_remap:nn {"2151}  { \__um_which_frac:nn {1} {9}  }
-    \__um_mathactive_remap:nn {"215B}  { \__um_which_frac:nn {1} {8}  }
-    \__um_mathactive_remap:nn {"2150}  { \__um_which_frac:nn {1} {7}  }
-    \__um_mathactive_remap:nn {"2159}  { \__um_which_frac:nn {1} {6}  }
-    \__um_mathactive_remap:nn {"2155}  { \__um_which_frac:nn {1} {5}  }
-    \__um_mathactive_remap:nn {"00BC}  { \__um_which_frac:nn {1} {4}  }
-    \__um_mathactive_remap:nn {"2153}  { \__um_which_frac:nn {1} {3}  }
-    \__um_mathactive_remap:nn {"215C}  { \__um_which_frac:nn {3} {8}  }
-    \__um_mathactive_remap:nn {"2156}  { \__um_which_frac:nn {2} {5}  }
-    \__um_mathactive_remap:nn {"00BD}  { \__um_which_frac:nn {1} {2}  }
-    \__um_mathactive_remap:nn {"2157}  { \__um_which_frac:nn {3} {5}  }
-    \__um_mathactive_remap:nn {"215D}  { \__um_which_frac:nn {5} {8}  }
-    \__um_mathactive_remap:nn {"2154}  { \__um_which_frac:nn {2} {3}  }
-    \__um_mathactive_remap:nn {"00BE}  { \__um_which_frac:nn {3} {4}  }
-    \__um_mathactive_remap:nn {"2158}  { \__um_which_frac:nn {4} {5}  }
-    \__um_mathactive_remap:nn {"215A}  { \__um_which_frac:nn {5} {6}  }
-    \__um_mathactive_remap:nn {"215E}  { \__um_which_frac:nn {7} {8}  }
-  }
-\AtBeginDocument { \__um_setup_active_frac: }
-\protected\def\to{\rightarrow}
-\protected\def\le{\leq}
-\protected\def\ge{\geq}
-\protected\def\neq{\ne}
-\protected\def\triangle{\mathord{\bigtriangleup}}
-\protected\def\bigcirc{\mdlgwhtcircle}
-\protected\def\circ{\vysmwhtcircle}
-\protected\def\bullet{\smblkcircle}
-\protected\def\mathyen{\yen}
-\protected\def\mathsterling{\sterling}
-\protected\def\diamond{\smwhtdiamond}
-\protected\def\emptyset{\varnothing}
-\protected\def\hbar{\hslash}
-\protected\def\land{\wedge}
-\protected\def\lor{\vee}
-\protected\def\owns{\ni}
-\protected\def\gets{\leftarrow}
-\protected\def\mathring{\ocirc}
-\protected\def\lnot{\neg}
-\protected\def\longdivision{\longdivisionsign}
-\protected\def\backepsilon{\upbackepsilon}
-\protected\def\eth{\matheth}
-\protected\def\dbkarow {\dbkarrow}
-\protected\def\drbkarow{\drbkarrow}
-\protected\def\hksearow{\hksearrow}
-\protected\def\hkswarow{\hkswarrow}
-\protected\def\smallint{\mathop{\textstyle\int}\limits}
-\cs_set_eq:NN \latexe_underbar:n \underbar
-\renewcommand\underbar
-  {
-    \mode_if_math:TF \mathunderbar \latexe_underbar:n
-  }
-\@ifpackageloaded{amsmath}
-  {
-    % define their own colon, perhaps I should just steal it. (It does look much better.)
-  }
-  {
-    \cs_set_protected:Npn \colon
-      {
-        \bool_if:NTF \g__um_literal_colon_bool {:} { \mathpunct{:} }
-      }
-  }
-\protected\def\digamma{\updigamma}
-\protected\def\Digamma{\upDigamma}
-\cs_set_protected:Npn \| {\Vert}
-\cs_set_protected:Npn \mathellipsis {\mathinner{\unicodeellipsis}}
-\cs_set_protected:Npn \cdots {\mathinner{\unicodecdots}}
-\cs_set_eq:NN \__um_text_slash: \slash
-\cs_set_protected:Npn \slash
-  {
-    \mode_if_math:TF {\mathslash} {\__um_text_slash:}
-  }
-\DeclareDocumentCommand \not {m}
-  {
-    \tl_set:Nx \l__um_not_token_name_tl { \cs_to_str:N #1 }
-    \tl_if_empty:NT \l__um_not_token_name_tl
-      {
-        \tl_set:Nx \l__um_not_token_name_tl { \token_to_str:N #1 }
-      }
-    \cs_if_exist:cTF { not \l__um_not_token_name_tl }
-      {
-        \use:c { not \l__um_not_token_name_tl }
-      }
-      {
-        \cs_if_exist:cTF { n \l__um_not_token_name_tl }
-          {
-            \use:c { n \l__um_not_token_name_tl }
-          }
-          {
-            \tl_if_eq:nnTF {#1} {$} { \notaccent{} } { \notaccent } #1
-          }
-      }
-  }
-\DeclareDocumentCommand \NewNegationCommand {mm}
-  {
-    \__um_set_negation_command:Nnn \cs_new_protected:cpn {#1} {#2}
-  }
-\DeclareDocumentCommand \RenewNegationCommand {mm}
-  {
-    \__um_set_negation_command:Nnn \cs_set_protected:cpn {#1} {#2}
-  }
-\cs_set:Nn \__um_set_negation_command:Nnn
-  {
-    \tl_set:Nx \l__um_not_token_name_tl { \cs_to_str:N #2 }
-    \tl_if_empty:NT \l__um_not_token_name_tl
-      {
-        \tl_set:Nx \l__um_not_token_name_tl { \token_to_str:N #2 }
-      }
-    #1 { not \l__um_not_token_name_tl } { #3 }
-  }
-\NewNegationCommand { = }    { \neq   }
-\NewNegationCommand { < }    { \nless }
-\NewNegationCommand { > }    { \ngtr  }
-\NewNegationCommand { \gets     } { \nleftarrow }
-\NewNegationCommand { \simeq    } { \nsime      }
-\NewNegationCommand { \equal    } { \ne         }
-\NewNegationCommand { \le       } { \nleq       }
-\NewNegationCommand { \ge       } { \ngeq       }
-\NewNegationCommand { \greater  } { \ngtr       }
-\NewNegationCommand { \forksnot } { \forks      }
-\int_step_inline:nnnn {0} {1} {9}
-  {
-    \__um_mathactive_remap:nn {"FF10+#1} {\char\int_eval:n{`\0+#1}}
-  }
-\int_step_inline:nnnn {0} {1} {26}
-  {
-    \__um_mathactive_remap:nn {"FF21+#1} {\char\int_eval:n{`\A+#1}}
-    \__um_mathactive_remap:nn {"FF41+#1} {\char\int_eval:n{`\a+#1}}
-  }
-\cs_new:Nn \__um_undeclare_symbol:N
-  {
-    \cs_set_protected:Npn #1
-      { \__um_error:nx {legacy-char-not-supported} { \token_to_str:N #1 } }
-  }
-\__um_undeclare_symbol:N \arrowvert
-\__um_undeclare_symbol:N \Arrowvert
-\__um_undeclare_symbol:N \bracevert
-
 %%^^A%% um-code-primes.dtx -- part of UNICODE-MATH <wspr.io/unicode-math>
 %%^^A%% The definitions needed for the input of primes.
 
@@ -3874,3 +3699,177 @@
     }
   }
 
+%%^^A%% um-code-epilogue.dtx -- part of UNICODE-MATH <wspr.io/unicode-math>
+%%^^A%% Assorted definitions to close up.
+
+\AtBeginDocument { \__um_resolve_greek: }
+\cs_new:Npn \__um_resolve_greek:
+  {
+    \clist_map_inline:nn
+      {
+        Alpha,Beta,Gamma,Delta,Epsilon,Zeta,Eta,Theta,Iota,Kappa,Lambda,
+        alpha,beta,gamma,delta,epsilon,zeta,eta,theta,iota,kappa,lambda,
+        Mu,Nu,Xi,Omicron,Pi,Rho,Sigma,Tau,Upsilon,Phi,Chi,Psi,Omega,
+        mu,nu,xi,omicron,pi,rho,sigma,tau,upsilon,phi,chi,psi,omega,
+        varTheta,varsigma,vartheta,varkappa,varrho,varpi,varepsilon,varphi
+      }
+      {
+        \tl_set:cx {##1} { \exp_not:c { mit ##1 } }
+        \tl_set:cx {up ##1} { \exp_not:N \symup \exp_not:c { ##1 } }
+        \tl_set:cx {it ##1} { \exp_not:N \symit \exp_not:c { ##1 } }
+      }
+  }
+\AtBeginDocument{ \@ifpackageloaded { amsmath } { } { \__um_redefine_radical: } }
+\cs_new:Nn \__um_redefine_radical:
+  {
+    \cs_set:Npn \root ##1 \of ##2
+      {
+        \Uroot \l__um_radical_sqrt_tl { ##1 } { ##2 }
+      }
+  }
+\cs_new:Nn \__um_which_frac:nn
+  {
+    \bool_if:NTF \l__um_smallfrac_bool {\tfrac} {\frac} {#1} {#2}
+  }
+\cs_new:Npn \__um_setup_active_frac:
+  {
+    \__um_mathactive_remap:nn {"2189}  { \__um_which_frac:nn {0} {3}  }
+    \__um_mathactive_remap:nn {"2152}  { \__um_which_frac:nn {1} {10} }
+    \__um_mathactive_remap:nn {"2151}  { \__um_which_frac:nn {1} {9}  }
+    \__um_mathactive_remap:nn {"215B}  { \__um_which_frac:nn {1} {8}  }
+    \__um_mathactive_remap:nn {"2150}  { \__um_which_frac:nn {1} {7}  }
+    \__um_mathactive_remap:nn {"2159}  { \__um_which_frac:nn {1} {6}  }
+    \__um_mathactive_remap:nn {"2155}  { \__um_which_frac:nn {1} {5}  }
+    \__um_mathactive_remap:nn {"00BC}  { \__um_which_frac:nn {1} {4}  }
+    \__um_mathactive_remap:nn {"2153}  { \__um_which_frac:nn {1} {3}  }
+    \__um_mathactive_remap:nn {"215C}  { \__um_which_frac:nn {3} {8}  }
+    \__um_mathactive_remap:nn {"2156}  { \__um_which_frac:nn {2} {5}  }
+    \__um_mathactive_remap:nn {"00BD}  { \__um_which_frac:nn {1} {2}  }
+    \__um_mathactive_remap:nn {"2157}  { \__um_which_frac:nn {3} {5}  }
+    \__um_mathactive_remap:nn {"215D}  { \__um_which_frac:nn {5} {8}  }
+    \__um_mathactive_remap:nn {"2154}  { \__um_which_frac:nn {2} {3}  }
+    \__um_mathactive_remap:nn {"00BE}  { \__um_which_frac:nn {3} {4}  }
+    \__um_mathactive_remap:nn {"2158}  { \__um_which_frac:nn {4} {5}  }
+    \__um_mathactive_remap:nn {"215A}  { \__um_which_frac:nn {5} {6}  }
+    \__um_mathactive_remap:nn {"215E}  { \__um_which_frac:nn {7} {8}  }
+  }
+\AtBeginDocument { \__um_setup_active_frac: }
+\protected\def\to{\rightarrow}
+\protected\def\le{\leq}
+\protected\def\ge{\geq}
+\protected\def\neq{\ne}
+\protected\def\triangle{\mathord{\bigtriangleup}}
+\protected\def\bigcirc{\mdlgwhtcircle}
+\protected\def\circ{\vysmwhtcircle}
+\protected\def\bullet{\smblkcircle}
+\protected\def\mathyen{\yen}
+\protected\def\mathsterling{\sterling}
+\protected\def\diamond{\smwhtdiamond}
+\protected\def\emptyset{\varnothing}
+\protected\def\hbar{\hslash}
+\protected\def\land{\wedge}
+\protected\def\lor{\vee}
+\protected\def\owns{\ni}
+\protected\def\gets{\leftarrow}
+\protected\def\mathring{\ocirc}
+\protected\def\lnot{\neg}
+\protected\def\longdivision{\longdivisionsign}
+\protected\def\backepsilon{\upbackepsilon}
+\protected\def\eth{\matheth}
+\protected\def\dbkarow {\dbkarrow}
+\protected\def\drbkarow{\drbkarrow}
+\protected\def\hksearow{\hksearrow}
+\protected\def\hkswarow{\hkswarrow}
+\protected\def\smallint{\mathop{\textstyle\int}\limits}
+\cs_set_eq:NN \latexe_underbar:n \underbar
+\renewcommand\underbar
+  {
+    \mode_if_math:TF \mathunderbar \latexe_underbar:n
+  }
+\@ifpackageloaded{amsmath}
+  {
+    % define their own colon, perhaps I should just steal it. (It does look much better.)
+  }
+  {
+    \cs_set_protected:Npn \colon
+      {
+        \bool_if:NTF \g__um_literal_colon_bool {:} { \mathpunct{:} }
+      }
+  }
+\protected\def\digamma{\updigamma}
+\protected\def\Digamma{\upDigamma}
+\cs_set_protected:Npn \| {\Vert}
+\cs_set_protected:Npn \mathellipsis {\mathinner{\unicodeellipsis}}
+\cs_set_protected:Npn \cdots {\mathinner{\unicodecdots}}
+\cs_set_eq:NN \__um_text_slash: \slash
+\cs_set_protected:Npn \slash
+  {
+    \mode_if_math:TF {\mathslash} {\__um_text_slash:}
+  }
+\DeclareDocumentCommand \not {m}
+  {
+    \tl_set:Nx \l__um_not_token_name_tl { \cs_to_str:N #1 }
+    \tl_if_empty:NT \l__um_not_token_name_tl
+      {
+        \tl_set:Nx \l__um_not_token_name_tl { \token_to_str:N #1 }
+      }
+    \cs_if_exist:cTF { not \l__um_not_token_name_tl }
+      {
+        \use:c { not \l__um_not_token_name_tl }
+      }
+      {
+        \cs_if_exist:cTF { n \l__um_not_token_name_tl }
+          {
+            \use:c { n \l__um_not_token_name_tl }
+          }
+          {
+            \tl_if_eq:nnTF {#1} {$} { \notaccent{} } { \notaccent } #1
+          }
+      }
+  }
+\DeclareDocumentCommand \NewNegationCommand {mm}
+  {
+    \__um_set_negation_command:Nnn \cs_new_protected:cpn {#1} {#2}
+  }
+\DeclareDocumentCommand \RenewNegationCommand {mm}
+  {
+    \__um_set_negation_command:Nnn \cs_set_protected:cpn {#1} {#2}
+  }
+\cs_set:Nn \__um_set_negation_command:Nnn
+  {
+    \tl_set:Nx \l__um_not_token_name_tl { \cs_to_str:N #2 }
+    \tl_if_empty:NT \l__um_not_token_name_tl
+      {
+        \tl_set:Nx \l__um_not_token_name_tl { \token_to_str:N #2 }
+      }
+    #1 { not \l__um_not_token_name_tl } { #3 }
+  }
+\NewNegationCommand { = }    { \neq   }
+\NewNegationCommand { < }    { \nless }
+\NewNegationCommand { > }    { \ngtr  }
+\NewNegationCommand { \gets     } { \nleftarrow }
+\NewNegationCommand { \simeq    } { \nsime      }
+\NewNegationCommand { \equal    } { \ne         }
+\NewNegationCommand { \le       } { \nleq       }
+\NewNegationCommand { \ge       } { \ngeq       }
+\NewNegationCommand { \greater  } { \ngtr       }
+\NewNegationCommand { \forksnot } { \forks      }
+\int_step_inline:nnnn {0} {1} {9}
+  {
+    \__um_mathactive_remap:nn {"FF10+#1} {\char\int_eval:n{`\0+#1}}
+  }
+\int_step_inline:nnnn {0} {1} {26}
+  {
+    \__um_mathactive_remap:nn {"FF21+#1} {\char\int_eval:n{`\A+#1}}
+    \__um_mathactive_remap:nn {"FF41+#1} {\char\int_eval:n{`\a+#1}}
+  }
+\cs_new:Nn \__um_undeclare_symbol:N
+  {
+    \cs_set_protected:Npn #1
+      { \__um_error:nx {legacy-char-not-supported} { \token_to_str:N #1 } }
+  }
+\__um_undeclare_symbol:N \arrowvert
+\__um_undeclare_symbol:N \Arrowvert
+\__um_undeclare_symbol:N \bracevert
+\endinput
+

Modified: trunk/Master/texmf-dist/tex/latex/unicode-math/unicode-math-xetex.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/unicode-math/unicode-math-xetex.sty	2018-01-13 22:25:38 UTC (rev 46299)
+++ trunk/Master/texmf-dist/tex/latex/unicode-math/unicode-math-xetex.sty	2018-01-13 22:25:39 UTC (rev 46300)
@@ -5,7 +5,6 @@
 %% The original source files were:
 %%
 %% unicode-math.dtx  (with options: `package,XE')
-%% um-code-base.dtx  (with options: `package,XE')
 %% um-code-opening.dtx  (with options: `package,XE')
 %% um-code-variables.dtx  (with options: `package,XE')
 %% um-code-api.dtx  (with options: `package,XE')
@@ -21,11 +20,12 @@
 %% um-code-mathmap.dtx  (with options: `package,XE')
 %% um-code-sym-commands.dtx  (with options: `package,XE')
 %% um-code-alphabets.dtx  (with options: `package,XE')
-%% um-code-epilogue.dtx  (with options: `package,XE')
 %% um-code-primes.dtx  (with options: `package,XE')
 %% um-code-sscript.dtx  (with options: `package,XE')
 %% um-code-compat.dtx  (with options: `package,XE')
 %% um-code-amsmath.dtx  (with options: `package,XE')
+%% um-code-epilogue.dtx  (with options: `package,XE')
+%% 
 %% ------------------------------------------------
 %% The UNICODE-MATH package  <wspr.io/unicode-math>
 %% ------------------------------------------------
@@ -33,25 +33,25 @@
 %% the conditions of the LaTeX Project Public License, version 1.3c or higher
 %% (your choice): <http://www.latex-project.org/lppl/>.
 %% ------------------------------------------------
-%% Copyright 2006-2017  Will Robertson, LPPL "maintainer"
+%% Copyright 2006-2018  Will Robertson, LPPL "maintainer"
 %% Copyright 2010-2017  Philipp Stephani
 %% Copyright 2011-2017  Joseph Wright
 %% Copyright 2012-2015  Khaled Hosny
 %% ------------------------------------------------
+%% 
 %%^^A%% unicode-math.dtx -- part of UNICODE-MATH <wspr.io/unicode-math>
 %%^^A%% Metadata for the package code, including files and versioning
 
-\ProvidesPackage{unicode-math-xetex}
-  [2018/01/07 v0.8j Unicode maths in XeLaTeX and LuaLaTeX]
+\ProvidesExplPackage{unicode-math-xetex}
+  {2018/01/13} {v0.8k} {Unicode maths in XeLaTeX and LuaLaTeX}
 
-%%^^A%% um-code-base.dtx -- part of UNICODE-MATH <wspr.io/unicode-math>
-%%^^A%% Definition of unicode-math.sty, which splits and loads according to engine.
-
-
 %%^^A%% um-code-opening.dtx -- part of UNICODE-MATH <wspr.io/unicode-math>
 %%^^A%% Assorted initialisation tasks, including some low-level function definitions.
 
-\ExplSyntaxOn
+\RequirePackage{xparse,l3keys2e}
+\RequirePackage{fontspec}
+\RequirePackage{filehook}
+\RequirePackage{fix-cm}
 \cs_set_protected_nopar:Npn \exp_last_unbraced:NNx { \::N \::x_unbraced \::: }
 \cs_generate_variant:Nn \fontspec_set_family:Nnn {Nx}
 \cs_generate_variant:Nn \prop_get:NnNTF {cx}
@@ -72,7 +72,7 @@
   {
     \tex_global:D \tex_let:D #1 #2
   }
-\cs_generate_variant:Nn \__um_fontface_gset_eq:NN {NV,cV}
+\cs_generate_variant:Nn \__um_fontface_gset_eq:NN {cN}
 \cs_set:Npn \__um_set_mathcode:nnnn #1#2#3#4
   {
     \Umathcode \int_eval:n {#1} =
@@ -1188,7 +1188,7 @@
 
     \group_begin:
       \fontfamily { \l__um_trial_family_tl } \selectfont
-      \__um_fontface_gset_eq:NV \g__um_trial_font \font at name
+      \exp_last_unbraced:NNo \__um_fontface_gset_eq:NN \g__um_trial_font \font at name
       \fontspec_if_script:nF {math}
         {
           \bool_gset_false:N \l__um_ot_math_bool
@@ -1230,11 +1230,11 @@
     \int_gincr:N \g__um_fonts_used_int
     \group_begin:
       \fontfamily { \l__um_family_tl } \selectfont
-      \__um_fontface_gset_eq:cV {g__um_mathfont_ \int_use:N \g__um_fonts_used_int _font} \font at name
+      \exp_last_unbraced:Nno \__um_fontface_gset_eq:cN {g__um_mathfont_ \int_use:N \g__um_fonts_used_int _font} \font at name
       \tl_gset:Nx \g__um_curr_font_cmd_tl { \exp_not:c {g__um_mathfont_ \int_use:N \g__um_fonts_used_int _font} }
       \bool_if:NT \l__um_init_bool
 {
-\__um_fontface_gset_eq:NV \l__um_font \font at name
+\exp_last_unbraced:NNo \__um_fontface_gset_eq:NN \l__um_font \font at name
 }
       \fontspec_if_script:nF {math}
         {
@@ -1750,63 +1750,61 @@
 
 \cs_new:Npn \__um_setup_alphabets:
   {
-
-    \bool_if:NTF \l__um_init_bool
+    \bool_if:NTF \l__um_init_bool { \__um_setup_alphabets_implicit: }
       {
-        % IMPLICIT
-        \__um_log:n {setup-implicit}
-        \seq_gset_eq:NN \g__um_mathalph_seq \g__um_default_mathalph_seq
-        \bool_set_true:N \l__um_implicit_alph_bool
-        \__um_maybe_init_alphabet:n  {sf}
-        \__um_maybe_init_alphabet:n  {bf}
-        \__um_maybe_init_alphabet:n  {bfsf}
-        \cs_set_eq:NN \__um_set_mathalphabet_char:nnn \__um_mathmap_noparse:nnn
-        \cs_set_eq:NN \__um_map_char_single:nn \__um_map_char_noparse:nn
-        \__um_mathalph_map:
-        \seq_if_empty:NF \l__um_missing_alph_seq { \__um_log:n { missing-alphabets } }
+        \seq_if_empty:NF \g__um_mathalph_seq { \__um_setup_alphabets_explicit: }
+        \clist_if_empty:NF \l__um_mathmap_charints_clist { \__um_setup_alphabets_inherit: }
       }
+  }
+\cs_new:Nn \__um_setup_alphabets_implicit:
+  {
+    \__um_log:n {setup-implicit}
+    \seq_gset_eq:NN \g__um_mathalph_seq \g__um_default_mathalph_seq
+    \bool_set_true:N \l__um_implicit_alph_bool
+    \__um_maybe_init_alphabet:n  {sf}
+    \__um_maybe_init_alphabet:n  {bf}
+    \__um_maybe_init_alphabet:n  {bfsf}
+    \cs_set_eq:NN \__um_set_mathalphabet_char:nnn \__um_mathmap_noparse:nnn
+    \cs_set_eq:NN \__um_map_char_single:nn \__um_map_char_noparse:nn
+    \__um_mathalph_map:
+    \seq_if_empty:NF \l__um_missing_alph_seq { \__um_log:n { missing-alphabets } }
+  }
+\cs_new:Nn \__um_setup_alphabets_explicit:
+  {
+    \__um_log:n {setup-explicit}
+    \bool_set_false:N \l__um_implicit_alph_bool
+    \cs_set_eq:NN \__um_set_mathalphabet_char:nnn \__um_mathmap_noparse:nnn
+    \cs_set_eq:NN \__um_map_char_single:nn \__um_map_char_noparse:nn
+    \__um_mathalph_map:
+    \seq_if_empty:NF \l__um_missing_alph_seq { \__um_log:n { missing-alphabets } }
+  }
+\cs_new:Nn \__um_setup_alphabets_inherit:
+  {
+    \seq_gclear:N \g__um_mathalph_seq
+    \seq_map_inline:Nn \g__um_default_mathalph_seq
       {
-        \seq_if_empty:NF \g__um_mathalph_seq
-          {
-            % EXPLICIT
-            \__um_log:n {setup-explicit}
-            \bool_set_false:N \l__um_implicit_alph_bool
-            \cs_set_eq:NN \__um_set_mathalphabet_char:nnn \__um_mathmap_noparse:nnn
-            \cs_set_eq:NN \__um_map_char_single:nn \__um_map_char_noparse:nn
-            \__um_mathalph_map:
-            \seq_if_empty:NF \l__um_missing_alph_seq { \__um_log:n { missing-alphabets } }
-          }
+        \tl_set:No    \l__um_style_tl       { \use_i:nnn   ##1 }
+        \clist_set:No \l__um_alphabet_clist { \use_ii:nnn  ##1 }
 
-        % INHERIT
-        \clist_if_empty:NF \l__um_mathmap_charints_clist
+        \clist_map_inline:Nn \l__um_alphabet_clist
           {
-            \seq_gclear:N \g__um_mathalph_seq
-            \seq_map_inline:Nn \g__um_default_mathalph_seq
+            \clist_map_inline:cn {g__um_named_slots_ \l__um_style_tl _ ####1 _clist}
               {
-                \tl_set:No    \l__um_style_tl       { \use_i:nnn   ##1 }
-                \clist_set:No \l__um_alphabet_clist { \use_ii:nnn  ##1 }
-
-                \clist_map_inline:Nn \l__um_alphabet_clist
+                \clist_map_inline:Nn \l__um_mathmap_charints_clist
                   {
-                    \clist_map_inline:cn {g__um_named_slots_ \l__um_style_tl _ ####1 _clist}
+                    \__um_int_if_slot_in_range:nnT {################1} {########1}
                       {
-                        \clist_map_inline:Nn \l__um_mathmap_charints_clist
-                          {
-                            \__um_int_if_slot_in_range:nnT {################1} {########1}
-                              {
-                                \seq_gput_right:Nn \g__um_mathalph_seq {##1}
-                                \clist_map_break:n { \clist_map_break:n { \clist_map_break: } }
-                              }
-                          }
+                        \seq_gput_right:Nn \g__um_mathalph_seq {##1}
+                        \clist_map_break:n { \clist_map_break:n { \clist_map_break: } }
                       }
                   }
               }
           }
+      }
 
-        \cs_set_eq:NN \__um_set_mathalphabet_char:nnn \__um_mathmap_parse:nnn
-        \cs_set_eq:NN \__um_map_char_single:nn \__um_map_char_parse:nn
-        \__um_mathalph_map:
-      }
+    \cs_set_eq:NN \__um_set_mathalphabet_char:nnn \__um_mathmap_parse:nnn
+    \cs_set_eq:NN \__um_map_char_single:nn \__um_map_char_parse:nn
+    \__um_mathalph_map:
   }
 \cs_set:Nn \__um_mathalph_map:
   {
@@ -3051,192 +3049,6 @@
    }
  }
 
-%%^^A%% um-code-epilogue.dtx -- part of UNICODE-MATH <wspr.io/unicode-math>
-%%^^A%% Assorted definitions to close up.
-
-\AtBeginDocument { \__um_resolve_greek: }
-\cs_new:Npn \__um_resolve_greek:
-  {
-    \clist_map_inline:nn
-      {
-        Alpha,Beta,Gamma,Delta,Epsilon,Zeta,Eta,Theta,Iota,Kappa,Lambda,
-        alpha,beta,gamma,delta,epsilon,zeta,eta,theta,iota,kappa,lambda,
-        Mu,Nu,Xi,Omicron,Pi,Rho,Sigma,Tau,Upsilon,Phi,Chi,Psi,Omega,
-        mu,nu,xi,omicron,pi,rho,sigma,tau,upsilon,phi,chi,psi,omega,
-        varTheta,varsigma,vartheta,varkappa,varrho,varpi,varepsilon,varphi
-      }
-      {
-        \tl_set:cx {##1} { \exp_not:c { mit ##1 } }
-        \tl_set:cx {up ##1} { \exp_not:N \symup \exp_not:c { ##1 } }
-        \tl_set:cx {it ##1} { \exp_not:N \symit \exp_not:c { ##1 } }
-      }
-  }
-\AtBeginDocument{ \@ifpackageloaded { amsmath } { } { \__um_redefine_radical: } }
-\cs_new:Nn \__um_redefine_radical:
-  {
-    \cs_set_nopar:Npn \r@@t ##1 ##2
-      {
-        \hbox_set:Nn \l_tmpa_box
-          {
-            \c_math_toggle_token \m at th
-            ##1 \sqrtsign { ##2 }
-            \c_math_toggle_token
-          }
-        \__um_mathstyle_scale:NnnN ##1 { \kern } { \fontdimen 63 \g__um_sqrt_font_cmd_tl } \g__um_sqrt_font_cmd_tl
-        \box_move_up:nn
-          {
-            (\box_ht:N \l_tmpa_box - \box_dp:N \l_tmpa_box) * \number \fontdimen 65 \g__um_sqrt_font_cmd_tl / 100
-          }
-          { \box_use:N \rootbox }
-        \__um_mathstyle_scale:NnnN ##1 { \kern } { \fontdimen 64 \g__um_sqrt_font_cmd_tl } \g__um_sqrt_font_cmd_tl
-        \box_use_clear:N \l_tmpa_box
-      }
-  }
-\cs_new:Nn \__um_which_frac:nn
-  {
-    \bool_if:NTF \l__um_smallfrac_bool {\tfrac} {\frac} {#1} {#2}
-  }
-\cs_new:Npn \__um_setup_active_frac:
-  {
-    \__um_mathactive_remap:nn {"2189}  { \__um_which_frac:nn {0} {3}  }
-    \__um_mathactive_remap:nn {"2152}  { \__um_which_frac:nn {1} {10} }
-    \__um_mathactive_remap:nn {"2151}  { \__um_which_frac:nn {1} {9}  }
-    \__um_mathactive_remap:nn {"215B}  { \__um_which_frac:nn {1} {8}  }
-    \__um_mathactive_remap:nn {"2150}  { \__um_which_frac:nn {1} {7}  }
-    \__um_mathactive_remap:nn {"2159}  { \__um_which_frac:nn {1} {6}  }
-    \__um_mathactive_remap:nn {"2155}  { \__um_which_frac:nn {1} {5}  }
-    \__um_mathactive_remap:nn {"00BC}  { \__um_which_frac:nn {1} {4}  }
-    \__um_mathactive_remap:nn {"2153}  { \__um_which_frac:nn {1} {3}  }
-    \__um_mathactive_remap:nn {"215C}  { \__um_which_frac:nn {3} {8}  }
-    \__um_mathactive_remap:nn {"2156}  { \__um_which_frac:nn {2} {5}  }
-    \__um_mathactive_remap:nn {"00BD}  { \__um_which_frac:nn {1} {2}  }
-    \__um_mathactive_remap:nn {"2157}  { \__um_which_frac:nn {3} {5}  }
-    \__um_mathactive_remap:nn {"215D}  { \__um_which_frac:nn {5} {8}  }
-    \__um_mathactive_remap:nn {"2154}  { \__um_which_frac:nn {2} {3}  }
-    \__um_mathactive_remap:nn {"00BE}  { \__um_which_frac:nn {3} {4}  }
-    \__um_mathactive_remap:nn {"2158}  { \__um_which_frac:nn {4} {5}  }
-    \__um_mathactive_remap:nn {"215A}  { \__um_which_frac:nn {5} {6}  }
-    \__um_mathactive_remap:nn {"215E}  { \__um_which_frac:nn {7} {8}  }
-  }
-\AtBeginDocument { \__um_setup_active_frac: }
-\protected\def\to{\rightarrow}
-\protected\def\le{\leq}
-\protected\def\ge{\geq}
-\protected\def\neq{\ne}
-\protected\def\triangle{\mathord{\bigtriangleup}}
-\protected\def\bigcirc{\mdlgwhtcircle}
-\protected\def\circ{\vysmwhtcircle}
-\protected\def\bullet{\smblkcircle}
-\protected\def\mathyen{\yen}
-\protected\def\mathsterling{\sterling}
-\protected\def\diamond{\smwhtdiamond}
-\protected\def\emptyset{\varnothing}
-\protected\def\hbar{\hslash}
-\protected\def\land{\wedge}
-\protected\def\lor{\vee}
-\protected\def\owns{\ni}
-\protected\def\gets{\leftarrow}
-\protected\def\mathring{\ocirc}
-\protected\def\lnot{\neg}
-\protected\def\longdivision{\longdivisionsign}
-\protected\def\backepsilon{\upbackepsilon}
-\protected\def\eth{\matheth}
-\protected\def\dbkarow {\dbkarrow}
-\protected\def\drbkarow{\drbkarrow}
-\protected\def\hksearow{\hksearrow}
-\protected\def\hkswarow{\hkswarrow}
-\protected\def\smallint{\mathop{\textstyle\int}\limits}
-\cs_set_eq:NN \latexe_underbar:n \underbar
-\renewcommand\underbar
-  {
-    \mode_if_math:TF \mathunderbar \latexe_underbar:n
-  }
-\@ifpackageloaded{amsmath}
-  {
-    % define their own colon, perhaps I should just steal it. (It does look much better.)
-  }
-  {
-    \cs_set_protected:Npn \colon
-      {
-        \bool_if:NTF \g__um_literal_colon_bool {:} { \mathpunct{:} }
-      }
-  }
-\protected\def\digamma{\updigamma}
-\protected\def\Digamma{\upDigamma}
-\cs_set_protected:Npn \| {\Vert}
-\cs_set_protected:Npn \mathellipsis {\mathinner{\unicodeellipsis}}
-\cs_set_protected:Npn \cdots {\mathinner{\unicodecdots}}
-\cs_set_eq:NN \__um_text_slash: \slash
-\cs_set_protected:Npn \slash
-  {
-    \mode_if_math:TF {\mathslash} {\__um_text_slash:}
-  }
-\DeclareDocumentCommand \not {m}
-  {
-    \tl_set:Nx \l__um_not_token_name_tl { \cs_to_str:N #1 }
-    \tl_if_empty:NT \l__um_not_token_name_tl
-      {
-        \tl_set:Nx \l__um_not_token_name_tl { \token_to_str:N #1 }
-      }
-    \cs_if_exist:cTF { not \l__um_not_token_name_tl }
-      {
-        \use:c { not \l__um_not_token_name_tl }
-      }
-      {
-        \cs_if_exist:cTF { n \l__um_not_token_name_tl }
-          {
-            \use:c { n \l__um_not_token_name_tl }
-          }
-          {
-            \tl_if_eq:nnTF {#1} {$} { \notaccent{} } { \notaccent } #1
-          }
-      }
-  }
-\DeclareDocumentCommand \NewNegationCommand {mm}
-  {
-    \__um_set_negation_command:Nnn \cs_new_protected:cpn {#1} {#2}
-  }
-\DeclareDocumentCommand \RenewNegationCommand {mm}
-  {
-    \__um_set_negation_command:Nnn \cs_set_protected:cpn {#1} {#2}
-  }
-\cs_set:Nn \__um_set_negation_command:Nnn
-  {
-    \tl_set:Nx \l__um_not_token_name_tl { \cs_to_str:N #2 }
-    \tl_if_empty:NT \l__um_not_token_name_tl
-      {
-        \tl_set:Nx \l__um_not_token_name_tl { \token_to_str:N #2 }
-      }
-    #1 { not \l__um_not_token_name_tl } { #3 }
-  }
-\NewNegationCommand { = }    { \neq   }
-\NewNegationCommand { < }    { \nless }
-\NewNegationCommand { > }    { \ngtr  }
-\NewNegationCommand { \gets     } { \nleftarrow }
-\NewNegationCommand { \simeq    } { \nsime      }
-\NewNegationCommand { \equal    } { \ne         }
-\NewNegationCommand { \le       } { \nleq       }
-\NewNegationCommand { \ge       } { \ngeq       }
-\NewNegationCommand { \greater  } { \ngtr       }
-\NewNegationCommand { \forksnot } { \forks      }
-\int_step_inline:nnnn {0} {1} {9}
-  {
-    \__um_mathactive_remap:nn {"FF10+#1} {\char\int_eval:n{`\0+#1}}
-  }
-\int_step_inline:nnnn {0} {1} {26}
-  {
-    \__um_mathactive_remap:nn {"FF21+#1} {\char\int_eval:n{`\A+#1}}
-    \__um_mathactive_remap:nn {"FF41+#1} {\char\int_eval:n{`\a+#1}}
-  }
-\cs_new:Nn \__um_undeclare_symbol:N
-  {
-    \cs_set_protected:Npn #1
-      { \__um_error:nx {legacy-char-not-supported} { \token_to_str:N #1 } }
-  }
-\__um_undeclare_symbol:N \arrowvert
-\__um_undeclare_symbol:N \Arrowvert
-\__um_undeclare_symbol:N \bracevert
-
 %%^^A%% um-code-primes.dtx -- part of UNICODE-MATH <wspr.io/unicode-math>
 %%^^A%% The definitions needed for the input of primes.
 
@@ -3858,7 +3670,7 @@
           \c_math_toggle_token
         }
       \mkern -\leftroot@ mu
-      \__um_mathstyle_scale:Nnn #1 { \kern } { \fontdimen 63 \g__um_sqrt_font_cmd_tl }
+      \__um_mathstyle_scale:NnnN #1 { \kern } { \fontdimen 63 \g__um_sqrt_font_cmd_tl } \g__um_sqrt_font_cmd_tl
       \box_move_up:nn
         {
           \box_wd:N \l_tmpb_box + (\box_ht:N \l_tmpa_box - \box_dp:N \l_tmpa_box)
@@ -3865,9 +3677,196 @@
             * \number \fontdimen 65 \g__um_sqrt_font_cmd_tl / 100
         }
         { \box_use:N \rootbox }
-      \__um_mathstyle_scale:Nnn #1 { \kern } { \fontdimen 64 \g__um_sqrt_font_cmd_tl }
+      \__um_mathstyle_scale:NnnN #1 { \kern } { \fontdimen 64 \g__um_sqrt_font_cmd_tl } \g__um_sqrt_font_cmd_tl
       \mkern \leftroot@ mu
       \box_use_clear:N \l_tmpa_box
     }
   }
 
+%%^^A%% um-code-epilogue.dtx -- part of UNICODE-MATH <wspr.io/unicode-math>
+%%^^A%% Assorted definitions to close up.
+
+\AtBeginDocument { \__um_resolve_greek: }
+\cs_new:Npn \__um_resolve_greek:
+  {
+    \clist_map_inline:nn
+      {
+        Alpha,Beta,Gamma,Delta,Epsilon,Zeta,Eta,Theta,Iota,Kappa,Lambda,
+        alpha,beta,gamma,delta,epsilon,zeta,eta,theta,iota,kappa,lambda,
+        Mu,Nu,Xi,Omicron,Pi,Rho,Sigma,Tau,Upsilon,Phi,Chi,Psi,Omega,
+        mu,nu,xi,omicron,pi,rho,sigma,tau,upsilon,phi,chi,psi,omega,
+        varTheta,varsigma,vartheta,varkappa,varrho,varpi,varepsilon,varphi
+      }
+      {
+        \tl_set:cx {##1} { \exp_not:c { mit ##1 } }
+        \tl_set:cx {up ##1} { \exp_not:N \symup \exp_not:c { ##1 } }
+        \tl_set:cx {it ##1} { \exp_not:N \symit \exp_not:c { ##1 } }
+      }
+  }
+\AtBeginDocument{ \@ifpackageloaded { amsmath } { } { \__um_redefine_radical: } }
+\cs_new:Nn \__um_redefine_radical:
+  {
+    \cs_set_nopar:Npn \r@@t ##1 ##2
+      {
+        \hbox_set:Nn \l_tmpa_box
+          {
+            \c_math_toggle_token \m at th
+            ##1 \sqrtsign { ##2 }
+            \c_math_toggle_token
+          }
+        \__um_mathstyle_scale:NnnN ##1 { \kern } { \fontdimen 63 \g__um_sqrt_font_cmd_tl } \g__um_sqrt_font_cmd_tl
+        \box_move_up:nn
+          {
+            (\box_ht:N \l_tmpa_box - \box_dp:N \l_tmpa_box) * \number \fontdimen 65 \g__um_sqrt_font_cmd_tl / 100
+          }
+          { \box_use:N \rootbox }
+        \__um_mathstyle_scale:NnnN ##1 { \kern } { \fontdimen 64 \g__um_sqrt_font_cmd_tl } \g__um_sqrt_font_cmd_tl
+        \box_use_clear:N \l_tmpa_box
+      }
+  }
+\cs_new:Nn \__um_which_frac:nn
+  {
+    \bool_if:NTF \l__um_smallfrac_bool {\tfrac} {\frac} {#1} {#2}
+  }
+\cs_new:Npn \__um_setup_active_frac:
+  {
+    \__um_mathactive_remap:nn {"2189}  { \__um_which_frac:nn {0} {3}  }
+    \__um_mathactive_remap:nn {"2152}  { \__um_which_frac:nn {1} {10} }
+    \__um_mathactive_remap:nn {"2151}  { \__um_which_frac:nn {1} {9}  }
+    \__um_mathactive_remap:nn {"215B}  { \__um_which_frac:nn {1} {8}  }
+    \__um_mathactive_remap:nn {"2150}  { \__um_which_frac:nn {1} {7}  }
+    \__um_mathactive_remap:nn {"2159}  { \__um_which_frac:nn {1} {6}  }
+    \__um_mathactive_remap:nn {"2155}  { \__um_which_frac:nn {1} {5}  }
+    \__um_mathactive_remap:nn {"00BC}  { \__um_which_frac:nn {1} {4}  }
+    \__um_mathactive_remap:nn {"2153}  { \__um_which_frac:nn {1} {3}  }
+    \__um_mathactive_remap:nn {"215C}  { \__um_which_frac:nn {3} {8}  }
+    \__um_mathactive_remap:nn {"2156}  { \__um_which_frac:nn {2} {5}  }
+    \__um_mathactive_remap:nn {"00BD}  { \__um_which_frac:nn {1} {2}  }
+    \__um_mathactive_remap:nn {"2157}  { \__um_which_frac:nn {3} {5}  }
+    \__um_mathactive_remap:nn {"215D}  { \__um_which_frac:nn {5} {8}  }
+    \__um_mathactive_remap:nn {"2154}  { \__um_which_frac:nn {2} {3}  }
+    \__um_mathactive_remap:nn {"00BE}  { \__um_which_frac:nn {3} {4}  }
+    \__um_mathactive_remap:nn {"2158}  { \__um_which_frac:nn {4} {5}  }
+    \__um_mathactive_remap:nn {"215A}  { \__um_which_frac:nn {5} {6}  }
+    \__um_mathactive_remap:nn {"215E}  { \__um_which_frac:nn {7} {8}  }
+  }
+\AtBeginDocument { \__um_setup_active_frac: }
+\protected\def\to{\rightarrow}
+\protected\def\le{\leq}
+\protected\def\ge{\geq}
+\protected\def\neq{\ne}
+\protected\def\triangle{\mathord{\bigtriangleup}}
+\protected\def\bigcirc{\mdlgwhtcircle}
+\protected\def\circ{\vysmwhtcircle}
+\protected\def\bullet{\smblkcircle}
+\protected\def\mathyen{\yen}
+\protected\def\mathsterling{\sterling}
+\protected\def\diamond{\smwhtdiamond}
+\protected\def\emptyset{\varnothing}
+\protected\def\hbar{\hslash}
+\protected\def\land{\wedge}
+\protected\def\lor{\vee}
+\protected\def\owns{\ni}
+\protected\def\gets{\leftarrow}
+\protected\def\mathring{\ocirc}
+\protected\def\lnot{\neg}
+\protected\def\longdivision{\longdivisionsign}
+\protected\def\backepsilon{\upbackepsilon}
+\protected\def\eth{\matheth}
+\protected\def\dbkarow {\dbkarrow}
+\protected\def\drbkarow{\drbkarrow}
+\protected\def\hksearow{\hksearrow}
+\protected\def\hkswarow{\hkswarrow}
+\protected\def\smallint{\mathop{\textstyle\int}\limits}
+\cs_set_eq:NN \latexe_underbar:n \underbar
+\renewcommand\underbar
+  {
+    \mode_if_math:TF \mathunderbar \latexe_underbar:n
+  }
+\@ifpackageloaded{amsmath}
+  {
+    % define their own colon, perhaps I should just steal it. (It does look much better.)
+  }
+  {
+    \cs_set_protected:Npn \colon
+      {
+        \bool_if:NTF \g__um_literal_colon_bool {:} { \mathpunct{:} }
+      }
+  }
+\protected\def\digamma{\updigamma}
+\protected\def\Digamma{\upDigamma}
+\cs_set_protected:Npn \| {\Vert}
+\cs_set_protected:Npn \mathellipsis {\mathinner{\unicodeellipsis}}
+\cs_set_protected:Npn \cdots {\mathinner{\unicodecdots}}
+\cs_set_eq:NN \__um_text_slash: \slash
+\cs_set_protected:Npn \slash
+  {
+    \mode_if_math:TF {\mathslash} {\__um_text_slash:}
+  }
+\DeclareDocumentCommand \not {m}
+  {
+    \tl_set:Nx \l__um_not_token_name_tl { \cs_to_str:N #1 }
+    \tl_if_empty:NT \l__um_not_token_name_tl
+      {
+        \tl_set:Nx \l__um_not_token_name_tl { \token_to_str:N #1 }
+      }
+    \cs_if_exist:cTF { not \l__um_not_token_name_tl }
+      {
+        \use:c { not \l__um_not_token_name_tl }
+      }
+      {
+        \cs_if_exist:cTF { n \l__um_not_token_name_tl }
+          {
+            \use:c { n \l__um_not_token_name_tl }
+          }
+          {
+            \tl_if_eq:nnTF {#1} {$} { \notaccent{} } { \notaccent } #1
+          }
+      }
+  }
+\DeclareDocumentCommand \NewNegationCommand {mm}
+  {
+    \__um_set_negation_command:Nnn \cs_new_protected:cpn {#1} {#2}
+  }
+\DeclareDocumentCommand \RenewNegationCommand {mm}
+  {
+    \__um_set_negation_command:Nnn \cs_set_protected:cpn {#1} {#2}
+  }
+\cs_set:Nn \__um_set_negation_command:Nnn
+  {
+    \tl_set:Nx \l__um_not_token_name_tl { \cs_to_str:N #2 }
+    \tl_if_empty:NT \l__um_not_token_name_tl
+      {
+        \tl_set:Nx \l__um_not_token_name_tl { \token_to_str:N #2 }
+      }
+    #1 { not \l__um_not_token_name_tl } { #3 }
+  }
+\NewNegationCommand { = }    { \neq   }
+\NewNegationCommand { < }    { \nless }
+\NewNegationCommand { > }    { \ngtr  }
+\NewNegationCommand { \gets     } { \nleftarrow }
+\NewNegationCommand { \simeq    } { \nsime      }
+\NewNegationCommand { \equal    } { \ne         }
+\NewNegationCommand { \le       } { \nleq       }
+\NewNegationCommand { \ge       } { \ngeq       }
+\NewNegationCommand { \greater  } { \ngtr       }
+\NewNegationCommand { \forksnot } { \forks      }
+\int_step_inline:nnnn {0} {1} {9}
+  {
+    \__um_mathactive_remap:nn {"FF10+#1} {\char\int_eval:n{`\0+#1}}
+  }
+\int_step_inline:nnnn {0} {1} {26}
+  {
+    \__um_mathactive_remap:nn {"FF21+#1} {\char\int_eval:n{`\A+#1}}
+    \__um_mathactive_remap:nn {"FF41+#1} {\char\int_eval:n{`\a+#1}}
+  }
+\cs_new:Nn \__um_undeclare_symbol:N
+  {
+    \cs_set_protected:Npn #1
+      { \__um_error:nx {legacy-char-not-supported} { \token_to_str:N #1 } }
+  }
+\__um_undeclare_symbol:N \arrowvert
+\__um_undeclare_symbol:N \Arrowvert
+\__um_undeclare_symbol:N \bracevert
+\endinput
+

Modified: trunk/Master/texmf-dist/tex/latex/unicode-math/unicode-math.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/unicode-math/unicode-math.sty	2018-01-13 22:25:38 UTC (rev 46299)
+++ trunk/Master/texmf-dist/tex/latex/unicode-math/unicode-math.sty	2018-01-13 22:25:39 UTC (rev 46300)
@@ -5,7 +5,7 @@
 %% The original source files were:
 %%
 %% unicode-math.dtx  (with options: `base')
-%% um-code-base.dtx  (with options: `base')
+%% 
 %% ------------------------------------------------
 %% The UNICODE-MATH package  <wspr.io/unicode-math>
 %% ------------------------------------------------
@@ -13,46 +13,25 @@
 %% the conditions of the LaTeX Project Public License, version 1.3c or higher
 %% (your choice): <http://www.latex-project.org/lppl/>.
 %% ------------------------------------------------
-%% Copyright 2006-2017  Will Robertson, LPPL "maintainer"
+%% Copyright 2006-2018  Will Robertson, LPPL "maintainer"
 %% Copyright 2010-2017  Philipp Stephani
 %% Copyright 2011-2017  Joseph Wright
 %% Copyright 2012-2015  Khaled Hosny
 %% ------------------------------------------------
+%% 
 %%^^A%% unicode-math.dtx -- part of UNICODE-MATH <wspr.io/unicode-math>
 %%^^A%% Metadata for the package code, including files and versioning
 
-\ProvidesPackage{unicode-math}
-  [2018/01/07 v0.8j Unicode maths in XeLaTeX and LuaLaTeX]
-
-%%^^A%% um-code-base.dtx -- part of UNICODE-MATH <wspr.io/unicode-math>
-%%^^A%% Definition of unicode-math.sty, which splits and loads according to engine.
-
-\ifdefined\XeTeXversion
-  \ifdim\number\XeTeXversion\XeTeXrevision in<0.9998in%
-    \PackageError{unicode-math}{%
-      Cannot run with this version of XeTeX!\MessageBreak
-      You need XeTeX 0.9998 or newer.%
-    }\@ehd
-  \fi
-\else\ifdefined\luatexversion
-  \ifnum\luatexversion<64%
-    \PackageError{unicode-math}{%
-      Cannot run with this version of LuaTeX!\MessageBreak
-      You need LuaTeX 0.64 or newer.%
-    }\@ehd
-  \fi
-\else
-  \PackageError{unicode-math}{%
-    Cannot be run with pdfLaTeX!\MessageBreak
-    Use XeLaTeX or LuaLaTeX instead.%
-  }\@ehd
-\fi\fi
-\RequirePackage{expl3,xparse,l3keys2e}
-\RequirePackage{fontspec}
-\RequirePackage{filehook}
-\RequirePackage{fix-cm}
-\ExplSyntaxOn
+\RequirePackage{expl3}
+\ProvidesExplPackage{unicode-math}
+  {2018/01/13} {v0.8k} {Unicode maths in XeLaTeX and LuaLaTeX}
 \sys_if_engine_luatex:T { \RequirePackageWithOptions{unicode-math-luatex} }
 \sys_if_engine_xetex:T  { \RequirePackageWithOptions{unicode-math-xetex}  }
-\ExplSyntaxOff
+\sys_if_engine_pdftex:T
+  {
+    \msg_new:nnn {unicode-math} {not-pdftex}
+      { Cannot~ be~ run~ with~ pdfLaTeX!\\ Use~ XeLaTeX~ or~ LuaLaTeX~ instead. }
+    \msg_error:nn {unicode-math} {not-pdftex}
+  }
+\endinput
 



More information about the tex-live-commits mailing list