%%
%% This is file `fontdoc.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% fibasics.dtx  (with options: `doc')
%% fimain.dtx  (with options: `doc')
%% 
%% This is a generated file.
%% 
%% Copyright 1993, 1994, 1995, 1996 Alan Jeffrey,
%% hacked and maintained 1997, 1998 Sebastian Rahtz,
%% copyright 1998, 1999, 2000 the fontinst maintenance team and any
%% individual authors listed elsewhere in this file.  All rights reserved.
%% 
%% This file is part of the fontinst system version 1.9.
%% -----------------------------------------------------
%% 
%% It may be distributed under the terms of the LaTeX Project Public
%% License, as described in lppl.txt in the base LaTeX distribution.
%% Either version 1.1 or, at your option, any later version.
%% 
%%% From file: fibasics.dtx
\def\fontinstversion{1.914}
\def\filedate{2000/05/30}
\ifx\ProvidesPackage\undefined
   \def\NeedsTeXFormat#1{}
   \def\ProvidesPackage#1[#2]{}
\fi
\ProvidesPackage{fontdoc}
[\filedate\space v\fontinstversion\space
  fontinst documentation package]
\def\needsfontinstversion#1{\Bheading{Needs fontinst v\thinspace#1}}
\newdimen\a@dimen
\newcount\a@count
\def\x@cs#1#2{\expandafter#1\csname#2\endcsname}
\def\Aheading#1{%
   \par\addvspace\medskipamount
   \noindent\textbf{#1}\vadjust{\penalty200}\par
}
\def\Bheading#1{\par\noindent\textbf{#1}}
\raggedright
\raggedbottom
\def\plain{{\tt plain}}
\let\plainint=\int
\let\plaindiv=\div
\newcount\list@item@counter
\newcommand\TypesetList[8]{%
   \begingroup
      \list@item@counter=\z@
      \def\do##1{\advance\list@item@counter\@ne}%
      #8%
      \ifcase \list@item@counter \or
         \def\do##1{#1#7{##1}}%
      \or
         \def\do##1{%
            \advance\list@item@counter\@ne
            \ifnum \list@item@counter=\@ne #1\else #2\fi
            #7{##1}%
         }%
      \else
         \advance\list@item@counter\m@ne
         \expandafter\def \expandafter\do \expandafter##\expandafter1%
            \expandafter{\expandafter\ifnum \the\list@item@counter
               =\list@item@counter
               #4%
            \else\ifnum \z@=\list@item@counter
               #1%
            \else
               #3%
            \fi\fi
            \advance\list@item@counter\@ne
            #7{##1}%
         }%
      \fi
      \ifnum \z@=\list@item@counter
         #6%
      \else
         \list@item@counter=\z@
         #8%
         #5%
      \fi
   \endgroup
}
\let\x@relax=\relax
\def\eTeX#1{\do{\eTeXlogo\nolinebreak[3] v\,#1}}
\def\eTeXlogo{$\varepsilon$-\TeX}
\def\needsTeXextension#1#2{%
   \Bheading{Needs
      \TypesetList{}{ or }{, }{, or }{}{(unspecified)}{\@firstofone}{#1}}%
}
\let\then=\iffalse
\let\Else=\else
\let\Fi=\fi
\def\generic@if#1{\iftrue}
\newcommand\showbranches{%
   \let\generic@if=\branches@if
   \let\then=\x@relax
   \let\Else=\branches@else
   \let\Fi=\branches@fi
}
\newcount\saved@slot@number
\def\branches@if#1{%
   \ifnum \branches@type=\tw@
      \textit{ if #1 then}%
   \else
      \par\addvspace\medskipamount
      \noindent\textit{If #1 then}%
   \fi
   \saved@slot@number=\slot@number
   \begingroup
   \gdef\branches@type{0}%
   \let\par=\branches@par
}
\def\branches@else{%
   \endgroup
   \ifnum \branches@type=\z@
      \textit{ relax else}%
      \gdef\branches@type{1}%
   \else
      \par\addvspace\medskipamount
      \noindent\textit{Else}%
      \gdef\branches@type{2}%
   \fi
   \global\slot@number=\saved@slot@number
   \begingroup
   \let\par=\branches@par
}
\def\branches@fi{%
   \endgroup
   \ifnum \branches@type=\thr@@
      \textit{ fi}%
   \else
      \par\addvspace\medskipamount
      \noindent\textit{Fi}%
   \fi
   \gdef\branches@type{3}%
   \let\par=\branches@par
}
\gdef\branches@type{4}
\def\branches@par{%
   \@restorepar\par\gdef\branches@type{4}%
   \addvspace\medskipamount
}
\begingroup
   \catcode`\,=13
   \gdef\print@csep@list#1#2{%
      $%
      \ifnum "8000=\mathcode`\,\else
         \mathchardef\private@comma=\mathcode`\,%
         \mathcode`\,="8000\x@relax
      \fi
      #1%
      \let,=\active@comma
      #2%
      $%
   }
