Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!samsung!uunet!comp-sources-3b1 From: tkacik@kyzyl.mi.org (Tom Tkacik) Newsgroups: comp.sources.3b1 Subject: v01i033: epson filter and driver table for nroff, Part01/01 Message-ID: <1991Jun22.013900.3276@uunet.uu.net> Date: 22 Jun 91 01:39:00 GMT Sender: usenet@uunet.uu.net (UseNet News) Organization: UUNET Communications Services Lines: 1246 Approved: dave@galaxia.newport.ri.us Originator: dhb@uunet.UU.NET Nntp-Posting-Host: uunet.uu.net X-Checksum-Snefru: 5ac31047 35a103a8 e2891246 9eca4ef9 Submitted-by: tkacik@kyzyl.mi.org (Tom Tkacik) Posting-number: Volume 1, Issue 33 Archive-name: epx/part01 I've had requests for this. I last posted it before there were any archives. This is epx, my 5 year old epson filter for nroff. This is only for those of you who are still using the 2.0, 3.0, or 3.5 Utilities. Nroff changed with 3.51, and now includes most of what epx does (though I do not think all). This program will let you make the most of nroff, and eqn using your Epson printer. It does italic, bold, and underlining. It will print all of the greek and special characters, (assuming that your printer has downloadable characters). If all works right, you should see nroff format equations like you've never seen before. (Ok, it's not troff, and it's not a laser printer, but the price is right.) The driver table is a compiled table, and is included. The C code is also included so you can see what it looks like. See the README file for a note on getting the software to modify it. Tom Tkacik tkacik@kyzyl.mi.org #--------------------------------CUT HERE------------------------------------- #! /bin/sh # # This is a shell archive. Save this into a file, edit it # and delete all lines above this comment. Then give this # file to sh by executing the command "sh file". The files # will be extracted into the current directory owned by # you with default permissions. # # The files contained herein are: # # -rw-r--r-- 1 tkacik users 1608 Jun 18 18:51 README # -rw-r--r-- 1 tkacik users 418 Jun 18 18:58 Makefile # -rw-r--r-- 1 tkacik users 1615 Jun 18 18:54 epx.1 # -rw-r--r-- 1 tkacik users 9533 Jul 19 1988 epx.c # -rw-r--r-- 1 tkacik users 4004 Jul 19 1988 draft.c # -rw-r--r-- 1 tkacik users 8505 Jul 19 1988 nlq.c # -rw-r--r-- 1 tkacik users 7947 Feb 21 1987 tabepson.c # -rw-r--r-- 1 tkacik users 2415 Jun 18 18:57 tabepson.uu # -rw-r--r-- 1 tkacik users 2621 Feb 21 1987 special # echo 'x - README' if test -f README; then echo 'shar: not overwriting README'; else sed 's/^X//' << '________This_Is_The_END________' > README XI wrote this back in 1985, to allow me to use the full capabilities Xof nroff with my printer, (an epson compatible). X XThis is an nroff driver table for epson fx-80 compatible dot matrix Xprinters, and a filter program, called epx. Epx will use italic, bold, Xand underlined fonts, and will download all of the special characters Xavailable to nroff, including all of the greek characters. X XThis program and filter are only useful if you are still using the Xnroff that came with versions 2.0, 3.0 or 3.5 of the Utilities. XThe new version of nroff has most of what you get using this filter. X(I have not upgraded nroff because I think that it would be a step Xbackward. I do not think the new nroff has all of the these features, Xnamely downloadable greek and special characters.) X XI have a Canon printer, that claims to be Epson compatible, but you Xnever know. There may be a bug lurcking in here somewhere. XThe special characters may not be an exact match on your printer. X XThe driver table is provided in both as C code, and as a compiled versions. XIt was made using the nroff driver table generator by Bruce Townsend. XYou can grab the nroff driver table package from the cis-osu archives. XLook for the file pub/comp.sources.unix/Volume13/nroff-driver.Z. X XThe compiled version of the driver table is provided, uuencoded, so Xyou do not have to build it if you do not wish to. You should not Xneed that package to install and use this program. X XAs always, any bug reports or praise should be directed to me. X(But note that it has been a long time since I worked on this code.) X XTom Tkacik Xtkacik@kyzyl.mi.org ________This_Is_The_END________ if test `wc -c < README` -ne 1608; then echo 'shar: README was damaged during transit (should have been 1608 bytes)' fi fi ; : end of overwriting check echo 'x - Makefile' if test -f Makefile; then echo 'shar: not overwriting Makefile'; else sed 's/^X//' << '________This_Is_The_END________' > Makefile XCFLAGS = -O XLDFLAGS = -s XCC = cc X Xall: epx tabepson X Xepx: epx.o nlq.o draft.o X $(CC) $(LDFLAGS) epx.o nlq.o draft.o -o epx X Xtabepson: tabepson.uu X uudecode tabepson.uu X Xinstall: epx tabepson X cp tabepson /usr/lib/term X cp epx /usr/local/bin/epx X cp epx.1 /usr/man/man1 X X# this is the way epx should typically be used Xtest: X neqn special | nroff -Tepson | col -fx | epx | lp -dEpson_R X Xlint: X lint epx.c nlq.c draft.c X ________This_Is_The_END________ if test `wc -c < Makefile` -ne 418; then echo 'shar: Makefile was damaged during transit (should have been 418 bytes)' fi fi ; : end of overwriting check echo 'x - epx.1' if test -f epx.1; then echo 'shar: not overwriting epx.1'; else sed 's/^X//' << '________This_Is_The_END________' > epx.1 X.TH EPX l X.SH NAME Xepx \- nroff postprocessor for epson printers X.SH SYNOPSIS X\fBepx\fP [ -\fBi\fP ] [ -\fBn\fP ] X.SH DESCRIPTION X.I Epx Xis a postprocessor for X.IR nroff (1) Xwhich generates printer codes for Epson compatible printers. XUsage is almost always: X.sp X.in +0.5i Xnroff -Tepson files | col -fx | epx | lp -dEpson_R X.sp X.in Xor equivalent. X.I Epx Xreads from X.IR stdin Xand writes to X.IR stdout . XIt supports the built-in bold and italic fonts, half-line spacings Xfor super, and subscripts, and all of the greek and special characters. X.sp XIt has been written to be compatible with X.IR col (1) Xusing the X.RB - x , Xand X.RB - f Xoptions. XOutput must be sent to the print spooler in raw mode, Xusing X.B lp -dEpson_R. X.I Epx Xrequires that the nroff driver table X.RB /usr/lib/term/ tabepson Xexist and be used with X.I nroff. X.sp XNormally X.I epx Xunderlines words that would be italicized in X.IR troff (1). XThe X.RB - i Xoption causes the printer to use true X.IR italics , X(if possible). XIf the printer is not capable of printing in X.I italics Xthe text will \fBnot\fP be underlined. XThe X.RB - n Xoption puts the printer in Near Letter Quality mode. XNo X.I italics Xare possible in NLQ mode, so when the X.RB - n Xoption is used, italics are turned off, and any italic characters will Xbe underlined. X.SH SEE ALSO Xnroff(1), col(1), lp(1), term(7). X.SH AUTHOR XThomas E. Tkacik X.br Xtkacik@kyzyl.mi.org X.SH BUGS XThe greek and special character sets were designed using a Canon printer. XThese characters may or may not look right, depending on the actual Xprinter used. XPerhaps, italics and NLQ mode should not be mutually exclusive. ________This_Is_The_END________ if test `wc -c < epx.1` -ne 1615; then echo 'shar: epx.1 was damaged during transit (should have been 1615 bytes)' fi fi ; : end of overwriting check echo 'x - epx.c' if test -f epx.c; then echo 'shar: not overwriting epx.c'; else sed 's/^X//' << '________This_Is_The_END________' > epx.c X/* epx - take the output of 'nroff -Tepson | col -xf' */ X/* and generate output for an epson printer */ X/* */ X/* Author: Thomas E. Tkacik uvaee!tet */ X/* */ X/* To be modified or given away freely */ X/* */ X#include X#define NORMAL 0 X#define BOLD 1 X#define UNDER 2 /* underscore - italic */ X#define ITALIC 4 X#define SPEC 8 /* special characters - greek */ X#define NUMSPEC 60 /* number of defined special characters */ X#define FIRST '@' /* first special character is defined as FIRST */ X#define NO 0 X#define YES 1 X Xint cur; /* current character */ Xint ctype; Xint italics = NO; /* use italics instead of underline */ Xint nlqmode = NO; /* print in Near Letter Quality mode */ Xint copy=0; /* no special characters yet */ Xint cmark[NUMSPEC]; Xextern char special[NUMSPEC][12]; /* character definitions */ Xextern char nlq[NUMSPEC][48]; /* nlq character definitions */ X Xmain(argc,argv) Xint argc; Xchar *argv[]; X{ X int c; X int i,x; X void putch(),putstr(),inspec(),outspec(),donormal(); X void tobold(),frbold(),tounder(),frunder(),toitalic(),fritalic(); X void tonlq(),frnlq(),halfline(),backhalf(),backfull(); X X /* cannot use both NLQ and italics at the same time */ X nlqmode = NO; X italics = NO; X X for(x=0;x=0) && (j draft.c X/* draft mode special character definitions for epx */ X/* */ X/* Author: Thomas E. Tkacik uvaee!tet */ X/* */ X/* To be modified or given away freely */ X/* */ X#define NUMSPEC 60 /* number of defined special characters */ X X/* first byte - attribute data */ X/* last bytes - character data */ Xchar special[NUMSPEC][12] = { X {139,32,28,2,0,4,0,8,0,48,0,0}, /* nu */ X {139,28,0,34,0,34,24,4,8,50,0,0}, /* alpha */ X {139,1,126,0,148,2,144,2,108,0,0,0}, /* beta */ X {139,28,32,2,0,12,0,2,32,28,0,0}, /* omega */ X {139,12,66,16,162,0,146,0,76,0,0,0}, /* delta */ X {139,6,24,96,128,0,128,96,24,6,0,0}, /* LAMBDA */ X {139,16,0,40,130,124,130,40,0,16,0,0}, /* PHI */ X {139,254,0,128,0,128,0,128,0,192,0,0}, /* GAMMA */ X {139,64,48,8,2,252,2,8,48,64,0,0}, /* PSI */ X {139,16,0,32,0,34,28,32,0,32,0,0}, /* tau */ X {139,32,0,62,0,32,0,62,0,32,0,0}, /* pi */ X {11,1,30,32,0,72,0,72,0,48,0,0}, /* rho */ X {139,130,0,68,40,16,8,4,0,2,0,0}, /* lambda */ X {139,1,62,0,2,0,2,0,60,2,0,0}, /* mu */ X {139,32,30,0,32,0,32,0,30,1,0,0}, /* eta */ X {139,56,68,0,146,0,146,0,68,56,0,0}, /* THETA */ X {139,128,126,128,0,128,0,128,126,128,0,0}, /* PI */ X {139,0,24,165,0,69,0,130,0,0,0,0}, /* zeta */ X {139,130,68,170,0,146,0,130,0,130,0,0}, /* SIGMA */ X {139,28,0,42,0,42,0,34,0,0,0,0}, /* epsilon - member */ X {139,0,56,68,146,0,146,68,56,0,0,0}, /* theta */ X {139,8,0,20,1,62,64,20,0,8,0,0}, /* phi */ X {11,64,56,4,0,255,0,4,24,96,0,0}, /* psi */ X {139,6,24,34,64,130,64,34,24,6,0,0}, /* DELTA */ X {139,0,8,181,64,21,64,2,64,0,0,0}, /* xi */ X {139,28,0,34,0,34,0,60,0,32,0,0}, /* sigma */ X {139,50,72,6,128,0,128,6,72,50,0,0}, /* OMEGA */ X {139,32,16,40,4,34,4,40,16,32,0,0}, /* del - gradient */ X {11,128,0,65,2,52,8,16,32,64,0,0}, /* gamma */ X {139,14,81,0,81,8,33,30,0,0,0,0}, /* partial */ X {139,1,0,1,126,128,0,128,0,0,0,0}, /* infinity */ X {139,8,0,8,0,8,0,12,0,0,0,0}, /* not */ X {139,130,0,146,0,146,0,146,0,130,0,0}, /* XI */ X {139,8,0,14,1,2,4,8,16,32,64,128}, /* square root */ X {139,128,0,128,0,128,0,128,0,128,0,128}, /* root en */ X {139,62,65,8,85,0,85,0,65,62,0,0}, /* copy right */ X {139,28,0,34,0,28,0,34,0,28,0,0}, /* infinity */ X {139,28,0,62,0,62,0,62,0,28,0,0}, /* bullet */ X {139,0,0,64,160,0,160,64,0,0,0,0}, /* degree */ X {139,16,0,32,0,127,0,32,0,16,0,0}, /* up arrow */ X {139,4,0,2,0,127,0,2,0,4,0,0}, /* down arrow */ X {139,0,0,0,0,63,64,128,0,128,0,0}, /* left top */ X {139,0,0,0,0,252,2,1,0,1,0,0}, /* left bottom */ X {139,128,0,128,64,63,0,0,0,0,0,0}, /* right top */ X {139,1,0,1,2,252,0,0,0,0,0,0}, /* right bottom */ X {139,0,8,0,20,227,0,0,0,0,0,0}, /* left center */ X {139,0,0,0,0,227,20,0,8,0,0,0}, /* right center */ X {139,0,0,0,0,255,0,0,0,0,0,0}, /* bold verticle */ X {139,0,0,0,0,255,0,1,0,1,0,0}, /* left floor */ X {139,1,0,1,0,255,0,0,0,0,0,0}, /* right floor */ X {139,0,0,0,0,255,0,128,0,128,0,0}, /* left ceiling */ X {139,128,0,128,0,255,0,0,0,0,0,0}, /* right ceiling */ X {139,62,0,34,0,34,0,34,0,62,0,0}, /* square */ X {139,62,65,0,93,0,81,0,65,62,0,0}, /* registered */ X {139,12,18,0,18,0,12,0,18,0,18,0}, /* proportional to */ X {139,0,0,9,52,65,22,72,0,0,0,0}, /* section */ X {139,126,0,128,0,128,0,128,0,126,0,0}, /* intersection */ X {139,34,0,34,0,34,0,34,0,34,0,28}, /* superset of */ X {139,28,0,34,0,34,0,34,0,34,0,34}, /* subset of */ X {139,56,0,68,0,68,0,68,0,56,0,0} /* circle */ X}; ________This_Is_The_END________ if test `wc -c < draft.c` -ne 4004; then echo 'shar: draft.c was damaged during transit (should have been 4004 bytes)' fi fi ; : end of overwriting check echo 'x - nlq.c' if test -f nlq.c; then echo 'shar: not overwriting nlq.c'; else sed 's/^X//' << '________This_Is_The_END________' > nlq.c X/* nlq node special character definitions for epx */ X/* */ X/* Author: Thomas E. Tkacik uvaee!tet */ X/* */ X/* To be modified or given away freely */ X/* */ X#define NUMSPEC 60 /* number of defined special characters */ X X/* first two bytes - attribute data */ X/* last 46 bytes - character data */ Xchar nlq[NUMSPEC][48] = { X {128,23,0,0,0,0,0,0,0,0,0,0,0,0,4,28,0,224,7,4,0,8,0,0,0,8,0,16,0,0, X 0,16,0,32,0,64,7,128,0,0,0,0,0,0,0,0,0,0}, /* nu */ X {128,23,0,0,0,0,0,224,1,16,0,8,2,0,0,8,4,4,0,0,4,4,0,0,4,4,0,8,2,0, X 1,136,0,80,0,32,1,208,2,8,4,4,0,0,0,4,0,0}, /* alpha */ X {128,23,0,0,0,0,0,0,0,7,0,56,1,192,14,0,16,0,33,8,0,0,33,4,0,0,33,4,0,0, X 33,4,0,128,18,8,12,128,0,112,0,0,0,0,0,0,0,0}, /* beta */ X {128,23,0,0,0,0,0,224,1,16,2,8,0,4,4,0,0,4,0,8,0,16,0,224,0,16,0,8,0,4, X 4,0,0,4,2,8,1,16,0,224,0,0,0,0,0,0,0,0}, /* omega */ X {128,23,0,0,0,0,0,0,0,0,0,96,0,144,1,8,0,0,26,8,4,4,34,0,4,4,32,0,4,4, X 34,8,0,0,18,8,1,16,0,224,0,0,0,0,0,0,0,0}, /* delta */ X {128,23,0,0,0,0,0,4,0,0,0,12,0,48,0,68,1,128,2,0,12,0,16,0,32,0,16,0, X 12,0,2,0,1,128,0,68,0,48,0,12,0,0,0,4,0,0,0,0},/* LAMBDA */ X {128,23,0,0,0,0,1,128,2,64,4,32,0,0,4,32,8,16,32,4,8,16,32,4,31,248, X 32,4,8,16,32,4,8,16,4,32,0,0,4,32,2,64,1,128,0,0,0,0}, /* PHI */ X {128,23,0,0,0,0,0,0,32,4,0,0,32,4,31,248,32,4,0,0,32,4,0,0,32,0,0,0, X 32,0,0,0,32,0,0,0,32,0,0,0,56,0,0,0,0,0,0,0}, /* GAMMA */ X {128,23,0,0,0,0,16,0,0,0,16,0,8,0,7,192,0,32,32,20,0,0,32,20,31,232, X 32,20,0,0,32,20,0,32,7,192,8,0,16,0,0,0,16,0,0,0,0,0},/* PSI */ X {128,23,0,0,0,0,0,0,0,0,0,0,2,0,4,0,0,0,4,0,0,12,4,112,3,128,4,0,0,0, X 4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0}, /* tau */ X {128,23,0,0,0,0,0,0,0,0,2,0,4,0,0,12,4,112,3,128,4,0,0,0,4,0,0,0,4,0, X 0,0,4,12,0,112,7,128,0,0,4,0,0,0,0,0,0,0}, /* pi */ X {128,23,0,0,0,0,0,0,0,0,0,7,0,24,0,96,0,128,1,8,0,0,2,4,0,0,2,4,0,0, X 2,4,0,0,1,8,0,144,0,96,0,0,0,0,0,0,0,0}, /* rho */ X {128,23,0,0,0,0,0,0,0,0,0,0,32,4,0,0,32,8,16,16,8,32,4,64,2,128,1,0, X 0,128,0,64,0,32,0,16,0,8,0,4,0,0,0,4,0,0,0,0}, /* lambda */ X {128,23,0,0,0,0,0,0,0,0,0,1,7,254,0,0,0,8,0,0,0,4,0,0,0,4,0,0,0,4,0,0, X 0,8,0,0,7,248,0,4,0,0,0,0,0,0,0,0}, /* mu */ X {128,23,0,0,0,0,0,0,4,0,0,0,4,0,3,252,0,0,1,0,0,0,2,0,0,0,4,0,0,0,4,0, X 0,0,4,0,2,0,1,252,0,3,0,0,0,0,0,0}, /* eta */ X {128,23,0,0,0,0,1,128,6,96,8,16,0,0,17,8,0,0,33,4,0,0,33,4,0,0,33,4,0,0, X 33,4,0,0,17,8,0,0,8,16,6,96,1,128,0,0,0,0}, /* THETA */ X {128,23,0,0,0,0,32,4,0,0,32,4,31,248,32,4,0,0,32,4,0,0,32,0,0,0,32,0, X 0,0,32,4,0,0,32,4,31,248,32,4,0,0,32,4,0,0,0,0},/* PI */ X {128,23,0,0,0,0,0,0,0,0,0,0,0,0,0,224,1,16,34,8,20,0,0,5,24,0,0,5,16,0, X 0,5,32,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, /* zeta */ X {128,23,0,0,0,0,32,4,0,0,48,12,0,0,40,20,0,0,36,36,0,0,34,68,0,0,33,132, X 0,0,32,4,0,0,32,4,0,0,32,4,16,8,8,16,0,0,0,0}, /* SIGMA */ X {128,23,0,0,0,0,0,0,0,0,0,224,1,16,2,72,0,0,2,72,4,4,0,64,4,4,0,64,4,4, X 0,64,4,4,0,0,2,8,0,0,0,0,0,0,0,0,0,0}, /* epsilon */ X {128,23,0,0,0,0,0,0,0,0,1,128,6,96,9,16,0,0,17,8,0,0,33,4,0,0,33,4,0,0, X 17,8,0,0,9,16,6,96,1,128,0,0,0,0,0,0,0,0}, /* theta */ X {128,23,0,0,0,0,0,0,0,96,0,144,1,8,0,0,1,8,2,4,0,3,2,28,0,224,3,4,12,0, X 2,4,1,8,0,0,1,8,0,144,0,96,0,0,0,0,0,0}, /* phi */ X {128,23,0,0,0,0,0,0,2,0,1,240,0,8,0,4,0,3,0,28,0,224,3,4,12,0,0,4,0,8, X 0,48,0,192,1,0,0,0,2,0,0,0,0,0,0,0,0,0}, /* psi */ X {128,23,0,0,0,0,0,0,0,4,0,8,0,52,0,64,1,132,2,0,12,4,16,0,32,4,16,0, X 12,4,2,0,1,132,0,64,0,48,0,8,0,4,0,0,0,0,0,0}, /* DELTA */ X {128,23,0,0,0,0,0,0,0,0,0,0,0,48,0,72,6,0,9,133,32,0,16,133,0,0,16,133, X 0,2,16,128,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0}, /* xi */ X {128,23,0,0,0,0,0,0,0,224,1,16,2,8,0,0,2,8,4,4,0,0,4,4,0,0,4,4,0,0,4,4, X 2,8,4,0,2,8,5,16,0,224,4,0,0,0,0,0}, /* sigma */ X {128,23,0,0,0,0,0,0,7,8,8,132,0,64,16,36,0,16,32,12,0,0,32,0,0,0,32,0, X 0,0,32,12,0,16,16,36,0,64,8,132,7,8,0,0,0,0,0,0},/* OMEGA */ X {128,23,0,0,0,0,0,0,4,0,2,0,5,0,0,128,4,64,0,32,4,16,0,8,4,4,0,8, X 4,16,0,32,4,64,0,128,5,0,2,0,4,0,0,0,0,0,0,0}, /* del - gradient */ X {128,23,0,0,0,0,0,0,0,0,0,0,4,0,0,0,4,0,2,1,1,2,0,132,0,104,0,16,0,32, X 0,64,0,128,1,0,6,0,0,0,0,0,0,0,0,0,0,0}, /* gamma */ X {128,23,0,0,0,0,0,0,0,0,0,240,1,8,0,0,1,8,18,4,0,0,34,4,0,0,34,4, X 17,8,0,0,16,136,8,16,7,224,0,0,0,0,0,0,0,0,0,0},/* partial */ X {128,23,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,4,0,2,0,1,56,0,71,1,128,226,0,28, X 128,0,64,0,32,0,64,0,0,0,0,0,0,0,0,0,0,0}, /* integral */ X {128,23,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0, X 1,0,0,0,1,0,0,0,1,224,0,0,0,0,0,0,0,0}, /* not */ X {128,23,0,0,0,0,0,4,0,8,8,16,16,136,33,0,18,8,1,0,16,8,1,0,16,8,1,0, X 16,8,1,0,16,136,1,4,18,8,8,16,16,0,32,0,0,0,0,0},/* XI */ X {128,23,1,0,0,0,1,0,0,0,1,128,0,112,0,14,0,1,0,2,0,4,0,8,0,16,0,32,0,64, X 0,128,1,0,2,0,4,0,8,0,16,0,32,0,64,0,128,0}, /* square root */ X {128,23,128,0,0,0,128,0,0,0,128,0,0,0,128,0,0,0,128,0,0,0,128,0,0,0, X 128,0,0,0,128,0,0,0,128,0,0,0,128,0,0,0,128,0,0,0,128,0},/* root en */ X {128,23,0,0,0,0,0,0,1,192,2,32,4,16,0,0,4,144,9,72,2,32,8,8,2,32,8,8, X 2,32,8,8,4,16,0,0,4,16,2,32,1,192,0,0,0,0,0,0},/* copyright */ X {128,23,0,0,0,0,1,128,2,64,0,0,4,32,0,0,4,32,0,0,2,64,0,0,1,128,0,0, X 2,64,0,0,4,32,0,0,4,32,0,0,2,64,1,128,0,0,0,0},/* infinity */ X {128,23,0,0,0,0,0,0,1,192,2,32,5,208,2,32,5,208,10,40,5,208,10,40,5,208, X 10,40,5,208,10,40,5,208,2,32,5,208,2,32,1,192,0,0,0,0,0,0},/* bullet*/ X {128,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,0,136,0,0,0,136,0,0,0, X 136,0,0,0,136,0,112,0,0,0,0,0,0,0,0,0,0,0,0,0},/* degree */ X {128,23,0,0,0,0,0,0,0,0,0,0,4,0,0,0,8,0,0,0,16,0,0,0,63,252,0,0, X 16,0,0,0,8,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0}, /* up arrow */ X {128,23,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,16,0,0,0,8,0,0,63,252,0,0, X 0,8,0,0,0,16,0,0,0,32,0,0,0,0,0,0,0,0,0,0}, /* down arrow */ X {128,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,255,32,0,64,0, X 0,0,128,0,0,0,128,0,0,0,128,0,0,0,0,0,0,0}, /* left top */ X {128,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,248,0,4,0,2, X 0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0}, /* left bottom */ X {128,23,0,0,0,0,0,0,128,0,0,0,128,0,0,0,128,0,0,0,64,0,32,0,31,255,0,0, X 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, /* right top */ X {128,23,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,4,255,248,0,0, X 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, /* right bottom */ X {128,23,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,128,4,64,248,63,0,0, X 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, /* left center */ X {128,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,63,4,64, X 2,128,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0}, /* right center */ X {128,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, X 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, /* bold verticle */ X {128,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, X 0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0}, /* left floor */ X {128,23,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,255,255,0,0, X 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, /* right floor */ X {128,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,128,0, X 0,0,128,0,0,0,128,0,0,0,128,0,0,0,0,0,0,0}, /* left ceiling */ X {128,23,0,0,0,0,0,0,128,0,0,0,128,0,0,0,128,0,0,0,128,0,0,0,255,255, X 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, /* right ceiling */ X {128,23,0,0,0,0,0,0,7,252,0,0,4,4,0,0,4,4,0,0,4,4,0,0,4,4,0,0, X 4,4,0,0,4,4,0,0,4,4,0,0,7,252,0,0,0,0,0,0}, /* square */ X {128,23,0,0,0,0,0,0,1,192,2,32,4,16,0,0,4,16,10,8,1,224,8,8,2,0,8,8, X 2,0,9,8,4,16,0,0,4,16,2,32,1,192,0,0,0,0,0,0}, /* registered */ X {128,23,0,0,0,0,1,128,2,64,0,0,4,32,0,0,4,32,0,0,2,64,0,0,1,128,0,0, X 2,64,0,0,4,32,0,0,4,32,0,0,4,32,0,0,0,0,0,0}, /* proportional to */ X {128,23,0,0,0,0,0,0,0,0,0,0,35,4,84,2,0,128,136,1,0,64,132,1,0,32,130,1, X 0,16,129,1,0,8,64,130,32,20,0,96,0,0,0,0,0,0,0,0},/* section */ X {128,23,0,0,0,0,0,0,0,0,0,0,15,252,16,0,0,0,32,0,0,0,32,0,0,0,32,0,0,0, X 32,0,0,0,16,0,15,252,0,0,0,0,0,0,0,0,0,0}, /* intersection */ X {128,23,0,0,0,0,2,4,0,0,2,4,0,0,2,4,0,0,2,4,0,0,2,4,0,0,2,4, X 0,0,2,4,0,0,2,4,0,0,2,4,1,8,0,0,1,8,0,240}, /* superset of */ X {128,23,0,240,1,8,0,0,1,8,2,4,0,0,2,4,0,0,2,4,0,0,2,4,0,0,2,4, X 0,0,2,4,0,0,2,4,0,0,2,4,0,0,2,4,0,0,0,0}, /* subset of */ X {128,23,0,0,0,0,0,0,1,192,2,32,4,16,0,0,4,16,8,8,0,0,8,8,0,0,8,8, X 0,0,8,8,4,16,0,0,4,16,2,32,1,192,0,0,0,0,0,0}, /* circle */ X}; ________This_Is_The_END________ if test `wc -c < nlq.c` -ne 8505; then echo 'shar: nlq.c was damaged during transit (should have been 8505 bytes)' fi fi ; : end of overwriting check echo 'x - tabepson.c' if test -f tabepson.c; then echo 'shar: not overwriting tabepson.c'; else sed 's/^X//' << '________This_Is_The_END________' > tabepson.c X#ifndef INCH X#define INCH 240 X#endif X Xstruct t { X int bset; X int breset; X int Hor; X int Vert; X int Newline; X int Char; X int Em; X int Halfline; X int Adj; X char *twinit; X char *twrest; X char *twnl; X char *hlr; X char *hlf; X char *flr; X char *bdon; X char *bdoff; X char *iton; X char *itoff; X char *ploton; X char *plotoff; X char *up; X char *down; X char *right; X char *left; X char *codetab[256-32]; X char *zzz; X } t = { X/*bset */ 00, X/*breset */ 00, X/*Hor */ INCH/10, X/*Vert */ INCH/12, X/*Newline */ INCH/6, X/*Char */ INCH/10, X/*Em */ INCH/10, X/*Halfline*/ INCH/12, X/*Adj */ INCH/10, X/*twinit */ "", X/*twrest */ "", X/*twnl */ "\n", X/*hlr */ "\0338", X/*hlf */ "\0339", X/*flr */ "\0337", X/*bdon */ "", X/*bdoff */ "", X/*iton */ "", X/*itoff */ "", X/*ploton */ "", X/*plotoff */ "", X/*up */ "", X/*down */ "", X/*right */ "", X/*left */ "", X/* space */ "\001 ", X/* ! */ "\001!", X/* " */ "\001\"", X/* # */ "\001#", X/* $ */ "\001$", X/* % */ "\001%", X/* & */ "\001&", X/* ' close */ "\001'", X/* ( */ "\001(", X/* ) */ "\001)", X/* * */ "\001*", X/* + */ "\001+", X/* , */ "\001,", X/* - hyphen */ "\001-", X/* . */ "\001.", X/* / */ "\001/", X/* 0 */ "\2010", X/* 1 */ "\2011", X/* 2 */ "\2012", X/* 3 */ "\2013", X/* 4 */ "\2014", X/* 5 */ "\2015", X/* 6 */ "\2016", X/* 7 */ "\2017", X/* 8 */ "\2018", X/* 9 */ "\2019", X/* : */ "\001:", X/* ; */ "\001;", X/* < */ "\001<", X/* = */ "\001=", X/* > */ "\001>", X/* ? */ "\001?", X/* @ */ "\001@", X/* A */ "\201A", X/* B */ "\201B", X/* C */ "\201C", X/* D */ "\201D", X/* E */ "\201E", X/* F */ "\201F", X/* G */ "\201G", X/* H */ "\201H", X/* I */ "\201I", X/* J */ "\201J", X/* K */ "\201K", X/* L */ "\201L", X/* M */ "\201M", X/* N */ "\201N", X/* O */ "\201O", X/* P */ "\201P", X/* Q */ "\201Q", X/* R */ "\201R", X/* S */ "\201S", X/* T */ "\201T", X/* U */ "\201U", X/* V */ "\201V", X/* W */ "\201W", X/* X */ "\201X", X/* Y */ "\201Y", X/* Z */ "\201Z", X/* [ */ "\001[", X/* \ */ "\001\\", X/* ] */ "\001]", X/* ^ */ "\001^", X/* _ dash */ "\001_", X/* ` open */ "\001`", X/* a */ "\201a", X/* b */ "\201b", X/* c */ "\201c", X/* d */ "\201d", X/* e */ "\201e", X/* f */ "\201f", X/* g */ "\201g", X/* h */ "\201h", X/* i */ "\201i", X/* j */ "\201j", X/* k */ "\201k", X/* l */ "\201l", X/* m */ "\201m", X/* n */ "\201n", X/* o */ "\201o", X/* p */ "\201p", X/* q */ "\201q", X/* r */ "\201r", X/* s */ "\201s", X/* t */ "\201t", X/* u */ "\201u", X/* v */ "\201v", X/* w */ "\201w", X/* x */ "\201x", X/* y */ "\201y", X/* z */ "\201z", X/* { */ "\001{", X/* | */ "\001|", X/* } */ "\001}", X/* ~ */ "\001~", X/* narrow sp */ "\000\0", X/* hyphen */ "\001-", X/* bullet */ "\001\016e\017", X/* square */ "\001\016t\017", X/* 3/4 em */ "\001-", X/* rule */ "\001_", X/* 1/4 */ "\0031/4", X/* 1/2 */ "\0031/2", X/* 3/4 */ "\0033/4", X/* minus */ "\001-", X/* fi */ "\202fi", X/* fl */ "\202fl", X/* ff */ "\202ff", X/* ffi */ "\203ffi", X/* ffl */ "\203ffl", X/* degree */ "\001\016f\017", X/* dagger */ "\001|\b-", X/* section */ "\001\016w\017", X/* foot mark */ "\001'", X/* acute accent */ "\001'", X/* grave accent */ "\001`", X/* underrule */ "\001_", X/* slash (longer) */ "\001/", X/* half narrow space */ "\000\0", X/* unpaddable space */ "\001 ", X/* alpha */ "\201\016A\017", X/* beta */ "\201\016B\017", X/* gamma */ "\201\016\\\017", X/* delta */ "\201\016D\017", X/* epsilon */ "\201\016S\017", X/* zeta */ "\201\016Q\017", X/* eta */ "\201\016N\017", X/* theta */ "\201\016T\017", X/* iota */ "\201i", X/* kappa */ "\201k", X/* lambda */ "\201\016L\017", X/* mu */ "\201\016M\017", X/* nu */ "\201\016@\017", X/* xi */ "\201\016X\017", X/* omicron */ "\201o", X/* pi */ "\201\016J\017", X/* rho */ "\201\016K\017", X/* sigma */ "\201\016Y\017", X/* tau */ "\201\016I\017", X/* upsilon */ "\201v", X/* phi */ "\201\016U\017", X/* chi */ "\201x", X/* psi */ "\201\016V\017", X/* omega */ "\201\016C\017", X/* Gamma */ "\201\016G\017", X/* Delta */ "\201\016W\017", X/* Theta */ "\201\016O\017", X/* Lambda */ "\201\016E\017", X/* Xi */ "\201\016`\017", X/* Pi */ "\201\016P\017", X/* Sigma */ "\201\016R\017", X/* Tau */ "\201T", X/* Upsilon */ "\201Y", X/* Phi */ "\201\016F\017", X/* Psi */ "\201\016H\017", X/* Omega */ "\201\016Z\017", X/* square root */ "\001\016a\017", X/* terminal sigma */ "\201\016Y\017", X/* root en */ "\001\016b\017", X/* >= */ "\001>\b_", X/* <= */ "\001<\b_", X/* identically equal */ "\001=\b_", X/* equation minus */ "\001-", X/* approx = */ "\001=\b~", X/* approximates */ "\001~", X/* not equal */ "\001=\b/", X/* right arrow */ "\002->", X/* left arrow */ "\002<-", X/* up arrow */ "\001\016g\017", X/* down arrow */ "\001\016h\017", X/* eqn equals */ "\001=", X/* multiply */ "\001x", X/* divide */ "\001/", X/* plus-minus */ "\001+\b_", X/* cup-union */ "\001U", X/* cap-intersection */ "\001\016x\017", X/* subset of */ "\001\016z\017", X/* superset of */ "\001\016y\017", X/* improper subset */ "\001\016z\017\b_", X/* improper superset */ "\001\016y\017\b_", X/* infinity */ "\001\016d\017", X/* pt deriv */ "\001\016]\017", X/* gradient */ "\001\016[\017", X/* not */ "\001\016_\017", X/* integral */ "\001\016^\017", X/* proportional to */ "\001\016v\017", X/* empty set */ "\001\016{\017\b/", X/* member of */ "\001\016S\017", X/* equation plus */ "\001+", X/* registered */ "\001\016u\017", X/* copyright */ "\001\016c\017", X/* box rule */ "\001\016o\017", X/* cent sign */ "\001c\b/", X/* dbl dagger */ "\001|\b=", X/* right hand */ "\002=>", X/* left hand */ "\002<=", X/* math * */ "\001*", X/* bell system sign */ "\000\0", X/* or (was star) */ "\001|", X/* circle */ "\001\016{\017", X/* left top of big curly */ "\001\016i\017", X/* left bottom of big curly */ "\001\016j\017", X/* right top of big curly */ "\001\016k\017", X/* right bottom of big curly */ "\001\016l\017", X/* left center of big curly */ "\001\016m\017", X/* right center of big curly */ "\001\016n\017", X/* bold vertical rule */ "\001\016o\017", X/* left bottom of big bracket */ "\001\016p\017", X/* right bottom of big bracket */ "\001\016q\017", X/* left top of big bracket */ "\001\016r\017", X/* right top of big bracket */ "\001\016s\017", X}; ________This_Is_The_END________ if test `wc -c < tabepson.c` -ne 7947; then echo 'shar: tabepson.c was damaged during transit (should have been 7947 bytes)' fi fi ; : end of overwriting check echo 'x - tabepson.uu' if test -f tabepson.uu; then echo 'shar: not overwriting tabepson.uu'; else sed 's/^X//' << '________This_Is_The_END________' > tabepson.uu Xbegin 644 tabepson XM "V0 & !0 H & !@ 4 & $ XM ! ( % " $ ! 0 $ ! 0 XM $ ! 0 $ $Y "P X 1 % !< : ! XM, !T @ "E G4 C !^P "8 (C *0 "P O XM ,@ #4 X .P #X !! 1 $< !* 30 AT XM !0 4P %8 !9 7 %\ !B 90 &@ !K ;@ XM '$ !T =P 'H !] @ (, "& B0 (P "/ ! XMR )( "5 F )L '+ G@ *$ "D IP *H $V XM !,P *T "P LP +8 "Y O +\ #" !9 ,4 XM %G R ,L #. !?@ -$ #4 UP -H #= X XM 9 #C !F .8 #I [ I< #O " P M8 '[ XM\@ /< '[ !-@ /P $! !!@ ?L $+ !#P 1, $7 XM !' 2$ $F !*P 3 $P !,P 38 (C "U@ 3D XM $\ !00 48 %+ !4 54 %: !7P 60 %G !:@ XM 6\ %T !>0 7X &! !A@ >( &+ !D 9, &8 ! XMFP : &E !J@ :\ &T !N0 ;X '# !R < 'L !\0 ?8 '[ !_@ @, XM (& ""P @\ (3 "& AT (@ "(P B8 (K "+@ XM C, (X "/0 D0 )+ "4 E4 ): "7P F0 )I " XM< G4 )X "?0 KT *" "AP HP *0 "E M8 *7 XM "F@ I\ *D "J0 JX *S "N KT +" "QP LP XM +1 "U@ M8 +6 "U@ M8 +6 "U@ M8 +6 "U@ XM M8 +6 "U@ * !LX !LY !LW $A $B $C $D $E $F $H XM $I $L $N ($P ($Q ($R ($S ($T ($U ($V ($W ($X ($Y $Z $[ XM $\ $^ $_ % (%! (%" (%# (%$ (%% (%& (%' (%( (%) (%* (%+ XM (%, (%- (%. (%/ (%0 (%1 (%2 (%3 (%5 (%6 (%7 (%8 (%: %; %< XM %= %> (%A (%B (%C (%D (%E (%F (%G (%H (%J (%L (%M (%N (%P XM (%Q (%R (%S (%T (%U (%W (%Y (%Z %[ %] $.90\ 0YT#P #,2\T XM ,Q+S( S,O- ""9FD @F9L ()F9@"#9F9I (-F9FP 0YF#P !? @M $. XM=P\ 2< 6 5\ 2 @0Y!#P"!#D(/ ($.7 \ @0Y$#P"!#E,/ ($.40\ XM@0Y.#P"!#E0/ (%I (%K ($.3 \ @0Y-#P"!#D / ($.6 \ @6\ @0Y*#P"! XM#DL/ ($.20\ @78 @0Y5#P"!> "!#E8/ ($.0P\ @0Y'#P"!#E@\ 0YY XM#P !#GH/"%\ 0YY#PA? $.9 \ 0Y=#P !#EL/ $.7P\ 0Y>#P !#G8/ XM $.>P\(+P !#E,/ $K $.=0\ 0YC#P !8P@O %\"#T CT^ (\/0 ! XM*@ !? !#GL/ $.:0\ 0YJ#P !#FL/ $.; \ 0YM#P !#FX/ $.;P\ X7 0YP#P !#G$/ $.<@\ 0YS#P / X Xend ________This_Is_The_END________ if test `wc -c < tabepson.uu` -ne 2415; then echo 'shar: tabepson.uu was damaged during transit (should have been 2415 bytes)' fi fi ; : end of overwriting check echo 'x - special' if test -f special; then echo 'shar: not overwriting special'; else sed 's/^X//' << '________This_Is_The_END________' > special XThis is a test of the special character set. X.sp X.nf X.ta 2i 4i 6i XALPHA \(*A alpha \(*a BETA \(*B beta \(*b XGAMMA \(*G gamma \(*g DELTA \(*D delta \(*d XEPSILON \(*E epsilon \(*e ZETA \(*Z zeta \(*z XETA \(*Y eta \(*y THETA \(*H theta \(*h XIOTA \(*I iota \(*i KAPPA \(*K kappa \(*k XLAMBDA \(*L lambda \(*l MU \(*M mu \(*m XNU \(*N nu \(*n XI \(*C xi \(*c XOMICRON \(*O omicron \(*o PI \(*P pi \(*p XRHO \(*R rho \(*r SIGMA \(*S sigma \(*s XTAU \(*T tau \(*t UPSILON \(*U upsilon \(*u XPHI \(*F phi \(*f CHI \(*X chi \(*x XPSI \(*Q psi \(*q OMEGA \(*W omega \(*w X1/4 \(14 1/2 \(12 3/4 \(34 degree \(de Xdagger \(dg double dagger \(dd footmark \(fm cent sign \(ct Xregistered \(rg copyright \(co math + \(pl math - \(mi Xmath = \(eq math * \(** section \(sc underrule \(ul Xacute accent \(aa grave accent \(ga backslash \(sl square root \(sr Xroot en extender \(rn plus minus \(+- >= \(>= <= \(<= Xidentically = \(== approx. = \(~= approximates \(ap not equal \(!= Xright arrow \(-> left arrow \(<- up arrow \(ua down arrow \(da Xmultiply \(mu divide \(di union \(cu intersection \(ca Xsubset of \(sb superset of \(sp improper subset \(ib improper superset \(ip Xinfinity \(if partial \(pd gradient \(gr not \(no Xintegral \(is proportional to \(pt empty set \(es member of \(mo Xbox verticle rule \(br Bell System Logo \(bs right hand \(rh left hand \(lh Xor \(or circle \(ci left to curly \(lt left bottom \(lb Xright top curly \(rt right bottom \(rb left center curly \(lk right center \(rk Xleft floor \(lf right floor \(rf left ceiling \(lc right ceiling \(rc Xbold verticle \(bv bullet \(bu square \(sq X.sp 2 X.ft B XGreek Characters X.ft P X\(*a\(*b\(*g\(*d\(*e\(*z\(*y\(*h\(*i\(*k\(*l\(*m\(*n\(*c\(*o\(*p\(*r\(*s\(*t\(*u\(*f\(*x\(*q\(*w X\(*A\(*B\(*G\(*D\(*E\(*Z\(*Y\(*H\(*I\(*K\(*L\(*M\(*N\(*C\(*O\(*P\(*R\(*S\(*T\(*U\(*F\(*X\(*Q\(*W X.sp 2 X.in 1i X.ft B XA Big Equation - \fIFrom the EQN User's Guide\fP X.ft R X.sp X.EQ XG(z)~mark =~ e sup { ln ~ G(z) } X~=~ exp left [ Xsum from k>=1 {S sub k z sup k} over k right ] X~=~ prod from k>=1 e sup { S sub k z sup k /k} X.EN X.sp 2 X.EQ Xlineup =~ left ( 1 + S sub 1 z + X{ S sub 1 sup 2 z sup 2 } over 2! + "..." right ) Xleft ( 1 + {S sub 2 z sup 2 } over 2 X+ { S sub 2 sup 2 z sup 4 } over { 2 sup 2 ~ 2! } X+ "..." right ) "..." X.EN X.sp X.EQ Xlineup =~ sum from m>=0 left { Xsum from Xpile { k sub 1 ,k sub 2 ",...," k sub m >=0 Xabove Xk sub 1 +2k sub 2 ",...," +mk sub m = m } X{S sub 1 sup {k sub 1} } over {1 sup k sub 1 k sub 1 ! } ~ X{S sub 2 sup {k sub 2} } over {2 sup k sub 2 k sub 2 ! } ~ X"..." X{S sub m sup {k sub m} } over {m sup k sub m k sub m ! } ~ Xright } z sup m X.EN X ________This_Is_The_END________ if test `wc -c < special` -ne 2621; then echo 'shar: special was damaged during transit (should have been 2621 bytes)' fi fi ; : end of overwriting check exit 0 -- Tom Tkacik | tkacik@kyzyl.mi.org | To rent this space, call 1-800-555-QUIP. tkacik@hobbes.cs.gmr.com | -- David H. Brierley Home: dave@galaxia.newport.ri.us; Work: dhb@quahog.ssd.ray.com Send comp.sources.3b1 submissions to comp-sources-3b1@galaxia.newport.ri.us %% Can I be excused, my brain is full. **