% OFS: The default text families + math families
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Jun 2001                            Petr Olsak

% You cannot \input this file because this file is \inputted automatically.
% See ofsdoc.tex for more details

\ifx\ofsdeclarefamily\undefined 
  \errmessage{You can't \string\input\space the file ofssdef.tex 
              directly from your document%
  }  
  \endinput \fi

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

%%% Computer Roman family %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\def\defaultextraenc{8c} % You can re-define this macro before 
                         % \setfonts in order to change
                         % extra encoding of default families

\ofsputfamlist {^^Jdefaults:}

\ofsdeclarefamily [CMRoman] {% ------------ Computer Modern Roman
   \loadtextfam cmr\fotenc;%
                cmbx\fotenc;%
                cmti\fotenc;%
                cmbxti\fotenc;\defaultextraenc;%
   \newvariant8 \sl   (Slanted)     cmsl\fotenc;\defaultextraenc;%
   \newvariant9 \bxsl (BoldSlanted) cmbxsl\fotenc;\defaultextraenc;%
   \modifyenc 8z:csfont;%
}
\registerenc: 8z  \registerenc: 8t
\registerenc: 6a

\ofsdeclarefamily [CMSans] {% ------------- Computer Modern Sans Serif
   \loadtextfam cmss\fotenc;%
                cmssbx\fotenc;%
                cmssi\fotenc;%
                cmssbxti\fotenc;\defaultextraenc;%
   \modifyenc 8z:csfont;%
}
\registerenc: 8z  \registerenc: 8t
\registerenc: 6a

\ofsdeclarefamily [CMTypewriter] {% ------- Computer Modern Typewriter
   \loadtextfam cmtt\fotenc;%
                cmttbx\fotenc;%  
                cmitt\fotenc;%
                cmttbxti\fotenc;\defaultextraenc;% 
   \newvariant8 \sl (Slanted) cmsltt\fotenc;\defaultextraenc;%
   \modifyenc 8z:csfont;%
   \modifyenc 8z:nocrossL;%
}
\registerenc: 8z  \registerenc: 8t
\registerenc: 6a


%%%% Math fonts %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\registertfm cmsy    -      cmsy10
\registertfm cmsy 0pt-6pt   cmsy5
\registertfm cmsy 6pt-7pt   cmsy6
\registertfm cmsy 7pt-8pt   cmsy7
\registertfm cmsy 8pt-9pt   cmsy8
\registertfm cmsy 9pt-10pt  cmsy9
\registertfm cmsy 10pt-*    cmsy10

\registertfm cmmi    -      cmmi10
\registertfm cmmi 0pt-6pt   cmmi5
\registertfm cmmi 6pt-7pt   cmmi6
\registertfm cmmi 7pt-8pt   cmmi7
\registertfm cmmi 8pt-9pt   cmmi8
\registertfm cmmi 9pt-10pt  cmmi9
\registertfm cmmi 10pt-12pt cmmi10
\registertfm cmmi 12pt-*    cmmi12

%%%% CSfonts (encoding: 8z) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\registertfm cmr8z     -      csr10
\registertfm cmr8z  0pt-6pt   csr5
\registertfm cmr8z  6pt-7pt   csr6
\registertfm cmr8z  7pt-8pt   csr7
\registertfm cmr8z  8pt-9pt   csr8
\registertfm cmr8z  9pt-10pt  csr9
\registertfm cmr8z  10pt-12pt csr10
\registertfm cmr8z  12pt-17pt csr12
\registertfm cmr8z  17pt-*    csr17

\registertfm cmbx8z    -      csbx10
\registertfm cmbx8z 0pt-6pt   csbx5
\registertfm cmbx8z 6pt-7pt   csbx6
\registertfm cmbx8z 7pt-8pt   csbx7
\registertfm cmbx8z 8pt-9pt   csbx8
\registertfm cmbx8z 9pt-10pt  csbx9
\registertfm cmbx8z 10pt-12pt csbx10
\registertfm cmbx8z 12pt-*    csbx12

\registertfm cmti8z    -      csti10
\registertfm cmti8z 0pt-8pt   csti7
\registertfm cmti8z 8pt-9pt   csti8
\registertfm cmti8z 9pt-10pt  csti9
\registertfm cmti8z 10pt-12pt csti10
\registertfm cmti8z 12pt-17pt csti12
\registertfm cmti8z 17pt-*    csti17

\registertfm cmbxti8z    -      csbxti10
\registertfm cmbxti8z 0pt-12pt  csbxti10
\registertfm cmbxti8z 12pt-17pt csbxti12
\registertfm cmbxti8z 17pt-*    csbxti17

