%----------------------------------------------------------------------
%  myconcrete.sty, Jeff Erickson, 09 Dec 1996, tweaked 02 Aug 1998
%
%  This is a micture of Frank Jensen's ``beton'' package and someone
%  else's ``concmath'' package that has the features of both.  Unlike
%  ``beton'', this package defines all sizes of Concrete Roman that
%  might appear in a typical document (and several larger sizes that
%  might only appear on slides).
%
%  Since there is no Concrete Roman Bold, switch to Computer Modern
%  Sans Serif for bold text instead of Computer Modern Roman.  Two
%  serifed fonts in the same document look really oogly.  But that's
%  just my opinion.
%
%  Herman Zapf specified slightly more spacing between the lines for
%  this fonts than for Computer Modern.  To get the old line spacing,
%  which looks very tight for this font, use the option [verytight].
%  For intermediate spacing, use the option [tight].
%
%  Other options:
%	[oldstyle-equation-numbers]
%	[concrete-math]
%----------------------------------------------------------------------
\ProvidesPackage{myconcrete}

%% This package doesn't provide any options at the moment,
%% so there are no \DeclareOption or \ProcessOptions commands. 

%% Declare the font family ccr, but *don't* load OT1ccr.fd, because
%% we're about to override it.

\DeclareFontFamily{OT1}{ccr}{}{}

%% Declare font shapes for sizes 29.86, 35.83 and 40 (text fonts).
%% This package was originally written for poster sizes,
%% therefore we provide some additional magsteps.
%% Also provide smaller font sizes, because they actually get used for
%% footnotes, captions, etc.!

\DeclareFontShape{OT1}{ccr}{m}{n}{
  <5> <6> <7> <8> <9> gen * ccr
  <10> <10.95> 
  <12> <14.4> <17.28> <20.74> <24.88> <29.86> <35.83> <40> ccr10}{}
\DeclareFontShape{OT1}{ccr}{m}{it}{
  <5> <6> <7> <8> <9>
  <10> <10.95> 
  <12> <14.4> <17.28> <20.74> <24.88> <29.86> <35.83> <40> ccti10}{}
\DeclareFontShape{OT1}{ccr}{m}{sl}{
  <5> <6> <7> <8> <9> ccsl9 
  <10> <10.95>
  <12> <14.4> <17.28> <20.74> <24.88> <29.86> <35.83> <40> ccsl10}{}
\DeclareFontShape{OT1}{ccr}{m}{sc}{
  <5> <6> <7> <8> <9> 
  <10> <10.95> 
  <12> <14.4> <17.28> <20.74> <24.88> <29.86> <35.83> <40> cccsc10}{}

%% Switch to Computer Modern Sans Serif Bold Extended for bold,
%%           Computer Modern Sans Serif Slanted for bold italic/slanted
%%           Concrete Roman Small Caps for bold small caps
%%           Concrete Roman Small Caps for sans serif small caps
%% If you really prefer Computer Modern Roman, change ``cmss'' to ``cmr''

\DeclareFontShape{OT1}{ccr}{bx}{n} {<-> ssub * cmss/bx/n }{}
\DeclareFontShape{OT1}{ccr}{bx}{it}{<-> ssub * cmss/m/sl}{}
\DeclareFontShape{OT1}{ccr}{bx}{sl}{<-> ssub * cmss/m/sl}{}
\DeclareFontShape{OT1}{ccr}{bx}{sc}{<-> ssub * ccr/m/sc}{}
\DeclareFontShape{OT1}{cmss}{m}{sc}{<-> ssub * ccr/m/sc}{}

%% Make Concrete Roman the primary text font 

\renewcommand{\rmdefault}{ccr}

%% Use bigger baselines because Herman Zapf says so.

\def\beton@baselineskip@table
   {<\@viiipt>10<\@ixpt>11.5<\@xpt>13<\@xipt>14.5<\@xiipt>16}

%% Alternately, use smaller baselines becuase I need the room.

\def\beton@tight@baselineskip@table
   {<\@viiipt>9.8<\@ixpt>11.25<\@xpt>12.7<\@xipt>14.15<\@xiipt>15.6}

\def\beton@new@setfontsize#1#2#3%
   {\edef\@tempa{\def\noexpand\@tempb####1<#2}%
    \@tempa>##2<##3\@nil{\def\beton@baselineskip@value{##2}}%
    \edef\@tempa{\noexpand\@tempb\beton@baselineskip@table<#2}%
    \@tempa><\@nil
    \ifx\beton@baselineskip@value\@empty
       \def\beton@baselineskip@value{#3}%
    \fi
    \beton@old@setfontsize{#1}{#2}\beton@baselineskip@value}

\def\beton@tight@setfontsize#1#2#3%
   {\edef\@tempa{\def\noexpand\@tempb####1<#2}%
    \@tempa>##2<##3\@nil{\def\beton@baselineskip@value{##2}}%
    \edef\@tempa{\noexpand\@tempb\beton@tight@baselineskip@table<#2}%
    \@tempa><\@nil
    \ifx\beton@baselineskip@value\@empty
       \def\beton@baselineskip@value{#3}%
    \fi
    \beton@old@setfontsize{#1}{#2}\beton@baselineskip@value}

\AtBeginDocument
   {\let\beton@old@setfontsize=\@setfontsize
    \let\@setfontsize=\beton@new@setfontsize}

\DeclareOption{standard-baselineskips}
   {\AtBeginDocument{\let\@setfontsize=\beton@old@setfontsize}}

\DeclareOption{verytight}
   {\AtBeginDocument{\let\@setfontsize=\beton@old@setfontsize}}

\DeclareOption{tight}
   {\AtBeginDocument{\let\@setfontsize=\beton@tight@setfontsize}}

\DeclareOption{oldstyle-equation-numbers}
   {\@ifundefined{chapter}
       {\def\theequation{{\beton@oldstyle\arabic{equation}}}}
       {\def\theequation{{\beton@oldstyle\thechapter}.%
                         {\beton@oldstyle\arabic{equation}}}}}

\DeclareRobustCommand\beton@oldstyle{\usefont{OML}{ccm}\f@series{it}}

\DeclareRobustCommand\oldstylenums[1]%
  {\begingroup
      \spaceskip\fontdimen\tw@\font
      \TextOldstyle \MathOldstyle #1%
   \endgroup}

\let\TextOldstyle=\beton@oldstyle

\providecommand\MathOldstyle{\mathgroup\symletters}

\DeclareOption{concrete-math}
   {\DeclareSymbolFont{operators}{OT1}{ccr}{m}{n}%
    \DeclareSymbolFont{letters}{OML}{ccm}{m}{it}}

\def\dash---{\thinspace---\hskip.16667em\relax}

\def\qback{\kern-.15em} % between , or . and ''

\def\t#1{{\edef\next{\the\font}\beton@oldstyle\accent"7F\next#1}}

\ProcessOptions

\AtBeginDocument{\normalsize}

\endinput

-- 30 --