\endgroup
\def\active@comma{\private@comma \penalty\binoppenalty}
{
   \catcode`\p=12
   \catcode`\t=12
   \gdef\lose_measure#1pt{#1}
}
\let\messagebreak\space
\def\fontinsterror#1#2#3{%
   \Bheading{Error} observed by #1:%
   \begin{quote}#2.\end{quote}%
}
\def\fontinstwarning#1#2{
   \Bheading{Warning} from #1:%
   \begin{quote}#2.\end{quote}%
}
\let\fontinstwarningnoline=\fontinstwarning
\def\fontinstinfo#1#2{
   \Bheading{Info} from #1:%
   \begin{quote}#2.\end{quote}%
}
%%% From file: fimain.dtx
\def\setint#1#2{\Bheading{Default} #1 = $\expression0{#2}$}
\def\setstr#1#2{\Bheading{Default} #1 = #2}
\def\setdim#1#2{\a@dimen=#2\relax\Bheading{Default} #1 = \the\a@dimen}
\def\setcommand#1{\ifx#1\undefined@command
   \expandafter\gdef\expandafter#1\else
   \expandafter\gdef\expandafter\a@command\fi}
\def\resetint#1#2{\Bheading{Value} #1 = $\expression0{#2}$}
\def\resetstr#1#2{\Bheading{Value} #1 = #2}
\def\resetdim#1#2{\a@dimen=#2\relax\Bheading{Value} #1 = \the\a@dimen}
\def\resetcommand#1{\gdef#1}
\def\int#1{\typeset@integer{#1}}
\def\typeset@integer#1{\x@relax \ifmmode {\fam0 #1}\else $\fam0 #1$\fi}
\def\typeset@string#1{\x@relax
   \ifmmode \hbox{\normalfont#1}\else \textnormal{#1}\fi
}
\let\typeset@dimen=\typeset@string
\def\ifisint#1\then{\generic@if{integer \typeset@integer{#1} set}}
\def\ifisstr#1\then{\generic@if{string \typeset@string{#1} set}}
\def\ifisdim#1\then{\generic@if{dimension \typeset@dimen{#1} set}}
\def\ifiscommand#1\then{%
   \generic@if{command \normalfont{\ttfamily\string#1} set}%
}
\def\offcommand#1{\Bheading{Turn off} \texttt{\string#1}}
\def\oncommand#1{\Bheading{Turn on} \texttt{\string#1}}
\def\neg#1{\priority8{-\expression6{#1}}}
\def\add#1#2{\priority2{\expression2{#1}+\expression2{#2}}}
\def\sub#1#2{\priority2{\expression2{#1}-\expression3{#2}}}
\def\mul#1#2{\priority4{\expression4{#1}\times\expression4{#2}}}
\def\div#1#2{\priority4{\expression4{#1}/\expression5{#2}}}
\def\max#1#2{\priority6{\expression6{#1}\sqcup\expression6{#2}}}
\def\min#1#2{\priority7{\expression7{#1}\sqcap\expression7{#2}}}
\def\scale#1#2{%
   \x@cs\ifx{scale-\grabchars@#2XXXX\@nil}\x@relax
      \div{\mul{#1}{#2}}{1000}%
   \else
      \csname scale-\grabchars@#2XXXX\@nil\endcsname{#1}{#2}%
   \fi
}
\def\grabchars@{\expandafter\grabchars@i\string}
\def\grabchars@i#1{#1\expandafter\grabchars@ii\string}
\def\grabchars@ii#1{#1\expandafter\grabchars@iii\string}
\def\grabchars@iii#1{#1\expandafter\@car\string}
\x@cs\def{scale-500X}#1#2{\priority4{\frac{1}{2}\expression4{#1}}}
\def\expression#1#2{\a@count=#1\relax#2}
\def\priority#1#2{%
   \ifnum #1<\a@count
      \let\next=\bracket
   \else
      \let\next=\identity
   \fi
   \next{#2}}
\def\identity#1{#1}
\def\bracket#1{(#1)}
\def\ifnumber#1#2#3\then{%
   \generic@if{$ \expression0{#1} #2 \expression0{#3} $}%
}
\def\comment{\par\noindent}
\let\begincomment=\iftrue
\let\endcomment=\fi
\def\inputetx#1{%
   \begingroup
      \edef\lowercase@file{\lowercase{%
         \edef\noexpand\lowercase@file{#1}%
      }}%
      \lowercase@file
      \global\slot@number=0%
      \IfFileExists{\lowercase@file.etx}{%
         \def\relax{\let\relax=\x@relax\iffalse}%
         \let\encoding=\fi
         \outer\x@cs\def{endencoding}{\endinput}%
         \@@input \@filef@und
         \let\relax=\x@relax
      }{%
         \PackageError{fontdoc}{File #1.etx not found}%
            {\@eha\MessageBreak You can \protect\inputetx\space
             some other file now, if you want.}%
      }
   \endgroup
}
\def\encoding{\begingroup\global\slot@number=0}
\outer\def\endencoding{\endgroup}
\def\setslot#1{\def\slot@name{#1}%
   \Aheading{Slot \the\slot@number\space `#1'}%
   \ifslot@comment@ \comment{\slot@comment}\fi}
\def\endsetslot{\global\advance\slot@number by 1\relax}
\newcount\slot@number
\def\nextslot#1{\global\slot@number=#1\relax}
\def\skipslots#1{\global\advance\slot@number by #1\relax}
\def\setleftboundary#1{\def\slot@name{#1}%
   \Aheading{Left boundary `#1'}%
}
\let\endsetleftboundary=\x@relax
\def\setrightboundary#1{%
   \Aheading{Right boundary slot \the\slot@number\space `#1'}%
   \global\advance\slot@number by 1\relax
}
\def\ligature#1{\Bheading{Ligature} \csname doc-#1\endcsname}
\x@cs\def{doc-LIG}#1#2{%
  $\typeset@glyph{\slot@name} * \typeset@glyph{#1} \rightarrow
  \typeset@glyph{#2}$}
\x@cs\def{doc-/LIG}#1#2{%
  $\typeset@glyph{\slot@name} * \typeset@glyph{#1} \rightarrow
  \typeset@glyph{\slot@name} * \typeset@glyph{#2}$}
\x@cs\def{doc-LIG/}#1#2{%
  $\typeset@glyph{\slot@name} * \typeset@glyph{#1} \rightarrow
  \typeset@glyph{#2} * \typeset@glyph{#1}$}
\x@cs\def{doc-/LIG/}#1#2{%
  $\typeset@glyph{\slot@name} * \typeset@glyph{#1} \rightarrow
  \typeset@glyph{\slot@name} * \typeset@glyph{#2} * \typeset@glyph{#1}$}
\x@cs\def{doc-/LIG>}#1#2{%
  $\typeset@glyph{\slot@name} * \typeset@glyph{#1} \rightarrow
  \typeset@glyph{\slot@name} + \typeset@glyph{#2}$}
\x@cs\def{doc-LIG/>}#1#2{%
  $\typeset@glyph{\slot@name} * \typeset@glyph{#1} \rightarrow
  \typeset@glyph{#2} + \typeset@glyph{#1}$}
\x@cs\def{doc-/LIG/>}#1#2{%
  $\typeset@glyph{\slot@name} * \typeset@glyph{#1} \rightarrow
  \typeset@glyph{\slot@name} + \typeset@glyph{#2} * \typeset@glyph{#1}$}
\x@cs\def{doc-/LIG/>>}#1#2{%
  $\typeset@glyph{\slot@name} * \typeset@glyph{#1} \rightarrow
  \typeset@glyph{\slot@name} + \typeset@glyph{#2} + \typeset@glyph{#1}$}
\def\nextlarger#1{\Bheading{Next larger} \typeset@glyph{#1}}
\def\makerightboundary#1{%
   \Bheading{Right boundary marker slot} designation \typeset@glyph{#1}%
}
\def\varchar{\Bheading{Extensible glyph:}}
\def\vartop#1{\Bheading{Top} \typeset@glyph{#1}}
\def\varmid#1{\Bheading{Middle} \typeset@glyph{#1}}
\def\varbot#1{\Bheading{Bottom} \typeset@glyph{#1}}
\def\varrep#1{\Bheading{Repeated} \typeset@glyph{#1}}
\let\endvarchar\relax
\newif\ifslot@comment@
\slot@comment@false
\def\slot@comment{}
\def\setslotcomment#1{%
   \slot@comment@true
   \gdef\slot@comment{#1}}
\def\resetslotcomment#1{%
   \gdef\slot@comment{#1}}
\def\unsetslotcomment{%
   \slot@comment@false
   \gdef\slot@comment{}}
\let\slot@font=\nullfont
\def\useexamplefont#1{\font\slot@font=#1 }
\def\slotexample{{\slot@font\char\the\slot@number}}
\def\inputmtx#1{%
   \begingroup
      \edef\lowercase@file{\lowercase{%
         \edef\noexpand\lowercase@file{#1}%
      }}%
      \lowercase@file
      \let\endmetrics@hook=\@empty
      \IfFileExists{\lowercase@file.mtx}{%
         \skip@mtx@preamble
         \@@input \@filef@und
         \let\relax=\x@relax
      }{%
         \PackageError{fontdoc}{File #1.mtx not found}%
            {\@eha\MessageBreak You can \protect\inputmtx\space
             some other file now, if you want.}%
      }
      \endmetrics@hook
   \endgroup
}
\def\skip@mtx@preamble{%
   \def\relax{\let\relax=\x@relax\iffalse}%
   \let\metrics=\fi
   \outer\x@cs\def{endmetrics}{\endinput}%
}
\def\metrics{\begingroup\let\endmetrics@hook=\@empty}
\outer\def\endmetrics{\endmetrics@hook\endgroup}
\def\ProvidesMtxPackage#1{%
   \endmetrics@hook
   \@mtxpackage@headed@false
   \everypar={\announce@package{#1}}%
   \def\endmetrics@hook{\finish@package{#1}}
   \global\x@cs\let{FD@pack-#1}\@empty
}
\newif\if@mtxpackage@headed@
\def\announce@package#1{%
   \everypar={}%
   \@mtxpackage@headed@true
   \Aheading{Metric package \textsf{#1}:}%
}
\def\finish@package#1{%
   \if@mtxpackage@headed@
      \Aheading{End of metric package \textsf{#1}.}%
   \else
      \everypar={}%
      \Aheading{(Metric package \textsf{#1}.)}%
   \fi
   \par\addvspace\medskipamount
}
\newcommand\usemtxpackage[2][\x@relax]{%
   \ifx \x@relax#1%
      \@for\@tempa:=#2\do{%
         \x@cs\ifx{FD@pack-\@tempa}\@empty \else
            \inputmtx{\@tempa}%
         \fi
      }%
   \else
      \@tempswafalse
      \@for\@tempa:=#1\do{%
         \x@cs\ifx{FD@pack-\@tempa}\@empty \else \@tempswatrue \fi
      }%
      \if@tempswa
         \inputmtx{#2}%
      \fi
   \fi
}
\def\setkern#1#2#3{%
   \Bheading{Kern} ${\typeset@glyph{#1} + \typeset@glyph{#2}}
   \rightarrow \expression0{#3}$}
\def\resetkern#1#2#3{%
   \Bheading{Override kern} ${\typeset@glyph{#1} + \typeset@glyph{#2}}
      \rightarrow \expression0{#3}$}
\def\setleftkerning#1#2#3{%
   \Bheading{Kern} \typeset@glyph{#1} on the left like
   \typeset@glyph{#2} scaled $\expression0{#3}$}
\def\setrightkerning#1#2#3{%
   \Bheading{Kern} \typeset@glyph{#1} on the right like
   \typeset@glyph{#2} scaled $\expression0{#3}$}
\def\setleftrightkerning#1#2#3{%
   \Bheading{Kern} \typeset@glyph{#1} on the left and right like
   \typeset@glyph{#2} scaled $\expression0{#3}$}
\def\kerning#1#2{k(\typeset@glyph{#1})(\typeset@glyph{#2})}
\def\ifiskern#1#2\then{%
   \generic@if{kern \typeset@glyph{#1}${}+{}$\typeset@glyph{#2} set}}
\def\unsetkerns#1#2{%
   \Bheading{Remove} all kerning pairs in
   \print@csep@list{\fam0}{\{#1\}\times\{#2\}}.%
}
\def\noleftkerning#1{%
   \Bheading{Remove kerns} on the left of glyphs in
   \print@csep@list{\fam0}{\{#1\}}.}
\def\norightkerning#1{%
   \Bheading{Remove kerns} on the right of glyphs in
   \print@csep@list{\fam0}{\{#1\}}.}
\def\noleftrightkerning#1{%
   \Bheading{Remove kerns} on any side of glyphs in
   \print@csep@list{\fam0}{\{#1\}}.}
\let\typeset@glyph=\typeset@string
\def\width#1{w(\typeset@glyph{#1})}
\def\height#1{h(\typeset@glyph{#1})}
\def\depth#1{d(\typeset@glyph{#1})}
\def\italic#1{i(\typeset@glyph{#1})}
\def\setglyph#1{\Aheading{Glyph `#1'}}
\def\resetglyph#1{\Aheading{Reset glyph `#1'}}
\def\endsetglyph{}
\def\endresetglyph{}
\def\setrawglyph#1#2#3#4#5#6#7#8{\Aheading{Glyph `#1'}
   \Bheading{Taken from} slot #4 in font #2}
\def\setscaledrawglyph#1#2#3#4#5#6#7#8{\Aheading{Glyph `#1'}
   \Bheading{Taken from} slot #5 in font #2 scaled by #4}
\def\setnotglyph#1#2#3#4#5#6#7#8{\Aheading{Pseudoglyph `#1-not'}}
\def\setscalednotglyph#1{\setnotglyph}
\def\glyph#1#2{\Bheading{Glyph} `#1' scaled $\expression0{#2}$}
\def\glyphrule#1#2{%
  \Bheading{Rule} $\expression0{#1}$ by $\expression0{#2}$}
\def\glyphspecial#1{\Bheading{Special} `#1'}
\def\glyphwarning#1{\Bheading{Warning} `#1'}
\def\movert#1{\Bheading{Rt}~$\expression0{#1}$}
\def\moveup#1{\Bheading{Up}~$\expression0{#1}$}
\def\push{\Bheading{Push}}
\def\pop{\Bheading{Pop}}
\def\resetwidth#1{\Bheading{Reset width to $\expression0{#1}$}}
\def\resetheight#1{\Bheading{Reset height to $\expression0{#1}$}}
\def\resetdepth#1{\Bheading{Reset depth to $\expression0{#1}$}}
\def\resetitalic#1{\Bheading{Reset italic to $\expression0{#1}$}}
\def\glyphpcc#1#2#3{
   \push
      \movert{#2}
      \moveup{#3}
      \glyph{#1}{1000}
   \pop
}
\def\glyphbboxright{\hbox{glyphbboxright}}
\def\samesize#1{\Bheading{Reset dimensions to those of `#1'.}}
\def\ifisglyph#1\then{\generic@if{glyph \typeset@glyph{#1} set}}
\def\ifisinslot#1#2\then{%
   \generic@if{glyph \typeset@glyph{#1} assigned to slot
   $\expression0{#2}$}%
}
\endinput
%%
%% End of file `fontdoc.sty'.
