% OFS: TX fonts, math encoding declaration
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Apr. 2004                                  Petr Olsak

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

\mathencdef\TXSYCmathchars {%
  \fontmessage{\ofsmessageheader Math symbols are set for TX encoding.}%
  \mathchardef\mappedfromchar       "3\hex\txsycfam 00
  \def\mappedfrom{\leftarrow\mappedfromchar}%
  \def\longmappedfrom{\longleftarrow\mappedfromchar}%
  \mathchardef\Mapstochar           "3\hex\txsycfam 01
  \def\Mapsto{\Mapstochar\Rightarrow}%
  \def\Longmapsto{\Mapstochar\Longrightarrow}%
  \mathchardef\Mappedfromchar       "3\hex\txsycfam 02
  \def\Mappedfrom{\Leftarrow\Mappedfromchar}%
  \def\Longmappedfrom{\Longleftarrow\Mappedfromchar}%
  \mathchardef\mmapstochar          "3\hex\txsycfam 03
  \def\mmapsto{\mmapstochar\rightarrow}%
  \def\longmmapsto{\mmapstochar\longrightarrow}%
  \mathchardef\mmappedfromchar      "3\hex\txsycfam 04
  \def\mmappedfrom{\leftarrow\mmappedfromchar}%
  \def\longmmappedfrom{\longleftarrow\mmappedfromchar}%
  \mathchardef\Mmapstochar          "3\hex\txsycfam 05
  \def\Mmapsto{\Mmapstochar\Rightarrow}%
  \def\Longmmapsto{\Mmapstochar\Longrightarrow}%
  \mathchardef\Mmappedfromchar      "3\hex\txsycfam 06
  \def\Mmappedfrom{\Leftarrow\Mmappedfromchar}%
  \def\Longmmappedfrom{\Longleftarrow\Mmappedfromchar}%
  \mathchardef\medcirc              "2\hex\txsycfam 07
  \mathchardef\medbullet            "2\hex\txsycfam 08
  \mathchardef\varparallel          "3\hex\txsycfam 09
  \mathchardef\varparallelinv       "3\hex\txsycfam 0A
  \mathchardef\nvarparallel         "3\hex\txsycfam 0B
  \mathchardef\nvarparallelinv      "3\hex\txsycfam 0C
  \mathchardef\colonapprox          "3\hex\txsycfam 0D
  \mathchardef\colonsim             "3\hex\txsycfam 0E
  \mathchardef\Colonapprox          "3\hex\txsycfam 0F
  \mathchardef\Colonsim             "3\hex\txsycfam 10
  \mathchardef\doteq                "3\hex\txsycfam 11
  \mathchardef\multimapinv          "3\hex\txsycfam 12
  \mathchardef\multimapboth         "3\hex\txsycfam 13
  \mathchardef\multimapdot          "3\hex\txsycfam 14
  \mathchardef\multimapdotinv       "3\hex\txsycfam 15
  \mathchardef\multimapdotboth      "3\hex\txsycfam 16
  \mathchardef\multimapdotbothA     "3\hex\txsycfam 17
  \mathchardef\multimapdotbothB     "3\hex\txsycfam 18
  \mathchardef\VDash                "3\hex\txsycfam 19
  \mathchardef\VvDash               "3\hex\txsycfam 1A
  \mathchardef\cong                 "3\hex\txsycfam 1B
  \mathchardef\preceqq              "3\hex\txsycfam 1C
  \mathchardef\succeqq              "3\hex\txsycfam 1D
  \mathchardef\nprecsim             "3\hex\txsycfam 1E
  \mathchardef\nsuccsim             "3\hex\txsycfam 1F
  \mathchardef\nlesssim             "3\hex\txsycfam 20
  \mathchardef\ngtrsim              "3\hex\txsycfam 21
  \mathchardef\nlessapprox          "3\hex\txsycfam 22
  \mathchardef\ngtrapprox           "3\hex\txsycfam 23
  \mathchardef\npreccurlyeq         "3\hex\txsycfam 24
  \mathchardef\nsucccurlyeq         "3\hex\txsycfam 25
  \mathchardef\ngtrless             "3\hex\txsycfam 26
  \mathchardef\nlessgtr             "3\hex\txsycfam 27
  \mathchardef\nbumpeq              "3\hex\txsycfam 28
  \mathchardef\nBumpeq              "3\hex\txsycfam 29
  \mathchardef\nbacksim             "3\hex\txsycfam 2A
  \mathchardef\nbacksimeq           "3\hex\txsycfam 2B
  \mathchardef\neq                  "3\hex\txsycfam 2C
  \let\ne=\neq
  \mathchardef\nasymp               "3\hex\txsycfam 2D
  \mathchardef\nequiv               "3\hex\txsycfam 2E
  \mathchardef\nsim                 "3\hex\txsycfam 2F
  \mathchardef\napprox              "3\hex\txsycfam 30
  \mathchardef\nsubset              "3\hex\txsycfam 31
  \mathchardef\nsupset              "3\hex\txsycfam 32
  \mathchardef\nll                  "3\hex\txsycfam 33
  \mathchardef\ngg                  "3\hex\txsycfam 34
  \mathchardef\nthickapprox         "3\hex\txsycfam 35
  \mathchardef\napproxeq            "3\hex\txsycfam 36
  \mathchardef\nprecapprox          "3\hex\txsycfam 37
  \mathchardef\nsuccapprox          "3\hex\txsycfam 38
  \mathchardef\npreceqq             "3\hex\txsycfam 39
  \mathchardef\nsucceqq             "3\hex\txsycfam 3A
  \mathchardef\nsimeq               "3\hex\txsycfam 3B
  \mathchardef\notin                "3\hex\txsycfam 3C
  \mathchardef\notni                "3\hex\txsycfam 3D
   \let\notowns=\notni
  \mathchardef\nSubset              "3\hex\txsycfam 3E
  \mathchardef\nSupset              "3\hex\txsycfam 3F
  \mathchardef\nsqsubseteq          "3\hex\txsycfam 40
  \mathchardef\nsqsupseteq          "3\hex\txsycfam 41
  \mathchardef\coloneqq             "3\hex\txsycfam 42
  \mathchardef\eqqcolon             "3\hex\txsycfam 43
  \mathchardef\coloneq              "3\hex\txsycfam 44
  \mathchardef\eqcolon              "3\hex\txsycfam 45
  \mathchardef\Coloneqq             "3\hex\txsycfam 46
  \mathchardef\Eqqcolon             "3\hex\txsycfam 47
  \mathchardef\Coloneq              "3\hex\txsycfam 48
  \mathchardef\Eqcolon              "3\hex\txsycfam 49
  \mathchardef\strictif             "3\hex\txsycfam 4A
  \mathchardef\strictfi             "3\hex\txsycfam 4B
  \mathchardef\strictiff            "3\hex\txsycfam 4C
  \mathchardef\invamp               "2\hex\txsycfam 4D
  \edef\lbag{\delimiter "4\hex\txsycfam 4E\hex\txexafam 30 }%
  \edef\rbag{\delimiter "5\hex\txsycfam 4F\hex\txexafam 31 }%
  \mathchardef\Lbag                 "4\hex\txsycfam 50
  \mathchardef\Rbag                 "5\hex\txsycfam 51
  \mathchardef\circledless          "3\hex\txsycfam 52
  \mathchardef\circledgtr           "3\hex\txsycfam 53
  \mathchardef\circledwedge         "2\hex\txsycfam 54
  \mathchardef\circledvee           "2\hex\txsycfam 55
  \mathchardef\circledbar           "2\hex\txsycfam 56
  \mathchardef\circledbslash        "2\hex\txsycfam 57
  \mathchardef\lJoin                "3\hex\txsycfam 58
  \mathchardef\rJoin                "3\hex\txsycfam 59
  \mathchardef\Join                 "3\hex\txsycfam 5A
  \let\lrJoin=\Join
  \mathchardef\openJoin             "3\hex\txsycfam 5B
  \mathchardef\lrtimes              "3\hex\txsycfam 5C
  \mathchardef\opentimes            "3\hex\txsycfam 5D
  \mathchardef\Diamond              "0\hex\txsycfam 5E
  \mathchardef\Diamondblack         "0\hex\txsycfam 5F
  \mathchardef\nplus                "2\hex\txsycfam 60
  \mathchardef\nsqsubset            "3\hex\txsycfam 61
  \mathchardef\nsqsupset            "3\hex\txsycfam 62
  \mathchardef\dashleftarrow        "3\hex\txsycfam 63
  \mathchardef\dashrightarrow       "3\hex\txsycfam 64
  \let\dasharrow\dashrightarrow
  \mathchardef\dashleftrightarrow   "3\hex\txsycfam 65
  \mathchardef\leftsquigarrow       "3\hex\txsycfam 66
  \mathchardef\ntwoheadrightarrow   "3\hex\txsycfam 67
  \mathchardef\ntwoheadleftarrow    "3\hex\txsycfam 68
  \mathchardef\boxast               "2\hex\txsycfam 69
  \mathchardef\boxbslash            "2\hex\txsycfam 6A
  \mathchardef\boxbar               "2\hex\txsycfam 6B
  \mathchardef\boxslash             "2\hex\txsycfam 6C
  \mathchardef\Wr                   "2\hex\txsycfam 6D
  \mathchardef\lambdaslash          "0\hex\txsycfam 6E
  \mathchardef\lambdabar            "0\hex\txsycfam 6F
  \mathchardef\varclubsuit          "0\hex\txsycfam 70
  \mathchardef\vardiamondsuit       "0\hex\txsycfam 71
  \mathchardef\varheartsuit         "0\hex\txsycfam 72
  \mathchardef\varspadesuit         "0\hex\txsycfam 73
  \mathchardef\Nearrow              "3\hex\txsycfam 74
  \mathchardef\Searrow              "3\hex\txsycfam 75
  \mathchardef\Nwarrow              "3\hex\txsycfam 76
  \mathchardef\Swarrow              "3\hex\txsycfam 77
  \mathchardef\Top                  "0\hex\txsycfam 78
  \mathchardef\Bot                  "0\hex\txsycfam 79
  \mathchardef\Perp                 "3\hex\txsycfam 79
  \mathchardef\leadstoext           "3\hex\txsycfam 7A
  \mathchardef\leadsto              "3\hex\txsycfam 7B
  \mathchardef\sqcupplus            "2\hex\txsycfam 7C
  \mathchardef\sqcapplus            "2\hex\txsycfam 7D
  \edef\llbracket{\delimiter "4\hex\txsycfam 7E\hex\txexafam 12 }%
  \edef\rrbracket{\delimiter "5\hex\txsycfam 7F\hex\txexafam 13 }%
  \mathchardef\boxright             "3\hex\txsycfam 80
  \mathchardef\boxleft              "3\hex\txsycfam 81
  \mathchardef\boxdotright          "3\hex\txsycfam 82
  \mathchardef\boxdotleft           "3\hex\txsycfam 83
  \mathchardef\Diamondright         "3\hex\txsycfam 84
  \mathchardef\Diamondleft          "3\hex\txsycfam 85
  \mathchardef\Diamonddotright      "3\hex\txsycfam 86
  \mathchardef\Diamonddotleft       "3\hex\txsycfam 87
  \mathchardef\boxRight             "3\hex\txsycfam 88
  \mathchardef\boxLeft              "3\hex\txsycfam 89
  \mathchardef\boxdotRight          "3\hex\txsycfam 8A
  \mathchardef\boxdotLeft           "3\hex\txsycfam 8B
  \mathchardef\DiamondRight         "3\hex\txsycfam 8C
  \mathchardef\DiamondLeft          "3\hex\txsycfam 8D
  \mathchardef\DiamonddotRight      "3\hex\txsycfam 8E
  \mathchardef\DiamonddotLeft       "3\hex\txsycfam 8F
  \mathchardef\Diamonddot           "0\hex\txsycfam 90
  \mathchardef\circleright          "3\hex\txsycfam 91
  \mathchardef\circleleft           "3\hex\txsycfam 92
  \mathchardef\circleddotright      "3\hex\txsycfam 93
  \let\circledotright\circleddotright
  \mathchardef\circleddotleft       "3\hex\txsycfam 94
  \let\circledotleft\circleddotleft
  \mathchardef\multimapbothvert     "3\hex\txsycfam 95
  \mathchardef\multimapdotbothvert  "3\hex\txsycfam 96
  \mathchardef\multimapdotbothBvert "3\hex\txsycfam 97
  \mathchardef\multimapdotbothAvert "3\hex\txsycfam 98
}
\mathencdef\TXMIAmathchars {%
  \mathchardef\alphaup      "0\hex\txmiafam 0B
  \mathchardef\betaup       "0\hex\txmiafam 0C
  \mathchardef\gammaup      "0\hex\txmiafam 0D
  \mathchardef\deltaup      "0\hex\txmiafam 0E
  \mathchardef\epsilonup    "0\hex\txmiafam 0F
  \mathchardef\zetaup       "0\hex\txmiafam 10
  \mathchardef\etaup        "0\hex\txmiafam 11
  \mathchardef\thetaup      "0\hex\txmiafam 12
  \mathchardef\iotaup       "0\hex\txmiafam 13
  \mathchardef\kappaup      "0\hex\txmiafam 14
  \mathchardef\lambdaup     "0\hex\txmiafam 15
  \mathchardef\muup         "0\hex\txmiafam 16
  \mathchardef\nuup         "0\hex\txmiafam 17
  \mathchardef\xiup         "0\hex\txmiafam 18
  \mathchardef\piup         "0\hex\txmiafam 19
  \mathchardef\rhoup        "0\hex\txmiafam 1A
  \mathchardef\sigmaup      "0\hex\txmiafam 1B
  \mathchardef\tauup        "0\hex\txmiafam 1C
  \mathchardef\upsilonup    "0\hex\txmiafam 1D
  \mathchardef\phiup        "0\hex\txmiafam 1E
  \mathchardef\chiup        "0\hex\txmiafam 1F
  \mathchardef\psiup        "0\hex\txmiafam 20
  \mathchardef\omegaup      "0\hex\txmiafam 21
  \mathchardef\varepsilonup "0\hex\txmiafam 22
  \mathchardef\varthetaup   "0\hex\txmiafam 23
  \mathchardef\varpiup      "0\hex\txmiafam 24
  \mathchardef\varrhoup     "0\hex\txmiafam 25
  \mathchardef\varsigmaup   "0\hex\txmiafam 26
  \mathchardef\varphiup     "0\hex\txmiafam 27
  %
  \mathchardef\varg         "0\hex\txmiafam 31
  \mathchardef\vary         "0\hex\txmiafam 32
  \mathchardef\varv         "0\hex\txmiafam 33
  \mathchardef\varw         "0\hex\txmiafam 34
  %
  \mathchardef\varBbbk      "0\hex\txmiafam AB
}
\mathencdef\TXEXAmathchars {%
  \mathchardef\bignplus                "1\hex\txexafam 00
  \mathchardef\bigsqcupplus            "1\hex\txexafam 02
  \mathchardef\bigsqcapplus            "1\hex\txexafam 04
  \mathchardef\bigsqcap                "1\hex\txexafam 06
  \mathchardef\oiintop                 "1\hex\txexafam 08
   \def\oiint{\oiintop\nolimits}
  \mathchardef\ointctrclockwiseop      "1\hex\txexafam 0A
   \def\ointctrclockwise{\ointctrclockwiseop\nolimits}
  \mathchardef\ointclockwiseop         "1\hex\txexafam 0C
   \def\ointclockwise{\ointclockwiseop\nolimits}
  \mathchardef\sqintop                 "1\hex\txexafam 0E
   \def\sqint{\sqintop\nolimits}
  \mathchardef\varprod                 "1\hex\txexafam 10
  %\edef\llbracket{\delimiter "4\hex\txsycfam 7E\hex\txexafam 12 }%
  %\edef\rrbracket{\delimiter "5\hex\txsycfam 7F\hex\txexafam 13 }%
  \mathchardef\brecext                 "0\hex\txexafam 20
  \mathchardef\iintop                  "1\hex\txexafam 21
   \def\iint{\iintop\nolimits}
  \mathchardef\iiintop                 "1\hex\txexafam 23
   \def\iiint{\iiintop\nolimits}
  \mathchardef\iiiintop                "1\hex\txexafam 25
   \def\iiiint{\iiiintop\nolimits}
  \mathchardef\idotsintop              "1\hex\txexafam 27
   \def\idotsint{\idotsintop\nolimits}
  \mathchardef\oiiintop                "1\hex\txexafam 29
   \def\oiiint{\oiiintop\nolimits}
  \mathchardef\varointctrclockwiseop   "1\hex\txexafam 2B
   \def\varointctrclockwise{\varointctrclockwiseop\nolimits}
  \mathchardef\varointclockwiseop      "1\hex\txexafam 2D
   \def\varointclockwise{\varointclockwiseop\nolimits}
  \mathchardef\fintop                  "1\hex\txexafam 3E
   \def\fint{\fintop\nolimits}
  \mathchardef\oiintctrclockwiseop     "1\hex\txexafam 40
   \def\oiintctrclockwise{\oiintctrclockwiseop\nolimits}
  \mathchardef\varoiintclockwiseop     "1\hex\txexafam 42
   \def\varoiintclockwise{\varoiintclockwiseop\nolimits}
  \mathchardef\oiintclockwiseop        "1\hex\txexafam 48
   \def\oiintclockwise{\oiintclockwiseop\nolimits}
  \mathchardef\varoiintctrclockwiseop  "1\hex\txexafam 4A
   \def\varoiintctrclockwise{\varoiintctrclockwiseop\nolimits}
  \mathchardef\oiiintctrclockwiseop    "1\hex\txexafam 44
   \def\oiiintctrclockwise{\oiiintctrclockwiseop\nolimits}
  \mathchardef\varoiiintclockwiseop    "1\hex\txexafam 46
   \def\varoiiintclockwise{\varoiiintclockwiseop\nolimits}
  \mathchardef\oiiintclockwiseop       "1\hex\txexafam 4C
   \def\oiiintclockwise{\oiiintclockwiseop\nolimits}
  \mathchardef\varoiiintctrclockwiseop "1\hex\txexafam 4E
   \def\varoiiintctrclockwise{\varoiiintctrclockwiseop\nolimits}
  \mathchardef\sqiintop                "1\hex\txexafam 50
   \def\sqiint{\sqiintop\nolimits}
  \mathchardef\sqiiintop               "1\hex\txexafam 52
   \def\sqiiint{\sqiiintop\nolimits}
}
\mathencdef\TXmathmacros {%
  \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
  \let\ori@joinrel=\joinrel
  \def\joinrel{\mathrel{\mkern-2.5mu}}% -3mu in plain TeX
  %
  \def\varmathbb ##1{%  \varmathbb {ABC..} use bb symbols from txmia
    \ifx\expandaction\noexpand
       \noexpand\varmathbb{##1}%
    \else
       \csname fragilecommand!\endcsname
       \bgroup
       \count2=`A \count3="0\hex\txmiafam 81
       \loop \mathcode \count2=\count3 \relax
          \csname ifnum\endcsname \count2<`Z 
          \advance\count2 by1 \advance\count3 by1 \repeat 
       ##1%
       \egroup
    \fi
  }%
  \def\mathfrak ##1{{\fam\txmiafam ##1}}%
  %
  \def\ori@not=\not
  \def\not ##1{%  % \not\XXX expands to \notXXX or \nXXX or \mathchar"3236 \XXX
     \ifx ##1=\ne\else
     \ifx ##1<\nless\else
     \ifx ##1>\ngtr\else
     \runtxnot ##1\fi\fi\fi
  }%
  \def\runtxnot {\ifx\expandaction\noexpand \noexpand\not
     \else \csname fragilecommand!\endcsname
        \expandafter \trytxnot
     \fi
  }%
  \def\trytxnot ##1{\savetokenname ##1\tmpa
     \expandafter \ifx \csname n\tmpa\endcsname \relax
        \expandafter \ifx \csname not\tmpa\endcsname \relax
           \mathchar"3236 \expandafter \expandafter \expandafter ##1%
        \else
           \csname not\tmpa\endcsname
        \fi
     \else
        \csname n\tmpa\endcsname
     \fi
  }%
  % re-definitions of math versions of \ddots, \vdots
  \def\vdots{\vbox{\baselineskip4\p@ \lineskiplimit\z@
     \kern6\p@\hbox{$\m@th.$}\hbox{$\m@th.$}\hbox{$\m@th.$}}}%
  \def\ddots{\mathinner{\mkern1mu\raise7\p@
     \vbox{\kern7\p@\hbox{$\m@th.$}}\mkern2mu
     \raise4\p@\hbox{$\m@th.$}\mkern2mu\raise\p@\hbox{$\m@th.$}\mkern1mu}}%
  % re-definition of \root macro
  \let\ori@r@@t=\r@@t
  \def\r@@t##1##2{\setbox\z@\hbox{$\m@th##1\sqrt{##2}$}\dimen@\ht\z@
     \advance\dimen@-\dp\z@
     \mkern6mu\raise.68\dimen@\copy\rootbox \mkern-9mu\box\z@}%
  % re-definitions of \downbracefill, \upbracefill to use \bracext from txexa
  \let\ori@downbracefill=\downbracefill  \let\ori@upbracefill=\upbracefill
  \def\downbracefill{$\m@th
     \braceld\mkern-1mu\cleaders\hbox{$\mkern-.5mu\bracext\mkern-.5mu$}\hfill\mkern-1mu%
     \braceru\bracelu
     \mkern-1mu\cleaders\hbox{$\mkern-.5mu\bracext\mkern-.5mu$}\hfill\mkern-1mu\bracerd$}%
  \def\upbracefill{$\m@th
     \bracelu\mkern-1mu\cleaders\hbox{$\mkern-.5mu\bracext\mkern-.5mu$}\hfill\mkern-1mu%
     \bracerd\braceld
     \mkern-1mu\cleaders\hbox{$\mkern-.5mu\bracext\mkern-.5mu$}\hfill\mkern-1mu\braceru$}%
  \def\mathcharsback{% 
     \let\joinrel       \ori@joinrel
     \let\not           \ori@not
     \let\r@@t          \ori@r@@t
     \let\downbracefill \ori@downbracefill
     \let\upbracefill   \ori@upbracefill}%
}
\endinput







