UKTeX Digest Friday, 4 Dec 1992 Volume 92 : Issue 45 ``The UKTeX Digest is brought to you as a free, unfunded and voluntary service of the UK TeX Users Group and the UK TeX Archive.'' Today's Topics: {Q&A}: AMSLateX re: Scoping TGRIND for VMS on Offer! VMS TANGLE and WEB wanted for C++ Re: Double-sided printing and page-imposition in LaTeX Re: Double-sided printing and page-imposition in LaTeX Thorn and Eth - recent developments? RE: Thorn and Eth - recent developments? emTeX and Fujitsu DL 2600 Printer {Announcements}: DVGT on FILESERV/Niord MFpic 0.2 on FILESERV/Niord Administrivia: Moderators: Peter Abbott (Aston University) and David Osborne (University of Nottingham) Contributions: UKTeX@uk.ac.tex Administration, subscription and unsubscription requests: UKTeX-request@uk.ac.tex ------------------------------------------------------------ Date: Fri, 27 Nov 92 17:35:50 +0000 From: Jim Renshaw Subject: AMSLateX I keep getting the error - Insufficient symbol fonts - when using AmsLaTeX. Can anyone tell me what this means and how to correct the problem. I got a similar problem when trying to use the Springer format CPMono01 recently so presumably it is something to do with our format files. ------------------------------ Date: Sun, 29 Nov 92 20:25:26 -0500 From: Jerry Leichter Subject: re: Scoping R.A. Reese continues to ask about how scoping of registers (and most other things in TeX) works, and why it's set up that way. I see there's no alternative but to give a bit of an exposition (since this happens to be a topic I'm about to lecture on in my programming languages class anyway). Traditional dynamic scoping works as follows: At the entrance to a "block" (where a "block" is whatever serves to introduce new variable scopes) there is a list of variables local to that block - i.e., those for which the block constitutes a new scope. To take a very simple example, in SNOBOL4 the only kind of block introducer is a function entry point. In any language which allows variables to be used for the names of functional parameters - and note that TeX, which uses the special symbols #1, #2, and so on is NOT one of these - - these variables are always local to the block. It may also be possible to declare additional local variables. The SNOBOL4 function prototype "F(A,B)C" declars arguments A and B, which will be local and an additional local variable C. (Actually, SNOBOL4 programmers will recall that F is also a local variable, since as in FORTRAN one returns values through a variable with the same name as the function.) In LISP, at the user level there are several kinds of blocks, but in fact they can all be defined in terms of the primitive lambda expression, which has only arguments, no explicit local variables. On entry to a block, the implementation runs through all the declared local variables, in order, and pushes their current values onto the system stack. Depending on the language and the details of the block, the variables are then either left as they were, or reset to some particular value - the parameter, for an argument; perhaps some explicit null or "undefined" value, for a local. On exit from the block, the values are popped off the stack and restored to the variables in reverse order. TeX does something like this. However, in keeping with many other macro and command languages, it does NOT have an explicit way of indicating what the locals in a block (group) are. Instead, nothing at all happens to any variables on entry to a block; however, a "start of group" marker is pushed on the stack. All variables still have the value they did before. If a value is now assigned to a variable, TeX first declares it local to the block and pushes its old value on the stack. (Since there is no fixed list of values, what it actually pushes is a variable/value pair. It's also clever enough not to push a second value if the variable is assigned to again in the same group.) At the end of the group, TeX walks up the stack, finding variable/ value pairs, and restoring previous values. "Variables" and "values" here need to be understood broadly. The same rules apply to macro names, count registers (a fixed set of 256 counters to which you can assign handy names - but their REAL names are \count0, \count1, and so on), \box'es, and so on. In each case, there is space for a current value within TeX - the only value directly accessible - as well as space for more values, saved for later restoration, on the stack. \global adds a complication. Here, TeX's definition and implementation are a bit unusual - though few people ever run into their oddity. The easy (but incorrect) way to think of it is that each variable exists in a "global" and a "local" version simultaneously: In effect, there are two copies of every- thing. When a local version exists, it "shadows" the global copy to all but \global assignments. This is probably the way most people imagine that TeX works. However, it's incorrect. In fact, there is only one instance of each variable. The VALUE assigned to each variable carries a marker indicating whether it was assigned with \global or not. A reference to a variable ALWAYS gets its most recently assigned value, \global or not. The effect of the "globally assigned" flag is that, when it comes time to pop values of the stack, attempts to restore to a variable whose current assign- ment is "global" are ignored. The only way you can ever observe the actual implementation is by using the same variable both locally and globally within the same group. This is NOT recommended practice, as it can cause "save stack buildup"; see the TeXbook (under that index entry) for information. If all assignments were \global, it would be impossible to use a counter (say) as a local variable, its value saved and restored over the execution of the group. If, on the other hand, \global were not available, it would be impossible to "export" values from a group, since there's no explicit return value from a group as there is an explicit return value from a function with local variables. \newcount and friends have been explicitly written to allocate variables globally. In fact, in Plain they are defined as \outer, so trying to use them within in a macro will result in an error. It is quite possible to create analogues of these functions that declare local variable NAMES. Here's a set of definitions I use: % File: TeX Inputs declare.tex % Author: J E Pittman % Bitnet: JEPTeX@TAMVenus % Internet: JEPTeX@Venus.TAMU.EDU % Date: September 29, 1988 % % These macros provide a method of locally allocating registers % without interference with previously allocated registers. The % method is the same as on pages 346--347 of the \TeX book, however, % the declare macros are intended for local use only. It is a logical % error to use a "new" macro between a declare macro and the end of the % appropriate enclosing group. % % Extended by Jerry Leichter, 29-Nov-88, to include \declareif. % \def\declarecount {\allocate0\countdef}% \def\declaredimen {\allocate1\dimendef}% \def\declareskip {\allocate2\skipdef}% \def\declaremuskip{\allocate3\muskipdef}% \def\declarebox {\allocate4\chardef}% \def\declaretoks {\allocate5\toksdef}% % \def\allocate#1#2#3{\relax \advance\count1#1 by 1 \ifnum\count1#1<\count19 \else \errmessage{No room for \string#3!}% \fi #2#3=\count1#1 } % {\let\newif\relax \gdef\declareif{\newif}} Note the difference between: \newcount\x {\x=1} (The NAME \x is globally defined, and a counter has been reserved "forever" - but \x has no useful value right now, since we've exitted the group.) and {\declarecount\x \x=1} (The NAME \x vanished at the end of the group, and the count register was restored to the free list.) -- Jerry ------------------------------ Date: Tue, 01 Dec 92 14:37:00 +0000 From: GHASSEMPOORY Subject: TGRIND for VMS on Offer! I have ported the BSD version of TGRIND to VMS - Porting is a grand word for it , I have just modified the main() and added CLI support. Anybody interested? ------------------------------ Date: Tue, 01 Dec 92 14:42:00 +0000 From: GHASSEMPOORY Subject: VMS TANGLE and WEB wanted for C++ I need a version of TANGLE and WEB which can run on VMS and is capable of processing C++. Can anybody tell me where I can find such a thing? Mehrdad ------------------------------ Date: Tue, 01 Dec 92 09:48:56 -0800 From: "B.J." Subject: Re: Double-sided printing and page-imposition in LaTeX > The problem is as follows: the document is large and is printed using > \includeonly{...}. With twosided.sty LaTeX generates the extra pages needed > to finish off the previous chapter correctly so that the next chapter > starts correctly on an odd page (which is what I want). However the extra > page goes on the front surface when printing out the chapter and the odd > page goes on the back WHICH IS NOT WHAT I WANT. For those supplying solutions The solution I have used in similar circumstances is to place a \cleardoublepage at the end of each chapter file. This places the extra pages with the correct chapter. > A futher little challenge: I wish to print out a double sided A5 booklet > using the above laser printer - the idea is to print 4 A5 pages per > A4 sheet and just fold the result in half. There are two problems: > > 2. The laser printer prints the back two pages on an A4 sheet upside down! There may be some way to change the way the printer orients the pages on the back, but I suspect you would have to identify your operating system, printer model, and printer control software before someone could provide the appropriate solution. One easy solution is to print out a master copy of the booklet single-sided, turn half of the pages upside down, and then use a photocopier in single-to-double mode to print the booklets. B.J. ------------------------------ Date: Wed, 02 Dec 92 14:24:27 +0000 From: Peter Abbott Subject: Re: Double-sided printing and page-imposition in LaTeX >> The problem is as follows: the document is large and is printed using >> \includeonly{...}. With twosided.sty LaTeX generates the extra pages needed >> to finish off the previous chapter correctly so that the next chapter >> starts correctly on an odd page (which is what I want). However the extra >> page goes on the front surface when printing out the chapter and the odd >> page goes on the back WHICH IS NOT WHAT I WANT. For those supplying solution >s > The solution I have used in similar circumstances is to place a > \cleardoublepage at the end of each chapter file. This places > the extra pages with the correct chapter. >> A futher little challenge: I wish to print out a double sided A5 booklet >> using the above laser printer - the idea is to print 4 A5 pages per >> A4 sheet and just fold the result in half. There are two problems: >> >> 2. The laser printer prints the back two pages on an A4 sheet upside down! > There may be some way to change the way the printer orients the > >pages on the back, but I suspect you would have to identify your > operating system, printer model, and printer control software > before someone could provide the appropriate solution. > One easy solution is to print out a master copy of the booklet > single-sided, turn half of the pages upside down, and then use a > photocopier in single-to-double mode to print the booklets. > B.J. In answer to your printing problem, I have a similar need. I can produce two files with the correct sequence of pages so that if part1 is printed on an apple laserwriter then the pages feed back into the printer part2 does give the correct back to back. I use dvidvi as follows dvidvi 4:-1,2"(148.5mm,0mm)" Run part1 dvidvi 4:-3,0"(148.5mm,0mm)" Run part2 where Run is the input dvi file of A5 pages and part1/2.dvi are A4 pages. ------------------------------ Date: Wed, 02 Dec 92 15:44:30 +0700 From: "R.A.Reese" Subject: Thorn and Eth - recent developments? I've met a student who wanted to use thorn in his dissertation - and had failed with all software so far. Our Word-for-Windows for example allows him to pick thorn on a symbol table but then prints an entirely different character on the (PS) printer. Have other people hit this bug? Back with TeX. Thorn was discussed in UKTeX in 1990 but the solution then was to kern a bar and a b together. Has anyone since created a font containing thorn, eth and other "furrin" characters that I can download and make generally available? Are the DC fonts relevant to this? I've seen references to them but haven't followed them up. The same problem in a different context. I've just bought a copy of the Lucida Bright and Maths fonts. LBR contains thorn (and eth) on the printed description but they get pushed out in the TeX encoding vector. As I understand it, an Adobe font contains 253 characters but a TeX font can't have that many. What is the recommended solution? Should I write an encoding vector to select the missing characters and generate a "B" font of the one's that TeX rejected? Is this where virtual fonts come into their own - since the PFB obviously contains all characters but the TFM contains only the subset? Finally, re the great on-going debate. I put pages of CM and Lucida side by side in the tearoom. Opinions were fairly evenly divided, but more people expressed a preference for CM as seen, though several said they'd prefer Lucida with increased leading. ------------------------------ Date: Fri, 04 Dec 92 11:17:51 +0000 From: Philip Taylor (RHBNC) Subject: RE: Thorn and Eth - recent developments? Just one point: >>> As I understand it, an Adobe font contains 253 characters >>> but a TeX font can't have that many. A TeX font can have 256 characters. Philip Taylor, RHBNC. ------------------------------ Date: Wed, 02 Dec 92 17:56:56 +0000 From: Andrew McLean Subject: emTeX and Fujitsu DL 2600 Printer I have just made a brief attempt to produce output from the above printer using DVIDOT from emTeX. The printer belongs to to University Computing Services and I don't have a manual for it. Other packages which use it seem to think it is either an "IBM Graphics printer" or a "Fujitsu dot matrix printer". I tried the Epson FX & LQ drivers and the Proprinter drivers using fx & p6m fonts as appropriate. The output was all the right sort of thing. In other words it was recognisable but distorted/corrupted in various ways. Does anyone have any .dot files they think might help. Or any other ideas short of finding the printer manual and doing it the hard way? Andrew McLean | Janet : PHR050@UK.AC.SOTON.IBM Department of Physics | Earn/Bitnet : PHR050@IBM.SOTON.AC.UK The University | or : PHR050%UK.AC.SOTON.IBM@UKACRL Highfield | INTERNET : PHR050@IBM.SOTON.AC.UK Southampton SO9 5NH | uucp : PHR050%UK.AC.SOTON.IBM@ukc.uucp tel. +44(0)703 593084 | ------------------------------ Date: Wed, 02 Dec 92 10:33:53 -0600 From: "George D. Greenwade" Subject: DVGT on FILESERV/Niord Geoffrey Tobin kindly worked through some network difficulties to get me his DVGT package. Notably, this port of DVItoVDU/dvi2vdu/dv/... is make-able under AIX, as well as other platforms. As one would expect, DVGT has the usual bells and whistles associated with version 3.0. Attached is the description listing from FILESERV/Niord. Regards and my thanks to Geoffrey on this, George *************************************************************************** DVGT ---- The DVGT package includes a UUENCODEd ZIP file containing Geoffrey Tobin's modifications to Ian Dall's 3.0 C version of dv (available at anonymous@augean.ua.oz.au:/pub/misc/dv.tar.Z), which is a C port of the original Modula-2 version of DVItoVDU by Andrew Trevorrow. This version is Tobin's modification 4 (1 December 1992) of DVItoVDU version 3.0. As with all programs related to Trevorrow's original effort, this driver allows the visual display of DVI files using PK fonts on a monitor or terminal. Two Makefiles are provided: Makefile.aix for IBM machines (such as the Risc/6000) running AIX. Makefile.sun for Suns and Sparcs running Sun/OS, with gcc. These can serve as templates for other Makefiles. (The AIX one originated from the Sun Makefile.) In developing this release, Tobin was in contact with Trevorrow, as well as Masahiro Kitagawa , the author of the Japanese version 1.1J. Users of terminals that emulate tek4010 can use the vis550 of one of the other tek4010 emulating terminal drivers listed in the README. An explicit "tek4010" option is not provided, as this would be misleading and so as to make provisions for a real tek4010 driver in a (hypothetical) later release. MS-Kermit 3.xx has a tek4010 emulator which is compatible with the tek4010 emulation modes of DVGT drivers, such as vis550. This version includes the useful ZI/ZO features of 3.0. Zoom is now adjustable. For example, one can say "ZI 1.2" to zoom in by a factor of 1.2. Subsequent uses of ZI and ZO with no explicit factor will continue to zoom 1.2 fold. DVGT supports many other features of 3.0, such as wisely ignoring \special's. To retrieve the set of 6 UUENCODEd files, include: SENDME DVGT in the body of a mail message to FILESERV@SHSU.BITNET (FILESERV@SHSU.edu). The ZIP file upon which this distribution is based in available for anonymous ftp retrieval from Niord.SHSU.edu (192.92.115.8) in [FILESERV.DVGT] as DVGT-3_4.ZIP. Files in this package: (1 Block = 512 bytes) File Blocks DVGT.UUE_1OF6 through DVGT.UUE_5OF6 77 (each) DVGT.UUE_6OF6 28 Approximate total blocks in full DVGT package = 413 ------------------------------ Date: Wed, 02 Dec 92 15:32:25 -0600 From: "George D. Greenwade" Subject: MFpic 0.2 on FILESERV/Niord Geoffrey Tobin also forwarded me a more comprehensive fileset for Thomas Leathrum's MFpic 0.2. It includes a few fixes and extra files which have appeared on the net since it's original posting on 8 September 1992. Attached is the FILESERV description file. - --George *************************************************************************** MFPIC ----- The MFPIC package includes version 0.2 (8 September 1992, updated as of 26 November 1992) of Thomas Leathrum's set of TeX and Metafont macros that essentially draw pictures in a TeX document using Metafont. Additional related files subsequently posted to the network, including support for 4DOS. Also, there's a valuable patch to the new "mfpic.tex", which takes care of the problem that the graphics TFM file is initially absent, and therefore cannot be read. In MFpic, each picture comes out as a single Metafont character; the TeX macros actually write the Metafont file for you, so there's no need to learn Metafont (although you do have to be able to run Metafont); and the TeX macros are things like \axes, \arrow, \circle, \curve, etc., similar in nature (but nowhere near the scope) of PiC-TeX. The advantages of this technique: significantly faster than PiC-TeX (especially on curves), totally printer-independent (unlike \special's). To retrieve the package of 2 UUENCODEd files necessary to recreate the ZIP archive file distribution, please include: SENDME MFPIC in the body of a mail message to FILESERV@SHSU.BITNET (FILESERV@SHSU.edu). The ZIP archive containing the entire distribution (MFPIC02.ZIP) may be retrieved via anonymous ftp from Niord.SHSU.edu (192.92.115.8) in the directory [FILESERV.MFPIC]; the individual files of the distribution are retained within the directory tree rooted there. Files in this package: (1 Block = 512 bytes) File Blocks Save file as: MFPIC.UUE_1OF2 78 MFPIC.UUE_2OF2 33 Approximate total blocks in full MFPIC package = 111 ------------------------------ UK TeX ARCHIVE at ASTON UNIVERSITY >>> UK.AC.TEX <<< *** Interactive and file transfer access *** JANET: Host: uk.ac.tex, Username: public, Password: public (DTE 000020120091) Internet: host tex.ac.uk [134.151.40.18] For telnet access, login: public, password: public For anonymous ftp, login: anonymous, password: *** Mail server *** Send mail to TeXserver@uk.ac.tex (JANET) or TeXserver@tex.ac.uk (rest of the world) with message body containing the word HELP \section FILES OF INTEREST [tex-archive]00readme.txt [tex-archive]00directory.list [tex-archive]00directory.size [tex-archive]00directory_dates.list [tex-archive]00last30days.files [tex-archive.doc]TeX-FAQ.txt (Frequently Asked Questions list) [tex-archive.doc]FAQ-Supplement-*.txt (FAQ supplement) \section DIGESTS This year's UKTeX back issues are stored in the archive in directory [tex-archive.digests.uktex.92] This year's TeXhax back issues are stored in the archive in directory [tex-archive.digests.texhax.92] Latest TeXhax: V92 #21 TeXMaG back issues are stored in the archive in directory [tex-archive.digests.tex-mag] Latest TeXMaG: V5N3 \section MEDIA DISTRIBUTIONS Postal addresses are given below. \subsection Washington Unix TeX distribution tape Latest copy of May/June 1991 contains: TeX 3.14, LaTeX 2.09, Metafont 2.7, plus many utilities suitable for Unix 4.2/4.3BSD & System V tar format, 1600bpi, blockfactor 20, 1 file (36Mb) Copies available on: One 2400ft 0.5" tape sent to Aston with return labels AND return postage OR One Quarter-Inch Cartridge, QIC-120 or QIC-150 format (DC600A or DC6150) sent with envelope AND stamps for return postage to Nottingham (Due to currency exchange, this service is offered only within the UK) \subsection VMS tapes VMS backup of the archive requires three 2400ft tapes at 6250bpi. VMS backup of TeX 2.991 plus PSprint requires one 2400ft tape. \subsection Exabyte 8mm tapes Same contents available as 0.5" tapes. Following tape types available: SONY Video 8 cassette P5 90MP, MAXELL Video 8 cassette P5-90, TDK Video 8 cassette P5-90MPB \section TeX IMPLEMENTATIONS FOR SMALL COMPUTERS \subsection OzTeX V1.4 (for Macintosh) Send 7 UNFORMATTED 800K disks to Aston with return postage. \subsection emTeX (for OS/2, PC-DOS and MS-DOS) The complete package (3.5" High density disk format ONLY) is available from Aston at a cost of 15 pounds sterling, including documentation, disks, post and packing (DO NOT SEND DISKS): specify Set A. Additional utilities including DVIPS, 5 pounds sterling: specify Set B. FLI files for FX, 5 pounds sterling: specify Set C. FLI files for P6M, 5 pounds sterling: specify Set D. For general enquiries, and a free catalogue detailing other disk formats, precompiled fonts and lots of other goodies, contact: Eigen PD Software, P.O. Box 722, Swindon SN2 6YB (tel: 0793-611270) (JANET e-mail address: kellett@uk.ac.cran.rmcs) \subsection TeX for the Atari ST All enquiries for disks etc. should be directed to: The South West Software Library, P.O. Box 562, Wimborne, Dorset BH21 2YD (JANET e-mail address: mdryden@uk.co.compulink.cix) \section POSTAGE RATES All prices in Pounds Sterling. For Aston orders, make cheques payable to Aston University. 0.5" tapes: UK: 2.50 (one tape), 5.00 (two tapes). Europe: 5.00 (one tape), 9.00 (two tapes). Outside Europe please enquire. 8mm tapes: UK: 1.00, Europe: 2.00. Quarter-inch cartridges: UK: 1.00, Europe: 2.00. Diskettes: Quantity/Size Europe World UK 1st UK 2nd 18/3.5" 3.10 5.10 1.40 1.10 11/3.5" 1.80 2.90 0.80 0.65 18/5.25" 1.20 2.00 0.60 0.50 11/5.25" 0.80 1.30 0.50 0.35 \section POSTAL ADDRESSES Please include SELF-ADDRESSED ADHESIVE LABELS for return postage. Peter Abbott Information Systems, Aston University, Aston Triangle, Birmingham B4 7ET David Osborne Cripps Computing Centre, University of Nottingham, Nottingham NG7 2RD (for Quarter-inch cartridges ONLY -- must include stamps for return postage ) \section UK TeX USERS GROUP For details, contact: David Penfold, Edgerton Publishing Services, 30 Edgerton Road, Edgerton, Huddersfield HD3 3AD (tel: 0484 519462) or E McNeil-Sinclair, fax: 0272 236169 \bye End of UKTeX Digest [Volume 92 Issue 45] ****************************************