% \iffalse meta-comment
%    Time-stamp: <06-02-2011 23:43:34 CET JF>
%    File `mathastext.dtx'
%    
%    Copyright (C) 2011 by Jean-Francois Burnol
%   
%    Please report errors to jfbu at free . fr
%    Illustrative examples available at
%        http://jf.burnol.free.fr/mathastext.html
%    
%    This file be distributed and/or modified under the
%    conditions of the LaTeX Project Public License,
%    either version 1.3 of this license or (at your
%    option) any later version.  The latest version of
%    this license is in
%    http://www.latex-project.org/lppl.txt 
%    and version 1.3 or later is part of all distributions of
%    LaTeX version 2003/12/01 or later.  
% \fi 
% \iffalse
%<*dtx>    
\ProvidesFile{mathastext.dtx}
             [2011/02/06 1.11 Use the text font in simple mathematics]
%</dtx>
% 
%<*driver>
\documentclass[a4paper]{ltxdoc}
\setlength{\topmargin}{0pt} 
\setlength{\headsep}{12pt}
\setlength{\headheight}{10pt}
\setlength{\textheight}{600pt}
\setlength{\footskip}{34pt}
\setlength{\textwidth}{360pt}
\setlength{\oddsidemargin}{46pt}
\setlength{\marginparwidth}{100pt}
%% glyphs from the Symbol font
\DeclareSymbolFont{mtpsymbol}{U}{psy}{m}{n}
\makeatletter
  \DeclareFontFamily{U}{psy}{}
  \DeclareFontShape{U}{psy}{m}{n}{<-> psyr}{}
\let\prod\undefined
\DeclareMathSymbol{\prod}{\mathop}{mtpsymbol}{213}
\let\sum\undefined
\DeclareMathSymbol{\sum}{\mathop}{mtpsymbol}{229}
\DeclareMathSymbol{\mt@implies}{\mathrel}{mtpsymbol}{222}
\DeclareRobustCommand{\implies}{\;\mt@implies\;}
\DeclareMathSymbol{\mt@impliedby}{\mathrel}{mtpsymbol}{220}
\DeclareRobustCommand{\impliedby}{\;\mt@impliedby\;}
\DeclareRobustCommand{\iff}{\;\mt@impliedby\mathrel{\mkern-3mu}\mt@implies\;}
\DeclareMathSymbol{\mt@iff}{\mathrel}{mtpsymbol}{219}
\DeclareRobustCommand{\shortiff}{\;\mt@iff\;}
\DeclareMathSymbol{\mt@to}{\mathrel}{mtpsymbol}{174}
\DeclareMathSymbol{\mt@trait}{\mathrel}{mtpsymbol}{190}
\DeclareRobustCommand\to{\mt@to}
\DeclareRobustCommand\longto{\mkern2mu\mt@trait\mathrel{\mkern-10mu}\mt@to}
\DeclareRobustCommand\mapsto{\mapstochar\mathrel{\mkern0.2mu}\mt@to}
\DeclareRobustCommand\longmapsto{%
\mapstochar\mathrel{\mkern2mu}\mt@trait\mathrel{\mkern-10mu}\mt@to}
\makeatother
%%
\DeclareMathSymbol{\aleph}{\mathord}{mtpsymbol}{192}
\DeclareMathSymbol{\inftypsy}{\mathord}{mtpsymbol}{165} 
\DeclareMathSymbol{\emptyset}{\mathord}{mtpsymbol}{198}
\let\varnothing\emptyset
\DeclareMathSymbol{\nabla}{\mathord}{mtpsymbol}{209}
\DeclareMathSymbol{\surd}{\mathop}{mtpsymbol}{214}
\let\angle\undefined
\DeclareMathSymbol{\angle}{\mathord}{mtpsymbol}{208}
\DeclareMathSymbol{\forall}{\mathord}{mtpsymbol}{34}
\DeclareMathSymbol{\exists}{\mathord}{mtpsymbol}{36}
\DeclareMathSymbol{\neg}{\mathord}{mtpsymbol}{216}
\DeclareMathSymbol{\clubsuit}{\mathord}{mtpsymbol}{167}
\DeclareMathSymbol{\diamondsuit}{\mathord}{mtpsymbol}{168}
\DeclareMathSymbol{\heartsuit}{\mathord}{mtpsymbol}{169}
\DeclareMathSymbol{\spadesuit}{\mathord}{mtpsymbol}{170}
\DeclareMathSymbol{\smallint}{\mathop}{mtpsymbol}{242}
\DeclareMathSymbol{\wedge}{\mathbin}{mtpsymbol}{217}
\DeclareMathSymbol{\vee}{\mathbin}{mtpsymbol}{218}
\DeclareMathSymbol{\cap}{\mathbin}{mtpsymbol}{199}
\DeclareMathSymbol{\cup}{\mathbin}{mtpsymbol}{200}
\DeclareMathSymbol{\bullet}{\mathbin}{mtpsymbol}{183}
\DeclareMathSymbol{\div}{\mathbin}{mtpsymbol}{184}
\DeclareMathSymbol{\otimes}{\mathbin}{mtpsymbol}{196}
\DeclareMathSymbol{\oplus}{\mathbin}{mtpsymbol}{197}
\DeclareMathSymbol{\pm}{\mathbin}{mtpsymbol}{177}
\DeclareMathSymbol{\ast}{\mathbin}{mtpsymbol}{42}
\DeclareMathSymbol{\times}{\mathbin}{mtpsymbol}{180}
\DeclareMathSymbol{\proptopsy}{\mathrel}{mtpsymbol}{181}
\DeclareMathSymbol{\mid}{\mathrel}{mtpsymbol}{124} 
\DeclareMathSymbol{\leq}{\mathrel}{mtpsymbol}{163}
\DeclareMathSymbol{\geq}{\mathrel}{mtpsymbol}{179}
\DeclareMathSymbol{\approx}{\mathrel}{mtpsymbol}{187}
\DeclareMathSymbol{\supset}{\mathrel}{mtpsymbol}{201}
\DeclareMathSymbol{\subset}{\mathrel}{mtpsymbol}{204}
\DeclareMathSymbol{\supseteq}{\mathrel}{mtpsymbol}{202}
\DeclareMathSymbol{\subseteq}{\mathrel}{mtpsymbol}{205}
\DeclareMathSymbol{\in}{\mathrel}{mtpsymbol}{206}
\DeclareMathSymbol{\sim}{\mathrel}{mtpsymbol}{126}
\let\cong\undefined
\DeclareMathSymbol{\cong}{\mathrel}{mtpsymbol}{64} 
\DeclareMathSymbol{\perp}{\mathrel}{mtpsymbol}{94}
\DeclareMathSymbol{\equiv}{\mathrel}{mtpsymbol}{186}
\let\notin\undefined
\DeclareMathSymbol{\notin}{\mathrel}{mtpsymbol}{207}
\DeclareMathDelimiter{\rangle}
   {\mathclose}{mtpsymbol}{241}{largesymbols}{"0B}
\DeclareMathDelimiter{\langle}
   {\mathopen}{mtpsymbol}{225}{largesymbols}{"0A}
\DeclareMathSymbol{\Re}{\mathord}{mtpsymbol}{"C2}
\DeclareMathSymbol{\Im}{\mathord}{mtpsymbol}{"C1}
\DeclareMathSymbol{\DotTriangle}{\mathord}{mtpsymbol}{92}
%\RecordChanges
%\OnlyDescription
\begin{document}
 \DocInput{mathastext.dtx}
\end{document}
%</driver>
% \fi
% \changes{1.11}{2011/02/06}{
%    * bugs from version 1.1 have been fixed. 
%         * Among them the non correct behavior when
%         eulergreek and one of the symbol options were used
%         at the same time. 
%         * Also the macro \cs{Mathastext} did not
%         contrarily to what was said in the docs pick up
%         the font defaults at the time of it being used in
%         the preamble. 
%         * the endash option provoked an error when used
%         with XeTeX or LuaTeX.
%    * for brevity sake long macro names starting with
%    \cs{Mathastext\cdots} now exist in the form
%    \cs{MT\cdots} 
%    * the |endash| option is made default, as well as the
%    |alldelims| option. A new |symboldelimiters| option
%    specifies to use the Symbol font for characters others
%    then letters and digits. 
%    * the \cs{fouriervec} command must be explicitely
%    requested by the |fouriervec| option
%    * the command \cs{Mathastext} now accepts an optional
%    argument which, if present, makes \cs{Mathastext} acts
%    as \cs{MathastextDeclareVersion} with the current font
%    defaults, the optional argument giving the name of the
%    version. This mechanism allows to use |mathastext| with
%    unicode fonts (XeTeX or LuaTeX with |fontspec|)
%    * |mathastext| is more clever for the dotless i and j
%    and the hbar with respect to encoding problems; and it
%    knows also their Unicode locations.
%    }
%
% \changes{1.1}{2011/02/01}{
%   * option |italic|: this is the main change for the user. Internally we now
%   have two distinct fonts, however they differ only in shape. 
%       * the mechanism of math versions is extended to accomodate this: the
%       macros \cs{MathastextWillUse} and \cs{MathastextDeclareVersion} now
%       accept an optional argument for specifying the letters' shape  
%       * |frenchmath| sets the uppercase Latin letters nevertheless in the
%       digits font 
%       * \cs{mathnormal}, \cs{mathrm}, \cs{mathbf} work in the same way as in
%       standard \LaTeX{}, but with the |mathastext| font. But I do nothing
%       with the other default alphabet changing commands.
%   * the minus sign can be represented as an en-dash. This seems to be clever
%   enough to accomodate all 8bit encodings, not limited to OT1 or T1.
%   * the |noplusnominus| option is split into two
%   * I change the way the encoding is chosen for the math accents: I use the
%   default encoding at the time of loading. So there is nothing more in the
%   code at AtBeginDocument for this. I do not know an automatic way to go
%   from the encoding to the accent slots, and I did not want to manually
%   incorporate here all possible or at least many encodings, so basically
%   only OT1 and T1 are ok. Default to OT1. Of course in case on more than one
%   math versions, they should have the same encoding for everything to work
%   everywhere. 
%   * same change for \cs{imath}: but defaults to T1.
%   * some attention devoted to |hbar|. Works ok, or at least reasonably with
%   the fonts I tested. Adjusts to whether or not the |italic| option was used. 
%   * |defaultvec| deprecated, rather we now have \cs{fouriervec} command to
%   access the vec accent from the Fourier font. 
%   * new alphabet commands \cs{mathnormalbold}, \cs{MathEulerBold}, and
%   \cs{MathEuler} and \cs{MathPSymbol} have new names.
%   * names for the capital Greek letters which look like their Latin versions.
%   * bug fixed: the character slot for \cs{Xi} in the Symbol font was wrong.
%   **** limitations: 
%        * the \cs{pmvec} accent will not change its size when
%        used in subscripts or exponents
%        * now that internally we have two fonts for letters and
%        digits they could be entirely unrelated, it is just a
%        question of providing the user macros to pass the info to
%        the package, and to duplicate some variables. As this
%        goes really against the initial design goals, and adds
%        complications, I did not do it.}
%
% \changes{1.0}{2011/01/25}{Initial version.}
%
% \GetFileInfo{mathastext.dtx}
%
% \begin{center}
%   {\Large The \texttt{mathastext} package}\\
%   Jean-Fran\c cois \textsc{Burnol}\\
%   \texttt{jfbu at free dot fr}
% \end{center}
%
%  \begin{abstract}
%    The |mathastext| package\footnote{This document describes |mathastext|
%    version \fileversion\ (\filedate).} propagates the document {\em text}
%    font to {\em mathematical} mode, for the letters and digits of the Latin
%    alphabet and, optionally, some further characters. The idea is to produce
%    handouts or research papers with a less book-like typography than what is
%    typical of standard \TeX\ with the Computer Modern fonts. Hopefully, this
%    will force the reader to concentrate more on the contents ;-). It also
%    makes it possible (for a document with simple mathematics) to use a quite
%    arbitrary font without worrying too much that it does not have specially
%    designed accompanying math fonts. Also, |mathastext| provides a simple
%    mechanism in order to use many different choices of (text hence, now,
%    math) fonts in the same document (not that we recommend it!).  A final
%    aspect is that |mathastext| helps sometimes produce smaller PDF files.
% 
%  \begin{center}
%    Further documentation, and examples, are available here:\\
%    |http://jf.burnol.free.fr/mathastext.html|
%  \end{center}
%  \end{abstract}
%
%  \section{Description of what the package does}
%
%    \subsection{Motivation}
%
%    |mathastext| was conceived as a result of frustration of
%    distributing to students \TeX-crafted mathematical handouts with
%    a subsequent realization that not much had made it to a
%    semi-permanent brain location. So, I forced \LaTeX\ to produce
%    material as if written on a primitive typewriter, a little bit
%    like the good old seminar notes of the Cartan and Grothendieck
%    days. Don't ask me if this helped, I have long since opted for a
%    positive attitude in life.
%    
%    The package |mathastext| is less extreme, but retains
%    the idea of using inside mathematics the same font as
%    is used for text for the letters of the Latin
%    alphabet and the digits:\\
%    \centerline{abcdefghijklmnopqrstuvwxyz}
%    \centerline{ABCDEFGHIJKLMNOPQRSTUVWXYZ}
%    \centerline{0123456789} By
%    default the text font will also be used for:\\
%    \DeleteShortVerb{\|}
%    \centerline{!\,?\,*\,,\,.\,:\,;\,+\,\textendash\,=\,(\,)\,[\,]\,/\,\#\,%
%    \$\,\%\,\&\,$\mathord{<}\,\mathord{>}\,\mathord{|}$\,\{\,\}
%    and $\backslash$} If the package detects at the time of
%    being loaded that the default encoding is OT1, it takes
%    out from the list
%    $\mathord{<}\,\mathord{>}\,\mathord{|}$\,\{\,\} and
%    $\backslash$.  \MakeShortVerb{\|} The option
%    |alldelims| can force re-integration in case one uses a
%    fixed-width OT1 font.
%
%    The commands \cs{mathnormal}, \cs{mathrm} and
%    \cs{mathbf} are modified but nothing is changed to
%    \cs{mathit} and the other math alphabet commands which
%    will use the default math fonts, not the text font.
%
%    A very short list of further glyphs will be also picked
%    up in or constructed from the text font: the dotless i
%    and j, the hbar and the math accents. By default the
%    en-dash \textendash{} is used for the minus sign and
%    not the hyphen character -. Version |1.11| brings a
%    better compatibility with a Unicode setting (assuming
%    that |fontspec| is made use of), but the scope of
%    |mathastext| does not include directly input 
%    letters with diacritics \'e, \`a, \"o in math
%    mode. Users of Xe\TeX{} are advised to look at the much
%    more sophisticated and encompassing |mathspec| package.
%
%    Even when typesetting simple mathematics, some glyphs
%    may have to be taken from the default math fonts, for
%    example the prime $\prime$. 
%
%    \subsection{The italic option}
%
%    In the initial version |1.0|, the package gave the same
%    shape to both letters and digits, either the one given
%    by \cs{shapedefault} at the time of loading the
%    package, or another one specified by the user, and this
%    was deliberate. This gives a very uniform look to the
%    document, so that one has to make an effort and read it
%    with attention, I explained above why I did this on
%    purpose.
%
%    Nevertheless, soon after I posted the package to CTAN, I was overwhelmed
%    by numerous\footnote{this means ``more then one.''} questions\footnote{I
%    thank in particular Tariq~\textsc{Perwez} and Kevin~\textsc{Klement} for
%    their kind remarks (chronological order).}  on how to have
%    the letters be in italic shape. 
%
%    The version |1.1| provided precisely this feature. The
%    default is still, as in version |1.0|, for everything to be
%    in upright shape, but it suffices to pass to the package the
%    option |italic|. There is now also an option |frenchmath| to
%    make the uppercase letters nevertheless upright, because this
%    is the way of traditional French mathematical typography.
%
%    \subsection{Greek letters}
%
%    Regarding the Greek letters: the default (lowercase)
%    ones from Computer Modern are slanted, hence, if the
%    |italic| option just mentioned is not made use of, they
%    will not mix well with upright letters (besides, the
%    Computer Modern typefaces are very light in comparison
%    to many text fonts). So there are options to take these
%    glyphs either from the Euler font or from the
%    Postscript Symbol font. Both are included in all
%    \LaTeX{} distributions. Although no package loading is
%    necessary for the user, nor done internally by
%    |mathastext|, the file |uzeur.fd| from the |eulervm|
%    package must be accessible to \LaTeX{} as it provides a
%    mechanism to scale by an arbitrary factor the Euler
%    font. For the Postscript Symbol font (which is included
%    in the basic \LaTeX{} distribution), |mathastext| does
%    internally what is necessary, so that in both cases
%    commands are provided so that the user can scale the
%    font with respect to nominal size.
%
%    Of course, it is also possible to access upright Greek
%    letters via loading first specific packages providing math
%    fonts, for example the |fourier| package (with option
%    `upright'). One just has to make sure to load |mathastext| as
%    the last one of the font-related packages.
%
%    \subsection{Math versions}
%
%    \LaTeX{} has two math versions (|normal| and |bold|):
%    |mathastext| provides a straightforward mechanism to define
%    many more. The encodings of the various |mathastext|-defined versions
%    can be arbitrary; but as |mathastext| decides at the time
%    when it is loaded where to look for things like the en-dash,
%    or the dotless i and j, or the math accents, which are
%    encoding-dependent, there are obviously some limitations to
%    the use of these things in more than one math
%    version. Here is an example of how this goes:
%    \begin{verbatim}
%    \usepackage[T1]{fontenc}
%    \usepackage{mathastext}
%    % Latin Modern Typewriter Proportional
%    \MTDeclareVersion{lmvtt}{T1}{lmvtt}{m}{n}
%    % Baskervald, letters in italics
%    \MTDeclareVersion[it]{baskervald}{T1}{ybv}{m}{n}
%    % Bold Helvetica, digits and operator names slanted 
%    % and letters (in math mode only) upright
%    \MTDeclareVersion[n]{helvetica}{T1}{phv}{b}{sl}
%    \begin{document}
%    \MTVersion{helvetica}
%    Hello $world!$.
%    \MTVersion[lmvtt]{baskervald}
%    Here lmvtt but $here\ baskervald$.
%    \MTVersion{normal}
%    Default font when loading mathastext, $in\ math\ also$.
%    \end{document}
%    \end{verbatim}
%    Other ways to achieve the same result:
%    \begin{verbatim}
%    \usepackage[T1]{fontenc}
%    \usepackage{mathastext}
%    \renewcommand{\rmdefault}{lmvtt}
%    \Mathastext[lmvtt]
%    \renewcommand{\rmdefault}{ybv}
%    \MTlettershape{it}
%    \Mathastext[baskervald]
%    \renewcommand{\shapedefault}{sl}
%    \renewcommand{\rmdefault}{phv}
%    \renewcommand{\mddefault}{b}
%    \MTlettershape{n}
%    \Mathastext[helvetica]
%    \begin{document}
%    \MTVersion{helvetica}
%    Hello $world!$.
%    \MTVersion[lmvtt]{baskervald}
%    Here lmvtt but $here\ baskervald$.
%    \MTVersion{normal}
%    Default font when loading mathastext, $in\ math\ also$.
%    \end{document}
%    \end{verbatim}
%    Unicode encoded fonts can also be accomodated. Here is
%    an example (a bit schizophrenic) for a Xe\TeX{} or
%    Lua\LaTeX{} user. Of course |mathastext|'s facilities
%    are very meager to specify a math font, as basically
%    they are quasi-limited to a subset of the 32-127 ascii
%    range:\footnote{see the introduction describing the
%    initial goals of this package.} the much more powerful
%    and sophisticated package |mathspec| is recommended to
%    Xe\TeX{} users.
%    \begin{verbatim}
%    \usepackage[no-math]{fontspec}
%    \setmainfont{comfortaa}
%    \usepackage{mathastext}  % the normal version uses Comfortaa
%    \setmainfont{TeX Gyre Pagella}
%    \Mathastext[pagella]     % the pagella version uses Pagella
%    \MTDeclareVersion{times}{T1}{ptm}{m}{n} 
%              %  this is a T1-times. Do not try to use this
%              %  command for a Unicode font, use rather the
%              %  \setmainfont command of |fontspec|,
%              %  followed by \Mathastext
%    \setmainfont{TeX Gyre Schola}
%    \Mathastext[schola] % and unicode TeX Gyre Schola
%    \begin{document}
%    \MTVersion{pagella}
%    This is in TeX Gyre Pagella $and\ this\ also$ (unicode font).
%    \MTVersion{times}
%    Now we are in URW Times, $here\ also$ (T1 encoded font).
%    \MTVersion[normal]{schola}
%    Text in Unicode Comfortaa and $math\ in\ Unicode\ Schola$.
%    \end{document}
%    \end{verbatim}
%    
%    
%    For basic use one does not need to worry about the purely
%    optional mechanism of math versions: to use the package, one
%    only needs loading it (the default font at the time of
%    loading the package will become the font used in
%    mathematics). Users of Xe\TeX{} and
%    Lua\LaTeX{} will need to have loaded the package |fontspec|,
%    \emph{with option} |no-math|, and \emph{before} |mathastext|.
%
%    \subsection{Main options}
%    \begin{description}
%    \item[{\tt italic, frenchmath:}] were described above (new in |1.1|).
%    \item[{\tt symbolgreek:}] the Greek letters will be taken from the
%      Postscript Symbol font.
%    \item[{\tt eulergreek:}] the Greek letters will be taken from the Euler
%      font.
%    \item[{\tt symbolmax:}] all characters other than letters and digits will
%      be taken from the Symbol font. This option also makes a number of
%      further glyphs available, including some basic mathematical arrows, as
%      well as the sum and product signs. For documents with very simple needs
%      in mathematical symbols, the options |symbolmax| (and another one
%      called |alldelims|) may give in the end a quite smaller PDF file, as
%      the Computer Modern fonts, or whatever mathematical fonts initially
%      loaded by packages for use in the document, may well be avoided
%      altogether.
%    \item[{\tt defaultmathsizes:}] the package |mathastext| opts for quite big
%      subscripts (and, copied from the |moresize| package, redefines
%      \cs{Huge} and defines \cs{HUGE}). Use this option to prevent it from
%      doing so.
%    \end{description}
%
%    \subsection{Miscellaneous}
%
%    \begin{description}
%    \item[the en-dash as minus sign:] 
%      Very often the - character from the text font does
%      not give a good minus sign. So by default, the
%      package uses the en-dash sign \textendash{}. In
%      version |1.11| of the package this should work in all
%      encodings, including Unicode (it is then assumed that
%      |fontspec| has been loaded). It is not necessary
%      anymore to pass the option |endash|, rather there is
%      |noendash| to deactivate it.
%
%
%    \item[hbar:] The definition of \cs{hbar} inherited from
%      default \LaTeX{} will in our context make use of the
%      |h| of the current math font (so for us, it is also
%      the text font, perhaps in italic shape), but the bar
%      accross the |h| will come from the original default
%      math font for letters (usually |cmmi|), and
%      furthermore its placement on the |h| can be
%      odd-looking. So we redefine \cs{hbar} to use only the
%      text font (and this will be aware of the |italic|
%      option). Our construction does not always give an
%      optimal result (and is limited to OT1 and T1
%      encodings), so an option |nohbar| deactivates
%      it. There is no \cs{hslash} provided by the package,
%      though. With version |1.11| and a Unicode font the
%      package tries to get the \cs{hbar} directly as a
%      glyph from the font.
%
%
%    \item[dotless i and j:] By default the package redefines
%      \cs{i} and \cs{j} to give the dotless i and j (if it
%      exists at all), \emph{also in math mode,} in the text
%      font. Will overwrite the default commands \cs{imath}
%      and \cs{jmath}. In version |1.11| of the package this
%      should work in all encodings, including Unicode (it
%      is then assumed that |fontspec| has been loaded, and
%      of course that the glyphs are indeed in the font).
%
%
%    \item[vec accent:] The default \cs{vec} accent is not
%      appropriate for upright letters, so  |mathastext|
%      provides a \cs{fouriervec} which takes its glyph in a
%      Fourier font, and an Ersatz \cs{pmvec} 
%      which is reasonably good looking on upright letters
%      and works with the \cs{rightarrow} glyph. Contrarily
%      to version |1.0|, the default \cs{vec} is not
%      overwritten with \cs{fouriervec}. And contrarily to
%      version |1.1|, one now needs to pass the option
%      |fouriervec| to have the math accent \cs{fouriervec}
%      defined by the package.
%
%
%    \item[math alphabets:] The \cs{mathnormal}, \cs{mathrm}, and \cs{mathbf} are
%      modified to use the text font (or the arbitrarily
%      specified font for a math version), and behave as in
%      standard \LaTeX{}. But we provide a new
%      \cs{mathnormalbold}, to access the bold letters while
%      maintaining their italic shape (or whatever shape has
%      been specified for them) in case of the |italic|
%      option. Other math alphabet changing commands are
%      \cs{MathEulerBold}, \cs{MathEuler} and
%      \cs{MathPSymbol}. Note though that it is not possible
%      to use too many of such commands in the same
%      document, due to some limitations of
%      \LaTeX{}. Declaring them does not seem to be a
%      problem, and I will welcome any information by
%      knowledgeable people.
%
%    \item[math accents:]  an option |mathaccents| is
%    provided to pick up the accents in math mode from the
%    text font, but this is only for either an OT1-compatible or a
%    T1-encoded font.
%  
%    \end{description}
%
%    Regarding the encoding-dependent glyphs: the en-dash,
%    the dotless i and j, the math accents, the hbar, are
%    encoding dependent and the relevant decisions are made
%    by |mathastext| at the time it is loaded. So you can
%    use math versions with different encodings but,
%    regarding these characters only those with the same
%    encoding as the normal math version will display them
%    correctly. 
%
%  \section{Commands}    
%    
%    \subsection{Preamble-only commands}
%    Nothing is necessary besides loading |mathastext|, possibly
%    with some customizing options. The following commands provide
%    enhancements to the basic use of the package.
%    \begin{itemize}
%    \item |\Mathastext|: reinitializes |mathastext| according to the current
%      defaults of encoding, family, series and shape.
%      \begin{itemize}
%      \item It can also be preceded optionally by one or
%        more of\footnote{these commands exist also with
%        long names: \texttt{\char92Mathastextencoding},
%        etc\dots{} The same applies to the other commands
%        mentioned in this section.}
%      |\MTencoding|\marg{enc},
%        |\MTfamily|\marg{fam},
%        |\MTseries|\marg{ser},
%        |\MTshape|\marg{sh}, and, new with version
%        |1.1|, |\MTlettershape|\marg{sh}. For
%        example valid values are, respectively, \meta{T1},
%        \meta{phv}, \meta{m}, \meta{n}, and \meta{it}: this
%        is the Helvetica font in T1-encoding, regular
%        (medium) series, upright shape, and the letters
%        will be in italic shape.
%      \item with version |1.11| \cs{Mathastext} accepts an
%      optional argument, which will serve as a name to
%      designate the corresponding math version. Without
%      optional argument \cs{Mathastext} redefines the default
%      normal and bold versions. This argument, being
%      optional, must be enclosed within square brackets.
%      \end{itemize}
%      \item
%        |\MTWillUse|\oarg{ltsh}\marg{enc}\marg{fam}\marg{ser}\marg{sh}:
%        tells |mathastext| to use the font with the
%        specified encoding, family, series, and shape for
%        the letters and digits (and all other afflicted
%        characters) in math mode. The optional argument
%        \meta{ltsh} specifies a shape for the letters, for
%        example \cs{itdefault}, or directly \meta{it} or
%        \meta{sc}.
%      
%    \item
%      |\MTDeclareVersion|\oarg{ltsh}\marg{name}\marg{enc}\marg{fam}\marg{ser}\marg{sh}:
%      declares that the document will have access to the font
%      with the specified characteristics, under the version name
%      \meta{name}. For
%      example:\\
%      \hbox
%      to\hsize{\hss|\MTDeclareVersion[sc]{palatino}{T1}{ppl}{b}{sl}|\hss}
%      declares under the name |palatino| a version where
%      mathematics will be typset using the Palatino font in
%      T1-encoding, bold, slanted, and the letters will in fact be
%      in caps and small caps (and bold).\footnote{I do not
%      especially recommend to use this in real life!} When the
%      optional argument is absent, and |mathastext| was loaded
%      with the |italic| option, then the default letter shape
%      will be |it|,\footnote{more precisely, the shape is the
%      latest value passed in one of the previously used package
%      commands to specify the shape of letters, or the \cs{itdefault}
%      of the time of loading the package.}  else letters will
%      have the same shape as used for digits and operator-names.
%    \item |\MTboldvariant|\marg{var}: when used before |\Mathastext|,
%    specifies which bold
%      (|b|,|sb|,|bx|,\dots) to be used by \cs{mathbf} (and
%      \cs{boldmath}). Default is the \cs{bfdefault} at the time of
%      loading |mathastext|. When used before the declaration
%      of a version, decides the way \cs{mathbf} will act in this version.
%    \item |\MTEulerScale|\marg{factor}: scales the Euler font by
%      \meta{factor}.
%    \item |\MTSymbolScale|\marg{factor}: scales the Symbol font by
%      \meta{factor}.
%    \end{itemize}
%
%    \subsection{Body Text and Math commands}
%
%    \begin{itemize}
%    \item |\MTVersion|\oarg{nametext}\marg{namemath}: in
%      the absence of the optional argument changes
%      simultaneously (the behavior changed in version
%      |1.11|) the text and the math font to be the font
%      corresponding to the version \meta{namemath}. If
%      there is an optional argument then the text font will
%      use \meta{nametext} and the math mode will use \meta{namemath}. To
%      change only the math font, use the \LaTeX{} command
%      \cs{mathversion}.
%    \end{itemize}
%    All further commands are for math mode only.
%    \begin{itemize}
%    \item \cs{hbar}: this is constructed
%      (in a way compatible with the |italic| option) from
%      the |h| letter and the \={ } accent from the
%      |mathastext| font. Note that \cs{mathrm}|{\hbar}| and
%      \cs{mathbf}|{\hbar}| should work and that \cs{hbar}
%      does scale in subscripts and exponents. Only for T1
%      and OT1 encodings.
%    \item |\fouriervec|: this is a |\vec| accent taken from the Fourier font;
%    the |fourier| package need not be loaded. Active only
%    if option |fouriervec|.
%    \item |\pmvec|: this provides a poor man \cs{vec} accent command, for
%    upright letters. It uses the right arrow. Does not change
%    size in subscripts and exponents.
%    \item |\Mathnormal|, |\Mathrm|, |\Mathbf|: suitable modifications of the
%      original \cs{mathnormal}, \cs{mathrm}, \cs{mathbf}. By default, the
%      originals are also overwritten by the new commands.
%    \item |\mathnormalbold|: a bold version of \cs{mathnormal}.
%    \item |\inodot|, |\jnodot|: the corresponding glyphs in
%      the chosen font for math mode. By default, will
%      overwrite |\imath| and |\jmath|. With version |1.11|
%      by default |\i| and |\j| work also in math mode and
%      give then |\inodot|, resp. |\jnodot|. This should work for
%      all 8bit-encodings having these glyphs, and 
%      also in Unicode.
%    \item |\MathEuler|, |\MathEulerBold|: math alphabets to access
%    all the glyphs of the Euler font, if option |eulergreek| (or
%    |eulerdigits|) was passed to the package.
%    \item |\MathPSymbol|: math alphabet to access the Symbol font.
%    \item Capital Greek letters: macro names \cs{Digamma}, \cs{Alpha},
%      \cs{Beta}, \cs{Epsilon}, \cs{Zeta}, \cs{Eta}, \cs{Iota}, \cs{Kappa},
%      \cs{Mu}, \cs{Nu}, \cs{Omicron}, \cs{Rho}, \cs{Tau}, \cs{Chi} are
%      provided for the capital Greek letters which look like their Latin
%      counterparts. This is not done if the package detects that |\digamma|
%      is a defined macro, as then it is assumed that a suitable package has
%      been loaded for Greek letters. Also an \cs{omicron} control sequence is
%      provided.
%    \item Miscelleneous mathematical symbols from the
%      postscript Symbol font are made available (or
%      replaced) when option |symbolmisc| is passed. They
%      are \cs{prod}~$\prod$ \cs{sum}~$\sum$
%      \cs{implies}~$\implies$ \cs{impliedby}~$\impliedby$
%      \cs{iff}~$\iff$, \cs{shortiff}~$\shortiff$
%      \cs{to}~$\to$ \cs{longto}~$\longto$
%      \cs{mapsto}~$\mapsto$ \cs{longmapsto}~$\longmapsto$,
%      \cs{aleph}~$\aleph$ \cs{inftypsy}~$\inftypsy$
%      \cs{emptyset}~$\emptyset$ \cs{surd}~$\surd$
%      \cs{nabla}~$\nabla$, \cs{angle}~$\angle$
%      \cs{forall}~$\forall$ \cs{exists}~$\exists$
%      \cs{neg}~$\neg$ \cs{clubsuit}~$\clubsuit$,
%      \cs{diamondsuit}~$\diamondsuit$
%      \cs{heartsuit}~$\heartsuit$
%      \cs{spadesuit}~$\spadesuit$
%      \cs{smallint}~$\smallint$, \cs{wedge}~$\wedge$
%      \cs{vee}~$\vee$ \cs{cap}~$\cap$ \cs{cup}~$\cup$
%      \cs{bullet}~$\bullet$ \cs{div}~$\div$,
%      \cs{otimes}~$\otimes$ \cs{oplus}~$\oplus$
%      \cs{pm}~$\pm$ \cs{ast}~$\ast$ \cs{times}~$\times$
%      \cs{proptopsy}~$\proptopsy$, \cs{mid}~$\mid$
%      \cs{leq}~$\leq$ \cs{geq}~$\geq$ \cs{approx}~$\approx$
%      \cs{supset}~$\supset$ \cs{subset}~$\subset$,
%      \cs{supseteq}~$\supseteq$ \cs{subseteq}~$\subseteq$
%      \cs{in}~$\in$ \cs{sim}~$\sim$ \cs{cong}~$\cong$
%      \cs{perp}~$\perp$, \cs{equiv}~$\equiv$
%      \cs{notin}~$\notin$ \cs{langle}~$\langle$
%      \cs{rangle}~$\rangle$. And a
%      \cs{DotTriangle}~$\DotTriangle$ is made available by
%      option |symbolre| (which overwrites \cs{Re} and
%      \cs{Im}: $\Re,\Im$).
%    \end{itemize}
%
%  \section{Complete list of options}
%
%  \begin{itemize}
%  \item |basic|: only mathastextify letters and digits.
%  \item |italic|: the letters will default to italic shape in
%  math mode.
% \item |frenchmath|: uppercase Latin letters in the same font as for digits
%   and operator names. In general this means that they will be upright.
%  \item |endash|, |emdash|: use the text font en-dash \textendash\ or even
%  the em-dash \textemdash\ (but this seems crazy) for the minus sign
%  rather than {}-{}. |endash| option is default for the package.
% \item |noendash|: the minus sign will be the - from the
% text font, not the en-dash \textendash.
% \item |nohbar|: prevents |mathastext| from defining its own
%   \cs{hbar}.
% \item |nolessnomore|: besides
%   !\,?\,*\,,\,.\,:\,;\,+\,-\,=\,(\,)\,[\,]\,/\,\#\,\$\,\%\,\&
%   |mathastext| treats also \DeleteShortVerb{\|}
%   $\mathord{<}\,\mathord{>}\,\mathord{|}$\, \{\,\} and
%   $\backslash$.\MakeShortVerb{\|} Use this option to not
%   do it. The option |nolessnomore| is activated by default
%   in case of OT1-encoding.
%  \item further excluding options: |noexclam|\ !\,?\
%    |noasterisk|\ *\ |nopunct|\ ,\,.\,:\,;\ |noplus|,
%    |nominus|, |noplusnominus|\ +\,\textendash{} |noequal|\ =\
%    |noparenthesis|\, (\,)\,[\,]\,/ \ |nospecials|\
%    \#\,\$\,\%\,\& and |nodigits|.
%  \item |alldelims|: true by default, means that the
%    characters excluded by |nolessnomore| are
%    treated. Use this option in case of a mono-width
%    OT1-encoded font.
%  \item |symbolgreek|, |symboldigits|: to let Greek letters (digits) use the
%    Symbol font.
%  \item |symbolre|: replaces \cs{Re} and \cs{Im} by the
%  Symbol glyphs $\Re, \Im$ and defines a
%    \cs{DotTriangle} command ($\DotTriangle$).
%  \item |symbolmisc|: takes quite a few glyphs, including logical arrows,
%    product and sum signs from Symbol. They are listed \emph{supra}.. You may
%    also consider \cs{renewcommand}|{\int}{\smallint}| to maximize still more
%    the use of the Symbol font.
%  \item |symboldelimiters|: the characters apart from
%  letters and digits will be taken from the Symbol font. 
%  \item |symbol|: combines |symbolgreek|, |symbolre|, and |symbolmisc|.
%  \item |symbolmax|: combines |symbol| and |symboldelimiters|.
%  \item |eulergreek|, |eulerdigits|: to let Greek letters (digits) use the
%    Euler font.
%  \item |selfGreek|: this is for a font which has the capital Greek
%    letters at the OT1 slot positions.
%  \item |mathaccents|: use the text font also for the math
%    accents. As in vanilla \LaTeX{}, they are taken from the font
%    for the digits and \cs{log}-like names. Obey the alphabet
%    changing commands. Will work only for T1 or OT1-compatible encodings.
%  \item |defaultrm|, |defaultbf|, |defaulnormal|: do not
%  overwrite the default \cs{mathrm}, \cs{mathbf}, \cs{mathnormal}.
%  \item |defaultimath|: do not overwrite \cs{imath} and
%  \cs{jmath}, do not extend \cs{i} and \cs{j} to math mode use.
%  \item |defaultmathsizes|: do not change the \LaTeX{} defaults.
%  \item |fouriervec|: provides a \cs{fouriervec} command.
%  \end{itemize}
%
% \StopEventually{}
%
% \section{Commented source code}
%
%
%    \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{mathastext.sty}
         [2011/02/06 1.11 Use the text font in simple mathematics]
