summaryrefslogtreecommitdiff
path: root/macros/luatex/latex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2023-11-07 03:02:46 +0000
committerNorbert Preining <norbert@preining.info>2023-11-07 03:02:46 +0000
commit02646b6e89ef69971235e0c883e86fd746955e2b (patch)
tree203df1a9b40b37e9452e03d936e392da7d03c7af /macros/luatex/latex
parent240fd5fe8af67337e240c10434af4834fc86278f (diff)
CTAN sync 202311070302
Diffstat (limited to 'macros/luatex/latex')
-rw-r--r--macros/luatex/latex/innerscript/README.txt145
-rw-r--r--macros/luatex/latex/innerscript/innerscript.dtx805
-rw-r--r--macros/luatex/latex/innerscript/innerscript.pdfbin123627 -> 0 bytes
-rw-r--r--macros/luatex/latex/innerscript/innerscript_code.dtx1495
-rw-r--r--macros/luatex/latex/innerscript/innerscript_code.pdfbin0 -> 92448 bytes
-rw-r--r--macros/luatex/latex/innerscript/innerscript_user_guide.pdfbin0 -> 113778 bytes
6 files changed, 1604 insertions, 841 deletions
diff --git a/macros/luatex/latex/innerscript/README.txt b/macros/luatex/latex/innerscript/README.txt
index dc4079f006..72c48e3e15 100644
--- a/macros/luatex/latex/innerscript/README.txt
+++ b/macros/luatex/latex/innerscript/README.txt
@@ -1,55 +1,128 @@
-This README file contains information about the LuaLaTeX package
-"innerscript" version 1.1 installation. Besides this README, the
-installation contains the following files:
+ LaTeX Package innerscript v. 1.2
+ Installation Guide/README
+ Conrad Kosowsky
- (1) innerscript.dtx: the primary file;
- and
+This file is README.txt from version 1.2 of the free and
+open-source LaTeX package "innerscript," released November
+2023, to be used with the LuaTeX engine. The innerscript
+package optionally modifies four aspects of TeX's automatic
+math formatting rules to improve typesetting. See the user
+guide for more information. See below for installation and
+license information.
- (2) innerscript.pdf: documentation of the package.
+*********************************************************
-To produce the package file innerscript.sty, run innerscript.dtx
-through LaTeX. Then complete the installation by moving the package
-file into a directory searchable by TeX.
+To install innerscript automatically, update your TeXLive or
+MacTeX distribution or use a package manager such as tlmgr.
+To install innerscript manually requires two steps as follows.
+Step 1: You need to generate the package file innerscript.sty
+from innerscript_code.dtx. You can do this in two ways:
+ (1) Running Plain TeX on innerscript_code.dtx will create
+ innerscript.sty as well as several other tex files that
+ can be used for typesetting documentation.
-Copyright 2021 by Conrad Kosowsky
+ (2) Running LaTeX on innerscript_code.dtx will produce the
+ files listed in point (1) including innerscript.sty as
+ well as innerscript_code.pdf, which documents the
+ package code.
-This file may be distributed and modified under the terms of the
-LaTeX Public Project License, version 1.3c or any later version.
-The most recent version of this license is available online at
+Step 2: Once you have created innerscript.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.
- https://www.latex-project.org/lppl/.
+*********************************************************
-This work has the LPPL status "maintained," and the current
-maintainer is the package author, Conrad Kosowsky. He can be
-reached at kosowsky.latex@gmail.com. The work consists of the
-following items:
+Besides this README, the installation contains the following
+items:
- (1) the base file innerscript.dtx;
+ (1) innerscript_code.dtx: the main file. See above for
+ instructions to generate innerscript.sty from this
+ file and complete the installation.
- (2) the package code contained in innerscript.sty;
+ (2) innerscript_code.pdf: documentation of the package
+ code.
- (3) the pdf documentation file innerscript.pdf;
+ (3) innerscript_user_guide.pdf: a user guide.
- (4) all other files created through the configuration process;
-
- and
+Typesetting innerscript_code.dtx will create
+innerscript_user_guide.tex, which is the tex file that
+produces the user guide in point (3) above.
+
+*********************************************************
+
+Copyright 2021,2023 by Conrad Kosowsky
+
+This file may be distributed and modified under the terms
+of the LaTeX Public Project License, version 1.3c or any
+later version. The most recent version of this license is
+available online at
- (5) this README.txt file.
+ https://www.latex-project.org/lppl/
-THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY EXPRESS OR IMPLIED
-WARRANTY. BY USING THIS SOFTWARE, YOU AGREE TO RELEASE THE PACKAGE
-AUTHOR, TO THE MAXIMUM EXTENT PERMITTED UNDER APPLICABLE LAW, FROM
-LIABILITY THAT RESULTS FROM YOUR USE OF THE SOFTWARE, AND YOU AGREE
-THAT ANY DAMAGES SOUGHT AGAINST THE PACKAGE AUTHOR WILL NOT EXCEED
-THE MINIMUM DAMAGES ALLOWED UNDER APPLICABLE LAW.
+This Work has the LPPL status "maintained," and the current
+maintainer is the package author, Conrad Kosowsky. He can
+be reached at kosowsky.latex@gmail.com. The Work consists
+of the following items:
-For more information, see the original innerscript.dtx file. To
-install innerscript on your computer, run innerscript.dtx through
-LaTeX and place the derived file innerscript.sty in a directory
-searchable by TeX.
+ (1) the base file:
+ innerscript.dtx
+
+ (2) the package file:
+ innerscript.sty
+
+ (3) the pdf documentation files:
+ innerscript_code.pdf
+ innerscript_user_guide.pdf
+
+ (4) the derived files:
+ innerscript_user_guide.tex
+ innerscript_heading.tex
+
+ (5) all other files created through the configuration
+ process
+
+ and
-Happy TeXing!
+ (6) this README.txt file
+
+PLEASE KNOW THAT THIS FREE SOFTWARE IS PROVIDED WITHOUT
+ANY WARRANTY. SPECIFICALLY, THE "NO WARRANTY" SECTION OF
+THE LATEX PROJECT PUBLIC LICENSE STATES THE FOLLOWING:
+
+THERE IS NO WARRANTY FOR THE WORK. EXCEPT WHEN OTHERWISE
+STATED IN WRITING, THE COPYRIGHT HOLDER PROVIDES THE WORK
+`AS IS’, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE
+OF THE WORK IS WITH YOU. SHOULD THE WORK PROVE DEFECTIVE,
+YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR, OR
+CORRECTION.
+
+IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED
+TO IN WRITING WILL THE COPYRIGHT HOLDER, OR ANY AUTHOR
+NAMED IN THE COMPONENTS OF THE WORK, OR ANY OTHER PARTY
+WHO MAY DISTRIBUTE AND/OR MODIFY THE WORK AS PERMITTED
+ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
+SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT
+OF ANY USE OF THE WORK OR OUT OF INABILITY TO USE THE WORK
+(INCLUDING, BUT NOT LIMITED TO, LOSS OF DATA, DATA BEING
+RENDERED INACCURATE, OR LOSSES SUSTAINED BY ANYONE AS A
+RESULT OF ANY FAILURE OF THE WORK TO OPERATE WITH ANY
+OTHER PROGRAMS), EVEN IF THE COPYRIGHT HOLDER OR SAID
+AUTHOR OR SAID OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+For more information, see the LaTeX Project Public License.
+Derivative works based on this software may come with their
+own license or terms of use, and the package author is not
+responsible for any third-party software.
+
+*********************************************************
+
+For more information, see innerscript_code.dtx. Happy TeXing!
diff --git a/macros/luatex/latex/innerscript/innerscript.dtx b/macros/luatex/latex/innerscript/innerscript.dtx
deleted file mode 100644
index ab371312c8..0000000000
--- a/macros/luatex/latex/innerscript/innerscript.dtx
+++ /dev/null
@@ -1,805 +0,0 @@
-% \iffalse ---!!! META-COMMENT !!!---
-%
-% This file is file from version 1.1 of the LuaLaTeX package
-% "innerscript," to be used in conjunction with the LuaTeX engine.
-%
-% Copyright 2021 by Conrad Kosowsky
-%
-% This file may be distributed and modified under the terms of the
-% LaTeX Public Project License, version 1.3c or any later version.
-% The most recent version of this license is available online at
-%
-% https://www.latex-project.org/lppl/.
-%
-% This work has the LPPL status "maintained," and the current
-% maintainer is the package author, Conrad Kosowsky. He can be
-% reached at kosowsky.latex@gmail.com. The work consists of the
-% following items:
-%
-% (1) the base file innerscript.dtx;
-%
-% (2) the package code contained in innerscript.sty;
-%
-% (3) the pdf documentation file innerscript.pdf;
-%
-% (4) all other files created through the configuration process;
-%
-% and
-%
-% (5) the associated README.txt file.
-%
-% THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY EXPRESS OR IMPLIED
-% WARRANTY. BY USING THIS SOFTWARE, YOU AGREE TO RELEASE THE PACKAGE
-% AUTHOR, TO THE MAXIMUM EXTENT PERMITTED UNDER APPLICABLE LAW, FROM
-% LIABILITY THAT RESULTS FROM YOUR USE OF THE SOFTWARE, AND YOU AGREE
-% THAT ANY DAMAGES SOUGHT AGAINST THE PACKAGE AUTHOR WILL NOT EXCEED
-% THE MINIMUM DAMAGES ALLOWED UNDER APPLICABLE LAW.
-%
-% For more information, see the original innerscript.dtx file. To
-% install innerscript on your computer, run innerscript.dtx through
-% LaTeX and place the derived file innerscript.sty in a directory
-% searchable by TeX.
-%
-% Happy TeXing!
-%
-% \fi
-% \iffalse
-%
-% The installation and driver files are incorporated into innerscript.dtx,
-% so we do not need to generate them separately. The <batchfile> and
-% <driver> tags are for reference.
-%
-%<*batchfile>
-\begingroup
-\input docstrip.tex
-\keepsilent
-\askforoverwritefalse
-\preamble
-
-This file is file from version 1.1 of the LuaLaTeX package
-"innerscript," to be used in conjunction with the LuaTeX engine.
-
-Copyright 2021 by Conrad Kosowsky
-
-This file may be distributed and modified under the terms of the
-LaTeX Public Project License, version 1.3c or any later version.
-The most recent version of this license is available online at
-
- https://www.latex-project.org/lppl/.
-
-This work has the LPPL status "maintained," and the current
-maintainer is the package author, Conrad Kosowsky. He can be
-reached at kosowsky.latex@gmail.com. The work consists of the
-following items:
-
- (1) the base file innerscript.dtx;
-
- (2) the package code contained in innerscript.sty;
-
- (3) the pdf documentation file innerscript.pdf;
-
- (4) all other files created through the configuration process;
-
- and
-
- (5) the associated README.txt file.
-
-THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY EXPRESS OR IMPLIED
-WARRANTY. BY USING THIS SOFTWARE, YOU AGREE TO RELEASE THE PACKAGE
-AUTHOR, TO THE MAXIMUM EXTENT PERMITTED UNDER APPLICABLE LAW, FROM
-LIABILITY THAT RESULTS FROM YOUR USE OF THE SOFTWARE, AND YOU AGREE
-THAT ANY DAMAGES SOUGHT AGAINST THE PACKAGE AUTHOR WILL NOT EXCEED
-THE MINIMUM DAMAGES ALLOWED UNDER APPLICABLE LAW.
-
-For more information, see the original innerscript.dtx file. To
-install innerscript on your computer, run innerscript.dtx through
-LaTeX and place the derived file innerscript.sty in a directory
-searchable by TeX.
-
-Happy TeXing!
-
-\endpreamble
-\generate{\file{innerscript.sty}{\from{innerscript.dtx}{package}}}
-\catcode`\ =12\relax
-\message{^^J^^J
-*******************************************^^J
-* *^^J
-* To finish the installation, move the *^^J
-* following file into a directory *^^J
-* searchable by TeX once *^^J
-* innerscript.dtx finishes compiling: *^^J
-* *^^J
-* innerscript.sty *^^J
-* *^^J
-*******************************************^^J^^J^^J^^J^^J^^J}
-\endgroup
-%</batchfile>
-%<*driver>
-\documentclass[12pt]{ltxdoc}
-\makeatletter
-\usepackage[margin=72.27pt]{geometry}
-\usepackage[factor=700,stretch=14,shrink=14,step=1]{microtype}
-\usepackage{booktabs}
-\usepackage{tabularx}
-\usepackage{amsmath}
-\usepackage{multicol}
-\pretolerance=20
-\hyphenpenalty=10
-\exhyphenpenalty=5
-\brokenpenalty=0
-\clubpenalty=0
-\widowpenalty=0
-\finalhyphendemerits=300
-\doublehyphendemerits=500
-\usepackage{graphicx}
-\MacroIndent=1.32em
-\begin{document}
-\DocInput{innerscript.dtx}
-\end{document}
-%</driver>
-%<*package>
-%
-% \fi
-%
-%
-% \CheckSum{1207}
-% \init@checksum
-%
-% \makeatother\CharacterTable
-% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-% Digits \0\1\2\3\4\5\6\7\8\9
-% Exclamation \! Double quote \" Hash (number) \#
-% Dollar \$ Percent \% Ampersand \&
-% Acute accent \' Left paren \( Right paren \)
-% Asterisk \* Plus \+ Comma \,
-% Minus \- Point \. Solidus \/
-% Colon \: Semicolon \; Less than \<
-% Equals \= Greater than \> Question mark \?
-% Commercial at \@ Left bracket \[ Backslash \\
-% Right bracket \] Circumflex \^ Underscore \_
-% Grave accent \` Left brace \{ Vertical bar \|
-% Right brace \} Tilde \~}
-% \makeatletter
-%
-%
-%
-% \newenvironment{code}
-% {\strut\vadjust\bgroup\medskip\parindent\z@\leftskip=4em\relax
-% \noindent\strut\ignorespaces}
-% {\strut\par\medskip\egroup\hfill\break\strut\ignorespacesafterend}
-% \def\argtext#1{\ensuremath{\langle$\textit{#1}$\rangle}}
-% \def\vrb#1{\expandafter\texttt\expandafter{\string#1}}
-% \newdimen\displaypress
-% \displaypress=\textwidth
-% \divide\displaypress by 6
-% \def\showtwoeq#1#2{\global\advance\c@equation\@ne
-% \hbox to \hsize{\hskip\the\displaypress plus 0.1pt minus 0.1pt\relax
-% \hbox to 2\displaypress{\hss$\displaystyle#1$\hss}\relax
-% \hbox to 2\displaypress{\hss$\displaystyle#2$\hss}\relax
-% \hskip\the\displaypress plus 0.1pt minus 0.1pt\relax
-% \llap{(\the\c@equation)}}}
-%
-%
-% {\large
-% \parindent=0pt
-% \leftskip=0pt plus 1 fil
-% \rightskip=0pt plus 1fil
-% \parfillskip=0pt
-% {\strut\Large Package \textsf{innerscript} v.\ 1.1 Documentation}\par
-% \strut Conrad Kosowsky\par
-% \strut February 2021\par
-% \strut\texttt{kosowsky.latex@gmail.com}\par}
-%
-% \medskip
-%
-% \begin{figure}[h]
-% \hrule height \p@
-% \hbox to \hsize{\relax
-% \vrule width \p@\kern-\p@
-% \vbox{\medskip
-% \leftskip=8.5em\relax\rightskip=8.5em\relax
-% \noindent\strut For easy, off-the-shelf use, type the following
-% in your document preamble and compile using Lua\LaTeX:
-% \vskip\medskipamount
-% \noindent\hfil\strut|\usepackage{innerscript}|\hfil
-% \vskip\medskipamount}\relax
-% \kern-\p@\vrule width \p@}
-% \hrule height \p@
-% \end{figure}
-%
-%
-%
-% \begin{abstract}
-% \noindent The \textsf{mathinner} package modifies two aspects of \TeX's automatic interatom mathematics spacing. The package uses Lua\TeX's |\Umath| primitives to make superscripts and subscripts more closely resemble |\textstyle| and |\displaystyle| math and to treat |\mathinner| subformulas as |\mathord|, effectively eliminating this class. Users must load \textsf{innerscript} with the Lua\TeX\ engine.
-%
-% \medskip\smallskip
-%
-% \noindent Keywords: superscript, subscript, spacing, mathinner, scriptstyle, scriptscriptstyle, Lua\TeX, Umath, atom
-%
-% \end{abstract}
-%
-% \bigskip
-%
-% \noindent For several years now, I wondered whether it was possible to change two features of \TeX's mathematics spacing routine, namely the lack of automatic spacing in subscripts and superscripts and the extra space around |\mathinner| subformulas. For example, compare
-% \vadjust{\vskip\abovedisplayskip
-% \showtwoeq{\sum_{i=1}^n{}x_i^{1+a}}%
-% {f(x)=g\left(\frac1x\right)}
-% \smallskip\smallskip
-% \showtwoeq{\sum_{i\mskip\thinmuskip=\mskip\thinmuskip1}^n
-% x^{1\mskip 0.7\thinmuskip+\mskip 0.7\thinmuskip a}_i}
-% {f(x)=g{\left(\frac1x\right)}.}
-% \vskip\belowdisplayskip}\hfil\break
-% Equation~(1) uses traditional \TeX\ spacing, and equation~(2) incorporates small adjustments. On the left, the subscript under the summation symbol and the superscript of $x_i$ contain small amounts of extra space around the |=| and |+| signs respectively, and on the right, the $g$ is directly next to the parenthesis instead of being an extra |\thinmuskip| away. In traditional \TeX, automating these changes would be impossible to do easily, but Lua\TeX's extra math-mode primitives provide direct access to the interatom space parameters.\footnote{See section 7.5 of the Lua\TeX\ manual.} The \textsf{innerscript} package is my attempt to automate the changes in equation~(2) using |\Umath| spacing commands, and as far as I am aware, it is the first package to do so. (Although please let me know if this is incorrect!) It provides no user-level commands and alters spacing automatically. This file explains how to load the package and documents the internal code.
-%
-%
-%
-% Users can load \textsf{innerscript} with the standard
-% \begin{code}
-% |\usepackage[|\argtext{options}|]{innerscript}|
-% \end{code}
-% syntax.\vadjust{\break} The package must be loaded with Lua\LaTeX, and if it detects a different engine, \textsf{innerscript} will issue an error.\footnote{Specifically, \textsf{innerscript} checks whether \vrb\Umathordordspacing\ is defined.} It is possible to continue compiling past the error with no other issues, but if you do, \textsf{innerscript} will not be able to change any math spacing in your document. Table~1 shows the six package options, and by default \textsf{innerscript} selects the first three. The |script| and |scriptscript| options will affect spacing of symbols in superscripts and subscripts, and the |inner| option will eliminate extra spacing for |\mathinner| subformulas, such as fractions and |\left|-|\right| delimiter pairs. The |no-|~variants disable the spacing adjustments for the corresponding default option.
-%
-%
-% \begin{figure}[t]
-% \centering
-% Table~1: Package Options for \textsf{innerscript}
-% \vskip\smallskipamount
-% \begin{tabularx}\hsize{p{1.5in}>{\raggedright\arraybackslash}X}
-% \toprule
-% Package Option & Meaning\\
-% \midrule
-% |script| & Changes to |\scriptstyle| and |\crampedscriptstyle| spacing\\
-% |scriptscript| & Changes to |\scriptscriptstyle| and |\crampedscriptscriptstyle| spacing\\
-% |inner| & Treat |\mathinner| subformulas as |\mathord|\\\midrule
-% |no-script| & No changes to |\scriptstyle| and |\crampedscriptstyle| spacing\\
-% |no-scriptscript| & No changes to |\scriptscriptstyle| and |\crampedscriptscriptstyle| spacing\\
-% |no-inner| & No changes to treatment of |\mathinner| subformulas\\
-% \bottomrule
-% \end{tabularx}
-% \end{figure}
-%
-%
-% \begin{figure}[t!]
-% \centering
-% Table~2: Spacing Inserted by \textsf{innerscript} between Consecutive Atoms
-% \vskip\smallskipamount
-% \begin{tabularx}{\hsize}{XXX}
-% \toprule
-% Consecutive Atom Types & Option |script| & Option |scriptscript| \\\midrule
-% |\mathord||\mathop| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
-% |\mathord||\mathbin| & 0.7|\thinmuskip| & 0.5|\thinmuskip| \\
-% |\mathord||\mathrel| & |\thinmuskip| & 0.7|\thinmuskip| \\
-% |\mathord||\mathinner| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
-% |\mathop||\mathord| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
-% |\mathop||\mathop| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
-% |\mathop||\mathrel| & |\thinmuskip| & 0.7|\thinmuskip| \\
-% |\mathop||\mathinner| & |\thinmuskip| & 0.7|\thinmuskip| \\
-% |\mathbin||\mathord| & 0.7|\thinmuskip| & 0.5|\thinmuskip| \\
-% |\mathbin||\mathop| & 0.7|\thinmuskip| & 0.5|\thinmuskip| \\
-% |\mathbin||\mathopen| & 0.7|\thinmuskip| & 0.5|\thinmuskip| \\
-% |\mathbin||\mathinner| & 0.7|\thinmuskip| & 0.5|\thinmuskip| \\
-% |\mathrel||\mathord| & |\thinmuskip| & 0.7|\thinmuskip| \\
-% |\mathrel||\mathop| & |\thinmuskip| & 0.7|\thinmuskip| \\
-% |\mathrel||\mathopen| & |\thinmuskip| & 0.7|\thinmuskip| \\
-% |\mathrel||\mathinner| & |\thinmuskip| & 0.7|\thinmuskip| \\
-% |\mathclose||\mathop| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
-% |\mathclose||\mathbin| & 0.7|\thinmuskip| & 0.5|\thinmuskip| \\
-% |\mathclose||\mathrel| & |\thinmuskip| & 0.7|\thinmuskip| \\
-% |\mathclose||\mathinner| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
-% |\mathpunct||\mathord| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
-% |\mathpunct||\mathop| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
-% |\mathpunct||\mathrel| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
-% |\mathpunct||\mathopen| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
-% |\mathpunct||\mathclose| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
-% |\mathpunct||\mathpunct| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
-% |\mathpunct||\mathinner| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
-% |\mathinner||\mathord| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
-% |\mathinner||\mathop| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
-% |\mathinner||\mathbin| & 0.7|\thinmuskip| & 0.5|\thinmuskip| \\
-% |\mathinner||\mathrel| & |\thinmuskip| & 0.7|\thinmuskip| \\
-% |\mathinner||\mathopen| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
-% |\mathinner||\mathpunct| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
-% |\mathinner||\mathinner| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
-% \bottomrule
-% \end{tabularx}
-% \end{figure}
-%
-%
-% In standard mathematics typesetting, \TeX\ uses different font sizes for different portions of math lists, and it chooses a certain size based on the math style currently in use.\footnote{The eight math styles are \vrb\displaystyle, \vrb\textstyle, \vrb\scriptstyle, \vrb\scriptscriptstyle, and cramped versions of those four, where the control sequence begins with the word ``cramped.'' Technically a math style is an instruction to pull math symbols from a specific font associated with a math family and to apply certain rules for assembling formulas to this part of the math list. See Donald Knuth, \textit{The \TeX book,} (Addison Wesley, 1986), 140--143, 441--447; David Salomon, \textit{The Advanced \TeX book,} (Springer, 1995), 254--256.} \TeX\ uses |\displaystyle| and |\textstyle| as the default for display and inline math respectively, and while in either of these styles or the corresponding cramped versions, it adds extra space between symbols of certain math classes.\footnote{The eight classes are \vrb\mathord, \vrb\mathop, \vrb\mathbin, \vrb\mathrel, \vrb\mathopen, \vrb\mathclose, \vrb\mathpunct, and \vrb\mathinner. They are specific to particular symbols and determine spacing in math formulas. As part of its definition, every math symbol is associated with a certain math class. See Donald Knuth, \textit{The \TeX book,} 170; David Salomon, \textit{The Advanced \TeX book,} 256--258.} \TeX\ switches to |\scriptstyle|, |\scriptscriptstyle|, or the corresponding cramped versions to typeset superscripts and subscripts, and in doing so, it forgoes most of the spacing additions from |\textstyle|.
-%
-% The |script| and |scriptscript| options reverse this decision by forcing interatom spacing to more closely resemble that of |\textstyle|. Table~2 lists the amount of space that \textsf{innerscript} inserts between various pairs of math classes for each option, and adjustments of this type will resemble the changes to the summation from equation~(2). The |inner| package option forces all spacing around |\mathinner| subformulas to take the value it would if the formula had type |\mathord|. Traditionally \TeX\ places more space around |\mathinner| subformulas than it does around |\mathord| atoms, so loading \textsf{innerscript} with |inner| will remove a certain amount of space from math formulas. Changes of this type will typically resemble the adjustment to the function $g$ from equation~(2). Users who want to further change the spacing in their math formulas should manually add glue, muglue, or |\kern| to their math lists or provide new values for the |\Umath| spacing parameters in their document preamble.
-%
-% \vfil\eject
-% \section*{Implementation}
-%
-% Finally, we come to the implementation, and we begin by declaring the package. The conditionals |\ifIS@script|, |\ifIS@scriptscript|, and |\ifIS@inner| encode option information, and we set them according to the user's option declaration.
-% \begin{macrocode}
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{innerscript}[2021/02/07 v. 1.1 Package innerscript]
-\newif\ifIS@script\IS@scripttrue
-\newif\ifIS@scriptscript\IS@scriptscripttrue
-\newif\ifIS@inner\IS@innertrue
-\DeclareOption{script}{\IS@scripttrue}
-\DeclareOption{scriptscript}{\IS@scriptscripttrue}
-\DeclareOption{inner}{\IS@innertrue}
-\DeclareOption{no-script}{\IS@scriptfalse}
-\DeclareOption{no-scriptscript}{\IS@scriptscriptfalse}
-\DeclareOption{no-inner}{\IS@innerfalse}
-\ProcessOptions*
-% \end{macrocode}
-% Check whether |\Umathordordspacing| is defined. If not, issue an error and |\endinput|. We won't be able to print multiple spaces at once because \TeX\ collapses multiple space characters, so within a group, we change |+| to active and define it to be a space.
-% \begin{macrocode}
-\ifx\Umathordordspacing\@undefined
- \bgroup\catcode`\+=13
- \def+{ }
- \def\IS@LuaTeXError{\GenericError{}
- {\MessageBreak\MessageBreak
- Package innerscript error:
- \MessageBreak\MessageBreak
- ++*******************\MessageBreak
- ++*+++++++++++++++++*\MessageBreak
- ++*+++CANNOT LOAD+++*\MessageBreak
- ++*+++INNERSCRIPT+++*\MessageBreak
- ++*++LuaTeX Needed++*\MessageBreak
- ++*+++++++++++++++++*\MessageBreak
- ++*******************\MessageBreak\@gobbletwo}
- {See the innerscript package documentation for explanation.}
- {I need LuaTeX to make the innerscript package work. It\MessageBreak
- looks like the current engine is something else, so I\MessageBreak
- can't load the package file. To use innerscript, please\MessageBreak
- typeset with LuaLaTeX. To continue without innerscript,\MessageBreak
- press return.}}
- \IS@LuaTeXError
- \egroup
- \expandafter\endinput% we \endinput with a balanced conditional
-\fi
-% \end{macrocode}
-% We will use |\IS@skip| to store muglue information later.
-% \begin{macrocode}
-\newmuskip\IS@skip
-% \end{macrocode}
-% First we set the spacing for |\scriptstyle| and |\crampedscriptstyle| atoms. Each command has the form
-% \begin{code}
-% |\Umath|\argtext{math classes}|spacing\|\argtext{math style}|=|\argtext{factor}|\thinmuskip|,
-% \end{code}
-% where the \textit{math classes} are a pair of choices from |ord|, |op|, |bin|, |rel|, |open|, |close|, |punct|, and |inner|. The \textit{math style} is either |scriptstyle| or |crampedscriptstyle|, and the \textit{factor} corresponds to the spacing listed in Table~2. We set the |\scriptstyle| and |\scriptscriptstyle| spacing before handling |\mathinner| subformulas because we want to use updated spacing values for the |\mathinner| space adjustments. Otherwise, the |\scriptstyle| and |\scriptscriptstyle| adjustments will overwrite changes to |\mathinner| spacing.
-% \begin{macrocode}
-\ifIS@script
- \wlog{Package innerscript Info:
- Adjusting spacing for \string\scriptstyle.}
- \Umathordopspacing\scriptstyle=0.6\thinmuskip
- \Umathordbinspacing\scriptstyle=0.7\thinmuskip
- \Umathordrelspacing\scriptstyle=\thinmuskip
- \Umathordinnerspacing\scriptstyle=0.6\thinmuskip
- \Umathopordspacing\scriptstyle=0.6\thinmuskip
- \Umathopopspacing\scriptstyle=0.6\thinmuskip
- \Umathoprelspacing\scriptstyle=\thinmuskip
- \Umathopinnerspacing\scriptstyle=\thinmuskip
- \Umathbinordspacing\scriptstyle=0.7\thinmuskip
- \Umathbinopspacing\scriptstyle=0.7\thinmuskip
- \Umathbinopenspacing\scriptstyle=0.7\thinmuskip
- \Umathbininnerspacing\scriptstyle=0.7\thinmuskip
- \Umathrelordspacing\scriptstyle=\thinmuskip
- \Umathrelopspacing\scriptstyle=\thinmuskip
- \Umathrelopenspacing\scriptstyle=\thinmuskip
- \Umathrelinnerspacing\scriptstyle=\thinmuskip
- \Umathcloseopspacing\scriptstyle=0.6\thinmuskip
- \Umathclosebinspacing\scriptstyle=0.7\thinmuskip
- \Umathcloserelspacing\scriptstyle=\thinmuskip
- \Umathcloseinnerspacing\scriptstyle=0.6\thinmuskip
- \Umathpunctordspacing\scriptstyle=0.6\thinmuskip
- \Umathpunctopspacing\scriptstyle=0.6\thinmuskip
- \Umathpunctrelspacing\scriptstyle=0.6\thinmuskip
- \Umathpunctopenspacing\scriptstyle=0.6\thinmuskip
- \Umathpunctclosespacing\scriptstyle=0.6\thinmuskip
- \Umathpunctpunctspacing\scriptstyle=0.6\thinmuskip
- \Umathpunctinnerspacing\scriptstyle=0.6\thinmuskip
- \Umathinnerordspacing\scriptstyle=0.6\thinmuskip
- \Umathinneropspacing\scriptstyle=0.6\thinmuskip
- \Umathinnerbinspacing\scriptstyle=0.7\thinmuskip
- \Umathinnerrelspacing\scriptstyle=\thinmuskip
- \Umathinneropenspacing\scriptstyle=0.6\thinmuskip
- \Umathinnerpunctspacing\scriptstyle=0.6\thinmuskip
- \Umathinnerinnerspacing\scriptstyle=0.6\thinmuskip
- \wlog{Package innerscript Info:
- Adjusting spacing for \string\crampedscriptstyle.}
- \Umathordopspacing\crampedscriptstyle=0.6\thinmuskip
- \Umathordbinspacing\crampedscriptstyle=0.7\thinmuskip
- \Umathordrelspacing\crampedscriptstyle=\thinmuskip
- \Umathordinnerspacing\crampedscriptstyle=0.6\thinmuskip
- \Umathopordspacing\crampedscriptstyle=0.6\thinmuskip
- \Umathopopspacing\crampedscriptstyle=0.6\thinmuskip
- \Umathoprelspacing\crampedscriptstyle=\thinmuskip
- \Umathopinnerspacing\crampedscriptstyle=\thinmuskip
- \Umathbinordspacing\crampedscriptstyle=0.7\thinmuskip
- \Umathbinopspacing\crampedscriptstyle=0.7\thinmuskip
- \Umathbinopenspacing\crampedscriptstyle=0.7\thinmuskip
- \Umathbininnerspacing\crampedscriptstyle=0.7\thinmuskip
- \Umathrelordspacing\crampedscriptstyle=\thinmuskip
- \Umathrelopspacing\crampedscriptstyle=\thinmuskip
- \Umathrelopenspacing\crampedscriptstyle=\thinmuskip
- \Umathrelinnerspacing\crampedscriptstyle=\thinmuskip
- \Umathcloseopspacing\crampedscriptstyle=0.6\thinmuskip
- \Umathclosebinspacing\crampedscriptstyle=0.7\thinmuskip
- \Umathcloserelspacing\crampedscriptstyle=\thinmuskip
- \Umathcloseinnerspacing\crampedscriptstyle=0.6\thinmuskip
- \Umathpunctordspacing\crampedscriptstyle=0.6\thinmuskip
- \Umathpunctopspacing\crampedscriptstyle=0.6\thinmuskip
- \Umathpunctrelspacing\crampedscriptstyle=0.6\thinmuskip
- \Umathpunctopenspacing\crampedscriptstyle=0.6\thinmuskip
- \Umathpunctclosespacing\crampedscriptstyle=0.6\thinmuskip
- \Umathpunctpunctspacing\crampedscriptstyle=0.6\thinmuskip
- \Umathpunctinnerspacing\crampedscriptstyle=0.6\thinmuskip
- \Umathinnerordspacing\crampedscriptstyle=0.6\thinmuskip
- \Umathinneropspacing\crampedscriptstyle=0.6\thinmuskip
- \Umathinnerbinspacing\crampedscriptstyle=0.7\thinmuskip
- \Umathinnerrelspacing\crampedscriptstyle=\thinmuskip
- \Umathinneropenspacing\crampedscriptstyle=0.6\thinmuskip
- \Umathinnerpunctspacing\crampedscriptstyle=0.6\thinmuskip
- \Umathinnerinnerspacing\crampedscriptstyle=0.6\thinmuskip
-\fi
-% \end{macrocode}
-% Set the spacing for |\scriptscriptstyle| and |\crampedscriptscriptstyle|. The process is the same as it was for |\scriptstyle| except with different |\muskip| \textit{factors}.
-% \begin{macrocode}
-\ifIS@scriptscript
- \wlog{Package innerscript Info:
- Adjusting spacing for \string\scriptscriptstyle.}
- \Umathordopspacing\scriptscriptstyle=0.4\thinmuskip
- \Umathordbinspacing\scriptscriptstyle=0.5\thinmuskip
- \Umathordrelspacing\scriptscriptstyle=0.7\thinmuskip
- \Umathordinnerspacing\scriptscriptstyle=0.4\thinmuskip
- \Umathopordspacing\scriptscriptstyle=0.4\thinmuskip
- \Umathopopspacing\scriptscriptstyle=0.4\thinmuskip
- \Umathoprelspacing\scriptscriptstyle=0.7\thinmuskip
- \Umathopinnerspacing\scriptscriptstyle=0.7\thinmuskip
- \Umathbinordspacing\scriptscriptstyle=0.5\thinmuskip
- \Umathbinopspacing\scriptscriptstyle=0.5\thinmuskip
- \Umathbinopenspacing\scriptscriptstyle=0.5\thinmuskip
- \Umathbininnerspacing\scriptscriptstyle=0.5\thinmuskip
- \Umathrelordspacing\scriptscriptstyle=0.7\thinmuskip
- \Umathrelopspacing\scriptscriptstyle=0.7\thinmuskip
- \Umathrelopenspacing\scriptscriptstyle=0.7\thinmuskip
- \Umathrelinnerspacing\scriptscriptstyle=0.7\thinmuskip
- \Umathcloseopspacing\scriptscriptstyle=0.4\thinmuskip
- \Umathclosebinspacing\scriptscriptstyle=0.5\thinmuskip
- \Umathcloserelspacing\scriptscriptstyle=0.7\thinmuskip
- \Umathcloseinnerspacing\scriptscriptstyle=0.4\thinmuskip
- \Umathpunctordspacing\scriptscriptstyle=0.4\thinmuskip
- \Umathpunctopspacing\scriptscriptstyle=0.4\thinmuskip
- \Umathpunctrelspacing\scriptscriptstyle=0.4\thinmuskip
- \Umathpunctopenspacing\scriptscriptstyle=0.4\thinmuskip
- \Umathpunctclosespacing\scriptscriptstyle=0.4\thinmuskip
- \Umathpunctpunctspacing\scriptscriptstyle=0.4\thinmuskip
- \Umathpunctinnerspacing\scriptscriptstyle=0.4\thinmuskip
- \Umathinnerordspacing\scriptscriptstyle=0.4\thinmuskip
- \Umathinneropspacing\scriptscriptstyle=0.4\thinmuskip
- \Umathinnerbinspacing\scriptscriptstyle=0.5\thinmuskip
- \Umathinnerrelspacing\scriptscriptstyle=0.7\thinmuskip
- \Umathinneropenspacing\scriptscriptstyle=0.4\thinmuskip
- \Umathinnerpunctspacing\scriptscriptstyle=0.4\thinmuskip
- \Umathinnerinnerspacing\scriptscriptstyle=0.4\thinmuskip
- \wlog{Package innerscript Info:
- Adjusting spacing for \string\crampedscriptscriptstyle.}
- \Umathordopspacing\crampedscriptscriptstyle=0.4\thinmuskip
- \Umathordbinspacing\crampedscriptscriptstyle=0.5\thinmuskip
- \Umathordrelspacing\crampedscriptscriptstyle=0.7\thinmuskip
- \Umathordinnerspacing\crampedscriptscriptstyle=0.4\thinmuskip
- \Umathopordspacing\crampedscriptscriptstyle=0.4\thinmuskip
- \Umathopopspacing\crampedscriptscriptstyle=0.4\thinmuskip
- \Umathoprelspacing\crampedscriptscriptstyle=0.7\thinmuskip
- \Umathopinnerspacing\crampedscriptscriptstyle=0.7\thinmuskip
- \Umathbinordspacing\crampedscriptscriptstyle=0.5\thinmuskip
- \Umathbinopspacing\crampedscriptscriptstyle=0.5\thinmuskip
- \Umathbinopenspacing\crampedscriptscriptstyle=0.5\thinmuskip
- \Umathbininnerspacing\crampedscriptscriptstyle=0.5\thinmuskip
- \Umathrelordspacing\crampedscriptscriptstyle=0.7\thinmuskip
- \Umathrelopspacing\crampedscriptscriptstyle=0.7\thinmuskip
- \Umathrelopenspacing\crampedscriptscriptstyle=0.7\thinmuskip
- \Umathrelinnerspacing\crampedscriptscriptstyle=0.7\thinmuskip
- \Umathcloseopspacing\crampedscriptscriptstyle=0.4\thinmuskip
- \Umathclosebinspacing\crampedscriptscriptstyle=0.5\thinmuskip
- \Umathcloserelspacing\crampedscriptscriptstyle=0.7\thinmuskip
- \Umathcloseinnerspacing\crampedscriptscriptstyle=0.4\thinmuskip
- \Umathpunctordspacing\crampedscriptscriptstyle=0.4\thinmuskip
- \Umathpunctopspacing\crampedscriptscriptstyle=0.4\thinmuskip
- \Umathpunctrelspacing\crampedscriptscriptstyle=0.4\thinmuskip
- \Umathpunctopenspacing\crampedscriptscriptstyle=0.4\thinmuskip
- \Umathpunctclosespacing\crampedscriptscriptstyle=0.4\thinmuskip
- \Umathpunctpunctspacing\crampedscriptscriptstyle=0.4\thinmuskip
- \Umathpunctinnerspacing\crampedscriptscriptstyle=0.4\thinmuskip
- \Umathinnerordspacing\crampedscriptscriptstyle=0.4\thinmuskip
- \Umathinneropspacing\crampedscriptscriptstyle=0.4\thinmuskip
- \Umathinnerbinspacing\crampedscriptscriptstyle=0.5\thinmuskip
- \Umathinnerrelspacing\crampedscriptscriptstyle=0.7\thinmuskip
- \Umathinneropenspacing\crampedscriptscriptstyle=0.4\thinmuskip
- \Umathinnerpunctspacing\crampedscriptscriptstyle=0.4\thinmuskip
- \Umathinnerinnerspacing\crampedscriptscriptstyle=0.4\thinmuskip
-\fi
-% \end{macrocode}
-% Now set the spacing for |\mathinner| subformulas. We store each |\mathord| spacing dimension in |\IS@skip| and use it to reset the |\mathinner| spacing. Each command has the form
-% \begin{code}
-% |\IS@skip\Umath|\argtext{math class}|ordspacing\|\argtext{math style}\\
-% |\Umath|\argtext{math class}|innerspacing\|\argtext{math style}|\IS@skip|
-% \end{code}
-% or
-% \begin{code}
-% |\IS@skip\Umathord|\argtext{math class}|spacing\|\argtext{math style}\\
-% |\Umathinner|\argtext{math class}|spacing\|\argtext{math style}|\IS@skip|,
-% \end{code}
-% where \textit{math class} is one of |ord|, |op|, |bin|, |rel|, |open|, |close|, |punct|, or |inner|. The \textit{math style} is either |displaystyle|, |textstyle|, |scriptstyle|, |scriptscriptstyle|, or the cramped version of any of those four.
-% \begin{macrocode}
-\ifIS@inner
- \wlog{Package innerscript Info:
- Adjusting spacing for \string\mathinner.}
- \IS@skip\Umathordordspacing\displaystyle
- \Umathordinnerspacing\displaystyle\IS@skip
- \IS@skip\Umathordordspacing\textstyle
- \Umathordinnerspacing\textstyle\IS@skip
- \IS@skip\Umathordordspacing\scriptstyle
- \Umathordinnerspacing\scriptstyle\IS@skip
- \IS@skip\Umathordordspacing\scriptscriptstyle
- \Umathordinnerspacing\scriptscriptstyle\IS@skip
- \IS@skip\Umathordordspacing\crampeddisplaystyle
- \Umathordinnerspacing\crampeddisplaystyle\IS@skip
- \IS@skip\Umathordordspacing\crampedtextstyle
- \Umathordinnerspacing\crampedtextstyle\IS@skip
- \IS@skip\Umathordordspacing\crampedscriptstyle
- \Umathordinnerspacing\crampedscriptstyle\IS@skip
- \IS@skip\Umathordordspacing\crampedscriptscriptstyle
- \Umathordinnerspacing\crampedscriptscriptstyle\IS@skip
- \IS@skip\Umathopordspacing\displaystyle
- \Umathopinnerspacing\displaystyle\IS@skip
- \IS@skip\Umathopordspacing\textstyle
- \Umathopinnerspacing\textstyle\IS@skip
- \IS@skip\Umathopordspacing\scriptstyle
- \Umathopinnerspacing\scriptstyle\IS@skip
- \IS@skip\Umathopordspacing\scriptscriptstyle
- \Umathopinnerspacing\scriptscriptstyle\IS@skip
- \IS@skip\Umathopordspacing\crampeddisplaystyle
- \Umathopinnerspacing\crampeddisplaystyle\IS@skip
- \IS@skip\Umathopordspacing\crampedtextstyle
- \Umathopinnerspacing\crampedtextstyle\IS@skip
- \IS@skip\Umathopordspacing\crampedscriptstyle
- \Umathopinnerspacing\crampedscriptstyle\IS@skip
- \IS@skip\Umathopordspacing\crampedscriptscriptstyle
- \Umathopinnerspacing\crampedscriptscriptstyle\IS@skip
- \IS@skip\Umathbinordspacing\displaystyle
- \Umathbininnerspacing\displaystyle\IS@skip
- \IS@skip\Umathbinordspacing\textstyle
- \Umathbininnerspacing\textstyle\IS@skip
- \IS@skip\Umathbinordspacing\scriptstyle
- \Umathbininnerspacing\scriptstyle\IS@skip
- \IS@skip\Umathbinordspacing\scriptscriptstyle
- \Umathbininnerspacing\scriptscriptstyle\IS@skip
- \IS@skip\Umathbinordspacing\crampeddisplaystyle
- \Umathbininnerspacing\crampeddisplaystyle\IS@skip
- \IS@skip\Umathbinordspacing\crampedtextstyle
- \Umathbininnerspacing\crampedtextstyle\IS@skip
- \IS@skip\Umathbinordspacing\crampedscriptstyle
- \Umathbininnerspacing\crampedscriptstyle\IS@skip
- \IS@skip\Umathbinordspacing\crampedscriptscriptstyle
- \Umathbininnerspacing\crampedscriptscriptstyle\IS@skip
- \IS@skip\Umathrelordspacing\displaystyle
- \Umathrelinnerspacing\displaystyle\IS@skip
- \IS@skip\Umathrelordspacing\textstyle
- \Umathrelinnerspacing\textstyle\IS@skip
- \IS@skip\Umathrelordspacing\scriptstyle
- \Umathrelinnerspacing\scriptstyle\IS@skip
- \IS@skip\Umathrelordspacing\scriptscriptstyle
- \Umathrelinnerspacing\scriptscriptstyle\IS@skip
- \IS@skip\Umathrelordspacing\crampeddisplaystyle
- \Umathrelinnerspacing\crampeddisplaystyle\IS@skip
- \IS@skip\Umathrelordspacing\crampedtextstyle
- \Umathrelinnerspacing\crampedtextstyle\IS@skip
- \IS@skip\Umathrelordspacing\crampedscriptstyle
- \Umathrelinnerspacing\crampedscriptstyle\IS@skip
- \IS@skip\Umathrelordspacing\crampedscriptscriptstyle
- \Umathrelinnerspacing\crampedscriptscriptstyle\IS@skip
- \IS@skip\Umathopenordspacing\displaystyle
- \Umathopeninnerspacing\displaystyle\IS@skip
- \IS@skip\Umathopenordspacing\textstyle
- \Umathopeninnerspacing\textstyle\IS@skip
- \IS@skip\Umathopenordspacing\scriptstyle
- \Umathopeninnerspacing\scriptstyle\IS@skip
- \IS@skip\Umathopenordspacing\scriptscriptstyle
- \Umathopeninnerspacing\scriptscriptstyle\IS@skip
- \IS@skip\Umathopenordspacing\crampeddisplaystyle
- \Umathopeninnerspacing\crampeddisplaystyle\IS@skip
- \IS@skip\Umathopenordspacing\crampedtextstyle
- \Umathopeninnerspacing\crampedtextstyle\IS@skip
- \IS@skip\Umathopenordspacing\crampedscriptstyle
- \Umathopeninnerspacing\crampedscriptstyle\IS@skip
- \IS@skip\Umathopenordspacing\crampedscriptscriptstyle
- \Umathopeninnerspacing\crampedscriptscriptstyle\IS@skip
- \IS@skip\Umathcloseordspacing\displaystyle
- \Umathcloseinnerspacing\displaystyle\IS@skip
- \IS@skip\Umathcloseordspacing\textstyle
- \Umathcloseinnerspacing\textstyle\IS@skip
- \IS@skip\Umathcloseordspacing\scriptstyle
- \Umathcloseinnerspacing\scriptstyle\IS@skip
- \IS@skip\Umathcloseordspacing\scriptscriptstyle
- \Umathcloseinnerspacing\scriptscriptstyle\IS@skip
- \IS@skip\Umathcloseordspacing\crampeddisplaystyle
- \Umathcloseinnerspacing\crampeddisplaystyle\IS@skip
- \IS@skip\Umathcloseordspacing\crampedtextstyle
- \Umathcloseinnerspacing\crampedtextstyle\IS@skip
- \IS@skip\Umathcloseordspacing\crampedscriptstyle
- \Umathcloseinnerspacing\crampedscriptstyle\IS@skip
- \IS@skip\Umathcloseordspacing\crampedscriptscriptstyle
- \Umathcloseinnerspacing\crampedscriptscriptstyle\IS@skip
- \IS@skip\Umathpunctordspacing\displaystyle
- \Umathpunctinnerspacing\displaystyle\IS@skip
- \IS@skip\Umathpunctordspacing\textstyle
- \Umathpunctinnerspacing\textstyle\IS@skip
- \IS@skip\Umathpunctordspacing\scriptstyle
- \Umathpunctinnerspacing\scriptstyle\IS@skip
- \IS@skip\Umathpunctordspacing\scriptscriptstyle
- \Umathpunctinnerspacing\scriptscriptstyle\IS@skip
- \IS@skip\Umathpunctordspacing\crampeddisplaystyle
- \Umathpunctinnerspacing\crampeddisplaystyle\IS@skip
- \IS@skip\Umathpunctordspacing\crampedtextstyle
- \Umathpunctinnerspacing\crampedtextstyle\IS@skip
- \IS@skip\Umathpunctordspacing\crampedscriptstyle
- \Umathpunctinnerspacing\crampedscriptstyle\IS@skip
- \IS@skip\Umathpunctordspacing\crampedscriptscriptstyle
- \Umathpunctinnerspacing\crampedscriptscriptstyle\IS@skip
- \IS@skip\Umathordordspacing\displaystyle
- \Umathinnerordspacing\displaystyle\IS@skip
- \IS@skip\Umathordordspacing\textstyle
- \Umathinnerordspacing\textstyle\IS@skip
- \IS@skip\Umathordordspacing\scriptstyle
- \Umathinnerordspacing\scriptstyle\IS@skip
- \IS@skip\Umathordordspacing\scriptscriptstyle
- \Umathinnerordspacing\scriptscriptstyle\IS@skip
- \IS@skip\Umathordordspacing\crampeddisplaystyle
- \Umathinnerordspacing\crampeddisplaystyle\IS@skip
- \IS@skip\Umathordordspacing\crampedtextstyle
- \Umathinnerordspacing\crampedtextstyle\IS@skip
- \IS@skip\Umathordordspacing\crampedscriptstyle
- \Umathinnerordspacing\crampedscriptstyle\IS@skip
- \IS@skip\Umathordordspacing\crampedscriptscriptstyle
- \Umathinnerordspacing\crampedscriptscriptstyle\IS@skip
- \IS@skip\Umathordopspacing\displaystyle
- \Umathinneropspacing\displaystyle\IS@skip
- \IS@skip\Umathordopspacing\textstyle
- \Umathinneropspacing\textstyle\IS@skip
- \IS@skip\Umathordopspacing\scriptstyle
- \Umathinneropspacing\scriptstyle\IS@skip
- \IS@skip\Umathordopspacing\scriptscriptstyle
- \Umathinneropspacing\scriptscriptstyle\IS@skip
- \IS@skip\Umathordopspacing\crampeddisplaystyle
- \Umathinneropspacing\crampeddisplaystyle\IS@skip
- \IS@skip\Umathordopspacing\crampedtextstyle
- \Umathinneropspacing\crampedtextstyle\IS@skip
- \IS@skip\Umathordopspacing\crampedscriptstyle
- \Umathinneropspacing\crampedscriptstyle\IS@skip
- \IS@skip\Umathordopspacing\crampedscriptscriptstyle
- \Umathinneropspacing\crampedscriptscriptstyle\IS@skip
- \IS@skip\Umathordbinspacing\displaystyle
- \Umathinnerbinspacing\displaystyle\IS@skip
- \IS@skip\Umathordbinspacing\textstyle
- \Umathinnerbinspacing\textstyle\IS@skip
- \IS@skip\Umathordbinspacing\scriptstyle
- \Umathinnerbinspacing\scriptstyle\IS@skip
- \IS@skip\Umathordbinspacing\scriptscriptstyle
- \Umathinnerbinspacing\scriptscriptstyle\IS@skip
- \IS@skip\Umathordbinspacing\crampeddisplaystyle
- \Umathinnerbinspacing\crampeddisplaystyle\IS@skip
- \IS@skip\Umathordbinspacing\crampedtextstyle
- \Umathinnerbinspacing\crampedtextstyle\IS@skip
- \IS@skip\Umathordbinspacing\crampedscriptstyle
- \Umathinnerbinspacing\crampedscriptstyle\IS@skip
- \IS@skip\Umathordbinspacing\crampedscriptscriptstyle
- \Umathinnerbinspacing\crampedscriptscriptstyle\IS@skip
- \IS@skip\Umathordrelspacing\displaystyle
- \Umathinnerrelspacing\displaystyle\IS@skip
- \IS@skip\Umathordrelspacing\textstyle
- \Umathinnerrelspacing\textstyle\IS@skip
- \IS@skip\Umathordrelspacing\scriptstyle
- \Umathinnerrelspacing\scriptstyle\IS@skip
- \IS@skip\Umathordrelspacing\scriptscriptstyle
- \Umathinnerrelspacing\scriptscriptstyle\IS@skip
- \IS@skip\Umathordrelspacing\crampeddisplaystyle
- \Umathinnerrelspacing\crampeddisplaystyle\IS@skip
- \IS@skip\Umathordrelspacing\crampedtextstyle
- \Umathinnerrelspacing\crampedtextstyle\IS@skip
- \IS@skip\Umathordrelspacing\crampedscriptstyle
- \Umathinnerrelspacing\crampedscriptstyle\IS@skip
- \IS@skip\Umathordrelspacing\crampedscriptscriptstyle
- \Umathinnerrelspacing\crampedscriptscriptstyle\IS@skip
- \IS@skip\Umathordopenspacing\displaystyle
- \Umathinneropenspacing\displaystyle\IS@skip
- \IS@skip\Umathordopenspacing\textstyle
- \Umathinneropenspacing\textstyle\IS@skip
- \IS@skip\Umathordopenspacing\scriptstyle
- \Umathinneropenspacing\scriptstyle\IS@skip
- \IS@skip\Umathordopenspacing\scriptscriptstyle
- \Umathinneropenspacing\scriptscriptstyle\IS@skip
- \IS@skip\Umathordopenspacing\crampeddisplaystyle
- \Umathinneropenspacing\crampeddisplaystyle\IS@skip
- \IS@skip\Umathordopenspacing\crampedtextstyle
- \Umathinneropenspacing\crampedtextstyle\IS@skip
- \IS@skip\Umathordopenspacing\crampedscriptstyle
- \Umathinneropenspacing\crampedscriptstyle\IS@skip
- \IS@skip\Umathordopenspacing\crampedscriptscriptstyle
- \Umathinneropenspacing\crampedscriptscriptstyle\IS@skip
- \IS@skip\Umathordclosespacing\displaystyle
- \Umathinnerclosespacing\displaystyle\IS@skip
- \IS@skip\Umathordclosespacing\textstyle
- \Umathinnerclosespacing\textstyle\IS@skip
- \IS@skip\Umathordclosespacing\scriptstyle
- \Umathinnerclosespacing\scriptstyle\IS@skip
- \IS@skip\Umathordclosespacing\scriptscriptstyle
- \Umathinnerclosespacing\scriptscriptstyle\IS@skip
- \IS@skip\Umathordclosespacing\crampeddisplaystyle
- \Umathinnerclosespacing\crampeddisplaystyle\IS@skip
- \IS@skip\Umathordclosespacing\crampedtextstyle
- \Umathinnerclosespacing\crampedtextstyle\IS@skip
- \IS@skip\Umathordclosespacing\crampedscriptstyle
- \Umathinnerclosespacing\crampedscriptstyle\IS@skip
- \IS@skip\Umathordclosespacing\crampedscriptscriptstyle
- \Umathinnerclosespacing\crampedscriptscriptstyle\IS@skip
- \IS@skip\Umathordpunctspacing\displaystyle
- \Umathinnerpunctspacing\displaystyle\IS@skip
- \IS@skip\Umathordpunctspacing\textstyle
- \Umathinnerpunctspacing\textstyle\IS@skip
- \IS@skip\Umathordpunctspacing\scriptstyle
- \Umathinnerpunctspacing\scriptstyle\IS@skip
- \IS@skip\Umathordpunctspacing\scriptscriptstyle
- \Umathinnerpunctspacing\scriptscriptstyle\IS@skip
- \IS@skip\Umathordpunctspacing\crampeddisplaystyle
- \Umathinnerpunctspacing\crampeddisplaystyle\IS@skip
- \IS@skip\Umathordpunctspacing\crampedtextstyle
- \Umathinnerpunctspacing\crampedtextstyle\IS@skip
- \IS@skip\Umathordpunctspacing\crampedscriptstyle
- \Umathinnerpunctspacing\crampedscriptstyle\IS@skip
- \IS@skip\Umathordpunctspacing\crampedscriptscriptstyle
- \Umathinnerpunctspacing\crampedscriptscriptstyle\IS@skip
- \IS@skip\Umathordordspacing\displaystyle
- \Umathinnerinnerspacing\displaystyle\IS@skip
- \IS@skip\Umathordordspacing\textstyle
- \Umathinnerinnerspacing\textstyle\IS@skip
- \IS@skip\Umathordordspacing\scriptstyle
- \Umathinnerinnerspacing\scriptstyle\IS@skip
- \IS@skip\Umathordordspacing\scriptscriptstyle
- \Umathinnerinnerspacing\scriptscriptstyle\IS@skip
- \IS@skip\Umathordordspacing\crampeddisplaystyle
- \Umathinnerinnerspacing\crampeddisplaystyle\IS@skip
- \IS@skip\Umathordordspacing\crampedtextstyle
- \Umathinnerinnerspacing\crampedtextstyle\IS@skip
- \IS@skip\Umathordordspacing\crampedscriptstyle
- \Umathinnerinnerspacing\crampedscriptstyle\IS@skip
- \IS@skip\Umathordordspacing\crampedscriptscriptstyle
- \Umathinnerinnerspacing\crampedscriptscriptstyle\IS@skip
-\fi
-% \end{macrocode}
-% \vfil\eject
-% \section*{Version History}
-% \begin{multicols*}{2}
-% \bgroup\raggedright\parskip\z@\parindent\z@\leftskip1em\obeylines
-% \setbox0\hbox{\hskip 1pt.\hskip 1pt}
-% \def\version#1#2{\bigskip\hbox to \hsize{\textbf{#1} \cleaders\copy0\hfill\ #2}\par}
-% \def\item{---\kern0.2ex\relax}
-%
-% \version{1.0}{February 2021}
-% \item initial release
-%
-% \version{1.1}{Fegruary 2021}
-% \item bug fix for |\mathinner| spacing
-% \item added |\IS@skip| muglue register
-%
-% \egroup
-% \end{multicols*}
-%
-%
-%
-% \iffalse
-%</package>
-% \fi
-%
-%
-% \check@checksum
-%
-%
-\endinput \ No newline at end of file
diff --git a/macros/luatex/latex/innerscript/innerscript.pdf b/macros/luatex/latex/innerscript/innerscript.pdf
deleted file mode 100644
index aa214fb36b..0000000000
--- a/macros/luatex/latex/innerscript/innerscript.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/luatex/latex/innerscript/innerscript_code.dtx b/macros/luatex/latex/innerscript/innerscript_code.dtx
new file mode 100644
index 0000000000..6c900172b6
--- /dev/null
+++ b/macros/luatex/latex/innerscript/innerscript_code.dtx
@@ -0,0 +1,1495 @@
+% \iffalse ---!!! FIRST META-COMMENT !!!---
+%
+%
+% This file is innerscript_code.dtx from version 1.2
+% of the free and open-source LaTeX package "innerscript,"
+% released November 2023, to be used with the LuaTeX engine.
+%
+% Running Plain TeX on innerscript_code.dtx will
+% produce the following files:
+%
+% (1) the package file innerscript.sty;
+%
+% (2) the derived files innerscript_heading.tex
+% and innerscript_user_guide.tex, which are
+% used for typesetting documentation;
+%
+% and
+%
+% (3) a number of other derived files.
+%
+% Running LaTeX on innerscript_code.dtx will produce the
+% files listed above as well as the following:
+%
+% (4) the pdf documentation file innerscript_code.pdf;
+%
+% and
+%
+% (5) a number of other derived files.
+%
+% To install innerscript on your computer, run this file
+% through Plain TeX or LaTeX and move innerscript.sty
+% to a directory searchable by TeX. See the associated
+% README.txt file for installation information.
+%
+%
+% \fi
+% \iffalse ---!!! SECOND META-COMMENT !!!---
+%
+%
+% This file is from version 1.2 of the free and open-source
+% LaTeX package "innerscript," released November 2023, to be
+% used with the LuaTeX engine.
+%
+% Copyright 2021, 2023 by Conrad Kosowsky
+%
+% This file may be distributed and modified under the terms
+% of the LaTeX Public Project License, version 1.3c or any
+% later version. The most recent version of this license is
+% available online at
+%
+% https://www.latex-project.org/lppl/
+%
+% This Work has the LPPL status "maintained," and the current
+% maintainer is the package author, Conrad Kosowsky. He can
+% be reached at kosowsky.latex@gmail.com. The Work consists
+% of the following items:
+%
+% (1) the base file innerscript.dtx;
+%
+% (2) the package file innerscript.sty;
+%
+% (3) the pdf documentation files innerscript_code.pdf
+% and innerscript_user_guide.pdf;
+%
+% (4) the derived file innerscript_heading.tex;
+%
+% (4) all other files created through the configuration
+% process;
+%
+% and
+%
+% (5) the associated README.txt file.
+%
+% PLEASE KNOW THAT THIS FREE SOFTWARE IS PROVIDED WITHOUT
+% ANY WARRANTY. SPECIFICALLY, THE "NO WARRANTY" SECTION OF
+% THE LATEX PROJECT PUBLIC LICENSE STATES THE FOLLOWING:
+%
+% THERE IS NO WARRANTY FOR THE WORK. EXCEPT WHEN OTHERWISE
+% STATED IN WRITING, THE COPYRIGHT HOLDER PROVIDES THE WORK
+% `AS IS’, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+% OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+% WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+% PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE
+% OF THE WORK IS WITH YOU. SHOULD THE WORK PROVE DEFECTIVE,
+% YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR, OR
+% CORRECTION.
+%
+% IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED
+% TO IN WRITING WILL THE COPYRIGHT HOLDER, OR ANY AUTHOR
+% NAMED IN THE COMPONENTS OF THE WORK, OR ANY OTHER PARTY
+% WHO MAY DISTRIBUTE AND/OR MODIFY THE WORK AS PERMITTED
+% ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
+% SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT
+% OF ANY USE OF THE WORK OR OUT OF INABILITY TO USE THE WORK
+% (INCLUDING, BUT NOT LIMITED TO, LOSS OF DATA, DATA BEING
+% RENDERED INACCURATE, OR LOSSES SUSTAINED BY ANYONE AS A
+% RESULT OF ANY FAILURE OF THE WORK TO OPERATE WITH ANY
+% OTHER PROGRAMS), EVEN IF THE COPYRIGHT HOLDER OR SAID
+% AUTHOR OR SAID OTHER PARTY HAS BEEN ADVISED OF THE
+% POSSIBILITY OF SUCH DAMAGES.
+%
+% For more information, see the LaTeX Project Public License.
+% Derivative works based on this software may come with their
+% own license or terms of use, and the package author is not
+% responsible for any third-party software.
+%
+% Happy TeXing!
+%
+%
+% \fi
+% \iffalse
+%
+% The installation and driver files are incorporated into
+% innerscript_code.dtx, so we do not need to generate them
+% separately. The <batchfile> and <driver> tags are for
+% reference.
+%
+%<*batchfile>
+\begingroup
+\input docstrip.tex
+\keepsilent
+\askforoverwritefalse
+\preamble
+
+This file is from version 1.2 of the free and open-source
+LaTeX package "innerscript," released November 2023, to be
+used with the LuaTeX engine.
+
+Copyright 2021, 2023 by Conrad Kosowsky
+
+This file may be distributed and modified under the terms
+of the LaTeX Public Project License, version 1.3c or any
+later version. The most recent version of this license is
+available online at
+
+ https://www.latex-project.org/lppl/
+
+This work has the LPPL status "maintained," and the current
+maintainer is the package author, Conrad Kosowsky. He can
+be reached at kosowsky.latex@gmail.com.
+
+PLEASE KNOW THAT THIS FREE SOFTWARE IS PROVIDED WITHOUT
+ANY WARRANTY. SPECIFICALLY, THE "NO WARRANTY" SECTION OF
+THE LATEX PROJECT PUBLIC LICENSE STATES THE FOLLOWING:
+
+THERE IS NO WARRANTY FOR THE WORK. EXCEPT WHEN OTHERWISE
+STATED IN WRITING, THE COPYRIGHT HOLDER PROVIDES THE WORK
+`AS IS’, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE
+OF THE WORK IS WITH YOU. SHOULD THE WORK PROVE DEFECTIVE,
+YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR, OR
+CORRECTION.
+
+IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED
+TO IN WRITING WILL THE COPYRIGHT HOLDER, OR ANY AUTHOR
+NAMED IN THE COMPONENTS OF THE WORK, OR ANY OTHER PARTY
+WHO MAY DISTRIBUTE AND/OR MODIFY THE WORK AS PERMITTED
+ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
+SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT
+OF ANY USE OF THE WORK OR OUT OF INABILITY TO USE THE WORK
+(INCLUDING, BUT NOT LIMITED TO, LOSS OF DATA, DATA BEING
+RENDERED INACCURATE, OR LOSSES SUSTAINED BY ANYONE AS A
+RESULT OF ANY FAILURE OF THE WORK TO OPERATE WITH ANY
+OTHER PROGRAMS), EVEN IF THE COPYRIGHT HOLDER OR SAID
+AUTHOR OR SAID OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+For more information, see the LaTeX Project Public License.
+Derivative works based on this software may come with their
+own license or terms of use, and the package author is not
+responsible for any third-party software.
+
+Happy TeXing!
+
+\endpreamble
+\generate{\file{innerscript.sty}{\from{innerscript_code.dtx}{package}}
+ \file{innerscript_user_guide.tex}{\from{innerscript_code.dtx}{user}}
+ \file{innerscript_heading.tex}{\from{innerscript_code.dtx}{heading}}}
+\catcode`\ =12\relax
+\immediate\write0{^^J%
+****************************************************^^J%
+* Step 1 of the innerscript installation complete! *^^J%
+****************************************************^^J^^J%
+****************************************************^^J%
+* To finish installing the package, move *^^J%
+* innerscript.sty to a directory searchable by TeX *^^J%
+* after innerscript_code.tex is done typesetting *^^J%
+****************************************************^^J}
+\endgroup
+\ifx\LaTeX\undefined
+ \immediate\write0{Plain TeX format used; quitting now.}
+ \immediate\write0{To create innerscript_code.pdf, run^^J%
+ innerscript_code.dtx through LaTeX.^^J^^J}
+ \expandafter\end
+\fi
+%</batchfile>
+%<*driver>
+\makeatletter
+\documentclass[12pt,doc2,letterpaper]{ltxdoc}
+\usepackage[margin=72.27pt]{geometry}
+\usepackage[factor=700,stretch=14,shrink=14,step=1]{microtype}
+\usepackage{booktabs}
+\usepackage{tabularx}
+\usepackage{amsmath}
+\usepackage{multicol}
+\usepackage{graphicx}
+\begin{document}
+ \def\documentname{Implementation}
+ \input innerscript_heading.tex
+ \DocInput{innerscript_code.dtx}
+\end{document}
+%</driver>
+%<*package>
+%
+% \fi
+%
+%
+% \CheckSum{1921}
+% \init@checksum
+%
+% \makeatother
+% \CharacterTable
+% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+% \makeatletter
+%
+%
+%
+% \noindent This file documents the code for the \textsf{innerscript} package. It is not a user guide! If you are looking for instructions on how to load \textsf{innerscript} and what it can do for your document, see |innerscript_user_guide.pdf|, which is included with the \textsf{innerscript} installation and is available on \textsc{ctan}. Section~1 begins with the package declaration and option processing. Sections~2 and 3 contain the code to adjust spacing between symbols in |\scriptstyle| and |\scriptscriptstyle| respectively, and Section~4 contains the code for adjusting the spacing around |\mathinner| subformulas. Section~5 handles spacing between |\mathclose| and |\mathord| atoms, and section~6 fills out the resizable delimiter heights. Version history appears at the end of the document.
+%
+%
+%
+% \section{Setup}
+%
+% We begin the implementation by declaring the package. The counts |\IS@script| and |\IS@scriptscript| and the conditionals |\ifIS@inner|, |\ifIS@close|, and |\ifIS@cover| encode package option information. For the counts, a value of 0 means no changes, a value of 1 means default spacing, and a value of 2 means legacy spacing.
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{innerscript}[2023/11/06 v. 1.2 Package innerscript]
+\newcount\IS@script
+\newcount\IS@scriptscript
+\newif\ifIS@inner
+\newif\ifIS@close
+\newif\ifIS@cover
+% \end{macrocode}
+% And set default options.
+% \begin{macrocode}
+\IS@script\@ne
+\IS@scriptscript\@ne
+\IS@innertrue
+\IS@closetrue
+\IS@covertrue
+% \end{macrocode}
+% Now define and process the package options.
+% \begin{macrocode}
+\DeclareOption{script}{\IS@script\@ne}
+\DeclareOption{scriptscript}{\IS@scriptscript\@ne}
+\DeclareOption{inner}{\IS@innertrue}
+\DeclareOption{close}{\IS@closetrue}
+\DeclareOption{cover}{\IS@covertrue}
+\DeclareOption{legacy-script}{\IS@script\tw@}
+\DeclareOption{legacy-scriptscript}{\IS@scriptscript\tw@}
+\DeclareOption{no-script}{\IS@script\z@}
+\DeclareOption{no-scriptscript}{\IS@scriptscript\z@}
+\DeclareOption{no-inner}{\IS@innerfalse}
+\DeclareOption{no-close}{\IS@closefalse}
+\DeclareOption{no-cover}{\IS@coverfalse}
+\ProcessOptions*
+% \end{macrocode}
+% Check whether |\Umathordordspacing| is defined. If not, issue an error and |\endinput|. We normally can't print multiple spaces at once, so within a group, we change the space catcode to 12.
+% \begin{macrocode}
+\ifx\Umathordordspacing\@undefined
+\bgroup
+\catcode`\+=12\relax
+\def\IS@LuaTeXError{\GenericError{}%
+{\MessageBreak\MessageBreak
+Package innerscript error:%
+\MessageBreak\MessageBreak
+*******************\MessageBreak
+* *\MessageBreak
+* CANNOT LOAD *\MessageBreak
+* INNERSCRIPT *\MessageBreak
+* LuaTeX Needed *\MessageBreak
+* *\MessageBreak
+*******************\MessageBreak\@gobbletwo}%
+{See the innerscript package documentation for explanation.}%
+{I need LuaTeX to make the innerscript package work. It\MessageBreak
+looks like the current engine is something else, so I\MessageBreak
+can't load the package file. To use innerscript, please\MessageBreak
+typeset with LuaLaTeX. To continue without innerscript,\MessageBreak
+press return.}}%
+\expandafter\egroup
+\IS@LuaTeXError
+ \AtEndOfPackage{\typeout{Package innerscript failed to load \on@line!}}
+ \expandafter\endinput % we \endinput with a balanced conditional
+\fi
+% \end{macrocode}
+% To save space in the code, we define |\IS@info| to print an informational message in the |log| file. The macro |\scalemu| scales a muglue register. We use |\scalemu| instead of multiplying the register by a constant because |\scalemu| also affects the stretch and shrink instead of discarding them.
+% \begin{macrocode}
+\def\IS@info#1{\wlog{Package innerscript Info: #1}}
+\def\scalemu#1#2{\muexpr#2#1
+ \@plus\muexpr#2\gluetomu\gluestretch\mutoglue#1\relax
+ \@minus\muexpr#2\gluetomu\glueshrink\mutoglue#1\relax\relax}
+% \end{macrocode}
+%
+% \section{Scriptstyle Spacing}
+% First we set the spacing for |\scriptstyle| and |\crampedscriptstyle| atoms. Each space adjustment has the form
+% \begin{code}
+% |\Umath|\argtext{classes}|spacing|\meta{style}|=\scalemu{|\meta{skip}|}{0.6}|,
+% \end{code}
+% where the \meta{classes} are a pair of choices from |ord|, |op|, |bin|, |rel|, |open|, |close|, |punct|, and |inner|. The \meta{style} is either |\scriptstyle| or |\crampedscriptstyle|, and the \meta{skip} is the amount of muglue that typically appears between the \meta{classes} while in |\textstyle| or |\displaystyle|. As of version 1.2, we use |\scalemu| to scale the muglue registers. Table~1 shows the space inserted with option |script|.
+% \begin{figure}[t!]
+% \centerline{\bfseries\strut Table 1: Space Inserted with Option |script|}
+% \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}lll}\toprule
+% Consecutive Atom Types & Default Space Added & Legacy Space Added\\\midrule
+% |\mathord||\mathop| & 0.6|\thinmuskip| & 0.6|\thinmuskip| \\
+% |\mathord||\mathbin| & 0.6|\medmuskip| & 0.7|\thinmuskip| \\
+% |\mathord||\mathrel| & 0.6|\thickmuskip| & |\thinmuskip| \\
+% |\mathord||\mathinner| & 0.6|\thinmuskip| & 0.6|\thinmuskip| \\\midrule
+% |\mathop||\mathord| & 0.6|\thinmuskip| & 0.6|\thinmuskip| \\
+% |\mathop||\mathop| & 0.6|\thinmuskip| & 0.6|\thinmuskip| \\
+% |\mathop||\mathrel| & 0.6|\thickmuskip| & |\thinmuskip| \\
+% |\mathop||\mathinner| & 0.6|\thickmuskip| & |\thinmuskip| \\\midrule
+% |\mathbin||\mathord| & 0.6|\medmuskip| & 0.7|\thinmuskip| \\
+% |\mathbin||\mathop| & 0.6|\medmuskip| & 0.7|\thinmuskip| \\
+% |\mathbin||\mathopen| & 0.6|\medmuskip| & 0.7|\thinmuskip| \\
+% |\mathbin||\mathinner| & 0.6|\medmuskip| & 0.7|\thinmuskip| \\\midrule
+% |\mathrel||\mathord| & 0.6|\thickmuskip| & |\thinmuskip| \\
+% |\mathrel||\mathop| & 0.6|\thickmuskip| & |\thinmuskip| \\
+% |\mathrel||\mathopen| & 0.6|\thickmuskip| & |\thinmuskip| \\
+% |\mathrel||\mathinner| & 0.6|\thickmuskip| & |\thinmuskip| \\\midrule
+% |\mathclose||\mathop| & 0.6|\thinmuskip| & 0.6|\thinmuskip| \\
+% |\mathclose||\mathbin| & 0.6|\medmuskip| & 0.7|\thinmuskip| \\
+% |\mathclose||\mathrel| & 0.6|\thickmuskip| & |\thinmuskip| \\
+% |\mathclose||\mathinner| & 0.6|\thinmuskip| & 0.6|\thinmuskip| \\\midrule
+% |\mathpunct||\mathord| & 0.6|\thinmuskip| & 0.6|\thinmuskip| \\
+% |\mathpunct||\mathop| & 0.6|\thinmuskip| & 0.6|\thinmuskip| \\
+% |\mathpunct||\mathrel| & 0.6|\thinmuskip| & 0.6|\thinmuskip| \\
+% |\mathpunct||\mathopen| & 0.6|\thinmuskip| & 0.6|\thinmuskip| \\
+% |\mathpunct||\mathclose| & 0.6|\thinmuskip| & 0.6|\thinmuskip| \\
+% |\mathpunct||\mathpunct| & 0.6|\thinmuskip| & 0.6|\thinmuskip| \\
+% |\mathpunct||\mathinner| & 0.6|\thinmuskip| & 0.6|\thinmuskip| \\\midrule
+% |\mathinner||\mathord| & 0.6|\thinmuskip| & 0.6|\thinmuskip| \\
+% |\mathinner||\mathop| & 0.6|\thinmuskip| & 0.6|\thinmuskip| \\
+% |\mathinner||\mathbin| & 0.6|\medmuskip| & 0.7|\thinmuskip| \\
+% |\mathinner||\mathrel| & 0.6|\thickmuskip| & |\thinmuskip| \\
+% |\mathinner||\mathopen| & 0.6|\thinmuskip| & 0.6|\thinmuskip| \\
+% |\mathinner||\mathpunct| & 0.6|\thinmuskip| & 0.6|\thinmuskip| \\
+% |\mathinner||\mathinner| & 0.6|\thinmuskip| & 0.6|\thinmuskip| \\\bottomrule
+% \end{tabular*}
+% \end{figure}
+% \begin{macrocode}
+\ifcase\IS@script % Case 0: No changes
+ \IS@info{No changes to space for \string\scriptstyle\space atoms.}
+ \IS@info{No changes to space for \string\crampedscriptstyle\space atoms.}
+\or % Case 1: Default changes
+ \IS@info{Adjusting space for \string\scriptstyle\space atoms.}
+ \IS@info{Adjusting space for \string\crampedscriptstyle\space atoms.}
+% \end{macrocode}
+% Default spacing changes for |\scriptstyle|.
+% \begin{macrocode}
+ % \scriptstyle
+ \Umathordopspacing\scriptstyle=\scalemu{\thinmuskip}{0.6}
+ \Umathordbinspacing\scriptstyle=\scalemu{\medmuskip}{0.6}
+ \Umathordrelspacing\scriptstyle=\scalemu{\thickmuskip}{0.6}
+ \Umathordinnerspacing\scriptstyle=\scalemu{\thinmuskip}{0.6}
+ \Umathopordspacing\scriptstyle=\scalemu{\thinmuskip}{0.6}
+ \Umathopopspacing\scriptstyle=\scalemu{\thinmuskip}{0.6}
+ \Umathoprelspacing\scriptstyle=\scalemu{\thickmuskip}{0.6}
+ \Umathopinnerspacing\scriptstyle=\scalemu{\thickmuskip}{0.6}
+ \Umathbinordspacing\scriptstyle=\scalemu{\medmuskip}{0.6}
+ \Umathbinopspacing\scriptstyle=\scalemu{\medmuskip}{0.6}
+ \Umathbinopenspacing\scriptstyle=\scalemu{\medmuskip}{0.6}
+ \Umathbininnerspacing\scriptstyle=\scalemu{\medmuskip}{0.6}
+ \Umathrelordspacing\scriptstyle=\scalemu{\thickmuskip}{0.6}
+ \Umathrelopspacing\scriptstyle=\scalemu{\thickmuskip}{0.6}
+ \Umathrelopenspacing\scriptstyle=\scalemu{\thickmuskip}{0.6}
+ \Umathrelinnerspacing\scriptstyle=\scalemu{\thickmuskip}{0.6}
+ \Umathcloseopspacing\scriptstyle=\scalemu{\thinmuskip}{0.6}
+ \Umathclosebinspacing\scriptstyle=\scalemu{\medmuskip}{0.6}
+ \Umathcloserelspacing\scriptstyle=\scalemu{\thickmuskip}{0.6}
+ \Umathcloseinnerspacing\scriptstyle=\scalemu{\thinmuskip}{0.6}
+ \Umathpunctordspacing\scriptstyle=\scalemu{\thinmuskip}{0.6}
+ \Umathpunctopspacing\scriptstyle=\scalemu{\thinmuskip}{0.6}
+ \Umathpunctrelspacing\scriptstyle=\scalemu{\thinmuskip}{0.6}
+ \Umathpunctopenspacing\scriptstyle=\scalemu{\thinmuskip}{0.6}
+ \Umathpunctclosespacing\scriptstyle=\scalemu{\thinmuskip}{0.6}
+ \Umathpunctpunctspacing\scriptstyle=\scalemu{\thinmuskip}{0.6}
+ \Umathpunctinnerspacing\scriptstyle=\scalemu{\thinmuskip}{0.6}
+ \Umathinnerordspacing\scriptstyle=\scalemu{\thinmuskip}{0.6}
+ \Umathinneropspacing\scriptstyle=\scalemu{\thinmuskip}{0.6}
+ \Umathinnerbinspacing\scriptstyle=\scalemu{\medmuskip}{0.6}
+ \Umathinnerrelspacing\scriptstyle=\scalemu{\thickmuskip}{0.6}
+ \Umathinneropenspacing\scriptstyle=\scalemu{\thinmuskip}{0.6}
+ \Umathinnerpunctspacing\scriptstyle=\scalemu{\thinmuskip}{0.6}
+ \Umathinnerinnerspacing\scriptstyle=\scalemu{\thinmuskip}{0.6}
+% \end{macrocode}
+% Default spacing changes for |\crampedscriptstyle|.
+% \begin{macrocode}
+ % \crampedscriptstyle
+ \Umathordopspacing\crampedscriptstyle=\scalemu{\thinmuskip}{0.6}
+ \Umathordbinspacing\crampedscriptstyle=\scalemu{\medmuskip}{0.6}
+ \Umathordrelspacing\crampedscriptstyle=\scalemu{\thickmuskip}{0.6}
+ \Umathordinnerspacing\crampedscriptstyle=\scalemu{\thinmuskip}{0.6}
+ \Umathopordspacing\crampedscriptstyle=\scalemu{\thinmuskip}{0.6}
+ \Umathopopspacing\crampedscriptstyle=\scalemu{\thinmuskip}{0.6}
+ \Umathoprelspacing\crampedscriptstyle=\scalemu{\thickmuskip}{0.6}
+ \Umathopinnerspacing\crampedscriptstyle=\scalemu{\thickmuskip}{0.6}
+ \Umathbinordspacing\crampedscriptstyle=\scalemu{\medmuskip}{0.6}
+ \Umathbinopspacing\crampedscriptstyle=\scalemu{\medmuskip}{0.6}
+ \Umathbinopenspacing\crampedscriptstyle=\scalemu{\medmuskip}{0.6}
+ \Umathbininnerspacing\crampedscriptstyle=\scalemu{\medmuskip}{0.6}
+ \Umathrelordspacing\crampedscriptstyle=\scalemu{\thickmuskip}{0.6}
+ \Umathrelopspacing\crampedscriptstyle=\scalemu{\thickmuskip}{0.6}
+ \Umathrelopenspacing\crampedscriptstyle=\scalemu{\thickmuskip}{0.6}
+ \Umathrelinnerspacing\crampedscriptstyle=\scalemu{\thickmuskip}{0.6}
+ \Umathcloseopspacing\crampedscriptstyle=\scalemu{\thinmuskip}{0.6}
+ \Umathclosebinspacing\crampedscriptstyle=\scalemu{\medmuskip}{0.6}
+ \Umathcloserelspacing\crampedscriptstyle=\scalemu{\thickmuskip}{0.6}
+ \Umathcloseinnerspacing\crampedscriptstyle=\scalemu{\thinmuskip}{0.6}
+ \Umathpunctordspacing\crampedscriptstyle=\scalemu{\thinmuskip}{0.6}
+ \Umathpunctopspacing\crampedscriptstyle=\scalemu{\thinmuskip}{0.6}
+ \Umathpunctrelspacing\crampedscriptstyle=\scalemu{\thinmuskip}{0.6}
+ \Umathpunctopenspacing\crampedscriptstyle=\scalemu{\thinmuskip}{0.6}
+ \Umathpunctclosespacing\crampedscriptstyle=\scalemu{\thinmuskip}{0.6}
+ \Umathpunctpunctspacing\crampedscriptstyle=\scalemu{\thinmuskip}{0.6}
+ \Umathpunctinnerspacing\crampedscriptstyle=\scalemu{\thinmuskip}{0.6}
+ \Umathinnerordspacing\crampedscriptstyle=\scalemu{\thinmuskip}{0.6}
+ \Umathinneropspacing\crampedscriptstyle=\scalemu{\thinmuskip}{0.6}
+ \Umathinnerbinspacing\crampedscriptstyle=\scalemu{\medmuskip}{0.6}
+ \Umathinnerrelspacing\crampedscriptstyle=\scalemu{\thickmuskip}{0.6}
+ \Umathinneropenspacing\crampedscriptstyle=\scalemu{\thinmuskip}{0.6}
+ \Umathinnerpunctspacing\crampedscriptstyle=\scalemu{\thinmuskip}{0.6}
+ \Umathinnerinnerspacing\crampedscriptstyle=\scalemu{\thinmuskip}{0.6}
+% \end{macrocode}
+% For backwards compatibility, we provide an option to use the spacing from \textsf{innerscript} version 1.1. Note that the old spacing does not use |\scalemu|.
+% \begin{macrocode}
+\or % Case 2: Changes from previous version of innerscript
+ \IS@info{Using v. 1.1 space for \string\scriptstyle\space atoms.}
+ \IS@info{Using v. 1.1 space for \string\crampedscriptstyle\space atoms.}
+% \end{macrocode}
+% Legacy spacing for |\scriptstyle|.
+% \begin{macrocode}
+ % \scriptstyle
+ \Umathordopspacing\scriptstyle=0.6\thinmuskip
+ \Umathordbinspacing\scriptstyle=0.7\thinmuskip
+ \Umathordrelspacing\scriptstyle=\thinmuskip
+ \Umathordinnerspacing\scriptstyle=0.6\thinmuskip
+ \Umathopordspacing\scriptstyle=0.6\thinmuskip
+ \Umathopopspacing\scriptstyle=0.6\thinmuskip
+ \Umathoprelspacing\scriptstyle=\thinmuskip
+ \Umathopinnerspacing\scriptstyle=\thinmuskip
+ \Umathbinordspacing\scriptstyle=0.7\thinmuskip
+ \Umathbinopspacing\scriptstyle=0.7\thinmuskip
+ \Umathbinopenspacing\scriptstyle=0.7\thinmuskip
+ \Umathbininnerspacing\scriptstyle=0.7\thinmuskip
+ \Umathrelordspacing\scriptstyle=\thinmuskip
+ \Umathrelopspacing\scriptstyle=\thinmuskip
+ \Umathrelopenspacing\scriptstyle=\thinmuskip
+ \Umathrelinnerspacing\scriptstyle=\thinmuskip
+ \Umathcloseopspacing\scriptstyle=0.6\thinmuskip
+ \Umathclosebinspacing\scriptstyle=0.7\thinmuskip
+ \Umathcloserelspacing\scriptstyle=\thinmuskip
+ \Umathcloseinnerspacing\scriptstyle=0.6\thinmuskip
+ \Umathpunctordspacing\scriptstyle=0.6\thinmuskip
+ \Umathpunctopspacing\scriptstyle=0.6\thinmuskip
+ \Umathpunctrelspacing\scriptstyle=0.6\thinmuskip
+ \Umathpunctopenspacing\scriptstyle=0.6\thinmuskip
+ \Umathpunctclosespacing\scriptstyle=0.6\thinmuskip
+ \Umathpunctpunctspacing\scriptstyle=0.6\thinmuskip
+ \Umathpunctinnerspacing\scriptstyle=0.6\thinmuskip
+ \Umathinnerordspacing\scriptstyle=0.6\thinmuskip
+ \Umathinneropspacing\scriptstyle=0.6\thinmuskip
+ \Umathinnerbinspacing\scriptstyle=0.7\thinmuskip
+ \Umathinnerrelspacing\scriptstyle=\thinmuskip
+ \Umathinneropenspacing\scriptstyle=0.6\thinmuskip
+ \Umathinnerpunctspacing\scriptstyle=0.6\thinmuskip
+ \Umathinnerinnerspacing\scriptstyle=0.6\thinmuskip
+% \end{macrocode}
+% Legacy spacing for |\crampedscriptstyle|.
+% \begin{macrocode}
+ % \crampedscriptstyle
+ \Umathordopspacing\crampedscriptstyle=0.6\thinmuskip
+ \Umathordbinspacing\crampedscriptstyle=0.7\thinmuskip
+ \Umathordrelspacing\crampedscriptstyle=\thinmuskip
+ \Umathordinnerspacing\crampedscriptstyle=0.6\thinmuskip
+ \Umathopordspacing\crampedscriptstyle=0.6\thinmuskip
+ \Umathopopspacing\crampedscriptstyle=0.6\thinmuskip
+ \Umathoprelspacing\crampedscriptstyle=\thinmuskip
+ \Umathopinnerspacing\crampedscriptstyle=\thinmuskip
+ \Umathbinordspacing\crampedscriptstyle=0.7\thinmuskip
+ \Umathbinopspacing\crampedscriptstyle=0.7\thinmuskip
+ \Umathbinopenspacing\crampedscriptstyle=0.7\thinmuskip
+ \Umathbininnerspacing\crampedscriptstyle=0.7\thinmuskip
+ \Umathrelordspacing\crampedscriptstyle=\thinmuskip
+ \Umathrelopspacing\crampedscriptstyle=\thinmuskip
+ \Umathrelopenspacing\crampedscriptstyle=\thinmuskip
+ \Umathrelinnerspacing\crampedscriptstyle=\thinmuskip
+ \Umathcloseopspacing\crampedscriptstyle=0.6\thinmuskip
+ \Umathclosebinspacing\crampedscriptstyle=0.7\thinmuskip
+ \Umathcloserelspacing\crampedscriptstyle=\thinmuskip
+ \Umathcloseinnerspacing\crampedscriptstyle=0.6\thinmuskip
+ \Umathpunctordspacing\crampedscriptstyle=0.6\thinmuskip
+ \Umathpunctopspacing\crampedscriptstyle=0.6\thinmuskip
+ \Umathpunctrelspacing\crampedscriptstyle=0.6\thinmuskip
+ \Umathpunctopenspacing\crampedscriptstyle=0.6\thinmuskip
+ \Umathpunctclosespacing\crampedscriptstyle=0.6\thinmuskip
+ \Umathpunctpunctspacing\crampedscriptstyle=0.6\thinmuskip
+ \Umathpunctinnerspacing\crampedscriptstyle=0.6\thinmuskip
+ \Umathinnerordspacing\crampedscriptstyle=0.6\thinmuskip
+ \Umathinneropspacing\crampedscriptstyle=0.6\thinmuskip
+ \Umathinnerbinspacing\crampedscriptstyle=0.7\thinmuskip
+ \Umathinnerrelspacing\crampedscriptstyle=\thinmuskip
+ \Umathinneropenspacing\crampedscriptstyle=0.6\thinmuskip
+ \Umathinnerpunctspacing\crampedscriptstyle=0.6\thinmuskip
+ \Umathinnerinnerspacing\crampedscriptstyle=0.6\thinmuskip
+\fi
+% \end{macrocode}
+%
+% \section{Scriptscriptstyle Spacing}
+%
+% Set the spacing for |\scriptscriptstyle| and |\crampedscriptscriptstyle|. The process is the same as it was for |\scriptstyle| except with a factor of 0.4 instead of 0.6. See Table~2 for amounts of space added with option |scriptscript|.
+% \begin{figure}[t!]
+% \centerline{\bfseries\strut Table 2: Space Inserted with Option |scriptscript|}
+% \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}lll}\toprule
+% Consecutive Atom Types & Default Space Added & Legacy Space Added\\\midrule
+% |\mathord||\mathop| & 0.4|\thinmuskip| & 0.4|\thinmuskip| \\
+% |\mathord||\mathbin| & 0.4|\medmuskip| & 0.5|\thinmuskip| \\
+% |\mathord||\mathrel| & 0.4|\thickmuskip| & 0.7|\thinmuskip| \\
+% |\mathord||\mathinner| & 0.4|\thinmuskip| & 0.4|\thinmuskip| \\\midrule
+% |\mathop||\mathord| & 0.4|\thinmuskip| & 0.4|\thinmuskip| \\
+% |\mathop||\mathop| & 0.4|\thinmuskip| & 0.4|\thinmuskip| \\
+% |\mathop||\mathrel| & 0.4|\thickmuskip| & 0.7|\thinmuskip| \\
+% |\mathop||\mathinner| & 0.4|\thickmuskip| & 0.7|\thinmuskip| \\\midrule
+% |\mathbin||\mathord| & 0.4|\medmuskip| & 0.5|\thinmuskip| \\
+% |\mathbin||\mathop| & 0.4|\medmuskip| & 0.5|\thinmuskip| \\
+% |\mathbin||\mathopen| & 0.4|\medmuskip| & 0.5|\thinmuskip| \\
+% |\mathbin||\mathinner| & 0.4|\medmuskip| & 0.5|\thinmuskip| \\\midrule
+% |\mathrel||\mathord| & 0.4|\thickmuskip| & 0.7|\thinmuskip| \\
+% |\mathrel||\mathop| & 0.4|\thickmuskip| & 0.7|\thinmuskip| \\
+% |\mathrel||\mathopen| & 0.4|\thickmuskip| & 0.7|\thinmuskip| \\
+% |\mathrel||\mathinner| & 0.4|\thickmuskip| & 0.7|\thinmuskip| \\\midrule
+% |\mathclose||\mathop| & 0.4|\thinmuskip| & 0.4|\thinmuskip| \\
+% |\mathclose||\mathbin| & 0.4|\medmuskip| & 0.5|\thinmuskip| \\
+% |\mathclose||\mathrel| & 0.4|\thickmuskip| & 0.7|\thinmuskip| \\
+% |\mathclose||\mathinner| & 0.4|\thinmuskip| & 0.4|\thinmuskip| \\\midrule
+% |\mathpunct||\mathord| & 0.4|\thinmuskip| & 0.4|\thinmuskip| \\
+% |\mathpunct||\mathop| & 0.4|\thinmuskip| & 0.4|\thinmuskip| \\
+% |\mathpunct||\mathrel| & 0.4|\thinmuskip| & 0.4|\thinmuskip| \\
+% |\mathpunct||\mathopen| & 0.4|\thinmuskip| & 0.4|\thinmuskip| \\
+% |\mathpunct||\mathclose| & 0.4|\thinmuskip| & 0.4|\thinmuskip| \\
+% |\mathpunct||\mathpunct| & 0.4|\thinmuskip| & 0.4|\thinmuskip| \\
+% |\mathpunct||\mathinner| & 0.4|\thinmuskip| & 0.4|\thinmuskip| \\\midrule
+% |\mathinner||\mathord| & 0.4|\thinmuskip| & 0.4|\thinmuskip| \\
+% |\mathinner||\mathop| & 0.4|\thinmuskip| & 0.4|\thinmuskip| \\
+% |\mathinner||\mathbin| & 0.4|\medmuskip| & 0.5|\thinmuskip| \\
+% |\mathinner||\mathrel| & 0.4|\thickmuskip| & 0.7|\thinmuskip| \\
+% |\mathinner||\mathopen| & 0.4|\thinmuskip| & 0.4|\thinmuskip| \\
+% |\mathinner||\mathpunct| & 0.4|\thinmuskip| & 0.4|\thinmuskip| \\
+% |\mathinner||\mathinner| & 0.4|\thinmuskip| & 0.4|\thinmuskip| \\\bottomrule
+% \end{tabular*}
+% \end{figure}
+% \begin{macrocode}
+\ifcase\IS@scriptscript % Case 0: No changes
+ \IS@info{No changes to space for \string\scriptscriptstyle\space atoms.}
+ \IS@info{No changes to space for
+ \string\crampedscriptscriptstyle\space atoms.}
+\or % Case 1: Default changes
+ \IS@info{Adjusting space for \string\scriptscriptstyle\space atoms.}
+ \IS@info{Adjusting space for
+ \string\crampedscriptscriptstyle\space atoms.}
+% \end{macrocode}
+% Default spacing changes for |\scriptscriptstyle|.
+% \begin{macrocode}
+ % \scriptscriptstyle
+ \Umathordopspacing\scriptscriptstyle=\scalemu{\thinmuskip}{0.4}
+ \Umathordbinspacing\scriptscriptstyle=\scalemu{\medmuskip}{0.4}
+ \Umathordrelspacing\scriptscriptstyle=\scalemu{\thickmuskip}{0.4}
+ \Umathordinnerspacing\scriptscriptstyle=\scalemu{\thinmuskip}{0.4}
+ \Umathopordspacing\scriptscriptstyle=\scalemu{\thinmuskip}{0.4}
+ \Umathopopspacing\scriptscriptstyle=\scalemu{\thinmuskip}{0.4}
+ \Umathoprelspacing\scriptscriptstyle=\scalemu{\thickmuskip}{0.4}
+ \Umathopinnerspacing\scriptscriptstyle=\scalemu{\thickmuskip}{0.4}
+ \Umathbinordspacing\scriptscriptstyle=\scalemu{\medmuskip}{0.4}
+ \Umathbinopspacing\scriptscriptstyle=\scalemu{\medmuskip}{0.4}
+ \Umathbinopenspacing\scriptscriptstyle=\scalemu{\medmuskip}{0.4}
+ \Umathbininnerspacing\scriptscriptstyle=\scalemu{\medmuskip}{0.4}
+ \Umathrelordspacing\scriptscriptstyle=\scalemu{\thickmuskip}{0.4}
+ \Umathrelopspacing\scriptscriptstyle=\scalemu{\thickmuskip}{0.4}
+ \Umathrelopenspacing\scriptscriptstyle=\scalemu{\thickmuskip}{0.4}
+ \Umathrelinnerspacing\scriptscriptstyle=\scalemu{\thickmuskip}{0.4}
+ \Umathcloseopspacing\scriptscriptstyle=\scalemu{\thinmuskip}{0.4}
+ \Umathclosebinspacing\scriptscriptstyle=\scalemu{\medmuskip}{0.4}
+ \Umathcloserelspacing\scriptscriptstyle=\scalemu{\thickmuskip}{0.4}
+ \Umathcloseinnerspacing\scriptscriptstyle=\scalemu{\thinmuskip}{0.4}
+ \Umathpunctordspacing\scriptscriptstyle=\scalemu{\thinmuskip}{0.4}
+ \Umathpunctopspacing\scriptscriptstyle=\scalemu{\thinmuskip}{0.4}
+ \Umathpunctrelspacing\scriptscriptstyle=\scalemu{\thinmuskip}{0.4}
+ \Umathpunctopenspacing\scriptscriptstyle=\scalemu{\thinmuskip}{0.4}
+ \Umathpunctclosespacing\scriptscriptstyle=\scalemu{\thinmuskip}{0.4}
+ \Umathpunctpunctspacing\scriptscriptstyle=\scalemu{\thinmuskip}{0.4}
+ \Umathpunctinnerspacing\scriptscriptstyle=\scalemu{\thinmuskip}{0.4}
+ \Umathinnerordspacing\scriptscriptstyle=\scalemu{\thinmuskip}{0.4}
+ \Umathinneropspacing\scriptscriptstyle=\scalemu{\thinmuskip}{0.4}
+ \Umathinnerbinspacing\scriptscriptstyle=\scalemu{\medmuskip}{0.4}
+ \Umathinnerrelspacing\scriptscriptstyle=\scalemu{\thickmuskip}{0.4}
+ \Umathinneropenspacing\scriptscriptstyle=\scalemu{\thinmuskip}{0.4}
+ \Umathinnerpunctspacing\scriptscriptstyle=\scalemu{\thinmuskip}{0.4}
+ \Umathinnerinnerspacing\scriptscriptstyle=\scalemu{\thinmuskip}{0.4}
+% \end{macrocode}
+% Default spacing changes for |\crampedscriptscriptstyle|.
+% \begin{macrocode}
+ % \crampedscriptscriptstyle
+ \Umathordopspacing\crampedscriptscriptstyle=\scalemu
+ {\thinmuskip}{0.4}
+ \Umathordbinspacing\crampedscriptscriptstyle=\scalemu
+ {\medmuskip}{0.4}
+ \Umathordrelspacing\crampedscriptscriptstyle=\scalemu
+ {\thickmuskip}{0.4}
+ \Umathordinnerspacing\crampedscriptscriptstyle=\scalemu
+ {\thinmuskip}{0.4}
+ \Umathopordspacing\crampedscriptscriptstyle=\scalemu
+ {\thinmuskip}{0.4}
+ \Umathopopspacing\crampedscriptscriptstyle=\scalemu
+ {\thinmuskip}{0.4}
+ \Umathoprelspacing\crampedscriptscriptstyle=\scalemu
+ {\thickmuskip}{0.4}
+ \Umathopinnerspacing\crampedscriptscriptstyle=\scalemu
+ {\thickmuskip}{0.4}
+ \Umathbinordspacing\crampedscriptscriptstyle=\scalemu
+ {\medmuskip}{0.4}
+ \Umathbinopspacing\crampedscriptscriptstyle=\scalemu
+ {\medmuskip}{0.4}
+ \Umathbinopenspacing\crampedscriptscriptstyle=\scalemu
+ {\medmuskip}{0.4}
+ \Umathbininnerspacing\crampedscriptscriptstyle=\scalemu
+ {\medmuskip}{0.4}
+ \Umathrelordspacing\crampedscriptscriptstyle=\scalemu
+ {\thickmuskip}{0.4}
+ \Umathrelopspacing\crampedscriptscriptstyle=\scalemu
+ {\thickmuskip}{0.4}
+ \Umathrelopenspacing\crampedscriptscriptstyle=\scalemu
+ {\thickmuskip}{0.4}
+ \Umathrelinnerspacing\crampedscriptscriptstyle=\scalemu
+ {\thickmuskip}{0.4}
+ \Umathcloseopspacing\crampedscriptscriptstyle=\scalemu
+ {\thinmuskip}{0.4}
+ \Umathclosebinspacing\crampedscriptscriptstyle=\scalemu
+ {\medmuskip}{0.4}
+ \Umathcloserelspacing\crampedscriptscriptstyle=\scalemu
+ {\thickmuskip}{0.4}
+ \Umathcloseinnerspacing\crampedscriptscriptstyle=\scalemu
+ {\thinmuskip}{0.4}
+ \Umathpunctordspacing\crampedscriptscriptstyle=\scalemu
+ {\thinmuskip}{0.4}
+ \Umathpunctopspacing\crampedscriptscriptstyle=\scalemu
+ {\thinmuskip}{0.4}
+ \Umathpunctrelspacing\crampedscriptscriptstyle=\scalemu
+ {\thinmuskip}{0.4}
+ \Umathpunctopenspacing\crampedscriptscriptstyle=\scalemu
+ {\thinmuskip}{0.4}
+ \Umathpunctclosespacing\crampedscriptscriptstyle=\scalemu
+ {\thinmuskip}{0.4}
+ \Umathpunctpunctspacing\crampedscriptscriptstyle=\scalemu
+ {\thinmuskip}{0.4}
+ \Umathpunctinnerspacing\crampedscriptscriptstyle=\scalemu
+ {\thinmuskip}{0.4}
+ \Umathinnerordspacing\crampedscriptscriptstyle=\scalemu
+ {\thinmuskip}{0.4}
+ \Umathinneropspacing\crampedscriptscriptstyle=\scalemu
+ {\thinmuskip}{0.4}
+ \Umathinnerbinspacing\crampedscriptscriptstyle=\scalemu
+ {\medmuskip}{0.4}
+ \Umathinnerrelspacing\crampedscriptscriptstyle=\scalemu
+ {\thickmuskip}{0.4}
+ \Umathinneropenspacing\crampedscriptscriptstyle=\scalemu
+ {\thinmuskip}{0.4}
+ \Umathinnerpunctspacing\crampedscriptscriptstyle=\scalemu
+ {\thinmuskip}{0.4}
+ \Umathinnerinnerspacing\crampedscriptscriptstyle=\scalemu
+ {\thinmuskip}{0.4}
+% \end{macrocode}
+% Again, provide an option to use spacing from previous version.
+% \begin{macrocode}
+\or % Case 2: Changes from previous version of innerscript
+ \IS@info{Using v. 1.1 space for \string\scriptscriptstyle\space atoms.}
+ \IS@info{Using v. 1.1 space for
+ \string\crampedscriptscriptstyle\space atoms.}
+% \end{macrocode}
+% Legacy spacing for |\scriptscriptstyle|.
+% \begin{macrocode}
+ % \scriptscriptstyle
+ \Umathordopspacing\scriptscriptstyle=0.4\thinmuskip
+ \Umathordbinspacing\scriptscriptstyle=0.5\thinmuskip
+ \Umathordrelspacing\scriptscriptstyle=0.7\thinmuskip
+ \Umathordinnerspacing\scriptscriptstyle=0.4\thinmuskip
+ \Umathopordspacing\scriptscriptstyle=0.4\thinmuskip
+ \Umathopopspacing\scriptscriptstyle=0.4\thinmuskip
+ \Umathoprelspacing\scriptscriptstyle=0.7\thinmuskip
+ \Umathopinnerspacing\scriptscriptstyle=0.7\thinmuskip
+ \Umathbinordspacing\scriptscriptstyle=0.5\thinmuskip
+ \Umathbinopspacing\scriptscriptstyle=0.5\thinmuskip
+ \Umathbinopenspacing\scriptscriptstyle=0.5\thinmuskip
+ \Umathbininnerspacing\scriptscriptstyle=0.5\thinmuskip
+ \Umathrelordspacing\scriptscriptstyle=0.7\thinmuskip
+ \Umathrelopspacing\scriptscriptstyle=0.7\thinmuskip
+ \Umathrelopenspacing\scriptscriptstyle=0.7\thinmuskip
+ \Umathrelinnerspacing\scriptscriptstyle=0.7\thinmuskip
+ \Umathcloseopspacing\scriptscriptstyle=0.4\thinmuskip
+ \Umathclosebinspacing\scriptscriptstyle=0.5\thinmuskip
+ \Umathcloserelspacing\scriptscriptstyle=0.7\thinmuskip
+ \Umathcloseinnerspacing\scriptscriptstyle=0.4\thinmuskip
+ \Umathpunctordspacing\scriptscriptstyle=0.4\thinmuskip
+ \Umathpunctopspacing\scriptscriptstyle=0.4\thinmuskip
+ \Umathpunctrelspacing\scriptscriptstyle=0.4\thinmuskip
+ \Umathpunctopenspacing\scriptscriptstyle=0.4\thinmuskip
+ \Umathpunctclosespacing\scriptscriptstyle=0.4\thinmuskip
+ \Umathpunctpunctspacing\scriptscriptstyle=0.4\thinmuskip
+ \Umathpunctinnerspacing\scriptscriptstyle=0.4\thinmuskip
+ \Umathinnerordspacing\scriptscriptstyle=0.4\thinmuskip
+ \Umathinneropspacing\scriptscriptstyle=0.4\thinmuskip
+ \Umathinnerbinspacing\scriptscriptstyle=0.5\thinmuskip
+ \Umathinnerrelspacing\scriptscriptstyle=0.7\thinmuskip
+ \Umathinneropenspacing\scriptscriptstyle=0.4\thinmuskip
+ \Umathinnerpunctspacing\scriptscriptstyle=0.4\thinmuskip
+ \Umathinnerinnerspacing\scriptscriptstyle=0.4\thinmuskip
+% \end{macrocode}
+% Legacy spacing for |\crampedscriptscriptstyle|.
+% \begin{macrocode}
+ % \crampedscriptscriptstyle
+ \Umathordopspacing\crampedscriptscriptstyle=0.4\thinmuskip
+ \Umathordbinspacing\crampedscriptscriptstyle=0.5\thinmuskip
+ \Umathordrelspacing\crampedscriptscriptstyle=0.7\thinmuskip
+ \Umathordinnerspacing\crampedscriptscriptstyle=0.4\thinmuskip
+ \Umathopordspacing\crampedscriptscriptstyle=0.4\thinmuskip
+ \Umathopopspacing\crampedscriptscriptstyle=0.4\thinmuskip
+ \Umathoprelspacing\crampedscriptscriptstyle=0.7\thinmuskip
+ \Umathopinnerspacing\crampedscriptscriptstyle=0.7\thinmuskip
+ \Umathbinordspacing\crampedscriptscriptstyle=0.5\thinmuskip
+ \Umathbinopspacing\crampedscriptscriptstyle=0.5\thinmuskip
+ \Umathbinopenspacing\crampedscriptscriptstyle=0.5\thinmuskip
+ \Umathbininnerspacing\crampedscriptscriptstyle=0.5\thinmuskip
+ \Umathrelordspacing\crampedscriptscriptstyle=0.7\thinmuskip
+ \Umathrelopspacing\crampedscriptscriptstyle=0.7\thinmuskip
+ \Umathrelopenspacing\crampedscriptscriptstyle=0.7\thinmuskip
+ \Umathrelinnerspacing\crampedscriptscriptstyle=0.7\thinmuskip
+ \Umathcloseopspacing\crampedscriptscriptstyle=0.4\thinmuskip
+ \Umathclosebinspacing\crampedscriptscriptstyle=0.5\thinmuskip
+ \Umathcloserelspacing\crampedscriptscriptstyle=0.7\thinmuskip
+ \Umathcloseinnerspacing\crampedscriptscriptstyle=0.4\thinmuskip
+ \Umathpunctordspacing\crampedscriptscriptstyle=0.4\thinmuskip
+ \Umathpunctopspacing\crampedscriptscriptstyle=0.4\thinmuskip
+ \Umathpunctrelspacing\crampedscriptscriptstyle=0.4\thinmuskip
+ \Umathpunctopenspacing\crampedscriptscriptstyle=0.4\thinmuskip
+ \Umathpunctclosespacing\crampedscriptscriptstyle=0.4\thinmuskip
+ \Umathpunctpunctspacing\crampedscriptscriptstyle=0.4\thinmuskip
+ \Umathpunctinnerspacing\crampedscriptscriptstyle=0.4\thinmuskip
+ \Umathinnerordspacing\crampedscriptscriptstyle=0.4\thinmuskip
+ \Umathinneropspacing\crampedscriptscriptstyle=0.4\thinmuskip
+ \Umathinnerbinspacing\crampedscriptscriptstyle=0.5\thinmuskip
+ \Umathinnerrelspacing\crampedscriptscriptstyle=0.7\thinmuskip
+ \Umathinneropenspacing\crampedscriptscriptstyle=0.4\thinmuskip
+ \Umathinnerpunctspacing\crampedscriptscriptstyle=0.4\thinmuskip
+ \Umathinnerinnerspacing\crampedscriptscriptstyle=0.4\thinmuskip
+\fi
+% \end{macrocode}
+%
+% \section{Mathinner Subformulas}
+%
+% Now set the spacing for |\mathinner| subformulas. For every atom type from |ord|, |op|, |bin|, |rel|, |open|, |close|, |punct|, and |inner|, we set the spacing that appears between that atom and a |\mathinner| subformula to the amount that normally appears between that type and a |\mathord| atom. Specifically, every space adjustment has the form
+% \begin{code}
+% |\Umath|\meta{atom}|innerspacing|\meta{style}|=|\\
+% | \the\Umath|\meta{atom}|ordspacing|\meta{style}|\relax|
+% \end{code}
+% or the same with the \meta{atom} appearing after the |inner| or |ord|. The \meta{style} is one of the eight math style commands: |\displaystyle|, |\textstyle|, |\scriptstyle|, |\scriptscriptstyle|, and the cramped versions. Section~4 comes after Sections~2 and 3 because we make sure to capture all spacing changes in superscripts and subscripts.
+% \begin{macrocode}
+\ifIS@inner
+ \IS@info{Adjusting space for \string\mathinner\space subformulas.}
+% \end{macrocode}
+% First, we handle the cases where the first subformula is not |\mathinner| and the second subformula is |\mathinner|. We start with |\displaystyle|.
+% \begin{macrocode}
+ % \displaystyle
+ \Umathordinnerspacing\displaystyle=
+ \the\Umathordordspacing\displaystyle\relax
+ \Umathopinnerspacing\displaystyle=
+ \the\Umathopordspacing\displaystyle\relax
+ \Umathbininnerspacing\displaystyle=
+ \the\Umathbinordspacing\displaystyle\relax
+ \Umathrelinnerspacing\displaystyle=
+ \the\Umathrelordspacing\displaystyle\relax
+ \Umathopeninnerspacing\displaystyle=
+ \the\Umathopenordspacing\displaystyle\relax
+ \Umathcloseinnerspacing\displaystyle=
+ \the\Umathcloseordspacing\displaystyle\relax
+ \Umathpunctinnerspacing\displaystyle=
+ \the\Umathpunctordspacing\displaystyle\relax
+% \end{macrocode}
+% Changes for |\textstyle|.
+% \begin{macrocode}
+ % \textstyle
+ \Umathordinnerspacing\textstyle=
+ \the\Umathordordspacing\textstyle\relax
+ \Umathopinnerspacing\textstyle=
+ \the\Umathopordspacing\textstyle\relax
+ \Umathbininnerspacing\textstyle=
+ \the\Umathbinordspacing\textstyle\relax
+ \Umathrelinnerspacing\textstyle=
+ \the\Umathrelordspacing\textstyle\relax
+ \Umathopeninnerspacing\textstyle=
+ \the\Umathopenordspacing\textstyle\relax
+ \Umathcloseinnerspacing\textstyle=
+ \the\Umathcloseordspacing\textstyle\relax
+ \Umathpunctinnerspacing\textstyle=
+ \the\Umathpunctordspacing\textstyle\relax
+% \end{macrocode}
+% Changes for |\scriptstyle|.
+% \begin{macrocode}
+ % \scriptstyle
+ \Umathordinnerspacing\scriptstyle=
+ \the\Umathordordspacing\scriptstyle\relax
+ \Umathopinnerspacing\scriptstyle=
+ \the\Umathopordspacing\scriptstyle\relax
+ \Umathbininnerspacing\scriptstyle=
+ \the\Umathbinordspacing\scriptstyle\relax
+ \Umathrelinnerspacing\scriptstyle=
+ \the\Umathrelordspacing\scriptstyle\relax
+ \Umathopeninnerspacing\scriptstyle=
+ \the\Umathopenordspacing\scriptstyle\relax
+ \Umathcloseinnerspacing\scriptstyle=
+ \the\Umathcloseordspacing\scriptstyle\relax
+ \Umathpunctinnerspacing\scriptstyle=
+ \the\Umathpunctordspacing\scriptstyle\relax
+% \end{macrocode}
+% Changes for |\scriptscriptstyle|.
+% \begin{macrocode}
+ % \scriptscriptstyle
+ \Umathordinnerspacing\scriptscriptstyle=
+ \the\Umathordordspacing\scriptscriptstyle\relax
+ \Umathopinnerspacing\scriptscriptstyle=
+ \the\Umathopordspacing\scriptscriptstyle\relax
+ \Umathbininnerspacing\scriptscriptstyle=
+ \the\Umathbinordspacing\scriptscriptstyle\relax
+ \Umathrelinnerspacing\scriptscriptstyle=
+ \the\Umathrelordspacing\scriptscriptstyle\relax
+ \Umathopeninnerspacing\scriptscriptstyle=
+ \the\Umathopenordspacing\scriptscriptstyle\relax
+ \Umathcloseinnerspacing\scriptscriptstyle=
+ \the\Umathcloseordspacing\scriptscriptstyle\relax
+ \Umathpunctinnerspacing\scriptscriptstyle=
+ \the\Umathpunctordspacing\scriptscriptstyle\relax
+% \end{macrocode}
+% Changes for |\crampeddisplaystyle|.
+% \begin{macrocode}
+ % \crampeddisplaystyle
+ \Umathordinnerspacing\crampeddisplaystyle=
+ \the\Umathordordspacing\crampeddisplaystyle\relax
+ \Umathopinnerspacing\crampeddisplaystyle=
+ \the\Umathopordspacing\crampeddisplaystyle\relax
+ \Umathbininnerspacing\crampeddisplaystyle=
+ \the\Umathbinordspacing\crampeddisplaystyle\relax
+ \Umathrelinnerspacing\crampeddisplaystyle=
+ \the\Umathrelordspacing\crampeddisplaystyle\relax
+ \Umathopeninnerspacing\crampeddisplaystyle=
+ \the\Umathopenordspacing\crampeddisplaystyle\relax
+ \Umathcloseinnerspacing\crampeddisplaystyle=
+ \the\Umathcloseordspacing\crampeddisplaystyle\relax
+ \Umathpunctinnerspacing\crampeddisplaystyle=
+ \the\Umathpunctordspacing\crampeddisplaystyle\relax
+% \end{macrocode}
+% Changes for |\crampedtextstyle|.
+% \begin{macrocode}
+ % \crampedtextstyle
+ \Umathordinnerspacing\crampedtextstyle=
+ \the\Umathordordspacing\crampedtextstyle\relax
+ \Umathopinnerspacing\crampedtextstyle=
+ \the\Umathopordspacing\crampedtextstyle\relax
+ \Umathbininnerspacing\crampedtextstyle=
+ \the\Umathbinordspacing\crampedtextstyle\relax
+ \Umathrelinnerspacing\crampedtextstyle=
+ \the\Umathrelordspacing\crampedtextstyle\relax
+ \Umathopeninnerspacing\crampedtextstyle=
+ \the\Umathopenordspacing\crampedtextstyle\relax
+ \Umathcloseinnerspacing\crampedtextstyle=
+ \the\Umathcloseordspacing\crampedtextstyle\relax
+ \Umathpunctinnerspacing\crampedtextstyle=
+ \the\Umathpunctordspacing\crampedtextstyle\relax
+% \end{macrocode}
+% Changes for |\crampedscriptstyle|.
+% \begin{macrocode}
+ % \crampedscriptstyle
+ \Umathordinnerspacing\crampedscriptstyle=
+ \the\Umathordordspacing\crampedscriptstyle\relax
+ \Umathopinnerspacing\crampedscriptstyle=
+ \the\Umathopordspacing\crampedscriptstyle\relax
+ \Umathbininnerspacing\crampedscriptstyle=
+ \the\Umathbinordspacing\crampedscriptstyle\relax
+ \Umathrelinnerspacing\crampedscriptstyle=
+ \the\Umathrelordspacing\crampedscriptstyle\relax
+ \Umathopeninnerspacing\crampedscriptstyle=
+ \the\Umathopenordspacing\crampedscriptstyle\relax
+ \Umathcloseinnerspacing\crampedscriptstyle=
+ \the\Umathcloseordspacing\crampedscriptstyle\relax
+ \Umathpunctinnerspacing\crampedscriptstyle=
+ \the\Umathpunctordspacing\crampedscriptstyle\relax
+% \end{macrocode}
+% Changes for |\crampedscriptscriptstyle|.
+% \begin{macrocode}
+ % \crampedscriptscriptstyle
+ \Umathordinnerspacing\crampedscriptscriptstyle=
+ \the\Umathordordspacing\crampedscriptscriptstyle\relax
+ \Umathopinnerspacing\crampedscriptscriptstyle=
+ \the\Umathopordspacing\crampedscriptscriptstyle\relax
+ \Umathbininnerspacing\crampedscriptscriptstyle=
+ \the\Umathbinordspacing\crampedscriptscriptstyle\relax
+ \Umathrelinnerspacing\crampedscriptscriptstyle=
+ \the\Umathrelordspacing\crampedscriptscriptstyle\relax
+ \Umathopeninnerspacing\crampedscriptscriptstyle=
+ \the\Umathopenordspacing\crampedscriptscriptstyle\relax
+ \Umathcloseinnerspacing\crampedscriptscriptstyle=
+ \the\Umathcloseordspacing\crampedscriptscriptstyle\relax
+ \Umathpunctinnerspacing\crampedscriptscriptstyle=
+ \the\Umathpunctordspacing\crampedscriptscriptstyle\relax
+% \end{macrocode}
+% Now handle the case when the first subformula is |\mathinner| followed by something else. Again we start with |\displaystyle|.
+% \begin{macrocode}
+ % \displaystyle
+ \Umathinnerordspacing\displaystyle=
+ \the\Umathordordspacing\displaystyle\relax
+ \Umathinneropspacing\displaystyle=
+ \the\Umathordopspacing\displaystyle\relax
+ \Umathinnerbinspacing\displaystyle=
+ \the\Umathordbinspacing\displaystyle\relax
+ \Umathinnerrelspacing\displaystyle=
+ \the\Umathordrelspacing\displaystyle\relax
+ \Umathinneropenspacing\displaystyle=
+ \the\Umathordopenspacing\displaystyle\relax
+ \Umathinnerclosespacing\displaystyle=
+ \the\Umathordclosespacing\displaystyle\relax
+ \Umathinnerpunctspacing\displaystyle=
+ \the\Umathordpunctspacing\displaystyle\relax
+% \end{macrocode}
+% Changes for |\textstyle|.
+% \begin{macrocode}
+ % \textstyle
+ \Umathinnerordspacing\textstyle=
+ \the\Umathordordspacing\textstyle\relax
+ \Umathinneropspacing\textstyle=
+ \the\Umathordopspacing\textstyle\relax
+ \Umathinnerbinspacing\textstyle=
+ \the\Umathordbinspacing\textstyle\relax
+ \Umathinnerrelspacing\textstyle=
+ \the\Umathordrelspacing\textstyle\relax
+ \Umathinneropenspacing\textstyle=
+ \the\Umathordopenspacing\textstyle\relax
+ \Umathinnerclosespacing\textstyle=
+ \the\Umathordclosespacing\textstyle\relax
+ \Umathinnerpunctspacing\textstyle=
+ \the\Umathordpunctspacing\textstyle\relax
+% \end{macrocode}
+% Changes for |\scriptstyle|.
+% \begin{macrocode}
+ % \scriptstyle
+ \Umathinnerordspacing\scriptstyle=
+ \the\Umathordordspacing\scriptstyle\relax
+ \Umathinneropspacing\scriptstyle=
+ \the\Umathordopspacing\scriptstyle\relax
+ \Umathinnerbinspacing\scriptstyle=
+ \the\Umathordbinspacing\scriptstyle\relax
+ \Umathinnerrelspacing\scriptstyle=
+ \the\Umathordrelspacing\scriptstyle\relax
+ \Umathinneropenspacing\scriptstyle=
+ \the\Umathordopenspacing\scriptstyle\relax
+ \Umathinnerclosespacing\scriptstyle=
+ \the\Umathordclosespacing\scriptstyle\relax
+ \Umathinnerpunctspacing\scriptstyle=
+ \the\Umathordpunctspacing\scriptstyle\relax
+% \end{macrocode}
+% Changes for |\scriptscriptstyle|.
+% \begin{macrocode}
+ % \scriptscriptstyle
+ \Umathinnerordspacing\scriptscriptstyle=
+ \the\Umathordordspacing\scriptscriptstyle\relax
+ \Umathinneropspacing\scriptscriptstyle=
+ \the\Umathordopspacing\scriptscriptstyle\relax
+ \Umathinnerbinspacing\scriptscriptstyle=
+ \the\Umathordbinspacing\scriptscriptstyle\relax
+ \Umathinnerrelspacing\scriptscriptstyle=
+ \the\Umathordrelspacing\scriptscriptstyle\relax
+ \Umathinneropenspacing\scriptscriptstyle=
+ \the\Umathordopenspacing\scriptscriptstyle\relax
+ \Umathinnerclosespacing\scriptscriptstyle=
+ \the\Umathordclosespacing\scriptscriptstyle\relax
+ \Umathinnerpunctspacing\scriptscriptstyle=
+ \the\Umathordpunctspacing\scriptscriptstyle\relax
+% \end{macrocode}
+% Changes for |\crampeddisplaystyle|.
+% \begin{macrocode}
+ % \crampeddisplaystyle
+ \Umathinnerordspacing\crampeddisplaystyle=
+ \the\Umathordordspacing\crampeddisplaystyle\relax
+ \Umathinneropspacing\crampeddisplaystyle=
+ \the\Umathordopspacing\crampeddisplaystyle\relax
+ \Umathinnerbinspacing\crampeddisplaystyle=
+ \the\Umathordbinspacing\crampeddisplaystyle\relax
+ \Umathinnerrelspacing\crampeddisplaystyle=
+ \the\Umathordrelspacing\crampeddisplaystyle\relax
+ \Umathinneropenspacing\crampeddisplaystyle=
+ \the\Umathordopenspacing\crampeddisplaystyle\relax
+ \Umathinnerclosespacing\crampeddisplaystyle=
+ \the\Umathordclosespacing\crampeddisplaystyle\relax
+ \Umathinnerpunctspacing\crampeddisplaystyle=
+ \the\Umathordpunctspacing\crampeddisplaystyle\relax
+% \end{macrocode}
+% Changes for |\crampedtextstyle|.
+% \begin{macrocode}
+ % \crampedtextstyle
+ \Umathinnerordspacing\crampedtextstyle=
+ \the\Umathordordspacing\crampedtextstyle\relax
+ \Umathinneropspacing\crampedtextstyle=
+ \the\Umathordopspacing\crampedtextstyle\relax
+ \Umathinnerbinspacing\crampedtextstyle=
+ \the\Umathordbinspacing\crampedtextstyle\relax
+ \Umathinnerrelspacing\crampedtextstyle=
+ \the\Umathordrelspacing\crampedtextstyle\relax
+ \Umathinneropenspacing\crampedtextstyle=
+ \the\Umathordopenspacing\crampedtextstyle\relax
+ \Umathinnerclosespacing\crampedtextstyle=
+ \the\Umathordclosespacing\crampedtextstyle\relax
+ \Umathinnerpunctspacing\crampedtextstyle=
+ \the\Umathordpunctspacing\crampedtextstyle\relax
+% \end{macrocode}
+% Changes for |\crampedscriptstyle|.
+% \begin{macrocode}
+ % \crampedscriptstyle
+ \Umathinnerordspacing\crampedscriptstyle=
+ \the\Umathordordspacing\crampedscriptstyle\relax
+ \Umathinneropspacing\crampedscriptstyle=
+ \the\Umathordopspacing\crampedscriptstyle\relax
+ \Umathinnerbinspacing\crampedscriptstyle=
+ \the\Umathordbinspacing\crampedscriptstyle\relax
+ \Umathinnerrelspacing\crampedscriptstyle=
+ \the\Umathordrelspacing\crampedscriptstyle\relax
+ \Umathinneropenspacing\crampedscriptstyle=
+ \the\Umathordopenspacing\crampedscriptstyle\relax
+ \Umathinnerclosespacing\crampedscriptstyle=
+ \the\Umathordclosespacing\crampedscriptstyle\relax
+ \Umathinnerpunctspacing\crampedscriptstyle=
+ \the\Umathordpunctspacing\crampedscriptstyle\relax
+% \end{macrocode}
+% Changes for |\crampedscriptscriptstyle|.
+% \begin{macrocode}
+ % \crampedscriptscriptstyle
+ \Umathinnerordspacing\crampedscriptscriptstyle=
+ \the\Umathordordspacing\crampedscriptscriptstyle\relax
+ \Umathinneropspacing\crampedscriptscriptstyle=
+ \the\Umathordopspacing\crampedscriptscriptstyle\relax
+ \Umathinnerbinspacing\crampedscriptscriptstyle=
+ \the\Umathordbinspacing\crampedscriptscriptstyle\relax
+ \Umathinnerrelspacing\crampedscriptscriptstyle=
+ \the\Umathordrelspacing\crampedscriptscriptstyle\relax
+ \Umathinneropenspacing\crampedscriptscriptstyle=
+ \the\Umathordopenspacing\crampedscriptscriptstyle\relax
+ \Umathinnerclosespacing\crampedscriptscriptstyle=
+ \the\Umathordclosespacing\crampedscriptscriptstyle\relax
+ \Umathinnerpunctspacing\crampedscriptscriptstyle=
+ \the\Umathordpunctspacing\crampedscriptscriptstyle\relax
+% \end{macrocode}
+% Finally the case where both subformulas are |\mathinner|.
+% \begin{macrocode}
+ % both subformulas are \mathinner
+ \Umathinnerinnerspacing\displaystyle=
+ \the\Umathordordspacing\displaystyle\relax
+ \Umathinnerinnerspacing\textstyle=
+ \the\Umathordordspacing\textstyle\relax
+ \Umathinnerinnerspacing\scriptstyle=
+ \the\Umathordordspacing\scriptstyle\relax
+ \Umathinnerinnerspacing\scriptscriptstyle=
+ \the\Umathordordspacing\scriptscriptstyle\relax
+ \Umathinnerinnerspacing\crampeddisplaystyle=
+ \the\Umathordordspacing\crampeddisplaystyle\relax
+ \Umathinnerinnerspacing\crampedtextstyle=
+ \the\Umathordordspacing\crampedtextstyle\relax
+ \Umathinnerinnerspacing\crampedscriptstyle=
+ \the\Umathordordspacing\crampedscriptstyle\relax
+ \Umathinnerinnerspacing\crampedscriptscriptstyle=
+ \the\Umathordordspacing\crampedscriptscriptstyle\relax
+\else
+ \IS@info{No changes to space for \string\mathinner\space subformulas.}
+\fi
+% \end{macrocode}
+%
+% \section{Mathclose Spacing}
+%
+% In |\textstyle| and |\displaystyle|, we add half a |\thinmuskip| between |\mathclose| and |\mathord| atoms. As with the |script| and |scriptscript| options, we scale the spacing by 0.6 and 0.4 for |\scriptstyle| and |\scriptscriptstyle| respectively. Section~5 comes after Section~4 because we do not want to enlarge the spacing between |\mathclose| and |\mathinner| subformulas.
+%
+% \begin{macrocode}
+\ifIS@close
+ \IS@info{Adding space after closing delimiters.}
+ \Umathcloseordspacing\displaystyle=\scalemu{\thinmuskip}{0.5}
+ \Umathcloseordspacing\textstyle=\scalemu{\thinmuskip}{0.5}
+ \Umathcloseordspacing\crampedisplaystyle=\scalemu{\thinmuskip}{0.5}
+ \Umathcloseordspacing\crampedtextstyle=\scalemu{\thinmuskip}{0.5}
+ \ifnum\IS@script>0
+ \Umathcloseordspacing\scriptstyle=\scalemu{\thinmuskip}{0.3}
+ \Umathcloseordspacing\crampedscriptstyle=\scalemu{\thinmuskip}{0.3}
+ \fi
+ \ifnum\IS@scriptscript>0
+ \Umathcloseordspacing\scriptscriptstyle=\scalemu{\thinmuskip}{0.2}
+ \Umathcloseordspacing\crampedscriptscriptstyle=\scalemu
+ {\thinmuskip}{0.2}
+ \fi
+\else
+ \IS@info{No changes to space after delimiters.}
+\fi
+% \end{macrocode}
+%
+%
+% \section{Delimiter Heights}
+%
+% Finally, filling out the delimiter heights is easy. We simply set |\delimiterfactor| to 1000.
+% \begin{macrocode}
+\ifIS@cover
+ \IS@info{Setting delimiters to full height.}
+ \delimiterfactor\@m
+\else
+ \IS@info{No changes to delimiter heights.}
+\fi
+% \end{macrocode}
+% And that's a wrap!
+%
+% \vfil\eject
+% \section*{Version History}
+% \begin{multicols*}{2}
+% \bgroup\raggedright\parskip\z@\parindent\z@\leftskip1em\obeylines
+% \setbox0\hbox{\hskip 1pt.\hskip 1pt}
+% \def\version#1#2{\bigskip\hbox to \hsize{\textbf{#1} \cleaders\copy0\hfill\ #2}\par}
+% \def\item{---\kern0.2ex\relax}
+%
+% \version{1.0}{February 2021}
+% \item initial release
+%
+% \version{1.1}{February 2021}
+% \item bug fix for |\mathinner| spacing
+% \item added |\IS@skip| muglue register
+%
+% \version{1.2}{November 2023}
+% \item redesigned spacing for options |script| and |scriptscript|
+% \item no more |\IS@skip|---options |script| and |scriptscript| now use |\the|
+% \item added option |close|
+% \item added option |cover|
+% \item separated implementation and user guide
+%
+% \egroup
+% \end{multicols*}
+%
+%
+%
+% \iffalse
+%</package>
+%<*user>
+\makeatletter
+\documentclass[12pt]{article}
+\usepackage[margin=72.27pt]{geometry}
+\usepackage[factor=700,stretch=14,shrink=14,step=1]{microtype}
+\usepackage{booktabs}
+\usepackage{tabularx}
+\usepackage{amsmath}
+\usepackage{doc}[=v2]
+\MakeShortVerb{|}
+\interfootnotelinepenalty=0
+
+\newbox\fracbox
+\setbox\fracbox\hbox{$\displaystyle\left(\frac x2\right)$}
+
+\begin{document}
+
+\def\documentname{User Guide}
+\input innerscript_heading.tex
+
+\def\@oddhead{\ifnum\c@page>\@ne
+ \ifodd\c@page
+ \hfil\the\c@page
+ \else
+ \the\c@page\hfil
+ \fi\fi}
+
+
+\begin{figure}[b]
+\centerline{\strut\bfseries Table~1: Package Behavior Shown in Each Part of Equation (2)}
+\begin{tabular*}\textwidth{@{\extracolsep{\fill}}lllll}\toprule
+Part of equation (2) & Summation & Functions & Product & Fraction\\\midrule
+Option shown & |script| & |inner| & |close| & |cover|\\\bottomrule
+\end{tabular*}
+\end{figure}
+
+
+\noindent For several years before the first release of \textsf{innerscript}, I wondered whether it was possible to adjust two features of \TeX's automatic mathematics spacing, namely adding more space in superscripts and subscripts and removing the extra space around |\left|-|\right| delimiter pairs. Lua\TeX's extra math-mode primitives make these changes possible, and \textsf{innerscript} grew out of my desire to implement them in my documents. For example, compare the next two lines:
+\begin{flalign}
+&&\sum_{i=1}^n{}&x_i^{1+a}
+ &f(x)&=g\left(\frac1x\right)
+ &x(t)&y(t)
+ &\hskip0.5\wd\fracbox &\clap@math{\left(\frac{x}2\right)}
+ \hskip0.5\wd\fracbox
+ &&\\
+&&\sum_{i\mskip\scalemu{\thickmuskip}{0.6}=
+ \mskip\scalemu{\thickmuskip}{0.6}1}^n
+ {}&x_i^{1\mskip\scalemu{\medmuskip}{0.6}+
+ \mskip\scalemu{\medmuskip}{0.6} a}
+ &f(x)&=g{\left(\frac1x\right)}
+ &x(t)\mskip\scalemu{\thinmuskip}{0.25}&\mskip\scalemu{\thinmuskip}{0.25}y(t)
+ &\hskip0.5\wd\fracbox & \clap@math{\left(\frac{\vphantom{1}x}2\right)}
+ \hskip0.5\wd\fracbox
+ &&
+\end{flalign}
+Equation~(1) uses traditional \TeX\ formatting, and equation~(2) incorporates the small tweaks characteristic of \textsf{innerscript}. If you like equation~(2) more than equation~(1), then \textsf{innerscript} is the package for you! This file explains how to load \textsf{innerscript} and enable whichever adjustments you want to use. For version history and documentation of the code, see |innerscript_code.pdf|, which is included with the package installation and is available on \textsc{ctan}.
+
+Table~1 explains which parts of equation~(2) show different aspects of \textsf{innerscript}'s behavior. At far left, the subscript under the summation symbol and the superscript of $x_i$ have small amounts of extra space around the |=| and |+| signs respectively, and at center-left, the $g$ is directly next to the parenthesis. At center-right, the closing parenthesis is offset from the following $y$, and on the right, the parentheses cover the entire fraction instead of covering only most of it. Using the package will automate some or all of these changes for you depending on which options you specify.
+
+Users can load \textsf{innerscript} with the standard
+\begin{code}
+|\usepackage[|\meta{options}|]{innerscript}|
+\end{code}
+syntax, and when doing so, you must typeset with Lua\TeX. If it detects a different engine, \textsf{innerscript} will raise an error and stop loading, which will prevent it from changing the math in your document. The package provides no user-level commands---rather, you can control its functionality through the twelve options in Table~2. Options |script|, |legacy-|\penalty0|script|, and |no-script| determine how \textsf{innerscript} treats superscripts and subscripts. Options |scriptscript|, |legacy-scriptscript|, and |no-scriptscript| are the same except that they deal with second-order superscripts and subscripts. The |inner| option tells \TeX\ to avoid placing extra space around |\mathinner| subformulas, which in practice mostly means that \TeX\ will position |\left|-|\right| delimiter pairs the same way as ordinary variables such as $f$ or $g$ in equation~(2). The |close| option adds a small amount of space after a closing grouping symbol, such as a right parenthesis, when it comes before a regular variable or number, and |cover| tells \TeX\ to make sure that resizable delimiters fully cover their contents. The |no-|~variants disable formatting adjustments, and by default, \textsf{innerscript} selects the first five options from Table~2.
+
+
+
+
+\begin{figure}[t!]
+\centerline{\strut\bfseries Table~2: Package Options for \textsf{innerscript}}
+\begin{tabularx}\hsize{l>{\raggedright\arraybackslash}X}
+\toprule
+Package Option & Meaning\\
+\midrule
+|script| & Change |\scriptstyle| (and cramped style) spacing\\
+|scriptscript| & Change |\scriptscriptstyle| (and cramped style) spacing\\
+|inner| & Use |\mathord| spacing for |\mathinner| subformulas\\
+|close| & Extra space between \vrb\mathclose\vrb\mathord\ pairs\\
+|cover| & Resizable delimiters (i.e.\ |\left| and |\right|) fully cover contents\\\midrule
+|legacy-script| & Option |script| with legacy spacing (not recommended)\\
+|legacy-scriptscript| & Option |scriptscript| with legacy spacing (not recommended)\\\midrule
+|no-script| & No changes to |\scriptstyle| spacing\\
+|no-scriptscript| & No changes to |\scriptscriptstyle| spacing\\
+|no-inner| & No changes to treatment of |\mathinner| subformulas\\
+|no-close| & No changes to |\mathclose| atoms\\
+|no-cover| & No changes to resizable delimiters\\
+\bottomrule
+\end{tabularx}
+\end{figure}
+
+
+
+
+
+
+\begin{figure}[t!]
+\centerline{\bfseries\strut Table~3: Space Inserted by \textsf{innerscript}}
+\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}lll}\toprule
+Consecutive Atom Types & Option |script| & Option |scriptscript|\\\midrule
+|\mathord||\mathop| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
+|\mathord||\mathbin| & 0.6|\medmuskip| & 0.4|\medmuskip| \\
+|\mathord||\mathrel| & 0.6|\thickmuskip| & 0.4|\thickmuskip| \\
+|\mathord||\mathinner| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\\midrule
+|\mathop||\mathord| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
+|\mathop||\mathop| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
+|\mathop||\mathrel| & 0.6|\thickmuskip| & 0.4|\thickmuskip| \\
+|\mathop||\mathinner| & 0.6|\thickmuskip| & 0.4|\thickmuskip| \\\midrule
+|\mathbin||\mathord| & 0.6|\medmuskip| & 0.4|\medmuskip| \\
+|\mathbin||\mathop| & 0.6|\medmuskip| & 0.4|\medmuskip| \\
+|\mathbin||\mathopen| & 0.6|\medmuskip| & 0.4|\medmuskip| \\
+|\mathbin||\mathinner| & 0.6|\medmuskip| & 0.4|\medmuskip| \\\midrule
+|\mathrel||\mathord| & 0.6|\thickmuskip| & 0.4|\thickmuskip| \\
+|\mathrel||\mathop| & 0.6|\thickmuskip| & 0.4|\thickmuskip| \\
+|\mathrel||\mathopen| & 0.6|\thickmuskip| & 0.4|\thickmuskip| \\
+|\mathrel||\mathinner| & 0.6|\thickmuskip| & 0.4|\thickmuskip| \\\midrule
+|\mathclose||\mathop| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
+|\mathclose||\mathbin| & 0.6|\medmuskip| & 0.4|\medmuskip| \\
+|\mathclose||\mathrel| & 0.6|\thickmuskip| & 0.4|\thickmuskip| \\
+|\mathclose||\mathinner| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\\midrule
+|\mathpunct||\mathord| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
+|\mathpunct||\mathop| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
+|\mathpunct||\mathrel| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
+|\mathpunct||\mathopen| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
+|\mathpunct||\mathclose| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
+|\mathpunct||\mathpunct| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
+|\mathpunct||\mathinner| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\\midrule
+|\mathinner||\mathord| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
+|\mathinner||\mathop| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
+|\mathinner||\mathbin| & 0.6|\medmuskip| & 0.4|\medmuskip| \\
+|\mathinner||\mathrel| & 0.6|\thickmuskip| & 0.4|\thickmuskip| \\
+|\mathinner||\mathopen| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
+|\mathinner||\mathpunct| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
+|\mathinner||\mathinner| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\\bottomrule
+\end{tabular*}
+\end{figure}
+
+\iffalse % ignore
+\begin{figure}[t!]
+\centerline{\bfseries\strut Table~4: Legacy Space Inserted by \textsf{innerscript}}
+\begin{tabularx}{\hsize}{p{2in}Xl}\toprule
+Consecutive Atom Types & Option |legacy-script| & Option |legacy-scriptscript|\\\midrule
+|\mathord||\mathop| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
+|\mathord||\mathbin| & 0.7|\thinmuskip| & 0.5|\thinmuskip| \\
+|\mathord||\mathrel| & |\thinmuskip| & 0.7|\thinmuskip| \\
+|\mathord||\mathinner| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\\midrule
+|\mathop||\mathord| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
+|\mathop||\mathop| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
+|\mathop||\mathrel| & |\thinmuskip| & 0.7|\thinmuskip| \\
+|\mathop||\mathinner| & |\thinmuskip| & 0.7|\thinmuskip| \\\midrule
+|\mathbin||\mathord| & 0.7|\thinmuskip| & 0.5|\thinmuskip| \\
+|\mathbin||\mathop| & 0.7|\thinmuskip| & 0.5|\thinmuskip| \\
+|\mathbin||\mathopen| & 0.7|\thinmuskip| & 0.5|\thinmuskip| \\
+|\mathbin||\mathinner| & 0.7|\thinmuskip| & 0.5|\thinmuskip| \\\midrule
+|\mathrel||\mathord| & |\thinmuskip| & 0.7|\thinmuskip| \\
+|\mathrel||\mathop| & |\thinmuskip| & 0.7|\thinmuskip| \\
+|\mathrel||\mathopen| & |\thinmuskip| & 0.7|\thinmuskip| \\
+|\mathrel||\mathinner| & |\thinmuskip| & 0.7|\thinmuskip| \\\midrule
+|\mathclose||\mathop| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
+|\mathclose||\mathbin| & 0.7|\thinmuskip| & 0.5|\thinmuskip| \\
+|\mathclose||\mathrel| & |\thinmuskip| & 0.7|\thinmuskip| \\
+|\mathclose||\mathinner| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\\midrule
+|\mathpunct||\mathord| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
+|\mathpunct||\mathop| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
+|\mathpunct||\mathrel| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
+|\mathpunct||\mathopen| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
+|\mathpunct||\mathclose| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
+|\mathpunct||\mathpunct| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
+|\mathpunct||\mathinner| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\\midrule
+|\mathinner||\mathord| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
+|\mathinner||\mathop| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
+|\mathinner||\mathbin| & 0.7|\thinmuskip| & 0.5|\thinmuskip| \\
+|\mathinner||\mathrel| & |\thinmuskip| & 0.7|\thinmuskip| \\
+|\mathinner||\mathopen| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
+|\mathinner||\mathpunct| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\
+|\mathinner||\mathinner| & 0.6|\thinmuskip| & 0.4|\thinmuskip| \\\bottomrule
+\end{tabularx}
+\end{figure}
+\fi % end ignore
+
+
+
+
+\begin{figure}[t]
+\centerline{\bfseries\strut Table 4: Factors of \vrb\thinmuskip\ in Legacy Spacing}
+\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}lcc}\toprule
+Skip Used in Current Version & For Option |script| & For Option |scriptscript|\\\midrule
+|\thinmuskip| & 0.6 & 0.4 \\
+|\medmuskip| & 0.7 & 0.5 \\
+|\thickmuskip| & 1 & 0.7\\\bottomrule
+\end{tabular*}
+\end{figure}
+
+
+
+
+The |inner|, |close|, and |cover| options are straightforward, but the options |script| and |scriptscript| warrant more explanation. With its usual math formatting, \TeX\ adds small amounts of space between different math-mode characters depending on what types of symbols they represent, and \TeX's fine-tuned math spacing is part of what makes it a great program for typesetting equations.\footnote{\TeX\ classifies math symbols into eight categories: \vrb\mathord\ (ordinary), \vrb\mathop\ (big operator), \vrb\mathbin\ (binary operation), \vrb\mathrel\ (relation), \vrb\mathopen\ (opening delimiter), \vrb\mathclose\ (closing delimiter), \vrb\mathpunct\ (punctuation), and \vrb\mathinner\ (``inner'' subformula). As part of its definition, every math-mode character is assigned a math class.\vadjust{\bigskip} See Donald Knuth, \textit{The \TeX book} (Addison Wesley, 1986), 170; David Salomon, \textit{The Advanced \TeX book} (Springer, 1995), 256--258.} However, some spacing additions from inline and display math don't appear inside superscripts and subscripts. The |script| and |scriptscript| options address this situation by changing the space in superscripts and subscripts to scaled-down versions of the standard spacing rules.\footnote{Technically, \textsf{innerscript} scales down the standard spacing twice. The exact length of a \vrb\muskip\ register varries proportionally with the surrounding font size, so, for example, a \vrb\thinmuskip\ inside a superscript or subscript will be about two-thirds the size of a \vrb\thinmuskip\ in regular inline math. If \textsf{innerscript} always inserted the same amounts of muglue between math characters as with inline math, the spacing in superscripts and subscripts would be proportional to inline and display spacing. However, doing so produces math where the symbols appear too far apart, so \textsf{innerscript} scales the muglue by a factor of 0.6 in superscripts and subscripts and by a factor of 0.4 in second-order superscripts and subscripts.} Table~3 lists the spacing that \textsf{innerscript} adds under both options.
+
+Finally, in version 1.2, I redesigned the extra space amounts in the |script| and |scriptscript| options, and for backwards compatibility, the |legacy-| options implement the old spacing. In legacy spacing, all space additions are multiples of |\thinmuskip|, and Table~4 lists the factors of |\thinmuskip| from version 1.1. The factors correspond to whether a given row of Table~3 uses |\thinmuskip|, |\medmuskip|, or |\thickmuskip|. For example, the current version of \textsf{innerscript} adds a multiple of |\thinmuskip| between an ordinary math symbol and a large operator, so under legacy spacing, \textsf{innerscript} inserts 0.6|\thinmuskip| in superscripts and subscripts and 0.4|\thinmuskip| in second-order superscripts and subscripts. I changed the package this way so that superscripts and subscripts will parallel inline and display spacing. Now if you set the value of |\thinmuskip|, |\medmuskip|, or |\thickmuskip| before loading \textsf{innerscript}, the adjustment will have the same effect in all parts of your equation.
+
+
+
+
+\end{document}
+%
+%</user>
+%<*heading>
+%
+
+\csname count@\endcsname\catcode`\@
+\makeatletter
+
+% identifying macros
+\def\packageversion{1.2}
+\def\packagedate{November 2023}
+
+% general macros
+\MacroIndent=1.3em
+\def\scalemu#1#2{\muexpr#2#1
+ \@plus\muexpr#2\gluetomu\gluestretch\mutoglue#1\relax
+ \@minus\muexpr#2\gluetomu\glueshrink\mutoglue#1\relax\relax}
+\baselineskip=\the\baselineskip plus 0.3pt minus 0.3pt\relax
+
+% section, header, and footer commands
+\let\@@section\section
+\def\section{\@ifstar\star@sect\no@star@sect}
+\def\star@sect#1{\sectionhook{#1}\@@section*{#1}}
+\def\no@star@sect#1{\sectionhook{#1}\@@section{#1}}
+
+
+\def\sectionhook#1{%
+ \ifdim\dimexpr\pagegoal-\pagetotal-3pt\relax<6\bigskipamount
+ \vfill\eject
+ \fi
+ \def\sectionname{#1}}
+
+\def\@oddhead{%
+ \ifnum\count0>1\relax
+ \ifodd\c@page
+ \rlap{\textit{\sectionname}}\hfil
+ \hbox to 0pt{\hss\documentname\hss}\hfil
+ \llap{\the\count0}%
+ \else
+ \rlap{\the\count0}\hfil
+ \hbox to 0pt{\hss\documentname\hss}\hfil
+ \llap{\textit{\sectionname}}%
+ \fi
+ \fi}
+\def\@oddfoot{\hfil\ifnum\count0=1\relax1\fi\hfil}
+
+
+% penalties
+\pretolerance=-1
+\hyphenpenalty=20
+\exhyphenpenalty=15
+\brokenpenalty=0
+\clubpenalty=0
+\widowpenalty=0
+\finalhyphendemerits=500
+\doublehyphendemerits=2000
+
+
+% code environment
+\let\code\@undefined
+\let\endcode\@undefined
+\newenvironment{code}
+ {\strut\vadjust\bgroup\medskip\parindent\z@\leftskip=4em\relax
+ \noindent\strut\ignorespaces}
+ {\strut\par\medskip\egroup\hfill\break\strut\ignorespacesafterend}
+\def\argtext#1{\ensuremath{\langle$\textit{#1}$\rangle}}
+\def\vrb#1{\expandafter\texttt\expandafter{\string#1}}
+\def\clap@math#1{\hb@xt@\z@{\hss$\displaystyle#1$\hss}}
+
+
+% title line
+{\large
+\parindent=0pt
+\leftskip=0pt plus 1 fil
+\rightskip=0pt plus 1fil
+\parfillskip=0pt
+{\strut\Large Package \textsf{innerscript} v.\ 1.2 \documentname}\par
+\strut Conrad Kosowsky\par
+\strut \packagedate\par
+\strut\texttt{kosowsky.latex@gmail.com}\par}
+
+\bigskip
+
+% off-the-shelf insert
+\hrule height \p@
+\@@line{\vrule width \p@\kern-\p@
+ \vbox{\medskip
+ \leftskip=8em\relax\rightskip=8em\relax
+ \noindent\strut For easy, off-the-shelf use, type the following
+ in your document preamble and compile using Lua\LaTeX:
+ \vskip\medskipamount
+ \noindent\hfil\strut|\usepackage{innerscript}|\hfil
+ \vskip\medskipamount}\relax
+ \kern-\p@\vrule width \p@}
+\hrule height \p@
+
+\bigskip
+
+% abstract
+{\small
+\leftskip=0.5in
+\rightskip=0.5in
+\centerline{\bfseries Overview\strut}
+\noindent The \textsf{innerscript} package optionally modifies four aspects of \TeX's automatic math formatting to improve typesetting: (1) it adds extra space around relation and operation symbols in superscripts and subscripts; (2) it removes extra space around |\left|-|\right| delimiter pairs; (3) it adds extra space after right delimiters in certain situations; and (4) it forces |\left| and |\right| delimiters to completely cover their contents. Using Lua\LaTeX\ is required.\par}
+
+\bigskip\bigskip\nointerlineskip
+\centerline{\vrule height 0.5pt width 2.5in}\bigskip\bigskip
+\nointerlineskip
+
+\catcode`\@\count@
+
+%
+%</heading>
+% \fi
+%
+%
+% \check@checksum
+%
+%
+\endinput \ No newline at end of file
diff --git a/macros/luatex/latex/innerscript/innerscript_code.pdf b/macros/luatex/latex/innerscript/innerscript_code.pdf
new file mode 100644
index 0000000000..f05e92dd31
--- /dev/null
+++ b/macros/luatex/latex/innerscript/innerscript_code.pdf
Binary files differ
diff --git a/macros/luatex/latex/innerscript/innerscript_user_guide.pdf b/macros/luatex/latex/innerscript/innerscript_user_guide.pdf
new file mode 100644
index 0000000000..86ea58d448
--- /dev/null
+++ b/macros/luatex/latex/innerscript/innerscript_user_guide.pdf
Binary files differ