summaryrefslogtreecommitdiff
path: root/macros
diff options
context:
space:
mode:
Diffstat (limited to 'macros')
-rw-r--r--macros/latex/contrib/xpunctuate/README.md (renamed from macros/latex/contrib/xpunctuate/README)12
-rw-r--r--macros/latex/contrib/xpunctuate/xpunctuate-doc.pdfbin0 -> 271385 bytes
-rw-r--r--macros/latex/contrib/xpunctuate/xpunctuate.dtx474
-rw-r--r--macros/latex/contrib/xpunctuate/xpunctuate.ins61
-rw-r--r--macros/latex/contrib/xpunctuate/xpunctuate.pdfbin212109 -> 0 bytes
-rw-r--r--macros/unicodetex/latex/unicode-math/CHANGES.md11
-rw-r--r--macros/unicodetex/latex/unicode-math/MANIFEST.md305
-rw-r--r--macros/unicodetex/latex/unicode-math/README.md2
-rw-r--r--macros/unicodetex/latex/unicode-math/um-code-alphabets.dtx13
-rw-r--r--macros/unicodetex/latex/unicode-math/um-code-epilogue.dtx82
-rw-r--r--macros/unicodetex/latex/unicode-math/um-code-fontopt.dtx2
-rw-r--r--macros/unicodetex/latex/unicode-math/um-code-main.dtx42
-rw-r--r--macros/unicodetex/latex/unicode-math/um-code-mathtext.dtx4
-rw-r--r--macros/unicodetex/latex/unicode-math/um-code-msg.dtx5
-rw-r--r--macros/unicodetex/latex/unicode-math/um-code-opening.dtx21
-rw-r--r--macros/unicodetex/latex/unicode-math/um-code-pkgopt.dtx8
-rw-r--r--macros/unicodetex/latex/unicode-math/um-code-primes.dtx2
-rw-r--r--macros/unicodetex/latex/unicode-math/um-code-setchar.dtx2
-rw-r--r--macros/unicodetex/latex/unicode-math/um-code-sym-commands.dtx4
-rw-r--r--macros/unicodetex/latex/unicode-math/um-code-usv.dtx9
-rw-r--r--macros/unicodetex/latex/unicode-math/um-code-variables.dtx4
-rw-r--r--macros/unicodetex/latex/unicode-math/um-doc-main.tex142
-rw-r--r--macros/unicodetex/latex/unicode-math/um-doc-style.tex8
-rw-r--r--macros/unicodetex/latex/unicode-math/unicode-math-code.pdfbin325165 -> 434981 bytes
-rw-r--r--macros/unicodetex/latex/unicode-math/unicode-math-table.tex6
-rw-r--r--macros/unicodetex/latex/unicode-math/unicode-math.dtx6
-rw-r--r--macros/unicodetex/latex/unicode-math/unicode-math.pdfbin162723 -> 166849 bytes
-rw-r--r--macros/unicodetex/latex/unicode-math/unimath-example.pdfbin21851 -> 21873 bytes
-rw-r--r--macros/unicodetex/latex/unicode-math/unimath-symbols.ltx49
-rw-r--r--macros/unicodetex/latex/unicode-math/unimath-symbols.pdfbin1194223 -> 2713763 bytes
30 files changed, 741 insertions, 533 deletions
diff --git a/macros/latex/contrib/xpunctuate/README b/macros/latex/contrib/xpunctuate/README.md
index 56d28e886f..3b627e1ac3 100644
--- a/macros/latex/contrib/xpunctuate/README
+++ b/macros/latex/contrib/xpunctuate/README.md
@@ -3,14 +3,16 @@
| abbreviations, as and when necessary |
| (along the lines of xspace). |
| |
- | Philip G. Ratcliffe - version 1.0 (2012/05/23) |
+ | Philip G. Ratcliffe - version 2.0 (2023/08/13) |
--------------------------------------------------------
+* LaTeX xpunctuate.ins to produce xpunctuate.sty
+
* Copy xpunctuate.sty to one of your TeX input directories.
* LaTeX xpunctuate.dtx for usage instructions and documentation.
-This is the first public release of the "xpunctuate" package; it defines
+This is the first revision of the "xpunctuate" package; it defines
commands for typesetting, e.g., abbreviations where the trailing period may
clash with a sentence terminator. More precisely it avoids the natural
problem of definitions such as \def\etc{\emph{etc}.}, which may then cause
@@ -18,4 +20,8 @@ double periods if used at the end of sentences, such as ... cats, dogs \etc.
It also deals with optional commas, which again may be rendered unnecessary by
the presence of a following sentence terminator.
-Change history: v1.0 first official release. \ No newline at end of file
+Change history:
+v2.0 overhauled all user commands, introduced \NewDocumentCommand,
+ added \xspaceafter.
+v1.0 first official release.
+
diff --git a/macros/latex/contrib/xpunctuate/xpunctuate-doc.pdf b/macros/latex/contrib/xpunctuate/xpunctuate-doc.pdf
new file mode 100644
index 0000000000..32c9282723
--- /dev/null
+++ b/macros/latex/contrib/xpunctuate/xpunctuate-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/xpunctuate/xpunctuate.dtx b/macros/latex/contrib/xpunctuate/xpunctuate.dtx
index 6aaabd6138..fc16a9c8f0 100644
--- a/macros/latex/contrib/xpunctuate/xpunctuate.dtx
+++ b/macros/latex/contrib/xpunctuate/xpunctuate.dtx
@@ -1,31 +1,53 @@
% \iffalse meta-comment
%
-% Copyright (C) 2012 by Philip G. Ratcliffe <philip.ratcliffe@uninsubria.it>
+% File: xpunctuate.dtx
%
-% This file may be distributed and/or modified under the conditions of
-% the LaTeX Project Public License, either version 1.2 of this license
-% or (at your option) any later version. The latest version of this
-% license is in:
+% Copyright (C) 2023 by Philip G. Ratcliffe <philip.ratcliffe@uninsubria.it>
+%
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version.
+% The latest version of this license is in the file
%
% http://www.latex-project.org/lppl.txt
%
-% and version 1.2 or later is part of all distributions of LaTeX
-% version 1999/12/01 or later.
+% This file is part of the "xpunctuate package" (the Work in LPPL)
+% and all files in that package must be distributed together.
+%
+% The released version of this package is available from CTAN.
+%
+% This package has the LPPL maintenance status "maintained".
+%
+% The current maintainer of this package is Philip G. Ratcliffe.
+%
+% This work consists of the files xpunctuate.dtx and xpunctuate.ins
+% and the derived file xpunctuate.sty.
%
% \fi
%
% \iffalse
%
-%<package>\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+%<package>\NeedsTeXFormat{LaTeX2e}[2020/10/01]
%<package>\ProvidesPackage{xpunctuate}
-%<package> [2012/05/21 v1.0 trailing punctuation package (PGR)]
+%<package> [2023/08/13 v2.0 punctuation after command names (PGR)]
%
%<*driver>
-\documentclass{ltxdoc}
+\documentclass[british]{ltxdoc}
\usepackage{xpunctuate}
+%
+\NewDocElement[macrolike=false]{Generic}{generic}
+\renewcommand\thefootnote{\color{red}{\emph{\alph{footnote}}}}
+\newenvironment{codelist}
+ {\begin{list}{}{\setlength\leftmargin{3em}}\item[]}{\end{list}}
+\newcommand\eg{\xperiodafter{\emph{e}.\emph{g}}}
+\newcommand\ie{\xperiodafter{\emph{i}.\emph{e}}}
+%
\CodelineIndex
\EnableCrossrefs
\RecordChanges
+\DoNotIndex{\def,\let,\futurelet}
+\DoNotIndex{\if,\else,\fi,\ifx,\fi,\iftrue,\fi,\iffalse,\fi}
+\DoNotIndex{\the,\csname,\endcsname,\expandafter,\noexpand,\protect}
%
\begin{document}
\DocInput{xpunctuate.dtx}
@@ -33,7 +55,7 @@
%</driver>
% \fi
%
-% \CheckSum{144}
+% \CheckSum{154}
%
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -51,157 +73,258 @@
% Grave accent \` Left brace \{ Vertical bar \|
% Right brace \} Tilde \~}
%
-%
% \changes{v1.0}{2012/05/21}{first public release}
+% \changes{v2.0}{2023/08/13}{general upgrade}
%
% \GetFileInfo{xpunctuate.sty}
%
% \DoNotIndex{\CodelineIndex,\EnableCrossrefs,\RecordChanges}
%
-% \title{
-% The \textsf{xpunctuate}\relax
-% \thanks{
-% This file has version number \fileversion, and revision date \filedate.}
-% \space
-% package for \LaTeX2e
-% }
-% \author{
-% Philip G. Ratcliffe\thanks{E-mail: \textsf{philip.ratcliffe@uninsubria.it}}
-% \\
-% Dipartimento di Scienze e Alta Tecnologia
-% \\
-% Universit\`{a} degli Studi dell'Insubria---Como
-% }
+% \title{The \texttt{xpunctuate} package for \LaTeX2e
+% \\[1ex] \small (\fileversion, last revision \filedate)}
+%
+% \author{Philip G. Ratcliffe
+% \\[1ex] \small \textsf{philip.ratcliffe@uninsubria.it}
+% \\[2ex] \small Dipartimento di Scienza e Alta Tecnologia
+% \\ \small Universit\`a degli Studi dell'Insubria---Como
+% \\ \small and
+% \\ \small Istituto Nazionale di Fisica Nucleare
+% \\ \small Sezione di Milano Bicocca}
%
% \date{}
%
% \maketitle
%
% \begin{abstract}
-% This package affords the user or package writer post-macro punctuation
-% insertion, \emph{i.e.}, beyond (but similar to) that of the |xspace| package.
-% Three new commands are defined: |\xperiod|, |\xcomma| and |\xperiodcomma|,
-% which, following a similar procedure to the standard |\xspace| macro, are
-% designed to insert the relevant punctuation \emph{if and only if} necessary.
+% The |xpunctuate| package provides package writers and ordinary users with
+% automatic post-macro punctuation insertion, \ie beyond (but similar to) that
+% of the |xspace| package, which is required here. Three new macros are
+% defined: |\xperiod|, |\xcomma| and |\xperiodcomma|, designed to insert the
+% required punctuation marks \emph{if and only if} necessary, following a
+% similar procedure to the |xspace| package. A further four macros
+% (|\xspaceafter|, |\xperiodafter|, |\xcommaafter| and |\xperiodcommaafter|)
+% are constructed to avoid the small superfluous space after possible font
+% changes (such as |\emph|) that involve the correction |\/|, which would
+% otherwise be hidden.
% \end{abstract}
%
% \section{Introduction}
%
-% The present package is mainly intended for package writers and provides
-% additional post-macro punctuation insertion, similar to that of the |xspace|
-% package. Three new commands are defined: |\xperiod|, |\xcomma| and
-% |\xperiodcomma|, which, in an analogous fashion to the standard |\xspace|
-% macro, insert the relevant punctuation where necessary.
+% The present package is mainly intended for package writers, but may also
+% serve the ordinary user; it provides additional post-macro punctuation
+% insertion, similar to that of the |xspace| package. Three new macros are
+% defined: |\xperiod|, |\xcomma| and |\xperiodcomma|, which, in an analogous
+% fashion to the standard |\xspace| macro, insert any relevant punctuation
+% where necessary. Four additional macros, of the form |\x|\dots|after|, avoid
+% the small superfluous space due to the following period or comma being
+% isolated from a preceding~|\/|.
%
-% \section{Usage}
+% \section{Package call}
%
-% The package is loaded via a standard package call: |\usepackage{xpunctuate}|.
-% There are at present no user options.
+% \DescribeGeneric{package call}
+% The package is loaded via a standard call:
+% \begin{codelist}
+% |\usepackage{xpunctuate}|
+% \end{codelist}
%
-% \subsection{User commands}
+% \subsection{User options}
+%
+% \DescribeGeneric{user options}
+% There are at present \emph{no} user options.
+%
+% \subsection{User macros}
%
-% The package defines three user commands, each having two variants.
+% Three user macros are defined, each having a pre-punctuation space-correcting
+% variant, plus a similar extension of the |\xspace| macro.
%
% \DescribeMacro{\xperiod}
% The purpose of this macro is to insert a period if not found as the
% successive \LaTeX\ input token. Typical use will be in defining
-% abbreviations, where there may or may not be a following ``accidental''
-% sentence-terminating period. The definition of |\xperiod| is such that if it
-% is followed by a period, then this is considered as a sentence terminator and
-% the appropriate trailing space is inserted. However, when no explicit period
-% follows, the occurrence is assumed to be mid-sentence and therefore normal
-% inter-word spacing is used.
+% abbreviations, where there may or may not be a following \emph{accidental}
+% sentence-terminating full stop. If \emph{no} explicit period follows, one is
+% inserted, the occurrence is assumed to be mid-sentence and therefore normal
+% inter-word spacing is applied. However, if it \emph{is} followed by a period,
+% then this is considered to be a sentence terminator, it is left as is with no
+% further insertions and the appropriate trailing space will then naturally
+% ensue.
+%
+% After defining |\newcommand{\gb}{G.B\xperiod}|, the command |\gb| will
+% determine when to insert a period after itself and when not, with also the
+% correct mid-sentence or end-of-sentence spacing as required. Thus, the input
+% \newcommand{\gb}{G.B\@\xperiod}
+% \begin{codelist}
+% |\gb is a very nice place to live.\\|\\
+% |I live in \gb. It is a small island off the coast of France|\\
+% |\gb\footnote{The small island off the coast of France.}|\\
+% |is a very nice place to live.|
+% \end{codelist}
+% results in the output
+% \begin{codelist}
+% \gb is a very nice place to live.\\
+% I live in \gb. It is a small island off the coast of France.\\
+% \gb\footnote{The small island off the coast of France.}
+% is a very nice place to live.
+% \end{codelist}
%
% \DescribeMacro{\xcomma}
-% The purpose of this macro is to insert a comma if not found as the next
-% token. Typical use will be following an object such as ``\emph{e.g.}'', which
-% according to certain standard style manuals should be followed by a comma.
-% This command has no special spacing behaviour.
+% This macro similarly inserts a comma if not found as the next token. A
+% typical application might be following an abbreviation such as `eg' (\ie when
+% used \emph{without} periods), which according to different standard style
+% manuals should or should not be followed by a comma. It has no special
+% spacing behaviour.
%
% \DescribeMacro{\xperiodcomma}
-% The purpose of this macro is to insert a period \emph{and} comma if not found
-% as the next input tokens. Typical use will be, as above, following an object
-% such as ``\emph{e.g.}'', which, according to certain style manuals, should be
-% followed by a comma, but may also occur fortuitously immediately preceding an
-% explicit sentence-closing period, the correct trailing space of which would
-% then be inserted.
-%
+% This macro inserts a period \emph{and} a comma if not found as the next input
+% tokens. Typical use will be, as above, for abbreviations such as `e.g.'\ (\ie
+% \emph{with} periods) when they should be followed by a comma, but may also
+% occur fortuitously immediately preceding an explicit sentence-closing period
+% or indeed an explicit comma, the correct trailing space of which would then
+% ensue. Note that this action \emph{cannot} be reproduced via successive use
+% of the single macros, \ie the combination |\xperiod\xcomma|.
+%
+% \DescribeMacro{\xspaceafter}
% \DescribeMacro{\xperiodafter}
% \DescribeMacro{\xcommaafter}
% \DescribeMacro{\xperiodcommaafter}
-% These variants are similar to the above macros except that they take the word
-% or words to be punctuated as an argument; this avoids incorrect spacing
-% adjustment when the word is, for example, |\emph|'asised.
-%
-% Note that the action of |\xperiodcommaafter| may also obtained by suitably
-% nesting |\xperiodafter| and |\xcommaafter| though this has not been
-% thoroughly tested; it is thus included for safety and backward compatibility.
-%
-% The following are examples of possible usage:\\[2ex]
-% |\DeclareRobustCommand\etal{\xperiodafter{\emph{et al}}}| \\
-% |\DeclareRobustCommand\eg{e.g\xperiodcomma}| \\
-% |\DeclareRobustCommand\eg{\xcommaafter{\xperiodafter{\emph{e.g}}}}|
+% The variants |\x|\dots|after| are similar to the above except that they take
+% the object word or phrase to be spaced or punctuated as an argument; the
+% slight incorrect spacing adjustment between the word and following period or
+% comma is thus avoided when, for example, the word is |\emph|'asised. Other
+% punctuation marks do \emph{not} suffer from this problem.
+%
+% Note that although the action of |\xperiodcommaafter| may also be obtained
+% via suitable nesting of |\xperiodafter| and |\xcommaafter|, this combination
+% has not been thoroughly tested; the compound macro is thus included for both
+% safety and backwards compatibility.
+%
+% In the case of the macros that guarantee a trailing period (\emph{with} or
+% \emph{without} a comma), if the final letter of the word or phrase is a
+% capital (\eg `Ph.D.'), to guarantee the correct end-of-sentence trailing
+% spacing, it should be immediately followed by an explicit |\@|. That is, the
+% definition should be of the form
+% \begin{codelist}
+% |\newcommand\PhD{Ph.D\@\xperiod}|\\[-0.67ex]
+% \hspace*{-\leftmargin}\, or\\[-0.67ex]
+% |\newcommand\PhD{\xperiodafter{Ph.D\@}}|
+% \end{codelist}
+% N.B. If the ending capital letter or letters are \eg |\emph|'asised, the |\@|
+% should be placed \emph{inside} the |\emph|'asis:\footnote{It is for this
+% reason that it \emph{cannot} be incorporated directly into the |xpunctuate|
+% macros.}
+% \begin{codelist}
+% |\newcommand\PhD{\emph{Ph}.\emph{D\@}\xperiod}|\\[-0.67ex]
+% \hspace*{-\leftmargin}\, or\\[-0.67ex]
+% |\newcommand\PhD{\xperiodafter{\emph{Ph}.\emph{D\@}}}|
+% \end{codelist}
+%
+% The following are various other examples of possible usage:
+% \begin{codelist}
+% |\newcommand\etc{etc\xperiod}|\\
+% |\newcommand\eg{i.e\xperiodcomma}|\\
+% |\newcommand\etal{\xperiodafter{\emph{et al}}}|\\
+% |\newcommand\ie{\xperiodcommaafter{\emph{e}.\emph{g}}}|
+% \end{codelist}
+% Note how the closing period in the above is \emph{not} explicitly present,
+% being inserted by the relevant macro as and when necessary, with too the
+% correct spacing.
%
% \subsection{Caveats}
%
-% No particular care should be necessary in using the commands defined by this
-% package. However, trailing punctuation hidden inside macro definitions may
-% not be correctly interpreted.
+% \begin{generic}{caveats}
+% No specific care should be necessary when employing the macros defined here;
+% in particular, they are all \emph{robust}. However, trailing punctuation
+% hidden inside or by other macro definitions may not always be correctly
+% interpreted. Moreover, the known limitations of |\xspace| remain.
+% \end{generic}
%
% \subsection{External package requirements}
%
-% The |xspace| package is required and is loaded automatically.
+% \begin{generic}{xspace}
+% The |xspace| package is required and is loaded automatically. Note that, in
+% the \emph{absence} of |\xspace|, the necessary presence of explicit trailing
+% backslashes for correct spacing following command strings, would frustrate
+% the functionality of all the macros defined here.\footnote{Users who shun the
+% use of |xspace| will probably not appreciate the present package either.}
+% \end{generic}
%
% \subsection{Package conflicts}
%
+% \begin{generic}{conflicts}
% There are no known conflicts with any standard \LaTeX2e\ packages.
+% \end{generic}
%
% \StopEventually{\PrintChanges\PrintIndex}
%
% \section{Implementation}
%
-% \subsection{External package requirements}
-%
-% Load the |xspace| package for automatic trailing space:
+% \subsection{External packages}
+% \begin{generic}{packages}
+% First, load the |xspace| package, for automatic trailing-space insertion:
% \begin{macrocode}
\RequirePackage{xspace}
% \end{macrocode}
+% \changes{v2.0}{2023/08/13}{useful \texttt{xspace} exceptions added}
+% \begin{generic}{exceptions}
+% and add some useful extra |xspace| exceptions relevant to the present
+% package.
+% \begin{macrocode}
+\xspaceaddexceptions{\xcomma\xperiod\xperiodcomma}
+% \end{macrocode}
+% \end{generic}
+% \end{generic}
%
% \subsection{User commands}
%
+% \changes{v2.0}{2023/08/13}{revamped all macros}
+% \begin{macro}{\xspaceafter}
+% \changes{v2.0}{2023/08/13}{macro added}
+% This macro takes one argument, which it prints as is. It then inserts
+% |\xspace| immediately after, but nothing if followed by a comma or period.
+% \begin{macrocode}
+\NewDocumentCommand\xspaceafter{}{\xpnct@aux\xspace@aux}
+% \end{macrocode}
+% The correct spacing between the argument and any following comma or period is
+% thus maintained in the case of, say, an |\emph|'asised argument. The
+% necessity arises as the presence of |\xspace| `hides' any following
+% punctuation from a possible |\/| spacing-correction command.
+% \end{macro}
+%
% \begin{macro}{\xperiod}
% The following macro inserts a period if this is not found to be the next
-% character. It may thus be used to construct common abbreviations (such as
-% ``\emph{etc}.'').
+% character.
% \begin{macrocode}
-\DeclareRobustCommand\xperiod{\xprd@Set{}}
+\NewDocumentCommand\xperiod{}{\xpnct@aux\xperiod@aux{}}
% \end{macrocode}
+% It may thus be used to construct common abbreviations (such as `etc.').
% \end{macro}
%
% \begin{macro}{\xperiodafter}
-% This macro takes one argument and places a period after it if this is not
-% found to be the next character. The correct spacing between the word and
-% period is thus maintained in the case of, say, |\emph|.
+% This macro takes one argument and inserts a period after it if this is not
+% found to be the next character.
% \begin{macrocode}
-\DeclareRobustCommand\xperiodafter[1]{\xprd@Set{#1}}
+\NewDocumentCommand\xperiodafter{}{\xpnct@aux\xperiod@aux}
% \end{macrocode}
+% The correct spacing between the argument and period is again thus maintained
+% in the case of, say, |\emph|, as in often \emph{italicised} abbreviations
+% (such as `\emph{etc}.').
% \end{macro}
%
% \begin{macro}{\xcomma}
% The following macro inserts a comma if this is not found to be the next
-% character. Thus, it may be used to construct common abbreviations and
-% expressions that should normally be followed by a comma (such as
-% ``\emph{e.g.}'').
+% character.
% \begin{macrocode}
-\DeclareRobustCommand\xcomma{\xcmm@Set{}}
+\NewDocumentCommand\xcomma{}{\xpnct@aux\xcomma@aux{}}
% \end{macrocode}
+% It may thus be used to construct those common abbreviations (without periods)
+% that might normally be followed by a comma, such as `eg' or `ie' according to
+% standard American-English usage.
% \end{macro}
%
% \begin{macro}{\xcommaafter}
-% The following macro takes one argument and places a comma after it if this is
-% not found to be the next character.
+% The following macro takes one argument and inserts a comma after it if this
+% is not found to be the next character.
% \begin{macrocode}
-\DeclareRobustCommand\xcommaafter[1]{\xcmm@Set{#1}}
+\NewDocumentCommand\xcommaafter{}{\xpnct@aux\xcomma@aux}
% \end{macrocode}
% \end{macro}
%
@@ -209,114 +332,133 @@
% The following macro first adds a period and then a comma if these are not
% found to be the next characters.
% \begin{macrocode}
-\DeclareRobustCommand\xperiodcomma{\xpcm@Set{}}
+\NewDocumentCommand\xperiodcomma{}{\xpnct@aux\xperiodcomma@aux{}}
% \end{macrocode}
-% It may thus be used to construct common abbreviations that should normally be
-% followed by a comma (such as ``\emph{e.g.}''). The comma is inserted if only
-% and if the following character does not imply the end of a period. Here, of
-% course, there is no problem of spacing either preceding or following the
-% period. If only a period is found this is treated as an end-of-sentence and
-% the spacing is handled accordingly.
+% It may thus be used to construct those common abbreviations that might
+% normally be followed by a comma (such as `e.g.,'), the comma being inserted
+% \emph{if and only if} there is no following explicit sentence-ending period.
+% Here, there is of course no problem of spacing either preceding or following
+% the period. If only a period is found, it is treated as an end-of-sentence
+% and the correct spacing will ensue accordingly. A following period--comma
+% combination, if found, will be left as is.
% \end{macro}
%
% \begin{macro}{\xperiodcommaafter}
-% This macro takes one argument and places a period and a comma after it if
-% these are not found to be the next characters:
+% This macro takes one argument and inserts a period and/or a comma after it if
+% these are not found to be the next characters.
% \begin{macrocode}
-\DeclareRobustCommand\xperiodcommaafter[1]{\xpcm@Set{#1}}
+\NewDocumentCommand\xperiodcommaafter{}{\xpnct@aux\xperiodcomma@aux}
% \end{macrocode}
+% It may thus be used to construct those common \emph{italicised} abbreviations
+% that should normally be followed by a comma (such as `\eg,').
% \end{macro}
%
% \subsection{Internal macros}
%
-% \begin{macro}{\xprd@Set}
-% The setup for |\xperiod| and |\xperiodafter| is performed by the following
-% auxiliary macro:
+% \begin{macro}{\xpnct@tok}
+% A token register is defined to store a possible object word or phrase:
% \begin{macrocode}
-\newcommand\xprd@Set[1]{\def\xprd@Obj{#1}\futurelet\xprd@Nxt\xprd@Fin}
+\newtoks\xpnct@tok
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\xprd@Fin}
-% The testing and final output for |\xperiod| and |\xperiodafter| is made by
-% the following auxiliary macro:
+% \begin{macro}{\xpnct@aux}
+% The general setup and call to the final output macros for the above user
+% commands is handled by the following auxiliary macro:
% \begin{macrocode}
-\newcommand\xprd@Fin{%
- \ifx\xprd@Nxt.\relax
- \let\xprd@Out\xprd@Obj
- \else
- \def\xprd@Out{\xprd@Obj.\@\xspace}%
- \fi
- \xprd@Out
-}
+\def\xpnct@aux#1#2{%
+ \xpnct@tok{#2}%
+ \futurelet\xpnct@nxt#1}
% \end{macrocode}
-% Note the insertion of ``|\@|'' following the period when this last is not
-% found; this avoids the standard default end-of-sentence spacing, assuming the
-% occurrence in such a case to be mid-sentence.
% \end{macro}
+% Note that all the user commands defined earlier terminate by inserting an
+% |\xspace| \emph{if} and \emph{only if} the required punctuation has actually
+% been inserted by the macro.
%
-% \begin{macro}{\xcmm@Set}
-% The setup for |\xcomma| and |\xcommaafter| is performed by the following
-% auxiliary macro:
+% \begin{macro}{\xspace@aux}
+% Testing and output for |\xspaceafter| are performed by the following macro:
% \begin{macrocode}
-\newcommand\xcmm@Set[1]{\def\xcmm@Obj{#1}\futurelet\xcmm@Nxt\xcmm@Fin}
+\def\xspace@aux{%
+ \ifx\xpnct@nxt,\else
+ \ifx\xpnct@nxt.\else
+ \xpnct@tok\expandafter{\the\xpnct@tok\xspace}%
+ \fi\fi
+ \the\xpnct@tok}
% \end{macrocode}
+% Only periods and commas need be excluded, as the spacing is correct for all
+% other punctuation marks.
% \end{macro}
%
-% \begin{macro}{\xcmm@Fin}
-% The testing and final output for |\xcomma| and |\xcommaafter| is made by the
-% following auxiliary macro (shamelessly copied from an \emph{old} |xspace| and
-% hacked):
+% \begin{macro}{\xperiod@aux}
+% Testing and output for |\xperiod| and |\xperiodafter| are performed by this
+% macro:
% \begin{macrocode}
-\newcommand\xcmm@Fin{%
- \let\xcmm@Out\xcmm@Obj
- \ifx\xcmm@Nxt\bgroup\else
- \ifx\xcmm@Nxt\egroup\else
- \ifx\xcmm@Nxt\/\else
- \ifx\xcmm@Nxt~\else
- \ifx\xcmm@Nxt.\else
- \ifx\xcmm@Nxt!\else
- \ifx\xcmm@Nxt,\else
- \ifx\xcmm@Nxt:\else
- \ifx\xcmm@Nxt;\else
- \ifx\xcmm@Nxt?\else
- \ifx\xcmm@Nxt/\else
- \ifx\xcmm@Nxt'\else
- \ifx\xcmm@Nxt)\else
- \ifx\xcmm@Nxt]\else
- \ifx\xcmm@Nxt-\else
- \def\xcmm@Out{\xcmm@Obj,\xspace}%
- \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
- \xcmm@Out
-}
+\def\xperiod@aux{%
+ \ifx\xpnct@nxt.\else
+ \xpnct@tok\expandafter{\the\xpnct@tok.\@\xspace}%
+ \fi
+ \the\xpnct@tok}
% \end{macrocode}
-% Note that there are fewer options than in the |xspace| package, for obvious
-% reasons.
+% The approach adopted is to treat an explicit following period as an
+% end-of-sentence full stop; the trailing space is then handled accordingly.
+% However, when an explicit period is \emph{not} found), the placement of |\@|
+% immediately after the inserted period thus avoids standard end-of-sentence
+% spacing, assuming such an occurrence to be mid-sentence (as for
+% abbreviations). If, in contrast, an explicit period \emph{is} found, it is
+% retained as is and will thus generate the correct end-of-sentence spacing.
% \end{macro}
%
-% \begin{macro}{\xpcm@Set}
-% The setup for |\xperiodcomma| and |\xperiodcommaafter| is performed by the
-% following auxiliary macro:
+% \begin{macro}{\xcomma@aux}
+% Testing and output for |\xcomma| and |\xcommaafter| are performed by the
+% following macro (shamelessly copied from an \emph{old} |xspace.sty| and
+% suitably hacked):
% \begin{macrocode}
-\newcommand\xpcm@Set[1]{\def\xpcm@Obj{#1}\futurelet\xpcm@Nxt\xpcm@Fin}
+\def\xcomma@aux{%
+ \ifx\xpnct@nxt.\else
+ \ifx\xpnct@nxt,\else
+ \ifx\xpnct@nxt:\else
+ \ifx\xpnct@nxt;\else
+ \ifx\xpnct@nxt!\else
+ \ifx\xpnct@nxt?\else
+ \ifx\xpnct@nxt/\else
+ \ifx\xpnct@nxt-\else
+ \ifx\xpnct@nxt'\else
+ \ifx\xpnct@nxt)\else
+ \ifx\xpnct@nxt]\else
+ \ifx\xpnct@nxt\}\else
+ \ifx\xpnct@nxt\egroup\else
+ \ifx\xpnct@nxt\/\else
+ \xpnct@tok\expandafter{\the\xpnct@tok,\xspace}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+ \the\xpnct@tok}
% \end{macrocode}
+% Note that certain of the default exceptions set by the |xspace| package are
+% missing here, for obvious reasons.
% \end{macro}
%
-% \begin{macro}{\xpcm@Fin}
-% The testing and final output for |\xperiodcomma| and |\xperiodcommaafter| is
-% made by the following auxiliary macro:
+% \begin{macro}{\xperiodcomma@aux}
+% Testing and output for |\xperiodcomma| and |\xperiodcommaafter| are performed
+% by the following:
% \begin{macrocode}
-\newcommand\xpcm@Fin{%
- \ifx\xpcm@Nxt.\relax
- \let\xpcm@Out\xpcm@Obj
- \else
- \def\xpcm@Out{\xpcm@Obj.\xcomma}%
+\def\xperiodcomma@aux{%
+ \ifx\xpnct@nxt.\else
+ \xpnct@tok\expandafter{\the\xpnct@tok.\@\xcomma}%
\fi
- \xpcm@Out
-}
+ \the\xpnct@tok}
+% \end{macrocode}
+% The presence or absence of an explicit following period is again taken to
+% imply an end-of- or mid-sentence respectively, unless followed by an explicit
+% comma, other closing punctuation or brackets say, when it will be assumed
+% mid-sentence. Note, moreover, that |\@| is \emph{still} necessary here as the
+% period may not necessarily be immediately followed by a comma, \eg if it is
+% followed by a closing bracket or quotation marks.
+% \end{macro}
+%
+% \begin{macro}{\endinput}
+% Finally, explicitly terminate the package input here.
+% \begin{macrocode}
+\endinput
% \end{macrocode}
-% The choice made is that if only a following period is found, then it is
-% treated as an end-of-sentence and the trailing space is handled accordingly.
% \end{macro}
%
% \Finale
diff --git a/macros/latex/contrib/xpunctuate/xpunctuate.ins b/macros/latex/contrib/xpunctuate/xpunctuate.ins
index 48dd28c23e..ad465692ea 100644
--- a/macros/latex/contrib/xpunctuate/xpunctuate.ins
+++ b/macros/latex/contrib/xpunctuate/xpunctuate.ins
@@ -1,51 +1,60 @@
-%%
-%% Copyright (C) 2012 by Philip G. Ratcliffe <philip.ratcliffe@uninsubria.it>
-%%
-%% This file may be distributed and/or modified under the conditions of
-%% the LaTeX Project Public License, either version 1.2 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.2 or later is part of all distributions of LaTeX
-%% version 1999/12/01 or later.
-%%
+\iffalse meta-comment
+
+File: xpunctuate.ins
+
+Copyright (C) 2023 Philip G. Ratcliffe <philip.ratcliffe@uninsubria.it>
+
+It may be distributed and/or modified under the conditions of the
+LaTeX Project Public License (LPPL), either version 1.3c of this
+license or (at your option) any later version. The latest version
+of this license is in the file
+
+ http://www.latex-project.org/lppl.txt
+
+This file is part of the "xpunctuate package" (the Work in LPPL)
+and all files in that package must be distributed together.
+
+The released version of this package is available from CTAN.
+
+\fi
+
\input docstrip
\keepsilent
\usedir{tex/latex/xpunctuate}
\preamble
-Copyright (C) 2012 by Philip G. Ratcliffe <philip.ratcliffe@uninsubria.it>
+Copyright (C) 2023 Philip G. Ratcliffe <philip.ratcliffe@uninsubria.it>
-This file may be distributed and/or modified under the conditions of
-the LaTeX Project Public License, either version 1.2 of this license
-or (at your option) any later version. The latest version of this
-license is in:
+It may be distributed and/or modified under the conditions of the
+LaTeX Project Public License (LPPL), either version 1.3c of this
+license or (at your option) any later version. The latest version
+of this license is in the file
http://www.latex-project.org/lppl.txt
-and version 1.2 or later is part of all distributions of LaTeX
-version 1999/12/01 or later.
+This file is part of the "xpunctuate package" (the Work in LPPL)
+and all files in that package must be distributed together.
+
+The released version of this package is available from CTAN.
\endpreamble
\generateFile{xpunctuate.sty}{n}{\from{xpunctuate.dtx}{package}}
-\ifToplevel{
+\ifToplevel{%
\Msg{*************************************************************}
\Msg{*}
\Msg{* To finish the installation, move the following file into a}
\Msg{* directory searched by TeX:}
\Msg{*}
-\Msg{* \space\space xpunctuate.sty }
+\Msg{* \space\space xpunctuate.sty}
\Msg{*}
\Msg{* To produce the documentation, run xpunctuate.dtx through LaTeX.}
\Msg{* To produce a documentation index, run makeindex like this:}
-\Msg{* \space\space makeindex -s gind.ist xpunctuate}
+\Msg{* \space\space makeindex -s gind.ist xpunctuate}
\Msg{* To produce a history of changes, run makeindex like this:}
-\Msg{* \space\space makeindex -s gglo.ist -o xpunctuate.gls xpunctuate.glo}
-\Msg{* Finally, run `xpunctuate.dtx' through LaTeX again.}
+\Msg{* \space\space makeindex -s gglo.ist -o xpunctuate.gls xpunctuate.glo}
+\Msg{* Finally, run 'xpunctuate.dtx' through LaTeX again.}
\Msg{*}
\Msg{* Happy LaTeXing}
\Msg{*************************************************************}
@@ -53,4 +62,4 @@ version 1999/12/01 or later.
\endbatchfile
%%
-%% End of file `xpunctuate.ins'. \ No newline at end of file
+%% End of file 'xpunctuate.ins'. \ No newline at end of file
diff --git a/macros/latex/contrib/xpunctuate/xpunctuate.pdf b/macros/latex/contrib/xpunctuate/xpunctuate.pdf
deleted file mode 100644
index f9dde3997f..0000000000
--- a/macros/latex/contrib/xpunctuate/xpunctuate.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/unicodetex/latex/unicode-math/CHANGES.md b/macros/unicodetex/latex/unicode-math/CHANGES.md
index facafe8080..c909ecf798 100644
--- a/macros/unicodetex/latex/unicode-math/CHANGES.md
+++ b/macros/unicodetex/latex/unicode-math/CHANGES.md
@@ -1,6 +1,15 @@
CHANGE HISTORY
==============
+## v0.8r (2023/08/13)
+
+ * Revise definitions of `\\setminus` and `\\smallsetminus` (#181, #583) — long overdue.
+ Note that there are compatibility considerations with this change.
+ * Add `\\diagup` and `\\diagdown` (#604).
+ * Make `\\operator@font` protected to allow operators (e.g., `\\cos`) in section headings (etc). (#550)
+ * Allow `\\symcal` to handle lowercase Latin (#589).
+ * Add additional fonts to the symbol listing document (#597).
+
## v0.8q (2020/01/31)
* Update to adapt to / support new features in the upcoming 2e kernel.
@@ -156,7 +165,7 @@ CHANGE HISTORY
## v0.8d (2017/01/25)
* `vargreek-shape=TeX` and `vargreek-shape=unicode` package options dropped; for consistency and compatibility, `\phi` and `\epsilon` should and will now behave the same as in `TeX`.
- * On that note, when using control sequences such as `\mbfitsansvarphi` (and so on), there were a few faulty definitions. The new behaviour is to consistenyl define the `varphi` and `varepsilon` ones as those with the "curly" designs.
+ * On that note, when using control sequences such as `\mbfitsansvarphi` (and so on), there were a few faulty definitions. The new behaviour is to consistently define the `varphi` and `varepsilon` ones as those with the "curly" designs.
* Add `\wideoverbar`, `\widebreve`, `\widecheck`.
* Add `\mathsection`, `\mathparagraph`.
* Remove `\mupvarbeta`, `upold(Kk)oppa`, `\up(Ss)tigma`, `\up(Kk)oppa`, `\up(Ss)ampi` — none of these are maths symbols.
diff --git a/macros/unicodetex/latex/unicode-math/MANIFEST.md b/macros/unicodetex/latex/unicode-math/MANIFEST.md
index 638be84dab..f033d07b7d 100644
--- a/macros/unicodetex/latex/unicode-math/MANIFEST.md
+++ b/macros/unicodetex/latex/unicode-math/MANIFEST.md
@@ -18,27 +18,27 @@ be installed for processing such as testing.
| File | Flag | Description |
| --- | --- | --- |
- | unicode-math.dtx | ‡ | Metadata for the package code, including files and versioning |
- | um-code-opening.dtx | ‡ | Assorted initialisation tasks, including some low-level function definitions. |
- | um-code-variables.dtx | ‡ | Declaration of all code-level variables used in the package. |
+ | um-code-alphabets.dtx | ‡ | Definitions for setting up the "math symbol alphabets". |
+ | um-code-amsmath.dtx | ‡ | Compatibility with amsmath. |
| um-code-api.dtx | ‡ | The (underdeveloped) API to interface with the package internals. |
- | um-code-ui.dtx | ‡ | The xparse user interface top-level definitions. |
- | um-code-pkgopt.dtx | ‡ | Package options. |
- | um-code-msg.dtx | ‡ | Definitions of error, warning, and log messages. |
- | um-code-usv.dtx | ‡ | Mapping of mathematical unicode slots for alphabets. |
- | um-code-setchar.dtx | ‡ | General assignment of maths symbols. |
- | um-code-mathtext.dtx | ‡ | The "math text" commands such as `\mathbf` and co. |
- | um-code-main.dtx | ‡ | Definition of `\setmainfont`. |
+ | um-code-compat.dtx | ‡ | Compatibility with 3rd party packages. |
+ | um-code-epilogue.dtx | ‡ | Assorted definitions to close up. |
| um-code-fontopt.dtx | ‡ | Keyval for `\setmathfont` |
| um-code-fontparam.dtx | ‡ | Cross-platform interface for font parameters |
+ | um-code-main.dtx | ‡ | Definition of `\setmainfont`. |
| um-code-mathmap.dtx | ‡ | Setup of symbol alphabets. |
- | um-code-sym-commands.dtx | ‡ | Definition of "math symbol alphabet" commands such as `\symbf` and co. |
- | um-code-alphabets.dtx | ‡ | Definitions for setting up the "math symbol alphabets". |
+ | um-code-mathtext.dtx | ‡ | The "math text" commands such as `\mathbf` and co. |
+ | um-code-msg.dtx | ‡ | Definitions of error, warning, and log messages. |
+ | um-code-opening.dtx | ‡ | Assorted initialisation tasks, including some low-level function definitions. |
+ | um-code-pkgopt.dtx | ‡ | Package options. |
| um-code-primes.dtx | ‡ | The definitions needed for the input of primes. |
+ | um-code-setchar.dtx | ‡ | General assignment of maths symbols. |
| um-code-sscript.dtx | ‡ | Setup for active chars needed to process subscript/superscript input chars. |
- | um-code-compat.dtx | ‡ | Compatibility with 3rd party packages. |
- | um-code-amsmath.dtx | ‡ | Compatibility with amsmath. |
- | um-code-epilogue.dtx | ‡ | Assorted definitions to close up. |
+ | um-code-sym-commands.dtx | ‡ | Definition of "math symbol alphabet" commands such as `\symbf` and co. |
+ | um-code-ui.dtx | ‡ | The xparse user interface top-level definitions. |
+ | um-code-usv.dtx | ‡ | Mapping of mathematical unicode slots for alphabets. |
+ | um-code-variables.dtx | ‡ | Declaration of all code-level variables used in the package. |
+ | unicode-math.dtx | ‡ | Metadata for the package code, including files and versioning |
| unicode-math.ins | ‡ | Docstrip installer. |
| unicode-math-table.tex | ‡ | Source file of the math symbols. |
@@ -58,12 +58,12 @@ These files are typeset using LaTeX to produce the PDF documentation for the pac
These files form part of the documentation but are not typeset. Generally they will be
additional input files for the typeset documentation files listed above.
- 1. um-doc-style.tex ‡
+ 1. um-doc-legacyfontdimen.tex ‡
2. um-doc-main.tex ‡
- 3. um-doc-stixextract.tex ‡
+ 3. um-doc-mathfontdimen.tex ‡
4. um-doc-nfsssummary.tex ‡
- 5. um-doc-legacyfontdimen.tex ‡
- 6. um-doc-mathfontdimen.tex ‡
+ 5. um-doc-stixextract.tex ‡
+ 6. um-doc-style.tex ‡
### Text files
@@ -72,7 +72,8 @@ Plain text files included as documentation or metadata.
1. CHANGES.md ‡
2. MANIFEST.md ‡
3. README.md ‡
- 4. LICENSE
+ 4. RELEASE_CHECKLIST.md ‡
+ 5. LICENSE
### Derived files
@@ -101,10 +102,13 @@ Support files for checking the test suite.
### Test files
-These files form the test suite for the package. The listed `.lvt` files are the individual unit tests, with matching `.tlg` (not shown, for brevity) are the stored output for ensuring changes to the package produce the same output.
+These files form the test suite for the package. `.lvt` or `.lte` files are the individual
+unit tests, and `.tlg` are the stored output for ensuring changes to the package produce
+the same output. These output files are sometimes shared and sometime specific for
+different engines (pdfTeX, XeTeX, LuaTeX, etc.).
- 1. Bbbit.lvt
- 2. aaa-loading.lvt
+ 1. aaa-loading.lvt
+ 2. aaa-sym.lvt
3. active-frac.lvt
4. active-sscripts-amsmath.lvt
5. active-sscripts.lvt
@@ -120,30 +124,133 @@ These files form the test suite for the package. The listed `.lvt` files are the
15. boldstyle-literal.lvt
16. boldstyle-tex.lvt
17. boldstyle-upright.lvt
-18. fontname-log.lvt
-19. hyphen.lvt
-20. input-fullwidth.lvt
-21. lmdefault-mathrm-it-bf.lvt
-22. mathit-symit-var.lvt
-23. mathit-symit.lvt
-24. mathsizes.lvt
-25. mathstyle-french.lvt
-26. mathstyle-iso.lvt
-27. mathstyle-literal.lvt
-28. mathstyle-tex.lvt
-29. mathstyle-upright.lvt
-30. nabla.lvt
-31. not.lvt
-32. operatorname.lvt
-33. partial.lvt
-34. range-char-cmd.lvt
-35. range-class.lvt
-36. range-up-num.lvt
-37. setmathsf.lvt
-38. sqrt-amsmath-exec.lvt
-39. sqrt-amsmath-output.lvt
-40. sqrt-exec.lvt
-41. sqrt-output.lvt
+18. cramped-style.lvt
+19. fontname-log.lvt
+20. hyphen.lvt
+21. input-fullwidth.lvt
+22. lmdefault-mathrm-it-bf.lvt
+23. mathit-symit-var.lvt
+24. mathit-symit.lvt
+25. mathoperator-mathbf.lvt
+26. mathrm-mathcal-nest.lvt
+27. mathrm-nobraces.lvt
+28. mathsizes.lvt
+29. mathstyle-french.lvt
+30. mathstyle-iso.lvt
+31. mathstyle-literal.lvt
+32. mathstyle-tex.lvt
+33. mathstyle-upright.lvt
+34. nabla.lvt
+35. nesting.lvt
+36. not.lvt
+37. operatorname.lvt
+38. partial.lvt
+39. radical-cuberoot-output.lvt
+40. range-char-cmd.lvt
+41. range-class.lvt
+42. range-nabla-partial.lvt
+43. range-up-num.lvt
+44. setmathfontface.lvt
+45. setmathsf.lvt
+46. sqrt-amsmath-output.lvt
+47. style-Bbbit.lvt
+48. url.lvt
+49. aaa-loading.luatex.tlg
+50. aaa-loading.xetex.tlg
+51. aaa-sym.luatex.tlg
+52. aaa-sym.xetex.tlg
+53. active-frac.luatex.tlg
+54. active-frac.xetex.tlg
+55. active-sscripts-amsmath.luatex.tlg
+56. active-sscripts-amsmath.xetex.tlg
+57. active-sscripts.luatex.tlg
+58. active-sscripts.xetex.tlg
+59. alph-range-calscr.luatex.tlg
+60. alph-range-calscr.xetex.tlg
+61. alph-range-fallback.luatex.tlg
+62. alph-range-fallback.xetex.tlg
+63. alph-range-mapping.luatex.tlg
+64. alph-range-mapping.xetex.tlg
+65. alph-range-sym-alph.luatex.tlg
+66. alph-range-sym-alph.xetex.tlg
+67. alph-range-sym-range.luatex.tlg
+68. alph-range-sym-range.xetex.tlg
+69. alph-sym.luatex.tlg
+70. alph-sym.xetex.tlg
+71. ascii-catcodes.luatex.tlg
+72. ascii-catcodes.xetex.tlg
+73. boldstyle-french.luatex.tlg
+74. boldstyle-french.xetex.tlg
+75. boldstyle-iso.luatex.tlg
+76. boldstyle-iso.xetex.tlg
+77. boldstyle-literal.luatex.tlg
+78. boldstyle-literal.xetex.tlg
+79. boldstyle-tex.luatex.tlg
+80. boldstyle-tex.xetex.tlg
+81. boldstyle-upright.luatex.tlg
+82. boldstyle-upright.xetex.tlg
+83. cramped-style.luatex.tlg
+84. cramped-style.xetex.tlg
+85. fontname-log.luatex.tlg
+86. fontname-log.xetex.tlg
+87. hyphen.luatex.tlg
+88. hyphen.xetex.tlg
+89. input-fullwidth.luatex.tlg
+90. input-fullwidth.xetex.tlg
+91. lmdefault-mathrm-it-bf.luatex.tlg
+92. lmdefault-mathrm-it-bf.xetex.tlg
+93. mathit-symit-var.luatex.tlg
+94. mathit-symit-var.xetex.tlg
+95. mathit-symit.luatex.tlg
+96. mathit-symit.xetex.tlg
+97. mathoperator-mathbf.luatex.tlg
+98. mathoperator-mathbf.xetex.tlg
+99. mathrm-mathcal-nest.luatex.tlg
+100. mathrm-mathcal-nest.xetex.tlg
+101. mathrm-nobraces.luatex.tlg
+102. mathrm-nobraces.xetex.tlg
+103. mathsizes.luatex.tlg
+104. mathsizes.xetex.tlg
+105. mathstyle-french.luatex.tlg
+106. mathstyle-french.xetex.tlg
+107. mathstyle-iso.luatex.tlg
+108. mathstyle-iso.xetex.tlg
+109. mathstyle-literal.luatex.tlg
+110. mathstyle-literal.xetex.tlg
+111. mathstyle-tex.luatex.tlg
+112. mathstyle-tex.xetex.tlg
+113. mathstyle-upright.luatex.tlg
+114. mathstyle-upright.xetex.tlg
+115. nabla.luatex.tlg
+116. nabla.xetex.tlg
+117. nesting.luatex.tlg
+118. nesting.xetex.tlg
+119. not.luatex.tlg
+120. not.xetex.tlg
+121. operatorname.luatex.tlg
+122. operatorname.xetex.tlg
+123. partial.luatex.tlg
+124. partial.xetex.tlg
+125. radical-cuberoot-output.luatex.tlg
+126. radical-cuberoot-output.xetex.tlg
+127. range-char-cmd.luatex.tlg
+128. range-char-cmd.xetex.tlg
+129. range-class.luatex.tlg
+130. range-class.xetex.tlg
+131. range-nabla-partial.luatex.tlg
+132. range-nabla-partial.xetex.tlg
+133. range-up-num.luatex.tlg
+134. range-up-num.xetex.tlg
+135. setmathfontface.luatex.tlg
+136. setmathfontface.xetex.tlg
+137. setmathsf.luatex.tlg
+138. setmathsf.xetex.tlg
+139. sqrt-amsmath-output.luatex.tlg
+140. sqrt-amsmath-output.xetex.tlg
+141. style-Bbbit.luatex.tlg
+142. style-Bbbit.xetex.tlg
+143. url.luatex.tlg
+144. url.xetex.tlg
## TDS manifest
@@ -194,20 +301,21 @@ All files included in the `unicode-math/doc` directory.
1. CHANGES.md
2. MANIFEST.md
3. README.md
- 4. um-doc-legacyfontdimen.tex
- 5. um-doc-main.tex
- 6. um-doc-mathfontdimen.tex
- 7. um-doc-nfsssummary.tex
- 8. um-doc-stixextract.tex
- 9. um-doc-style.tex
-10. unicode-math-code.ltx
-11. unicode-math-code.pdf
-12. unicode-math.ltx
-13. unicode-math.pdf
-14. unimath-example.ltx
-15. unimath-example.pdf
-16. unimath-symbols.ltx
-17. unimath-symbols.pdf
+ 4. RELEASE_CHECKLIST.md
+ 5. um-doc-legacyfontdimen.tex
+ 6. um-doc-main.tex
+ 7. um-doc-mathfontdimen.tex
+ 8. um-doc-nfsssummary.tex
+ 9. um-doc-stixextract.tex
+10. um-doc-style.tex
+11. unicode-math-code.ltx
+12. unicode-math-code.pdf
+13. unicode-math.ltx
+14. unicode-math.pdf
+15. unimath-example.ltx
+16. unimath-example.pdf
+17. unimath-symbols.ltx
+18. unimath-symbols.pdf
## CTAN manifest
@@ -219,40 +327,41 @@ The following group lists the files included in the CTAN package.
1. CHANGES.md
2. MANIFEST.md
3. README.md
- 4. um-code-alphabets.dtx
- 5. um-code-amsmath.dtx
- 6. um-code-api.dtx
- 7. um-code-compat.dtx
- 8. um-code-epilogue.dtx
- 9. um-code-fontopt.dtx
-10. um-code-fontparam.dtx
-11. um-code-main.dtx
-12. um-code-mathmap.dtx
-13. um-code-mathtext.dtx
-14. um-code-msg.dtx
-15. um-code-opening.dtx
-16. um-code-pkgopt.dtx
-17. um-code-primes.dtx
-18. um-code-setchar.dtx
-19. um-code-sscript.dtx
-20. um-code-sym-commands.dtx
-21. um-code-ui.dtx
-22. um-code-usv.dtx
-23. um-code-variables.dtx
-24. um-doc-legacyfontdimen.tex
-25. um-doc-main.tex
-26. um-doc-mathfontdimen.tex
-27. um-doc-nfsssummary.tex
-28. um-doc-stixextract.tex
-29. um-doc-style.tex
-30. unicode-math-code.ltx
-31. unicode-math-code.pdf
-32. unicode-math-table.tex
-33. unicode-math.dtx
-34. unicode-math.ins
-35. unicode-math.ltx
-36. unicode-math.pdf
-37. unimath-example.ltx
-38. unimath-example.pdf
-39. unimath-symbols.ltx
-40. unimath-symbols.pdf
+ 4. RELEASE_CHECKLIST.md
+ 5. um-code-alphabets.dtx
+ 6. um-code-amsmath.dtx
+ 7. um-code-api.dtx
+ 8. um-code-compat.dtx
+ 9. um-code-epilogue.dtx
+10. um-code-fontopt.dtx
+11. um-code-fontparam.dtx
+12. um-code-main.dtx
+13. um-code-mathmap.dtx
+14. um-code-mathtext.dtx
+15. um-code-msg.dtx
+16. um-code-opening.dtx
+17. um-code-pkgopt.dtx
+18. um-code-primes.dtx
+19. um-code-setchar.dtx
+20. um-code-sscript.dtx
+21. um-code-sym-commands.dtx
+22. um-code-ui.dtx
+23. um-code-usv.dtx
+24. um-code-variables.dtx
+25. um-doc-legacyfontdimen.tex
+26. um-doc-main.tex
+27. um-doc-mathfontdimen.tex
+28. um-doc-nfsssummary.tex
+29. um-doc-stixextract.tex
+30. um-doc-style.tex
+31. unicode-math-code.ltx
+32. unicode-math-code.pdf
+33. unicode-math-table.tex
+34. unicode-math.dtx
+35. unicode-math.ins
+36. unicode-math.ltx
+37. unicode-math.pdf
+38. unimath-example.ltx
+39. unimath-example.pdf
+40. unimath-symbols.ltx
+41. unimath-symbols.pdf
diff --git a/macros/unicodetex/latex/unicode-math/README.md b/macros/unicodetex/latex/unicode-math/README.md
index 12e0d1157a..27b80d6266 100644
--- a/macros/unicodetex/latex/unicode-math/README.md
+++ b/macros/unicodetex/latex/unicode-math/README.md
@@ -26,7 +26,7 @@ Unicode maths is currently supported by the following freely available fonts:
- [STIX][STIX] (STIpub), and
- [XITS Math][XM] (Khaled Hosny),
- [Libertinus Math][LIB] (Philipp H. Poll and Khaled Hosny).
- - [Fire Math][FIRA] (Xiangdong Zeng).
+ - [Fira Math][FIRA] (Xiangdong Zeng).
These fonts are available under open source licences
(the [GUST Font License][GFL] and [Open Font Licence][OFL]).
diff --git a/macros/unicodetex/latex/unicode-math/um-code-alphabets.dtx b/macros/unicodetex/latex/unicode-math/um-code-alphabets.dtx
index fd6dd322c8..7f5e54fb31 100644
--- a/macros/unicodetex/latex/unicode-math/um-code-alphabets.dtx
+++ b/macros/unicodetex/latex/unicode-math/um-code-alphabets.dtx
@@ -228,7 +228,7 @@
}
% \end{macrocode}
%
-% \subsection{Script and caligraphic: scr and cal}
+% \subsection{Script and calligraphic: scr and cal}
%
% \begin{macrocode}
\@@_new_alphabet_config:nnn {scr} {Latin}
@@ -267,6 +267,13 @@
\@@_set_mathalphabet_pos:nnnn {cal} {M} {up,it} {#1}
\@@_set_mathalphabet_pos:nnnn {cal} {R} {up,it} {#1}
}
+\@@_new_alphabet_config:nnn {cal} {latin}
+ {
+ \@@_set_mathalphabet_latin:nnn {cal} {up,it} {#1}
+ \@@_set_mathalphabet_pos:nnnn {cal} {e} {up,it} {#1}
+ \@@_set_mathalphabet_pos:nnnn {cal} {g} {up,it} {#1}
+ \@@_set_mathalphabet_pos:nnnn {cal} {o} {up,it} {#1}
+ }
% \end{macrocode}
%
% \subsection{Fractur or fraktur or blackletter: frak}
@@ -668,6 +675,10 @@
{
\@@_set_mathalphabet_Latin:nnn {bfcal} {up,it}{#1}
}
+\@@_new_alphabet_config:nnn {bfcal} {latin}
+ {
+ \@@_set_mathalphabet_latin:nnn {bfcal} {up,it}{#1}
+ }
% \end{macrocode}
%
% \subsection{Bold upright sans serif: bfsfup}
diff --git a/macros/unicodetex/latex/unicode-math/um-code-epilogue.dtx b/macros/unicodetex/latex/unicode-math/um-code-epilogue.dtx
index 9c10ee0ddf..ee339b4a14 100644
--- a/macros/unicodetex/latex/unicode-math/um-code-epilogue.dtx
+++ b/macros/unicodetex/latex/unicode-math/um-code-epilogue.dtx
@@ -41,61 +41,6 @@
%
%
%
-% \subsection{Unicode radicals}
-%
-% Make sure \cs{Uroot} is defined in the case where the \LaTeX{}
-% kernel doesn't make it available with its native name.
-%
-% \begin{macro}{\@@_redefine_radical:}
-% \begin{macrocode}
-\AtBeginDocument{ \@ifpackageloaded { amsmath } { } { \@@_redefine_radical: } }
-% \end{macrocode}
-%
-% \begin{macro}{\r@@t}
-% \darg{A mathstyle (for \cmd\mathpalette)}
-% \darg{Leading superscript for the sqrt sign}
-% A re-implementation of \LaTeX's hard-coded n-root sign using the appropriate \cmd\fontdimen s.
-% \begin{macrocode}
-%<*XE>
-\cs_new:Nn \@@_redefine_radical:
- {
- \cs_set_nopar:Npn \r@@@@t ##1 ##2
- {
- \hbox_set:Nn \l_tmpa_box
- {
- \c_math_toggle_token \m@th
- ##1 \sqrtsign { ##2 }
- \c_math_toggle_token
- }
- \@@_mathstyle_scale:NnnN ##1 { \kern } { \fontdimen 63 \g_@@_sqrt_font_cmd_tl } \g_@@_sqrt_font_cmd_tl
- \box_move_up:nn
- {
- (\box_ht:N \l_tmpa_box - \box_dp:N \l_tmpa_box) * \number \fontdimen 65 \g_@@_sqrt_font_cmd_tl / 100
- }
- { \box_use:N \rootbox }
- \@@_mathstyle_scale:NnnN ##1 { \kern } { \fontdimen 64 \g_@@_sqrt_font_cmd_tl } \g_@@_sqrt_font_cmd_tl
- \box_use_drop:N \l_tmpa_box
- }
- }
-%</XE>
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\root}
-% Redefine this macro for \LuaTeX, which provides us a nice primitive to use.
-% \begin{macrocode}
-%<*LU>
-\cs_new:Nn \@@_redefine_radical:
- {
- \cs_set:Npn \root ##1 \of ##2
- {
- \Uroot \c_@@_radical_sqrt_tl { ##1 } { ##2 }
- }
- }
-%</LU>
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
%
%
% \subsubsection{Active fractions}
@@ -197,21 +142,10 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\colon}
-% Define \cs{colon} as a mathpunct `|:|'.
-% This is wrong: it should be \unichar{003A} {colon} instead!
-% We hope no-one will notice.
+% \begin{macro}{\smallsetminus}
% \begin{macrocode}
-\@ifpackageloaded{amsmath}
- {
- % define their own colon, perhaps I should just steal it. (It does look much better.)
- }
- {
- \cs_set_protected:Npn \colon
- {
- \bool_if:NTF \g_@@_literal_colon_bool {:} { \mathpunct{:} }
- }
- }
+\cs_set_protected:Npn \smallsetminus { \mathbin{ \mathpalette \@@_smallsetminus: \relax} }
+\cs_set:Npn \__um_smallsetminus: #1 { \rotatebox{135}{ \smash{ \raisebox{-\height}{$#1\minus$} } }}
% \end{macrocode}
% \end{macro}
%
@@ -219,8 +153,8 @@
% \begin{macro}{\Digamma}
% I might end up just changing these in the table.
% \begin{macrocode}
-\protected\def\digamma{\updigamma}
-\protected\def\Digamma{\upDigamma}
+\cs_set_protected:Npn \digamma {\updigamma}
+\cs_set_protected:Npn \Digamma {\upDigamma}
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -383,12 +317,6 @@
\@@_undeclare_symbol:N \bracevert
% \end{macrocode}
%
-% \section{A secret hook}
-% This will be executed after most if not all of the standard unicode-math setup.
-% \begin{macrocode}
-\AtBeginDocument{\g_@@_secret_hook_tl}
-% \end{macrocode}
-%
% \begin{macrocode}
%</package>
% \end{macrocode}
diff --git a/macros/unicodetex/latex/unicode-math/um-code-fontopt.dtx b/macros/unicodetex/latex/unicode-math/um-code-fontopt.dtx
index acd1117e34..366e4e180a 100644
--- a/macros/unicodetex/latex/unicode-math/um-code-fontopt.dtx
+++ b/macros/unicodetex/latex/unicode-math/um-code-fontopt.dtx
@@ -34,7 +34,7 @@
% \seclabel{rangeproc}
%
% Locally redefined all math symbol commands to their slot number prefixed by a quark.
-% Similary for the math classes.
+% Similarly for the math classes.
% \begin{macrocode}
\keys_define:nn {unicode-math}
{
diff --git a/macros/unicodetex/latex/unicode-math/um-code-main.dtx b/macros/unicodetex/latex/unicode-math/um-code-main.dtx
index ff132044e0..3687b9d5f2 100644
--- a/macros/unicodetex/latex/unicode-math/um-code-main.dtx
+++ b/macros/unicodetex/latex/unicode-math/um-code-main.dtx
@@ -153,7 +153,7 @@
%<LU> Renderer = Basic,
BoldItalicFont = {}, ItalicFont = {}, SmallCapsFont = {},
Script = Math,
-%<LU> FontAdjustment = { \@@_luatex_copy_fontdimens: },
+%<LU> RawFeature = {mathfontdimen=xetex},
\l_@@_unknown_keys_clist
}
@@ -199,7 +199,7 @@
\l_@@_sscript_features_tl
}
} ,
-%<LU> FontAdjustment = { \@@_luatex_copy_fontdimens: },
+%<LU> RawFeature = {mathfontdimen=xetex},
\l_@@_unknown_keys_clist
}
@@ -225,38 +225,6 @@
\tl_gset:Nn \g_@@_prime_font_cmd_tl { \l_@@_font }
% \end{macrocode}
%
-% \begin{macro}{\@@_luatex_copy_fontdimens:}
-% This performs a once-off copy of the LuaTeX math params into XeTeX-like fontdimens.
-% While the list is somewhat comprehensive, these are really only for backwards compatibility
-% and to allow a little shared code. They shouldn't be relied upon, since LuaTeX users
-% might change the math params, which wouldn't be reflected in the fontdimens.
-% \begin{macrocode}
-%<*LU>
-\@@_cs_new:Nn \@@_luatex_copy_fontdimens:
- {
- \@@_fontdimen_from_param:nn {10} {ScriptPercentScaleDown}
- \@@_fontdimen_from_param:nn {11} {ScriptScriptPercentScaleDown}
- \@@_fontdimen_from_param:nn {15} {AxisHeight}
- \@@_fontdimen_from_param:nn {18} {SubscriptShiftDown}
- \@@_fontdimen_from_param:nn {20} {SubscriptBaselineDropMin}
- \@@_fontdimen_from_param:nn {21} {SuperscriptShiftUp}
- \@@_fontdimen_from_param:nn {22} {SuperscriptShiftUpCramped}
- \@@_fontdimen_from_param:nn {24} {SuperscriptBaselineDropMax}
- \@@_fontdimen_from_param:nn {28} {UpperLimitGapMin}
- \@@_fontdimen_from_param:nn {29} {UpperLimitBaselineRiseMin}
- \@@_fontdimen_from_param:nn {30} {LowerLimitGapMin}
- \@@_fontdimen_from_param:nn {31} {LowerLimitBaselineDropMin}
- \@@_fontdimen_from_param:nn {32} {StackTopShiftUp}
- \@@_fontdimen_from_param:nn {42} {FractionNumeratorShiftUp}
- \@@_fontdimen_from_param:nn {43} {FractionNumeratorDisplayStyleShiftUp}
- \@@_fontdimen_from_param:nn {44} {FractionDenominatorShiftDown}
- \@@_fontdimen_from_param:nn {45} {FractionDenominatorDisplayStyleShiftDown}
- \@@_fontdimen_from_param:nn {48} {FractionRuleThickness}
- }
-%</LU>
-% \end{macrocode}
-% \end{macro}
-%
% \begin{macro}{\@@_setup_math_fam:}
% \begin{macrocode}
\@@_cs_new:Nn \@@_setup_math_fam:
@@ -290,6 +258,8 @@
\fontspec_set_family:Nxn \l_@@_fam_two_tl
{
\l_@@_font_keyval_tl,
+%<LU> RawFeature = {mathfontdimen=tex2},
+%<*XE>
ScaleAgain = 1.0001,
FontAdjustment =
{
@@ -309,6 +279,7 @@
\@@_zero_fontdimen:n {20} % delim1 = FractionDelimiterDisplaySize
\@@_zero_fontdimen:n {21} % delim2 = FractionDelimiterSize
}
+%</XE>
} {\l_@@_fontname_tl}
\SetSymbolFont{symbols}{\l_@@_mversion_tl}
@@ -331,6 +302,8 @@
\fontspec_set_family:Nxn \l_@@_fam_three_tl
{
\l_@@_font_keyval_tl,
+%<LU> RawFeature = {mathfontdimen=tex3},
+%<*XE>
ScaleAgain = 0.9999,
FontAdjustment = {
\@@_copy_fontdimen:nnN { 8} {48} \g_@@_main_font_cmd_tl
@@ -340,6 +313,7 @@
\@@_copy_fontdimen:nnN {12} {31} \g_@@_main_font_cmd_tl
\@@_zero_fontdimen:n {13}
}
+%</XE>
} {\l_@@_fontname_tl}
\SetSymbolFont{largesymbols}{\l_@@_mversion_tl}
diff --git a/macros/unicodetex/latex/unicode-math/um-code-mathtext.dtx b/macros/unicodetex/latex/unicode-math/um-code-mathtext.dtx
index d002483378..45f3492068 100644
--- a/macros/unicodetex/latex/unicode-math/um-code-mathtext.dtx
+++ b/macros/unicodetex/latex/unicode-math/um-code-mathtext.dtx
@@ -38,7 +38,7 @@
\SetMathAlphabet #1 {\l_@@_mversion_tl} {\g_fontspec_encoding_tl} {\l_@@_tmpa_tl} {\mddefault} {\shapedefault}
% integrate with fontspec's \setmathrm etc:
- \tl_case:Nn #1
+ \token_case_meaning:Nn #1
{
\mathrm { \cs_gset_eq:NN \g__fontspec_mathrm_tl \l_@@_tmpa_tl }
\mathsf { \cs_gset_eq:NN \g__fontspec_mathsf_tl \l_@@_tmpa_tl }
@@ -95,7 +95,7 @@
% Reimplement that here to avoid \cs{bgroup}/\cs{egroup}.
% \begin{macro}{\operator@font}
% \begin{macrocode}
-\cs_set:Npn \operator@font
+\cs_set_protected:Npn \operator@font
{
\@@_switch_to:n {literal}
\@@_fontswitch:n { \g_@@_operator_mathfont_tl }
diff --git a/macros/unicodetex/latex/unicode-math/um-code-msg.dtx b/macros/unicodetex/latex/unicode-math/um-code-msg.dtx
index c93809cf4f..a915ddbf2b 100644
--- a/macros/unicodetex/latex/unicode-math/um-code-msg.dtx
+++ b/macros/unicodetex/latex/unicode-math/um-code-msg.dtx
@@ -13,11 +13,6 @@
% \end{macrocode}
%
% \begin{macrocode}
-\@@_msg_new:nn {no-tfrac}
-{
- Small fraction command \protect\tfrac\ not defined.\\
- Load amsmath or define it manually before loading unicode-math.
-}
\@@_msg_new:nn {default-math-font}
{
Defining the default maths font as '\l_@@_fontname_tl'.
diff --git a/macros/unicodetex/latex/unicode-math/um-code-opening.dtx b/macros/unicodetex/latex/unicode-math/um-code-opening.dtx
index 16e3213998..6d391f2f84 100644
--- a/macros/unicodetex/latex/unicode-math/um-code-opening.dtx
+++ b/macros/unicodetex/latex/unicode-math/um-code-opening.dtx
@@ -31,10 +31,6 @@
\@ifpackageloaded {#1} {#2} {}
}
}
-\RequirePackage{xparse,l3keys2e}
-\RequirePackage{fontspec}
-\RequirePackage{fix-cm}
-%<LU>\RequirePackage{lualatex-math}
% \end{macrocode}
%
% \subsection{\pkg{expl3} variants}
@@ -228,23 +224,6 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\@@_fontdimen_from_param:Nnn}
-% This function extracts the math font dimen \verb|#3| from the font \verb|#1|
-% and sets fontdimen \verb|#2| of the same font to that value.
-%
-% Use \XeTeX's fontdimen approach because it's tidy. We don't need bells and whistles here.
-% \begin{macrocode}
-%<*LU>
-\cs_new_protected:Nn \@@_fontdimen_from_param:nn
- {
- \fontdimen #1 \font =
- \lua_now:n { fontspec.mathfontdimen(font.current(),"#2") }
- \scan_stop:
- }
-%</LU>
-% \end{macrocode}
-% \end{macro}
-%
%^^A \begin{function}[EXP, added = 2019-01-19]{\@@_int_if_zero_p:n, \@@_int_if_zero:nTF}
%^^A \begin{syntax}
%^^A \cs{int_if_zero_p:n} \Arg{intexpr}
diff --git a/macros/unicodetex/latex/unicode-math/um-code-pkgopt.dtx b/macros/unicodetex/latex/unicode-math/um-code-pkgopt.dtx
index 68d265674a..acfddc02e7 100644
--- a/macros/unicodetex/latex/unicode-math/um-code-pkgopt.dtx
+++ b/macros/unicodetex/latex/unicode-math/um-code-pkgopt.dtx
@@ -249,19 +249,13 @@
}
% \end{macrocode}
%
-%
% \paragraph{Active fraction style}
% \begin{macrocode}
\@@_keys_choices:nn {active-frac}
{
{small}
{
- \cs_if_exist:NTF \tfrac
- { \bool_set_true:N \l_@@_smallfrac_bool }
- {
- \@@_warning:n {no-tfrac}
- \bool_set_false:N \l_@@_smallfrac_bool
- }
+ \bool_set_true:N \l_@@_smallfrac_bool
\use:c {@@_setup_active_frac:}
}
diff --git a/macros/unicodetex/latex/unicode-math/um-code-primes.dtx b/macros/unicodetex/latex/unicode-math/um-code-primes.dtx
index ad3f3be642..17f7f50bc1 100644
--- a/macros/unicodetex/latex/unicode-math/um-code-primes.dtx
+++ b/macros/unicodetex/latex/unicode-math/um-code-primes.dtx
@@ -358,6 +358,8 @@
\cs_set_eq:NN ^^^^2037 \@@_scan_sup_backtrprime:
}
\group_end:
+
+\cs_set_eq:NN \active@math@prime \@@_scan_sup_prime:
% \end{macrocode}
%
%
diff --git a/macros/unicodetex/latex/unicode-math/um-code-setchar.dtx b/macros/unicodetex/latex/unicode-math/um-code-setchar.dtx
index 8d2ba46e2a..04829f3d37 100644
--- a/macros/unicodetex/latex/unicode-math/um-code-setchar.dtx
+++ b/macros/unicodetex/latex/unicode-math/um-code-setchar.dtx
@@ -87,7 +87,7 @@
}
{ \char_set_catcode_other:n {#4} }
- \tl_case:Nn #3
+ \token_case_meaning:Nn #3
{
\mathord { \@@_set_mathcode:nnn {#4} {#3} {#1} }
\mathalpha { \@@_set_mathcode:nnn {#4} {#3} {#1} }
diff --git a/macros/unicodetex/latex/unicode-math/um-code-sym-commands.dtx b/macros/unicodetex/latex/unicode-math/um-code-sym-commands.dtx
index b2450878fe..69203b1054 100644
--- a/macros/unicodetex/latex/unicode-math/um-code-sym-commands.dtx
+++ b/macros/unicodetex/latex/unicode-math/um-code-sym-commands.dtx
@@ -113,8 +113,8 @@
\@@_default_mathalph:nnn {bb } {latin,Latin,num,misc} {bb }
\@@_default_mathalph:nnn {bbit } {misc} {bbit }
\@@_default_mathalph:nnn {scr } {latin,Latin} {scr }
-\@@_default_mathalph:nnn {cal } {Latin} {scr }
-\@@_default_mathalph:nnn {bfcal } {Latin} {bfscr }
+\@@_default_mathalph:nnn {cal } {latin,Latin} {scr }
+\@@_default_mathalph:nnn {bfcal } {latin,Latin} {bfscr }
\@@_default_mathalph:nnn {frak } {latin,Latin} {frak }
\@@_default_mathalph:nnn {tt } {latin,Latin,num} {tt }
\@@_default_mathalph:nnn {sfup } {latin,Latin,num} {sfup }
diff --git a/macros/unicodetex/latex/unicode-math/um-code-usv.dtx b/macros/unicodetex/latex/unicode-math/um-code-usv.dtx
index ce24cc4267..cae4865e88 100644
--- a/macros/unicodetex/latex/unicode-math/um-code-usv.dtx
+++ b/macros/unicodetex/latex/unicode-math/um-code-usv.dtx
@@ -46,6 +46,7 @@
\usv_set:nnn {scr} {Latin} {"1D49C}
\usv_set:nnn {cal} {Latin} {"1D49C}
\usv_set:nnn {scr} {latin} {"1D4B6}
+\usv_set:nnn {cal} {latin} {"1D4B6}
\usv_set:nnn {frak} {Latin} {"1D504}
\usv_set:nnn {frak} {latin} {"1D51E}
\usv_set:nnn {sf} {num} {"1D7E2}
@@ -79,6 +80,7 @@
\usv_set:nnn {bfscr} {Latin} {"1D4D0}
\usv_set:nnn {bfcal} {Latin} {"1D4D0}
\usv_set:nnn {bfscr} {latin} {"1D4EA}
+\usv_set:nnn {bfcal} {latin} {"1D4EA}
\usv_set:nnn {bfsf} {num} {"1D7EC}
\usv_set:nnn {bfsfup} {num} {"1D7EC}
\usv_set:nnn {bfsfit} {num} {"1D7EC}
@@ -246,6 +248,7 @@
\usv_set:nnn {bb} {h} {"1D559}
\usv_set:nnn {tt} {h} {"1D691}
\usv_set:nnn {scr} {h} {"1D4BD}
+\usv_set:nnn {cal} {h} {"1D4BD}
\usv_set:nnn {frak} {h} {"1D525}
\usv_set:nnn {bfup} {h} {"1D421}
\usv_set:nnn {bfit} {h} {"1D489}
@@ -253,6 +256,7 @@
\usv_set:nnn {sfit} {h} {"1D629}
\usv_set:nnn {bffrak} {h} {"1D58D}
\usv_set:nnn {bfscr} {h} {"1D4F1}
+\usv_set:nnn {bfcal} {h} {"1D4F1}
\usv_set:nnn {bfsfup} {h} {"1D5F5}
\usv_set:nnn {bfsfit} {h} {"1D65D}
% \end{macrocode}
@@ -309,7 +313,7 @@
\usv_set:nnn {scr} {g} {"210A}
\usv_set:nnn {scr} {o} {"2134}
% \end{macrocode}
-% Caligraphic:
+% Calligraphic:
% \begin{macrocode}
\usv_set:nnn {cal} {B} {"212C}
\usv_set:nnn {cal} {E} {"2130}
@@ -319,6 +323,9 @@
\usv_set:nnn {cal} {L} {"2112}
\usv_set:nnn {cal} {M} {"2133}
\usv_set:nnn {cal} {R} {"211B}
+\usv_set:nnn {cal} {e} {"212F}
+\usv_set:nnn {cal} {g} {"210A}
+\usv_set:nnn {cal} {o} {"2134}
% \end{macrocode}
% Fractur:
% \begin{macrocode}
diff --git a/macros/unicodetex/latex/unicode-math/um-code-variables.dtx b/macros/unicodetex/latex/unicode-math/um-code-variables.dtx
index 840b1ebec5..275ed9a124 100644
--- a/macros/unicodetex/latex/unicode-math/um-code-variables.dtx
+++ b/macros/unicodetex/latex/unicode-math/um-code-variables.dtx
@@ -70,10 +70,6 @@
%
% \subsection{tl}
%
-% \begin{macrocode}
-\tl_if_exist:NF \g_@@_secret_hook_tl { \tl_new:N \g_@@_secret_hook_tl }
-% \end{macrocode}
-%
% For displaying in warning messages, etc.:
% \begin{macrocode}
\tl_const:Nn \c_@@_math_alphabet_name_latin_tl {Latin,~lowercase}
diff --git a/macros/unicodetex/latex/unicode-math/um-doc-main.tex b/macros/unicodetex/latex/unicode-math/um-doc-main.tex
index 5c0bc22ed1..0b19e43079 100644
--- a/macros/unicodetex/latex/unicode-math/um-doc-main.tex
+++ b/macros/unicodetex/latex/unicode-math/um-doc-main.tex
@@ -23,7 +23,7 @@ containing a complete listing of mathematical symbols defined by
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
+(Of these additional alphabets there is a separate calligraphic 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.
@@ -65,9 +65,10 @@ 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)
+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.
+It requires \pkg{amsmath}, which it will automatically load if the user hasn't already done so.
+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}
\usepackage{unicode-math}
@@ -78,9 +79,6 @@ Once the package is loaded, traditional TFM-based maths fonts are no longer supp
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 will be loaded automatically.
-Note that \pkg{amsmath} should be loaded before \pkg{unicode-math} to avoid conflicts, and
-it will be loaded automatically if not requested earlier in the preamble.
-
\subsection{New commands}
\LaTeX, since the first version of \LaTeXe, changed the math group
@@ -685,14 +683,14 @@ Double-struck & Upright & Normal & \cs{symbb} & \Y & & \Y \\
Script & Upright & Normal & \cs{symscr} & \Y & & \\
& & Bold & \cs{symbfscr} & \Y & & \\
Fraktur & Upright & Normal & \cs{symfrak} & \Y & & \\
- & & Bold & \cs{symbffrac} & \Y & & \\
+ & & Bold & \cs{symbffrak} & \Y & & \\
\bottomrule
\end{tabular}
\end{table}
\subsubsection{Scope of the functionality of the \cs{sym..} commands}
-The \cs{sym..} commands are designed to affect only the follow sets of input letters: numerals ($0$--$9$), Latin ($a$--$z$, $A$--$Z$), Greek ($\alpha$--$\omega$, $\Alpha$--$\Omega$,), and the \cs{partial} and \cs{nabla} symbols ($\partial$, $\nabla$).
+The \cs{sym..} commands are designed to affect only the following sets of input letters: numerals ($0$--$9$), Latin ($a$--$z$, $A$--$Z$), Greek ($\alpha$--$\omega$, $\Alpha$--$\Omega$,), and the \cs{partial} and \cs{nabla} symbols ($\partial$, $\nabla$).
These are the only symbols for which Unicode defines separate codepoints with varying mathematical style.
There is currently no scope for including other symbols in the \cs{sym..} commands, such as writing |\symbf{\int}| for a bold integral symbol.
@@ -715,27 +713,29 @@ 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}
+\subsubsection{Calligraphic vs.\ Script variants}
The Unicode maths encoding contains a style for `Script' letters,
-and while by default \cs{mathcal} and \cs{mathscr}
+and while by default \cs{symcal} and \cs{symscr}
are synonyms, there are some situations when a
-separate `Caligraphic' style is needed as well.
-
-If a font contains alternate glyphs for a separate caligraphic style,
-they can be selected explicitly as shown below.
-This feature is currently only supported by the XITS~Math font, where
-the caligraphic letters are accessed with the same glyph slots as the
-script letters but with the first stylistic set feature (|ss01|) applied.
-An example is shown below.
+separate `Calligraphic' style is needed as well.
+
+If a font contains alternate glyphs for a separate calligraphic style,
+they can be selected explicitly. For example the STIX~Two~Math font
+uses the the first stylistic set feature (|ss01|) to map the script
+letters to the calligraphic letters.
+\begin{Verbatim}
+\setmathfont{STIXTwoMath-Regular.otf}
+\setmathfont{STIXTwoMath-Regular.otf}[range={cal, bfcal}, StylisticSet=1]
+\end{Verbatim}
+With the above we can now write
\begin{quote}
-\setmathfont{XITSMath-Regular.otf}
-\setmathfont{XITSMath-Regular.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}$
+\setmathfont{STIXTwoMath-Regular.otf}
+\setmathfont{STIXTwoMath-Regular.otf}[range={cal, bfcal}, StylisticSet=1]
+|$\symscr{ABCDabcd}$| to get $\symscr{ABCDabcd}$ \\
+|$\symcal{ABCDabcd}$| to get $\symcal{ABCDabcd}$
\end{quote}
-
\subsection{Miscellanea}
\subsubsection{Nabla}
@@ -915,9 +915,6 @@ 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.
@@ -925,33 +922,35 @@ The package option |colon=literal| forces \ascii\ input `|:|' to be printed as \
\subsubsection{Slashes and backslashes}
\seclabel{slash-delimiter}
-There are several slash-like symbols defined in Unicode. The complete list is shown in \tabref{slashes}.
+There are several slash-like symbols defined in Unicode.
+The complete list is shown in \tabref{slashes}. Unfortunately, font support for these characters/glyphs is rather inconsistent.
+Note that \cs{slash} internally uses the \cs{mathslash} mathematical character.
+The wrapper \cs{slash} is defined to work correctly in both text and maths mode, as well as in contexts where the slash is acting like a delimiter, such as \verb|\left< a \middle\slash b \right>|.
\begin{table}\centering
-\caption{Slashes and backslashes.}
+\topcaption{Slashes and backslashes.}
\tablabel{slashes}
-\begin{tabular}{@{}cl@{}cl@{}}
+\begin{tabular}{@{}cl@{}cll@{}}
\toprule
-Slot & Name & Glyph & Command \\
+Slot & Name & Glyph & Class & 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} \\
+\unichar{002F} & \textsc{solidus} & \umfont \char"002F & \cs{mathord} & \cs{slash} \\
+\unichar{27CB} & \textsc{rising diagonal} & \umfont \char"27CB & \cs{mathord} & \cs{diagup} \\
+\unichar{2044} & \textsc{fraction slash} & \umfont \char"2044 & \cs{mathbin} & \cs{fracslash} \\
+\unichar{2215} & \textsc{division slash} & \umfont \char"2215 & \cs{mathbin} & \cs{divslash} \\
+\unichar{29F8} & \textsc{big solidus} & \umfont \char"29F8 & \cs{mathop} & \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} \\
+\unichar{005C} & \textsc{reverse solidus} & \umfont \char"005C & \cs{mathord} & \cs{backslash} \\
+\unichar{27CD} & \textsc{falling diagonal} & \umfont \char"27CD & \cs{mathord} & \cs{diagdown} \\
+\unichar{2216} & \textsc{set minus} & \umfont \char"2216 & \cs{mathbin} & \cs{setminus} \\
+ & \textsc{small set minus} & & \cs{mathbin} & \cs{smallsetminus} \\
+\unichar{29F5} & \textsc{reverse solidus operator}& \umfont \char"29F5 & \cs{mathbin} & \cs{reversesolidus} \\
+\unichar{29F9} & \textsc{big reverse solidus} & \umfont \char"29F9 & \cs{mathop} & \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}
+\paragraph{Slashes}
Of \unichar{2044} {fraction slash}, TR25 says that it is:
\begin{quote}
@@ -965,27 +964,33 @@ without a built-up fraction; $\pi\approx22/7$, for example.
\unichar{29F8} {big solidus} is a `big operator' (like $\sum$).
-\paragraph{Backslash}
+\cs{diagup} and \cs{diagdown} are defined with math class \cs{mathord} for consistency with \pkg{amssymb}.
+This definition is inconsistent with MathML, which would use \cs{mathrel} instead.
+
+\paragraph{Backslashes}
+
+Of the five backslash characters shown in \tabref{slashes}, only \cs{backslash} and \cs{setminus} are defined consistently across all OpenType math fonts.
+(The two glyphs are typically identical, or close to it, with the main difference between them the spacing defined by their math class.)
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.
+double cosets: $A\backslash B$. 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.
+The \unichar{2216} {set minus} character \cs{setminus} defines the relative complement or set difference between two sets: $A\setminus B$.
Presumably, \unichar{29F5} {reverse solidus operator} is intended to
-be used in a similar way, but it could also (perhaps?) be used to
+be used in a similar way, but it could also 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}
+\paragraph{Slashes as `delimiters'}
+
+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).
-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
@@ -994,7 +999,7 @@ In Cambria Math, the only slash that grows (say when writing
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
+Of the slashes, the following commands are the only ones defined to be able to be used as stretchable delimiters after
\cs{left}, \cs{middle}, and \cs{right}:
\begin{itemize}
\item \cs{fracslash};
@@ -1002,11 +1007,10 @@ Of the above characters, the following are allowed to be used after
\item \cs{backslash} (the only reverse slash).
\end{itemize}
-However, we assume that there is only \emph{one} stretchy slash
+However, for the purpose of implementing this markup, 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.
@@ -1014,8 +1018,24 @@ 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.)
+(This should really be a font option rather than a package option, but this option should only be needed infrequently.)
+
+\paragraph{Set minus characters/glyphs}
+
+Standard \LaTeX\ plus \pkg{amssymb} defines two commands \cs{setminus} and \cs{smallsetminus}.
+This package now defines \cs{setminus} to correspond to the Unicode slot \unichar{2216}.
+Some fonts may provide smaller sized glyphs either through character variants, private use area encoding, or via one of the less-common backslash slots (covered above).
+Since there is currently no consistency in how modern OpenType fonts would access a smaller variant for `set minus', this package simply defines \cs{smallsetminus} to be a constructed glyph, composed of a rotated and shifted minus sign with appropriate \cs{mathbin} spacing.
+
+If variations to this setup are needed, users can redefine the commands to their liking; e.g.:
+\begin{verbatim}
+ \setmathfont{XITSMath-Regular.otf}
+ \AtBeginDocument{
+ \let\smallsetminus\setminus
+ \let\setminus\reversesolidus
+ }
+\end{verbatim}
+
\subsubsection{Behaviour of hyphens in mathematics}
\seclabel{hyphen}
@@ -1077,10 +1097,8 @@ as input characters to abbreviate common fractions.
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
+By default, the \cs{tfrac} command will be used to typeset the fractions.
+The command to use (\cs{tfrac} or \cs{frac}) can be forced with the package
option |active-frac=small| or |active-frac=normalsize|, respectively.
\subsubsection{Circles}
diff --git a/macros/unicodetex/latex/unicode-math/um-doc-style.tex b/macros/unicodetex/latex/unicode-math/um-doc-style.tex
index 729a102ebe..d798a34419 100644
--- a/macros/unicodetex/latex/unicode-math/um-doc-style.tex
+++ b/macros/unicodetex/latex/unicode-math/um-doc-style.tex
@@ -10,8 +10,8 @@
\usepackage[svgnames]{xcolor}
\usepackage[inline]{enumitem}
-\usepackage{amsmath,array,booktabs,calc,enumitem,fancyvrb,graphicx,ifthen,longtable,refstyle,topcapt,url,varioref,underscore}
-\usepackage[slash-delimiter=frac,nabla=literal]{unicode-math}
+\usepackage{refstyle,amsmath,array,booktabs,calc,enumitem,fancyvrb,graphicx,ifthen,longtable,topcapt,url,varioref,underscore}
+\usepackage[slash-delimiter=ascii,nabla=literal]{unicode-math}
\usepackage{metalogo,hologo}
\usepackage[it]{titlesec}
@@ -46,8 +46,8 @@
]
\setmathfont{texgyrepagella-math.otf}
-\setmathfont[version=xits]{XITSMath-Regular.otf}
-\newfontface\umfont{XITSMath-Regular.otf}
+\setmathfont[version=xits]{STIXTwoMath-Regular.otf}
+\newfontface\umfont{STIXTwoMath-Regular.otf}
\expandafter\def\csname ver@thumbpdf.sty\endcsname{}
\usepackage{hypdoc}
diff --git a/macros/unicodetex/latex/unicode-math/unicode-math-code.pdf b/macros/unicodetex/latex/unicode-math/unicode-math-code.pdf
index 9d87097173..61a35cb5fa 100644
--- a/macros/unicodetex/latex/unicode-math/unicode-math-code.pdf
+++ b/macros/unicodetex/latex/unicode-math/unicode-math-code.pdf
Binary files differ
diff --git a/macros/unicodetex/latex/unicode-math/unicode-math-table.tex b/macros/unicodetex/latex/unicode-math/unicode-math-table.tex
index 511b67e8ce..a86e97ddab 100644
--- a/macros/unicodetex/latex/unicode-math/unicode-math-table.tex
+++ b/macros/unicodetex/latex/unicode-math/unicode-math-table.tex
@@ -344,7 +344,7 @@
\UnicodeMathSymbol{"02213}{\mp }{\mathbin}{minus-or-plus sign}%
\UnicodeMathSymbol{"02214}{\dotplus }{\mathbin}{plus sign, dot above}%
\UnicodeMathSymbol{"02215}{\divslash }{\mathbin}{division slash}%
-\UnicodeMathSymbol{"02216}{\smallsetminus }{\mathbin}{small set minus (cf. reverse solidus)}%
+\UnicodeMathSymbol{"02216}{\setminus }{\mathbin}{set minus (cf. reverse solidus)}%
\UnicodeMathSymbol{"02217}{\ast }{\mathbin}{centered asterisk}%
\UnicodeMathSymbol{"02218}{\vysmwhtcircle }{\mathbin}{composite function (small circle)}%
\UnicodeMathSymbol{"02219}{\vysmblkcircle }{\mathbin}{bullet operator}%
@@ -822,7 +822,9 @@
\UnicodeMathSymbol{"027C7}{\veedot }{\mathbin}{or with dot inside}%
\UnicodeMathSymbol{"027C8}{\bsolhsub }{\mathrel}{reverse solidus preceding subset}%
\UnicodeMathSymbol{"027C9}{\suphsol }{\mathrel}{superset preceding solidus}%
+\UnicodeMathSymbol{"027CB}{\diagup }{\mathord}{mathematical rising diagonal}%
\UnicodeMathSymbol{"027CC}{\longdivision }{\mathopen}{long division}%
+\UnicodeMathSymbol{"027CD}{\diagdown }{\mathord}{mathematical falling diagonal}%
\UnicodeMathSymbol{"027D0}{\diamondcdot }{\mathord}{white diamond with centred dot}%
\UnicodeMathSymbol{"027D1}{\wedgedot }{\mathbin}{and with dot}%
\UnicodeMathSymbol{"027D2}{\upin }{\mathrel}{element of opening upwards}%
@@ -1116,7 +1118,7 @@
\UnicodeMathSymbol{"029F2}{\errbarcircle }{\mathord}{error-barred white circle}%
\UnicodeMathSymbol{"029F3}{\errbarblackcircle }{\mathord}{error-barred black circle}%
\UnicodeMathSymbol{"029F4}{\ruledelayed }{\mathrel}{rule-delayed}%
-\UnicodeMathSymbol{"029F5}{\setminus }{\mathbin}{reverse solidus operator}%
+\UnicodeMathSymbol{"029F5}{\reversesolidus }{\mathbin}{reverse solidus}%
\UnicodeMathSymbol{"029F6}{\dsol }{\mathbin}{solidus with overbar}%
\UnicodeMathSymbol{"029F7}{\rsolbar }{\mathbin}{reverse solidus with horizontal stroke}%
\UnicodeMathSymbol{"029F8}{\xsol }{\mathop}{big solidus}%
diff --git a/macros/unicodetex/latex/unicode-math/unicode-math.dtx b/macros/unicodetex/latex/unicode-math/unicode-math.dtx
index 1253cab5d4..d5c7857b28 100644
--- a/macros/unicodetex/latex/unicode-math/unicode-math.dtx
+++ b/macros/unicodetex/latex/unicode-math/unicode-math.dtx
@@ -60,15 +60,15 @@
%<base>\ProvidesExplPackage{unicode-math}
%<package&XE>\ProvidesExplPackage{unicode-math-xetex}
%<package&LU>\ProvidesExplPackage{unicode-math-luatex}
-%<base|package> {2020/01/31} {0.8q} {Unicode maths in XeLaTeX and LuaLaTeX}
+%<base|package> {2023/08/13} {0.8r} {Unicode maths in XeLaTeX and LuaLaTeX}
% \end{macrocode}
%
% Here the version and date are setup for typesetting the documentation.
% \begin{macrocode}
%<*dtx>
\date{
- \def\filedate{2020/01/31}
- \def\fileversion{0.8q}
+ \def\filedate{2023/08/13}
+ \def\fileversion{0.8r}
\filedate \qquad \fileversion
}
%</dtx>
diff --git a/macros/unicodetex/latex/unicode-math/unicode-math.pdf b/macros/unicodetex/latex/unicode-math/unicode-math.pdf
index 1d2cf0948a..68f9cd654a 100644
--- a/macros/unicodetex/latex/unicode-math/unicode-math.pdf
+++ b/macros/unicodetex/latex/unicode-math/unicode-math.pdf
Binary files differ
diff --git a/macros/unicodetex/latex/unicode-math/unimath-example.pdf b/macros/unicodetex/latex/unicode-math/unimath-example.pdf
index a339e72f9d..a1955c0ac6 100644
--- a/macros/unicodetex/latex/unicode-math/unimath-example.pdf
+++ b/macros/unicodetex/latex/unicode-math/unimath-example.pdf
Binary files differ
diff --git a/macros/unicodetex/latex/unicode-math/unimath-symbols.ltx b/macros/unicodetex/latex/unicode-math/unimath-symbols.ltx
index df6ac0e986..b14237287b 100644
--- a/macros/unicodetex/latex/unicode-math/unimath-symbols.ltx
+++ b/macros/unicodetex/latex/unicode-math/unimath-symbols.ltx
@@ -10,7 +10,7 @@
\documentclass[final]{article}
\makeatletter
-\usepackage{ragged2e,setspace,booktabs,catchfile,shortvrb,geometry,metalogo,textcomp,longtable,tabu,hyperref}
+\usepackage{ragged2e,setspace,booktabs,shortvrb,geometry,metalogo,textcomp,longtable,array,hyperref}
\geometry{margin=3cm}
\hypersetup{colorlinks,linkcolor=black}
@@ -52,30 +52,39 @@
\defmathfont{lm}{latinmodern-math.otf}{CC6666}{L}
\defmathfont{xits}{XITSMath-Regular.otf}{6666CC}{X}
-\defmathfont{stix}{STIX2Math.otf}{66CC66}{S}
+\defmathfont{stix}{STIXTwoMath-Regular.otf}{66CC66}{S}
\defmathfont{pagella}{texgyrepagella-math.otf}{AA6666}{P}
\defmathfont{dejavu}{texgyredejavu-math.otf}{AACC66}{D}
\defmathfont{fira}{FiraMath-Regular.otf}{AA66CC}{F}
+\defmathfont{ncm}{NewCMMath-Book.otf}{3366AA}{N}
+\defmathfont{gnh}{GFSNeohellenicMath.otf}{666633}{H}
+\defmathfont{erm}{Erewhon-Math.otf}{66AA66}{E}
+\defmathfont{xc}{XCharter-Math.otf}{6633AA}{C}
+\defmathfont{con}{Concrete-Math.otf}{66AA33}{R}
\def\INPUT{\input{unicode-math-table.tex}}
+\def\pwidth{100pt}
\def\TABLE{%
\par\noindent
-\begin{longtabu}[l]{@{}l *{\Nfonts}{c} lX[l]@{}}
+\setlength\tabcolsep{3pt}%
+\setlength\LTleft{-40pt}%
+\setlength\LTright{-40pt plus 1fill}%
+\begin{longtable}{@{}l *{\Nfonts}{@{\,}c} lp{\pwidth}@{}}
\toprule
- \textsc{usv} & \Llm & \Lxits & \Lstix & \Lpagella & \Ldejavu & \Lfira & Macro & Description \\
+ \textsc{usv} &
+\Llm & \Lxits & \Lstix & \Lpagella & \Ldejavu & \Lfira & \Lncm & \Lgnh & \Lerm & \Lxc &\Lcon
+ & Macro & Description \\
\midrule \endhead
\INPUT\\
\bottomrule
-\end{longtabu}
+\end{longtable}
}
\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]{%
@@ -95,6 +104,11 @@
\SYMB{#2}{pagella}{#1} &
\SYMB{#2}{dejavu}{#1} &
\SYMB{#2}{fira}{#1} &
+ \SYMB{#2}{ncm}{#1} &
+ \SYMB{#2}{gnh}{#1} &
+ \SYMB{#2}{erm}{#1} &
+ \SYMB{#2}{xc}{#1} &
+ \SYMB{#2}{con}{#1} &
\CMD{#2}
\tl_if_in:NnT \PLAIN {#2}
{
@@ -172,6 +186,11 @@ The following fonts are shown: (with approximate symbol counts)
\item[\Lpagella] \mathversion{pagella} $\mathup{TeX\ Gyre\ Pagella\ Math}$ (\ref{count:pagella})
\item[\Ldejavu] \mathversion{dejavu} $\mathup{DejaVu\ Math\ TeX\ Gyre}$ (\ref{count:dejavu})
\item[\Lfira] \mathversion{fira} $\mathup{Fira\ Math}$ (\ref{count:fira})
+\item[\Lncm] \mathversion{ncm} $\mathup{NCM\ Math}$ (\ref{count:ncm})
+\item[\Lgnh] \mathversion{gnh} $\mathup{GFS Neohellenic Math}$ (\ref{count:gnh})
+\item[\Lerm] \mathversion{erm} $\mathup{Erewhon Math}$ (\ref{count:erm})
+\item[\Lxc] \mathversion{xc} $\mathup{XCharter Math}$ (\ref{count:xc})
+\item[\Lcon] \mathversion{con} $\mathup{Concrete Math}$ (\ref{count:con})
\end{itemize}
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)}}.
@@ -287,14 +306,17 @@ The limits behaviour as specified by \textsf{unicode-math} are shown with grey s
% first read in all \mathalpha symbols into a variable:
\ExplSyntaxOn
+\file_get:nnN {unicode-math-table.tex}
+ {\char_set_catcode_space:N \ } \ALPHA
+
\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 \ }
+
+\tl_set:Nx \ALPHA {\ALPHA}
+
% now each time we print an alphabet we remove the slot;
% this ensures we won't miss anything
@@ -318,11 +340,13 @@ The limits behaviour as specified by \textsf{unicode-math} are shown with grey s
\exp_not:n { \UnicodeMathSymbol {##1}{##2}{##3}{##4} }
}
}
- \edef\ALPHA{\ALPHA}
+ \tl_set:Nx \ALPHA {\ALPHA}
}
\ExplSyntaxOff
+\def\pwidth{200pt}
+
\subsection{Normal weight}
\subsubsection{Upright Greek, uppercase}
@@ -445,8 +469,11 @@ The limits behaviour as specified by \textsf{unicode-math} are shown with grey s
\def\UnicodeMathSymbol#1#2#3#4{\PRINTLINE{#1}{#2}{#4}}
\TABLE
+
\FINISH
+\mbox{}
+
\end{document}
\endinput
diff --git a/macros/unicodetex/latex/unicode-math/unimath-symbols.pdf b/macros/unicodetex/latex/unicode-math/unimath-symbols.pdf
index c2b54bc257..a40eb504ec 100644
--- a/macros/unicodetex/latex/unicode-math/unimath-symbols.pdf
+++ b/macros/unicodetex/latex/unicode-math/unimath-symbols.pdf
Binary files differ