%    \end{macrocode}
% We turn off the official loggings as we intend to write our owns
%    \begin{macrocode}
\def\mt@font@info@off{
\let\m@stext@info\@font@info
\let\m@stext@warning\@font@warning
\let\@font@info\@gobble
\let\@font@warning\@gobble}
\def\mt@font@info@on{
\let\@font@info\m@stext@info
\let\@font@warning\m@stext@warning}
\mt@font@info@off
%    \end{macrocode}
%   \begin{macro}{\m@stextenc}
%   \begin{macro}{\m@stextfam}
%   \begin{macro}{\m@stextser}
%   \begin{macro}{\m@stextsh}
%   \begin{macro}{\m@stextbold}
%   \begin{macro}{\m@stextshletter}
%     Internal variables. Will be redefined with \cs{def} later.
%    \begin{macrocode}
  \edef\m@stextenc{\encodingdefault}
  \edef\m@stextfam{\familydefault}
  \edef\m@stextser{\seriesdefault}
  \edef\m@stextsh{\shapedefault}
  \edef\m@stextbold{\bfdefault}
  \edef\m@stextshletter{\shapedefault}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% A number of ifs for treating (some among) the options
%    \begin{macrocode}
\newif\ifmt@need@euler\mt@need@eulerfalse
\newif\ifmt@need@symbol\mt@need@symbolfalse
\newif\ifmt@defaultnormal\mt@defaultnormalfalse
\newif\ifmt@defaultrm\mt@defaultrmfalse
\newif\ifmt@defaultbf\mt@defaultbffalse
\newif\ifmt@defaultsizes\mt@defaultsizesfalse
\newif\ifmt@twelve\mt@twelvefalse
%% new behavior in v1.11:
\newif\ifmt@endash\mt@endashtrue  
\newif\ifmt@emdash\mt@emdashfalse
\def\mt@oti{OT1}\def\mt@ti{T1}
\def\mt@eui{EU1}\def\mt@euii{EU2}
\newif\ifmt@alldelims
\ifx\mt@oti\m@stextenc\mt@alldelimsfalse\else\mt@alldelimstrue\fi 
%    \end{macrocode}
% The options:
%    \begin{macrocode}
%% new or modified in v1.11:
\DeclareOption{fouriervec}{\let\mt@fouriervec\@empty}
\DeclareOption{nolessnomore}{\mt@alldelimsfalse}
\DeclareOption{endash}{\mt@endashtrue}
\DeclareOption{emdash}{\mt@emdashtrue}
\DeclareOption{noendash}{\mt@endashfalse}
\DeclareOption{symboldelimiters}{\mt@need@symboltrue
                    \let\mt@symboldelimiters\@empty}
