[comp.text] TeXhax Digest V88 #109

TeXhax@cs.washington.edu (TeXhax Digest) (12/22/88)

TeXhax Digest    Friday,  December 16, 1988  Volume 88 : Issue 109

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:         

                   General information from TUG
           Equations.sty -- macros for equations in LaTeX
                Query regarding texsun installation
               Absolute positioning in TeX and LaTeX
         TeX/LaTeX math <=> Macsyma (summary of responses)
              Compress utility & TeX - a marriage...
     Re: TeXhax Digest V88 #107 (a problem with pictures in LaTeX)
                Metafont & Postscript: Why not?
             PostScript outline fonts from Metafont

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

Date: Tue, 16 Dec 88 17:59 PST
From: mackay@cs.washington.edu
Subject: General information from TUG

The response to the inclusion of a request for information form in
an earlier issue has been very satisfactory, and encourages us to
include it in every tenth issue.  It will therefore appear in the
next, just before the trailer.  From then on, unless we forget,
every issue number ending in 0 will include the request form.

We are also considering a condensed list of all publications, etc.
which can be found at the offices of TUG.  The list would go out in
every issue number ending in a 5.  This seems frequent enough to be
useful, and rare enough to avoid filling up too much of the Digest.

We hope this meets with general approval.

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

From: KARNEY%PPC.MFENET@NMFECC.ARPA
Subject: Equations.sty -- macros for equations in LaTeX
Keywords: macros

Here is a collection of macros that I have found useful for handling
equations in LaTeX.  
                        Charles Karney
%------------------------------------------------------------------------
% This is equations.sty (August 1988).  Written by
%   Charles Karney
%   Plasma Physics Laboratory   Phone:   +1 609 243 2607
%   Princeton University        MFEnet:  Karney@PPC.MFEnet
%   PO Box 451                  ARPAnet: Karney%PPC.MFEnet@NMFECC.ARPA
%   Princeton, NJ 08543-0451    Bitnet:  Karney%PPC.MFEnet@ANLVMS.Bitnet
% with some ideas and macros borrowed from John Hobby and Stephen Gildea.

% --------------------USER DOCUMENTATION--------------------

% Use this as a style option, e.g.,
%     \documentstyle[equations]{article}
% These probably don't work in conjunction with the leqno option.

% This implements the following:

% (1) \yesnumber turns on an equation number in an eqnarray* environment
% (just as \nonumber turns it off in an eqnarray environment).  E.g.,
%     \begin{eqnarray*}
%        a &=& b \\
%          & & + c \\
%          & & + d \\
%          & & + e \\
%          & & + f \\
%          & & + g \yesnumber
%     \end{eqnarray*}

% (2) The eqalign environment is just like Plain TeX's \eqalign.  E.g.,
%     \begin{equation}
%           \begin{eqalign}
%              a &= b, \\
%              c &= d.
%           \end{eqalign}
%     \end{equation}
% Note that \begin{equation} \end{equation} or equivalent is needed.

% (3) The eqalignno environment is just like Plain TeX's \eqalignno.  E.g.,
%     \begin{eqalignno}
%        a &= b, \label{foo}\\
%        c &= d. \label{bar}
%     \end{eqalignno}
% Note the absence of \begin{equation} \end{equation}.  \nonumber can be used
% to suppress the equation number.  eqalignno* is the same except that the
% equation numbers are suppressed (unless a \yesnumber appears).

% (4) The eqaligntwo environment is a two-equation per line equivalent of
% eqalignno.  E.g.,
%     \begin{eqaligntwo}
%        a &= b, & x &= y, \label{foo} \\
%        c &= d, & z &= w. \label{bar}
%     \end{eqalign}
% eqaligntwo* is defined similarly.

% (5) The cases environment is just like Plain TeX's \cases.  E.g.,
%     \begin{equation}
%        u(x) =
%           \begin{cases}
%             0, & for $x < 0$,
%             1, & for $x \ge 0$.
%           \end{cases}
%     \end{equation}
% Note the first column is treated as math, the second column as text.

% (6) I've borrowed John Hobby's modifications to the eqnarray environment
% (to fix up the spacing around the operator), and to the \big, \bigg, etc.
% operators (to make them scale with the point size).

