Summary of Metafont Fonts Available (Approximate Digest Format)

This list includes all known fonts available in metafont format, whether
public domain or not.  Archive sites for ftp are listed where known.
There is also a BITNET archive at LISTSERV@UBVM.CC.BUFFALO.EDU.

This list is formatted as a sort-of-digest so you can skip through
it easily (e.g. use control-G in rn).

I also included some notes on how to use the fonts, in the (probably vain)
hope of avoiding a deluge of questions on the net.  Note that I cannot
give instructions for specific packages, and I cannot answer questions
about specific printers.  I have included some information about TeX and
troff, but I can't go into more much more detail over the net (i.e. I am
not offering to provide detailed technical support).

Contents:
	About Metafont
	What you need in order to use the fonts
	How to use Metafont fonts with TeX
	How to use Metafont fonts with Troff
	Where to get bitmap versions of the fonts
	Fonts: 
	Fonts: AMS (see under Euler)
	Fonts: APL (A Programming Language)
	Fonts: Babel -- language support
	Fonts: Bar Code
	Fonts: Committee
	Fonts: Computer Modern
	Fonts: Concrete
	Fonts: Cyrillic
	Fonts: Dingbats
	Fonts: Euler
	Fonts: Godel
	Fonts: Greek
	Fonts: Hebrew
	Fonts: Hershey
	Fonts: Helvetica
	Fonts: International Phonetic Alphabet
	Fonts: Music
	Fonts: OCR (Optical Character Recognition)
	Fonts: Pandora
	Fonts: Pointing Hands
	Fonts: Punk
	Fonts: Sauter
	Fonts: Tengwar


~Subject:  About Metafont

Metafont is a programming language for describing fonts.  It was written
by Donald Knuth and is documented in
	Computers & Typesetting/C: The METAFONTbook
	Knuth, Donald E.
	Addison Wesley, 1986
	ISBN 0-201-13445-4, or 0-201-13444-6 (soft cover)
	Library access: Z250.8.M46K58, or 686.2'24, or 85-28675.

A font written in Metafont is actually a computer program which, when run,
will generate a bitmap (`raster') for a given typeface at a given size,
for some particular device.

~Subject:  What you need in order to use the fonts

You cannot print the metafont fonts directly (unless you want a listing of
the program, that is).  Instead, you must generate a bitmap font and use
that to print something.  If you have TeX or troff, the process for doing
this is outlined below.  This is not meant to be compete documentation, 
though, but simply enough to get you started.
If you want to use a font generated by metafont on an HP LaserJet, for
example, you must follow this general procedure:
* Generate the bitmap font with Metafont.
  This will produce a file called (for example) "myfont10.300gf".
* Convert this to a pk format file -- the pk format is much more compact,
  and is used by most software in preference to gf files.  You can use
  gftopk (which comes with metafont, or in a package called mfware).
    $ gftopk myfont10.300gf
    $
  This produces myfont10.300pk
* Convert the pk-format font into one suitable for your printer.  For an
  HP, there are several utilities -- the one I use is called pk2sfp:
    $ pk2sfp myfont10.300pk > myfont10.300sfp
  You will have to find this program.  If you are using TeX yuo do not need
  it, though -- see below.
* Download the font to the printer.  You will need to do more than simply
  send the file to the printer.  For example, on the HP you must send an
  escape sequence like ESC*c100D to tell the printer there's a font coming,
  and that it's going to be font number 100.  You then send the font, and
  then in the rest of the job say something like ESC*c100ESC*c4FESC(100X
  to tell the printer you've finished, and to start using the font.  (ESC
  in these examples stands for the ASCII Escape, chracter 033 octal, 27 in
  decimal).  All of this must be in the same print job.

Doing this without going insane involves setting up macros or shell-scripts
to automate it for you.  


~Subject:  How to use Metafont fonts with TeX

In addition to generating a `gf' file, metafont will also generate a '.tfm'
file.  You will need to put the tfm file into your TeX font directory --
for example, /usr/local/tex/fonts.  You will need to put either the gf or
the pk file there too -- probably the pk file.  Some dvi drivers need the
font to be listed in a description file, too -- the name and location of
this seems to vary wildly from site to site, but FONTDESC is not unlikely.
Chris Torek's `mctex' package includes some drivers that need this.

For testing, you might be able to say something like
  $ TEXFONTS="/users/lee/fonts:/usr/local/lib/tex/fonts"; export TEXFONTS
to get TeX to look in more than one directory -- see your local TeX guide.

When you have installed the font, you can use it from TeX directly in the
usual way.  For most fonts, the filename is the same as the font name, so,
for example, ccr10.300pk contains the bitmaps for a font called ccr at size
10pt.  You can look at the Metafont source for a given font to determine
the name of the font, and you might also be able to cheat by editing the
font description file FONTDESC.
Using other fonts with LaTeX generally requires more work.


~Subject:  How to use Metafont fonts with Troff

If, when you run troff, you get the message `typesetter busy', you have the
original Osanna-troff, also called otroff.  Chris Lewis has a package which
will let you use TeX fonts with troff -- it's called thack, I believe, and
comes with documentation.

If, when you run troff, you get something like this:
	x T 300
	x res 300 1 1
you have ditroff.  This is sometimes called titroff or psroff.  In this
case, you will probably need to do the following:
1) convert the font to your printer's format
2) generate a width table for the font
3) add the font to the DESC file for the appropriate device
4) arrange for troff to download the font
5) tell troff about the font by running `makedev DESC' in the right place.

If, when you run troff, you get something like this:
	X hp(SCM)(CM)(AF)(AD) 300 1 1
	Y P default letter 2550 3300 0 0 90 90 2460 3210
you have sqtroff, change (4) onwards to:
4) put the font in the appropriate raster directory
5) tell sqtroff about the font by running `sqmakedev DESC' or `sqinstall'.

In each case, you should be able to get help from your vendor.


~Subject:  Where to get bitmap versions of the fonts

