TeXhax Digest Monday, October 24, 1988 Volume 88 : Issue 94 Moderator: Malcolm Brown Today's Topics: Rotating portions of TeX output (in TeXtures) Re: TeXhax Digest V88 #90 typographical calculator footnote numbering macros DVI-driver for HP DeskJet and HP Paintjet Font attributes (Re: TeXhax Digest V88 #88 (LaTeX notes)) Rotating output TeXtures vs TeX PC Ramdisk Performance Troff to LaTeX conversion flow charts Remark on Volume 88, Issue 92 TeX on a Mac II re: computer modern for aps typesetter. ---------------------------------------------------------------------- Date: Mon, 17 Oct 88 14:24:28 PDT From: KARNEY%PPC.MFENET@NMFECC.ARPA Subject: Rotating portions of TeX output (in TeXtures) Various DVI drivers allow you to insert graphics into TeX output. However, it's not always possible to include TeX labels because the labels need to be rotated. (E.g., the label of the y axis would normally be rotated by 90 degrees.) The following macros implement rotation of TeX labels by arbitrary angles. (I expect rotations by multiples of 90 degrees to look best.) These probably only work with TeXtures (TeX for the Mac). However, it may also work with other PostScript drivers. These make use of the \special {postscript ...} to insert PostScript code into the output. This is used to rotate the coordinate system, so that subsequent TeX output appears rotated. These macros work with both Plain TeX at LaTeX. Charles Karney ____________________________________________________________________________ % Rotation of TeX output with TeXtures (and maybe? other PostScript drivers) % Written by % Charles Karney % Plasma Physics Laboratory Phone: +1 609 243 2607 % Princeton University MFEnet: Karney@PPC.MFEnet % PO Box 451 ARPAnet: Karney%PPC.MFEnet@NMFECC.ARPA % Princeton, NJ 08543-0451 Bitnet: Karney%PPC.MFEnet@ANLVMS.Bitnet % The following assumptions are made about the PostScript that TeXtures % generates: % (1) A single transform is used for all TeXtures output. % (2) The PostScript \special is bracketed by gsave ... grestore. % (3) Immediately after the gsave, the coordinate system is translated so the % origin is at the current point; and the y axis is flipped. % (4) TeXtures doesn't leave anything on the stack for long periods. (This % simplifies restoring the default coordinate system.) % Usage: % abc {\rotate 90 def} ghi % On a non-postscript printer this will print the same as ``abc def ghi''. % With TeXtures, the ``abc'' and ``ghi'' will appear on the page in the % same place as before, however the ``def'' is bodily rotated counter- % clockwise by 90 degrees. The rotation is about the bottom left corner of % the ``d''. The braces serve to delimit the extent of the rotated text. % The rotation angle is specified as an integer number of degrees. It can % be negative. \rotate should always appear within a group (not at top- % level). Rotations can be stacked, e.g., % abc {\rotate 90 def \rotate 90 ghi} jkl % would print as % ihg % f % e % d % abc jlk % except that the letters ``def'' would be sideways, and ``ghi'' would be % upside down. \catcode`\@=11 % We we can use @ in macro names \def\rotate{\afterassignment\@rotate\count@} \def\@rotate{\aftergroup\@unrotate \special {postscript 0 0 transform % Get current location in device % coordinates. grestore % Undoes TeXtures gsave. matrix currentmatrix % Save current transform on stack for use % by \@unrotate. 3 1 roll % Put transform at back of current location. itransform % Current location in TeXtures coords dup 3 -1 roll % Duplicate the location; x y ==> x y x y dup 4 1 roll exch translate % Translate origin to current location 1 -1 scale % Flip y coordinate \the\count@\space rotate % Rotate by \@rotation 1 -1 scale % Unflip y coordinate neg exch neg exch translate % Translate origin back gsave}} % To match grestore \def\@unrotate{\special {postscript grestore % Undoes TeXtures gsave setmatrix % Set current transform to value saved on % stack. (Hopefully, it's still there.) gsave}} % To match grestore \catcode`\@=12 % A small test... \magnification\magstep1 \null\vskip 2in \hskip 2in \def\r{\rotate -10 } {\rotate 90 This \r is \r a \r test \r of \r text \r rota\r tion. $\r \alpha \r + \r \beta \r =\r \gamma.$ Note that math mode counts as grouping.} \vskip 1in AAAA{\rotate -45 BBBB{\rotate -15 CCCC}DDDD}EEEE \bye ------------------------------ Date: Mon, 17 Oct 88 20:03:49 EDT From: spooky!witr@bu-it.BU.EDU Subject: Re: TeXhax Digest V88 #90 In this issue, Chris Torek makes the claim: For whatever reasons, at least one common VMS TeX has chosen to violate the proper DVI file encoding. A DVI file is supposed to end with between 4 and 7 bytes of 223's. This is a common and unfortunate misconception. Section 591 of ``TeX: The Program'' states that the end of the postamble (following the post_post byte) has an id byte ``followed by four or more bytes that are all equal to the decimal number 223''. Any number of these bytes are allowed as long as at least 4 are present. This misconception has caused much grief to users who attempt to use DVI file interpreters that enforce the 4 to 7 byte rule. Robert Withrow, R.W. Withrow Assoc., 27 Greenwood Ter., Swampscott, MA 01907 witr%spooky.UUCP@buita.bu.edu, (Work) +1 617 593 8452. ------------------------------ Date: Tue, 18 Oct 88 09:25 GMT From: Peter Flynn UCC Subject: typographical calculator I have put together a simple spreadsheet-based typographic calculator for TeX on the PC. Currently it runs in InstaCalc(tm) from FormalSoft (Sandy, Utah) because that happens to be what I use, but I guess it could easily be ported into other systems. Here is the screen as it appears when popped up: +---------------------------------------------------------------------------+ |TeXcalc Typographic design calculator for TeX Enter units below | | | |Faces: Typeface:cmr10 Units:pt | | cmr Design Size: 10 pt (1pt = 1 pt) | | cmbx Scaling:\magstep 0 ( = 1 truept) | | cmsl Scale Factor: 1000 ( at current scaling) | | cmti x-Height: 4.310 truept | | cmtt Quad Width: 10.000 truept Valid Units| | cmmi Dimension Unit pt | |(10/12/17 pt) pc | | \hsize= 6.5 in 469.755 truept in | | \vsize= 9.5 in 686.565 truept bp | |---------------------------------------------------------------- cm | | Enter your dimension: 1 in 72.270 truept mm | |---------------------------------------------------------------- dd | | \parskip= 0 pt 0.000 truept cc | | \parindent= 20 pt 20.000 truept sp | | \baselineskip= 12 pt 12.000 truept em | | ex | |Fractions 1 over 64 = 0.015625 decimal mu | +---------------------------------------------------------------------------+ You can change the typeface (design size is picked up from the name altho you could change that too, if you want), scale factor (\magstep), and the units you want everything expressed in. Then just stick in the dimension you are trying to calculate and the answer is worked out. The nice thing is it is memory resident, so you can pop it up and down during your edit session and it's small enough for PC-TeX to run with it loaded. I have sent the normalised (.SPS) file (plain text) and the .INS (binary) to the PUBLIC archive at KIRK.ASTON.AC.UK, and the LISTSERVs at Heidelberg (DHDURZ1.BITNET) and Texas A&M (TAMVM1.BITNET): if it's any use to anyone, maybe someone can walk it over to the InterNet. I guess I can send copies individually if people have problems attaching to the servers. InstaCalc itself can be downloaded from SIMTEL-20 (via TRICKLE@DKTC11.BITNET for European users). ...Peter Flynn | ------------------------------ Date: Tue Oct 18 13:43:27 MET 1988 From: XITIJSCH%DDATHD21.BITNET@Forsythe.Stanford.EDU Subject: footnote numbering macros In TeXhax #89 I have ??? to my macros which do the numbering of footnotes per page. Chris Thompson has written to me (and to TeXhax, but this issue I have not get until now): > [...] As not all of > us can access such file servers, could someone post a brief description > of the techniques used to achieve the effect (which, offhand, I would > unwisely have claimed to be impossible). Well, here are the techniques. The description is copied verbatim from the macro file -- it appears there as the macro documentation. The documentation parts for the housekeeping macros and the influence of the \output routine are not shown here. The implementation strategy is the following: Because the contents of one page is determined at (nearly) random places with an asynchronous invogation of the output routine, we can not give numbers to every footnote subsequently between output and output: a footnote at the top of a page will perhaps get a number before the output is triggered and there is no way to change this number. The problem is like forward references to text places and it is solved in a similar fashion. We need two TeX runs to get the numbering right but this is acceptable (who's got a finished text after one run?!). In the first run we gather up in a file the information where the footnotes are standing and in the second run this information is used. We must identify all footnotes if we write their numbers to the footnote file, so each footnote gets an unary name built with the counter \footno. The name is `f@', where is the footnote name number. This name building scheme has several disadvantages, e.g. the insertion of a new footnote destroys the knowledge of the former run about the following footnotes. It remains an open problem how to get the numbers there. The footnote numbering must be initialized to zero in the output routine and every footnote must increment this footnote number. The only thing that is expanded during the output process is the output routine itself and the \write's, but the expanded tokens of \write are written out, not interpreted. Well, the idea is simple: We defer the counting to the second run and write the instructions that do this to the file. The counting is then done while reading the footnote file. That means that the output routine adds entries like \@footno = 0 and every footnote adds an entry that looks like \advance\@footno by 1 \xdef\csname f@ \endcsname{\number\@footno} where is replaced by the current footnote name number. The expansion of \footno must be made in \footnote. After writing the entry to the footnote file the \footnote macro defines the footnote mark to `?' if it is not already defined (from a previous run). The macros are still not fully developed, some features like warnings when new footnotes are inserted or when footnote numbers have been changed are missing. Other improvements can be made on the construction of the footnote names. By involving section numbers or analogous numbers the ``running away'' of the footnote numbers (caused by the insertion of a new footnote) can be limited. These are only the principles -- for more information look at the macros. (If I have gone into the details Malcolm would have cancelled my submission once again...) Joachim TH Darmstadt Institut f\"ur Theoretische Informatik Joachim Schrod Alexanderstr. 24 Bitnet: XITIJSCH@DDATHD21 (Please try again if I don't answer --- D-6100 Darmstadt our Bitnet connection is very instable...) West Germany ------------------------------ Date: 18 Oct 88 11:20 GMT From: Slaby Subject: DVI-driver for HP DeskJet and HP Paintjet Are there yet any DVI-drivers for the new inkjet printers HP Deskjet (300 dpi) and HP PaintJet (180 dpi)? Any informations and hints are welcomed. slaby@urz.ku-eichstaett.dbp.de ------------------------------ Date: Tue, 18 Oct 88 09:35:53 EDT From: Ashwin Ram Subject: Font attributes (Re: TeXhax Digest V88 #88 (LaTeX notes)) > Date: Mon, 10 Oct 88 16:13:53 PDT > From: lamport@src.dec.com (Leslie Lamport) > Subject: Re: TeXhax Digest V88 #88 (LaTeX notes) > > Bernie Cosell writes: > > It seems to me that what LaTeX should have is four families (roman, > sanserif, typewriter and smallcaps) and two style attributes (italic > and bold). The families should _switch_ leaving the prevailing style > alone; the styles should *stack* leaving the prevailing family and any > other styles alone. If I'm italic, and I enter a \bf region, I should > expect to now be in bold-italic. > > What he wants is quite reasonable, but impractical. The problem is that > this would involve a large number of fonts--roughly four times as > many as now used--most of which do not exist. But even when the fonts exist LaTeX's behavior is non-intuitive. E.g., if I'm in \tt and I do a \large, I expect to get large typewriter font. Instead, I get large roman. However, the large typewriter font does exist, as can be verified by typing another \tt after going into \large. I think \bf and \em (if not \it) should also be able to switch to the appropriate style within the current family (e.g., \tt\em could switch you to slanted typewriter if there is no italic typewriter). At least font size should be orthogonal to font family. I understand Leslie's point about practicality, but LaTeX should have some degree of what amounts to d.w.i.m. capability, instead of doing the wrong thing altogether. -- Ashwin. ------------------------------ Date: Tue, 18 Oct 88 08:14:45 PDT From: John Sotos Subject: Rotating output orgive me if this topic is addressed in the TeXbook, but I have been unable to find it discussed there. Is there a way to [conveniently] rotate the output of an hbox or vbox by 90 degrees? (Ie, so as to write along the sides of a page.) Thanks. John ------------------------------ Date: Tue, 18 Oct 88 12:04:15 CDT From: thisted@galton.uchicago.edu (Ronald A. Thisted) Subject: TeXtures vs TeX One of my colleagues here has run the same input through TeX on our Suns (This is TeX, Version 2.0 for Berkeley UNIX (preloaded format=plain 86.8.21) and on version 1.01 of TeXtures for the Macintosh. The two versions ostensibly are using cm fonts, but occasionally produce different line and page breaks. Any ideas as to the cause of the disparity? Ron Thisted Department of Statistics/The University of Chicago thisted@galton.uchicago.edu ------------------------------ Date: Tue, 18 Oct 88 13:32:20 EDT From: "David F. Rogers" Subject: PC Ramdisk Performance G'day, For those using TeX on PC's the results of a recent experiment might be of interest. I currently am using three different PC configurations: A Zenith 248 (8 mhz 1 wait state 80286), a vanilla IBM AT (6 mhz 80286), and a Zenith 386 machine. Both 80286 machines have large ramdisks (3meg). I was interested in investigating the performance improvements using the ramdisk vice a standard winchester disk. Since the vanilla AT is the slowest of the machines and thus would yield the largest differences in performance, I used that machine for the experiments. MicroTeX 1.5A1 cmfont version Arbortext's Preview version 4.6 Arbortext's Dvihp version 4.6 were used. For both cases below, tex.exe, preview.exe, and dvihp.exe as well as an approximately 16k macro package were resident and accessed from the ramdisk. For the case labelled Winchester below all other i/o was to/from the Winchester disk. For the case labelled Ramdisk below all other i/o was to/from the ramdisk. The test vehicle was a 6 page section (Sec. 5-6) from the 2nd edition of Mathematical Elements for Computer Graphics by Rogers & Adams, McGraw-Hill Book Co. 1989. The section contains a goodly amount of math including several matrices. Results: Program Winchester Ramdisk Diff (sec) Diff (%) TeX 79 sec 75 sec 3 sec 5% Preview 12 sec 9 sec 3 sec 25% Dvihp 89 sec 69 sec 20 sec 22% For Preview the times represent the time to display the first page. All times were recorded with a stop watch. Although the % savings for Preview is at first impressive, the actual time savings is not. The actual savings for TeX processing is minimal. This is not surprising since TeX is compute bound. The biggest savings occur for Dvihp. However, with a good previewer the requirement for paper copy is significantly reduced. From these results, I conclude that for TeX applications large ramdisks are not cost effective. An additional consideration is that using a ramdisk saves wear and tear on the Winchester disk. However, it also increases the possibility that the file being worked on will be lost when someone (usually me) turns the machine off without copying the new version from the ramdisk to the Winchester disk. Since TeX, Dvihp and Preview are all large programs, sufficient ramdisk to hold these programs and the appropriate text editor do make a significant difference in performance. Currently a megabyte of ramdisk is adequate for that purpose. Professor David F. Rogers Aerospace Engineering Department U.S. Naval Academy Annapolis, MD 21402 USA Tel: 301-267-3283/4/5 ARPANET: dfr@usna.mil UUCP: ~uunet!usna!dfr ------------------------------ Date: Tue, 18 Oct 88 12:20:11 EDT From: jorgnsn%QUCIS.BITNET@Forsythe.Stanford.EDU Subject: Troff to LaTeX conversion We're looking for tools to help translate Troff documents into LaTeX documents. The result should be readable and modifiable by humans. That means we need a high-level translator that turns a document containing, say, me macros into a LaTeX document, not a low-level translator that runs all of the Troff preprocessors and macro substitutions, and then translates the resulting Troff primitives into TeX primitives. Does somebody already have such a tool? Are there any tools at all for going from Troff to TeX? We're running Tex 2.00 and LaTeX 2.09 on Sun 3s, under SunOS 3.5. Please mail replies to me. Thanks for your help. ------------------------------ Date: Tue, 18 Oct 88 17:04 EST From: Subject: flow charts Hi, I was wondering if there is a utility in Tex or Latex that will allow one to draw flow charts. If so, I would like information on how to access it. Thanks Mukund ------------------------------ Date: Tue, 18 Oct 88 14:40:35 PDT From: ribet@cartan.Berkeley.EDU (Kenneth A. Ribet) Subject: Remark on Volume 88, Issue 92 In Volume 88 : Issue 92, Rodney Topor asks about theorem-like environments whose text is not italicized. The macro files at U. C. Berkeley contain a "remark.sty" file which apparently performs the required task. For the sake of completeness, I append its text below. I was surprised not to find any indication of the origin of this file in the initial lines: ---(text follows)--- % **************************************** % * REMARK ENVIRONMENTS * % **************************************** % % The user creates his own remark-like environments with the command % \newremark{NAME}{TEXT}[COUNTER] or % \newremark{NAME}[OLDNAME]{TEXT} % This defines the environment NAME to be just as one would expect a % remark environment to be, except that it prints ``TEXT'' instead of % ``Remark''. % % If OLDNAME is given, then environments NAME and OLDNAME use the same % counter, so using a NAME environment advances the number of the next % NAME environment, and vice-versa. % % If COUNTER is given, then environment NAME is numbered within COUNTER. % E.g., if COUNTER = subsection, then the first NAME in subsection 7.2 % is numbered TEXT 7.2.1. % % The way NAME environments are numbered can be changed by redefining % \theNAME. % % DOCUMENT STYLE PARAMETERS % % \@rmkcounter{COUNTER} : A command such that % \edef\theCOUNTER{\@rmkcounter{COUNTER}} % defines \theCOUNTER to produce a number for a remark environment. % The default is: % BEGIN \noexpand\arabic{COUNTER} END % % \@rmkcountersep : A separator placed between a remark number and % the number of the counter within which it is numbered. % E.g., to make the third remark of section 7.2 be numbered % 7.2-3, \@rmkcountersep should be \def'ed to '-'. Its % default is '.'. % % \@beginremark{NAME}{NUMBER} : A command that begins a remark % environment for a 'remark' named 'NAME NUMBER' -- % e.g., \@beginremark{Lemma}{3.7} starts Lemma 3.7. % % \@opargbeginremark{NAME}{NUMBER}{OPARG} : A command that begins a remark % environment for a 'remark' named 'NAME NUMBER' with optional % argument OPARG -- e.g., \@beginremark{Lemma}{3.7}{Jones} % starts `Lemma 3.7 (Jones):'. % % \@endremark : A command that ends a remark environment. % % \newremark{NAME}{TEXT}[COUNTER] == % BEGIN % if \NAME is definable % then \@definecounter{NAME} % if COUNTER present % then \@addtoreset{NAME}{COUNTER} fi % \theNAME == BEGIN \theCOUNTER \@rmkcountersep % eval\@rmkcounter{NAME} END % else \theNAME == BEGIN eval\@rmkcounter{NAME} END % \NAME == \@rmk{NAME}{TEXT} % \endNAME == \@endremark % else error % fi % END % % \newremark{NAME}[OLDNAME]{TEXT}== % BEGIN % if \NAME is definable % then \theNAME == \theOLDNAME % \NAME == \@rmk{OLDNAME}{TEXT} % \endNAME == \@endremark % else error % fi % END % % \@rmk{NAME}{TEXT} == % BEGIN % \refstepcounter{NAME} % if next char = [ % then \@yrmk{NAME}{TEXT} % else \@xrmk{NAME}{TEXT} % fi % END % % \@xrmk{NAME}{TEXT} == % BEGIN % \@beginremark{TEXT}{\theNAME} % \ignorespaces % END % % \@yrmk{NAME}{TEXT}[OPARG] == % BEGIN % \@opargbeginremark{TEXT}{\theNAME}{OPARG} % \ignorespaces % END % \def\newremark#1{\@ifnextchar[{\@ormk{#1}}{\@nrmk{#1}}} \def\@nrmk#1#2{% \@ifnextchar[{\@xnrmk{#1}{#2}}{\@ynrmk{#1}{#2}}} \def\@xnrmk#1#2[#3]{\expandafter\@ifdefinable\csname #1\endcsname {\@definecounter{#1}\@addtoreset{#1}{#3}% \expandafter\xdef\csname the#1\endcsname{\expandafter\noexpand \csname the#3\endcsname \@rmkcountersep \@rmkcounter{#1}}% \global\@namedef{#1}{\@rmk{#1}{#2}}\global\@namedef{end#1}{\@endremark}}} \def\@ynrmk#1#2{\expandafter\@ifdefinable\csname #1\endcsname {\@definecounter{#1}% \expandafter\xdef\csname the#1\endcsname{\@rmkcounter{#1}}% \global\@namedef{#1}{\@rmk{#1}{#2}}\global\@namedef{end#1}{\@endremark}}} \def\@ormk#1[#2]#3{\expandafter\@ifdefinable\csname #1\endcsname {\global\@namedef{the#1}{\@nameuse{the#2}}% \global\@namedef{#1}{\@rmk{#2}{#3}}% \global\@namedef{end#1}{\@endremark}}} \def\@rmk#1#2{\refstepcounter {#1}\@ifnextchar[{\@yrmk{#1}{#2}}{\@xrmk{#1}{#2}}} \def\@xrmk#1#2{\@beginremark{#2}{\csname the#1\endcsname}\ignorespaces} \def\@yrmk#1#2[#3]{\@opargbeginremark{#2}{\csname the#1\endcsname}{#3}\ignorespaces} %DEFAULT VALUES \def\@rmkcounter#1{\noexpand\arabic{#1}} \def\@rmkcountersep{.} %deleted September 2, 1986 MDK %\def\@makermknumber#1#2{\bf #1 #2:} \def\@beginremark#1#2{\trivlist \item[\hskip \labelsep{\bf #1\ #2}]} \def\@opargbeginremark#1#2#3{\trivlist \item[\hskip \labelsep{\bf #1\ #2\ (#3)}]} \def\@endremark{\endtrivlist} ---- Ken Ribet ribet@cartan.berkeley.edu UC Berkeley Math Dept ribet@ucbcmsa.bitnet Berkeley CA 94720 ------------------------------ Date: Tue, 18 Oct 88 15:37:39 PDT From: KARNEY%PPC.MFENET@NMFECC.ARPA Subject: TeX on a Mac II Here we are using TeXtures on a Mac II and are very happy with its performance. You might also want to check MacTeX from FTL. I've tried them both and slightly prefer TeXtures. For TeXtures you will need a hard disk (unless you like juggling floppies), a LaserWriter, and 2 or 5 MB of RAM. (Actually, TeXtures runs quite happily with 1 MB, so long as you have the RAM cache off. However, with very complicated documents, you may get an "Out of memory" error. The additional memory will let you use MultiFinder, background printing, etc.) If you anticipate making heavy use of the screen previewer, you might want to purchase a high-resolution full-page display. In addition to TeXtures (about $400 with an educational discount), you should get LaTeX ($75), and the complete set of CM fonts at all standard magnifications ($85). (With TeXtures, you just get the fonts at \magstep0 and 1.) I suspect that TeXtures will not run under A/UX. Presumably you can use the Unix release of TeX. This probably doesn't include a previewer. I believe the American Physical Society should be accepting TeX files some time next year. They are currently designing a suitable style file to be used with LaTeX. Charles Karney Plasma Physics Laboratory Phone: +1 609 243 2607 Princeton University MFEnet: Karney@PPC.MFEnet PO Box 451 ARPAnet: Karney%PPC.MFEnet@NMFECC.ARPA Princeton, NJ 08543-0451 Bitnet: Karney%PPC.MFEnet@ANLVMS.Bitnet ------------------------------ Date: Wed 19 Oct 88 03:41:29-EDT From: b beeton Subject: re: computer modern for aps typesetter. cm fonts for autologic's aps-5 series typesetters are (or should be) available from autologic. although it is possible to download fonts to an aps at run time (this is how the 5 volumes of computers & typesetting were prepared, before the "resident" versions of the fonts were available), it takes on the order of .5 second per character. not the best way to use a high-speed typesetter! a dvi-aps driver is available from arbortext; i know of no public domain versions, or of any other commercial ones, for that matter. -- barbara beeton ------------------------------ %%% %%% Concerning subscriptions, address changes, unsubscribing: %%% BITNET: send a one-line mail message to LISTSERV@TAMVM1.BITNET: %%% SUBSCRIBE TEX-L % to subscribe %%% %%% All others: send mail to %%% texhax-request@score.stanford.edu %%% please send a valid arpanet address!! %%% %%% %%% All submissions to: texhax@score.stanford.edu %%% %%% Back issues available for FTPing as: %%% machine: directory: filename: %%% [SCORE.STANFORD.EDU]TEXHAXnn.yy %%% nn = issue number %%% yy = last two digits of current year %%%\bye %%% ------------------------------ End of TeXhax Digest ************************** -------