%\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         \~}
%%

