texlive[68018] Master/texmf-dist: mathfont (23aug23)

commits+karl at tug.org commits+karl at tug.org
Wed Aug 23 00:45:46 CEST 2023


Revision: 68018
          http://tug.org/svn/texlive?view=revision&revision=68018
Author:   karl
Date:     2023-08-23 00:45:46 +0200 (Wed, 23 Aug 2023)
Log Message:
-----------
mathfont (23aug23)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/mathfont/README.txt
    trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_code.pdf
    trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_doc_patch.tex
    trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_equations.tex
    trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_example_cormorant.pdf
    trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_example_cormorant.tex
    trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_example_kelvinch.pdf
    trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_example_kelvinch.tex
    trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_example_roboto.pdf
    trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_example_roboto.tex
    trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_example_typey.pdf
    trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_example_typey.tex
    trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_heading.tex
    trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_symbol_list.pdf
    trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_symbol_list.tex
    trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_user_guide.pdf
    trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_user_guide.tex
    trunk/Master/texmf-dist/source/latex/mathfont/mathfont_code.dtx
    trunk/Master/texmf-dist/tex/latex/mathfont/mathfont.sty

Modified: trunk/Master/texmf-dist/doc/latex/mathfont/README.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/mathfont/README.txt	2023-08-22 22:45:20 UTC (rev 68017)
+++ trunk/Master/texmf-dist/doc/latex/mathfont/README.txt	2023-08-22 22:45:46 UTC (rev 68018)
@@ -1,7 +1,7 @@
-LaTeX package mathfont version 2.2a installation information,
-released December 2022.
+LaTeX package mathfont version 2.2b installation information,
+released August 2023.
 
-This file is README.txt from version 2.2a of the free and
+This file is README.txt from version 2.2b of the free and
 open-source LaTeX package "mathfont," to be used with the
 XeTeX or LuaTeX engines. The package is designed to adapt
 text fonts for use in math mode, and if you typeset your
@@ -13,10 +13,11 @@
 To install mathfont automatically, update your TeXLive or
 MacTeX distribution or use a package manager such as tlmgr.
 
-To install mathfont manually, you need to generate the
-package file mathfont.sty from mathfont_code.dtx. You can
-do this in two ways:
+To install mathfont manually requires two steps as follows.
 
+Step 1: You need to generate the package file mathfont.sty
+from mathfont_code.dtx. You can do this in two ways:
+
   (1) Running Plain TeX on mathfont_code.dtx will create
       mathfont.sty as well as several other tex files
       that can be used for typesetting documentation.
@@ -25,9 +26,10 @@
       files listed in point (1) including mathfont.sty as 
       well as mathfont_code.pdf.
 
-Once you have created mathfont.sty, you should move it 
-into a directory searchable by TeX to complete the
-installation.
+Step 2: Once you have created mathfont.sty, you should
+move it into a directory searchable by TeX to complete the
+installation. If you are unsure how to do this, consult
+your TeX distribution.
 
 *********************************************************
 
@@ -34,11 +36,12 @@
 Besides this README, the installation contains the following
 items:
 
-  (1) mathfont_code.dtx: the primary file. See above for
-      instructions to generate mathfont.sty from this file
-      and complete the installation.
+  (1) mathfont_code.dtx: the main file. See above for
+      instructions to generate mathfont.sty from this
+      file and complete the installation.
 
-  (2) mathfont_code.pdf: documentation of the package code.
+  (2) mathfont_code.pdf: documentation of the package
+      code.
 
   (3) mathfont_symbol_list.pdf: a list of symbols that
       mathfont provides access to.
@@ -54,7 +57,7 @@
 
 *********************************************************
 
-Copyright 2018-2022 by Conrad Kosowsky
+Copyright 2018-2023 by Conrad Kosowsky
 
 This Work may be used, distributed, and modified under the
 terms of the LaTeX Public Project License, version 1.3c or

Modified: trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_code.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_doc_patch.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_doc_patch.tex	2023-08-22 22:45:20 UTC (rev 68017)
+++ trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_doc_patch.tex	2023-08-22 22:45:46 UTC (rev 68018)
@@ -6,12 +6,12 @@
 %%
 %% mathfont_code.dtx  (with options: `doc')
 %% 
-%% This file is from version 2.2a of the free and open-source
-%% LaTeX package "mathfont," released December 2022, to be used
+%% This file is from version 2.2b of the free and open-source
+%% LaTeX package "mathfont," released August 2023, to be used
 %% with the XeTeX or LuaTeX engines. (As of version 2.0, LuaTeX
 %% is recommended.)
 %% 
-%% Copyright 2018-2022 by Conrad Kosowsky
+%% Copyright 2018-2023 by Conrad Kosowsky
 %% 
 %% This Work may be used, distributed, and modified under the
 %% terms of the LaTeX Public Project License, version 1.3c or

Modified: trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_equations.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_equations.tex	2023-08-22 22:45:20 UTC (rev 68017)
+++ trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_equations.tex	2023-08-22 22:45:46 UTC (rev 68018)
@@ -6,12 +6,12 @@
 %%
 %% mathfont_code.dtx  (with options: `equations')
 %% 
-%% This file is from version 2.2a of the free and open-source
-%% LaTeX package "mathfont," released December 2022, to be used
+%% This file is from version 2.2b of the free and open-source
+%% LaTeX package "mathfont," released August 2023, to be used
 %% with the XeTeX or LuaTeX engines. (As of version 2.0, LuaTeX
 %% is recommended.)
 %% 
-%% Copyright 2018-2022 by Conrad Kosowsky
+%% Copyright 2018-2023 by Conrad Kosowsky
 %% 
 %% This Work may be used, distributed, and modified under the
 %% terms of the LaTeX Public Project License, version 1.3c or
@@ -60,14 +60,13 @@
 %% For more information, see mathfont_code.dtx. Happy TeXing!
 %% 
 \begin{multicols}{2}
-\let\medskip\relax
 
 Black-Scholes Equation
 \[
-\frac{\partial V}{\partial t}+\frac12\sigma^2S^2\frac{\partial^2V}{\partial S^2}=
-  rV-rS\frac{\partial V}{\partial X}
+\frac{\partial V}{\partial t}+
+  \frac12\sigma^2S^2\frac{\partial^2V}{\partial S^2}
+  =rV-rS\frac{\partial V}{\partial X}
 \]
-\medskip
 
 Cardano's Formula/Cubic Formula
 \begin{align*}
@@ -74,25 +73,21 @@
 t_i&=\omega_i\sqrt[3]{-\frac q2+\sqrt{\frac{q^2}4+\frac{p^3}{27}}}\\
   &\qquad\qquad{}+\omega_i^2\sqrt[3]{-\frac q2-\sqrt{\frac{q^2}4+\frac{p^3}{27}}}
 \end{align*}
-\medskip
 
 Einstein's Field Equation (General Relativity)
 \[
 R_{\mu\nu}-\frac12Rg_{\mu\nu}+\Lambda g_{\mu\nu}=\frac{8\pi G}{c^4}T_{\mu\nu}
 \]
-\medskip
 
 First Isomorphism Theorem
 \[
 \phi(X)\cong X/\ker(\phi)
 \]
-\medskip
 
 Gauss-Bonnet Formula
 \[
 \int_MK\ dA+\int_{\partial M}k_g\ ds=2\pi\chi(M)
 \]
-\medskip
 
 Maxwell's Equations
 \begin{align*}
@@ -102,7 +97,6 @@
 \nabla\times\mathbf B&=\mu_0\left(\mathbf J+
   \epsilon_0\frac{\partial\mathbf E}{\partial t}\right)
 \end{align*}
-\medskip
 
 Michaelis-Menten Model
 \[
@@ -119,25 +113,21 @@
   &+\frac13\mu\nabla(\nabla\bullet u)+
   \rho\mathbf{g}
 \end{align*}
-\medskip
 
 Quadratic Formula
 \[
 x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}
 \]
-\medskip
 
 Ramanujan's Approximation for $\Gamma$
 \[
 \Gamma(1+x)\approx\sqrt\pi\,x^xe^{-x}\,\sqrt[6]{8x^3+4x^2+x+\frac1{30}}
 \]
-\medskip
 
 Residue Theorem
 \[
 \frac1{2i\pi}\int_{\gamma}f(z)\ dz=\sum_{k=1}^n\Res_{a_k}(f)
 \]
-\medskip
 
 Riemann Zeta Function
 \begin{align*}
@@ -145,13 +135,11 @@
   =\frac1{\Gamma(z)}\int_0^\infty\frac{x^{z-1}}{e^x-1}\ dx\\
   &=2^z\pi^{z-1}\sin\left(\frac{\pi z}2\right)\,\Gamma(1-z)\,\zeta(1-z)
 \end{align*}
-\medskip
 
 Schrodinger Equation
 \[
 i\hbar\frac d{dt}|\Psi(t)\fakerangle=\hat H|\Psi(t)\fakerangle
 \]
-\medskip
 
 Lorentz Transformation (Special Relativity)
 \[

Modified: trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_example_cormorant.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_example_cormorant.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_example_cormorant.tex	2023-08-22 22:45:20 UTC (rev 68017)
+++ trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_example_cormorant.tex	2023-08-22 22:45:46 UTC (rev 68018)
@@ -6,12 +6,12 @@
 %%
 %% mathfont_code.dtx  (with options: `cormorant')
 %% 
-%% This file is from version 2.2a of the free and open-source
-%% LaTeX package "mathfont," released December 2022, to be used
+%% This file is from version 2.2b of the free and open-source
+%% LaTeX package "mathfont," released August 2023, to be used
 %% with the XeTeX or LuaTeX engines. (As of version 2.0, LuaTeX
 %% is recommended.)
 %% 
-%% Copyright 2018-2022 by Conrad Kosowsky
+%% Copyright 2018-2023 by Conrad Kosowsky
 %% 
 %% This Work may be used, distributed, and modified under the
 %% terms of the LaTeX Public Project License, version 1.3c or
@@ -65,10 +65,9 @@
   LuaLaTeX is recommended for\MessageBreak
   mathfont_example_cormorant.tex}
   {It's recommended that you typset this file\MessageBreak
-  with LuaTeX. You can use a different engine\MessageBreak
-  if you want, but things will turn out weird.\MessageBreak
-  To resolve this error, typeset this file\MessageBreak
-  with LuaLaTeX.}
+  with LuaTeX. You can use XeLaTeX if you want,\MessageBreak
+  but things will turn out weird. To resolve\MessageBreak
+  this error, typeset the file with LuaLaTeX.}
 \fi
 \documentclass[12pt]{article}
 \usepackage[margin=1in]{geometry}

Modified: trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_example_kelvinch.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_example_kelvinch.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_example_kelvinch.tex	2023-08-22 22:45:20 UTC (rev 68017)
+++ trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_example_kelvinch.tex	2023-08-22 22:45:46 UTC (rev 68018)
@@ -6,12 +6,12 @@
 %%
 %% mathfont_code.dtx  (with options: `kelvinch')
 %% 
-%% This file is from version 2.2a of the free and open-source
-%% LaTeX package "mathfont," released December 2022, to be used
+%% This file is from version 2.2b of the free and open-source
+%% LaTeX package "mathfont," released August 2023, to be used
 %% with the XeTeX or LuaTeX engines. (As of version 2.0, LuaTeX
 %% is recommended.)
 %% 
-%% Copyright 2018-2022 by Conrad Kosowsky
+%% Copyright 2018-2023 by Conrad Kosowsky
 %% 
 %% This Work may be used, distributed, and modified under the
 %% terms of the LaTeX Public Project License, version 1.3c or
@@ -65,10 +65,9 @@
   LuaLaTeX is recommended for\MessageBreak
   mathfont_example_kelvinch.tex}
   {It's recommended that you typset this file\MessageBreak
-  with LuaTeX. You can use a different engine\MessageBreak
-  if you want, but things will turn out weird.\MessageBreak
-  To resolve this error, typeset this file\MessageBreak
-  with LuaLaTeX.}
+  with LuaTeX. You can use XeLaTeX if you want,\MessageBreak
+  but things will turn out weird. To resolve\MessageBreak
+  this error, typeset the file with LuaLaTeX.}
 \fi
 \documentclass[12pt]{article}
 \usepackage[margin=1in]{geometry}

Modified: trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_example_roboto.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_example_roboto.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_example_roboto.tex	2023-08-22 22:45:20 UTC (rev 68017)
+++ trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_example_roboto.tex	2023-08-22 22:45:46 UTC (rev 68018)
@@ -6,12 +6,12 @@
 %%
 %% mathfont_code.dtx  (with options: `roboto')
 %% 
-%% This file is from version 2.2a of the free and open-source
-%% LaTeX package "mathfont," released December 2022, to be used
+%% This file is from version 2.2b of the free and open-source
+%% LaTeX package "mathfont," released August 2023, to be used
 %% with the XeTeX or LuaTeX engines. (As of version 2.0, LuaTeX
 %% is recommended.)
 %% 
-%% Copyright 2018-2022 by Conrad Kosowsky
+%% Copyright 2018-2023 by Conrad Kosowsky
 %% 
 %% This Work may be used, distributed, and modified under the
 %% terms of the LaTeX Public Project License, version 1.3c or
@@ -65,10 +65,9 @@
   LuaLaTeX is recommended for\MessageBreak
   mathfont_example_roboto.tex}
   {It's recommended that you typset this file\MessageBreak
-  with LuaTeX. You can use a different engine\MessageBreak
-  if you want, but things will turn out weird.\MessageBreak
-  To resolve this error, typeset this file\MessageBreak
-  with LuaLaTeX.}
+  with LuaTeX. You can use XeLaTeX if you want,\MessageBreak
+  but things will turn out weird. To resolve\MessageBreak
+  this error, typeset the file with LuaLaTeX.}
 \fi
 \documentclass[12pt]{article}
 \usepackage[margin=1in]{geometry}

Modified: trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_example_typey.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_example_typey.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_example_typey.tex	2023-08-22 22:45:20 UTC (rev 68017)
+++ trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_example_typey.tex	2023-08-22 22:45:46 UTC (rev 68018)
@@ -6,12 +6,12 @@
 %%
 %% mathfont_code.dtx  (with options: `typey')
 %% 
-%% This file is from version 2.2a of the free and open-source
-%% LaTeX package "mathfont," released December 2022, to be used
+%% This file is from version 2.2b of the free and open-source
+%% LaTeX package "mathfont," released August 2023, to be used
 %% with the XeTeX or LuaTeX engines. (As of version 2.0, LuaTeX
 %% is recommended.)
 %% 
-%% Copyright 2018-2022 by Conrad Kosowsky
+%% Copyright 2018-2023 by Conrad Kosowsky
 %% 
 %% This Work may be used, distributed, and modified under the
 %% terms of the LaTeX Public Project License, version 1.3c or
@@ -65,10 +65,9 @@
   LuaLaTeX is recommended for\MessageBreak
   mathfont_example_typey.tex}
   {It's recommended that you typset this file\MessageBreak
-  with LuaTeX. You can use a different engine\MessageBreak
-  if you want, but things will turn out weird.\MessageBreak
-  To resolve this error, retypeset this file\MessageBreak
-  with LuaLaTeX.}
+  with LuaTeX. You can use XeLaTeX if you want,\MessageBreak
+  but things will turn out weird. To resolve\MessageBreak
+  this error, typeset the file with LuaLaTeX.}
 \fi
 \documentclass[12pt]{article}
 \usepackage[margin=1in]{geometry}

Modified: trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_heading.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_heading.tex	2023-08-22 22:45:20 UTC (rev 68017)
+++ trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_heading.tex	2023-08-22 22:45:46 UTC (rev 68018)
@@ -6,12 +6,12 @@
 %%
 %% mathfont_code.dtx  (with options: `heading')
 %% 
-%% This file is from version 2.2a of the free and open-source
-%% LaTeX package "mathfont," released December 2022, to be used
+%% This file is from version 2.2b of the free and open-source
+%% LaTeX package "mathfont," released August 2023, to be used
 %% with the XeTeX or LuaTeX engines. (As of version 2.0, LuaTeX
 %% is recommended.)
 %% 
-%% Copyright 2018-2022 by Conrad Kosowsky
+%% Copyright 2018-2023 by Conrad Kosowsky
 %% 
 %% This Work may be used, distributed, and modified under the
 %% terms of the LaTeX Public Project License, version 1.3c or
@@ -63,8 +63,8 @@
 \csname count@\endcsname\catcode`\@
 \makeatletter
 
-\def\packagedate{December 2022}
-\def\packageversion{2.2a}
+\def\packagedate{August 2023}
+\def\packageversion{2.2b}
 
 
 \let\@@section\section
@@ -116,14 +116,17 @@
 \def\bottomfraction{1}
 \let\code\@undefined
 \newenvironment{code}
-  {\strut\vadjust\bgroup\medskip\parindent\z@\leftskip2em\relax
+  {\strut\vadjust\bgroup\vskip 5pt plus 1pt minus 3pt\relax
+    \parindent\z@\leftskip2em\relax
     \noindent\strut\ignorespaces}
-  {\strut\par\medskip\egroup\hfill\break\strut\ignorespacesafterend}
+  {\strut\par\vskip 5pt plus 1pt minus 3pt\relax
+    \egroup\hfill\break\strut\ignorespacesafterend}
 \def\vrb#1{\expandafter\texttt\expandafter{\string#1}}
 \parskip=0pt
 
-\def\charexample#1{\hbox to \hsize{\hbox to 0.4in{$#1$\hfil}\vrb#1\hfil}}
-\def\accentexample#1{\hbox to \hsize{\hbox to 0.4in{$#1 a$\hfil}\vrb#1\hfil}}
+\def\charexample#1{\hbox to \hsize{\hbox to 0.4in{$#1$\hfil}\vrb#1\hook\hfil}}
+\def\accentexample#1{\hbox to \hsize{\hbox to 0.4in{$#1 a$\hfil}\vrb#1\hook\hfil}}
+\let\hook\relax
 \def\delimexample#1{\hbox to \hsize{%
   \hbox to 0.8in{$#1\big#1\Big#1\bigg#1\Bigg#1$\hfil}\vrb#1\hfil}}
 \def\luadelimexample#1{\hbox{\vbox{\hbox to 0.8in{%
@@ -136,23 +139,20 @@
   \hbox to 0.4in{$#1$\hfil}%
   \hbox to 0.4in{$\displaystyle#1$\hfil}\vrb#1\hfil}\smallskip}
 \def\blockheader#1#2{%
-  \bigskip\medskip
-  \penalty-9000
   \hbox{\fbox{\hbox to \dimexpr\hsize-2\fboxrule-2\fboxsep\relax{%
-    \hfil#2 Characters (Keyword \texttt{#1})\strut\hfil}}}
-  \medskip}
-\def\upperalphabet{ABCDEFGHIJKLMNOPQRSTUVWXY}
-\def\loweralphabet{abcdefghijklmnopqrstuvwxy}
+    \hfil#2 Characters (Keyword \texttt{#1})\strut\hfil}}}}
+\def\upperalphabet{ABCDEFGHIJKLMNOPQRSTUVWXYZ}
+\def\loweralphabet{abcdefghijklmnopqrstuvwxyz}
 \def\digits{0123456789}
 \def\printchars#1{%
   \expandafter\@tfor\expandafter\letter\expandafter:\expandafter=#1\do{%
-  \rlap{$\@tempstyle{\letter}$}\hfill}}
+  \hbox to \dimexpr\hsize/26{$\@tempstyle{\letter}$\hfil}}}
 \def\letterlikechars#1{\smallskip\let\@tempstyle#1
-  \noindent\printchars\upperalphabet\hbox to 0.6em{$\@tempstyle{Z}$\hss}\par
-  \noindent\printchars\loweralphabet\hbox to 0.6em{$\@tempstyle{z}$\hss}\par}
+  \noindent\printchars\upperalphabet\par
+  \noindent\printchars\loweralphabet\par}
 
 {\large\parindent=0pt\leftskip=0pt plus 1 fil\rightskip=0pt plus 1fil\parfillskip=0pt
-{\strut\Large Package \textsf{mathfont} v.\ \packageversion\ \documentname\let\thefootnote\relax\footnote{Acknowledgements: Thanks to Lyric Bingham for her work checking my unicode hex values. Thanks to Shyam Sundar, Adrian Vollmer, Herbert Voss, and Andreas Zidak for pointing out bugs in previous versions of \textsf{mathfont}. Thanks to Jean-Fran\c cois Burnol for pointing out an error in the documentation in reference to their \textsf{mathastext} package.}\global\advance\c at footnote\m at ne}\par
+{\strut\Large Package \textsf{mathfont} v.\ \packageversion\ \documentname\let\thefootnote\relax\footnote{Acknowledgements: Thanks to Lyric Bingham for her work checking my unicode hex values. Thanks to Shyam Sundar, Adrian Vollmer, Herbert Voss, and Andreas Zidak for pointing out bugs in previous versions of \textsf{mathfont}. Thanks to Jean-Fran\c cois Burnol for pointing out an error in the documentation in reference to his \textsf{mathastext} package.}\global\advance\c at footnote\m at ne}\par
 {\strut Conrad Kosowsky}\par
 {\strut\packagedate}\par
 {\strut\ttfamily kosowsky.latex at gmail.com}\par}
@@ -182,7 +182,8 @@
 \noindent The \textsf{mathfont} package adapts unicode text fonts for math mode. The package allows the user to specify a default unicode font for different classes of math symbols, and it provides tools to change the font locally for math alphabet characters. When typesetting with Lua\TeX, \textsf{mathfont} adds resizable delimiters, big operators, and a MathConstants table to text fonts.\par}
 
 \bigskip\bigskip\nointerlineskip
-\centerline{\vrule height 0.5pt width 2.5in}\bigskip\medskip
+\centerline{\vrule height 0.5pt width 2.5in}\bigskip\bigskip
+\nointerlineskip
 \fi
 
 \catcode`\@\count@

Modified: trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_symbol_list.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_symbol_list.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_symbol_list.tex	2023-08-22 22:45:20 UTC (rev 68017)
+++ trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_symbol_list.tex	2023-08-22 22:45:46 UTC (rev 68018)
@@ -6,12 +6,12 @@
 %%
 %% mathfont_code.dtx  (with options: `chars')
 %% 
-%% This file is from version 2.2a of the free and open-source
-%% LaTeX package "mathfont," released December 2022, to be used
+%% This file is from version 2.2b of the free and open-source
+%% LaTeX package "mathfont," released August 2023, to be used
 %% with the XeTeX or LuaTeX engines. (As of version 2.0, LuaTeX
 %% is recommended.)
 %% 
-%% Copyright 2018-2022 by Conrad Kosowsky
+%% Copyright 2018-2023 by Conrad Kosowsky
 %% 
 %% This Work may be used, distributed, and modified under the
 %% terms of the LaTeX Public Project License, version 1.3c or
@@ -65,18 +65,19 @@
 \usepackage{tabularx}
 \usepackage{booktabs}
 \usepackage{multicol}
+\multicolsep=\bigskipamount
+\premulticols=\z@
+\postmulticols=4\bigskipamount
 \usepackage{graphicx}
 \usepackage{mathfont}
 \mathfont[agreeklower=upright,agreekupper]{Crimson}
 \mathfont[hebrew]{Coelacanth}
 \mathfont[\M at keys]{STIXGeneral}
-\usepackage{shortvrb,doc}
+\usepackage{shortvrb}
 \MakeShortVerb{|}
+\def\meta#1{\ensuremath{\langle\textit{#1}\rangle}}
 \raggedcolumns
 \parskip=0pt
-\smallskipamount=2pt plus 1pt minus 1pt
-\multicolsep=0pt
-\premulticols=0pt
 \fboxrule=1pt
 \CharmLine{8747 1200 1700 * * * * * * * * * * * * * *
   * * * * * * * * * * * * * * * * * * * * }
@@ -114,11 +115,13 @@
 \end{tabularx}
 \end{figure}
 