\registertfm cmsl8z     -      cssl10
\registertfm cmsl8z  0pt-6pt   cssl5
\registertfm cmsl8z  6pt-7pt   cssl6
\registertfm cmsl8z  7pt-8pt   cssl7
\registertfm cmsl8z  8pt-9pt   cssl8
\registertfm cmsl8z  9pt-10pt  cssl9
\registertfm cmsl8z  10pt-12pt cssl10
\registertfm cmsl8z  12pt-17pt cssl12
\registertfm cmsl8z  17pt-*    cssl17

\registertfm cmbxsl8z  -      csbxsl10
\registertfm cmsltt8z  -      cssltt10

\registertfm cmss8z    -      csss10
\registertfm cmss8z 0pt-9pt   csss8
\registertfm cmss8z 9pt-10pt  csss9
\registertfm cmss8z 10pt-12pt csss10
\registertfm cmss8z 12pt-17pt csss12
\registertfm cmss8z 17pt-*    csss17

\registertfm cmssbx8z   -      csssbx10

\registertfm cmssi8z    -      csssi10
\registertfm cmssi8z 0pt-9pt   csssi8
\registertfm cmssi8z 9pt-10pt  csssi9
\registertfm cmssi8z 10pt-12pt csssi10
\registertfm cmssi8z 12pt-17pt csssi12
\registertfm cmssi8z 17pt-*    csssi17

\registertfm cmtt8z    -      cstt10
\registertfm cmtt8z 0pt-9pt   cstt8
\registertfm cmtt8z 9pt-10pt  cstt9
\registertfm cmtt8z 10pt-12pt cstt10
\registertfm cmtt8z 12pt-*    cstt12

\registertfm cmitt8z    -      csitt10

%%% unavailable in cm*8z  :-(

\registertfm cmssbxti8z    -   -
\registertfm cmttbx8z      -   -
\registertfm cmttbxti8z    -   -


%%%% EC fonts %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\def\registerECfont #1 #2 {%
   \registertfm #1     -             #21000
   \registertfm #1  0pt-6pt          #20500
   \registertfm #1  6pt-7pt          #20600
   \registertfm #1  7pt-8pt          #20700
   \registertfm #1  8pt-9pt          #20800
   \registertfm #1  9pt-10pt         #20900
   \registertfm #1  10pt-10.95pt     #21000
   \registertfm #1  10.95pt-12pt     #21095
   \registertfm #1  12pt-14.4pt      #21200
   \registertfm #1  14.4pt-17.28pt   #21440
   \registertfm #1  17.28pt-20.74pt  #21728
   \registertfm #1  20.74pt-24.88pt  #22074
   \registertfm #1  24.88pt-29.86pt  #22488
   \registertfm #1  29.86pt-35.83pt  #22986
   \registertfm #1  35.83pt-*        #23583
}
\def\registerECTTfont #1 #2 {%
   \registertfm #1     -             #21000
   \registertfm #1  0pt-9pt          #20800
   \registertfm #1  9pt-10pt         #20900
   \registertfm #1  10pt-10.95pt     #21000
   \registertfm #1  10.95pt-12pt     #21095
   \registertfm #1  12pt-14.4pt      #21200
   \registertfm #1  14.4pt-17.28pt   #21440
   \registertfm #1  17.28pt-20.74pt  #21728
   \registertfm #1  20.74pt-24.88pt  #22074
   \registertfm #1  24.88pt-29.86pt  #22488
   \registertfm #1  29.86pt-35.83pt  #22986
   \registertfm #1  35.83pt-*        #23583
}

\registerECfont    cmr8t       ecrm
\registerECfont    cmbx8t      ecbx
\registerECfont    cmti8t      ecti
\registerECfont    cmbxti8t    ecbi
\registerECfont    cmsl8t      ecsl
\registerECfont    cmbxsl8t    ecbl

\registerECfont    cmss8t      ecss
\registerECfont    cmssbx8t    ecsx
\registerECfont    cmssi8t     ecsi
\registerECfont    cmssbxti8t  ecso

\registerECTTfont  cmtt8t      ectt
\registerECTTfont  cmitt8t     ecit
\registerECTTfont  cmsltt8t    ecst

\registertfm       cmttbx8t    -  -
\registertfm       cmttbxti8t  -  -

\registerECfont    cmr8c       tcrm
\registerECfont    cmbx8c      tcbx
\registerECfont    cmti8c      tcti
\registerECfont    cmbxti8c    tcbi
\registerECfont    cmsl8c      tcsl
\registerECfont    cmbxsl8c    tcbl