There are archives containing the bitmaps of many of these fonts at various
sizes and resolutions.  The fonts must have been generated for the correct
print engine: e.g. write-white or write-black.  The archives generally hold
only the sizes used by TeX.  These are `magstep' sizes, and are not exact
point sizes.  It is probably better to generate them from the Metafont
sources yourself if you can.

The best place to look for raster fonts is almost certainly
	mims-iris.waterloo.edu (129.97.129.116)
This probably has all the HP fonts in the world....  some others are:
	ctrsci.math.utah.edu (128.110.198.1)
	science.utah.edu (128.110.192.2)
	ymir.claremont.edu (134.173.4.23)

The occasional posting of ftp sites to comp.misc and comp.archives lists
these and several other sites.


~Subject:  Fonts: AMS (see under Euler)

The American Mathematical Society has adopted TeX, and has had some fonts
designed especially by Herman Zapf.  These are known as the Euler fonts,
and are described below.  The Metafont sources are not available by
anonymous ftp, however.


~Subject: Fonts: APL (A Programming Language)

[no archive site listed]


~Subject: Fonts: Babel -- language support

The Babel archive at ymir.claremont.edu contains:
* Greek Fonts:
  Brian Hamilton Kelly's cmgr family
  Sylvio Levy's gr family [modern and classical]
  Yannis Haramboulos' rgr family

* Hebrew fonts:
  REDIS (a thin-looking sans serif)

* Icelandic
  Icelandic Modern (this is Computer Modern with extensions)

* Russian (Cyrillic)
  IFVE's cmc family
  U Washington's wncyr family

* Turkish
  Turkish Modern (this is Computer Modern with extensions)

ftp: ymir.claremont.edu (134.173.4.23): cd [anonymous.tex.babel]


~Subject: Fonts: Bar Code

Dmitri Vulis's barcode font
ftp: ymir.claremont.edu (134.173.4.23): cd [anonymous.tex.mf]


~Subject: Fonts: Committee

This was produced during a workshop tutorial given by Donald Knuth.
[no archive site listed]


~Subject: Fonts: Computer Modern

Computer Modern is Donald Knuth's font family used for his later
`Art of Computer Programming' books.  It contains
	cmr -- computer modern roman
	cmti [sic] -- computer modern italic
	cmb -- computer modern bold
	cmss -- computer modern sans serif
	cmtt -- computer modern typewriter
	cmvt -- computer modern variable-spaced typewriter
and several variations on each of the above (e.g. bold extended...).
There are also some experimental fonts, such as cmff, a `funny' font, and
cmf, a font based on Fibonacci numbers.

These are all included in a standard TeX distribution, although I only know
of one site archiving the metafont files seperately.

ftp: ymir.claremont.edu (134.173.4.23): cd [anonymous.tex.mf]
Many TeX ftp archive sites give access to the bitmaps (pk files).

See also: Babel, Sauter
There is also a reparameterised version of CM by John Sauter, which makes
it easy to generate fonts at desired sizes-- this is especially useful for
non-TeX users.

ftp: ymir.claremont.edu (134.173.4.23): cd [anonymous.tex.mf]
Many TeX ftp archive sites give access to the bitmaps (pk files).

~Subject: Fonts: Concrete

This font was designed for Donald Knuth's Concrete Mathematics book.
It looks a little like a cross between American Typewriter and Computer
Modern Roman.  There are Roman and Italic faces.

ftp: ymir.claremont.edu (134.173.4.23): cd [anonymous.tex.mf]


~Subject: Fonts: Cyrillic

There are several Cyrillic (Russion-Alphabet) fonts:
Tom Ridgeway's Cyrillic fonts
[BITNET: LISTSERV@UBVM.CC.BUFFALO.EDU]

WN-Cyrillic
ftp: june.cs.washington.edu (128.95.1.4)


~Subject: Fonts: Dingbats

By Doug Henderson.
ftp: ymir.claremont.edu (134.173.4.23): cd [anonymous.tex.mf]


~Subject: Fonts: Euler

These were designed by Herman Zapf for the American Mathematical Society,
from whom the metafont files are available (with restrictions).
There is a German Fraktur font and a calligraphic font.


~Subject: Fonts: Greek

(unknown greek font)
ftp: xydeco.siemens.com (129.73.1.101) -- greek*

Also the Sylvio Levy `gr' greek family, for both Modern and Classical Greek.
This includes roman, typewriter and bold, plus TeX macros.

Brian Hamilton Kelly's cmgr family
Yannis Haramboulos' rgr family

ftp: ymir.claremont.edu (134.173.4.23): cd [anonymous.tex.babel.greek]

see also Babel...


~Subject: Fonts: Hebrew

There is a sans-serif Hebrew font called REDIS available from ymir.
It comes in three faces, including italic (slanting to the right, of
course).
ftp: ymir.claremont.edu (134.173.4.23): cd [anonymous.tex.mf]


~Subject:  Fonts: Helvetica

Produced by the Metafoundry and sold commercially.
This is all I know, sorry.  I do not have an address for the Metafoundry,
and do not know if they have other fonts.  I will try to find out, but
would appreciate any information on these and other commercial suppliers.


~Subject:  Fonts: Hershey

The Hershey fonts were designed for use by plotters, and published in 1972.
These fonts are of relatively low typographic quality, but are useful on
devices with lower resolution.

[no archive site listed]


~Subject:  Fonts: International Phonetic Alphabet

Used by linguists, and also in some dictionaries.  It's designed to go
with Computer Modern.  From WSU.
ftp: ymir.claremont.edu (134.173.4.23): cd [anonymous.tex.mf]


~Subject:  Fonts: Music

MuTeX is a basic music package for TeX.  It seems to be the same as mtex,
but with documentation in English rather than (or as well as) German.
ftp: stolaf.edu (130.71.128.1) /TeX/MuTeX

~Subject:  Fonts: OCR (Optical Character Recognition)

OCR A (this is not the font for printingon cheques)
ftp: ymir.claremont.edu (134.173.4.23): cd [anonymous.tex.mf]

~Subject:  Fonts: Pandora

This is a little like Palatino, annd includes a sans-serif variant.
It is not yet of production quality, unfortunately.

ftp: ymir.claremont.edu (134.173.4.23): cd [anonymous.tex.mf]


~Subject:  Fonts: Pointing Hands

Various manual extremities, designed by Georgia Tobin
ftp: ymir.claremont.edu (134.173.4.23): cd [anonymous.tex.mf]


~Subject:  Fonts: Punk

A punK hAndWritten fOnT...
For writing on walls, perhaps.  The lower case is simply a smaller
version of the upper case.  
ftp: ymir.claremont.edu (134.173.4.23): cd [anonymous.tex.mf]


~Subject:  Fonts: Sauter

This is a rework of Computer Modern.  The outlines are the same, as far as
I know, but it is much easier to generate the various fonts.
By John Sauter.
ftp: ymir.claremont.edu (134.173.4.23): cd [anonymous.tex.mf]


~Subject:  Fonts: Tengwar

There are at least two Tengwar fonts, although I have only been able to get
hold of one of them.
ftp: ymir.claremont.edu (134.173.4.23): cd [anonymous.tex.mf]



End of Font List

$Header: /home/lee/tex/mf-fonts,v 1.1 90/06/17 18:10:26 lee Exp $

$Log:	mf-fonts,v $
# Revision 1.1  90/06/17  18:10:26  lee
# Initial revision
# 

