[comp.text] TeXhax Digest V89 #56

TeXhax@cs.washington.edu (TeXhax Digest) (06/29/89)

TeXhax Digest    Friday,  May 26, 1989  Volume 89 : Issue 56

Moderators: Tiina Modisett and Pierre MacKay

%%% The TeXhax digest is brought to you as a service of the TeX Users Group %%%
%%%       in cooperation with the UnixTeX distribution service at the       %%%
%%%                      University of Washington                           %%%

Today's Topics:         

                         PD version of TeX for MSDOS/PCDOS
                                  Re: Acronym Macro
                         Getting TeX labeling on graphics
                      Problem with breaks and spaces in TeX
                        TeX bug in kerning 'A' with 'v'?
                                  Needed: BST FILE
                    Mkf shell script to generate standard fonts

---------------------------------------------------------------------------

Date: Fri, 26 May 89 17:51:06 CET
From: Deutschsprachige Anwendervereinigung TeX <DANTE%DHDURZ1.BITNET@UWAVM.ACS.WASHINGTON.EDU>
Subject: PD version of TeX for MSDOS/PCDOS
Keywords: TeX, PD version, MSDOS/PCDOS

At the LISTSERV@DHDURZ1 is a new filelist installed
for the Public TeX of Klaus Thull, which he has announced
in TUGboat 10/1.

For this version of TeX on PC you need the WEB files and
TURBO PASCAL 4.0 and better. The PCHACKER GUIDE of Klaus
is in german language, the INST GUIDE is in english.

To get a directory of the filelist you have to send to
LISTSERV@DHDURZ1 the command

         GET TEX-PUB FILELIST

To get the files you have to send the command

         GET fn ft TEX-PUB

to the Listserv.

For members of DANTE it is possible to get the files
on diskettes. For more information about that ask

    DANTE, Deitschsprachige Anwendervereinigung TeX e.V.
    Im Neuenheimer Feld 293
    6900 Heidelberg 1
    West Germany

    DANTE@DHDURZ1

With kind regards
Joachim Lammarsch
(Chairman DANTE)
Acknowledge-To: <DANTE@DHDURZ1>

-------------------------------------------------------------------------------

Date: Thu, 25 May 89 21:20 +1000
From: Douglas Miller <munnari!csv.viccol.edu.au!DOUGCC@uunet.UU.NET>
Subject: Re: Acronym Macro
Keywords: macro, acronym

This is an implementation of the acronym macro requested by Paul McKenney
in TeXhax V89 #31, including handling of plurals and capitalisation (if
frenchspacing is not in effect).  I've included a test document for
demonstration purposes.


\def\uppercaseletter#1{\uppercase{#1}}%
\def\defn#1#2{\expandafter\def\csname #1\endcsname{%
   \ifvmode% Start of a paragraph
      \uppercaseletter #2%
   \else\ifnum\the\spacefactor=3000% A period, i.e. end of sentence.
      \uppercaseletter #2% Doesn't work if \frenchspacing is in use!
   \else #2\fi\fi}}
