% cbstdedt.tex
%
% (c) Copyright 1997 Apostolos Syropoulos
% 
% The above copyright notice applies *only* to changes and enhancements
% made to the original files ecstded.tex, to which the following
% copyright notices apply:
%
% (c) Copyright 1995, 1996, 1997 J"org Knappen
% (c) Copyright 1990, 1992 Norbert Schwarz
%
% This file is part of cbgreek fonts version 1.0
%
% Generating MF-files for the cbgreek fonts    
%
%  Running TeX with this file as an input results in a lot of
%  Metafont font driver files (grmn0500.mf, grmn0600.mf, ..). The files
%  which should be generated are marked in the following macro
%  \FontsToBeGenerated. For each font there has to be an entry
%  with the pt sizes the font should be generate with. Additionally
%  in the heading \tablevalues all used pt sizes have to be mentioned,
%  just to get an fine printout.
%
%  Furthermore there is a batch file which can be customized for the
%  Metafont batch run.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%  please change only here:
%
\long\def\FontsToBeGenerated{

     \tablevalues     ( 7[0700] 8[0800] 10[1000] 12[1200] 13.82[1382] 
                        16.59[1659] 19.91[1991] 23.89[2389] 28.66[2866]
                        34.40[3440] 41.28[4128])

     \makefont glic     ( 7[0700] 8[0800] 10[1000] 12[1200] 13.82[1382] 
                        16.59[1659] 19.91[1991] 23.89[2389] 28.66[2866]
                        34.40[3440] 41.28[4128])
     \makefont glin     ( 7[0700] 8[0800] 10[1000] 12[1200] 13.82[1382] 
                        16.59[1659] 19.91[1991] 23.89[2389] 28.66[2866]
                        34.40[3440] 41.28[4128])
     \makefont glio     ( 7[0700] 8[0800] 10[1000] 12[1200] 13.82[1382] 
                        16.59[1659] 19.91[1991] 23.89[2389] 28.66[2866]
                        34.40[3440] 41.28[4128])
     \makefont gljc     ( 7[0700] 8[0800] 10[1000] 12[1200] 13.82[1382] 
                        16.59[1659] 19.91[1991] 23.89[2389] 28.66[2866]
                        34.40[3440] 41.28[4128])
     \makefont gljn     ( 7[0700] 8[0800] 10[1000] 12[1200] 13.82[1382] 
                        16.59[1659] 19.91[1991] 23.89[2389] 28.66[2866]
                        34.40[3440] 41.28[4128])
     \makefont gljo     ( 7[0700] 8[0800] 10[1000] 12[1200] 13.82[1382] 
                        16.59[1659] 19.91[1991] 23.89[2389] 28.66[2866]
                        34.40[3440] 41.28[4128])
     \makefont glmc     ( 7[0700] 8[0800] 10[1000] 12[1200] 13.82[1382] 
                        16.59[1659] 19.91[1991] 23.89[2389] 28.66[2866]
                        34.40[3440] 41.28[4128])
     \makefont glmn     ( 7[0700] 8[0800] 10[1000] 12[1200] 13.82[1382] 
                        16.59[1659] 19.91[1991] 23.89[2389] 28.66[2866]
                        34.40[3440] 41.28[4128])
     \makefont glmo     ( 7[0700] 8[0800] 10[1000] 12[1200] 13.82[1382] 
                        16.59[1659] 19.91[1991] 23.89[2389] 28.66[2866]
                        34.40[3440] 41.28[4128])
     \makefont gltc     ( 7[0700] 8[0800] 10[1000] 12[1200] 13.82[1382] 
                        16.59[1659] 19.91[1991] 23.89[2389] 28.66[2866]
                        34.40[3440] 41.28[4128])
     \makefont gltn     ( 7[0700] 8[0800] 10[1000] 12[1200] 13.82[1382] 
                        16.59[1659] 19.91[1991] 23.89[2389] 28.66[2866]
                        34.40[3440] 41.28[4128])
     \makefont glto     ( 7[0700] 8[0800] 10[1000] 12[1200] 13.82[1382] 
                        16.59[1659] 19.91[1991] 23.89[2389] 28.66[2866]
                        34.40[3440] 41.28[4128])
     \makefont glwc     ( 7[0700] 8[0800] 10[1000] 12[1200] 13.82[1382] 
                        16.59[1659] 19.91[1991] 23.89[2389] 28.66[2866]
                        34.40[3440] 41.28[4128])
     \makefont glwn     ( 7[0700] 8[0800] 10[1000] 12[1200] 13.82[1382] 
                        16.59[1659] 19.91[1991] 23.89[2389] 28.66[2866]
                        34.40[3440] 41.28[4128])
     \makefont glwo     ( 7[0700] 8[0800] 10[1000] 12[1200] 13.82[1382] 
                        16.59[1659] 19.91[1991] 23.89[2389] 28.66[2866]
                        34.40[3440] 41.28[4128])
     \makefont glxc     ( 7[0700] 8[0800] 10[1000] 12[1200] 13.82[1382] 
                        16.59[1659] 19.91[1991] 23.89[2389] 28.66[2866]
                        34.40[3440] 41.28[4128])
     \makefont glxn     ( 7[0700] 8[0800] 10[1000] 12[1200] 13.82[1382] 
                        16.59[1659] 19.91[1991] 23.89[2389] 28.66[2866]
                        34.40[3440] 41.28[4128])
     \makefont glxo     ( 7[0700] 8[0800] 10[1000] 12[1200] 13.82[1382] 
                        16.59[1659] 19.91[1991] 23.89[2389] 28.66[2866]
                        34.40[3440] 41.28[4128])
}
% If a font with a fraction, e.g. "7.5", should be generated
% and the file name is not allowed to contain a period, an
% optional file name part can be specified.
%
%      7.5[0750]
%
%      result in - may be - "grmn0750.mf" and an entry of "gensize:=7.5;"
%      (The new value has to be specified in the \tablevalues-line too!)
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%  The Batch file entries   ( #1 contains the fontname )
%
%   should be of the following form:
%
%    \def\BatchOutput{\BatchLine{...}%
%                          ...
%                     \BatchLine{...}}
%
%
%  preset value, change \BatchOutput if you like ....
%
{\endlinechar=-1
\message{Configuration phase.}
\message{--------------------}
\message{                    }
\message{What kind of operating system do you use? D(OS)/U(nix)}
\read16 to\opsystem
\global\let\OS=\opsystem
\if\opsystem U
\message{By specifying the default resolution the}
\message{generated Unix shell file will be able to}
\message{produce both the TFM and the PK files.}
\message{Do you want to specify the default resolution}
\message{of your system? y/n}
\read16 to\answer
\if\answer y
  \message{Enter default resolution}
  \read16 to\RESOLUTION
  \global\let\resolution=\RESOLUTION
\fi
\if\answer y
\gdef\BatchOutput#1{
      \BatchLine{mf '\string\mode=localfont; scrollmode; input #1'}
      \BatchLine{gftopk #1.\resolution gf}
      \BatchLine{rm #1.\resolution gf}
      \BatchLine{rm *.log}}
\else
\gdef\BatchOutput#1{
      \BatchLine{mf '\string\mode=localfont; scrollmode; input #1'}
      \BatchLine{rm *gf}
      \BatchLine{rm *.log}}
\fi
\else %You have choosen DOS
\gdef\BatchOutput#1{
      \BatchLine{mf \string\mode=localfont; scrollmode; input #1}
      \BatchLine{gftopk #1.300}
      \BatchLine{del *.300}
      \BatchLine{del *.log}}
\fi
}
%
%   File naming conventions:
%
\if\OS U
\def\BatchFileName{cblstded.sh}
\else
\def\BatchFileName{cblstded.bat}
\fi
%
%
\def\MetafontFileExtension{.mf}
%
\def\modedef{} %e.g. \def\modedef{\string\mode:=ljfour;}
%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% please  n o  changes from here, thanks !
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%
% (Avoiding inspecting the macros (sigh!)
%
%   Norbert Schwarz, Dezember 1990
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\magnification\magstep1
\overfullrule=0pt
%\tracingonline1
%\tracingcommands=1
%\tracingmacros=1
% some token handling
\let\EA\expandafter
\def\JoinToks#1=(#2+#3){#1=\EA\EA\EA{\EA\the\EA#2\the#3}}
\def\UpToHere{\relax}
\def\IgnoreRest#1#2\UpToHere{#1}
\def\IgnoreFirst#1#2\relax\UpToHere{#2}
\def\First#1{\EA\IgnoreRest\the#1{}\UpToHere}
\def\FirstOf#1{\EA\EA\EA{\EA\IgnoreRest\the#1{}\UpToHere}}
\def\MoveFirst(#1to#2){#2\FirstOf#1}
\def\Rest#1{\EA\IgnoreFirst\the#1\relax\UpToHere}
\def\RestOf#1{\EA\EA\EA{\EA\IgnoreFirst\the#1\relax\UpToHere}}
\def\MoveRest(#1to#2){#2=\RestOf{#1}}
% borrowed from p. 132 in N.Schwarz, Introduction to TeX (some advertising ..)

\newtoks\Basis
\newtoks\Table
\def\storetoks#1{\toks0={#1}\JoinToks\Table=(\Table+\toks0)}
\Table={}
%
\def\hash{##}
\newwrite \batchoutput
\newwrite \fontoutput
\def\today{\ifcase\month\or
    January\or Februar\or March\or April\or May\or June\or
    July\or August\or September\or October\or November\or December\fi,
    \number\day,
    \space\number\year}

\def\BatchLine#1{\immediate\write\batchoutput{#1}}
\immediate\openout\batchoutput=\BatchFileName

\def\empty{}
\def\minus{-}
\def\blank{ }
\def\singlefont#1 {%
        \def\fontsize{#1}%\message{<#1>}%
        \ifx\fontsize\minus\let\next\relax
        \else
            \ifx\fontsize\empty\let\next\singlefont
            \else
                \ifx\fontsize\blank\let\next\singlefont
                \else
                    \let\next\dofont
          \fi\fi\fi
        \next}

\def\doentry{\MoveFirst(\Workbase to\Htok)%
             \Workbase=\RestOf\Workbase
             \edef\doou{\the\Htok}%
             \ifx\doou\fontsize
                 \def\dooU{\storetoks{\hfill $\bullet$\hfill&}}%
                 \let\weiter\dooU
             \else
                 \def\weiter{\storetoks{~\hfill&}\doentry}%
             \fi\weiter}


\def\singletablevalue#1 {%
        \def\fontsize{#1}%
        \ifx\fontsize\blank\let\next\singletablevalue
        \else
                \ifx\minus\fontsize\let\next\relax
                \else\let\next\dotablevalue\fi
        \fi
        \next}

\newtoks\Htok
\newtoks\Workbase
\def\dotablevalue{\edef\dooo{\Htok={{\fontsize}}}%
        \dooo
        \EA\storetoks\EA{\fontsize&}%
        \JoinToks\Basis=(\Basis+\Htok)\singletablevalue}

\def\tablevalues(#1){\storetoks{\bf Fonts &}\singletablevalue#1 -
        \storetoks{\cr}}

\def\makefont #1 (#2){\JoinToks\Workbase=(\Basis+\Basis)%
        \myc=0\immediate\write15{}%
        \edef\fontnamebody{#1}%
        \def\dostoretoks{\storetoks{#1 &}}\dostoretoks
         \singlefont #2 - \storetoks{\cr}}

\def~{\ifdim\dimen0>0pt
        \message{\number\dimen0}%
        \global\advance\dimen0 by -5.25pt
        \message{ }\fi}

\newcount\myc
\def\extraspaces{\setbox0=\hbox{\tt\fontname}%
\dimen0=78.75pt
\advance\dimen0 by -\wd0\relax
        \advance\myc by 1
        \ifnum \myc=5
        \immediate\write15{}%
        \myc=0 \fi}


\def\dofonttest#1[#2]#3\nothing{%
\def\fontsize{#2}%
\ifx\fontsize\empty
        \def\fontsizename{#1}%
        \def\fontsize{#1}%
\else
        \def\fontsize{#1}%
        \def\fontsizename{#2}%
\fi}
\def\dofont{\doentry\expandafter\dofonttest\fontsize[]\nothing\Dofont}

{\catcode`\%=11
\catcode`\|=14
\gdef\Dofont{|
  \edef\fontname{\fontnamebody\fontsizename\MetafontFileExtension}|
  \edef\dowrite{|
  \immediate\openout \fontoutput = \fontname|
  \immediate\write
     \fontoutput {% This is \fontname\space
     in text format as of \today}|
  \immediate\write \fontoutput {}|
  \immediate\write \fontoutput {\modedef}|
\immediate\write \fontoutput {gensize:=\fontsize;}|
  \immediate\write \fontoutput {input \fontnamebody}|
  \immediate\closeout \fontoutput|
  \BatchOutput{\fontnamebody\fontsizename}
  \message{\fontname\blank}|\extraspaces~~~~~~~~~~~|
}\dowrite\singlefont}}
\immediate\write15{generated mf-files:}
\immediate\write15{-------------------}

\nopagenumbers

\def\minimumbox#1{\setbox0=\hbox{#1}%
        \ifdim\wd0>15pt \box0\else \hbox to 15pt{\hfil
        \box0\hfil}\fi}
\storetoks{\hrule
\medskip
\centerline{Overview CB - Font Set for Slides}
\medskip
\hrule
\bigskip
\noindent The following table describes the generated {*.mf} files which
are needed for the setup of the slides cb-font set.
\bigskip
\bigskip
$$\vbox\bgroup\nointerlineskip\halign\bgroup\hash\hfil\quad&&\strut
        \quad\minimumbox{\hash}\cr
\noalign{\medskip}}



%\tracingonline1
%\tracingmacros2
%\tracingcommands1

\FontsToBeGenerated

\storetoks{\egroup\egroup$$}

\let\hash=#
\the\Table
\end