-As of version 2.0, \textsf{mathfont} artificially adds resizable delimiters and big operator characters to text fonts when you complile with Lua\LaTeX. In this case, square root symbols will automatically resize, big operators will appear larger in |\displaystyle|, and you can use |\left|, |\right|, and |\big|, etc.\ with characters from the keyword |delimiters|. If you use \XeTeX, \textsf{mathfont} will not create large variants of characters, and your unicode math symbols will all be the same size as they appear in the font. In this case, you may be best off sticking with the Computer Modern defaults for resizable characters provided they don't clash with the rest of your document. Throughout this document, anything labeled ``Lua\TeX\ only'' means that \textsf{mathfont} provides this functionality only if you enable Lua-based font adjustments. If you load \textsf{mathfont} with the |no-adjust| option, you will not be able to access these features the same as if you compile with \XeTeX.
+As of version 2.0, \textsf{mathfont} artificially adds resizable delimiters and big operator characters to text fonts when you compile with Lua\LaTeX. In this case, square root symbols will automatically resize, big operators will appear larger in |\displaystyle|, and you can use |\left|, |\right|, and |\big|, etc.\ with characters from the keyword |delimiters|. If you use \XeTeX, \textsf{mathfont} will not create large variants of characters, and your unicode math symbols will all be the same size as they appear in the font. In this case, you may be best off sticking with the Computer Modern defaults for resizable characters provided they don't clash with the rest of your document. Throughout this document, anything labeled ``Lua\TeX\ only'' means that \textsf{mathfont} provides this functionality only if you enable Lua-based font adjustments. If you load \textsf{mathfont} in Lua\TeX\ with the |no-adjust| option, you will not be able to access these features the same as if you typeset with \XeTeX.
 
 A few characters appear multiple times in this list. When that happens, it means that \textsf{mathfont} defines the control sequence for multiple keywords. If you call |\mathfont| for only one of those keywords, your symbol will appear in the font associated with that keyword. If you call |\mathfont| on multiple keywords, the package uses the font associated with the default keyword/font for that character. Table~1 lists the default keyword for each command that appears multiple times in this document. If you need unicode encoding slot numbers for character metric adjustments, each symbol corresponds to its standard unicode encoding value, with the exception of the fake angle brackets. When you typeset with Lua\TeX, \textsf{mathfont} artificially adds |\fakelangle|, |\fakerangle|, |\fakellangle|, and |\fakerrangle| to the font in encoding slots 1,044,508--1,044,511 respectively.
 
-\bigskip\centerline{\vrule height 0.5pt width 2.5in}\medskip\smallskip
+\bigskip\bigskip
+\nointerlineskip\centerline{\vrule height 0.5pt width 2.5in}
+\bigskip\bigskip
 
 \catcode`\|=12
 
@@ -190,7 +193,9 @@
 \blockheader{diacritics}{Accent}
 
 \begin{multicols}{3}
+  \def\hook{\footnote{You will run into trouble if you load \textsf{amsmath} after calling \vrb\mathfont\ with the \texttt{accent} keyword. This is a known bug.}}
 \accentexample\acute
+  \let\hook\relax
 \accentexample\aacute
 \accentexample\dot
 \accentexample\ddot
@@ -691,7 +696,9 @@
 \charexample\sqsupsetneq
 \charexample\neq
 \charexample\nl
+  \def\hook{\footnote{In text mode, \vrb\ng\ produces \ng---as of version 2.2b, \textsf{mathfont} redefines the math-mode version only and leaves the text-mode version alone. If you are using the \textsf{hyperref} package, you should type \vrb\mathng\ instead of \vrb\ng.}}
 \charexample\ng
+  \let\hook\relax
 \charexample\nleq
 \charexample\ngeq
 \charexample\lneq
@@ -850,23 +857,32 @@
 
 \blockheader{bb}{Blackboard Bold}
 
+\vskip\multicolsep
 \letterlikechars\mathbb
-\hbox to 10em{\printchars\digits}
+\hbox to \hsize{\printchars\digits\hfil}
+\vskip\multicolsep
 
 \blockheader{cal}{Caligraphic}
 
+\vskip\multicolsep
 \letterlikechars\mathcal
+\vskip\multicolsep
 
 \blockheader{frak}{Fraktur}
 
+\vskip\multicolsep
 \letterlikechars\mathfrak
+\vskip\multicolsep
 
 \blockheader{bcal}{Bold Calligraphic}
 
+\vskip\multicolsep
 \letterlikechars\mathbcal
+\vskip\multicolsep
 
 \blockheader{bfrak}{Bold Fraktur}
 
+\vskip\multicolsep
 \letterlikechars\mathbfrak
 
 \end{document}

Modified: trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_user_guide.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_user_guide.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_user_guide.tex	2023-08-22 22:45:20 UTC (rev 68017)
+++ trunk/Master/texmf-dist/doc/latex/mathfont/mathfont_user_guide.tex	2023-08-22 22:45:46 UTC (rev 68018)
@@ -6,12 +6,12 @@
 %%
 %% mathfont_code.dtx  (with options: `user')
 %% 
-%% This file is from version 2.2a of the free and open-source
-%% LaTeX package "mathfont," released December 2022, to be used
+%% This file is from version 2.2b of the free and open-source
+%% LaTeX package "mathfont," released August 2023, to be used
 %% with the XeTeX or LuaTeX engines. (As of version 2.0, LuaTeX
 %% is recommended.)
 %% 
-%% Copyright 2018-2022 by Conrad Kosowsky
+%% Copyright 2018-2023 by Conrad Kosowsky
 %% 
 %% This Work may be used, distributed, and modified under the
 %% terms of the LaTeX Public Project License, version 1.3c or
@@ -68,7 +68,7 @@
 \usepackage{graphicx}
 \usepackage{tabularx}
 \usepackage{multirow}
