% OFS: AMS fonts, declaration
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Apr. 2004                                  Petr Olsak

%% see more info at the end of this file

\protectreading amsfn.tex % This is part of OFS package

\def\loadAMSnormalmath{%
  \loadCMnormalmath
  \chardef\msamfam  8
  \loadmathfam \msamfam  [/msam]%          MSAM, symbols from ASMTeX
  \chardef\msbmfam  9
  \loadmathfam \msbmfam  [/msbm]%          MSBM, symbols from AMSTeX
  \lastfam =9
}
\def\loadAMSboldmath{%
  \loadCMboldmath
  \chardef\msamfam  8
  \loadmathfam \msamfam  [/msam]%          MSAM, symbols from ASMTeX
  \chardef\msbmfam  9
  \loadmathfam \msbmfam  [/msbm]%          MSBM, symbols from AMSTeX
  \lastfam =9
}
\def\setAMSmathchars{\mathencread ofs-ams;}

\def\registerAMSfonts #1 {%
   \registertfm  #1     -      #110 %
   \registertfm  #1  0pt-6pt   #15  %
   \registertfm  #1  6pt-7pt   #16  %
   \registertfm  #1  7pt-8pt   #17  %
   \registertfm  #1  8pt-9pt   #18  %
   \registertfm  #1  9pt-10pt  #19  %
   \registertfm  #1  10pt-*    #110 %
}
\registerAMSfonts msam %
\registerAMSfonts msbm %
\registerAMSfonts eufm %
\registerAMSfonts eufb %
\registerAMSfonts eurm %
\registerAMSfonts eurb %
\registerAMSfonts eusm %
\registerAMSfonts eusb %

\registertfm      cmbsy  -  - % reset 
\registerAMSfonts cmbsy       %
\registertfm      cmex   -  - % reset
\registerAMSfonts cmex        %
\registertfm      cmmib  -  - % reset
\registerAMSfonts cmmib       %

\registertfm  euex     -      euex10 %
\registertfm  euex  0pt-8pt   euex7  %
\registertfm  euex  8pt-9pt   euex8  %
\registertfm  euex  9pt-10pt  euex9  %
\registertfm  euex  10pt-*    euex10 %

\endinput

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

You can use all AMS symbol sequences together with CM fonts in 
math formulae after:

\input amsfn
\def\fomenc{AMS}
\setmath[//]

You can add the Euler Fraktur to the math fonts by the following
commands (before \setmath command):

\addcmd\mathfonts {\def\tmpa{bold}%
   \ifx\mathversion\tmpa \def\tmpa{b}\else\def\tmpa{m}\fi
   \newmathfam\frakfam \loadmathfam\frakfam [/euf\tmpa]}
\def\frak#1{{\fam\frakfam#1}}

You can add the Euler Script to the math fonts:

\addcmd\mathfonts {\def\tmpa{bold}%
   \ifx\mathversion\tmpa \def\tmpa{b}\else\def\tmpa{m}\fi
   \newmathfam\scriptfam \loadmathfam\scriptfam [/eus\tmpa]}
\def\script#1{{\fam\scriptfam#1}}
 
You can add the Euler Upright italic to the math fonts:

\addcmd\mathfonts {\def\tmpa{bold}%
   \ifx\mathversion\tmpa \def\tmpa{b}\else\def\tmpa{m}\fi
   \newmathfam\upitfam \loadmathfam\upitfam [/eur\tmpa]}
\def\upright#1{{\fam\upitfam#1}}

You can replace standard CM operators \sum, \int, etc. by the
operators from Euler extension font by the following commands:

\addcmd\mathfonts{\newmathfam\euexfam \loadmathfam\euexfam [/euex]}
\addcmd\mathchars{%
   \mathchardef \ointop    "1\hex\euexfam 48
   \mathchardef \sum       "1\hex\euexfam 50
   \mathchardef \prod      "1\hex\euexfam 51
   \mathchardef \intop     "1\hex\euexfam 52
   \mathchardef \uprod     "1\hex\euexfam 60
   \edef        \lbrace {\delimiter "4266\hex\euexfam 08 }%
   \edef        \rbrace {\delimiter "5267\hex\euexfam 09 }%
   \let\{=\lbrace 
   \let\}=\rbrace
   \mathchardef \letfharpoonup     "3\hex\euexfam 18
   \mathchardef \leftharpoondown   "3\hex\euexfam 19
   \mathchardef \rightharpoonup    "3\hex\euexfam 1A
   \mathchardef \rightharpoondown  "3\hex\euexfam 1B
   \mathchardef \leftarrow         "3\hex\euexfam 20
   \mathchardef \rightarrow        "3\hex\euexfam 21
   \mathchardef \leftrightarrow    "3\hex\euexfam 24
   \mathchardef \nearrow           "3\hex\euexfam 25
   \mathchardef \searrow           "3\hex\euexfam 26
   \mathchardef \Leftarrow         "3\hex\euexfam 28
   \mathchardef \Rightarrow        "3\hex\euexfam 29
   \mathchardef \Leftrightarrow    "3\hex\euexfam 2C
   \mathchardef \nwarrow           "3\hex\euexfam 2D
   \mathchardef \swarrow           "3\hex\euexfam 2E
   \mathchardef \infty             "0\hex\euexfam 31
   \edef        \uparrow     {\delimiter "3\hex\euexfam 22378 }%
   \edef        \downarrow   {\delimiter "3\hex\euexfam 23379 }%
   \edef        \Uparrow     {\delimiter "3\hex\euexfam 2A37E }%
   \edef        \Downarrow   {\delimiter "3\hex\euexfam 2B37F }%
   \edef        \updownarrow {\delimiter "3\hex\euexfam 6C33F }%
   \edef        \Updownarrow {\delimiter "3\hex\euexfam 6D377 }%
}








