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