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