%%
%% This is file `innerscript_user_guide.tex',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% innerscript_code.dtx  (with options: `user')
%% 
%% This file is from version 1.3 of the free and open-source
%% LaTeX package "innerscript," released August 2024, to be
%% used with the LuaTeX engine.
%% 
%% Copyright 2021, 2023, 2024 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!
%% 
\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} bewteen Math-Mode Characters}
\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. 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. 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. Changing these three internal quantities after you load \textsf{innerscript} will have no effect on the default spacing between math-mode characters.

\end{document}
\endinput
%%
%% End of file `innerscript_user_guide.tex'.
