dfk@romeo.cs.duke.edu (David F. Kotz) (02/13/89)
Here are the promised patches to GnuTeX. There are 5 patches posted:
patch4, patch5[a-d]. Apply them in order.
#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create the files:
# patch4
# This archive created: Sun Feb 12 13:17:26 1989
export PATH; PATH=/bin:$PATH
if test -f 'patch4'
then
echo shar: will not over-write existing file "'patch4'"
else
sed 's/^X//' << \SHAR_EOF > 'patch4'
Xdiff -cr ../gnutex.old/Makefile ./Makefile
X*** ../gnutex.old/Makefile Mon Dec 12 14:40:21 1988
X--- ./Makefile Wed Jan 11 15:06:10 1989
X***************
X*** 28,33 ****
X--- 28,35 ----
X # -DTEK Tektronix 4010, and probably others
X # -DHALFTEK Tektronix 4010 (top/bottom half of screen)
X # -DUNIXPLOT unixplot
X+ # -DPC IBM PC EGA/CGA graphics
X+ # -DPC -DCORONA IBM PC Corona graphics
X # -DLATEX LaTeX output
X
X #TERMFLAGS = -DQMS -DTEK -DHALFTEK -DUNIXPLOT -DLATEX
Xdiff -cr ../gnutex.old/PATCHLEVEL ./PATCHLEVEL
X*** ../gnutex.old/PATCHLEVEL Mon Dec 5 13:25:42 1988
X--- ./PATCHLEVEL Wed Jan 11 15:07:04 1989
X***************
X*** 1 ****
X! 3
X--- 1 ----
X! 4
XOnly in ../gnutex.old: Patch3-rm
Xdiff -cr ../gnutex.old/README.PC ./README.PC
X*** ../gnutex.old/README.PC Tue Jan 17 09:49:53 1989
X--- ./README.PC Mon Jan 16 18:13:05 1989
X***************
X*** 0 ****
X--- 1,41 ----
X+ Here are some comments from someone using gnutex on an IBM-PC:
X+
X+ 1) WARNING: the file doc/manual/gnutex.aux may have long lines. Don't
X+ worry. Remove it if corrupted and regenerate by latexing gnutex.tex
X+ many times.
X+
X+ 2) The files help/*/.general may need to be renamed to be allowed on
X+ MS-DOS.
X+
X+ 3) Use the large memory model.
X+
X+ 4) Some values may be too big for an int; a long should be used for
X+ the variables. In case the variables have not all been fixed to be
X+ long, adjust the following line in term.c:
X+ from
X+ #define LATEX_UNIT (.01) /* points */
X+ to
X+ #define LATEX_UNIT (.05) /* points */
X+ This will give a rougher graph, but will keep the numbers smaller.
X+
X+ 5) Compiled with Microsoft C 5.1, for LaTeX, EGA, and CGA. The command
X+ for compilation is
X+
X+ cl /c /AL -DPC -DEGA -DLATEX -DCGA *.c
X+
X+ And, for linking,
X+
X+ link plot+internal+version+command+eval+graphics+misc+
X+ parse+scanner+standard+term+util,gn,gn,graphics.lib
X+
X+ This last should be typed all on one line!!!! (i.e. misc+parse ...
X+ should be on one line with no spaces).
X+
X+ Then say
X+
X+ exepack gn.exe gnutex.exe
X+ del gn.exe
X+
X+ to get a smaller executable file.
X+
X+ Thanks to "J.D. McDonald " <mcdonald@uxe.cso.uiuc.edu>
Xdiff -cr ../gnutex.old/command.c ./command.c
X*** ../gnutex.old/command.c Mon Dec 12 12:15:27 1988
X--- ./command.c Mon Jan 16 22:23:59 1989
X***************
X*** 26,31 ****
X--- 26,33 ----
X #define STDOUT 1
X #endif
X
X+ extern char *malloc();
X+
X /*
X * global variables to hold status of 'set' options
X *
X***************
X*** 921,927 ****
X int_error("expecting spacing (in points) for style", c_token);
X }
X convert(&a, c_token);
X! stp->st_spacing = (int)magnitude(&a);
X if (stp->st_spacing < 0.1) {
X next_value--;
X int_error("unreasonable spacing value", c_token);
X--- 923,929 ----
X int_error("expecting spacing (in points) for style", c_token);
X }
X convert(&a, c_token);
X! stp->st_spacing = magnitude(&a);
X if (stp->st_spacing < 0.1) {
X next_value--;
X int_error("unreasonable spacing value", c_token);
X***************
X*** 1324,1329 ****
X--- 1326,1332 ----
X plot[plot_num].points[i].undefined = TRUE;
X continue;
X }
X+
X if (autoscale_ly) {
X if (temp < ymin) ymin = temp;
X if (temp > ymax) ymax = temp;
X***************
X*** 1331,1337 ****
X plot[plot_num].points[i].undefined = TRUE;
X continue;
X }
X!
X plot[plot_num].points[i].y =
X log_y ? log10(temp) : temp;
X }
X--- 1334,1341 ----
X plot[plot_num].points[i].undefined = TRUE;
X continue;
X }
X!
X! plot[plot_num].points[i].x = x;
X plot[plot_num].points[i].y =
X log_y ? log10(temp) : temp;
X }
XCommon subdirectories: ../gnutex.old/doc and ./doc
XOnly in .: gnutex
Xdiff -cr ../gnutex.old/graphics.c ./graphics.c
X*** ../gnutex.old/graphics.c Thu Dec 8 18:08:16 1988
X--- ./graphics.c Mon Jan 16 22:22:57 1989
X***************
X*** 49,54 ****
X--- 49,57 ----
X extern BOOLEAN xtics;
X extern BOOLEAN ytics;
X
X+ extern BOOLEAN autoscale_lx;
X+ extern BOOLEAN autoscale_ly;
X+
X #ifndef max /* Lattice C has max() in math.h, but shouldn't! */
X #define max(a,b) ((a > b) ? a : b)
X #endif
X***************
X*** 157,163 ****
X {
X register int curve, i, x, xaxis_y, yaxis_x,dp_count;
X register BOOLEAN prev_undef;
X- register enum PLOT_TYPES p_type;
X register double xscale, yscale;
X register double ytic, xtic, least, most, ticplace;
X register struct termentry *t = &term_tbl[term];
X--- 160,165 ----
X***************
X*** 176,188 ****
X xtic = make_tics(xmin,xmax,log_x);
X dp_count = 0;
X
X! if (ymin < ymax ) {
X! ymin = ytic * floor(ymin/ytic);
X! ymax = ytic * ceil(ymax/ytic);
X }
X! else {
X! ymin = ytic * ceil(ymin/ytic);
X! ymax = ytic * floor(ymax/ytic);
X }
X
X if (xmin == xmax)
X--- 178,203 ----
X xtic = make_tics(xmin,xmax,log_x);
X dp_count = 0;
X
X! if (autoscale_ly) {
X! if (ymin < ymax ) {
X! ymin = ytic * floor(ymin/ytic);
X! ymax = ytic * ceil(ymax/ytic);
X! }
X! else {
X! ymin = ytic * ceil(ymin/ytic);
X! ymax = ytic * floor(ymax/ytic);
X! }
X }
X!
X! if (autoscale_lx) {
X! if (xmin < xmax ) {
X! xmin = xtic * floor(xmin/xtic);
X! xmax = xtic * ceil(xmax/xtic);
X! }
X! else {
X! xmin = xtic * ceil(xmin/xtic);
X! xmax = xtic * floor(xmax/xtic);
X! }
X }
X
X if (xmin == xmax)
X***************
X*** 222,231 ****
X (*t->vector)(0,0);
X
X if (ytics) {
X! least = (ymin < ymax) ? ymin : ymax;
X! most = (ymin < ymax) ? ymax : ymin;
X
X- (*t->ytick_text)(map_y(least), CheckZero(least,ytic), yformat);
X for (ticplace = ytic + least; ticplace < most ; ticplace += ytic) {
X (*t->move)(0,map_y(ticplace));
X (*t->vector)(t->h_tic,map_y(ticplace));
X--- 237,258 ----
X (*t->vector)(0,0);
X
X if (ytics) {
X! if (ymin < ymax) {
X! least = ytic * floor(ymin/ytic);
X! most = ytic * ceil(ymax/ytic);
X! if (least >= ymin)
X! (*t->ytick_text)(map_y(least), CheckZero(least,ytic), yformat);
X! if (most <= ymax)
X! (*t->ytick_text)(map_y(most), CheckZero(most,ytic), yformat);
X! } else {
X! least = ytic * floor(ymax/ytic);
X! most = ytic * ceil(ymin/ytic);
X! if (least >= ymax)
X! (*t->ytick_text)(map_y(least), CheckZero(least,ytic), yformat);
X! if (most <= ymin)
X! (*t->ytick_text)(map_y(most), CheckZero(most,ytic), yformat);
X! }
X
X for (ticplace = ytic + least; ticplace < most ; ticplace += ytic) {
X (*t->move)(0,map_y(ticplace));
X (*t->vector)(t->h_tic,map_y(ticplace));
X***************
X*** 233,259 ****
X (*t->vector)(t->xmax-1-t->h_tic,map_y(ticplace));
X (*t->ytick_text)(map_y(ticplace), CheckZero(ticplace,ytic), yformat);
X }
X- (*t->ytick_text)(map_y(most), CheckZero(most,ytic), yformat);
X }
X
X if (xtics) {
X! if (xmin < xmax ) {
X least = xtic * floor(xmin/xtic);
X most = xtic * ceil(xmax/xtic);
X! if (least >= xmin)
X (*t->xtick_text)(map_x(least), CheckZero(least,xtic), xformat);
X if (most <= xmax)
X (*t->xtick_text)(map_x(most), CheckZero(most,xtic), xformat);
X! }
X! else {
X! least = xtic * ceil(xmin/xtic);
X! most = xtic * floor(xmax/xtic);
X! if (least <= xmin)
X (*t->xtick_text)(map_x(least), CheckZero(least,xtic), xformat);
X! if (most >= xmax)
X (*t->xtick_text)(map_x(most), CheckZero(most,xtic), xformat);
X }
X!
X for (ticplace = xtic + least; ticplace < most ; ticplace += xtic) {
X (*t->move)(map_x(ticplace),0);
X (*t->vector)(map_x(ticplace),t->v_tic);
X--- 260,284 ----
X (*t->vector)(t->xmax-1-t->h_tic,map_y(ticplace));
X (*t->ytick_text)(map_y(ticplace), CheckZero(ticplace,ytic), yformat);
X }
X }
X
X if (xtics) {
X! if (xmin < xmax) {
X least = xtic * floor(xmin/xtic);
X most = xtic * ceil(xmax/xtic);
X! if (least >= xmin)
X (*t->xtick_text)(map_x(least), CheckZero(least,xtic), xformat);
X if (most <= xmax)
X (*t->xtick_text)(map_x(most), CheckZero(most,xtic), xformat);
X! } else {
X! least = xtic * floor(xmax/xtic);
X! most = xtic * ceil(xmin/xtic);
X! if (least >= xmax)
X (*t->xtick_text)(map_x(least), CheckZero(least,xtic), xformat);
X! if (most <= xmin)
X (*t->xtick_text)(map_x(most), CheckZero(most,xtic), xformat);
X }
X!
X for (ticplace = xtic + least; ticplace < most ; ticplace += xtic) {
X (*t->move)(map_x(ticplace),0);
X (*t->vector)(map_x(ticplace),t->v_tic);
X***************
X*** 329,344 ****
X lines = TRUE;
X special = NULL;
X
X- p_type = plots[curve].plot_type;
X switch(plots[curve].plot_style) {
X case IMPULSES:
X (*t->linetype)(-1); /* get straight lines */
X for (i = 0; i < plots[curve].count; i++) {
X if (!plots[curve].points[i].undefined) {
X! if (p_type == DATA)
X! x = map_x(plots[curve].points[i].x);
X! else
X! x = (long)(t->xmax-1)*i/(plots[curve].count-1);
X (*t->move)(x,xaxis_y);
X (*t->vector)(x,map_y(plots[curve].points[i].y));
X }
X--- 354,365 ----
X lines = TRUE;
X special = NULL;
X
X switch(plots[curve].plot_style) {
X case IMPULSES:
X (*t->linetype)(-1); /* get straight lines */
X for (i = 0; i < plots[curve].count; i++) {
X if (!plots[curve].points[i].undefined) {
X! x = map_x(plots[curve].points[i].x);
X (*t->move)(x,xaxis_y);
X (*t->vector)(x,map_y(plots[curve].points[i].y));
X }
X***************
X*** 348,362 ****
X prev_undef = TRUE;
X for (i = 0; i < plots[curve].count; i++) {
X if (!plots[curve].points[i].undefined) {
X! if (p_type == DATA)
X! x = map_x(plots[curve].points[i].x);
X! else
X! x = (long)(t->xmax-1)*i/(plots[curve].count-1);
X! if (prev_undef)
X! (*t->move)(x,
X! map_y(plots[curve].points[i].y));
X! (*t->vector)(x,
X! map_y(plots[curve].points[i].y));
X }
X prev_undef = plots[curve].points[i].undefined;
X }
X--- 369,380 ----
X prev_undef = TRUE;
X for (i = 0; i < plots[curve].count; i++) {
X if (!plots[curve].points[i].undefined) {
X! if (prev_undef)
X! (*t->move)(map_x(plots[curve].points[i].x),
X! map_y(plots[curve].points[i].y));
X! else
X! (*t->vector)(map_x(plots[curve].points[i].x),
X! map_y(plots[curve].points[i].y));
X }
X prev_undef = plots[curve].points[i].undefined;
X }
X***************
X*** 364,374 ****
X case POINTS:
X for (i = 0; i < plots[curve].count; i++) {
X if (!plots[curve].points[i].undefined) {
X! if (p_type == DATA)
X! x = map_x(plots[curve].points[i].x);
X! else
X! x = (long)(t->xmax-1)*i/(plots[curve].count-1);
X! (*t->point)(x,map_y(plots[curve].points[i].y),dp_count, NULL);
X }
X }
X dp_count++;
X--- 382,390 ----
X case POINTS:
X for (i = 0; i < plots[curve].count; i++) {
X if (!plots[curve].points[i].undefined) {
X! (*t->point)(map_x(plots[curve].points[i].x),
X! map_y(plots[curve].points[i].y),
X! dp_count, NULL);
X }
X }
X dp_count++;
X***************
X*** 376,386 ****
X case DOTS:
X for (i = 0; i < plots[curve].count; i++) {
X if (!plots[curve].points[i].undefined) {
X! if (p_type == DATA)
X! x = map_x(plots[curve].points[i].x);
X! else
X! x = (long)(t->xmax-1)*i/(plots[curve].count-1);
X! (*t->point)(x,map_y(plots[curve].points[i].y),-1, NULL);
X }
X }
X break;
X--- 392,400 ----
X case DOTS:
X for (i = 0; i < plots[curve].count; i++) {
X if (!plots[curve].points[i].undefined) {
X! (*t->point)(map_x(plots[curve].points[i].x),
X! map_y(plots[curve].points[i].y),
X! -1, NULL);
X }
X }
X break;
X***************
X*** 390,422 ****
X lines = stp->st_length > 0;
X special = stp->st_point;
X /* FALL THROUGH */
X! case LINESPOINTS: /* DFK 6/26/87 */
X prev_undef = TRUE;
X for (i = 0; i < plots[curve].count; i++) {
X! if (!plots[curve].points[i].undefined) {
X! if (p_type == DATA)
X! x = map_x(plots[curve].points[i].x);
X else
X! x = (long)(t->xmax-1)*i/(plots[curve].count-1);
X! if (prev_undef)
X! (*t->move)(x,
X! map_y(plots[curve].points[i].y));
X! if (lines)
X! (*t->vector)(x,
X! map_y(plots[curve].points[i].y));
X! if (special != NULL)
X! if (*special != '\0')
X! /* plot user-specified point */
X! (*t->point)(x,
X! map_y(plots[curve].points[i].y),
X! 0, special);
X! else
X! ; /* plot no point at all */
X! else /* plot the normal type of point */
X! (*t->point)(x,map_y(plots[curve].points[i].y),
X! dp_count, NULL);
X! }
X! prev_undef = plots[curve].points[i].undefined;
X }
X if (special == NULL)
X dp_count++;
X--- 404,434 ----
X lines = stp->st_length > 0;
X special = stp->st_point;
X /* FALL THROUGH */
X! case LINESPOINTS:
X prev_undef = TRUE;
X for (i = 0; i < plots[curve].count; i++) {
X! if (!plots[curve].points[i].undefined) {
X! x = map_x(plots[curve].points[i].x);
X!
X! if (prev_undef)
X! (*t->move)(x,
X! map_y(plots[curve].points[i].y));
X! if (lines)
X! (*t->vector)(x,
X! map_y(plots[curve].points[i].y));
X! if (special != NULL)
X! if (*special != '\0')
X! /* plot user-specified point */
X! (*t->point)(x,
X! map_y(plots[curve].points[i].y),
X! 0, special);
X else
X! ; /* plot no point at all */
X! else /* plot the normal type of point */
X! (*t->point)(x,map_y(plots[curve].points[i].y),
X! dp_count, NULL);
X! }
X! prev_undef = plots[curve].points[i].undefined;
X }
X if (special == NULL)
X dp_count++;
XCommon subdirectories: ../gnutex.old/help and ./help
Xdiff -cr ../gnutex.old/ideas ./ideas
X*** ../gnutex.old/ideas Fri Dec 16 11:07:05 1988
X--- ./ideas Mon Jan 16 22:48:43 1989
X***************
X*** 11,16 ****
X--- 11,20 ----
X allow input data (and labels) to be an enumeration type (eg. {Male,Female})
X
X ----
X+ do proper clipping of functions plotted without autoscaling on, when
X+ values are finite but out-of-range
X+
X+ ----
X provide a FIG output mode
X
X ----
X***************
X*** 18,23 ****
X--- 22,32 ----
X
X ------
X can I get a frame around the key?
X+
X+ -----
X+ convert ints to longs where necessary throughout the program, as I
X+ have in the LATEX unit, so 16-bit machines like the IBM PC can
X+ properly use the large integers required for the latex terminal type.
X
X -----
X
Xdiff -cr ../gnutex.old/internal.c ./internal.c
X*** ../gnutex.old/internal.c Mon Dec 5 13:25:56 1988
X--- ./internal.c Mon Jan 16 17:36:06 1989
X***************
X*** 30,36 ****
X
X int s_p = -1; /* stack pointer */
X
X!
X /*
X * System V and MSC 4.0 call this when they wants to print an error message.
X * Don't!
X--- 30,36 ----
X
X int s_p = -1; /* stack pointer */
X
X! #ifndef MSDOS /* suggested by "J.D. McDonald " <mcdonald@uxe.cso.uiuc.edu> */
X /*
X * System V and MSC 4.0 call this when they wants to print an error message.
X * Don't!
X***************
X*** 39,45 ****
X {
X return (undefined = TRUE); /* don't print error message */
X }
X!
X
X reset_stack()
X {
X--- 39,45 ----
X {
X return (undefined = TRUE); /* don't print error message */
X }
X! #endif MSDOS
X
X reset_stack()
X {
Xdiff -cr ../gnutex.old/misc.c ./misc.c
X*** ../gnutex.old/misc.c Mon Dec 5 13:25:57 1988
X--- ./misc.c Mon Jan 16 17:19:34 1989
X***************
X*** 25,31 ****
X extern struct ft_entry ft[];
X extern struct vt_entry vt[];
X
X! char *malloc();
X
X
X pointmem(samples)
X--- 25,31 ----
X extern struct ft_entry ft[];
X extern struct vt_entry vt[];
X
X! extern char *malloc();
X
X
X pointmem(samples)
Xdiff -cr ../gnutex.old/plot.c ./plot.c
X*** ../gnutex.old/plot.c Mon Dec 5 13:25:57 1988
X--- ./plot.c Mon Jan 16 17:37:10 1989
X***************
X*** 120,128 ****
X
X #define print_debug(a) if (debug) fprintf(stderr, a)
X
X! interrupt()
X {
X! (void) signal(SIGINT, interrupt);
X (void) signal(SIGFPE, SIG_DFL); /* turn off FPE trapping */
X if (term)
X (*term_tbl[term].text)(); /* hopefully reset text mode */
X--- 120,128 ----
X
X #define print_debug(a) if (debug) fprintf(stderr, a)
X
X! catch() /* interrupts */
X {
X! (void) signal(SIGINT, catch);
X (void) signal(SIGFPE, SIG_DFL); /* turn off FPE trapping */
X if (term)
X (*term_tbl[term].text)(); /* hopefully reset text mode */
X***************
X*** 180,186 ****
X pointmem(SAMPLES); /* malloc memory to keep plot points in */
X
X if (!setjmp(env)) { /* come back here from printerror() */
X! (void) signal(SIGINT, interrupt); /* go there on interrupt char */
X if (!(plotrc = (fopen(PLOTRC,"r")))) {
X #ifdef vms
X (void) strcpy(home,HOME);
X--- 180,186 ----
X pointmem(SAMPLES); /* malloc memory to keep plot points in */
X
X if (!setjmp(env)) { /* come back here from printerror() */
X! (void) signal(SIGINT, catch); /* go there on interrupt char */
X if (!(plotrc = (fopen(PLOTRC,"r")))) {
X #ifdef vms
X (void) strcpy(home,HOME);
Xdiff -cr ../gnutex.old/plot.h ./plot.h
X*** ../gnutex.old/plot.h Mon Dec 5 13:25:58 1988
X--- ./plot.h Mon Jan 16 17:35:10 1989
X***************
X*** 40,46 ****
X #define MAX_ID_LEN 200 /* max length of an identifier (long for files)*/
X
X #ifdef PC
X! #define MAX_UDFS 30 /* max number of user-defined functions */
X #else /* PC */
X #define MAX_UDFS 100
X #endif /* PC */
X--- 40,46 ----
X #define MAX_ID_LEN 200 /* max length of an identifier (long for files)*/
X
X #ifdef PC
X! #define MAX_UDFS 20 /* max number of user-defined functions */
X #else /* PC */
X #define MAX_UDFS 100
X #endif /* PC */
Xdiff -cr ../gnutex.old/term.c ./term.c
X*** ../gnutex.old/term.c Mon Dec 5 13:25:58 1988
X--- ./term.c Mon Jan 16 18:26:59 1989
X***************
X*** 17,22 ****
X--- 17,24 ----
X * Department of Computer Science, Duke University, Durham, NC 27706.
X * Mail to dfk@cs.duke.edu.
X */
X+ /* modified 1/14/89 for Microsoft C5.1 by JDM (mcdonald@uxe.cso.uiuc.edu)
X+ */
X
X #include <stdio.h>
X #include "plot.h"
X***************
X*** 24,29 ****
X--- 26,37 ----
X #define NICE_LINE 0
X #define POINT_TYPES 6
X
X+ #ifdef MSDOS
X+ int PC_color = 7;
X+ #include <dos.h>
X+ #include <graph.h>
X+ #endif
X+
X extern FILE *outfile;
X extern BOOLEAN term_init;
X extern int term;
X***************
X*** 276,287 ****
X
X #ifdef PC
X
X PC_lrput_text(row,str)
X int row;
X char str[];
X {
X! PC_curloc(24-row,78-strlen(str));
X! PC_puts(str);
X }
X
X PC_ulput_text(row,str)
X--- 284,306 ----
X
X #ifdef PC
X
X+ void PC_curloc(row,col)
X+ int row, col;
X+ {
X+ union REGS rg;
X+ rg.h.ah = 2;
X+ rg.h.bh = 0;
X+ rg.h.dh = row;
X+ rg.h.dl = col;
X+ int86(16,&rg,&rg);
X+ }
X+
X PC_lrput_text(row,str)
X int row;
X char str[];
X {
X! PC_curloc(23-row,78-strlen(str));
X! /*PC_*/puts(str);
X }
X
X PC_ulput_text(row,str)
X***************
X*** 289,295 ****
X char str[];
X {
X PC_curloc(row+1,2);
X! PC_puts(str);
X }
X
X #ifdef CORONA
X--- 308,314 ----
X char str[];
X {
X PC_curloc(row+1,2);
X! /*PC_*/puts(str);
X }
X
X #ifdef CORONA
X***************
X*** 300,306 ****
X COR_graphics()
X {
X graphics_on = TRUE;
X! Vmode(3);
X grinit(screen);
X grandtx();
X }
X--- 319,325 ----
X COR_graphics()
X {
X graphics_on = TRUE;
X! setmod(3);
X grinit(screen);
X grandtx();
X }
X***************
X*** 314,320 ****
X }
X grreset();
X txonly();
X! Vmode(3);
X }
X
X COR_linetype(linetype)
X--- 333,339 ----
X }
X grreset();
X txonly();
X! setmod(3);
X }
X
X COR_linetype(linetype)
X***************
X*** 368,380 ****
X
X CGA_init()
X {
X! PC_color(1); /* monochrome */
X }
X
X CGA_graphics()
X {
X graphics_on = TRUE;
X! Vmode(6);
X }
X
X CGA_text()
X--- 387,399 ----
X
X CGA_init()
X {
X! PC_color = 1; /* monochrome */
X }
X
X CGA_graphics()
X {
X graphics_on = TRUE;
X! _setvideomode(_HRESBW);
X }
X
X CGA_text()
X***************
X*** 381,389 ****
X {
X if (graphics_on) {
X graphics_on = FALSE;
X! while (!kbhit())
X! ;
X! Vmode(3);
X }
X }
X
X--- 400,407 ----
X {
X if (graphics_on) {
X graphics_on = FALSE;
X! while (!kbhit());
X! _setvideomode(_DEFAULTMODE);
X }
X }
X
X***************
X*** 391,397 ****
X {
X if (linetype > 2)
X linetype %= 3;
X! PC_mask(pattern[linetype+2]);
X }
X
X CGA_move(x,y)
X--- 409,415 ----
X {
X if (linetype > 2)
X linetype %= 3;
X! _setlinestyle(pattern[linetype+2]);
X }
X
X CGA_move(x,y)
X***************
X*** 403,409 ****
X
X CGA_vector(x,y)
X {
X! PC_line(startx,CGA_YLAST-starty,x,CGA_YLAST-y);
X startx = x;
X starty = y;
X }
X--- 421,428 ----
X
X CGA_vector(x,y)
X {
X! (void)_moveto(startx,CGA_YLAST-starty);
X! (void)_lineto(x,CGA_YLAST-y);
X startx = x;
X starty = y;
X }
X***************
X*** 419,431 ****
X
X EGA_init()
X {
X- PC_mask(0xffff);
X }
X
X EGA_graphics()
X {
X graphics_on = TRUE;
X! Vmode(16);
X }
X
X EGA_text()
X--- 438,449 ----
X
X EGA_init()
X {
X }
X
X EGA_graphics()
X {
X graphics_on = TRUE;
X! _setvideomode(_ERESCOLOR);
X }
X
X EGA_text()
X***************
X*** 441,447 ****
X EGA_linetype(linetype)
X {
X static int c[] = {9, 8, 10, 11, 12, 13, 14, 15, 7, 5, 4, 3, 2, 6};
X! PC_color(c[linetype+2]);
X }
X
X EGA_move(x,y)
X--- 459,465 ----
X EGA_linetype(linetype)
X {
X static int c[] = {9, 8, 10, 11, 12, 13, 14, 15, 7, 5, 4, 3, 2, 6};
X! PC_color = c[linetype+2];
X }
X
X EGA_move(x,y)
X***************
X*** 453,459 ****
X
X EGA_vector(x,y)
X {
X! PC_line(startx,EGA_YLAST-starty,x,EGA_YLAST-y);
X startx = x;
X starty = y;
X }
X--- 471,479 ----
X
X EGA_vector(x,y)
X {
X! (void)_setcolor(PC_color);
X! (void)_moveto(startx,EGA_YLAST-starty);
X! (void)_lineto(x,EGA_YLAST-y);
X startx = x;
X starty = y;
X }
X***************
X*** 464,470 ****
X
X EGA_reset()
X {
X! Vmode(3);
X }
X #endif /* PC */
X
X--- 484,490 ----
X
X EGA_reset()
X {
X! _setvideomode(_DEFAULTMODE);
X }
X #endif /* PC */
X
X***************
X*** 1083,1093 ****
X
X #define LATEX_TICSIZ 101 /* no more than 100 chars in a tic label */
X
X! static int LATEX_posx;
X! static int LATEX_posy;
X! static int LATEX_inplot;
X! static int LATEX_xmax;
X! static int LATEX_ymax;
X static char *LATEX_xlabel = NULL;
X
X static LATEX_endplot();
X--- 1103,1113 ----
X
X #define LATEX_TICSIZ 101 /* no more than 100 chars in a tic label */
X
X! static long LATEX_posx;
X! static long LATEX_posy;
X! static BOOLEAN LATEX_inplot;
X! static long LATEX_xmax;
X! static long LATEX_ymax;
X static char *LATEX_xlabel = NULL;
X
X static LATEX_endplot();
X***************
X*** 1132,1145 ****
X char *title; /* plot title */
X {
X /* computed margin of plot */
X! int bot_margin, left_margin, top_margin, right_margin;
X
X if (LATEX_inplot)
X LATEX_endplot();
X
X /* Convert inches to points to coordinates */
X! LATEX_xmax = (int) (xmax * LATEX_PTS_PER_INCH / LATEX_UNIT + 0.5);
X! LATEX_ymax = (int) (ymax * LATEX_PTS_PER_INCH / LATEX_UNIT + 0.5);
X
X /* store these away for the use of plotting routines */
X t->xmax = LATEX_xmax;
X--- 1152,1165 ----
X char *title; /* plot title */
X {
X /* computed margin of plot */
X! long bot_margin, left_margin, top_margin, right_margin;
X
X if (LATEX_inplot)
X LATEX_endplot();
X
X /* Convert inches to points to coordinates */
X! LATEX_xmax = (long) (xmax * LATEX_PTS_PER_INCH / LATEX_UNIT + 0.5);
X! LATEX_ymax = (long) (ymax * LATEX_PTS_PER_INCH / LATEX_UNIT + 0.5);
X
X /* store these away for the use of plotting routines */
X t->xmax = LATEX_xmax;
X***************
X*** 1162,1171 ****
X fprintf(outfile, "\\end{tabular} \\hspace*{%dem}}\n", yskip);
X }
X /* Define the plot, computing the total size and the lower-left corner*/
X! fprintf(outfile, " & \\begin{picture}(%d,%d)(%d,%d)\n",
X! (int)(LATEX_xmax + left_margin + right_margin),
X! (int)(LATEX_ymax + bot_margin + top_margin),
X! (int)(-left_margin), (int)(-bot_margin));
X LATEX_inplot = TRUE;
X
X LATEX_posx = LATEX_posy = 0;
X--- 1182,1191 ----
X fprintf(outfile, "\\end{tabular} \\hspace*{%dem}}\n", yskip);
X }
X /* Define the plot, computing the total size and the lower-left corner*/
X! fprintf(outfile, " & \\begin{picture}(%ld,%ld)(%ld,%ld)\n",
X! (long)(LATEX_xmax + left_margin + right_margin),
X! (long)(LATEX_ymax + bot_margin + top_margin),
X! (long)(-left_margin), (long)(-bot_margin));
X LATEX_inplot = TRUE;
X
X LATEX_posx = LATEX_posy = 0;
X***************
X*** 1255,1277 ****
X /* These are vertical and horizontal lines only. */
X if (LATEX_type < 0) {
X if (x == LATEX_posx) { /* vertical */
X! fprintf(outfile, "\\put(%d,%d){\\line(0,%d){%d}}\n",
X! (int)(LATEX_posx), (int)(LATEX_posy),
X! sign(y - LATEX_posy), abs(y - LATEX_posy));
X } else if (y == LATEX_posy) { /* horizontal */
X! fprintf(outfile, "\\put(%d,%d){\\line(%d,0){%d}}\n",
X LATEX_posx, LATEX_posy,
X! sign(x - LATEX_posx), abs(x - LATEX_posx));
X }
X } else { /* drawing real curves */
X! int deltax = x - LATEX_posx;
X! int deltay = y - LATEX_posy;
X! int n = max(abs(deltax), abs(deltay))
X / (LATEX_style ? LATEX_style->st_spacing/LATEX_UNIT : LATEX_DOT_SPACING) + 1;
X float dx = (float)deltax / n;
X float dy = (float)deltay / n;
X float curx = LATEX_posx, cury = LATEX_posy;
X! int first = TRUE;
X
X while (curx != x || cury != y) {
X if (LATEX_style)
X--- 1275,1297 ----
X /* These are vertical and horizontal lines only. */
X if (LATEX_type < 0) {
X if (x == LATEX_posx) { /* vertical */
X! fprintf(outfile, "\\put(%ld,%ld){\\line(0,%ld){%ld}}\n",
X! LATEX_posx, LATEX_posy,
X! sign((long)y - LATEX_posy), abs((long)y - LATEX_posy));
X } else if (y == LATEX_posy) { /* horizontal */
X! fprintf(outfile, "\\put(%ld,%ld){\\line(%ld,0){%ld}}\n",
X LATEX_posx, LATEX_posy,
X! sign((long)x - LATEX_posx), abs((long)x - LATEX_posx));
X }
X } else { /* drawing real curves */
X! long deltax = x - LATEX_posx;
X! long deltay = y - LATEX_posy;
X! long n = max(abs(deltax), abs(deltay))
X / (LATEX_style ? LATEX_style->st_spacing/LATEX_UNIT : LATEX_DOT_SPACING) + 1;
X float dx = (float)deltax / n;
X float dy = (float)deltay / n;
X float curx = LATEX_posx, cury = LATEX_posy;
X! BOOLEAN first = TRUE;
X
X while (curx != x || cury != y) {
X if (LATEX_style)
X***************
X*** 1280,1287 ****
X else
X first = FALSE;
X
X! fprintf(outfile, "\\put(%d,%d){%s}\n",
X! (int)(curx + .5), (int)(cury + .5),
X LATEX_style ? LATEX_style->st_seq[LATEX_seq_pos]
X : LATEX_DOT);
X
X--- 1300,1307 ----
X else
X first = FALSE;
X
X! fprintf(outfile, "\\put(%ld,%ld){%s}\n",
X! (long)(curx + .5), (long)(cury + .5),
X LATEX_style ? LATEX_style->st_seq[LATEX_seq_pos]
X : LATEX_DOT);
X
X***************
X*** 1305,1313 ****
X unsigned int row;
X char str[];
X {
X! fprintf(outfile, "\\put(%d,%d){$%s$}\n",
X! (int)(LATEX_xmax - 2*LATEX_HTIC - LATEX_HCHAR*(strlen(str)+1)),
X! (int)(LATEX_VTIC + 3 + LATEX_VCHAR*row),
X str);
X }
X
X--- 1325,1333 ----
X unsigned int row;
X char str[];
X {
X! fprintf(outfile, "\\put(%ld,%ld){$%s$}\n",
X! (long)(LATEX_xmax - 2*LATEX_HTIC - LATEX_HCHAR*(strlen(str)+1)),
X! (long)(LATEX_VTIC + 3 + LATEX_VCHAR*row),
X str);
X }
X
X***************
X*** 1316,1327 ****
X unsigned int row;
X char str[];
X {
X! fprintf(outfile, "\\put(%d,%d){%s}\n",
X! (int)(LATEX_HTIC+3),
X! (int)(LATEX_ymax - LATEX_VTIC - LATEX_VCHAR*(row+1)),
X str);
X }
X
X LATEX_xyput_text(x, y, str, pos, length, dx, dy)
X unsigned int x,y; /* reference point of string */
X char str[]; /* the text */
X--- 1336,1351 ----
X unsigned int row;
X char str[];
X {
X! fprintf(outfile, "\\put(%ld,%ld){%s}\n",
X! (long)(LATEX_HTIC+3),
X! (long)(LATEX_ymax - LATEX_VTIC - LATEX_VCHAR*(row+1)),
X str);
X }
X
X+ #ifdef MSDOS
X+ # define index(s,c) strchr(s,c)
X+ #endif MSDOS
X+
X LATEX_xyput_text(x, y, str, pos, length, dx, dy)
X unsigned int x,y; /* reference point of string */
X char str[]; /* the text */
X***************
X*** 1343,1352 ****
X /* optional arrow */
X if (length != 0 && pos != NULL && *pos != NULL) {
X if (dx == 0 && dy == 0) { /* determine slope from pos */
X! if (index(pos, 'l')) dx = -1;
X! if (index(pos, 'r')) dx = 1;
X! if (index(pos, 't')) dy = 1;
X! if (index(pos, 'b')) dy = -1;
X }
X fprintf(outfile, "\\vector(%d,%d){%u}\n", dx, dy, length);
X }
X--- 1367,1376 ----
X /* optional arrow */
X if (length != 0 && pos != NULL && *pos != NULL) {
X if (dx == 0 && dy == 0) { /* determine slope from pos */
X! if (index(pos, 'l') != NULL) dx = -1;
X! if (index(pos, 'r') != NULL) dx = 1;
X! if (index(pos, 't') != NULL) dy = 1;
X! if (index(pos, 'b') != NULL) dy = -1;
X }
X fprintf(outfile, "\\vector(%d,%d){%u}\n", dx, dy, length);
X }
X***************
X*** 1363,1369 ****
X int pcount = 0; /* counter of point-like styles */
X char *point; /* string representing type */
X static char *LATEX_key_point();
X! int first = 1; /* (TRUE) */
X
X /* Plot all of the entries in a shortstack */
X /* Each entry has two boxes, the left right-justified, */
X--- 1387,1393 ----
X int pcount = 0; /* counter of point-like styles */
X char *point; /* string representing type */
X static char *LATEX_key_point();
X! BOOLEAN first = TRUE;
X
X /* Plot all of the entries in a shortstack */
X /* Each entry has two boxes, the left right-justified, */
X***************
X*** 1460,1467 ****
X char mark[LATEX_TICSIZ];
X
X sprintf(mark, format, number);
X! fprintf(outfile, "\\put(%d,%d){\\makebox(0,0)[t]{%s}}\n",
X! x, (int)(-LATEX_HTIC), mark);
X }
X
X LATEX_ytick_text(y, number, format)
X--- 1484,1491 ----
X char mark[LATEX_TICSIZ];
X
X sprintf(mark, format, number);
X! fprintf(outfile, "\\put(%ld,%ld){\\makebox(0,0)[t]{%s}}\n",
X! (long)x, (long)(-LATEX_HTIC), mark);
X }
X
X LATEX_ytick_text(y, number, format)
X***************
X*** 1472,1479 ****
X char mark[LATEX_TICSIZ];
X
X sprintf(mark, format, number);
X! fprintf(outfile, "\\put(%d,%d){\\makebox(0,0)[r]{%s}}\n",
X! (int)(-LATEX_VTIC), y, mark);
X }
X
X
X--- 1496,1503 ----
X char mark[LATEX_TICSIZ];
X
X sprintf(mark, format, number);
X! fprintf(outfile, "\\put(%ld,%ld){\\makebox(0,0)[r]{%s}}\n",
X! (long)(-LATEX_VTIC), (long)y, mark);
X }
X
X
XCommon subdirectories: ../gnutex.old/doc/example and ./doc/example
XCommon subdirectories: ../gnutex.old/doc/manual and ./doc/manual
Xdiff -cr ../gnutex.old/doc/manual/eg1.tex ./doc/manual/eg1.tex
X*** ../gnutex.old/doc/manual/eg1.tex Mon Dec 12 14:29:20 1988
X--- ./doc/manual/eg1.tex Mon Jan 16 18:09:15 1989
X***************
X*** 6,11 ****
X--- 6,12 ----
X \put(28907,21680){\line(-1,0){28907}}
X \put(0,21680){\line(0,-1){21680}}
X \put(-500,0){\makebox(0,0)[r]{$-1$}}
X+ \put(-500,21679){\makebox(0,0)[r]{$1$}}
X \put(0,2167){\line(1,0){500}}
X \put(28907,2167){\line(-1,0){500}}
X \put(-500,2167){\makebox(0,0)[r]{$-.8$}}
X***************
X*** 33,39 ****
X \put(0,19511){\line(1,0){500}}
X \put(28907,19511){\line(-1,0){500}}
X \put(-500,19511){\makebox(0,0)[r]{$.8$}}
X- \put(-500,21679){\makebox(0,0)[r]{$1$}}
X \put(644,0){\line(0,1){500}}
X \put(644,21680){\line(0,-1){500}}
X \put(644,-500){\makebox(0,0)[t]{$-3$}}
X--- 34,39 ----
Xdiff -cr ../gnutex.old/doc/manual/eg2.tex ./doc/manual/eg2.tex
X*** ../gnutex.old/doc/manual/eg2.tex Mon Dec 12 14:29:22 1988
X--- ./doc/manual/eg2.tex Mon Jan 16 18:09:16 1989
X***************
X*** 10,15 ****
X--- 10,16 ----
X \put(36134,28907){\line(-1,0){36134}}
X \put(0,28907){\line(0,-1){28907}}
X \put(-500,0){\makebox(0,0)[r]{$0$}}
X+ \put(-500,28906){\makebox(0,0)[r]{$1$}}
X \put(0,5781){\line(1,0){500}}
X \put(36134,5781){\line(-1,0){500}}
X \put(-500,5781){\makebox(0,0)[r]{$.2$}}
X***************
X*** 22,28 ****
X \put(0,23124){\line(1,0){500}}
X \put(36134,23124){\line(-1,0){500}}
X \put(-500,23124){\makebox(0,0)[r]{$.8$}}
X- \put(-500,28906){\makebox(0,0)[r]{$1$}}
X \put(0,-500){\makebox(0,0)[t]{$0$}}
X \put(5753,0){\line(0,1){500}}
X \put(5753,28907){\line(0,-1){500}}
X--- 23,28 ----
Xdiff -cr ../gnutex.old/doc/manual/eg3.tex ./doc/manual/eg3.tex
X*** ../gnutex.old/doc/manual/eg3.tex Mon Dec 12 14:29:43 1988
X--- ./doc/manual/eg3.tex Mon Jan 16 18:09:17 1989
X***************
X*** 10,15 ****
X--- 10,16 ----
X \put(28907,21680){\line(-1,0){28907}}
X \put(0,21680){\line(0,-1){21680}}
X \put(-500,0){\makebox(0,0)[r]{$-20$}}
X+ \put(-500,21679){\makebox(0,0)[r]{$20$}}
X \put(0,2709){\line(1,0){500}}
X \put(28907,2709){\line(-1,0){500}}
X \put(-500,2709){\makebox(0,0)[r]{$-15$}}
X***************
X*** 31,61 ****
X \put(0,18969){\line(1,0){500}}
X \put(28907,18969){\line(-1,0){500}}
X \put(-500,18969){\makebox(0,0)[r]{$15$}}
X- \put(-500,21679){\makebox(0,0)[r]{$20$}}
X \put(0,-500){\makebox(0,0)[t]{$-20$}}
X! \put(3705,0){\line(0,1){500}}
X! \put(3705,21680){\line(0,-1){500}}
X! \put(3705,-500){\makebox(0,0)[t]{$-15$}}
X! \put(7411,0){\line(0,1){500}}
X! \put(7411,21680){\line(0,-1){500}}
X! \put(7411,-500){\makebox(0,0)[t]{$-10$}}
X! \put(11117,0){\line(0,1){500}}
X! \put(11117,21680){\line(0,-1){500}}
X! \put(11117,-500){\makebox(0,0)[t]{$-5$}}
X! \put(14823,0){\line(0,1){500}}
X! \put(14823,21680){\line(0,-1){500}}
X! \put(14823,-500){\makebox(0,0)[t]{$0$}}
X! \put(18529,0){\line(0,1){500}}
X! \put(18529,21680){\line(0,-1){500}}
X! \put(18529,-500){\makebox(0,0)[t]{$5$}}
X! \put(22235,0){\line(0,1){500}}
X! \put(22235,21680){\line(0,-1){500}}
X! \put(22235,-500){\makebox(0,0)[t]{$10$}}
X! \put(25941,0){\line(0,1){500}}
X! \put(25941,21680){\line(0,-1){500}}
X! \put(25941,-500){\makebox(0,0)[t]{$15$}}
X \put(0,10839){\line(1,0){28907}}
X! \put(14823,0){\line(0,1){21680}}
X \put(0,0){\circle*{1}}
X \put(180,132){\circle*{1}}
X \put(361,264){\circle*{1}}
X--- 32,62 ----
X \put(0,18969){\line(1,0){500}}
X \put(28907,18969){\line(-1,0){500}}
X \put(-500,18969){\makebox(0,0)[r]{$15$}}
X \put(0,-500){\makebox(0,0)[t]{$-20$}}
X! \put(28906,-500){\makebox(0,0)[t]{$20$}}
X! \put(3613,0){\line(0,1){500}}
X! \put(3613,21680){\line(0,-1){500}}
X! \put(3613,-500){\makebox(0,0)[t]{$-15$}}
X! \put(7226,0){\line(0,1){500}}
X! \put(7226,21680){\line(0,-1){500}}
X! \put(7226,-500){\makebox(0,0)[t]{$-10$}}
X! \put(10839,0){\line(0,1){500}}
X! \put(10839,21680){\line(0,-1){500}}
X! \put(10839,-500){\makebox(0,0)[t]{$-5$}}
X! \put(14453,0){\line(0,1){500}}
X! \put(14453,21680){\line(0,-1){500}}
X! \put(14453,-500){\makebox(0,0)[t]{$0$}}
X! \put(18066,0){\line(0,1){500}}
X! \put(18066,21680){\line(0,-1){500}}
X! \put(18066,-500){\makebox(0,0)[t]{$5$}}
X! \put(21679,0){\line(0,1){500}}
X! \put(21679,21680){\line(0,-1){500}}
X! \put(21679,-500){\makebox(0,0)[t]{$10$}}
X! \put(25292,0){\line(0,1){500}}
X! \put(25292,21680){\line(0,-1){500}}
X! \put(25292,-500){\makebox(0,0)[t]{$15$}}
X \put(0,10839){\line(1,0){28907}}
X! \put(14453,0){\line(0,1){21680}}
X \put(0,0){\circle*{1}}
X \put(180,132){\circle*{1}}
X \put(361,264){\circle*{1}}
X***************
X*** 217,438 ****
X \put(28545,20872){\circle*{1}}
X \put(28726,21004){\circle*{1}}
X \put(0,5893){\circle*{1}}
X! \put(185,5895){\circle*{1}}
X! \put(371,5898){\circle*{1}}
X! \put(556,5900){\circle*{1}}
X! \put(741,5902){\makebox(0,0){$\Diamond$}}
X! \put(741,5902){\circle*{1}}
X! \put(926,5904){\circle*{1}}
X! \put(1112,5907){\circle*{1}}
X! \put(1297,5909){\circle*{1}}
X! \put(1482,5911){\makebox(0,0){$\Diamond$}}
X! \put(1482,5911){\circle*{1}}
X! \put(1667,5914){\circle*{1}}
X! \put(1853,5917){\circle*{1}}
X! \put(2038,5919){\circle*{1}}
X! \put(2223,5922){\makebox(0,0){$\Diamond$}}
X! \put(2223,5922){\circle*{1}}
X! \put(2408,5925){\circle*{1}}
X! \put(2594,5928){\circle*{1}}
X! \put(2779,5931){\circle*{1}}
X! \put(2964,5934){\makebox(0,0){$\Diamond$}}
X! \put(2964,5934){\circle*{1}}
X! \put(3149,5937){\circle*{1}}
X! \put(3335,5941){\circle*{1}}
X! \put(3520,5944){\circle*{1}}
X! \put(3705,5947){\makebox(0,0){$\Diamond$}}
X! \put(3705,5947){\circle*{1}}
X! \put(3891,5951){\circle*{1}}
X! \put(4076,5955){\circle*{1}}
X! \put(4262,5959){\circle*{1}}
X! \put(4447,5963){\makebox(0,0){$\Diamond$}}
X! \put(4447,5963){\circle*{1}}
X! \put(4632,5968){\circle*{1}}
X! \put(4818,5972){\circle*{1}}
X! \put(5003,5977){\circle*{1}}
X! \put(5188,5981){\makebox(0,0){$\Diamond$}}
X! \put(5188,5981){\circle*{1}}
X! \put(5373,5986){\circle*{1}}
X! \put(5559,5991){\circle*{1}}
X! \put(5744,5996){\circle*{1}}
X! \put(5929,6001){\makebox(0,0){$\Diamond$}}
X! \put(5929,6001){\circle*{1}}
X! \put(6114,6007){\circle*{1}}
X! \put(6300,6014){\circle*{1}}
X! \put(6485,6020){\circle*{1}}
X! \put(6670,6026){\makebox(0,0){$\Diamond$}}
X! \put(6670,6026){\circle*{1}}
X! \put(6855,6033){\circle*{1}}
X! \put(7041,6041){\circle*{1}}
X! \put(7226,6048){\circle*{1}}
X! \put(7411,6055){\makebox(0,0){$\Diamond$}}
X! \put(7411,6055){\circle*{1}}
X! \put(7596,6064){\circle*{1}}
X! \put(7782,6073){\circle*{1}}
X! \put(7967,6082){\circle*{1}}
X! \put(8152,6091){\makebox(0,0){$\Diamond$}}
X! \put(8152,6091){\circle*{1}}
X! \put(8338,6102){\circle*{1}}
X! \put(8523,6113){\circle*{1}}
X! \put(8709,6124){\circle*{1}}
X! \put(8894,6135){\makebox(0,0){$\Diamond$}}
X! \put(8894,6135){\circle*{1}}
X! \put(9079,6149){\circle*{1}}
X! \put(9265,6164){\circle*{1}}
X! \put(9450,6178){\circle*{1}}
X! \put(9635,6192){\makebox(0,0){$\Diamond$}}
X! \put(9635,6192){\circle*{1}}
X! \put(9820,6211){\circle*{1}}
X! \put(10006,6230){\circle*{1}}
X! \put(10191,6249){\circle*{1}}
X! \put(10376,6268){\makebox(0,0){$\Diamond$}}
X! \put(10376,6268){\circle*{1}}
X! \put(10561,6294){\circle*{1}}
X! \put(10747,6321){\circle*{1}}
X! \put(10932,6347){\circle*{1}}
X! \put(11117,6373){\makebox(0,0){$\Diamond$}}
X! \put(11117,6373){\circle*{1}}
X! \put(11302,6412){\circle*{1}}
X! \put(11488,6451){\circle*{1}}
X! \put(11673,6489){\circle*{1}}
X! \put(11858,6528){\makebox(0,0){$\Diamond$}}
X! \put(11858,6528){\circle*{1}}
X! \put(12044,6590){\circle*{1}}
X! \put(12229,6653){\circle*{1}}
X! \put(12415,6715){\circle*{1}}
X! \put(12600,6777){\makebox(0,0){$\Diamond$}}
X! \put(12600,6777){\circle*{1}}
X! \put(12785,6893){\circle*{1}}
X! \put(12971,7008){\circle*{1}}
X! \put(13156,7124){\circle*{1}}
X! \put(13341,7239){\makebox(0,0){$\Diamond$}}
X! \put(13341,7239){\circle*{1}}
X! \put(13465,7413){\circle*{1}}
X! \put(13588,7588){\circle*{1}}
X! \put(13712,7762){\circle*{1}}
X! \put(13835,7936){\circle*{1}}
X! \put(13959,8111){\circle*{1}}
X! \put(14082,8285){\makebox(0,0){$\Diamond$}}
X! \put(14082,8285){\circle*{1}}
X! \put(14139,8481){\circle*{1}}
X! \put(14196,8678){\circle*{1}}
X! \put(14253,8874){\circle*{1}}
X! \put(14310,9071){\circle*{1}}
X! \put(14367,9267){\circle*{1}}
X! \put(14424,9464){\circle*{1}}
X! \put(14481,9660){\circle*{1}}
X! \put(14538,9857){\circle*{1}}
X! \put(14595,10053){\circle*{1}}
X! \put(14652,10250){\circle*{1}}
X! \put(14709,10446){\circle*{1}}
X! \put(14766,10643){\circle*{1}}
X! \put(14823,10839){\makebox(0,0){$\Diamond$}}
X! \put(14823,10839){\circle*{1}}
X! \put(14880,11035){\circle*{1}}
X! \put(14937,11232){\circle*{1}}
X! \put(14994,11428){\circle*{1}}
X! \put(15051,11625){\circle*{1}}
X! \put(15108,11821){\circle*{1}}
X! \put(15165,12018){\circle*{1}}
X! \put(15222,12214){\circle*{1}}
X! \put(15279,12411){\circle*{1}}
X! \put(15336,12607){\circle*{1}}
X! \put(15393,12804){\circle*{1}}
X! \put(15450,13000){\circle*{1}}
X! \put(15507,13197){\circle*{1}}
X! \put(15564,13393){\makebox(0,0){$\Diamond$}}
X! \put(15564,13393){\circle*{1}}
X! \put(15688,13567){\circle*{1}}
X! \put(15811,13742){\circle*{1}}
X! \put(15935,13916){\circle*{1}}
X! \put(16058,14090){\circle*{1}}
X! \put(16182,14265){\circle*{1}}
X! \put(16305,14439){\circle*{1}}
X! \put(16305,14439){\makebox(0,0){$\Diamond$}}
X! \put(16305,14439){\circle*{1}}
X! \put(16491,14555){\circle*{1}}
X! \put(16676,14670){\circle*{1}}
X! \put(16862,14786){\circle*{1}}
X! \put(17047,14901){\makebox(0,0){$\Diamond$}}
X! \put(17047,14901){\circle*{1}}
X! \put(17232,14963){\circle*{1}}
X! \put(17418,15026){\circle*{1}}
X! \put(17603,15088){\circle*{1}}
X! \put(17788,15150){\makebox(0,0){$\Diamond$}}
X! \put(17788,15150){\circle*{1}}
X! \put(17973,15189){\circle*{1}}
X! \put(18159,15228){\circle*{1}}
X! \put(18344,15266){\circle*{1}}
X! \put(18529,15305){\makebox(0,0){$\Diamond$}}
X! \put(18529,15305){\circle*{1}}
X! \put(18714,15331){\circle*{1}}
X! \put(18900,15358){\circle*{1}}
X! \put(19085,15384){\circle*{1}}
X! \put(19270,15410){\makebox(0,0){$\Diamond$}}
X! \put(19270,15410){\circle*{1}}
X! \put(19455,15429){\circle*{1}}
X! \put(19641,15448){\circle*{1}}
X! \put(19826,15467){\circle*{1}}
X! \put(20011,15486){\makebox(0,0){$\Diamond$}}
X! \put(20011,15486){\circle*{1}}
X! \put(20197,15500){\circle*{1}}
X! \put(20382,15515){\circle*{1}}
X! \put(20568,15529){\circle*{1}}
X! \put(20753,15543){\makebox(0,0){$\Diamond$}}
X! \put(20753,15543){\circle*{1}}
X! \put(20938,15554){\circle*{1}}
X! \put(21124,15565){\circle*{1}}
X! \put(21309,15576){\circle*{1}}
X! \put(21494,15587){\makebox(0,0){$\Diamond$}}
X! \put(21494,15587){\circle*{1}}
X! \put(21679,15596){\circle*{1}}
X! \put(21865,15605){\circle*{1}}
X! \put(22050,15614){\circle*{1}}
X! \put(22235,15623){\makebox(0,0){$\Diamond$}}
X! \put(22235,15623){\circle*{1}}
X! \put(22420,15630){\circle*{1}}
X! \put(22606,15638){\circle*{1}}
X! \put(22791,15645){\circle*{1}}
X! \put(22976,15652){\makebox(0,0){$\Diamond$}}
X! \put(22976,15652){\circle*{1}}
X! \put(23161,15658){\circle*{1}}
X! \put(23347,15665){\circle*{1}}
X! \put(23532,15671){\circle*{1}}
X! \put(23717,15677){\makebox(0,0){$\Diamond$}}
X! \put(23717,15677){\circle*{1}}
X! \put(23902,15682){\circle*{1}}
X! \put(24088,15687){\circle*{1}}
X! \put(24273,15692){\circle*{1}}
X! \put(24458,15697){\makebox(0,0){$\Diamond$}}
X! \put(24458,15697){\circle*{1}}
X! \put(24644,15702){\circle*{1}}
X! \put(24829,15706){\circle*{1}}
X! \put(25015,15711){\circle*{1}}
X! \put(25200,15715){\makebox(0,0){$\Diamond$}}
X! \put(25200,15715){\circle*{1}}
X! \put(25385,15719){\circle*{1}}
X! \put(25571,15723){\circle*{1}}
X! \put(25756,15727){\circle*{1}}
X! \put(25941,15731){\makebox(0,0){$\Diamond$}}
X! \put(25941,15731){\circle*{1}}
X! \put(26126,15734){\circle*{1}}
X! \put(26312,15738){\circle*{1}}
X! \put(26497,15741){\circle*{1}}
X! \put(26682,15744){\makebox(0,0){$\Diamond$}}
X! \put(26682,15744){\circle*{1}}
X! \put(26867,15747){\circle*{1}}
X! \put(27053,15750){\circle*{1}}
X! \put(27238,15753){\circle*{1}}
X! \put(27423,15756){\makebox(0,0){$\Diamond$}}
X! \put(27423,15756){\circle*{1}}
X! \put(27608,15759){\circle*{1}}
X! \put(27794,15762){\circle*{1}}
X! \put(27979,15764){\circle*{1}}
X! \put(28164,15767){\makebox(0,0){$\Diamond$}}
X! \put(28164,15767){\circle*{1}}
X! \put(28350,15769){\circle*{1}}
X! \put(28535,15772){\circle*{1}}
X! \put(28721,15774){\circle*{1}}
X \end{picture}
X \\
X & \shortstack{$x$ axis}
X--- 218,442 ----
X \put(28545,20872){\circle*{1}}
X \put(28726,21004){\circle*{1}}
X \put(0,5893){\circle*{1}}
X! \put(181,5895){\circle*{1}}
X! \put(361,5898){\circle*{1}}
X! \put(542,5900){\circle*{1}}
X! \put(722,5902){\makebox(0,0){$\Diamond$}}
X! \put(722,5902){\circle*{1}}
X! \put(903,5904){\circle*{1}}
X! \put(1084,5907){\circle*{1}}
X! \put(1264,5909){\circle*{1}}
X! \put(1445,5911){\makebox(0,0){$\Diamond$}}
X! \put(1445,5911){\circle*{1}}
X! \put(1626,5914){\circle*{1}}
X! \put(1806,5917){\circle*{1}}
X! \put(1987,5919){\circle*{1}}
X! \put(2167,5922){\makebox(0,0){$\Diamond$}}
X! \put(2167,5922){\circle*{1}}
X! \put(2348,5925){\circle*{1}}
X! \put(2529,5928){\circle*{1}}
X! \put(2709,5931){\circle*{1}}
X! \put(2890,5934){\makebox(0,0){$\Diamond$}}
X! \put(2890,5934){\circle*{1}}
X! \put(3071,5937){\circle*{1}}
X! \put(3252,5941){\circle*{1}}
X! \put(3432,5944){\circle*{1}}
X! \put(3613,5947){\makebox(0,0){$\Diamond$}}
X! \put(3613,5947){\circle*{1}}
X! \put(3794,5951){\circle*{1}}
X! \put(3974,5955){\circle*{1}}
X! \put(4155,5959){\circle*{1}}
X! \put(4335,5963){\makebox(0,0){$\Diamond$}}
X! \put(4335,5963){\circle*{1}}
X! \put(4516,5968){\circle*{1}}
X! \put(4697,5972){\circle*{1}}
X! \put(4877,5977){\circle*{1}}
X! \put(5058,5981){\makebox(0,0){$\Diamond$}}
X! \put(5058,5981){\circle*{1}}
X! \put(5239,5986){\circle*{1}}
X! \put(5420,5991){\circle*{1}}
X! \put(5600,5996){\circle*{1}}
X! \put(5781,6001){\makebox(0,0){$\Diamond$}}
X! \put(5781,6001){\circle*{1}}
X! \put(5962,6007){\circle*{1}}
X! \put(6142,6014){\circle*{1}}
X! \put(6323,6020){\circle*{1}}
X! \put(6503,6026){\makebox(0,0){$\Diamond$}}
X! \put(6503,6026){\circle*{1}}
X! \put(6684,6033){\circle*{1}}
X! \put(6865,6041){\circle*{1}}
X! \put(7045,6048){\circle*{1}}
X! \put(7226,6055){\makebox(0,0){$\Diamond$}}
X! \put(7226,6055){\circle*{1}}
X! \put(7407,6064){\circle*{1}}
X! \put(7588,6073){\circle*{1}}
X! \put(7768,6082){\circle*{1}}
X! \put(7949,6091){\makebox(0,0){$\Diamond$}}
X! \put(7949,6091){\circle*{1}}
X! \put(8130,6102){\circle*{1}}
X! \put(8310,6113){\circle*{1}}
X! \put(8491,6124){\circle*{1}}
X! \put(8671,6135){\makebox(0,0){$\Diamond$}}
X! \put(8671,6135){\circle*{1}}
X! \put(8852,6149){\circle*{1}}
X! \put(9033,6164){\circle*{1}}
X! \put(9213,6178){\circle*{1}}
X! \put(9394,6192){\makebox(0,0){$\Diamond$}}
X! \put(9394,6192){\circle*{1}}
X! \put(9575,6211){\circle*{1}}
X! \put(9756,6230){\circle*{1}}
X! \put(9936,6249){\circle*{1}}
X! \put(10117,6268){\makebox(0,0){$\Diamond$}}
X! \put(10117,6268){\circle*{1}}
X! \put(10298,6294){\circle*{1}}
X! \put(10478,6321){\circle*{1}}
X! \put(10659,6347){\circle*{1}}
X! \put(10839,6373){\makebox(0,0){$\Diamond$}}
X! \put(10839,6373){\circle*{1}}
X! \put(11020,6412){\circle*{1}}
X! \put(11201,6451){\circle*{1}}
X! \put(11381,6489){\circle*{1}}
X! \put(11562,6528){\makebox(0,0){$\Diamond$}}
X! \put(11562,6528){\circle*{1}}
X! \put(11743,6590){\circle*{1}}
X! \put(11924,6653){\circle*{1}}
X! \put(12104,6715){\circle*{1}}
X! \put(12285,6777){\makebox(0,0){$\Diamond$}}
X! \put(12285,6777){\circle*{1}}
X! \put(12466,6893){\circle*{1}}
X! \put(12646,7008){\circle*{1}}
X! \put(12827,7124){\circle*{1}}
X! \put(13007,7239){\makebox(0,0){$\Diamond$}}
X! \put(13007,7239){\circle*{1}}
X! \put(13128,7413){\circle*{1}}
X! \put(13248,7588){\circle*{1}}
X! \put(13369,7762){\circle*{1}}
X! \put(13489,7936){\circle*{1}}
X! \put(13610,8111){\circle*{1}}
X! \put(13730,8285){\makebox(0,0){$\Diamond$}}
X! \put(13730,8285){\circle*{1}}
X! \put(13786,8481){\circle*{1}}
X! \put(13841,8678){\circle*{1}}
X! \put(13897,8874){\circle*{1}}
X! \put(13952,9071){\circle*{1}}
X! \put(14008,9267){\circle*{1}}
X! \put(14064,9464){\circle*{1}}
X! \put(14119,9660){\circle*{1}}
X! \put(14175,9857){\circle*{1}}
X! \put(14231,10053){\circle*{1}}
X! \put(14286,10250){\circle*{1}}
X! \put(14342,10446){\circle*{1}}
X! \put(14397,10643){\circle*{1}}
X! \put(14453,10839){\circle*{1}}
X! \put(14453,10839){\makebox(0,0){$\Diamond$}}
X! \put(14453,10839){\circle*{1}}
X! \put(14509,11035){\circle*{1}}
X! \put(14564,11232){\circle*{1}}
X! \put(14620,11428){\circle*{1}}
X! \put(14675,11625){\circle*{1}}
X! \put(14731,11821){\circle*{1}}
X! \put(14786,12018){\circle*{1}}
X! \put(14842,12214){\circle*{1}}
X! \put(14897,12411){\circle*{1}}
X! \put(14953,12607){\circle*{1}}
X! \put(15008,12804){\circle*{1}}
X! \put(15064,13000){\circle*{1}}
X! \put(15119,13197){\circle*{1}}
X! \put(15175,13393){\circle*{1}}
X! \put(15175,13393){\makebox(0,0){$\Diamond$}}
X! \put(15175,13393){\circle*{1}}
X! \put(15296,13567){\circle*{1}}
X! \put(15416,13742){\circle*{1}}
X! \put(15537,13916){\circle*{1}}
X! \put(15657,14090){\circle*{1}}
X! \put(15778,14265){\circle*{1}}
X! \put(15898,14439){\circle*{1}}
X! \put(15898,14439){\makebox(0,0){$\Diamond$}}
X! \put(15898,14439){\circle*{1}}
X! \put(16079,14555){\circle*{1}}
X! \put(16259,14670){\circle*{1}}
X! \put(16440,14786){\circle*{1}}
X! \put(16620,14901){\makebox(0,0){$\Diamond$}}
X! \put(16620,14901){\circle*{1}}
X! \put(16801,14963){\circle*{1}}
X! \put(16982,15026){\circle*{1}}
X! \put(17162,15088){\circle*{1}}
X! \put(17343,15150){\makebox(0,0){$\Diamond$}}
X! \put(17343,15150){\circle*{1}}
X! \put(17524,15189){\circle*{1}}
X! \put(17705,15228){\circle*{1}}
X! \put(17885,15266){\circle*{1}}
X! \put(18066,15305){\makebox(0,0){$\Diamond$}}
X! \put(18066,15305){\circle*{1}}
X! \put(18247,15331){\circle*{1}}
X! \put(18427,15358){\circle*{1}}
X! \put(18608,15384){\circle*{1}}
X! \put(18788,15410){\makebox(0,0){$\Diamond$}}
X! \put(18788,15410){\circle*{1}}
X! \put(18969,15429){\circle*{1}}
X! \put(19150,15448){\circle*{1}}
X! \put(19330,15467){\circle*{1}}
X! \put(19511,15486){\makebox(0,0){$\Diamond$}}
X! \put(19511,15486){\circle*{1}}
X! \put(19692,15500){\circle*{1}}
X! \put(19873,15515){\circle*{1}}
X! \put(20053,15529){\circle*{1}}
X! \put(20234,15543){\makebox(0,0){$\Diamond$}}
X! \put(20234,15543){\circle*{1}}
X! \put(20415,15554){\circle*{1}}
X! \put(20595,15565){\circle*{1}}
X! \put(20776,15576){\circle*{1}}
X! \put(20956,15587){\makebox(0,0){$\Diamond$}}
X! \put(20956,15587){\circle*{1}}
X! \put(21137,15596){\circle*{1}}
X! \put(21318,15605){\circle*{1}}
X! \put(21498,15614){\circle*{1}}
X! \put(21679,15623){\makebox(0,0){$\Diamond$}}
X! \put(21679,15623){\circle*{1}}
X! \put(21860,15630){\circle*{1}}
X! \put(22041,15638){\circle*{1}}
X! \put(22221,15645){\circle*{1}}
X! \put(22402,15652){\makebox(0,0){$\Diamond$}}
X! \put(22402,15652){\circle*{1}}
X! \put(22583,15658){\circle*{1}}
X! \put(22763,15665){\circle*{1}}
X! \put(22944,15671){\circle*{1}}
X! \put(23124,15677){\makebox(0,0){$\Diamond$}}
X! \put(23124,15677){\circle*{1}}
X! \put(23305,15682){\circle*{1}}
X! \put(23486,15687){\circle*{1}}
X! \put(23666,15692){\circle*{1}}
X! \put(23847,15697){\makebox(0,0){$\Diamond$}}
X! \put(23847,15697){\circle*{1}}
X! \put(24028,15702){\circle*{1}}
X! \put(24209,15706){\circle*{1}}
X! \put(24389,15711){\circle*{1}}
X! \put(24570,15715){\makebox(0,0){$\Diamond$}}
X! \put(24570,15715){\circle*{1}}
X! \put(24751,15719){\circle*{1}}
X! \put(24931,15723){\circle*{1}}
X! \put(25112,15727){\circle*{1}}
X! \put(25292,15731){\makebox(0,0){$\Diamond$}}
X! \put(25292,15731){\circle*{1}}
X! \put(25473,15734){\circle*{1}}
X! \put(25654,15738){\circle*{1}}
X! \put(25834,15741){\circle*{1}}
X! \put(26015,15744){\makebox(0,0){$\Diamond$}}
X! \put(26015,15744){\circle*{1}}
X! \put(26196,15747){\circle*{1}}
X! \put(26377,15750){\circle*{1}}
X! \put(26557,15753){\circle*{1}}
X! \put(26738,15756){\makebox(0,0){$\Diamond$}}
X! \put(26738,15756){\circle*{1}}
X! \put(26919,15759){\circle*{1}}
X! \put(27099,15762){\circle*{1}}
X! \put(27280,15764){\circle*{1}}
X! \put(27460,15767){\makebox(0,0){$\Diamond$}}
X! \put(27460,15767){\circle*{1}}
X! \put(27641,15769){\circle*{1}}
X! \put(27822,15772){\circle*{1}}
X! \put(28002,15774){\circle*{1}}
X! \put(28183,15776){\makebox(0,0){$\Diamond$}}
X \end{picture}
X \\
X & \shortstack{$x$ axis}
Xdiff -cr ../gnutex.old/doc/manual/eg4.tex ./doc/manual/eg4.tex
X*** ../gnutex.old/doc/manual/eg4.tex Mon Dec 12 14:29:24 1988
X--- ./doc/manual/eg4.tex Mon Jan 16 18:09:18 1989
X***************
X*** 10,15 ****
X--- 10,16 ----
X \put(25294,21680){\line(-1,0){25294}}
X \put(0,21680){\line(0,-1){21680}}
X \put(-500,0){\makebox(0,0)[r]{$-10$}}
X+ \put(-500,21679){\makebox(0,0)[r]{$10$}}
X \put(0,5419){\line(1,0){500}}
X \put(25294,5419){\line(-1,0){500}}
X \put(-500,5419){\makebox(0,0)[r]{$-5$}}
X***************
X*** 19,25 ****
X \put(0,16259){\line(1,0){500}}
X \put(25294,16259){\line(-1,0){500}}
X \put(-500,16259){\makebox(0,0)[r]{$5$}}
X- \put(-500,21679){\makebox(0,0)[r]{$10$}}
X \put(0,-500){\makebox(0,0)[t]{$-10.0\mu$}}
X \put(25293,-500){\makebox(0,0)[t]{$ 10.0\mu$}}
X \put(6323,0){\line(0,1){500}}
X--- 20,25 ----
XOnly in ./doc/manual: gnutex.dvi
XOnly in ./doc/manual: gnutex.log
Xdiff -cr ../gnutex.old/doc/manual/gnutex.tex ./doc/manual/gnutex.tex
X*** ../gnutex.old/doc/manual/gnutex.tex Tue Jan 10 10:31:11 1989
X--- ./doc/manual/gnutex.tex Mon Jan 16 16:17:20 1989
X***************
X*** 3,9 ****
X % David Kotz (dfk@cs.duke.edu)
X % Duke University Computer Science Department
X % November 1988
X! % Version DRAFT
X
X % some header info
X \input{header}
X--- 3,9 ----
X % David Kotz (dfk@cs.duke.edu)
X % Duke University Computer Science Department
X % November 1988
X! % Version 1.0
X
X % some header info
X \input{header}
X***************
X*** 11,17 ****
X \begin{document}
X
X \title{The Gnu\TeX\ Plotting
X! Program\thanks{This document describes Gnu\TeX\ version 1.3, based on
X gnuplot version 1.0.3. All plots in this document were made with that
X version of Gnu\TeX.} }
X \author{David Kotz \\ \verb+dfk@cs.duke.edu+}
X--- 11,17 ----
X \begin{document}
X
X \title{The Gnu\TeX\ Plotting
X! Program\thanks{This document describes Gnu\TeX\ version 1.4, based on
X gnuplot version 1.0.3. All plots in this document were made with that
X version of Gnu\TeX.} }
X \author{David Kotz \\ \verb+dfk@cs.duke.edu+}
X***************
X*** 25,31 ****
X \newpage
X
X \pagestyle{myheadings}
X! \markright{Gnu\TeX\ Manual DRAFT version 0.5}
X
X \currentspace % defined in header.tex
X
X--- 25,31 ----
X \newpage
X
X \pagestyle{myheadings}
X! \markright{Gnu\TeX\ Manual Version 1.0}
X
X \currentspace % defined in header.tex
X
XCommon subdirectories: ../gnutex.old/help/expressions and ./help/expressions
XCommon subdirectories: ../gnutex.old/help/plot and ./help/plot
XCommon subdirectories: ../gnutex.old/help/set-show and ./help/set-show
XCommon subdirectories: ../gnutex.old/help/expressions/functions and ./help/expressions/functions
XCommon subdirectories: ../gnutex.old/help/expressions/operators and ./help/expressions/operators
SHAR_EOF
fi # end of overwriting check
# End of shell archive
exit 0
Department of Computer Science, Duke University, Durham, NC 27706
ARPA: dfk@cs.duke.edu
CSNET: dfk@duke
UUCP: decvax!duke!dfk