From 9746eec6f52784c17ea0fdd0c1d47e8deb9ca0f8 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 18 Nov 2017 21:45:46 +0000 Subject: unicode-math (18nov17) git-svn-id: svn://tug.org/texlive/trunk@45845 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/doc/latex/unicode-math/CHANGES.md | 7 + .../doc/latex/unicode-math/CONTRIBUTING.md | 41 - Master/texmf-dist/doc/latex/unicode-math/LICENSE | 416 ++++++ .../texmf-dist/doc/latex/unicode-math/MANIFEST.md | 77 + Master/texmf-dist/doc/latex/unicode-math/README.md | 30 +- .../doc/latex/unicode-math/unicode-math-code.pdf | Bin 0 -> 309457 bytes .../doc/latex/unicode-math/unicode-math-doc.tex | 1501 -------------------- .../doc/latex/unicode-math/unicode-math.pdf | Bin 391523 -> 175282 bytes .../doc/latex/unicode-math/unimath-example.ltx | 48 - .../doc/latex/unicode-math/unimath-example.pdf | Bin 0 -> 22081 bytes .../doc/latex/unicode-math/unimath-symbols.ltx | 448 ------ .../doc/latex/unicode-math/unimath-symbols.pdf | Bin 1615724 -> 1612858 bytes 12 files changed, 516 insertions(+), 2052 deletions(-) delete mode 100644 Master/texmf-dist/doc/latex/unicode-math/CONTRIBUTING.md create mode 100644 Master/texmf-dist/doc/latex/unicode-math/LICENSE create mode 100644 Master/texmf-dist/doc/latex/unicode-math/MANIFEST.md create mode 100644 Master/texmf-dist/doc/latex/unicode-math/unicode-math-code.pdf delete mode 100644 Master/texmf-dist/doc/latex/unicode-math/unicode-math-doc.tex delete mode 100644 Master/texmf-dist/doc/latex/unicode-math/unimath-example.ltx create mode 100644 Master/texmf-dist/doc/latex/unicode-math/unimath-example.pdf delete mode 100644 Master/texmf-dist/doc/latex/unicode-math/unimath-symbols.ltx (limited to 'Master/texmf-dist/doc/latex/unicode-math') diff --git a/Master/texmf-dist/doc/latex/unicode-math/CHANGES.md b/Master/texmf-dist/doc/latex/unicode-math/CHANGES.md index 3048e71c6f6..0353ce95694 100644 --- a/Master/texmf-dist/doc/latex/unicode-math/CHANGES.md +++ b/Master/texmf-dist/doc/latex/unicode-math/CHANGES.md @@ -1,6 +1,13 @@ CHANGE HISTORY -------------- +- v0.8i (2017/11/18) + + * Many internal changes to support future work. + * Improved documentation describing the `\mathXX` and `\symXX` commands. + * Documentation is now split into `unicode-math.pdf` (for the user) + and `unicode-math-code.pdf` (for the typeset source code). + - v0.8h (2017/10/09) * Some bugs crept in in the last update due to some code rearrangement: diff --git a/Master/texmf-dist/doc/latex/unicode-math/CONTRIBUTING.md b/Master/texmf-dist/doc/latex/unicode-math/CONTRIBUTING.md deleted file mode 100644 index 860883abd29..00000000000 --- a/Master/texmf-dist/doc/latex/unicode-math/CONTRIBUTING.md +++ /dev/null @@ -1,41 +0,0 @@ -# Guidelines for issues and pull requests - -## Issues - -Thanks for taking the time to report an issue! -Any apologies that I take longer, sometimes *way longer*, than I should to address them. - -There are two important key points for submitting an issue: - -* When submitting an issue, please include a *complete* minimal example. -* When loading maths fonts, please do so by *filename* only. -* If you are using a proprietary/unusual font, please try a maths font in TeX Live to see - if it exhibits the same behaviour; it's obviously much harder for me to test with fonts - I don't yet have or can't access. - -For example, this is a good minimal example: - - \documentclass{article} - \usepackage{unicode-math} - \setmathfont{texgyrepagella-math.otf} - \begin{document} - \[ - x^2 + y^2 = z^2 - \] - \end{document} - -This is an example of a *bad* example: - - \usepackage{unicode-math} - \setmathfont{TeX Gyre Pagella Math} - - % later: - \[ - x^2 + y^2 = z^2 - \] - -## Pull Requests - -I'm usually not fussy! Generally I'll just be impressed you've taken the effort. - -If you are changing documentation only (i.e., no code changes), you can add `[ci skip]` to the commit message and the test suite won't be run to check that the changes haven't broken anything. diff --git a/Master/texmf-dist/doc/latex/unicode-math/LICENSE b/Master/texmf-dist/doc/latex/unicode-math/LICENSE new file mode 100644 index 00000000000..22443139013 --- /dev/null +++ b/Master/texmf-dist/doc/latex/unicode-math/LICENSE @@ -0,0 +1,416 @@ +The LaTeX Project Public License +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- + +LPPL Version 1.3c 2008-05-04 + +Copyright 1999 2002-2008 LaTeX3 Project + Everyone is allowed to distribute verbatim copies of this + license document, but modification of it is not allowed. + + +PREAMBLE +======== + +The LaTeX Project Public License (LPPL) is the primary license under +which the LaTeX kernel and the base LaTeX packages are distributed. + +You may use this license for any work of which you hold the copyright +and which you wish to distribute. This license may be particularly +suitable if your work is TeX-related (such as a LaTeX package), but +it is written in such a way that you can use it even if your work is +unrelated to TeX. + +The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE', +below, gives instructions, examples, and recommendations for authors +who are considering distributing their works under this license. + +This license gives conditions under which a work may be distributed +and modified, as well as conditions under which modified versions of +that work may be distributed. + +We, the LaTeX3 Project, believe that the conditions below give you +the freedom to make and distribute modified versions of your work +that conform with whatever technical specifications you wish while +maintaining the availability, integrity, and reliability of +that work. If you do not see how to achieve your goal while +meeting these conditions, then read the document `cfgguide.tex' +and `modguide.tex' in the base LaTeX distribution for suggestions. + + +DEFINITIONS +=========== + +In this license document the following terms are used: + + `Work' + Any work being distributed under this License. + + `Derived Work' + Any work that under any applicable law is derived from the Work. + + `Modification' + Any procedure that produces a Derived Work under any applicable + law -- for example, the production of a file containing an + original file associated with the Work or a significant portion of + such a file, either verbatim or with modifications and/or + translated into another language. + + `Modify' + To apply any procedure that produces a Derived Work under any + applicable law. + + `Distribution' + Making copies of the Work available from one person to another, in + whole or in part. Distribution includes (but is not limited to) + making any electronic components of the Work accessible by + file transfer protocols such as FTP or HTTP or by shared file + systems such as Sun's Network File System (NFS). + + `Compiled Work' + A version of the Work that has been processed into a form where it + is directly usable on a computer system. This processing may + include using installation facilities provided by the Work, + transformations of the Work, copying of components of the Work, or + other activities. Note that modification of any installation + facilities provided by the Work constitutes modification of the Work. + + `Current Maintainer' + A person or persons nominated as such within the Work. If there is + no such explicit nomination then it is the `Copyright Holder' under + any applicable law. + + `Base Interpreter' + A program or process that is normally needed for running or + interpreting a part or the whole of the Work. + + A Base Interpreter may depend on external components but these + are not considered part of the Base Interpreter provided that each + external component clearly identifies itself whenever it is used + interactively. Unless explicitly specified when applying the + license to the Work, the only applicable Base Interpreter is a + `LaTeX-Format' or in the case of files belonging to the + `LaTeX-format' a program implementing the `TeX language'. + + + +CONDITIONS ON DISTRIBUTION AND MODIFICATION +=========================================== + +1. Activities other than distribution and/or modification of the Work +are not covered by this license; they are outside its scope. In +particular, the act of running the Work is not restricted and no +requirements are made concerning any offers of support for the Work. + +2. You may distribute a complete, unmodified copy of the Work as you +received it. Distribution of only part of the Work is considered +modification of the Work, and no right to distribute such a Derived +Work may be assumed under the terms of this clause. + +3. You may distribute a Compiled Work that has been generated from a +complete, unmodified copy of the Work as distributed under Clause 2 +above, as long as that Compiled Work is distributed in such a way that +the recipients may install the Compiled Work on their system exactly +as it would have been installed if they generated a Compiled Work +directly from the Work. + +4. If you are the Current Maintainer of the Work, you may, without +restriction, modify the Work, thus creating a Derived Work. You may +also distribute the Derived Work without restriction, including +Compiled Works generated from the Derived Work. Derived Works +distributed in this manner by the Current Maintainer are considered to +be updated versions of the Work. + +5. If you are not the Current Maintainer of the Work, you may modify +your copy of the Work, thus creating a Derived Work based on the Work, +and compile this Derived Work, thus creating a Compiled Work based on +the Derived Work. + +6. If you are not the Current Maintainer of the Work, you may +distribute a Derived Work provided the following conditions are met +for every component of the Work unless that component clearly states +in the copyright notice that it is exempt from that condition. Only +the Current Maintainer is allowed to add such statements of exemption +to a component of the Work. + + a. If a component of this Derived Work can be a direct replacement + for a component of the Work when that component is used with the + Base Interpreter, then, wherever this component of the Work + identifies itself to the user when used interactively with that + Base Interpreter, the replacement component of this Derived Work + clearly and unambiguously identifies itself as a modified version + of this component to the user when used interactively with that + Base Interpreter. + + b. Every component of the Derived Work contains prominent notices + detailing the nature of the changes to that component, or a + prominent reference to another file that is distributed as part + of the Derived Work and that contains a complete and accurate log + of the changes. + + c. No information in the Derived Work implies that any persons, + including (but not limited to) the authors of the original version + of the Work, provide any support, including (but not limited to) + the reporting and handling of errors, to recipients of the + Derived Work unless those persons have stated explicitly that + they do provide such support for the Derived Work. + + d. You distribute at least one of the following with the Derived Work: + + 1. A complete, unmodified copy of the Work; + if your distribution of a modified component is made by + offering access to copy the modified component from a + designated place, then offering equivalent access to copy + the Work from the same or some similar place meets this + condition, even though third parties are not compelled to + copy the Work along with the modified component; + + 2. Information that is sufficient to obtain a complete, + unmodified copy of the Work. + +7. If you are not the Current Maintainer of the Work, you may +distribute a Compiled Work generated from a Derived Work, as long as +the Derived Work is distributed to all recipients of the Compiled +Work, and as long as the conditions of Clause 6, above, are met with +regard to the Derived Work. + +8. The conditions above are not intended to prohibit, and hence do not +apply to, the modification, by any method, of any component so that it +becomes identical to an updated version of that component of the Work as +it is distributed by the Current Maintainer under Clause 4, above. + +9. Distribution of the Work or any Derived Work in an alternative +format, where the Work or that Derived Work (in whole or in part) is +then produced by applying some process to that format, does not relax or +nullify any sections of this license as they pertain to the results of +applying that process. + +10. a. A Derived Work may be distributed under a different license + provided that license itself honors the conditions listed in + Clause 6 above, in regard to the Work, though it does not have + to honor the rest of the conditions in this license. + + b. If a Derived Work is distributed under a different license, that + Derived Work must provide sufficient documentation as part of + itself to allow each recipient of that Derived Work to honor the + restrictions in Clause 6 above, concerning changes from the Work. + +11. This license places no restrictions on works that are unrelated to +the Work, nor does this license place any restrictions on aggregating +such works with the Work by any means. + +12. Nothing in this license is intended to, or may be used to, prevent +complete compliance by all parties with all applicable laws. + + +NO WARRANTY +=========== + +There is no warranty for the Work. Except when otherwise stated in +writing, the Copyright Holder provides the Work `as is', without +warranty of any kind, either expressed or implied, including, but not +limited to, the implied warranties of merchantability and fitness for a +particular purpose. The entire risk as to the quality and performance +of the Work is with you. Should the Work prove defective, you assume +the cost of all necessary servicing, repair, or correction. + +In no event unless required by applicable law or agreed to in writing +will The Copyright Holder, or any author named in the components of the +Work, or any other party who may distribute and/or modify the Work as +permitted above, be liable to you for damages, including any general, +special, incidental or consequential damages arising out of any use of +the Work or out of inability to use the Work (including, but not limited +to, loss of data, data being rendered inaccurate, or losses sustained by +anyone as a result of any failure of the Work to operate with any other +programs), even if the Copyright Holder or said author or said other +party has been advised of the possibility of such damages. + + +MAINTENANCE OF THE WORK +======================= + +The Work has the status `author-maintained' if the Copyright Holder +explicitly and prominently states near the primary copyright notice in +the Work that the Work can only be maintained by the Copyright Holder +or simply that it is `author-maintained'. + +The Work has the status `maintained' if there is a Current Maintainer +who has indicated in the Work that they are willing to receive error +reports for the Work (for example, by supplying a valid e-mail +address). It is not required for the Current Maintainer to acknowledge +or act upon these error reports. + +The Work changes from status `maintained' to `unmaintained' if there +is no Current Maintainer, or the person stated to be Current +Maintainer of the work cannot be reached through the indicated means +of communication for a period of six months, and there are no other +significant signs of active maintenance. + +You can become the Current Maintainer of the Work by agreement with +any existing Current Maintainer to take over this role. + +If the Work is unmaintained, you can become the Current Maintainer of +the Work through the following steps: + + 1. Make a reasonable attempt to trace the Current Maintainer (and + the Copyright Holder, if the two differ) through the means of + an Internet or similar search. + + 2. If this search is successful, then enquire whether the Work + is still maintained. + + a. If it is being maintained, then ask the Current Maintainer + to update their communication data within one month. + + b. If the search is unsuccessful or no action to resume active + maintenance is taken by the Current Maintainer, then announce + within the pertinent community your intention to take over + maintenance. (If the Work is a LaTeX work, this could be + done, for example, by posting to comp.text.tex.) + + 3a. If the Current Maintainer is reachable and agrees to pass + maintenance of the Work to you, then this takes effect + immediately upon announcement. + + b. If the Current Maintainer is not reachable and the Copyright + Holder agrees that maintenance of the Work be passed to you, + then this takes effect immediately upon announcement. + + 4. If you make an `intention announcement' as described in 2b. above + and after three months your intention is challenged neither by + the Current Maintainer nor by the Copyright Holder nor by other + people, then you may arrange for the Work to be changed so as + to name you as the (new) Current Maintainer. + + 5. If the previously unreachable Current Maintainer becomes + reachable once more within three months of a change completed + under the terms of 3b) or 4), then that Current Maintainer must + become or remain the Current Maintainer upon request provided + they then update their communication data within one month. + +A change in the Current Maintainer does not, of itself, alter the fact +that the Work is distributed under the LPPL license. + +If you become the Current Maintainer of the Work, you should +immediately provide, within the Work, a prominent and unambiguous +statement of your status as Current Maintainer. You should also +announce your new status to the same pertinent community as +in 2b) above. + + +WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE +====================================================== + +This section contains important instructions, examples, and +recommendations for authors who are considering distributing their +works under this license. These authors are addressed as `you' in +this section. + +Choosing This License or Another License +---------------------------------------- + +If for any part of your work you want or need to use *distribution* +conditions that differ significantly from those in this license, then +do not refer to this license anywhere in your work but, instead, +distribute your work under a different license. You may use the text +of this license as a model for your own license, but your license +should not refer to the LPPL or otherwise give the impression that +your work is distributed under the LPPL. + +The document `modguide.tex' in the base LaTeX distribution explains +the motivation behind the conditions of this license. It explains, +for example, why distributing LaTeX under the GNU General Public +License (GPL) was considered inappropriate. Even if your work is +unrelated to LaTeX, the discussion in `modguide.tex' may still be +relevant, and authors intending to distribute their works under any +license are encouraged to read it. + +A Recommendation on Modification Without Distribution +----------------------------------------------------- + +It is wise never to modify a component of the Work, even for your own +personal use, without also meeting the above conditions for +distributing the modified component. While you might intend that such +modifications will never be distributed, often this will happen by +accident -- you may forget that you have modified that component; or +it may not occur to you when allowing others to access the modified +version that you are thus distributing it and violating the conditions +of this license in ways that could have legal implications and, worse, +cause problems for the community. It is therefore usually in your +best interest to keep your copy of the Work identical with the public +one. Many works provide ways to control the behavior of that work +without altering any of its licensed components. + +How to Use This License +----------------------- + +To use this license, place in each of the components of your work both +an explicit copyright notice including your name and the year the work +was authored and/or last substantially modified. Include also a +statement that the distribution and/or modification of that +component is constrained by the conditions in this license. + +Here is an example of such a notice and statement: + + %% pig.dtx + %% Copyright 2005 M. Y. Name + % + % This work may be distributed and/or modified under the + % conditions of the LaTeX Project Public License, either version 1.3 + % of this license or (at your option) any later version. + % The latest version of this license is in + % http://www.latex-project.org/lppl.txt + % and version 1.3 or later is part of all distributions of LaTeX + % version 2005/12/01 or later. + % + % This work has the LPPL maintenance status `maintained'. + % + % The Current Maintainer of this work is M. Y. Name. + % + % This work consists of the files pig.dtx and pig.ins + % and the derived file pig.sty. + +Given such a notice and statement in a file, the conditions +given in this license document would apply, with the `Work' referring +to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being +generated from `pig.dtx' using `pig.ins'), the `Base Interpreter' +referring to any `LaTeX-Format', and both `Copyright Holder' and +`Current Maintainer' referring to the person `M. Y. Name'. + +If you do not want the Maintenance section of LPPL to apply to your +Work, change `maintained' above into `author-maintained'. +However, we recommend that you use `maintained', as the Maintenance +section was added in order to ensure that your Work remains useful to +the community even when you can no longer maintain and support it +yourself. + +Derived Works That Are Not Replacements +--------------------------------------- + +Several clauses of the LPPL specify means to provide reliability and +stability for the user community. They therefore concern themselves +with the case that a Derived Work is intended to be used as a +(compatible or incompatible) replacement of the original Work. If +this is not the case (e.g., if a few lines of code are reused for a +completely different task), then clauses 6b and 6d shall not apply. + + +Important Recommendations +------------------------- + + Defining What Constitutes the Work + + The LPPL requires that distributions of the Work contain all the + files of the Work. It is therefore important that you provide a + way for the licensee to determine which files constitute the Work. + This could, for example, be achieved by explicitly listing all the + files of the Work near the copyright notice of each file or by + using a line such as: + + % This work consists of all files listed in manifest.txt. + + in that place. In the absence of an unequivocal list it might be + impossible for the licensee to determine what is considered by you + to comprise the Work and, in such a case, the licensee would be + entitled to make reasonable conjectures as to which files comprise + the Work. + diff --git a/Master/texmf-dist/doc/latex/unicode-math/MANIFEST.md b/Master/texmf-dist/doc/latex/unicode-math/MANIFEST.md new file mode 100644 index 00000000000..df005e9990f --- /dev/null +++ b/Master/texmf-dist/doc/latex/unicode-math/MANIFEST.md @@ -0,0 +1,77 @@ +# 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 diff --git a/Master/texmf-dist/doc/latex/unicode-math/README.md b/Master/texmf-dist/doc/latex/unicode-math/README.md index 48d7a839831..5c72db9b573 100644 --- a/Master/texmf-dist/doc/latex/unicode-math/README.md +++ b/Master/texmf-dist/doc/latex/unicode-math/README.md @@ -95,34 +95,36 @@ greater. [LPPL]: http://www.latex-project.org/lppl/ -This work is author-maintained and consists of the files +This work is author-maintained and consists of the code files: - unicode-math.dtx, -- unicode-math-*.dtx, -- unicode-math-table.tex, +- 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, -- unicode-math-testsuite.ltx; +- unimath-symbols.ltx; -the derived files +the derived files: - unicode-math.lua, - unicode-math-xetex.sty, - unicode-math-luatex.sty, - unicode-math.sty; -the compiled documentation files +the compiled documentation files: - unicode-math.pdf, +- unicode-math-code.pdf, - unimath-example.pdf, - unimath-symbols.pdf; -and the test suite for this package +and the test suite: -- testfiles/umtest-preamble.tex, +- testfiles/support/umtest-preamble.tex, - testfiles/*.(lvt|tlg). - -____________________________________ -Copyright 2006-2017 Will Robertson -Copyright 2010-2013 Philipp Stephani -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 new file mode 100644 index 00000000000..25edd19f389 Binary files /dev/null and b/Master/texmf-dist/doc/latex/unicode-math/unicode-math-code.pdf differ diff --git a/Master/texmf-dist/doc/latex/unicode-math/unicode-math-doc.tex b/Master/texmf-dist/doc/latex/unicode-math/unicode-math-doc.tex deleted file mode 100644 index 0d5aaa6a97d..00000000000 --- a/Master/texmf-dist/doc/latex/unicode-math/unicode-math-doc.tex +++ /dev/null @@ -1,1501 +0,0 @@ -% !TEX TS-program = XeLaTeX - -\providecommand\DTXFILES{}% if this .tex file is typeset, only include documentation -\documentclass[a4paper]{ltxdoc} - -\makeatletter -\GetFileInfo{unicode-math.dtx} -\let\umfiledate\filedate -\let\umfileversion\fileversion - -\CheckSum{0} -\EnableCrossrefs -\CodelineIndex - -\errorcontextlines=999 - -\def\@dotsep{1000} -\setcounter{tocdepth}{2} -\setlength\columnseprule{0.4pt} -\renewcommand\tableofcontents{\relax - \begin{multicols}{2}[\section*{\contentsname}]\relax - \@starttoc{toc}\relax - \end{multicols}} - -\setcounter{IndexColumns}{2} -\renewenvironment{theglossary} - {\small\list{}{} - \item\relax - \glossary@prologue\GlossaryParms - \let\item\@idxitem \ignorespaces - \def\pfill{\hspace*{\fill}}} - {\endlist} - -\usepackage[svgnames]{xcolor} -\usepackage[inline]{enumitem} -\usepackage{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$}} - -\usepackage{minitoc} - -\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 -} - -\def\partname{Part} - -\makeatother - -\begin{document} - -\title{Experimental Unicode mathematical typesetting: The \pkg{unicode-math} package} -\author{Will Robertson, Philipp Stephani and Khaled Hosny\\ - \texttt{will.robertson@latex-project.org}} -\date{\umfiledate \qquad \umfileversion} - -\maketitle - -\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} - -\doparttoc\faketableofcontents - -\newpage -\part{User documentation} -\parttoc - -\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} -\pkg{unicode-math} provides a number of commands (such as |\symbfsf|) to select specific `symbol alphabets' within the unicode maths font, with usage, e.g., |$\symbfsf{g}$|${}\to\symbfsf{g}$. -The full listing is shown in \Tabref{symvsmath}. -For backwards compatibility, many of these are also defined with `familiar' synonyms such as |\mathbfsf|. -However, where possible the `sym' prefix commands should be preferred, as certain synonyms may become deprecated in time. - -\begin{table}\centering - \topcaption{New \pkg{unicode-math} commands.} - \tablabel{symvsmath} - \begin{tabular}{lll} - \toprule - \pkg{unicode-math} command & Synonym \\ - \midrule - |\symup| & \\ - |\symit| & \\ - |\symbf| & \\ - |\symsf| & \\ - |\symtt| & \\ - \midrule - |\symnormal| & |\mathnormal| \\ - |\symliteral| & \\ - |\symbfup| & |\mathbfup| \\ - |\symbfit| & |\mathbfit| \\ - |\symsfup| & |\mathsfup| \\ - |\symsfit| & |\mathsfit| \\ - |\symbfsfup| & |\mathbfsfup| \\ - |\symbfsfit| & |\mathbfsfit| \\ - |\symbfsf| & |\mathbfsf| \\ - |\symbb| & |\mathbb| \\ - |\symbbit| & |\mathbbit| \\ - |\symscr| & |\mathscr| \\ - |\symbfscr| & |\mathbfscr| \\ - |\symcal| & |\mathcal| \\ - |\symbfcal| & |\mathbfcal| \\ - |\symfrak| & |\mathfrak| \\ - |\symbffrak| & |\mathbffrak| \\ - \bottomrule - \end{tabular} -\end{table} - -While most alphabet commands are provided with the \cs{math...} prefix synonyms, there are five `legacy' font alphabets that intentionally behave somewhat different. -These are \cs{mathup}, \cs{mathit}, \cs{mathbf}, \cs{mathsf}, and \cs{mathtt}. -(N.B.: \cs{mathrm} is defined as a synonym for \cs{mathup}, but the latter is prefered as it is a script-agnostic term.) - -These commands have `overloaded' meanings in traditional \LaTeX, and it's important to consider the subtle differences between, e.g., the new \cs{symbf} and \cs{mathbf}. -The \cs{symbf} command switches to single-letter mathematical symbols (generally within the same OpenType font). -The \cs{mathbf} command switches to a text font that is 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}. - -\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{Cambria Math} -% OR -\setmathfont{Cambria Math}[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. - -You may also use the macro for accessing the glyph, such as \cs{int}, or whole collection of symbols with the same math type, such as \cs{mathopen}, or complete math styles such as \cs{symbb}. -(Only numerical slots, however, can be used in ranged declarations.) - -\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_use:Nn \g__um_named_ranges_clist {\,,\,~} -\ExplSyntaxOff -\end{quote} -Fonts can be selected for specified 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} - -Note that `meta-styles' such as `|bf|' and `|sf|' are not included here 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} -\textbf{v0.8:} Note that in previous versions of \pkg{unicode-math}, these features were labelled |[range=\mathbb]| and so on. This old syntax is still supported for backwards compatibility, but is now discouraged. - - -\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}. - - -\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. - -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 (say you're typesetting a new version of a book written in the 1990s), it would be preferable to use |\symbf| rather than |\mathbf| en masse. -For example, if bold maths is used only for vectors and matrices, a dedicated symbol font will produce better spacing and will better match the main math font. - -Alternatively, you may have used an old version of \pkg{unicode-math} (pre-v0.8), when the \cs{symXYZ} commands were not defined and \cs{mathbf} behaved like \cs{symbf} does now. -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. - -\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. - -\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} - - -\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{mathsfup}, \cs{mathsfit}, \cs{mathbfsfup}, and \cs{mathbfsfit} -commands discussed in \secref{all-math-alphabets}. - -How should the generic \cs{mathsf} 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 I reluctantly add the package options |[sans-style=upright]| and |[sans-style=italic]| to control the behaviour of \cs{mathsf}. -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{mathsf} to either \cs{mathsfup} or \cs{mathsfit}, 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 (or all vice versa, if that's even conceivable). Therefore, bold sans -serif follows from the setting for sans serif; it is completely independent of the setting for bold. - -In other words, \cs{mathbfsf} is either \cs{mathbfsfup} or \cs{mathbfsfit} based on |[sans-style=upright]| or |[sans-style=italic]|, respectively. And \texttt{[sans-style = literal]} causes \cs{mathbfsf} 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{mathup} & \Y & \Y & \Y \\ - & & Bold & \cs{mathbfup} & \Y & \Y & \Y \\ - & Italic & Normal & \cs{mathit} & \Y & \Y & \M \\ - & & Bold & \cs{mathbfit} & \Y & \Y & \M \\ -Sans serif & Upright & Normal & \cs{mathsfup} & \Y & & \Y \\ - & Italic & Normal & \cs{mathsfit} & \Y & & \M \\ - & Upright & Bold & \cs{mathbfsfup} & \Y & \Y & \Y \\ - & Italic & Bold & \cs{mathbfsfit} & \Y & \Y & \M \\ -Typewriter & Upright & Normal & \cs{mathtt} & \Y & & \Y \\ -Double-struck & Upright & Normal & \cs{mathbb} & \Y & & \Y \\ - & Italic & Normal & \cs{mathbbit} & \Y & & \\ -Script & Upright & Normal & \cs{mathscr} & \Y & & \\ - & & Bold & \cs{mathbfscr} & \Y & & \\ -Fraktur & Upright & Normal & \cs{mathfrak} & \Y & & \\ - & & Bold & \cs{mathbffrac} & \Y & & \\ -\bottomrule -\end{tabular} -\end{table} - -\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| and - |nabla=italic| switch between the two choices, and |nabla=literal| respects - the shape of the input character. This is then inherited - through \cmd\symbf; \cmd\symit\ and \cmd\symup\ can be used to force one - way or the other. - -|nabla=italic| is the default. |nabla=literal| is -activated automatically after |math-style=literal|. - -\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 applies to the symbols \unichar{2202} partial differential and -\unichar{1D715} math italic partial differential. - -At time of writing, both the Cambria Math and STIX fonts display these -two glyphs in the same italic style, but this is hopefully a bug that will -be corrected in the future~--- the `plain' partial differential should -really have an upright shape. - -Use the |partial=upright| or |partial=italic| 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. -The default is (always, unless someone requests and -argues otherwise) |partial=italic|.\footnote{A good argument would revolve -around some international standards body recommending upright over italic. -I just don't have the time right now to look it up.} |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{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{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" - * - * ... ... -\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'. - -\StopEventually{\end{document}} - -\clearpage -\appendix - -\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!) - - -\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} - -\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} -} - - -\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} - -\def\DTX#1{\gdef\DTXCURR{#1}\DocInput{#1}} -\DTXFILES - -\end{document} - - - diff --git a/Master/texmf-dist/doc/latex/unicode-math/unicode-math.pdf b/Master/texmf-dist/doc/latex/unicode-math/unicode-math.pdf index 0a60202eff9..d6f01362c18 100644 Binary files a/Master/texmf-dist/doc/latex/unicode-math/unicode-math.pdf and b/Master/texmf-dist/doc/latex/unicode-math/unicode-math.pdf differ diff --git a/Master/texmf-dist/doc/latex/unicode-math/unimath-example.ltx b/Master/texmf-dist/doc/latex/unicode-math/unimath-example.ltx deleted file mode 100644 index b8596a06f08..00000000000 --- a/Master/texmf-dist/doc/latex/unicode-math/unimath-example.ltx +++ /dev/null @@ -1,48 +0,0 @@ - -%%%%%%%%%%%%%%%%%%%%%%% -% UNICODE-MATH EXAMPLE FILE -%%%%%%%%%%%%%%%%%%%%%%% - -\documentclass{article} - -% Load fontspec and define a document font: -\usepackage{fontspec} -\setmainfont{TeX Gyre Pagella} - -% 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\\\texttt{wspr81@gmail.com}} -\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)=\mathscr L \{f(t)\}=\int_0^\infty \mathrm e^{-st}f(t)\,\mathrm 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|\mathbf| will turn a Latin letter bold and upright, and a Greek letter will remain italic and also become bold. For example: -\[ - \mathbf{a} = a\,\mathbf{I} \qquad \mathbf{\beta} = \beta\,\mathbf{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} diff --git a/Master/texmf-dist/doc/latex/unicode-math/unimath-example.pdf b/Master/texmf-dist/doc/latex/unicode-math/unimath-example.pdf new file mode 100644 index 00000000000..89d173fbeaf Binary files /dev/null and b/Master/texmf-dist/doc/latex/unicode-math/unimath-example.pdf differ diff --git a/Master/texmf-dist/doc/latex/unicode-math/unimath-symbols.ltx b/Master/texmf-dist/doc/latex/unicode-math/unimath-symbols.ltx deleted file mode 100644 index fe6df238c95..00000000000 --- a/Master/texmf-dist/doc/latex/unicode-math/unimath-symbols.ltx +++ /dev/null @@ -1,448 +0,0 @@ -%!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} - -\begin{document} -\MakeShortVerb\| -\title{Every symbol (most symbols) defined by \textsf{unicode-math}} -\author{Will Robertson\\\texttt{wspr81@gmail.com}} -\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} diff --git a/Master/texmf-dist/doc/latex/unicode-math/unimath-symbols.pdf b/Master/texmf-dist/doc/latex/unicode-math/unimath-symbols.pdf index de512a5d0e2..037f7586e5c 100644 Binary files a/Master/texmf-dist/doc/latex/unicode-math/unimath-symbols.pdf and b/Master/texmf-dist/doc/latex/unicode-math/unimath-symbols.pdf differ -- cgit v1.2.3