-\usepackage{hyperref}
+\usepackage[implicit=false,colorlinks=true,allcolors=blue]{hyperref}
 \usepackage{enumitem}
 \SetEnumitemKey{special}{topsep=\smallskipamount,
   itemsep=\smallskipamount,
@@ -91,15 +91,15 @@
 \def\showabstract{1}
 \input mathfont_heading.tex
 
-Handling fonts in \TeX\ and \LaTeX\ is a notoriously difficult task because fonts are complicated.\footnote{The last 30 years have seen huge advances in loading fonts with \TeX. Donald Knuth originally designed \TeX\ to load fonts created with Metafont, and only more recent engines such as Jonathan Kew's \XeTeX\ and Hans Hagen, et al.'s Lua\TeX\ have extended \TeX's font-loading capabilities to unicode. \XeTeX\ supports OpenType and TrueType fonts natively, and Lua\TeX\ can load OpenType fonts through the \textsf{luaotfload} package. Information on \XeTeX\ is available at \link{https://tug.org/xetex/}, and information on Lua\TeX\ is available at the official website for Lua\TeX: \link{http://www.luatex.org/}. See also Ulrike Fischer, et al., ``\textsf{luaotfload}---OpenType `loader' for Plain \TeX\ and \LaTeX,'' \link{https://ctan.org/pkg/luaotfload}.} The \textsf{mathfont} package loads TrueType and OpenType fonts for use in math mode, and this document explains the package's user-level commands. For version history and code implementation, see |mathfont_code.pdf|, and for a list of all symbols accessible with \textsf{mathfont}, see |mathfont_symbol_list.pdf|. The \textsf{mathfont} installation also includes four example files, and all \textsf{mathfont} pdf documentation files are available on \textsc{ctan}. Because unicode text fonts outnumber unicode math fonts, I hope that my package will expand the set of possibilities for typesetting math in \LaTeX.
+Handling fonts in \TeX\ and \LaTeX\ is a notoriously difficult task because fonts are complicated.\footnote{The last 30 years have seen huge advances in loading fonts with \TeX. Donald Knuth originally designed \TeX\ to load fonts created with Metafont, and only more recent engines such as Jonathan Kew's \XeTeX\ and Hans Hagen, et al.'s Lua\TeX\ have extended \TeX's font-loading capabilities to unicode. \XeTeX\ supports OpenType and TrueType fonts natively, and Lua\TeX\ can load OpenType fonts through the \textsf{luaotfload} package. Information on \XeTeX\ is available at \link{https://tug.org/xetex/}, and information on Lua\TeX\ is available at the official website for Lua\TeX: \link{http://www.luatex.org/}. See also Ulrike Fischer, et al., ``\textsf{luaotfload}---OpenType `loader' for Plain \TeX\ and \LaTeX,'' \link{https://ctan.org/pkg/luaotfload}. For discussion of fonts generally, see Yannis Haralambous, \textit{Fonts \& Encodings} (Sebastopol: O'Reilly Media, Inc., 2007).} The \textsf{mathfont} package loads TrueType and OpenType fonts for use in math mode, and this document explains the package's user-level commands. For version history and code implementation, see |mathfont_code.pdf|, and for a list of all symbols accessible with \textsf{mathfont}, see |mathfont_symbol_list.pdf|. The \textsf{mathfont} installation also includes four example files, and all \textsf{mathfont} pdf documentation files are available on \textsc{ctan}. Because unicode text fonts outnumber unicode math fonts, I hope that my package will expand the set of possibilities for typesetting math in \LaTeX.
 
 \section{Loading and Basic Functionality}
 
-Loading fonts for math typesetting is more complicated than for regular text. First, selecting fonts for math mode, both in plain \TeX\ and in the \textsc{nfss}, involves additional macros above and beyond what we need to load text fonts. Second, \TeX\ expects fonts for math to contain extra information for formatting equations.\footnote{Specifically, this extra information is a set of large variants, math-specific parameter values associated with individual characters, and a MathConstants table. Also, math fonts often use slightly wider bounding boxes for letters in math mode---the Computer Modern $f$ is a well-known example. (Compare \fbox{$f$} and \fbox{\texttt{f}}.) For this reason, \textsf{mathfont} also provides an interface to enlarge the bounding boxes of Latin letters when they appear in math mode. See section 5 for details.} Broadly speaking, we say that a \textit{math font} contains this extra information, whereas a \textit{text font} does not, and typesetting math with glyphs from one or more text fonts usually results in equations that are less aesthetically pleasing than using a properly prepared math font. The functionality of \textsf{mathfont} then is twofold: (1) provide a wrapper around the \textsc{nfss} commands for math typesetting that serves as a high-level interface; and (2) implement Lua\TeX\ callbacks that artificially convert text fonts into math fonts at loading.\footnote{Values for MathConstants table are different from but inspired by Ulrik Vieth, ``Understanding the \AE sthetics of Math Typesetting,'' (Bacho\TeX\ Conference, 2008) and Ulrik Vieth ``OpenType Math Illuminated,'' \textit{TUGboat} 30 (2009): 22--31. See also Bogus\l aw Jackowski, ``Appendix G Illuminated,'' \textit{TUGboat} 27 (2006): 83--90.} Although \textsf{mathfont} tries its best to get your fonts right, it may run into trouble when picking fonts to load. If this happens, you should declare your font family and shapes in the \textsc{nfss} before setting any fonts with \textsf{mathfont}.
+Loading fonts for math typesetting is more complicated than for regular text. First, selecting fonts for math mode, both in plain \TeX\ and in the \textsc{nfss}, involves additional macros above and beyond what we need to load text fonts. Second, \TeX\ expects fonts for math to contain extra information for formatting equations.\footnote{Specifically, this extra information is a set of large variants, math-specific parameter values associated with individual characters, and a MathConstants table. Also, math fonts often use slightly wider bounding boxes for letters in math mode---the Computer Modern $f$ is a well-known example. (Compare math-mode {\fboxsep=0pt\fbox{$f$}} and italic {\fboxsep=0pt\fbox{\textit{f}}}.) For this reason, \textsf{mathfont} also provides an interface to enlarge the bounding boxes of Latin letters when they appear in math mode. See section 5 for details.} Broadly speaking, we say that a \textit{math font} contains this extra information, whereas a \textit{text font} does not, and typesetting math with glyphs from one or more text fonts usually results in messier equations than using a properly prepared math font. The functionality of \textsf{mathfont} then is twofold: (1) provide a wrapper around the \textsc{nfss} commands for math typesetting that serves as a high-level interface; and (2) implement Lua\TeX\ callbacks that artificially convert text fonts into math fonts at loading.\footnote{Values for MathConstants table are different from but inspired by Ulrik Vieth, ``Understanding the \AE sthetics of Math Typesetting,'' (Bacho\TeX\ Conference, 2008) and Ulrik Vieth ``OpenType Math Illuminated,'' \textit{TUGboat} 30 (2009): 22--31. See also Bogus\l aw Jackowski, ``Appendix G Illuminated,'' \textit{TUGboat} 27 (2006): 83--90.} Although \textsf{mathfont} tries its best to get your fonts right, it may run into trouble when picking fonts to load. If this happens, you should declare your font family and shapes in the \textsc{nfss} before setting any fonts with \textsf{mathfont}.
 
 You must use one of \XeLaTeX\ or Lua\LaTeX\ to typeset a document with \textsf{mathfont}. You can load \textsf{mathfont} with the standard |\usepackage{mathfont}| syntax, and the package accepts three optional arguments. If you use Lua\TeX, the options |adjust| or |no-adjust| will manually specify whether \textsf{mathfont} should adapt text fonts for math mode, and \textsf{mathfont} selects |adjust| by default. If you use \XeTeX, \textsf{mathfont} cannot adjust any font objects with Lua callbacks, and either of these package options will cause an error.\footnote{With \XeLaTeX, \textsf{mathfont} does not add big operators or resizable delimiters. This means you will have to use the Computer Modern defaults, load a separate math font for resizable characters, or end up with a document where large operators and delimiters do not scale like they do normally.} For this reason, using Lua\TeX\ with \textsf{mathfont} is recommended as of version 2.0. If you load \textsf{mathfont} with any other optional argument, the package will interpret it as a font name and call |\setfont| (described in the next section) on your argument. Doing so selects that font for the text of your document and for the character classes in the upper section of Table~1.
 
-The \textsf{mathfont} package is closely related to several other \LaTeX\ packages. The functionality is closest to that of \textsf{mathspec} by Andrew Gilbert Moschou, which is compatible with \XeTeX\ only and selects characters from text fonts for math.\footnote{Andrew Gilbert Moschou, ``\textsf{mathspec}---Specify arbitrary fonts for mathematics in \XeTeX,'' \link{https://ctan.org/pkg/mathspec}.} The \textsf{unicode-math} package is the standard \LaTeX\ package for loading actual unicode math fonts, and if you have a unicode font with proper math support, rather than a text font that you want to use for equations, consider using this package instead of \textsf{mathfont}.\footnote{Will Robertson, et al., ``\textsf{unicode-math}---Unicode mathematics support for XeTeX and LuaTeX,'' \link{https://ctan.org/pkg/unicode-math}.} Users who want to a text font for math with pdf\LaTeX\ should consider Jean-Fran\c cois Burnol's \textsf{mathastext} because \textsf{mathfont} is incompatible with pdf\TeX.\footnote{Jean-Fran\c cois Burnol, ``\textsf{mathastext}---Use the text font in maths mode,'' \link{https://ctan.org/pkg/mathastext}. In several previous versions of this documentation, I mischaracterized the approach of \textsf{mathastext} to \TeX's internal mathematics spacing. In fact, \textsf{mathastext} preserves and in some cases extends rules for space between various math-mode characters.} Finally, you will probably be better off using \textsf{fontspec} if your document does not contain any math.\footnote{Will Robertson and Khaled Hosny, ``\textsf{fontspec}---Advanced font selection in \XeLaTeX\ and Lua\LaTeX,'' \link{https://ctan.org/pkg/fontspec}.} The \textsf{fontspec} package is designed to load TrueType and OpenType fonts for text and provides a high-level interface for selecting OpenType font features.
+The \textsf{mathfont} package is closely related to several other \LaTeX\ packages. The functionality is closest to that of \textsf{mathspec} by Andrew Gilbert Moschou, which is compatible with \XeTeX\ only and selects characters from text fonts for math.\footnote{Andrew Gilbert Moschou, ``\textsf{mathspec}---Specify arbitrary fonts for mathematics in \XeTeX,'' \link{https://ctan.org/pkg/mathspec}.} The \textsf{unicode-math} package is the standard \LaTeX\ package for loading actual unicode math fonts, and if you have a unicode font with proper math support, rather than a text font that you want to use for equations, consider using this package instead of \textsf{mathfont}.\footnote{Will Robertson, et al., ``\textsf{unicode-math}---Unicode mathematics support for XeTeX and LuaTeX,'' \link{https://ctan.org/pkg/unicode-math}.} Users who want a text font for math with pdf\LaTeX\ should consider Jean-Fran\c cois Burnol's \textsf{mathastext} because \textsf{mathfont} is incompatible with pdf\TeX.\footnote{Jean-Fran\c cois Burnol, ``\textsf{mathastext}---Use the text font in maths mode,'' \link{https://ctan.org/pkg/mathastext}. In several previous versions of this documentation, I mischaracterized the approach of \textsf{mathastext} to \TeX's internal mathematics spacing. In fact, \textsf{mathastext} preserves and in some cases extends rules for space between various math-mode characters.} Finally, you will probably be better off using \textsf{fontspec} if your document does not contain any math.\footnote{Will Robertson and Khaled Hosny, ``\textsf{fontspec}---Advanced font selection in \XeLaTeX\ and Lua\LaTeX,'' \link{https://ctan.org/pkg/fontspec}.} The \textsf{fontspec} package is designed to load TrueType and OpenType fonts for text and provides a high-level interface for selecting OpenType font features.
 
 \begin{figure}[t]\labelfig{Keywords}
 \centerline{\bfseries Table \the\fig: Character Classes\strut}
@@ -169,34 +169,20 @@
 \end{code}
 It calls |\mathfont| without an optional argument---i.e.\ for the default keywords---on your \meta{font name} and sets your document's default text font to be the \meta{font name}. The command also defines the eight commands in Table~\ref{SetFont} using the \meta{font name} and the |\new| macros in the next section. Both |\mathfont| and |\setfont| should appear in the preamble only.
 
-To select OpenType features, you should put a colon after the font name and follow it with appropriate OpenType tags. For example adding ``|onum=true|'' tells \TeX\ to load your font with oldstyle numbering, assuming that feature is present in the font.\footnote{By default, \textsf{mathfont} enables standard ligatures, traditional \TeX\ ligatures, and lining numbers. The package sets |smcp| to |true| or |false| depending on whether it is attempting to load a small-caps font. For the full list of OpenType features, see \link{https://docs.microsoft.com/en-us/typography/opentype/spec/featurelist}.} Whenever you select a font, \textsf{mathfont} first checks whether you previously loaded \textsf{fontspec}, and if so, the package feeds your entire \meta{font name} argument to \textsf{fontspec}. (You can also say ``|fontspec|'' as the \meta{font name} to select the most recent font used by \textsf{fontspec}.) If you have not loaded \textsf{fontspec}, the package uses its own fontloader. I recommend letting \textsf{mathfont} handle font-loading because when using Lua\TeX, \textsf{mathfont} takes care to load fonts in such a way that full OpenType features are accessible in text and limited OpenType features are accessible in math. While it is also possible to do this in \textsf{fontspec}, it takes some doing.\footnote{The \textsf{luaotfload} package supports two main modes for loading fonts: |node| mode is the default setting, and it supports full OpenType features in text but no OpenType features in math. The |base| mode supports limited OpenType features, but the features will work for both text and math. When \textsf{mathfont} loads a font, it does so twice, once in |node| mode, which is primarily for setting the text font with \vrb\setfont, and once in |base| mode, which is for the package's other font declarations. This way you will be able to use OpenType features throughout your document.}
+To select OpenType features, you should put a colon after the font name and follow it with appropriate OpenType tags.\footnote{By default, \textsf{mathfont} enables standard ligatures, traditional \TeX\ ligatures, and lining numbers. The package sets |smcp| to |true| or |false| depending on whether it is attempting to load a small-caps font. For the full list of OpenType features, see \link{https://docs.microsoft.com/en-us/typography/opentype/spec/featurelist}.} For example adding ``|onum=true|'' tells \TeX\ to load your font with oldstyle numbering, assuming that feature is present in the font. You should separate different OpenType feature tags with a semi-colon.
 
+Whenever you select a font, \textsf{mathfont} first checks whether you previously loaded \textsf{fontspec}, and if so, the package feeds your entire \meta{font name} argument to \textsf{fontspec}. (You can also say ``|fontspec|'' as the \meta{font name} to select the most recent font used by \textsf{fontspec}.) If you have not loaded \textsf{fontspec}, the package uses its own fontloader. I recommend letting \textsf{mathfont} handle font-loading because when using Lua\TeX, \textsf{mathfont} takes care to load fonts in such a way that full OpenType features are accessible in text and limited OpenType features are accessible in math.\footnote{The \textsf{luaotfload} package supports two main modes for loading fonts: |node| mode is the default setting, and it supports full OpenType features in text but no OpenType features in math. The |base| mode supports limited OpenType features, but the features will work for both text and math. When \textsf{mathfont} loads a font, it does so twice, once in |node| mode, which is primarily for setting the text font with \vrb\setfont, and once in |base| mode, which is for the package's other font declarations. This way you will be able to use OpenType features throughout your document. The package does not currently load fonts with HarfBuzz.} While it is also possible to do this in \textsf{fontspec}, it takes some doing.
+
 The last five keywords in Table~\ref{Keywords} are a bit different. If you call |\mathfont| on a \meta{keyword} from the last five rows in Table~\ref{Keywords}, the package defines the macro
 \begin{code}
 |\math|\meta{keyword}|{|\meta{text}|}|
 \end{code}
-to typeset them. For example,
+to access them. The Unicode standard contains a block specifically for math alphanumeric symbols, and the control sequences pull from these characters. For example,
 \begin{code}
 |\mathfont[bb]{STIXGeneral}|
 \end{code}
-sets STIXGeneral as the font for bold calligraphic characters and defines |\mathbb| to access them. These are not for use with any double-struck, caligraphic, or fraktur font. Rather, they access Unicode's math alphanumeric symbols block. If you want to use a font where the regular letters appear double-struck, caligraphic, or fraktur, consider the font-changing control sequences in the next section.
+defines |\mathbb| to typeset double-struck letters using the glyphs from STIXGeneral stored in the alphanumeric symbols block. This is very different from a font where the regular letters are double-struck, caligraphic, or fraktur! In that case, consider using the font-change commands from the next section.
 
-\section{Local Font Changes}
-
-With \textsf{mathfont}, it is possible to create commands that locally change the font for math alphabet characters, i.e.\ those marked as alphabetic in Table~\ref{Keywords}. The eight commands in Table~\ref{MathAlpha} accept a \meta{control sequence} as their first mandatory argument and a \meta{font name} as the second, and they define the \meta{control sequence} to typeset any math alphabet characters in their argument into the \meta{font name}. For example, the macro |\newmathrm| looks like
-\begin{code}
-|\newmathrm{|\meta{control sequence}|}{|\meta{font name}|}|.
-\end{code}
-It defines the \textit{control sequence} in its first argument to accept a string of characters that it then converts to the \textit{font name} in the second argument with upright shape and medium weight. Writing
-\begin{code}
-|\newmathrm{\matharial}{Arial}|
-\end{code}
-creates the macro
-\begin{code}
-|\matharial{|\meta{argument}|}|,
-\end{code}
-which can be used only in math mode and which converts the math alphabet characters in its \meta{argument} into the Arial font with upright shape and medium weight. The other commands in Table~\ref{MathAlpha} function in the same way except that they select different series or shape values. Finally, know that if the user specifies the font for Greek letters using |\mathfont|, macros created with the commands from this section will affect those characters, unlike in traditional \LaTeX. Similarly, the local font-change commands will affect Cyrillic and Hebrew characters after the user calls |\mathfont| for those keywords.
-
 \begin{figure}[t]
 \labelfig{MathAlpha}
 \centerline{\bfseries Table \the\fig: Macros to Create Local Font-Change Commands\strut}
@@ -214,11 +200,27 @@
 \end{tabularx}
 \end{figure}
 
-Together these eight commands will provide users with tools for most local font changes, but they won't be able to address everything. Accordingly, \textsf{mathfont} provides the more general |\newmathfontcommand| macro. Its structure is
+\section{Local Font Changes}
+
+With \textsf{mathfont}, it is possible to create commands that locally change the font for math alphabet characters, i.e.\ those marked as alphabetic in Table~\ref{Keywords}. The eight commands in Table~\ref{MathAlpha} accept a \meta{control sequence} as their first mandatory argument and a \meta{font name} as the second, and they define the \meta{control sequence} to typeset any math alphabet characters in their argument into the \meta{font name}. For example, the macro |\newmathrm| looks like
 \begin{code}
+|\newmathrm{|\meta{control sequence}|}{|\meta{font name}|}|.
+\end{code}
+It defines the \textit{control sequence} in its first argument to accept a string of characters that it then converts to the \textit{font name} in the second argument with upright shape and medium weight. Writing
+\begin{code}
+|\newmathrm{\matharial}{Arial}|
+\end{code}
+creates the macro
+\begin{code}
+|\matharial{|\meta{argument}|}|,
+\end{code}
+which can be used only in math mode and which converts the math alphabet characters in its \meta{argument} into the Arial font with upright shape and medium weight. The other commands in Table~\ref{MathAlpha} function in the same way except that they select different series or shape values. Finally, know that if you specify the font for Greek letters using |\mathfont|, macros created with the commands from this section will affect those characters, unlike in traditional \LaTeX. Similarly, the local font-change commands will affect Cyrillic and Hebrew characters after you call |\mathfont| for those keywords.
+
+Together these eight commands will provide tools for most local font changes, but they won't be able to address everything. Accordingly, \textsf{mathfont} provides the more general |\newmathfontcommand| macro. Its structure is
+\begin{code}
 |\newmathfontcommand{|\meta{control sequence}|}{|\meta{font name}|}{|\meta{series}|}{|\meta{shape}|}|,
 \end{code}
-where the \meta{control sequence} in the first argument again becomes the macro that changes characters to the \meta{font name}. You are welcome to use a system font name with |\newmathfontcommand|, but the intention behind this command is that you can use an \textsc{nfss} family name for the \meta{font name}. Then the series and shape values can correspond to more obscure font faces from the \textsc{nfss} family that you would be otherwise unable to access. The commands from Table~\ref{MathAlpha} as well as |\newmathfontcommand| should appear in the preamble only.
+where the \meta{control sequence} in the first argument again becomes the macro that changes characters to the \meta{font name}. You are welcome to use a system font name with |\newmathfontcommand|, but the intention behind this command is that you can use an \textsc{nfss} family name for the \meta{font name}. Then the series and shape values can correspond to more obscure font faces from the \textsc{nfss} family that you would be otherwise unable to access. The commands from this section should appear in the preamble only.
 
 \section{Default Math Parameters}
 
@@ -226,7 +228,7 @@
 \begin{code}
 |\mathconstantsfont[|\meta{shape}|]{|\meta{prev arg}|}|,
 \end{code}
-where \meta{shape} is an optional argument that can be ``|upright|'' (default) or ``|italic|,'' and \meta{prev arg} should be any argument that you have previously fed to |\mathfont|. When you call |\mathconstantsfont|, \textsf{mathfont} forces Lua\TeX\ to always use the MathConstants table from the font that corresponded to that instance of |\mathfont| in the specified \meta{shape}. You don't need to set the MathConstants table when you use |\setfont| because the package calls |\mathconstantsfont| automatically when you use |\setfont|. This command will not work in \XeTeX\ and should appear only in the preamble.
+where \meta{shape} is an optional argument that can be ``|upright|'' (default) or ``|italic|,'' and \meta{prev arg} should be any argument that you have previously fed to |\mathfont|. When you call |\mathconstantsfont|, \textsf{mathfont} forces Lua\TeX\ to always use the MathConstants table from the font that corresponded to that instance of |\mathfont| in the specified \meta{shape}. You don't need to set the MathConstants table when you use |\setfont| because the package calls |\mathconstantsfont| automatically in this case. This command will not work in \XeTeX\ and should appear only in the preamble.
 
 \section{Lua Font Adjustments}
 
@@ -242,13 +244,13 @@
 \end{tabularx}
 \end{figure}
 
-The \textsf{mathfont} package provides six user-level commands to change positioning of characters in math mode. The commands |\CharmLine| and |\CharmFile| affect specific to various characters. (Charm stands for ``character metric.'') The argument of |\CharmLine| should be a list of integers and/or asterisks separated by commas and/or spaces, and Table~\ref{Charm} shows how many integers you need for different types of characters. The first integer from the argument should be a unicode encoding number, and that tells \textsf{mathfont} how to handle the remaining values.
+The \textsf{mathfont} package provides six user-level commands to change bounding box, size, and accent positioning of characters in math mode. The command |\CharmLine| sets these features for a single math-mode character relative to its text-mode counterpart, and |\CharmFile| does the same thing for multiple characters at a time. (Charm stands for ``character metric.'') The argument of |\CharmLine| should be a list of integers and/or asterisks separated by commas and/or spaces, and Table~\ref{Charm} shows how many integers you need for different types of characters. The first integer should be the unicode encoding value of the character to be adjusted, and \textsf{mathfont} interprets the remaining numbers as follows.
 \begin{itemize}
-\item If the unicode value corresponds to a Latin letter, the next two integers tell Lua\TeX\ how much to stretch the left and right sides of the glyph's bounding box when it appears in math mode. The final two integers determine horizontal placement of top and bottom math accents respectively.
-\item If the unicode value corresponds to a delimiter, the radical (surd) symbol, or a big operator, you will need to specify 16 pairs numbers, for a total of 32 entries. The first 15 pairs are horizontal and vertical scale factors that \textsf{mathfont} uses to create large variants, where successive pairs correspond to the next-larger glyph. The last two integers determine horizontal placement of top and bottom math accents respectively.
-\item If the unicode value corresponds to any other symbol, you should specify two more integers, which will determine the horizontal placement of top and bottom math accents respectively.
+\item If the unicode value corresponds to a Latin letter, you should specify four more numbers. The next two integers tell Lua\TeX\ how much to stretch the left and right sides of the glyph's bounding box when it appears in math mode, and the final two integers determine horizontal placement of top and bottom math accents respectively.
+\item If the unicode value corresponds to a delimiter, the radical (surd) symbol, or a big operator, you need to specify 16 pairs numbers, for a total of 32 more integers. The first 15 pairs are horizontal and vertical scale factors that \textsf{mathfont} uses to create large variants, where successive pairs determine the scaling of each next-larger glyph. The last two integers determine horizontal placement of top and bottom math accents respectively.
+\item If the unicode value corresponds to any other symbol, you should specify two more integers. They determine the horizontal placement of top and bottom math accents respectively.
 \end{itemize}
-Writing an asterisk tells \textsf{mathfont} to use whatever value it has saved in memory, either the default value or the value from the most recent call to |\CharmLine| or |\CharmFile|. If you specify too few charm values, \textsf{mathfont} will raise an error, but if you provide too many, \textsf{mathfont} will silently ignore the extras.
+Writing an asterisk tells \textsf{mathfont} to use whatever value it has saved in memory, either the default value or the value from the most recent call to |\CharmLine| or |\CharmFile|. If you specify too few charm values, \textsf{mathfont} will raise an error, and if you provide too many, \textsf{mathfont} will silently ignore the extras.
 
 \begin{figure}[b]
 \labelfig{Factors}
@@ -263,17 +265,17 @@
 \end{tabularx}
 \end{figure}
 
-For most applications, you can probably ignore charm information altogether, but if you find bounding boxes or accent placement to be off slightly or if you want to change the scaling for a delimiter or big operator, you should try calling |\CharmLine| with different values to see what works. As is typical with decimal inputs in \TeX, \textsf{mathfont} divides your inputs by 1000 before computing with them. Positive integers mean ``increase,'' and negative integers mean ``decrease.'' For a given character, the scale is usually the glyph width. For example,
+For most applications, you can probably ignore charm information altogether, but if you find bounding boxes or accent placement to be off slightly in your equations or if you want to change the scaling for a delimiter or big operator, you should try calling |\CharmLine| with different values to see what works. As is standard with decimal inputs in \TeX, \textsf{mathfont} divides your inputs by 1000 before computing with them. Positive integers mean ``increase,'' and negative integers mean ``decrease.'' For a given character, the scale is usually the glyph width. For example,
 \begin{code}
 |\CharmLine{97, 200, -200, *, 50}|
 \end{code}
-tells \textsf{mathfont} to take the lower-case ``a'' (unicode encoding value of 97), increase the bounding box on the left side by 20\% of the glyph width, decrease the bounding box on the right side by 20\% of the glyph width, do nothing to the top accent, and shift the bottom accent right by 5\% of the glyph width. There is no general formula for what charm values to use for a given font! Rather, you will need to make a design choice based on what looks best, and if you regularly use a particular font, consider making a custom set of charm values uploading it to \textsc{ctan}. Additionally, if you store your charm information in a file, you can read it in with |\CharmFile|. The argument of this command should be a file name, and \textsf{mathfont} reads the file and feeds each line individually to |\CharmLine|.
+tells \textsf{mathfont} to take the lower-case ``a'' (unicode encoding value of 97), increase the bounding box on the left side by 20\% of the glyph width, decrease the bounding box on the right side by 20\% of the glyph width, do nothing to the top accent, and shift the bottom accent right by 5\% of the glyph width. There is no general formula for what charm values to use for a given font! Rather, you will need to make a design choice based on what looks best, and if you regularly use a particular font, consider making a custom set of charm values and uploading it to \textsc{ctan}. Additionally, if you store your charm information in a file, you can read it in with |\CharmFile|. The argument of this command should be a file name, and \textsf{mathfont} reads the file and feeds each line individually to |\CharmLine|.
 
-The commands in Table~\ref{Factors} adjust other aspects of the font as indicated. Each command accepts a single integer as an argument, and \textsf{mathfont} once again divides the input by 1000. With each of these macros, \textsf{mathfont} multiplies the quotient by some default length, so values greater than or less than 1000 mean ``scale up'' or ``scale down'' respectively. For example,
+The commands in Table~\ref{Factors} adjust other aspects of the font as indicated. Each command accepts a single integer as an argument, and \textsf{mathfont} divides the input by 1000. With each macro, \textsf{mathfont} multiplies the quotient by some default length, so values greater than or less than 1000 mean ``scale up'' or ``scale down'' respectively. For example,
 \begin{code}
 |\RuleThicknessFactor{2000}|
 \end{code}
-doubles the thickness of the fraction rule and radical overbar relative to the default, which varies between fonts. Changing the |\RuleThicknessFactor| is useful for fonts with particularly heavy or light weight, and the |\IntegralItalicFactor| is important for making limits better fit integral signs, and the |\SurdVerticalFactor| and |\SurdHorizontalFactor| commands are essential when the top of the surd glyph differs from the top of its bounding box. The six control sequences from this section should appear in the preamble only.
+doubles the thickness of the fraction rule and radical overbar relative to the default, which varies between fonts. Changing the |\RuleThicknessFactor| is useful for fonts with particularly heavy or light weight. The |\IntegralItalicFactor| is important for making limits better fit integral signs, and the |\SurdVerticalFactor| and |\SurdHorizontalFactor| commands are essential when the top of the surd glyph differs from the top of its bounding box. The six control sequences from this section should appear in the preamble only.
 
 \begin{figure}[tb]
 \labelfig{Callbacks}
@@ -290,7 +292,7 @@
 \end{tabularx}
 \end{figure}
 
-Finally, advanced users who want to interact with the font adjustment process directly should use the six callbacks in Table~\ref{Callbacks}. When \textsf{luaotfload} loads a font, \textsf{mathfont} (1) always calls |mathfont.inspect_font| and (2) calls the other five callbacks in the order that they appear in Table~\ref{Callbacks} if the font object contains |nomath=true|. Functions added to these callbacks should accept a font object as a single argument and return nothing. Further, please be careful when loading functions in the |disable_nomath|, |add_math_constants|, and |fix_character_metrics| callbacks. If you add a function there, Lua\TeX\ will not carry out the default behvaior associated with the callback, so do not mess with these three callbacks unless you are duplicating the default behavior or you really know what you're doing. Otherwise, you risk breaking the package. See |mathfont_code.pdf| for more information.
+Finally, advanced users who want to interact with the font adjustment process directly should use the six callbacks in Table~\ref{Callbacks}. When \textsf{luaotfload} loads a font, \textsf{mathfont} (1) always calls |mathfont.inspect_font| and (2) calls the other five callbacks in the order that they appear in Table~\ref{Callbacks} if the font object contains |nomath=true|. Functions added to these callbacks should accept a font object as a single argument and return nothing. Further, please be careful when loading functions in the |disable_nomath|, |add_math_constants|, and |fix_character_metrics| callbacks. If you add a function there, Lua\TeX\ will not carry out the default behavior associated with the callback, so do not mess with these three callbacks unless you are duplicating the default behavior or you really know what you're doing. Otherwise, you risk breaking the package. See |mathfont_code.pdf| for more information.
 
 \end{document}
 \endinput

Modified: trunk/Master/texmf-dist/source/latex/mathfont/mathfont_code.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/mathfont/mathfont_code.dtx	2023-08-22 22:45:20 UTC (rev 68017)
+++ trunk/Master/texmf-dist/source/latex/mathfont/mathfont_code.dtx	2023-08-22 22:45:46 UTC (rev 68018)
@@ -1,10 +1,11 @@
 % \iffalse     ---!!! FIRST META-COMMENT !!!---
 % 
 % 
-% This file is mathfont_code.dtx from version 2.2a of the
+% This file is mathfont_code.dtx from version 2.2b of the
 % free and open-source LaTeX package "mathfont," released
-% December 2022, to be used with the XeTeX or LuaTeX engines.
-% Running Plain TeX mathfont_code.dtx will produce the
+% August 2023, to be used with the XeTeX or LuaTeX engines.
+% 
+% Running Plain TeX on mathfont_code.dtx will produce the
 % following files:
 % 
 %   (1) the package file mathfont.sty;
@@ -42,12 +43,12 @@
 % \iffalse     ---!!! SECOND META-COMMENT !!!---
 % 
 % 
-% This file is from version 2.2a of the free and open-source
-% LaTeX package "mathfont," released December 2022, to be used
+% This file is from version 2.2b of the free and open-source
+% LaTeX package "mathfont," released August 2023, to be used
 % with the XeTeX or LuaTeX engines. (As of version 2.0, LuaTeX
 % is recommended.)
 % 
-% Copyright 2018-2022 by Conrad Kosowsky
+% Copyright 2018-2023 by Conrad Kosowsky
 % 
 % This Work may be used, distributed, and modified under the
 % terms of the LaTeX Public Project License, version 1.3c or
@@ -153,12 +154,12 @@
 \askforoverwritefalse
 \preamble
 
-This file is from version 2.2a of the free and open-source
-LaTeX package "mathfont," released December 2022, to be used
+This file is from version 2.2b of the free and open-source
+LaTeX package "mathfont," released August 2023, to be used
 with the XeTeX or LuaTeX engines. (As of version 2.0, LuaTeX
 is recommended.)
 
-Copyright 2018-2022 by Conrad Kosowsky
+Copyright 2018-2023 by Conrad Kosowsky
 
 This Work may be used, distributed, and modified under the
 terms of the LaTeX Public Project License, version 1.3c or
@@ -219,21 +220,20 @@
   \file{mathfont_example_roboto.tex}{\from{mathfont_code.dtx}{roboto}}
   \file{mathfont_example_typey.tex}{\from{mathfont_code.dtx}{typey}}}
 \catcode`\ =12\relax
-\message{^^J
-****************************************************^^J
-*                                                  *^^J
-* To finish the installation, move the following   *^^J
-* file into a directory searchable by TeX once     *^^J
-* mathfont_code.dtx finishes compiling:            *^^J
-*                                                  *^^J
-*                   mathfont.sty                   *^^J
-*                                                  *^^J
-****************************************************^^J^^J^^J^^J}
+\immediate\write0{^^J%
+***************************************************^^J%
+*  Step 1 of the mathfont installation complete!  *^^J%
+***************************************************^^J^^J%
+***************************************************^^J%
+*  To finish the installation, move mathfont.sty  *^^J%
+*     into a directory searchable by TeX once     *^^J%
+*      mathfont_code.dtx is done typesetting      *^^J%
+***************************************************^^J^^J}
 \endgroup
 \ifx\LaTeX\undefined
-  \message{Plain TeX format used; quitting now.}
-  \message{To create mathfont_code.pdf, run^^J%
-  mathfont_code.dtx through LaTeX.^^J}
+  \immediate\write0{Plain TeX format used; quitting now.}
+  \immediate\write0{To create mathfont_code.pdf, run^^J%
+  mathfont_code.dtx through LaTeX.^^J^^J}
   \expandafter\end
 \fi
 %</batchfile>
@@ -246,6 +246,7 @@
 \usepackage{tabularx}
 \usepackage{booktabs}
 \usepackage{multirow}
+\usepackage{enumitem}
 \c at IndexColumns=2
 \c at topnumber\@ne
 \columnsep=20pt
@@ -284,7 +285,7 @@
 % \fi
 % 
 % 
-% \CheckSum{6619}
+% \CheckSum{6631}
 % \init at checksum
 % 
 % 
@@ -393,7 +394,7 @@
 % First and foremost, the package needs to declare itself.
 %    \begin{macrocode}
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{mathfont}[2022/12/05 v. 2.2a Package mathfont]
+\ProvidesPackage{mathfont}[2023/08/21 v. 2.2b Package mathfont]
 %    \end{macrocode}
 % We specify conditionals that we will use later in handling options and setup.
 %    \begin{macrocode}
@@ -449,38 +450,34 @@
   \M at XeTeXLuaTeXtrue
 \fi
 %    \end{macrocode}
-% The package can raise two fatal errors: one if the engine is not \XeTeX\ or Lua\TeX\ (and cannot load OpenType fonts) and one if \TeX\ cannot find the \textsf{luaotfload} package. In this case, the package will stop loading, so we want a particularly conspicuous error message.
-% 
-% The error message itself is organized as follows. For each message, we check the appropriate conditional to determine if we need to raise the error. If yes, we change |+| to active and define it to be equal to a space character. We use |+| to print multiple spaces inside the error message, and we put the catcode change inside a group to keep it local.\indexpage{catcode changes} We define a |\GenericError| inside a macro and then call the macro for a cleaner error message. The |\@gobbletwo| eats the extra period and return that \LaTeX\ adds to the error message. Notice that we |\endgroup| immediately after issuing the error\textemdash this is because we need |\M at NoFontspecError| to both tokenize its definition and then evaluate while |+| has catcode 13. Otherwise, \TeX\ will issue an |\inaccessible| error. However, we want |\AtBeginDocument| and |\endinput| outside the group. The |\expandafter| means that we expand the final |\fi| before |\endinput|, which balances the original conditional.\indexpage{unable to load}\indexpage{missing xetex or luatex=missing \XeTeX\ or Lua\TeX}
+% The package can raise two fatal errors: one if the engine is not \XeTeX\ or Lua\TeX\ (and cannot load OpenType fonts) and one if \TeX\ cannot find the \textsf{luaotfload} package. In both cases, the package will stop loading, so we want a particularly conspicuous error message. For each message, we check the appropriate conditional to determine if we need to raise the error. If yes, we change space to catcode 12 inside a group.\indexpage{catcode changes} We define a |\GenericError| inside a macro and then call the macro for a cleaner error context line. The |\@gobbletwo| eats the extra period and return that \LaTeX\ adds to the error message. Notice that we expand the error before the |\endgroup|\textemdash this is because we need to switch |\M at NoFontspecError| with its replacement text while it is still defined before we leave the group. At the same time, we want |\AtBeginDocument| and |\endinput| outside the group. The second |\expandafter| means that we expand the final |\fi| before |\endinput|, which balances the original conditional.\indexpage{unable to load}\indexpage{missing xetex or luatex=missing \XeTeX\ or Lua\TeX}
 %    \begin{macrocode}
 \ifM at XeTeXLuaTeX\else
-  \begingroup
-    \catcode`\+=\active
-    \def+{ }
-    \def\M at XeTeXLuaTeXError{\GenericError{}
-      {\MessageBreak\MessageBreak
-      Package mathfont error:
-      \MessageBreak\MessageBreak
-      +*************************\MessageBreak
-      +*+++++++++++++++++++++++*\MessageBreak
-      +*+++++++UNABLE TO+++++++*\MessageBreak
-      +*+++++LOAD MATHFONT+++++*\MessageBreak
-      +*+++++++++++++++++++++++*\MessageBreak
-      +*+++++Missing XeTeX+++++*\MessageBreak
-      +*+++++++or LuaTeX+++++++*\MessageBreak
-      +*+++++++++++++++++++++++*\MessageBreak
-      +*************************\MessageBreak\@gobbletwo}
-      {See the mathfont package documentation for explanation.}
-      {I need XeTeX or LuaTeX to make mathfont\MessageBreak
-      work properly. It looks like the current\MessageBreak
-      engine is something else, so I'm going to\MessageBreak
-      stop reading in the package file now. (You\MessageBreak
-      won't be able to use commands from mathfont\MessageBreak
-      in your document.) To make mathfont work\MessageBreak
-      correctly, please retypeset your document\MessageBreak
-      with one of those two engines.^^J}}
-    \M at XeTeXLuaTeXError
-  \endgroup
+\begingroup
+\catcode`\ =12\relax
+\def\M at XeTeXLuaTeXError{\GenericError{}%
+{\MessageBreak\MessageBreak
+Package mathfont error:%
+\MessageBreak\MessageBreak
+*************************\MessageBreak
+*                       *\MessageBreak
+*       UNABLE TO       *\MessageBreak
+*     LOAD MATHFONT     *\MessageBreak
+*                       *\MessageBreak
+*     Missing XeTeX     *\MessageBreak
+*       or LuaTeX       *\MessageBreak
+*                       *\MessageBreak
+*************************\MessageBreak\@gobbletwo}%
+{See the mathfont package documentation for explanation.}%
+{I need XeTeX or LuaTeX to use mathfont. It\MessageBreak
+looks like the current engine is something\MessageBreak
+else, so I'm going to stop reading in the\MessageBreak
+package file now. (You won't be able to use\MessageBreak
+commands from mathfont in your document.) To\MessageBreak
+load mathfont correctly, please retypeset your\MessageBreak
+document with one of those two engines.^^J}}%
+\expandafter\endgroup
+\M at XeTeXLuaTeXError
   \AtEndOfPackage{\typeout{:: mathfont :: Failed to load\on at line.}}
   \expandafter\endinput % we should \endinput with a balanced conditional
 \fi
@@ -489,7 +486,8 @@
 %    \begin{macrocode}
 \ifdefined\directlua
   \M at adjust@fonttrue % if engine is LuaTeX, adjust font by default
-  \IfFileExists{luaotfload.sty}{\M at Noluaotfloadfalse}{\M at Noluaotfloadtrue}
+  \IfFileExists{luaotfload.sty}
+    {\M at Noluaotfloadfalse\RequirePackage{luaotfload}}{\M at Noluaotfloadtrue}
 \else
   \PackageWarningNoLine{mathfont}{%
     The current engine is XeTeX, but as\MessageBreak
@@ -499,40 +497,40 @@
     work with XeTeX}
 \fi
 %    \end{macrocode}
-% If the engine is Lua\TeX, we absolutely must have \textsf{luaotfload} because Lua\TeX\ needs this package to load OpenType fonts. Before anything else, \TeX\ should check whether it can find |luaotfload.sty| and stop reading in \textsf{mathfont} if it cannot. Same command structure as before. Newer \LaTeX\ installations try to load \textsf{luaotfload} as part of the format, but it never hurts to double check.\indexpage{unable to load}\indexpage{cannot not find the file luaotfloadsty=cannot find the file \texttt{luaotfload}}
+% If the engine is Lua\TeX, we absolutely must have \textsf{luaotfload} because Lua\TeX\ needs this package to load OpenType fonts. Before anything else, \TeX\ should check whether it can find |luaotfload.sty| and stop reading in \textsf{mathfont} if it cannot. Same command structure as before. Newer \LaTeX\ versions load \textsf{luaotfload} as part of the format, but it never hurts to double check.\indexpage{unable to load}\indexpage{cannot not find the file luaotfloadsty=cannot find the file \texttt{luaotfload}}
 %    \begin{macrocode}
 \ifM at Noluaotfload % false by default; true if LuaTeX AND no luaotfload.sty
-  \begingroup
-    \catcode`\+=\active
-    \def+{ }
-    \def\M at NoluaotfloadError{\GenericError{}
-      {\MessageBreak\MessageBreak
-      Package mathfont error:
-      \MessageBreak\MessageBreak
-      +*************************\MessageBreak
-      +*+++++++++++++++++++++++*\MessageBreak
-      +*+++++++UNABLE TO+++++++*\MessageBreak
-      +*+++++LOAD MATHFONT+++++*\MessageBreak
-      +*+++++++++++++++++++++++*\MessageBreak
-      +*++++Cannot find the++++*\MessageBreak
-      +*++file luaotfload.sty++*\MessageBreak
-      +*+++++++++++++++++++++++*\MessageBreak
-      +*************************\MessageBreak\@gobbletwo}
-      {You are likely seeing this message because you haven't^^J%
-      installed luaotfload. Check your TeX distribution for a^^J%
-      list of the packages on your system. See the mathfont^^J%
-      documentation for further explanation.^^J}
-      {It looks like the current engine is LuaTeX, so I\MessageBreak
-      need the luaotfload package to make mathfont work\MessageBreak
-      correctly. I can't find luaotfload, so I'm going to\MessageBreak
-      stop reading in the mathfont package file now. (You\MessageBreak
-      won't be able to use commands from mathfont in your\MessageBreak
-      document.) To make mathfont work correctly, make\MessageBreak
-      sure luaotfload.sty is installed on your computer\MessageBreak
-      in a directory searchable by TeX or compile with\MessageBreak
-      XeLaTeX.^^J}}
-    \M at NoluaotfloadError
-  \endgroup
+\begingroup
+\catcode`\ =12\relax
+\def\M at NoluaotfloadError{\GenericError{}%
+{\MessageBreak\MessageBreak
+Package mathfont error:%
+\MessageBreak\MessageBreak
+*************************\MessageBreak
+*                       *\MessageBreak
+*       UNABLE TO       *\MessageBreak
+*     LOAD MATHFONT     *\MessageBreak
+*                       *\MessageBreak
+*    Cannot find the    *\MessageBreak
+*  file luaotfload.sty  *\MessageBreak
+*                       *\MessageBreak
+*************************\MessageBreak\@gobbletwo}%
+{You are likely seeing this message because you haven't^^J%
+installed luaotfload. Check your TeX distribution for a^^J%
+list of the packages on your system.^^J^^J%
+See the mathfont documentation for further explanation.}%
+{You're in trouble here. It looks like the current\MessageBreak
+engine is LuaTeX, so I need the luaotfload package\MessageBreak
+to make mathfont work properly. However, I can't\MessageBreak
+find luaotfload, which likely means something is\MessageBreak
+wrong with your TeX installation. I'm going to stop\MessageBreak
+reading in the mathfont package file. (You won't be\MessageBreak
+able to use commands from mathfont in your document.)\MessageBreak
+To load mathfont work correctly, make sure you have\MessageBreak
+installed luaotfload.sty in a directory searchable\MessageBreak
+by TeX or compile with XeLaTeX.^^J}}%
+\expandafter\endgroup
+\M at NoluaotfloadError
   \AtEndOfPackage{\typeout{:: mathfont :: Failed to load\on at line.}}
   \expandafter\endinput % we should \endinput with a balanced conditional
 \fi
@@ -546,7 +544,7 @@
   instead. For more information,\MessageBreak
   see the mathfont documentation.}}
 %    \end{macrocode}
-% Now we code the package options. The deprecated options now cause an error.
+% Now we code the package options. The deprecated options cause an error.
 %    \begin{macrocode}
 \DeclareOption{packages}{%
   \M at Optiondeprecated{packages}
@@ -628,7 +626,7 @@
     {Your package option "adjust" was ignored.\MessageBreak
     This option works only with LuaTeX, and it\MessageBreak
     looks like the current engine is XeTeX. To\MessageBreak
-    enable Lua-based font adjustments, compile\MessageBreak
+    enable Lua-based font adjustments, typeset\MessageBreak
     with LuaLaTeX.^^J}}
     \M at adjust@fontfalse
   \fi
@@ -1000,30 +998,30 @@
 % Default shapes.
 % \indexpage{keyword options=keyword options for \texttt{\char`\\mathfont}}
 %    \begin{macrocode}
-\def\M at uppershape{italic} % latin upper
-\def\M at lowershape{italic} % latin lower
-\def\M at diacriticsshape{upright} % diacritics
-\def\M at greekuppershape{upright} % greek upper
-\def\M at greeklowershape{italic} % greek lower
-\def\M at agreekuppershape{upright} % ancient greek upper
-\def\M at agreeklowershape{italic} % ancient greek lower
+\def\M at uppershape{italic}          % latin upper
+\def\M at lowershape{italic}          % latin lower
+\def\M at diacriticsshape{upright}    % diacritics
+\def\M at greekuppershape{upright}    % greek upper
+\def\M at greeklowershape{italic}     % greek lower
+\def\M at agreekuppershape{upright}   % ancient greek upper
+\def\M at agreeklowershape{italic}    % ancient greek lower
 \def\M at cyrillicuppershape{upright} % cyrillic upper
-\def\M at cyrilliclowershape{italic} % cyrillic lower
-\def\M at hebrewshape{upright} % hebrew
-\def\M at digitsshape{upright} % numerals
-\def\M at operatorshape{upright} % operator font
-\def\M at delimitersshape{upright} % delimiters
-\def\M at radicalshape{upright} % surd
-\def\M at bigopsshape{upright} % big operators
-\def\M at extbigopsshape{upright} % extended big operators
-\def\M at symbolsshape{upright} % basic symbols
-\def\M at extsymbolsshape{upright} % extended symbols
-\def\M at arrowsshape{upright} % arrows
-\def\M at bbshape{upright} % blackboard bold
-\def\M at calshape{upright} % caligraphic
-\def\M at frakshape{upright} % fraktur
-\def\M at bcalshape{upright} % bold caligraphic
-\def\M at bfrakshape{upright} % bold fraktur
+\def\M at cyrilliclowershape{italic}  % cyrillic lower
+\def\M at hebrewshape{upright}        % hebrew
+\def\M at digitsshape{upright}        % numerals
+\def\M at operatorshape{upright}      % operator font
+\def\M at delimitersshape{upright}    % delimiters
+\def\M at radicalshape{upright}       % surd
+\def\M at bigopsshape{upright}        % big operators
+\def\M at extbigopsshape{upright}     % extended big operators
+\def\M at symbolsshape{upright}       % basic symbols
+\def\M at extsymbolsshape{upright}    % extended symbols
+\def\M at arrowsshape{upright}        % arrows
+\def\M at bbshape{upright}            % blackboard bold
+\def\M at calshape{upright}           % caligraphic
+\def\M at frakshape{upright}          % fraktur
+\def\M at bcalshape{upright}          % bold caligraphic
+\def\M at bfrakshape{upright}         % bold fraktur
 %    \end{macrocode}
 % The |\M at keys| list stores all the possible keyword options, and |\M at defaultkeys| stores the character classes that |\mathfont| acts on by default.
 % \indexpage{keyword options=keyword options for \texttt{\char`\\mathfont}}
@@ -1058,8 +1056,7 @@
 % We use |\M at split@colon| and |\M at strip@colon| for parsing the argument of |\mathfont|. If the user calls |\mathfont{|\meta{name}|:|\meta{features}|}|, we store the name in |\@tempbase| and the features in |\@tempfeatures|. If the user specifies a name only, then |\@tempfeatures| will be empty. Syntactically, we use |\M at strip@colon| to remove a final |:| the same way we removed a final |=| when we parsed the optional argument in the previous section.
 % \?\@tempfeatures\?\@tempbase
 %    \begin{macrocode}
-\def\M at split@colon#1:#2\@nil{%
-  \def\@tempbase{#1}
+\def\M at split@colon#1:#2\@nil{\def\@tempbase{#1}
   \def\@tempfeatures{#2}}
 \def\M at strip@colon#1:{#1}
 %    \end{macrocode}
@@ -1099,7 +1096,7 @@
       {<->"\@tempbase/BI:\M at otf@features;#2"}{}
   \fi
 %    \end{macrocode}
-% Now do the same thing for the small caps variants. I make no promises that this will work. If a small caps font faces is separate from the main font file, \TeX\ won't be able to find it automatically. In that case, you will have to write your own |fd| file or |\DeclareFontShape| commands.
+% Now do the same thing for the small caps variants. I make no promises that this will work. If a small caps font face is separate from the main font file, \TeX\ won't be able to find it automatically. In that case, you will have to write your own |fd| file or |\DeclareFontShape| commands.
 %    \begin{macrocode}
   \ifcsname TU/#1/\mddefault/\scdefault\endcsname
   \else
@@ -1228,7 +1225,7 @@
   \@for\@j:=\M at keys\do{%
     \ifx\@j#1
       \let\@temperror\@gobble % eliminate error
-      \@optionpresenttrue % set switch to true
+      \@optionpresenttrue     % set switch to true
     \fi}
   \def\@j{empty} % if option is "empty," we do nothing
   \ifx\@j#1
@@ -1247,7 +1244,7 @@
   \@for\@j:=roman,upright,italic\do{%
     \ifx\@j#1
       \let\@temperror\@gobble % eliminate error
-      \@suboptionpresenttrue % set switch to true
+      \@suboptionpresenttrue  % set switch to true
     \fi}
   \@temperror{#1}}
 %    \end{macrocode}
@@ -1256,10 +1253,10 @@
 %   \begin{macrocode}
 \def\M at strip@equals#1={#1}
 \def\M at parse@option#1=#2\@nil{%
-  \@optionpresentfalse % set switch to false by default
+  \@optionpresentfalse    % set switch to false by default
   \@suboptionpresentfalse % set switch to false by default
-  \def\@temp at opt{#1} % store option
-  \def\@temp at sub{#2} % store suboption
+  \def\@temp at opt{#1}      % store option
+  \def\@temp at sub{#2}      % store suboption
 %    \end{macrocode}
 % After storing the option in |\@temp at opt| and suboption in |\@temp at sub|, check for errors. We check for errors by determining if (1) |\@tempa| is empty, meaning the user did not specify an option; or (2) |@tempb| is |=|, meaning the user typed |=| but did not follow it with a suboption.
 %    \begin{macrocode}
@@ -1433,8 +1430,8 @@
 %    \begin{macrocode}
     \edef\@tempa{\the\M at toks}
     \ifx\@tempa\@empty
-      \wlog{The \string\mathfont\space command on line \the\inputlineno\space
-        did not change the font for any characters!}
+      \wlog{The \string\mathfont\space command on line 
+        \the\inputlineno\space did not change the font for any characters!}
     \else
       \wlog{}
       \typeout{:: mathfont :: Using font \@tempbase\space
@@ -1459,8 +1456,8 @@
 %    \begin{macrocode}
 \ifdefined\directlua
   \let\M at SetMathConstants\relax
-  \protected\def\mathconstantsfont{\@ifnextchar[{\@mathconstantsfont}
-      {\@mathconstantsfont[upright]}}
+  \protected\def\mathconstantsfont{%
+    \@ifnextchar[{\@mathconstantsfont}{\@mathconstantsfont[upright]}}
   \def\@mathconstantsfont[#1]#2{%
     \edef\@tempa{\csname M at fontfamily@base@#2\endcsname}
     \expandafter\ifx\@tempa\relax
@@ -1500,8 +1497,8 @@
           \endcsname % expands to \symMupright<id>
           \csname TU/\m at th@const at nts@font
                     /\seriesdefault
-                    /\m at th@const at nts@font at sh@pe\endcsname
-          % above \csname expands to \TU/<nfss family name>/m/<shape>
+                    /\m at th@const at nts@font at sh@pe
+          \endcsname % expands to \TU/<nfss family name>/m/<shape>
         \globaldefs\@ne
         \expandafter\@gobbletwo\math at fonts % gobble to avoid infinite loop
         \endgroup}
@@ -1519,7 +1516,7 @@
 % 
 % \section{Local Font Changes}\indexpage{local font changes}
 % 
-% This section deals with local font changes. The |\newmathfontcommand| creates macros that change the font for math alphabet characters and is basically a wrapper around |\DeclareMathAlphabet|. First we code |\M at check@csarg|, which accepts two arguments. The |#1| argument is the user-level command that called |\M at check@csarg|, which we use for error messaging, and |#2| should be a single control sequence. The way |\M at check@csarg| scans the following tokens is a bit tricky: (1) check the length of the argument using |\M at check@arglength|; and (2) check that the argument is a control sequence. If the user specifies an argument of the form |{..}|, i.e.\ extra text inside braces, the |\ifcat| will catch it and issue an error. If |\M at check@csarg| likes the input, it sets |\ifM at good@arg| to true, and otherwise, it sets |\ifM at arg@good| to false.
+% This section deals with local font changes. The |\newmathfontcommand| creates macros that change the font for math alphabet characters and is basically a wrapper around |\DeclareMathAlphabet|. First we code |\M at check@csarg|, which accepts two arguments. The |#1| argument is the user-level command that called |\M at check@csarg|, which we use for error messaging, and |#2| should be a single control sequence. The way |\M at check@csarg| scans the following tokens is a bit tricky: (1) check the length of the argument by seeing if |\@gobble| eats it completely; and (2) check that the argument is a control sequence. If the user specifies an argument of the form |{..}|, i.e.\ extra text inside braces, the |\ifcat| will catch it and issue an error. If |\M at check@csarg| likes the input, it sets |\ifM at good@arg| to true, and otherwise, it sets |\ifM at arg@good| to false.
 %    \begin{macrocode}
 \def\M at check@csarg#1#2{%
   \expandafter\ifx\expandafter\@nnil\@gobble#2\@nnil % good
@@ -1545,7 +1542,15 @@
   \fi}
 \@onlypreamble\newmathfontcommand
 %    \end{macrocode}
-% Then define macros that create local font-changing commands with default series and shape information. Because they're all so similar, we metacode them. We define the commands themselves with |\define at newmath@cmd|. The argument structure is: |#1|---|\newmath|\meta{key} macro name; |#2|---font series; |#3|---font shape; |##1|---the control sequence that the user will specify; and |##2|---the user's font information. We feed |##1|, |##2|, |#2|, and |#3| to |\newmathfontcommand|, and we load |##2| with |\M at newfont|. Each |\newmath|\meta{key} macro will check its first argument using |\M at check@csarg| and then call |\newmathfontcommand| on both of its two arguments. We store the list of |\newmath|\meta{key} commands that we want to define with their series and shape information in |\M at default@newmath at cmds|, and we loop through it with |\@for|.
+% Then define macros that create local font-changing commands with default series and shape information. Because they're all so similar, we metacode them. We define the commands themselves with |\define at newmath@cmd|. The argument structure is:
+%   \begin{itemize}[nosep]
+%   \item |#1|---|\newmath|\meta{key} macro name
+%   \item |#2|---font series
+%   \item |#3|---font shape
+%   \item |##1|---the user's control sequence
+%   \item |##2|---the user's font information (family name)
+%   \end{itemize}
+% We feed |##1|, |##2|, |#2|, and |#3| to |\newmathfontcommand|, and we load |##2| with |\M at newfont|. Each |\newmath|\meta{key} macro will check its first argument using |\M at check@csarg| and then call |\newmathfontcommand| on both of its two arguments. We store the list of |\newmath|\meta{key} commands that we want to define with their series and shape information in |\M at default@newmath at cmds|, and we loop through it with |\@for|.
 %    \begin{macrocode}
 \def\M at define@newmath at cmd#1#2#3{%
   \protected\def#1##1##2{%
@@ -1990,7 +1995,7 @@
   \M at fromCharmFilefalse
   \endgroup}
 %    \end{macrocode}
-% This concludes the \TeX-based portion of font adjustments. The rest of this and the next two sections is the Lua script that adapts a text font for math mode. First, we create the |mathfont| table.
+% This concludes the \TeX-based portion of font adjustments. The rest of this section and the next two sections are the Lua code that adapts a text font for math mode. First, we create the |mathfont| table.
 %    \begin{macrocode}
 \directlua{
 mathfont = {}
@@ -2983,173 +2988,173 @@
 % 
 % This section contains the default charm information for the characters that \textsf{mathfont} adjusts upon loading a font. We will make new variants in the private use area of the font. Lower-case Latin letters will fill unicode slots U+FF000 through U+FF021, which are located in the Supplemental Private Use Area-A portion of the unicode table.
 %    \begin{macrocode}
-mathfont:new_type_a(97, 1044480, {50, 50, -50, 0}) % a
-mathfont:new_type_a(98, 1044481, {50, 50, -50, 0}) % b
-mathfont:new_type_a(99, 1044482, {50, 50, 0, 0}) % c
-mathfont:new_type_a(100, 1044483, {50, -50, -50, 0}) % d
-mathfont:new_type_a(101, 1044484, {50, 50, 0, 0}) % e
-mathfont:new_type_a(102, 1044485, {200, 0, 0, 0}) % f
-mathfont:new_type_a(103, 1044486, {100, 50, -50, 0}) % g
-mathfont:new_type_a(104, 1044487, {50, 0, -50, 0}) % h
-mathfont:new_type_a(105, 1044488, {50, 100, -100, 0}) % i
-mathfont:new_type_a(106, 1044489, {400, 50, -50, 0}) % j
-mathfont:new_type_a(107, 1044490, {50, 50, -100, 0}) % k
+mathfont:new_type_a(97, 1044480, {50, 50, -50, 0})     % a
+mathfont:new_type_a(98, 1044481, {50, 50, -50, 0})     % b
+mathfont:new_type_a(99, 1044482, {50, 50, 0, 0})       % c
+mathfont:new_type_a(100, 1044483, {50, -50, -50, 0})   % d
+mathfont:new_type_a(101, 1044484, {50, 50, 0, 0})      % e
+mathfont:new_type_a(102, 1044485, {200, 0, 0, 0})      % f
+mathfont:new_type_a(103, 1044486, {100, 50, -50, 0})   % g
+mathfont:new_type_a(104, 1044487, {50, 0, -50, 0})     % h
+mathfont:new_type_a(105, 1044488, {50, 100, -100, 0})  % i
+mathfont:new_type_a(106, 1044489, {400, 50, -50, 0})   % j
+mathfont:new_type_a(107, 1044490, {50, 50, -100, 0})   % k
 mathfont:new_type_a(108, 1044491, {100, 150, -100, 0}) % l
-mathfont:new_type_a(109, 1044492, {50, 0, 0, 0}) % m
-mathfont:new_type_a(110, 1044493, {50, 0, 0, 0}) % n
-mathfont:new_type_a(111, 1044494, {50, 0, 0, 0}) % o
-mathfont:new_type_a(112, 1044495, {200, 50, -50, 0}) % p
-mathfont:new_type_a(113, 1044496, {50, 0, -50, 0}) % q
-mathfont:new_type_a(114, 1044497, {100, 100, -50, 0}) % r
-mathfont:new_type_a(115, 1044498, {50, 50, -50, 0}) % s
-mathfont:new_type_a(116, 1044499, {50, 50, -50, 0}) % t
-mathfont:new_type_a(117, 1044500, {0, 50, 0, 0}) % u
-mathfont:new_type_a(118, 1044501, {0, 50, -50, 0}) % v
-mathfont:new_type_a(119, 1044502, {0, 50, 0, 0}) % w
-mathfont:new_type_a(120, 1044503, {50, 0, -50, 0}) % x
-mathfont:new_type_a(121, 1044504, {150, 50, -50, 0}) % y
-mathfont:new_type_a(122, 1044505, {100, 50, -100, 0}) % z
+mathfont:new_type_a(109, 1044492, {50, 0, 0, 0})       % m
+mathfont:new_type_a(110, 1044493, {50, 0, 0, 0})       % n
+mathfont:new_type_a(111, 1044494, {50, 0, 0, 0})       % o
+mathfont:new_type_a(112, 1044495, {200, 50, -50, 0})   % p
+mathfont:new_type_a(113, 1044496, {50, 0, -50, 0})     % q
+mathfont:new_type_a(114, 1044497, {100, 100, -50, 0})  % r
+mathfont:new_type_a(115, 1044498, {50, 50, -50, 0})    % s
+mathfont:new_type_a(116, 1044499, {50, 50, -50, 0})    % t
+mathfont:new_type_a(117, 1044500, {0, 50, 0, 0})       % u
+mathfont:new_type_a(118, 1044501, {0, 50, -50, 0})     % v
+mathfont:new_type_a(119, 1044502, {0, 50, 0, 0})       % w
+mathfont:new_type_a(120, 1044503, {50, 0, -50, 0})     % x
+mathfont:new_type_a(121, 1044504, {150, 50, -50, 0})   % y
+mathfont:new_type_a(122, 1044505, {100, 50, -100, 0})  % z
 mathfont:new_type_a(305, 1044506, {100, 100, -150, 0}) % \imath
-mathfont:new_type_a(567, 1044507, {700, 50, -150, 0}) % \jmath
+mathfont:new_type_a(567, 1044507, {700, 50, -150, 0})  % \jmath
 %    \end{macrocode}
 % Upper-case Latin letters will fill unicode slots U+FF020 through U+FF039.
 %    \begin{macrocode}
-mathfont:new_type_a(65, 1044512, {50, 0, 150, 0}) % A
-mathfont:new_type_a(66, 1044513, {50, 0, 0, 0}) % B
-mathfont:new_type_a(67, 1044514, {0, 0, 0, 0}) % C
-mathfont:new_type_a(68, 1044515, {50, 0, -50, 0}) % D
-mathfont:new_type_a(69, 1044516, {50, 0, 0, 0}) % E
-mathfont:new_type_a(70, 1044517, {50, 0, 0, 0}) % F
-mathfont:new_type_a(71, 1044518, {0, 0, 0, 0}) % G
-mathfont:new_type_a(72, 1044519, {50, 0, -50, 0}) % H
-mathfont:new_type_a(73, 1044520, {100, 0, 0, 0}) % I
-mathfont:new_type_a(74, 1044521, {50, 0, 100, 0}) % J
-mathfont:new_type_a(75, 1044522, {50, 0, 0, 0}) % K
+mathfont:new_type_a(65, 1044512, {50, 0, 150, 0})  % A
+mathfont:new_type_a(66, 1044513, {50, 0, 0, 0})    % B
+mathfont:new_type_a(67, 1044514, {0, 0, 0, 0})     % C
+mathfont:new_type_a(68, 1044515, {50, 0, -50, 0})  % D
+mathfont:new_type_a(69, 1044516, {50, 0, 0, 0})    % E
+mathfont:new_type_a(70, 1044517, {50, 0, 0, 0})    % F
+mathfont:new_type_a(71, 1044518, {0, 0, 0, 0})     % G
+mathfont:new_type_a(72, 1044519, {50, 0, -50, 0})  % H
+mathfont:new_type_a(73, 1044520, {100, 0, 0, 0})   % I
+mathfont:new_type_a(74, 1044521, {50, 0, 100, 0})  % J
+mathfont:new_type_a(75, 1044522, {50, 0, 0, 0})    % K
 mathfont:new_type_a(76, 1044523, {50, 0, -180, 0}) % L
-mathfont:new_type_a(77, 1044524, {50, 0, -50, 0}) % M
-mathfont:new_type_a(78, 1044525, {50, 0, -50, 0}) % N
-mathfont:new_type_a(79, 1044526, {0, 0, 0, 0}) % O
-mathfont:new_type_a(80, 1044527, {0, 0, -50, 0}) % P
-mathfont:new_type_a(81, 1044528, {0, 50, 0, 0}) % Q
-mathfont:new_type_a(82, 1044529, {50, 0, -50, 0}) % R
-mathfont:new_type_a(83, 1044530, {0, 0, -50, 0}) % S
-mathfont:new_type_a(84, 1044531, {0, 0, -50, 0}) % T
-mathfont:new_type_a(85, 1044532, {0, 0, -50, 0}) % U
-mathfont:new_type_a(86, 1044533, {0, 50, 0, 0}) % V
-mathfont:new_type_a(87, 1044534, {0, 50, -50, 0}) % W
-mathfont:new_type_a(88, 1044535, {50, 0, 0, 0}) % X
-mathfont:new_type_a(89, 1044536, {0, 0, -50, 0}) % Y
-mathfont:new_type_a(90, 1044537, {50, 0, -50, 0}) % Z
+mathfont:new_type_a(77, 1044524, {50, 0, -50, 0})  % M
+mathfont:new_type_a(78, 1044525, {50, 0, -50, 0})  % N
+mathfont:new_type_a(79, 1044526, {0, 0, 0, 0})     % O
+mathfont:new_type_a(80, 1044527, {0, 0, -50, 0})   % P
+mathfont:new_type_a(81, 1044528, {0, 50, 0, 0})    % Q
+mathfont:new_type_a(82, 1044529, {50, 0, -50, 0})  % R
+mathfont:new_type_a(83, 1044530, {0, 0, -50, 0})   % S
+mathfont:new_type_a(84, 1044531, {0, 0, -50, 0})   % T
+mathfont:new_type_a(85, 1044532, {0, 0, -50, 0})   % U
+mathfont:new_type_a(86, 1044533, {0, 50, 0, 0})    % V
+mathfont:new_type_a(87, 1044534, {0, 50, -50, 0})  % W
+mathfont:new_type_a(88, 1044535, {50, 0, 0, 0})    % X
+mathfont:new_type_a(89, 1044536, {0, 0, -50, 0})   % Y
+mathfont:new_type_a(90, 1044537, {50, 0, -50, 0})  % Z
 %    \end{macrocode}
 % The Greek characters will be type |u|, so we don't need extra unicode slots for them. In future editions of \textsf{mathfont}, they may becoeme type |a| with adjusted bounding boxes, but I don't have immediate plans for such a change.
 %    \begin{macrocode}
-mathfont:new_type_u(945, {0, 0}) % \alpha
-mathfont:new_type_u(946, {0, 0}) % \beta
-mathfont:new_type_u(947, {-50, 0}) % \gamma
-mathfont:new_type_u(948, {0, 0}) % \delta
-mathfont:new_type_u(1013, {50, 0}) % \epsilon
-mathfont:new_type_u(950, {0, 0}) % \zeta
-mathfont:new_type_u(951, {-50, 0}) % \eta
-mathfont:new_type_u(952, {0, 0}) % \theta
-mathfont:new_type_u(953, {-50, 0}) % \iota
-mathfont:new_type_u(954, {0, 0}) % \kappa
+mathfont:new_type_u(945, {0, 0})    % \alpha
+mathfont:new_type_u(946, {0, 0})    % \beta
+mathfont:new_type_u(947, {-50, 0})  % \gamma
+mathfont:new_type_u(948, {0, 0})    % \delta
+mathfont:new_type_u(1013, {50, 0})  % \epsilon
+mathfont:new_type_u(950, {0, 0})    % \zeta
+mathfont:new_type_u(951, {-50, 0})  % \eta
+mathfont:new_type_u(952, {0, 0})    % \theta
+mathfont:new_type_u(953, {-50, 0})  % \iota
+mathfont:new_type_u(954, {0, 0})    % \kappa
 mathfont:new_type_u(955, {-150, 0}) % lambda
-mathfont:new_type_u(956, {0, 0}) % \mu
-mathfont:new_type_u(957, {-50, 0}) % \nu
-mathfont:new_type_u(958, {0, 0}) % \xi
-mathfont:new_type_u(959, {0, 0}) % \omicron
+mathfont:new_type_u(956, {0, 0})    % \mu
+mathfont:new_type_u(957, {-50, 0})  % \nu
+mathfont:new_type_u(958, {0, 0})    % \xi
+mathfont:new_type_u(959, {0, 0})    % \omicron
 mathfont:new_type_u(960, {-100, 0}) % \pi
-mathfont:new_type_u(961, {-50, 0}) % \rho
+mathfont:new_type_u(961, {-50, 0})  % \rho
 mathfont:new_type_u(963, {-100, 0}) % \sigma
 mathfont:new_type_u(964, {-100, 0}) % \tau
-mathfont:new_type_u(965, {-50, 0}) % \upsilon
-mathfont:new_type_u(981, {0, 0}) % \phi
-mathfont:new_type_u(967, {-50, 0}) % \chi
-mathfont:new_type_u(968, {-50, 0}) % \psi
-mathfont:new_type_u(969, {0, 0}) % \omega
-mathfont:new_type_u(976, {0, 0}) % \varbeta
-mathfont:new_type_u(949, {-50, 0}) % \varepsilon
-mathfont:new_type_u(977, {50, 0}) % \vartheta
+mathfont:new_type_u(965, {-50, 0})  % \upsilon
+mathfont:new_type_u(981, {0, 0})    % \phi
+mathfont:new_type_u(967, {-50, 0})  % \chi
+mathfont:new_type_u(968, {-50, 0})  % \psi
+mathfont:new_type_u(969, {0, 0})    % \omega
+mathfont:new_type_u(976, {0, 0})    % \varbeta
+mathfont:new_type_u(949, {-50, 0})  % \varepsilon
+mathfont:new_type_u(977, {50, 0})   % \vartheta
 mathfont:new_type_u(1009, {-50, 0}) % \varrho
-mathfont:new_type_u(962, {-50, 0}) % \varsigma
-mathfont:new_type_u(966, {0, 0}) % \varphi
+mathfont:new_type_u(962, {-50, 0})  % \varsigma
+mathfont:new_type_u(966, {0, 0})    % \varphi
 %    \end{macrocode}
 % Upper-case Greek characters. Same as previously.
 %    \begin{macrocode}
-mathfont:new_type_u(913, {0, 0}) % \Alpha
-mathfont:new_type_u(914, {0, 0}) % \Beta
-mathfont:new_type_u(915, {0, 0}) % \Gamma
-mathfont:new_type_u(916, {0, 0}) % \Delta
-mathfont:new_type_u(917, {0, 0}) % \Epsilon
-mathfont:new_type_u(918, {0, 0}) % \Zeta
-mathfont:new_type_u(919, {0, 0}) % \Eta
-mathfont:new_type_u(920, {0, 0}) % \Theta
-mathfont:new_type_u(921, {0, 0}) % \Iota
-mathfont:new_type_u(922, {0, 0}) % \Kappa
-mathfont:new_type_u(923, {0, 0}) % \Lambda
-mathfont:new_type_u(924, {0, 0}) % \Mu
-mathfont:new_type_u(925, {0, 0}) % \Nu
-mathfont:new_type_u(926, {0, 0}) % \Xi
-mathfont:new_type_u(927, {0, 0}) % \Omicron
-mathfont:new_type_u(928, {0, 0}) % \Pi
-mathfont:new_type_u(929, {0, 0}) % \Rho
-mathfont:new_type_u(931, {0, 0}) % \Sigma
-mathfont:new_type_u(932, {0, 0}) % \Tau
-mathfont:new_type_u(933, {0, 0}) % \Upsilon
-mathfont:new_type_u(934, {0, 0}) % \Phi
-mathfont:new_type_u(935, {0, 0}) % \Chi
-mathfont:new_type_u(936, {0, 0}) % \Psi
-mathfont:new_type_u(937, {0, 0}) % \Omega
-mathfont:new_type_u(1012, {0, 0}) % \varTheta
+mathfont:new_type_u(913, {0, 0})    % \Alpha
+mathfont:new_type_u(914, {0, 0})    % \Beta
+mathfont:new_type_u(915, {0, 0})    % \Gamma
+mathfont:new_type_u(916, {0, 0})    % \Delta
+mathfont:new_type_u(917, {0, 0})    % \Epsilon
+mathfont:new_type_u(918, {0, 0})    % \Zeta
+mathfont:new_type_u(919, {0, 0})    % \Eta
+mathfont:new_type_u(920, {0, 0})    % \Theta
+mathfont:new_type_u(921, {0, 0})    % \Iota
+mathfont:new_type_u(922, {0, 0})    % \Kappa
+mathfont:new_type_u(923, {0, 0})    % \Lambda
+mathfont:new_type_u(924, {0, 0})    % \Mu
+mathfont:new_type_u(925, {0, 0})    % \Nu
+mathfont:new_type_u(926, {0, 0})    % \Xi
+mathfont:new_type_u(927, {0, 0})    % \Omicron
+mathfont:new_type_u(928, {0, 0})    % \Pi
+mathfont:new_type_u(929, {0, 0})    % \Rho
+mathfont:new_type_u(931, {0, 0})    % \Sigma
+mathfont:new_type_u(932, {0, 0})    % \Tau
+mathfont:new_type_u(933, {0, 0})    % \Upsilon
+mathfont:new_type_u(934, {0, 0})    % \Phi
+mathfont:new_type_u(935, {0, 0})    % \Chi
+mathfont:new_type_u(936, {0, 0})    % \Psi
+mathfont:new_type_u(937, {0, 0})    % \Omega
+mathfont:new_type_u(1012, {0, 0})   % \varTheta
 %    \end{macrocode}
 % We add the charm information for delimiters and other resizable characters. We divide the characters into four categories depending on how we want to magnify the base glyph to create large variants: delimiters, big operators, vertical characters, and the integral sign. We automate the process by putting charm information for each category of character into a separate table and feeding the whole thing to a wrapper around |:new_type_e|.
 %    \begin{macrocode}
 local delim_glyphs = {40, % (
-  41, % )
-  47, % /
-  91, % [
-  92, % backslash
-  93, % ]
-  123, % {
-  125, % }
-  8249, % \lguil
-  8250, % \rguil
-  171, % \llguil
-  187, % \rrguil
+  41,      % )
+  47,      % /
+  91,      % [
+  92,      % backslash
+  93,      % ]
+  123,     % {
+  125,     % }
+  8249,    % \lguil
+  8250,    % \rguil
+  171,     % \llguil
+  187,     % \rrguil
   1044508, % \fakelangle
   1044509, % \fakerangle
   1044510, % \fakellangle
   1044511} % \fakerrangle
 local big_op_glyphs = {33, % !
-  35, % #
-  36, % $
-  37, % %
-  38, % &
-  43, % +
-  63, % ?
-  64, % @
-  167, % \S
-  215, % \times
-  247, % \div
-  8719, % \prod
-  8721, % \sum
-  8720, % \coprod
-  8897, % \bigvee
-  8896, % \bigwedge
-  8899, % \bigcup
-  8898, % \bigcap
-  10753, % \bigoplus
-  10754, % \bigotimes
-  10752, % \bigodot
-  10757, % \bigsqcap
-  10758} % \bigsqcup
+  35,      % #
+  36,      % $
+  37,      % %
+  38,      % &
+  43,      % +
+  63,      % ?
+  64,      % @
+  167,     % \S
+  215,     % \times
+  247,     % \div
+  8719,    % \prod
+  8721,    % \sum
+  8720,    % \coprod
+  8897,    % \bigvee
+  8896,    % \bigwedge
+  8899,    % \bigcup
+  8898,    % \bigcap
+  10753,   % \bigoplus
+  10754,   % \bigotimes
+  10752,   % \bigodot
+  10757,   % \bigsqcap
+  10758}   % \bigsqcup
 local vert_glyphs = {124, 8730} % | and \surd
 local int_glyphs = {8747, % \intop
-  8748, % \iint
-  8749, % \iiint
-  8750, % \oint
-  8751, % \oiint
-  8752} % \oiiint
+  8748,    % \iint
+  8749,    % \iiint
+  8750,    % \oint
+  8751,    % \oiint
+  8752}    % \oiiint
 %    \end{macrocode}
 % The variable |smash| will keep track of the unicode index used to store the smashed version of the character. 
 %    \begin{macrocode}
@@ -3165,17 +3170,17 @@
 % Populate each table with magnification information. For every type |e| character we will create fifteen larger variants in the font. Delimiters stretch mostly vertically and some horzontally. Vertical characters stretch vertically only, so their horizontal scale factors are all constant. Big operators stretch the same in vertical and horizoontal directions.
 %    \begin{macrocode}
 for i = 1, 15, 1 do
-  delim_scale[2*i-1] = 1000 + 100*i % horizontal - delimiters
-  delim_scale[2*i] = 1000 + 500*i   % vertical - delimiters
+  delim_scale[2*i-1] = 1000 + 100*i  % horizontal - delimiters
+  delim_scale[2*i] = 1000 + 500*i    % vertical - delimiters
   vert_scale[2*i-1] = 1000
-  vert_scale[2*i] = 1000 + 500*i    % vertical - vertically scaled chars
-  big_op_scale[2*i-1] = 1000 + 100*i   % horizontal - big operators
-  big_op_scale[2*i] = 1000 + 100*i     % vertical - big operators
+  vert_scale[2*i] = 1000 + 500*i     % vertical - vertically scaled chars
+  big_op_scale[2*i-1] = 1000 + 100*i % horizontal - big operators
+  big_op_scale[2*i] = 1000 + 100*i   % vertical - big operators
 %    \end{macrocode}
 % The integral sign is particular. Visually, we would like an integral symbol that is larger than the large operators, which means that the integral sign should have no variants between the font's value of |\Umathoperatorsize| and the desired larger size. Accordingly, I decided it would be easiest to have large variants of the integral sign jump by large enough scale factors that the smallest variant larger than the regular size is already significantly larger than the |\Umathoperatorsize| setting in |populate_math_constants|. Effectively this means that the user should take the size of the integral operator as fixed and should set |\Umathoperatorsize| to make all other big operators the desired size.
 %    \begin{macrocode}
-  int_scale[2*i-1] = 1000 + 500*i     % horizontal - integral sign
-  int_scale[2*i] = 1000 + 1500*i      % vertical - integral sign
+  int_scale[2*i-1] = 1000 + 500*i    % horizontal - integral sign
+  int_scale[2*i] = 1000 + 1500*i     % vertical - integral sign
 end
 %    \end{macrocode}
 % We do not modify accent placement.
@@ -3677,7 +3682,7 @@
     \let\M at operator@mathcodes\@empty
   \fi
 %    \end{macrocode}
-% Then we change the |\operator at font| definition and if necessary change the math codes.
+% Then we change the |\operator at font| definition and, if applicable, change the math codes.
 %    \begin{macrocode}
   \xdef\operator at font{\noexpand\mathgroup
       \csname symM\M at operatorshape\@tempa\endcsname\M at operator@mathcodes}}
@@ -3935,7 +3940,6 @@
   \let\bowtie\@undefined
   \let\doteq\@undefined
   \let\neq\@undefined
-  \let\ng\@undefined
   \DeclareMathSymbol{\wp}{\mathord}{\M at extsymbols@font}{"2118}
   \DeclareMathSymbol{\Re}{\mathord}{\M at extsymbols@font}{"211C}
   \DeclareMathSymbol{\Im}{\mathord}{\M at extsymbols@font}{"2111}
@@ -4067,7 +4071,6 @@
   \DeclareMathSymbol{\sqsupsetneq}{\mathrel}{\M at extsymbols@font}{"22E5}
   \DeclareMathSymbol{\neq}{\mathrel}{\M at extsymbols@font}{"2260}
   \DeclareMathSymbol{\nl}{\mathrel}{\M at extsymbols@font}{"226E}
-  \DeclareMathSymbol{\ng}{\mathrel}{\M at extsymbols@font}{"226F}
   \DeclareMathSymbol{\nleq}{\mathrel}{\M at extsymbols@font}{"2270}
   \DeclareMathSymbol{\ngeq}{\mathrel}{\M at extsymbols@font}{"2271}
   \DeclareMathSymbol{\lneq}{\mathrel}{\M at extsymbols@font}{"2A87}
@@ -4103,8 +4106,15 @@
   \DeclareMathSymbol{\succnapprox}{\mathrel}{\M at extsymbols@font}{"2ABA}
   \DeclareMathSymbol{\nequiv}{\mathrel}{\M at extsymbols@font}{"2262}
 %    \end{macrocode}
-% If we're not adjusting the font, we need to declare |\nabla| here.
+% We handle |\ng| specially. The \LaTeX\ kernel defines |\ng| as a text symbol, so we define |\mathng| like for |\$|, etc.
 %    \begin{macrocode}
+  \global\let\textng\ng
+  \let\ng\@undefined
+  \DeclareMathSymbol{\mathng}{\mathrel}{\M at extsymbols@font}{"226F}
+  \protected\gdef\ng{\ifmmode\mathng\else\textng\fi}
+%    \end{macrocode}
+% If we're not adjusting the font, we declare |\nabla| here.
+%    \begin{macrocode}
   \ifM at adjust@font\else
     \DeclareMathSymbol{\nabla}{\mathord}{\M at extsymbols@font}{"2207}
   \fi}
@@ -4709,9 +4719,11 @@
 % \version{2.2a}{December 2022\strut}
 % \item bug fix for |\mathconstantsfont|
 % \item bug fix for |\M at check@int|
-% \item removed |\makeatletter| from example files
 % \item added |doc2| option to |ltxdoc| in \texttt{mathfont\_code.dtx}
 % 
+% \version{2.2b}{August 2023\strut}
+% \item minor changes to code and documentation
+% \item |\ng| now works in math (as not greater than) and text (as pronounciation symbol)
 % 
 % \egroup
 % \end{multicols*}
@@ -4731,7 +4743,7 @@
 \usepackage{graphicx}
 \usepackage{tabularx}
 \usepackage{multirow}
-\usepackage{hyperref}
+\usepackage[implicit=false,colorlinks=true,allcolors=blue]{hyperref}
 \usepackage{enumitem}
 \SetEnumitemKey{special}{topsep=\smallskipamount,
   itemsep=\smallskipamount,
@@ -4758,16 +4770,16 @@
 \input mathfont_heading.tex
 
 
-Handling fonts in \TeX\ and \LaTeX\ is a notoriously difficult task because fonts are complicated.\footnote{The last 30 years have seen huge advances in loading fonts with \TeX. Donald Knuth originally designed \TeX\ to load fonts created with Metafont, and only more recent engines such as Jonathan Kew's \XeTeX\ and Hans Hagen, et al.'s Lua\TeX\ have extended \TeX's font-loading capabilities to unicode. \XeTeX\ supports OpenType and TrueType fonts natively, and Lua\TeX\ can load OpenType fonts through the \textsf{luaotfload} package. Information on \XeTeX\ is available at \link{https://tug.org/xetex/}, and information on Lua\TeX\ is available at the official website for Lua\TeX: \link{http://www.luatex.org/}. See also Ulrike Fischer, et al., ``\textsf{luaotfload}---OpenType `loader' for Plain \TeX\ and \LaTeX,'' \link{https://ctan.org/pkg/luaotfload}.} The \textsf{mathfont} package loads TrueType and OpenType fonts for use in math mode, and this document explains the package's user-level commands. For version history and code implementation, see |mathfont_code.pdf|, and for a list of all symbols accessible with \textsf{mathfont}, see |mathfont_symbol_list.pdf|. The \textsf{mathfont} installation also includes four example files, and all \textsf{mathfont} pdf documentation files are available on \textsc{ctan}. Because unicode text fonts outnumber unicode math fonts, I hope that my package will expand the set of possibilities for typesetting math in \LaTeX. 
+Handling fonts in \TeX\ and \LaTeX\ is a notoriously difficult task because fonts are complicated.\footnote{The last 30 years have seen huge advances in loading fonts with \TeX. Donald Knuth originally designed \TeX\ to load fonts created with Metafont, and only more recent engines such as Jonathan Kew's \XeTeX\ and Hans Hagen, et al.'s Lua\TeX\ have extended \TeX's font-loading capabilities to unicode. \XeTeX\ supports OpenType and TrueType fonts natively, and Lua\TeX\ can load OpenType fonts through the \textsf{luaotfload} package. Information on \XeTeX\ is available at \link{https://tug.org/xetex/}, and information on Lua\TeX\ is available at the official website for Lua\TeX: \link{http://www.luatex.org/}. See also Ulrike Fischer, et al., ``\textsf{luaotfload}---OpenType `loader' for Plain \TeX\ and \LaTeX,'' \link{https://ctan.org/pkg/luaotfload}. For discussion of fonts generally, see Yannis Haralambous, \textit{Fonts \& Encodings} (Sebastopol: O'Reilly Media, Inc., 2007).} The \textsf{mathfont} package loads TrueType and OpenType fonts for use in math mode, and this document explains the package's user-level commands. For version history and code implementation, see |mathfont_code.pdf|, and for a list of all symbols accessible with \textsf{mathfont}, see |mathfont_symbol_list.pdf|. The \textsf{mathfont} installation also includes four example files, and all \textsf{mathfont} pdf documentation files are available on \textsc{ctan}. Because unicode text fonts outnumber unicode math fonts, I hope that my package will expand the set of possibilities for typesetting math in \LaTeX. 
 
 
 \section{Loading and Basic Functionality}
 
-Loading fonts for math typesetting is more complicated than for regular text. First, selecting fonts for math mode, both in plain \TeX\ and in the \textsc{nfss}, involves additional macros above and beyond what we need to load text fonts. Second, \TeX\ expects fonts for math to contain extra information for formatting equations.\footnote{Specifically, this extra information is a set of large variants, math-specific parameter values associated with individual characters, and a MathConstants table. Also, math fonts often use slightly wider bounding boxes for letters in math mode---the Computer Modern $f$ is a well-known example. (Compare \fbox{$f$} and \fbox{\texttt{f}}.) For this reason, \textsf{mathfont} also provides an interface to enlarge the bounding boxes of Latin letters when they appear in math mode. See section 5 for details.} Broadly speaking, we say that a \textit{math font} contains this extra information, whereas a \textit{text font} does not, and typesetting math with glyphs from one or more text fonts usually results in equations that are less aesthetically pleasing than using a properly prepared math font. The functionality of \textsf{mathfont} then is twofold: (1) provide a wrapper around the \textsc{nfss} commands for math typesetting that serves as a high-level interface; and (2) implement Lua\TeX\ callbacks that artificially convert text fonts into math fonts at loading.\footnote{Values for MathConstants table are different from but inspired by Ulrik Vieth, ``Understanding the \AE sthetics of Math Typesetting,'' (Bacho\TeX\ Conference, 2008) and Ulrik Vieth ``OpenType Math Illuminated,'' \textit{TUGboat} 30 (2009): 22--31. See also Bogus\l aw Jackowski, ``Appendix G Illuminated,'' \textit{TUGboat} 27 (2006): 83--90.} Although \textsf{mathfont} tries its best to get your fonts right, it may run into trouble when picking fonts to load. If this happens, you should declare your font family and shapes in the \textsc{nfss} before setting any fonts with \textsf{mathfont}.
+Loading fonts for math typesetting is more complicated than for regular text. First, selecting fonts for math mode, both in plain \TeX\ and in the \textsc{nfss}, involves additional macros above and beyond what we need to load text fonts. Second, \TeX\ expects fonts for math to contain extra information for formatting equations.\footnote{Specifically, this extra information is a set of large variants, math-specific parameter values associated with individual characters, and a MathConstants table. Also, math fonts often use slightly wider bounding boxes for letters in math mode---the Computer Modern $f$ is a well-known example. (Compare math-mode {\fboxsep=0pt\fbox{$f$}} and italic {\fboxsep=0pt\fbox{\textit{f}}}.) For this reason, \textsf{mathfont} also provides an interface to enlarge the bounding boxes of Latin letters when they appear in math mode. See section 5 for details.} Broadly speaking, we say that a \textit{math font} contains this extra information, whereas a \textit{text font} does not, and typesetting math with glyphs from one or more text fonts usually results in messier equations than using a properly prepared math font. The functionality of \textsf{mathfont} then is twofold: (1) provide a wrapper around the \textsc{nfss} commands for math typesetting that serves as a high-level interface; and (2) implement Lua\TeX\ callbacks that artificially convert text fonts into math fonts at loading.\footnote{Values for MathConstants table are different from but inspired by Ulrik Vieth, ``Understanding the \AE sthetics of Math Typesetting,'' (Bacho\TeX\ Conference, 2008) and Ulrik Vieth ``OpenType Math Illuminated,'' \textit{TUGboat} 30 (2009): 22--31. See also Bogus\l aw Jackowski, ``Appendix G Illuminated,'' \textit{TUGboat} 27 (2006): 83--90.} Although \textsf{mathfont} tries its best to get your fonts right, it may run into trouble when picking fonts to load. If this happens, you should declare your font family and shapes in the \textsc{nfss} before setting any fonts with \textsf{mathfont}.
 
 You must use one of \XeLaTeX\ or Lua\LaTeX\ to typeset a document with \textsf{mathfont}. You can load \textsf{mathfont} with the standard |\usepackage{mathfont}| syntax, and the package accepts three optional arguments. If you use Lua\TeX, the options |adjust| or |no-adjust| will manually specify whether \textsf{mathfont} should adapt text fonts for math mode, and \textsf{mathfont} selects |adjust| by default. If you use \XeTeX, \textsf{mathfont} cannot adjust any font objects with Lua callbacks, and either of these package options will cause an error.\footnote{With \XeLaTeX, \textsf{mathfont} does not add big operators or resizable delimiters. This means you will have to use the Computer Modern defaults, load a separate math font for resizable characters, or end up with a document where large operators and delimiters do not scale like they do normally.} For this reason, using Lua\TeX\ with \textsf{mathfont} is recommended as of version 2.0. If you load \textsf{mathfont} with any other optional argument, the package will interpret it as a font name and call |\setfont| (described in the next section) on your argument. Doing so selects that font for the text of your document and for the character classes in the upper section of Table~1.
 
-The \textsf{mathfont} package is closely related to several other \LaTeX\ packages. The functionality is closest to that of \textsf{mathspec} by Andrew Gilbert Moschou, which is compatible with \XeTeX\ only and selects characters from text fonts for math.\footnote{Andrew Gilbert Moschou, ``\textsf{mathspec}---Specify arbitrary fonts for mathematics in \XeTeX,'' \link{https://ctan.org/pkg/mathspec}.} The \textsf{unicode-math} package is the standard \LaTeX\ package for loading actual unicode math fonts, and if you have a unicode font with proper math support, rather than a text font that you want to use for equations, consider using this package instead of \textsf{mathfont}.\footnote{Will Robertson, et al., ``\textsf{unicode-math}---Unicode mathematics support for XeTeX and LuaTeX,'' \link{https://ctan.org/pkg/unicode-math}.} Users who want to a text font for math with pdf\LaTeX\ should consider Jean-Fran\c cois Burnol's \textsf{mathastext} because \textsf{mathfont} is incompatible with pdf\TeX.\footnote{Jean-Fran\c cois Burnol, ``\textsf{mathastext}---Use the text font in maths mode,'' \link{https://ctan.org/pkg/mathastext}. In several previous versions of this documentation, I mischaracterized the approach of \textsf{mathastext} to \TeX's internal mathematics spacing. In fact, \textsf{mathastext} preserves and in some cases extends rules for space between various math-mode characters.} Finally, you will probably be better off using \textsf{fontspec} if your document does not contain any math.\footnote{Will Robertson and Khaled Hosny, ``\textsf{fontspec}---Advanced font selection in \XeLaTeX\ and Lua\LaTeX,'' \link{https://ctan.org/pkg/fontspec}.} The \textsf{fontspec} package is designed to load TrueType and OpenType fonts for text and provides a high-level interface for selecting OpenType font features.
+The \textsf{mathfont} package is closely related to several other \LaTeX\ packages. The functionality is closest to that of \textsf{mathspec} by Andrew Gilbert Moschou, which is compatible with \XeTeX\ only and selects characters from text fonts for math.\footnote{Andrew Gilbert Moschou, ``\textsf{mathspec}---Specify arbitrary fonts for mathematics in \XeTeX,'' \link{https://ctan.org/pkg/mathspec}.} The \textsf{unicode-math} package is the standard \LaTeX\ package for loading actual unicode math fonts, and if you have a unicode font with proper math support, rather than a text font that you want to use for equations, consider using this package instead of \textsf{mathfont}.\footnote{Will Robertson, et al., ``\textsf{unicode-math}---Unicode mathematics support for XeTeX and LuaTeX,'' \link{https://ctan.org/pkg/unicode-math}.} Users who want a text font for math with pdf\LaTeX\ should consider Jean-Fran\c cois Burnol's \textsf{mathastext} because \textsf{mathfont} is incompatible with pdf\TeX.\footnote{Jean-Fran\c cois Burnol, ``\textsf{mathastext}---Use the text font in maths mode,'' \link{https://ctan.org/pkg/mathastext}. In several previous versions of this documentation, I mischaracterized the approach of \textsf{mathastext} to \TeX's internal mathematics spacing. In fact, \textsf{mathastext} preserves and in some cases extends rules for space between various math-mode characters.} Finally, you will probably be better off using \textsf{fontspec} if your document does not contain any math.\footnote{Will Robertson and Khaled Hosny, ``\textsf{fontspec}---Advanced font selection in \XeLaTeX\ and Lua\LaTeX,'' \link{https://ctan.org/pkg/fontspec}.} The \textsf{fontspec} package is designed to load TrueType and OpenType fonts for text and provides a high-level interface for selecting OpenType font features.
 
 \begin{figure}[t]\labelfig{Keywords}
 \centerline{\bfseries Table \the\fig: Character Classes\strut}
@@ -4841,35 +4853,21 @@
 It calls |\mathfont| without an optional argument---i.e.\ for the default keywords---on your \meta{font name} and sets your document's default text font to be the \meta{font name}. The command also defines the eight commands in Table~\ref{SetFont} using the \meta{font name} and the |\new| macros in the next section. Both |\mathfont| and |\setfont| should appear in the preamble only.
 
 
-To select OpenType features, you should put a colon after the font name and follow it with appropriate OpenType tags. For example adding ``|onum=true|'' tells \TeX\ to load your font with oldstyle numbering, assuming that feature is present in the font.\footnote{By default, \textsf{mathfont} enables standard ligatures, traditional \TeX\ ligatures, and lining numbers. The package sets |smcp| to |true| or |false| depending on whether it is attempting to load a small-caps font. For the full list of OpenType features, see \link{https://docs.microsoft.com/en-us/typography/opentype/spec/featurelist}.} Whenever you select a font, \textsf{mathfont} first checks whether you previously loaded \textsf{fontspec}, and if so, the package feeds your entire \meta{font name} argument to \textsf{fontspec}. (You can also say ``|fontspec|'' as the \meta{font name} to select the most recent font used by \textsf{fontspec}.) If you have not loaded \textsf{fontspec}, the package uses its own fontloader. I recommend letting \textsf{mathfont} handle font-loading because when using Lua\TeX, \textsf{mathfont} takes care to load fonts in such a way that full OpenType features are accessible in text and limited OpenType features are accessible in math. While it is also possible to do this in \textsf{fontspec}, it takes some doing.\footnote{The \textsf{luaotfload} package supports two main modes for loading fonts: |node| mode is the default setting, and it supports full OpenType features in text but no OpenType features in math. The |base| mode supports limited OpenType features, but the features will work for both text and math. When \textsf{mathfont} loads a font, it does so twice, once in |node| mode, which is primarily for setting the text font with \vrb\setfont, and once in |base| mode, which is for the package's other font declarations. This way you will be able to use OpenType features throughout your document.}
+To select OpenType features, you should put a colon after the font name and follow it with appropriate OpenType tags.\footnote{By default, \textsf{mathfont} enables standard ligatures, traditional \TeX\ ligatures, and lining numbers. The package sets |smcp| to |true| or |false| depending on whether it is attempting to load a small-caps font. For the full list of OpenType features, see \link{https://docs.microsoft.com/en-us/typography/opentype/spec/featurelist}.} For example adding ``|onum=true|'' tells \TeX\ to load your font with oldstyle numbering, assuming that feature is present in the font. You should separate different OpenType feature tags with a semi-colon.
 
+Whenever you select a font, \textsf{mathfont} first checks whether you previously loaded \textsf{fontspec}, and if so, the package feeds your entire \meta{font name} argument to \textsf{fontspec}. (You can also say ``|fontspec|'' as the \meta{font name} to select the most recent font used by \textsf{fontspec}.) If you have not loaded \textsf{fontspec}, the package uses its own fontloader. I recommend letting \textsf{mathfont} handle font-loading because when using Lua\TeX, \textsf{mathfont} takes care to load fonts in such a way that full OpenType features are accessible in text and limited OpenType features are accessible in math.\footnote{The \textsf{luaotfload} package supports two main modes for loading fonts: |node| mode is the default setting, and it supports full OpenType features in text but no OpenType features in math. The |base| mode supports limited OpenType features, but the features will work for both text and math. When \textsf{mathfont} loads a font, it does so twice, once in |node| mode, which is primarily for setting the text font with \vrb\setfont, and once in |base| mode, which is for the package's other font declarations. This way you will be able to use OpenType features throughout your document. The package does not currently load fonts with HarfBuzz.} While it is also possible to do this in \textsf{fontspec}, it takes some doing.
 
+
 The last five keywords in Table~\ref{Keywords} are a bit different. If you call |\mathfont| on a \meta{keyword} from the last five rows in Table~\ref{Keywords}, the package defines the macro
 \begin{code}
 |\math|\meta{keyword}|{|\meta{text}|}|
 \end{code}
-to typeset them. For example,
+to access them. The Unicode standard contains a block specifically for math alphanumeric symbols, and the control sequences pull from these characters. For example,
 \begin{code}
 |\mathfont[bb]{STIXGeneral}|
 \end{code}
-sets STIXGeneral as the font for bold calligraphic characters and defines |\mathbb| to access them. These are not for use with any double-struck, caligraphic, or fraktur font. Rather, they access Unicode's math alphanumeric symbols block. If you want to use a font where the regular letters appear double-struck, caligraphic, or fraktur, consider the font-changing control sequences in the next section.
+defines |\mathbb| to typeset double-struck letters using the glyphs from STIXGeneral stored in the alphanumeric symbols block. This is very different from a font where the regular letters are double-struck, caligraphic, or fraktur! In that case, consider using the font-change commands from the next section.
 
-\section{Local Font Changes}
-
-With \textsf{mathfont}, it is possible to create commands that locally change the font for math alphabet characters, i.e.\ those marked as alphabetic in Table~\ref{Keywords}. The eight commands in Table~\ref{MathAlpha} accept a \meta{control sequence} as their first mandatory argument and a \meta{font name} as the second, and they define the \meta{control sequence} to typeset any math alphabet characters in their argument into the \meta{font name}. For example, the macro |\newmathrm| looks like
-\begin{code}
-|\newmathrm{|\meta{control sequence}|}{|\meta{font name}|}|.
-\end{code}
-It defines the \textit{control sequence} in its first argument to accept a string of characters that it then converts to the \textit{font name} in the second argument with upright shape and medium weight. Writing
-\begin{code}
-|\newmathrm{\matharial}{Arial}|
-\end{code}
-creates the macro
-\begin{code}
-|\matharial{|\meta{argument}|}|,
-\end{code}
-which can be used only in math mode and which converts the math alphabet characters in its \meta{argument} into the Arial font with upright shape and medium weight. The other commands in Table~\ref{MathAlpha} function in the same way except that they select different series or shape values. Finally, know that if the user specifies the font for Greek letters using |\mathfont|, macros created with the commands from this section will affect those characters, unlike in traditional \LaTeX. Similarly, the local font-change commands will affect Cyrillic and Hebrew characters after the user calls |\mathfont| for those keywords.
-
 \begin{figure}[t]
 \labelfig{MathAlpha}
 \centerline{\bfseries Table \the\fig: Macros to Create Local Font-Change Commands\strut}
@@ -4887,11 +4885,28 @@
 \end{tabularx}
 \end{figure}
 
-Together these eight commands will provide users with tools for most local font changes, but they won't be able to address everything. Accordingly, \textsf{mathfont} provides the more general |\newmathfontcommand| macro. Its structure is
+
+\section{Local Font Changes}
+
+With \textsf{mathfont}, it is possible to create commands that locally change the font for math alphabet characters, i.e.\ those marked as alphabetic in Table~\ref{Keywords}. The eight commands in Table~\ref{MathAlpha} accept a \meta{control sequence} as their first mandatory argument and a \meta{font name} as the second, and they define the \meta{control sequence} to typeset any math alphabet characters in their argument into the \meta{font name}. For example, the macro |\newmathrm| looks like
 \begin{code}
+|\newmathrm{|\meta{control sequence}|}{|\meta{font name}|}|.
+\end{code}
+It defines the \textit{control sequence} in its first argument to accept a string of characters that it then converts to the \textit{font name} in the second argument with upright shape and medium weight. Writing
+\begin{code}
+|\newmathrm{\matharial}{Arial}|
+\end{code}
+creates the macro
+\begin{code}
+|\matharial{|\meta{argument}|}|,
+\end{code}
+which can be used only in math mode and which converts the math alphabet characters in its \meta{argument} into the Arial font with upright shape and medium weight. The other commands in Table~\ref{MathAlpha} function in the same way except that they select different series or shape values. Finally, know that if you specify the font for Greek letters using |\mathfont|, macros created with the commands from this section will affect those characters, unlike in traditional \LaTeX. Similarly, the local font-change commands will affect Cyrillic and Hebrew characters after you call |\mathfont| for those keywords.
+
+Together these eight commands will provide tools for most local font changes, but they won't be able to address everything. Accordingly, \textsf{mathfont} provides the more general |\newmathfontcommand| macro. Its structure is
+\begin{code}
 |\newmathfontcommand{|\meta{control sequence}|}{|\meta{font name}|}{|\meta{series}|}{|\meta{shape}|}|,
 \end{code}
-where the \meta{control sequence} in the first argument again becomes the macro that changes characters to the \meta{font name}. You are welcome to use a system font name with |\newmathfontcommand|, but the intention behind this command is that you can use an \textsc{nfss} family name for the \meta{font name}. Then the series and shape values can correspond to more obscure font faces from the \textsc{nfss} family that you would be otherwise unable to access. The commands from Table~\ref{MathAlpha} as well as |\newmathfontcommand| should appear in the preamble only.
+where the \meta{control sequence} in the first argument again becomes the macro that changes characters to the \meta{font name}. You are welcome to use a system font name with |\newmathfontcommand|, but the intention behind this command is that you can use an \textsc{nfss} family name for the \meta{font name}. Then the series and shape values can correspond to more obscure font faces from the \textsc{nfss} family that you would be otherwise unable to access. The commands from this section should appear in the preamble only.
 
 
 \section{Default Math Parameters}
@@ -4900,7 +4915,7 @@
 \begin{code}
 |\mathconstantsfont[|\meta{shape}|]{|\meta{prev arg}|}|,
 \end{code}
-where \meta{shape} is an optional argument that can be ``|upright|'' (default) or ``|italic|,'' and \meta{prev arg} should be any argument that you have previously fed to |\mathfont|. When you call |\mathconstantsfont|, \textsf{mathfont} forces Lua\TeX\ to always use the MathConstants table from the font that corresponded to that instance of |\mathfont| in the specified \meta{shape}. You don't need to set the MathConstants table when you use |\setfont| because the package calls |\mathconstantsfont| automatically when you use |\setfont|. This command will not work in \XeTeX\ and should appear only in the preamble.
+where \meta{shape} is an optional argument that can be ``|upright|'' (default) or ``|italic|,'' and \meta{prev arg} should be any argument that you have previously fed to |\mathfont|. When you call |\mathconstantsfont|, \textsf{mathfont} forces Lua\TeX\ to always use the MathConstants table from the font that corresponded to that instance of |\mathfont| in the specified \meta{shape}. You don't need to set the MathConstants table when you use |\setfont| because the package calls |\mathconstantsfont| automatically in this case. This command will not work in \XeTeX\ and should appear only in the preamble.
 
 
 
@@ -4919,13 +4934,13 @@
 \end{figure}
 
 
-The \textsf{mathfont} package provides six user-level commands to change positioning of characters in math mode. The commands |\CharmLine| and |\CharmFile| affect specific to various characters. (Charm stands for ``character metric.'') The argument of |\CharmLine| should be a list of integers and/or asterisks separated by commas and/or spaces, and Table~\ref{Charm} shows how many integers you need for different types of characters. The first integer from the argument should be a unicode encoding number, and that tells \textsf{mathfont} how to handle the remaining values.
+The \textsf{mathfont} package provides six user-level commands to change bounding box, size, and accent positioning of characters in math mode. The command |\CharmLine| sets these features for a single math-mode character relative to its text-mode counterpart, and |\CharmFile| does the same thing for multiple characters at a time. (Charm stands for ``character metric.'') The argument of |\CharmLine| should be a list of integers and/or asterisks separated by commas and/or spaces, and Table~\ref{Charm} shows how many integers you need for different types of characters. The first integer should be the unicode encoding value of the character to be adjusted, and \textsf{mathfont} interprets the remaining numbers as follows.
 \begin{itemize}
-\item If the unicode value corresponds to a Latin letter, the next two integers tell Lua\TeX\ how much to stretch the left and right sides of the glyph's bounding box when it appears in math mode. The final two integers determine horizontal placement of top and bottom math accents respectively.
-\item If the unicode value corresponds to a delimiter, the radical (surd) symbol, or a big operator, you will need to specify 16 pairs numbers, for a total of 32 entries. The first 15 pairs are horizontal and vertical scale factors that \textsf{mathfont} uses to create large variants, where successive pairs correspond to the next-larger glyph. The last two integers determine horizontal placement of top and bottom math accents respectively.
-\item If the unicode value corresponds to any other symbol, you should specify two more integers, which will determine the horizontal placement of top and bottom math accents respectively.
+\item If the unicode value corresponds to a Latin letter, you should specify four more numbers. The next two integers tell Lua\TeX\ how much to stretch the left and right sides of the glyph's bounding box when it appears in math mode, and the final two integers determine horizontal placement of top and bottom math accents respectively.
+\item If the unicode value corresponds to a delimiter, the radical (surd) symbol, or a big operator, you need to specify 16 pairs numbers, for a total of 32 more integers. The first 15 pairs are horizontal and vertical scale factors that \textsf{mathfont} uses to create large variants, where successive pairs determine the scaling of each next-larger glyph. The last two integers determine horizontal placement of top and bottom math accents respectively.
+\item If the unicode value corresponds to any other symbol, you should specify two more integers. They determine the horizontal placement of top and bottom math accents respectively.
 \end{itemize}
-Writing an asterisk tells \textsf{mathfont} to use whatever value it has saved in memory, either the default value or the value from the most recent call to |\CharmLine| or |\CharmFile|. If you specify too few charm values, \textsf{mathfont} will raise an error, but if you provide too many, \textsf{mathfont} will silently ignore the extras.
+Writing an asterisk tells \textsf{mathfont} to use whatever value it has saved in memory, either the default value or the value from the most recent call to |\CharmLine| or |\CharmFile|. If you specify too few charm values, \textsf{mathfont} will raise an error, and if you provide too many, \textsf{mathfont} will silently ignore the extras.
 
 \begin{figure}[b]
 \labelfig{Factors}
@@ -4941,18 +4956,18 @@
 \end{figure}
 
 
-For most applications, you can probably ignore charm information altogether, but if you find bounding boxes or accent placement to be off slightly or if you want to change the scaling for a delimiter or big operator, you should try calling |\CharmLine| with different values to see what works. As is typical with decimal inputs in \TeX, \textsf{mathfont} divides your inputs by 1000 before computing with them. Positive integers mean ``increase,'' and negative integers mean ``decrease.'' For a given character, the scale is usually the glyph width. For example,
+For most applications, you can probably ignore charm information altogether, but if you find bounding boxes or accent placement to be off slightly in your equations or if you want to change the scaling for a delimiter or big operator, you should try calling |\CharmLine| with different values to see what works. As is standard with decimal inputs in \TeX, \textsf{mathfont} divides your inputs by 1000 before computing with them. Positive integers mean ``increase,'' and negative integers mean ``decrease.'' For a given character, the scale is usually the glyph width. For example,
 \begin{code}
 |\CharmLine{97, 200, -200, *, 50}|
 \end{code}
-tells \textsf{mathfont} to take the lower-case ``a'' (unicode encoding value of 97), increase the bounding box on the left side by 20\% of the glyph width, decrease the bounding box on the right side by 20\% of the glyph width, do nothing to the top accent, and shift the bottom accent right by 5\% of the glyph width. There is no general formula for what charm values to use for a given font! Rather, you will need to make a design choice based on what looks best, and if you regularly use a particular font, consider making a custom set of charm values uploading it to \textsc{ctan}. Additionally, if you store your charm information in a file, you can read it in with |\CharmFile|. The argument of this command should be a file name, and \textsf{mathfont} reads the file and feeds each line individually to |\CharmLine|.
+tells \textsf{mathfont} to take the lower-case ``a'' (unicode encoding value of 97), increase the bounding box on the left side by 20\% of the glyph width, decrease the bounding box on the right side by 20\% of the glyph width, do nothing to the top accent, and shift the bottom accent right by 5\% of the glyph width. There is no general formula for what charm values to use for a given font! Rather, you will need to make a design choice based on what looks best, and if you regularly use a particular font, consider making a custom set of charm values and uploading it to \textsc{ctan}. Additionally, if you store your charm information in a file, you can read it in with |\CharmFile|. The argument of this command should be a file name, and \textsf{mathfont} reads the file and feeds each line individually to |\CharmLine|.
 
 
-The commands in Table~\ref{Factors} adjust other aspects of the font as indicated. Each command accepts a single integer as an argument, and \textsf{mathfont} once again divides the input by 1000. With each of these macros, \textsf{mathfont} multiplies the quotient by some default length, so values greater than or less than 1000 mean ``scale up'' or ``scale down'' respectively. For example,
+The commands in Table~\ref{Factors} adjust other aspects of the font as indicated. Each command accepts a single integer as an argument, and \textsf{mathfont} divides the input by 1000. With each macro, \textsf{mathfont} multiplies the quotient by some default length, so values greater than or less than 1000 mean ``scale up'' or ``scale down'' respectively. For example,
 \begin{code}
 |\RuleThicknessFactor{2000}|
 \end{code}
-doubles the thickness of the fraction rule and radical overbar relative to the default, which varies between fonts. Changing the |\RuleThicknessFactor| is useful for fonts with particularly heavy or light weight, and the |\IntegralItalicFactor| is important for making limits better fit integral signs, and the |\SurdVerticalFactor| and |\SurdHorizontalFactor| commands are essential when the top of the surd glyph differs from the top of its bounding box. The six control sequences from this section should appear in the preamble only.
+doubles the thickness of the fraction rule and radical overbar relative to the default, which varies between fonts. Changing the |\RuleThicknessFactor| is useful for fonts with particularly heavy or light weight. The |\IntegralItalicFactor| is important for making limits better fit integral signs, and the |\SurdVerticalFactor| and |\SurdHorizontalFactor| commands are essential when the top of the surd glyph differs from the top of its bounding box. The six control sequences from this section should appear in the preamble only.
 
 
 \begin{figure}[tb]
@@ -4970,7 +4985,7 @@
 \end{tabularx}
 \end{figure}
 
-Finally, advanced users who want to interact with the font adjustment process directly should use the six callbacks in Table~\ref{Callbacks}. When \textsf{luaotfload} loads a font, \textsf{mathfont} (1) always calls |mathfont.inspect_font| and (2) calls the other five callbacks in the order that they appear in Table~\ref{Callbacks} if the font object contains |nomath=true|. Functions added to these callbacks should accept a font object as a single argument and return nothing. Further, please be careful when loading functions in the |disable_nomath|, |add_math_constants|, and |fix_character_metrics| callbacks. If you add a function there, Lua\TeX\ will not carry out the default behvaior associated with the callback, so do not mess with these three callbacks unless you are duplicating the default behavior or you really know what you're doing. Otherwise, you risk breaking the package. See |mathfont_code.pdf| for more information.
+Finally, advanced users who want to interact with the font adjustment process directly should use the six callbacks in Table~\ref{Callbacks}. When \textsf{luaotfload} loads a font, \textsf{mathfont} (1) always calls |mathfont.inspect_font| and (2) calls the other five callbacks in the order that they appear in Table~\ref{Callbacks} if the font object contains |nomath=true|. Functions added to these callbacks should accept a font object as a single argument and return nothing. Further, please be careful when loading functions in the |disable_nomath|, |add_math_constants|, and |fix_character_metrics| callbacks. If you add a function there, Lua\TeX\ will not carry out the default behavior associated with the callback, so do not mess with these three callbacks unless you are duplicating the default behavior or you really know what you're doing. Otherwise, you risk breaking the package. See |mathfont_code.pdf| for more information.
 
 
 \end{document}
@@ -4982,18 +4997,19 @@
 \usepackage{tabularx}
 \usepackage{booktabs}
 \usepackage{multicol}
+\multicolsep=\bigskipamount
+\premulticols=\z@
+\postmulticols=4\bigskipamount
 \usepackage{graphicx}
 \usepackage{mathfont}
 \mathfont[agreeklower=upright,agreekupper]{Crimson}
 \mathfont[hebrew]{Coelacanth}
 \mathfont[\M at keys]{STIXGeneral}
-\usepackage{shortvrb,doc}
+\usepackage{shortvrb}
 \MakeShortVerb{|}
+\def\meta#1{\ensuremath{\langle\textit{#1}\rangle}}
 \raggedcolumns
 \parskip=0pt
-\smallskipamount=2pt plus 1pt minus 1pt
-\multicolsep=0pt
-\premulticols=0pt
 \fboxrule=1pt
 \CharmLine{8747 1200 1700 * * * * * * * * * * * * * *
   * * * * * * * * * * * * * * * * * * * * }
@@ -5031,15 +5047,15 @@
 \end{tabularx}
 \end{figure}
 
-As of version 2.0, \textsf{mathfont} artificially adds resizable delimiters and big operator characters to text fonts when you complile with Lua\LaTeX. In this case, square root symbols will automatically resize, big operators will appear larger in |\displaystyle|, and you can use |\left|, |\right|, and |\big|, etc.\ with characters from the keyword |delimiters|. If you use \XeTeX, \textsf{mathfont} will not create large variants of characters, and your unicode math symbols will all be the same size as they appear in the font. In this case, you may be best off sticking with the Computer Modern defaults for resizable characters provided they don't clash with the rest of your document. Throughout this document, anything labeled ``Lua\TeX\ only'' means that \textsf{mathfont} provides this functionality only if you enable Lua-based font adjustments. If you load \textsf{mathfont} with the |no-adjust| option, you will not be able to access these features the same as if you compile with \XeTeX.
+As of version 2.0, \textsf{mathfont} artificially adds resizable delimiters and big operator characters to text fonts when you compile with Lua\LaTeX. In this case, square root symbols will automatically resize, big operators will appear larger in |\displaystyle|, and you can use |\left|, |\right|, and |\big|, etc.\ with characters from the keyword |delimiters|. If you use \XeTeX, \textsf{mathfont} will not create large variants of characters, and your unicode math symbols will all be the same size as they appear in the font. In this case, you may be best off sticking with the Computer Modern defaults for resizable characters provided they don't clash with the rest of your document. Throughout this document, anything labeled ``Lua\TeX\ only'' means that \textsf{mathfont} provides this functionality only if you enable Lua-based font adjustments. If you load \textsf{mathfont} in Lua\TeX\ with the |no-adjust| option, you will not be able to access these features the same as if you typeset with \XeTeX.
 
 
 A few characters appear multiple times in this list. When that happens, it means that \textsf{mathfont} defines the control sequence for multiple keywords. If you call |\mathfont| for only one of those keywords, your symbol will appear in the font associated with that keyword. If you call |\mathfont| on multiple keywords, the package uses the font associated with the default keyword/font for that character. Table~1 lists the default keyword for each command that appears multiple times in this document. If you need unicode encoding slot numbers for character metric adjustments, each symbol corresponds to its standard unicode encoding value, with the exception of the fake angle brackets. When you typeset with Lua\TeX, \textsf{mathfont} artificially adds |\fakelangle|, |\fakerangle|, |\fakellangle|, and |\fakerrangle| to the font in encoding slots 1,044,508--1,044,511 respectively.
 
+\bigskip\bigskip
+\nointerlineskip\centerline{\vrule height 0.5pt width 2.5in}
+\bigskip\bigskip
 
-
-\bigskip\centerline{\vrule height 0.5pt width 2.5in}\medskip\smallskip
-
 \catcode`\|=12
 
 \blockheader{lower}{Lower-Case Latin}
@@ -5110,7 +5126,9 @@
 \blockheader{diacritics}{Accent}
 
 \begin{multicols}{3}
+  \def\hook{\footnote{You will run into trouble if you load \textsf{amsmath} after calling \vrb\mathfont\ with the \texttt{accent} keyword. This is a known bug.}}
 \accentexample\acute
+  \let\hook\relax
 \accentexample\aacute
 \accentexample\dot
 \accentexample\ddot
@@ -5614,7 +5632,9 @@
 \charexample\sqsupsetneq
 \charexample\neq
 \charexample\nl
+  \def\hook{\footnote{In text mode, \vrb\ng\ produces \ng---as of version 2.2b, \textsf{mathfont} redefines the math-mode version only and leaves the text-mode version alone. If you are using the \textsf{hyperref} package, you should type \vrb\mathng\ instead of \vrb\ng.}}
 \charexample\ng
+  \let\hook\relax
 \charexample\nleq
 \charexample\ngeq
 \charexample\lneq
@@ -5775,23 +5795,32 @@
 
 \blockheader{bb}{Blackboard Bold}
 
+\vskip\multicolsep
 \letterlikechars\mathbb
-\hbox to 10em{\printchars\digits}
+\hbox to \hsize{\printchars\digits\hfil}
+\vskip\multicolsep
 
 \blockheader{cal}{Caligraphic}
 
+\vskip\multicolsep
 \letterlikechars\mathcal
+\vskip\multicolsep
 
 \blockheader{frak}{Fraktur}
 
+\vskip\multicolsep
 \letterlikechars\mathfrak
+\vskip\multicolsep
 
 \blockheader{bcal}{Bold Calligraphic}
 
+\vskip\multicolsep
 \letterlikechars\mathbcal
+\vskip\multicolsep
 
 \blockheader{bfrak}{Bold Fraktur}
 
+\vskip\multicolsep
 \letterlikechars\mathbfrak
 
 \end{document}
@@ -5798,14 +5827,13 @@
 %</chars>
 %<*equations>
 \begin{multicols}{2}
-\let\medskip\relax
 
 Black-Scholes Equation
 \[
-\frac{\partial V}{\partial t}+\frac12\sigma^2S^2\frac{\partial^2V}{\partial S^2}=
-  rV-rS\frac{\partial V}{\partial X}
+\frac{\partial V}{\partial t}+
+  \frac12\sigma^2S^2\frac{\partial^2V}{\partial S^2}
+  =rV-rS\frac{\partial V}{\partial X}
 \]
-\medskip
 
 Cardano's Formula/Cubic Formula
 \begin{align*}
@@ -5812,25 +5840,21 @@
 t_i&=\omega_i\sqrt[3]{-\frac q2+\sqrt{\frac{q^2}4+\frac{p^3}{27}}}\\
   &\qquad\qquad{}+\omega_i^2\sqrt[3]{-\frac q2-\sqrt{\frac{q^2}4+\frac{p^3}{27}}}
 \end{align*}
-\medskip
 
 Einstein's Field Equation (General Relativity)
 \[
 R_{\mu\nu}-\frac12Rg_{\mu\nu}+\Lambda g_{\mu\nu}=\frac{8\pi G}{c^4}T_{\mu\nu}
 \]
-\medskip
 
 First Isomorphism Theorem
 \[
 \phi(X)\cong X/\ker(\phi)
 \]
-\medskip
 
 Gauss-Bonnet Formula
 \[
 \int_MK\ dA+\int_{\partial M}k_g\ ds=2\pi\chi(M)
 \]
-\medskip
 
 Maxwell's Equations
 \begin{align*}
@@ -5840,7 +5864,6 @@
 \nabla\times\mathbf B&=\mu_0\left(\mathbf J+
   \epsilon_0\frac{\partial\mathbf E}{\partial t}\right)
 \end{align*}
-\medskip
 
 Michaelis-Menten Model
 \[
@@ -5859,7 +5882,6 @@
   &+\frac13\mu\nabla(\nabla\bullet u)+
   \rho\mathbf{g}
 \end{align*}
-\medskip
 
 
 Quadratic Formula
@@ -5866,13 +5888,11 @@
 \[
 x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}
 \]
-\medskip
 
 Ramanujan's Approximation for $\Gamma$
 \[
 \Gamma(1+x)\approx\sqrt\pi\,x^xe^{-x}\,\sqrt[6]{8x^3+4x^2+x+\frac1{30}}
 \]
-\medskip
 
 
 Residue Theorem
@@ -5879,7 +5899,6 @@
 \[
 \frac1{2i\pi}\int_{\gamma}f(z)\ dz=\sum_{k=1}^n\Res_{a_k}(f)
 \]
-\medskip
 
 
 Riemann Zeta Function
@@ -5888,13 +5907,11 @@
   =\frac1{\Gamma(z)}\int_0^\infty\frac{x^{z-1}}{e^x-1}\ dx\\
   &=2^z\pi^{z-1}\sin\left(\frac{\pi z}2\right)\,\Gamma(1-z)\,\zeta(1-z)
 \end{align*}
-\medskip
 
 Schrodinger Equation
 \[
 i\hbar\frac d{dt}|\Psi(t)\fakerangle=\hat H|\Psi(t)\fakerangle
 \]
-\medskip
 
 Lorentz Transformation (Special Relativity)
 \[
@@ -5910,10 +5927,9 @@
   LuaLaTeX is recommended for\MessageBreak
   mathfont_example_cormorant.tex}
   {It's recommended that you typset this file\MessageBreak
-  with LuaTeX. You can use a different engine\MessageBreak
-  if you want, but things will turn out weird.\MessageBreak
-  To resolve this error, typeset this file\MessageBreak
-  with LuaLaTeX.}
+  with LuaTeX. You can use XeLaTeX if you want,\MessageBreak
+  but things will turn out weird. To resolve\MessageBreak
+  this error, typeset the file with LuaLaTeX.}
 \fi
 \documentclass[12pt]{article}
 \usepackage[margin=1in]{geometry}
@@ -5953,10 +5969,9 @@
   LuaLaTeX is recommended for\MessageBreak
   mathfont_example_kelvinch.tex}
   {It's recommended that you typset this file\MessageBreak
-  with LuaTeX. You can use a different engine\MessageBreak
-  if you want, but things will turn out weird.\MessageBreak
-  To resolve this error, typeset this file\MessageBreak
-  with LuaLaTeX.}
+  with LuaTeX. You can use XeLaTeX if you want,\MessageBreak
+  but things will turn out weird. To resolve\MessageBreak
+  this error, typeset the file with LuaLaTeX.}
 \fi
 \documentclass[12pt]{article}
 \usepackage[margin=1in]{geometry}
@@ -5993,10 +6008,9 @@
   LuaLaTeX is recommended for\MessageBreak
   mathfont_example_roboto.tex}
   {It's recommended that you typset this file\MessageBreak
-  with LuaTeX. You can use a different engine\MessageBreak
-  if you want, but things will turn out weird.\MessageBreak
-  To resolve this error, typeset this file\MessageBreak
-  with LuaLaTeX.}
+  with LuaTeX. You can use XeLaTeX if you want,\MessageBreak
+  but things will turn out weird. To resolve\MessageBreak
+  this error, typeset the file with LuaLaTeX.}
 \fi
 \documentclass[12pt]{article}
 \usepackage[margin=1in]{geometry}
@@ -6038,10 +6052,9 @@
   LuaLaTeX is recommended for\MessageBreak
   mathfont_example_typey.tex}
   {It's recommended that you typset this file\MessageBreak
-  with LuaTeX. You can use a different engine\MessageBreak
-  if you want, but things will turn out weird.\MessageBreak
-  To resolve this error, retypeset this file\MessageBreak
-  with LuaLaTeX.}
+  with LuaTeX. You can use XeLaTeX if you want,\MessageBreak
+  but things will turn out weird. To resolve\MessageBreak
+  this error, typeset the file with LuaLaTeX.}
 \fi
 \documentclass[12pt]{article}
 \usepackage[margin=1in]{geometry}
@@ -6110,8 +6123,8 @@
 \makeatletter
 
 % package date and edition
-\def\packagedate{December 2022}
-\def\packageversion{2.2a}
+\def\packagedate{August 2023}
+\def\packageversion{2.2b}
 
 % header and footer commands
 
@@ -6166,15 +6179,18 @@
 \def\bottomfraction{1}
 \let\code\@undefined
 \newenvironment{code}
-  {\strut\vadjust\bgroup\medskip\parindent\z@\leftskip2em\relax
+  {\strut\vadjust\bgroup\vskip 5pt plus 1pt minus 3pt\relax
+    \parindent\z@\leftskip2em\relax
     \noindent\strut\ignorespaces}
-  {\strut\par\medskip\egroup\hfill\break\strut\ignorespacesafterend}
+  {\strut\par\vskip 5pt plus 1pt minus 3pt\relax
+    \egroup\hfill\break\strut\ignorespacesafterend}
 \def\vrb#1{\expandafter\texttt\expandafter{\string#1}}
 \parskip=0pt
 
 % symbol list macros
-\def\charexample#1{\hbox to \hsize{\hbox to 0.4in{$#1$\hfil}\vrb#1\hfil}}
-\def\accentexample#1{\hbox to \hsize{\hbox to 0.4in{$#1 a$\hfil}\vrb#1\hfil}}
+\def\charexample#1{\hbox to \hsize{\hbox to 0.4in{$#1$\hfil}\vrb#1\hook\hfil}}
+\def\accentexample#1{\hbox to \hsize{\hbox to 0.4in{$#1 a$\hfil}\vrb#1\hook\hfil}}
+\let\hook\relax
 \def\delimexample#1{\hbox to \hsize{%
   \hbox to 0.8in{$#1\big#1\Big#1\bigg#1\Bigg#1$\hfil}\vrb#1\hfil}}
 \def\luadelimexample#1{\hbox{\vbox{\hbox to 0.8in{%
@@ -6187,24 +6203,21 @@
   \hbox to 0.4in{$#1$\hfil}%
   \hbox to 0.4in{$\displaystyle#1$\hfil}\vrb#1\hfil}\smallskip}
 \def\blockheader#1#2{%
-  \bigskip\medskip
-  \penalty-9000
   \hbox{\fbox{\hbox to \dimexpr\hsize-2\fboxrule-2\fboxsep\relax{%
-    \hfil#2 Characters (Keyword \texttt{#1})\strut\hfil}}}
-  \medskip}
-\def\upperalphabet{ABCDEFGHIJKLMNOPQRSTUVWXY}
-\def\loweralphabet{abcdefghijklmnopqrstuvwxy}
+    \hfil#2 Characters (Keyword \texttt{#1})\strut\hfil}}}}
+\def\upperalphabet{ABCDEFGHIJKLMNOPQRSTUVWXYZ}
+\def\loweralphabet{abcdefghijklmnopqrstuvwxyz}
 \def\digits{0123456789}
 \def\printchars#1{%
   \expandafter\@tfor\expandafter\letter\expandafter:\expandafter=#1\do{%
-  \rlap{$\@tempstyle{\letter}$}\hfill}}
+  \hbox to \dimexpr\hsize/26{$\@tempstyle{\letter}$\hfil}}}
 \def\letterlikechars#1{\smallskip\let\@tempstyle#1
-  \noindent\printchars\upperalphabet\hbox to 0.6em{$\@tempstyle{Z}$\hss}\par
-  \noindent\printchars\loweralphabet\hbox to 0.6em{$\@tempstyle{z}$\hss}\par}
+  \noindent\printchars\upperalphabet\par
+  \noindent\printchars\loweralphabet\par}
 
 % title information
 {\large\parindent=0pt\leftskip=0pt plus 1 fil\rightskip=0pt plus 1fil\parfillskip=0pt
-{\strut\Large Package \textsf{mathfont} v.\ \packageversion\ \documentname\let\thefootnote\relax\footnote{Acknowledgements: Thanks to Lyric Bingham for her work checking my unicode hex values. Thanks to Shyam Sundar, Adrian Vollmer, Herbert Voss, and Andreas Zidak for pointing out bugs in previous versions of \textsf{mathfont}. Thanks to Jean-Fran\c cois Burnol for pointing out an error in the documentation in reference to their \textsf{mathastext} package.}\global\advance\c at footnote\m at ne}\par
+{\strut\Large Package \textsf{mathfont} v.\ \packageversion\ \documentname\let\thefootnote\relax\footnote{Acknowledgements: Thanks to Lyric Bingham for her work checking my unicode hex values. Thanks to Shyam Sundar, Adrian Vollmer, Herbert Voss, and Andreas Zidak for pointing out bugs in previous versions of \textsf{mathfont}. Thanks to Jean-Fran\c cois Burnol for pointing out an error in the documentation in reference to his \textsf{mathastext} package.}\global\advance\c at footnote\m at ne}\par
 {\strut Conrad Kosowsky}\par
 {\strut\packagedate}\par
 {\strut\ttfamily kosowsky.latex at gmail.com}\par}
@@ -6235,7 +6248,8 @@
 \noindent The \textsf{mathfont} package adapts unicode text fonts for math mode. The package allows the user to specify a default unicode font for different classes of math symbols, and it provides tools to change the font locally for math alphabet characters. When typesetting with Lua\TeX, \textsf{mathfont} adds resizable delimiters, big operators, and a MathConstants table to text fonts.\par}
 
 \bigskip\bigskip\nointerlineskip
-\centerline{\vrule height 0.5pt width 2.5in}\bigskip\medskip
+\centerline{\vrule height 0.5pt width 2.5in}\bigskip\bigskip
+\nointerlineskip
 \fi
 
 \catcode`\@\count@

Modified: trunk/Master/texmf-dist/tex/latex/mathfont/mathfont.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/mathfont/mathfont.sty	2023-08-22 22:45:20 UTC (rev 68017)
+++ trunk/Master/texmf-dist/tex/latex/mathfont/mathfont.sty	2023-08-22 22:45:46 UTC (rev 68018)
@@ -6,12 +6,12 @@
 %%
 %% mathfont_code.dtx  (with options: `package')
 %% 
-%% This file is from version 2.2a of the free and open-source
-%% LaTeX package "mathfont," released December 2022, to be used
+%% This file is from version 2.2b of the free and open-source
+%% LaTeX package "mathfont," released August 2023, to be used
 %% with the XeTeX or LuaTeX engines. (As of version 2.0, LuaTeX
 %% is recommended.)
 %% 
-%% Copyright 2018-2022 by Conrad Kosowsky
+%% Copyright 2018-2023 by Conrad Kosowsky
 %% 
 %% This Work may be used, distributed, and modified under the
 %% terms of the LaTeX Public Project License, version 1.3c or
@@ -60,7 +60,7 @@
 %% For more information, see mathfont_code.dtx. Happy TeXing!
 %% 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{mathfont}[2022/12/05 v. 2.2a Package mathfont]
+\ProvidesPackage{mathfont}[2023/08/21 v. 2.2b Package mathfont]
 \newif\ifM at XeTeXLuaTeX     % is engine one of xetex or luatex?
 \newif\ifM at Noluaotfload    % cannot find luaotfload.sty?
 \newif\ifM at adjust@font     % should adjust fonts with lua script?
@@ -107,39 +107,38 @@
   \M at XeTeXLuaTeXtrue
 \fi
 \ifM at XeTeXLuaTeX\else
-  \begingroup
-    \catcode`\+=\active
-    \def+{ }
-    \def\M at XeTeXLuaTeXError{\GenericError{}
-      {\MessageBreak\MessageBreak
-      Package mathfont error:
-      \MessageBreak\MessageBreak
-      +*************************\MessageBreak
-      +*+++++++++++++++++++++++*\MessageBreak
-      +*+++++++UNABLE TO+++++++*\MessageBreak
-      +*+++++LOAD MATHFONT+++++*\MessageBreak
-      +*+++++++++++++++++++++++*\MessageBreak
-      +*+++++Missing XeTeX+++++*\MessageBreak
-      +*+++++++or LuaTeX+++++++*\MessageBreak
-      +*+++++++++++++++++++++++*\MessageBreak
-      +*************************\MessageBreak\@gobbletwo}
-      {See the mathfont package documentation for explanation.}
-      {I need XeTeX or LuaTeX to make mathfont\MessageBreak
-      work properly. It looks like the current\MessageBreak
-      engine is something else, so I'm going to\MessageBreak
-      stop reading in the package file now. (You\MessageBreak
-      won't be able to use commands from mathfont\MessageBreak
-      in your document.) To make mathfont work\MessageBreak
-      correctly, please retypeset your document\MessageBreak
-      with one of those two engines.^^J}}
-    \M at XeTeXLuaTeXError
-  \endgroup
+\begingroup
+\catcode`\ =12\relax
+\def\M at XeTeXLuaTeXError{\GenericError{}%
+{\MessageBreak\MessageBreak
+Package mathfont error:%
+\MessageBreak\MessageBreak
+*************************\MessageBreak
+*                       *\MessageBreak
+*       UNABLE TO       *\MessageBreak
+*     LOAD MATHFONT     *\MessageBreak
+*                       *\MessageBreak
+*     Missing XeTeX     *\MessageBreak
+*       or LuaTeX       *\MessageBreak
+*                       *\MessageBreak
+*************************\MessageBreak\@gobbletwo}%
+{See the mathfont package documentation for explanation.}%
+{I need XeTeX or LuaTeX to use mathfont. It\MessageBreak
+looks like the current engine is something\MessageBreak
+else, so I'm going to stop reading in the\MessageBreak
+package file now. (You won't be able to use\MessageBreak
+commands from mathfont in your document.) To\MessageBreak
+load mathfont correctly, please retypeset your\MessageBreak
+document with one of those two engines.^^J}}%
+\expandafter\endgroup
+\M at XeTeXLuaTeXError
   \AtEndOfPackage{\typeout{:: mathfont :: Failed to load\on at line.}}
   \expandafter\endinput % we should \endinput with a balanced conditional
 \fi
 \ifdefined\directlua
   \M at adjust@fonttrue % if engine is LuaTeX, adjust font by default
-  \IfFileExists{luaotfload.sty}{\M at Noluaotfloadfalse}{\M at Noluaotfloadtrue}
+  \IfFileExists{luaotfload.sty}
+    {\M at Noluaotfloadfalse\RequirePackage{luaotfload}}{\M at Noluaotfloadtrue}
 \else
   \PackageWarningNoLine{mathfont}{%
     The current engine is XeTeX, but as\MessageBreak
@@ -149,37 +148,37 @@
     work with XeTeX}
 \fi
 \ifM at Noluaotfload % false by default; true if LuaTeX AND no luaotfload.sty
-  \begingroup
-    \catcode`\+=\active
-    \def+{ }
-    \def\M at NoluaotfloadError{\GenericError{}
-      {\MessageBreak\MessageBreak
-      Package mathfont error:
-      \MessageBreak\MessageBreak
-      +*************************\MessageBreak
-      +*+++++++++++++++++++++++*\MessageBreak
-      +*+++++++UNABLE TO+++++++*\MessageBreak
-      +*+++++LOAD MATHFONT+++++*\MessageBreak
-      +*+++++++++++++++++++++++*\MessageBreak
-      +*++++Cannot find the++++*\MessageBreak
-      +*++file luaotfload.sty++*\MessageBreak
-      +*+++++++++++++++++++++++*\MessageBreak
-      +*************************\MessageBreak\@gobbletwo}
-      {You are likely seeing this message because you haven't^^J%
-      installed luaotfload. Check your TeX distribution for a^^J%
-      list of the packages on your system. See the mathfont^^J%
-      documentation for further explanation.^^J}
-      {It looks like the current engine is LuaTeX, so I\MessageBreak
-      need the luaotfload package to make mathfont work\MessageBreak
-      correctly. I can't find luaotfload, so I'm going to\MessageBreak
-      stop reading in the mathfont package file now. (You\MessageBreak
-      won't be able to use commands from mathfont in your\MessageBreak
-      document.) To make mathfont work correctly, make\MessageBreak
-      sure luaotfload.sty is installed on your computer\MessageBreak
-      in a directory searchable by TeX or compile with\MessageBreak
-      XeLaTeX.^^J}}
-    \M at NoluaotfloadError
-  \endgroup
+\begingroup
+\catcode`\ =12\relax
+\def\M at NoluaotfloadError{\GenericError{}%
+{\MessageBreak\MessageBreak
+Package mathfont error:%
+\MessageBreak\MessageBreak
+*************************\MessageBreak
+*                       *\MessageBreak
+*       UNABLE TO       *\MessageBreak
+*     LOAD MATHFONT     *\MessageBreak
+*                       *\MessageBreak
+*    Cannot find the    *\MessageBreak
+*  file luaotfload.sty  *\MessageBreak
+*                       *\MessageBreak
+*************************\MessageBreak\@gobbletwo}%
+{You are likely seeing this message because you haven't^^J%
+installed luaotfload. Check your TeX distribution for a^^J%
+list of the packages on your system.^^J^^J%
+See the mathfont documentation for further explanation.}%
+{You're in trouble here. It looks like the current\MessageBreak
+engine is LuaTeX, so I need the luaotfload package\MessageBreak
+to make mathfont work properly. However, I can't\MessageBreak
+find luaotfload, which likely means something is\MessageBreak
+wrong with your TeX installation. I'm going to stop\MessageBreak
+reading in the mathfont package file. (You won't be\MessageBreak
+able to use commands from mathfont in your document.)\MessageBreak
+To load mathfont work correctly, make sure you have\MessageBreak
+installed luaotfload.sty in a directory searchable\MessageBreak
+by TeX or compile with XeLaTeX.^^J}}%
+\expandafter\endgroup
+\M at NoluaotfloadError
   \AtEndOfPackage{\typeout{:: mathfont :: Failed to load\on at line.}}
   \expandafter\endinput % we should \endinput with a balanced conditional
 \fi
@@ -254,7 +253,7 @@
     {Your package option "adjust" was ignored.\MessageBreak
     This option works only with LuaTeX, and it\MessageBreak
     looks like the current engine is XeTeX. To\MessageBreak
-    enable Lua-based font adjustments, compile\MessageBreak
+    enable Lua-based font adjustments, typeset\MessageBreak
     with LuaLaTeX.^^J}}
     \M at adjust@fontfalse
   \fi
@@ -513,30 +512,30 @@
 \newif\ifM at Decl@reF at mily
 \newif\ifM at Decl@reF at milyB@se
 \newif\ifM at fromCharmFile
-\def\M at uppershape{italic} % latin upper
-\def\M at lowershape{italic} % latin lower
-\def\M at diacriticsshape{upright} % diacritics
-\def\M at greekuppershape{upright} % greek upper
-\def\M at greeklowershape{italic} % greek lower
-\def\M at agreekuppershape{upright} % ancient greek upper
-\def\M at agreeklowershape{italic} % ancient greek lower
+\def\M at uppershape{italic}          % latin upper
+\def\M at lowershape{italic}          % latin lower
+\def\M at diacriticsshape{upright}    % diacritics
+\def\M at greekuppershape{upright}    % greek upper
+\def\M at greeklowershape{italic}     % greek lower
+\def\M at agreekuppershape{upright}   % ancient greek upper
+\def\M at agreeklowershape{italic}    % ancient greek lower
 \def\M at cyrillicuppershape{upright} % cyrillic upper
-\def\M at cyrilliclowershape{italic} % cyrillic lower
-\def\M at hebrewshape{upright} % hebrew
-\def\M at digitsshape{upright} % numerals
-\def\M at operatorshape{upright} % operator font
-\def\M at delimitersshape{upright} % delimiters
-\def\M at radicalshape{upright} % surd
-\def\M at bigopsshape{upright} % big operators
-\def\M at extbigopsshape{upright} % extended big operators
-\def\M at symbolsshape{upright} % basic symbols
-\def\M at extsymbolsshape{upright} % extended symbols
-\def\M at arrowsshape{upright} % arrows
-\def\M at bbshape{upright} % blackboard bold
-\def\M at calshape{upright} % caligraphic
-\def\M at frakshape{upright} % fraktur
-\def\M at bcalshape{upright} % bold caligraphic
-\def\M at bfrakshape{upright} % bold fraktur
+\def\M at cyrilliclowershape{italic}  % cyrillic lower
+\def\M at hebrewshape{upright}        % hebrew
+\def\M at digitsshape{upright}        % numerals
+\def\M at operatorshape{upright}      % operator font
+\def\M at delimitersshape{upright}    % delimiters
+\def\M at radicalshape{upright}       % surd
+\def\M at bigopsshape{upright}        % big operators
+\def\M at extbigopsshape{upright}     % extended big operators
+\def\M at symbolsshape{upright}       % basic symbols
+\def\M at extsymbolsshape{upright}    % extended symbols
+\def\M at arrowsshape{upright}        % arrows
+\def\M at bbshape{upright}            % blackboard bold
+\def\M at calshape{upright}           % caligraphic
+\def\M at frakshape{upright}          % fraktur
+\def\M at bcalshape{upright}          % bold caligraphic
+\def\M at bfrakshape{upright}         % bold fraktur
 \def\M at keys{upper,lower,diacritics,greekupper,%
   greeklower,agreekupper,agreeklower,cyrillicupper,%
   cyrilliclower,hebrew,digits,operator,delimiters,%
@@ -551,8 +550,7 @@
   tlig=true;liga=true;smcp=false;lnum=true}
 \def\M at otf@features at sc{script=latin;language=DFLT;%
   tlig=true;liga=true;smcp=true;lnum=true}
-\def\M at split@colon#1:#2\@nil{%
-  \def\@tempbase{#1}
+\def\M at split@colon#1:#2\@nil{\def\@tempbase{#1}
   \def\@tempfeatures{#2}}
 \def\M at strip@colon#1:{#1}
 \def\M at fill@nfss at shapes#1#2{%
@@ -666,7 +664,7 @@
   \@for\@j:=\M at keys\do{%
     \ifx\@j#1
       \let\@temperror\@gobble % eliminate error
-      \@optionpresenttrue % set switch to true
+      \@optionpresenttrue     % set switch to true
     \fi}
   \def\@j{empty} % if option is "empty," we do nothing
   \ifx\@j#1
@@ -679,15 +677,15 @@
   \@for\@j:=roman,upright,italic\do{%
     \ifx\@j#1
       \let\@temperror\@gobble % eliminate error
-      \@suboptionpresenttrue % set switch to true
+      \@suboptionpresenttrue  % set switch to true
     \fi}
   \@temperror{#1}}
 \def\M at strip@equals#1={#1}
 \def\M at parse@option#1=#2\@nil{%
-  \@optionpresentfalse % set switch to false by default
+  \@optionpresentfalse    % set switch to false by default
   \@suboptionpresentfalse % set switch to false by default
-  \def\@temp at opt{#1} % store option
-  \def\@temp at sub{#2} % store suboption
+  \def\@temp at opt{#1}      % store option
+  \def\@temp at sub{#2}      % store suboption
   \ifx\@temp at opt\@empty
     \M at MissingOptionError
   \else
@@ -768,8 +766,8 @@
       \fi}
     \edef\@tempa{\the\M at toks}
     \ifx\@tempa\@empty
-      \wlog{The \string\mathfont\space command on line \the\inputlineno\space
-        did not change the font for any characters!}
+      \wlog{The \string\mathfont\space command on line
+        \the\inputlineno\space did not change the font for any characters!}
     \else
       \wlog{}
       \typeout{:: mathfont :: Using font \@tempbase\space
@@ -788,8 +786,8 @@
 \@onlypreamble\setfont
 \ifdefined\directlua
   \let\M at SetMathConstants\relax
-  \protected\def\mathconstantsfont{\@ifnextchar[{\@mathconstantsfont}
-      {\@mathconstantsfont[upright]}}
+  \protected\def\mathconstantsfont{%
+    \@ifnextchar[{\@mathconstantsfont}{\@mathconstantsfont[upright]}}
   \def\@mathconstantsfont[#1]#2{%
     \edef\@tempa{\csname M at fontfamily@base@#2\endcsname}
     \expandafter\ifx\@tempa\relax
@@ -821,8 +819,8 @@
           \endcsname % expands to \symMupright<id>
           \csname TU/\m at th@const at nts@font
                     /\seriesdefault
-                    /\m at th@const at nts@font at sh@pe\endcsname
-          % above \csname expands to \TU/<nfss family name>/m/<shape>
+                    /\m at th@const at nts@font at sh@pe
+          \endcsname % expands to \TU/<nfss family name>/m/<shape>
         \globaldefs\@ne
         \expandafter\@gobbletwo\math at fonts % gobble to avoid infinite loop
         \endgroup}
@@ -1799,161 +1797,161 @@
 end
 luatexbase.add_to_callback("luaotfload.patch_font", mathfont.adjust_font,
   "mathfont.adjust_font")
-mathfont:new_type_a(97, 1044480, {50, 50, -50, 0}) % a
-mathfont:new_type_a(98, 1044481, {50, 50, -50, 0}) % b
-mathfont:new_type_a(99, 1044482, {50, 50, 0, 0}) % c
-mathfont:new_type_a(100, 1044483, {50, -50, -50, 0}) % d
-mathfont:new_type_a(101, 1044484, {50, 50, 0, 0}) % e
-mathfont:new_type_a(102, 1044485, {200, 0, 0, 0}) % f
-mathfont:new_type_a(103, 1044486, {100, 50, -50, 0}) % g
-mathfont:new_type_a(104, 1044487, {50, 0, -50, 0}) % h
-mathfont:new_type_a(105, 1044488, {50, 100, -100, 0}) % i
-mathfont:new_type_a(106, 1044489, {400, 50, -50, 0}) % j
-mathfont:new_type_a(107, 1044490, {50, 50, -100, 0}) % k
+mathfont:new_type_a(97, 1044480, {50, 50, -50, 0})     % a
+mathfont:new_type_a(98, 1044481, {50, 50, -50, 0})     % b
+mathfont:new_type_a(99, 1044482, {50, 50, 0, 0})       % c
+mathfont:new_type_a(100, 1044483, {50, -50, -50, 0})   % d
+mathfont:new_type_a(101, 1044484, {50, 50, 0, 0})      % e
+mathfont:new_type_a(102, 1044485, {200, 0, 0, 0})      % f
+mathfont:new_type_a(103, 1044486, {100, 50, -50, 0})   % g
+mathfont:new_type_a(104, 1044487, {50, 0, -50, 0})     % h
+mathfont:new_type_a(105, 1044488, {50, 100, -100, 0})  % i
+mathfont:new_type_a(106, 1044489, {400, 50, -50, 0})   % j
+mathfont:new_type_a(107, 1044490, {50, 50, -100, 0})   % k
 mathfont:new_type_a(108, 1044491, {100, 150, -100, 0}) % l
-mathfont:new_type_a(109, 1044492, {50, 0, 0, 0}) % m
-mathfont:new_type_a(110, 1044493, {50, 0, 0, 0}) % n
-mathfont:new_type_a(111, 1044494, {50, 0, 0, 0}) % o
-mathfont:new_type_a(112, 1044495, {200, 50, -50, 0}) % p
-mathfont:new_type_a(113, 1044496, {50, 0, -50, 0}) % q
-mathfont:new_type_a(114, 1044497, {100, 100, -50, 0}) % r
-mathfont:new_type_a(115, 1044498, {50, 50, -50, 0}) % s
-mathfont:new_type_a(116, 1044499, {50, 50, -50, 0}) % t
-mathfont:new_type_a(117, 1044500, {0, 50, 0, 0}) % u
-mathfont:new_type_a(118, 1044501, {0, 50, -50, 0}) % v
-mathfont:new_type_a(119, 1044502, {0, 50, 0, 0}) % w
-mathfont:new_type_a(120, 1044503, {50, 0, -50, 0}) % x
-mathfont:new_type_a(121, 1044504, {150, 50, -50, 0}) % y
-mathfont:new_type_a(122, 1044505, {100, 50, -100, 0}) % z
+mathfont:new_type_a(109, 1044492, {50, 0, 0, 0})       % m
+mathfont:new_type_a(110, 1044493, {50, 0, 0, 0})       % n
+mathfont:new_type_a(111, 1044494, {50, 0, 0, 0})       % o
+mathfont:new_type_a(112, 1044495, {200, 50, -50, 0})   % p
+mathfont:new_type_a(113, 1044496, {50, 0, -50, 0})     % q
+mathfont:new_type_a(114, 1044497, {100, 100, -50, 0})  % r
+mathfont:new_type_a(115, 1044498, {50, 50, -50, 0})    % s
+mathfont:new_type_a(116, 1044499, {50, 50, -50, 0})    % t
+mathfont:new_type_a(117, 1044500, {0, 50, 0, 0})       % u
+mathfont:new_type_a(118, 1044501, {0, 50, -50, 0})     % v
+mathfont:new_type_a(119, 1044502, {0, 50, 0, 0})       % w
+mathfont:new_type_a(120, 1044503, {50, 0, -50, 0})     % x
+mathfont:new_type_a(121, 1044504, {150, 50, -50, 0})   % y
+mathfont:new_type_a(122, 1044505, {100, 50, -100, 0})  % z
 mathfont:new_type_a(305, 1044506, {100, 100, -150, 0}) % \imath
-mathfont:new_type_a(567, 1044507, {700, 50, -150, 0}) % \jmath
-mathfont:new_type_a(65, 1044512, {50, 0, 150, 0}) % A
-mathfont:new_type_a(66, 1044513, {50, 0, 0, 0}) % B
-mathfont:new_type_a(67, 1044514, {0, 0, 0, 0}) % C
-mathfont:new_type_a(68, 1044515, {50, 0, -50, 0}) % D
-mathfont:new_type_a(69, 1044516, {50, 0, 0, 0}) % E
-mathfont:new_type_a(70, 1044517, {50, 0, 0, 0}) % F
-mathfont:new_type_a(71, 1044518, {0, 0, 0, 0}) % G
-mathfont:new_type_a(72, 1044519, {50, 0, -50, 0}) % H
-mathfont:new_type_a(73, 1044520, {100, 0, 0, 0}) % I
-mathfont:new_type_a(74, 1044521, {50, 0, 100, 0}) % J
-mathfont:new_type_a(75, 1044522, {50, 0, 0, 0}) % K
+mathfont:new_type_a(567, 1044507, {700, 50, -150, 0})  % \jmath
+mathfont:new_type_a(65, 1044512, {50, 0, 150, 0})  % A
+mathfont:new_type_a(66, 1044513, {50, 0, 0, 0})    % B
+mathfont:new_type_a(67, 1044514, {0, 0, 0, 0})     % C
+mathfont:new_type_a(68, 1044515, {50, 0, -50, 0})  % D
+mathfont:new_type_a(69, 1044516, {50, 0, 0, 0})    % E
+mathfont:new_type_a(70, 1044517, {50, 0, 0, 0})    % F
+mathfont:new_type_a(71, 1044518, {0, 0, 0, 0})     % G
+mathfont:new_type_a(72, 1044519, {50, 0, -50, 0})  % H
+mathfont:new_type_a(73, 1044520, {100, 0, 0, 0})   % I
+mathfont:new_type_a(74, 1044521, {50, 0, 100, 0})  % J
+mathfont:new_type_a(75, 1044522, {50, 0, 0, 0})    % K
 mathfont:new_type_a(76, 1044523, {50, 0, -180, 0}) % L
-mathfont:new_type_a(77, 1044524, {50, 0, -50, 0}) % M
-mathfont:new_type_a(78, 1044525, {50, 0, -50, 0}) % N
-mathfont:new_type_a(79, 1044526, {0, 0, 0, 0}) % O
-mathfont:new_type_a(80, 1044527, {0, 0, -50, 0}) % P
-mathfont:new_type_a(81, 1044528, {0, 50, 0, 0}) % Q
-mathfont:new_type_a(82, 1044529, {50, 0, -50, 0}) % R
-mathfont:new_type_a(83, 1044530, {0, 0, -50, 0}) % S
-mathfont:new_type_a(84, 1044531, {0, 0, -50, 0}) % T
-mathfont:new_type_a(85, 1044532, {0, 0, -50, 0}) % U
-mathfont:new_type_a(86, 1044533, {0, 50, 0, 0}) % V
-mathfont:new_type_a(87, 1044534, {0, 50, -50, 0}) % W
-mathfont:new_type_a(88, 1044535, {50, 0, 0, 0}) % X
-mathfont:new_type_a(89, 1044536, {0, 0, -50, 0}) % Y
-mathfont:new_type_a(90, 1044537, {50, 0, -50, 0}) % Z
-mathfont:new_type_u(945, {0, 0}) % \alpha
-mathfont:new_type_u(946, {0, 0}) % \beta
-mathfont:new_type_u(947, {-50, 0}) % \gamma
-mathfont:new_type_u(948, {0, 0}) % \delta
-mathfont:new_type_u(1013, {50, 0}) % \epsilon
-mathfont:new_type_u(950, {0, 0}) % \zeta
-mathfont:new_type_u(951, {-50, 0}) % \eta
-mathfont:new_type_u(952, {0, 0}) % \theta
-mathfont:new_type_u(953, {-50, 0}) % \iota
-mathfont:new_type_u(954, {0, 0}) % \kappa
+mathfont:new_type_a(77, 1044524, {50, 0, -50, 0})  % M
+mathfont:new_type_a(78, 1044525, {50, 0, -50, 0})  % N
+mathfont:new_type_a(79, 1044526, {0, 0, 0, 0})     % O
+mathfont:new_type_a(80, 1044527, {0, 0, -50, 0})   % P
+mathfont:new_type_a(81, 1044528, {0, 50, 0, 0})    % Q
+mathfont:new_type_a(82, 1044529, {50, 0, -50, 0})  % R
+mathfont:new_type_a(83, 1044530, {0, 0, -50, 0})   % S
+mathfont:new_type_a(84, 1044531, {0, 0, -50, 0})   % T
+mathfont:new_type_a(85, 1044532, {0, 0, -50, 0})   % U
+mathfont:new_type_a(86, 1044533, {0, 50, 0, 0})    % V
+mathfont:new_type_a(87, 1044534, {0, 50, -50, 0})  % W
+mathfont:new_type_a(88, 1044535, {50, 0, 0, 0})    % X
+mathfont:new_type_a(89, 1044536, {0, 0, -50, 0})   % Y
+mathfont:new_type_a(90, 1044537, {50, 0, -50, 0})  % Z
+mathfont:new_type_u(945, {0, 0})    % \alpha
+mathfont:new_type_u(946, {0, 0})    % \beta
+mathfont:new_type_u(947, {-50, 0})  % \gamma
+mathfont:new_type_u(948, {0, 0})    % \delta
+mathfont:new_type_u(1013, {50, 0})  % \epsilon
+mathfont:new_type_u(950, {0, 0})    % \zeta
+mathfont:new_type_u(951, {-50, 0})  % \eta
+mathfont:new_type_u(952, {0, 0})    % \theta
+mathfont:new_type_u(953, {-50, 0})  % \iota
+mathfont:new_type_u(954, {0, 0})    % \kappa
 mathfont:new_type_u(955, {-150, 0}) % lambda
-mathfont:new_type_u(956, {0, 0}) % \mu
-mathfont:new_type_u(957, {-50, 0}) % \nu
-mathfont:new_type_u(958, {0, 0}) % \xi
-mathfont:new_type_u(959, {0, 0}) % \omicron
+mathfont:new_type_u(956, {0, 0})    % \mu
+mathfont:new_type_u(957, {-50, 0})  % \nu
+mathfont:new_type_u(958, {0, 0})    % \xi
+mathfont:new_type_u(959, {0, 0})    % \omicron
 mathfont:new_type_u(960, {-100, 0}) % \pi
-mathfont:new_type_u(961, {-50, 0}) % \rho
+mathfont:new_type_u(961, {-50, 0})  % \rho
 mathfont:new_type_u(963, {-100, 0}) % \sigma
 mathfont:new_type_u(964, {-100, 0}) % \tau
-mathfont:new_type_u(965, {-50, 0}) % \upsilon
-mathfont:new_type_u(981, {0, 0}) % \phi
-mathfont:new_type_u(967, {-50, 0}) % \chi
-mathfont:new_type_u(968, {-50, 0}) % \psi
-mathfont:new_type_u(969, {0, 0}) % \omega
-mathfont:new_type_u(976, {0, 0}) % \varbeta
-mathfont:new_type_u(949, {-50, 0}) % \varepsilon
-mathfont:new_type_u(977, {50, 0}) % \vartheta
+mathfont:new_type_u(965, {-50, 0})  % \upsilon
+mathfont:new_type_u(981, {0, 0})    % \phi
+mathfont:new_type_u(967, {-50, 0})  % \chi
+mathfont:new_type_u(968, {-50, 0})  % \psi
+mathfont:new_type_u(969, {0, 0})    % \omega
+mathfont:new_type_u(976, {0, 0})    % \varbeta
+mathfont:new_type_u(949, {-50, 0})  % \varepsilon
+mathfont:new_type_u(977, {50, 0})   % \vartheta
 mathfont:new_type_u(1009, {-50, 0}) % \varrho
-mathfont:new_type_u(962, {-50, 0}) % \varsigma
-mathfont:new_type_u(966, {0, 0}) % \varphi
-mathfont:new_type_u(913, {0, 0}) % \Alpha
-mathfont:new_type_u(914, {0, 0}) % \Beta
-mathfont:new_type_u(915, {0, 0}) % \Gamma
-mathfont:new_type_u(916, {0, 0}) % \Delta
-mathfont:new_type_u(917, {0, 0}) % \Epsilon
-mathfont:new_type_u(918, {0, 0}) % \Zeta
-mathfont:new_type_u(919, {0, 0}) % \Eta
-mathfont:new_type_u(920, {0, 0}) % \Theta
-mathfont:new_type_u(921, {0, 0}) % \Iota
-mathfont:new_type_u(922, {0, 0}) % \Kappa
-mathfont:new_type_u(923, {0, 0}) % \Lambda
-mathfont:new_type_u(924, {0, 0}) % \Mu
-mathfont:new_type_u(925, {0, 0}) % \Nu
-mathfont:new_type_u(926, {0, 0}) % \Xi
-mathfont:new_type_u(927, {0, 0}) % \Omicron
-mathfont:new_type_u(928, {0, 0}) % \Pi
-mathfont:new_type_u(929, {0, 0}) % \Rho
-mathfont:new_type_u(931, {0, 0}) % \Sigma
-mathfont:new_type_u(932, {0, 0}) % \Tau
-mathfont:new_type_u(933, {0, 0}) % \Upsilon
-mathfont:new_type_u(934, {0, 0}) % \Phi
-mathfont:new_type_u(935, {0, 0}) % \Chi
-mathfont:new_type_u(936, {0, 0}) % \Psi
-mathfont:new_type_u(937, {0, 0}) % \Omega
-mathfont:new_type_u(1012, {0, 0}) % \varTheta
+mathfont:new_type_u(962, {-50, 0})  % \varsigma
+mathfont:new_type_u(966, {0, 0})    % \varphi
+mathfont:new_type_u(913, {0, 0})    % \Alpha
+mathfont:new_type_u(914, {0, 0})    % \Beta
+mathfont:new_type_u(915, {0, 0})    % \Gamma
+mathfont:new_type_u(916, {0, 0})    % \Delta
+mathfont:new_type_u(917, {0, 0})    % \Epsilon
+mathfont:new_type_u(918, {0, 0})    % \Zeta
+mathfont:new_type_u(919, {0, 0})    % \Eta
+mathfont:new_type_u(920, {0, 0})    % \Theta
+mathfont:new_type_u(921, {0, 0})    % \Iota
+mathfont:new_type_u(922, {0, 0})    % \Kappa
+mathfont:new_type_u(923, {0, 0})    % \Lambda
+mathfont:new_type_u(924, {0, 0})    % \Mu
+mathfont:new_type_u(925, {0, 0})    % \Nu
+mathfont:new_type_u(926, {0, 0})    % \Xi
+mathfont:new_type_u(927, {0, 0})    % \Omicron
+mathfont:new_type_u(928, {0, 0})    % \Pi
+mathfont:new_type_u(929, {0, 0})    % \Rho
+mathfont:new_type_u(931, {0, 0})    % \Sigma
+mathfont:new_type_u(932, {0, 0})    % \Tau
+mathfont:new_type_u(933, {0, 0})    % \Upsilon
+mathfont:new_type_u(934, {0, 0})    % \Phi
+mathfont:new_type_u(935, {0, 0})    % \Chi
+mathfont:new_type_u(936, {0, 0})    % \Psi
+mathfont:new_type_u(937, {0, 0})    % \Omega
+mathfont:new_type_u(1012, {0, 0})   % \varTheta
 local delim_glyphs = {40, % (
-  41, % )
-  47, % /
-  91, % [
-  92, % backslash
-  93, % ]
-  123, % {
-  125, % }
-  8249, % \lguil
-  8250, % \rguil
-  171, % \llguil
-  187, % \rrguil
+  41,      % )
+  47,      % /
+  91,      % [
+  92,      % backslash
+  93,      % ]
+  123,     % {
+  125,     % }
+  8249,    % \lguil
+  8250,    % \rguil
+  171,     % \llguil
+  187,     % \rrguil
   1044508, % \fakelangle
   1044509, % \fakerangle
   1044510, % \fakellangle
   1044511} % \fakerrangle
 local big_op_glyphs = {33, % !
-  35, % #
-  36, % $
-  37, % %
-  38, % &
-  43, % +
-  63, % ?
-  64, % @
-  167, % \S
-  215, % \times
-  247, % \div
-  8719, % \prod
-  8721, % \sum
-  8720, % \coprod
-  8897, % \bigvee
-  8896, % \bigwedge
-  8899, % \bigcup
-  8898, % \bigcap
-  10753, % \bigoplus
-  10754, % \bigotimes
-  10752, % \bigodot
-  10757, % \bigsqcap
-  10758} % \bigsqcup
+  35,      % #
+  36,      % $
+  37,      % %
+  38,      % &
+  43,      % +
+  63,      % ?
+  64,      % @
+  167,     % \S
+  215,     % \times
+  247,     % \div
+  8719,    % \prod
+  8721,    % \sum
+  8720,    % \coprod
+  8897,    % \bigvee
+  8896,    % \bigwedge
+  8899,    % \bigcup
+  8898,    % \bigcap
+  10753,   % \bigoplus
+  10754,   % \bigotimes
+  10752,   % \bigodot
+  10757,   % \bigsqcap
+  10758}   % \bigsqcup
 local vert_glyphs = {124, 8730} % | and \surd
 local int_glyphs = {8747, % \intop
-  8748, % \iint
-  8749, % \iiint
-  8750, % \oint
-  8751, % \oiint
-  8752} % \oiiint
+  8748,    % \iint
+  8749,    % \iiint
+  8750,    % \oint
+  8751,    % \oiint
+  8752}    % \oiiint
 local smash = 1044544
 local delim_scale = {}
 local big_op_scale = {}
@@ -1960,14 +1958,14 @@
 local vert_scale = {}
 local int_scale = {}
 for i = 1, 15, 1 do
-  delim_scale[2*i-1] = 1000 + 100*i % horizontal - delimiters
-  delim_scale[2*i] = 1000 + 500*i   % vertical - delimiters
+  delim_scale[2*i-1] = 1000 + 100*i  % horizontal - delimiters
+  delim_scale[2*i] = 1000 + 500*i    % vertical - delimiters
   vert_scale[2*i-1] = 1000
-  vert_scale[2*i] = 1000 + 500*i    % vertical - vertically scaled chars
-  big_op_scale[2*i-1] = 1000 + 100*i   % horizontal - big operators
-  big_op_scale[2*i] = 1000 + 100*i     % vertical - big operators
-  int_scale[2*i-1] = 1000 + 500*i     % horizontal - integral sign
-  int_scale[2*i] = 1000 + 1500*i      % vertical - integral sign
+  vert_scale[2*i] = 1000 + 500*i     % vertical - vertically scaled chars
+  big_op_scale[2*i-1] = 1000 + 100*i % horizontal - big operators
+  big_op_scale[2*i] = 1000 + 100*i   % vertical - big operators
+  int_scale[2*i-1] = 1000 + 500*i    % horizontal - integral sign
+  int_scale[2*i] = 1000 + 1500*i     % vertical - integral sign
 end
 delim_scale[31] = 0
 delim_scale[32] = 0
@@ -2626,7 +2624,6 @@
   \let\bowtie\@undefined
   \let\doteq\@undefined
   \let\neq\@undefined
-  \let\ng\@undefined
   \DeclareMathSymbol{\wp}{\mathord}{\M at extsymbols@font}{"2118}
   \DeclareMathSymbol{\Re}{\mathord}{\M at extsymbols@font}{"211C}
   \DeclareMathSymbol{\Im}{\mathord}{\M at extsymbols@font}{"2111}
@@ -2758,7 +2755,6 @@
   \DeclareMathSymbol{\sqsupsetneq}{\mathrel}{\M at extsymbols@font}{"22E5}
   \DeclareMathSymbol{\neq}{\mathrel}{\M at extsymbols@font}{"2260}
   \DeclareMathSymbol{\nl}{\mathrel}{\M at extsymbols@font}{"226E}
-  \DeclareMathSymbol{\ng}{\mathrel}{\M at extsymbols@font}{"226F}
   \DeclareMathSymbol{\nleq}{\mathrel}{\M at extsymbols@font}{"2270}
   \DeclareMathSymbol{\ngeq}{\mathrel}{\M at extsymbols@font}{"2271}
   \DeclareMathSymbol{\lneq}{\mathrel}{\M at extsymbols@font}{"2A87}
@@ -2793,6 +2789,10 @@
   \DeclareMathSymbol{\precnapprox}{\mathrel}{\M at extsymbols@font}{"2AB9}
   \DeclareMathSymbol{\succnapprox}{\mathrel}{\M at extsymbols@font}{"2ABA}
   \DeclareMathSymbol{\nequiv}{\mathrel}{\M at extsymbols@font}{"2262}
+  \global\let\textng\ng
+  \let\ng\@undefined
+  \DeclareMathSymbol{\mathng}{\mathrel}{\M at extsymbols@font}{"226F}
+  \protected\gdef\ng{\ifmmode\mathng\else\textng\fi}
   \ifM at adjust@font\else
     \DeclareMathSymbol{\nabla}{\mathord}{\M at extsymbols@font}{"2207}
   \fi}



More information about the tex-live-commits mailing list.