% (7) I've borrowed Stephen Gildea's subequations environment, and fixed it
% so that it ignores spaces after the environment and so that you can refer
% both to the overall set of equations and to individual subequations.  E.g.,
%     \begin{subequations} \label{foo}
%       \begin{eqalignno}
%          a &= b, \label{foo-a} \\
%          c &= d, \label{foo-b}
%       \end{eqalignno}
%       text text text text ...
%       \begin{equation}
%          e = f. \label{foo-c}
%       \end{equation}
%     \end{subequations}
% Now \ref{foo}, \ref{foo-a}, \ref{foo-b}, \ref{foo-c}, produce 1, 1a, 1b,
% 1c.

% --------------------END OF USER DOCUMENTATION--------------------

% Fix up eqnarray* so that \yesnumber and \nonumber do the obvious things 
\newif\if@defeqnsw \@defeqnswtrue

% This is John Hobby's (hobby@research.att.com) version to fix up the spacing.
\def\eqnarray{\stepcounter{equation}\let\@currentlabel=\theequation
\if@defeqnsw\global\@eqnswtrue\else\global\@eqnswfalse\fi
\global\@eqnswtrue
\tabskip\@centering\let\\=\@eqncr
$$\halign to \displaywidth\bgroup\hfil\global\@eqcnt\z@
  $\displaystyle\tabskip\z@{##}$&\global\@eqcnt\@ne 
  \hfil$\displaystyle{{}##{}}$\hfil
  &\global\@eqcnt\tw@ $\displaystyle{##}$\hfil 
  \tabskip\@centering&\llap{##}\tabskip\z@\cr}

\def\yesnumber{\global\@eqnswtrue}

\def\@@eqncr{\let\@tempa\relax\global\advance\@eqcnt by \@ne
    \ifcase\@eqcnt \def\@tempa{& & & &}\or \def\@tempa{& & &}\or
     \def\@tempa{& &}\or \def\@tempa{&}\else\fi 
     \@tempa \if@eqnsw\@eqnnum\stepcounter{equation}\fi
     \if@defeqnsw\global\@eqnswtrue\else\global\@eqnswfalse\fi
     \global\@eqcnt\z@\cr}

% Several formulas like \eqalign (to go inside \begin{equation}
% \end{equation} or $$ $$.

\def\@eqnacr{{\ifnum0=`}\fi\@ifstar{\@yeqnacr}{\@yeqnacr}}

\def\@yeqnacr{\@ifnextchar [{\@xeqnacr}{\@xeqnacr[\z@]}}

\def\@xeqnacr[#1]{\ifnum0=`{\fi}\cr \noalign{\vskip\jot\vskip #1\relax}}

\def\eqalign{\null\,\vcenter\bgroup\openup1\jot \m@th \let\\=\@eqnacr
\ialign\bgroup\strut
\hfil$\displaystyle{##}$&$\displaystyle{{}##}$\hfil\crcr}
\def\endeqalign{\crcr\egroup\egroup\,}

% \cases

\def\cases{\left\{\,\vcenter\bgroup\normalbaselines\m@th \let\\=\@eqnacr
    \ialign\bgroup$##\hfil$&\quad##\hfil\crcr}
\def\endcases{\crcr\egroup\egroup\right.}

% Several formulas like \eqalignno (doesn't need the $$ $$)

\def\eqalignno{\stepcounter{equation}\let\@currentlabel=\theequation
\if@defeqnsw\global\@eqnswtrue\else\global\@eqnswfalse\fi
\let\\=\@eqncr
$$\displ@y \tabskip\@centering \halign to \displaywidth\bgroup
  \global\@eqcnt\@ne\hfil
  $\@lign\displaystyle{##}$\tabskip\z@skip&\global\@eqcnt\tw@
  $\@lign\displaystyle{{}##}$\hfil\tabskip\@centering&
  \llap{\@lign##}\tabskip\z@skip\crcr}

\def\endeqalignno{\@@eqncr\egroup
      \global\advance\c@equation\m@ne$$\global\@ignoretrue}


% Here's the eqalignno* environment:

\@namedef{eqalignno*}{\@defeqnswfalse\eqalignno}
\@namedef{endeqalignno*}{\endeqalignno}

% Two formulas like \eqalignno (doesn't need the $$ $$)

\def\eqaligntwo{\stepcounter{equation}\let\@currentlabel=\theequation
\if@defeqnsw\global\@eqnswtrue\else\global\@eqnswfalse\fi
\let\\=\@eqncr
$$\displ@y \tabskip\@centering \halign to \displaywidth\bgroup
  \global\@eqcnt\m@ne\hfil
  $\@lign\displaystyle{##}$\tabskip\z@skip&\global\@eqcnt\z@
  $\@lign\displaystyle{{}##}$\hfil\qquad&\global\@eqcnt\@ne
  \hfil$\@lign\displaystyle{##}$&\global\@eqcnt\tw@
  $\@lign\displaystyle{{}##}$\hfil\tabskip\@centering&
  \llap{\@lign##}\tabskip\z@skip\crcr}

\def\endeqaligntwo{\@@eqncr\egroup
      \global\advance\c@equation\m@ne$$\global\@ignoretrue}

\@namedef{eqaligntwo*}{\@defeqnswfalse\eqaligntwo}
\@namedef{endeqaligntwo*}{\endeqaligntwo}

% subequations
%%% File: subeqn.sty
%%% The subequations environment %%%
%
% Within the subequations environment, the only change is that
% equations are labeled differently.  The number stays the same,
% and lower case letters are appended.  For example, if after doing
% three equations, numbered 1, 2, and 3, you start a subequations
% environmment and do three more equations, they will be numbered
% 4a, 4b, and 4c.  After you end the subequations environment, the
% next equation will be numbered 5.
%
% Both text and equations can be put inside the subequations environment.
%
% If you make any improvements, I'd like to hear about them.
%
% Stephen Gildea
% MIT Earth Resources Lab
% Cambridge, Mass. 02139
% mit-erl!gildea
% gildea@erl.mit.edu
%
\newtoks\@stequation

\def\subequations{\refstepcounter{equation}%
  \edef\@savedequation{\the\c@equation}%
  \@stequation=\expandafter{\theequation}%   %only want \theequation
  \edef\@savedtheequation{\the\@stequation}% %expanded once
  \edef\oldtheequation{\theequation}%
  \setcounter{equation}{0}%
  \def\theequation{\oldtheequation\alph{equation}}}

\def\endsubequations{%
  \setcounter{equation}{\@savedequation}%
  \@stequation=\expandafter{\@savedtheequation}%
  \edef\theequation{\the\@stequation}%
  \global\@ignoretrue}

% More from John Hobby
% Fix Plain's \bigl, \Bigl, etc. macros so that they try to scale with
% LaTeX size changes.  This uses the fact that \@setsize sets \ht\strutbox
% to be 70% of the normal unstretched baselineskip.

\def\big#1{{\hbox{$\left#1\vcenter to1.428\ht\strutbox{}\right.\n@space$}}}
\def\Big#1{{\hbox{$\left#1\vcenter to2.142\ht\strutbox{}\right.\n@space$}}}
\def\bigg#1{{\hbox{$\left#1\vcenter to2.857\ht\strutbox{}\right.\n@space$}}}
\def\Bigg#1{{\hbox{$\left#1\vcenter to3.571\ht\strutbox{}\right.\n@space$}}}

\endinput

        KARNEY

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

Date: Sat, 10 Dec 88 10:46:18 EST
From: Peter Marshall <peter%hadrian.uwo.ca@Forsythe.Stanford.EDU>
Subject: Query regarding texsun installation
Keywords: Previewer

I'm having some trouble getting the texsun previewer to work and I was
wondering if someone on this list could provide me with some pointers.

I compiled and loaded the texsun previewer that comes on the Unix TeX
distribution tape but I can't get it to display characters on my
screen.  All I get is boxes where the characters should be.  When I
start it up it complains about not being able to find cmr17 (Warning:
no font for cmr17) and a bunch of other fonts with various scale
settings.  The last message is something about an illegal width in a
tfm file.  In my /usr/local/lib/tex/fonts/SUBDIR directory there exist
files that at least start with the names complained about (e.g.
cmr17.118gf and cmr17.300gf).  Do I need some more (or less)?

I probably have something pretty simple wrong with my installation of
the fonts that this program requires but I can't see what it is.
LaTeX and dvi2ps produce good cmr output on our Dataproducts printer.
I'd appreciate any guidance on this.  Thanks.

Peter Marshall, Data Comm. Manager
CCS, U. of Western Ontario, London, Canada N6A 5B7
(519)661-2151x6032
peter.marshall@uwo.ca pm@uwovax (BITNET); peter@julian.uucp

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

Date: Mon, 12 Dec 88 11:43:38 EST
From: Mark W. Eichin <eichin@ATHENA.MIT.EDU>
Subject: TeX/LaTeX math <=> Macsyma (summary of responses)
Keywords: TeX, LaTeX

I originally asked the following:

>Does anyone have code or ideas for easily converting from Macsyma
>equation output (any form) to LaTeX or TeX mathematical input? I would
>guess that this could take the form of lisp code for Macsyma, or
>gnuemacs-lisp code to convert while editing the document, or maybe a
>standalone processing program. I'd also be interested in information
>on other conversion to or from TeX/LaTeX math representation.

A number of people sent helpful responses. The majority pointed me to
Professor Richard Fateman <fateman@ucbarpa.berkeley.edu>, who has
Macsyma code that defines a "tex(expr);" function which outputs TeX
code directly from an expression. He pointed out that TeX notation is
ambiguous mathematiclly and thus converting from TeX to macsyma would
be much more difficult, and mailed me the program (written in macsyma
lisp) that created the "tex()" function.

According to Richard Petti (Symbolics): ``The Lisp machine version of
MACSYMA has the capability now to convert MACSYMA code to TeX. We are
modifying some code provided by Richard Fateman at Berkeley to do
similar things for other versions of MACSYMA. The new TeX interface is
planned to appear first on the next release of MACSYMA for Sun-3

Paul Krause (MIT) pointed out that "Since Macsyma was written end
developed at MIT, it only stands to reason that you'll find the answer
here too. Amazing how much neat stuff is floating around this place."
The LISP machines here include a ``TEXIZE.LISP'' written by Patrick A.
O'Donnell, which can actually put the TeX output directly into a Zmacs
buffer (LispM's have a surprisingly well integrated environment.)

A number of other people suggested Fateman's work, including Joe
Landers (UCB): ``A description of MacTeX is available in the SIGSAM
Bulletin (the ACM special interest group on Symbolic and Algebraic
Manipulation), Volume 21, Number 4, pages 1-5 under the title "TeX
Output from MACSYMA-like Systems."''

Mattias Waldau (waldau@emil.uu.se) referred to a report "MACROTEX: A
LATEX code generator in macsyma" by Jean-Philippe Chancelier and Agnes
Sulem at INRIA.

Another interesting approach to the problem was MacEQ2TeX, written in
VMS-dependent Pascal, by Bengt Martensson of the Institut fur
Dynamische Systeme, Universitat Bremen. It converted Macsyma's
troff/eqn output into plain-TeX.

There was also mention of some nonprofit work done at Mitre by Robert
Silverman which I didn't have the time to track down.

Milo (a Macintosh program) is a standalone system to transform, edit,
and typeset equations and text. There was a demo version available for
anonymous ftp from the Macintosh archives on SUMEX-AIM. It was written
by Ron Avitzur (at Stanford), who a year ago was considering porting
it to unix and X11, though I haven't heard anything since then.

Maple and Mathematica were also mentioned as complete systems which
might have tools to do the same thing.

				Mark Eichin
			<eichin@athena.mit.edu>
		SIPB Member & Project Athena ``Watchmaker'' 

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

Date: 10 Dec 88  17:24:16 gmt
From: G.Toal@EDINBURGH.AC.UK
Subject: Compress utility & TeX - a marriage...
Keywords: TeX

   Someone (hi tiggr!) asked for this recently; I thought others might
be interested, given the volume of data TeX systems can read at run-time:
it is a filter to be added to C sources (easily hacked into ctex headers,
for instance) which lets you use LZW compression on your data files %without%
decompressing them before you use them.  Here is a short extract from
the comments in the source, followed by a sample of use.  If more than
a critical mass of people mail me for it I'll submit it to the various
archives.  I must admit I haven't built it in to my own ctex yet, but
will do shortly.

   Graham.

/*
 * The original decompress has been restructured so that data can be
 * fetched on demand a byte at a time.  This lets it be used as a filter
 * for programs which read large data files - you do not need the disk
 * space to decompress the input files first.
 *
 * (Incidentally, programs reading data off floppies will be speeded up
 *  because decompression is always faster than the equivalent amount
 *  of disk I/O).
 *
 * This implementation supplies 'z' versions of fopen, fputc, feof and fclose
 * to be used as direct substitutes for the originals; it would be cleaner
 * and more transparent if the decompress filter were hidden under the
 * real stdio procedures.  An extra call zfilter() is supplied to convert
 * an already-opened stream into a z-stream: see the example at the end
 * of this file.
 *
 * If a file opened by zfopen() was not compressed, the files contents are
 * still recovered correctly at the low expense of an extra procedure call
 * per byte.  This makes the routines more generally usable - they can be
 * left in production programs which can be speeded up in the field by
 * compressing selected input files; also, files can be compressed or
 * not selectively depending on whether or not the compression makes them
 * smaller - code accessing the files does not need to know.
 *
 */

/* A zcat substitute to show consumer-driven decompression... */
int main(int argc, char **argv) {
  ZFILE *in;
  int i, c;

  if (argc == 1) {
    in = zfilter(stdin);
    for (c = zfgetc(in); c >= 0; putchar(c), c = zfgetc(in)) ;
    zfclose(in);
  } else if (argc > 1) {
    for (i = 1; i < argc; i++) {
      in = zfopen(argv[i], "r");
      if (in != NULL) {
        for (c = zfgetc(in); c >= 0; putchar(c), c = zfgetc(in)) ;
        zfclose(in);
      } else {
        fprintf(stderr, "%s: cannot open %s\n", argv[0], argv[i]);
      }
    }
  }
  return(0);
}

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

Date: Tue, 13 Dec 88 12:28:41 PST
From: lamport@src.dec.com (Leslie Lamport)
Subject: Re: TeXhax Digest V88 #107 (a problem with pictures in LaTeX)
Keywords: LaTeX

Barney Maccabe's question is a classic example of incorrect spacing
being caused by incorrect spaces.  I recommend that any LaTeX user to
whom the problem is not obvious do the following.

1. Rewrite his example by removing all spaces from his \newcommand's.
For example, change

\newcommand{\myline}{
  \begin{picture}(0,10)
    \put(0,0){\line(0,1){10}}
  \end{picture}
}

to

\newcommand{\myline}{\begin{picture}(0,10)\put(0,0){\line(0,1){10}}\end{picture}}

or the equivalent

\newcommand{\myline}{\begin{picture}(0,10)%
\put(0,0){\line(0,1){10}}\end{picture}}

2. Run the example through LaTeX and print the output.

3. Add a single space in the \newcommand's everywhere where the
original had one or more space characters.  For example, to get

\newcommand{\myline}{ \begin{picture}(0,10) %
\put(0,0){\line(0,1){10}} \end{picture} }

4. Run the second version through LaTeX and print the output.

5. Compare the two outputs, and for each difference, figure out
how one can transform the first to the second by adding horizontal
spaces immediately before or after printed characters or lines.

6. Look at the input and figure out exactly which space in the input
produced which of the spaces in the output found in step 5.

Leslie Lamport

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

Date: Fri, 9 Dec 88 16:40:29 PST
From: little%cs@ucsd.edu (Glenn Little)
Subject: Absolute positioning in TeX and LaTeX
Keywords: TeX, LaTeX

  I am looking for a way to temporarily move to an absolute position on
  the page, print an hbox or vbox, then go back to where I was
  originally.  Is this possible?  Is there a way to do it that would
  work in both LaTeX and TeX?  I am hoping to use this capability in
  conjunction with psfigtex and a postscript bitmap to print letterheads on
  documents.  I need to be able to get way up near the upper
  left corner of the page, outside of the normal margins.  Is there a
  way to tell \psfig to print at an absolute position?
		 
  Barring the above, is there a way to get the current position in TeX 
  and LaTeX?  Then maybe I can do a relative move to where I need to go.
  I can't seem to find what I'm looking for in either the TeX or LaTeX book,
  and hope someone can point me to the relevant pages.

  Thanks.

			   Glenn Little
			   little%cs@ucsd.edu

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

Date: 10 Dec 88  17:23:24 gmt
From: G.Toal@EDINBURGH.AC.UK
Subject: Metafont & Postscript: Why not?
Keywords: METAFONT, PostScript

A couple of comments on:

> From: "David F. Rogers" <dfr@USNA.MIL>
> Subject: Combining the functions of MetaFont and PostScript
> Keywords: PostScript

I'm a TeX fan. I like the idea of MetaFont, and the care it takes to
make characters readable.  I also like the cheap flexibility of PostScript
outline fonts.  I don't see why we shouldn't have the best of both worlds:


> PostScript uses linear scaling. Proper fonts DO NOT scale linearly -- they
> scale nonlinearly. Linear scaling is one of the reasons PostScript fonts are
> ugly at certain sizes. As far as I know no one has discovered the correct (or
> any for that matter) nonlinear font scaling equations. It is a really
> interesting (and hard) problem. (A similar problem exists for clothing
> pattern scaling). It's a good PhD topic!

   Proper fonts do not SCALE linearly, but they do MAGNIFY linearly. Why not
generate all 75 differently named CM fonts as outlines, so that you do
not need to keep the 7 different standard magnifications (per output device!)

> So until someone discovers the nonlinear scaling equations let's keep
> MetaFont the way it is. Disk space is really rather cheap.

   Someone has - it's called MetaFont! :-)   But I can't let the comment on
cheap disk space go by:  my system has a 20Mb disk of which I need 6Mb for
a set of fonts for a 300dpi laser.  I have not yet started building a
similar set for a previewer (screen at 90dpi) which I suspect will take about
2Mb.  This is almost half my disk.  Note these are pk files and are already
compressed (LZW compression therefore won't make them much smaller);  if this
set had been generated by a MetaFont->PostScript, there would be one set of
75 basic files (which, incidentally, could be compressed to very small size).

   I suspect that even na\"ive PostScript scaling would be sufficient for
printing these fonts on devices with odd aspect ratios like 214:240.

> When using outline fonts, the print engine must perform a polygon (or
> outline) fill to generate the `solid' font character.  If the outline is
> rather general, this is a nontrivial algorithmic problem. It is also
> computationally expensive. This is one of the fundamental reasons that
> PostScript laser printers are so slow.

Boy, have I got news for you!  The system I use, the Acorn A440 Risc cpu,
does exactly this with it's standard screen text output!  It IS cheap and fast.
{But may well be nontrivial.  However, once written that's no problem :-)}

Some PostScript printers ARE slow - notably those with Adobe controllers -
but this is not a limitation of PostScript; more a limitation of poor
implementation, slow hardware, and ridiculously little Ram.

> I daily use both a Laserwriter Plus and an HP Laserjet Plus for TeX as
> well as other printing. I much prefer the Laserjet Plus. It is faster,
> gives just as good TeX output, and is considerably cheaper. It can also
> be used directly as a printer without having to encode the data using
> something like enscript.

True, but is it relevant? We who use PostScript use it for other things
too... such as graphics. (Primarily raster, partly line-art)

> If I want to put graphics into the text, I use a really good graphics
> device and cut and paste. I'll keep doing that until I get good device
> independent graphics within TeX itself. PicTeX is a step in the right
> direction but needs to be reduced in size and capability and made faster.

Unfortunately cut-and-paste is here for a long time, if only because scanner
resolution is still so low.  But the important thing is portability, and
PostScript is and will be promulgated farther and faster than PiCTeX.

A final argument for a MetaFont->PostScript system is that it would give
the 'pure' PostScript community access to a better tool for designing
fonts than they have at the moment.  No-one ever suggested that MetaFont
should be limited to TeX!

Graham Toal.
(gtoal@ed.ac.uk)

P.S.  I haven't seen it mentioned on the net, but Victor Ostromoukhov
from Italy presented a paper on his conversion of MF source to PostScript
outlines at Texeter88.  I am trying to get a copy of this paper; I don't
know if Victor is on the net.  I'll report any news I find.

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

Date: Sun, 11 Dec 88 21:59:21 EST
From: "David F. Rogers" <dfr@USNA.MIL>
Subject:  PostScript outline fonts from Metafont
Keywords: METAFONT, PostScript

G'day,
 
Below is part of the original text of Daniel Smith's message (texhax97.88)
espousing the use of Metafont to generate Postscript outline fonts. It is
taken a bit out of context (see the original message for clarification).
 
>   * However, these fonts take up A LOT of disk space, especially
>     when compared to PostScript fonts.  For example, a PostScript
>     outline for say Times-Roman is basically one file.  That is
>     one file for ALL sizes of Times-Roman, for ALL device resolutions.
>     Since the PostScript software in each printer has "lots of smarts"
>     this method works.
>
>   * A LARGE savings in disk space can be realized, because very few
>     files are required for a font.
 
The main thrust of this part of the message is that large savings in
disk space can be achieved by using a single outline font description
for ALL sizes of a single font family, say Times-Roman, by linear
scalings. To achieve book publishing quality, linear scaling does
not work. Nonlinear scaling is required.
 
William LeFebvre makes the point that TeX allows linear scaling
(magsteps). True enough. However, any scaling above magstep 2,
in my opinion, seriously degradates font quality to an unacceptable
level for book publishing. In fact, Knuth makes this point in the
TeXbook (bottom of page 16).
 
William LeFebvre makes the further point that Metafont could generate
PostScript outline fonts at different sizes, e.g.  5pt, 6pt, 7pt, 8pt, 9pt,
10pt, etc. But what is the advantage in this? Perhaps a small savings in
disk space at the expense of a LARGE computational overhead in the print
engine to fill in all those outlines. That translates into lower performance
and greater cost for the printer.
 
Currently the output of Metafont is in the public domain. It is device
(but not resolution) independent (ignoring the write-black vs write-white
question). Currently, .dvi files are device independent and the format is
in the public domain. TeX is in the public domain, etc. As much as I
admire John Warnock (especially for his early work in graphics and
the concepts behind PostScript), I definitely do NOT want to be tied
to his company's policies and decisions by seeing Metafont modified to
generate PostScript outline fonts. Further, I do not want to see a
degradation in font quality by adopting the linear scaling of fonts
currently used by PostScript. Finally, I don't want to have to pay
royalties to Adobe when I use PostScript outline fonts.
 
Let's leave the basic concepts behind Metafont, TeX, etc. unchanged.
 
Dave Rogers

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

%%% 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
%%%
%%% Concerning subscriptions, address changes, unsubscribing:
%%%  BITNET: send a one-line mail message to LISTSERV@UWAVM.ACS.WASHINGTON.EDU
%%%         SUBSCRIBE TEXHAX <your name>    % to subscribe
%%%      or UNSUBSCRIBE TEXHAX <your name>
%%%
%%%  All others: 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
%%%
%%% For further information about TeX Users Group services and publications
%%%  contact Karen at KLB@SEED.AMS.COM or write to TUG at
%%%   TeX Users Group
%%%   P.O. Box 9506
%%%   Providence, R.I. 02940-9506
%%%
%%% Current versions of the software now in general distribution:
%%%    TeX       2.93                  metafont  1.5
%%%    plain.tex 2.92                  plain.mf  1.0   
%%%    LaTeX     2.09 (10/26/88)       cmbase.mf see cm85.bug
%%%    SliTeX    2.09                  gftodvi   1.7
%%%    tangle    2.8                   gftopk    1.4 
%%%    weave     2.9                   gftype    2.2
%%%    dvitype   2.9                   pktype    2.2 
%%%    pltotf    2.3                   pktogf    1.0
%%%    tftopl    2.5                   mft       0.3
%%%    BibTeX    0.99c
%%%\bye
%%%

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