%% new in v1.1:
\DeclareOption{italic}{\let\mt@italic\@empty\edef\m@stextshletter{\itdefault}}
\DeclareOption{frenchmath}{\let\mt@frenchmath\@empty}
\DeclareOption{noplus}{\let\mtno@plus\@empty}
\DeclareOption{nominus}{\let\mtno@minus\@empty}
\DeclareOption{nohbar}{\let\mtno@hbar\@empty}
%%
\DeclareOption{noparenthesis}{\let\mtno@paren\@empty}
\DeclareOption{nopunctuation}{\let\mtno@punct\@empty}
\DeclareOption{noplusnominus}{\ExecuteOptions{noplus,nominus}}
\DeclareOption{noequal}{\let\mtno@equal\@empty}
\DeclareOption{noexclam}{\let\mtno@exclam\@empty}
\DeclareOption{noasterisk}{\let\mtno@ast\@empty}
\DeclareOption{nospecials}{\let\mtno@specials\@empty}
\DeclareOption{basic}{\ExecuteOptions{noparenthesis,%
nopunctuation,noplusnominus,noequal,noexclam,nospecials}}
\DeclareOption{nodigits}{\let\mtno@digits\@empty}
\DeclareOption{defaultimath}{\let\mt@defaultimath\@empty}
\DeclareOption{alldelims}{\mt@alldelimstrue}
\DeclareOption{mathaccents}{\let\mt@mathaccents\@empty}
\DeclareOption{selfGreek}{\let\mt@selfGreek\@empty}
\DeclareOption{selfgreek}{\let\mt@selfGreek\@empty}
\DeclareOption{symboldigits}{\mt@need@symboltrue
    \let\mt@symboldigits\@empty}
