% OFS: PS fonts + math encoding declaration for \def\fomenc{PS}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Apr. 2004                                          Petr Olsak

\protectreading ofs-ps.tex % This is part of OFS package

\mathencdef\PSmathchars {%
  \fontmessage{\ofsmessageheader Math codes are set for PS encoding.}%
  \mathcode`\,="602C
  \mathcode`\.="002E
  \mathchardef\ldotp="602E
  \mathcode`\/="002F
  \mathcode`\-="2\hex\symbfam 2D 
  \mathcode`\<="3\hex\symbfam 3C
  \mathcode`\>="3\hex\symbfam 3E
  \mathcode`\|="0\hex\symbfam 7C
  %
  \delcode`\<="\hex\symbfam E130A
  \delcode`\>="\hex\symbfam F130B
  \delcode`\|="\hex\symbfam 7C30C
  %
  \edef\langle{\delimiter"4\hex\symbfam E130A }%
  \edef\rangle{\delimiter"5\hex\symbfam F130B }%
  \edef\lbrace{\delimiter"4\hex\symbfam 7B308 }\let\{=\lbrace
  \edef\vert  {\delimiter"2\hex\symbfam 7C30C }\let\|=\vert
  \edef\rbrace{\delimiter"5\hex\symbfam 7D309 }\let\}=\rbrace
  % \bffam, \ttfam can be allocated with non-plain values
  \def\lgroup{\delimiter"4\hex\bffam 2833A }% extensible ( with sharper tips
  \def\rgroup{\delimiter"5\hex\bffam 2933B }% extensible ) with sharper tips
  \def\bracevert{\delimiter"\hex\ttfam 7C33E }% the vertical bar that extends braces
  %
  \def\tmpa{8z}\ifx\fotenc\tmpa
     \mathaccentdef \acute "7013
     \mathaccentdef \bar   "7016
     \mathaccentdef \breve "7015
     \mathaccentdef \check "7014
     \mathaccentdef \ddot  "707F
     \mathaccentdef \dot   "705F
     \mathaccentdef \grave "7012
     \mathaccentdef \hat   "705E
     \mathaccentdef \tilde "707E
  \else
     \mathaccentdef \acute "7001
     \mathaccentdef \bar   "7009
     \mathaccentdef \breve "7008
     \mathaccentdef \check "7007
     \mathaccentdef \ddot  "7004
     \mathaccentdef \dot   "700A
     \mathaccentdef \grave "7000
     \mathaccentdef \hat   "7002
     \mathaccentdef \tilde "7003
  \fi
  \let\vec=\overrightarrow % rightarrow accent is not present in Symbol
  %
  \mathchardef\alpha    "0\hex\symbofam 61
  \mathchardef\beta     "0\hex\symbofam 62
  \mathchardef\gamma    "0\hex\symbofam 67
  \mathchardef\delta    "0\hex\symbofam 64
  \mathchardef\epsilon  "0\hex\symbofam 65
  \mathchardef\zeta     "0\hex\symbofam 7A
  \mathchardef\eta      "0\hex\symbofam 68
  \mathchardef\theta    "0\hex\symbofam 71
  \mathchardef\iota     "0\hex\symbofam 69
  \mathchardef\kappa    "0\hex\symbofam 6B
  \mathchardef\lambda   "0\hex\symbofam 6C
  \mathchardef\mu       "0\hex\symbofam 6D
  \mathchardef\nu       "0\hex\symbofam 6E
  \mathchardef\xi       "0\hex\symbofam 78
  \mathchardef\pi       "0\hex\symbofam 70
  \mathchardef\rho      "0\hex\symbofam 72
  \mathchardef\sigma    "0\hex\symbofam 73
  \mathchardef\tau      "0\hex\symbofam 74
  \mathchardef\upsilon  "0\hex\symbofam 75
  \mathchardef\phi      "0\hex\symbofam 66
  \mathchardef\chi      "0\hex\symbofam 63
  \mathchardef\psi      "0\hex\symbofam 79
  \mathchardef\omega    "0\hex\symbofam 77
  \let\varepsilon \epsilon
  \let\vartheta \theta
  \mathchardef\varpi    "0\hex\symbofam 76
  \let\varrho \rho
  \let\varsigma \sigma
  \let\varphi \phi
  \mathchardef\Gamma    "0\hex\symbfam 47
  \mathchardef\Delta    "0\hex\symbfam 44
  \mathchardef\Theta    "0\hex\symbfam 51
  \mathchardef\Lambda   "0\hex\symbfam 4C
  \mathchardef\Xi       "0\hex\symbfam 58
  \mathchardef\Pi       "0\hex\symbfam 50
  \mathchardef\Sigma    "0\hex\symbfam 53
  \mathchardef\Upsilon  "0\hex\symbfam A1
  \mathchardef\Phi      "0\hex\symbfam 46
  \mathchardef\Psi      "0\hex\symbfam 59
  \mathchardef\Omega    "0\hex\symbfam 57
  %
  \mathchardef\aleph    "0\hex\symbfam C0
  \def\tmpa{8z}\ifx\fotenc\tmpa
    \mathchardef\imath  "0110
  \else
    \mathchardef\imath  "0169
  \fi
  \mathchardef\Re       "0\hex\symbfam C2
  \mathchardef\Im       "0\hex\symbfam C1
  \mathchardef\partial  "0\hex\symbfam B6
  \mathchardef\infty    "0\hex\symbfam A5
  \mathchardef\emptyset "0\hex\symbfam C6
  \mathchardef\nabla    "0\hex\symbfam D1
  \mathchardef\bot      "0\hex\symbfam 5E
  \mathchardef\forall   "0\hex\symbfam 22
  \mathchardef\exists   "0\hex\symbfam 24
  \mathchardef\neg      "0\hex\symbfam D8 \let\lnot \neg
  \mathchardef\clubsuit    "0\hex\symbfam A7
  \mathchardef\diamondsuit "0\hex\symbfam A8
  \mathchardef\heartsuit   "0\hex\symbfam A9
  \mathchardef\spadesuit   "0\hex\symbfam AA
  %
  \mathchardef\intopinternal "1\hex\symbfam F2
  \mathchardef\prodinternal  "1\hex\symbfam D5
  \mathchardef\suminternal   "1\hex\symbfam E5
  %
  \def\intop {\mathop{\let\oriop=\intopinternal  
              \mathpalette\setop{\char"F2}\kern.06em}}%   
  \def\prod  {\mathop{\let\oriop=\prodinternal
              \mathpalette\setop{\char"F2}}}%
  \def\sum   {\mathop{\let\oriop=\suminternal
              \mathpalette\setop{\char"E5}}}%
  \def\setop ##1##2{\ifx##1\displaystyle        % Bigger \int, \prod, \sum
             \vcenter{\hbox{\bigsymbofont##2}}% % in \displaystyle
             \else ##1\oriop\fi}
  %
  \mathchardef\wedge         "2\hex\symbfam D9 \let\land \wedge
  \mathchardef\vee           "2\hex\symbfam DA \let\lor \vee
  \mathchardef\cap           "2\hex\symbfam C7
  \mathchardef\cup           "2\hex\symbfam C8
  \def\tmpa{8z}\ifx\fotenc\tmpa
    \mathchardef\ddagger     "2082
    \mathchardef\dagger      "2081
  \fi
  \mathchardef\bullet        "2\hex\symbfam B7
  \mathchardef\div           "2\hex\symbfam B8
  \mathchardef\oslash        "2\hex\symbfam C6
  \mathchardef\otimes        "2\hex\symbfam C4
  \mathchardef\oplus         "2\hex\symbfam C5
  \mathchardef\pm            "2\hex\symbfam B1
  \mathchardef\cdot          "2\hex\symbfam D7
  \mathchardef\ast           "2\hex\symbfam 2A
  \mathchardef\times         "2\hex\symbfam B4
  \let\star \ast
  %
  \mathchardef\propto         "3\hex\symbfam B5
  \mathchardef\mid            "3\hex\symbfam EF
  \mathchardef\Leftrightarrow "3\hex\symbfam DB
  \mathchardef\Leftarrow      "3\hex\symbfam DC
  \mathchardef\Rightarrow     "3\hex\symbfam DE
  \mathchardef\neq            "3\hex\symbfam B9 \let\ne \neq
  \mathchardef\leq            "3\hex\symbfam A3 \let\le \leq
  \mathchardef\geq            "3\hex\symbfam B3 \let\ge \geq
  \mathchardef\approx         "3\hex\symbfam BB
  \mathchardef\supset         "3\hex\symbfam C9
  \mathchardef\subset         "3\hex\symbfam CC
  \mathchardef\supseteq       "3\hex\symbfam CA
  \mathchardef\subseteq       "3\hex\symbfam CD
  \mathchardef\in             "3\hex\symbfam CE
  \mathchardef\ni             "3\hex\symbfam 27 \let\owns \ni
  \mathchardef\leftrightarrow "3\hex\symbfam AB
  \mathchardef\leftarrow      "3\hex\symbfam AC \let\gets \leftarrow
  \mathchardef\rightarrow     "3\hex\symbfam AE \let\to \rightarrow
  \mathchardef\sim            "3\hex\symbfam 7E
  \mathchardef\simeq          "3\hex\symbfam 40
  \mathchardef\perp           "3\hex\symbfam 5E
  \mathchardef\equiv          "3\hex\symbfam BA
  %
  \def\longrightarrow{\mathrel{\smash{\mathchar"200}}\joinrel\mathchar"3221 }%
  \def\longleftarrow{\mathchar"3220\joinrel\mathrel{\smash{\mathchar"200}}}%
  \def\Longrightarrow{\mathrel{\pickmathfont{cmr8z}=}\joinrel\mathchar"3229 }%
  \def\Longleftarrow{\mathchar"3228\joinrel\mathrel{\pickmathfont{cmr8z}=}}%
  \def\mapsto{\mapstochar\mathchar"3221 }%
  \def\longleftrightarrow{\mathchar"3220\joinrel\mathchar"3221 }%
  \def\Longleftrightarrow{\mathchar"3228\joinrel\mathchar"3229 }%
  \def\rightarrowfill{$\mathsurround0pt\smash{\mathchar"200}\mkern-7mu%
     \cleaders\hbox{$\mkern-2mu\smash{\mathchar"200}\mkern-2mu$}\hfill
     \mkern-7mu\mathchar"221$}%
  \def\leftarrowfill{$\mathsurround0pt\mathchar"220\mkern-7mu%
     \cleaders\hbox{$\mkern-2mu\smash{\mathchar"200}\mkern-2mu$}\hfill
     \mkern-7mu\smash{\mathchar"200}$}%
  %
  % The following characters are not present im psyr:
  %
  \def\jmath{{\pickmathfont{cmmi}{\char"7C}}}%
  \def\ell{{\pickmathfont{cmmi}{\char"60}}}%
  \def\wp{{\pickmathfont{cmmi}{\char"7D}}}%
  \def\flat{{\pickmathfont{cmmi}{\char"5B}}}%
  \def\natural{{\pickmathfont{cmmi}{\char"5C}}}%
  \let\sharp \natural 
  \def\triangleleft{\mathbin{\pickmathfont{cmmi}{\char"2F}}}%
  \def\triangleright{\mathbin{\pickmathfont{cmmi}{\char"2E}}}%
  \def\smile{\mathrel{\pickmathfont{cmmi}{\char"5E}}}%
  \def\frown{\mathrel{\pickmathfont{cmmi}{\char"5F}}}%
  \def\leftharpoonup{\mathrel{\pickmathfont{cmmi}{\char"28}}}%
  \def\leftharpoondown{\mathrel{\pickmathfont{cmmi}{\char"29}}}%
  \def\rightharpoonup{\mathrel{\pickmathfont{cmmi}{\char"2A}}}%
  \def\rightharpoondown{\mathrel{\pickmathfont{cmmi}{\char"2B}}}%
  %
  \def\mathcharsback{\mathencread ofs-cm;}%
}


