diff options
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. Strzelczyk 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 Binary files differindex 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 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 Binary files differindex 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 diff --git a/Master/texmf-dist/doc/latex/unicode-math/unimath-symbols.pdf b/Master/texmf-dist/doc/latex/unicode-math/unimath-symbols.pdf Binary files differindex 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 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 |