ftp.nice.ch/pub/next/text/tex/programs/MetafontOnlinePreviewer.README

This is the README for MetafontOnlinePreviewer.s.tar.gz [Download] [Browse] [Up]

I remain to be surprised that there has not been a Metafont
online display for the NeXT.  Is this because there is no interest?
Or perhaps this may be due to the difficulty of fitting a large
existing C program (with its own event loop) into the structure
of a NeXT application and its event loop.

Metafont poses a good example of porting a large C program to the
NeXT and providing a graphics head to it.  What we need is a way
to maintain the basic structure of Metafont and (hopefully) be able
to use the most recent Metafont release; this requires minimal tampering
with the basic event loop in the Metafont code.

The "usual" way of porting an application to NeXTStep
seems to be to create an NeXT frontend with IB or equivalent,
then invoke the underlying application through some interprocess
communication.  The approach used here is the opposite.  Tis port of
Metafont uses the utility program DrawingServant for doing the
port from the opposite direction.  The intended use of DrawingServant
is as a graphics head to an existing terminal-based program.  The
Metafont program may be invoked from the terminal line;
Metafont forks a process and establishes pipes to DrawingServant,
then send raw postscript though a pipe to the server.
The server has a small vocabulary of commands, but for the most
part just copies everything not in its vocabulary with a DPSPrintf
to the window manager.  The server has a simple NeXT interface
that allows for saving, printing and clearing the window.

Writing the Metafont previewer was extremely simple as soon as
DrawingServant was available. The code is very compact, but still
has moderate capability for printing and saving.

This code was tested with web and web2c versions 5.851c and NeXTStep 3.0
on black hardware.  The changes in the most recent distribution
of web2c should be unimportant.

I am assuming whoever is doing this has a moderate familiarity with
Metafont, building web and web2c.  The (more or less) complete
instructions for installation are:
	1.) Get DrawingServant from the ftp site
	2.) Get web and web2c.  Follow the instructions for installation
	    I was using the switches -Dalloca and -ansi.
	    In lib/site.h (or wherever the window def's are) add
	    #define NEXTWIN
	3.) Modify the file ../lib/texmf.c  There is a block of code that
	    refers to the previewers.  This needs an entry for next
	    The modified version is included in this distribution.
	4.) move next.c to ../mf/MFwindow  add next.o to the list of
	    OBJ's in makefile
	5.) setenv MFTERM next
	6.) create a new base file, run virmf from the terminal shell.
	    The sequence at the ** prompt:
		\relax
		drawdot(200,200);showit;
	    will give you a cute dot.  You can print it by clicking on
	    the DrawingServant window then selecting print.  Or save.
            The resulting dot is suitable for framing.
	    You must click on the terminal window to make it active
	    before typing.  Typing "end" will return to the terminal
	    shell and kill DrawingServant.
	7.) A more serious test is to type logo10 or cmr10 at the **
	    prompt.

Comments and suggestions are welcome.
	joe@ril3.tamri.com

29 June 1993:  This version is slightly different from the version
of yesterday.  The server program is killed in a cleaner way.

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.