%%% %%% File: CHANGES.tex %%% %%% mfpic 0.2.10.8 alfa Tue 28 May 1996 %%% \magnification=\magstep1 % Read `header.tex' for some typesetting definitions. \input header \head{CHANGES HISTORY.} \vskip\myskip\nobreak % \noindent{\it Version 0.0.x:} Development versions. Never released. % \par\noindent{\it Version 0.1:} First version RELEASED to network, 30 June 1992. % \par\noindent{\it Version 0.1.x:} Test versions for new features, fixes, etc. None of them were released for general distribution. Many new features added, bugs worked out, code cleaned up. % \par\noindent{\it Version 0.2:} Second version RELEASED to network, 7 Sept.\ 1992. (Still had 0.1.13.1 version number in code---oops!) % \par\noindent{\it Versions 0.2.x:} Resumed serious development of \TeX\ code: Sun 7 Nov.\ 1993. Much work done on graphbase code in meantime, especially by Geoffrey Tobin. The primary task at this point was a radical rewrite of the \TeX\ code, including defining a prefix form for shading macros. % \par\noindent {\it Bug fix RELEASE Version 0.2.5} of Wed 10 Nov.\ 1993: \par\indent Primarily work by Geoffrey Tobin. % \par\noindent{\it Version 0.2.(5.0.)9} of Mon 28 Feb.\ 1994: Intended to release as version 0.3 to network. \par\noindent {\it Release delayed}, as picture operator code is overhauled to cope with arbitrary overlays: 11 Mar.\ 1994. \par\noindent Horizontal offset by unwanted glue is traced to missing comment characters: Fri 29 Apr.\ 1994. \par\noindent Vertical displacement of shading reported for \MF{} modes with nonrectangular pixels: Mon 23 May 1994. % \par\noindent {\it Bug fix RELEASE 0.2.5.1} of Wed 13 July 1994: Corrected `unxconv' bug which remained in version 0.2.5's graphbase.mf. % \par\noindent {\bf Alpha Test Versions.} \par\noindent {\it Version 0.2.9 Alpha} of Thu 11 August 1994: \par\indent A test RELEASE prior to any official version 0.3, is ready for intrepid users. Introduces coordinate transforms, and other novelties. \par\noindent {\it Update 0.2.9.1 Alpha} of Thu 8 September 1994: \par\indent Fixes a bug in \macro {sclosed} and a bug in \macro {white}, corrects some omissions and typos in the documentation, and adds the \macro {shadewd}, \macro {hatchwd}, \macro {lhatch} and \macro {rhatch} macros. \par\noindent {\it Update 0.2.9.2 Alpha} of Fri 24 February 1995: \par\indent Rearranges some code in \file {mfpic.tex}; little else to report. \par\noindent In {\it 0.2.9.3 Alpha} of Thu 21 March 1995: \par\indent GT renamed \macro {fill} to \macro {gfill}, in order to avoid conflict with the \LaTeX{} \macro {fill} macro. \par\noindent {\it Update 0.2.9.4 Alpha} of Thu 13 April 1995: \par\indent Contributes a test for an existing definition of each macro in \file {mfpic.tex}, \par\indent Renaming of \macro {label} to \macro {tlabel}, and \macro {caption} to \macro {tcaption}, in order to avoid conflict with the \LaTeX{} macros with those names. \par\indent \macro {white} was renamed to \macro {gclear}, because \macro {white} is a likely name for a color macro. \par\indent Also, a new macro for defining \MF{} functions was introduced, because user-defined functions provide more power, and function plotting macros were added that accept \MF{} function names instead of \MF{} expressions. \par\indent Renaming of \file {graphbase.mf} \& \file {graphdoc.tex} to \file {grafbase.mf} and \file {grafdoc.tex} to emphasise incompatible upgrade of \prog {mfpic} \MF{} macros, and to provide $8+3$ filenames for \prog {ms-dos} users. \par\indent Added \macro {hbox\{\}} to start of \macro {mfpic}, for some now forgotten reason to do with formatting, I suppose. \par\noindent {\it Version 0.2.9.5 Alfa} of Wed 19 July 1995: \par\indent Replaces \TeX{} dimensions by font dimensions for economy. \par\indent Renames \macro {mfcmd} to \macro {mfsrc} for clarity. \par\indent Renames \macro {wedge} to \macro {sector} to avoid conflict with the character name defined in plain \TeX{} and \LaTeX{}. \par\indent Introduces \macro {mftitle}, \macro {tmtitle} and \macro {plr}. \par\indent Abolishes \macro {plrpoint}, \macro {plrlines}, \macro {plrcurve} and \macro {plrcyclic} as redundant specialisations. The meaning of \macro {turtle} is changed to a Cartesian form, for flexibility. \par\indent Changed \file {objects.tex} to use \macro {tmtitle}, \macro {plr}, \macro {mfsrc}, \macro {gfill}, \macro {gclear}, \macro {tlabel}, and \macro {tcaption}. \par\indent Rendering macros redesigned, and \macro {setrender} introduced. Coordinate transforms in \file {grafbase.mf} made slightly more robust. Begin an attempt to make \file {grafbase.mf} compatible with John Hobby's MetaPost drawing program. \par\indent Added comment in \file {grafbase.mf} about dangers of \mfc {text} arguments, \par\indent Updated the documentation files \file {grafdoc.tex}, \file {Acknowl.tex}, \file {README2}, \file {MANIFEST} and \file {mfpicdoc.tex}. \par\noindent {\it Update 0.2.9.6 Alfa} of Mon 24 July 1995: \par\indent Contributes \macro {thatch} which provides hatching by lines at any angle. \par\indent Modifications to \macro {pen}, \macro {shadewd} and \macro {hatchwd}, along with changes to \file {grafbase.mf} to make drawing, shading and hatching more independent. \par\indent Decided that the behavior of \macro {point} inside a \env {connect} environment was bizarre, hazardous, and an unnecessary complication to the \prog {mfpic} macros, so \macro {point} has reverted to its original, obvious and simple definition. \par\indent Renamed \macro {rotate} to \macro {rotatepath}. \par\indent Also renamed the affine transform macros, so that they no longer use the `s' of the present tense, which could be mistaken for a plural. (The sample files did not hitherto use the affine transform macros, so the damage may be slight.) \par\indent Modified \file {grafbase.mf} to use a transform stack to implement local \MF{} coordinate systems; this may be more robust, and extensible to other graphic localisations. \par\noindent {\it Update 0.2.9.7 alfa}, Fri 18 August 1995: \par\noindent {\it Changes to \file {pictures.tex}:} \par\indent Replaced version from `{\tt 0.2.9.1 alpha Thu 8 September 1994}' to `{\tt 0.2.9.7 alfa Sat 5 August 1995}'. \par\indent Added a comment containing an ASCII sketch of the commutative diagram example, and indicated where each arc is drawn. \par\indent Replaced all uses of \macro {label} by \macro {tlabel}, \macro {caption} by \macro {tcaption}, \macro {fill} by \macro {gfill}, \macro {wedge} by \macro {sector}. \par\indent Added some uses of \macro {mftitle}. \par\indent Moved one arrow in the commutative diagram, to illustrate the {\tt b} option of the \macro {arrow} command. \par\indent Simplified \MF{} algebraic expressions used in function plots, so that they use fewer {\tt *} operators. \par\indent Edited the example of \macro {turtle} to allow for the new semantics of rectangular coordinates. \par\indent Captioned all eight figures, with figure numbers and descriptions. \par\indent Deleted an instance of `\macro {vfill}\macro {eject}'. \par\indent Increased the complexity of the seventh figure, to illustrate use of hatching, closing, point, dotted curves, and so forth. \par\indent Made figures~seven and~eight twice as large. \par\noindent {\it Changes to \file {lapictures.tex}:} \par\indent Renamed version from `{\tt 0.2.9.1 alpha Thu 8 September 1994}' to `{\tt 0.2.9.7 alfa Thu 17 August 1995}'. \par\indent Magnified the LaTeX pictures document to the same scale as the plain TeX one, using the \macro {mag} command. \par\indent Set \macro {fboxsep} to zero. \par\indent Initialised arrow heads using \macro {headshape}. \par\indent Commented out the \env {center} environment around the commutative diagram example. \par\indent Placed \macro {fbox} commands around each picture. \par\indent Other changes as in \file {pictures.tex}. \par\noindent {\it Extensive changes to \file {grafbase.mf}:} \par\indent Turned \mfc {warningcheck} off. \par\indent Used an explicit \mfc {designsize}. \par\indent Debugging refined. \par\indent Rearranged some code. \par\indent Made \mfc {ClipOn} \mfc {boolean} (instead of \mfc {numeric}). \par\indent Added \mfc {maparr} macro. \par\indent Eliminated mistake of using \mfc {hround} in graph-to-pixel coordinate transformation. \par\indent Remarked that clipping can distort paths by changing their points. \par\indent Tried to clip on character boundary. \par\indent Added \MF{} vector coordinate transform, to complement affine transform for geometric points. \par\indent Write message when drawing nominal \MF{} bounding box. \par\indent Changed \mfc {beginmfpic} \MF{} macro to take only the character code as an argument. \par\indent Introduced global \MF{} \mfc {transform} stack, for coordinate changes. \par\indent Replaced \mfc {currentpen} by \mfc {drawpen} in path stroking. \par\indent Changed \mfc {ourfill} and \mfc {ourunfill} to use an {\it undelimited} \mfc {path} argument. \par\indent Added \mfc {setdotpath}, \mfc {ourdot}. \par\indent Changed \mfc {onedot} to use \mfc {dotpath} instead of a scaled \mfc {shape} path. \par\indent Edited \mfc {tightbbox} and \mfc {bbox} to take a path described in pixel coordinates as their first argument, instead of one in graph coordinates. \par\indent Added \mfc {tbbox}. \par\indent Did some more saving of local variables in \MF{} functions. \par\indent Deleted \mfc {lhatchf} and \mfc {rhatchf}. \par\indent Added \mfc {thatchf}, \mfc {thatch}, \mfc {hhatch} and \mfc {xhatch}. \par\indent Rewrote mfc{lhatch} and \mfc {rhatch} to use \mfc {thatch}. \par\indent Edited \mfc {dotted}, renamed it \mfc {dashed}. \par\indent Added a separate \mfc {dotted} \MF{} macro. \par\indent Changed \mfc {head} from a \mfc {def} to a \mfc {vardef}; edited \mfc {head} to clarify its code. \par\indent Altered axis tic mark macros, \mfc {xmarks} and \mfc {ymarks} to ensure that the tic marks are always at right angles to their axes, irrespective of coordinate transforms. \par\indent Added a \mfc {grid} command. \par\indent Renamed \mfc {mkellipse} to \mfc {ellipse}, deleted old \mfc {ellipse}. \par\indent Renamed \mfc {mkarc} to \mfc {arc}. \par\noindent {\it Update 0.2.9.8 alfa}, Mon 11 September 1995: \par\noindent Added to \file {Acknowl.tex}. \par\noindent In \file {mfpic.tex}: \par\indent Add comment about use of \macro {ignorespaces} to skip spaces in user's document after \macro {mfpic} command. \par\indent Retain line separations of user's document's \env {mfpic} environment when writing \MF{} file. This prevents long \MF{} commands from exceeding \MF{}'s input buffer. \par\noindent {\it Update 0.2.9.9 alfa}, Thu 5 October 1995: \par\noindent In \file {mfpicdoc.tex}: \par\indent changed macro{wedge} references to \macro {sector}, and \macro {rotateabout} reference to \macro {rotatearound}. \par\indent Added some logical formatting commands to \file {mfpicdoc.tex}. \par\indent Included much more information about recent changes (from {\it 0.2.9.1} to {\it 0.2.9.8}). \par\noindent In \file {mfpic.tex}: \par\indent Renamed \macro {@graph} to \macro {@graphfont} for identifiability. \par\noindent {\it Update 0.2.9.10 alfa}, Fri 6 October 1995: \par\noindent In \file {grafbase.mf}: \par\indent Deleted spurious argument to \macro {xyswap}. \par\indent Changed \macro {store} to take two arguments, and to logically `bracket' the second, which is the path description. \par\noindent {\it Update 0.2.9.11 alfa}, Fri 24 November 1995: \par\noindent In \file {grafbase.mf}: \par\indent Fixed X-coordinate rounding bug in \mfc {thatchf}. \par\noindent {\it Revision 0.2.10.0 alfa}, Wed 17 January 1996: \par\noindent In \file {mfpic.tex} and \file {grafbase.mf}: \par\indent Changed names of five \MF{} macros: \macro {xslanted}, \macro {yslanted}, \macro {zslanted}, \macro {boosted}, \macro {xyswapped} to \macro {xslant}, \macro {yslant}, \macro {zslant}, \macro {boost}, \macro {xyswap}. \par\noindent In \file {grafbase.mf}: \par\indent Replaced my dash and dot code by Frank Michielsen's, modified to use \macro {suffix} arguments instead of \macro {text} for l-values. \par\indent Also, the \macro {dotsize} argument to \macro {dotted} is now effective. \par\indent Deleted the unused \macro {ourdraw, ourfill, ourunfill} macros. \par\indent Simplified the \macro {dotpath} and \macro {onedot} initialisation code; it was too baroque. \par\indent Added a \macro {pixdot} macro as a shorthand for \macro {picdot (active\_plane, onedot, p)}. \par\indent Replaced the \macro {apoint (w, a)} macro by \macro {bpoint (w, b)} which is a shorthand for \macro {fullcircle scaled w shifted b}. \par\indent Gratuitously added Bruce Leban's overlay macros from \MFbook{}, p 295. \par\indent Cosmetic reformatting of source. \par\noindent In \file {Acknowl.tex}: \noindent Add Frank Michielsen's name. \par\noindent {\it Revision 0.2.10.1 alfa}, Thu 18 January 1996: \par\noindent In \file {grafbase.mf}: \par\indent Fixed wrong declaration in \macro {dotted} of \macro {dp} from \macro {path} to \macro {pair}. \par\noindent {\it Revision 0.2.10.2 alfa}, Tue 23 January 1996: \par\indent Editing to restore compatibility with older graphbase.mf versions used with \prog {xfig}'s (actually, \prog {transfig}'s \prog {fig2dev}'s) \prog {mf} driver (\file {genmf.c}). \par\noindent In \file {mfpic.tex}: \par\indent Edited writing of setting of \MF{} variables \macro {xscale} and \macro {yscale} to omit factor of \macro {unitlen}. \par\indent Changed references to \gbc {drawwd} to \gbc {penwd} in \macro {drawpen}. \par\noindent In \file {grafbase.mf}: \par\indent Add declarations and initialisations of these variables: \macro {unitlen, xscale, yscale, xneg, xpos, yneg, ypos}. \par\indent Renamed \macro {drawwd} to its former name, \macro {penwd}. \par\indent Again made \macro {penwd, hdwdr, hdten} into \macro {newinternal} variables, and assign them using \macro {interim}. \par\indent Definition of ztr now includes \macro {unitlen} as a factor in the x and y scaling. \par\indent \macro {mfpicenv} and \macro {endmfpicenv} defined as empty statements. \par\indent \macro {bounds} defined for setting \macro {xneg, xpos, yneg, ypos}. \par\indent \macro {beginchar} now includes \macro {unitlen}. \par\noindent {\it Revision 0.2.10.3 alfa}, Tue 6 February 1996: \par\noindent In \file {mfpicdoc.tex}: \par\indent Updated documentation to cover to \macro {dotted}, \macro {dotsize} and \macro {dotspace} on the one hand, and \macro {dashed}, \macro {dashlen} and \macro {dashspace} on the other. \par\indent $\cdots$ \par\noindent {\it Revision 0.2.10.4 alfa}, Mon 26 February 1996: \par\noindent In \file {mfpic.tex}: \par\indent Let internal \macro {sim@gdef} (simple global definition) stand for \macro {gdef}. \par\indent Added \macro {newgdef} for new global definitions with a test for previous definition. \par\indent Replaced use of \macro {obeylines} by \macro {mfpicobeylines}, to use \macro {endgraf} instead of \macro {par}, because LaTeX(2e) redefines \macro {par} with unpleasant effects on \MF{} files when using LaTeX's center environment. (To wit, LaTeX's \env {center} environment would write \macro {@@par} to the \MF{} file. \par\indent Defined \macro {preservelines} to call \macro {mfpicobeylines} then set \macro {newlinechar} to control-M (carriage return). \par\indent Use \macro {preservelines} in \macro {mfsrc}, thus bypassing (I hope) the mischief arising from LaTeX in the center environment. \par\indent Wrapped replacement text of \macro {mfsrc} in a layer of braces. \par\indent Added descriptive comments for \macro {tlabel} and \macro {tcaption}. \par\indent Set \TeX's primitives \macro {leftskip} and \macro {rightskip} to zero dimension inside \macro {tcaption}, so as to protect typesetting of diagrams' captions from unwanted effects. \par\noindent {\it Revision 0.2.10.5 alfa}, Sat 9 March 1996: \par\noindent Minor reformatting of \file {mfpic.tex}, including adding spaces, adding comment characters at end of more lines, and renaming some internal register variables. \par\noindent Introduced \macro {polyline} as an alternative name for \macro {lines}. \par\noindent In order to avoid repetition of side-effects, changed \macro {tcaption} to use \macro {unhbox}\macro {@textbox}, instead of repeating its text argument. \par\indent {\it Revision 0.2.10.6 alfa}, (two hours later) on Sat 9 March 1996: \par\indent Updated \file {mfpic.tex} and documentation files to incorporate improvements by Daniel H.~Luecking: \par\indent a loading check that automatically saves and restores the catcode of `@'; \hfil\break the name of the graph base is now stored in a macro near the top of \file {mfpic.tex}; \hfil\break \macro {leavevmode} is now moved [GT has, for now, commented it out completely]; \hfil\break \macro {polyline} instroduced as a synonym for \macro {lines}; a \macro {polygon} figure has been introduced; \hfil\break {\bsl\bsl} specifies explicit line breaks in tlabels and tcaptions; \hfil\break \macro {onelevel} causes one level of expansion in an \macro {edef}; \hfil\break \macro {savepic} and \macro {copypic} allow saving, use and copying of an entire \prog {mfpic} picture, including its tcaptions and tlabels. \par\indent Also modified \macro {tcaption} code to prevent repeated use of the text argument, as that can cause side effects, as reported by Dennis Petrovic. \par\noindent {\it Revision 0.2.10.7 alfa}, Sat 28 March 1996: \par\noindent First RELEASE via Geoffrey Tobin's School's local anon ftp site: \hfil\break \hskip 1cm \file {ftp.ee.latrobe.edu.au : pub/gt/mfpic} \par\indent Added \file {skip-pix.tex} file, which tests whether \TeX's \macro {leftskip} primitive breaks up \prog {mfpic}'s typesetting of diagrams. Fortunately, it seems not. \par\noindent {\it Revision 0.2.10.8 alfa}, Tue 26 May 1996: \par\noindent Second, and bug fix, RELEASE via Geoffrey Tobin's anonymous ftp area. \par\indent Due to change in syntax of \macro {store} to take the path command as a second argument (which made coding of \file {mfpic.tex} easier), \file {objects.tex} and part of \file {mfpicdoc.tex} needed to be amended. Reported by Miroslav Dont (Thu 16 May 1996). \par\indent Descriptions of \LaTeX\ environments clarified to emphasise that \prog {mfpic}'s plain \TeX\ command names may be used in \LaTeX. This is useful to know when designing automatic code generators. Reported by Van Snyder (Fri 17 May 1996). \par\indent Added hyphenation to \macro {MFbook} in documentation macro file \file {header.tex}. \par\indent Noticed that the method by which the line breaks in the \TeX{} file are copied into the \MF{} file can cause command arguments to be omitted from the \MF{} file unless at least the left brace (immediately before the arguments) occurs on the same line as the command. Corrected \file {objects.tex} to obey this restriction. Also noted this phenomenon in \file {mfpicdoc.tex}. Effect reported by Miroslav Dont (Thu 16 May 1996). \par\indent Updated \file {lapictures.tex} to \LaTeXe. \par\indent Added \LaTeXe\ logo to \file {header.tex}. \bye %%% %%% end CHANGES.tex %%%