124 TUGboat, Volume 9 (1988), No. 2 The net effect is, if your C compiler knows how to Extensions handle casts (up to now, every C compiler we could With this WinC version we started a cooperation test did), that this source runs on both types of with a German typesetter. In this project we machines. designed an extended m program, which we call Passing the Trip test Photom, to cope with the possibilities available with phototypesetting machines, and made some The important milestone after the banner is the Trip adaptations for German respectively European en- test. Needless to say, it didn't run at once. In fact, vironments. The Photom Program understands there were some very subtle bugs introduced while two additional keywords, setsize and slantsize, rewriting. It took another half a year to succeed so that we are capable of handling dynamic fonts with this test. One of the main problems lay in in the typesetting machine. Also we had to cre- the input routine, where we didn't use Knuth's raw ate metric files (tfm-files) for the fonts that are version, but the optimized version that happened to resident in phototypesetting machines, as there are be in the change file (ever heard of a change file?). machines that are not able to download fonts. An- Needless to say, the algorithms and data structures other hard problem was to find the right kernings, in QXare computer proof; that means, that if you as typesetters need them. have a compiler that deserves this name, you get An additional problem for the German environ- this program running. ment is hyphenation of words with Umlaute (and Sure enough, people learned about our project other special characters you encounter in a Euro- and asked for a port, if we ever got it running. pean environment). At the moment, there are two Most of the time these people were more optimistic solutions we know for hyphenation, both coming about a possible success than we were. But then we from the University in Bonn, Germany. One is to could make the (ultimate) test for portability. fool the hyphenation routine, while the other, and The one thing we learned is: that rn (whether by far better, solution requires a minor change in in Pascal or in C or whatever) is not only a the METAFONT description, recreating the fonts, typesetting system, but also a compiler test system. and an addition in the dvi driver. We preferred the There were some problems compilers introduced second approach for our German version of l&XinC. with the input of W, but if you wanted to demonstrate the bug to the computer or compiler distributor, you couldn't reproduce the error with a normal sized program. We encountered the fact that fixed array locations like memC327601, as happen to be used as kind of register in the typesetting processor Q$, will be translated to T'X Adapted to CWEB anything, but definitely not to the locations you would expect. Also you have to cope with the David Kennedy most tricky optimizers, which try to keep the Micro Publishing Systems, Inc. program small enough by optimizing procedures This article announces in CWEB, a new away, or deleting the index in z = mem[zl before starting point for l)$ ports. We have recently using it. But these problems were not too often completed the translation of T)$ to CWEB, a encountered, and after tuning some 110 statements version of Don Knuth's WEB system of structured not for efficiency but for portability, we now have documentation, entirely rewritten in C, with many the following ports: changes to take advantage of features found in C, Cromemco V.0 and V.2 but not in Pascal. (For a more complete description PCS Cadmus 32Bit UNIX Systems of CWEB refer to the TUGboat article: WEB ALTOS UNIX and XENIX Systems Adapted to C, Another Approach by Silvio Levy, Convex with 4.2 UNIX April, 1987). AT&T 3b2 running V.0 and V.2/V.3 Although this is a commercial venture, and HP Series 9500 and 93XX under HP-UX the Q$ translation is proprietary, we are offering IBM RT under AIX a copy of the binary and/or source code for a The only preconditions we pose are that we reasonable license fee. We are also planning a fall have a true 32-bit CPU (not an 80286) and we 1988 commercial release of our fully TRIP-certified prefer UKIX or UNIX look-alikes, but we don't version of for the PC and plan to release UNIX insist on this (as people insist on a VMS version). TUGboat, Volume 9 (1988), No. 2 System V, XENIX and OS/2 versions in the near future. Fonts Given the current availability of m imple- mentations on microcomputers, a Tj$ site needs to acquire a different implementation for each of Some Useful Variations of Standard Fonts its systems, assuming that a version exists. Our Glenn L. Vanderburg objective is to provide an implementation of Texas A&M University which is easy to port to various microcomputers and operating systems and preserve the documentation The old "Almost Computer Modern" font set had features of CWEB so that a system administrator a font called amssmc40. It was used for the chapter can maintain one source to m for various small titles in the first edition of The Tmbook. It also systems. turned out to be very popular for making signs. The original development work was done in When the Computer Modern fonts were released, MS-DOS on an AT compatible computer using the there was no equivalent font in the standard set. Microsoft C Compiler version 5.0. We are interested It was replaced by cmssdcl0 scaled 4000. This in hearing from institutions and individuals who is essentially the same font, with some minor would like to port TEX in CWEB to other unique improvements and one major disadvantage: the operating systems, computers, and/or languages. unusual magnification. Unfortunately, many DVI Adapting 7&X to CWEB provides simultane- drivers have difficulty dealing with fonts which are ously a language like for formatting and a not magnified by one of the standard "magstep" language like C for programming. Once the WEB quantities. is translated to CWEB, a program called TANGLE To remedy this, I added the following line to is used to produce the C source code. Another cmssdcl0 .mf just after input cmbase: program called WEAVE is used to produce a struc- numeric Pt#; 1Pt#=4pt#; tured document, so that the large system can be understood entirely in terms of small modules and and changed all occurrences of 'pt#' in the rest of their local interrelationships. Any changes such as the file to 'Pt#'. I called the new file cmssdc40 .mf. splitting the C source into multiple files is handled The font produced by it is not exactly equivalent automatically within TANGLE (the entire C source to cmssdcl0 scaled 4000, but the differences are produces an object file greater than the 64K limit negligible. for the Microsoft C Compiler). Any system specific A similar modification to cminch.mf yields changes such as those necessary to accomodate the another extremely useful font. I noticed that a 64K byte address space limitations imposed by the couple of signs I made with cminch had a harsh segmented architecture of the 8086 processor can be tone because of the capital letters, even when made in the change file included by TANGLE. the wording was very friendly. Changing the Now that the original translation of the TEX 'generate title;' line at the end of cminch.mf WEB to CWEB has been completed, and the major to 'generate roman;' creates a cminch font with port for MS-DOS has been done, ports to other lowercase characters (among other things) . It takes C environments will follow quickly. The most up a lot more disk space, but many people use it important thing is maintaining the source to here at Texas A&M. It should not be called cminch, in a generic form while allowing for the smooth because it's not the same font. I call it cmssbxl04 integration of system-dependent changes. (when the capital letters are one inch high, the font size is 104 points). This will cause problems for systems (like CMS) which have severe restrictions on filename length, but I have been assured by "people who know" that there is a convention for handling this problem. Modifications like this are extremely simple to make, and can be quite useful. A new ver- sion of cminch with characters one centimeter high would be nice; it could be called cmcm. (Along the same lines, Tom Reid once observed that cminch scaled\magstepl might reasonably be called 'cmdecifoot'.) I've seen several people requesting cmssdc40: it turns out to be very easy to create, and I think people will enjoy using it. .
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages2 Page
-
File Size-