%\iffalse %% Copyright 1996 1997 Frank Mittelbach and David Carlisle. %% Copyright 2001--2009 Frank Mittelbach, David Carlisle, Walter Schmidt, Mike Spivak %<*dtx> \ProvidesFile{mtpro2.dtx} % %\NeedsTeXFormat{LaTeX2e}[1997/06/01] %\ProvidesPackage{mtpro2} %\ProvidesFile{umtms.fd}% %\ProvidesFile{omslbm.fd}% %\ProvidesFile{umt2bb.fd}% %\ProvidesFile{umt2hrb.fd}% %\ProvidesFile{umt2ms.fd}% %\ProvidesFile{umt2mf.fd}% %\ProvidesFile{mtpro.drv} % \fi % \ProvidesFile{mtpro2.dtx} [2009/4/27 v2.3 % MathTimePro II - added arc accents % MathTimePro II - fixed rbrace problem with straightbraces and morphedbraces options %, Revised skewchars for math accents % MathTimePro II - fix bug with z = \backslash widetilde{\backslash sum_{x }}% % MathTimePro II v2 font support (PCTeX/WaS)% % MathTimePro II v2.1a Allowed alternate form of I in Math Script Fonts (MS)% % Math Time Plus Script (FMi)% % Lucida New Math Symbols (PCTeX/WaS)% % MathTimePro II Blackboard Bold (PCTeX/WaS)% % MathTimePro II Holey Roman Bold (PCTeX/WaS)% % MathTimePro II Script (PCTeX/WaS)% % 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} % % \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 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 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 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} % % \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}{} % % \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}{} % % \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}{}% % % \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}{}% % % \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}{}% % % \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}{}% % % \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 \~} %%