\DeclareOption{symbolgreek}{\mt@need@symboltrue
    \let\mt@symbolgreek\@empty}
\DeclareOption{symbolre}{\mt@need@symboltrue
    \let\mt@symbolre\@empty}
\DeclareOption{symbolmisc}{\mt@need@symboltrue
    \let\mt@symbolmisc\@empty}
\DeclareOption{symbol}{\ExecuteOptions{symbolgreek,symbolmisc,symbolre}}
\DeclareOption{symbolmax}{\ExecuteOptions{symbol,symboldelimiters}}
\DeclareOption{eulerdigits}{\mt@need@eulertrue\let\mt@eulerdigits\@empty}
\DeclareOption{eulergreek}{\mt@need@eulertrue\let\mt@eulergreek\@empty}
\DeclareOption{defaultnormal}{\mt@defaultnormaltrue}
\DeclareOption{defaultrm}{\mt@defaultrmtrue}
\DeclareOption{defaultbf}{\mt@defaultbftrue}
%    \end{macrocode}
% We intend to change the default script and scriptscript sizes, and also to
% declare a \cs{HUGE} size and modify the \cs{Huge} one at 12pt (taken from
% the |moresize| package). So we have an option to maintain default situation.
%    \begin{macrocode}
\DeclareOption{defaultmathsizes}{\mt@defaultsizestrue}
\DeclareOption{12pt}{\mt@twelvetrue}
\DeclareOption*{\PackageWarning{mathastext}{Unknown option `\CurrentOption'}}
\ProcessOptions\relax
%    \end{macrocode}
%%
% \begin{macro}{\pmvec}
% Definition of a poor man version of the \cs{vec} accent
%    \begin{macrocode}
\DeclareRobustCommand\pmvec[1]{\mathord{\stackrel{\raisebox{-.5ex}%
{\tiny\boldmath$\mathord{\rightarrow}$}}{{}#1}}}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\fouriervec}
% The glyph is taken from the Fourier font of Michel~\textsc{Bovani}.
%    \begin{macrocode}
\ifx\mt@fouriervec\@empty
  \DeclareFontEncoding{FML}{}{}
  \DeclareFontSubstitution{FML}{futm}{m}{it}
  \DeclareSymbolFont{mtfourierpourvec}{FML}{futm}{m}{it}
  \SetSymbolFont{mtfourierpourvec}{bold}{FML}{futm}{b}{it}
  \DeclareMathAccent{\fouriervec}{\mathord}{mtfourierpourvec}{"7E}
\fi
%    \end{macrocode}
% \end{macro}
% \begin{macro}{mtoperatorfont}
% Declaration of the current default font as our math font.
%    \begin{macrocode}
\DeclareSymbolFont{mtoperatorfont}
    {\m@stextenc}{\m@stextfam}{\m@stextser}{\m@stextsh}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{mtletterfont}
%   In version 1.1, we add the possibility to mimick the standard
%   behavior, that is to have italic letters and upright
%   digits. Thanks to Tariq~\textsc{Perwez} and
%   Kevin~\textsc{Klement} who asked for such a feature.
%    \begin{macrocode}
\DeclareSymbolFont{mtletterfont}
       {\m@stextenc}{\m@stextfam}{\m@stextser}{\m@stextshletter}
\DeclareSymbolFontAlphabet{\Mathnormal}{mtletterfont}
\DeclareSymbolFontAlphabet{\Mathrm}{mtoperatorfont}
%    \end{macrocode}
% Our internal variables redefined without expansion. They will get expanded
% inside the \cs{Mathastext} macro.
%    \begin{macrocode}
  \def\m@stextenc{\encodingdefault}
  \def\m@stextfam{\familydefault}
  \def\m@stextser{\seriesdefault}
  \def\m@stextsh{\shapedefault}
  \def\m@stextbold{\bfdefault}
  \def\m@stextshletter{\shapedefault}
  \ifx\mt@italic\@empty\def\m@stextshletter{\itdefault}\fi
%    \end{macrocode}
% \end{macro}
% \begin{macro}{mteulervm}
% \begin{macro}{\MathEuler}
% In case we need the Euler font, we declare it here. It will use
% |uzeur.fd| from the |eulervm| package of Walter~\textsc{Schmidt}
%    \begin{macrocode}
\ifmt@need@euler
\DeclareSymbolFont{mteulervm}{U}{zeur}{m}{n}
\DeclareSymbolFontAlphabet{\MathEuler}{mteulervm}
%% \SetSymbolFont{mteulervm}{bold}{U}{zeur}{\m@stextbold}{n}
\fi
\newcommand\MTEulerScale[1]{\edef\zeu@Scale{#1}}
\let\MathastextEulerScale\MTEulerScale
%    \end{macrocode}
% \end{macro}
% \end{macro}
% In the end, I moved the bold stuff to \cs{Mathastext} as the user may want
% his choice of |boldvariant| to have effect on the Euler font (it is
% possible to use \cs{Mathastextboldvariant}|{m}|). 
% 
% \LaTeXe{} has a strange initial configuration where the
% capital Greek letters are of type |mathalpha|, but the
% lower Greek letters of type |mathord|, so that \cs{mathbf}
% does not act on them, although lowercase Greek letters and
% Latin letters are from the same font. This is because
% \cs{mathbf} is set up to be like a bold version of
% \cs{mathrm}, and \cs{mathrm} uses the `operators' font, by
% default |cmr|, where there are no lowercase greek
% letters. This set-up is ok for the Capital Greek letters
% which are together with the Latin letters in both |cmmi|
% and |cmr|.
%
% The package eulervm sets also the lowercase Greek letters
% to be of type |mathalpha|, the default \cs{mathbf} and
% \cs{mathrm} will act wierdly on them, but a new
% \cs{mathbold} is defined which will use the bold series of
% the Euler roman font, it gives something coherent for
% Latin and Greek \emph{lowercase} letters, and this is
% possible because the same font contains upright forms for
% them all.
%
% Here in |mathastext|, Latin letters and Greek letters (lower and
% upper case) must be assumed to come from two different fonts, as
% a result the standard \cs{mathbf} (and \cs{mathrm}) will give
% weird results when used for Greek letters. It would be tricky
% but not impossible to coerce \cs{mathbf} to do something
% reasonable. I posted the method I have in mind to the texhax
% mailing list
% (|http://tug.org/pipermail/texhax/2011-January/016605.html|) but
% at this time |30-01-2011 09:42:27 CET| I decided I would not try
% to implement it here. I prefer to respect the default things.
%
% I follow the simpler idea of the |eulervm| package and
% define \cs{MathEuler} and \cs{MathEulerBold} alphabet
% commands (the |eulervm| package does this only for the
% bold font).
% \begin{macro}{mtpsymbol}
% \begin{macro}{\MathPSymbol}
% In case we need the Symbol font, we declare it here. The macro
% \cs{psy@scale} will be used to scale the font (see at the
% very end of this file).
%    \begin{macrocode}
\ifmt@need@symbol
 \def\psy@scale{1}
 \DeclareSymbolFont{mtpsymbol}{U}{psy}{m}{n}
%% \SetSymbolFont{mtpsymbol}{bold}{U}{psy}{\m@stextbold}{n} 
 \DeclareSymbolFontAlphabet{\MathPSymbol}{mtpsymbol}
\fi
\newcommand\MTSymbolScale[1]{\edef\psy@scale{#1}}
\let\MathastextSymbolScale\MTSymbolScale
%    \end{macrocode}
% In v1.0 the math alphabet was called \cs{MathastextSymbol}. I did not
% choose the name \cs{MathSymbol} as this name may be
% defined somewhere for another thing.
% \end{macro}
% There is no bold for the postscript Symbol font
% distributed with the \LaTeXe{} |psnffs|. In v1.0 I
% included some code ready for an eventual bold, one never
% knows which might come in an update to the |psnfss|
% package, but, if this day arrives, I or someone else shall
% simply upgrade the package.
% \end{macro}
% \begin{macro}{\MTencoding}
% \begin{macro}{\MTfamily}
% \begin{macro}{\MTseries}
% \begin{macro}{\MTshape}
% \begin{macro}{\MTboldvariant}
% \begin{macro}{\MTlettershape}
% We declare some public macros to modify our private internals, and we will
% use them also ourself.
%
% In version 1.1 we add the possibility to have two distinct font shapes for
% letters and digits. So in fact we could as well have two really unrelated
% fonts but this is really not the spirit of the package, already making
% italic letters easy for the user was only made possible by a moment of
% weakness of the package author.
%
% In version 1.11 I fix bugs in the way this was all set
% up. I change the macro names for brevity sake.
%    \begin{macrocode}
\DeclareRobustCommand\MTencoding[1]{\def\m@stextenc{#1}}
\DeclareRobustCommand\MTfamily[1]{\def\m@stextfam{#1}}
\DeclareRobustCommand\MTseries[1]{\def\m@stextser{#1}}
\DeclareRobustCommand\MTshape[1]{\def\m@stextsh{#1}
  \ifx\mt@italic\@empty\else\def\m@stextshletter{#1}\fi}
\DeclareRobustCommand\MTboldvariant[1]{\def\m@stextbold{#1}}
\DeclareRobustCommand\MTlettershape[1]{\def\m@stextshletter{#1}}
\let\Mathastextencoding\MTencoding
\let\Mathastextfamily\MTfamily
\let\Mathastextseries\MTseries
\let\Mathastextshape\MTshape
\let\Mathastextboldvariant\MTboldvariant
\let\Mathastextlettershape\MTlettershape
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%  \begin{macro}{\MTWillUse}
% This is a preamble-only command, it can be called more than once, only the
% latest call counts.
%    \begin{macrocode}
\DeclareRobustCommand\MTWillUse[5][\@empty]{
  \MTencoding{#2}
  \MTfamily{#3}
  \MTseries{#4}
  \MTshape{#5}
  \ifx\@empty#1 
  \else 
%% we check if optional argument was [],  this does not detect [ ]
  \def\mt@empty{}\def\mt@tmp{#1}
   \ifx\mt@empty\mt@tmp\else\MTlettershape{#1}\fi
  \fi
  \Mathastext}
\let\MathastextWillUse\MTWillUse
%    \end{macrocode}
% \end{macro}
%  \begin{macro}{\Mathastext}
%    The command \cs{Mathastext} can be used anywhere in the preamble and any
%    number of time, the last one is the one that counts.
%
%    In version 1.1 we have two fonts: they only differ in shape. The
%    |mtletterfont| is for letters, and the |mtoperatorfont| for digits and
%    log-like operator names. The default is that both are upright.
%    \begin{macrocode}
\DeclareRobustCommand\Mathastext[1][\@empty]{
  \mt@font@info@off
\ifx\@empty#1 % no optional argument 
  \edef\mt@encoding@normal{\m@stextenc}
  \edef\mt@family@normal{\m@stextfam}
  \edef\mt@series@normal{\m@stextser}
  \edef\mt@shape@normal{\m@stextsh}
  \edef\mt@ltshape@normal{\m@stextshletter}
  \edef\mt@boldvariant@normal{\m@stextbold}
  \edef\mt@encoding@bold{\m@stextenc}
  \edef\mt@family@bold{\m@stextfam}
  \edef\mt@series@bold{\m@stextbold}
  \edef\mt@shape@bold{\m@stextsh}
  \edef\mt@ltshape@bold{\m@stextshletter}
  \edef\mt@boldvariant@bold{\m@stextbold}
%%
   \SetSymbolFont{mtletterfont}{normal}{\mt@encoding@normal}
                                       {\mt@family@normal}
                                       {\mt@series@normal}
                                       {\mt@ltshape@normal}
   \SetSymbolFont{mtletterfont}{bold}  {\mt@encoding@bold}
                                       {\mt@family@bold}
                                       {\mt@series@bold}
                                       {\mt@ltshape@bold}
  \SetSymbolFont{mtoperatorfont}{normal}{\mt@encoding@normal}
                                       {\mt@family@normal}
                                       {\mt@series@normal}
                                       {\mt@shape@normal}
  \SetSymbolFont{mtoperatorfont}{bold}  {\mt@encoding@bold}
                                       {\mt@family@bold}
                                       {\mt@series@bold}
                                       {\mt@shape@bold}
%    \end{macrocode}
% \begin{macro}{\Mathbf}
% We follow the standard \LaTeX{} behavior for \cs{mathbf}, which is to pick up
% the bold series of the roman font (digits and operator names). 
%    \begin{macrocode}
   \DeclareMathAlphabet{\Mathbf}  {\mt@encoding@bold}
                                 {\mt@family@bold}
                                 {\mt@series@bold}
                                 {\mt@shape@bold}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\mathnormalbold}
% We add a new Alphabet changing macro to standard \LaTeX{}
%    \begin{macrocode}
  \DeclareMathAlphabet{\mathnormalbold}  {\mt@encoding@bold}
                                 {\mt@family@bold}
                                 {\mt@series@bold}
                                 {\mt@ltshape@bold}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\MathEulerBold}
% We define it here as we leave open the possibility to deactivate it via
% using \cs{Mathastextboldvariant}|{m}|.
%    \begin{macrocode}
 \ifmt@need@euler
    \SetSymbolFont{mteulervm}{bold}{U}{zeur}{\mt@boldvariant@normal}{n}
    \DeclareMathAlphabet{\MathEulerBold}{U}{zeur}{\mt@boldvariant@normal}{n}
 \fi
%    \end{macrocode}
% \end{macro}
%    \begin{macrocode}
 \ifmt@need@symbol\SetSymbolFont{mtpsymbol}{bold}
                     {U}{psy}{\mt@boldvariant@normal}{n}\fi
  \typeout{** Latin letters in math versions normal (resp. bold) are now\MessageBreak
    ** set up to use the fonts 
\mt@encoding@normal/\mt@family@normal/\mt@series@normal%
(\mt@boldvariant@normal)/\mt@ltshape@normal}
\ifx\mtno@digits\@empty\else
  \typeout{** Other characters (digits, ...) and
    \protect\log-like names will be\MessageBreak
** typeset with the \expandafter`\mt@shape@normal' shape.}
 \fi
\else % optional argument, then we rather do DeclareVersion
 \edef\mt@tmp{#1}\def\mt@empty{}
 \ifx\mt@tmp\mt@empty
    \Mathastext  % no infinite loop!
  \else
    \MTDeclareVersion[\m@stextshletter]{#1}
         {\m@stextenc}{\m@stextfam}{\m@stextser}{\m@stextsh}
 \fi
\fi
\mt@font@info@on
}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\MTDeclareVersion}
% The \cs{MTDeclareVersion} command is to be used in the preamble to
% declare a math version. I refrained from providing a more complicated one
% which would also specify a choice of series for the Euler and Symbol font:
% anyhow Symbol only has the medium series, and Euler has medium and bold, so
% what is lacking is the possibility to create a version with a bold
% Euler. There is already one such version: the default |bold| one. And there
% is always the possibility to add to the preamble 
% \cs{SetSymbolFont}|{mteulervm}||{version}||{U}{zeur}{bx}{n}| if one
% wants to have a math version with bold Euler characters.
%
% For version 1.1 we add an optional parameter specifying the shape to be used
% for letters: most users will want `it' (thus going contrary to the
% philosophy which motivated me writing this package!). If the package option
% `italic' was passed, `it' is the default.
%    \begin{macrocode}
\DeclareRobustCommand\MTDeclareVersion[6][\@empty]{
  \mt@font@info@off
  \edef\mt@tmp{#2}
  \DeclareMathVersion{\mt@tmp}
  \expandafter\edef\csname mt@encoding@\mt@tmp\endcsname{#3}
  \expandafter\edef\csname mt@family@\mt@tmp\endcsname{#4}
  \expandafter\edef\csname mt@series@\mt@tmp\endcsname{#5}
  \expandafter\edef\csname mt@shape@\mt@tmp\endcsname{#6}
  \expandafter\edef\csname mt@boldvariant@\mt@tmp\endcsname{\m@stextbold}
  \newif\ifmt@reallynoopt\mt@reallynoopttrue
    \ifx\@empty#1
    \else % we check nevertheless for [] situation, will not work with [ ]
       \def\mt@@tmp{#1}\def\mt@empty{}
       \ifx\mt@@tmp\mt@empty\else\mt@reallynooptfalse\fi
    \fi
  \ifmt@reallynoopt
    \ifx\mt@italic\@empty
      \SetSymbolFont{mtletterfont}{#2}{#3}{#4}{#5}{\m@stextshletter}
    \typeout{** Latin letters in math version `#2' will use the font
    #3/#4/#5/\m@stextshletter\MessageBreak    
    ** Other characters (digits, ...) and \protect\log-like names 
                    will be in `#6' shape.}
      \expandafter\def\csname mt@ltshape\mt@tmp\endcsname{\m@stextshletter}
    \else
      \SetSymbolFont{mtletterfont}{#2}{#3}{#4}{#5}{#6}
    \typeout{** Latin letters in math version `#2' will use the fonts
    #3/#4/#5(\m@stextbold)/#6}
      \expandafter\edef\csname mt@ltshape\mt@tmp\endcsname{#6}
    \fi
  \else
      \SetSymbolFont{mtletterfont}{#2}{#3}{#4}{#5}{#1}
    \typeout{** Latin letters in math version `#2' will use the font
    #3/#4/#5/#1\MessageBreak
    ** Other characters (digits, ...) and \protect\log-like names will be in `#6' shape.}
      \expandafter\edef\csname mt@ltshape\mt@tmp\endcsname{#1}
  \fi
  \SetMathAlphabet{\Mathbf}{#2}{#3}{#4}{\m@stextbold}{#6}
  \SetSymbolFont{mtoperatorfont}{#2}{#3}{#4}{#5}{#6}
  \ifmt@need@euler
      \SetMathAlphabet{\MathEulerBold}{#2}{U}{zeur}{\m@stextbold}{n}
  \fi
  \mt@font@info@on
}
\let\MathastextDeclareVersion\MTDeclareVersion
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\operator@font}
%   We modify this \LaTeX{} internal variable in order for the
%   predefined \cs{cos}, \cs{sin}, etc\dots to be typeset with the
%   |mathastext| font.  This will also work for things declared
%   through the |amsmath| package command
%   \cs{DeclareMathOperator}. The alternative would have been to
%   redefine the `operators' Math Symbol Font. Obviously people
%   who expect that \cs{operator@font} will always refer to the
%   `operators' math font might be in for a surprise\dots{} well,
%   we'll see.
%    \begin{macrocode}
\def\operator@font{\mathgroup\symmtoperatorfont}
%    \end{macrocode}
% \end{macro}
% Initialization call:
%    \begin{macrocode}
\Mathastext
%    \end{macrocode}
% We redefine the normal, rm and bf alphabets. In version 1.1 we
% follow the standard: normal gives the font for letters, rm gives
% the font for digits and log-like names, bf for the bold series
% of the font for digits and log-like names. 
%
% We will access by default the \cs{omicron} via
% \cs{mathnormal}. So we save it for future use.  But
% unfortunately the Fourier package with the upright option does
% not have an upright omicron obtainable by simply typing
% \cs{mathnormal}|{o}|. So in this case we shall use \cs{mathrm}
% and not \cs{mathnormal}.
%    \begin{macrocode}
\let\mt@saved@mathnormal\mathnormal 
\@ifpackageloaded{fourier}{\ifsloped\else\let\mt@saved@mathnormal\mathrm\fi}{}
\ifmt@defaultnormal\else\renewcommand{\mathnormal}{\Mathnormal}\fi
\ifmt@defaultrm\else\renewcommand{\mathrm}{\Mathrm}\fi
\ifmt@defaultbf\else\renewcommand{\mathbf}{\Mathbf}\fi
%    \end{macrocode}
% We write appropriate messages to the terminal and the log.
%    \begin{macrocode}
\ifx\mt@symbolgreek\@empty
\typeout{** Greek letters will use the PostScript Symbol font. Use\MessageBreak
** \protect\MathastextSymbolScale{factor} to scale the font by <factor>.}
\fi
\ifx\mt@eulergreek\@empty
\typeout{** Greek letters will use the Euler font. Use\MessageBreak
** \protect\MathastextEulerScale{factor} to scale the font by <factor>.}
\fi
\ifx\mt@selfGreek\@empty
\typeout{** Capital Greek letters from the fonts declared for latin letters:\MessageBreak 
** only for OT1 or compatible encodings; glyphs may be unavailable.}
\fi
%    \end{macrocode}
% \begin{macro}{\MTVersion}
% This is a wrapper around \LaTeX{}'s \cs{mathversion}: here we have an
% optional argument allowing a quick and easy change of the text font.
%    \begin{macrocode}
\DeclareRobustCommand\MTVersion[2][\@empty]{%
    \mathversion{#2}%
    \ifx\@empty#1% no optional argument
        \edef\mt@tmp{@#2}
    \else% we check nevertheless for [] situation, will not work with [ ]
       \def\mt@@tmp{#1}\def\mt@empty{}%
       \ifx\mt@@tmp\mt@empty\edef\mt@tmp{@#2}%
       \else\edef\mt@tmp{@#1}%
       \fi%
    \fi%
    \usefont{\csname mt@encoding\mt@tmp\endcsname}%
        {\csname mt@family\mt@tmp\endcsname}%
        {\csname mt@series\mt@tmp\endcsname}%
        {\csname mt@shape\mt@tmp\endcsname}%
    \edef\mt@@encoding{\csname mt@encoding\mt@tmp\endcsname}%
\renewcommand{\encodingdefault}{\mt@@encoding}%
    \edef\mt@@family{\csname mt@family\mt@tmp\endcsname}%
\renewcommand{\rmdefault}{\mt@@family}%
    \edef\mt@@series{\csname mt@series\mt@tmp\endcsname}%
\renewcommand{\mddefault}{\mt@@series}%
    \edef\mt@@shape{\csname mt@shape\mt@tmp\endcsname}%
\renewcommand{\updefault}{\mt@@shape}%
    \edef\mt@@boldvariant{\csname mt@boldvariant\mt@tmp\endcsname}%
\renewcommand{\bfdefault}{\mt@@boldvariant}}
\let\MathastextVersion\MTVersion
%    \end{macrocode}
% \end{macro}
% At last we now change the font for the letters of the latin alphabet. 
% In version 1.1, Latin letters have their own font (shape). 
%    \begin{macrocode}
\DeclareMathSymbol{a}{\mathalpha}{mtletterfont}{`a}
\DeclareMathSymbol{b}{\mathalpha}{mtletterfont}{`b}
\DeclareMathSymbol{c}{\mathalpha}{mtletterfont}{`c}
\DeclareMathSymbol{d}{\mathalpha}{mtletterfont}{`d}
\DeclareMathSymbol{e}{\mathalpha}{mtletterfont}{`e}
\DeclareMathSymbol{f}{\mathalpha}{mtletterfont}{`f}
\DeclareMathSymbol{g}{\mathalpha}{mtletterfont}{`g}
\DeclareMathSymbol{h}{\mathalpha}{mtletterfont}{`h}
\DeclareMathSymbol{i}{\mathalpha}{mtletterfont}{`i}
\DeclareMathSymbol{j}{\mathalpha}{mtletterfont}{`j}
\DeclareMathSymbol{k}{\mathalpha}{mtletterfont}{`k}
\DeclareMathSymbol{l}{\mathalpha}{mtletterfont}{`l}
\DeclareMathSymbol{m}{\mathalpha}{mtletterfont}{`m}
\DeclareMathSymbol{n}{\mathalpha}{mtletterfont}{`n}
\DeclareMathSymbol{o}{\mathalpha}{mtletterfont}{`o}
\DeclareMathSymbol{p}{\mathalpha}{mtletterfont}{`p}
\DeclareMathSymbol{q}{\mathalpha}{mtletterfont}{`q}
\DeclareMathSymbol{r}{\mathalpha}{mtletterfont}{`r}
\DeclareMathSymbol{s}{\mathalpha}{mtletterfont}{`s}
\DeclareMathSymbol{t}{\mathalpha}{mtletterfont}{`t}
\DeclareMathSymbol{u}{\mathalpha}{mtletterfont}{`u}
\DeclareMathSymbol{v}{\mathalpha}{mtletterfont}{`v}
\DeclareMathSymbol{w}{\mathalpha}{mtletterfont}{`w}
\DeclareMathSymbol{x}{\mathalpha}{mtletterfont}{`x}
\DeclareMathSymbol{y}{\mathalpha}{mtletterfont}{`y}
\DeclareMathSymbol{z}{\mathalpha}{mtletterfont}{`z}
\ifx\mt@frenchmath\@empty\def\mt@font@tbu{mtoperatorfont}
   \else\def\mt@font@tbu{mtletterfont}\fi
\DeclareMathSymbol{A}{\mathalpha}{\mt@font@tbu}{`A}
\DeclareMathSymbol{B}{\mathalpha}{\mt@font@tbu}{`B}
\DeclareMathSymbol{C}{\mathalpha}{\mt@font@tbu}{`C}
\DeclareMathSymbol{D}{\mathalpha}{\mt@font@tbu}{`D}
\DeclareMathSymbol{E}{\mathalpha}{\mt@font@tbu}{`E}
\DeclareMathSymbol{F}{\mathalpha}{\mt@font@tbu}{`F}
\DeclareMathSymbol{G}{\mathalpha}{\mt@font@tbu}{`G}
\DeclareMathSymbol{H}{\mathalpha}{\mt@font@tbu}{`H}
\DeclareMathSymbol{I}{\mathalpha}{\mt@font@tbu}{`I}
\DeclareMathSymbol{J}{\mathalpha}{\mt@font@tbu}{`J}
\DeclareMathSymbol{K}{\mathalpha}{\mt@font@tbu}{`K}
\DeclareMathSymbol{L}{\mathalpha}{\mt@font@tbu}{`L}
\DeclareMathSymbol{M}{\mathalpha}{\mt@font@tbu}{`M}
\DeclareMathSymbol{N}{\mathalpha}{\mt@font@tbu}{`N}
\DeclareMathSymbol{O}{\mathalpha}{\mt@font@tbu}{`O}
\DeclareMathSymbol{P}{\mathalpha}{\mt@font@tbu}{`P}
\DeclareMathSymbol{Q}{\mathalpha}{\mt@font@tbu}{`Q}
\DeclareMathSymbol{R}{\mathalpha}{\mt@font@tbu}{`R}
\DeclareMathSymbol{S}{\mathalpha}{\mt@font@tbu}{`S}
\DeclareMathSymbol{T}{\mathalpha}{\mt@font@tbu}{`T}
\DeclareMathSymbol{U}{\mathalpha}{\mt@font@tbu}{`U}
\DeclareMathSymbol{V}{\mathalpha}{\mt@font@tbu}{`V}
\DeclareMathSymbol{W}{\mathalpha}{\mt@font@tbu}{`W}
\DeclareMathSymbol{X}{\mathalpha}{\mt@font@tbu}{`X}
\DeclareMathSymbol{Y}{\mathalpha}{\mt@font@tbu}{`Y}
\DeclareMathSymbol{Z}{\mathalpha}{\mt@font@tbu}{`Z}
%%
\ifx\mtno@digits\@empty\else
\def\mt@font@tbu{mtoperatorfont}
%    \end{macrocode}
% In version 1.1, we have now separated digits from letters, so paradoxically
% it is less problematic to give them the |mathalpha| type. 
%    \begin{macrocode}
\ifx\mt@symboldigits\@empty \def\mt@font@tbu{mtpsymbol} \fi
\ifx\mt@eulerdigits\@empty \def\mt@font@tbu{mteulervm} \fi
\DeclareMathSymbol{0}{\mathalpha}{\mt@font@tbu}{`0}
\DeclareMathSymbol{1}{\mathalpha}{\mt@font@tbu}{`1}
\DeclareMathSymbol{2}{\mathalpha}{\mt@font@tbu}{`2}
\DeclareMathSymbol{3}{\mathalpha}{\mt@font@tbu}{`3}
\DeclareMathSymbol{4}{\mathalpha}{\mt@font@tbu}{`4}
\DeclareMathSymbol{5}{\mathalpha}{\mt@font@tbu}{`5}
\DeclareMathSymbol{6}{\mathalpha}{\mt@font@tbu}{`6}
\DeclareMathSymbol{7}{\mathalpha}{\mt@font@tbu}{`7}
\DeclareMathSymbol{8}{\mathalpha}{\mt@font@tbu}{`8}
\DeclareMathSymbol{9}{\mathalpha}{\mt@font@tbu}{`9}
\fi
%    \end{macrocode}
% When |symboldelimiters| is passed as an option, we use the
% Symbol font for the printable characters other than
% letters and digits. The character @ has been left out.
%    \begin{macrocode}
\ifx\mt@symboldelimiters\@empty 
\def\mt@font@tbu{mtpsymbol}
\else
\def\mt@font@tbu{mtoperatorfont}
\fi
%%
\ifx\mtno@exclam\@empty\else
\DeclareMathSymbol{!}{\mathclose}{\mt@font@tbu}{"21}
\DeclareMathSymbol{?}{\mathclose}{\mt@font@tbu}{"3F}
\fi
%%
\ifx\mtno@ast\@empty\else
\DeclareMathSymbol{*}{\mathalpha}{\mt@font@tbu}{"2A} 
\fi
%    \end{macrocode}
% We completely renounced to try to do things with all the various dots, they
% are defined in many different ways, and there is the amsmath also. Dealing
% with this issue would mean a lot a time for a minuscule result. Better to
% leave the user use the |mathdots| package and accept that we can not avoid
% the default fonts in that case. So here I just treat |.| (in the hope to
% really lessen by 1 the number of fonts embedded at the end in the PDF).
%    \begin{macrocode}
\ifx\mtno@punct\@empty\else
\DeclareMathSymbol{,}{\mathpunct}{\mt@font@tbu}{"2C}
\DeclareMathSymbol{.}{\mathord}{\mt@font@tbu}{"2E}
\DeclareMathSymbol{:}{\mathrel}{\mt@font@tbu}{"3A}
\@ifpackageloaded{amsmath}
    {}
    {\let\colon\undefined
    \DeclareMathSymbol{\colon}{\mathpunct}{\mt@font@tbu}{"3A}}
\DeclareMathSymbol{;}{\mathpunct}{\mt@font@tbu}{"3B}
\fi
%    \end{macrocode}
% \begin{macro}{\relbar}
% Due to the way = and - are used by \LaTeX{} in arrows, we will
% have to redefine \cs{Relbar} and \cs{relbar} in order for 
% them to preserve their original meanings.
%    \begin{macrocode}
\ifx\mtno@minus\@empty\else
\edef\mt@minus@sign{\mathord{\expandafter\mathchar\number\mathcode`\-}}
\def\relbar{\mathrel{\smash\mt@minus@sign}}
\def\rightarrowfill{$\m@th\mt@minus@sign\mkern-7mu%
  \cleaders\hbox{$\mkern-2mu\mt@minus@sign\mkern-2mu$}\hfill
  \mkern-7mu\mathord\rightarrow$}
\def\leftarrowfill{$\m@th\mathord\leftarrow\mkern-7mu%
  \cleaders\hbox{$\mkern-2mu\mt@minus@sign\mkern-2mu$}\hfill
  \mkern-7mu\smash\mt@minus@sign$}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\endash}
%   2011/01/29, v1.1 Producing this next piece of code was
%   not a piece of cake for a novice like myself!  I got
%   some LaTeX internal info from ltoutenc.dtx. However this
%   will only work in the math versions having the same
%   encoding as defined by default.
%   2011/02/05, v1.11. Compatibility with Unicode (via
%   fontspec encodings EU1 and EU2)
%    \begin{macrocode}
\edef\mt@enc{\m@stextenc}
\ifmt@endash
\ifx\mt@enc\mt@eui % xetex
  \XeTeXmathcode`\-="2 "\the\symmtoperatorfont "2013 \relax
\else
\ifx\mt@enc\mt@euii % luatex
   \luatexUmathcode`\-="2 "\the\symmtoperatorfont "2013 \relax
\else % assume 8bit encoding
   \DeclareMathSymbol{-}{\mathbin}{mtoperatorfont}
{\expandafter\the\expandafter\csname\mt@enc\string\textendash\endcsname}
\fi\fi
\else
%    \end{macrocode}
% \end{macro}
% 2011/01/29, v1.1 This |emdash| has possibly almost no interest. 
%    \begin{macrocode}
\ifmt@emdash
\ifx\mt@enc\mt@eui % xetex
  \XeTeXmathcode`\-="2 "\the\symmtoperatorfont "2014 \relax
\else
\ifx\mt@enc\mt@euii % luatex
   \luatexUmathcode`\-="2 "\the\symmtoperatorfont "2014 \relax
\else
 \DeclareMathSymbol{-}{\mathbin}{mtoperatorfont}
{\expandafter\the\expandafter\csname\mt@enc\string\textemdash\endcsname}
\fi\fi
\else
\DeclareMathSymbol{-}{\mathbin}{\mt@font@tbu}{"2D}
\fi\fi\fi
%    \end{macrocode}
% \begin{macro}{\hbar}
% \begin{macro}{\mt@ltbar}
% 2011/01/31, v1.1 I decide to settle the question of the |\hbar|. First, I
% should repeat the \LaTeX{} definition
%    \begin{macrocode}
%%\def\hbar{{\mathchar'26\mkern-9muh}} 
%% (original definition from latex.ltx)
%    \end{macrocode}
% Well, the fact is that there is a DeclareMathSymbol in |amsfonts.sty|, so I
% can not always rely on the original which had the advantage that at least
% |h| would be in the correct font. But of course not the macron character
% (|\=|, |\bar|). And there is also the issue of the kern whose length is
% given in a way which depends on |cmsy| (18mu=1em and em taken from info in
% |cmsy|). The first problem is that I don't know how to get the slot position
% of the macron, given the encoding. So I found another way. I will need an
% |rlap| adapted to math mode, and this is provided by code from 
% Alexander~R.~\textsc{Perlis} in his TugBoat article 22 (2001), 350--352,
% which I found by googling |rlap|.
%    \begin{macrocode}
\def\mathrlap{\mathpalette\mathrlapinternal}
\def\mathrlapinternal#1#2{\rlap{$\mathsurround=0pt#1{#2}$}}
\ifx\mt@ti\mt@enc
    \DeclareMathAccent{\mt@ltbar}{\mathalpha}{mtletterfont}{9}
  \else
    \DeclareMathAccent{\mt@ltbar}{\mathalpha}{mtletterfont}{22}
\fi
\ifx\mtno@hbar\@empty\else
\ifx\mt@enc\mt@eui % xetex
  \XeTeXmathchardef\hbar="7 "\the\symmtoperatorfont "0127 \relax 
\else
\ifx\mt@enc\mt@euii % luatex
   \luatexUmathchardef\hbar="7 "\the\symmtoperatorfont "0127 \relax %% or 210F?
\else % assume 8bit encoding
  \def\hbar{\mathrlap{\mt@ltbar{\ }}h}
\fi\fi\fi
%    \end{macrocode}
% \end{macro}
% \end{macro}
% As |h| is from |mtletterfont|, the accent \cs{mt@ltbar} is the
% \cs{bar} accent from that same font. Of course, if the user
% defines math versions with other encodings than the default one
% when loading the package this will probably not work there (if I
% knew how to do for accents what I did for the endash I could do
% it for all encodings. Surely easy for a \TeX{}pert.)  Not to
% mention if he/she changes the letter shape... one never should
% give so much freedom to users ;-) Well this construction gives
% an acceptable result for some of the fonts I have tested,
% whether upright or in italics.
% \begin{macro}{+,=,\Relbar}
%    \begin{macrocode}
\ifx\mtno@plus\@empty\else
\DeclareMathSymbol{+}{\mathbin}{\mt@font@tbu}{"2B}
\fi
\ifx\mtno@equal\@empty\else
\edef\mt@equal@sign{{\expandafter\mathchar\number\mathcode`\=}}
\DeclareRobustCommand\Relbar{\mathrel{\mt@equal@sign}}
\DeclareMathSymbol{=}{\mathrel}{\mt@font@tbu}{"3D}
\fi
%    \end{macrocode}
% \end{macro}
% \begin{macro}{(,),[,],/}
%    \begin{macrocode}
\ifx\mtno@paren\@empty\else
\DeclareMathDelimiter{(}{\mathopen} {\mt@font@tbu}{"28}{largesymbols}{"00}
\DeclareMathDelimiter{)}{\mathclose}{\mt@font@tbu}{"29}{largesymbols}{"01}
\DeclareMathDelimiter{[}{\mathopen} {\mt@font@tbu}{"5B}{largesymbols}{"02}
\DeclareMathDelimiter{]}{\mathclose}{\mt@font@tbu}{"5D}{largesymbols}{"03}
\DeclareMathDelimiter{/}{\mathord}{\mt@font@tbu}{"2F}{largesymbols}{"0E}
\DeclareMathSymbol{/}{\mathord}{\mt@font@tbu}{"2F}
\fi
%    \end{macrocode}
% \end{macro}
% \begin{macro}{alldelims}
%    \begin{macrocode}
\ifmt@alldelims
%%   \ifx\mt@symboldelimiters\@empty\else
%%   \ifx\mt@ti\mt@enc\else
%%   \typeout{** mathastext: `alldelims'. Characters <,>,{,},| will be assumed
%%        to\MessageBreak 
%%       ** be located as in ascii. True for T1 fonts or OT1 fixed-width fonts.}
%%    \fi\fi
\DeclareMathDelimiter{<}{\mathopen}{\mt@font@tbu}{"3C}{largesymbols}{"0A}
\DeclareMathDelimiter{>}{\mathclose}{\mt@font@tbu}{"3E}{largesymbols}{"0B}
\DeclareMathSymbol{<}{\mathrel}{\mt@font@tbu}{"3C}
\DeclareMathSymbol{>}{\mathrel}{\mt@font@tbu}{"3E}
%    \end{macrocode}
% There is no backslash in the Symbol font
%    \begin{macrocode}
\expandafter\DeclareMathDelimiter\@backslashchar
                        {\mathord}{mtoperatorfont}{"5C}{largesymbols}{"0F}
\DeclareMathDelimiter{\backslash}   
    {\mathord}{mtoperatorfont}{"5C}{largesymbols}{"0F}
\DeclareMathSymbol\setminus\mathbin{mtoperatorfont}{"5C}
\DeclareMathSymbol{|}\mathord{\mt@font@tbu}{"7C}
\DeclareMathDelimiter{|}{\mt@font@tbu}{"7C}{largesymbols}{"0C}
%    \end{macrocode}
% I stopped short of redeclaring also \cs{Vert}!
%    \begin{macrocode}
\DeclareMathDelimiter\vert
                 \mathord{\mt@font@tbu}{"7C}{largesymbols}{"0C}
\DeclareMathSymbol\mid\mathrel{\mt@font@tbu}{"7C}
\DeclareMathDelimiter{\lbrace}
   {\mathopen}{\mt@font@tbu}{"7B}{largesymbols}{"08}
\DeclareMathDelimiter{\rbrace}
   {\mathclose}{\mt@font@tbu}{"7D}{largesymbols}{"09}
\fi
%    \end{macrocode}
% \end{macro}
% \begin{macro}{specials}
% We never take the specials from the Symbol (Adobe) font, as they are not all
% available there.
%    \begin{macrocode}
\ifx\mtno@specials\@empty\else
\renewcommand{\#}{\ifmmode\edef\ms@tmp{7\the\symmtoperatorfont23}%
\mathchar\expandafter"\ms@tmp\relax\else\char"23\relax\fi}
\renewcommand{\$}{\ifmmode\edef\ms@tmp{7\the\symmtoperatorfont24}%
\mathchar\expandafter"\ms@tmp\relax\else\char"24\relax\fi}
\renewcommand{\%}{\ifmmode\edef\ms@tmp{7\the\symmtoperatorfont25}%
\mathchar\expandafter"\ms@tmp\relax\else\char"25\relax\fi}
\renewcommand{\&}{\ifmmode\edef\ms@tmp{7\the\symmtoperatorfont26}%
\mathchar\expandafter"\ms@tmp\relax\else\char"26\relax\fi}
\fi
%    \end{macrocode}
% \end{macro}
% \begin{macro}{symbolmisc}
% We construct (with some effort) some long arrows from the Symbol glyphs, of
% almost the same lengths as the standard ones. By the way, I always found the
% \cs{iff} to be too wide, but I follow here the default. Also, although
% there is a \cs{longmapsto} in standard \LaTeX{}, if I am not mistaken, there
% is no \cs{longto}. So I define one here. I could not construct in the same
% manner \cs{Longrightarrow} etc\dots{} as the = sign from Symbol does not
% combine easily with the logical arrows, well, I could have done some box
% manipulations, but well, life is finite.
%    \begin{macrocode}
\ifx\mt@symbolmisc\@empty   
\let\prod\undefined
\DeclareMathSymbol{\prod}{\mathop}{mtpsymbol}{213}
\let\sum\undefined
\DeclareMathSymbol{\sum}{\mathop}{mtpsymbol}{229}
\DeclareMathSymbol{\mt@implies}{\mathrel}{mtpsymbol}{222}
\DeclareRobustCommand{\implies}{\;\mt@implies\;}
\DeclareMathSymbol{\mt@impliedby}{\mathrel}{mtpsymbol}{220}
\DeclareRobustCommand{\impliedby}{\;\mt@impliedby\;}
\DeclareRobustCommand{\iff}{\;\mt@impliedby\mathrel{\mkern-3mu}\mt@implies\;}
\DeclareMathSymbol{\mt@iff}{\mathrel}{mtpsymbol}{219}
\DeclareRobustCommand{\shortiff}{\;\mt@iff\;}
\DeclareMathSymbol{\mt@to}{\mathrel}{mtpsymbol}{174}
\DeclareMathSymbol{\mt@trait}{\mathrel}{mtpsymbol}{190}
\DeclareRobustCommand\to{\mt@to}
\DeclareRobustCommand\longto{\mkern2mu\mt@trait\mathrel{\mkern-10mu}\mt@to}
\DeclareRobustCommand\mapsto{\mapstochar\mathrel{\mkern0.2mu}\mt@to}
\DeclareRobustCommand\longmapsto{%
\mapstochar\mathrel{\mkern2mu}\mt@trait\mathrel{\mkern-10mu}\mt@to}
\DeclareMathSymbol{\aleph}{\mathord}{mtpsymbol}{192}
\DeclareMathSymbol{\inftypsy}{\mathord}{mtpsymbol}{165} 
\DeclareMathSymbol{\emptyset}{\mathord}{mtpsymbol}{198}
\let\varnothing\emptyset
\DeclareMathSymbol{\nabla}{\mathord}{mtpsymbol}{209}
\DeclareMathSymbol{\surd}{\mathop}{mtpsymbol}{214}
\let\angle\undefined
\DeclareMathSymbol{\angle}{\mathord}{mtpsymbol}{208}
\DeclareMathSymbol{\forall}{\mathord}{mtpsymbol}{34}
\DeclareMathSymbol{\exists}{\mathord}{mtpsymbol}{36}
\DeclareMathSymbol{\neg}{\mathord}{mtpsymbol}{216}
\DeclareMathSymbol{\clubsuit}{\mathord}{mtpsymbol}{167}
\DeclareMathSymbol{\diamondsuit}{\mathord}{mtpsymbol}{168}
\DeclareMathSymbol{\heartsuit}{\mathord}{mtpsymbol}{169}
\DeclareMathSymbol{\spadesuit}{\mathord}{mtpsymbol}{170}
\DeclareMathSymbol{\smallint}{\mathop}{mtpsymbol}{242}
\DeclareMathSymbol{\wedge}{\mathbin}{mtpsymbol}{217}
\DeclareMathSymbol{\vee}{\mathbin}{mtpsymbol}{218}
\DeclareMathSymbol{\cap}{\mathbin}{mtpsymbol}{199}
\DeclareMathSymbol{\cup}{\mathbin}{mtpsymbol}{200}
\DeclareMathSymbol{\bullet}{\mathbin}{mtpsymbol}{183}
\DeclareMathSymbol{\div}{\mathbin}{mtpsymbol}{184}
\DeclareMathSymbol{\otimes}{\mathbin}{mtpsymbol}{196}
\DeclareMathSymbol{\oplus}{\mathbin}{mtpsymbol}{197}
\DeclareMathSymbol{\pm}{\mathbin}{mtpsymbol}{177}
%%\DeclareMathSymbol{*}{\mathbin}{mtpsymbol}{42} 
\DeclareMathSymbol{\ast}{\mathbin}{mtpsymbol}{42}
\DeclareMathSymbol{\times}{\mathbin}{mtpsymbol}{180}
\DeclareMathSymbol{\proptopsy}{\mathrel}{mtpsymbol}{181}
\DeclareMathSymbol{\mid}{\mathrel}{mtpsymbol}{124} 
\DeclareMathSymbol{\leq}{\mathrel}{mtpsymbol}{163}
\DeclareMathSymbol{\geq}{\mathrel}{mtpsymbol}{179}
\DeclareMathSymbol{\approx}{\mathrel}{mtpsymbol}{187}
\DeclareMathSymbol{\supset}{\mathrel}{mtpsymbol}{201}
\DeclareMathSymbol{\subset}{\mathrel}{mtpsymbol}{204}
\DeclareMathSymbol{\supseteq}{\mathrel}{mtpsymbol}{202}
\DeclareMathSymbol{\subseteq}{\mathrel}{mtpsymbol}{205}
\DeclareMathSymbol{\in}{\mathrel}{mtpsymbol}{206}
\DeclareMathSymbol{\sim}{\mathrel}{mtpsymbol}{126}
\let\cong\undefined
\DeclareMathSymbol{\cong}{\mathrel}{mtpsymbol}{64} 
\DeclareMathSymbol{\perp}{\mathrel}{mtpsymbol}{94}
\DeclareMathSymbol{\equiv}{\mathrel}{mtpsymbol}{186}
\let\notin\undefined
\DeclareMathSymbol{\notin}{\mathrel}{mtpsymbol}{207}
\DeclareMathDelimiter{\rangle}
   {\mathclose}{mtpsymbol}{241}{largesymbols}{"0B}
\DeclareMathDelimiter{\langle}
   {\mathopen}{mtpsymbol}{225}{largesymbols}{"0A}
\fi
%    \end{macrocode}
% \end{macro}
% \begin{macro}{symbolre}
% I like the \cs{Re} and \cs{Im} from Symbol, so I overwrite the CM ones.
%    \begin{macrocode}
\ifx\mt@symbolre\@empty
\DeclareMathSymbol{\Re}{\mathord}{mtpsymbol}{"C2}
\DeclareMathSymbol{\Im}{\mathord}{mtpsymbol}{"C1}
\DeclareMathSymbol{\DotTriangle}{\mathord}{mtpsymbol}{92}
\fi
%    \end{macrocode}
% \end{macro}
% \begin{macro}{Greek letters}
% selfGreek $>$ eulergreek $>$ symbolgreek 
%
% v1.1 We declare control sequences for the capital Greek letters
% which look like their latin counterparts. If \cs{digamma} is
% defined, presumably some package has been loaded for greek
% letters and we do not change anything (except if option
% symbolgreek or eulergreek or selfgreek was passed). I took
% motivation for this from the Xe\LaTeX{} package |mathspec|,
% which I didn't know about when writing up the version |1.0| of
% the present package. The goals of |mathastext| are much more
% restricted than those achieved by |mathspec|.
% 
% v1.11 I correct some bugs on how eulergreek and
% symbolgreek interacted.
%    \begin{macrocode}
\def\mt@font@tbu{operators}
\let\mt@mathord\mathord
\ifx\digamma\undefined\else\def\mt@font@tbu{1}\fi
\ifx\mt@selfGreek\@empty \def\mt@font@tbu{mtoperatorfont}
                         \let\mt@mathord\mathalpha 
    \else
\ifx\mt@eulergreek\@empty \def\mt@font@tbu{mteulervm} 
                         \let\mt@mathord\mathalpha 
    \else
\ifx\mt@symbolgreek\@empty \def\mt@font@tbu{mtpsymbol}
\fi\fi\fi
\def\mt@tmp{1}
\ifx\mt@font@tbu\mt@tmp\else 
%    \end{macrocode}
%  \cs{digamma} either undefined or defined and *greek option
% v1.11: I correct the bug with Symbol preempting capital
% Greek letters
%    \begin{macrocode}
\DeclareMathSymbol{\Digamma}{\mt@mathord}{\mt@font@tbu}{"46}
\DeclareMathSymbol{\Alpha}{\mt@mathord}{\mt@font@tbu}{"41}
\DeclareMathSymbol{\Beta}{\mt@mathord}{\mt@font@tbu}{"42}
\DeclareMathSymbol{\Epsilon}{\mt@mathord}{\mt@font@tbu}{"45}
\DeclareMathSymbol{\Zeta}{\mt@mathord}{\mt@font@tbu}{"5A}
\DeclareMathSymbol{\Eta}{\mt@mathord}{\mt@font@tbu}{"48}
\DeclareMathSymbol{\Iota}{\mt@mathord}{\mt@font@tbu}{"49}
\DeclareMathSymbol{\Kappa}{\mt@mathord}{\mt@font@tbu}{"4B}
\DeclareMathSymbol{\Mu}{\mt@mathord}{\mt@font@tbu}{"4D}
\DeclareMathSymbol{\Nu}{\mt@mathord}{\mt@font@tbu}{"4E}
\DeclareMathSymbol{\Omicron}{\mt@mathord}{\mt@font@tbu}{"4F}
\DeclareMathSymbol{\Rho}{\mt@mathord}{\mt@font@tbu}{"50}
\DeclareMathSymbol{\Tau}{\mt@mathord}{\mt@font@tbu}{"54}
\DeclareMathSymbol{\Chi}{\mt@mathord}{\mt@font@tbu}{"58}
%    \end{macrocode}
%  When we in fact do use Symbol, we will have to correct \cs{Rho} and
%  \cs{Chi} and \cs{Digamma} which is non-existent in fact (no F
%  in Symbol, F codes a \cs{Phi}).
%    \begin{macrocode}
\ifx\mt@symbolgreek\@empty
    \ifx\mt@eulergreek\@empty\else
    \ifx\mt@selfGreek\@empty\else
%% attention le P de Symbol est un \Pi pas un \Rho
\DeclareMathSymbol{\Rho}{\mathord}{mtpsymbol}{"52}
%% attention le X de Symbol est un \Xi pas un \Chi
\DeclareMathSymbol{\Chi}{\mathord}{mtpsymbol}{"43}
%% attention le F de Symbol est un \Phi. Il n'y a pas de \Digamma
\let\Digamma\undefined
\DeclareMathSymbol{\Gamma}{\mathord}{mtpsymbol}{"47}
\DeclareMathSymbol{\Delta}{\mathord}{mtpsymbol}{"44}
\DeclareMathSymbol{\Theta}{\mathord}{mtpsymbol}{"51}
\DeclareMathSymbol{\Lambda}{\mathord}{mtpsymbol}{"4C}
\DeclareMathSymbol{\Xi}{\mathord}{mtpsymbol}{"58} %% was "59 in v10
\DeclareMathSymbol{\Pi}{\mathord}{mtpsymbol}{"50}
\DeclareMathSymbol{\Sigma}{\mathord}{mtpsymbol}{"53}
\DeclareMathSymbol{\Upsilon}{\mathord}{mtpsymbol}{"A1}
\DeclareMathSymbol{\Phi}{\mathord}{mtpsymbol}{"46}
\DeclareMathSymbol{\Psi}{\mathord}{mtpsymbol}{"59}
\DeclareMathSymbol{\Omega}{\mathord}{mtpsymbol}{"57}
    \fi\fi 
\else
%    \end{macrocode}
% not symbolgreek, perhaps eulergreek, selfgreek, or none
% but then \cs{digamma} is not defined. We assume the non
% Latin-looking capital Greek letters to be as in OT1.
%    \begin{macrocode}
\DeclareMathSymbol\Gamma    {\mathalpha}{\mt@font@tbu}{"00}
\DeclareMathSymbol\Delta    {\mathalpha}{\mt@font@tbu}{"01}
\DeclareMathSymbol\Theta    {\mathalpha}{\mt@font@tbu}{"02}
\DeclareMathSymbol\Lambda   {\mathalpha}{\mt@font@tbu}{"03}
\DeclareMathSymbol\Xi       {\mathalpha}{\mt@font@tbu}{"04}
\DeclareMathSymbol\Pi       {\mathalpha}{\mt@font@tbu}{"05}
\DeclareMathSymbol\Sigma    {\mathalpha}{\mt@font@tbu}{"06}
\DeclareMathSymbol\Upsilon  {\mathalpha}{\mt@font@tbu}{"07}
\DeclareMathSymbol\Phi      {\mathalpha}{\mt@font@tbu}{"08}
\DeclareMathSymbol\Psi      {\mathalpha}{\mt@font@tbu}{"09}
\DeclareMathSymbol\Omega    {\mathalpha}{\mt@font@tbu}{"0A}
\fi
\fi
%    \end{macrocode}
% The \cs{omicron} requires special treatment. By default we use the o from the
% (original) normal alphabet, if eulergreek or symbolgreek we adapt.  There is
% also a special adjustment needed if the package |fourier| was loaded in its
% |upright| variant: we then take \cs{omicron} from the (original) rm alphabet.
% 
% There are differences regarding Euler and Symbol with respect to the
% available var-letters. We include one or two things like the |wp| and the
% |partial|.
%
% The lower case Greek letters in default \LaTeX{} are of type |mathord|. If
% we use the Euler font it is perhaps better to have them be of type
% |mathalpha|
%    \begin{macrocode}
\let\omicron\undefined
\newcommand\omicron{\mt@saved@mathnormal{o}}
\ifx\mt@eulergreek\@empty
\DeclareMathSymbol{\alpha}  {\mathalpha}{mteulervm}{"0B}
\DeclareMathSymbol{\beta}   {\mathalpha}{mteulervm}{"0C}
\DeclareMathSymbol{\gamma}  {\mathalpha}{mteulervm}{"0D}
\DeclareMathSymbol{\delta}  {\mathalpha}{mteulervm}{"0E}
\DeclareMathSymbol{\epsilon}{\mathalpha}{mteulervm}{"0F}
\DeclareMathSymbol{\zeta}   {\mathalpha}{mteulervm}{"10}
\DeclareMathSymbol{\eta}    {\mathalpha}{mteulervm}{"11}
\DeclareMathSymbol{\theta}  {\mathalpha}{mteulervm}{"12}
\DeclareMathSymbol{\iota}   {\mathalpha}{mteulervm}{"13}
\DeclareMathSymbol{\kappa}  {\mathalpha}{mteulervm}{"14}
\DeclareMathSymbol{\lambda} {\mathalpha}{mteulervm}{"15}
\DeclareMathSymbol{\mu}     {\mathalpha}{mteulervm}{"16}
\DeclareMathSymbol{\nu}     {\mathalpha}{mteulervm}{"17}
\DeclareMathSymbol{\xi}     {\mathalpha}{mteulervm}{"18}
\renewcommand\omicron{\MathEuler{o}}
\DeclareMathSymbol{\pi}     {\mathalpha}{mteulervm}{"19}
\DeclareMathSymbol{\rho}    {\mathalpha}{mteulervm}{"1A}
\DeclareMathSymbol{\sigma}  {\mathalpha}{mteulervm}{"1B}
\DeclareMathSymbol{\tau}    {\mathalpha}{mteulervm}{"1C}
\DeclareMathSymbol{\upsilon}{\mathalpha}{mteulervm}{"1D}
\DeclareMathSymbol{\phi}    {\mathalpha}{mteulervm}{"1E}
\DeclareMathSymbol{\chi}    {\mathalpha}{mteulervm}{"1F}
\DeclareMathSymbol{\psi}    {\mathalpha}{mteulervm}{"20}
\DeclareMathSymbol{\omega}  {\mathalpha}{mteulervm}{"21}
\DeclareMathSymbol{\varepsilon}{\mathalpha}{mteulervm}{"22}
\DeclareMathSymbol{\vartheta}{\mathalpha}{mteulervm}{"23}
\DeclareMathSymbol{\varpi}  {\mathalpha}{mteulervm}{"24}
\let\varrho=\rho
\let\varsigma=\sigma
\DeclareMathSymbol{\varphi} {\mathalpha}{mteulervm}{"27}
\DeclareMathSymbol{\partial}{\mathalpha}{mteulervm}{"40}
\DeclareMathSymbol{\wp}{\mathalpha}{mteulervm}{"7D}
\DeclareMathSymbol{\ell}{\mathalpha}{mteulervm}{"60}
\else
\ifx\mt@symbolgreek\@empty
\DeclareMathSymbol{\alpha}{\mathord}{mtpsymbol}{"61}
\DeclareMathSymbol{\beta}{\mathord}{mtpsymbol}{"62}
\DeclareMathSymbol{\gamma}{\mathord}{mtpsymbol}{"67}
\DeclareMathSymbol{\delta}{\mathord}{mtpsymbol}{"64}
\DeclareMathSymbol{\epsilon}{\mathord}{mtpsymbol}{"65}
\DeclareMathSymbol{\zeta}{\mathord}{mtpsymbol}{"7A}
\DeclareMathSymbol{\eta}{\mathord}{mtpsymbol}{"68}
\DeclareMathSymbol{\theta}{\mathord}{mtpsymbol}{"71}
\DeclareMathSymbol{\iota}{\mathord}{mtpsymbol}{"69}
\DeclareMathSymbol{\kappa}{\mathord}{mtpsymbol}{"6B}
\DeclareMathSymbol{\lambda}{\mathord}{mtpsymbol}{"6C}
\DeclareMathSymbol{\mu}{\mathord}{mtpsymbol}{"6D}
\DeclareMathSymbol{\nu}{\mathord}{mtpsymbol}{"6E}
\DeclareMathSymbol{\xi}{\mathord}{mtpsymbol}{"78}
\renewcommand\omicron{\mathord{\MathPSymbol{o}}}
\DeclareMathSymbol{\pi}{\mathord}{mtpsymbol}{"70}
\DeclareMathSymbol{\rho}{\mathord}{mtpsymbol}{"72}
\DeclareMathSymbol{\sigma}{\mathord}{mtpsymbol}{"73}
\DeclareMathSymbol{\tau}{\mathord}{mtpsymbol}{"74}
\DeclareMathSymbol{\upsilon}{\mathord}{mtpsymbol}{"75}
\DeclareMathSymbol{\phi}{\mathord}{mtpsymbol}{"66}
\DeclareMathSymbol{\chi}{\mathord}{mtpsymbol}{"63}
\DeclareMathSymbol{\psi}{\mathord}{mtpsymbol}{"79}
\DeclareMathSymbol{\omega}{\mathord}{mtpsymbol}{"77}
\let\varepsilon=\epsilon 
\DeclareMathSymbol{\vartheta}{\mathord}{mtpsymbol}{"4A}
\DeclareMathSymbol{\varpi}{\mathord}{mtpsymbol}{"76}
\let\varrho=\rho 
\DeclareMathSymbol{\varsigma}{\mathord}{mtpsymbol}{"56}
\DeclareMathSymbol{\varphi}{\mathord}{mtpsymbol}{"6A}
\DeclareMathSymbol{\partial}{\mathord}{mtpsymbol}{"B6}
\DeclareMathSymbol{\wp}{\mathord}{mtpsymbol}{"C3}
\fi\fi
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\inodot}
% \begin{macro}{\jnodot}
%   In v1.0, I had them of type |mathord|, here I choose |mathalpha|. If I
%   used \cs{i} and \cs{j} from the text font the problem would be with the
%   fontsize, if in scriptstyle. The amsmath \cs{text} would do the trick.
%    \begin{macrocode}
\ifx\mt@enc\mt@eui % xetex
  \XeTeXmathchardef\inodot="7 "\the\symmtletterfont "0131 \relax
  \XeTeXmathchardef\jnodot="7 "\the\symmtletterfont "0237 \relax
\else
\ifx\mt@enc\mt@euii % luatex
   \luatexUmathchardef\inodot="7 "\the\symmtletterfont "0131 \relax
   \luatexUmathchardef\jnodot="7 "\the\symmtletterfont "0237 \relax
\else % assume 8bit encoding
   \DeclareMathSymbol{\inodot}{\mathalpha}{mtletterfont}
{\expandafter\the\expandafter\csname\mt@enc\string\i\endcsname}
   \DeclareMathSymbol{\jnodot}{\mathalpha}{mtletterfont}
{\expandafter\the\expandafter\csname\mt@enc\string\j\endcsname}
\fi\fi
\ifx\mt@defaultimath\@empty\else
    \renewcommand{\imath}{\inodot}
    \renewcommand{\jmath}{\jnodot}
    \let\mt@oldi\i \let\mt@oldj\j
    \DeclareRobustCommand{\i}{\ifmmode\inodot\else\mt@oldi\fi}
    \DeclareRobustCommand{\j}{\ifmmode\jnodot\else\mt@oldj\fi}
\fi
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \begin{macro}{math accents}
%   I don't know how to get from the encoding to the slot
%   positions of the accents (apart from going to look at
%   all possible encodings definition files and putting this
%   info here).  In standard \LaTeX{}, the mathaccents are
%   taken from the `operators' font. So we do the same
%   here. Of course there is the problem that the user can
%   define math versions with different encodings. Here I
%   take T1 if it was the default at the time of loading the
%   package, else OT1.
%    \begin{macrocode}
\ifx\mt@mathaccents\@empty 
\ifx\mt@ti\mt@enc
\DeclareMathAccent{\acute}{\mathalpha}{mtoperatorfont}{1}
\DeclareMathAccent{\grave}{\mathalpha}{mtoperatorfont}{0}
\DeclareMathAccent{\ddot}{\mathalpha}{mtoperatorfont}{4}
\DeclareMathAccent{\tilde}{\mathalpha}{mtoperatorfont}{3}
\DeclareMathAccent{\bar}{\mathalpha}{mtoperatorfont}{9}
\DeclareMathAccent{\breve}{\mathalpha}{mtoperatorfont}{8}
\DeclareMathAccent{\check}{\mathalpha}{mtoperatorfont}{7}
\DeclareMathAccent{\hat}{\mathalpha}{mtoperatorfont}{2}
\DeclareMathAccent{\dot}{\mathalpha}{mtoperatorfont}{10}
\DeclareMathAccent{\mathring}{\mathalpha}{mtoperatorfont}{6}
\else
\DeclareMathAccent{\acute}{\mathalpha}{mtoperatorfont}{19}
\DeclareMathAccent{\grave}{\mathalpha}{mtoperatorfont}{18}
\DeclareMathAccent{\ddot}{\mathalpha}{mtoperatorfont}{127}
\DeclareMathAccent{\tilde}{\mathalpha}{mtoperatorfont}{126}
\DeclareMathAccent{\bar}{\mathalpha}{mtoperatorfont}{22}
\DeclareMathAccent{\breve}{\mathalpha}{mtoperatorfont}{21}
\DeclareMathAccent{\check}{\mathalpha}{mtoperatorfont}{20}
\DeclareMathAccent{\hat}{\mathalpha}{mtoperatorfont}{94}
\DeclareMathAccent{\dot}{\mathalpha}{mtoperatorfont}{95}
\DeclareMathAccent{\mathring}{\mathalpha}{mtoperatorfont}{23}
\ifx\mt@oti\mt@enc\else
  \typeout{** mathastext: `mathaccents'; accents have been assumed to be\MessageBreak
  ** as in OT1 encoding.}
\fi\fi\fi
%    \end{macrocode}
% \end{macro}
% \begin{macro}{Math sizes}
% I took the code for \cs{Huge} and \cs{HUGE} from the |moresize| package of
% Christian~\textsc{Cornelssen}
%    \begin{macrocode}
\ifmt@defaultsizes\else
\providecommand\@xxxpt{29.86}
\providecommand\@xxxvipt{35.83}
\ifmt@twelve  
  \def\Huge{\@setfontsize\Huge\@xxxpt{36}}
  \def\HUGE{\@setfontsize\HUGE\@xxxvipt{43}}
\typeout{** \protect\Huge\space and \protect\HUGE\space have been (re)-defined.}
\else 
  \def\HUGE{\@setfontsize\HUGE\@xxxpt{36}}
\typeout{** \protect\HUGE\space has been (re)-defined.} 
\fi
%    \end{macrocode}
% I choose rather big subscripts.
%    \begin{macrocode}
\def\defaultscriptratio{.8333}
\def\defaultscriptscriptratio{.7}
\DeclareMathSizes{9}{9}{7}{5}
\DeclareMathSizes{\@xpt}{\@xpt}{8}{6}
\DeclareMathSizes{\@xipt}{\@xipt}{9}{7}
\DeclareMathSizes{\@xiipt}{\@xiipt}{10}{8}
\DeclareMathSizes{\@xivpt}{\@xivpt}{\@xiipt}{10}
\DeclareMathSizes{\@xviipt}{\@xviipt}{\@xivpt}{\@xiipt}
\DeclareMathSizes{\@xxpt}{\@xxpt}{\@xviipt}{\@xivpt}
\DeclareMathSizes{\@xxvpt}{\@xxvpt}{\@xxpt}{\@xviipt}
\DeclareMathSizes{\@xxxpt}{\@xxxpt}{\@xxvpt}{\@xxpt}
\DeclareMathSizes{\@xxxvipt}{\@xxxvipt}{\@xxxpt}{\@xxvpt}
\typeout{** mathastext has declared larger sizes for subscripts.\MessageBreak
** To keep LaTeX defaults, use option `defaultmathsizes'.}
\fi
%    \end{macrocode}
% \end{macro}
% Scaling mechanism for the Symbol font.
%    \begin{macrocode}
\AtBeginDocument{
  \ifmt@need@symbol
  \DeclareFontFamily{U}{psy}{}
  \DeclareFontShape{U}{psy}{m}{n}{<->s*[\psy@scale] psyr}{}
  \fi
}
%    \end{macrocode}
% Time to reactivate the standard font infos and warnings and we are done.
%    \begin{macrocode}
\mt@font@info@on
\endinput
%    \end{macrocode}
% \iffalse
%</code>
%<*dtx>
% \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         \~}
%
% \iffalse
%</dtx>
% \fi
%
% \CheckSum{2232}
% \Finale
\endinput