45 lines
1.9 KiB
TeX
45 lines
1.9 KiB
TeX
|
|
%%%
|
|
%%% File: mfpic.tex
|
|
%%%
|
|
|
|
% preliminary version of macros
|
|
\newwrite\outx\newbox\labeledgraph\newbox\temp
|
|
\newdimen\labeltemp\newcount\code
|
|
\def\opengraphsfile#1{\code32\openout\outx=#1.mf\font\graph=#1
|
|
\immediate\write16{Don't forget to process #1.mf!}
|
|
\immediate\write16{Then reprocess this file.}
|
|
\write\outx{mag:=\number\mag/1000; input graphbase.mf; code:=32;}}
|
|
\def\closegraphsfile{\write\outx{end.}\closeout\outx}
|
|
\def\picture#1#2#3#4#5{%
|
|
\advance\code1\bgroup\setbox\labeledgraph=\vtop{\graph \char\code}
|
|
\write\outx{scale:=#1; bounds(#2,#3,#4,#5);}
|
|
\write\outx{beginchar(incr
|
|
code,scale*(xpos-xneg)*pt\#,scale*(ypos-yneg)*pt\#,0);}
|
|
\write\outx{pickup pencircle scaled 0.5pt;}
|
|
\def\pen##1{\write\outx{pickup pencircle scaled ##1pt;}}
|
|
\def\axes{\write\outx{axes(10);}}
|
|
\def\xmarks##1{\write\outx{xmarks(10,##1);}}
|
|
\def\ymarks##1{\write\outx{ymarks(10,##1);}}
|
|
\def\curve##1{\write\outx{curve(##1);}}
|
|
\def\point##1{\write\outx{point(##1,3);}}
|
|
\def\line##1{\write\outx{line(##1);}}
|
|
\def\arrow##1{\write\outx{arrow(##1,6);}}
|
|
\def\circle##1{\write\outx{circle(##1);}}
|
|
\def\ellipse##1{\write\outx{ellipse(##1,0);}}
|
|
\def\rotatedellipse##1{\write\outx{ellipse(##1);}}
|
|
\def\xconv##1{\global\advance##1 by -#2pt\global\multiply##1 by #1
|
|
\global\advance##1 by 20pt} % -- horizontal fudge factor
|
|
\def\yconv##1{\global\advance##1 by -#4pt\global\multiply##1 by -#1
|
|
\global\advance##1 by 0pt} % -- vertical fudge factor
|
|
\def\label##1##2##3{\setbox\labeledgraph=\vtop{\unvbox\labeledgraph%
|
|
\vbox to0pt{\setbox\temp=\vbox{##3}\kern-\ht\temp%
|
|
\labeltemp=##2pt\yconv\labeltemp\kern\labeltemp%
|
|
\hbox{\labeltemp=##1pt\xconv\labeltemp%
|
|
\kern\labeltemp{##3}}\vss}\nointerlineskip}\hfill} % -- end \label
|
|
\def\docaption{}
|
|
\def\caption##1{\def\docaption{\par\hskip0.25in##1}}
|
|
} % -- end \picture
|
|
\def\endpicture{\write\outx{endchar;}\par\hbox{\hskip0.25in\box\labeledgraph}
|
|
\docaption\par\noindent\egroup} % -- end \endpicture
|