%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% qfig4pic.tex  --- Interface for QFIG-generated PiCTeX code and PiCTeX  %
%                   to use with Plain TeX.                               %
%                                                                        %
% Donated by: Bruce Dearden <[email protected]>             %
%                                                                        %
% To use QFIG-generated PiCTeX code, read in this file                   %
% followed by pictex.tex at the top of your TeX file:                    %
%                                                                        %
%    \input qfig4pic                                                     %
%    \input pictex                                                       %
%                                                                        %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\wlog#1{}  % don't write allocations to log.

% Smaller fonts for labels in pictures.
% (This replaces Qfig's 12 pt font)

\font\ninerm=cmr9    \font\eightrm=cmr8     \font\sixrm=cmr6
\font\ninei=cmmi9    \font\eighti=cmmi8     \font\sixi=cmmi6
\font\ninesy=cmsy9   \font\eightsy=cmsy8    \font\sixsy=cmsy6
\font\ninebf=cmbx9   \font\eightbf=cmbx8    \font\sixbf=cmbx6
\font\ninett=cmtt9   \font\eighttt=cmtt8
\font\nineit=cmti9   \font\eightit=cmti8
\font\ninesl=cmsl9   \font\eightsl=cmsl8

% Smaller math formulas have nonstandard \skewchar

\skewchar\ninei='177    \skewchar\eighti='177    \skewchar\sixi='177
\skewchar\ninesy='60    \skewchar\eightsy='60    \skewchar\sixsy='60
\hyphenchar\ninett=-1   \hyphenchar\eighttt=-1   \hyphenchar\tentt=-1


% Macros to set the font size environment.
\catcode`@=11  % need access to private plain TeX macros.
\newskip\ttglue

\def\tenpoint{\def\rm{\fam0\tenrm}% Switch to 10-point type.
  \textfont0=\tenrm \scriptfont0=\sevenrm \scriptscriptfont0=\fiverm
  \textfont1=\teni  \scriptfont1=\seveni  \scriptscriptfont1=\fivei
  \textfont2=\tensy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy
  \textfont3=\tenex \scriptfont3=\tenex   \scriptscriptfont3=\tenex
  \textfont\itfam=\tenit  \def\it{\fam\itfam\tenit}%
  \textfont\slfam=\tensl  \def\sl{\fam\slfam\tensl}%
  \textfont\ttfam=\tentt  \def\tt{\fam\ttfam\tentt}%
  \textfont\bffam=\tenbf  \scriptfont\bffam=\sevenbf
    \scriptscriptfont\bffam=\fivebf  \def\bf{\fam\bffam\tenbf}%
  \tt \ttglue=.5em plus.25em minus.15em
  \normalbaselineskip=12pt
  \setbox\strutbox=\hbox{\vrule height8.5pt depth3.5pt width0pt}%
  \let\sc=\eightrm  \let\big=\tenbig  \normalbaselines\rm}


\def\ninepoint{\def\rm{\fam0\ninerm}% Switch to 9-point type.
  \textfont0=\ninerm \scriptfont0=\sixrm \scriptscriptfont0=\fiverm
  \textfont1=\ninei  \scriptfont1=\sixi  \scriptscriptfont1=\fivei
  \textfont2=\ninesy \scriptfont2=\sixsy \scriptscriptfont2=\fivesy
  \textfont3=\tenex \scriptfont3=\tenex   \scriptscriptfont3=\tenex
  \textfont\itfam=\nineit  \def\it{\fam\itfam\nineit}%
  \textfont\slfam=\ninesl  \def\sl{\fam\slfam\ninesl}%
  \textfont\ttfam=\ninett  \def\tt{\fam\ttfam\ninett}%
  \textfont\bffam=\ninebf  \scriptfont\bffam=\sixbf
    \scriptscriptfont\bffam=\fivebf  \def\bf{\fam\bffam\ninebf}%
  \tt \ttglue=.5em plus.25em minus.15em
  \normalbaselineskip=11pt
  \setbox\strutbox=\hbox{\vrule height8pt depth3pt width0pt}%
  \let\sc=\sevenrm  \let\big=\ninebig  \normalbaselines\rm}

\def\tenbig#1{{\hbox{$\left#1\vbox to8.5pt{}\right.\n@space$}}}
\def\ninebig#1{{\hbox{$\textfont0=\tenrm\textfont2=\tensy
  \left#1\vbox to 7.25pt{}\right.\n@space$}}}


\catcode`@=12 % @ is not a letter any more.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Interface macros

\def\mbox#1{\leavevmode\hbox{#1}}
\def\typeout#1{\message{#1}}
\def\symbol#1{\char '#1\relax}
\let\xpt=\tenpoint  % QFIG's 10-point really is 10-point.
\let\xiipt=\ninepoint % Force QFIG's 12-points to the smaller 9-points.
\newdimen\unitlength

%%%%%%%%%%%%%%%%%%%%%