Subject: TeXhax Digest V90 #13 From: TeXhax Digest Errors-To: TeXhax-request@cs.washington.edu Maint-Path: TeXhax-request@cs.washington.edu To: TeXhax-Distribution-List:; Reply-To: TeXhax@cs.washington.edu TeXhax Digest Saturday, January 27, 1990 Volume 90 : Issue 13 Moderators: Tiina Modisett and Pierre MacKay %%% The TeXhax digest is brought to you as a service of the TeX Users Group %%% %%% in cooperation with the UnixTeX distribution service at the %%% %%% University of Washington %%% Today's Topics: Annual Meeting PiCTeX manual on sun.soe.clarkson.edu Atari ST DVI to epson driver Mathematical Writing New TeX/MF sources available on Stanford's master archive a UNIX-oriented TeX trick Re: TFM file upward/downward compatibility for new TeX and MF A continuation: Virtual fonts: More fun for Grand Wizards ---------------------------------------------------------------------------- Date: Mon 15 Jan 90 15:44:34-EST From: Charlotte Laurendea Subject: Annual Meeting Keywords: information, annual meeting ****************************************************************************** TeX Users Group 11th Annual Meeting Texas A&M, June 18-20, 1990 Watch for our 12 page Meeting Brochure in late February! Not on our mailing list? Contact Charlotte at: (401) 751-7760 or cvl@math.ams.com REMEMBER: Fulltime, unemployed students get 2/3 off the meeting fee and 1/2 off of all courses! Photo copy of Student ID required at time of registration. Accommodations will be at the beautiful College Station Hilton (1 mile from the A&M campus). Special rates for TUG conferees: Single = 52.00 Double = 58.00 Plan Early -- Don't Miss the Boat (TUGboat, that is!) ****************************************************************************** ------------------------------------------------------------------------------ Date: Tue, 9 Jan 90 08:32 CDT From: U2591AA@VMS.UCC.OKSTATE.EDU Subject: PiCTeX manual on sun.soe.clarkson.edu Keywords: PiCTeX I wasn't sure how to get mail to the administrator of the server at sun.soe.clarkson.edu (my tries were bounced), so I am submitting this to TeXhax. The PiCTeX manual (dvi from only) on the Clarkson archive is incomplete. It contains only 5 pages (3 from the preface, page 1, and page 58) of what is a 60+ page manual. The name of the dvi file which constitutes the manual is pub/pictex/cornerrules.dvi. Can this be fixed? Also, is the manual available anywhere else? Thanks in advance, Scott McCullough u2591aa@vms.ucc.okstate.edu u2591aa@uccvms.bitnet ------------------------------------------------------------------------------- Date: Tue, 16 Jan 90 20:25 EDT From: KRUZYK%McMaster.CA@UWAVM.ACS.WASHINGTON.EDU Subject: Atari ST DVI to epson driver Keywords: dviware, Atari Hello, This is my first message to this interest group. Over the past 3 months,I have acquired a complete TeX system (TeX, LaTeX, METAFONT) for the Atari ST. I acquired all the software from a mail-server which is no longer operating (although still accessible via FTP) at terminator.cc.umich.edu. My problem is that I lack a DVI to epson printer driver. Such a program exists but I do not have access to FTP (I have tried BITFTP@PUCC, but the arc'd files get corrupted). If anyone knows of a mail server or if anyone could mail me a copy of this program I would appreciate it. ------------------------------------------------------------------------------ Date: Mon, 8 Jan 90 16:28 GMT From: CBTS8001%IRUCCVAX.UCC.IE@UWAVM.ACS.WASHINGTON.EDU Subject: Mathematical Writing Keywords: TeX, mathematics One of the lucky dips I got at the TUG offices last November was a copy of {\it Mathematical Writing} by DEK, Tracy Larrabee and PM Roberts. This is a collection of expanded notes taken at the eponymous course given at Stanford in fall 87. It contains one of the best set of discussions on the problems of editing academic texts I have ever seen. This should be required reading for all faculty and students. The refs to can be taken lightly---they are there for illustration, so the text is just as applicable to humanities as to the sciences. ISBN 0--88385--063--X order your copy soon! BTW, despite their careful treatment, a number of slips got thru the net: p34 has (para 3) "effect" instead of "affect"; p51 has "editorial" hyphenated as ed-itorial (yeuch); p61 ditto "ma-nipulations"; ah well ///Peter ------------------------------------------------------------------------------- Date: Mon, 8 Jan 90 22:37:11 -0800 From: Don Knuth and Joe Weening Subject: New TeX/MF sources available on Stanford's master archive Keywords: TeX, METAFONT, source Thanks to excellent contributions by TeXhaxers and Grand Wizards around the world, the new versions of TeX and METAFONT and their supporting programs have now been quite thoroughly checked out. All known bugs have been corrected and the current state of the master files should be very nearly the permanent one. Therefore, anybody who "held back" on trying the October 1989 versions (on grounds that they were sure to crash) can now be fairly confident that time invested in switching to the new versions will not be wasted. Although TeX and MF have not changed extensively since October, the English language commentary in their WEB files has been edited to agree with the contents of Volumes B and D. Hence you will find that your change files probably need to be revised slightly in this go-round... (some lines won't "match" any more). But this should be the last time you have to fool with such stuff. The archive at Labrea.Stanford.EDU now contains the latest sources of everything, including the brand-new support programs for virtual fonts (VFtoVP and VPtoVF) that have been mentioned in a separate message to TeXhax. Here are the latest version numbers: TANGLE version 4 WEAVE version 4 TeX version 2.993 POOLtype version 3 TFtoPL version 3.1 PLtoTF version 3.2 DVItype version 3.2 METAFONT version 1.9 GFtype version 3 GFtoPK version 2.2 GFtoDVI version 3.0 MFT version 2.0 VFtoVP version 1.0 VPtoVF version 1.0 The new sources also have uptodate versions of the WEB and TRIP and TRAP manuals, as well as the current versions of The TeXbook and The METAFONTbook. To get these files, open an FTP connection to Labrea.Stanford.EDU, log in as "anonymous" with any password, and connect to the directory "pub/tex". The README file in that directory describes what is there. For the programs listed above, the file CHANGES lists the names of files that have changed since the October 1989 release. (It does not list changes to LaTeX, BibTeX, AmSTeX, etc. that have happened in the past few months.) We believe TeX version 3.0 and METAFONT version 2.0 will be essentially identical to the present versions 2.993 and 1.9, since these have been subjected to so many exacting tests. But the version numbers won't be changed officially until two months go by with no bug reports from anywhere in the world. ----------------------------------------------------------------------------- Date: 08 Jan 90 1752 PST From: Don Knuth Subject: a UNIX-oriented TeX trick Keywords: TeX, UNIX Try creating the following two-line file trick.tex: \def\trick#1 {\setbox0=\lastbox\endgraf\message{`#1'}} \everypar{\trick} and then give UNIX a command line like tex trick *.tex \\end (here I'm assuming that your current directory contains one or more files with the suffix ".tex"). Once you understand this trick, you'll see how to write a listing macro that makes a nicely formatted listing of any group of files named on your command line. Enjoy! ----------------------------------------------------------------------------- Date: Tue, 09 Jan 90 15:54:44 GMT From: CET1%phoenix.cambridge.ac.uk@NSFnet-Relay.AC.UK Subject: Re: TFM file upward/downward compatibility for new TeX and MF Keywords: METAFONT, TeX In TeXhax digest #114, "D.A. HOSEK" asks > (1) do I need to regenerate all TFMs for the new version of TeX? > (2) will the new MF generate TFMs identical to those generated by > the old MF if the MF file does not use any of the new ligature > features? The NSFNET-RELAY gateway seems to think that HMCVAX.CLAREMONT.EDU has been asleep for too long; anyway, the anwser may be of general interest: (1) Not if they have been generated by MF or PLtoTF within living memory; probably not anyway. The new TFM extensions use values other than 0 and 128 of the bytes |skip_byte| (was |stop_bit|) and |op_byte| (was |op_bit|) in the ligature-kern program section of the TFM file. Although the old interpreting programs (e.g. TeX) only look at the most significant bit, the old generating programs (e.g. MF and PLtoTF) always used 0 or 128. (2) Yes, provided that the input would also be acceptable to an old MF in other ways. The point of the proviso is that the new MF will allow ligature-kern programs to have starting points more than 255 steps from the start of the ligature-kern section, and it also allows more than 256 values in the kern section. However, if use is made of these facilities, the TFM file will not be usable with an old TeX. (If you feel paranoid, you can change the configuration parameters of the new MF so that this can't happen by accident.) You can extract a specification of the new TFM format from various of the new program sources (e.g. PLtoTF, MF, or TeX). I can send a version converted to plain ASCII to anyone who really needs it. Chris Thompson JANET: cet1@uk.ac.cam.phx Internet: cet1%phx.cam.ac.uk@nsfnet-relay.ac.uk ----------------------------------------------------------------------------- %%Moderators' note: The following article is continued from %%TeXhax Digest Issues 11 and 12. Thank you for your patience; unfortunately, %%there was no better way to deal with a single long, important submission. %%The saga does end with this issue. A continuation: Virtual fonts: More fun for Grand Wizards @ A \.{LIGTABLE} property list contains elements of four kinds, specifying a program in a simple command language that \TeX\ uses for ligatures and kerns. If several \.{LIGTABLE} lists appear, they are effectively concatenated into a single list. \yskip\hang\.{LABEL} (one-byte value) means that the program for the stated character value starts here. The integer must be the number of a character in the font; its \.{CHARACTER} property list must not have a \.{NEXTLARGER} or \.{VARCHAR} field. At least one \.{LIG} or \.{KRN} step must follow. \yskip\hang\.{LABEL} \.{BOUNDARYCHAR} means that the program for beginning-of-word ligatures starts here. \yskip\hang\.{LIG} (two one-byte values). The instruction `\.{(LIG} $c$ $r$\.)' means, ``If the next character is $c$, then insert character~$r$ and possibly delete the current character and/or~$c$; otherwise go on to the next instruction.'' Characters $r$ and $c$ must be present in the font. \.{LIG} may be immediately preceded or followed by a slash, and then immediately followed by \.> characters not exceeding the number of slashes. Thus there are eight possible forms: $$\hbox to .8\hsize{\.{LIG}\hfil\.{/LIG}\hfil\.{/LIG>}\hfil \.{LIG/}\hfil\.{LIG/>}\hfil\.{/LIG/}\hfil\.{/LIG/>}\hfil\.{/LIG/>>}}$$ The slashes specify retention of the left or right original character; the \.> signs specify passing over the result without further ligature processing. \yskip\hang\.{KRN} (a one-byte value and a real value). The instruction `\.{(KRN} $c$ $r$\.)' means, ``If the next character is $c$, then insert a blank space of width $r$ between the current character character and $c$; otherwise go on to the next intruction.'' The value of $r$, which is in units of the design size, is often negative. Character code $c$ must exist in the font. \yskip\hang\.{STOP} (no value). This instruction ends a ligature/kern program. It must follow either a \.{LIG} or \.{KRN} instruction, not a \.{LABEL} or \.{STOP} or \.{SKIP}. \yskip\hang\.{SKIP} (value in the range |0..127|). This instruction specifies continuation of a ligature/kern program after the specified number of \.{LIG} or \.{KRN} has been skipped over. The number of subsequent \.{LIG} and \.{KRN} instructions must therefore exceed this specified amount. @ In addition to all these possibilities, the property name \.{COMMENT} is allowed in any property list. Such comments are ignored. @ So that is what \.{PL} files hold. In a \.{VPL} file additional properties are recognized; two of these are valid on the outermost level: \yskip\hang\.{VTITLE} (string value, default is empty). The value will be reproduced at the beginning of the \.{VF} file (and printed on the terminal by \.{VFtoVP} when it examines that file). \yskip\hang\.{MAPFONT}. The value is a nonnegative integer followed by a property list. The integer represents an identifying number for fonts used in \.{MAP} attributes. The property list, which identifies the font and relative size, is defined below. \yskip\noindent And one additional ``virtual property'' is valid within a \.{CHARACTER}: \yskip\hang\.{MAP}. The value is a property list consisting of typesetting commands. Default is the single command \.{SETCHAR}~$c$, where $c$ is the current character number. @ The elements of a \.{MAPFONT} property list can be of the following types. \yskip\hang\.{FONTNAME} (string value, default is \.{NULL}). This is the font's identifying name. \yskip\hang\.{FONTAREA} (string value, default is empty). If the font appears in a nonstandard directory, according to local conventions, the directory name is given here. (This is system dependent, just as in \.{DVI} files.) \yskip\hang\.{FONTCHECKSUM} (four-byte value, default is zero). This value, which should be a nonnegative integer less than $2^{32}$, can be used to check that the font being referred to matches the intended font. If nonzero, it should equal the \.{CHECKSUM} parameter in that font. \yskip\hang\.{FONTAT} (numeric value, default is the \.{DESIGNUNITS} of the present virtual font). This value is relative to the design units of the present virtual font, hence it will be scaled when the virtual font is magnified or reduced. It represents the value that will effectively replace the design size of the font being referred to, so that all characters will be scaled appropriately. \yskip\hang\.{FONTDSIZE} (numeric value, default is 10). This value is absolute, in units of printer's points. It should equal the \.{DESIGNSIZE} parameter in the font being referred to. \yskip\noindent If any of the string values contain parentheses, the parentheses must be balanced. Leading blanks are removed from the strings, but trailing blanks are not. @ Finally, the elements of a \.{MAP} property list are an ordered sequence of typesetting commands chosen from among the following: \yskip\hang\.{SELECTFONT} (four-byte integer value). The value must be the number of a previously defined \.{MAPFONT}. This font (or more precisely, the final font that is mapped to that code number, if two \.{MAPFONT} properties happen to specify the same code) will be used in subsequent \.{SETCHAR} instructions until overridden by another \.{SELECTFONT}. The first-specified \.{MAPFONT} is implicitly selected before the first \.{SELECTFONT} in every character's map. \yskip\hang\.{SETCHAR} (one-byte integer value). There must be a character of this number in the currently selected font. (\.{VPtoVF} doesn't check that the character is valid, but \.{VFtoVP} does.) That character is typeset at the current position, and the typesetter moves right by the \.{CHARWD} in that character's \.{TFM} file. \yskip\hang\.{SETRULE} (two real values). The first value specifies height, the second specifies width, in design units. If both height and width are positive, a rule is typeset at the current position. Then the typesetter moves right, by the specified width. \yskip\hang\.{MOVERIGHT}, \.{MOVELEFT}, \.{MOVEUP}, \.{MOVEDOWN} (real value). The typesetter moves its current position by the number of design units specified. \yskip\hang\.{PUSH} The current typesetter position is remembered, to be restored on a subsequent \.{POP}. \yskip\hang\.{POP} The current typesetter position is reset to where it was on the most recent unmatched \.{PUSH}. The \.{PUSH} and \.{POP} commands in any \.{MAP} must be properly nested like balanced parentheses. \yskip\hang\.{SPECIAL} (string value). The subsequent characters, starting with the first nonblank and ending just before the first `\.)' that has no matching `\.(', are interpreted according to local conventions with the same system-dependent meaning as a `special' (\\{xxx}) command in a \.{DVI} file. \yskip\hang\.{SPECIALHEX} (hexadecimal string value). The subsequent nonblank characters before the next `\.)' must consist entirely of hexadecimal digits, and they must contain an even number of such digits. Each pair of hex digits specifies a byte, and this string of bytes is treated just as the value of a \.{SPECIAL}. (This convention permits arbitrary byte strings to be represented in an ordinary text file.) @ Virtual font mapping is a recursive process, like macro expansion. Thus, a \.{MAPFONT} might specify another virtual font, whose characters are themselves mapped to other fonts. As an example of this possibility, consider the following curious file called \.{recurse.vpl}, which defines a virtual font that is self-contained and self-referential: $$\vbox{\halign{\.{#}\cr (VTITLE Example of recursion)\cr (MAPFONT D 0 (FONTNAME recurse)(FONTAT D 2))\cr (CHARACTER C A (CHARWD D 1)(CHARHT D 1)(MAP (SETRULE D 1 D 1)))\cr (CHARACTER C B (CHARWD D 2)(CHARHT D 2)(MAP (SETCHAR C A)))\cr (CHARACTER C C (CHARWD D 4)(CHARHT D 4)(MAP (SETCHAR C B)))\cr }}$$ The design size is 10 points (the default), hence the character \.A in font \.{recurse} is a $10\times10$ point black square. Character \.B is typeset as character \.A in \.{recurse} {scaled} {2000}, hence it is a $20\times20$ point black square. And character \.C is typeset as character \.{B} in \.{recurse} {scaled} {2000}, hence its size is $40\times40$. Users are responsible for making sure that infinite recursion doesn't happen. ----------------------------------------------------------------------- %%% Further information about the TeXhax Digest, the TeX %%% Users Group, and the latest software versions is available %%% in every tenth issue of the TeXhax Digest. %%% %%% Concerning subscriptions, address changes, unsubscribing: %%% %%% BITNET: send a one-line mail message to LISTSERV@xxx %%% SUBSCRIBE TEX-L % to subscribe %%% or UNSUBSCRIBE TEX-L %%% %%% Internet: send a similar one line mail message to %%% TeXhax-request@cs.washington.edu %%% JANET users may choose to use %%% texhax-request@uk.ac.nsf %%% All submissions to: TeXhax@cs.washington.edu %%% %%% Back issues available for FTPing as: %%% machine: directory: filename: %%% JUNE.CS.WASHINGTON.EDU TeXhax/TeXhaxyy.nn %%% yy = last two digits of current year %%% nn = issue number %%% %%%\bye %%% End of TeXhax Digest ************************** -------