\registerECfont    cmss8c      tcss
\registerECfont    cmssbx8c    tcsx
\registerECfont    cmssi8c     tcsi
\registerECfont    cmssbxti8c  tcso

\registerECTTfont  cmtt8c      tctt
\registerECTTfont  cmitt8c     tcit
\registerECTTfont  cmsltt8c    tcst


%%%% Times, Helvetica, Courier %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\def\setfontshook {\let\TeX=\origTeX}
\let\origTeX=\TeX
\let\plainL=\L  % used in ofs-8z.tex

\ofsdeclarefamily [Times] {% -------------- Times Roman
   \loadtextfam (Roman) ptmr\fotenc;%
                        ptmb\fotenc;%
                        ptmri\fotenc;%
                        ptmbi\fotenc;\defaultextraenc;%
   \def\TeX{T\kern-.1667em\lower.3333ex\hbox{E}\kern-.125emX}%
   \modifyenc 8z:badaccents;%
   \modifyenc 8t:losschars;%
   \modifyenc 8c:poor;%
}
\registerenc: 8z  \registerenc: 8t

\ofsdeclarefamily [Helvetica] {% ---------- Helvetica
   \loadtextfam               phvr\fotenc;%
                              phvb\fotenc;%
                (Oblique)     phvro\fotenc;%
                (BoldOblique) phvbo\fotenc;\defaultextraenc;%
   \newvariant0 \nrm (Narrow)            phvr\fotenc n;;%
   \newvariant1 \nbf (NarrowBold)        phvb\fotenc n;;%
   \newvariant2 \nit (NarrowOblique)      phvro\fotenc n;;%
   \newvariant3 \nbi (NarrowBoldOblique)  phvbo\fotenc n;;%
   \def\TeX{T\kern-.12em\lower.4ex\hbox{E}\kern-0.09emX}%
   \modifyenc 8z:badaccents;%
   \modifyenc 8t:losschars;%
   \modifyenc 8c:poor;%
}
\registerenc: 8z  \registerenc: 8t

\registertfm  phvr8zn   -  phvrn8z   %% There is a bug in cspsfonts:
\registertfm  phvb8zn   -  phvbn8z   %% standard metric name: phvr8zn
\registertfm  phvro8zn  -  phvron8z  %% real metric name: phvrn8z
\registertfm  phvbo8zn  -  phvbon8z

\ofsdeclarefamily [Courier] {% ------------ Courier
   \loadtextfam               pcrr\fotenc;%
                              pcrb\fotenc;%
                (Oblique)     pcrro\fotenc;%
                (BoldOblique) pcrbo\fotenc;\defaultextraenc;%
   \let\TeX=\origTeX
   \modifyenc 8z:badaccents;%
   \modifyenc 8t:losschars;%
   \modifyenc 8c:poor;%
}
\registerenc: 8z  \registerenc: 8t

\registertfm  pcrr8z   -  pcrr8u
\registertfm  pcrb8z   -  pcrb8u
\registertfm  pcrro8z  -  pcrro8u
\registertfm  pcrbo8z  -  pcrbo8u


