summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Master/texmf-dist/doc/latex/unicode-math/CHANGES.md97
-rw-r--r--Master/texmf-dist/doc/latex/unicode-math/MANIFEST.md229
-rw-r--r--Master/texmf-dist/doc/latex/unicode-math/README.md21
-rw-r--r--Master/texmf-dist/doc/latex/unicode-math/um-doc-main.tex20
-rw-r--r--Master/texmf-dist/doc/latex/unicode-math/unicode-math-code.ltx5
-rw-r--r--Master/texmf-dist/doc/latex/unicode-math/unicode-math-code.pdfbin326816 -> 327566 bytes
-rw-r--r--Master/texmf-dist/doc/latex/unicode-math/unicode-math.ltx5
-rw-r--r--Master/texmf-dist/doc/latex/unicode-math/unicode-math.pdfbin177718 -> 180360 bytes
-rw-r--r--Master/texmf-dist/doc/latex/unicode-math/unimath-symbols.pdfbin1611987 -> 1666639 bytes
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/um-code-amsmath.dtx4
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/um-code-base.dtx75
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/um-code-epilogue.dtx3
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/um-code-main.dtx12
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/um-code-mathmap.dtx101
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/um-code-opening.dtx17
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/unicode-math.dtx72
-rw-r--r--Master/texmf-dist/source/latex/unicode-math/unicode-math.ins18
-rw-r--r--Master/texmf-dist/tex/latex/unicode-math/unicode-math-luatex.sty461
-rw-r--r--Master/texmf-dist/tex/latex/unicode-math/unicode-math-xetex.sty491
-rw-r--r--Master/texmf-dist/tex/latex/unicode-math/unicode-math.sty47
20 files changed, 820 insertions, 858 deletions
diff --git a/Master/texmf-dist/doc/latex/unicode-math/CHANGES.md b/Master/texmf-dist/doc/latex/unicode-math/CHANGES.md
index 9153716de7f..9c48bda9b09 100644
--- a/Master/texmf-dist/doc/latex/unicode-math/CHANGES.md
+++ b/Master/texmf-dist/doc/latex/unicode-math/CHANGES.md
@@ -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 @@ CHANGE HISTORY
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 @@ CHANGE HISTORY
* 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,14 +57,16 @@ CHANGE HISTORY
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;
@@ -63,18 +75,21 @@ CHANGE HISTORY
* 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.
@@ -82,7 +97,8 @@ CHANGE HISTORY
* 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.
@@ -91,18 +107,21 @@ CHANGE HISTORY
* 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.
@@ -114,7 +133,8 @@ CHANGE HISTORY
\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.
@@ -130,36 +150,43 @@ CHANGE HISTORY
* 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.
@@ -182,13 +209,15 @@ CHANGE HISTORY
* `\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)
@@ -213,7 +242,8 @@ CHANGE HISTORY
(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
@@ -234,7 +264,8 @@ CHANGE HISTORY
* 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
@@ -243,14 +274,16 @@ CHANGE HISTORY
(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
@@ -258,7 +291,8 @@ CHANGE HISTORY
* 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
@@ -269,5 +303,6 @@ CHANGE HISTORY
* 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
diff --git a/Master/texmf-dist/doc/latex/unicode-math/MANIFEST.md b/Master/texmf-dist/doc/latex/unicode-math/MANIFEST.md
index 945c07f07fd..e0478e1fdef 100644
--- a/Master/texmf-dist/doc/latex/unicode-math/MANIFEST.md
+++ b/Master/texmf-dist/doc/latex/unicode-math/MANIFEST.md
@@ -33,13 +33,13 @@ be installed for processing such as testing.
| 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,86 +102,49 @@ Support files for checking the test suite.
### 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
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 @@ the package into a TeX distribution.
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 @@ The following group lists the files included in the CTAN package.
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
diff --git a/Master/texmf-dist/doc/latex/unicode-math/README.md b/Master/texmf-dist/doc/latex/unicode-math/README.md
index 26d4f1571d1..c9bd15fec0c 100644
--- a/Master/texmf-dist/doc/latex/unicode-math/README.md
+++ b/Master/texmf-dist/doc/latex/unicode-math/README.md
@@ -17,17 +17,23 @@ generally working now; it is only minutiae that may change in the future.)
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]).
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 @@ I'm always looking for new fonts to test with, so please let me know of any
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
-------------
diff --git a/Master/texmf-dist/doc/latex/unicode-math/um-doc-main.tex b/Master/texmf-dist/doc/latex/unicode-math/um-doc-main.tex
index 23d17472bb4..c6b8c96a077 100644
--- a/Master/texmf-dist/doc/latex/unicode-math/um-doc-main.tex
+++ b/Master/texmf-dist/doc/latex/unicode-math/um-doc-main.tex
@@ -75,7 +75,7 @@ their definitions. Here's an example using the filename syntax to load the \TeX\
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 @@ with |\textbf|, |\textit| and so on, but with the precise purpose of
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,6 +178,15 @@ commands should be preferred, as certain synonyms may become
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
@@ -705,17 +714,14 @@ and while by default \cs{mathcal} and \cs{mathscr}
are synonyms, there are some situations when a
separate `Caligraphic' style is needed as well.
-If a font contains alternate glyphs for a separat caligraphic style,
+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}$
diff --git a/Master/texmf-dist/doc/latex/unicode-math/unicode-math-code.ltx b/Master/texmf-dist/doc/latex/unicode-math/unicode-math-code.ltx
index 62fb9bbf801..1fa34a19374 100644
--- a/Master/texmf-dist/doc/latex/unicode-math/unicode-math-code.ltx
+++ b/Master/texmf-dist/doc/latex/unicode-math/unicode-math-code.ltx
@@ -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
diff --git a/Master/texmf-dist/doc/latex/unicode-math/unicode-math-code.pdf b/Master/texmf-dist/doc/latex/unicode-math/unicode-math-code.pdf
index 6b7207ba10c..08df8f475a1 100644
--- a/Master/texmf-dist/doc/latex/unicode-math/unicode-math-code.pdf
+++ b/Master/texmf-dist/doc/latex/unicode-math/unicode-math-code.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/unicode-math/unicode-math.ltx b/Master/texmf-dist/doc/latex/unicode-math/unicode-math.ltx
index 9f140383e00..e7481ca2967 100644
--- a/Master/texmf-dist/doc/latex/unicode-math/unicode-math.ltx
+++ b/Master/texmf-dist/doc/latex/unicode-math/unicode-math.ltx
@@ -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}
diff --git a/Master/texmf-dist/doc/latex/unicode-math/unicode-math.pdf b/Master/texmf-dist/doc/latex/unicode-math/unicode-math.pdf
index c1ae6d97379..5b4d6b74a40 100644
--- a/Master/texmf-dist/doc/latex/unicode-math/unicode-math.pdf
+++ b/Master/texmf-dist/doc/latex/unicode-math/unicode-math.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/unicode-math/unimath-symbols.pdf b/Master/texmf-dist/doc/latex/unicode-math/unimath-symbols.pdf
index 74fbb674e38..e7a09a28cbe 100644
--- a/Master/texmf-dist/doc/latex/unicode-math/unimath-symbols.pdf
+++ b/Master/texmf-dist/doc/latex/unicode-math/unimath-symbols.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/unicode-math/um-code-amsmath.dtx b/Master/texmf-dist/source/latex/unicode-math/um-code-amsmath.dtx
index 7900b3360a6..57927c73bc1 100644
--- a/Master/texmf-dist/source/latex/unicode-math/um-code-amsmath.dtx
+++ b/Master/texmf-dist/source/latex/unicode-math/um-code-amsmath.dtx
@@ -186,14 +186,14 @@
\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)
* \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
}
diff --git a/Master/texmf-dist/source/latex/unicode-math/um-code-base.dtx b/Master/texmf-dist/source/latex/unicode-math/um-code-base.dtx
deleted file mode 100644
index 6564d7bf026..00000000000
--- a/Master/texmf-dist/source/latex/unicode-math/um-code-base.dtx
+++ /dev/null
@@ -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
-% ------------------------------------------------
-%
-% ©/
diff --git a/Master/texmf-dist/source/latex/unicode-math/um-code-epilogue.dtx b/Master/texmf-dist/source/latex/unicode-math/um-code-epilogue.dtx
index 19ea4bcebbf..cb8a701bb45 100644
--- a/Master/texmf-dist/source/latex/unicode-math/um-code-epilogue.dtx
+++ b/Master/texmf-dist/source/latex/unicode-math/um-code-epilogue.dtx
@@ -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}
diff --git a/Master/texmf-dist/source/latex/unicode-math/um-code-main.dtx b/Master/texmf-dist/source/latex/unicode-math/um-code-main.dtx
index 2ae228df24e..0cd47069e3c 100644
--- a/Master/texmf-dist/source/latex/unicode-math/um-code-main.dtx
+++ b/Master/texmf-dist/source/latex/unicode-math/um-code-main.dtx
@@ -91,15 +91,13 @@
{
\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.
@@ -167,7 +165,7 @@
\group_begin:
\fontfamily { \l_@@_trial_family_tl } \selectfont
- \@@_fontface_gset_eq:NV \g_@@_trial_font \font@name
+ \exp_last_unbraced:NNo \@@_fontface_gset_eq:NN \g_@@_trial_font \font@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@name
+ \exp_last_unbraced:Nno \@@_fontface_gset_eq:cN {g_@@_mathfont_ \int_use:N \g_@@_fonts_used_int _font} \font@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@name
+ \exp_last_unbraced:NNo \@@_fontface_gset_eq:NN \l_@@_font \font@name
}
\fontspec_if_script:nF {math}
{
diff --git a/Master/texmf-dist/source/latex/unicode-math/um-code-mathmap.dtx b/Master/texmf-dist/source/latex/unicode-math/um-code-mathmap.dtx
index 21e0266543d..b3257369c0d 100644
--- a/Master/texmf-dist/source/latex/unicode-math/um-code-mathmap.dtx
+++ b/Master/texmf-dist/source/latex/unicode-math/um-code-mathmap.dtx
@@ -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}
diff --git a/Master/texmf-dist/source/latex/unicode-math/um-code-opening.dtx b/Master/texmf-dist/source/latex/unicode-math/um-code-opening.dtx
index 95ef8dd2450..4e9493bb65e 100644
--- a/Master/texmf-dist/source/latex/unicode-math/um-code-opening.dtx
+++ b/Master/texmf-dist/source/latex/unicode-math/um-code-opening.dtx
@@ -12,14 +12,15 @@
%<*package>
% \end{macrocode}
%
+% \paragraph{Packages}
+% Assuming people are running up-to-date packages.
% \begin{macrocode}
-%<*LU>
-\RequirePackage{lualatex-math}
-%</LU>
-% \end{macrocode}
-%
-% \begin{macrocode}
-\ExplSyntaxOn
+\RequirePackage{xparse,l3keys2e}
+\RequirePackage{fontspec}
+\RequirePackage{filehook}
+\RequirePackage{fix-cm}
+%<LU>\RequirePackage{lualatex-math}
+%<debug>\RequirePackage{l3benchmark}
% \end{macrocode}
%
% \subsection{\pkg{expl3} variants}
@@ -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}
%
diff --git a/Master/texmf-dist/source/latex/unicode-math/unicode-math.dtx b/Master/texmf-dist/source/latex/unicode-math/unicode-math.dtx
index 04b72f2f77a..83f4012d528 100644
--- a/Master/texmf-dist/source/latex/unicode-math/unicode-math.dtx
+++ b/Master/texmf-dist/source/latex/unicode-math/unicode-math.dtx
@@ -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,38 +23,72 @@
\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}
+%
+% Metadata for documentation; the title and authors of the package.
+% \begin{macrocode}
+%<*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>
% \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.
+% 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}
-%<base>\ProvidesPackage{unicode-math}
-%<package&XE>\ProvidesPackage{unicode-math-xetex}
-%<package&LU>\ProvidesPackage{unicode-math-luatex}
%<*dtx>
-\ProvidesFile{unicode-math.dtx}
+\date{
+ \def\filedate{2018/01/13}
+ \def\fileversion{v0.8k}
+ \filedate \qquad \fileversion
+}
%</dtx>
-%<*base|package>
- [2018/01/07 v0.8j Unicode maths in XeLaTeX and LuaLaTeX]
-%</base|package>
+% \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
diff --git a/Master/texmf-dist/source/latex/unicode-math/unicode-math.ins b/Master/texmf-dist/source/latex/unicode-math/unicode-math.ins
index d1366222d04..b87abd1a53a 100644
--- a/Master/texmf-dist/source/latex/unicode-math/unicode-math.ins
+++ b/Master/texmf-dist/source/latex/unicode-math/unicode-math.ins
@@ -7,6 +7,7 @@
\keepsilent
\declarepreamble\defaultpreamble
+
------------------------------------------------
The UNICODE-MATH package <wspr.io/unicode-math>
------------------------------------------------
@@ -14,11 +15,12 @@ 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-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 @@ Copyright 2012-2015 Khaled Hosny
\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
diff --git a/Master/texmf-dist/tex/latex/unicode-math/unicode-math-luatex.sty b/Master/texmf-dist/tex/latex/unicode-math/unicode-math-luatex.sty
index fa0711b6f1e..950a76f2a99 100644
--- a/Master/texmf-dist/tex/latex/unicode-math/unicode-math-luatex.sty
+++ b/Master/texmf-dist/tex/latex/unicode-math/unicode-math-luatex.sty
@@ -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]
-
-%%^^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.
-
+\ProvidesExplPackage{unicode-math-luatex}
+ {2018/01/13} {v0.8k} {Unicode maths in XeLaTeX and LuaLaTeX}
%%^^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@name
+ \exp_last_unbraced:NNo \__um_fontface_gset_eq:NN \g__um_trial_font \font@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@name
+ \exp_last_unbraced:Nno \__um_fontface_gset_eq:cN {g__um_mathfont_ \int_use:N \g__um_fonts_used_int _font} \font@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@name
+\exp_last_unbraced:NNo \__um_fontface_gset_eq:NN \l__um_font \font@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
+
diff --git a/Master/texmf-dist/tex/latex/unicode-math/unicode-math-xetex.sty b/Master/texmf-dist/tex/latex/unicode-math/unicode-math-xetex.sty
index d490e0014ae..bf50a848004 100644
--- a/Master/texmf-dist/tex/latex/unicode-math/unicode-math-xetex.sty
+++ b/Master/texmf-dist/tex/latex/unicode-math/unicode-math-xetex.sty
@@ -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]
-
-%%^^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.
-
+\ProvidesExplPackage{unicode-math-xetex}
+ {2018/01/13} {v0.8k} {Unicode maths in XeLaTeX and LuaLaTeX}
%%^^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@name
+ \exp_last_unbraced:NNo \__um_fontface_gset_eq:NN \g__um_trial_font \font@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@name
+ \exp_last_unbraced:Nno \__um_fontface_gset_eq:cN {g__um_mathfont_ \int_use:N \g__um_fonts_used_int _font} \font@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@name
+\exp_last_unbraced:NNo \__um_fontface_gset_eq:NN \l__um_font \font@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@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,16 +3670,203 @@
\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)
* \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@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
+
diff --git a/Master/texmf-dist/tex/latex/unicode-math/unicode-math.sty b/Master/texmf-dist/tex/latex/unicode-math/unicode-math.sty
index e48961537cb..24cc8e1f4b0 100644
--- a/Master/texmf-dist/tex/latex/unicode-math/unicode-math.sty
+++ b/Master/texmf-dist/tex/latex/unicode-math/unicode-math.sty
@@ -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