summaryrefslogtreecommitdiff
path: root/fonts/mtp2lite/texmf/source
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /fonts/mtp2lite/texmf/source
Initial commit
Diffstat (limited to 'fonts/mtp2lite/texmf/source')
-rw-r--r--fonts/mtp2lite/texmf/source/latex/mtpro2/mtpro2.dtx4137
-rw-r--r--fonts/mtp2lite/texmf/source/latex/mtpro2/mtpro2.ins39
2 files changed, 4176 insertions, 0 deletions
diff --git a/fonts/mtp2lite/texmf/source/latex/mtpro2/mtpro2.dtx b/fonts/mtp2lite/texmf/source/latex/mtpro2/mtpro2.dtx
new file mode 100644
index 0000000000..d26508ab37
--- /dev/null
+++ b/fonts/mtp2lite/texmf/source/latex/mtpro2/mtpro2.dtx
@@ -0,0 +1,4137 @@
+%\iffalse
+%% Copyright 1996 1997 Frank Mittelbach and David Carlisle.
+%% Copyright 2001--2009 Frank Mittelbach, David Carlisle, Walter Schmidt, Mike Spivak
+%<*dtx>
+ \ProvidesFile{mtpro2.dtx}
+%</dtx>
+%<mtpro>\NeedsTeXFormat{LaTeX2e}[1997/06/01]
+%<mtpro>\ProvidesPackage{mtpro2}
+%<Umtms>\ProvidesFile{umtms.fd}%
+%<omslbm>\ProvidesFile{omslbm.fd}%
+%<umt2bb>\ProvidesFile{umt2bb.fd}%
+%<umt2hrb>\ProvidesFile{umt2hrb.fd}%
+%<umt2ms>\ProvidesFile{umt2ms.fd}%
+%<umt2mf>\ProvidesFile{umt2mf.fd}%
+%<driver>\ProvidesFile{mtpro.drv}
+% \fi
+% \ProvidesFile{mtpro2.dtx}
+ [2009/4/27 v2.3
+%<mtpro> MathTimePro II - added arc accents
+%<mtpro> MathTimePro II - fixed rbrace problem with straightbraces and morphedbraces options
+%<fdfiles>,<mtpro> Revised skewchars for math accents
+%<mtpro> MathTimePro II - fix bug with z = \backslash widetilde{\backslash sum_{x }}%
+%<mtpro> MathTimePro II v2 font support (PCTeX/WaS)%
+%<mtpro> MathTimePro II v2.1a Allowed alternate form of I in Math Script Fonts (MS)%
+%<Umtms> Math Time Plus Script (FMi)%
+%<omslbm> Lucida New Math Symbols (PCTeX/WaS)%
+%<umt2bb> MathTimePro II Blackboard Bold (PCTeX/WaS)%
+%<umt2hrb> MathTimePro II Holey Roman Bold (PCTeX/WaS)%
+%<umt2ms> MathTimePro II Script (PCTeX/WaS)%
+%<umt2mf> MathTimePro II Fraktur (PCTeX/WaS)%
+]
+%
+% \iffalse
+%
+%<*driver>
+\documentclass[11pt]{ltxdoc}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\OnlyDescription
+%
+% *** We are using Times, Helvetica and MathTime Professional at 11pt. ***
+% *** Do NOT change this through ltxdoc.cfg! ***
+\usepackage[scaled=0.92]{helvet}
+\renewcommand{\rmdefault}{ptm}
+\usepackage[mtpfrak,mtpscr,mtpccal]{mtpro2}
+\usepackage{pifont,graphics}
+%
+\usepackage{xspace}
+\usepackage{manfnt}
+\newcommand{\danger}{\marginpar[\hfill\textdbend]{\textdbend\hfill}}
+\newcommand*{\Lpack}[1]{\mbox{\sffamily #1}}
+\newcommand*{\Lopt}[1]{\textsf{#1}}
+\renewcommand{\labelitemi}{$\triangleright$}
+\newcommand{\mathtime}{{\itshape MathT\kern-.05em\i me}\xspace}
+\newcommand{\mtpro}{{\itshape MathT\kern-.05em\i meProfes\-sional\/}\xspace}
+\newcommand{\mtplus}{{\itshape MathT\kern-.05em\i me\/}~Plus\xspace}
+% the (La)TeX logos for use with Times-Roman
+\def\ptmTeX{T\kern-.1667em\lower.5ex\hbox{E}\kern-.075emX\@}
+\makeatletter
+\DeclareRobustCommand{\ptmLaTeX}{L\kern-.255em
+ {\setbox0\hbox{T}%
+ \vbox to\ht0{\hbox{%
+ \csname S@\f@size\endcsname
+ \fontsize\sf@size\z@
+ \math@fontsfalse\selectfont
+ A}%
+ \vss}%
+ }%
+ \kern-.10em
+ \TeX}
+\setlength{\@fptop}{0\p@ \@plus 1fil}
+\setlength{\@fpsep}{8\p@ \@plus 2fil}
+\setlength{\@fpbot}{0\p@\@plus 2fil}
+\let\zswash\mtp@@z
+\makeatother
+\renewcommand{\floatpagefraction}{.6}
+\renewcommand{\textfraction}{.1}
+\renewcommand{\topfraction}{.8}
+\renewcommand{\bottomfraction}{.5}
+\let\TeX=\ptmTeX
+\let\LaTeX=\ptmLaTeX
+\font\hrbfont=mt2hrbt at 10.95pt
+\font\hbifont=mt2hbit at 10.95pt
+\font\bbbfont=mt2bbt at 10.95pt
+\font\bbbifont=mt2bbit at 10.95pt
+\font\hrbdfont=mt2hrbdt at 10.95pt
+\font\bbbdfont=mt2bbdt at 10.95pt
+\newcommand{\fullonly}{%
+ \marginpar[\hbox{}\hfill\raisebox{-.5ex}{{\LARGE\ding{43}}}]{\hbox{}\raisebox{-.5ex}{\reflectbox{\LARGE\ding{43}}}\hfill}
+}
+%
+\begin{document}
+\DocInput{mtpro2.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{6500}
+%
+% \GetFileInfo{mtpro2.dtx}
+%
+% \title{Using the \mtpro \textit{II} fonts\\ with \LaTeX \thanks{This
+% document refers to version \fileversion\
+% of the \Lpack{mtpro2} package, to be used with version~2 of the \mtpro \textit{II} fonts.}}
+%
+% \date{\filedate}
+% \author{Walter Schmidt}
+% \maketitle
+% \begin{abstract}
+% \noindent
+% This document describes the macro package \Lpack{mtpro2},
+% which serves for using the \mtpro \textit{II} fonts with \LaTeX.
+% The package code was partially adopted from the \Lpack{mathtime} package
+% written by Frank Mittelbach and David Carlisle.
+% \end{abstract}
+%
+% \tableofcontents
+% \clearpage
+%
+% \sloppy
+%
+%
+% \section{The \mtpro fonts}
+%
+% \mtpro \textit{II} is a set of math fonts particularly designed for
+% use with \TeX{} or \LaTeX.
+%
+% Separate fonts for text size, superscripts, and
+% second order superscripts are provided, allowing quality mathematical
+% typesetting that has hitherto been available only with metal
+% type or with the Computer Modern and the Euler fonts. Furthermore, \mtpro
+% includes, for instance,
+% \begin{itemize}
+% \item individually designed delimiters and radical signs for sizes
+% up to 4~inches tall and extra-wide mathematical accents,
+% \item complete Greek alphabets, both slanted and upright,
+% \item matching script, fraktur and BlackBoard Bold fonts,
+% \item AMS symbols, and more.
+% \end{itemize}
+%
+% In addition to the `Complete' set of the \mtpro \textit{II} fonts, there is a `Lite' version, which
+% includes only a basic set, essentially replacing the standard Computer Modern math fonts
+% that are required for plain \TeX.
+%
+%
+% \section{The \Lpack{mtpro2} package}
+%
+% Basically,
+% loading the macro package \Lpack{mtpro2}
+% \begin{verse}
+% |\usepackage|\oarg{options}|{mtpro2}|
+% \end{verse}
+% makes \LaTeX{} use \mtpro in place of
+% the default Computer Modern math fonts.
+% The following sections describe the
+% particular features of the package and the additional options that
+% control its behavior.
+%
+% The package \Lpack{mtpro2} constitutes a successor to the
+% previously separate packages \Lpack{mtpro}, \Lpack{mtpams} and \Lpack{mtpb}
+% and integrates all of their capabilities.
+%
+%
+% \subsection{\textit{Lite} vs.\ \textit{Complete} font set}
+%
+% If you are using the `lite' font set, you should disable all those features
+% that would require the complete collection.
+% To do so, load the package with the option \Lopt{lite}:
+% \begin{verse}
+% |\usepackage[lite,...]{mtpro2}|
+% \end{verse}
+%
+% In particular, the following features are available only with the
+% complete font set:
+% \begin{itemize}
+% \item Bold math fonts, except for the bold upright math alphabets
+% \cmd{\mathbf} and \cmd{\mbf}, and for the bold versions
+% of the CM Calligraphic and the Euler fonts;
+% \item Times-compatible script, curly, fraktur and `blackboard bold' fonts;
+% \item AMS symbols.
+% \end{itemize}
+% When \Lpack{mtpro2} is loaded with the option \Lopt{lite},
+% they are disabled so that you cannot use any missing fonts inadvertently.
+% \fullonly Features requiring the
+% complete font set are marked appropriately in the remainder of the present document.
+%
+%
+% \subsection{Text fonts}
+%
+% Loading the \Lpack{mtpro2} package does not change \LaTeX's default
+% text font families (Computer Modern). However, the \mtpro fonts were designed
+% to blend best with Times. The Monotype Times New Roman fonts are an ideal match,
+% but \Lpack{mtpro2} can equally well be used with Adobe Times, Times Ten
+% and similar typefaces, such as Baskerville or Concorde.
+%
+% The roman, sans-serif and typewriter font families
+% and the encoding of the text fonts are to be selected \emph{before} loading of
+% \Lpack{mtpro2} (unless you stay with \LaTeX's defaults), so that the package
+% `knows' the fonts and the encoding to be used for operator names such as `sin'
+% and for the math alphabets
+% \cmd{\mathrm}, \cmd{\mathsf} and \cmd{\mathtt}.
+% For instance,
+% \begin{verse}
+% |\usepackage[T1]{fontenc}|\\
+% |\usepackage{textcomp}|\\
+% |\renewcommand{\rmdefault}{ptm}|\\
+% |\usepackage[scaled=0.92]{helvet}|\\
+% |\usepackage{mtpro2}|
+% \end{verse}
+% selects T1 encoding with additional text companion symbols and loads
+% \mtpro in conjunction with Adobe Times (|ptm|) and Helvetica, while the
+% default typewriter font family (CM Typewriter) is unchanged.
+% This is how the present document has been typeset.
+%
+%
+% \subsection{Greek letters}
+%
+% With \TeX{} or \LaTeX{}, uppercase Greek letters in math mode
+% are usually typeset as upright, even though they are usually meant to designate
+% variables. Since this violates the
+% International Standards ISO31-0:1992 to ISO31-13:1992,
+% the \Lpack{mtpro2} package provides an option \Lopt{slantedGreek}, which
+% causes uppercase Greek (\cmd{\Gamma}, \cmd{\Delta} etc.), to be typeset as slanted.
+%
+% Upright lowercase and uppercase Greek letters are available with command
+% names such as \cmd{\upalpha}, \cmd{\upbeta}, \cmd{\upGamma}, \cmd{\upDelta}, etc.
+% They are always upright, regardless of the \Lopt{slantedGreek} option.
+%
+% The response of the Greek letters to math alphabet commands
+% differs from that of standard \LaTeX\ when \Lpack{mtpro2} is used:
+% Lowercase Greek letters will respond
+% to math alphabet commands; otherwise, \cmd{\mathbold} and \cmd{\mathbb}
+% would not work as described below.
+%
+% This behavior, may, however, cause problems
+% with legacy documents, because
+% applying a different math alphabet than \cmd{\mathbold} or one of the
+% italic doublestroke alphabets on lowercase Greek letters will result in garbage output
+% (or no output at all)\danger.
+% To avoid this, specify the package option
+% \mbox{\Lopt{compatiblegreek}}, which causes the lowercase Greek letters to be declared as
+% `ordinary' symbols---however, with the drawback that they will
+% no longer honor \cmd{\mathbold} or \cmd{\mathbb}.
+%
+%
+% \subsection{Numbers and punctuation in math mode}
+%
+% \LaTeX's default behavior is to typeset numbers and punctuation
+% in math mode using the \cmd{\mathrm} alphabet, which normally equals
+% the default text font.
+%
+% With the \Lpack{mtpro2} package, in contrast, numerals and punctuation
+% characters are---in math mode---taken from the \mtpro fonts.
+% ^^A These numerals are somewhat smaller than those from
+% ^^A Times~NRMT and seem to be more appropriate for use in formulas.
+% Thus, entering
+% |$1.23$| will yield a different result than |1.23|,
+% and you will have to decide in each case whether an input fragment
+% is a math or a non-math entity.
+%
+%
+% \subsection{Bold math fonts}
+% \label{sec:bold}
+%
+% \fullonly Bold and `heavy' math fonts are available only with the complete font set,
+% except for the alphabets \cmd{\mathbf} and \cmd{\mbf}, and for the bold versions
+% of the CM Calligraphic and Euler fonts.
+%
+% \subsubsection{Emboldening complete formulas}
+% The declaration \cmd{\boldmath} will embolden all formulas within its scope,
+% just as with the standard CM math fonts.
+% Use it, for instance, to emphasize complete formulas
+% or to make sure that mathematical expressions within bold section titles also appear in
+% bold type. Bold formulas should, however, not
+% contain the extra-large parentheses, roots and operators
+% described in section~\ref{sec:large} below.
+% The |\wide|\dots\ accents (\ref{sec:accents}) cannot be emboldened, either.
+%
+% \subsubsection{Bold letters and symbols}
+% The declaration \cmd{\boldmath} cannot be issued when you are already in
+% math mode. Thus it is not a suitable means to embolden single letters,
+% e.g., if you want to designate vectors with bold type.
+% This use of bold letters in formulas is supported through a number of bold \emph{math
+% alphabets}:
+% \begin{itemize}
+% \item
+% \cmd{\mathbf} prints its argument using the {\bfseries bold upright} text font.
+% \item
+% \cmd{\mbf} is similar, but uses a
+% specially modified version
+% of the bold upright Times font,
+% with the spacing and the letter shapes adapted to math typesetting.
+% Thus \cmd{\mbf} is appropriate to typeset single variables, while
+% \cmd{\mathbf} can be used, e.g., to emphasize an operator name.
+% \item
+% An additional {\bfseries\itshape bold italic} math alphabet named
+% \cmd{\mathbold} is provided---something
+% that isn't easily available with standard \LaTeX.
+% In contrast to \cmd{\mathbf} and \cmd{\mbf}, this
+% alphabet also includes Greek letters.\footnote{The
+% shape of the uppercase Greek letters follows the \Lopt{slantedGreek} option.}
+% \item
+% Beside the usual \cmd{\mathcal}, there is also a bold variant \cmd{\mathbcal};
+% see, however, section~\ref{sec:calligr} for a possible exception.
+% \item
+% When a \cmd{\mathscr} alphabet is set up (see below), a corresponding bold
+% \cmd{\mathbscr} is defined, too.
+% \end{itemize}
+%
+% An \emph{alternative} to the use of several different bold math alphabets
+% is available through the macro package \Lpack{bm}. It defines the command \cmd{\bm},
+% which can embolden not only letters but also symbols or arbitrary expressions---provided
+% that the required fonts exist.
+% The command \cmd{\bm} should, however, not be used on constructs like
+% |\PARENS| or |\SQRT| or the |\wide|\dots\ accents.
+% The package \Lpack{bm} belongs to the \Lpack{tools} collection,
+% which is part of every \LaTeX\ system. \emph{It is highly recommended
+% to read the documentation of the package before using it!}
+% To recognize the existence
+% of the bold math fonts, the package \Lpack{bm} is to be loaded \emph{after} \Lpack{mtpro2}.
+%
+%
+% \subsubsection{`Heavy' symbols}
+% Most---but not all---of the mathematical symbols of the \mtpro fonts exist
+% also in a `heavy' (i.e., extra-bold) variant, which can be used through the command
+% \cmd{\hm} of the above-mentioned package \Lpack{bm}. (Use of the
+% corresponding \cmd{\heavymath} declaration is, however, pointless,
+% because the heavy math fonts are incomplete.)
+%
+% The `heavy' symbols are darker and more prominent than the `bold' ones, so they are suitable,
+% for instance, if you need an extra-bold plus sign with a different mathematical meaning
+% than the regular $+$.
+% Applying \cmd{\hm} to characters that are not available as `heavy' yields either
+% normal type or a `slug' (a black box), depending on the math alphabet.
+% In particular, this restriction affects Latin and Greek letters, as well as the
+% `extra-large' delimiters, root, operators and accents described below.
+%
+%
+% \subsection{Calligraphic math alphabet}
+% \label{sec:calligr}
+%
+% \cmd{\mathcal} defaults to the calligraphic font of the
+% Computer Modern family. Other script fonts
+% can be used through the following package options:
+% \begin{description}
+% \item[\Lopt{eucal}] assigns the Euler Calligraphic font to the math alphabet \cmd{\mathcal},
+% \item[\Lopt{mtpcal}] assigns the Times-compatible Math Script font to \cmd{\mathcal},
+% \item[\Lopt{mtpccal}] assigns the Times-compatible upright `Curly' font to \cmd{\mathcal},
+% \item[\Lopt{mtpscr}] assigns Math Script to a new math alphabet \cmd{\mathscr}.
+% \end{description}
+%
+% \fullonly While the calligraphic CM and Euler fonts are standard components of any \LaTeX\ system,
+% the Math Script and Curly fonts are available only
+% with the complete version of the \mtpro font set:
+% \begin{center}
+% ^^A\mtpro Math Script:\\[.7ex]
+% $\mathscr{ABC[\altC]DEFG[\altG]HI[\altI]JKL[\altL]MNOPQ[\altQ]RS[\altS]TUVWXY[\altY]Z[\altZ]}$\\
+% $ \mathscr{abcdefghi\imath j\jmath klmnopqr[\altr]stuvwxyz[\altz]}$\\[.5ex]
+% $\mathcal{ABCDEFG[\altG]HIJKLM[\altM]N[\altN]OPQ[\altQ]RSTUVWXY[\altY]Z}$\\
+% $ \mathcal{abcdefghi\imath j\jmath klmnopqrstuvwxyz}$\\
+% \end{center}
+% \mbox{} \danger There is no bold variant of the Curly font, so \cmd{\mathbcal}
+% is \emph{not} defined when \cmd{\mathcal} is assigned to this font.
+%
+% Section~\ref{sec:options} lists further options to set up \cmd{\mathcal}
+% or an additional math alphabet \cmd{\mathscr}. They are somewhat confusing
+% and are provided only for the sake of compatibility with the old
+% \Lpack{mathtime} package.
+%
+% Do not try to use the declaration \cmd{\cal} in place of the text-generating command
+% \cmd{\mathcal}.
+% This syntax is obsolete \danger and may not work with the package \Lpack{mtpro2}.
+%
+%
+% \subsection{Fraktur math alphabet}
+% \label{sec:fraktur}
+%
+% A Fraktur alphabet \cmd{\mathfrak} can be be made available through a
+% package option:
+% \begin{description}
+% \item[\Lopt{eufrak}] assigns the Euler Fraktur font to \cmd{\mathfrak};
+% \item[\Lopt{mtpfrak}] assigns the Times-compatible Math Fraktur font to \cmd{\mathfrak}.
+% \end{description}
+%
+% \fullonly While the Euler fraktur font is a standard component of any \LaTeX\ system,
+% the Math Fraktur font is available only
+% with the complete version of the \mtpro font set:
+% \begin{center}
+% ^^A\mtpro Math Fraktur:\\[.7ex]
+% $\mathfrak{ABCDEFGHIJKLMNOPQRSTUVWXY[\altY]Z}$\\
+% $ \mathfrak{abcdefghi\imath j\jmath klmnopqrstuvwx[\altx]y[\alty]z}$
+% \end{center}
+%
+% The symbols \cmd{\Re} and \cmd{\Im} from the basic \mtpro
+% fonts are not \danger exactly the same as the corresponding letters from these
+% \cmd{\mathfrak} alphabets. If you would prefer
+% to have \cmd{\Re} and \cmd{\Im} use the \cmd{\mathfrak} alphabet,
+% just redefine these macros appropriately:
+% \begin{verse}
+% |\renewcommand{\Re}{\mathfrak{R}}|\\
+% |\renewcommand{\Im}{\mathfrak{I}}|\\
+% \end{verse}
+%
+%
+% \subsection{Variant letters in the Fraktur and Script alphabets}
+% \fullonly This section is relevant with the complete font set only!
+%
+% Several letters on the Times-compatible Math Script, Curly and Fraktur fonts
+% are available with alternative shapes:
+% \smallskip
+%
+% \noindent\begin{tabular}[t]{ll@{\quad}ll}
+% \multicolumn{4}{c}{Script:} \\
+% \texttt{C} & $\mathscr{C}$ & \cmd{\altC} & $\mathscr{\altC}$ \\
+% \texttt{G} & $\mathscr{G}$ & \cmd{\altG} & $\mathscr{\altG}$ \\
+% \texttt{I} & $\mathscr{I}$ & \cmd{\altI} & $\mathscr{\altI}$ \\
+% \texttt{L} & $\mathscr{L}$ & \cmd{\altL} & $\mathscr{\altL}$ \\
+% \texttt{Q} & $\mathscr{Q}$ & \cmd{\altQ} & $\mathscr{\altQ}$ \\
+% \texttt{S} & $\mathscr{S}$ & \cmd{\altS} & $\mathscr{\altS}$ \\
+% \texttt{Y} & $\mathscr{Y}$ & \cmd{\altY} & $\mathscr{\altY}$ \\
+% \texttt{Z} & $\mathscr{Z}$ & \cmd{\altZ} & $\mathscr{\altZ}$ \\
+% \texttt{r} & $\mathscr{r}$ & \cmd{\altr} & $\mathscr{\altr}$ \\
+% \texttt{z} & $\mathscr{z}$ & \cmd{\altz} & $\mathscr{\altz}$ \\[.5ex]
+% \end{tabular}
+% \hfill
+% \begin{tabular}[t]{ll@{\quad}ll}
+% \multicolumn{4}{c}{Curly:} \\
+% \texttt{G} & $\mathcal{G}$ & \cmd{\altG} & $\mathcal{\altG}$\\
+% \texttt{M} & $\mathcal{M}$ & \cmd{\altM} & $\mathcal{\altM}$\\
+% \texttt{N} & $\mathcal{N}$ & \cmd{\altN} & $\mathcal{\altN}$\\
+% \texttt{Q} & $\mathcal{Q}$ & \cmd{\altQ} & $\mathcal{\altQ}$\\
+% \texttt{Y} & $\mathcal{Y}$ & \cmd{\altY} & $\mathcal{\altY}$
+% \end{tabular}
+% \hfill
+% \begin{tabular}[t]{ll@{\quad}ll}
+% \multicolumn{4}{c}{Fraktur:} \\
+% \texttt{Y} & $\mathfrak{Y}$ & \cmd{\altY} & $\mathfrak{\altY}$\\
+% \texttt{x} & $\mathfrak{x}$ & \cmd{\altx} & $\mathfrak{\altx}$\\
+% \texttt{y} & $\mathfrak{y}$ & \cmd{\alty} & $\mathfrak{\alty}$
+% \end{tabular}
+% \mbox{}
+% \smallskip
+%
+% \noindent The \cmd{\alt...} commands work only in conjunction with
+% the \mtpro Script, Curly and Fraktur fonts, i.e., within the argument of a related
+% math alphabet command. For instance, |\mathfrak{\altx}| yields $\mathfrak{\altx}$,
+% provided that Math Fraktur is in fact assigned to \cmd{\mathfrak}.
+% When the commands are used with other fonts, the
+% corresponding `normal' letter is printed.
+%
+%
+% \subsection{`Blackboard Bold' math alphabet}
+% \label{sec:bb}
+%
+% A `blackboard bold' font can be made available as math alphabet
+% \cmd{\mathbb}. Various fonts can be selected using the following package options:
+% \begin{description}
+% \item[\Lopt{amsbb}] AMS `B'
+% \item[\Lopt{mtphrb}] Times-compatible Holey Roman Bold
+% \item[\Lopt{mtpbb}] Times-compatible Blackboard Bold
+% \item[\Lopt{mtphbi}] Times-compatible Holey Roman Bold Italic
+% \item[\Lopt{mtpbbi}] Times-compatible Blackboard Bold Italic
+% \item[\Lopt{mtphrd}] Times-compatible Holey Roman Dark
+% \item[\Lopt{mtpbbd}] Times-compatible Blackboard Bold Dark
+% \end{description}
+%
+% \fullonly While the AMS `B' font is a standard component of any \LaTeX\ system,
+% the Times-compatible fonts are available only
+% with the complete version of the \mtpro font set:
+%
+% The first version, \textbf{h}oley \textbf{r}oman \textbf{b}old, is a
+% `bold open' font, formed by
+% hollowing out bold letters:
+% \begin{center}
+% \hrbfont
+% ABCDEFGHIJKLMNOPQRSTUVWXYZ\\
+% abcdefghi\symbol{"7B}j\symbol{"7C}klmnopqrstuvwxyz0123456789
+% \end{center}
+% By contrast, the \textbf{b}lackboard \textbf{b}old font
+% is the sort of
+% alphabet that one might actually write on a blackboard:
+% \begin{center}
+% \bbbfont
+% ABCDEFGHIJKLMNOPQRSTUVWXYZ\\\
+% abcdefghi\symbol{"7B}j\symbol{"7C}klmnopqrstuvwxyz0123456789
+% \end{center}
+% Beside these, corresponding italic fonts are available, too.
+% They comprise also Greek letters, which are accessible through the usual
+% commands \cmd{\alpha}\dots\cmd{\Omega}.
+% \begin{center}
+% \hbifont
+% ABCDEFGHIJKLMNOPQRSTUVWXYZ\\
+% abcdefghi\symbol{"7B}j\symbol{"7C}klmnopqrstuvwxyz0123456789\\
+% \symbol{"0B}\textnormal{\dots}\symbol{"21}\textnormal{\dots}\symbol{"00}\textnormal{\dots}\symbol{"0A}\\
+% \end{center}
+% and
+% \begin{center}
+% \bbbifont
+% ABCDEFGHIJKLMNOPQRSTUVWXYZ\\
+% abcdefghi\symbol{"7B}j\symbol{"7C}klmnopqrstuvwxyz0123456789\\
+% \symbol{"0B}\textnormal{\dots}\symbol{"21}\textnormal{\dots}\symbol{"00}\textnormal{\dots}\symbol{"0A}\\
+% \end{center}
+%
+% Or you might prefer one of the dark versions, \textbf{h}oley \textbf{r}oman
+% \textbf{d}ark:
+% \begin{center}
+% \hrbdfont
+% ABCDEFGHIJKLMNOPQRSTUVWXYZ\\
+% abcdefghi\symbol{"7B}j\symbol{"7C}klmnopqrstuvwxyz0123456789
+% \end{center}
+% or \textbf{b}lackboard \textbf{b}old \textbf{d}ark:
+% \begin{center}
+% \bbbdfont
+% ABCDEFGHIJKLMNOPQRSTUVWXYZ\\\
+% abcdefghi\symbol{"7B}j\symbol{"7C}klmnopqrstuvwxyz0123456789
+% \end{center}
+% \cmd{\boldmath} and \cmd{\bm} also act on the Times Blackboard Bold and
+% Holey Roman Bold fonts and yield the related `dark' font.
+% However, if you have already chosen one of the `dark' fonts for the \cmd{\mathbb}
+% alphabet (option \Lopt{mtpbbd} or \Lopt{mtphrd}), it will not be emboldened further,
+% and the italic doublestroke fonts also have no bold counterparts.
+%
+%
+% \subsection{Positioning of subscripts}
+%
+% The appearance of subscripts can be improved by loading the package
+% with the option \Lopt{subscriptcorrection}. When certain letters, like
+% $f$ or $j$, occur as a subscript, the positioning will be automatically
+% adjusted. In the following example, the left sum was typeset with
+% subscript correction, the right one without:
+% \enablesubscriptcorrection
+% \[
+% C_f + C_j + X_A \qquad
+% \disablesubscriptcorrection
+% C_f + C_j + X_A
+% \]
+% \disablesubscriptcorrection^^A Just to make sure...
+% The \cmd{\enablesubscriptcorrection} and \cmd{\disablesubscriptcorrection}
+% commands can also be used to turn subscript correction on and off
+% within the document.
+%
+% No guarantee is made as to the proper functioning of the
+% automatic subscript correction in conjunction with any additional
+% macro package, because the underscore character |_| is made active.
+%
+%
+% \subsection{Styles of operator symbols}
+% The operators $\sum$, $\prod$ and $\coprod$ have slanted versions, too:
+% $\slsum$, $\slprod$ and $\slcoprod$. These are selected
+% as the default ones by specifying the package option \Lopt{sloperators}.
+% Whichever convention you use, you can always
+% use \cmd{\slsum} etc.\ to get the slanted versions
+% and \cmd{\upsum} etc.\ to get the upright versions.
+%
+%
+% \subsection{The big differences}
+% \label{sec:large}
+%
+% \subsubsection{Extra-large delimiters and roots}
+% The \mtpro font set includes individually designed parentheses and other
+% delimiters, all of which go up to to 4~inches high.
+%
+% The large parentheses are produced by the command |\PARENS{...}|;
+% just compare the left matrix with the output obtained from the ordinary
+% \cmd{\left(} and \cmd{\right(} macros:
+% \[
+% \PARENS{ \begin{array}{ccc}
+% x_{11} & x_{12} & \ldots \\
+% x_{21} & x_{22} & \ldots \\
+% x_{31} & x_{32} & \ldots \\
+% \vdots & \vdots & \ddots
+% \end{array} }
+% \qquad
+% \left( \begin{array}{ccc}
+% x_{11} & x_{12} & \ldots \\
+% x_{21} & x_{22} & \ldots \\
+% x_{31} & x_{32} & \ldots \\
+% \vdots & \vdots & \ddots
+% \end{array} \right)
+% \]
+%
+% Basically, |\PARENS{...}| is just an abbreviation for
+% |\LEFTRIGHT(){...}|.
+% In general,
+% you can use \cmd{\LEFTRIGHT} directly with any two delimiters, including
+% the period for an empty delimiter. In addition to parentheses,
+% you can get |/|, |\backslash|, |<| (or |\langle|), and
+% |>| (or |\rangle|), all up to 4~inches high. As to curly braces, see the next section.
+%
+% A combination like
+% |\LEFTRIGHT(]|\marg{formula} is also possible; the $]$ just
+% gets extended in the usual way. At large sizes, however, the $($ might end up
+% slightly larger than the $]$, since the $]$ grows at the same (6\,pt) rate, no
+% matter how large the argument, while the parentheses grow faster for larger
+% formulas.
+% So in such cases you may need to replace \marg{formula} with
+% \begin{verse}
+% \cmd{\vcorrection}\marg{dimen}\marg{formula}
+% \end{verse}
+% to artificially increase its vertical size to \meta{dimen}, thereby forcing the
+% square bracket to be larger.
+%
+% In addition to the \cmd{\sqrt} command, which uses an
+% `extensible' symbol, \Lpack{mtpro2} provides \cmd{\SQRT}, with the same syntax.
+% It produces individually designed root signs up to 4~inches high:
+% In the example below,
+% the left root was typeset using \cmd{\SQRT}, the right one results
+% from the ordinary \cmd{\sqrt} command.
+% \[
+% \SQRT[3]{\sum_{i=1}^n (y^i -x^i )^3 }
+% \qquad
+% \sqrt[3]{\sum_{i=1}^n (y^i -x^i )^3 }
+% \]
+%
+% The positioning of the root index can be adjusted through the commands
+% \cmd{\LEFTROOT} and \cmd{\UPROOT}. They are to be issued in
+% math mode, they are valid inside the current formula only, and they
+% act only on roots produced from
+% \cmd{\SQRT}.
+% Positive arguments to these commands will move the root index to the
+% left and up respectively, while a negative argument will move it
+% to the right and down. The units of increment are quite small, which is useful
+% for such adjustments.
+% In the example below, the index $\beta$ of the left root is moved
+% 2 units to the right and 6 units up by saying
+% |\LEFTROOT{-2}| |\UPROOT{6}| |\SQRT...|\,; the right root shows the
+% default appearance:
+% \[
+% \LEFTROOT{-2}\UPROOT{6}
+% \SQRT[\beta]{k} \qquad
+% \sqrt[\beta]{k}
+% \]
+% Notice that the syntax of the \cmd{\LEFTROOT} and \cmd{\UPROOT} commands differs
+% both from the \Lpack{amsmath} package
+% and from \texttt{mtp.tex}\,!
+%
+% You can nest |\PARENS| (or |\LEFTRIGHT|),
+% though of course that shouldn't be needed very often.
+% Doing so slows \TeX\ down exponentially and may also exhaust its
+% capacity.
+% It should also be mentioned that \cmd{\PARENS} ends up typesetting its argument
+% more than once, in order to find out the right size of the delimiters,
+% so you need to be careful when using boxes: For example, if you
+% have stored a formula in |\box\eqnbox|, then you should be sure to type
+% |\PARENS{\copy\eqnbox}|, rather than |\PARENS{\box\eqnbox}|.
+% The same precaution applies to |\SQRT| and to the new |\wide...| accents
+% explained in section~\ref{sec:accents}.
+%
+%
+% \subsubsection{Curly braces}
+% The commands \cmd{\{} and \cmd{\}} (or \cmd{\lbrace} and \cmd{\rbrace})
+% can also be used after \cmd{\LEFTRIGHT}, in order to obtain curly braces
+% up to 4 inches high.\footnote{\cmd{\lcbrace} and \cmd{\rcbrace} can be used, too,
+% with respect to previous package versions.}
+% Again, compare the output obtained by
+% \verb+\LEFTRIGHT\{\}{...}+ with the result of the usual
+% \verb+\left\{...\right\}+:
+%
+% \[
+% \LEFTRIGHT\{\}{\begin{array}{ccc}
+% x_{11} & x_{12} & \ldots \\
+% x_{21} & x_{22} & \ldots \\
+% x_{31} & x_{32} & \ldots \\
+% \vdots & \vdots & \ddots
+% \end{array} }
+% \qquad
+% \left\{ \begin{array}{ccc}
+% x_{11} & x_{12} & \ldots \\
+% x_{21} & x_{22} & \ldots \\
+% x_{31} & x_{32} & \ldots \\
+% \vdots & \vdots & \ddots
+% \end{array} \right\}
+% \]
+%
+% To go along with this, a \cmd{\ccases} construction is provided, which
+% yields a decorated array with two columns, both left aligned:
+% \[
+% S(x) \coloneq \ccases{
+% -1 & x < 0 \\
+% 0 & x = 0 \\
+% 1 & x > 0}
+% \]
+% The syntax is similar to the |\cases| macro\footnote{There is, however,
+% no beautified counterpart to the |cases| environment of the \Lpack{amsmath} package!},
+% but the lines are separated in a \LaTeX-like manner by |\\|:
+% \begin{verse}
+% | S(x) \coloneq \ccases{ |\\
+% | -1 & x < 0 \\ |\\
+% | 0 & x = 0 \\ |\\
+% | 1 & x > 0} |
+% \end{verse}
+%
+% The \Lpack{mtpro2} package provides two further alternatives, as far as the shape of
+% braces is concerned:
+% If you prefer straight braces at all sizes, load the package with the option
+% \Lopt{straightbraces}, and use the normal \verb+\left\{...\right\}+ construct for
+% large, extensible braces. Or, if you want small braces to be `curly', while the larger ones
+% become more and more straight, load the package with the option \Lopt{morphedbraces},
+% also on conjunction with \verb+\left\{...\right\}+. Compare the default behavior
+% \[
+% \{ \bigl\{ \Bigl\{ \biggl\{ \Biggl\{
+% \LEFTRIGHT\lbrace\rbrace {\begin{array}{lll}
+% x_{1} \\
+% x_{2} \\
+% x_{3} \\
+% \end{array} }
+% \]
+% with the results obtained using \Lopt{straightbraces}\straightbraces
+%
+% \[
+% \{ \bigl\{ \Bigl\{ \biggl\{ \Biggl\{
+% \left\{ \begin{array}{lll}
+% x_{1} \\
+% x_{2} \\
+% x_{3} \\
+% \end{array} \right\}
+% \]
+% and \Lopt{morphedbraces}:\morphedbraces
+% \[
+% \{ \bigl\{ \Bigl\{ \biggl\{ \Biggl\{
+% \left\{ \begin{array}{lll}
+% x_{1} \\
+% x_{2} \\
+% x_{3} \\
+% \end{array} \right\}
+% \]
+% \curlybraces
+%
+% \subsubsection{Extra-large under- and overbraces}
+% Individually designed curly underbraces and overbraces
+% up to 4 inches wide are available by using the macros \cmd{\undercbrace} or \cmd{\overcbrace}
+% instead of the usual \verb+\underbrace+ and \verb+\overbrace+.
+% Compare these (left) with standard \LaTeX\ (right);
+% \[
+% \undercbrace{A_1+\cdots+A_i+\cdots+A_n} \qquad \underbrace{A_1+\cdots+A_i+\cdots+A_n}
+% \]
+%
+%
+% \subsubsection{Extra-large operator symbols}
+% In a displayed formula like
+% \[
+% \sum_{i \notin I}
+% \frac{\displaystyle \int\nolimits_{-\infty}^{+\infty}f(\alpha_i x)\,dx + 1}%
+% {\displaystyle \oint_C f(\beta_i z)\,dz - 1}
+% \]
+% you might feel the need for a larger sum sign. Normally printers don't
+% provide one, but with the \mtpro fonts you can get an extra-large
+% \cmd{\sum} with the \cmd{\xl} command. For instance,
+% |\xl\sum_{i \notin I}|\dots yields:
+% \[
+% \xl\sum_{i \notin I}
+% \frac{\displaystyle \int\nolimits_{-\infty}^{+\infty}f(\alpha_i x)\,dx + 1}%
+% {\displaystyle \oint_C f(\beta_i z)\,dz - 1}
+% \]
+% \verb+\xl+ can be applied to all `large' operators, including those in
+% section~\ref{sec:integrals}.
+% In most cases \verb+\xl+ produces a symbol about 18\,pt tall.
+% There are also \verb+\XL and +\verb+\XXL+ versions
+% that are 36\,pt and 72\,pt (a full inch) high!
+% And, heaven forbid, you can even get \verb+\XXXL+ versions that are two inches high,
+% thereby assuring yourself (as well as the designer of the MathTime fonts)
+% the lasting enmity of journal editors everywhere.
+%
+% As usual, you can also add \cmd{\nolimits} after the \cmd{\sum} if you want the
+% subscript and superscript to be placed to the side. And, in combinations like |\xl\int|
+% where they are normally placed to the side, you can add \cmd{\limits} if you do
+% want them to be set above and below the integral sign.
+%
+% When the package \Lpack{amsmath} is used, its options \Lopt{nosumlimits} and
+% \Lopt{inlimits} are, however, not honored\danger, i.e.,
+% the \emph{default} placement of subscripts and superscripts on extra-large operators
+% will always follow the normal \LaTeX\ convention.
+%
+%
+% \subsection{Accents in math}
+% \label{sec:accents}
+%
+% In addition to |\widehat| and |\widetilde|, there is now |\widecheck|.
+% The |\widehat|, |\widecheck|, and |\widetilde| accents are extended
+% in a similar fashion as the large delimiters and roots (see above);
+% in each case you can get accents up to 4~inches wide:
+% \[
+% \widehat{a+b} + \widehat{a+b+c} + \widehat{a+b+c+d} + \widehat{a+b+c+d+e}
+% \]
+% If, for some reason, you need double |\wide...| accents, you may be disappointed
+% to find that |\widehat{\widehat...| gives
+% \[
+% \widehat{\widehat{A+B+C+D+E+F+G }}
+% \]
+% with the top accent seemingly too high (its base is at the level of the top
+% of the lower \cmd{\widehat}).
+% So there is also \cmd{\widehatdown}\marg{dimen}|{...}| to move a |\widehat| down
+% (and similarly for the |\widetilde| and the |\widecheck| accents). For example,
+% \begin{verse}
+% |\widehatdown{2pt}{\widehat{A+B+C+D+E+F+G }}|
+% \end{verse}
+% produces
+% \[
+% \widehatdown{2pt}{\widehat{A+B+C+D+E+F+G }} \, .
+% \]
+%
+% In a combination like $\hat A$, the |\hat| accent might look a
+% little small, while |\widehat| produces an accent $\widehat A$
+% that looks too large (and also isn't positioned well, because |\widehat|
+% is meant for entire formulas, and doesn't properly position the accent for single letters).
+% So there is |\what| to produce a slightly wider
+% hat accent, $\what A$. Similarly, there are
+% |\wtilde|, |\wcheck|, and |\wbar|.
+%
+% In addition, there are slightly larger |\wwhat|, |\wwcheck|, |\wwtilde|,
+% and |\wwbar|. The |\wwhat|, |\wwcheck|, and |\wwtilde| accents are identical
+% to the smallest versions of the accents produced by |\widehat| etc.,
+% but in some cases it might be preferable
+% to force this smallest size instead of relying on the |\wide|\dots{}
+% accents themselves. For example, |\widehat M| yields $\widehat M$,
+% because the $M$ (counting the white space on its sides) happens to be just
+% a bit too wide for the smallest |\widehat| accent, whereas |\wwhat M|
+% will result in $\wwhat M$.
+%
+% The |\wwbar| accent is what used to be called |\widebar| in the
+% \mathtime fonts, but that really wasn't a very good name, since
+% |\overline| is what actually corresponds to the |\wide|\dots{} accents.
+%
+% The standard commands |\dot| and |\ddot| are complemented with
+% ready-made triple and quadruple dot accents \cmd{\dddot} and \cmd{\ddddot};
+% they work with or without the \Lpack{amsmath} package.
+%
+% In situations like $\dot \Gamma$,
+% the dot accents might look better
+% if they were moved up a bit. So there are \cmd{\dotup},
+% \cmd{\ddotup}, \cmd{\dddotup} and \cmd{\ddddotup},
+% to produce $\dotup\Gamma$, $\ddotup\Gamma$, etc.
+%
+%
+% \subsection{Additional symbols not available with standard \LaTeX}
+% \label{sec:symbols}
+% \subsubsection{Integrals}
+% \label{sec:integrals}
+% The \mtpro fonts include multiple, surface and line integrals.
+% They are available in text size (as shown in the below table)
+% as well as display size:
+% \begin{center}
+% \begin{tabular}{ll@{\qquad}ll@{\qquad}ll@{\qquad}ll}
+% $\iint$ & \cmd{\iint} & $\iiint$ & \cmd{\iiint} & $\oiint$ & \cmd{\oiint} & $\oiiint$ & \cmd{\oiiint} \\
+% $\cwoint$ & \cmd{\cwoint} & $\awoint$ & \cmd{\awoint} & $\cwint$ & \cmd{\cwint}\\
+% $\barint$ & \cmd{\barint} & $\slashint$ & \cmd{\slashint}\\
+% \end{tabular}
+% \end{center}
+% The macros are compatible with the \Lpack{amsmath} package,
+% which may be loaded additionally.
+%
+% \subsubsection{Negated relation symbols}
+% \label{sec:negrel}
+% \mtpro includes a number of ready-made negated relation symbols, see table~\ref{tab:negrel},
+% which are normally built from pieces. For instance, with \mtpro you should write
+% |\notleq| instead of |\not\leq|.
+% Almost all of of these symbols are accessible also through an alternative name,
+% which follows the naming scheme of the \Lpack{amssymb} package.
+% \begin{table}[hbt]
+% \centering
+% \begin{tabular}{ll@{\qquad}ll}
+% $\notless$ & \cmd{\notless}, \cmd{\nless} & $\notsupset$ & \cmd{\notsupset}, \cmd{\nsupset} \\
+% $\notleq$ & \cmd{\notleq}, \cmd{\nleq} & $\notsupseteq$ & \cmd{\notsupseteq}, \cmd{\nsupseteq} \\
+% $\notprec$ & \cmd{\notprec}, \cmd{\nprec} & $\notsqsupseteq$& \cmd{\notsqsupseteq}, \cmd{\nsqsupseteq} \\
+% $\notpreceq$ & \cmd{\notpreceq}, \cmd{\npreceq} & $\neq$ & \cmd{\neq} \\
+% $\notsubset$ & \cmd{\notsubset}, \cmd{\nsubset} & $\notequiv$ & \cmd{\notequiv}, \cmd{\nequiv} \\
+% $\notsubseteq$ & \cmd{\notsubseteq}, \cmd{\nsubseteq} & $\notsim$ & \cmd{\notsim} \\
+% $\notsqsubseteq$& \cmd{\notsqsubseteq}, \cmd{\nsqsubseteq} & $\notsimeq$ & \cmd{\notsimeq}, \cmd{\nsimeq} \\
+% $\notgr$ & \cmd{\notgr}, \cmd{\ngtr} & $\notapprox$ & \cmd{\notapprox}, \cmd{\napprox} \\
+% $\notgeq$ & \cmd{\notgeq}, \cmd{\ngeq} & $\notcong$ & \cmd{\notcong}, \cmd{\ncong} \\
+% $\notsucc$ & \cmd{\notsucc}, \cmd{\nsucc} & $\notasymp$ & \cmd{\notasymp}, \cmd{\nasymp} \\
+% $\notsucceq$ & \cmd{\notsucceq}, \cmd{\nsucceq} \\
+% \end{tabular}
+% \caption{Non-standard negated relation symbols.}
+% \label{tab:negrel}
+% \end{table}
+%
+%
+% \subsubsection{Miscellaneous symbols}
+% \label{sec:miscsym}
+% The \mtpro fonts provide various symbols and letters
+% that are not defined with standard \LaTeX, see table~\ref{tab:miscsym}
+%
+% \begin{table}[hbt]
+% \centering
+% \begin{tabular}{ll@{\qquad}ll}
+% \multicolumn{4}{l}{Relations:}\\[.5ex]
+% $\simarrow$ & \cmd{\simarrow} & $\hateq$ & \cmd{\hateq} \\
+% $\coloneq$ & \cmd{\coloneq} & $\eqcolon$ & \cmd{\eqcolon} \\
+% $\circdashbullet$ & \cmd{\circdashbullet} & $\bulletdashcirc$ & \cmd{\bulletdashcirc} \\[1.25ex]
+% \multicolumn{4}{l}{Binary operators:}\\[.5ex]
+% $\capprod$ & \cmd{\capprod} & $\cupprod$ & \cmd{\cupprod} \\
+% $\comp$ & \cmd{\comp} & $\setdif$ & \cmd{\setdif} \\
+% $\contraction$ & \cmd{\contraction} & $\varland$ & \cmd{\varland} \\[1.25ex]
+% \multicolumn{4}{l}{Large operators:}\\[.5ex]
+% $\bigcapprod$ & \cmd{\bigcapprod} & $\bigcupprod$ & \cmd{\bigcupprod}\\
+% $\bigast$ & \cmd{\bigast} & $\bigvarland$ & \cmd{\bigvarland}\\[1.25ex]
+% \multicolumn{4}{l}{Letters:}\\[.5ex]
+% $\varbeta$ & \cmd{\varbeta} & $\upvarbeta$ & \cmd{\upvarbeta} \\
+% $\vardelta$ & \cmd{\vardelta}& $\upvardelta$ & \cmd{\upvardelta} \\
+% $\varkappa$ & \cmd{\varkappa} & $\upvarkappa$ & \cmd{\upvarkappa}\\
+% $\hslash$ & \cmd{\hslash} & $\digamma$ & \cmd{\digamma}\\
+% $\dbar$ & \cmd{\dbar} & $\updbar$ & \cmd{\updbar}\\[1.25ex]
+% \multicolumn{4}{l}{Alternative card suit symbols:}\\[.5ex]
+% $\openspadesuit$ & \cmd{\openspadesuit} & $\shadedspadesuit$ & \cmd{\shadedspadesuit}\\
+% $\openclubsuit$ &\cmd{\openclubsuit}& $\shadedclubsuit$ & \cmd{\shadedclubsuit}
+% \end{tabular}
+% \caption{Miscellaneous non-standard symbols}
+% \label{tab:miscsym}
+% \end{table}
+%
+% Table~\ref{tab:miscsym} shows \cmd{\bigcapprod}, \cmd{\bigcupprod},
+% \cmd{\bigast} and \cmd{\bigvarland} as they would
+% appear within inline formulas. Being `large operators', they are enlarged
+% when used within displayed formulas, for instance:
+% \[
+% \bigcapprod_{i=1}^n\alpha_i \qquad \bigcupprod_{i=1}^n\alpha_i \qquad
+% \bigast_{i=1}^n\alpha_i \qquad \bigvarland_{i=1}^n\alpha_i \qquad
+% \]
+% \cmd{\varbeta} and \cmd{\vardelta} are old forms of $\beta$ and $\delta$ that you
+% might find useful if you are trying to imitate certain old books.
+% Notice that \cmd{\vardelta} is hardly distinguishable
+% from the \cmd{\partial} symbol (the circular portion of \cmd{\vardelta}
+% is taller, to match the height of letters like $x$ and $o$ in math formulas). The
+% only reason for providing \cmd{\vardelta} is that all the various Greek alphabets
+% specified for mathematics in the Unicode standard include
+% this variant (perversely called `partial').
+%
+% The bold or heavy versions of $\spadesuit$ and $\clubsuit$ are somewhat grotesque.
+% If you need to have different varieties of these, you might like to use
+% the |\open...| or |\shaded..| macros.
+% Notice, however, that these variants themselves have no bold or heavy counterparts!
+%
+% \subsubsection{Alternative shapes of z in math mode}
+% Some people like to have an italic z with a `swash' tail: $\zswash$.
+% Loading the package with the option \Lopt{zswash} cause |z| to yield $\zswash$
+% instead of $z$ in your equations.
+%
+% \subsection{AMS symbols}
+% \label{sec:amsfonts}
+%
+% The `lite' \mtpro font set already provides several symbols that are normally
+% available only with the package \Lpack{amssymb}---see the sections \ref{sec:negrel}
+% and \ref{sec:miscsym} above.
+%
+% \fullonly With the complete font set, in contrast, \emph{all} of the so-called `AMS symbols'
+% are available in a Times-compatible style. You need \emph{not} load the packages
+% \Lpack{amsfonts} or \Lpack{amssymb} additionally; in fact, you \emph{must not} do so,
+% because the packages are not compatible with \Lpack{mtpro2}.
+%
+% The definitions of the AMS symbols consume a huge amount of \TeX\ resources,
+% so you can disable them through the package option \Lopt{noamssymbols}.
+% This does, however, not affect any of the symbols shown in the tables
+% \ref{tab:negrel} and \ref{tab:miscsym}; they always remain accessible.
+%
+% \subsubsection{Ordinary symbols}
+% Most of the AMS symbols are binary operators or
+% relations, but first we have a group of various ordinary symbols,
+% shown in table~\ref{tab:ord}.
+% \cmd{\yen}, \cmd{\maltese}, \cmd{\circledR} and \cmd{\checkmark} are sort
+% of special, since they can be used both in text mode and in math mode.
+% $\Diamond$ (\cmd{\Diamond}) was adopted from the
+% so-called \LaTeX\ symbols, and you may prefer its shape over $\lozenge$.
+%
+% \begin{table}[hbtp]
+% \centering
+% \begin{tabular}{ll@{\quad}ll}
+% $\backprime $ &\cmd{\backprime} & $\varnothing $ &\cmd{\varnothing}\\
+% $\vartriangle $ &\cmd{\vartriangle} & $\blacktriangle $ &\cmd{\blacktriangle}\\
+% $\triangledown $ &\cmd{\triangledown} & $\blacktriangledown$ &\cmd{\blacktriangledown}\\
+% $\square $ &\cmd{\square} & $\blacksquare $ &\cmd{\blacksquare}\\
+% $\lozenge $ &\cmd{\lozenge} & $\blacklozenge $ &\cmd{\blacklozenge}\\
+% $\Diamond $ &\cmd{\Diamond} & $\bigstar $ &\cmd{\bigstar}\\
+% $\measuredangle$ &\cmd{\measuredangle}& $\sphericalangle $ &\cmd{\sphericalangle}\\
+% $\nexists $ &\cmd{\nexists} & $\complement $ &\cmd{\complement}\\
+% $\mho $ &\cmd{\mho} & $\eth $ &\cmd{\eth}\\
+% $\Finv $ &\cmd{\Finv} & $\Game $ &\cmd{\Game}\\
+% $\diagup $ &\cmd{\diagup} & $\diagdown $ &\cmd{\diagdown}\\
+% $\beth $ &\cmd{\beth} & $\gimel $ &\cmd{\gimel}\\
+% $\daleth $ &\cmd{\daleth} & $\yen $ &\cmd{\yen}\\
+% $\maltese $ &\cmd{\maltese} & $\circledR $ &\cmd{\circledR}\\
+% $\checkmark $ &\cmd{\checkmark} & $\circledS $ &\cmd{\circledS}\\
+% \end{tabular}
+% \caption{AMS symbols of type `ordinary'} \label{tab:ord}
+% \end{table}
+%
+% The AMS symbols
+% $\digamma$ (\cmd{\digamma}), and $\hslash$ (\cmd{\hslash}),
+% have been placed on the \mtpro `lite' fonts,
+% along with the $\hbar$ (\cmd{hbar}).
+%
+% \subsubsection{Delimiters}
+% Table~\ref{tab:del} shows four special delimiters (which occur in only one size).
+% \begin{table}[hbtp]
+% \centering
+% \begin{tabular}{ll@{\quad}ll}
+% $\ulcorner$ & \cmd{\ulcorner} & $ \urcorner$ &\cmd{\urcorner}\\
+% $\llcorner$ & \cmd{\llcorner} & $ \lrcorner$ &\cmd{\lrcorner}\\
+% \end{tabular}
+% \caption{AMS symbols: Delimiters}\label{tab:del}
+% \end{table}
+%
+% \subsubsection{Binary operators}
+% Table~\ref{tab:binop} shows the additional binary operator symbols in the complete font set.
+% The macro \cmd{\smallsetminus} is actually just a synonym for
+% \cmd{\setdif} on the \mtpro basic fonts.
+%
+% \begin{table}[hbtp]
+% \centering
+% \begin{tabular}{ll@{\quad}ll}
+% $\dotplus $ &\cmd{\dotplus} &$\smallsetminus $ &\cmd{\smallsetminus}\\
+% $\ltimes $ &\cmd{\ltimes} &$\rtimes $ &\cmd{\rtimes}\\
+% $\Cap $ &\cmd{\Cap} ,\cmd{\doublecap} &$\Cup $ &\cmd{\Cup},\cmd{\doublecup}\\
+% $\leftthreetimes$ &\cmd{\leftthreetimes} &$\rightthreetimes$ &\cmd{\rightthreetimes}\\
+% $\barwedge $ &\cmd{\barwedge} &$\veebar $ &\cmd{\veebar}\\
+% $\doublebarwedge$ &\cmd{\doublebarwedge} \\
+% $\curlywedge $ &\cmd{\curlywedge} &$\curlyvee $ &\cmd{\curlyvee}\\
+% $\boxplus $ &\cmd{\boxplus} &$\boxminus $ &\cmd{\boxminus}\\
+% $\boxtimes $ &\cmd{\boxtimes} &$\boxdot $ &\cmd{\boxdot}\\
+% $\circleddash $ &\cmd{\circleddash} &$\circledast $ &\cmd{\circledast}\\
+% $\circledcirc $ &\cmd{\circledcirc} &$\divideontimes $ &\cmd{\divideontimes}\\
+% $\centerdot $ &\cmd{\centerdot} &$\intercal $ &\cmd{\intercal}\\
+% \end{tabular}
+% \caption{AMS symbols: Binary operators}\label{tab:binop}
+% \end{table}
+%
+% \subsubsection{Binary relations}
+% In table \ref{tab:binrel}, note that $\sqsubset$ (\cmd{\sqsubset}) and $\sqsupset$
+% (\cmd{\sqsupset}) are `AMS' symbols, while the more complicated $\sqsubseteq$
+% (\cmd{\sqsubseteq}) and $\sqsupseteq$ (\cmd{\sqsupseteq}) already exist
+% in the basic fonts!
+%
+% Note also that $\smallsmile$ (\cmd{\smallsmile}) and $\smallfrown$
+% (\cmd{\smallfrown}) are different from the symbols $\cupprod$ (\cmd{\cupprod}) and
+% $\capprod$ (\cmd{\capprod}), and that the old $\models$ (\cmd{\models})
+% is different from $\vDash$ (\cmd{\vDash}).
+%
+% \begin{table}[hbtp]
+% \centering
+% \begin{tabular}{ll@{\quad}ll}
+% $\leqq $ &\cmd{\leqq} &$\geqq $ &\cmd{\geqq}\\
+% $\leqslant $ &\cmd{\leqslant} &$\geqslant $ &\cmd{\geqslant}\\
+% $\eqslantless $ &\cmd{\eqslantless} &$\eqslantgtr $ &\cmd{\eqslantgtr}\\
+% $\lesssim $ &\cmd{\lesssim} &$\gtrsim $ &\cmd{\gtrsim}\\
+% $\lessapprox $ &\cmd{\lessapprox} &$\gtrapprox $ &\cmd{\gtrapprox}\\
+% $\approxeq $ &\cmd{\approxeq} \\
+% $\lessdot $ &\cmd{\lessdot} &$\gtrdot $ &\cmd{\gtrdot}\\
+% $\lll $ &\cmd{\lll}, \cmd{\llless} &$\ggg $ &\cmd{\ggg}, \cmd{\gggtr}\\
+% $\lessgtr $ &\cmd{\lessgtr} &$\gtrless $ &\cmd{\gtrless}\\
+% $\lesseqgtr $ &\cmd{\lesseqgtr} &$\gtreqless $ &\cmd{\gtreqless}\\
+% $\lesseqqgtr $ &\cmd{\lesseqqgtr} &$\gtreqqless $ &\cmd{\gtreqqless}\\
+% $\doteqdot $ &\cmd{\doteqdot}, \cmd{\Doteq} &$\eqcirc $ &\cmd{\eqcirc}\\
+% $\fallingdotseq $ &\cmd{\fallingdotseq} &$\risingdotseq $ &\cmd{\risingdotseq}\\
+% $\circeq $ &\cmd{\circeq} &$\triangleq $ &\cmd{\triangleq}\\
+% $\backsim $ &\cmd{\backsim} &$\thicksim $ &\cmd{\thicksim}\\
+% $\backsimeq $ &\cmd{\backsimeq} &$\thickapprox $ &\cmd{\thickapprox}\\
+% $\subseteqq $ &\cmd{\subseteqq} &$\supseteqq $ &\cmd{\supseteqq}\\
+% $\Subset $ &\cmd{\Subset} &$\Supset $ &\cmd{\Supset}\\
+% $\sqsubset $ &\cmd{\sqsubset} &$\sqsupset $ &\cmd{\sqsupset}\\
+% $\preccurlyeq $ &\cmd{\preccurlyeq} &$\succcurlyeq $ &\cmd{\succcurlyeq}\\
+% $\curlyeqprec $ &\cmd{\curlyeqprec} &$\curlyeqsucc $ &\cmd{\curlyeqsucc}\\
+% $\precsim $ &\cmd{\precsim} &$\succsim $ &\cmd{\succsim}\\
+% $\precapprox $ &\cmd{\precapprox} &$\succapprox $ &\cmd{\succapprox}\\
+% $\vartriangleleft $ &\cmd{\vartriangleleft} &$\vartriangleright $ &\cmd{\vartriangleright}\\
+% $\trianglelefteq $ &\cmd{\trianglelefteq} &$\trianglerighteq $ &\cmd{\trianglerighteq}\\
+% $\blacktriangleleft $ &\cmd{\blacktriangleleft} &$\blacktriangleright$ &\cmd{\blacktriangleright}\\
+% $\vDash $ &\cmd{\vDash} &$\Vdash $ &\cmd{\Vdash}\\
+% $\Vvdash $ &\cmd{\Vvdash} \\
+% $\smallsmile $ &\cmd{\smallsmile} &$\smallfrown $ &\cmd{\smallfrown}\\
+% $\shortmid $ &\cmd{\shortmid} &$\shortparallel $ &\cmd{\shortparallel}\\
+% $\bumpeq $ &\cmd{\bumpeq} &$\Bumpeq $ &\cmd{\Bumpeq}\\
+% $\therefore $ &\cmd{\therefore} &$\because $ &\cmd{\because}\\
+% $\between $ &\cmd{\between} &$\pitchfork $ &\cmd{\pitchfork}\\
+% $\varpropto $ &\cmd{\varpropto} &$\backepsilon $ &\cmd{\backepsilon}\\
+% \end{tabular}
+% \caption{AMS symbols: Binary relations}\label{tab:binrel}
+% \end{table}
+%
+% \subsubsection{Negated relations}
+% Negated relation symbols are summarized in table~\ref{tab:amsnegrel}.
+% They are partly available already with the `lite' font set;
+% see table~\ref{tab:negrel}.
+%
+% Note that
+% $\nsim$ (\cmd{\nsim}) from the AMS symbols is definitely different from
+% $\notsim$ (\cmd{\notsim}) from the basic fonts.
+%
+% \begin{table}[hbtp]
+% \centering
+% \begin{tabular}{r@{\,}ll@{\quad}r@{\,}ll}
+% & $\nless $ &\cmd{\nless} & &$\ngtr $ &\cmd{\ngtr}\\
+% & $\nleq $ &\cmd{\nleq} & &$\ngeq $ &\cmd{\ngeq}\\
+% & $\nleqslant $ &\cmd{\nleqslant} & &$\ngeqslant $ &\cmd{\ngeqslant}\\
+% & $\nleqq $ &\cmd{\nleqq} & &$\ngeqq $ &\cmd{\ngeqq}\\
+% & $\lneq $ &\cmd{\lneq} & &$\gneq $ &\cmd{\gneq}\\
+% & $\lneqq $ &\cmd{\lneqq} & &$\gneqq $ &\cmd{\gneqq}\\
+% & $\lvertneqq $ &\cmd{\lvertneqq} & &$\gvertneqq $ &\cmd{\gvertneqq}\\
+% & $\lnsim $ &\cmd{\lnsim} & &$\gnsim $ &\cmd{\gnsim}\\
+% & $\lnapprox $ &\cmd{\lnapprox} & &$\gnapprox $ &\cmd{\gnapprox}\\
+% & $\nprec $ &\cmd{\nprec} & &$\nsucc $ &\cmd{\nsucc} \\
+% & $\npreceq $ &\cmd{\npreceq} & &$\nsucceq $ &\cmd{\nsucceq}\\
+% & $\precneqq $ &\cmd{\precneqq} & &$\succneqq $ &\cmd{\succneqq}\\
+% & $\precnsim $ &\cmd{\precnsim} & &$\succnsim $ &\cmd{\succnsim}\\
+% & $\precnapprox $ &\cmd{\precnapprox} & &$\succnapprox $ &\cmd{\succnapprox}\\
+% & $\nsim $ &\cmd{\nsim} & &$\ncong $ &\cmd{\ncong}\\
+% & $\nshortmid $ &\cmd{\nshortmid} & &$\nshortparallel$ &\cmd{\nshortparallel}\\
+% & $\nmid $ &\cmd{\nmid} & &$\nparallel $ &\cmd{\nparallel}\\
+% & $\nvdash $ &\cmd{\nvdash} & &$\nvDash $ &\cmd{\nvDash}\\
+% & $\nVdash $ &\cmd{\nVdash} & &$\nVDash $ &\cmd{\nVDash}\\
+% & $\ntriangleleft$ &\cmd{\ntriangleleft}& &$\ntriangleright$ &\cmd{\ntriangleright}\\
+% & $\nsubseteq $ &\cmd{\nsubseteq} & &$\nsupseteq $ &\cmd{\nsupseteq}\\
+% & $\nsubseteqq $ &\cmd{\nsubseteqq} & &$\nsupseteqq $ &\cmd{\nsupseteqq}\\
+% & $\subsetneq $ &\cmd{\subsetneq} & &$\supsetneq $ &\cmd{\supsetneq}\\
+% & $\varsubsetneq $ &\cmd{\varsubsetneq} & &$\varsupsetneq $ &\cmd{\varsupsetneq}\\
+% & $\subsetneqq $ &\cmd{\subsetneqq} & &$\supsetneqq $ &\cmd{\supsetneqq}\\
+% & $\varsubsetneqq$ &\cmd{\varsubsetneqq}& &$\varsupsetneqq $ &\cmd{\varsupsetneqq}\\
+% {}*&$\nsqsubset $ &\cmd{\nsqsubset} & *&$\nsqsupset $ &\cmd{\nsqsupset}\\
+% ^^A {}*&$\nsqsubseteq $ &\cmd{\nsqsubseteq}& *&$\nsqsupseteq $ &\cmd{\nsqsupseteq}\\
+% \end{tabular}
+% \caption{AMS symbols: Negated relations.
+% Symbols marked by an asterisk do not exist on the
+% Computer Modern AMS fonts.} \label{tab:amsnegrel}
+% \end{table}
+%
+% \subsubsection{Arrows}
+%
+% The arrows from table~\ref{tab:arrows} are of type \cmd{\mathrel}.
+% It should be noted that $\rightleftharpoons$
+% (\cmd{\rightleftharpoons}) is already provided with the `lite' font set.
+% The arrow $\leadsto$ (\cmd{\leadsto}) appears in the `\LaTeX\ symbols',
+% and its shape is more common than $\rightsquigarrow$ from the AMS fonts.
+% A number of arrows are also provided in negated form, see table~\ref{tab:negarrows}.
+%
+% \cmd{\rarrowhead}, \cmd{\larrowhead}, and \cmd{\midshaft} (which are not
+% given names in the AMS fonts) can be used to construct longer dashed arrows.
+% For example
+% \begin{verse}
+% |\mathrel{\midshaft\midshaft\midshaft\rarrowhead}|
+% \end{verse}
+% can be used to produce the arrow in the formula
+% \[
+% A\mathrel{\midshaft\midshaft\midshaft\rarrowhead}B.
+% \]
+%
+% \begin{table}[hbtp]
+% \centering
+% \begin{tabular}{r@{\,}ll@{\quad}r@{\,}ll}
+% &$\dashrightarrow $ &\cmd{\dashrightarrow}, \cmd{\dasharrow}& &$\dashleftarrow $ &\cmd{\dashleftarrow}\\
+% {}*&$\larrowhead $ &\cmd{\larrowhead} &*&$\rarrowhead $ &\cmd{\rarrowhead}\\
+% {}*&$\midshaft $ &\cmd{\midshaft} \\
+% &$\leftleftarrows $ &\cmd{\leftleftarrows} & &$\rightrightarrows $ &\cmd{\rightrightarrows}\\
+% &$\leftrightarrows $ &\cmd{\leftrightarrows} & &$\rightleftarrows $ &\cmd{\rightleftarrows}\\
+% &$\Lleftarrow $ &\cmd{\Lleftarrow} & &$\Rrightarrow $ &\cmd{\Rrightarrow}\\
+% &$\twoheadleftarrow $ &\cmd{\twoheadleftarrow} & &$\twoheadrightarrow $ &\cmd{\twoheadrightarrow}\\
+% &$\leftarrowtail $ &\cmd{\leftarrowtail} & &$\rightarrowtail $ &\cmd{\rightarrowtail}\\
+% &$\looparrowleft $ &\cmd{\looparrowleft} & &$\looparrowright $ &\cmd{\looparrowright}\\
+% &$\leftrightharpoons$ &\cmd{\leftrightharpoons} & &$\rightleftharpoons $ &\cmd{\rightleftharpoons}\\
+% &$\curvearrowleft $ &\cmd{\curvearrowleft} & &$\curvearrowright $ &\cmd{\curvearrowright}\\
+% {}*&$\undercurvearrowleft$ &\cmd{\undercurvearrowleft} &*&$\undercurvearrowright$ &\cmd{\undercurvearrowright}\\
+% &$\circlearrowleft $ &\cmd{\circlearrowleft} & &$\circlearrowright $ &\cmd{\circlearrowright}\\
+% &$\Lsh $ &\cmd{\Lsh} & &$\Rsh $ &\cmd{\Rsh}\\
+% &$\upuparrows $ &\cmd{\upuparrows} & &$\downdownarrows $ &\cmd{\downdownarrows}\\
+% &$\upharpoonright $ &\cmd{\upharpoonright}, \cmd{\restriction}& &$\upharpoonleft $ &\cmd{\upharpoonleft}\\
+% &$\downharpoonright $ &\cmd{\downharpoonright} & &$\downharpoonleft $ &\cmd{\downharpoonleft}\\
+% &$\updownarrows $ &\cmd{\updownarrows} & &$\downuparrows $ &\cmd{\downuparrows}\\
+% &$\updownharpoons $ &\cmd{\updownharpoons} & &$\downupharpoons $ &\cmd{\downupharpoons} \\
+% &$\upupharpoons $ &\cmd{\upupharpoons} & &$\downdownharpoons $ &\cmd{\downdownharpoons} \\
+% &$\rightsquigarrow $ &\cmd{\rightsquigarrow} & &$\leadsto $ &\cmd{\leadsto}\\
+% &$\leftrightsquigarrow$ &\cmd{\leftrightsquigarrow} & &$\multimap $ &\cmd{\multimap}\\
+% \end{tabular}
+% \caption{AMS arrows. Symbols marked by an asterisk do not exist on the
+% Computer Modern AMS fonts or are not given names of their own with the AMS macros.\label{tab:arrows}}
+% \end{table}
+%
+% \begin{table}[hbtp]
+% \centering
+% \begin{tabular}{ll@{\quad}ll}
+% $\nleftarrow$ &\cmd{\nleftarrow} & $\nrightarrow$ &\cmd{\nrightarrow}\\
+% $\nLeftarrow$ &\cmd{\nLeftarrow} & $\nRightarrow$ &\cmd{\nRightarrow}\\
+% $\nleftrightarrow$ &\cmd{\nleftrightarrow} & $\nLeftrightarrow$ &\cmd{\nLeftrightarrow}\\
+% \end{tabular}
+% \caption{AMS arrows (negated)} \label{tab:negarrows}
+% \end{table}
+%
+%
+% \subsubsection{Alternative symbol names}
+% Several symbols are made available both under the names introduced
+% by the AMS and under the names known from \LaTeX~2.09 or
+% from the \Lpack{latexsym} package---see table~\ref{tab:alt}.
+% \begin{table}[hbtp]
+% \centering
+% \begin{tabular}{lll}
+% ^^A & AMS: & \Lpack{latexsym}:\\[.5ex]
+% $\square $ & \cmd{\square} & \cmd{\Box} \\
+% $\vartriangleleft $ & \cmd{\vartriangleleft} & \cmd{\lhd} \\
+% $\trianglelefteq $ & \cmd{\trianglelefteq} & \cmd{\unlhd} \\
+% $\vartriangleright$ & \cmd{\vartriangleright}& \cmd{\rhd} \\
+% $\trianglerighteq$ & \cmd{\trianglerighteq} & \cmd{\unrhd} \\
+% $\bowtie$ & \cmd{\bowtie} & \cmd{\Join} \\
+% \end{tabular}
+% \caption{Alternative symbol names} \label{tab:alt}
+% \end{table}
+%
+%
+% \subsection{Change history}
+% \label{sec:changes}
+% \noindent Version 2.0 as of 2006-07-31:
+% \begin{itemize}
+% \item
+% \cmd{\LEFTRIGHT} works with |\lbrace|, |\rbrace|, |\{| and |\}|.
+% \item
+% Various shapes of curly braces are provided.
+% \item
+% Improved code to select the size of |\big| delimiters;
+% note that this may cause formulas to require a different
+% amount of space, as compared with the previous package version.
+% \end{itemize}
+%
+%
+% \section{Transition from \Lpack{mtpro} to \Lpack{mtpro2}}
+% As explained above, \Lpack{mtpro2} constitutes the
+% successor to the three packages \Lpack{mtpro}, \Lpack{mtpams}
+% and \Lpack{mtpb}.
+% Transition from the predecessor packages should be easy:
+% \begin{enumerate}
+% \item Load \Lpack{mtpro2} in place of \Lpack{mtpro};
+% adopt its options (with the exception of \Lopt{boldalphabet}, see below).
+% \item If you were using the package \Lpack{mtpams},
+% pass its options (if any) to \Lpack{mtpro2} now.
+% \item If you were using the package \Lpack{mtpb}, pass
+% its options to \Lpack{mtpro2} now.
+% \end{enumerate}
+% Only few incompatibilities are to be mentioned\danger:
+% \begin{itemize}
+% \item The syntax of \cmd{\xl} \& friends has changed:
+% The limits can be specified `as usual' now.
+% \item The option \Lopt{boldalphabet} does not exist any more,
+% and all Greek letters are of type `mathalpha' by default.
+% \item No blackboard bold math alphabet \cmd{\mathbb} is set up by default.
+% To declare a blackboard bold alphabet, one of the options explained
+% in section~\ref{sec:bb} needs to be used.
+% \end{itemize}
+%
+%
+% \section{Option summary}
+% \label{sec:options}
+% This section lists all options of the \Lpack{mtpro2} package.
+% Options that correspond to the default behavior of the package are
+% marked by an asterisk and need normally not to be specified.
+%
+% \begin{description}
+% \item[\Lopt{complete}*] Uses all of the \mtpro fonts.
+% \item[\Lopt{lite}] Uses the fonts of the `lite' release only.
+%
+% \item[\Lopt{uprightGreek}*] Makes the uppercase Greek letters upright.
+% \item[\Lopt{slantedGreek}] Makes the uppercase Greek letters slanted.
+%
+% \item[\Lopt{compatiblegreek}] Declares the lowercase Greek letters as `ordinary' symbols,
+% which are not affected by math alphabet commands.
+%
+% \item[\Lopt{uprightoperators}*] Makes \cmd{\sum}, \cmd{\prod} and \cmd {\coprod} upright.
+% \item[\Lopt{slantedoperators}] Makes \cmd{\sum}, \cmd{\prod} and \cmd {\coprod} slanted.
+%
+% \item[\Lopt{cmcal}*]
+% Assigns the Computer Modern calligraphic fonts to the math alphabets
+% \cmd{\mathcal} and \cmd{\mathbcal}.
+% \item[\Lopt{eucal}] Assigns Euler Script to \cmd{\mathcal} and \cmd{\mathbcal}.
+% \item[\Lopt{mtpluscal}] Assigns the MTMS and MTMSB script fonts, which were part of Y\&Y's
+% \mtplus collection, to \cmd{\mathcal} and \cmd{\matbcal}.
+% \item[\Lopt{lucidacal}] Assigns Lucida Script to \cmd{\mathcal} and \cmd{\mathbcal}.
+% \item[\Lopt{lucidascr}] Like \Lopt{lucidacal}, but assigns the fonts to
+% \cmd{\mathscr} and \cmd{\mathbscr}.
+% \item[\Lopt{mtplusscr}] Like \Lopt{mtpluscal}, but assigns the fonts to
+% \cmd{\mathscr} and \cmd{\mathbscr}.
+%
+% \item[\Lopt{eufrak}] Declares a new math alphabet \cmd{\mathfrak}
+% and assigns the Euler Calligraphic fonts to it.
+%
+% \item[\Lopt{amsbb}] Declares a math alphabet \cmd{\mathbb} and assigns the AMS `B' font.
+%
+% \item[\Lopt{subscriptcorrection}]
+% Redefines the underscore character so that it automatically corrects
+% the spacing of subscripts.
+% \item[\Lopt{nosubscriptcorrection}*]
+% Disables the subscript correction.
+%
+% \item[\Lopt{curlybraces}*] Uses curly braces (for fixed sizes).
+% \item[\Lopt{straightbraces}] Uses straight braces.
+% \item[\Lopt{morphedbraces}] Uses braces that morph from curly to straight.
+%
+% \item[\Lopt{zswash}]
+% Makes |$z$| print $\zswash$.
+% \item[\Lopt{nozswash}*]
+% Makes |$z$| print $z$.
+%
+% \end{description}
+% \textbf{The following options require the complete font set.}
+% They select math fonts that are not part of the `lite' font set,
+% so they are \emph{not} to be used in conjunction with \Lopt{lite}:
+% \begin{description}
+% \item[\Lopt{mtpcal}] Assigns \mtpro Script to \cmd{\mathcal} and \cmd{\mathbcal}.
+% \item[\Lopt{mtpccal}] Assigns \mtpro Curly to \cmd{\mathcal}.
+% \item[\Lopt{mtpscr}] Like \Lopt{mtpcal}, but puts the fonts into new
+% \cmd{\mathscr} and \cmd{\mathbscr} alphabets.
+% \item[\Lopt{mtpfrak}] Assigns the \mtpro Fraktur font to \cmd{\mathfrak}.
+% \item[\Lopt{mtphrb}] Assigns the \mtpro Holey Roman Bold font to \cmd{\mathbb}.
+% \item[\Lopt{mtpbb}] Assigns the \mtpro Blackboard Bold font to \cmd{\mathbb}.
+% \item[\Lopt{mtphbi}] Assigns the \mtpro Holey Roman Bold Italic font to \cmd{\mathbb}.
+% \item[\Lopt{mtpbbi}] Assigns the \mtpro Blackboard Bold Italic font to \cmd{\mathbb}.
+% \item[\Lopt{mtphrd}] Assigns the \mtpro Holey Roman Bold Dark font to \cmd{\mathbb}.
+% \item[\Lopt{mtpbbd}] Assigns the \mtpro Blackboard Bold Dark font to \cmd{\mathbb}.
+% \item[\Lopt{amssymbols}*] Makes the AMS symbols available.
+% This option is disabled automatically when \Lopt{lite} is specified.
+% \item[\Lopt{noamssymbols}] AMS symbols are not defined, thus saving \TeX\ resources.
+% \end{description}
+% This package makes a lot of font re-assignments. Normally these
+% generate warning messages on the terminal, however getting so many
+% messages would be distracting, so a further three options control the
+% font tracing. Even more control may be obtained by loading the
+% \Lpack{tracefnt} package.
+% \begin{description}
+% \item[\Lopt{errorshow}*] Only show font \emph{errors} on the terminal.
+% Warnings are just sent to the log file.
+% \item[\Lopt{warningshow}] Show font warnings on the terminal. This
+% corresponds to the usual \LaTeX\ behavior.
+% \item[\Lopt{nofontinfo}] Suppress all font warnings, even from the log file.
+% \end{description}
+%
+% \noindent\textbf{NB: }Not all options can be used together: E.g., one can select at most one
+% of the options setting up \cmd{\mathcal}; if more than one such option is given,
+% \Lopt{mtpcal} will win over \Lopt{mtpluscal}, \Lopt{eucal}, \Lopt{lucidacal}
+% and \Lopt{cmcal}.
+%
+% \noindent\textbf{NB: }The options to set up a \cmd{\mathscr}, \cmd{\mathfrak} or
+% \cmd{\mathbb} alphabet should not be used when an additional package is loaded
+% that also declares one of these math alphabets.
+%
+%
+%
+% \section{Using the Curly, Script, Fraktur and doublestroke fonts without the \Lpack{mtpro2} package}
+% \DeleteShortVerb{\|} ^^A wrt/ the framed table
+%
+% \fullonly Particular font definition files are provided for the Times-compatible script, fraktur and
+% doublestroke fonts described in the sections~\ref{sec:calligr}, \ref{sec:fraktur} and \ref{sec:bb}.
+% Thus, they can be used also without the \Lpack{mtpro2} package.
+% Table~\ref{tab:nfss} provides the information required to set up math alphabets using these fonts.
+%
+% \begin{table}[htbp]
+% \renewcommand{\arraystretch}{1.1}
+% \centering
+% \begin{tabular}{|c|c|c|c|l|}
+% \hline
+% \textbf{Encoding} & \textbf{family} & \textbf{series} & \textbf{shape} & \\ \hline\hline
+% \multicolumn{5}{|c|}{Curly}\\ \hline
+% \texttt{U} & \texttt{mt2ms} & \texttt{m} & \texttt{n} & $\mathcal{a, b \dots Z}$\\ \hline\hline
+% \multicolumn{5}{|c|}{Script}\\ \hline
+% \texttt{U} & \texttt{mt2ms} & \texttt{m} & \texttt{it} & $\mathscr{a, b \dots Z}$\\ \hline
+% \texttt{U} & \texttt{mt2ms} & \texttt{b} & \texttt{it} & $\mathbscr{a, b \dots Z}$\\ \hline\hline
+% \multicolumn{5}{|c|}{Fraktur}\\ \hline
+% \texttt{U} & \texttt{mt2mf} & \texttt{m} & \texttt{n} & $\mathfrak{a, b \dots Z}$\\ \hline
+% \texttt{U} & \texttt{mt2mf} & \texttt{m} & \texttt{it} & {\boldmath$\mathfrak{a, b \dots Z}$}\\ \hline
+% \multicolumn{5}{|c|}{Blackboard Bold}\\ \hline
+% \texttt{U} & \texttt{mt2bb} & \texttt{m} & \texttt{n} & {\bbbfont a{\normalfont, } B{\normalfont\dots\ }\ Z}\\ \hline
+% \texttt{U} & \texttt{mt2bb} & \texttt{m} & \texttt{it} & {\bbbifont a{\normalfont, } B{\normalfont\dots\ }\ Z}\\ \hline
+% \texttt{U} & \texttt{mt2bb} & \texttt{b} & \texttt{n} & {\bbbdfont a{\normalfont, } B{\normalfont\dots\ }\ Z}\\ \hline\hline
+% \multicolumn{5}{|c|}{Holey Roman Bold}\\ \hline
+% \texttt{U} & \texttt{mt2hrb} & \texttt{m} & \texttt{n} & {\hrbfont a{\normalfont, } B{\normalfont\dots\ }\ Z}\\ \hline
+% \texttt{U} & \texttt{mt2hrb} & \texttt{m} & \texttt{it} & {\hbifont a{\normalfont, } B{\normalfont\dots\ }\ Z}\\ \hline
+% \texttt{U} & \texttt{mt2hrb} & \texttt{b} & \texttt{n} & {\hrbdfont a{\normalfont, } B{\normalfont\dots\ }\ Z}\\ \hline
+% \end{tabular}
+% \caption{NFSS classification of the additional Times-compatible math alphabets}\label{tab:nfss}
+% \end{table}
+% \MakeShortVerb{\|}
+%
+% \StopEventually{\par\vfill\noindent{\small
+% \mathtime\ is a trademark of Publish or Perish, Inc.
+% Times and Helvetica are trademarks of Linotype~AG and/or its subsidiaries.
+% Concorde is a trademark of H. Berthold AG.
+% \par}}
+%
+%
+%
+% \section{The implementation of \Lpack{mtpro2}}
+%
+% \subsection{Options}
+%
+% The first options to be evaluated
+% are those that distinguish between the complete and the `lite' font set.
+% \begin{macrocode}
+%<*mtpro>
+\newif\ifmtp@full
+\DeclareOption{complete}{\mtp@fulltrue}
+\DeclareOption{lite}{\mtp@fullfalse\mtp@amsfalse}
+% \end{macrocode}
+%
+% A procedure to signal that an option is incompatible with \Lopt{lite}:
+% \begin{macrocode}
+\def\mtp@opterr{%
+ \PackageError{mtpro2}%
+ {Option \CurrentOption\space cannot be used\MessageBreak
+ together with the option `lite'}%
+ {Remove the option `lite' or make sure that the complete MT-Pro font set is provided.}
+}
+% \end{macrocode}
+%
+% Do we want to turn off the AMS symbols?
+% \begin{macrocode}
+\newif\ifmtp@ams
+\DeclareOption{noamssymbols}{\mtp@amsfalse}
+\DeclareOption{amssymbols}{\ifmtp@full\mtp@amstrue\else\mtp@opterr\fi}
+% \end{macrocode}
+%
+% For the (un)slanted Greek we take
+% |\Gamma| as a marker, since it will be redefined anyway.
+% \begin{macrocode}
+\DeclareOption{uprightGreek}{\let\Gamma=u}
+\DeclareOption{slantedGreek}{\let\Gamma=s}
+% \end{macrocode}
+%
+% Slanted or upright operators? Using |\sum| as a marker would
+% break \Lpack{amsmath}, so we can't avoid to define one more |\if...|:
+% \begin{macrocode}
+\newif\ifmtp@slops
+\DeclareOption{uprightoperators}{\mtp@slopsfalse}
+\DeclareOption{slantedoperators}{\mtp@slopstrue}
+% \end{macrocode}
+%
+% Subscript correction:
+% \begin{macrocode}
+\newcommand\enablesubscriptcorrection {\catcode`\_=12\relax}
+\newcommand\disablesubscriptcorrection{\catcode`\_=8\relax}
+% \end{macrocode}
+% \begin{macrocode}
+\DeclareOption{nosubscriptcorrection}{\disablesubscriptcorrection}
+\DeclareOption{subscriptcorrection} {\enablesubscriptcorrection}
+% \end{macrocode}
+%
+% Alternative z in math mode:
+% \begin{macrocode}
+\DeclareOption{zswash}{\mathcode `z="8000}
+% \end{macrocode}
+% For the sake of symmetry:
+% \begin{macrocode}
+\DeclareOption{nozswash}{\mathcode `z="717A}
+% \end{macrocode}
+%
+% Shape of braces; \cmd{\curlybraces} is the default.
+% \begin{macrocode}
+\DeclareOption{curlybraces}{\let\mtp@br=c}
+\DeclareOption{straightbraces}{\let\mtp@br=s}
+\DeclareOption{morphedbraces}{\let\mtp@br=m}
+%
+% \end{macrocode}
+% |\mathcal| and |\mathscr| are (mis)used as the markers for the calligraphic
+% and script alphabets. In a similar fashion we handle |\mathscr|.
+% \begin{macrocode}
+\DeclareOption{cmcal} {\let\mathcal=c}
+\DeclareOption{lucidacal}{\let\mathcal=l}
+\DeclareOption{eucal} {\let\mathcal=e}
+\DeclareOption{mtpluscal}{\let\mathcal=s}
+\DeclareOption{mtpcal} {\ifmtp@full\let\mathcal=a\else\mtp@opterr\fi}
+\DeclareOption{mtpccal} {\ifmtp@full\let\mathcal=u\else\mtp@opterr\fi}
+\DeclareOption{lucidascr}{\let\mathscr=l}
+\DeclareOption{mtplusscr}{\let\mathscr=s}
+\DeclareOption{mtpscr} {\ifmtp@full\let\mathscr=a\else\mtp@opterr\fi}
+% \end{macrocode}
+%
+% |\mathfrak| is the marker for the Fraktur alphabet. In contrast to
+% \Lpack{mtpro} there is now an option to load Euler Fraktur:
+% \begin{macrocode}
+\DeclareOption{eufrak} {\let\mathfrak=e}
+\DeclareOption{mtpfrak} {\ifmtp@full\let\mathfrak=a\else\mtp@opterr\fi}
+% \end{macrocode}
+%
+% By default, the lc Greek letters are declared as type `mathalpha', so that the math alphabets
+% \cmd{\mathbold} and \cmd{\mathbb} act upon them.
+% To protect against compatibility problems with legacy documents, this can be turned off
+% through the option \Lopt{compatiblegreek}:
+% \begin{macrocode}
+\newif\ifmtp@greekalpha\mtp@greekalphatrue
+\DeclareOption{compatiblegreek}{\mtp@greekalphafalse}
+% \end{macrocode}
+%
+% Finally, there are the options for setting up a \cmd{\mathbb} alphabet:
+% \begin{macrocode}
+\DeclareOption{amsbb}{\let\mathbb=y}
+\DeclareOption{mtpbb}{\let\mathbb=b}
+\DeclareOption{mtpbbd}{\let\mathbb=d}
+\DeclareOption{mtphrb}{\let\mathbb=h}
+\DeclareOption{mtphrd}{\let\mathbb=k}
+\DeclareOption{mtpbbi}{\let\mathbb=i}
+\DeclareOption{mtphbi}{\let\mathbb=j}
+% \end{macrocode}
+%
+% This package makes a lot of redefinitions. The warnings can be rather
+% annoying so some package options control whether the information
+% is printed to the terminal or log file. More control can be obtained
+% by loading the \textsf{tracefnt} package.
+%
+% Just show font errors; Warning and info to the log file.
+% The default for this package.
+% \begin{macrocode}
+\DeclareOption{errorshow}{%
+ \def\@font@info#1{%
+ \GenericInfo{(Font)\@spaces\@spaces\@spaces\space\space}%
+ {LaTeX Font Info: \space\space\space#1}}%
+ \def\@font@warning#1{%
+ \GenericInfo{(Font)\@spaces\@spaces\@spaces\space\space}%
+ {LaTeX Font Warning: #1}}}
+% \end{macrocode}
+%
+% The normal \LaTeX\ default, Font Info to the log file and Font
+% Warning to the terminal.
+% \begin{macrocode}
+\DeclareOption{warningshow}{%
+ \def\@font@info#1{%
+ \GenericInfo{(Font)\@spaces\@spaces\@spaces\space\space}%
+ {LaTeX Font Info: \space\space\space#1}}%
+ \def\@font@warning#1{%
+ \GenericWarning{(Font)\@spaces\@spaces\@spaces\space\space}%
+ {LaTeX Font Warning: #1}}}
+% \end{macrocode}
+%
+% On some machines writing all the log info may slow things down
+% so extra option not to log font changes at all.
+% \begin{macrocode}
+\DeclareOption{nofontinfo}{%
+ \let\@font@info\@gobble
+ \let\@font@warning\@gobble}
+% \end{macrocode}
+%
+% The defaults:
+% \begin{macrocode}
+\ExecuteOptions{%
+ complete,amssymbols,uprightGreek,uprightoperators,nosubscriptcorrection,curlybraces,cmcal,errorshow}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ProcessOptions
+% \end{macrocode}
+%
+%
+% \subsection{Fonts}
+% Switch to |\normalfont|. This makes any---possibly---changed values of em and ex
+% come into effect. (Is this really necessary? In any case, it won't hurt\dots)
+% \begin{macrocode}
+\normalfont
+% \end{macrocode}
+%
+% \begin{macrocode}
+% \end{macrocode}
+% By default there is no `heavy' mathversion, so let's declare it,
+% if we have the full font set:
+% \begin{macrocode}
+\ifmtp@full
+\DeclareMathVersion{heavy}
+\newcommand\heavymath{\@nomath\heavymath\mathversion{heavy}}
+\fi
+% \end{macrocode}
+%
+% Next, set up the math core fonts in terms of NFSS. Notice that there are
+% no external FD files for these, because the encoding is defined only locally.
+% The |LMP1| encoding is similar to |OML|:
+% \begin{macrocode}
+\DeclareFontEncoding{LMP1}{}{}
+\DeclareFontSubstitution{LMP1}{mtt}{m}{it}
+\DeclareFontFamily{LMP1}{mtt}{\skewchar\font45}
+\DeclareFontShape{LMP1}{mtt}{m}{it}{<-7> mt2mif <7-9> mt2mis <9-> mt2mit}{}
+\DeclareFontShape{LMP1}{mtt}{b}{it}{<-7> mt2bmif <7-9> mt2bmis <9-> mt2bmit}{}
+% \end{macrocode}
+% The |LMP2| encoding corresponds to |OMS|:
+% \begin{macrocode}
+\DeclareFontEncoding{LMP2}{}{}
+\DeclareFontSubstitution{LMP2}{mtt}{m}{n}
+\DeclareFontFamily{LMP2}{mtt}{\skewchar\font48}
+\DeclareFontShape{LMP2}{mtt}{m}{n}{<-7> mt2syf <7-9> mt2sys <9-> mt2syt}{\skewchar\font32}
+\DeclareFontShape{LMP2}{mtt}{b}{n}{<-7> mt2bsyf <7-9> mt2bsys <9-> mt2bsyt}{\skewchar\font32}
+\DeclareFontShape{LMP2}{mtt}{eb}{n}{<-7> mt2hsyf <7-9> mt2hsys <9-> mt2hsyt}{\skewchar\font32}
+% \end{macrocode}
+% The `extension symbol' font is similar to the Computer Modern \texttt{cmex}
+% font; however, it contains additional symbols.
+% One more encoding just for this reason:
+% \begin{macrocode}
+\DeclareFontEncoding{LMP3}{}{}
+\DeclareFontSubstitution{LMP3}{mtt}{m}{n}
+\DeclareFontFamily{LMP3}{mtt}{}
+\DeclareFontShape{LMP3}{mtt}{m}{n}{<->mt2exa}{}
+\DeclareFontShape{LMP3}{mtt}{b}{n}{<->mt2bexa}{}
+\DeclareFontShape{LMP3}{mtt}{eb}{n}{<->mt2hexa}{}
+% \end{macrocode}
+% There is also a bold upright font, which is used for the |\mbf|
+% alphabet. It contains letters and digits only, so we assign `U'
+% as the encoding.
+% \begin{macrocode}
+\DeclareFontFamily{U}{mtt}{\skewchar\font32}
+\DeclareFontShape{U}{mtt}{b}{n}{<-7> mt2mbf <7-9> mt2mbs <9-> mt2mbt}{}% (MJ)
+% \end{macrocode}
+%
+%
+% The main four symbol fonts:
+% \begin{macrocode}
+\DeclareSymbolFont{operators} {\encodingdefault}{\rmdefault}{m}{n}
+\DeclareSymbolFont{letters} {LMP1}{mtt}{m}{it}
+\DeclareSymbolFont{symbols} {LMP2}{mtt}{m}{n}
+\DeclareSymbolFont{largesymbols}{LMP3}{mtt}{m}{n}
+% \end{macrocode}
+% The particular `bold' variants (with full font set only):
+% \begin{macrocode}
+\ifmtp@full
+\SetSymbolFont{operators} {bold}{\encodingdefault}{\rmdefault}{b}{n}
+\SetSymbolFont{letters} {bold}{LMP1}{mtt}{b}{it}
+\SetSymbolFont{symbols} {bold}{LMP2}{mtt}{b}{n}
+\SetSymbolFont{largesymbols}{bold}{LMP3}{mtt}{b}{n}
+% \end{macrocode}
+% The `heavy' variants (ditto). Note that there are no `heavy' variants of the
+% `letters' and `operators' fonts:
+% \begin{macrocode}
+\SetSymbolFont{symbols} {heavy}{LMP2}{mtt}{eb}{n}
+\SetSymbolFont{largesymbols}{heavy}{LMP3}{mtt}{eb}{n}
+% \end{macrocode}
+%
+%
+% The AMS symbols, also with full set only:
+% \begin{macrocode}
+\DeclareFontFamily{U}{mt2sya}{}%
+\DeclareFontShape{U}{mt2sya}{m}{n}{<-7>mt2syaf<7-9>mt2syas<9->mt2syat}{}%
+\DeclareFontShape{U}{mt2sya}{b}{n}{<-7>mt2bsyaf<7-9>mt2bsyas<9->mt2bsyat}{}%
+\DeclareFontShape{U}{mt2sya}{eb}{n}{<-7>mt2hsyaf<7-9>mt2hsyas<9->mt2hsyat}{}%
+\fi
+% \end{macrocode}
+%
+%
+% The fonts named \cmd{\MTEXA@}, \cmd{\MTEXE@}, \cmd{\MTEXF@} and \cmd{\MTEXG@},
+% are used for the extra-large roots, delimiters and accents.
+% The fonts \cmd{\MTXL@} and \cmd{\MTXXXL@} provide the extra-large operators.
+% They are to be loaded at $1\times$, $2\times$, $3\times$ and
+% $4\times$ \cmd{\normalsize}. Notice that we are bypassing the NFSS!
+% % In addition to that, the `normal' font size
+% is stored in the macro \cmd{\tMTPsize}:.
+% \begin{macrocode}
+\normalsize
+\dimen@\f@size pt
+\edef\tMTPsize{\f@size pt}
+\font\MTEXA@=mt2exa at \the\dimen@
+\font\MTXL@=mt2xl at \the\dimen@
+\multiply\dimen@\tw@
+\font\MTEXE@=mt2exe at \the\dimen@
+\font\MTXXXL@=mt2xxxl at \the\dimen@
+\multiply\dimen@\tw@
+\font\MTEXF@=mt2exf at \the\dimen@
+\multiply\dimen@\tw@
+\font\MTEXG@=mt2exg at \the\dimen@
+% \end{macrocode}
+%
+% An auxiliary macro, borrowed from Ams-\TeX:
+% \begin{macrocode}
+\alloc@0\count\countdef\insc@unt\pointcount@
+% \end{macrocode}
+% Can't say \verb+\newcount+, since that's outer.
+% \begin{macrocode}
+\def\getpoints@#1.#2\getpoints@{\pointcount@#1\relax}
+% \end{macrocode}
+%
+%
+% \subsection{Math alphabet declarations}
+%
+% \subsubsection{The standard alphabets}
+% We don't have to declare |\mathrm| as \LaTeX{} declares it as
+% a math symbol alphabet pointing to `operators' symbol font.
+% Notice that we let \cmd{\mathbf} point to series `b' rather than 'bf', since
+% Times and similar fonts are usually available with that series.
+% \begin{macrocode}
+% \DeclareSymbolFontAlphabet{\mathrm}{operators}
+\DeclareMathAlphabet{\mathbf}{\encodingdefault}{\rmdefault}{b}{n}
+\DeclareMathAlphabet{\mathit}{\encodingdefault}{\rmdefault}{m}{it}
+\DeclareMathAlphabet{\mathsf}{\encodingdefault}{\sfdefault}{m}{n}
+\DeclareMathAlphabet{\mathtt}{\encodingdefault}{\ttdefault}{m}{n}
+\SetMathAlphabet{\mathit}{bold}{\encodingdefault}{\rmdefault}{b}{it}
+\SetMathAlphabet{\mathsf}{bold}{\encodingdefault}{\sfdefault}{b}{n}
+\SetMathAlphabet{\mathtt}{bold}{\encodingdefault}{\ttdefault}{b}{n}
+% \end{macrocode}
+%
+%
+% \subsubsection{Bold math alphabets}
+% We provide a non-standard {\bfseries bold upright} math alphabet, which points to the
+% MTMBF, MTMBS and MTMBT fonts:
+% \begin{macrocode}
+\DeclareMathAlphabet{\mbf}{U}{mtt}{b}{n}
+% \end{macrocode}
+% The {\bfseries\itshape bold italic} math alphabet is non-standard, too:
+% \begin{macrocode}
+\DeclareMathAlphabet{\mathbold}{LMP1}{mtt}{b}{it}
+% \end{macrocode}
+% NB: Packages such \Lpack{mathpazo}, \Lpack{eulervm} or
+% \Lpack{fixmath}, too, provide a \cmd{\mathbold} alphabet.
+%
+%
+% \subsubsection{Script alphabets}
+% \mtplus Script:
+% \begin{macrocode}
+\ifx\mathscr s
+ \let\mathscr\relax
+ \DeclareMathAlphabet{\mathscr} {U}{mtms}{m}{n}
+ \SetMathAlphabet {\mathscr} {bold}{U}{mtms}{b}{n}
+ \DeclareMathAlphabet{\mathbscr} {U}{mtms}{b}{n}
+\fi
+% \end{macrocode}
+% Lucida Calligraphic:
+% \begin{macrocode}
+\ifx\mathscr l
+ \let\mathscr\relax
+ \DeclareMathAlphabet{\mathscr} {OMS}{lbm}{m}{n}
+ \SetMathAlphabet{\mathscr}{bold}{OMS}{lbm}{b}{n}
+ \DeclareMathAlphabet{\mathbscr} {OMS}{lbm}{b}{n}
+\fi
+% \end{macrocode}
+% Math Script:
+% \begin{macrocode}
+\ifx\mathscr a
+ \let\mathscr\relax
+ \DeclareRobustCommand*{\mathscr}[1]{{\MTPsetupScript\MTPScript{#1}}}
+ \DeclareRobustCommand*{\mathbscr}[1]{{\MTPsetupScript\MTPbScript{#1}}}
+\fi
+% \end{macrocode}
+%
+%
+% \subsubsection{Calligraphic alphabets}
+% Lucida:
+% \begin{macrocode}
+\ifx\mathcal l
+ \let\mathcal\relax
+ \DeclareMathAlphabet{\mathcal} {OMS}{lbm}{m}{n}
+ \SetMathAlphabet{\mathcal}{bold}{OMS}{lbm}{b}{n}
+ \DeclareMathAlphabet{\mathbcal} {OMS}{lbm}{b}{n}
+\fi
+% \end{macrocode}
+% \mtplus Script:
+% \begin{macrocode}
+\ifx\mathcal s
+ \let\mathcal\relax
+ \DeclareMathAlphabet{\mathcal} {U}{mtms}{m}{n}
+ \SetMathAlphabet{\mathcal}{bold}{U}{mtms}{b}{n}
+ \DeclareMathAlphabet{\mathbcal} {U}{mtms}{b}{n}
+\fi
+% \end{macrocode}
+% Euler Script
+% \begin{macrocode}
+\ifx\mathcal e
+ \let\mathcal\relax
+ \DeclareFontFamily{U}{eus}{\skewchar\font'60}
+ \DeclareFontShape{U}{eus}{m}{n}{<-7>eusm5<7-9>eusm7<9->eusm10}{}
+ \DeclareFontShape{U}{eus}{b}{n}{<-7>eusb5<7-9>eusb7<9->eusb10}{}
+ \DeclareMathAlphabet{\mathcal} {U}{eus}{m}{n}
+ \SetMathAlphabet{\mathcal}{bold}{U}{eus}{b}{n}
+ \DeclareMathAlphabet{\mathbcal} {U}{eus}{b}{n}
+\fi
+% \end{macrocode}
+% Use CM for |\mathcal|; this is the default behavior, since
+% the CM Calligraphic fonts are always available:
+% \begin{macrocode}
+\ifx\mathcal c
+ \let\mathcal\relax
+ \DeclareMathAlphabet{\mathcal} {OMS}{cmsy}{m}{n}
+ \SetMathAlphabet{\mathcal}{bold}{OMS}{cmsy}{b}{n}
+ \DeclareMathAlphabet{\mathbcal} {OMS}{cmsy}{b}{n}
+\fi
+% \end{macrocode}
+% Math Script:
+% \begin{macrocode}
+\ifx\mathcal a
+ \let\mathcal\relax
+ \DeclareRobustCommand*{\mathcal}[1]{{\MTPsetupScript\MTPScript{#1}}}
+ \DeclareRobustCommand*{\mathbcal}[1]{{\MTPsetupScript\MTPbScript{#1}}}
+\fi
+% \end{macrocode}
+% Curly:
+% \begin{macrocode}
+\ifx\mathcal u
+ \let\mathcal\relax
+ \DeclareRobustCommand*{\mathcal}[1]{{\MTPsetupCurly\MTPCurly{#1}}}
+ \def\mathbcal{\PackageError{mtpro2}
+ {There is no bold variant of the Curly font}
+ {Type <return> to proceed; \protect\mathbcal\space will be ignored.}
+ }
+\fi
+% \end{macrocode}
+%
+%
+% \subsubsection{Fraktur alphabets}
+% Euler:
+% \begin{macrocode}
+\ifx\mathfrak e
+ \let\mathfrak\relax
+ \DeclareFontFamily{U}{euf}{}%
+ \DeclareFontShape{U}{euf}{m}{n}{<-7>eufm5<7-9>eufm7<9->eufm10}{}%
+ \DeclareFontShape{U}{euf}{b}{n}{<-7>eufb5<7-9>eufb7<9->eufb10}{}%
+ \DeclareMathAlphabet{\mathfrak}{U}{euf}{m}{n}
+ \SetMathAlphabet{\mathfrak}{bold}{U}{euf}{b}{n}
+\fi
+% \end{macrocode}
+% Math Fraktur:
+% \begin{macrocode}
+\ifx\mathfrak a
+ \DeclareRobustCommand*{\mathfrak}[1]{{\MTPsetupFrak\MTPFrak{#1}}}
+\fi
+% \end{macrocode}
+%
+%
+% \subsubsection{Preliminaries for the Math Script and Fraktur fonts}
+% \label{sec:altletters}
+% \emph{The code in this section is required only with the full font set:}
+% \begin{macrocode}
+\ifmtp@full
+% \end{macrocode}%
+% We change the definitions of \cmd{\imath} and \cmd{\jmath} so that
+% math alphabet commands will act on them:
+% \begin{macrocode}
+\DeclareMathSymbol{\imath}{\mathalpha}{letters}{"7B}
+\DeclareMathSymbol{\jmath}{\mathalpha}{letters}{"7C}
+% \end{macrocode}
+%
+% We provide default definitions of the commands for the alternative letters.
+% They expand to a warning message, followed by the `normal' letter:
+% \begin{macrocode}
+\newcommand{\altC}{%
+ \PackageWarning{mtpro2}{Invalid use of \protect\altC}C}
+\newcommand{\altG}{%
+ \PackageWarning{mtpro2}{Invalid use of \protect\altG}G}
+\newcommand{\altI}{%
+ \PackageWarning{mtpro2}{Invalid use of \protect\altI}I}
+\newcommand{\altL}{%
+ \PackageWarning{mtpro2}{Invalid use of \protect\altL}L}
+\newcommand{\altM}{%
+ \PackageWarning{mtpro2}{Invalid use of \protect\altM}M}
+\newcommand{\altN}{%
+ \PackageWarning{mtpro2}{Invalid use of \protect\altN}N}
+\newcommand{\altQ}{%
+ \PackageWarning{mtpro2}{Invalid use of \protect\altQ}Q}
+\newcommand{\altS}{%
+ \PackageWarning{mtpro2}{Invalid use of \protect\altS}S}
+\newcommand{\altY}{%
+ \PackageWarning{mtpro2}{Invalid use of \protect\altY}Y}
+\newcommand{\altZ}{%
+ \PackageWarning{mtpro2}{Invalid use of \protect\altZ}Z}
+\newcommand{\altr}{%
+ \PackageWarning{mtpro2}{Invalid use of \protect\altr}r}
+\newcommand{\altx}{%
+ \PackageWarning{mtpro2}{Invalid use of \protect\altx}x}
+\newcommand{\alty}{%
+ \PackageWarning{mtpro2}{Invalid use of \protect\alty}y}
+\newcommand{\altz}{%
+ \PackageWarning{mtpro2}{Invalid use of \protect\altz}z}
+% \end{macrocode}
+% With the Math Script font the following macro
+% will serve to redefine the above commands appropriately:
+% \begin{macrocode}
+\newcommand{\MTPsetupScript}{%
+ \let\altC=\MTP@C
+ \let\altG=\MTP@G
+ \let\altI=\MTP@I
+ \let\altL=\MTP@L
+ \let\altQ=\MTP@Q
+ \let\altS=\MTP@S
+ \let\altY=\MTP@Y
+ \let\altZ=\MTP@Z
+ \let\altr=\MTP@r
+ \let\altz=\MTP@z}
+% \end{macrocode}
+% Ditto for Fraktur\dots
+% \begin{macrocode}
+\newcommand{\MTPsetupFrak}{%
+ \let\altY=\MTP@Y
+ \let\altx=\MTP@x
+ \let\alty=\MTP@y}
+% \end{macrocode}
+% \dots\ and Curly:
+% \begin{macrocode}
+\newcommand{\MTPsetupCurly}{%
+ \let\altG=\MTP@G
+ \let\altM=\MTP@M
+ \let\altN=\MTP@N
+ \let\altQ=\MTP@Q
+ \let\altY=\MTP@Y}
+% \end{macrocode}
+% These are the macros to actually access the alternative letters:
+% \begin{macrocode}
+\DeclareMathSymbol{\MTP@C}{\mathalpha}{letters}{'003}
+\DeclareMathSymbol{\MTP@G}{\mathalpha}{letters}{'007}
+\DeclareMathSymbol{\MTP@I}{\mathalpha}{letters}{'011}
+\DeclareMathSymbol{\MTP@L}{\mathalpha}{letters}{'014}
+\DeclareMathSymbol{\MTP@M}{\mathalpha}{letters}{'015}
+\DeclareMathSymbol{\MTP@N}{\mathalpha}{letters}{'016}
+\DeclareMathSymbol{\MTP@Q}{\mathalpha}{letters}{'021}
+\DeclareMathSymbol{\MTP@S}{\mathalpha}{letters}{'023}
+\DeclareMathSymbol{\MTP@Y}{\mathalpha}{letters}{'031}
+\DeclareMathSymbol{\MTP@Z}{\mathalpha}{letters}{'032}
+\DeclareMathSymbol{\MTP@r}{\mathalpha}{letters}{'062}
+\DeclareMathSymbol{\MTP@x}{\mathalpha}{letters}{'070}
+\DeclareMathSymbol{\MTP@y}{\mathalpha}{letters}{'071}
+\DeclareMathSymbol{\MTP@z}{\mathalpha}{letters}{'072}
+% \end{macrocode}
+% NB: The choice of \texttt{letters} as the default font is arbitrary
+% and meaningless, since none of the predefined `symbol fonts' comprises the
+% symbols in question. All that counts here is the type \cmd{\mathalpha}.
+%
+% Math Script, Math Curly and Math Fraktur are assigned math alphabets,
+% which are, however, not to be used directly:
+% \begin{macrocode}
+\DeclareMathAlphabet{\MTPScript} {U}{mt2ms}{m}{it}
+\SetMathAlphabet{\MTPScript}{bold}{U}{mt2ms}{b}{it}
+\DeclareMathAlphabet{\MTPbScript} {U}{mt2ms}{b}{it}
+% \end{macrocode}
+% \begin{macrocode}
+\DeclareMathAlphabet{\MTPCurly}{U}{mt2ms}{m}{n}
+% \end{macrocode}
+% \begin{macrocode}
+\DeclareMathAlphabet{\MTPFrak} {U}{mt2mf}{m}{n}
+\SetMathAlphabet{\MTPFrak}{bold}{U}{mt2mf}{b}{n}
+% \end{macrocode}
+% NB: Just \emph{declaring} math alphabets does not yet consume
+% any math font families!
+%
+% \begin{macrocode}
+\fi
+% \end{macrocode}
+%
+%
+% \subsubsection{Blackboard Bold alphabet}
+% Optionally, we set up a `blackboard bold' alphabet, too.
+% \begin{macrocode}
+\ifx\mathbb i
+ \let\mathbb\relax
+ \DeclareMathAlphabet{\mathbb} {U}{mt2bb}{m}{it}
+\fi
+\ifx\mathbb j
+ \let\mathbb\relax
+ \DeclareMathAlphabet{\mathbb} {U}{mt2hrb}{m}{it}
+\fi
+\ifx\mathbb b
+ \let\mathbb\relax
+ \DeclareMathAlphabet{\mathbb} {U}{mt2bb}{m}{n}
+ \SetMathAlphabet{\mathbb}{bold}{U}{mt2bb}{b}{n}
+\fi
+\ifx\mathbb d
+ \let\mathbb\relax
+ \DeclareMathAlphabet{\mathbb} {U}{mt2bb}{b}{n}
+\fi
+\ifx\mathbb h
+ \let\mathbb\relax
+ \DeclareMathAlphabet{\mathbb} {U}{mt2hrb}{m}{n}
+ \SetMathAlphabet{\mathbb}{bold}{U}{mt2hrb}{b}{n}
+\fi
+\ifx\mathbb k
+ \let\mathbb\relax
+ \DeclareMathAlphabet{\mathbb} {U}{mt2hrb}{b}{n}
+\fi
+\ifx\mathbb y
+ \let\mathbb\relax
+ \DeclareFontFamily{U}{msb}{}%
+ \DeclareFontShape{U}{msb}{m}{n}{<-7>msbm5<7-9>msbm7<9->msbm10}{}%
+ \DeclareMathAlphabet{\mathbb}{U}{msb}{m}{n}
+\fi
+% \end{macrocode}
+%
+%
+% \subsection{Math symbol declarations}
+% Definitions which are unchanged from standard \LaTeX{} are commented out.
+% \smallskip
+%
+% \subsubsection{Existing symbols}
+% All digits and punctuation characters are taken from the `letters'
+% and `symbols' fonts now:
+% \begin{macrocode}
+\DeclareMathSymbol{0}{\mathalpha}{letters}{"30}
+\DeclareMathSymbol{1}{\mathalpha}{letters}{"31}
+\DeclareMathSymbol{2}{\mathalpha}{letters}{"32}
+\DeclareMathSymbol{3}{\mathalpha}{letters}{"33}
+\DeclareMathSymbol{4}{\mathalpha}{letters}{"34}
+\DeclareMathSymbol{5}{\mathalpha}{letters}{"35}
+\DeclareMathSymbol{6}{\mathalpha}{letters}{"36}
+\DeclareMathSymbol{7}{\mathalpha}{letters}{"37}
+\DeclareMathSymbol{8}{\mathalpha}{letters}{"38}
+\DeclareMathSymbol{9}{\mathalpha}{letters}{"39}
+\DeclareMathSymbol{!}{\mathclose}{letters}{"8A}
+% \DeclareMathSymbol{*}{\mathbin}{symbols}{"03} % \ast
+\DeclareMathSymbol{+}{\mathbin}{symbols}{67}
+% \DeclareMathSymbol{,}{\mathpunct}{letters}{"3B}
+% \DeclareMathSymbol{-}{\mathbin}{symbols}{"00}
+% \DeclareMathSymbol{.}{\mathord}{letters}{"3A}
+\DeclareMathSymbol{:}{\mathrel}{symbols}{"57}
+\DeclareMathSymbol{;}{\mathpunct}{symbols}{"49}
+\DeclareMathSymbol{?}{\mathclose}{letters}{"8B}
+\DeclareMathSymbol{=}{\mathrel}{symbols}{"44}
+% \end{macrocode}
+% Delimiters that are normally taken from the `operators' font
+% are mapped to `symbols' or `letters' now:
+% \begin{macrocode}
+\DeclareMathDelimiter{(}{\mathopen}{letters}{46}{largesymbols}{0}
+\DeclareMathDelimiter{)}{\mathclose}{letters}{47}{largesymbols}{1}
+\DeclareMathDelimiter{[}{\mathopen} {letters}{140}{largesymbols}{"02}
+\DeclareMathDelimiter{]}{\mathclose}{letters}{141}{largesymbols}{"03}
+% \DeclareMathDelimiter{<}{\mathopen}{symbols}{"68}{largesymbols}{"0A}
+% \DeclareMathDelimiter{>}{\mathclose}{symbols}{"69}{largesymbols}{"0B}
+% \DeclareMathSymbol{<}{\mathrel}{letters}{"3C}
+% \DeclareMathSymbol{>}{\mathrel}{letters}{"3E}
+\DeclareMathDelimiter{/}{\mathord}{letters}{"3D}{largesymbols}{"0E}
+% \DeclareMathSymbol{/}{\mathord}{letters}{"3D}
+% \DeclareMathDelimiter{|}{\mathord}{symbols}{"6A}{largesymbols}{"0C}
+% \expandafter\DeclareMathDelimiter\@backslashchar
+% {\mathord}{symbols}{"6E}{largesymbols}{"0F}
+% \end{macrocode}
+%
+% The lc Greek letters must be made \cmd{\mathalpha},
+% if we want \cmd{\mathbold} or \cmd{\mathbb} to act upon them:
+% \begin{macrocode}
+\ifmtp@greekalpha
+ \DeclareMathSymbol{\alpha}{\mathalpha}{letters}{"0B}
+ \DeclareMathSymbol{\beta}{\mathalpha}{letters}{"0C}
+ \DeclareMathSymbol{\gamma}{\mathalpha}{letters}{"0D}
+ \DeclareMathSymbol{\delta}{\mathalpha}{letters}{"0E}
+ \DeclareMathSymbol{\epsilon}{\mathalpha}{letters}{"0F}
+ \DeclareMathSymbol{\zeta}{\mathalpha}{letters}{"10}
+ \DeclareMathSymbol{\eta}{\mathalpha}{letters}{"11}
+ \DeclareMathSymbol{\theta}{\mathalpha}{letters}{"12}
+ \DeclareMathSymbol{\iota}{\mathalpha}{letters}{"13}
+ \DeclareMathSymbol{\kappa}{\mathalpha}{letters}{"14}
+ \DeclareMathSymbol{\lambda}{\mathalpha}{letters}{"15}
+ \DeclareMathSymbol{\mu}{\mathalpha}{letters}{"16}
+ \DeclareMathSymbol{\nu}{\mathalpha}{letters}{"17}
+ \DeclareMathSymbol{\xi}{\mathalpha}{letters}{"18}
+ \DeclareMathSymbol{\pi}{\mathalpha}{letters}{"19}
+ \DeclareMathSymbol{\rho}{\mathalpha}{letters}{"1A}
+ \DeclareMathSymbol{\sigma}{\mathalpha}{letters}{"1B}
+ \DeclareMathSymbol{\tau}{\mathalpha}{letters}{"1C}
+ \DeclareMathSymbol{\upsilon}{\mathalpha}{letters}{"1D}
+ \DeclareMathSymbol{\phi}{\mathalpha}{letters}{"1E}
+ \DeclareMathSymbol{\chi}{\mathalpha}{letters}{"1F}
+ \DeclareMathSymbol{\psi}{\mathalpha}{letters}{"20}
+ \DeclareMathSymbol{\omega}{\mathalpha}{letters}{"21}
+ \DeclareMathSymbol{\varepsilon}{\mathalpha}{letters}{"22}
+ \DeclareMathSymbol{\vartheta}{\mathalpha}{letters}{"23}
+ \DeclareMathSymbol{\varpi}{\mathalpha}{letters}{"24}
+ \DeclareMathSymbol{\varrho}{\mathalpha}{letters}{"25}
+ \DeclareMathSymbol{\varsigma}{\mathalpha}{letters}{"26}
+ \DeclareMathSymbol{\varphi}{\mathalpha}{letters}{"27}
+ \DeclareMathSymbol{\varkappa}{\mathalpha}{letters}{126}% new
+ \DeclareMathSymbol{\varbeta}{\mathalpha}{letters}{176} % new
+ \DeclareMathSymbol{\vardelta}{\mathalpha}{letters}{178}% new
+\else
+% \end{macrocode}
+% With the options \Lopt{compatibleeek}
+% the lc Greek letters are declared as `mathord':
+% \begin{macrocode}
+% \DeclareMathSymbol{\alpha}{\mathord}{letters}{"0B}
+% \DeclareMathSymbol{\beta}{\mathord}{letters}{"0C}
+% \DeclareMathSymbol{\gamma}{\mathord}{letters}{"0D}
+% \DeclareMathSymbol{\delta}{\mathord}{letters}{"0E}
+% \DeclareMathSymbol{\epsilon}{\mathord}{letters}{"0F}
+% \DeclareMathSymbol{\zeta}{\mathord}{letters}{"10}
+% \DeclareMathSymbol{\eta}{\mathord}{letters}{"11}
+% \DeclareMathSymbol{\theta}{\mathord}{letters}{"12}
+% \DeclareMathSymbol{\iota}{\mathord}{letters}{"13}
+% \DeclareMathSymbol{\kappa}{\mathord}{letters}{"14}
+% \DeclareMathSymbol{\lambda}{\mathord}{letters}{"15}
+% \DeclareMathSymbol{\mu}{\mathord}{letters}{"16}
+% \DeclareMathSymbol{\nu}{\mathord}{letters}{"17}
+% \DeclareMathSymbol{\xi}{\mathord}{letters}{"18}
+% \DeclareMathSymbol{\pi}{\mathord}{letters}{"19}
+% \DeclareMathSymbol{\rho}{\mathord}{letters}{"1A}
+% \DeclareMathSymbol{\sigma}{\mathord}{letters}{"1B}
+% \DeclareMathSymbol{\tau}{\mathord}{letters}{"1C}
+% \DeclareMathSymbol{\upsilon}{\mathord}{letters}{"1D}
+% \DeclareMathSymbol{\phi}{\mathord}{letters}{"1E}
+% \DeclareMathSymbol{\chi}{\mathord}{letters}{"1F}
+% \DeclareMathSymbol{\psi}{\mathord}{letters}{"20}
+% \DeclareMathSymbol{\omega}{\mathord}{letters}{"21}
+% \DeclareMathSymbol{\varepsilon}{\mathord}{letters}{"22}
+% \DeclareMathSymbol{\vartheta}{\mathord}{letters}{"23}
+% \DeclareMathSymbol{\varpi}{\mathord}{letters}{"24}
+% \DeclareMathSymbol{\varrho}{\mathord}{letters}{"25}
+% \DeclareMathSymbol{\varsigma}{\mathord}{letters}{"26}
+% \DeclareMathSymbol{\varphi}{\mathord}{letters}{"27}
+ \DeclareMathSymbol{\varkappa}{\mathord}{letters}{126}% new
+ \DeclareMathSymbol{\varbeta}{\mathord}{letters}{176} % new
+ \DeclareMathSymbol{\vardelta}{\mathord}{letters}{178}% new
+\fi
+% \end{macrocode}
+%
+% With ordinary \LaTeX{} uppercase Greek is always upright---why?
+% The options \Lopt{uprightGreek} and \Lopt{slantedGreek} control,
+% how uppercase Greek letters are to appear.
+% This option is provided also with packages such as \Lpack{mathpazo}.
+% Additionally, |\ifmtp@greekalpha| controls whether the uc Greek letters
+% are declared as `mathalpha' or `mathord'.
+%
+% Let's start with \Lopt[slantedGreek]:
+% \begin{macrocode}
+\ifx\Gamma s
+ \let\Gamma\@undefined
+ \DeclareMathSymbol{\Gamma}{\mathalpha}{letters}{"00}
+ \DeclareMathSymbol{\Delta}{\mathalpha}{letters}{"01}
+ \DeclareMathSymbol{\Theta}{\mathalpha}{letters}{"02}
+ \DeclareMathSymbol{\Lambda}{\mathalpha}{letters}{"03}
+ \DeclareMathSymbol{\Xi}{\mathalpha}{letters}{"04}
+ \DeclareMathSymbol{\Pi}{\mathalpha}{letters}{"05}
+ \DeclareMathSymbol{\Sigma}{\mathalpha}{letters}{"06}
+ \DeclareMathSymbol{\Upsilon}{\mathalpha}{letters}{"07}
+ \DeclareMathSymbol{\Phi}{\mathalpha}{letters}{"08}
+ \DeclareMathSymbol{\Psi}{\mathalpha}{letters}{"09}
+ \DeclareMathSymbol{\Omega}{\mathalpha}{letters}{"0A}
+% \end{macrocode}
+% The \Lopt{[uprightGreek]} variant, which is the default:
+% \begin{macrocode}
+\else
+ \let\Gamma\@undefined
+ \DeclareMathSymbol{\Gamma}{\mathalpha}{letters}{"80}
+ \DeclareMathSymbol{\Delta}{\mathalpha}{letters}{"81}
+ \DeclareMathSymbol{\Theta}{\mathalpha}{letters}{"82}
+ \DeclareMathSymbol{\Lambda}{\mathalpha}{letters}{"83}
+ \DeclareMathSymbol{\Xi}{\mathalpha}{letters}{"84}
+ \DeclareMathSymbol{\Pi}{\mathalpha}{letters}{"85}
+ \DeclareMathSymbol{\Sigma}{\mathalpha}{letters}{"86}
+ \DeclareMathSymbol{\Upsilon}{\mathalpha}{letters}{"87}
+ \DeclareMathSymbol{\Phi}{\mathalpha}{letters}{"88}
+ \DeclareMathSymbol{\Psi}{\mathalpha}{letters}{"89}
+ \DeclareMathSymbol{\Omega}{\mathalpha}{letters}{"7F}
+\fi
+% \end{macrocode}
+%
+% The following Greek letters are always upright.
+% \begin{macrocode}
+ \DeclareMathSymbol{\upGamma}{\mathord}{letters}{"80}
+ \DeclareMathSymbol{\upDelta}{\mathord}{letters}{"81}
+ \DeclareMathSymbol{\upTheta}{\mathord}{letters}{"82}
+ \DeclareMathSymbol{\upLambda}{\mathord}{letters}{"83}
+ \DeclareMathSymbol{\upXi}{\mathord}{letters}{"84}
+ \DeclareMathSymbol{\upPi}{\mathord}{letters}{"85}
+ \DeclareMathSymbol{\upSigma}{\mathord}{letters}{"86}
+ \DeclareMathSymbol{\upUpsilon}{\mathord}{letters}{"87}
+ \DeclareMathSymbol{\upPhi}{\mathord}{letters}{"88}
+ \DeclareMathSymbol{\upPsi}{\mathord}{letters}{"89}
+ \DeclareMathSymbol{\upOmega}{\mathord}{letters}{"7F}
+ \DeclareMathSymbol{\upalpha}{\mathord}{letters}{"92}
+ \DeclareMathSymbol{\upbeta}{\mathord}{letters}{"93}
+ \DeclareMathSymbol{\upgamma}{\mathord}{letters}{"94}
+ \DeclareMathSymbol{\updelta}{\mathord}{letters}{"95}
+ \DeclareMathSymbol{\upepsilon}{\mathord}{letters}{"96}
+ \DeclareMathSymbol{\upzeta}{\mathord}{letters}{"97}
+ \DeclareMathSymbol{\upeta}{\mathord}{letters}{"98}
+ \DeclareMathSymbol{\uptheta}{\mathord}{letters}{"99}
+ \DeclareMathSymbol{\upiota}{\mathord}{letters}{"9A}
+ \DeclareMathSymbol{\upkappa}{\mathord}{letters}{"9B}
+ \DeclareMathSymbol{\uplambda}{\mathord}{letters}{"9C}
+ \DeclareMathSymbol{\upmu}{\mathord}{letters}{"9D}
+ \DeclareMathSymbol{\upnu}{\mathord}{letters}{"9E}
+ \DeclareMathSymbol{\upxi}{\mathord}{letters}{"9F}
+ \DeclareMathSymbol{\uppi}{\mathord}{letters}{160}
+ \DeclareMathSymbol{\uprho}{\mathord}{letters}{161}
+ \DeclareMathSymbol{\upsigma}{\mathord}{letters}{162}
+ \DeclareMathSymbol{\uptau}{\mathord}{letters}{163}
+ \DeclareMathSymbol{\upupsilon}{\mathord}{letters}{164}
+ \DeclareMathSymbol{\upphi}{\mathord}{letters}{165}
+ \DeclareMathSymbol{\upchi}{\mathord}{letters}{166}
+ \DeclareMathSymbol{\uppsi}{\mathord}{letters}{167}
+ \DeclareMathSymbol{\upomega}{\mathord}{letters}{168}
+ \DeclareMathSymbol{\upvarepsilon}{\mathord}{letters}{169}
+ \DeclareMathSymbol{\upvartheta}{\mathord}{letters}{170}
+ \DeclareMathSymbol{\upvarpi}{\mathord}{letters}{171}
+ \DeclareMathSymbol{\upvarrho}{\mathord}{letters}{172}
+ \DeclareMathSymbol{\upvarsigma}{\mathord}{letters}{173}
+ \DeclareMathSymbol{\upvarphi}{\mathord}{letters}{174}
+ \DeclareMathSymbol{\upvarkappa}{\mathord}{letters}{175}
+ \DeclareMathSymbol{\upvarbeta}{\mathord}{letters}{177}
+ \DeclareMathSymbol{\upvardelta}{\mathord}{letters}{179}
+% \end{macrocode}
+%
+% We continue with standard symbols:
+% \begin{macrocode}
+% \DeclareMathSymbol{\aleph}{\mathord}{symbols}{"40}
+% \DeclareMathSymbol{\imath}{\mathord}{letters}{"7B}
+% \DeclareMathSymbol{\jmath}{\mathord}{letters}{"7C}
+% \DeclareMathSymbol{\ell}{\mathord}{letters}{"60}
+% \DeclareMathSymbol{\wp}{\mathord}{letters}{"7D}
+% \DeclareMathSymbol{\Re}{\mathord}{symbols}{"3C}
+% \DeclareMathSymbol{\Im}{\mathord}{symbols}{"3D}
+% \DeclareMathSymbol{\partial}{\mathord}{letters}{"40}
+% \DeclareMathSymbol{\infty}{\mathord}{symbols}{"31}
+% \DeclareMathSymbol{\prime}{\mathord}{symbols}{"30}
+% \DeclareMathSymbol{\emptyset}{\mathord}{symbols}{"3B}
+% \DeclareMathSymbol{\nabla}{\mathord}{symbols}{"72}
+% \def\surd{{\mathchar"1270}}
+% \DeclareMathSymbol{\top}{\mathord}{symbols}{"3E}
+% \DeclareMathSymbol{\bot}{\mathord}{symbols}{"3F}
+% \DeclareMathSymbol{\triangle}{\mathord}{symbols}{"34}
+% \DeclareMathSymbol{\forall}{\mathord}{symbols}{"38}
+% \DeclareMathSymbol{\exists}{\mathord}{symbols}{"39}
+% \DeclareMathSymbol{\neg}{\mathord}{symbols}{"3A}
+% \let\lnot=\neg
+% \DeclareMathSymbol{\flat}{\mathord}{letters}{"5B}
+% \DeclareMathSymbol{\natural}{\mathord}{letters}{"5C}
+% \DeclareMathSymbol{\sharp}{\mathord}{letters}{"5D}
+% \DeclareMathSymbol{\clubsuit}{\mathord}{symbols}{"7C}
+% \DeclareMathSymbol{\diamondsuit}{\mathord}{symbols}{"7D}
+% \DeclareMathSymbol{\heartsuit}{\mathord}{symbols}{"7E}
+% \DeclareMathSymbol{\spadesuit}{\mathord}{symbols}{"7F}
+% \DeclareMathSymbol{\coprod}{\mathop}{largesymbols}{"60}
+% \DeclareMathSymbol{\bigvee}{\mathop}{largesymbols}{"57}
+% \DeclareMathSymbol{\bigwedge}{\mathop}{largesymbols}{"56}
+% \DeclareMathSymbol{\biguplus}{\mathop}{largesymbols}{"55}
+% \DeclareMathSymbol{\bigcap}{\mathop}{largesymbols}{"54}
+% \DeclareMathSymbol{\bigcup}{\mathop}{largesymbols}{"53}
+% \DeclareMathSymbol{\intop}{\mathop}{largesymbols}{"52}
+% \def\int{\intop\nolimits}
+% \DeclareMathSymbol{\prod}{\mathop}{largesymbols}{"51}
+% \DeclareMathSymbol{\sum}{\mathop}{largesymbols}{"50}
+% \DeclareMathSymbol{\bigotimes}{\mathop}{largesymbols}{"4E}
+% \DeclareMathSymbol{\bigoplus}{\mathop}{largesymbols}{"4C}
+% \DeclareMathSymbol{\bigodot}{\mathop}{largesymbols}{"4A}
+% \DeclareMathSymbol{\ointop}{\mathop}{largesymbols}{"48}
+% \def\oint{\ointop\nolimits}
+% \DeclareMathSymbol{\bigsqcup}{\mathop}{largesymbols}{"46}
+% \DeclareMathSymbol{\smallint}{\mathop}{symbols}{"73}
+\DeclareMathSymbol{\triangleleft}{\mathbin}{symbols}{"47}
+\DeclareMathSymbol{\triangleright}{\mathbin}{symbols}{"46}
+% \DeclareMathSymbol{\bigtriangleup}{\mathbin}{symbols}{"34}
+% \DeclareMathSymbol{\bigtriangledown}{\mathbin}{symbols}{"35}
+% \DeclareMathSymbol{\wedge}{\mathbin}{symbols}{"5E}
+% \let\land=\wedge
+% \DeclareMathSymbol{\vee}{\mathbin}{symbols}{"5F}
+% \let\lor=\vee
+% \DeclareMathSymbol{\cap}{\mathbin}{symbols}{"5C}
+% \DeclareMathSymbol{\cup}{\mathbin}{symbols}{"5B}
+\DeclareMathSymbol{\ddagger}{\mathbin}{letters}{"8F}
+\DeclareMathSymbol{\dagger}{\mathbin}{letters}{"8E}
+% \DeclareMathSymbol{\sqcap}{\mathbin}{symbols}{"75}
+% \DeclareMathSymbol{\sqcup}{\mathbin}{symbols}{"74}
+% \DeclareMathSymbol{\uplus}{\mathbin}{symbols}{"5D}
+% \DeclareMathSymbol{\amalg}{\mathbin}{symbols}{"71}
+% \DeclareMathSymbol{\diamond}{\mathbin}{symbols}{"05}
+% \DeclareMathSymbol{\bullet}{\mathbin}{symbols}{"0F}
+% \DeclareMathSymbol{\wr}{\mathbin}{symbols}{"6F}
+% \DeclareMathSymbol{\div}{\mathbin}{symbols}{"04}
+% \DeclareMathSymbol{\odot}{\mathbin}{symbols}{"0C}
+% \DeclareMathSymbol{\oslash}{\mathbin}{symbols}{"0B}
+% \DeclareMathSymbol{\otimes}{\mathbin}{symbols}{"0A}
+% \DeclareMathSymbol{\ominus}{\mathbin}{symbols}{"09}
+% \DeclareMathSymbol{\oplus}{\mathbin}{symbols}{"08}
+% \DeclareMathSymbol{\mp}{\mathbin}{symbols}{"07}
+% \DeclareMathSymbol{\pm}{\mathbin}{symbols}{"06}
+% \DeclareMathSymbol{\circ}{\mathbin}{symbols}{"0E}
+% \DeclareMathSymbol{\bigcirc}{\mathbin}{symbols}{"0D}
+% \DeclareMathSymbol{\setminus}{\mathbin}{symbols}{"6E}
+% \DeclareMathSymbol{\cdot}{\mathbin}{symbols}{"01}
+% \DeclareMathSymbol{\ast}{\mathbin}{symbols}{"03}
+% \DeclareMathSymbol{\times}{\mathbin}{symbols}{"02}
+% \DeclareMathSymbol{\star}{\mathbin}{letters}{"3F}
+% \DeclareMathSymbol{\propto}{\mathrel}{symbols}{"2F}
+% \DeclareMathSymbol{\sqsubseteq}{\mathrel}{symbols}{"76}
+% \DeclareMathSymbol{\sqsupseteq}{\mathrel}{symbols}{"77}
+% \DeclareMathSymbol{\parallel}{\mathrel}{symbols}{"6B}
+% \DeclareMathSymbol{\mid}{\mathrel}{symbols}{"6A}
+% \DeclareMathSymbol{\dashv}{\mathrel}{symbols}{"61}
+% \DeclareMathSymbol{\vdash}{\mathrel}{symbols}{"60}
+% \DeclareMathSymbol{\nearrow}{\mathrel}{symbols}{"25}
+% \DeclareMathSymbol{\searrow}{\mathrel}{symbols}{"26}
+% \DeclareMathSymbol{\nwarrow}{\mathrel}{symbols}{"2D}
+% \DeclareMathSymbol{\swarrow}{\mathrel}{symbols}{"2E}
+% \DeclareMathSymbol{\Leftrightarrow}{\mathrel}{symbols}{"2C}
+% \DeclareMathSymbol{\Leftarrow}{\mathrel}{symbols}{"28}
+% \DeclareMathSymbol{\Rightarrow}{\mathrel}{symbols}{"29}
+% \def\neq{\not=} \let\ne=\neq
+% \DeclareMathSymbol{\leq}{\mathrel}{symbols}{"14}
+% \let\le=\leq
+% \DeclareMathSymbol{\geq}{\mathrel}{symbols}{"15}
+% \let\ge=\geq
+% \DeclareMathSymbol{\succ}{\mathrel}{symbols}{"1F}
+% \DeclareMathSymbol{\prec}{\mathrel}{symbols}{"1E}
+% \DeclareMathSymbol{\approx}{\mathrel}{symbols}{"19}
+% \DeclareMathSymbol{\succeq}{\mathrel}{symbols}{"17}
+% \DeclareMathSymbol{\preceq}{\mathrel}{symbols}{"16}
+% \DeclareMathSymbol{\supset}{\mathrel}{symbols}{"1B}
+% \DeclareMathSymbol{\subset}{\mathrel}{symbols}{"1A}
+% \DeclareMathSymbol{\supseteq}{\mathrel}{symbols}{"13}
+% \DeclareMathSymbol{\subseteq}{\mathrel}{symbols}{"12}
+% \DeclareMathSymbol{\in}{\mathrel}{symbols}{"32}
+% \DeclareMathSymbol{\ni}{\mathrel}{symbols}{"33}
+% \let\owns=\ni
+% \DeclareMathSymbol{\gg}{\mathrel}{symbols}{"1D}
+% \DeclareMathSymbol{\ll}{\mathrel}{symbols}{"1C}
+% \DeclareMathSymbol{\not}{\mathrel}{symbols}{"36}
+% \DeclareMathSymbol{\leftrightarrow}{\mathrel}{symbols}{"24}
+% \DeclareMathSymbol{\leftarrow}{\mathrel}{symbols}{"20}
+% \let\gets=\leftarrow
+% \DeclareMathSymbol{\rightarrow}{\mathrel}{symbols}{"21}
+% \let\to=\rightarrow
+% \DeclareMathSymbol{\mapstochar}{\mathrel}{symbols}{"37}
+% \DeclareMathSymbol{\sim}{\mathrel}{symbols}{"18}
+% \DeclareMathSymbol{\simeq}{\mathrel}{symbols}{"27}
+% \DeclareMathSymbol{\perp}{\mathrel}{symbols}{"3F}
+% \DeclareMathSymbol{\equiv}{\mathrel}{symbols}{"11}
+% \DeclareMathSymbol{\asymp}{\mathrel}{symbols}{"10}
+% \DeclareMathSymbol{\smile}{\mathrel}{letters}{"5E}
+% \DeclareMathSymbol{\frown}{\mathrel}{letters}{"5F}
+% \DeclareMathSymbol{\leftharpoonup}{\mathrel}{letters}{"28}
+% \DeclareMathSymbol{\leftharpoondown}{\mathrel}{letters}{"29}
+% \DeclareMathSymbol{\rightharpoonup}{\mathrel}{letters}{"2A}
+% \DeclareMathSymbol{\rightharpoondown}{\mathrel}{letters}{"2B}
+% \def\doteq{\buildrel\textstyle.\over=}
+% \def\joinrel{\mathrel{\mkern-3mu}}
+% \def\relbar{\mathrel{\smash-}}
+\let\Relbar\@undefined
+\DeclareMathSymbol{\Relbar}{\mathrel}{symbols}{"48}
+% \DeclareMathSymbol{\lhook}{\mathrel}{letters}{"2C}
+% \def\hookrightarrow{\lhook\joinrel\rightarrow}
+% \DeclareMathSymbol{\rhook}{\mathrel}{letters}{"2D}
+% \def\hookleftarrow{\leftarrow\joinrel\rhook}
+% \def\bowtie{\mathrel\triangleright\joinrel\mathrel\triangleleft}
+% \def\models{\mathrel{|}\joinrel\Relbar}
+% \def\Longrightarrow{\Relbar\joinrel\Rightarrow}
+% \DeclareRobustCommand\longrightarrow
+% {\relbar\joinrel\rightarrow}
+% \DeclareRobustCommand\longleftarrow
+% {\leftarrow\joinrel\relbar}
+% \def\Longleftarrow{\Leftarrow\joinrel\Relbar}
+% \def\longmapsto{\mapstochar\longrightarrow}
+% \def\longleftrightarrow{\leftarrow\joinrel\rightarrow}
+% \def\Longleftrightarrow{\Leftarrow\joinrel\Rightarrow}
+% \def\iff{\;\Longleftrightarrow\;}
+\DeclareMathSymbol{\ldotp}{\mathpunct}{letters}{"3A}
+% \DeclareMathSymbol{\cdotp}{\mathpunct}{symbols}{"01}
+\let\colon\@undefined % for amsmath!
+\DeclareMathSymbol{\colon}{\mathpunct}{symbols}{"57}
+% \def\cdots{\mathinner{\cdotp\cdotp\cdotp}}
+% \end{macrocode}
+% Improved definitions of the commands \cmd{\vdots} and
+% \cmd{\ddots} are adapted from \Lpack{mathtime}.
+% They take their dots always from the math font, rather than
+% from a text font. If the package \Lpack{mathdots} was
+% loaded before, we skip the redefinitions, since that package
+% provides a much more comprehensive solution.
+% \begin{macrocode}
+\@ifpackageloaded{mathdots}{}{%
+ \newcommand\hb@xmdot{\hbox{$\m@th.$}}
+ \def\vdots{\vbox{\baselineskip4\p@ \lineskiplimit\z@
+ \kern6\p@\hb@xmdot\hb@xmdot\hb@xmdot}}
+ \def\ddots{\mathinner{\mkern1mu\raise7\p@\vbox{\kern7\p@
+ \hb@xmdot}\mkern2mu
+ \raise4\p@\hb@xmdot\mkern2mu\raise\p@\hb@xmdot\mkern1mu}}
+}
+% \end{macrocode}
+% We make all accents |\mathord|; as they are placed in strange
+% positions it is really not feasible to support changing them.
+% \begin{macrocode}
+\DeclareMathAccent{\vec}{\mathord}{symbols}{69}
+\DeclareMathAccent{\grave}{\mathord}{symbols}{74}
+\DeclareMathAccent{\acute}{\mathord}{symbols}{75}
+\DeclareMathAccent{\check}{\mathord}{symbols}{76}
+\DeclareMathAccent{\breve}{\mathord}{symbols}{77}
+\DeclareMathAccent{\bar}{\mathord}{symbols}{78}
+\DeclareMathAccent{\hat}{\mathord}{symbols}{79}
+\DeclareMathAccent{\dot}{\mathord}{symbols}{80}
+\DeclareMathAccent{\tilde}{\mathord}{symbols}{81}
+\DeclareMathAccent{\ddot}{\mathord}{symbols}{82}
+\DeclareMathAccent{\mathring}{\mathord}{symbols}{86}
+% \end{macrocode}
+% The wide math accents will later be defined as macros:
+% \begin{macrocode}
+% \DeclareMathAccent{\widetilde}{\mathord}{largesymbols}{"65}
+% \DeclareMathAccent{\widehat}{\mathord}{largesymbols}{"62}
+% \end{macrocode}
+% \begin{macrocode}
+% \DeclareMathRadical{\sqrtsign}{symbols}{"70}{largesymbols}{"70}
+% \def\overrightarrow#1{\vbox{\m@th\ialign{##\crcr
+% \rightarrowfill\crcr\noalign{\kern-\p@\nointerlineskip}
+% $\hfil\displaystyle{#1}\hfil$\crcr}}}
+% \def\overleftarrow#1{\vbox{\m@th\ialign{##\crcr
+% \leftarrowfill\crcr\noalign{\kern-\p@\nointerlineskip}%
+% $\hfil\displaystyle{#1}\hfil$\crcr}}}
+% \def\overbrace#1{\mathop{\vbox{\m@th\ialign{##\crcr\noalign{\kern3\p@}%
+% \downbracefill\crcr\noalign{\kern3\p@\nointerlineskip}%
+% $\hfil\displaystyle{#1}\hfil$\crcr}}}\limits}
+% \def\underbrace#1{\mathop{\vtop{\m@th\ialign{##\crcr
+% $\hfil\displaystyle{#1}\hfil$\crcr
+% \noalign{\kern3\p@\nointerlineskip}%
+% \upbracefill\crcr\noalign{\kern3\p@}}}}\limits}
+% \def\skew#1#2#3{{\muskip\z@#1mu\divide\muskip\z@\tw@ \mkern\muskip\z@
+% #2{\mkern-\muskip\z@{#3}\mkern\muskip\z@}\mkern-\muskip\z@}{}}
+% \def\rightarrowfill{$\m@th\smash-\mkern-7mu%
+% \cleaders\hbox{$\mkern-2mu\smash-\mkern-2mu$}\hfill
+% \mkern-7mu\mathord\rightarrow$}
+% \def\leftarrowfill{$\m@th\mathord\leftarrow\mkern-7mu%
+% \cleaders\hbox{$\mkern-2mu\smash-\mkern-2mu$}\hfill
+% \mkern-7mu\smash-$}
+% \end{macrocode}
+% \begin{macrocode}
+\DeclareMathSymbol{\braceld}{\mathord}{largesymbols}{"82}
+\DeclareMathSymbol{\bracerd}{\mathord}{largesymbols}{"83}
+\DeclareMathSymbol{\bracelu}{\mathord}{largesymbols}{"84}
+\DeclareMathSymbol{\braceru}{\mathord}{largesymbols}{"85}
+% \def\downbracefill{$\m@th \setbox\z@\hbox{$\braceld$}%
+% \braceld\leaders\vrule \@height\ht\z@ \@depth\z@\hfill\braceru
+% \bracelu\leaders\vrule \@height\ht\z@ \@depth\z@\hfill\bracerd$}
+% \def\upbracefill{$\m@th \setbox\z@\hbox{$\braceld$}%
+% \bracelu\leaders\vrule \@height\ht\z@ \@depth\z@\hfill\bracerd
+% \braceld\leaders\vrule \@height\ht\z@ \@depth\z@\hfill\braceru$}
+% \DeclareMathDelimiter{\lmoustache} % top from (, bottom from )
+% {\mathopen}{largesymbols}{"7A}{largesymbols}{"40}
+% \DeclareMathDelimiter{\rmoustache} % top from ), bottom from (
+% {\mathclose}{largesymbols}{"7B}{largesymbols}{"41}
+% \DeclareMathDelimiter{\arrowvert} % arrow without arrowheads
+% {\mathord}{symbols}{"6A}{largesymbols}{"3C}
+% \DeclareMathDelimiter{\Arrowvert} % double arrow without arrowheads
+% {\mathord}{symbols}{"6B}{largesymbols}{"3D}
+% \DeclareMathDelimiter{\Vert}
+% {\mathord}{symbols}{"6B}{largesymbols}{"0D}
+% \let\|=\Vert
+% \DeclareMathDelimiter{\vert}
+% {\mathord}{symbols}{"6A}{largesymbols}{"0C}
+% \DeclareMathDelimiter{\uparrow}
+% {\mathrel}{symbols}{"22}{largesymbols}{"78}
+% \DeclareMathDelimiter{\downarrow}
+% {\mathrel}{symbols}{"23}{largesymbols}{"79}
+% \DeclareMathDelimiter{\updownarrow}
+% {\mathrel}{symbols}{"6C}{largesymbols}{"3F}
+% \DeclareMathDelimiter{\Uparrow}
+% {\mathrel}{symbols}{"2A}{largesymbols}{"7E}
+% \DeclareMathDelimiter{\Downarrow}
+% {\mathrel}{symbols}{"2B}{largesymbols}{"7F}
+% \DeclareMathDelimiter{\Updownarrow}
+% {\mathrel}{symbols}{"6D}{largesymbols}{"77}
+% \DeclareMathDelimiter{\backslash} % for double coset G\backslash H
+% {\mathord}{symbols}{"6E}{largesymbols}{"0F}
+% \DeclareMathDelimiter{\rangle}
+% {\mathclose}{symbols}{"69}{largesymbols}{"0B}
+% \DeclareMathDelimiter{\langle}
+% {\mathopen}{symbols}{"68}{largesymbols}{"0A}
+% \DeclareMathDelimiter{\rbrace}
+% {\mathclose}{symbols}{"67}{largesymbols}{"09}
+% \DeclareMathDelimiter{\lbrace}
+% {\mathopen}{symbols}{"66}{largesymbols}{"08}
+% \DeclareMathDelimiter{\rceil}
+% {\mathclose}{symbols}{"65}{largesymbols}{"07}
+% \DeclareMathDelimiter{\lceil}
+% {\mathopen}{symbols}{"64}{largesymbols}{"06}
+% \DeclareMathDelimiter{\rfloor}
+% {\mathclose}{symbols}{"63}{largesymbols}{"05}
+% \DeclareMathDelimiter{\lfloor}
+% {\mathopen}{symbols}{"62}{largesymbols}{"04}
+% \DeclareMathDelimiter{\lgroup} % extensible ( with sharper tips
+% {\mathopen}{largesymbols}{"3A}{largesymbols}{"3A}
+% \DeclareMathDelimiter{\rgroup} % extensible ) with sharper tips
+% {\mathclose}{largesymbols}{"3B}{largesymbols}{"3B}
+% \DeclareMathDelimiter{\bracevert} % the vertical bar that extends braces
+% {\mathord}{largesymbols}{"3E}{largesymbols}{"3E}
+\DeclareMathSymbol{\mathparagraph}{\mathord}{letters}{"91}
+\DeclareMathSymbol{\mathsection}{\mathord}{letters}{"90}
+% \end{macrocode}
+%
+% The commands to change between the three variants of braces provided:
+% \begin{macrocode}
+\def\curlybraces{\def\lbrace{\delimiter"4266308 }\let\{=\lbrace
+ \def\rbrace{\delimiter"5267309 }\let\}=\rbrace}
+\def\straightbraces{\def\lbrace{\delimiter"42B93AE }\let\{=\lbrace
+ \def\rbrace{\delimiter"52BA3AF }\let\}=\rbrace}
+\def\morphedbraces{\def\lbrace{\delimiter"42663B6 }\let\{=\lbrace
+ \def\rbrace{\delimiter"52673B7 }\let\}=\rbrace}
+% \end{macrocode}
+% The obsolete macros \cmd{\lcbrace} and \cmd{\rcbrace} should always
+% have the same meaning, regardless of the option. (Note that |\lbrace|
+% and |\rbrace| already have the `curly' definition by default):
+% \begin{macrocode}
+\let\lcbrace=\lbrace\let\rcbrace=\rbrace
+% \end{macrocode}
+% According to the related option, the matching definition is executed:
+% \begin{macrocode}
+\ifx\mtp@br c \curlybraces \fi
+\ifx\mtp@br s \straightbraces \fi
+\ifx\mtp@br m \morphedbraces \fi
+% \end{macrocode}
+%
+% \subsubsection{Big operators}
+% These exist in both upright and slanted form:
+% \begin{macrocode}
+\DeclareMathSymbol{\slsumop}{\mathop}{largesymbols}{160}
+\DeclareMathSymbol{\slprodop}{\mathop}{largesymbols}{162}
+\DeclareMathSymbol{\slcoprodop}{\mathop}{largesymbols}{164}
+\DeclareMathSymbol{\upsumop}{\mathop}{largesymbols}{"50}
+\DeclareMathSymbol{\upprodop}{\mathop}{largesymbols}{"51}
+\DeclareMathSymbol{\upcoprodop}{\mathop}{largesymbols}{"60}
+% \end{macrocode}
+% The actual definitions of \cmd{\sum}, \cmd{\prod} and \cmd{\coprod}
+% are deferred until |\begin{doument}|, wrt/ \Lpack{amsmath}; we just
+% provide a number of empty definitions right now:
+% \begin{macrocode}
+\let\slsum\empty
+\let\slprod\empty
+\let\slcoprod\empty
+\let\upsum\empty
+\let\upprod\empty
+\let\upcoprod\empty
+% \end{macrocode}
+%
+% \subsubsection{New symbols and accents}
+% Ordinary symbols:
+% \begin{macrocode}
+\DeclareMathSymbol{\openclubsuit}{\mathord}{symbols}{"80}
+\DeclareMathSymbol{\shadedclubsuit}{\mathord}{symbols}{"81}
+\DeclareMathSymbol{\openspadesuit}{\mathord}{symbols}{"82}
+\DeclareMathSymbol{\shadedspadesuit}{\mathord}{symbols}{"83}
+\DeclareMathSymbol{\hslash}{\mathord}{symbols}{175}
+\DeclareMathSymbol{\digamma}{\mathord}{symbols}{177}
+\DeclareMathSymbol{\dbar}{\mathord}{letters}{181}
+\DeclareMathSymbol{\updbar}{\mathord}{letters}{182}
+% \end{macrocode}
+% Binary operators and relations:
+% \begin{macrocode}
+\DeclareMathSymbol{\comp}{\mathbin}{symbols}{66}
+\DeclareMathSymbol{\setdif}{\mathbin}{symbols}{88}
+\DeclareMathSymbol{\cupprod}{\mathbin}{symbols}{89}
+\DeclareMathSymbol{\capprod}{\mathbin}{symbols}{90}
+\DeclareMathSymbol{\simarrow}{\mathrel}{symbols}{176}
+\DeclareMathSymbol{\varland}{\mathbin}{symbols}{178}
+\DeclareMathSymbol{\contraction}{\mathbin}{symbols}{179}
+\DeclareMathSymbol{\coloneq}{\mathrel}{symbols}{180}
+\DeclareMathSymbol{\eqcolon}{\mathrel}{symbols}{181}
+\DeclareMathSymbol{\hateq}{\mathrel}{symbols}{182}
+\DeclareMathSymbol{\circdashbullet}{\mathrel}{symbols}{183}
+\DeclareMathSymbol{\bulletdashcirc}{\mathrel}{symbols}{184}
+% \end{macrocode}
+% Large operators:
+% \begin{macrocode}
+\DeclareMathSymbol{\bigcupprod}{\mathop}{largesymbols}{"8E}
+\DeclareMathSymbol{\bigcapprod}{\mathop}{largesymbols}{"90}
+\DeclareMathSymbol{\bigvarland}{\mathop}{largesymbols}{166}
+\DeclareMathSymbol{\bigast}{\mathop}{largesymbols}{168}
+% \end{macrocode}
+% \mtpro has triple and quadruple dot accents and raised dot accents.
+% The definitions of \cmd{\dddot} and \cmd{\ddddot} are deferred until
+% |\begin{document}|; otherwise they would break \Lpack{amsmath}, which
+% tries to define them using |\newcommand|.
+% \begin{macrocode}
+% \DeclareMathAccent{\dddot}{\mathord}{symbols}{171}
+% \DeclareMathAccent{\ddddot}{\mathord}{symbols}{172}
+\DeclareMathAccent{\dotup}{\mathord}{symbols}{"54}
+\DeclareMathAccent{\ddotup}{\mathord}{symbols}{"55}
+\DeclareMathAccent{\dddotup}{\mathord}{symbols}{173}
+\DeclareMathAccent{\ddddotup}{\mathord}{symbols}{174}
+% \end{macrocode}
+% \begin{macrocode}
+\let\oacc\mathring
+\DeclareMathAccent{\what} {\mathord}{symbols}{"79}
+\DeclareMathAccent{\wtilde}{\mathord}{symbols}{"7A}
+\DeclareMathAccent{\wcheck}{\mathord}{symbols}{"7B}
+\DeclareMathAccent{\wbar} {\mathord}{symbols}{"78}
+% \end{macrocode}
+% \begin{macrocode}
+\DeclareMathAccent{\wwhat} {\mathord}{largesymbols}{"80}
+\DeclareMathAccent{\wwtilde}{\mathord}{largesymbols}{"81}
+\DeclareMathAccent{\wwcheck}{\mathord}{largesymbols}{"7D}
+\DeclareMathAccent{\wwbar} {\mathord}{symbols} {"53}
+% \end{macrocode}
+% A number of symbols that used to be built from pieces
+% are now available as ready-made characters:
+% \begin{macrocode}
+\DeclareMathSymbol{\hbar} {\mathord}{symbols}{"84}
+\let\notin\@undefined
+\DeclareMathSymbol{\notin} {\mathrel}{symbols}{"85}
+\let\angle\@undefined
+\DeclareMathSymbol{\angle} {\mathord}{symbols}{"86}
+\let\models\@undefined
+\DeclareMathSymbol{\models}{\mathrel}{symbols}{"88}
+\let\bowtie\@undefined
+\DeclareMathSymbol{\bowtie}{\mathrel}{symbols}{"89}
+\let\cong\@undefined
+\DeclareMathSymbol{\cong} {\mathrel}{symbols}{"8A}
+\let\Longleftrightarrow\@undefined
+\DeclareMathSymbol{\Longleftrightarrow} {\mathrel}{symbols}{"94}
+\let\rightleftharpoons\@undefined
+\DeclareMathSymbol{\rightleftharpoons} {\mathrel}{symbols}{"95}
+\DeclareMathSymbol{\notless} {\mathrel}{symbols}{"96}
+\DeclareMathSymbol{\notleq} {\mathrel}{symbols}{"97}
+\DeclareMathSymbol{\notprec} {\mathrel}{symbols}{"98}
+\DeclareMathSymbol{\notpreceq} {\mathrel}{symbols}{"99}
+\DeclareMathSymbol{\notsubset} {\mathrel}{symbols}{"9A}
+\DeclareMathSymbol{\notsubseteq} {\mathrel}{symbols}{"9B}
+\DeclareMathSymbol{\notsqsubseteq} {\mathrel}{symbols}{"9C}
+\DeclareMathSymbol{\notgr} {\mathrel}{symbols}{"9D}
+\DeclareMathSymbol{\notgeq} {\mathrel}{symbols}{"9E}
+\DeclareMathSymbol{\notsucc} {\mathrel}{symbols}{"9F}
+\DeclareMathSymbol{\notsucceq} {\mathrel}{symbols}{160}
+\DeclareMathSymbol{\notsupset} {\mathrel}{symbols}{161}
+\DeclareMathSymbol{\notsupseteq} {\mathrel}{symbols}{162}
+\DeclareMathSymbol{\notsqsupseteq} {\mathrel}{symbols}{163}
+\let\neq\@undefined
+\DeclareMathSymbol{\neq} {\mathrel}{symbols}{164}
+\let\ne=\neq
+\DeclareMathSymbol{\notequiv} {\mathrel}{symbols}{165}
+\DeclareMathSymbol{\notsim} {\mathrel}{symbols}{166}
+\DeclareMathSymbol{\notsimeq} {\mathrel}{symbols}{167}
+\DeclareMathSymbol{\notapprox} {\mathrel}{symbols}{168}
+\DeclareMathSymbol{\notcong} {\mathrel}{symbols}{169}
+\DeclareMathSymbol{\notasymp} {\mathrel}{symbols}{170}
+% \end{macrocode}
+% Part of the above symbols get alternative names,
+% which follow the naming scheme of the AMS:
+% \begin{macrocode}
+\let\nless=\notless
+\let\nleq=\notleq
+\let\nprec=\notprec
+\let\npreceq=\notpreceq
+\let\nsubset=\notsubset
+\let\nsubseteq=\notsubseteq
+\let\nsqsubseteq=\notsqsubseteq
+\let\ngtr=\notgr
+\let\ngeq=\notgeq
+\let\nsucc=\notsucc
+\let\nsucceq=\notsucceq
+\let\nsupset=\notsupset
+\let\nsupseteq=\notsupseteq
+\let\nsqsupseteq=\notsqsupseteq
+\let\ncong=\notcong
+\let\nasymp=\notasymp
+\let\nequiv=\notequiv
+\let\nsimeq=\notsimeq
+\let\napprox=\notapprox
+% \end{macrocode}
+% Unfortunately, the \Lpack{amsmath} package provides its own
+% definitions of the following symbols. We do not overwrite them,
+% if \Lpack{amslatex} was loaded before \Lpack{mtpro2}.
+% (\Lpack{amsmath} was designed with only the standard
+% CM fonts in mind; this constitutes sometimes a real problem!)
+% \begin{macrocode}
+\@ifpackageloaded{amsmath}{}{%
+ \let\doteq\@undefined
+ \let\hookleftarrow\@undefined
+ \let\hookrightarrow\@undefined
+ \let\longleftarrow\@undefined
+ \let\longrightarrow\@undefined
+ \let\Longleftarrow\@undefined
+ \let\Longrightarrow\@undefined
+ \let\mapsto\@undefined
+ \let\longmapsto\@undefined
+ \let\longleftrightarrow\@undefined
+ \DeclareMathSymbol{\doteq} {\mathrel}{symbols}{"87}
+ \DeclareMathSymbol{\hookleftarrow} {\mathrel}{symbols}{"8B}
+ \DeclareMathSymbol{\hookrightarrow}{\mathrel}{symbols}{"8C}
+ \DeclareMathSymbol{\longleftarrow} {\mathrel}{symbols}{"8D}
+ \DeclareMathSymbol{\longrightarrow}{\mathrel}{symbols}{"8E}
+ \DeclareMathSymbol{\Longleftarrow} {\mathrel}{symbols}{"8F}
+ \DeclareMathSymbol{\Longrightarrow}{\mathrel}{symbols}{"90}
+ \DeclareMathSymbol{\mapsto} {\mathrel}{symbols}{"91}
+ \DeclareMathSymbol{\longmapsto}{\mathrel}{symbols}{"92}
+ \DeclareMathSymbol{\longleftrightarrow} {\mathrel}{symbols}{"93}
+}
+% \end{macrocode}
+% Alternatively, one might think of repeating the AMS-style definitions with our
+% ready-made symbols patched in, if \Lpack{amsmath} is detected.
+%
+% Additional integral signs:
+% \begin{macrocode}
+\DeclareMathSymbol{\iintop}{\mathop}{largesymbols}{"92}
+\DeclareMathSymbol{\iiintop}{\mathop}{largesymbols}{"94}
+\DeclareMathSymbol{\oiintop}{\mathop}{largesymbols}{"96}
+\DeclareMathSymbol{\oiiintop}{\mathop}{largesymbols}{"98}
+\DeclareMathSymbol{\cwointop}{\mathop}{largesymbols}{"9A}
+\DeclareMathSymbol{\awointop}{\mathop}{largesymbols}{"9C}
+\DeclareMathSymbol{\cwintop}{\mathop}{largesymbols}{"9E}
+\DeclareMathSymbol{\barintop}{\mathop}{largesymbols}{170}
+\DeclareMathSymbol{\slashintop}{\mathop}{largesymbols}{172}
+% \end{macrocode}
+% The actual definitins of the user-level macros are deferred until
+% |\begin{document}|. However, we set up a number of empty dummy definitions,
+% for the time being:
+% \begin{macrocode}
+\let\oiint\empty
+\let\oiiint\empty
+\let\cwoint\empty
+\let\awoint\empty
+\let\cwint\empty
+\let\barint\empty
+\let\slashint\empty
+% \end{macrocode}
+%
+% \subsubsection{Compatibility with \Lpack{amsmath}}
+% A large piece of code is deferred until |\begin{document}|:
+% \begin{macrocode}
+\AtBeginDocument{%
+% \end{macrocode}
+% In case \Lpack{amsmath} is loaded, too, we make sure that the appropriate
+% definition of the macro \cmd{\Relbar} is used; we also must make sure that
+% things like |\mathrm{\hat{A}}| don't come out as garbage.
+% \begin{macrocode}
+ \@ifpackageloaded{amsmath}{%
+ \let\Relbar\@undefined
+ \DeclareMathSymbol{\Relbar}{\mathrel}{symbols}{"48}
+ \def\accentclass@{0}
+% \end{macrocode}
+% The appropriate definitions of the big operators depend on whether
+% or not \Lpack{amsmath} is to be used:
+% \begin{macrocode}
+ \def\iint{\DOTSI\iintop\ilimits@}
+ \def\iiint{\DOTSI\iiintop\ilimits@}
+ \def\oiint{\DOTSI\oiintop\ilimits@}
+ \def\oiiint{\DOTSI\oiiintop\ilimits@}
+ \def\cwoint{\DOTSI\cwointop\ilimits@}
+ \def\awoint{\DOTSI\awointop\ilimits@}
+ \def\cwint{\DOTSI\cwintop\ilimits@}
+ \def\barint{\DOTSI\barintop\ilimits@}
+ \def\slashint{\DOTSI\slashintop\ilimits@}
+ \gdef\slsum{\DOTSB\slsumop\slimits@}
+ \gdef\slprod{\DOTSB\slprodop\slimits@}
+ \gdef\slcoprod{\DOTSB\slcoprodop\slimits@}
+ \gdef\upsum{\DOTSB\upsumop\slimits@}
+ \gdef\upprod{\DOTSB\upprodop\slimits@}
+ \gdef\upcoprod{\DOTSB\upcoprodop\slimits@}
+ }{%
+% \end{macrocode}
+% Here come the definitions to be used without \Lpack{amsmath}:
+% \begin{macrocode}
+ \def\iint{\iintop\nolimits}
+ \def\iiint{\iiintop\nolimits}
+ \def\oiint{\oiintop\nolimits}
+ \def\oiiint{\oiiintop\nolimits}
+ \def\cwoint{\cwointop\nolimits}
+ \def\awoint{\awointop\nolimits}
+ \def\cwint{\cwintop\nolimits}
+ \def\barint{\barintop\nolimits}
+ \def\slashint{\slashintop\nolimits}
+ \let\slsum\slsumop\let\slprod\slprodop\let\slcoprod\slcoprodop
+ \let\upsum\upsumop\let\upprod\upprodop\let\upcoprod\upcoprodop
+% \end{macrocode}
+% We are using the `large operators" font at varying size, so we also need to fix
+% the behavior of |\big| \& friends, when \Lpack{amsmath} is not used. The following
+% code was adopted from the \Lpack{exscale} package:
+% \begin{macrocode}
+\newdimen\big@size
+\addto@hook\every@math@size{\setbox\z@\vbox{\hbox{$($}\kern\z@}%
+ \global\big@size 1.2\ht\z@}
+\def\bBigg@#1#2{%
+ {\hbox{$\left#2\vcenter to#1\big@size{}\right.\n@space$}}}
+\def\big{\bBigg@\@ne}
+\def\Big{\bBigg@{1.5}}
+\def\bigg{\bBigg@\tw@}
+\def\Bigg{\bBigg@{2.5}}
+ }%
+% \end{macrocode}
+% Finally, set up the definitions of \cmd{\sum}, \cmd{\prod} and \cmd{\coprod}
+% according to the package options:
+% \begin{macrocode}
+ \ifmtp@slops
+ \let\sum\slsum\let\prod\slprod\let\coprod\slcoprod
+ \else
+ \let\sum\upsum\let\prod\upprod\let\coprod\upcoprod
+ \fi
+% \end{macrocode}
+%
+% \cmd{\dddot} and \cmd{\ddddot}, too, are defined only now
+% with respect to \Lpack{amsmath}:
+% \begin{macrocode}
+ \let\dddot\@undefined\let\ddddot\@undefined
+ \DeclareMathAccent{\dddot}{\mathord}{symbols}{171}
+ \DeclareMathAccent{\ddddot}{\mathord}{symbols}{172}
+% \end{macrocode}
+% \begin{macrocode}
+}
+% \end{macrocode}
+%
+% \subsection{Large delimiters, accents and roots}
+% The below code has been adopted from M.~Spivak's
+% plain~\TeX{} packages \texttt{mtp.tex} and \texttt{mtp2.tex}
+% \smallskip
+%
+% The macros for dealing with the multiple extension fonts.
+% They assume that \verb+\MTEXA@+, \verb+\MTEXE@+, \verb+\MTEXF@+, and \verb+\MTEXG@+ can
+% be used to refer to the four extension fonts that have been loaded.
+% \begin{macrocode}
+\newbox\prePbox@
+\newbox\Pbox@
+\newif\ifPEX@
+\def\PEX@#1{\setbox\Pbox@\vbox{$$\left.\vcenter{\copy\prePbox@}\right)$$}%
+ \setbox\Pbox@\vbox{\unvbox\Pbox@\unskip\unpenalty
+ \setbox\Pbox@\lastbox
+ \setbox\Pbox@\hbox{\unhbox\Pbox@\setbox\Pbox@\lastbox
+ \setbox\Pbox@\hbox{\unhbox\Pbox@\setbox\Pbox@\lastbox
+ \setbox\z@\hbox{#1}%
+ \ifdim\dp\Pbox@>\dp\z@\global\PEX@true\else
+ \global\PEX@false\fi}}}}
+\def\EXtest@#1{\setbox\prePbox@\hbox{$\displaystyle{#1}$}%
+ \PEX@{\MTEXA@\char32}%
+ \ifPEX@
+ {\textfont3=\MTEXE@\PEX@{\MTEXE@\char12}}%
+ \ifPEX@
+ {\textfont3=\MTEXF@\PEX@{\MTEXF@\char12}}%
+ \ifPEX@
+ \def\EXtest@@{\textfont3=\MTEXG@}%
+ \else
+ \def\EXtest@@{\textfont3=\MTEXF@}%
+ \fi
+ \else
+ \def\EXtest@@{\textfont3=\MTEXE@}%
+ \fi
+ \else
+ \def\EXtest@@{\textfont3=\MTEXA@}%
+ \fi}
+% \end{macrocode}
+% \begin{macrocode}
+\def\vc@nt@r#1{\hbox{$\vcenter{\hbox{$\displaystyle{#1}$}}$}}
+\newbox\LRbox@
+\def\LEFTRIGHT@#1#2#3{\setbox\LRbox@\vc@nt@r{#3}%
+ \EXtest@{\vc@nt@r{#3}}%
+ \vcenter{\hbox{\curlybraces\EXtest@@$\displaystyle\left#1\box\LRbox@\right#2$}}}%
+\def\PARENS#1{\LEFTRIGHT@(){#1}}%
+\newif\ifspecdelim@
+\def\specdelim@#1{\ifx#1(\specdelim@true
+ \else\ifx#1)\specdelim@true
+ \else\ifx#1<\specdelim@true
+ \else\ifx#1\langle\specdelim@true
+ \else\ifx#1>\specdelim@true
+ \else\ifx#1\rangle\specdelim@true
+ \else\ifx#1/\specdelim@true
+ \else\ifx#1\backslash\specdelim@true
+ \else\ifx#1\lbrace\specdelim@true
+ \else\ifx#1\rbrace\specdelim@true
+ \else\ifx#1\lcbrace\specdelim@true
+ \else\ifx#1\rcbrace\specdelim@true
+ \else\specdelim@false\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+\def\LEFTRIGHT#1#2#3{%
+ \specdelim@#1%
+ \ifspecdelim@
+ \LEFTRIGHT@#1.{\vc@nt@r{#3}}%
+ \else
+ \left#1
+ \vc@nt@r{#3}%
+ \right.%
+ \fi
+ \kern-2\nulldelimiterspace\mskip-\thinmuskip
+ \specdelim@#2%
+ \ifspecdelim@
+ \LEFTRIGHT@.#2{\vphantom{\vc@nt@r{#3}}}%
+ \else
+ \left.%
+ \vphantom{\vc@nt@r{#3}}%
+ \right#2%
+ \fi}
+\def\vcorrection#1{\vrule width\z@ height#1\relax}
+\newcommand{\ccases}[1]{{%
+ \def\arraystretch{1.2}%
+ \LEFTRIGHT\lbrace.{\,\array{@{}l@{\quad}l@{}}#1\endarray}%
+}}
+% \end{macrocode}
+% Notice the horizontal space which is added after the brace!
+%
+% Wide `hat' accents:
+% \begin{macrocode}
+\newbox\HATbox@
+\def\widehat{\mathpalette\@widehat}
+\def\@widehat#1#2{\setbox\HATbox@\hbox{$#1{#2}$}%
+\setbox0\hbox{\MTEXF@;}%
+\ifdim\wd\HATbox@>\wd0
+\def\HAT@{\textfont3=\MTEXG@}%
+\else
+\setbox0\hbox{\MTEXE@9}%
+\ifdim\wd\HATbox@>\wd0
+\def\HAT@{\textfont3=\MTEXF@}%
+\else
+\setbox0\hbox{\MTEXA@ d}%
+\ifdim\wd\HATbox@>\wd0
+\def\HAT@{\textfont3=\MTEXE@}%
+\else
+\def\HAT@{\textfont3=\MTEXA@}%
+\fi
+\fi
+\fi
+\hbox{\HAT@$\mathaccent"0362 {\box\HATbox@}$}}%
+% \end{macrocode}
+%
+% Wide tilde accents:
+% \begin{macrocode}
+\newbox\TDbox@
+\def\widetilde{\mathpalette\@widetilde}
+\def\@widetilde#1#2{\setbox\TDbox@\hbox{$#1{#2}$}%
+\setbox0\hbox{\MTEXF@ K}%
+\ifdim\wd\TDbox@>\wd0
+\def\TD@{\textfont3=\MTEXG@}%
+\else
+\setbox0\hbox{\MTEXE@ I}%
+\ifdim\wd\TDbox@>\wd0
+\def\TD@{\textfont3=\MTEXF@}%
+\else
+\setbox0\hbox{\MTEXA@ d}%
+\ifdim\wd\TDbox@>\wd0
+\def\TD@{\textfont3=\MTEXE@}%
+\else
+\def\TD@{\textfont3=\MTEXA@}%
+\fi
+\fi
+\fi
+\hbox{\TD@$\mathaccent"0365 {\box\TDbox@}$}}
+% \end{macrocode}
+%
+% Wide `check' accents:
+% \begin{macrocode}
+\newbox\CHbox@
+\def\widecheck{\mathpalette\@widecheck}
+\def\@widecheck#1#2{\setbox\CHbox@\hbox{$#1{#2}$}%
+\setbox0\hbox{\MTEXF@[}%
+\ifdim\wd\CHbox@>\wd0
+\def\CHECK@{\textfont3=\MTEXG@}%
+\else
+\setbox0\hbox{\MTEXE@ Y}%
+\ifdim\wd\CHbox@>\wd0
+\def\CHECK@{\textfont3=\MTEXF@}%
+\else
+\setbox0\hbox{\MTEXA@ z}%
+\ifdim\wd\CHbox@>\wd0
+\def\CHECK@{\textfont3=\MTEXE@}%
+\else
+\def\CHECK@{\textfont3=\MTEXA@}%
+\fi
+\fi
+\fi
+\hbox{\CHECK@$\mathaccent"037A {\box\CHbox@}$}}%
+% \end{macrocode}
+%
+% Lowered hat accents:
+%
+% \begin{macrocode}
+\def\widehatdown#1#2{\setbox\HATbox@\hbox{$\displaystyle{#2}$}%
+ \setbox\z@\hbox{\MTEXF@;}%
+ \ifdim\wd\HATbox@>\wd\z@
+ \def\HAT@{\textfont3=\MTEXG@}%
+ \else
+ \setbox\z@\hbox{\MTEXE@9}%
+ \ifdim\wd\HATbox@>\wd\z@
+ \def\HAT@{\textfont3=\MTEXF@}%
+ \else
+ \setbox\z@\hbox{\MTEXA@ d}%
+ \ifdim\wd\HATbox@>\wd\z@
+ \def\HAT@{\textfont3=\MTEXE@}%
+ \else
+ \def\HAT@{\textfont3=\MTEXA@}%
+ \fi
+ \fi
+ \fi
+ \dimen@\ht\HATbox@\advance\dimen@-#1\relax
+ \ht\HATbox@\dimen@
+ \hbox{\HAT@$\mathaccent"0362 {\box\HATbox@}$}}%
+% \end{macrocode}
+%
+% Lowered tilde accent:
+% \begin{macrocode}
+\def\widetildedown#1#2{\setbox\TDbox@\hbox{$\displaystyle{#2}$}%
+ \setbox\z@\hbox{\MTEXF@ K}%
+ \ifdim\wd\TDbox@>\wd\z@
+ \def\TD@{\textfont3=\MTEXG@}%
+ \else
+ \setbox\z@\hbox{\MTEXE@ I}%
+ \ifdim\wd\TDbox@>\wd\z@
+ \def\TD@{\textfont3=\MTEXF@}%
+ \else
+ \setbox\z@\hbox{\MTEXA@ d}%
+ \ifdim\wd\TDbox@>\wd\z@
+ \def\TD@{\textfont3=\MTEXE@}%
+ \else
+ \def\TD@{\textfont3=\MTEXA@}%
+ \fi
+ \fi
+ \fi
+ \dimen@\ht\TDbox@\advance\dimen@-#1\relax
+ \ht\TDbox@\dimen@
+ \hbox{\TD@$\mathaccent"0365 {\box\TDbox@}$}}
+% \end{macrocode}
+%
+% Lowered check accent:
+% \begin{macrocode}
+\def\widecheckdown#1#2{\setbox\CHbox@\hbox{$\displaystyle{#2}$}%
+ \setbox\z@\hbox{\MTEXF@[}%
+ \ifdim\wd\CHbox@>\wd\z@
+ \def\CHECK@{\textfont3=\MTEXG@}%
+ \else
+ \setbox\z@\hbox{\MTEXE@ Y}%
+ \ifdim\wd\CHbox@>\wd\z@
+ \def\CHECK@{\textfont3=\MTEXF@}%
+ \else
+ \setbox\z@\hbox{\MTEXA@ z}%
+ \ifdim\wd\CHbox@>\wd\z@
+ \def\CHECK@{\textfont3=\MTEXE@}%
+ \else
+ \def\CHECK@{\textfont3=\MTEXA@}%
+ \fi
+ \fi
+ \fi
+ \dimen@\ht\CHbox@\advance\dimen@-#1\relax
+ \ht\CHbox@\dimen@
+ \hbox{\CHECK@$\mathaccent"037A {\box\CHbox@}$}}%
+% \end{macrocode}
+%
+% Wide arcs:
+% The command \cmd{\widearc} will set wide arc math accents.
+% \begin{macrocode}
+\def\arc{\mathaccent"03C3 }
+\def\Arc{\mathaccent"03BE }
+\newbox\ARCbox@
+\def\widearc#1{\setbox\ARCbox@\hbox{$\displaystyle{#1}$}%
+ \setbox\z@\hbox{\MTEXF@\char'267}%
+ \ifdim\wd\ARCbox@>\wd\z@
+ \hbox{\textfont3=\MTEXG@ $\mathaccent"03B1 {\box\ARCbox@}$}%
+ \else
+ \setbox\z@\hbox{\MTEXE@\char'326}%
+ \ifdim\wd\ARCbox@>\wd\z@
+ \hbox{\textfont3=\MTEXF@ $\mathaccent"03B1 {\box\ARCbox@}$}%
+ \else
+ \setbox\z@\hbox{\MTEXA@ \char'302}%
+ \ifdim\wd\ARCbox@>\wd\z@
+ \hbox{\textfont3=\MTEXE@ $\mathaccent"03D0 {\box\ARCbox@}$}%
+ \else
+ \hbox{\textfont3=\MTEXA@ $\mathaccent"03BF {\box\ARCbox@}$}%
+ \fi
+ \fi
+ \fi}
+% \end{macrocode}
+% Large roots:
+% The command \cmd{\SQRT} from the plain \TeX{} package \texttt{mtp.tex}
+% is named \cmd{\SQR@@T} here.
+% \begin{macrocode}
+\newbox\preSbox@
+\newbox\Sbox@
+\newif\ifSQEX@
+\def\SQEX@#1{\setbox\Sbox@\vbox{$$\radical"270370{\copy\preSbox@}$$}%
+\setbox\Sbox@\vbox{\unvbox\Sbox@\unskip\unpenalty
+\setbox\Sbox@\lastbox\setbox\Sbox@\hbox{\unhbox\Sbox@\setbox\Sbox@\lastbox
+\setbox\Sbox@\hbox{\unhbox\Sbox@\setbox\Sbox@\lastbox\setbox\Sbox@\lastbox
+\setbox0\hbox{#1}%
+\ifdim\dp\Sbox@>\dp0\global\SQEX@true\else
+\global\SQEX@false\fi}}}}
+% \end{macrocode}
+% \begin{macrocode}
+\newcount\SQcount@
+\def\SQtest@#1{\setbox\preSbox@\hbox{$\displaystyle{#1}$}%
+\SQEX@{\MTEXA@ s}%
+\ifSQEX@
+{\textfont3=\MTEXE@\SQEX@{\MTEXE@ u}}%
+\ifSQEX@
+{\textfont3=\MTEXF@\SQEX@{\MTEXF@ u}}%
+\ifSQEX@
+\def\SQtest@@{\textfont3=\MTEXG@}\global\SQcount@3
+\else
+\def\SQtest@@{\textfont3=\MTEXF@}\global\SQcount@2
+\fi
+\else
+\def\SQtest@@{\textfont3=\MTEXE@}\global\SQcount@1
+\fi
+\else
+\def\SQtest@@{\textfont3=\MTEXA@}\global\SQcount@0
+\fi}
+\newbox\SQRTbox@
+\def\SQR@@T#1{\setbox\SQRTbox@\hbox{$\displaystyle{#1}$}%
+\SQtest@{#1}%
+\hbox{\SQtest@@$\displaystyle\radical"270370{\box\SQRTbox@}$}}
+% \end{macrocode}
+% The names of the counters \cmd{\leftroot@} and \cmd{\uproot@}
+% and the related commands \cmd{\leftroot} and \cmd{\uproot}
+% had to be changed to uppercase,
+% so as not to clash with the \Lpack{amsmath} package.
+% The syntax differs from \Lpack{amsmath}, anyway.
+% \begin{macrocode}
+\newcount\UPROOT@
+\newcount\LEFTROOT@
+\def\LEFTROOT#1{\relax
+ \ifmmode\LEFTROOT@#1\relax
+ \else\PackageError{mtpro2}
+ {\protect\LEFTROOT\space allowed only in math mode}
+ {Type <return> to proceed; the command will be ignored.}
+ \fi}
+\def\UPROOT#1{\relax
+ \ifmmode\UPROOT@#1\relax
+ \else\PackageError{mtpro2}
+ {\protect\UPROOT\space allowed only in math mode}
+ {Type <return> to proceed; the command will be ignored.}
+ \fi}
+\def\ROOT#1\OF#2{\setbox\rootbox\hbox{$\m@th\scriptscriptstyle{#1}$}%
+\mathpalette\R@@T{#2}}
+\def\R@@T#1#2{\setbox\z@\hbox{$\UPROOT@\z@\LEFTROOT@\z@\m@th#1\SQR@@T{#2}$}%
+\dimen@\ht\z@\advance\dimen@-\dp\z@
+\dimen@ii\dimen@
+\setbox\tw@\hbox{$\m@th#1\mskip\UPROOT@ mu$}\advance\dimen@ii by1.667\wd\tw@
+\setbox\tw@\hbox{$\m@th#1\mskip10mu$}%
+\ifcase\SQcount@\advance\dimen@3\wd\tw@\or\advance\dimen@1.5\wd\tw@\or
+\advance\dimen@\wd\tw@\fi
+\mkern1mu\kern.13\dimen@\mkern-\LEFTROOT@ mu
+\raise.5\dimen@ii\copy\rootbox % was .44
+\mkern-1mu\kern-.13\dimen@\mkern\LEFTROOT@ mu\box\z@\kern-\wd\rootbox
+\LEFTROOT\z@\UPROOT\z@}
+% \end{macrocode}
+% Finally the roots are given a more \LaTeX-like syntax,
+% so that one can say, e.g.,
+% |\SQRT[3]{...} | instead of |\ROOT 3 \OF ... |.
+% \begin{macrocode}
+\DeclareRobustCommand\SQRT{\@ifnextchar[\SQRT@\SQR@@T}
+\def\SQRT@[#1]{\ROOT #1\OF}
+% \end{macrocode}
+%
+%
+% \subsection{Extra-large operators}
+% From Mike Spivak, 2006-01-26.
+%
+% The following tool will be used in several places:\label{spacemacro}
+% \begin{macrocode}
+\def\space@.{\futurelet\space@\relax}
+\space@. %
+% \end{macrocode}
+% There must be a blank after the period, not a newline!
+%
+% |\FNSS@| is a |\futurelet\next| skipping spaces;
+% corresponds to something or other in \LaTeX. (MS)
+% \begin{macrocode}
+\def\FNSS@#1{\let\FNSS@@#1\futurelet\next\FNSS@@@}
+\def\FNSS@@@{\ifx\next\space@\def\FNSS@@@@. {\futurelet\next\FNSS@@@}\else
+\def\FNSS@@@@.{\FNSS@@}\fi\FNSS@@@@.}
+%
+{\catcode`\_=12
+\global\let\sbxii@=_}
+{\catcode`\_=8
+\global\let\sbviii@=_}
+%
+\newcount\limtype@
+% \end{macrocode}
+% 0 when |\limits| is used, 1 when |\nolimits| is used.
+% \begin{macrocode}
+\newcount\xlfont@
+% \end{macrocode}
+% 0 if using |mt2xl|, 1 if using |mt2xxxl|.
+% \begin{macrocode}
+\newcount\xlposition@
+% \end{macrocode}
+% Position of character (or first half of character) on |mt2xl| or |mt2xxxl|.
+% \begin{macrocode}
+\newcount\xlposition@ii
+% \end{macrocode}
+% If non-zero, position of other half of character.
+% \begin{macrocode}
+\newcount\optype@
+% \end{macrocode}
+% 0 for operators needing no italic correction, 1 for others.
+% \begin{macrocode}
+\newcount\x@count
+% \end{macrocode}
+% 0 for |\XL|, 1 for |\XXL|, 2 for |\XXXL|, 3 for |\xl|; used for
+% calculating positioning of limits for operators needing italic correction.
+% The definition of |\xl| is typical of all, except that |\xlposition@ii| is never
+% needed for this size (or for |\XL| size).
+% \begin{macrocode}
+\def\xl{\xlposition@ii\z@\xlfont@\z@\x@count\thr@@\futurelet\next\xl@}
+\def\xl@{%
+% \end{macrocode}
+% First come operators needing no italic correction.
+% \begin{macrocode}
+\optype@\z@
+% \end{macrocode}
+% These all use limits:
+% \begin{macrocode}
+\limtype@\z@
+\ifx\next\bigodot\xlposition@96\else
+\ifx\next\bigoplus\xlposition@97\else
+\ifx\next\bigotimes\xlposition@98\else
+\ifx\next\bigsqcup\xlposition@99\else
+\ifx\next\bigcup\xlposition@100\else
+\ifx\next\bigcap\xlposition@101\else
+\ifx\next\biguplus\xlposition@102\else
+\ifx\next\bigwedge\xlposition@103\else
+\ifx\next\bigvee\xlposition@104\else
+\ifx\next\upsum\xlposition@105\else
+\ifx\next\upprod\xlposition@106\else
+\ifx\next\upcoprod\xlposition@107\else
+\ifx\next\bigcupprod\xlposition@110\else
+\ifx\next\bigcapprod\xlposition@111\else
+\ifx\next\bigvarland\xlposition@122\else
+\ifx\next\bigast\xlposition@123\else
+% \end{macrocode}
+% Then come operators needing italic correction;
+% first come those that usually use limits\dots
+% \begin{macrocode}
+\ifx\next\slsum\optype@\@ne\xlposition@119\else
+\ifx\next\slprod\optype@\@ne\xlposition@120\else
+\ifx\next\slcoprod\optype@\@ne\xlposition@121\else
+% \end{macrocode}
+% then those that usually don't use limits:
+% \begin{macrocode}
+\ifx\next\int\limtype@\@ne\optype@\@ne\xlposition@108\else
+\ifx\next\oint\limtype@\@ne\optype@\@ne\xlposition@109\else
+\ifx\next\cwoint\limtype@\@ne\optype@\@ne\xlposition@112\else
+\ifx\next\awoint\limtype@\@ne\optype@\@ne\xlposition@113\else
+\ifx\next\cwint\limtype@\@ne\optype@\@ne\xlposition@114\else
+\ifx\next\iint\limtype@\@ne\optype@\@ne\xlposition@115\else
+\ifx\next\iiint\limtype@\@ne\optype@\@ne\xlposition@116\else
+\ifx\next\oiint\limtype@\@ne\optype@\@ne\xlposition@117\else
+\ifx\next\oiiint\limtype@\@ne\optype@\@ne\xlposition@118\else
+\ifx\next\barint\limtype@\@ne\optype@\@ne\xlposition@124\else
+\ifx\next\slashint\limtype@\@ne\optype@\@ne\xlposition@125\else
+\PackageError{mtpro2}%
+ {Invalid use of \protect\xl}%
+ {\protect\xl\space can be applied to `large operators' only.}%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+\def\next@##1{\futurelet\next\getxlims@}\next@}
+% \end{macrocode}
+% Swallows the token after |\xl|:
+% \begin{macrocode}
+\def\getxlims@{%
+\let\lowerlim@\relax\let\upperlim@\relax
+\ifx\next\limits
+\def\next@##1{\limtype@\z@\futurelet\next\getxlims@}%
+\else\ifx\next\nolimits
+\def\next@##1{\limtype@\@ne\futurelet\next\getxlims@}%
+\else\ifx\next\sbxii@
+\def\next@##1{\getxlowerlim@}%
+\else\ifx\next\sbviii@
+\def\next@##1{\getxlowerlim@}%
+\else\ifcat\sbviii@\noexpand\next
+\def\next@##1{\getxlowerlim@}%
+\else\ifcat^\noexpand\next
+\def\next@##1{\getxupperlim@}%
+\else
+\let\next@\uselims@
+% \end{macrocode}
+% |\uselims@| is what we will always do after getting the limits.
+% \begin{macrocode}
+\fi\fi\fi\fi\fi\fi
+\next@}
+\def\getxlowerlim@#1{\def\lowerlim@{#1}\FNSS@\getxupperlim@@}
+\def\getxupperlim@#1{\def\upperlim@{#1}\FNSS@\getxlowerlim@@}
+\def\getxupperlim@@{%
+\ifcat^\noexpand\next
+\def\next@##1##2{\def\upperlim@{##2}\uselims@}%
+\else
+\let\next@\uselims@ % have limits now
+\fi
+\next@}
+\def\getxlowerlim@@{%
+\ifx\next\sbxii@
+\def\next@##1##2{\def\lowerlim@{##2}\uselims@}%
+\else\ifx\next\sbviii@
+\def\next@##1##2{\def\lowerlim@{##2}\uselims@}%
+\else\ifcat\sbviii@\noexpand\next
+\def\next@##1##2{\def\lowerlim@{##2}\uselims@}%
+\else
+\let\next@\uselims@ % have limits now
+\fi\fi\fi
+\next@}
+%
+\def\uselims@{\ifnum\optype@=\z@\xlargeop@\else\xlargeopic@\fi}
+%
+\def\xlargeop@{%
+\ifnum\limtype@=\z@
+\mathop{\hbox{$\vcenter{\hbox{%
+\ifnum\xlfont@=\z@\MTXL@\else\MTXXXL@\fi
+\char\xlposition@\relax
+\ifnum\xlposition@ii=\z@\else\char\xlposition@ii\relax\fi
+}}$}}_{\lowerlim@}^{\upperlim@}%
+\else
+\mathop{\hbox{$\vcenter{\hbox{%
+\ifnum\xlfont@=\z@\MTXL@\else\MTXXXL@\fi
+\char\xlposition@\relax
+\ifnum\xlposition@ii=\z@\else\char\xlposition@ii\relax\fi
+}}$}}\nolimits_{\lowerlim@}^{\upperlim@}%
+\fi}
+% \end{macrocode}
+% The definition of |\xlargeopic@| is complicated when there are limits, and the
+% calculation uses |\maxXLscripts@|, which will store the maximum of the widths of the sub
+% and superscripts. There is the additional complication that the amount to adjust the
+% superscript differs for |\XL| and |\XXL|, and the adjustment is made in terms of an extra
+% |\fontdimen| in the mtxxl font, which measures the horizontal distance between the
+% lowest and highest points of the integral sign (for the |\XXL| versions these are exactly
+% twice the |\XL| versions).
+% Fortunately, none of the characters needing |\xlargeopic@| need to be broken into two
+% halves, so we don't have to worry about |\xlposition@ii|.
+% \begin{macrocode}
+\newdimen\maxXLscripts@
+%
+\def\xlargeopic@{%
+\def\thecharacter@{\ifnum\xlfont@=\z@\MTXL@\else\MTXXXL@\fi\char\xlposition@\relax}%
+\ifnum\limtype@=\@ne
+\setbox\z@\hbox{\thecharacter@\/}%
+\dimen@\wd\z@
+\setbox\z@\hbox{\thecharacter@}%
+\advance\dimen@-\wd\z@
+\mathop{\hbox{$\vcenter{\hbox{\thecharacter@}}$}}
+\nolimits_{\lowerlim@}^{\kern\dimen@\upperlim@}%
+\else
+\setbox\z@\hbox{\ifcase\x@count\kern\tw@\fontdimen8\MTXL@\or
+\kern4\fontdimen8\MTXL@\or\kern\tw@\fontdimen8\MTXXXL@\or\kern1.7\fontdimen8\MTXL@\fi}%
+\setbox\@ne\hbox{\thecharacter@}%
+\setbox\tw@\hbox{$\scriptstyle{\lowerlim@}$}%
+\setbox\thr@@\hbox{$\kern\wd\z@\scriptstyle{\upperlim@}$}%
+% \end{macrocode}
+% Let |\maxXLscripts@| be max of subscript and superscript boxes:
+% \begin{macrocode}
+\maxXLscripts@\wd\thr@@\ifdim\maxXLscripts@<\wd\tw@\maxXLscripts@\wd\tw@\fi
+% \end{macrocode}
+% Let |\dimen@ii| be amount of subscript to left of integral:
+% \begin{macrocode}
+\dimen@ii.5\wd\tw@ \advance\dimen@ii-.5\wd\@ne
+% \end{macrocode}
+% Let |\dimen@| be amount of visible superscript to left of int, namely
+% [visible length] $-$ [mount to right of left boundary of operator], i.e.,
+% $[\mathrm{wd3} - \mathrm{wd0}] - 1/2[\mathrm{wd3} + \mathrm{wd1}]$.
+% \begin{macrocode}
+\dimen@.5\wd\thr@@ \advance\dimen@-\wd\z@ \advance\dimen@-.5\wd\@ne
+\ifdim\dimen@>\z@ % if visible part of superscript extends to left of operator
+ \ifdim\dimen@>\dimen@ii % if visible part of superscript to left of subscript
+% kern by - [1/2(\maxXLscripts@ - wd1) - \dimen@]
+ \kern\dimen@\kern.5\wd\@ne\kern-.5\maxXLscripts@
+ \else % only trim to subscript,
+% kern - [1/2(\maxXLscripts@ - wd1) - \dimen@ii]
+ \kern\dimen@ii\kern.5\wd\@ne\kern-.5\maxXLscripts@
+ \fi
+\else % visible part of superscript entirely to right of operator, so trim to subscript
+ \ifdim\dimen@ii > \z@
+ \kern\dimen@ii\kern.5\wd\@ne\kern-.5\maxXLscripts@
+ \else
+ \kern.5\wd\@ne\kern-.5\maxXLscripts@
+ \fi
+\fi
+\setbox\@ne\hbox{\thecharacter@\/}\dimen@ii\wd\@ne
+\setbox\@ne\hbox{\thecharacter@}\advance\dimen@ii-\wd\@ne
+\mathop{\hbox{$\vcenter{\hbox{\thecharacter@}}$}}_{\lowerlim@}^{\kern\wd\z@\upperlim@}%
+\kern\dimen@ii
+\fi
+}
+% \end{macrocode}
+% Other sizes almost completely analagous
+% \begin{macrocode}
+\def\XL{\xlposition@ii\z@\xlfont@\z@\x@count\z@\futurelet\next\XL@}
+\def\XL@{\optype@\z@\limtype@\z@
+\ifx\next\bigodot\xlposition@0\else
+\ifx\next\bigoplus\xlposition@1\else
+\ifx\next\bigotimes\xlposition@2\else
+\ifx\next\bigsqcup\xlposition@3\else
+\ifx\next\bigcup\xlposition@4\else
+\ifx\next\bigcap\xlposition@5\else
+\ifx\next\biguplus\xlposition@6\else
+\ifx\next\bigwedge\xlposition@7\else
+\ifx\next\bigvee\xlposition@8\else
+\ifx\next\upsum\xlposition@9\else
+\ifx\next\upprod\xlposition@10\else
+\ifx\next\upcoprod\xlposition@11\else
+\ifx\next\bigcupprod\xlposition@14\else
+\ifx\next\bigcapprod\xlposition@15\else
+\ifx\next\bigvarland\xlposition@26\else
+\ifx\next\bigast\xlposition@27\else
+\ifx\next\slsum\optype@\@ne\xlposition@23\else
+\ifx\next\slprod\optype@\@ne\xlposition@24\else
+\ifx\next\slcoprod\optype@\@ne\xlposition@25\else
+\ifx\next\int\limtype@\@ne\optype@\@ne\xlposition@12\else
+\ifx\next\oint\limtype@\@ne\optype@\@ne\xlposition@13\else
+\ifx\next\cwoint\limtype@\@ne\optype@\@ne\xlposition@16\else
+\ifx\next\awoint\limtype@\@ne\optype@\@ne\xlposition@17\else
+\ifx\next\cwint\limtype@\@ne\optype@\@ne\xlposition@18\else
+\ifx\next\iint\limtype@\@ne\optype@\@ne\xlposition@19\else
+\ifx\next\iiint\limtype@\@ne\optype@\@ne\xlposition@20\else
+\ifx\next\oiint\limtype@\@ne\optype@\@ne\xlposition@21\else
+\ifx\next\oiiint\limtype@\@ne\optype@\@ne\xlposition@22\else
+\ifx\next\barint\limtype@\@ne\optype@\@ne\xlposition@28\else
+\ifx\next\slashint\limtype@\@ne\optype@\@ne\xlposition@29\else
+\PackageError{mtpro2}%
+ {Invalid use of \protect\XL}%
+ {\protect\XL\space can be applied to `large operators' only.}%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+\def\next@##1{\futurelet\next\getxlims@}\next@}
+%
+\def\XXL{\xlposition@ii\z@\xlfont@\z@\x@count\@ne\futurelet\next\XXL@}
+\def\XXL@{\optype@\z@\limtype@\z@
+\ifx\next\bigodot\xlposition@48\else
+\ifx\next\bigoplus\xlposition@49\else
+\ifx\next\bigotimes\xlposition@50\else
+\ifx\next\bigsqcup\xlposition@51\else
+\ifx\next\bigcup\xlposition@52\else
+\ifx\next\bigcap\xlposition@53\else
+\ifx\next\biguplus\xlposition@54\else
+\ifx\next\bigwedge\xlposition@55\else
+\ifx\next\bigvee\xlposition@56\else
+\ifx\next\upsum\xlposition@57\else
+\ifx\next\upprod\xlposition@58\else
+\ifx\next\upcoprod\xlposition@59\else
+\ifx\next\bigcupprod\xlposition@62 \xlposition@ii64\else
+\ifx\next\bigcapprod\xlposition@63 \xlposition@ii65\else
+\ifx\next\bigvarland\xlposition@76\else
+\ifx\next\bigast\xlposition@77\else
+\ifx\next\slsum\optype@\@ne\xlposition@73\else
+\ifx\next\slprod\optype@\@ne\xlposition@74\else
+\ifx\next\slcoprod\optype@\@ne\xlposition@75\else
+\ifx\next\int\limtype@\@ne\optype@\@ne\xlposition@60\else
+\ifx\next\oint\limtype@\@ne\optype@\@ne\xlposition@61\else
+\ifx\next\cwoint\limtype@\@ne\optype@\@ne\xlposition@66\else
+\ifx\next\awoint\limtype@\@ne\optype@\@ne\xlposition@67\else
+\ifx\next\cwint\limtype@\@ne\optype@\@ne\xlposition@68\else
+\ifx\next\iint\limtype@\@ne\optype@\@ne\xlposition@69\else
+\ifx\next\iiint\limtype@\@ne\optype@\@ne\xlposition@70\else
+\ifx\next\oiint\limtype@\@ne\optype@\@ne\xlposition@71\else
+\ifx\next\oiiint\limtype@\@ne\optype@\@ne\xlposition@72\else
+\ifx\next\barint\limtype@\@ne\optype@\@ne\xlposition@78\else
+\ifx\next\slashint\limtype@\@ne\optype@\@ne\xlposition@79\else
+\PackageError{mtpro2}%
+ {Invalid use of \protect\XXL}%
+ {\protect\XXL\space can be applied to `large operators' only.}%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+\def\next@##1{\futurelet\next\getxlims@}\next@}
+%
+\def\XXXL{\xlposition@ii\z@\xlfont@\@ne\x@count\tw@\futurelet\next\XXXL@}
+\def\XXXL@{\optype@\z@\limtype@\z@
+\ifx\next\bigodot\xlposition@0\else
+\ifx\next\bigoplus\xlposition@1\else
+\ifx\next\bigotimes\xlposition@2\else
+\ifx\next\bigsqcup\xlposition@3\else
+\ifx\next\bigcup\xlposition@4\else
+\ifx\next\bigcap\xlposition@5\else
+\ifx\next\biguplus\xlposition@6\else
+\ifx\next\bigwedge\xlposition@7\else
+\ifx\next\bigvee\xlposition@8\else
+\ifx\next\upsum\xlposition@9\else
+\ifx\next\uprod\xlposition@10\else
+\ifx\next\ucoprod\xlposition@11\else
+\ifx\next\bigcupprod\xlposition@14 \xlposition@ii16\else
+\ifx\next\bigcapprod\xlposition@15 \xlposition@ii17\else
+\ifx\next\bigvarland\xlposition@ 28 \xlposition@ii29\else
+\ifx\next\bigast\xlposition@30\else
+\ifx\next\slsum\optype@\@ne\xlposition@25\else
+\ifx\next\slprod\optype@\@ne\xlposition@26\else
+\ifx\next\slcoprod\optype@\@ne\xlposition@27\else
+\ifx\next\int\limtype@\@ne\optype@\@ne\xlposition@12\else
+\ifx\next\oint\limtype@\@ne\optype@\@ne\xlposition@13\else
+\ifx\next\cwoint\limtype@\@ne\optype@\@ne\xlposition@18\else
+\ifx\next\awoint\limtype@\@ne\optype@\@ne\xlposition@19\else
+\ifx\next\cwint\limtype@\@ne\optype@\@ne\xlposition@20\else
+\ifx\next\iint\limtype@\@ne\optype@\@ne\xlposition@21\else
+\ifx\next\iiint\limtype@\@ne\optype@\@ne\xlposition@22\else
+\ifx\next\oiint\limtype@\@ne\optype@\@ne\xlposition@23\else
+\ifx\next\oiiint\limtype@\@ne\optype@\@ne\xlposition@24\else
+\ifx\next\barint\limtype@\@ne\optype@\@ne\xlposition@31\else
+\ifx\next\slashint\limtype@\@ne\optype@\@ne\xlposition@32\else
+\def\next@{\PackageError{mtpro2}%
+ {Invalid use of \protect\XXXL}%
+ {\protect\XXXL\space can be applied to `large operators' only.}}%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+\def\next@##1{\futurelet\next\getxlims@}\next@}
+% \end{macrocode}
+%
+%
+% \subsection{Large over- and underbraces}
+% The below code stems from from M.~Spivak's
+% plain~\TeX{} package \texttt{mtp2.tex} as of 2006-02-07:
+% \begin{macrocode}
+\def\undercbrace#1{\setbox\z@\hbox{$\displaystyle#1$}%
+ \dimen@\tMTPsize\relax
+ \expandafter\getpoints@\the\dimen@\getpoints@
+ \dimen@\wd\z@
+ \divide\dimen@\pointcount@
+ \expandafter\getpoints@\the\dimen@\getpoints@
+ \ifnum\pointcount@<4
+ \ifdim\wd\z@<12pt
+ \def\thebrace@{\hbox{\MTEXE@\char144}}%
+ \else\ifdim\wd\z@<15pt
+ \def\thebrace@{\hbox{\MTEXE@\char145}}%
+ \else\ifdim\wd\z@<18pt
+ \def\thebrace@{\hbox{\MTEXE@\char146}}%
+ \else\ifdim\wd\z@<21pt
+ \def\thebrace@{\hbox{\MTEXE@\char147}}%
+ \else\ifdim\wd\z@<24pt
+ \def\thebrace@{\hbox{\MTEXE@\char148}}%
+ \else\ifdim\wd\z@<27pt
+ \def\thebrace@{\hbox{\MTEXE@\char149}}%
+ \else\ifdim\wd\z@<30pt
+ \def\thebrace@{\hbox{\MTEXE@\char150}}%
+ \else\ifdim\wd\z@<33pt
+ \def\thebrace@{\hbox{\MTEXE@\char151}}%
+ \else
+ \def\thebrace@{\hbox{\MTEXE@\char152}}%
+ \fi\fi\fi\fi\fi\fi\fi\fi
+ \else
+ \ifnum\pointcount@<12
+ \advance\pointcount@149
+ \def\thebrace@{\hbox{\MTEXE@\char\pointcount@}}%
+ \else
+ \ifnum\pointcount@<24
+ \advance\pointcount@132
+ \def\thebrace@{\hbox{\MTEXF@\char\pointcount@}}%
+ \else
+ \advance\pointcount@120
+ \ifnum\pointcount@>149 \pointcount@149 \fi
+ \def\thebrace@{\hbox{\MTEXG@\char\pointcount@}}%
+ \fi
+ \fi
+ \fi
+ \mathop{\vtop{\ialign{\hfil##\hfil\cr$\displaystyle#1$\crcr\noalign
+ {\vskip3pt\nointerlineskip}\thebrace@\cr\noalign{\kern3pt}}}}\limits}%
+\def\overcbrace#1{\setbox\z@\hbox{$\displaystyle#1$}%
+ \dimen@\tMTPsize\relax
+ \expandafter\getpoints@\the\dimen@\getpoints@
+ \dimen@\wd\z@
+ \divide\dimen@\pointcount@
+ \expandafter\getpoints@\the\dimen@\getpoints@
+ \ifnum\pointcount@<4
+ \ifdim\wd\z@<12pt
+ \def\thebrace@{\hbox{\MTEXE@\char176}}%
+ \else\ifdim\wd\z@<15pt
+ \def\thebrace@{\hbox{\MTEXE@\char177}}%
+ \else\ifdim\wd\z@<18pt
+ \def\thebrace@{\hbox{\MTEXE@\char178}}%
+ \else\ifdim\wd\z@<21pt
+ \def\thebrace@{\hbox{\MTEXE@\char179}}%
+ \else\ifdim\wd\z@<24pt
+ \def\thebrace@{\hbox{\MTEXE@\char180}}%
+ \else\ifdim\wd\z@<27pt
+ \def\thebrace@{\hbox{\MTEXE@\char181}}%
+ \else\ifdim\wd\z@<30pt
+ \def\thebrace@{\hbox{\MTEXE@\char182}}%
+ \else\ifdim\wd\z@<33pt
+ \def\thebrace@{\hbox{\MTEXE@\char183}}%
+ \else
+ \def\thebrace@{\hbox{\MTEXE@\char184}}%
+ \fi\fi\fi\fi\fi\fi\fi\fi
+ \else
+ \ifnum\pointcount@<12
+ \advance\pointcount@181
+ \def\thebrace@{\hbox{\MTEXE@\char\pointcount@}}%
+ \else
+ \ifnum\pointcount@<24
+ \advance\pointcount@148
+ \def\thebrace@{\hbox{\MTEXF@\char\pointcount@}}%
+ \else
+ \advance\pointcount@136
+ \ifnum\pointcount@>165 \pointcount@165 \fi
+ \def\thebrace@{\hbox{\MTEXG@\char\pointcount@}}%
+ \fi
+ \fi
+ \fi
+ \mathop{\vbox{\ialign{\hfil##\hfil\cr\noalign{\kern3\p@}\thebrace@\crcr
+ \noalign{\kern3\p@\nointerlineskip}$\displaystyle#1$\crcr}}}\limits}%
+% \end{macrocode}
+%
+% \subsection{AMS symbols support}
+% \label{sec:ams}
+% Support for AMS symbols is provided only if the full font set is available,
+% and if it has not been desabled explicitly:
+% \begin{macrocode}
+\ifmtp@ams
+% \end{macrocode}
+% First, set up the related symbol font:
+% \begin{macrocode}
+\DeclareSymbolFont{AMSa}{U}{mt2sya}{m}{n}
+\SetSymbolFont{AMSa}{bold}{U}{mt2sya}{b}{n}
+\SetSymbolFont{AMSa}{heavy}{U}{mt2sya}{eb}{n}
+% \end{macrocode}
+%
+% Macros that are declared as warnings in basic \LaTeX\ must be `deleted',
+% before we can re-declare them as math symbols:
+% \begin{macrocode}
+\global\let\sqsubset\undefined
+\global\let\sqsupset\undefined
+\global\let\mho\undefined
+\global\let\Diamond\undefined
+\global\let\leadsto\undefined
+% \end{macrocode}
+%
+% Now declare the actual symbols. Symbols that are already defined
+% in the basic \mtpro fonts are commented out. We start with those symbols
+% that come `normally' from the AMS `A' font.
+%
+% Three symbols can be used both in text and math mode:
+% we adopt their definitions from \Lpack{amssymb}:
+% \begin{macrocode}
+\@ifundefined{checkmark}{%
+ \edef\checkmark{\noexpand\mathhexbox{\hexnumber@\symAMSa}58}
+}{}
+\@ifundefined{circledR}{%
+ \edef\circledR{\noexpand\mathhexbox{\hexnumber@\symAMSa}72}
+}{}
+\@ifundefined{maltese}{%
+ \edef\maltese{\noexpand\mathhexbox{\hexnumber@\symAMSa}7A}
+}{}
+\@ifundefined{yen}{%
+ \edef\yen{\noexpand\mathhexbox{\hexnumber@\symAMSa}55}
+}{}
+% \end{macrocode}
+% The remaining symbols can be used only in math mode:
+% \begin{macrocode}
+\DeclareMathDelimiter{\ulcorner}{\mathopen} {AMSa}{"70}{AMSa}{"70}
+\DeclareMathDelimiter{\urcorner}{\mathclose}{AMSa}{"71}{AMSa}{"71}
+\DeclareMathDelimiter{\llcorner}{\mathopen} {AMSa}{"78}{AMSa}{"78}
+\DeclareMathDelimiter{\lrcorner}{\mathclose}{AMSa}{"79}{AMSa}{"79}
+\DeclareMathSymbol{\dashleftarrow}{\mathrel}{AMSa}{219}
+\DeclareMathSymbol{\dashrightarrow}{\mathrel}{AMSa}{220}
+\global\let\dasharrow\dashrightarrow
+\DeclareMathSymbol{\Diamond} {\mathbin}{AMSa}{"DE}
+\DeclareMathSymbol{\leadsto} {\mathbin}{AMSa}{"DD}
+\DeclareMathSymbol{\boxdot} {\mathbin}{AMSa}{"00}
+\DeclareMathSymbol{\boxplus} {\mathbin}{AMSa}{"01}
+\DeclareMathSymbol{\boxtimes} {\mathbin}{AMSa}{"02}
+\DeclareMathSymbol{\square} {\mathord}{AMSa}{"03}
+\DeclareMathSymbol{\blacksquare} {\mathord}{AMSa}{"04}
+\DeclareMathSymbol{\centerdot} {\mathbin}{AMSa}{"05}
+\DeclareMathSymbol{\lozenge} {\mathord}{AMSa}{"06}
+\DeclareMathSymbol{\blacklozenge} {\mathord}{AMSa}{"07}
+\DeclareMathSymbol{\circlearrowright} {\mathrel}{AMSa}{"08}
+\DeclareMathSymbol{\circlearrowleft} {\mathrel}{AMSa}{"09}
+%\DeclareMathSymbol{\rightleftharpoons}{\mathrel}{AMSa}{"0A}
+\DeclareMathSymbol{\leftrightharpoons} {\mathrel}{AMSa}{"0B}
+\DeclareMathSymbol{\boxminus} {\mathbin}{AMSa}{"0C}
+\DeclareMathSymbol{\Vdash} {\mathrel}{AMSa}{"0D}
+\DeclareMathSymbol{\Vvdash} {\mathrel}{AMSa}{"0E}
+\DeclareMathSymbol{\vDash} {\mathrel}{AMSa}{"0F}
+\DeclareMathSymbol{\twoheadrightarrow} {\mathrel}{AMSa}{"10}
+\DeclareMathSymbol{\twoheadleftarrow} {\mathrel}{AMSa}{"11}
+\DeclareMathSymbol{\leftleftarrows} {\mathrel}{AMSa}{"12}
+\DeclareMathSymbol{\rightrightarrows} {\mathrel}{AMSa}{"13}
+\DeclareMathSymbol{\upuparrows} {\mathrel}{AMSa}{"14}
+\DeclareMathSymbol{\downdownarrows} {\mathrel}{AMSa}{"15}
+\DeclareMathSymbol{\upharpoonright} {\mathrel}{AMSa}{"16}
+\global\let\restriction\upharpoonright
+\DeclareMathSymbol{\downharpoonright} {\mathrel}{AMSa}{"17}
+\DeclareMathSymbol{\upharpoonleft} {\mathrel}{AMSa}{"18}
+\DeclareMathSymbol{\downharpoonleft}{\mathrel}{AMSa}{"19}
+\DeclareMathSymbol{\rightarrowtail} {\mathrel}{AMSa}{"1A}
+\DeclareMathSymbol{\leftarrowtail} {\mathrel}{AMSa}{"1B}
+\DeclareMathSymbol{\leftrightarrows}{\mathrel}{AMSa}{"1C}
+\DeclareMathSymbol{\rightleftarrows}{\mathrel}{AMSa}{"1D}
+\DeclareMathSymbol{\Lsh} {\mathrel}{AMSa}{"1E}
+\DeclareMathSymbol{\Rsh} {\mathrel}{AMSa}{"1F}
+\DeclareMathSymbol{\rightsquigarrow} {\mathrel}{AMSa}{"20}
+\DeclareMathSymbol{\leftrightsquigarrow}{\mathrel}{AMSa}{"21}
+\DeclareMathSymbol{\looparrowleft} {\mathrel}{AMSa}{"22}
+\DeclareMathSymbol{\looparrowright} {\mathrel}{AMSa}{"23}
+\DeclareMathSymbol{\circeq} {\mathrel}{AMSa}{"24}
+\DeclareMathSymbol{\succsim} {\mathrel}{AMSa}{"25}
+\DeclareMathSymbol{\gtrsim} {\mathrel}{AMSa}{"26}
+\DeclareMathSymbol{\gtrapprox} {\mathrel}{AMSa}{"27}
+\DeclareMathSymbol{\multimap} {\mathrel}{AMSa}{"28}
+\DeclareMathSymbol{\therefore} {\mathrel}{AMSa}{"29}
+\DeclareMathSymbol{\because} {\mathrel}{AMSa}{"2A}
+\DeclareMathSymbol{\doteqdot} {\mathrel}{AMSa}{"2B}
+\global\let\Doteq\doteqdot
+\DeclareMathSymbol{\triangleq} {\mathrel}{AMSa}{"2C}
+\DeclareMathSymbol{\precsim} {\mathrel}{AMSa}{"2D}
+\DeclareMathSymbol{\lesssim} {\mathrel}{AMSa}{"2E}
+\DeclareMathSymbol{\lessapprox} {\mathrel}{AMSa}{"2F}
+\DeclareMathSymbol{\eqslantless} {\mathrel}{AMSa}{"30}
+\DeclareMathSymbol{\eqslantgtr} {\mathrel}{AMSa}{"31}
+\DeclareMathSymbol{\curlyeqprec} {\mathrel}{AMSa}{"32}
+\DeclareMathSymbol{\curlyeqsucc} {\mathrel}{AMSa}{"33}
+\DeclareMathSymbol{\preccurlyeq} {\mathrel}{AMSa}{"34}
+\DeclareMathSymbol{\leqq} {\mathrel}{AMSa}{"35}
+\DeclareMathSymbol{\leqslant} {\mathrel}{AMSa}{"36}
+\DeclareMathSymbol{\lessgtr} {\mathrel}{AMSa}{"37}
+\DeclareMathSymbol{\backprime} {\mathord}{AMSa}{"38}
+\DeclareMathSymbol{\risingdotseq} {\mathrel}{AMSa}{"3A}
+\DeclareMathSymbol{\fallingdotseq}{\mathrel}{AMSa}{"3B}
+\DeclareMathSymbol{\succcurlyeq} {\mathrel}{AMSa}{"3C}
+\DeclareMathSymbol{\geqq} {\mathrel}{AMSa}{"3D}
+\DeclareMathSymbol{\geqslant} {\mathrel}{AMSa}{"3E}
+\DeclareMathSymbol{\gtrless} {\mathrel}{AMSa}{"3F}
+\DeclareMathSymbol{\sqsubset} {\mathrel}{AMSa}{"40}
+\DeclareMathSymbol{\sqsupset} {\mathrel}{AMSa}{"41}
+\DeclareMathSymbol{\vartriangleright}{\mathrel}{AMSa}{"42}
+\DeclareMathSymbol{\vartriangleleft} {\mathrel}{AMSa}{"43}
+\DeclareMathSymbol{\trianglerighteq} {\mathrel}{AMSa}{"44}
+\DeclareMathSymbol{\trianglelefteq} {\mathrel}{AMSa}{"45}
+\DeclareMathSymbol{\bigstar} {\mathord}{AMSa}{"46}
+\DeclareMathSymbol{\between} {\mathrel}{AMSa}{"47}
+\DeclareMathSymbol{\blacktriangledown} {\mathord}{AMSa}{"48}
+\DeclareMathSymbol{\blacktriangleright} {\mathrel}{AMSa}{"49}
+\DeclareMathSymbol{\blacktriangleleft} {\mathrel}{AMSa}{"4A}
+\DeclareMathSymbol{\vartriangle} {\mathrel}{AMSa}{"4D}
+\DeclareMathSymbol{\blacktriangle} {\mathord}{AMSa}{"4E}
+\DeclareMathSymbol{\triangledown} {\mathord}{AMSa}{"4F}
+\DeclareMathSymbol{\eqcirc} {\mathrel}{AMSa}{"50}
+\DeclareMathSymbol{\lesseqgtr} {\mathrel}{AMSa}{"51}
+\DeclareMathSymbol{\gtreqless} {\mathrel}{AMSa}{"52}
+\DeclareMathSymbol{\lesseqqgtr} {\mathrel}{AMSa}{"53}
+\DeclareMathSymbol{\gtreqqless} {\mathrel}{AMSa}{"54}
+\DeclareMathSymbol{\Rrightarrow} {\mathrel}{AMSa}{"56}
+\DeclareMathSymbol{\Lleftarrow} {\mathrel}{AMSa}{"57}
+\DeclareMathSymbol{\veebar} {\mathbin}{AMSa}{"59}
+\DeclareMathSymbol{\barwedge} {\mathbin}{AMSa}{"5A}
+\DeclareMathSymbol{\doublebarwedge} {\mathbin}{AMSa}{"5B}
+%\DeclareMathSymbol{\angle} {\mathord}{AMSa}{"5C}
+\DeclareMathSymbol{\measuredangle} {\mathord}{AMSa}{"5D}
+\DeclareMathSymbol{\sphericalangle} {\mathord}{AMSa}{"5E}
+\DeclareMathSymbol{\varpropto} {\mathrel}{AMSa}{"5F}
+\DeclareMathSymbol{\smallsmile} {\mathrel}{AMSa}{"60}
+\DeclareMathSymbol{\smallfrown} {\mathrel}{AMSa}{"61}
+\DeclareMathSymbol{\Subset} {\mathrel}{AMSa}{"62}
+\DeclareMathSymbol{\Supset} {\mathrel}{AMSa}{"63}
+\DeclareMathSymbol{\Cup} {\mathbin}{AMSa}{"64}
+\global\let\doublecup\Cup
+\DeclareMathSymbol{\Cap} {\mathbin}{AMSa}{"65}
+\global\let\doublecap\Cap
+\DeclareMathSymbol{\curlywedge} {\mathbin}{AMSa}{"66}
+\DeclareMathSymbol{\curlyvee} {\mathbin}{AMSa}{"67}
+\DeclareMathSymbol{\leftthreetimes} {\mathbin}{AMSa}{"68}
+\DeclareMathSymbol{\rightthreetimes}{\mathbin}{AMSa}{"69}
+\DeclareMathSymbol{\subseteqq} {\mathrel}{AMSa}{"6A}
+\DeclareMathSymbol{\supseteqq} {\mathrel}{AMSa}{"6B}
+\DeclareMathSymbol{\bumpeq} {\mathrel}{AMSa}{"6C}
+\DeclareMathSymbol{\Bumpeq} {\mathrel}{AMSa}{"6D}
+\DeclareMathSymbol{\lll} {\mathrel}{AMSa}{"6E}
+\global\let\llless\lll
+\DeclareMathSymbol{\ggg} {\mathrel}{AMSa}{"6F}
+\global\let\gggtr\ggg
+\DeclareMathSymbol{\circledS} {\mathord}{AMSa}{"73}
+\DeclareMathSymbol{\pitchfork} {\mathrel}{AMSa}{"74}
+\DeclareMathSymbol{\dotplus} {\mathbin}{AMSa}{"75}
+\DeclareMathSymbol{\backsim} {\mathrel}{AMSa}{"76}
+\DeclareMathSymbol{\backsimeq} {\mathrel}{AMSa}{"77}
+\DeclareMathSymbol{\complement} {\mathord}{AMSa}{"7B}
+\DeclareMathSymbol{\intercal} {\mathbin}{AMSa}{"7C}
+\DeclareMathSymbol{\circledcirc} {\mathbin}{AMSa}{"7D}
+\DeclareMathSymbol{\circledast} {\mathbin}{AMSa}{"7E}
+\DeclareMathSymbol{\circleddash} {\mathbin}{AMSa}{"7F}
+% \end{macrocode}
+% The following symbols are not available on the CM AMS fonts:
+% \begin{macrocode}
+\DeclareMathSymbol{\updownarrows}{\mathrel}{AMSa}{"DF}
+\DeclareMathSymbol{\downuparrows}{\mathrel}{AMSa}{224}
+\DeclareMathSymbol{\updownharpoons}{\mathrel}{AMSa}{225}
+\DeclareMathSymbol{\downupharpoons}{\mathrel}{AMSa}{226}
+\DeclareMathSymbol{\upupharpoons}{\mathrel}{AMSa}{227}
+\DeclareMathSymbol{\downdownharpoons}{\mathrel}{AMSa}{228}
+\DeclareMathSymbol{\undercurvearrowleft}{\mathrel}{AMSa}{229}
+\DeclareMathSymbol{\undercurvearrowright}{\mathrel}{AMSa}{230}
+% \end{macrocode}
+% These can be used to build longer dashed arrows as explained above:
+% \begin{macrocode}
+\DeclareMathSymbol{\midshaft} {\mathord}{AMSa}{"39}
+\DeclareMathSymbol{\rarrowhead} {\mathord}{AMSa}{"4B}
+\DeclareMathSymbol{\larrowhead} {\mathord}{AMSa}{"4C}
+% \end{macrocode}
+% The following symbols come normally from the `B' font.
+% \begin{macrocode}
+\DeclareMathSymbol{\lvertneqq} {\mathrel}{AMSa}{"80}
+\DeclareMathSymbol{\gvertneqq} {\mathrel}{AMSa}{"81}
+%\DeclareMathSymbol{\nleq} {\mathrel}{AMSa}{"82}
+%\DeclareMathSymbol{\ngeq} {\mathrel}{AMSa}{"83}
+%\DeclareMathSymbol{\nless} {\mathrel}{AMSa}{"84}
+%\DeclareMathSymbol{\ngtr} {\mathrel}{AMSa}{"85}
+%\DeclareMathSymbol{\nprec} {\mathrel}{AMSa}{"86}
+%\DeclareMathSymbol{\nsucc} {\mathrel}{AMSa}{"87}
+\DeclareMathSymbol{\lneqq} {\mathrel}{AMSa}{"88}
+\DeclareMathSymbol{\gneqq} {\mathrel}{AMSa}{"89}
+\DeclareMathSymbol{\nleqslant} {\mathrel}{AMSa}{"8A}
+\DeclareMathSymbol{\ngeqslant} {\mathrel}{AMSa}{"8B}
+\DeclareMathSymbol{\lneq} {\mathrel}{AMSa}{"8C}
+\DeclareMathSymbol{\gneq} {\mathrel}{AMSa}{"8D}
+\DeclareMathSymbol{\npreceq} {\mathrel}{AMSa}{"8E}
+\DeclareMathSymbol{\nsucceq} {\mathrel}{AMSa}{"8F}
+\DeclareMathSymbol{\precnsim} {\mathrel}{AMSa}{"90}
+\DeclareMathSymbol{\succnsim} {\mathrel}{AMSa}{"91}
+\DeclareMathSymbol{\lnsim} {\mathrel}{AMSa}{"92}
+\DeclareMathSymbol{\gnsim} {\mathrel}{AMSa}{"93}
+\DeclareMathSymbol{\nleqq} {\mathrel}{AMSa}{"94}
+\DeclareMathSymbol{\ngeqq} {\mathrel}{AMSa}{"95}
+\DeclareMathSymbol{\precneqq} {\mathrel}{AMSa}{"96}
+\DeclareMathSymbol{\succneqq} {\mathrel}{AMSa}{"97}
+\DeclareMathSymbol{\precnapprox} {\mathrel}{AMSa}{"98}
+\DeclareMathSymbol{\succnapprox} {\mathrel}{AMSa}{"99}
+\DeclareMathSymbol{\lnapprox} {\mathrel}{AMSa}{"9A}
+\DeclareMathSymbol{\gnapprox} {\mathrel}{AMSa}{"9B}
+\DeclareMathSymbol{\nsim} {\mathrel}{AMSa}{"9C}
+%\DeclareMathSymbol{\ncong} {\mathrel}{AMSa}{"9D}
+\DeclareMathSymbol{\diagup} {\mathord}{AMSa}{"9E}
+\DeclareMathSymbol{\diagdown} {\mathord}{AMSa}{"9F}
+\DeclareMathSymbol{\varsubsetneq} {\mathrel}{AMSa}{160}
+\DeclareMathSymbol{\varsupsetneq} {\mathrel}{AMSa}{161}
+\DeclareMathSymbol{\nsubseteqq} {\mathrel}{AMSa}{162}
+\DeclareMathSymbol{\nsupseteqq} {\mathrel}{AMSa}{163}
+\DeclareMathSymbol{\subsetneqq} {\mathrel}{AMSa}{164}
+\DeclareMathSymbol{\supsetneqq} {\mathrel}{AMSa}{165}
+\DeclareMathSymbol{\varsubsetneqq} {\mathrel}{AMSa}{166}
+\DeclareMathSymbol{\varsupsetneqq} {\mathrel}{AMSa}{167}
+\DeclareMathSymbol{\subsetneq} {\mathrel}{AMSa}{168}
+\DeclareMathSymbol{\supsetneq} {\mathrel}{AMSa}{169}
+\DeclareMathSymbol{\nsubseteq} {\mathrel}{AMSa}{170}
+\DeclareMathSymbol{\nsupseteq} {\mathrel}{AMSa}{171}
+\DeclareMathSymbol{\nparallel} {\mathrel}{AMSa}{172}
+\DeclareMathSymbol{\nmid} {\mathrel}{AMSa}{173}
+\DeclareMathSymbol{\nshortmid} {\mathrel}{AMSa}{174}
+\DeclareMathSymbol{\nshortparallel} {\mathrel}{AMSa}{175}
+\DeclareMathSymbol{\nvdash} {\mathrel}{AMSa}{176}
+\DeclareMathSymbol{\nVdash} {\mathrel}{AMSa}{177}
+\DeclareMathSymbol{\nvDash} {\mathrel}{AMSa}{178}
+\DeclareMathSymbol{\nVDash} {\mathrel}{AMSa}{179}
+\DeclareMathSymbol{\ntrianglerighteq}{\mathrel}{AMSa}{180}
+\DeclareMathSymbol{\ntrianglelefteq}{\mathrel}{AMSa}{181}
+\DeclareMathSymbol{\ntriangleleft} {\mathrel}{AMSa}{182}
+\DeclareMathSymbol{\ntriangleright} {\mathrel}{AMSa}{183}
+\DeclareMathSymbol{\nleftarrow} {\mathrel}{AMSa}{184}
+\DeclareMathSymbol{\nrightarrow} {\mathrel}{AMSa}{185}
+\DeclareMathSymbol{\nLeftarrow} {\mathrel}{AMSa}{186}
+\DeclareMathSymbol{\nRightarrow} {\mathrel}{AMSa}{187}
+\DeclareMathSymbol{\nLeftrightarrow}{\mathrel}{AMSa}{188}
+\DeclareMathSymbol{\nleftrightarrow}{\mathrel}{AMSa}{189}
+\DeclareMathSymbol{\divideontimes} {\mathbin}{AMSa}{190}
+\DeclareMathSymbol{\varnothing} {\mathord}{AMSa}{191}
+\DeclareMathSymbol{\nexists} {\mathord}{AMSa}{192}
+\DeclareMathSymbol{\Finv} {\mathord}{AMSa}{193}
+\DeclareMathSymbol{\Game} {\mathord}{AMSa}{194}
+\DeclareMathSymbol{\mho} {\mathord}{AMSa}{195}
+\DeclareMathSymbol{\eth} {\mathord}{AMSa}{196}
+\DeclareMathSymbol{\eqsim} {\mathrel}{AMSa}{197}
+\DeclareMathSymbol{\beth} {\mathord}{AMSa}{198}
+\DeclareMathSymbol{\gimel} {\mathord}{AMSa}{199}
+\DeclareMathSymbol{\daleth} {\mathord}{AMSa}{200}
+\DeclareMathSymbol{\lessdot} {\mathbin}{AMSa}{201}
+\DeclareMathSymbol{\gtrdot} {\mathbin}{AMSa}{202}
+\DeclareMathSymbol{\ltimes} {\mathbin}{AMSa}{203}
+\DeclareMathSymbol{\rtimes} {\mathbin}{AMSa}{204}
+\DeclareMathSymbol{\shortmid} {\mathrel}{AMSa}{205}
+\DeclareMathSymbol{\shortparallel} {\mathrel}{AMSa}{206}
+\let\smallsetminus=\setdif
+\DeclareMathSymbol{\thicksim} {\mathrel}{AMSa}{207}
+\DeclareMathSymbol{\thickapprox} {\mathrel}{AMSa}{208}
+\DeclareMathSymbol{\approxeq} {\mathrel}{AMSa}{209}
+\DeclareMathSymbol{\succapprox} {\mathrel}{AMSa}{210}
+\DeclareMathSymbol{\precapprox} {\mathrel}{AMSa}{211}
+\DeclareMathSymbol{\curvearrowleft} {\mathrel}{AMSa}{212}
+\DeclareMathSymbol{\curvearrowright}{\mathrel}{AMSa}{213}
+%\DeclareMathSymbol{\digamma} {\mathord}{AMSa}{"7A}
+%\DeclareMathSymbol{\varkappa} {\mathord}{AMSa}{"7B}
+\newcommand{\Bbbk}{\mathbb{k}}
+%\DeclareMathSymbol{\hslash} {\mathord}{AMSa}{"7D}
+%\DeclareMathSymbol{\hbar} {\mathord}{AMSa}{"7E}
+\DeclareMathSymbol{\backepsilon} {\mathrel}{AMSa}{214}
+\DeclareMathSymbol{\nsqsubset} {\mathrel}{AMSa}{215}
+\DeclareMathSymbol{\nsqsupset} {\mathrel}{AMSa}{216}
+%\DeclareMathSymbol{\nsqsubseteq} {\mathrel}{AMSa}{217}
+%\DeclareMathSymbol{\nsqsupseteq} {\mathrel}{AMSa}{218}
+% \end{macrocode}
+% To make \Lpack{mtpams} fully compatible with \Lpack{amssymb}, certain symbols
+% must be given alternative names (which are known from \LaTeX~2.09 or from
+% the \Lpack{latexsym} package, respectively).
+% \begin{macrocode}
+\let\Box\square
+\let\lhd\vartriangleleft
+\let\rhd\vartriangleright
+\let\unrhd\trianglerighteq
+\let\unlhd\trianglelefteq
+\let\Join\bowtie
+% \end{macrocode}
+% \begin{macrocode}
+\fi
+% \end{macrocode}
+%
+%
+% \subsection{Math font sizes}
+%
+% \mtpro, unlike most other Type~1 font families,
+% has several design sizes. As a result, we can
+% make the subscripts and superscripts (almost) as small as
+% with standard \TeX.
+% \begin{macrocode}
+\def\defaultscriptratio{.7}
+\def\defaultscriptscriptratio{.55}
+\DeclareMathSizes{5}{5}{5}{5}
+\DeclareMathSizes{6}{6}{5}{5}
+\DeclareMathSizes{7}{7}{5}{5}
+\DeclareMathSizes{8}{8}{6}{5}
+\DeclareMathSizes{9}{9}{7}{5.5}
+\DeclareMathSizes{\@xpt}{\@xpt}{7}{5.5}
+\DeclareMathSizes{\@xipt}{\@xipt}{8}{6}
+\DeclareMathSizes{\@xiipt}{\@xiipt}{8}{6}
+\DeclareMathSizes{\@xivpt}{\@xivpt}{\@xpt}{7}
+\DeclareMathSizes{\@xviipt}{\@xviipt}{\@xiipt}{\@xpt}
+\DeclareMathSizes{\@xxpt}{\@xxpt}{\@xivpt}{\@xiipt}
+\DeclareMathSizes{\@xxvpt}{\@xxvpt}{\@xxpt}{\@xviipt}
+% \end{macrocode}
+%
+%
+% \subsection{Encoding-specific text commands}
+%
+% Some encoding-specific commands default to the OML or OMS encoding.
+% As these encodings are not used with
+% \mtpro, we need to change the defaults.
+%
+% These ones used to default to OML:
+% \begin{macrocode}
+\DeclareTextSymbolDefault{\textless}{LMP1}
+\DeclareTextSymbolDefault{\textgreater}{LMP1}
+\DeclareTextAccentDefault{\t}{LMP2}
+% \end{macrocode}
+% After re-declaring the default encoding we must not forget to
+% declare the very symbol, otherwise calling the command will
+% generate a loop. Or to quote David:
+% \begin{quote}
+% Hmm, otherwise you waste an hour or two staring at |\tracingall|
+% output trying to work out what the heck is happening.
+% \end{quote}
+% \begin{macrocode}
+\DeclareTextSymbol{\textless}{LMP1}{`\<}
+\DeclareTextSymbol{\textgreater}{LMP1}{`\>}
+\DeclareTextAccent{\t}{LMP2}{65}
+% \end{macrocode}
+%
+% These ones used to default to OMS:
+% \begin{macrocode}
+\DeclareTextSymbolDefault{\textasteriskcentered}{LMP2}
+\DeclareTextSymbolDefault{\textbackslash}{LMP2}
+\DeclareTextSymbolDefault{\textbar}{LMP2}
+\DeclareTextSymbolDefault{\textbraceleft}{LMP2}
+\DeclareTextSymbolDefault{\textbraceright}{LMP2}
+\DeclareTextSymbolDefault{\textbullet}{LMP2}
+\DeclareTextSymbolDefault{\textperiodcentered}{LMP2}
+\DeclareTextAccentDefault{\textcircled}{LMP2}
+\DeclareTextSymbol{\textasteriskcentered}{LMP2}{3}
+\DeclareTextSymbol{\textbackslash}{LMP2}{110}
+\DeclareTextSymbol{\textbar}{LMP2}{106}
+\DeclareTextSymbol{\textbraceleft}{LMP2}{102}
+\DeclareTextSymbol{\textbraceright}{LMP2}{103}
+\DeclareTextSymbol{\textbullet}{LMP2}{15}
+\DeclareTextSymbol{\textperiodcentered}{LMP2}{1}
+\DeclareTextCommand{\textcircled}{LMP2}[1]{{%
+ \ooalign{%
+ \hfil \raise .07ex\hbox {\upshape#1}\hfil \crcr
+ \char13}}}
+% \end{macrocode}
+% The remaining symbols need \emph{not} be redefined,
+% if the \Lpack{textcomp} package is also loaded.
+% \begin{macrocode}
+\@ifpackageloaded{textcomp}{}{%
+ \DeclareTextSymbolDefault{\textdagger}{LMP1}
+ \DeclareTextSymbolDefault{\textdaggerdbl}{LMP1}
+ \DeclareTextSymbolDefault{\textsection}{LMP1}
+ \DeclareTextSymbolDefault{\textparagraph}{LMP1}
+ \DeclareTextSymbol{\textdagger}{LMP1}{"8E}
+ \DeclareTextSymbol{\textdaggerdbl}{LMP1}{"8F}
+ \DeclareTextSymbol{\textsection}{LMP1}{"90}
+ \DeclareTextSymbol{\textparagraph}{LMP1}{"91}}
+% \end{macrocode}
+%
+% \subsection{Encoding-specific math commands}
+% \cmd{\mathsterling} and \cmd{\mathunderscore} come from the `operators' font.
+% The default definitions supplied by \LaTeX{} match OT1,
+% so the commands must be redefined, if the encoding is LY1 or T1.
+% \begin{macrocode}
+\def\@tempa{LY1}
+\ifx\encodingdefault\@tempa
+ \DeclareMathSymbol{\mathsterling}{\mathord}{operators}{163}
+ \let\mathunderscore\@undefined
+ \DeclareMathSymbol{\mathunderscore}{\mathord}{operators}{95}
+\else
+ \def\@tempa{T1}
+ \ifx\encodingdefault\@tempa
+ \DeclareMathSymbol\mathsterling{\mathord}{operators}{191}
+ \let\mathunderscore\@undefined
+ \DeclareMathSymbol\mathunderscore{\mathord}{operators}{95}
+ \fi
+\fi
+% \end{macrocode}
+%
+%
+% \subsection{Subscript correction}
+%
+% We provide a definition for |_| as active character. This definition
+% in itself is not changing \LaTeX's behavior, as by default |_| has
+% category code |8|, i.e., subscript character. Only if we change this |\catcode|
+% or if we change the |\mathcode| of |_| \TeX{} is going to look at it.
+%
+% With \Lpack{mtpro2} the implementation we once had inherited from Y\&Y's
+% \Lopt{mathtime} package is given up.
+% The new code, which was written by Mike Spivak, has the advantage that
+% constructs such as |_\mathrm{...}| and |_\text{...}| can be used just like
+% in standard \LaTeX---even though this is not explicitly advertised.
+%
+% \begin{macrocode}
+\begingroup
+ \catcode`\_=13
+ \gdef_{\futurelet\next\s@@b}
+\endgroup
+% \end{macrocode}
+% Once again, the macro |\space@| is used,
+% which was defined at the beginning of section~\ref{spacemacro}.
+% \begin{macrocode}
+\def\s@@b{\ifcat\relax\noexpand\next\expandafter\sb\else
+ \expandafter\s@@b@\fi}
+\def\s@@b@#1{\sb{\futurelet\next\sb@#1}}
+\def\sb@{%
+ \ifx\next\space@\def\next@. {\futurelet\next\sb@}\else
+ \def\next@.{%
+ \ifx\next f\mkern-\thr@@ mu\else
+ \ifx\next j\mkern-\tw@ mu\else
+ \ifx\next p\mkern-\tw@ mu\else
+ \ifx\next t\mkern\@ne mu\else
+ \ifx\next y\mkern-\@ne mu\else
+ \ifx\next A\mkern-\tw@ mu\else
+ \ifx\next B\mkern-\@ne mu\else
+ \ifx\next D\mkern-\@ne mu\else
+ \ifx\next H\mkern-\@ne mu\else
+ \ifx\next I\mkern-\@ne mu\else
+ \ifx\next K\mkern-\@ne mu\else
+ \ifx\next L\mkern-\@ne mu\else
+ \ifx\next M\mkern-\@ne mu\else
+ \ifx\next P\mkern-\@ne mu\else
+ \ifx\next X\mkern-\tw@ mu\else
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
+ \fi
+ \next@.}
+% \end{macrocode}
+%
+% Finally we set the |\mathcode| of |_| to `active'. However, as long
+% as its |\catcode| is not changed, this |\mathcode| is never looked at;
+% in other words: we can now turn the feature on and off by changing the
+% |\catcode| to |12|, which is done in the option code.
+% \begin{macrocode}
+\mathcode`\_=\string"8000
+% \end{macrocode}
+%
+%
+% \subsection{Alternative $z$}
+%
+% We want |$z$| to use character 0xB4 alternatively, but we want this to happen only in the
+% default math alphabet.
+% For this purpose we define two macros for the `normal' and the alternative z:
+% \begin{macrocode}
+\DeclareMathSymbol{\mtp@z}{\mathalpha}{letters}{`z}
+\DeclareMathSymbol{\mtp@@z}{\mathalpha}{letters}{"B4}
+% \end{macrocode}
+% The option \Lopt{zswash} makes |z| active in math mode by changing its |\mathcode| appropriately.
+% The below definition of this active character causes z to expand to the alternative
+% $z$ in the default math alphabet and to the normal letter |z| otherwise:
+% \begin{macrocode}
+\begingroup
+\lccode`\~=`\z
+\lowercase{\gdef ~{\ifnum\the\mathgroup=\m@ne \mtp@@z \else \mtp@z \fi}}
+\endgroup
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</mtpro>
+% \end{macrocode}
+%
+%
+% \section{The font definitions files}
+%
+% Font definitions for the math `core' fonts are integrated into the package.
+% Only the extra math alphabets keep their FD files, so that they can be
+% used w/o the package, too.
+%
+% \subsection{LucidaNewMath-Symbols}
+% We can no longer rely on \texttt{omslby.fd} to exist;
+% besides, that file would not work any more with the current Lucida distribution,
+% because it is using obsolete font names.
+% \begin{macrocode}
+%<*omslbm>
+\DeclareFontFamily{OMS}{lbm}{\skewchar\font48}
+\DeclareFontShape{OMS}{lbm}{m}{n}{<->s * [.9]hlcry}{}
+\DeclareFontShape{OMS}{lbm}{b}{n}{<->s * [.9]hlcdy}{}
+%</omslbm>
+% \end{macrocode}
+%
+% \subsection{\mtplus Script}
+% The script alphabet from the \mtplus font set
+% may be useful in conjunction with \mtpro, too.
+% The \texttt{.fd} file generated here should equal the one
+% from FMi's \Lpack{mathtime} bundle.
+% \begin{macrocode}
+%<*Umtms>
+\DeclareFontFamily{U}{mtms}{\skewchar\font42}
+\DeclareFontShape{U}{mtms}{m}{n}{<->mtms}{}
+\DeclareFontShape{U}{mtms}{b}{n}{<->mtmsb}{}
+%</Umtms>
+% \end{macrocode}
+%
+%
+%
+% \subsection{Times-compatible Math Script and Fraktur fonts}
+% These fonts belong to the complete font set; yet the fd files are always generated.
+% With \mtpro \textit{II} the new `Curly' font is assigned to the upright (n) shape.
+% \begin{macrocode}
+%<*umt2ms>
+\DeclareFontFamily{U}{mt2ms}{\skewchar\font42}%
+\DeclareFontShape{U}{mt2ms}{m}{n}{<-7>mt2mcf<7-9>mt2mcs<9->mt2mct}{}%
+\DeclareFontShape{U}{mt2ms}{m}{it}{<-7>mt2msf<7-9>mt2mss<9->mt2mst}{}%
+\DeclareFontShape{U}{mt2ms}{b}{it}{<-7>mt2bmsf<7-9>mt2bmss<9->mt2bmst}{}%
+%</umt2ms>
+% \end{macrocode}
+% \begin{macrocode}
+%<*umt2mf>
+\DeclareFontFamily{U}{mt2mf}{}%
+\DeclareFontShape{U}{mt2mf}{m}{n}{<-7>mt2mff<7-9>mt2mfs<9->mt2mft}{}%
+\DeclareFontShape{U}{mt2mf}{b}{n}{<-7>mt2bmff<7-9>mt2bmfs<9->mt2bmft}{}%
+%</umt2mf>
+% \end{macrocode}
+%
+%
+% \subsection{Times-compatible Blackboard and Holey Bold fonts}
+% These fonts belong to the complete font set; yet, the fd files are always generated.
+% \begin{macrocode}
+%<*umt2bb>
+\DeclareFontFamily{U}{mt2bb}{\skewchar\font45}%
+\DeclareFontShape{U}{mt2bb}{m}{n}{<-7>mt2bbf<7-9>mt2bbs<9->mt2bbt}{}%
+\DeclareFontShape{U}{mt2bb}{m}{it}{<-7>mt2bbif<7-9>mt2bbis<9->mt2bbit}{}%
+\DeclareFontShape{U}{mt2bb}{b}{n}{<-7>mt2bbdf<7-9>mt2bbds<9->mt2bbdt}{}%
+%</umt2bb>
+% \end{macrocode}
+% \begin{macrocode}
+%<*umt2hrb>
+\DeclareFontFamily{U}{mt2hrb}{\skewchar\font45}%
+\DeclareFontShape{U}{mt2hrb}{m}{n}{<-7>mt2hrbf<7-9>mt2hrbs<9->mt2hrbt}{}%
+\DeclareFontShape{U}{mt2hrb}{m}{it}{<-7>mt2hbif<7-9>mt2hbis<9->mt2hbit}{}%
+\DeclareFontShape{U}{mt2hrb}{b}{n}{<-7>mt2hrbdf<7-9>mt2hrbds<9->mt2hrbdt}{}%
+%</umt2hrb>
+% \end{macrocode}
+%
+% \Finale
+%
+% \iffalse
+% The next line of code prevents DocStrip from adding the
+% character table to all modules:
+\endinput
+% \fi
+%
+%% \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 \~}
+%%
+
diff --git a/fonts/mtp2lite/texmf/source/latex/mtpro2/mtpro2.ins b/fonts/mtp2lite/texmf/source/latex/mtpro2/mtpro2.ins
new file mode 100644
index 0000000000..ebe6a3c5ab
--- /dev/null
+++ b/fonts/mtp2lite/texmf/source/latex/mtpro2/mtpro2.ins
@@ -0,0 +1,39 @@
+%% mtpro2.ins 2.0 2006/07/30 (WaS)
+
+\input docstrip
+
+\ifx\generate\undefined
+ \Msg{**********************************************}
+ \Msg{*}
+ \Msg{* This installation script requires docstrip}
+ \Msg{* version 2.4 or later.}
+ \Msg{*}
+ \Msg{* An older version of docstrip has been found.}
+ \Msg{*}
+ \Msg{**********************************************}
+ \errhelp{Obtain an up-to-date version of LaTeX2e.}
+ \errmessage{Obsolete docstrip in input path}
+ \batchmode
+ \csname @@end\endcsname\end
+\fi
+
+%\usedir{tex/latex/pctex}
+
+\preamble
+\endpreamble
+\askforoverwritefalse
+
+% Create a .sty file with separate .fd files:
+
+\generate{\file{mtpro2.sty} {\from{mtpro2.dtx}{mtpro}}
+ \file{omslbm.fd} {\from{mtpro2.dtx}{omslbm}}
+% \file{Umtms.fd} {\from{mtpro2.dtx}{Umtms}}
+% should already exist, if you have got the MathTime fonts
+ \file{umt2mf.fd} {\from{mtpro2.dtx}{umt2mf}}
+ \file{umt2bb.fd} {\from{mtpro2.dtx}{umt2bb}}
+ \file{umt2hrb.fd} {\from{mtpro2.dtx}{umt2hrb}}
+ \file{umt2ms.fd} {\from{mtpro2.dtx}{umt2ms}}
+ }
+
+
+\endbatchfile