\def\defacronyms#1{%
   \defn{#1}{#1}% Redefine \MWA to be just MWA for subsequent occurrences
   \defn{#1s}{#1s}% Redefine \MWAs to be just MWAs for subsequent occurrences
   }
\def\acronym#1#2#3{% {MWA}{multiple word acronym}{multiple word acronyms}
   \defn{#1}{#2 (#1)\defacronyms{#1}}%
   \defn{#1s}{#3 (#1s)\defacronyms{#1}}}


\acronym{BOP}{bird of prey}{birds of prey}
\acronym{TV}{television}{televisions}
\acronym{CRT}{cathode ray tube}{cathode ray tubes}

\TVs\ have \CRTs.  \BOPs\ include eagles, hawks, kites, and kestrels.  The
eagle is probably the best known \BOP\ to \TV\ viewers.  Many \BOPs\ are
under threat of extinction.  The extinction of the \CRT\ is not imminent.

-------------------------------------------------------------------------

Date: Wed, 24 May 89 12:32:22 PDT
From: KARNEY%PPC.MFENET@CCC.MFECC.LLNL.GOV
Subject: Getting TeX labeling on graphics
Keywords: graphics, TeX

Most of my graphics is generated by scientific programs and so would be
most easily included in a TeX document via a \special which pulled in a
graphics file.  Unfortunately, no scientific graphics packages do their
labeling in TeX.  Furthermore the labeling of most packages is very ugly.

My current solution is to get the graphics package to produce a plot with
NO labels, include this via a \special within a LaTeX picture environment
and use \put (or \multiput for axis labels) to insert the TeX labels.  This
is of course rather labor intensive, and becomes infeasible with
complicated plots where the positions of the labels are variable (for
example, a contour plot with the contours labeled).

A step towards a more streamlined solution is as follows: Assume that the
graphics package can output alphanumeric labels and each label has
associated with it a position on the plot (and possibly a writing direction
if rotated text is to be supported).  Assume also that the DVI driver can
locate these labels and their corresponding positions and directions.  In
the LaTeX file, you would include a series of commands, one for each label:

\plotlabel[positioning]{alphanumeric-label}{TeX-label}

[positioning] is one of the LaTeX positioning commands, e.g., [tl] for
top left.  This governs how the TeX'ed label is positioned relative to the
current location (as given by the graphics file)

{alphanumeric-label} is the label text as it appears in the graphics
file, e.g., {alpha-squared}.

{TeX-label} is the TeX'ed version, e.g., {$\alpha^2$}.

\plotlabel would then do something like:

 \special{plotlabel-start tl alpha-squared}%
 \vbox to 0pt {\hbox to 0pt{$\alpha^2$\hss}\vss}%
 \special{plotlabel-end}

The DVI file on encountering \special{plotlabel-start ...} would NOT
typeset the following TeX box, but squirrel it away in a table under an
index "alpha-squared".  In a following \special calling for the inclusion
of the graphics file, the labels would be looked up in the table and
replaced with their TeX equivalent, correctly positioned (and maybe rotated
appropriatedly).

On complex plots with many numeric labels, I would imagine having a
separate program that could scan the graphics file and extract the
alpha-numeric labels into a file, which could be edited and inserted into
the TeX file.

None of this exists (as far as I know).  And I am not volunteering to
implement it!  But with a committee looking at standards for \special, I
thought it would be a good idea to air these ideas.

    Charles Karney
    Plasma Physics Laboratory   Phone:    +1 609 243 2607
    Princeton University        MFEnet:   Karney@PPC.MFEnet
    PO Box 451                  Internet: Karney%PPC.MFEnet@NMFECC.LLNL.GOV
    Princeton, NJ 08543-0451    Bitnet:   Karney%PPC.MFEnet@LBL.Bitnet

----------------------------------------------------------------------------

Date: Thu, 25 May 89 08:46:33 EDT
From: INHB000 <INHB%MCGILLC.BITNET@UWAVM.ACS.WASHINGTON.EDU>
Subject: Problem with breaks and spaces in TeX
Keywords: TeX, spaces

Can someone explain what is going on here?  I decided that in a sequence
like $(x,y,z)$ there wasn't enough space after the commas.  The first
thing I tried, illustrated by the code:

{\catcode`\,=\active\gdef,{\mathchar"613B\,\allowbreak}}
\everymath{\catcode`\,=\active}
\everydisplay{\catcode`\,=\active}
Here is a long sequence that hangs over the end of the line
$(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z)$
\bye

works perfectly.  However, it is too broad, giving extra space and
allowing breaks in such expressions as $f(x,y)$.  Then I tried the
following:

{\catcode`\,=\active\gdef,{\mathchar"613B\,\allowbreak}}
\def\seq#1{{\catcode`\,=\active#1}}
Here is a long sequence that hangs over the end of the line
$\seq{(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z)}$
\bye

This had no effect at all!  No extra space and no breaks.  Finally, I
tried:

{\catcode`\,=\active\gdef,{\mathchar"613B\,\allowbreak}}
\def\seq{\catcode`\,=\active}
Here is a long sequence that hangs over the end of the line
${\seq(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z)}$
\bye

This gave the extra space, but didn't allow breaks.  In a way this one
is the most mysterious since the code is evidently getting executed in
part.  By the way, changing the definition of , to "031B affects the
spacing as expected, but doesn't change the lack of propensity to break.
In fact, from my reading of the TeXbook, the first and third ought ot
produce identical results.

Michael Barr

-----------------------------------------------------------------------

Date: Thu, 25 May 89 13:45:55 -0400
From: Amitabh Shah <shah@cs.cornell.edu>
Subject: TeX bug in kerning 'A' with 'v'?
Keywords: TeX, error

The TeXbook mentions kerning at the outset (bottom of page 4).
In fact, the example used to explain kerning is that of moving letters
'A' with 'V' closer together for better appearance. 

I think that TeX does indeed kern 'A' with 'V' correctly, but not 'A' with 
'v', nor 'a' with 'v'.

I ran a test with the word "Availability" (my research is on availability
in dist. databases :-(). I tried the word "AVAILABILITY", as well as
"Availability" with (i) no kerning, (ii) kerning with various sizes of
negative spacing between 'A' and 'v'. I also tried various point sizes
and fonts.

It seems that TeX correctly kerns 'A' with 'V' in all fonts, but not 'A' with 
'v', nor 'a' with 'v' in cmr, in any point size. To me, kerning with
 -0.125em looked the best.

Could this be an oversight in TeX? (We are running TeX C Version 2.9.)

 amitabh.

Amitabh Shah	 				shah@cs.cornell.edu .(INTERNET)
Dept. of Computer Science			shah@cornell ...........(CSNET)
Upson Hall -- Cornell University		{ ... }!cornell!shah ....(UUCP)
Ithaca NY 14853-7501				(607) 255-8597 .........(VOICE)

-------------------------------------------------------------------------------

Date: Thu, 25 May 89 10:31 N
From: FRANK%GEOMETRY.RUG.AC.BE@UWAVM.ACS.WASHINGTON.EDU
Subject: Needed: BST FILE
Keywords: BibTeX 0.98

>Date: 25 - May --1989
>From: Frank De Clerck <FRANK@GEOMETRY.RUG.AC.BE>

Dear colleague,

I am looking for a bibstyle (for bibtex 0.98) which give you the references in
the following form

LAM, C. W. H.; THIEL, L.; SWIERCZ, S.; MCKAY, J.

1983   The non--existence  of ovals in a projective plane of order 10, Discrete
Math., 45, 319 --321.

PARKER, E. T.

1959^1 Construction of some sets of mutually orhogonal Latin squares, Proc.
       Amer. Math. Soc. 10, 946 -- 949.
1959^2 Orthogonal Latin squares. Proc. Nat. Acad. Sci. USA 45, 895 -- 862.

In the text these references occur as
LAM, C. W. H.; THIEL, L.; SWIERCZ, S.; MCKAY, J. [1983] and
PARKER, E. T. [1959^1,1959^2]


This style is  almost the one used by Springer Verlag in a lot of their books
except that they use a,b,... for denoting papers of the same author in the
same year. Here we are using exponents.
For the rest there are no special demands on boldfaces and italics.
Can anyone give me a .bst file which does this job or which is very near to
this style, such that I can make some small changes in order to use it.
I would greatly appreciate to receive such a style, if possible by electronic
mail
Thanks a lot
Frank De Clerck.

PS. I am working for the moment with the 0.98 version of BIBTEX. In the near
future I will change to 0.99. So If the .bst file for 0.98 is not available but
0.99 is then such a version is also welcome.

---------------------------------------------------------------------------

Date: Wed, 24 May 89 12:21:28 cdt
From: "Harold G. Walters" <walters@1.ce.okstate.edu>
Subject: Mkf shell script to generate standard fonts
Keywords: TeX, LaTeX, SliTeX, fonts

What follows is a shell script to generate a makefile to build the
standard set of TeX and/or LaTeX and SliTeX fonts.  It is driven by a
small file that contains information like dpi and mode for Metafont.
Examples are given below.   You can use this script to generate all
makefiles for your fonts instead of having a zillion different
makefiles.  It makes life much easier when generating fonts for a new
printer.

Harold G. Walters			walters@1.ce.okstate.edu
School of Civil Engineering		okstate!oksce1!walters
Oklahoma State University		"If all you have is a hammer, 
Stillwater, OK  74078			 everything looks like a nail".

#! /bin/sh
# usage: mkf input_file.mkf
#
# description:	mkf generates a makefile to generate a series of fonts
#		based on a small input file consisting of key=value pairs
#
#		dpi - dots per inch
#		maxmag - dpi * maximum magstep (ie. dpi * 1.2^9) for LaTeX
#		mode - mode for Metafont
#		mf - command for Metafont that includes "mode"
#		mfbin - path for "mf"
#		mkt - if non-null makes the standard TeX CM fonts
#		mkl - if non-null makes the LaTeX and SliTeX CM fonts
#
# example:	the file junk.mkf could contains
#
#			dpi = 300
#			maxmag = 1548
#			mode = localfont
#			mfbin = /usr/local/bin
#			mf = cmmf
#			mkt = "mkt"
#			mkl =
#
#		to execute in the directory with the *.mf files
#	
#			mkf junk.mkf > somefile
#			make -f somefile
#			
# still more examples:
#
#	# canoncx.mkf
#	dpi=300
#	maxmag=1548
#	mode=CanonCX
#	mfbin=/usr/local/bin
#	mf=virmf \&cmplain
#	mkt="mkt"
#	mkl="mkl"
#
#	# r4080.mkf
#	dpi=300
#	maxmag=1548
#	mode=RicohFourZeroEightZero
#	mfbin=/usr/local/bin
#	mf=virmf \&cmplain
#	mkt="mkt"
#	mkl="mkl"
#
#	# toshiba.mkf
#	dpi=180
#	maxmag=929
#	mode=toshiba
#	mfbin=/usr/local/bin
#	mf=virmf \&cmplain
#	mkt="mkt"
#	mkl=
#
#
# author:	Harold G. Walters  walters@1.ce.okstate.edu
#
#
awk '\
BEGIN {
	FS = "=";
	dpi = 300;
	maxmag = 1548;
	mfbin = "/usr/local/bin";
	mf = "cmmf";
	mode = "localfont";
	mkt = "";
	mkl = "";
	linelen = 60;
# tex fonts
	tfonts["1S1"] = "cmbsy10";
	tfonts["1S2"] = "cmbx10";
	tfonts["1S3"] = "cmbx12";
	tfonts["1S4"] = "cmbx5";
	tfonts["1S5"] = "cmbx6";
	tfonts["1S6"] = "cmbx7";
	tfonts["1S7"] = "cmbx8";
	tfonts["1S8"] = "cmbx9";
	tfonts["1S9"] = "cmcsc10";
	tfonts["1S10"] = "cmdunh10";
	tfonts["1S11"] = "cmex10";
	tfonts["1S12"] = "cmmi10";
	tfonts["1S13"] = "cmmi12";
	tfonts["1S14"] = "cmmi5";
	tfonts["1S15"] = "cmmi6";
	tfonts["1S16"] = "cmmi7";
	tfonts["1S17"] = "cmmi8";
	tfonts["1S18"] = "cmmi9";
	tfonts["1S19"] = "cmmib10";
	tfonts["1S20"] = "cmr10";
	tfonts["1S21"] = "cmr12";
	tfonts["1S22"] = "cmr17";
	tfonts["1S23"] = "cmr5";
	tfonts["1S24"] = "cmr6";
	tfonts["1S25"] = "cmr7";
	tfonts["1S26"] = "cmr8";
	tfonts["1S27"] = "cmr9";
	tfonts["1S28"] = "cmsl10";
	tfonts["1S29"] = "cmsl12";
	tfonts["1S30"] = "cmsl8";
	tfonts["1S31"] = "cmsl9";
	tfonts["1S32"] = "cmsltt10";
	tfonts["1S33"] = "cmss10";
	tfonts["1S34"] = "cmss12";
	tfonts["1S35"] = "cmss17";
	tfonts["1S36"] = "cmssbx10";
	tfonts["1S37"] = "cmssi10";
	tfonts["1S38"] = "cmssi12";
	tfonts["1S39"] = "cmssi17";
	tfonts["1S40"] = "cmssq8";
	tfonts["1S41"] = "cmssqi8";
	tfonts["1S42"] = "cmsy10";
	tfonts["1S43"] = "cmsy5";
	tfonts["1S44"] = "cmsy6";
	tfonts["1S45"] = "cmsy7";
	tfonts["1S46"] = "cmsy8";
	tfonts["1S47"] = "cmsy9";
	tfonts["1S48"] = "cmtex10";
	tfonts["1S49"] = "cmtex9";
	tfonts["1S50"] = "cmti10";
	tfonts["1S51"] = "cmti12";
	tfonts["1S52"] = "cmti7";
	tfonts["1S53"] = "cmti8";
	tfonts["1S54"] = "cmti9";
	tfonts["1S55"] = "cmtt10";
	tfonts["1S56"] = "cmtt12";
	tfonts["1S57"] = "cmtt8";
	tfonts["1S58"] = "cmtt9";
	tfonts["1S59"] = "cmu10";
	tfonts["1S60"] = "manfnt";
	tfonts_n_mag_j[1] = 60;
	tfonts["2S1"] = "cmbx10";
	tfonts["2S2"] = "cmmi10";
	tfonts["2S3"] = "cmr10";
	tfonts["2S4"] = "cmsl10";
	tfonts["2S5"] = "cmss10";
	tfonts["2S6"] = "cmsy10";
	tfonts["2S7"] = "cmti10";
	tfonts["2S8"] = "cmtt10";
	tfonts["2S9"] = "manfnt";
	tfonts_n_mag_j[2] = 9;
	tfonts["3S1"] = "cmsy10";
	tfonts["3S2"] = "manfnt";
	tfonts_n_mag_j[3] = 2;
	tfonts["4S1"] = "cmbx10";
	tfonts["4S2"] = "cmmi10";
	tfonts["4S3"] = "cmr10";
	tfonts["4S4"] = "cmssbx10";
	tfonts["4S5"] = "cmsy10";
	tfonts["4S6"] = "cmtt10";
	tfonts["4S7"] = "manfnt";
	tfonts_n_mag_j[4] = 7;
	tfonts["5S1"] = "cmbx10";
	tfonts["5S2"] = "cmsy10";
	tfonts["5S3"] = "manfnt";
	tfonts_n_mag_j[5] = 3;
	tfonts["6S1"] = "cmbx10";
	tfonts["6S2"] = "cmmi10";
	tfonts["6S3"] = "cmr10";
	tfonts["6S4"] = "cmr7";
	tfonts["6S5"] = "cmsy10";
	tfonts["6S6"] = "manfnt";
	tfonts_n_mag_j[6] = 6;
	tfonts["7S1"] = "cmbx10";
	tfonts["7S2"] = "cmr10";
	tfonts["7S3"] = "manfnt";
	tfonts_n_mag_j[7] = 3;
	tfonts_n_mag_i = 7;
# latex fonts
	lfonts["1S1"] = "lasy10";
	lfonts["1S2"] = "lasy5";
	lfonts["1S3"] = "lasy6";
	lfonts["1S4"] = "lasy7";
	lfonts["1S5"] = "lasy8";
	lfonts["1S6"] = "lasy9";
	lfonts["1S7"] = "lasyb10";
	lfonts["1S8"] = "lcircle10";
	lfonts["1S9"] = "lcirclew10";
	lfonts["1S10"] = "line10";
	lfonts["1S11"] = "linew10";
	lfonts_n_mag_j[1] = 11;
	lfonts["2S1"] = "lasy10";
	lfonts["2S2"] = "lasy5";
	lfonts["2S3"] = "lasy7";
	lfonts["2S4"] = "lasyb10";
	lfonts_n_mag_j[2] = 4;
	lfonts["3S1"] = "lasy10";
	lfonts["3S2"] = "lasy5";
	lfonts["3S3"] = "lasy7";
	lfonts["3S4"] = "lasyb10";
	lfonts_n_mag_j[3] = 4;
	lfonts["4S1"] = "lasy10";
	lfonts["4S2"] = "lasy5";
	lfonts["4S3"] = "lasy7";
	lfonts["4S4"] = "lasyb10";
	lfonts_n_mag_j[4] = 4;
	lfonts["5S1"] = "cmex10";
	lfonts["5S2"] = "cmmi8";
	lfonts["5S3"] = "cmsy8";
	lfonts["5S4"] = "cmtt8";
	lfonts["5S5"] = "icmex10";
	lfonts["5S6"] = "icmmi8";
	lfonts["5S7"] = "icmsy8";
	lfonts["5S8"] = "icmtt8";
	lfonts["5S9"] = "ilasy8";
	lfonts["5S10"] = "ilcmss8";
	lfonts["5S11"] = "ilcmssb8";
	lfonts["5S12"] = "ilcmssi8";
	lfonts["5S13"] = "lasy10";
	lfonts["5S14"] = "lasy5";
	lfonts["5S15"] = "lasy7";
	lfonts["5S16"] = "lasy8";
	lfonts["5S17"] = "lasyb10";
	lfonts["5S18"] = "lcmss8";
	lfonts["5S19"] = "lcmssb8";
	lfonts["5S20"] = "lcmssi8";
	lfonts_n_mag_j[5] = 20;
	lfonts["6S1"] = "cmmi8";
	lfonts["6S2"] = "cmsy8";
	lfonts["6S3"] = "cmtt8";
	lfonts["6S4"] = "icmmi8";
	lfonts["6S5"] = "icmsy8";
	lfonts["6S6"] = "icmtt8";
	lfonts["6S7"] = "ilasy8";
	lfonts["6S8"] = "ilcmss8";
	lfonts["6S9"] = "ilcmssb8";
	lfonts["6S10"] = "ilcmssi8";
	lfonts["6S11"] = "lasy10";
	lfonts["6S12"] = "lasy5";
	lfonts["6S13"] = "lasy7";
	lfonts["6S14"] = "lasy8";
	lfonts["6S15"] = "lasyb10";
	lfonts["6S16"] = "lcmss8";
	lfonts["6S17"] = "lcmssb8";
	lfonts["6S18"] = "lcmssi8";
	lfonts_n_mag_j[6] = 18;
	lfonts["7S1"] = "cmmi8";
	lfonts["7S2"] = "cmsy8";
	lfonts["7S3"] = "cmtt8";
	lfonts["7S4"] = "icmmi8";
	lfonts["7S5"] = "icmsy8";
	lfonts["7S6"] = "icmtt8";
	lfonts["7S7"] = "ilasy8";
	lfonts["7S8"] = "ilcmss8";
	lfonts["7S9"] = "ilcmssb8";
	lfonts["7S10"] = "ilcmssi8";
	lfonts["7S11"] = "lasy10";
	lfonts["7S12"] = "lasy5";
	lfonts["7S13"] = "lasy7";
	lfonts["7S14"] = "lasy8";
	lfonts["7S15"] = "lasyb10";
	lfonts["7S16"] = "lcmss8";
	lfonts["7S17"] = "lcmssb8";
	lfonts["7S18"] = "lcmssi8";
	lfonts_n_mag_j[7] = 18;
	lfonts["8S1"] = "cmmi8";
	lfonts["8S2"] = "cmsy8";
	lfonts["8S3"] = "cmtt8";
	lfonts["8S4"] = "icmmi8";
	lfonts["8S5"] = "icmsy8";
	lfonts["8S6"] = "icmtt8";
	lfonts["8S7"] = "ilasy8";
	lfonts["8S8"] = "ilcmss8";
	lfonts["8S9"] = "ilcmssb8";
	lfonts["8S10"] = "ilcmssi8";
	lfonts["8S11"] = "lasy8";
	lfonts["8S12"] = "lcmss8";
	lfonts["8S13"] = "lcmssb8";
	lfonts["8S14"] = "lcmssi8";
	lfonts_n_mag_j[8] = 14;
	lfonts["9S1"] = "cmmi8";
	lfonts["9S2"] = "cmsy8";
	lfonts["9S3"] = "cmtt8";
	lfonts["9S4"] = "icmmi8";
	lfonts["9S5"] = "icmsy8";
	lfonts["9S6"] = "icmtt8";
	lfonts["9S7"] = "ilasy8";
	lfonts["9S8"] = "ilcmss8";
	lfonts["9S9"] = "ilcmssb8";
	lfonts["9S10"] = "ilcmssi8";
	lfonts["9S11"] = "lasy8";
	lfonts["9S12"] = "lcmss8";
	lfonts["9S13"] = "lcmssb8";
	lfonts["9S14"] = "lcmssi8";
	lfonts_n_mag_j[9] = 14;
	lfonts["10S1"] = "cmmi8";
	lfonts["10S2"] = "cmsy8";
	lfonts["10S3"] = "cmtt8";
	lfonts["10S4"] = "icmmi8";
	lfonts["10S5"] = "icmsy8";
	lfonts["10S6"] = "icmtt8";
	lfonts["10S7"] = "ilasy8";
	lfonts["10S8"] = "ilcmss8";
	lfonts["10S9"] = "ilcmssb8";
	lfonts["10S10"] = "ilcmssi8";
	lfonts["10S11"] = "lasy8";
	lfonts["10S12"] = "lcmss8";
	lfonts["10S13"] = "lcmssb8";
	lfonts["10S14"] = "lcmssi8";
	lfonts_n_mag_j[10] = 14;
	lfonts["11S1"] = "ilcmss8";
	lfonts["11S2"] = "lcmss8";
	lfonts_n_mag_j[11] = 2;
	lfonts_n_mag_i = 11;
}
/^[ 	]*dpi/ {
	dpi = $2 + 0;
}
/^[ 	]*maxmag/ {
	maxmag = $2 + 0;
}
/^[ 	]*mfbin/ {
	mfbin = $2;
}
/^[ 	]*mf/ {
	mf = $2;
}
/^[ 	]*mode/ {
	mode = $2;
}
/^[ 	]*mkt/ {
	mkt = $2;
}
/^[ 	]*mkl/ {
	mkl = $2;
}
END {
# calc magsteps
# NOMAG
	magst[1] = 0;
	mags[1] = dpi;
# HALFMAG
	magst[2] = 0.5;
	mags[2] = dpi * sqrt(1.2);
# MAGONE
	magst[3] = 1;
	mags[3] = dpi * 1.2;
# MAGetc.
	for (i = 4; (i <= lfonts_n_mag_i) && (mags[i] < maxmag); i++)
	{
		mags[i] = mags[i-1] * 1.2;
		magst[i] = i-2;
	}
	n_mag = i - 1;
# round
	dpi = int(dpi + 0.5);
	for (i = 1; i <= n_mag; i++)
	{
		mags[i] = int(mags[i] + 0.5);
	}
# print out the makefile
	printf ".SUFFIXES: .mf ";
	for (i = 1; i <= n_mag; i++)
	{
		printf ".%dpk ", mags[i];
	}
	printf "\n\n";
	cmdline = mfbin "/" mf " %c\\mode:=" mode ";%c " "%cbatchmode;%c ";
	dpnd = ".mf.%dpk:\n\t";
	inpt = "input $*\n";
	for (i = 1; i <= n_mag; i++)
	{
		if (magst[i] == 0)
		{
			cmd = dpnd cmdline inpt;
			printf cmd,dpi,39,39,39,39;
		}
		else
		{
			cmd = dpnd cmdline "%cmag:=magstep(%2.1f);%c " inpt;
			printf cmd,mags[i],39,39,39,39,39,magst[i],39;
		}
		printf "\t-gftopk $*.%dgf\n", mags[i];
		printf "\trm -f $*.%dgf\n", mags[i];
	}
	printf "all: ";
# tex fonts
	len = 0;
	if (mkt != "")
	{
		for (i = 1; i <= tfonts_n_mag_i; i++)
		{
			for (j = 1; j <= tfonts_n_mag_j[i]; j++)
			{
				ind = i "S" j;
				l = sprintf("%s.%dpk ", tfonts[ind], mags[i]);
				len += length(l);
				if (len > linelen)
				{
					len = 0;
					printf "\\\n";
				}
				printf "%s ", l;
			}
		}
	}
# latex cm fonts
	len = 0;
	if (mkl != "")
	{
		if (mkt != "")
			printf "\\\n";
		for (i = 1; i <= n_mag; i++)
		{
			for (j = 1; j <= lfonts_n_mag_j[i]; j++)
			{
				ind = i "S" j;
				l = sprintf("%s.%dpk ", lfonts[ind], mags[i]);
				len += length(l);
				if (len > linelen)
				{
					len = 0;
					printf "\\\n";
				}
				printf "%s ", l;
			}
		}
	}
}' < $1
exit 0

-------------------------------------------------------------------------------

%%% Concerning subscriptions, address changes, unsubscribing:
%%%  BITNET: send a one-line mail message to LISTSERV@xxx
%%%          where xxx is the nearest geographical site in the
%%%          tree shown below
%%%         SUBSCRIBE TEX-L <your name>    % to subscribe
%%%      or UNSUBSCRIBE TEX-L
%%%
%%% Here is the BITNET re-distribution tree as shown in a recent
%%% REVIEW (The geography is guessed at from the subscription list)
%%%
%%%                        CLVM    TAMVM1      FINHUTC
%%%                           |    |     (Finland, UK, Scand, CERN)
%%%                           |    |           |
%%%  TeXhax ----> UWAVM ----- MARIST ----- EB0UB011 ----- BNANDP11
%%%                           |     (France,Italy,Spain)  (Belgium)
%%%                           |                |
%%%                        UBVM      HEARN --- DEARN
%%%                              (Netherlands) (Germany)
%%%     
%%%
%%% Internet: send a similar one line mail message to
%%%           TeXhax-request@cs.washington.edu
%%%     Please be sure you send a valid internet address!!
%%%        in the form name@domain or name%routing@domain
%%%     and use the style of the Bitnet one-line message, so that
%%%     we can find your subscription request easily.
%%%
%%% All submissions to: TeXhax@cs.washington.edu
%%%
%%% Back issues available for FTPing as:
%%%          machine:              directory:  filename:
%%%   JUNE.CS.WASHINGTON.EDU         TeXhax/TeXhaxyy.nn
%%%              yy = last two digits of current year
%%%                       nn = issue number
%%%
%%%\bye
%%%

End of TeXhax Digest
**************************
-------