-- 
Liam R. E. Quin,  lee@sq.com, {utai,utzoo}!sq!lee,  SoftQuad Inc., Toronto
``Anyway, nothing spices up a novel like a monster threatening to gobble up
  the world'' [David Brin, _Earth_, p.584 (Afterword)]
Path: usc!jarthur!sif.claremont.edu
From: dhosek@sif.claremont.edu (Hosek, Donald A.)
Newsgroups: comp.text.tex
Subject: LaTeX help -- informational posting
Message-ID: <7806@jarthur.Claremont.EDU>
Date: 11 Jul 90 04:24:01 GMT
Sender: news@jarthur.Claremont.EDU
Reply-To: dhosek@sif.claremont.edu
Organization: Harvey Mudd College
Lines: 61


It's been a while since this has been seen...

**********************************************************************
*                     Introduction to LaTeX-help                     *
**********************************************************************

By Max Hailpern <mxh@sumex-aim.stanford.edu>

All sites with LaTeX should have one or more LaTeX experts to help
users. Those experts communicate with each other about difficult
problems through various forums, including the TeXhax mailing list.

Lately, many sites have installed LaTeX without having, acquiring, or
developing a LaTeX expert. Many simple LaTeX questions from those
sites have been posted directly to TeXhax, clogging it and prompting
redundant replies.

Therefore, a number of TeXhax subscribers have formed a volunteer
LaTeX question answering corps. LaTeX users with questions should take
the following steps:
 1) Read the manual very carefully, including a careful check of the
    index. Most questions are answered there.
 2) Check whether anyone locally can answer your question. Consider
    not only paid systems staff but also more experienced users.
    Similarly, if you paid a commercial company good money for LaTeX,
    you should demand customer support from them--after all LaTeX is
    available for free.
 3) See if you can work it out yourself, and in the process build
    LaTeX expertise, by use of careful test cases, tracing mode,
    examining the LaTeX source files, etc. Don't go crazy if you're a
    non-programmer, but give it a shot.
 4) If all of the above fail, *don't* send mail to TeXhax. Instead,
    send mail to LaTeX-help@sumex-aim.Stanford.EDU. Your mail will
    automatically be forwarded to a member of the volunteer corps, in
    a round-robin rotation. You should hear back shortly, either with
    a solution to your problem, a request for additional information,
    or the remark that it exceeded the volunteer's abilities and has
    been forwarded to other experts, including further volunteers and
    the TeXhax mailing list. If you don't hear anything after waiting
    a reasonable period, write to
    LaTeX-help-coordinator@sumex-aim.Stanford.EDU with as much
    information about your original mailing as you have, and I'll try
    to track down how it got lost.

