diff options
author | Karl Berry <karl@freefriends.org> | 2018-01-07 23:46:58 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2018-01-07 23:46:58 +0000 |
commit | f15ab98da224024bdcb9d2b70a263c7f6143a91b (patch) | |
tree | 8368ce018ac0869d5d556cc47b29de4770ad3e62 /Master/texmf-dist/doc/latex/unicode-math | |
parent | 6c0d576e1d48613f952b56e99e4dd9d59e41a265 (diff) |
unicode-math (7jan18)
git-svn-id: svn://tug.org/texlive/trunk@46240 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/unicode-math')
16 files changed, 2676 insertions, 118 deletions
diff --git a/Master/texmf-dist/doc/latex/unicode-math/CHANGES.md b/Master/texmf-dist/doc/latex/unicode-math/CHANGES.md index 0353ce95694..9153716de7f 100644 --- a/Master/texmf-dist/doc/latex/unicode-math/CHANGES.md +++ b/Master/texmf-dist/doc/latex/unicode-math/CHANGES.md @@ -1,6 +1,52 @@ CHANGE HISTORY -------------- +- 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 + + * `\typecolon` is now `\mathrel` instead of `\mathbin` (#360). + * New symbol `\mathhyphen` which acts like a ‘letter’ (#313). + * `\nabla` and `\partial` have corrected documentation (#257). + * The following legacy commands are listed as ‘unsupported’ and will result + in sensible error messages rather than the old behaviour of meaningless + output: `\arrowvert`, `\Arrowvert`, `\bracevert`. (#411). + + * 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 + `\setmathfont` a final time with the original font to ensure correct + formatting and correct selection of symbol alphabets. I hope the issues + that required this have now been corrected (#331, #387). + * If `\setmathfont` is called a second time in a document, it tries harder + to more properly reset the maths font setup for the new font (#224). + * Properly hard-coded the `\delcode` of the period to ensure `\left`/`\right` + behave correctly in all circumstances (#344, #351, #420). + * Correct `\mathrm` (etc.) situation when no fonts loaded explicitly by the user (#330). + * Various bug fixes to `\not` (#126, #343, #363) + * `\std@minus` & `\std@equal` now properly corrected (#332). + * Fix problem with infinite loop with `\cdots` when `amsmath` loaded after `unicode-math` (#227). + * If `\setmath(rm|sf|tt)` is called *before* loading `unicode-math`, the setting + is now remembered (#407). + + * INTERNALS + + * A number of improvements to efficiency when loading subsequent math fonts + using the `range` feature. + * No longer loads the `ucharcat` package. + * Test suite re-implemented for better portability and use with Travis CI. + See <https://travis-ci.org/wspr/unicode-math> for the up-to-date status + of whether the test suite is passing. + + - v0.8i (2017/11/18) * Many internal changes to support future work. diff --git a/Master/texmf-dist/doc/latex/unicode-math/MANIFEST.md b/Master/texmf-dist/doc/latex/unicode-math/MANIFEST.md index df005e9990f..945c07f07fd 100644 --- a/Master/texmf-dist/doc/latex/unicode-math/MANIFEST.md +++ b/Master/texmf-dist/doc/latex/unicode-math/MANIFEST.md @@ -1,77 +1,294 @@ # Manifest for unicode-math -This file is automatically generated with `texlua build.lua manifest`. -Only ‘source’ files in the repository and derived files are included in this list; -it does not include ‘generated’ files such as PDF. - -## Source files - -* unimath-example.ltx -* um-code-pkgopt.dtx -* um-code-opening.dtx -* unicode-math-code.ltx -* um-code-usv.dtx -* unicode-math.ltx -* unimath-symbols.ltx -* um-code-epilogue.dtx -* unicode-math-table.tex -* um-doc-style.tex -* um-code-api.dtx -* um-code-msg.dtx -* um-doc.tex -* um-doc-nfsssummary.tex -* um-code-sscript.dtx -* um-code-base.dtx -* um-code-fontopt.dtx -* um-code-fontparam.dtx -* um-doc-mathfontdimen.tex -* um-code-ui.dtx -* um-code-mathmap.dtx -* um-code-mathtext.dtx -* um-doc-legacyfontdimen.tex -* unicode-math.dtx -* unicode-math.ins -* um-code-primes.dtx -* um-code-compat.dtx -* um-code-alphabets.dtx -* um-code-main.dtx -* um-code-variables.dtx -* um-doc-stixextract.tex -* um-code-setchar.dtx - -## Text and Documentation files - -* README.md -* CHANGES.md - -## Derived files - -* unicode-math-luatex.sty -* unicode-math-xetex.sty -* unicode-math.sty - -## Typeset documents - -* unicode-math.pdf -* unimath-example.pdf -* unicode-math-code.pdf -* unimath-symbols.pdf - -## Checking-specific support files - -* umtest-preamble.tex - -## Test files - -* mathit-symit.luatex.tlg -* mathit-symit.xetex.tlg -* fontname-log.luatex.tlg -* mathit-symit-var.lvt -* fontname-log.lvt -* fontname-log.xetex.tlg -* aaa-loading.luatex.tlg -* mathit-symit.lvt -* aaa-loading.lvt -* mathit-symit-var.luatex.tlg -* mathit-symit-var.xetex.tlg -* aaa-loading.xetex.tlg +This file is a listing of all files considered to be part of this package. +It is automatically generated with `texlua build.lua manifest`. + + +## Repository manifest + +The following groups list the files included in the development repository of the package. +Files listed with a ‘†’ marker are included in the TDS but not CTAN files, and files listed +with ‘‡’ are included in both. + +### Source files + +These are source files for a number of purposes, including the `unpack` process which +generates the installation files of the package. Additional files included here will also +be installed for processing such as testing. + + | File | Flag | Description | + | --- | --- | --- | + | unicode-math.dtx | ‡ | Metadata for the package code, including files and versioning | + | um-code-base.dtx | ‡ | Definition of unicode-math.sty, which splits and loads according to engine. | + | um-code-opening.dtx | ‡ | Assorted initialisation tasks, including some low-level function definitions. | + | um-code-variables.dtx | ‡ | Declaration of all code-level variables used in the package. | + | um-code-api.dtx | ‡ | The (underdeveloped) API to interface with the package internals. | + | um-code-ui.dtx | ‡ | The xparse user interface top-level definitions. | + | um-code-pkgopt.dtx | ‡ | Package options. | + | um-code-msg.dtx | ‡ | Definitions of error, warning, and log messages. | + | um-code-usv.dtx | ‡ | Mapping of mathematical unicode slots for alphabets. | + | um-code-setchar.dtx | ‡ | General assignment of maths symbols. | + | um-code-mathtext.dtx | ‡ | The "math text" commands such as `\mathbf` and co. | + | um-code-main.dtx | ‡ | Definition of `\setmainfont`. | + | 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-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. | + | unicode-math.ins | ‡ | Docstrip installer. | + | unicode-math-table.tex | ‡ | Source file of the math symbols. | + +### Typeset documentation source files + +These files are typeset using LaTeX to produce the PDF documentation for the package. + + | File | Flag | Description | + | --- | --- | --- | + | unicode-math-code.ltx | ‡ | Typeset code. | + | unicode-math.ltx | ‡ | User documentation. | + | unimath-example.ltx | ‡ | A minimal example file to demonstrate the package. | + | unimath-symbols.ltx | ‡ | Listing of Unicode mathematics symbols using a variety of fonts. | + +### Documentation files + +These files form part of the documentation but are not typeset. Generally they will be +additional input files for the typeset documentation files listed above. + + 1. um-doc-style.tex ‡ + 2. um-doc-main.tex ‡ + 3. um-doc-stixextract.tex ‡ + 4. um-doc-nfsssummary.tex ‡ + 5. um-doc-legacyfontdimen.tex ‡ + 6. um-doc-mathfontdimen.tex ‡ + +### Text files + +Plain text files included as documentation or metadata. + + 1. CHANGES.md ‡ + 2. MANIFEST.md ‡ + 3. README.md ‡ + 4. LICENSE + +### Derived files + +The files created by ‘unpacking’ the package sources. This typically includes +`.sty` and `.cls` files created from DocStrip `.dtx` files. + + 1. unicode-math-luatex.sty † + 2. unicode-math-xetex.sty † + 3. unicode-math.sty † + +### Typeset documents + +The output files (PDF, essentially) from typesetting the various source, demo, +etc., package files. + + 1. unicode-math-code.pdf ‡ + 2. unicode-math.pdf ‡ + 3. unimath-example.pdf ‡ + 4. unimath-symbols.pdf ‡ + +### Checking-specific support files + +Support files for checking the test suite. + + 1. umtest-preamble.tex + +### 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.). + + 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 + + +## TDS manifest + +The following groups list the files included in the TeX Directory Structure used to install +the package into a TeX distribution. + +### Source files (TDS) + +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 + +### TeX files (TDS) + +All files included in the `unicode-math/tex` directory. + + 1. unicode-math-luatex.sty + 2. unicode-math-table.tex + 3. unicode-math-xetex.sty + 4. unicode-math.sty + +### Doc files (TDS) + +All files included in the `unicode-math/doc` directory. + + 1. CHANGES.md + 2. MANIFEST.md + 3. README.md + 4. um-doc-legacyfontdimen.tex + 5. um-doc-main.tex + 6. um-doc-mathfontdimen.tex + 7. um-doc-nfsssummary.tex + 8. um-doc-stixextract.tex + 9. um-doc-style.tex +10. unicode-math-code.ltx +11. unicode-math-code.pdf +12. unicode-math.ltx +13. unicode-math.pdf +14. unimath-example.ltx +15. unimath-example.pdf +16. unimath-symbols.ltx +17. unimath-symbols.pdf + + +## CTAN manifest + +The following group lists the files included in the CTAN package. + +### CTAN files + + 1. CHANGES.md + 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 diff --git a/Master/texmf-dist/doc/latex/unicode-math/README.md b/Master/texmf-dist/doc/latex/unicode-math/README.md index 5c72db9b573..26d4f1571d1 100644 --- a/Master/texmf-dist/doc/latex/unicode-math/README.md +++ b/Master/texmf-dist/doc/latex/unicode-math/README.md @@ -52,7 +52,7 @@ PACKAGE USAGE Please see the PDF documentation for full details. A simple beginning is: \usepackage{unicode-math} - \setmathfont{xits-math.otf} + \setmathfont{texgyrepagella-math.otf} Most LaTeX math should still work after this. (Let me know if it doesn't.) Furthermore, it will be in a different font. @@ -61,11 +61,18 @@ Furthermore, it will be in a different font. REQUIREMENTS ------------ -As well as running XeTeX or LuaTeX, this package requires recent versions of the `fontspec`, `expl3`, `xpackages`, `filehook`, `ucharcat`, and `lualatex-math` packages. +As well as running XeTeX or LuaTeX, this package requires recent versions of the `fontspec`, `expl3`, `xpackages`, `filehook`, and `lualatex-math` packages. -MAINTENANCE ------------ +THANKS +------ + +I write LaTeX code as a hobby and a passion, not as part of my day job. +If you would like to say thanks, please consider a donation at: <https://www.patreon.com/wspr> + + +DEVELOPMENT and MAINTENANCE +--------------------------- The current release version is available from CTAN: > <http://tug.ctan.org/pkg/unicode-math> @@ -78,12 +85,8 @@ Please file bug reports with minimal examples: See `CHANGES.md` for the complete listing of change history. - -THANKS ------- - -I write LaTeX code as a hobby and a passion, not as part of my day job. -If you would like to say thanks, please consider a donation at: <https://www.patreon.com/wspr> +Further information on the details surrounding the development of the package +can be found in the `CONTRIBUTING.md` file in the Github repository. LICENCE @@ -95,36 +98,4 @@ greater. [LPPL]: http://www.latex-project.org/lppl/ -This work is author-maintained and consists of the code files: - -- unicode-math.dtx, -- unicode-math.ins, -- um-code-*.dtx, -- unicode-math-table.tex; - -the documentation files: - -- unicode-math.ltx, -- unicode-math-code.ltx, -- um-doc*.tex, -- unimath-example.ltx, -- unimath-symbols.ltx; - -the derived files: - -- unicode-math.lua, -- unicode-math-xetex.sty, -- unicode-math-luatex.sty, -- unicode-math.sty; - -the compiled documentation files: - -- unicode-math.pdf, -- unicode-math-code.pdf, -- unimath-example.pdf, -- unimath-symbols.pdf; - -and the test suite: - -- testfiles/support/umtest-preamble.tex, -- testfiles/*.(lvt|tlg). +This work is author-maintained and consists of the files listed in `MANIFEST.md`. diff --git a/Master/texmf-dist/doc/latex/unicode-math/um-doc-legacyfontdimen.tex b/Master/texmf-dist/doc/latex/unicode-math/um-doc-legacyfontdimen.tex new file mode 100644 index 00000000000..5ba9f95e365 --- /dev/null +++ b/Master/texmf-dist/doc/latex/unicode-math/um-doc-legacyfontdimen.tex @@ -0,0 +1,76 @@ +%%^^A%% um-doc-legacyfontdimen.tex -- part of UNICODE-MATH <wspr.io/unicode-math> + +\section{Legacy \TeX\ font dimensions} + +\centerline{% +\begin{tabular}[t]{@{}lp{4cm}@{}} +\toprule +\multicolumn{2}{@{}c@{}}{Text fonts} \\ +\midrule +$\phi_1$ & slant per pt \\ +$\phi_2$ & interword space \\ +$\phi_3$ & interword stretch \\ +$\phi_4$ & interword shrink \\ +$\phi_5$ & x-height \\ +$\phi_6$ & quad width \\ +$\phi_7$ & extra space \\ +$\phi_8$ & cap height (\XeTeX\ only) \\ +\bottomrule +\end{tabular} +\quad +\begin{tabular}[t]{@{}lp{4cm}@{}} +\toprule +\multicolumn{2}{@{}c@{}}{Maths font, \cs{fam}2} \\ +\midrule +$\sigma_5$ & x height \\ +$\sigma_6$ & quad \\ +$\sigma_8$ & num1 \\ +$\sigma_9$ & num2 \\ +$\sigma_{10}$ & num3 \\ +$\sigma_{11}$ & denom1 \\ +$\sigma_{12}$ & denom2 \\ +$\sigma_{13}$ & sup1 \\ +$\sigma_{14}$ & sup2 \\ +$\sigma_{15}$ & sup3 \\ +$\sigma_{16}$ & sub1 \\ +$\sigma_{17}$ & sub2 \\ +$\sigma_{18}$ & sup drop \\ +$\sigma_{19}$ & sub drop \\ +$\sigma_{20}$ & delim1 \\ +$\sigma_{21}$ & delim2 \\ +$\sigma_{22}$ & axis height \\ +\bottomrule +\end{tabular} +\quad +\begin{tabular}[t]{@{}lp{4cm}@{}} +\toprule +\multicolumn{2}{@{}c@{}}{Maths font, \cs{fam}3} \\ +\midrule +$\xi_8$ & default rule thickness \\ +$\xi_9$ & big op spacing1 \\ +$\xi_{10}$ & big op spacing2 \\ +$\xi_{11}$ & big op spacing3 \\ +$\xi_{12}$ & big op spacing4 \\ +$\xi_{13}$ & big op spacing5 \\ +\bottomrule +\end{tabular} +} + +\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/doc/latex/unicode-math/um-doc-main.tex b/Master/texmf-dist/doc/latex/unicode-math/um-doc-main.tex new file mode 100644 index 00000000000..23d17472bb4 --- /dev/null +++ b/Master/texmf-dist/doc/latex/unicode-math/um-doc-main.tex @@ -0,0 +1,1207 @@ +%%^^A%% um-doc-main.tex -- part of UNICODE-MATH <wspr.io/unicode-math> + +\begin{abstract} +\noindent +This document describes the \pkg{unicode-math} package, which is +intended as an implementation of Unicode +maths for \LaTeX\ using the \XeTeX\ and Lua\TeX\ typesetting engines. +With this package, changing maths fonts is as easy as changing +text fonts --- and there are more and more maths fonts appearing now. +Maths input can also be simplified with Unicode since literal glyphs may be +entered instead of control sequences in your document source. + +The package provides support for both \XeTeX\ and Lua\TeX. The different +engines provide differing levels of support for Unicode maths. +Please let us know of any troubles. + +Alongside this documentation file, you should be able to find a minimal +example demonstrating the use of the package, +`\texttt{unimath-example.ltx}'. It also comes with a separate document, +`\texttt{unimath-symbols.pdf}', +containing a complete listing of mathematical symbols defined by +\pkg{unicode-math}, including comparisons between different fonts. + +Finally, while the STIX fonts may be used with this package, accessing +their alphabets in their `private user area' is not yet supported. +(Of these additional alphabets there is a separate caligraphic design +distinct to the script design already included.) +Better support for the STIX fonts is planned for an upcoming revision of the +package after any problems have been ironed out with the initial version. + +\end{abstract} + +\newpage +\tableofcontents + +\clearpage +\section{Introduction} + +This document describes the \pkg{unicode-math} package, which is an +\emph{experimental} implementation of a macro to Unicode glyph encoding for +mathematical characters. + +Users who desire to specify maths alphabets only (Greek and Latin letters, +and Arabic numerals) +may wish to use Andrew Moschou's \pkg{mathspec} package instead. +(\XeTeX-only at time of writing.) + +\section{Acknowledgements} + +Many thanks to: +Microsoft for developing the mathematics extension to OpenType as part of +Microsoft Office~2007; +Jonathan Kew for implementing Unicode math support in \XeTeX; +Taco Hoekwater for implementing Unicode math support in \LuaTeX; +Barbara Beeton for her prodigious effort compiling the definitive list of Unicode math +glyphs and their \LaTeX\ names (inventing them where necessary), and also +for her thoughtful replies to my sometimes incessant questions; +Philipp Stephani for extending the package to support \LuaTeX. +Ross Moore and Chris Rowley have provided moral and technical support +from the very early days with great insight into the issues we face trying +to extend and use \TeX\ in the future. +Apostolos Syropoulos, Joel Salomon, Khaled Hosny, and Mariusz Wodzicki +have been fantastic beta testers. + +\section{Getting started} + +Load \pkg{unicode-math} as a regular \LaTeX\ package. It should be loaded +after any other maths or font-related package in case it needs to overwrite +their definitions. Here's an example using the filename syntax to load the \TeX\ Gyre Pagella Math font: (this works for both \XeLaTeX\ and \LuaLaTeX) +\begin{Verbatim} +\usepackage{amsmath} % if desired +\usepackage{unicode-math} +\setmathfont{texgyrepagella-math.otf} +\end{Verbatim} + +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. + +\subsection{New commands} +\LaTeX, since the first version of \LaTeXe, changed the math group +selection from, say, |{\bf x}| to |\mathbf{x}|. It introduced commands +such as |\mathbf|, |\mathit|, |\mathsf|, |\mathtt| and |\mathcal|, +besides |\mathnormal|. This was not only done to maintain the analogy +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 +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 +the same would happen with the input |\mathbf{f}\mathbf{i}\mathbf{t}|. +For the latter case, the user should probably use |\mathbf{f\/}|. + +However, there is another important point from a \emph{conceptual} +point of view. A boldface variable name should be printed using the +\emph{math font}, whereas a boldface operator name should be printed +using the \emph{text font}. OpenType math fonts make this distinction +feasible, because they contain several math alphabets. Of course a +boldface text~`x' will not differ much (or at all) from a boldface +math~`x', but this is not the point: they \emph{should} be considered +different, because the former is |U+0078| in Unicode, the latter is +|U+1D431|. + +It was clear that \emph{two} different commands are needed: one for using text boldface in math, +one for using math boldface. Only the document's author can know +whether one or the other is needed. The decision was to split off +the two meanings with a command like |\mathbf| for the boldface text font +in math and a command like |\symbf| (for the bold math font). + +The five new symbol font commands that behave in this way are: \cs{symup}, +\cs{symit}, \cs{symbf}, \cs{symsf}, and \cs{symit}. +These commands switch to single-letter mathematical symbols +(generally within the same OpenType font). + +The legacy \cs{math..} commands switch to text fonts that are set up to behave +correctly in mathematics, and should be used for multi-letter identifiers. These +could be denoted `text math alphabets'; further details are discussed +in \secref{mathselect}. Additional similar `text math alphabet' +commands can be defined using the \cs{setmathfontface} command +discussed in \secref{mathselect}. To control the behaviour of the +default text math alphabet commands to behave in a +backwards-compatible mode, see the package options described in +\secref{textmathlegacy}. + + +\begin{table}[t!] + \topcaption{New \pkg{unicode-math} commands which overlap with legacy + math commands. For new documents the \texttt{sym} versions are recommended.} + \tablabel{symvsmath} + \centering + \begin{tabular}[t]{ll} + \toprule + Command & Synonym \\ + \midrule + \cs{symnormal} & \cs{mathnormal} \\ + \cs{symliteral} & \\ + & \\ + & \\ + & \\ + \cs{symbb} & \cs{mathbb} \\ + \cs{symbbit} & \cs{mathbbit} \\ + \cs{symcal} & \cs{mathcal} \\ + \cs{symscr} & \cs{mathscr} \\ + \cs{symfrak} & \cs{mathfrak} \\ + \cs{symsfup} & \cs{mathsfup} \\ + \cs{symsfit} & \cs{mathsfit} \\ + \bottomrule + \end{tabular}\qquad + \begin{tabular}[t]{ll} + \toprule + Command & Synonym \\ + \midrule + & \\ + & \\ + \cs{symbfsf} & \cs{mathbfsf} \\ + \cs{symbfup} & \cs{mathbfup} \\ + \cs{symbfit} & \cs{mathbfit} \\ + & \\ + & \\ + \cs{symbfcal} & \cs{mathbfcal} \\ + \cs{symbfscr} & \cs{mathbfscr} \\ + \cs{symbffrak} & \cs{mathbffrak} \\ + \cs{symbfsfup} & \cs{mathbfsfup} \\ + \cs{symbfsfit} & \cs{mathbfsfit} \\ + \bottomrule + \end{tabular} +\end{table} + +In addition, \pkg{unicode-math} also provides a number of commands (such as +|\symcal|) to select specific `symbol alphabets' within the unicode +maths font, with usage, e.g., |$\symcal{G}$|${}\to\symcal{G}$. The +full listing is shown in \Tabref{symvsmath}. For backwards +compatibility, many of these are also defined with `familiar' synonyms +such as |\mathcal|. However, where possible the `sym' prefix +commands should be preferred, as certain synonyms may become +deprecated in time. The |\symliteral| command is described in +\secref{math-style}. + + +\subsection{Package options} +Package options may be set when the package as loaded or at any later +stage with the \cs{unimathsetup} command. Therefore, the following two +examples are equivalent: +\begin{Verbatim} +\usepackage[math-style=TeX]{unicode-math} +% OR +\usepackage{unicode-math} +\unimathsetup{math-style=TeX} +\end{Verbatim} +Note, however, that some package options affects how maths is initialised +and changing an option such as |math-style| will not take effect until a +new maths font is set up. + +Package options may \emph{also} be used when declaring new maths fonts, +passed via options to the \cs{setmathfont} command. +Therefore, the following two examples are equivalent: +\begin{Verbatim} +\unimathsetup{math-style=TeX} +\setmathfont{texgyrepagella-math.otf} +% OR +\setmathfont{texgyrepagella-math.otf}[math-style=TeX] +\end{Verbatim} + +A summary list of package options is shown in \tabref{pkgopt}. +See following sections for more information. + +\begin{table}\centering + \topcaption{Package options.} + \tablabel{pkgopt} + \begin{tabular}{lll} + \toprule + Option & Description & See\dots \\ + \midrule + |math-style| & Style of letters & \secref*{math-style} \\ + |bold-style| & Style of bold letters & \secref*{bold-style} \\ + |sans-style| & Style of sans serif letters & \secref*{sans-style} \\ + |nabla| & Style of the nabla symbol & \secref*{nabla} \\ + |partial| & Style of the partial symbol & \secref*{partial} \\ + |colon| & Behaviour of \cs{colon} & \secref*{colon} \\ + |slash-delimiter| & Glyph to use for `stretchy' slash & \secref*{slash-delimiter} \\ + \bottomrule + \end{tabular} +\end{table} + + +\section{Unicode maths font setup} + +In the ideal case, a single Unicode font will contain all maths glyphs we +need. The file |unicode-math-table.tex| (based on Barbara Beeton's \STIX\ table) +provides the mapping between Unicode +maths glyphs and macro names (all 3298 — or however many — of them!). A +single command +\codeline{\cmd\setmathfont\marg{font name}\oarg{font features}} +implements this for every every symbol and alphabetic variant. +That means |x| to $x$, |\xi| to $\xi$, |\leq| to $\leq$, etc., |\symscr{H}| +to $\symscr{H}$ and so on, all for Unicode glyphs within a single font. + +This package deals well with Unicode characters for maths +input. This includes using literal Greek letters in formulae, +resolving to upright or italic depending on preference. + +Font features specific to \pkg{unicode-math} are shown in \tabref{mathfontfeatures}. +Package options (see \tabref{pkgopt}) may also be used. +Other \pkg{fontspec} features are also valid. + +\begin{table}\centering + \topcaption{Maths font options.} + \tablabel{mathfontfeatures} + \begin{tabular}{lll} + \toprule + Option & Description & See\dots \\ + \midrule + |range| & Style of letters & \secref{range} \\ + |script-font| & Font to use for sub- and super-scripts & \secref{sscript} \\ + |script-features| & Font features for sub- and super-scripts & \secref{sscript} \\ + |sscript-font| & Font to use for nested sub- and super-scripts & \secref{sscript} \\ + |sscript-features| & Font features for nested sub- and super-scripts & \secref{sscript} \\ + \bottomrule + \end{tabular} +\end{table} + +\subsection{Using multiple fonts} +\seclabel{range} + +There will probably be few cases where a single Unicode maths font suffices +(simply due to glyph coverage). The \STIX\ font comes to mind as a +possible exception. It will therefore be necessary to delegate specific +Unicode ranges of glyphs to separate fonts: + \codeline{\cmd\setmathfont\marg{font name}|[range=|\meta{unicode range}|,|\meta{font features}|]|} +where \meta{unicode range} is a comma-separated list of Unicode slot numbers and ranges such as |{"27D0-"27EB,"27FF,"295B-"297F}|. +Note that \TeX's syntax for accessing the slot number of a character, such as |`\+|, will also work here. +Only numerical slots can be used in ranged declarations. + +You may also use the macro for accessing the glyph, such as |range=|\cs{int}, or whole collection of symbols with the same math type, such as |range=\mathopen|, or complete math styles such as |range=\symbb| (or just |range=bb|). + +\subsubsection{Control over alphabet ranges} + +As discussed earlier, Unicode mathematics consists of a number of `alphabet styles' within a single font. In \pkg{unicode-math}, these ranges are indicated with the following (hopefully self-explanatory) labels: +\begin{quote}\ttfamily +\ExplSyntaxOn +\clist_const:Nn \g__um_named_ranges_clist { +up , +it , +bb , +bbit , +scr , +cal , +bfcal , +frak , +tt , +sfup , +sfit , +bfup , +bfit , +bfscr , +bffrak, +bfsfup, +bfsfit, +} +\clist_use:Nn \g__um_named_ranges_clist {\,,\,~} +\ExplSyntaxOff +\end{quote} +Fonts can be selected (for predefined ranges only) using the following syntax, in which case all other maths font setup remains untouched: +\begin{itemize} +\item |[range=bb]| to use the font for `|bb|' letters only. +\item |[range=bfsfit/{greek,Greek}]| for Greek lowercase and uppercase only (also with |latin|, |Latin|, |num| as possible options for Latin lower-/upper-case and numbers, resp.). +\item |[range=up->sfup]| to map to different output styles. +\end{itemize} + +A common request is to load numerals only from a specific font. This can be +achieved with an option such as |range=up/{num}|. + +Note that `meta-styles' such as `|bf|' and `|sf|' are not included in the list above since they are context dependent. Use |[range=bfup]| and |[range=bfit]| to effect changes to the particular ranges selected by `|bf|' (and similarly for `|sf|'). + +If a particular math style is not defined in the font, we fall back onto the lower-base plane (i.e., `upright') glyphs. +Therefore, to use an \ascii-encoded fractur font, for example, write +\begin{Verbatim} + \setmathfont{SomeFracturFont}[range=frak] +\end{Verbatim} +and because the math plane fractur glyphs will be missing, \pkg{unicode-math} will know to use the \ascii\ ones instead. +If necessary this behaviour can be forced with |[range=frak->up]|, since the `|up|' range corresponds to \ascii\ letters. + +%If you wanted to swap the maths symbols with sans serif forms, it would be possible to write |[range={up->sfup,it->sfit}]|. +%Note, however, that at present Unicode does not encode glyphs for sans serif Greek (\tabref{mathalphabets}). + +Users of the impressive Minion Math fonts (commercial) may use remapping to access the bold glyphs using: +\begin{Verbatim} + \setmathfont{MinionMath-Regular.otf} + \setmathfont{MinionMath-Bold.otf}[range={bfup->up,bfit->it}] +\end{Verbatim} +To set up the complete range of optical sizes for these fonts, a font declaration such as the following may be used: (adjust may be desired according to the font size of the document) +\begin{Verbatim} +\setmathfont{Minion Math}[ + SizeFeatures = { + {Size = -6.01, Font = MinionMath-Tiny}, + {Size = 6.01-8.41, Font = MinionMath-Capt}, + {Size = 8.41-13.01, Font = MinionMath-Regular}, + {Size = 13.01-19.91, Font = MinionMath-Subh}, + {Size = 19.91-, Font = MinionMath-Disp} + }] + +\setmathfont{Minion Math}[range = {bfup->up,bfit->it}, + SizeFeatures = { + {Size = -6.01, Font = MinionMath-BoldTiny}, + {Size = 6.01-8.41, Font = MinionMath-BoldCapt}, + {Size = 8.41-13.01, Font = MinionMath-Bold}, + {Size = 13.01-19.91, Font = MinionMath-BoldSubh}, + {Size = 19.91-, Font = MinionMath-BoldDisp} + }] +\end{Verbatim} + + +\subsection{Script and scriptscript fonts/features} +\seclabel{sscript} + +Cambria Math uses OpenType font features to activate smaller optical sizes +for scriptsize and scriptscriptsize symbols (the $B$ and $C$, respectively, +in $A_{B_C}$). +Other typefaces (such as Minion Math) may use entirely separate font files. + +The features |script-font| and |sscript-font| allow alternate fonts to be +selected for the script and scriptscript sizes, and |script-features| and +|sscript-features| to apply different OpenType features to them. + +By default |script-features| is defined as |Style=MathScript| and |sscript-features| is |Style=MathScriptScript|. +These correspond to the two levels of OpenType's |ssty| feature tag. +If the |(s)script-features| options are specified manually, you must +additionally specify the |Style| options as above. + + +\subsection{Maths `versions'} + +\LaTeX\ uses a concept known as `maths versions' to switch math fonts +mid-document. +This is useful because it is more efficient than loading a complete maths +font from scratch every time---especially with thousands of glyphs in the case of Unicode maths! +The canonical example for maths versions is to select a `bold' maths font +which might be suitable for section headings, say. +(Not everyone agrees with this typesetting choice, though; be careful.) + +To select a new maths font in a particular version, use the syntax + \codeline{\cmd\setmathfont\marg{font name}|[version=|\meta{version name}|,|\meta{font features}|]|} +and to switch between maths versions mid-document use the standard \LaTeX\ command +\cmd\mathversion\marg{version name}. + +Note there are currently open issues regarding the interaction between the |version| +and the |range| features, so please proceed with caution. + +\subsection{Legacy maths `alphabet' commands} +\seclabel{mathselect} + +\LaTeX\ traditionally uses \cs{DeclareMathAlphabet} and \cs{SetMathAlphabet} to define document commands such as \cs{mathit}, \cs{mathbf}, and so on. +While these commands can still be used, \pkg{unicode-math} defines a wrapper command to assist with the creation of new such maths alphabet commands. +This command is known as \cs{setmathface} in symmetry with \pkg{fontspec}'s \cs{newfontface} command; it takes syntax: +\begin{quote} + \cmd\setmathfontface\meta{command}\marg{font name}|[|\meta{font features}|]| + + \makebox[0pt][l]{\cmd\setmathfontface\meta{command}\marg{font name}|[||version=|\meta{version name}|,|\meta{font features}|]|} +\end{quote} +For example, if you want to define a new legacy maths alphabet font \cs{mathittt}: +\begin{verbatim} + \setmathfontface\mathittt{texgyrecursor-italic.otf} + ... + $\mathittt{foo} = \mathittt{a} + \mathittt{b}$ +\end{verbatim} + + +\subsubsection{Default `text math' fonts} + +The five `text math' fonts, discussed above, are: \cs{mathrm}, \cs{mathbf}, \cs{mathit}, \cs{mathsf}, and \cs{mathtt}. +These commands are also defined with their original definition under synonyms \cs{mathtextrm}, \cs{mathtextbf}, and so on. +(These definitions hold regardless of package option, in case you need to be sure.) + +When selecting document fonts using \pkg{fontspec} commands such as \cs{setmainfont}, \pkg{unicode-math} inserts some additional code into \pkg{fontspec} that keeps the current default fonts `in sync' with their corresponding \cs{mathrm} commands, etc. + +For example, in standard \LaTeX, \cs{mathsf} doesn't change even if the main document font is changed using |\renewcommand\sfdefault{...}|. With \pkg{unicode-math} loaded, after writing |\setsansfont{Helvetica}|, \cs{mathsf} will now be set in Helvetica. + +If the \cs{mathsf} font is set explicitly at any time in the preamble, this `auto-following' does not occur. The legacy math font switches can be defined either with commands defined by \pkg{fontspec} (|\setmathrm|, |\setmathsf|, etc.) or using the more general |\setmathfontface\mathsf| interface defined by \pkg{unicode-math}. + + +\subsubsection{Replacing `text math' fonts by symbols} +\seclabel{textmathlegacy} + +For certain types of documents that use legacy input syntax, it may be preferable to have |\mathbf| behave as if it were |\symbf| en masse (et cetera respectively). +A series of package options (\tabref{legacyfontswitch}) are provided to facilitate switching the definition of \cs{mathXYZ} for the five legacy text math font definitions. + +For example, if in a particular document |\mathbf| is used only for choosing symbols of vectors and matrices, a dedicated symbol font (|\symbf|) will produce better spacing and will better match the main math font. +In that case loading |unicode-math| with the |mathbf=sym| will achieve the desired result. + +\begin{table} + \centering + \topcaption{Maths text font configuration options. Note that \cs{mathup} and \cs{mathrm} are aliases of each other and cannot be configured separately.} + \tablabel{legacyfontswitch} + \begin{tabular}{lll} + \toprule + Defaults (from `text' font) & From `maths symbols' \\ + \midrule + |mathrm=text| & |mathrm=sym | \\ + |mathup=text|\rlap{$^\ast$} & |mathup=sym|{}\rlap{$^\ast$} \\ + |mathit=text| & |mathit=sym | \\ + |mathsf=text| & |mathsf=sym | \\ + |mathbf=text| & |mathbf=sym | \\ + |mathtt=text| & |mathtt=sym | \\ + \bottomrule + \end{tabular} +\end{table} + + +\subsubsection{Operator font} + +\LaTeX\ defines an internal command \cs{operator@font} for typesetting elements such as |\sin| and |\cos|. +This font is selected from the legacy |operators| NFSS `MathAlphabet', which is no longer relevant in the context of \pkg{unicode-math}. +By default, the \cs{operator@font} command is defined to switch to the \cs{mathrm} font. +You may now change these using the command: +\begin{Verbatim} +\setoperatorfont\mathit +\end{Verbatim} +Or, to select a \pkg{unicode-math} range: +\begin{Verbatim} +\setoperatorfont\symscr +\end{Verbatim} +\setoperatorfont\symscr +For example, after the latter above, |$\sin x$| will produce `$\sin x$'. + +\mathversion{normal} +\setoperatorfont\mathrm + + +\section{Maths input} + +\XeTeX's Unicode support allows maths input through two methods. Like +classical \TeX, macros such as \cmd\alpha, \cmd\sum, \cmd\pm, \cmd\leq, and +so on, provide verbose access to the entire repertoire of characters defined +by Unicode. The literal characters themselves may be used instead, for more +readable input files. + +\subsection{Math `style'} +\seclabel{math-style} + +Classically, \TeX\ uses italic lowercase Greek letters and \emph{upright} +uppercase Greek letters for variables in mathematics. This is contrary to +the \textsc{iso} standards of using italic forms for both upper- and lowercase. +Furthermore, in various historical contexts, often associated with French typesetting, it was common to use upright uppercase \emph{Latin} letters as well as upright +upper- and lowercase Greek, but italic lowercase latin. Finally, it is not unknown to use upright letters +for all characters, as seen in the Euler fonts. + +The \pkg{unicode-math} package accommodates these possibilities with the +option \opt{math-style} that takes one of four (case sensitive) arguments: +\opt{TeX}, \opt{ISO}, \opt{french}, or \opt{upright}.\footnote{Interface inspired by Walter Schmidt's \pkg{lucimatx} package.} +The \opt{math-style} options' effects are shown in brief in \tabref{math-style}. + +The philosophy behind the interface to the mathematical symbols +lies in \LaTeX's attempt of separating content and formatting. Because input +source text may come from a variety of places, the upright and +`mathematical' italic Latin and Greek alphabets are \emph{unified} from the +point of view of having a specified meaning in the source text. That is, to +get a mathematical ‘$x$’, either the \ascii\ (`keyboard') letter |x| may +be typed, or the actual Unicode character may be used. Similarly for Greek +letters. The upright or italic forms are then chosen based on the +|math-style| package option. + +If glyphs are desired that do not map as per the package option (for +example, an upright `g' is desired but typing |$g$| yields `$g$'), +\emph{markup} is required to specify this; to follow from the example: +|\symup{g}|. +Maths style commands such as \cmd\symup\ are detailed later. + +For compatibility and consistency, however, upright and italic Greek letters +can be `forced` using \verb|up| or \verb|it| prefixes before their names. +For example, \cs{Gamma} will give an upright or italic Gamma depending on the +\opt{math-style}, but \cs{upGamma} and \cs{itGamma} will always give upright +or italic Gammas, respectively. + +\paragraph{`Literal' interface} +Some may not like this convention of normalising their input. +For them, an upright |x| is an upright `x' and that's that. +(This will be the case when obtaining source text from copy/pasting PDF or +Microsoft Word documents, for example.) +For these users, the |literal| option to |math-style| will effect this behaviour. +The \cs{symliteral}\marg{syms} command can also be used, regardless of package setting, to force the style to match the literal input characters. +This is a `mirror' to \cs{symnormal}\marg{syms} (also alias \cs{mathnormal}) which `resets' the character mapping in its argument to that originally set up through package options. + + +\begin{table} + \centering + \topcaption{Effects of the \opt{math-style} package option.} + \tablabel{math-style} + \begin{tabular}{@{}>{\ttfamily}lcc@{}} + \toprule + & \multicolumn{2}{c}{Example} \\ + \cmidrule(l){2-3} + \rmfamily Package option & Latin & Greek \\ + \midrule + math-style=ISO & $(a,z,B,X)$ & $\symit{(\alpha,\beta,\Gamma,\Xi)}$ \\ + math-style=TeX & $(a,z,B,X)$ & $(\symit\alpha,\symit\beta,\symup\Gamma,\symup\Xi)$ \\ + math-style=french & $(a,z,\symup B,\symup X)$ & $(\symup\alpha,\symup\beta,\symup\Gamma,\symup\Xi)$ \\ + math-style=upright & $(\symup a,\symup z,\symup B,\symup X)$ & $(\symup\alpha,\symup\beta,\symup\Gamma,\symup\Xi)$ \\ + \bottomrule + \end{tabular} +\end{table} + +\paragraph{`Full-width' letters} +Unicode contains `full-width' versions of ASCII from \unichar{FF01}. +The numerals and latin letters in this range are defined by \pkg{unicode-math} +to map to their standard ASCII counterparts, which are then controlled by the relevant \opt{math-style} setting. +Other full-width symbols are not currently included but can be if there is sufficient need or desire. + +\subsection{Bold style} +\seclabel{bold-style} + +Similar as in the previous section, ISO standards differ somewhat to \TeX's +conventions (and classical typesetting) for `boldness' in mathematics. In +the past, it has been customary to use bold \emph{upright} letters to denote +things like vectors and matrices. For example, \( \symbfup{M} = +(\mitM_x,\mitM_y,\mitM_z) \). Presumably, this was due to the relatively +scarcity of bold italic fonts in the pre-digital typesetting era. +It has been suggested by some that \emph{italic} bold symbols should be used nowadays instead, but this practise is certainly not widespread. + +Bold Greek letters have simply been bold variant glyphs of their regular +weight, as in \( \mbfitxi = (\mitxi_\mitr,\mitxi_\mitphi,\mitxi_\mittheta) +\). +Confusingly, the syntax in \LaTeX\ traditionally has been different for obtaining `normal' bold symbols in Latin and Greek: \cmd\mathbf\ in the former (`$\symbfup{M}$'), and \cmd\bm\ (or +\cmd\boldsymbol, deprecated) in the latter (`$\mbfitxi$'). + +In \pkg{unicode-math}, the \cmd\symbf\ command works directly with both +Greek and Latin maths characters and depending on package option +either switches to upright for Latin letters (|bold-style=TeX|) as well or +keeps them italic (|bold-style=ISO|). +To match the package options for non-bold characters, with option +|bold-style=upright| all bold characters are upright, and +|bold-style=literal| does not change the upright/italic shape of the letter. +The \opt{bold-style} options' effects are shown in brief in \tabref{bold-style}. + +Upright and italic bold mathematical letters input as direct Unicode +characters are normalised with the same rules. For example, with +|bold-style=TeX|, a literal bold italic latin character will be typeset +upright. + +Note that \opt{bold-style} is independent of \opt{math-style}, although if +the former is not specified then matching defaults are chosen based on the +latter. + +\begin{table} + \centering + \topcaption{Effects of the \opt{bold-style} package option.} + \tablabel{bold-style} + \begin{tabular}{@{}>{\ttfamily}lcc@{}} + \toprule + & \multicolumn{2}{c}{Example} \\ + \cmidrule(l){2-3} + \rmfamily Package option & Latin & Greek \\ + \midrule + bold-style=ISO & $(\symbfit a, \symbfit z, \symbfit B, \symbfit X)$ & $(\symbfit\alpha, \symbfit\beta, \symbfit\Gamma, \symbfit\Xi)$ \\ + bold-style=TeX & $(\symbfup a,\symbfup z,\symbfup B,\symbfup X)$ & $(\symbfit\alpha, \symbfit\beta,\symbfup \Gamma,\symbfup \Xi)$ \\ + bold-style=upright & $(\symbfup a,\symbfup z,\symbfup B,\symbfup X)$ & $(\symbfup \alpha,\symbfup \beta,\symbfup \Gamma,\symbfup \Xi)$ \\ + \bottomrule + \end{tabular} +\end{table} + + +\subsection{Sans serif style} +\seclabel{sans-style} + +Unicode contains upright and italic, medium and bold mathematical style characters. +These may be explicitly selected with the \cs{symsfup}, \cs{symsfit}, \cs{symbfsfup}, and \cs{symbfsfit} +commands discussed in \secref{all-math-alphabets}. + +How should the generic \cs{symsf} behave? Unlike bold, sans serif is used much more sparingly +in mathematics. I've seen recommendations to typeset tensors in sans serif italic +or sans serif italic bold (e.g., examples in the \pkg{isomath} and \pkg{mattens} packages). +But \LaTeX's \cs{mathsf} is \textsl{upright} sans serif. + +Therefore, the package options |[sans-style=upright]| and |[sans-style=italic]| control the behaviour of \cs{symsf}. +The |upright| style sets up the command to use upright sans serif, including Greek; +the |italic| style switches to using italic in both Latin and Greek. +In other words, this option simply changes the meaning of \cs{symsf} to either \cs{symsfup} or \cs{symsfit}, respectively. +Please let me know if more granular control is necessary here. + +There is also a |[sans-style=literal]| setting, set automatically with |[math-style=literal]|, which retains the uprightness of the input characters used when selecting the sans serif output. + +\subsubsection{What about bold sans serif?} + +While you might want your bold upright and your sans serif italic, I don't believe you'd also want your bold sans serif upright (etc.). +Therefore, bold sans serif follows from the setting for sans serif; it is completely independent of the setting for bold. + +In other words, \cs{symbfsf} is either \cs{symbfsfup} or \cs{symbfsfit} based on |[sans-style=upright]| or |[sans-style=italic]|, respectively. And \texttt{[sans-style = literal]} causes \cs{symbfsf} to retain the same italic or upright shape as the input, and turns it bold sans serif. + +N.B.: there is no medium-weight sans serif Greek range in Unicode. +Therefore, |\symsf{\alpha}| does not make sense (it produces `$\symsf{\alpha}$'), while |\symbfsf{\alpha}| gives `$\symbfsfup{\alpha}$' or `$\symbfsfit{\alpha}$' according to the |sans-style|. + +\subsection{All (the rest) of the mathematical styles} +\seclabel{all-math-alphabets} + +Unicode contains separate codepoints for most if not all variations of style +shape one may wish to use in mathematical notation. The complete list is shown +in \tabref{mathalphabets}. Some of these have been covered in the previous sections. + +The math font switching commands do not nest; therefore if you want +sans serif bold, you must write |\symbfsf{...}| rather than |\symbf{\symsf{...}}|. +This may change in the future. + +\begin{table} +\caption{Mathematical styles defined in Unicode. Black dots indicate an style exists in the font specified; blue dots indicate shapes that should always be taken from the upright font even in the italic style. See main text for description of \cs{mathbbit}.} +\tablabel{mathalphabets} +\centering +\def\Y{\textbullet} +\def\M{\textcolor[rgb]{0.5,0.5,1}{\textbullet}} +\begin{tabular}{@{} lll l ccc @{}} +\toprule +\multicolumn{3}{c}{Font} & & \multicolumn{3}{c}{Alphabet} \\ +\cmidrule(r){1-3} +\cmidrule(l){5-7} +Style & Shape & Series & Switch & Latin & Greek & Numerals \\ +\midrule +Serif & Upright & Normal & \cs{symup} & \Y & \Y & \Y \\ + & & Bold & \cs{symbfup} & \Y & \Y & \Y \\ + & Italic & Normal & \cs{symit} & \Y & \Y & \M \\ + & & Bold & \cs{symbfit} & \Y & \Y & \M \\ +Sans serif & Upright & Normal & \cs{symsfup} & \Y & & \Y \\ + & Italic & Normal & \cs{symsfit} & \Y & & \M \\ + & Upright & Bold & \cs{symbfsfup} & \Y & \Y & \Y \\ + & Italic & Bold & \cs{symbfsfit} & \Y & \Y & \M \\ +Typewriter & Upright & Normal & \cs{symtt} & \Y & & \Y \\ +Double-struck & Upright & Normal & \cs{symbb} & \Y & & \Y \\ + & Italic & Normal & \cs{symbbit} & \Y & & \\ +Script & Upright & Normal & \cs{symscr} & \Y & & \\ + & & Bold & \cs{symbfscr} & \Y & & \\ +Fraktur & Upright & Normal & \cs{symfrak} & \Y & & \\ + & & Bold & \cs{symbffrac} & \Y & & \\ +\bottomrule +\end{tabular} +\end{table} + +\subsubsection{Scope of the functionality of the \cs{sym..} commands} + +The \cs{sym..} commands are designed to affect only the follow sets of input letters: numerals ($0$--$9$), Latin ($a$--$z$, $A$--$Z$), Greek ($\alpha$--$\omega$, $\Alpha$--$\Omega$,), and the \cs{partial} and \cs{nabla} symbols ($\partial$, $\nabla$). +These are the only symbols for which Unicode defines separate codepoints with varying mathematical style. + +There is currently no scope for including other symbols in the \cs{sym..} commands, such as writing |\symbf{\int}| for a bold integral symbol. +Therefore the commands provided by \pkg{unicode-math} should not be compared to those provided by the \pkg{bm} package. + +\subsubsection{Double-struck} + +The double-struck style (also known as `blackboard bold') consists of +upright Latin letters $\{\symbb{a}$--$\symbb{z}$,$\symbb{A}$$\symbb{Z}\}$, +numerals $\symbb{0}$--$\symbb{9}$, summation symbol $\symbb\sum$, and four +Greek letters only: $\{\symbb{\gamma\pi\Gamma\Pi}\}$. + +While |\symbb{\sum}| does produce a double-struck summation symbol, +its limits aren't properly aligned. Therefore, +either the literal character or the control sequence \cs{Bbbsum} are +recommended instead. + +There are also five Latin \emph{italic} double-struck letters: $\symbbit{Ddeij}$. +These can be accessed (if not with their literal characters or control sequences) +with the \cs{mathbbit} style switch, but note that only those five letters +will give the expected output. + +\subsubsection{Caligraphic vs.\ Script variants} + +The Unicode maths encoding contains a style for `Script' letters, +and while by default \cs{mathcal} and \cs{mathscr} +are synonyms, there are some situations when a +separate `Caligraphic' style is needed as well. + +If a font contains alternate glyphs for a separat caligraphic style, +they can be selected explicitly as shown below. +This feature is currently only supported by the XITS~Math font, where +the caligraphic letters are accessed with the same glyph slots as the +script letters but with the first stylistic set feature (|ss01|) applied. +\begin{verbatim} + \setmathfont{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}[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}$ +\end{quote} + + +\subsection{Miscellanea} + +\subsubsection{Nabla} +\seclabel{nabla} + + The symbol $\nabla$ comes in the six forms shown in \tabref{nabla}. + We want an individual option to specify whether we want upright or italic + nabla by default (when either upright or italic nabla is used in the + source). \TeX\ classically uses an upright nabla, and \textsc{iso} + standards agree with this convention. + The package options |nabla=upright| (default) and + |nabla=italic| switch between the two choices, and |nabla=literal| respects + the shape of the input character. +|nabla=literal| is activated automatically after |math-style=literal|. + +These settings are then inherited through \cmd\symbf; \cmd\symit\ and \cmd\symup\ can be used to force the shape of the nabla one way or the other. + + +\begin{table} + \begin{minipage}[b]{0.49\textwidth} + \centering + \topcaption{The various forms of nabla.} + \tablabel{nabla} + \let \tmpshow\empty + \begin{tabular}{@{}llc@{}} + \toprule + \multicolumn{2}{@{}l}{Description} & Glyph \\ + \cmidrule(r){1-2}\cmidrule(l){3-3} + Upright & Serif & $\symup\nabla$ \\ + & Bold serif & $\symbfup\nabla$ \\ + & Bold sans & $\symbfsfup\nabla$ \\ + \cmidrule(lr){1-2}\cmidrule(lr){3-3} + Italic & Serif & $\symit\nabla$ \\ + & Bold serif & $\symbfit\nabla$ \\ + & Bold sans & $\symbfsfit\nabla$ \\ + \bottomrule + \end{tabular} + \end{minipage}\hfill + \begin{minipage}[b]{0.49\textwidth} + \centering + \topcaption{The partial differential.} + \tablabel{partial} + \begin{tabular}{@{}llc@{}} + \toprule + \multicolumn{2}{@{}l}{Description} & Glyph \\ + \cmidrule(r){1-2}\cmidrule(l){3-3} + Regular & Upright & $\symup\partial$ \\ + & Italic & $\symit\partial$ \\ + Bold & Upright & $\symbfup\partial$ \\ + & Italic & $\symbfit\partial$ \\ + Sans bold & Upright & $\symbfsfup\partial$ \\ + & Italic & $\symbfsfit\partial$ \\ + \bottomrule + \end{tabular} + \end{minipage} +\end{table} + + +\subsubsection{Partial} +\seclabel{partial} + +The same logic as for nabla applies to the symbols \unichar{2202} partial differential and \unichar{1D715} math italic partial differential. +However, in practice these symbols are often designed identically in an italic style. + +If the font you are using supports it, use the |partial=upright| or |partial=italic| (default) package options to specify +which one you would like, or |partial=literal| to have the same character +used in the output as was used for the input. +|partial=literal| is activated following |math-style=literal|. + +See \tabref{partial} for the variations on the partial differential symbol. + + +\subsubsection{Primes} + +Primes ($x'$) may be input in several ways. You may use any combination +the \ascii\ straight quote (\texttt{\char`\'}) or the Unicode prime \unichar{2032} +($'$); when multiple primes occur next to each other, they chain +together to form double, triple, or quadruple primes if the font contains +pre-drawn glyphs. The individual prime glyphs are accessed, as usual, +with the \cs{prime} command, and the double-, triple-, and quadruple-prime +glyphs are available with \cs{dprime}, \cs{trprime}, and \cs{qprime}, +respectively. + +If the font does not contain the pre-drawn glyphs or more than four primes +are used, the single prime glyph is used multiple times with a negative +kern to get the spacing right. There is no user interface to adjust this +negative kern yet (because I haven't decided what it should look like); +if you need to, write something like this: +\begin{Verbatim} +\ExplSyntaxOn +\muskip_gset:Nn \g_@@_primekern_muskip { -\thinmuskip/2 } +\ExplySyntaxOff +\end{Verbatim} +Backwards or reverse primes behave in exactly the same way; use the \ascii\ +back tick (\texttt{\char`\`}) or the Unicode reverse prime \unichar{2035} +({\umfont\char"2035}). +The command to access the backprime is \cs{backprime}, and +multiple backwards primes can accessed with \cs{backdprime}, +\cs{backtrprime}, and \cs{backqprime}. + +In all cases above, no error checking is performed if you attempt to +access a multi-prime glyph in a font that doesn't contain one. For this +reason, it may be safer to write |x''''| instead of |x\qprime| +in general. + +If you ever need to enter the straight quote |'| or the backtick |`| in +maths mode, these glyphs can be accessed with \cs{mathstraightquote} and +\cs{mathbacktick}. + +\subsubsection{Unicode subscripts and superscripts} + +You may, if you wish, use Unicode subscripts and superscripts in your +source document. For basic expressions, the use of these characters +can make the input more readable. +Adjacent sub- or super-scripts will be concatenated into a single +expression. + +The range of subscripts and superscripts supported by this package +are shown in \figref{superscripts,subscripts}. Please request more if +you think it is appropriate. + +\begin{figure}\centering +\fbox{\fontspec{CharisSILR.ttf}\Large +A +^^^^2070 ^^^^00b9 ^^^^00b2 ^^^^00b3 ^^^^2074 ^^^^2075 ^^^^2076 ^^^^2077 +^^^^2078 ^^^^2079 ^^^^207a ^^^^207b ^^^^207c ^^^^207d ^^^^207e ^^^^2071 +^^^^207f ^^^^207f ^^^^02b0 ^^^^02b2 ^^^^02b3 ^^^^02b7 ^^^^02b8 +Z} +\caption{ + The Unicode superscripts supported as input characters. + These are the literal glyphs from Charis SIL, + not the output seen when used for maths input. + The `A' and `Z' are to provide context for the size and + location of the superscript glyphs. +} +\figlabel{superscripts} +\end{figure} + +\begin{figure}\centering +\fbox{\fontspec{CharisSILR.ttf}\Large +A +^^^^2080 ^^^^2081 ^^^^2082 ^^^^2083 ^^^^2084 ^^^^2085 ^^^^2086 ^^^^2087 +^^^^2088 ^^^^2089 ^^^^208a ^^^^208b ^^^^208c ^^^^208d ^^^^208e ^^^^2090 +^^^^2091 ^^^^1d62 ^^^^2092 ^^^^1d63 ^^^^1d64 ^^^^1d65 ^^^^2093 ^^^^1d66 +^^^^1d67 ^^^^1d68 ^^^^1d69 ^^^^1d6a +Z} +\caption{ + The Unicode subscripts supported as input characters. + See note from \figref{superscripts}. +} +\figlabel{subscripts} +\end{figure} + +\subsubsection{Colon} +\seclabel{colon} + +The colon is one of the few confusing characters of Unicode maths. +In \TeX, \texttt{:} is defined as a colon with relation spacing: `$a:b$'. +While \cs{colon} is defined as a colon with punctuation spacing: `$a\colon b$'. + +In Unicode, \unichar{003A} {colon} is defined as a punctuation symbol, +while \unichar{2236} {ratio} is the colon-like symbol used in mathematics to denote +ratios and other things. + +This breaks the usual straightforward mapping from control sequence to Unicode input character +to (the same) Unicode glyph. + +To preserve input compatibility, we remap the \ascii\ input character `\texttt{:}' to \unichar{2236}. +Typing a literal \unichar{2236} char will result in the same output. +If \pkg{amsmath} is loaded, then the definition of \cs{colon} is inherited from there +(it looks like a punctuation colon with additional space around it). +Otherwise, \cs{colon} is made to output a colon with \cs{mathpunct} spacing. + +The package option |colon=literal| forces \ascii\ input `|:|' to be printed as \cs{mathcolon} instead. + + +\subsubsection{Slashes and backslashes} +\seclabel{slash-delimiter} + +There are several slash-like symbols defined in Unicode. The complete list is shown in \tabref{slashes}. + +\begin{table}\centering +\caption{Slashes and backslashes.} +\tablabel{slashes} +\begin{tabular}{@{}cl@{}cl@{}} +\toprule +Slot & Name & Glyph & Command \\ +\midrule +\unichar{002F} & \textsc{solidus} & \umfont \char"002F & \cs{slash} \\ +\unichar{2044} & \textsc{fraction slash} & \umfont \char"2044 & \cs{fracslash} \\ +\unichar{2215} & \textsc{division slash} & \umfont \char"2215 & \cs{divslash} \\ +\unichar{29F8} & \textsc{big solidus} & \umfont \char"29F8 & \cs{xsol} \\ +\midrule +\unichar{005C} & \textsc{reverse solidus} & \umfont \char"005C & \cs{backslash} \\ +\unichar{2216} & \textsc{set minus} & \umfont \char"2216 & \cs{smallsetminus} \\ +\unichar{29F5} & \textsc{reverse solidus operator}& \umfont \char"29F5 & \cs{setminus} \\ +\unichar{29F9} & \textsc{big reverse solidus} & \umfont \char"29F9 & \cs{xbsol} \\ +\bottomrule +\end{tabular} +\end{table} + +In regular \LaTeX\ we can write \cs{left}\cs{slash}\dots\cs{right}\cs{backslash} +and so on and obtain extensible delimiter-like symbols. Not all of the Unicode slashes +are suitable for this (and do not have the font support to do it). + +\paragraph{Slash} + +Of \unichar{2044} {fraction slash}, TR25 says that it is: +\begin{quote} +\dots used to build up simple fractions in running text\dots +however parsers of mathematical texts should be prepared to handle fraction slash +when it is received from other sources. +\end{quote} + +\unichar{2215} {division slash} should be used when division is represented +without a built-up fraction; $\pi\approx22/7$, for example. + +\unichar{29F8} {big solidus} is a `big operator' (like $\sum$). + +\paragraph{Backslash} + +The \unichar{005C} {reverse solidus} character \cs{backslash} is used for denoting +double cosets: $A\backslash B$. (So I'm led to believe.) +It may be used as a `stretchy' delimiter if supported by the font. + +MathML uses \unichar{2216} {set minus} like this: $A\smallsetminus B$.\footnote{\S4.4.5.11 \url{http://www.w3.org/TR/MathML3/}} +The \LaTeX\ command name \cs{smallsetminus} is used for backwards compatibility. + +Presumably, \unichar{29F5} {reverse solidus operator} is intended to +be used in a similar way, but it could also (perhaps?) be used to +represent `inverse division': $\pi\approx7\mathbin{\backslash}22$.^^A +\footnote{This is valid syntax in the Octave and Matlab programming languages, +in which it means matrix inverse pre-multiplication. I.e., $A\mathbin{\backslash} B\equiv A^{-1}B$.} +The \LaTeX\ name for this character is \cs{setminus}. + +Finally, \unichar{29F9} {big reverse solidus} is a `big operator' (like $\sum$). + +\paragraph{How to use all of these things} + +Unfortunately, font support for the above characters/glyphs is rather inconsistent. +In Cambria Math, the only slash that grows (say when writing +\[ +\left.\left[\begin{array}{cc} a & b \\ c & d\end{array}\right]\middle\slash + \left[\begin{array}{cc} 1 & 1 \\ 1 & 0\end{array}\right] \right.\quad ) +\] +is the \textsc{fraction slash}, which we just established above is +sort of only supposed to be used in text. + +Of the above characters, the following are allowed to be used after +\cs{left}, \cs{middle}, and \cs{right}: +\begin{itemize} +\item \cs{fracslash}; +\item \cs{slash}; and, +\item \cs{backslash} (the only reverse slash). +\end{itemize} + +However, we assume that there is only \emph{one} stretchy slash +in the font; this is assumed by default to be \unichar{002F} {solidus}. +Writing \cs{left/} or \cs{left}\cs{slash} or \cs{left}\cs{fracslash} +will all result in the same stretchy delimiter being used. + +The delimiter used can be changed with the |slash-delimiter| package option. +Allowed values are |ascii|, |frac|, and |div|, corresponding to the respective +Unicode slots. + +For example: as mentioned above, Cambria Math's stretchy slash is +\unichar{2044} {fraction slash}. When using Cambria Math, then +\pkg{unicode-math} should be loaded with the |slash-delimiter=frac| option. +(This should be a font option rather than a package option, but +it will change soon.) + +\subsubsection{Behaviour of hyphens in mathematics} +\seclabel{hyphen} + +Unicode defines the following related characters: +\begin{itemize} +\item \unichar{0002D}{hyphen-minus} +\item \unichar{02212}{minus sign} +\item \unichar{02010}{hyphen} (\cs{mathhyphen}) +\end{itemize} +The first two of these characters in the input will all behave as the binary operator +`minus sign'. +The third is defined by \pkg{unicode-math} as a `math letter' for constructions +like \verb|$R‐\text{Mod}$| ($R‐\text{Mod}$). +If more control is needed surrounding these symbols, additional options can be added to the package; +please get in touch if this is the case for you. + + +\subsubsection{Growing and non-growing accents} +\seclabel{growing-accents} + +There are a few accents for which \TeX\ has both non-growing and growing +versions. Among these are \cs{hat} and \cs{tilde}; the corresponding growing +versions are called \cs{widehat} and \cs{widetilde}, respectively. + +Older versions of \XeTeX\ and \LuaTeX\ did not support this distinction, +however, and \emph{all} accents there were growing automatically. (I.e., +\cs{hat} and \cs{widehat} are equivalent.) As of \LuaTeX\ v0.65 and \XeTeX\ +v0.9998, these wide/non-wide commands will again behave in their expected +manner. + + +\subsubsection{Negations and the \cs{not} command} +\seclabel{negations} + +The \cs{not} command in classic \LaTeXe\ was a mathematical slash modifying glyph that allowed for `negating` maths symbols where pre-built glyphs were not available. While Unicode encodes a slot for this modifying slash, it is only well-supported in \LuaTeX\ and not in \XeTeX. + +To provide more flexibility, the \pkg{unicode-math} package defines \cs{not} to search for a predefined `negated' definitions for its argument and use that if available. This method can be used for fine-tuning in cases where spacing needs to be adjusted. + +A `negated definition` is any symbol command prefixed by either \verb|n| or \verb|not|. For example, \pkg{unicode-math} by default defines both \cs{leftarrow} ($\leftarrow$) and \cs{nleftarrow} ($\nleftarrow$). + +To define custom negated definitions for either symbols (e.g., \verb|\not=|) or commands (e.g., \verb|\not\equal|), use the \cs{NewNotCommand}\marg{symbol or cmd}\marg{definition} command. Its usage is as follows: +\begin{verbatim} +\NewNegationCommand {=} {\neq} +\NewNegationCommand {\equal} {\neq} +\end{verbatim} +If the command has already been defined, an error will result and \verb|\RenewNegationCommand| can be used to overwrite the original definition. + + +\subsubsection{Pre-drawn fraction characters} + +Pre-drawn fractions \unichar{00BC}--\unichar{00BE}, \unichar{2150}--\unichar{215E} +are not suitable for use in mathematics output. However, they can be useful +as input characters to abbreviate common fractions. +\begin{center} +\fontspec{DejaVuSerif.ttf} ^^A available in TeX Live 2012 if not earlier +¼ ½ ¾ ↉ ⅐ ⅑ ⅒ ⅓ ⅔ ⅕ ⅖ ⅗ ⅘ ⅙ ⅚ ⅛ ⅜ ⅝ ⅞ +\end{center} +For example, instead of writing `|\tfrac12 x|', you may consider it more readable to have +`|½x|' in the source instead. + +If the \cs{tfrac} command exists (i.e., if \pkg{amsmath} is loaded or +you have specially defined \cs{tfrac} for this purpose), it will be used +to typeset the fractions. If not, regular \cs{frac} will be used. The command +to use (\cs{tfrac} or \cs{frac}) can be forced either way with the package +option |active-frac=small| or |active-frac=normalsize|, respectively. + +\subsubsection{Circles} + +Unicode defines a large number of different types of circles for a variety +of mathematical purposes. There are thirteen alone just considering the +all white and all black ones, shown in \tabref{circles}. + +\LaTeX\ defines considerably fewer: \cs{circ} and \cs{bigcirc} for white; +\cs{bullet} for black. This package maps those commands to \cs{vysmwhtcircle}, +\cs{mdlgwhtcircle}, and \cs{smblkcircle}, respectively. + +\begin{table}\centering +\def\showchar#1#2#3{ \textsc{u}+{\small\ttfamily #1} & \texttt{\string#3} & \umfont \char"#1 \\} +\begin{tabular}{@{}llc@{}} +\toprule +Slot & Command & Glyph \\ +\midrule +\showchar{00B7}{centerdot}{\cdotp} +\showchar{22C5}{small middle dot}{\cdot} +\showchar{2219}{bullet operator}{\vysmblkcircle} +\showchar{2022}{round bullet, filled}{\smblkcircle} +\showchar{2981}{z notation spot}{\mdsmblkcircle} +\showchar{26AB}{medium black circle}{\mdblkcircle} +\showchar{25CF}{circle, filled}{\mdlgblkcircle} +\showchar{2B24}{black large circle}{\lgblkcircle} +\bottomrule +\end{tabular} +\def\showchar#1#2#3{ \umfont \char"#1 & \texttt{\string#3} & \textsc{u}+{\small\ttfamily #1} \\} +\begin{tabular}{@{}cll@{}} +\toprule +Glyph & Command & Slot \\ +\midrule +\\ +\\ +\showchar{2218}{composite function (small circle)}{\vysmwhtcircle} +\showchar{25E6}{white bullet}{\smwhtcircle} +\showchar{26AC}{medium small white circle}{\mdsmwhtcircle} +\showchar{26AA}{medium white circle}{\mdwhtcircle} +\showchar{25CB}{large circle}{\mdlgwhtcircle} +\showchar{25EF}{large circle}{\lgwhtcircle} +\bottomrule +\end{tabular} +\caption{Filled and hollow Unicode circles.} +\tablabel{circles} +\end{table} + +\subsubsection{Triangles} + +While there aren't as many different sizes of triangle as there are circle, +there's some important distinctions to make between a few similar characters. See \tabref{uptriangles} for the full summary. + +These triangles all have different intended meanings. Note for backwards +compatibility with \TeX, \unichar{25B3} has \emph{two} different mappings +in \pkg{unicode-math}. \cs{bigtriangleup} is intended as a binary operator +whereas \cs{triangle} is intended to be used as a letter-like symbol. + +But you're better off if you're using the latter form to indicate an +increment to use the glyph intended for this purpose, \unichar{2206}: $\increment x$. + +Finally, given that $\triangle$ and $\increment$ are provided for you +already, it is better off to only use upright Greek Delta $\Delta$ if you're +actually using it as a symbolic entity such as a variable on its own. + +\begin{table}\centering +\begin{tabular}{@{}llcl@{}} +\toprule +Slot & Command & Glyph & Class \\ +\midrule +\unichar{25B5} & \cs{vartriangle} & \umfont \char"25B5 & binary \\ +\unichar{25B3} & \cs{bigtriangleup} & \umfont \char"25B3 & binary \\ +\unichar{25B3} & \cs{triangle} & \umfont \char"25B3 & ordinary \\ +\unichar{2206} & \cs{increment} & \umfont \char"2206 & ordinary \\ +\unichar{0394} & \cs{mathup}\cs{Delta} & \umfont \char"0394 & ordinary \\ +\bottomrule +\end{tabular} +\caption{Different upwards pointing triangles.} +\tablabel{uptriangles} +\end{table} + +\iffalse +\subsubsection{Normalising some input characters} + +I believe +all variant forms should be used as legal input that is normalised to +a consistent output glyph, because we want to be fault-tolerant in the input. +Here are the duplicates: +\begin{quote}\obeylines +\unichar {251} {latin small letter alpha} +\unichar {25B} {latin small letter epsilon} +\unichar {263} {latin small letter gamma} +\unichar {269} {latin small letter iota} +\unichar {278} {latin small letter phi} +\unichar {28A} {latin small letter upsilon} +\unichar {190} {latin capital letter epsilon} +\unichar {194} {latin capital letter gamma} +\unichar {196} {latin capital letter iota} +\unichar {1B1} {latin capital letter upsilon} +\end{quote} + +(Not yet implemented.) +\fi + +\section{Advanced} + +\subsection{Warning messages} + +This package can produce a number of informational messages to try and inform the user when something might be going wrong due to package conflicts or something else. +As an experimental feature, these can be turn off on an individual basis with the package option |warnings-off| which takes a comma-separated list of warnings to suppress. +A warning will give you its name when printed on the console output; e.g., +\begin{Verbatim} + * unicode-math warning: "mathtools-colon" + * + * ... <warning message> ... +\end{Verbatim} +This warning could be suppressed by loading the package as follows: +\begin{Verbatim} + \usepackage[warnings-off={mathtools-colon}]{unicode-math} +\end{Verbatim} + +\subsection{Programmer's interface} + +(Tentative and under construction.) +If you are writing some code that needs to know the current +maths style (\cs{mathbf}, \cs{mathit}, etc.), you can query the +variable \cs{l_@@_mathstyle_tl}. It will contain the maths style +without the leading `math' string; for example, +|\symbf { \show \l_@@_mathstyle_tl }| +will produce `bf'. + +\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/doc/latex/unicode-math/um-doc-mathfontdimen.tex b/Master/texmf-dist/doc/latex/unicode-math/um-doc-mathfontdimen.tex new file mode 100644 index 00000000000..45b7463dbf0 --- /dev/null +++ b/Master/texmf-dist/doc/latex/unicode-math/um-doc-mathfontdimen.tex @@ -0,0 +1,151 @@ +%%^^A%% um-doc-mathfontdimen.tex -- part of UNICODE-MATH <wspr.io/unicode-math> + +\section{\Hologo{XeTeX} math font dimensions} + +These are the extended \cmd\fontdimen s available for suitable fonts +in \XeTeX. Note that Lua\TeX\ takes an alternative route, and this package +will eventually provide a wrapper interface to the two (I hope). + +\newcounter{mfdimen} +\setcounter{mfdimen}{9} +\newcommand\mathfontdimen[2]{^^A + \stepcounter{mfdimen}^^A + \themfdimen & {\scshape\small #1} & #2\vspace{0.5ex} \tabularnewline} + +\begin{longtable}{ + @{}c>{\raggedright\parfillskip=0pt}p{4cm}>{\raggedright}p{7cm}@{}} +\toprule \cmd\fontdimen & Dimension name & Description\tabularnewline\midrule \endhead +\bottomrule\endfoot +\mathfontdimen{Script\-Percent\-Scale\-Down} +{Percentage of scaling down for script level 1. Suggested value: 80\%.} +\mathfontdimen{Script\-Script\-Percent\-Scale\-Down} +{Percentage of scaling down for script level 2 (Script\-Script). Suggested value: 60\%.} +\mathfontdimen{Delimited\-Sub\-Formula\-Min\-Height} +{Minimum height required for a delimited expression to be treated as a subformula. Suggested value: normal line height\,×\,1.5.} +\mathfontdimen{Display\-Operator\-Min\-Height} +{Minimum height of n-ary operators (such as integral and summation) for formulas in display mode.} +\mathfontdimen{Math\-Leading} +{White space to be left between math formulas to ensure proper line spacing. For example, for applications that treat line gap as a part of line ascender, formulas with ink going above (os2.sTypoAscender + os2.sTypoLineGap – MathLeading) or with ink going below os2.sTypoDescender will result in increasing line height.} +\mathfontdimen{Axis\-Height} +{Axis height of the font. } +\mathfontdimen{Accent\-Base\-Height} +{Maximum (ink) height of accent base that does not require raising the accents. Suggested: x-height of the font (os2.sxHeight) plus any possible overshots. } +\mathfontdimen{Flattened\-Accent\-Base\-Height} +{Maximum (ink) height of accent base that does not require flattening the accents. Suggested: cap height of the font (os2.sCapHeight).} +\mathfontdimen{Subscript\-Shift\-Down} +{The standard shift down applied to subscript elements. Positive for moving in the downward direction. Suggested: os2.ySubscriptYOffset.} +\mathfontdimen{Subscript\-Top\-Max} +{Maximum allowed height of the (ink) top of subscripts that does not require moving subscripts further down. Suggested: /5 x-height.} +\mathfontdimen{Subscript\-Baseline\-Drop\-Min} +{Minimum allowed drop of the baseline of subscripts relative to the (ink) bottom of the base. Checked for bases that are treated as a box or extended shape. Positive for subscript baseline dropped below the base bottom.} +\mathfontdimen{Superscript\-Shift\-Up} +{Standard shift up applied to superscript elements. Suggested: os2.ySuperscriptYOffset.} +\mathfontdimen{Superscript\-Shift\-Up\-Cramped} +{Standard shift of superscripts relative to the base, in cramped style.} +\mathfontdimen{Superscript\-Bottom\-Min} +{Minimum allowed height of the (ink) bottom of superscripts that does not require moving subscripts further up. Suggested: ¼ x-height.} +\mathfontdimen{Superscript\-Baseline\-Drop\-Max} +{Maximum allowed drop of the baseline of superscripts relative to the (ink) top of the base. Checked for bases that are treated as a box or extended shape. Positive for superscript baseline below the base top.} +\mathfontdimen{Sub\-Superscript\-Gap\-Min} +{Minimum gap between the superscript and subscript ink. Suggested: 4×default rule thickness.} +\mathfontdimen{Superscript\-Bottom\-Max\-With\-Subscript} +{The maximum level to which the (ink) bottom of superscript can be pushed to increase the gap between superscript and subscript, before subscript starts being moved down. +Suggested: /5 x-height.} +\mathfontdimen{Space\-After\-Script} +{Extra white space to be added after each subscript and superscript. Suggested: 0.5pt for a 12 pt font.} +\mathfontdimen{Upper\-Limit\-Gap\-Min} +{Minimum gap between the (ink) bottom of the upper limit, and the (ink) top of the base operator. } +\mathfontdimen{Upper\-Limit\-Baseline\-Rise\-Min} +{Minimum distance between baseline of upper limit and (ink) top of the base operator.} +\mathfontdimen{Lower\-Limit\-Gap\-Min} +{Minimum gap between (ink) top of the lower limit, and (ink) bottom of the base operator.} +\mathfontdimen{Lower\-Limit\-Baseline\-Drop\-Min} +{Minimum distance between baseline of the lower limit and (ink) bottom of the base operator.} +\mathfontdimen{Stack\-Top\-Shift\-Up} +{Standard shift up applied to the top element of a stack.} +\mathfontdimen{Stack\-Top\-Display\-Style\-Shift\-Up} +{Standard shift up applied to the top element of a stack in display style.} +\mathfontdimen{Stack\-Bottom\-Shift\-Down} +{Standard shift down applied to the bottom element of a stack. Positive for moving in the downward direction.} +\mathfontdimen{Stack\-Bottom\-Display\-Style\-Shift\-Down} +{Standard shift down applied to the bottom element of a stack in display style. Positive for moving in the downward direction.} +\mathfontdimen{Stack\-Gap\-Min} +{Minimum gap between (ink) bottom of the top element of a stack, and the (ink) top of the bottom element. Suggested: 3×default rule thickness.} +\mathfontdimen{Stack\-Display\-Style\-Gap\-Min} +{Minimum gap between (ink) bottom of the top element of a stack, and the (ink) top of the bottom element in display style. Suggested: 7×default rule thickness.} +\mathfontdimen{Stretch\-Stack\-Top\-Shift\-Up} +{Standard shift up applied to the top element of the stretch stack.} +\mathfontdimen{Stretch\-Stack\-Bottom\-Shift\-Down} +{Standard shift down applied to the bottom element of the stretch stack. Positive for moving in the downward direction.} +\mathfontdimen{Stretch\-Stack\-Gap\-Above\-Min} +{Minimum gap between the ink of the stretched element, and the (ink) bottom of the element above. Suggested: Upper\-Limit\-Gap\-Min} +\mathfontdimen{Stretch\-Stack\-Gap\-Below\-Min} +{Minimum gap between the ink of the stretched element, and the (ink) top of the element below. Suggested: Lower\-Limit\-Gap\-Min.} +\mathfontdimen{Fraction\-Numerator\-Shift\-Up} +{Standard shift up applied to the numerator. } +\mathfontdimen{Fraction\-Numerator\-Display\-Style\-Shift\-Up} +{Standard shift up applied to the numerator in display style. Suggested: Stack\-Top\-Display\-Style\-Shift\-Up.} +\mathfontdimen{Fraction\-Denominator\-Shift\-Down} +{Standard shift down applied to the denominator. Positive for moving in the downward direction.} +\mathfontdimen{Fraction\-Denominator\-Display\-Style\-Shift\-Down} +{Standard shift down applied to the denominator in display style. Positive for moving in the downward direction. Suggested: Stack\-Bottom\-Display\-Style\-Shift\-Down.} +\mathfontdimen{Fraction\-Numerator\-Gap\-Min} +{Minimum tolerated gap between the (ink) bottom of the numerator and the ink of the fraction bar. Suggested: default rule thickness} +\mathfontdimen{Fraction\-Num\-Display\-Style\-Gap\-Min} +{Minimum tolerated gap between the (ink) bottom of the numerator and the ink of the fraction bar in display style. Suggested: 3×default rule thickness.} +\mathfontdimen{Fraction\-Rule\-Thickness} +{Thickness of the fraction bar. Suggested: default rule thickness.} +\mathfontdimen{Fraction\-Denominator\-Gap\-Min} +{Minimum tolerated gap between the (ink) top of the denominator and the ink of the fraction bar. Suggested: default rule thickness} +\mathfontdimen{Fraction\-Denom\-Display\-Style\-Gap\-Min} +{Minimum tolerated gap between the (ink) top of the denominator and the ink of the fraction bar in display style. Suggested: 3×default rule thickness.} +\mathfontdimen{Skewed\-Fraction\-Horizontal\-Gap} +{Horizontal distance between the top and bottom elements of a skewed fraction.} +\mathfontdimen{Skewed\-Fraction\-Vertical\-Gap} +{Vertical distance between the ink of the top and bottom elements of a skewed fraction.} +\mathfontdimen{Overbar\-Vertical\-Gap} +{Distance between the overbar and the (ink) top of he base. Suggested: 3×default rule thickness.} +\mathfontdimen{Overbar\-Rule\-Thickness} +{Thickness of overbar. Suggested: default rule thickness.} +\mathfontdimen{Overbar\-Extra\-Ascender} +{Extra white space reserved above the overbar. Suggested: default rule thickness.} +\mathfontdimen{Underbar\-Vertical\-Gap} +{Distance between underbar and (ink) bottom of the base. Suggested: 3×default rule thickness.} +\mathfontdimen{Underbar\-Rule\-Thickness} +{Thickness of underbar. Suggested: default rule thickness.} +\mathfontdimen{Underbar\-Extra\-Descender} +{Extra white space reserved below the underbar. Always positive. Suggested: default rule thickness.} +\mathfontdimen{Radical\-Vertical\-Gap} +{Space between the (ink) top of the expression and the bar over it. Suggested: 1¼ default rule thickness.} +\mathfontdimen{Radical\-Display\-Style\-Vertical\-Gap} +{Space between the (ink) top of the expression and the bar over it. Suggested: default rule thickness + ¼ x-height. } +\mathfontdimen{Radical\-Rule\-Thickness} +{Thickness of the radical rule. This is the thickness of the rule in designed or constructed radical signs. Suggested: default rule thickness.} +\mathfontdimen{Radical\-Extra\-Ascender} +{Extra white space reserved above the radical. Suggested: Radical\-Rule\-Thickness.} +\mathfontdimen{Radical\-Kern\-Before\-Degree} +{Extra horizontal kern before the degree of a radical, if such is present. Suggested: 5/18 of em.} +\mathfontdimen{Radical\-Kern\-After\-Degree} +{Negative kern after the degree of a radical, if such is present. Suggested: −10/18 of em.} +\mathfontdimen{Radical\-Degree\-Bottom\-Raise\-Percent} +{Height of the bottom of the radical degree, if such is present, in proportion to the ascender of the radical sign. Suggested: 60\%.} +\end{longtable} + +\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/doc/latex/unicode-math/um-doc-nfsssummary.tex b/Master/texmf-dist/doc/latex/unicode-math/um-doc-nfsssummary.tex new file mode 100644 index 00000000000..a4666af1930 --- /dev/null +++ b/Master/texmf-dist/doc/latex/unicode-math/um-doc-nfsssummary.tex @@ -0,0 +1,84 @@ +%%^^A%% um-doc-nfsssummary.tex -- part of UNICODE-MATH <wspr.io/unicode-math> + +\section{Documenting maths support in the NFSS} + +In the following, \meta{NFSS decl.} stands for something like |{T1}{lmr}{m}{n}|. + +\begin{description} +\item[Maths symbol fonts] Fonts for symbols: $\propto$, $\leq$, $\rightarrow$ + +\cmd\DeclareSymbolFont\marg{name}\meta{NFSS decl.}\\ +Declares a named maths font such as |operators| from which symbols are defined with \cmd\DeclareMathSymbol. + +\item[Maths alphabet fonts] Fonts for {\font\1=cmmi10 at 10pt\1 ABC}\,–\,{\font\1=cmmi10 at 10pt\1 xyz}, {\font\1=eufm10 at 10pt\1 ABC}\,–\,{\font\1=cmsy10 at 10pt\1 XYZ}, etc. + +\cmd\DeclareMathAlphabet\marg{cmd}\meta{NFSS decl.} + +For commands such as \cmd\mathbf, accessed +through maths mode that are unaffected by the current text font, and which are used for +alphabetic symbols in the \ascii\ range. + +\cmd\DeclareSymbolFontAlphabet\marg{cmd}\marg{name} + +Alternative (and optimisation) for \cmd\DeclareMathAlphabet\ if a single font is being used +for both alphabetic characters (as above) and symbols. + +\item[Maths `versions'] Different maths weights can be defined with the following, switched +in text with the \cmd\mathversion\marg{maths version} command. + +\cmd\SetSymbolFont\marg{name}\marg{maths version}\meta{NFSS decl.}\\ +\cmd\SetMathAlphabet\marg{cmd}\marg{maths version}\meta{NFSS decl.} + +\item[Maths symbols] Symbol definitions in maths for both characters (=) and macros (\cmd\eqdef): +\cmd\DeclareMathSymbol\marg{symbol}\marg{type}\marg{named font}\marg{slot} +This is the macro that actually defines which font each symbol comes from and how they behave. +\end{description} +Delimiters and radicals use wrappers around \TeX's \cmd\delimiter/\cmd\radical\ primitives, +which are re-designed in \XeTeX. The syntax used in \LaTeX's NFSS is therefore not so relevant here. +\begin{description} +\item[Delimiters] A special class of maths symbol which enlarge themselves in certain contexts. + +\cmd\DeclareMathDelimiter\marg{symbol}\marg{type}\marg{sym.\ font}\marg{slot}\marg{sym.\ font}\marg{slot} + +\item[Radicals] Similar to delimiters (\cmd\DeclareMathRadical\ takes the same syntax) but +behave `weirdly'. +\end{description} +In those cases, glyph slots in \emph{two} symbol fonts are required; one for the small (`regular') case, +the other for situations when the glyph is larger. This is not the case in \XeTeX. + +Accents are not included yet. + +\paragraph{Summary} + +For symbols, something like: +\begin{Verbatim} +\def\DeclareMathSymbol#1#2#3#4{ + \global\mathchardef#1"\mathchar@type#2 + \expandafter\hexnumber@\csname sym#2\endcsname + {\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}} +\end{Verbatim} +For characters, something like: +\begin{Verbatim} +\def\DeclareMathSymbol#1#2#3#4{ + \global\mathcode`#1"\mathchar@type#2 + \expandafter\hexnumber@\csname sym#2\endcsname + {\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}} +\end{Verbatim} +\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/doc/latex/unicode-math/um-doc-stixextract.tex b/Master/texmf-dist/doc/latex/unicode-math/um-doc-stixextract.tex new file mode 100644 index 00000000000..7738fc8be86 --- /dev/null +++ b/Master/texmf-dist/doc/latex/unicode-math/um-doc-stixextract.tex @@ -0,0 +1,38 @@ +%%^^A%% um-doc-stixextract.tex -- part of UNICODE-MATH <wspr.io/unicode-math> + +\section{\STIX\ table data extraction}\label{part:awk} + +The source for the \TeX\ names for the very large number of mathematical +glyphs are provided via Barbara Beeton's table file for the \STIX\ project +(|ams.org/STIX|). A version is located at +|http://www.ams.org/STIX/bnb/stix-tbl.asc| +but check |http://www.ams.org/STIX/| for more up-to-date info. + +This table is converted into a form suitable for reading by \TeX. +A single file is produced containing all (more than 3298) symbols. +Future optimisations might include generating various (possibly overlapping) subsets +so not all definitions must be read just to redefine a small range of symbols. +Performance for now seems to be acceptable without such measures. + +This file is currently developed outside this DTX file. It will be +incorporated when the final version is ready. (I know this is not how +things are supposed to work!) + +\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/doc/latex/unicode-math/um-doc-style.tex b/Master/texmf-dist/doc/latex/unicode-math/um-doc-style.tex new file mode 100644 index 00000000000..88c761e512b --- /dev/null +++ b/Master/texmf-dist/doc/latex/unicode-math/um-doc-style.tex @@ -0,0 +1,129 @@ +%%^^A%% um-doc-style.tex -- part of UNICODE-MATH <wspr.io/unicode-math> + +\makeatletter +\input{unicode-math.dtx} +\GetFileInfo{unicode-math.dtx} +\let\umfiledate\filedate +\let\umfileversion\fileversion + +\CheckSum{0} +\EnableCrossrefs +\CodelineIndex +\setcounter{IndexColumns}{2} + +\usepackage[svgnames]{xcolor} +\usepackage[inline]{enumitem} +\usepackage{amsmath,array,booktabs,calc,enumitem,fancyvrb,graphicx,ifthen,longtable,refstyle,subfig,topcapt,url,varioref,underscore} +\setcounter{LTchunksize}{100} +\usepackage[slash-delimiter=frac,nabla=literal]{unicode-math} +\usepackage{metalogo,hologo} + +\fvset{fontsize=\small,xleftmargin=2em} +\usepackage[it]{titlesec} + +\setmainfont{texgyrepagella}% + [ + Extension = .otf , + UprightFont = *-regular , + ItalicFont = *-italic , + BoldFont = *-bold , + BoldItalicFont = *-bolditalic , + ] +\setsansfont{Iwona}% + [ + Scale=MatchLowercase, + Extension = .otf, + UprightFont = *-Regular, + ItalicFont = *-Italic, + BoldFont = *-Bold, + BoldItalicFont = *-BoldItalic, + ] +\setmonofont{Inconsolatazi4-Regular.otf}% + [ + Scale=MatchLowercase, + BoldFont=Inconsolatazi4-Bold.otf + ] + +\setmathfont{texgyrepagella-math.otf} +\setmathfont[version=xits]{xits-math.otf} +\newfontface\umfont{xits-math.otf} + +\usepackage{hypdoc} +\hypersetup{linktocpage} + +% work around some issue turning | into "j" inside mathsf in the definition of \Module: +% (also prettify) +\def\Module#1{{\footnotesize\color{red}$\langle$\texttt{#1}$\rangle$}} + +\linespread{1.1} +\frenchspacing + +\definecolor{niceblue}{rgb}{0.2,0.4,0.8} + +\def\theCodelineNo{\textcolor{niceblue}{\sffamily\tiny\arabic{CodelineNo}}} + +\newcommand*\name[1]{{#1}} +\newcommand*\pkg[1]{\textsf{#1}} +\newcommand*\feat[1]{\texttt{#1}} +\newcommand*\opt[1]{\texttt{#1}} + +\newcommand*\note[1]{\unskip\footnote{#1}} + +\let\latin\textit +\def\eg{\latin{e.g.}} +\def\Eg{\latin{E.g.}} +\def\ie{\latin{i.e.}} +\def\etc{\@ifnextchar.{\latin{etc}}{\latin{etc.}\@}} + +\def\STIX{\textsc{stix}} +\def\MacOSX{Mac~OS~X} +\def\ascii{\textsc{ascii}} +\def\OMEGA{Omega} + +\newcounter{argument} + +\makeatletter +\g@addto@macro\endmacro{\setcounter{argument}{0}} +\makeatother + +\newcommand*\darg[1]{% + \stepcounter{argument}% + {\ttfamily\char`\#\theargument~:~}#1\par\noindent\ignorespaces +} +\newcommand*\doarg[1]{% + \stepcounter{argument}% + {\ttfamily\makebox[0pt][r]{[}\char`\#\theargument]:~}#1\par\noindent\ignorespaces +} + +\newcommand\codeline[1]{\par{\centering#1\par\noindent}\ignorespaces} + +\newcommand\unichar[1]{\textsc{u}+\texttt{\small#1}} + +\setlength\parindent{2em} + +\def \MakePrivateLetters {% + \catcode`\@=11\relax + \catcode`\_=11\relax + \catcode`\:=11\relax +} + +\makeatother + +\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/doc/latex/unicode-math/unicode-math-code.ltx b/Master/texmf-dist/doc/latex/unicode-math/unicode-math-code.ltx new file mode 100644 index 00000000000..62fb9bbf801 --- /dev/null +++ b/Master/texmf-dist/doc/latex/unicode-math/unicode-math-code.ltx @@ -0,0 +1,40 @@ +%%^^A%% unicode-math-code.ltx -- part of UNICODE-MATH <wspr.io/unicode-math> +%%^^A%% Typeset code. + +\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 + +\def\DTX#1{\clearpage\part{#1}\DocInput{#1}} +\DTXFILES + +\clearpage +\PrintIndex + +\end{document} + +\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/doc/latex/unicode-math/unicode-math-code.pdf b/Master/texmf-dist/doc/latex/unicode-math/unicode-math-code.pdf Binary files differindex 25edd19f389..6b7207ba10c 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 new file mode 100644 index 00000000000..9f140383e00 --- /dev/null +++ b/Master/texmf-dist/doc/latex/unicode-math/unicode-math.ltx @@ -0,0 +1,43 @@ +%%^^A%% unicode-math.ltx -- part of UNICODE-MATH <wspr.io/unicode-math> +%%^^A%% User documentation. + +\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} + +\clearpage +\appendix + +\input{um-doc-stixextract.tex} +\input{um-doc-nfsssummary.tex} +\input{um-doc-legacyfontdimen.tex} +\input{um-doc-mathfontdimen.tex} + +\end{document} + +\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/doc/latex/unicode-math/unicode-math.pdf b/Master/texmf-dist/doc/latex/unicode-math/unicode-math.pdf Binary files differindex d6f01362c18..c1ae6d97379 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-example.ltx b/Master/texmf-dist/doc/latex/unicode-math/unimath-example.ltx new file mode 100644 index 00000000000..928a523f306 --- /dev/null +++ b/Master/texmf-dist/doc/latex/unicode-math/unimath-example.ltx @@ -0,0 +1,69 @@ +%%^^A%% unimath-example.ltx -- part of UNICODE-MATH <wspr.io/unicode-math> +%%^^A%% A minimal example file to demonstrate the package. + +%%%%%%%%%%%%%%%%%%%%%%% +% UNICODE-MATH EXAMPLE FILE +%%%%%%%%%%%%%%%%%%%%%%% + +\documentclass{article} + +% Load fontspec and define a document font: +\usepackage{fontspec} +\setmainfont{texgyrepagella-regular.otf} + +% Load unicode-math and define a math font: +\usepackage{unicode-math} +\setmathfont{texgyrepagella-math.otf} + +\begin{document} +\title{An example of \textsf{unicode-math}} +\author{Will Robertson} +\maketitle + +This is an example of the \textsf{unicode-math} package. +It allows you to write maths with Unicode input and to use fonts that contain Unicode mathematical glyphs. Follow along in the source code to see how it works. + +After loading the package and selecting a font, you shouldn't need to change much to continue to write maths as always. +\[ + F(s)=\symscr L \{f(t)\}=\int_0^\infty \symup e^{-st}f(t)\,\symup d t +\] + +The style of Latin and Greek letters is set up by default to match the output of standard \LaTeX: Latin letters and Greek lowercase letters are italic, and Greek uppercase letters are upright. These can be configured with the \texttt{math-style} package option. + +One very important feature to recognise is that bold maths now works consistently for both Latin and Greek letters. By default, \verb|\symbf| will turn a Latin letter bold and upright, and a Greek letter will remain italic and also become bold. For example: +\[ + \symbf{a} = a\,\symbf{I} \qquad \symbf{\beta} = \beta\,\symbf{I} +\] +This behaviour can be configured with the \texttt{bold-style} package option. + +In the examples above, I've used \LaTeX\ commands to input characters like \verb|\beta|, \verb|\infty|, and so on. These may now be typed directly into the source of the document: +\[ + 𝐉 = ∇×𝐇 \qquad 𝐁 = μ₀(𝐌 + 𝐇) +\] +\[ + ∫₀³ xⁿφ₁₂(x)\,ⅆx +\] +It does not matter if you use upright or italic characters; they will be normalised according to the setting of the \texttt{math-style} and \texttt{bold-style} options. + +And that's a brief introduction to the package. Please see the documentation for further details. This is a new package; feedback, suggestions, and bug reports are all most welcome. + +\end{document} + +\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/doc/latex/unicode-math/unimath-symbols.ltx b/Master/texmf-dist/doc/latex/unicode-math/unimath-symbols.ltx new file mode 100644 index 00000000000..808f26bc693 --- /dev/null +++ b/Master/texmf-dist/doc/latex/unicode-math/unimath-symbols.ltx @@ -0,0 +1,487 @@ +%%^^A%% unimath-symbols.ltx -- part of UNICODE-MATH <wspr.io/unicode-math> +%%^^A%% Listing of Unicode mathematics symbols using a variety of fonts. + +%!TEX TS-program = LuaLaTeX + +%%%%%%%%%%%%%%%%%%%%%%% +% SYMBOLS DEFINED BY UNICODE-MATH +%%%%%%%%%%%%%%%%%%%%%%% + +\documentclass[final]{article} +\makeatletter + +\usepackage{ragged2e,setspace,booktabs,catchfile,shortvrb,geometry,metalogo,textcomp,longtable,tabu,hyperref} + +\geometry{margin=3cm} +\hypersetup{colorlinks,linkcolor=black} + +\def\cmd#1{\texttt{\textbackslash\expandafter\@gobble\string#1}} + +\usepackage{fontspec} +\setmainfont{texgyrepagella}% + [ + Extension = .otf , + UprightFont = *-regular, + ItalicFont = *-italic, + BoldFont = *-bold, + BoldItalicFont = *-bolditalic, + Ligatures=TeX, + Numbers={Lowercase,Monospaced}, + ] +\usepackage[math-style=literal,bold-style=literal]{unicode-math} + +\ExplSyntaxOn +\cs_generate_variant:Nn \fontspec_set_fontface:NNnn {c} + +\def\defmathfont#1#2#3{ + \newcounter{#1} + \setcounter{#1}{-1} + \setmathfont[version=#1,SizeFeatures={ + {Size=-10, Colour=999999}, + {Size=10-, Colour=#3}}]{#2} + \fontspec_set_fontface:cNnn {#1} \x {ItalicFont={},BoldFont={}} {#2} +} +\ExplSyntaxOff + +\defmathfont{lm}{latinmodern-math.otf}{CC6666} +\defmathfont{xits}{xits-math.otf}{CCCC66} +\defmathfont{stix}{STIXMath-Regular.otf}{AA66CC} +\defmathfont{cambria}{Cambria Math}{66CCCC} +\defmathfont{asana}{Asana-Math.otf}{6666CC} +\defmathfont{pagella}{texgyrepagella-math.otf}{AA6666} +\defmathfont{dejavu}{texgyredejavu-math.otf}{AACC66} +\defmathfont{euler}{euler.otf}{CC66CC} + +\def\INPUT{\input{unicode-math-table.tex}} +\def\TABLE{% +\par\noindent +\begin{longtabu}[l]{@{}lcccccccclX[l]@{}} + \toprule + \textsc{usv} & M & X & S & C & A & P & D & E & Macro & Description \\ + \midrule \endhead + \INPUT\\ + \bottomrule +\end{longtabu} +} +\makeatletter +\def\USV#1{\footnotesize\scshape\MakeLowercase{u+\@gobble#1}} +\makeatother +\def\CMD#1{\footnotesize\cmd#1} +\def\DESC#1{% + \begin{spacing}{0.5} + \RaggedRight\scriptsize #1% + \end{spacing} +} + +\newcommand\SHOW[1]{% + \def\UnicodeMathSymbol##1##2##3##4{% + \def\1{#1}\def\2{##3}% + \ifx\1\2\PRINTLINE{##1}{##2}{##4}\fi + }% + \TABLE +} +\ExplSyntaxOn +\def\PRINTLINE#1#2#3{ + \def\tempa{ + \USV{#1} & + \SYMB{#2}{lm}{#1} & + \SYMB{#2}{xits}{#1} & + \SYMB{#2}{stix}{#1} & + \SYMB{#2}{cambria}{#1} & + \SYMB{#2}{asana}{#1} & + \SYMB{#2}{pagella}{#1} & + \SYMB{#2}{dejavu}{#1} & + \SYMB{#2}{euler}{#1} & + \CMD{#2} + \tl_if_in:NnT \PLAIN {#2} + { + \makebox[0pt][l] + { \color[gray]{0.7} \textsuperscript{\sffamily (p)} } + } + \tl_if_in:NnT \LTXSYM {#2} + { + \makebox[0pt][l] + { \color[gray]{0.7} \textsuperscript{\sffamily (l)} } + } + \tl_if_in:NnT \AMSSYMB {#2} + { + \makebox[0pt][l] + { \color[gray]{0.7} \textsuperscript{\sffamily (a)} } + } + & + \DESC{#3} \\ + }% + \expandafter\tempa +} +\ExplSyntaxOff +\def\SYMB#1#2#3{% + \expandafter\iffontchar\csname#2\endcsname #3\relax + \refstepcounter{#2}% + \mathversion{#2}% + $\displaystyle#1$% + \fi +} + +\def\PLAIN{\alpha\beta\gamma\delta\epsilon\zeta\eta\theta\iota\kappa\lambda\mu\nu\xi\pi\rho\sigma\tau\upsilon\phi\chi\psi\omega\varepsilon\vartheta\varpi\varrho\varsigma\varphi\Gamma\Delta\Theta\Lambda\Xi\Pi\Sigma\Upsilon\Phi\Psi\Omega +% +\aleph\hbar\imath\jmath\ell\wp\Re\Im\partial\infty\prime\emptyset\nabla\surd\top\bot\angle\triangle\forall\exists\neg\flat\natural\sharp\clubsuit\diamondsuit\heartsuit\spadesuit +% +\coprod\bigvee\bigwedge\biguplus\bigcap\bigcup\int\prod\sum\bigotimes\bigoplus\bigodot\oint\bigsqcup\smallint +% +\triangleleft\triangleright\bigtriangleup\bigtriangledown\wedge\land\vee\lor\cap\cup\ddagger\dagger\sqcap\sqcup\uplus\amalg\diamond\bullet\wr\div\odot\oslash\otimes\ominus\oplus\mp\pm\circ\bigcirc\setminus\cdot\ast\times\star\propto\sqsubseteq\sqsupseteq\parallel\mid\dashv\vdash\nearrow\searrow\nwarrow\swarrow\Leftrightarrow\Leftarrow\Rightarrow\neq\ne\lnot\leq\le\geq\ge\succ\prec\approx\succeq\preceq\supset\subset\supseteq\subseteq\in\ni\owns\gg\ll\not\leftrightarrow\leftarrow\gets\rightarrow\to\mapstochar\mapsto\sim\simeq\perp\equiv\asymp\smile\frown\leftharpoonup\leftharpoondown\rightharpoonup\rightharpoondown +% +\joinrel\relbar\Relbar\lhook\hookrightarrow\rhook\hookleftarrow\bowtie\models\Longrightarrow\longrightarrow\longleftarrow\Longleftarrow\longmapsto\longleftrightarrow\Longleftrightarrow\iff +% +\ldotp\cdotp\colon\ldots\cdots\vdots\ddots +% +\acute\grave\ddot\tilde\bar\breve\check\hat\vec\dot\widetilde\widehat +% +\overrightarrow\overleftarrow\overbrace\underbrace\lmoustache\rmoustache\lgroup\rgroup\arrowvert\Arrowvert\bracevert\Vert\vert\uparrow\downarrow\updownarrow\Uparrow\Downarrow\Updownarrow\backslash\rangle\langle\rbrace\lbrace\rceil\lceil\rfloor\lfloor\sqrt} + + +\def\LTXSYM{ +\cong +\notin +\rightleftharpoons +\doteq +\mathring +} + +\def\AMSSYMB{\boxdot\boxplus\boxtimes\square\blacksquare\centerdot\lozenge\blacklozenge\circlearrowright\circlearrowleft\leftrightharpoons\boxminus\Vdash\Vvdash\vDash\twoheadrightarrow\twoheadleftarrow\leftleftarrows\rightrightarrows\upuparrows\downdownarrows\upharpoonright\restriction\downharpoonright\upharpoonleft\downharpoonleft\rightarrowtail\leftarrowtail\leftrightarrows\rightleftarrows\Lsh\Rsh\rightsquigarrow\leftrightsquigarrow\looparrowleft\looparrowright\circeq\succsim\gtrsim\gtrapprox\multimap\therefore\because\doteqdot\Doteq\triangleq\precsim\lesssim\lessapprox\eqslantless\eqslantgtr\curlyeqprec\curlyeqsucc\preccurlyeq\leqq\leqslant\lessgtr\backprime\risingdotseq\fallingdotseq\succcurlyeq\geqq\geqslant\gtrless\vartriangleright\vartriangleleft\trianglerighteq\trianglelefteq\bigstar\between\blacktriangledown\blacktriangleright\blacktriangleleft\vartriangle\blacktriangle\triangledown\eqcirc\lesseqgtr\gtreqless\lesseqqgtr\gtreqqless\Rrightarrow\Lleftarrow\veebar\barwedge\doublebarwedge\measuredangle\sphericalangle\varpropto\smallsmile\smallfrown\Subset\Supset\Cup\doublecup\Cap\doublecap\curlywedge\curlyvee\leftthreetimes\rightthreetimes\subseteqq\supseteqq\bumpeq\Bumpeq\lll\llless\ggg\gggtr\circledS\pitchfork\dotplus\backsim\backsimeq\complement\intercal\circledcirc\circledast\circleddash\lvertneqq\gvertneqq\nleq\ngeq\nless\ngtr\nprec\nsucc\lneqq\gneqq\nleqslant\ngeqslant\lneq\gneq\npreceq\nsucceq\precnsim\succnsim\lnsim\gnsim\nleqq\ngeqq\precneqq\succneqq\precnapprox\succnapprox\lnapprox\gnapprox\nsim\ncong\diagup\diagdown\varsubsetneq\varsupsetneq\nsubseteqq\nsupseteqq\subsetneqq\supsetneqq\varsubsetneqq\varsupsetneqq\subsetneq\supsetneq\nsubseteq\nsupseteq\nparallel\nmid\nshortmid\nshortparallel\nvdash\nVdash\nvDash\nVDash\ntrianglerighteq\ntrianglelefteq\ntriangleleft\ntriangleright\nleftarrow\nrightarrow\nLeftarrow\nRightarrow\nLeftrightarrow\nleftrightarrow\divideontimes\varnothing\nexists\Finv\Game\eth\eqsim\beth\gimel\daleth\lessdot\gtrdot\ltimes\rtimes\shortmid\shortparallel\smallsetminus\thicksim\thickapprox\approxeq\succapprox\precapprox\curvearrowleft\curvearrowright\digamma\varkappa\Bbbk\hslash\backepsilon} + +\input{unicode-math.dtx} +\makeatletter +\def\GetFileInfo#1{% + \def\filename{#1}% + \def\@tempb##1 ##2 ##3\relax##4\relax{% + \def\filedate{##1}% + \def\fileversion{##2}% + \def\fileinfo{##3}}% + \edef\@tempa{\csname ver@#1\endcsname}% + \expandafter\@tempb\@tempa\relax? ? \relax\relax} +\makeatother +\GetFileInfo{unicode-math.dtx} +\let\umfiledate\filedate +\let\umfileversion\fileversion + +\begin{document} +\MakeShortVerb\| +\title{Every symbol (most symbols) defined by \textsf{unicode-math}} +\author{Will Robertson} +\date{\umfiledate \qquad \umfileversion} +\maketitle + +This document uses the file \texttt{unicode-math-table.tex} +to print every symbol defined by the \textsf{unicode-math} +package. +Use this document to find the command name or the Unicode glyph slot for a symbol that you wish to use. +The following fonts are shown: (with approximate symbol counts) +\begin{itemize} +\item[M] \mathversion{lm} $\mathup{Latin\ Modern\ Math}$ (\ref{count:lm}) +\item[X] \mathversion{xits} $\mathup{XITS\ Math}$ (\ref{count:xits}) +\item[S] \mathversion{stix} $\mathup{STIX\ Math}$ (\ref{count:stix}) +\item[C] \mathversion{cambria} $\mathup{Cambria\ Math}$ (\ref{count:cambria}) +\item[A] \mathversion{asana} $\mathup{Asana\ Math}$ (\ref{count:asana}) +\item[P] \mathversion{pagella} $\mathup{TeX\ Gyre\ Pagella\ Math}$ (\ref{count:pagella}) +\item[D] \mathversion{dejavu} $\mathup{DejaVu\ Math\ TeX\ Gyre}$ (\ref{count:dejavu}) +\item[E] \mathversion{euler} $\mathup{Neo\ Euler}$ (\ref{count:euler}) +\end{itemize} +Note that there are addition maths fonts in the `\TeX\ Gyre' collection which aren't included here. + +Symbols defined in Plain \TeX\ are indicated with {\color[gray]{0.6} \textsuperscript{\sffamily (p)}} after their macro name. +\LaTeX\ follows Plain \TeX, but defines a handful more, indicated with {\color[gray]{0.6} \textsuperscript{\sffamily (l)}} +Symbols defined in \textsf{amssymb} are indicated with {\color[gray]{0.6} \textsuperscript{\sffamily (a)}}. + +\tableofcontents + +\clearpage +\section{Opening symbols, \cmd\mathopen} +\begingroup +\def\sqrt{\sqrtsign{}} +\def\longdivision{\longdivisionsign{}} +\SHOW\mathopen +\endgroup + +\clearpage +\section{Closing symbols, \cmd\mathclose} +\SHOW\mathclose + +\clearpage +\section{Fence symbols, \cmd\mathfence} +\SHOW\mathfence + +\section{Punctuation symbols, \cmd\mathpunct} +\SHOW\mathpunct + +\section{`Over' symbols, \cmd\mathover} +\begingroup +\def\SYMB#1#2#3{% + \expandafter\iffontchar\csname#2\endcsname #3\relax + \refstepcounter{#2}% + \mathversion{#2}% + $\displaystyle #1{\mitx+\mity}$% + \fi +} +\SHOW\mathover +\endgroup + + +\section{`Under' symbols, \cmd\mathunder} +\begingroup +\def\SYMB#1#2#3{% + \expandafter\iffontchar\csname#2\endcsname #3\relax + \refstepcounter{#2}% + \mathversion{#2}% + $\displaystyle #1{\mitx+\mity}$% + \fi +} +\SHOW\mathunder +\endgroup + +\clearpage +\section{Accents, \cmd\mathaccent} + +Note that accents will only be properly placed if used with an OpenType font with the necessary information. + +\begingroup +\def\SYMB#1#2#3{% + \expandafter\iffontchar\csname#2\endcsname #3\relax + \refstepcounter{#2}% + \mathversion{#2}% + $\displaystyle#1 \mitx$% + \fi +} +\SHOW\mathaccent +\endgroup + +\section{Bottom accents, \cmd\mathbotaccent} +\begingroup +\def\SYMB#1#2#3{% + \expandafter\iffontchar\csname#2\endcsname #3\relax + \refstepcounter{#2}% + \mathversion{#2}% + $\displaystyle#1 \mitx$% + \fi +} +\SHOW\mathbotaccent +\endgroup + +\clearpage +\section{Big operators, \cmd\mathop} + +Of the operators shown below, a subset need to be flagged by \textsf{unicode-math} for \cmd\nolimits\ adjustments. +The limits behaviour as specified by \textsf{unicode-math} are shown with grey subscripts and superscripts. +\begingroup +\def\SYMB#1#2#3{% + \expandafter\iffontchar\csname#2\endcsname #3\relax + \stepcounter{#2}% + \mathversion{#2}% + $\displaystyle#1_0^1$% + \fi +} +\SHOW\mathop +\endgroup + +\section{Binary relations, \cmd\mathbin} +\SHOW\mathbin + +\clearpage +\section{Ordinary symbols, \cmd\mathord} +\SHOW\mathord + +\clearpage +\section{Relation symbols, \cmd\mathrel} +\SHOW\mathrel + +\clearpage +\section{Alphabetical symbols, \cmd\mathalpha} + +% first read in all \mathalpha symbols into a variable: +\ExplSyntaxOn +\cs_set:Npn \UnicodeMathSymbol #1#2#3#4 { + \str_if_eq:nnT {\mathalpha} {#3} { + \exp_not:n { \UnicodeMathSymbol {#1}{#2}{#3}{#4} } + } +} +\CatchFileEdef + \ALPHA{unicode-math-table.tex} + {\char_set_catcode_space:N \ } + +% now each time we print an alphabet we remove the slot; +% this ensures we won't miss anything + +\def\INPUT{\ALPHA} +\cs_new:Npn \SLOTS #1#2 { + \cs_set:Npn \UnicodeMathSymbol ##1##2##3##4 { + \bool_lazy_and:nnT + { \int_compare_p:n {##1 >= #1} } + { \int_compare_p:n {##1 <= #2} } + { + \PRINTLINE{##1}{##2}{##4} + } + } + \TABLE + \cs_set:Npn \UnicodeMathSymbol ##1##2##3##4 { + \bool_lazy_or:nnT + { \int_compare_p:n {##1 > #2} } + { \int_compare_p:n {##1 < #1} } + { + \exp_not:n { \UnicodeMathSymbol {##1}{##2}{##3}{##4} } + } + } + \edef\ALPHA{\ALPHA} +} + +\ExplSyntaxOff + +\subsection{Normal weight} + +\subsubsection{Upright Greek, uppercase} +\SLOTS{"00391}{"003A9} + +\subsubsection{Upright Greek, lowercase} +\SLOTS{"003B1}{"003F5} + +\subsubsection{Italic, Latin, uppercase} +\SLOTS{"1D434}{"1D44D} + +\subsubsection{Italic, Latin, lowercase} +\SLOTS{"1D44E}{"1D467} + +\subsubsection{Italic Greek, uppercase} +\SLOTS{"1D6E2}{"1D6FA} + +\subsubsection{Italic Greek, lowercase} +\SLOTS{"1D6FC}{"1D71B} + +\subsubsection{Script, Latin, uppercase} +\SLOTS{"1D49C}{"1D4B5} + +\subsubsection{Script, Latin, lowercase} +\SLOTS{"1D4B6}{"1D4CF} + +\subsubsection{Fraktur, Latin, uppercase} +\SLOTS{"1D504}{"1D51C} + +\subsubsection{Fraktur, Latin, lowercase} +\SLOTS{"1D51E}{"1D537} + +\subsubsection{Blackboard, Latin, uppercase} +\SLOTS{"1D538}{"1D550} + +\subsubsection{Blackboard, Latin, lowercase} +\SLOTS{"1D552}{"1D56B} + +\subsubsection{Sans serif, Latin, uppercase} +\SLOTS{"1D5A0}{"1D5B9} + +\subsubsection{Sans serif, Latin, lowercase} +\SLOTS{"1D5BA}{"1D5D3} + +\subsubsection{Italic sans serif, Latin, uppercase} +\SLOTS{"1D608}{"1D621} + +\subsubsection{Italic sans serif, Latin, lowercase} +\SLOTS{"1D622}{"1D63B} + +\subsubsection{Typewriter, Latin, uppercase} +\SLOTS{"1D670}{"1D689} + +\subsubsection{Typewriter, Latin, lowercase} +\SLOTS{"1D68A}{"1D6A3} + +\subsection{Bold} + +\subsubsection{Bold, Latin, uppercase} +\SLOTS{"1D400}{"1D419} + +\subsubsection{Bold, Latin, lowercase} +\SLOTS{"1D41A}{"1D433} + +\subsubsection{Bold Greek, uppercase} +\SLOTS{"1D6A8}{"1D6C0} + +\subsubsection{Bold Greek, lowercase} +\SLOTS{"1D6C2}{"1D6E1} + +\subsubsection{Bold italic, Latin, uppercase} +\SLOTS{"1D468}{"1D481} + +\subsubsection{Bold italic, Latin, lowercase} +\SLOTS{"1D482}{"1D49B} + +\subsubsection{Bold italic Greek, uppercase} +\SLOTS{"1D71C}{"1D734} + +\subsubsection{Bold italic Greek, lowercase} +\SLOTS{"1D736}{"1D755} + +\subsubsection{Bold script, Latin, uppercase} +\SLOTS{"1D4D0}{"1D4E9} + +\subsubsection{Bold script, Latin, lowercase} +\SLOTS{"1D4EA}{"1D503} + +\subsubsection{Bold fraktur, Latin, uppercase} +\SLOTS{"1D56C}{"1D585} + +\subsubsection{Bold fraktur, Latin, lowercase} +\SLOTS{"1D586}{"1D59F} + +\subsubsection{Bold sans serif, Latin, uppercase} +\SLOTS{"1D5D4}{"1D5ED} + +\subsubsection{Bold sans serif, Latin, lowercase} +\SLOTS{"1D5EE}{"1D607} + +\subsubsection{Bold italic sans serif, Latin, uppercase} +\SLOTS{"1D63C}{"1D655} + +\subsubsection{Bold italic sans serif, Latin, lowercase} +\SLOTS{"1D656}{"1D66F} + +\subsubsection{Bold sans serif Greek, uppercase} +\SLOTS{"1D756}{"1D76E} + +\subsubsection{Bold sans serif Greek, lowercase} +\SLOTS{"1D770}{"1D78F} + +\subsubsection{Bold italic sans serif Greek, uppercase} +\SLOTS{"1D790}{"1D7A8} + +\subsubsection{Bold italic sans serif Greek, lowercase} +\SLOTS{"1D7AA}{"1D7C9} + +\subsection{Miscellaneous} +\def\UnicodeMathSymbol#1#2#3#4{\PRINTLINE{#1}{#2}{#4}} +\TABLE + +\refstepcounter{lm}\label{count:lm} +\refstepcounter{xits}\label{count:xits} +\refstepcounter{stix}\label{count:stix} +\refstepcounter{cambria}\label{count:cambria} +\refstepcounter{asana}\label{count:asana} +\refstepcounter{pagella}\label{count:pagella} +\refstepcounter{euler}\label{count:euler} +\refstepcounter{dejavu}\label{count:dejavu} + +\end{document} + +\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/doc/latex/unicode-math/unimath-symbols.pdf b/Master/texmf-dist/doc/latex/unicode-math/unimath-symbols.pdf Binary files differindex 037f7586e5c..74fbb674e38 100644 --- a/Master/texmf-dist/doc/latex/unicode-math/unimath-symbols.pdf +++ b/Master/texmf-dist/doc/latex/unicode-math/unimath-symbols.pdf |