%%%% Math families %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\def\loadPSnormalmath{%
  \loadmathfam 0[-rm/]%                Actual Roman font
  \loadmathfam 1[-it/]%                Actual Italic font
  \defaultskewchar=48
  \loadmathfam 2[/cmsy]%               Standard symbols from CM
  \defaultskewchar=-1
  \noindexsize\loadmathfam 3[tenex/]%  Standard extra symbols from CM
  \chardef\symbfam  4
  \loadmathfam \symbfam [/psyr]%       PostScript Symbol
  \chardef\symbofam 5
  \loadmathfam \symbofam [/psyro]%     PostScript Symbol Oblique
  \chardef\bffam    6
  \loadmathfam \bffam [-bf/]%          Actual Bold font
  \chardef\bifam    7 
  \loadmathfam \bifam [-bi/]%          Actual Bold Italic  
  \lastfam = 7  
  \chardef\itfam    1 
  \let\slfam\undefined \let\ttfam\undefined
  \setfosize \tmpa mag1.44:%
  \font \bigsymbofont=psyr \tmpa%      Big variant for \displaysize          
  \fontloadmessage{bigsymbofont}{psyr\space\tmpa}%
}
\def\loadPSboldmath{%
  \loadmathfam 0[-bf/]%                Actual Bold font
  \loadmathfam 1[-bi/]%                Actual Bold-Italic font
  \defaultskewchar=48
  \loadmathfam 2[/cmbsy]%              Bold symbols from CM
  \defaultskewchar=-1
  \noindexsize\loadmathfam 3[tenex/]%  Standard extra symbols from CM
  \chardef\symbfam  4
  \loadmathfam \symbfam [/psyr]%       PostScript Symbol
  \chardef\symbofam 5
  \loadmathfam \symbofam [/psyro]%     PostScript Symbol Oblique
  \lastfam = 7  % needs to be the same as in normal version
  \chardef\itfam    1 
  \chardef\bifam    1
  \chardef\bffam    0  
  \let\slfam\undefined \let\ttfam\undefined
  \setfosize \tmpa mag1.44:%
  \font \bigsymbofont=psyr \tmpa%      Big variant for \displaysize          
  \fontloadmessage{bigsymbofont}{psyr\space\tmpa}%
}
\def\loadCMnormalmath{%
  \loadmathfam 0[/cmr8z]%                    Roman font
  \defaultskewchar=128
  \loadmathfam 1[/cmmi]%                     Math Italic font
  \defaultskewchar=48
  \loadmathfam 2[/cmsy]%                     Standard symbols from CM
  \defaultskewchar=-1
  \noindexsize\loadmathfam 3[/cmex]%         Standard extra symbols from CM
  \chardef\itfam   4
  \noindexsize\loadmathfam \itfam [/cmti\fotenc]% Text Italic
  \chardef\slfam   5
  \noindexsize\loadmathfam \slfam [/cmsl\fotenc]% Slanted
  \chardef\bffam   6
  \loadmathfam \bffam [/cmbx\fotenc]%             Bold font
  \chardef\ttfam   7
  \noindexsize\loadmathfam \ttfam [/cmtt\fotenc]% TypeWriter
  \lastfam =7
}
\def\loadCMboldmath{%
  \loadmathfam 0[/cmbx8z]%                     Roman font
  \defaultskewchar=127
  \loadmathfam 1[/cmmib]%                      Math Italic font
  \defaultskewchar=48
  \loadmathfam 2[/cmbsy]%                      Standard symbols from CM
  \defaultskewchar=-1
  \noindexsize\loadmathfam 3[/cmex]%           Standard extra symbols from CM
  \chardef\itfam   4
  \noindexsize\loadmathfam \itfam [/cmbxti\fotenc]% Text Italic
  \chardef\slfam   5
  \noindexsize\loadmathfam \slfam [/cmbxsl\fotenc]% Slanted
  \chardef\bffam   6
  \loadmathfam \bffam [/cmbx\fotenc]%               Bold font
  \chardef\ttfam   7
  \noindexsize\loadmathfam \ttfam [/cmtt\fotenc]%   TypeWriter
  \lastfam =7
}
\def\setPSmathchars{\mathencread ofs-ps;}
\let\setCMmathchars=\relax  % We need not do any work

%% No size differences in standard CM fonts:

\registertfm   cmbsy  -  cmbsy10
\registertfm   cmex   -  cmex10
\registertfm   cmmib  -  cmmib10

%%%% Math defaults %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\ifx \fomenc\undefined \def\fomenc{PS}\fi 
\def\mathversion{normal}
\def\defaultmathfonts{%
   \expandafter \ifx \csname load\fomenc\mathversion math\endcsname \relax
      \message{\ofsmessageheader WARNING:
               \string\fomenc=\fomenc\space -- undeclared font-set, 
               I use \string\def\string\fomenc{PS}}
      \def\fomenc{PS}%
   \fi
   \csname load\fomenc\mathversion math\endcsname}
\def\defaultmathchars{\csname set\fomenc mathchars\endcsname}
\let\mathcharsback=\relax
\def\mathfonts{\defaultmathfonts}
\def\mathchars{\defaultmathchars}

%%%% \ofshexbox is more intelligent alternative to \mathhexbox

\ofshexboxdef 2 {cmsy}{cmbsy10}{cmsy}{cmbsy10}
     % only fam2 is declared because only \mathhexbox2.. is used in plain

\def\ofscopyright{{\ooalign{\hfil\raise.07ex\hbox{c}\hfil\crcr\ofshexbox20D}}}


%%%% \dots macro (is defined via math mode in original plain) %%%%

\def\dots{.%  this dot may be kerned with previous character and it
   \ifmmode         % protects the \dots macro in \halign data
      \mathinner{\ldotp\ldotp}%
   \else
      \ifdim\fontdimen3\font=0pt % may be non-proporcional font
         ..%
      \else
          \kern.5\fontdimen2\font
         .\kern.5\fontdimen2\font
         .\kern.5\fontdimen2\font
   \fi\fi
}

\endinput