Please do not abuse this service.  We volunteers have lots of work of
our own to do, and will not continue volunteering if the burden is
excessive. Make sure you try steps 1-3 before step 4, and always be
eager to help others locally who are a step behind you. Also, join TUG
(the TeX Users' Group) if you haven't and avail yourself of their
classes and publications to develop in-house LaTeX expertise.

If you have any questions or comments on this, please write to
LaTeX-help-coordinator@sumex-aim.Stanford.EDU -- not directly to the
current person holding that position, as it may change.

---
Don Hosek                         TeX, LaTeX, and Metafont Consulting and
dhosek@ymir.claremont.edu         production work. Free Estimates.
dhosek@ymir.bitnet                
uunet!jarthur!ymir                Phone: 714-625-0147

Path: usc!jarthur!sif.claremont.edu
From: dhosek@sif.claremont.edu (Hosek, Donald A.)
Newsgroups: comp.text.tex
Subject: Re: [text] Greek fonts in TeX?
Message-ID: <7841@jarthur.Claremont.EDU>
Date: 17 Jul 90 00:19:25 GMT
Sender: news@jarthur.Claremont.EDU
Reply-To: dhosek@sif.claremont.edu
Organization: Harvey Mudd College
Lines: 41

In article <1990Jul16.234056.11998@midway.uchicago.edu>, ethan@sam.uchicago.edu (Ethan Ligon) writes...
>I am a tex neophyte, but I have been looking for a way to produce high
>quality output of greek characters, and tex comes highly recommended.

>The problem is that I need more than the usual mathematician's complement
>of greek characters; in particular, I need to be able to write greek 
>characters with a variety of diacritical marks, etc.

>Could anyone familiar with tex fonts with these sorts of features let me
>know where I can find such?  

Two good Greek fonts for text are available from
ymir.claremont.edu in subdirectories of
[anonymous.tex.babel.greek]

[anonymous.tex.babel.greek.levy] Contains the "original" text
Greek font; it breaks down in a few places and is missing a few
obscure characters (digamma, koppa...) but is otherwise quite
nice.

[anonymous.tex.babel.greek.yannis] Contains a more recent
"Reduced Greek" font. It has been modified to fit into a
128-character framework but has all the letters of the Greek
alphabet in its many variations (not only are obsolete letters
provided, but also a version for typesetting Cypriotic Greek).
This has a problem with one of the fonts and TeX 3.0 (if you do
use TeX 3.0, running tftopl followed by pltotf on the offending
TFM seems to fix the problem).

[anonymous.tex.babel.greek.hamilton_kelly] is provided mostly out
of historical interest. It's a quick-and-dirty Greek whose letter
forms are based very closely on the Math Greek. It only has
modern accenting (no breathings &c)

-dh

---
Don Hosek                         TeX, LaTeX, and Metafont Consulting and
dhosek@ymir.claremont.edu         production work. Free Estimates.
dhosek@ymir.bitnet                
uunet!jarthur!ymir                Phone: 714-625-0147
In article <3923@cica.cica.indiana.edu> templon@venus.iucf.indiana.edu writes:
>
>what IS PiCTeX?  Is this the
>same as {picture} mode in LaTeX?  I am quite interested in any other means
>of getting graphics into TeX (I use LaTeX) since {picture} mode routinely
>makes latex run out of space at our site (I get the picture-mode stuff
>from GNUPlot, it has a latex driver.)
>
>	So, what is PiCTeX?  Maybe you should rephrase that question in
>the frequ. asked list to "What is PiCTeX and where do I get the manual?"

I have just been writing a 60-page report with lots of figures, using LaTeX.
There are several methodes for figures in (La)TeX:

	1. LaTeX figure
	2. epic, eepic
	3. tpic
	4. PiCTeX
	5. postscript

1. Known by all, used by none.

2. An improved version of 1.  Set of macros.  It is really rather good,
   but causes TeX to run out of memory if you use too many or too complicated 
   figures.  Distribution includes manuals.

3. Not for free, need a DWB license from AT&T to get it.  I never used it.

4. Set of very powerful macros but even the smallest picture causes TeX
   to run out of memory.  Manual available from TUG for $30 ($35 including
   IBM PC floppy).

5. Unlimited power.  I used these to create my figures.  E.g., first draw
   your figures using xfig, then translate them with transfig (which is
   public domain).  Transfig creates *.ps and *.tex from *.fig.  The
   files *.tex can be included in your document, which causes *.ps to be
   included by dvips (or whatever).  Required: psfig macros, ftp'able.
      Be sure to use the latest xfig (v. 2.0) and transfig.  This
   version of transfig is not 100% perfect; in my opinion, it contains
   a bug when translating text in a figure.
      Transfig can be used to translate fig output to LaTeX, epic, eepic,
   pic, PiCTeX, or ps.


Patrick van der Smagt
For those of you living in the modern world of networks:

You can get the TeX sources in

	labrea.stanford.edu:pub/tex

Do not get what is in labrea.stanford.edu:pub/tex/UnixTeX.

If you want software which automates the installation on Sun's, IBM
AIX, NeXT, and VAX Ultrics, first get

	labrea.stanford.edu:pub/imaketex101.tar.Z.

John
Below is the Level 0 standard (draft 0.03) which will be in its final 
form for publication in the last regular issue of TUGboat for 1990.

In the last month before the standard is being put in its final form, 
the TUG DVI standards committee is soliciting opinions from the TUG 
membership. If you have any comments about the specifications listed 
below, please send them to dhosek@ymir.claremont.edu, or, if that does 
not work, dhosek@ymir.bitnet.

The appendices referenced are taken more-or-less directly from the 
descriptions of the file formats in DVItype, GFtype, PKtype and TFtoPL. 
The rounding error appendix will be sent separately.


\documentstyle[ltugboat]{article}
\title{A Draft Proposal for the ``Level~0'' {\tt DVI} Driver Standard}
\author{Don Hosek\thanks{On behalf of the TUG {\tt DVI} Driver Standards
   Committee}}

\makeatletter
\newcounter{impnote}
\def\theimpnote{\alph{impnote}}
\def\impnote#1{{\def\@mpfn{impnote}%
  \let\thempfn=\theimpnote
  \footnote{#1}}}
\makeatother

\def\tensl{\sl}

\let\App=\appendix
\def\appendix{\App\small} % tighten up the ending pages of the standard.

\hbadness=9999 % Cut down the amount of annoying messages generated...

% For file format descriptions:
\def\res#1{{\bf #1}}
\def\sty#1{{\it #1}}

\begin{document}
\maketitle

\emergencystretch=\hsize
\divide\emergencystretch by 10 % I think this will encourage 10 
words/line


\begin{abstract}
The following represents a minimal standard (level~0) for {\tt
DVI}
drivers. The complete standard will be presented as a series of
``tiers'' requiring increasingly stringent control over the
output of {\tt DVI} drivers. A trip test for {\tt DVI} drivers will be
created which will allow developers of {\tt DVI} drivers to insure that
their drivers meet the standards developed here. The
specifications here should be considered minimal and driver
developers are encouraged to write drivers whose capabilities are
beyond these specifications.

This version of the Level~0 Standard presented here is
draft~0.03. It has been reviewed by the TUG Driver Standards
Committee and is now being presented to the TUG membership at
large for review. This will form one portion of the TUG {\tt DVI}
Driver Standard. 
\end{abstract}

\section{Purpose of the Level~0 standard}

The Level~0 Standard is meant to be a base standard to which all 
drivers should adhere. It is intended to allow all reasonable
applications to be printed on all drivers.

The basis for many of the specifications in this standard is the
possible output of \TeX82; functions which can be implemented via
a pre-processor are generally omitted ({\em e.g.,\/} page
selection and sorting).

Footnotes beginning with a letter are implementation notes and are
hints on handling difficult circumstances for printers.



\section{The {\tt DVI} file}

As a rule, {\tt DVI} drivers should be able to interpret any {\tt
DVI} file which falls within the following limits. These
specifications are a {\em minimum\/}; good drivers will probably
be able to handle {\tt DVI} files exceeding these limits ({\tt
DVI} files which exceed the limits are likely  to be rare, but
might still occur).

\subsection{{\tt DVI} commands}

The driver should be able to interpret every {\tt DVI} command
listed in appendix~\ref{dvi-format}. % See file dvi.tex

\subsection{Characters}
\subsubsection{Number of characters in a {\tt DVI} font}

The driver should be able to handle fonts which have characters
at any code in the range $0\le c<256$.\impnote{Some output devices will
require {\tt DVI} fonts with more than a given number of
characters to be broken into two or more device fonts when
downloaded to the printer.}

\subsubsection[{\tt DVI} character size]{{\tt DVI} character
size\footnote{The values presented here and in the following
sections are preliminary and
subject to modification.}}

The driver should be able to print any character up to a  size of
600pt (horizontal) by 800pt (vertical).\impnote{Note that some
output devices will require breaking down such a character into
smaller  pieces or drawing the character in graphics mode.}

\subsubsection{Number of {\tt DVI} characters per page}

The driver should be able to print a page containing as many as
20,000 {\tt DVI} characters.

\subsubsection{Unusual characters}

The driver should correctly handle (a)~characters with empty
bitmaps ({\em e.g.,\/} the \SliTeX\ fonts) including characters
whose horizontal escapement is~0, (b)~characters whose
printable image is wider than its horizontal escapement, and
(c)~characters with a negative horizontal escapement.

\subsection {Rules}
\subsubsection{Rule size}

The driver should be able to print rules of any size up to 600pt
(horizontal) by 800pt (vertical).

\subsection{Number of rules per page}

The driver should be able to print a page containing as many as
1000~rules.

\subsection{Stack}

The driver should have, as a minimum, a stack depth of 100 for
{\tt DVI} {\it push\/} and {\it pop\/} commands.

\subsection{Positioning on the page}

\subsubsection{Location of the origin}

The point $(0,0)$ in {\tt DVI} co\"{o}rdinates should be located
at a point one inch from the top of the page and one inch from
the left side of the page. 

\subsubsection{Changes in position due to characters and rules}

The driver should accurately track movement using the pixel width
from the font raster file and the {\tt TFM} width from either the
font raster file or {\tt TFM} file with the {\tt TFM} width from
the font raster file taking priority. This is described in
appendix~\ref{rounding-algorithim}.

Positioning of rules is handled similarly with the rounding done
using the algorithim in appendix~\ref{rounding-algorithim}.

The {\tt TFM} format is described in
appendix~\ref{tfm-format}.

\subsubsection{Range of movement}

The driver should be able to handle movements in the {\tt DVI}
file up to a total of $2^{31}$ {\tt DVI} units in any direction
from the  origin.

\subsubsection{Objects off of the page}

Any printable object which would lie entirely off the physical 
page should not be printed but any changes to positioning should
still be taken into consideration. Any printable object which
would lie partially off the physical page should either be
clipped so that portion of the object that lies off the page is
not printed or omitted entirely.

\subsection{Fonts}

\subsubsection{Font numbers}

The driver should be able to accept font numbers (the  parameter
$k$ given by the {\it fnt\_def\/} command) in the range  $0\le
k<256$.

\subsubsection{Distinct {\tt DVI} fonts}

The driver should be able to handle any document containing 64 or fewer
distinct {\tt DVI} fonts.

\subsection{Specials}

The Level~0 Standard requires no support for specials. Specials
not officially defined by the {\tt DVI} driver standards
committee should be flagged with a warning when read from the
{\tt DVI} file. If any specials are ignored by the driver, the
driver must issue a warning message.

\section{Configuration}

It should be possible for the installer of a driver to
configure such things as the location and naming scheme of fonts,
default paper size, etc.\ without having to recompile the driver.

\section{Font files}

\subsection{Font formats}

The driver should be able to read {\tt PK} fonts with the
location specifiable at run time. The {\tt PK}
format is given in appendix~\ref{pk-format}. {\tt GF} support is
optional. The {\tt GF} format is given in
appendix~\ref{gf-format}.

\subsection{The scaling number}

The magnification and resolution of a font are incorporated into
a scaling number of one of two types:
\begin{description}
\item[Magnification number]
The magnification number is given by $5\times {\it resolution}
\times {\it magnification\/}$ where the resolution is given in
dots per inch (on devices with a non-unit aspect ratio, the
horizontal resolution should be used) and a magnification of 1
indicates no magnification. This is an old naming scheme derived
from the old 200~dpi 

\item[Resolution number]
The resolution number is given by ${\it resolution} \times {\it
magnification}$ where both values are as above. This is the
preferred specification for {\tt GF} and {\tt PK} files.
\end{description}

\subsection{Magnifications}

\subsubsection{Minimum set of magnifications}

At the minimum, the driver should be able to load fonts at the
following magnifications of its target resolution: 1.0
(magstep0), 1.095 (magstephalf), 1.2 (magstep1), 1.44 (magstep2),
1.728 (magstep3), 2.074 (magstep4), 2.488 (magstep5), 2.986
(magstep6), 3.583 (magstep7), 4.300 (magstep8), and 5.160
(magstep9). However, driver authors are encouraged to support all
possible magnifications.

\subsubsection{Margin of error}

If a {\tt DVI} file requests a magnification within 2\,\% of a
supported magnification, the driver should use that font without
warning.

\subsection{Missing fonts}

If a font is missing the driver should continue processing and
deal with the missing font in one of three ways:
\begin{enumerate}
\item Insert appropriate white space where the font would
           appear,
\item Insert black rectangles of the size of the font given in
           the {\tt TFM} file,
\item Print the characters from that font at a different size or
           from another font at the same size after issuing a
           warning.
\end{enumerate}
If methods 1 or 2 are used and the driver is unable to locate
size information for the font in question, then the driver may
simply ignore any {\it set\_char\/} or {\it put\_char\/} commands
that occur while the current font is that font.

Under no circumstances should a missing font cause a fatal error.

\appendix

% All appendices ommitted... for this distribution. The complete
% standard can be obtained from ymir.claremont.edu in 
% [anonymous.tex.dvi-standard]
% Mailserv users should send the command
%  SEND [TEX.DVI-STANDARD]00README.TXT
% to find out what files are needed.
%\input{dvi.tex}
%\input{gf.tex}
%\input{pk.tex}
%\input{tfm.tex}
% \input{vf.tex} %Since VF files are not referenced in level 0,
% this is omitted for brevity's sake.
\end{document}
\documentstyle{article}
\begin{document}
\def\abs{{\rm abs}}
\def\DVI{{\tt DVI}}

\section{Handling rounding to device units---modified {\tt
   DVItype} algorithim}

The algorithims presented here are adapted from {\tt DVItype};
they represent the base algorithim for handling rounding of
co\"ordinates and widths of objects to device units. 

\subsection{Rounding \DVI\ units to device units}

Whenever it is necessary to round some dimension given in \DVI\
units to the corresponding quantity in device units\footnote{For
raster-oriented devices, this would be the distance between spots
in the output. For other devices, this refers to the minimum
addressable distance change, {\em e.g.,\/} on a pen-plotter, it
would be the minimum pen step. Device units do not necessarily
correspond to dot size and this distinction should be respected
in writing a \DVI\ driver.} the conversion should be done as
$\lceil Kn\rceil$ where $n$ is the dimension in \DVI\ units and
$K$ is a constant which converts from \DVI\ units to device
units.\footnote{Devices with non-unit aspect ratios will need to
maintain separate constants for vertical and horizontal
dimensions.} This description will use ${\it pixel\_round}(n)$
to refer to $\lceil Kn\rceil$.

\subsection{Keeping track of the current horizontal and vertical
   position}

The definition of \DVI\ files refers to six registers,
$(h,v,w,x,y,z)$, which hold integer values in \DVI\ units.  In
practice, we also need registers ${\it hh}$ and ${\it vv}$, the
pixel analogs of $h$ and $v$, since it is not always true that
${\it hh}={\it pixel\_round}(h)$ or ${\it vv}={\it
pixel\_round}(v)$.

Whenever the \DVI-reading program encounters an instruction that
changes the current position, it should update $h$ and $v$ using
pure \DVI\ units. If the change in position is due to a {\it
set\_char} command, the driver should add the x-escapement
value from the {\tt PK} or {\tt GF} file to $\it hh$ to get the
new value for $hh$.

For a horizontal movement from any other command, ${\it hh}$
should be set to be ${\it hh}+{\it pixel\_round}(x)$ if
$x<0.2{\it quad}$ for a horizontal movement to the right or if
$x>-0.9{\it quad}$ for a horizontal movement to the left. $\it
quad$ is defined to be the design size of the current font in the
\DVI\ file (after all necessary magnifications have been
applied). If $x$ exceeds the bounds outlined above, ${\it hh}$ is
set to be ${\it pixel\_round}(h+x)$. In this way, rounding
errors are absorbed by interword spaces.

For a vertical movement, ${\it vv}$ is set similarly except that
$\it vv$ is set to ${\it vv}+{\it pixel\_round}(y)$ if $-0.8{\it
quad}<y<0.8{\it quad}$ and set to ${\it pixel\_round}(v+y)$
otherwise. This allows vertical rounding errors to be absorbed in
the interline spacing while still allowing fractions and super-
and subscripts to be printed consistently.

After any horizontal movement, a final check is made as to
whether $\abs(Kh-{\it hh})>{\it max\_drift}$. If it is, then $\it
max\_drift$ is added or subtracted to $hh$ to bring it closer to
$Kh$. A similar check is made with $\it vv$ and $v$. $\it
max\_drift$ should be set to $2$ for output devices with device
units smaller than or equal to $1/200$ inches and $1$ for output
devices with device units with device units greater than $1/200$
inches.
\end{document}
In article <BJR.90Aug30155525@clarity.Princeton.EDU> bjr@clarity.Princeton.EDU (Brian J. Reiser) writes:
>Is there any simple way to modify the formatting of latex figure
>captions?  I have some longish captions (approx 3-4 sentences) that

I had the same problem and solved it by defining my own caption macro for
LaTeX, shown below.  It provides a multi-line caption centered and .25
inches shorter than the currently operating paragraph width, in a slightly
smaller font.  The macros take two arguments, the caption title that gets
put into a table of contents, and the paragraph of text that should follow.
Note that the first argument, the 'caption title', is not printed with the
figure so that you have to repeat the title in the second argument.
The macro is:

\newcommand{\mycaption}[2]{
	\begin{center}
		\advance\textwidth by -0.5in
		\parbox{\the\textwidth}{
			\caption[#1]{\small #2 \normalsize}
		} % end of parbox
	\end{center}
} % end of newcommand

You use it in the following way.  The caption is "My caption title" and I
have it printing out in italics (\em).

\begin{figure}
\label{a-nice-figure}
\psfig{figure=a-nice-figure.ps}
\mycaption
{My caption title} {{\em My caption title}\ \ This is a long paragraph that
is to be put as comment to the caption of a figure in a document.  It can
go on and on...
...
...
and ends here }
\end{figure}

Good luck.

David Sturman
MIT Media Lab
djs@media-lab.media.mit.edu
In article <1990Sep3.010417.21701@mintaka.lcs.mit.edu>, dmjones@theory (David M. Jones) writes:
 |
 |By updating our version of LaTeX, I mostly mean grabbing Mittlebach
 |and Schopf's code from ymir.claremont.edu and making it available on
 |our system.  This also means replacing LaTeX's font selection
 |mechanism by the M&S scheme.  However, before I actually turn this
 |whole system loose on the local users, I have a few questions.
 |
 |1.  I have before me an article entitled "Towards LaTeX 2.10," by M&S,
 |that appeared in in the November 1989 issue of TUGboat, in which they
 |talk about a few of the changes they are making.  First of all, has
 |LaTeX 2.10 been dumped in favor of LaTeX 3.0? 

Apparently. I heard a presentation by Frank Mittelbach last week and there was no mention of 2.10

 |re-implementation of LaTeX.)  Second, have Mittlebach and Schoepf
 |released any more details of how extensive their revision will be?

They will try to keep it as much compatible as is possible. That is at the
user level.
There will be a new style-designer interface (more things customizable, and
better documented). The new array and theorem styles will be part of LaTeX;
the notion of fragile commands will disappear. Environments will get
attributes, which is an extension of the current optional arguments. Better
float handling. Better support for mathematics (like the amstex option).
International language support. User definable hooks in various places.
More elaborate front matter. and so on.

 |2. What problems can I expect with the version of LaTeX I've described
 |above?  I.e., LaTeX 2.09 (version of 7 Dec 1989), running under TeX
 |3.0 (with Mittelbach's modified lplain.tex from ymir), and with
 |Mittlebach's font selection code installed?  What is likely to change
 |enough that the users will notice and come after me with sharp
 |implements?

My experiences:
A number of style files (or users themselves) use things like \tensl, which
are not defined in the new font selection scheme.
The new scheme does not work with old LASY font files. You have to get the
new ones. (the symbols like \unlhd are in the new fonts, whereas in the old
LaTeX they were built from other symbols).
Selecting the new font selection mechanism (i.e. newlfonts.sty as default)
may surprise some users. On the other hand selecting oldlfonts.sty as
default (as I did) will sometimes give problems with exhausted math families.

In article <8256@jarthur.Claremont.EDU>, dhosek@hmcvax (Hosek, Donald A.) writes:
 |
 |The two biggest gotchas are [1] letter.sty won't work. The local
 |solution here, since our TeX tree is also a distribution point
 |was to configure paths so that a file letter.sty which inputs the
 |original letter.sty and then makes the necessary changes is found
 |before the original, non-functioning letter.sty. By renaming the
 |old letter.sty to, say, oldletter.sty, the path trickery is not
 |necessary. The changes I made are in the file
 |[anonymous.tex.inputs.local]letter.sty on ymir.claremont.edu.

I made a change that works with both versions:

*** letter.sty.~1~	Tue Mar 14 17:54:32 1989
--- letter.sty	Tue May 15 12:53:03 1990
***************
*** 212,220 ****
--- 212,224 ----
   \begingroup\@floatplacement\@dblfloatplacement\endgroup
   \if@filesw \immediate\openout\@mainaux=\jobname.aux
   \immediate\write\@mainaux{\string\startlabels\string\@startlabels}\fi
+  \csname process@table\endcsname
   \def\do##1{\let ##1\@notprerr}
   \@preamblecmds
   \let\do\noexpand 
+  \ifx\undefined\selectfont\else
+     \gdef\xpt{\family{cmr}\series{m}\shape{n}\size{10}{12pt}\selectfont}
+  \fi
   \@normalsize\everypar{}}
  \def\enddocument{\@checkend{document}\newpage\begingroup 
  \if@filesw \immediate\closeout\@mainaux 
-- 
Piet* van Oostrum, Dept of Computer Science, Utrecht University,
Padualaan 14, P.O. Box 80.089, 3508 TB Utrecht, The Netherlands.
Telephone: +31 30 531806   Uucp:   uunet!mcsun!ruuinf!piet
Telefax:   +31 30 513791   Internet:  piet@cs.ruu.nl   (*`Pete')
Short version:

    (1) Save your old amstex.tex and amsppt.sty under other names
        when you install version 2 of AmS-TeX, because version 2 is
        not backward-compatible with older versions.

    (2) Beware of the syntax error in line 133 of cyrcsc.mf

Long version:

Via ftp, I recently retrieved from labrea.stanford.edu the new
AmS-TeX, version 2.0, and the new METAFONT sources for the associated
fonts (Cyrillic, Fraktur, special symbols, etc.). As many of you know,
the usefulness of older versions of AmS-TeX had been limited by the
fact that sources for the symbol fonts were available only in an
obsolete form of METAFONT, so that it was effectively impossible to
magnify the fonts.

The new distribution provides sources for everything that the new
version uses. Rejoice! But beware!  AmS-TeX 2.0 is not
backwards-compatible with earlier versions. The most obvious change is
that the syntax for some topmatter commands for amsppt.sty is
different from the old syntax. Converting old documents should be a
minor task, if they use amsppt.sty. But anyone with some other style
file to update has their work cut out for them. I urge those of you
maintaining site copies to rename your old amstex.tex and amsppt.sty
to something like oldamstex.tex and oldamsppt.sty before installing
the new stuff.

The last time I looked, labrea had three subdirectories of
/pub/tex devoted to AmS-TeX: ams, amstex, and amsfonts. The new stuff
is in tex/ams and its subdirectories; the old stuff is in tex/amstex and
tex/amsfonts. I was informed by someone at the AMS that the old stuff is
there only because the folks at Stanford have not gotten around to
removing it.

One of the METAFONT source files for the new fonts has a syntax error.
In ams/amsfonts/sources/cyrillic/cyrcsc.mf, line 129 currently is this:

     ligtable "e": "0"=:oct"032", "1"=:oct"013", "2"=:oct"015",

The final comma should be a semicolon; i.e., the correct line is this:

     ligtable "e": "0"=:oct"032", "1"=:oct"013", "2"=:oct"015";

A glance at lines 130--132 will reveal the source of the error. The
AMS is aware of the problem.


--Mike Bridgland
  Supercomputing Research Center
  mfb@super.org
The latest versions of TeX and MF for VMS are now available from
ymir.claremont.edu. 

A few bug fixes and minor enhancements have been made to the TeX
change file bringing it to 3.0/3.2 (the latter number is the
change file version). The upgrade of this change file is not
necessary if you have 3.0/3.1a, but is worthwhile. Files are in
[anonymous.tex.sources.tex3_0].

MF 2.0/2.1a is now officially available for VMS. There is an
increase in the speed of the system through some assembly
routines contributed by John Lavagnino and all on-line displays
are accessed through VMS sharable libraries. At present only one
library, the GraphOn-140 1.0a library is available, although
others are under development (contact Don Hosek,
dhosek@ymir.claremont.edu if you intend to create a library to
find out if anyone else is working on one and for advice in
creating the library). Files are in [anonymous.tex.sources.mf2_0].

The files 00readme.txt in each directory indicate what the files
are. Below are vms_tex_notes.txt and vms_mf_notes.txt from those
directories. Help files are under development and will be
announced shortly.

Those without FTP access can obtain the files from
mailserv@ymir.claremont.edu. Directory specifications are
identical, but without the :anonymous" at the beginning. The
command to retrieve a file is "send", e.g.,

send [sources.tex3_0]00readme.txt

Binary files are not currently available via mailserv. Nothing
can be done about this deficiency at this time. These versions of
TeX and MF will be available on tape from DECUS and Stanford by
mid-September (I think).

                *******

Some notes on the version of TeX for VMS located in this
directory: 
 - The version number on the change file is currently 3.2
 - Note that a larger version of TANGLE is necessary to Tangle
   this code. I used max_names=5000 and max_toks=52000 to get it
   compiled.
 - The Pascal code generated by TANGLEing TEX.WEB will not
   compile properly with Pascal versions prior to 4.0.
 - TeX is now called through the CLI. You should install the file
   TEX.CLD in the system DCL tables. The following options are
   provided:
     /BATCH        Run TeX in batch mode sending no output to the
                   terminal and ending with a fatal error if input 
                   is necessary. The default is /NOBATCH.
     /CONTINUE     Indicate that TeX is to continue execution after
                   the editor is invoked with an 'E' response at an
                   error prompt. The default is /NOCONTINUE
     /DIAGNOSTICS  Indicate that an LSE Diagnostics file be
                   written. A file name can be specified using
                   /DIAGNOSTICS=fn. The default is /NODIAGNOSTICS.
     /DVI_FILE=    Indicate the name of the DVI file to write.
                   The default is to use the name of the TeX job
                   for the DVI file name. This qualifier is
                   negatable.
     /EDITOR=      Indicate the name of the editor to be used
                   at the 'E' response. The options are:
                   + Callable_EDT
                   + Callable_LSE
                   + Callable_TECO
                   + Callable_TPU
                   + The name of a command to be run in a
                     subprocess which will take three arguments:
                     'p1 is the name of the file to edit, 'p2 is
                     the line number with the error and 'p3 is
                     the column number of the error.
                   If the value given with /EDITOR ends in a
                   colon, TeX will assume that it's a logical
                   name and attempt to translate it. The default
                   is /EDITOR=TEX_EDIT:. This qualifier is
                   negatable.
     /FORMAT=      Indicate the name of a format to pre-load when
                   running. The default varies depending on the
                   specific verb used. This qualifier is
                   negatable.
     /INIT         Run IniTeX rather than TeX. The default is
                   /NOINIT. INITEX should be set equivalent to
                   TEX/INIT/NOFORMAT.
     /JOBNAME_SYMBOL= Indicate the name of a DCL symbol to which
                   the TeX jobname is to be written. The default
                   is /JOBNAME_SYMBOL=TEX_JOBNAME. This qualifier 
                   is negatable. Negation causes the symbol to not
                   be written.
     /LOG_FILE=    Indicate the name of the LOG file to write.
                   The default is to use the name of the TeX job
                   for the LOG file name. This qualifier is
                   negatable.
     /TEXFONTS=    These qualifiers are not intended to be used
     /TEXFORMATS=  by the end-user; they specify the names of the
     /TEXINPUTS=   logicals to be used for the locations of TFMs,
                   format and pool files, and input files
                   respectively. They are provided to allow sites
                   to customize these values without recompiling
                   TeX.
 - INITEX is part of the main TeX module. Thus, there is only one
   change file and one executable. The price that we pay is
   trivial: three if statements operating on a boolean variable
   and an executable 25K larger. The three if statements are all
   out of the inner loop so other than a slightly increased 
   startup time, TeX will not be slower.
 - This is 64bit TeX. If memory is really a problem, you can
   reduce the main memory array and recompile. Personally, I
   think that it's inconvenient to try and run TeX at two memory
   sizes so I don't recommend it. 
 - In previous versions of VMS TeX with an editor interface, TeX
   continued after leaving the editor. This behavior is incorrect
   and has been changed.


Some notes on the version of MF for VMS located in this
directory: 
 - The version number on the change file is currently 2.1a
 - Note that a larger version of TANGLE is necessary to Tangle
   this code. I used max_names=5000 and max_toks=54000 to get it
   compiled.
 - MF is now called through the CLI. You should install the file
   MF.CLD in the system DCL tables. The following options are
   provided:
     /BASE=        Indicates the base file to be "preloaded" by
                   MF. The default varies depending on the
                   version of MF being used. The default CLD uses
                   /BASE=plain for MF and /NOBASE for INIMF.
     /BATCH        Run MF in batch mode sending no output to the
                   terminal and ending with a fatal error if input 
                   is necessary. The default is /NOBATCH.
     /CONTINUE     Indicates that MF should continue after
                   editing a file. The default is /NOCONTINUE
     /DIAGNOSTICS= Indicate that an LSE Diagnostics file be
                   written. A file name can be specified using
                   /DIAGNOSTICS=fn. The default is /NODIAGNOSTICS.
     /DISPLAY=     Indicates the name of the display for on-line
                   graphics. The default is /DISPLAY=MFTERM:
     /EDITOR=      Indicate the name of the editor to be used
                   at the 'E' response. The options are:
                   + Callable_EDT
                   + Callable_LSE
                   + Callable_TECO
                   + Callable_TPU
                   + The name of a command to be run in a
                     subprocess which will take three arguments:
                     'p1 is the name of the file to edit, 'p2 is
                     the line number with the error and 'p3 is
                     the column number of the error.
                   If the value given with /EDITOR ends in a
                   colon, TeX will assume that it's a logical
                   name and attempt to translate it. The default
                   is /EDITOR=TEX_EDIT:. This qualifier is
                   negatable.
     /GF_FILE      The GF file to which output should be written.
                   The default is to write to a file with file
                   name equivalent to the MF jobname and
                   extension given by the resolution *
                   magnification of the MF run. This qualifier is
                   not negatable.
     /GLIB_INDEX=  Indicates the name of the index file for
                   displays.
     /INIT         Run IniMF rather than MF. The default is
                   /NOINIT. The INIMF verb automatically selects
                   /NOBASE
     /JOBNAME_SYMBOL= Indicates the name of a symbol in which MF
                   should store the name of the GF file it
                   writes. The default is /JOBNAME_SYMBOL=MF_JOBNAME
                   This qualifier is negatable. If either it or 
                   /JOBSIZE_SYMBOL is negated, no symbols are written.
     /JOBSIZE_SYMBOL= Indicates the name of a symbol in which MF
                   should store the numeric portion of the GF
                   file which it writes. The default is
                   /JOBSIZE_SYMBOL=MF_JOBSIZE. If either it or
                   /JOBNAME_SYMBOL is negated, no symbols are written.
     /LOG_FILE=    Indicate the name of the LOG file to write.
                   The default is to use the name of the TeX job
                   for the LOG file name. This qualifier is
                   negatable.
     /MFBASES=     These qualifiers are not intended to be used
     /MFINPUTS=    by the end-user; they specify the names of the
                   logicals to be used for the locations of base 
                   input files respectively. They are provided to 
                   allow sites to customize these values without 
                   recompiling MF.
 - INIMF is part of the main MF module. Thus, there is only one
   change file and one executable. 
 - In previous versions of VMS MF with an editor interface, MF
   continued after leaving the editor. This feature is now
   controlled by the switch /CONTINUE.
 - On-line displays are now stored in separate sharable
   libraries. Each library intended to be used with MF must
   contain the following routines. (Note: C protocols are
   untested and may be wrong for libdrrow.)
      + LIBINITSC: Handles whatever initializations are necessary
        to use the display and prints a banner line on the
        display. This routine is always called, even if no
        graphics are used, so it may be wise to hold off
        initializations of the display itself until LIBSTARTS is
        called and only initialize static variables etc. This
        routine is passed the addresses of two integer variables
        whose values should be set to the horizontal and vertical
        sizes of the display.
           PROTOCOL:
            Pascal
              procedure LIBINITSC(var x_size, y_size : integer);
            C
              void LIBINITSC(x_size, y_size)
              int *x_size, *y_size;

      + LIBSTARTS: Called before the first write to the screen.
        should handle any screen initializations and leave the 
        graphics screen blank and ready-to-write. Upon
        completion, the terminal should be in text mode, if
        possible.
           PROTOCOL:
            Pascal
              procedure LIBSTARTS;
            C
              void LIBSTARTS()

      + LIBBLRECT: Erases a rectangle whose boundaries are given
        as arguments to the procedure in integer quantities. Upon
        completion, the terminal should be in text mode, if
        possible.
           PROTOCOL:
            Pascal
              procedure 
LIBBLRECT(left_col,right_col,top_row,bot_row:integer);
            C
              void LIBBLRECT(left_col, right_col, top_row, bot_row)
              int left_col, right_col, top_row, bot_row;

      + LIBDRWROW: Draws a row of alternatingly black and white
        pixels which alternate between black and white between
        columns a[i] on row r for n columns. With initial color b. 
        See the MF source or a sample library for details. Should
        leave the terminal in TEXT mode if at all possible.
           PROTOCOL:
            Pascal
              type trans_spec= array[0..65536] of integer;
              procedure LIBDRWROW(r: integer; b:0..1; a:trans_spec;
                 n: integer);
            C
              void LIBDRROW(r, b, a, n)
              int r, b, n;
              int a[65536];

      + LIBUPDTSC: Makes sure that everything on the display is
        up-to-date. This is particularly valuable for those
        displays which cannot easily erase portions of the
        screen. Should leave the terminal in TEXT mode if at all
        possible.
           PROTOCOL:
            Pascal
              procedure LIBUPDTSC;
            C
              void LIBUPDTSC()

      + LIBCLOSSC: Restores the terminal back to a normal state.
        It is not necessary to clear the graphics screen unless
        not doing so would interfere with use of the terminal's
        text mode.
           PROTOCOL:
            Pascal
              procedure LIBCLOSSC;
            C
              void LIBCLOSSC()

      + LIBLEVEL: A function which returns 0. This is meant for
        future expansion of the graphics library functionality.
           PROTOCOL:
            Pascal
              function LIBLEVEL: integer;
            C
              int LIBLEVEL()

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

%%% Further information about the TeXhax Digest, the TeX
%%% Users Group, and the latest software versions is available
%%% in every tenth issue of the TeXhax Digest.
%%%
%%% Concerning subscriptions, address changes, unsubscribing:
%%%
%%%  BITNET: send a one-line mail message to LISTSERV@xxx
%%%         SUBSCRIBE TEX-L <your name>    % to subscribe
%%%      or UNSUBSCRIBE TEX-L
%%%
%%% Internet: send a similar one line mail message to
%%%           TeXhax-request@cs.washington.edu
%%% JANET users may choose to use
%%%           texhax-request@uk.ac.nsf
%%% 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
%%%
