TeXhax Digest Wednesday, February 10, 1988 Volume 88 : Issue 13 [SCORE.STANFORD.EDU]TEXHAX13.88 Editor: Malcolm Brown Today's Topics: Re: FiG three problems with (La)TeX VAX/VMS release tapes CWEB TeXhax Digest V88 #11 Initial Impressions of Varityper VT600 (TeXhax Digest V88 #11) AFM to TFM (TeXhax Digest V88 #11) dviimp (TeXhax Digest V88 #11) Tpic support added to QMS driver Re: Metafonting at 78 DPI ... what is amssmc40 ? ---------------------------------------------------------------------- Date: Fri, 5 Feb 88 11:21:39 CST From: William LeFebvre Subject: Re: FiG Fig is a MacDraw-like program that runs under SunView. The package includes a program that translates fig's output into pic. In other words, it was not designed to work directly with TeX. However, one can use fig to create a pic file and then use tpic to include it in a TeX document. Fig is indeed available on "sally.utexas.edu" and will (hopefully) soon reside in the Sun-Spots source archive on "titan.rice.edu". Fig's author, Supoj Sutanthavibul, has told me that he is working on a new version of fig which should be ready in about 10 days. Once it is in the Sun-Spots archives, you should be able to retrieve it via the archive server at Rice. Mail the word "help" to "archive-server@rice.edu" for more information about the server. William LeFebvre Temporary Sun-Spots moderator Department of Computer Science Rice University ------------------------------ Date: Fri, 5 Feb 88 18:30:19 MET From: Michael Schuster Subject: three problems with (La)TeX Dear (La)TeXnicians, after I've made my first experiences with LaTeX, I tried to play with style options and the like and run into some problems. I hope some of you can help me. 1. I defined my own title page which should have a nice box at the top of the page. The box contains some text and should be as wide as \textwidth. Everything works fine when I use 10 pt size, but after a switch to 12pt the box becomes too wide, the vertical line on the righthand side of the box doesn't fit on the page. Why does this happen? ======================================================================== Here are the macros defining the title page: % **************************************** % * TITLE PAGE DEFINITIONS * % **************************************** % % The following TeX-macro draws a frame around a given piece of text. % Parameters: #1 = space between frame and text inside the box % #2 = thickness of the rules % #3 = text to be framed \def\headerframe#1#2#3{\vbox{\hrule height#2\hbox{\vrule width#2\hskip#1% \vbox{\vskip#1#3\vskip#1}\hskip#1\vrule width#2}\hrule height#2}} % The width of the header frame on the header page can be set % using the following variable. % Default value: \textwidth. \newlength{\@headerframewidth} \setlength{\@headerframewidth}{\textwidth} \newcommand{\header}[1]{% \headerframe{0.1cm}{1.5pt}% {\headerframe{0.5cm}{0.4pt}{% \begin{tabular*}{\@headerframewidth}{l@{\extracolsep{\fill}}l} & \\ text on the left & text on the right \\ text on the left & {#1} \\ & \\ \hline & \\ text on the left & {\footnotesize some more text} \\ more text & \\ & \\ \end{tabular*} } % close inner frame } % close outer frame } ======================================================================== 2. I even tried to set up my own running headers and footers. I looked into latex.tex to learn how to do this job, but I must have missed something because there are problems when I'm in an itemized list and an \item is the first element on a page. The following two things can happen: 1. LaTeX enters an endless loop, no more pages are processed, nothing happens. If you interupt LaTeX, you can see that it is in some of its internal macros. After using \tracingmacros=1, the follwing entries can be found at the end of the log-file: \@vspace #1->\ifvmode \dimen@ \prevdepth \expandafter \vskip #1\vskip \z@ \prev depth \dimen@ \else \@bsphack \vadjust {\dimen@ \prevdepth \expandafter \vskip #1\vskip \z@ \prevdepth \dimen@ }\@esphack \fi #1<-\smallskipamount \@bsphack ->\@savsk \lastskip \ifhmode \@savsf \spacefactor \fi \@esphack ->\relax \ifhmode \spacefactor \@savsf {}\ifdim \@savsk >\z@ \global \@ignoretrue \ignorespaces \fi \fi \par ->\if@newlist \else {\@@par }\fi \par ->\if@newlist \else {\@@par }\fi \par ->\if@newlist \else {\@@par }\fi ...... \par ->\if@newlist \else {\@@par }\fi \par ->\if@newlist \else {\@@par }\fi \par ->\if@newlist \else {\@@par }\fi ! Interruption. \hrule \@oddhead ...rm \thepage \break \smallskip \hrule } \@outputpage ...fil \hbox to\textwidth {\@thehead }} \dp \@tempboxa \z@ \box... \@opcol ...lumn \@outputdblcol \else \@outputpage \global \@colht \textheigh... ...specialoutput \else \@makecol \@opcol \@floatplacement \@startco... \@beginparpenalty \addpenalty ...e \ifdim \lastskip =\z@ \penalty #1 \relax \else \@tempskipb \... \@item ...tem \else \addpenalty \@beginparpenalty \addvspace \@topsep \addvs... \verb l.139 \item \verb @\parm{Parametername}@. ? x Output written on t.dvi (6 pages, 6100 bytes). or (problem description continues) 2. the bullet of the \item appears on the lefthand side in the running header of the page started with \item. ======================================================================== Here are the macros used for running headers and footers: % **************************************** % * PAGE STYE DEFINITIONS * % **************************************** % % pretty much of this stuff is copied from standard LaTeX-macros % (e.g. report.doc). See these files for explanation of undocumented % macros. % % This documentstyle option should be used together with the main % document style `article'. % % lay-out of running headers and footers: % ======================================= % % one sided printing: % ------------------- % % header: left: sectional text % middle: indication of a secret document, otherwise empty % right: page number % headers are underlined % footer: left: empty % middle: indication of a secret or restricted document, % otherwise empty % right: indication of the state of the document (e.g. draft) % % two sided printing: % ------------------- % % - odd pages: % % header: left: sectional text % middle: indication of a secret or restricted document, % otherwise empty % right: page number % headers are underlined % footer: left: empty % middle: indication of a secret or restricted document, % otherwise empty % right: indication of the state of the document % - even pages: % % header: left: page number % middle: indication of a secret document, otherwise empty % right: subsectional text % headers are underlined % footer: left: indication of the state of the document % middle: indication of a secret document, otherwise empty % right: empty % \mark{{}{}} % Initializes TeX's marks % Note the use of ##1 for parameter of \def\chaptermark inside the % \def\ps@headings. % %\def\@evenfoot{}\def\sectionmark##1{}\def\subsectionmark##1{}} % twoside condition left out here to make the mail shorter \def\ps@rosyheadings{\let\@mkboth\markboth% \def\@oddfoot{\hfil\@secret\hfil\@docstate}% \def\@oddhead{\vbox{\hbox{}\sl\rightmark\hfil\@secret \hfil\rm\thepage\break\smallskip\hrule}}% Heading \def\sectionmark##1{}\def\subsectionmark##1{}} \fi ======================================================================== 3. My next try was to implement a frontmatter environment which contains a preface, an extra page explaining the prerequisite knowledge a user should have to understand the following text and some other elements, especially the table of contents. The common things are: - lowercase roman numerals as page numbers - the elements should be part of the table of contents - each element begins on a new page The order of the elements in the frontmatter is not fixed, e.g. first preface then table of contents or first table of contents then preface. My question is: how does the table of contents get its page number in LaTeX and how can I read and/or change it? Thanks in advance for any help, Michael E-mail: schuster@ira.uka.de.csnet ------------------------------ Date: Fri, 05 Feb 88 17:31:45 EST From: Jon Radel <6033138%PUCC.BITNET@forsythe.stanford.edu> Subject: VAX/VMS release tapes Does anyone know what has happened with Maria Code, which (used to?) distributes the VAX/VMS release tapes from the Stanford TeX project? No one answers the phone number that used to be given in TUGboat, (408)735-8006, and information has no listing for them in Sunnyvale. Have they gone away? Moved? Been replaced? --Jon Radel %%% Barbara Beeton checked into this and here's her reply: From: b beeton Subject: maria code/stanford tex tape distribution an inquiry from jon reidel on 5 feb asked whether anyone knew what was happening with maria code and the stanford tex tape distribution, since he was unable to get an answer from the phone listed in tugboat. i had the tug office check up on this, and have been assured that everything is back to normal; it was simply necessary for maria to take several days off, and no one was answering the phone during that period. we're suggesting that she get an answering machine to take care of calls during off hours and absences. -- barbara beeton ------------------------------ Date: Fri, 5 Feb 88 15:14:04 PST From: mackay@june.cs.washington.edu (Pierre MacKay) Subject: CWEB TeXhax Digest V88 #11 CWEB can probably still be got by ftp from Princeton, where it was developed by Silvio Levy. It is also present as a sub-directory in ./tex82/TeXware on the latest UnixTeX distribution. It is not to be confused with TeX-to-C, which is a system for taking Pascal based WEB files and converting them to C code (neat trick!). Pierre A. MacKay TUG Site Coordinator for Unix-flavored TeX ------------------------------ Date: Fri, 5 Feb 88 15:30:18 PST From: mackay@june.cs.washington.edu (Pierre MacKay) Subject: Initial Impressions of Varityper VT600 (TeXhax Digest V88 #11) I would generally agree with the account Jon Forrest gives of the Varityper 600. There seems to be a problem making the toner behave well enough to give results that look like a resolution 4 times better than 300 dpi. Flocculation must be a real problem with dust that fine. You also have to be very careful about the paper stock to get the best out of the printer. I would be inclined to back off on the blacker value for this machine to far less than the value Forrest gives. I am trying 0, in fact. As you get closer to typesetter resolution, the model should not be the necessarily overblacked CanonCX output, but rather the output in Computers and Typesetting, any volume. 300dpi modern looks like an old-style reinterpretation of modern proportions, which are really rather lighter than they ever appear on a 300dpi machine. That doesn't mean you have to think that modern proportions are the best of all possible typeface design parameters, just that blacker, fillin and overshoot ought to be set with a reference to fonts produced at the better resolution, rather than at the coarser one. The alphatype CRS, on which we ran a number of publications in genuine Computer Modern before it broke down, produced a character that was so much lighter and opener than CanonCX Computer Modern that we had difficulty convincing people it was the same font. Pierre A. MacKay TUG Site Coordinator for Unix-flavored TeX ------------------------------ Date: Fri, 5 Feb 88 15:41:12 PST From: mackay@june.cs.washington.edu (Pierre MacKay) Subject: AFM to TFM (TeXhax Digest V88 #11) Clayton Elwell at Ohio State does this, and so does Stefan Bechtolsheim at Purdue. Here is Clayton Elwell's aftopl.c (hope it gets through it isn't huge) You then have to run pltotf, possibly after some judicious editing of the PL file. /** Program: aftopl -- convert Adobe AFM files into TeX PL files Author: Clayton M. Elwell, Ohio State University Disclaimer: This program seems to work, but it was cobbled up in an afternoon. Its operation should be readily apparent to any C programmer. **/ static char RCSid[] = "$Header: aftopl.c,v 2.1 87/11/24 12:34:38 cudcv Exp $"; /* * $Log: aftopl.c,v $ * Revision 2.1 87/11/24 12:34:38 cudcv * Finished (?) - Release. * * Revision 1.3 87/10/30 09:41:26 cudcv * Don't want ligatures for typewriter fonts, even if they are in the * Postscript fonts. * * Revision 1.2 87/10/30 09:19:26 cudcv * Remap for TeX fonts, add LIGTABLE. Fixed bug in slant. * * Revision 1.1 87/07/09 12:57:27 cudcv * Initial revision * */ #include #include #include #define max(a,b) ((a) > (b) ? (a) : (b)) char line[BUFSIZ]; char *strupr(s) register char *s; { register char *s1; s1 = s; while (*s) { if (islower(*s)) *s = toupper(*s); s++; } return s1; } starts(s1, s2) register char *s1; register char *s2; { return !strncmp(s1, s2, strlen(s2)); } float hscale; float scale(i) int i; { return (hscale * (((float) i) / 1000.0)); } struct { int number; char *name; int forfw; } map [] = { { 0000, "Gamma", 1 }, { 0001, "Delta", 1 }, { 0002, "Theta", 1 }, { 0003, "Lambda", 1 }, { 0004, "Xi", 1 }, { 0005, "Pi", 1 }, { 0006, "Sigma", 1 }, { 0007, "Upsilon", 1 }, { 0010, "Phi", 1 }, { 0011, "Psi", 1 }, { 0012, "Omega", 1 }, { 0013, "ff", 0 }, { 0014, "fi", 0 }, { 0015, "fl", 0 }, { 0016, "ffi", 0 }, { 0017, "ffl", 0 }, { 0020, "dotlessi", 1 }, { 0021, "dotlessj", 1 }, { 0022, "grave", 1 }, { 0023, "acute", 1 }, { 0024, "caron", 1 }, { 0025, "breve", 1 }, { 0026, "macron", 1 }, { 0027, "ring", 1 }, { 0030, "cedilla", 1 }, { 0031, "germandbls", 1 }, { 0032, "ae", 1 }, { 0033, "oe", 1 }, { 0034, "oslash", 1 }, { 0035, "AE", 1 }, { 0036, "OE", 1 }, { 0037, "Oslash", 1 }, { 0136, "circumflex", 0 }, { 0137, "dotaccent", 0 }, { 0175, "hungarumlaut", 0 }, { 0176, "tilde", 0 }, { 0177, "dieresis", 1 }, }; int number, width, left, bottom, right, top; char name[64]; main(argc, argv) int argc; char *argv[]; { double atof(); int fixedwidth = 0, filigs = 0; if (argc == 2) hscale = atof(argv[1]); else hscale = 1.0; puts("(COMMENT THIS PL FILE WAS GENERATED FROM AN AFM FILE BY AFTOPL)"); puts("(COMMENT AFTOPL WAS WRITTEN BY CLAYTON M. ELWELL, OHIO STATE UNIVERSITY)"); puts("(DESIGNSIZE R 10.0)"); puts("(SEVENBITSAFEFLAG FALSE)"); while (gets(line)) { if (starts(line, "Comment")) printf("(COMMENT %s)\n", strupr(line+8)); else if (starts(line, "EncodingScheme")) printf("(CODINGSCHEME %s)\n", strupr(line+15)); else if (starts(line, "ItalicAngle")) { double d = -tan(atof(line+12) * M_PI / 180.0); printf("(FONTDIMEN\n (SLANT R %.6f)\n", d); puts(" (STRETCH R 0.300)\n (SHRINK R 0.100)\n )"); } else if (starts(line, "IsFixedPitch")) { if (line[13] == 't') fixedwidth++; } else if (starts(line, "CapHeight")) printf("(FONTDIMEN\n (QUAD R %f)\n )\n", scale(atoi(line+10))); else if (starts(line, "XHeight")) printf("(FONTDIMEN\n (XHEIGHT R %f)\n )\n", scale(atoi(line+8))); else if (starts(line, "C ")) { sscanf(line, "C %d ; WX %d ; N %s ; B %d %d %d %d ;", &number, &width, name, &left, &bottom, &right, &top); if (number < 32) { /* do nothing */ } else if (number == 32) { printf("(FONTDIMEN\n"); printf(" (SPACE R %f)\n (EXTRASPACE R %f)\n", scale(width), fixedwidth ? scale(width) : scale(width)/2); printf(" )\n"); } else { int found = 0, i; for (i = 0; i < sizeof(map)/sizeof(map[0]); i++) { if (fixedwidth && !map[i].forfw) continue; if (!(strcmp(map[i].name, name))) OutChar(map[i].number, width, name, left, bottom, right, top); if (map[i].number == number) found++; } if (!found) OutChar(number, width, name, left, bottom, right, top); if (!strcmp(name, "fi")) filigs++; } } else if (starts(line, "StartKernPairs")) puts("(LIGTABLE"); else if (starts(line, "EndKernPairs")) puts(" )"); else if (starts(line, "KPX ")) { if ((line[5] != ' ') || (line[7] != ' ')) { } else { printf(" (LABEL C %c)\n", line[4]); while (starts(line, "KPX ")) { if ((line[5] == ' ') && (line[7] == ' ')) { sscanf(line, "KPX %c %c %d", name, name+1, &width); printf(" (KRN C %c R %f)\n", name[1], scale(width)); } gets(line); } puts(" (STOP)"); } } } printf( "(LIGTABLE\n\ (LABEL O 40)\n\ (LIG C l O 370)\n\ (LIG C L O 350)\n\ (STOP)\n\ (LABEL O 41)\n\ (LIG O 140 O 241)\n\ (STOP)\n\ (LABEL O 77)\n\ (LIG O 140 O 277)\n\ (STOP)\n"); if (!fixedwidth) { printf( " (LABEL O 140)\n\ (LIG O 140 O 252)\n\ (STOP)\n\ (LABEL O 47)\n\ (LIG O 47 O 272)\n\ (STOP)\n\ (LABEL O 55)\n\ (LIG O 55 O 261)\n\ (STOP)\n\ (LABEL O 261)\n\ (LIG O 55 O 320)\n\ (STOP)\n"); if (filigs) printf( " (LABEL C f)\n\ (LIG C i O 256)\n\ (LIG C l O 257)\n\ (STOP)\n"); } printf(" )"); } OutChar(number, width, name, left, bottom, right, top) int number, width, left, bottom, right, top; char *name; { printf("(COMMENT %s)\n(CHARACTER D %d\n", name, number); printf(" (CHARWD R %f)\n (CHARHT R %f)\n", scale(width), scale(top)); if (max(0, -bottom)) printf(" (CHARDP R %f)\n", scale(-bottom)); if (right > width) printf(" (CHARIC R %f)\n", scale(right - width)); puts(" )"); ------------------------------ Date: Fri, 5 Feb 88 15:50:00 PST From: mackay@june.cs.washington.edu (Pierre MacKay) Subject: dviimp (TeXhax Digest V88 #11) The version of dviimp on the SCORE archive uses gf files. It doesn't magnify the gf files because gf is a rasterized format, and they don't magnify so good. Howard Trickey's change file, which I gather you have already, needs to be changed to address version 0.94 rather than 0.92. Otherwise it appears to work fine. Version 0.94 is on the UnixTeX distribution. Pierre A. MacKay TUG Site Coordinator for Unix-flavored TeX ------------------------------ From: trwrb!trwspp!spp3!simpson@trwind.ind.TRW.COM (Scott Simpson) Date: 5 Feb 1988 0907-PST (Friday) Subject: Tpic support added to QMS driver I have added tpic support to my Unix line of QMS drivers called quicspool. Tpic is a hacked up version of pic for use with TeX and LaTeX. You can get tpic from Tim Morgan of UC Irvine (morgan@ics.uci.edu). You will need to send him a copy of your AT&T DWB license though. A growing number of drivers are beginning to support tpic. This will be my last change to these drivers (except for bug fixes of course) as I have taken an Ada job here at TRW and will no longer have access to a QMS printer. Also, I have sent Pierre Mackay my latest version of my LaTeX index processor for inclusion on the distribution tape. I corrected a minor bug where the index processor did not coalesce page numbers correctly. For example, the range 9, 10, 11 is now coalesced into 9--11. This index processor had been posted to USENET a couple of times before so I believe it has many users. There is another index processor written by Pehong Chen of UC Berkeley that I believe is also on the distribution tape. You can choose between the two. I like mine better :-). There are three ways I know of to get graphics with TeX: tpic, PiCTeX and TeXtyl. PiCTeX is simply a set of macros for creating figures. It is versatile and slow. TeXtyl postprocesses a dvi file. It is written in Pascal and I have not had complete success in porting it to a Pyramid so I can't comment on it. It seems quite complete. The last two don't require driver support. Scott Simpson TRW Space and Defense Sector ...{decvax,ihnp4,ucbvax}!trwrb!simpson (UUCP) trwrb!simpson@trwind.trw.com (ARPA) ------------------------------ Date: Fri, 5 Feb 88 18:16 PST From: Don Hosek Subject: Re: Metafonting at 78 DPI ... Having engaged in a similar project as described in TeXhax11 88 (likewise for the rti Vaxstation previewer) I have the following comments to make: (1) Previewers that use fonts generated at screen resolution are more trouble than they're worth. I have installed the rti previewer (Preview) and the Yale previewer (DVIDIS) on our Vaxstation. The latter uses 300dpi fonts and scales them down. The general consensus among local users seems to be that DVIDIS produces superior results (it's a bit ragged at points, but on the other hand, it's possible to tell an H from an M in cmss10). I also have TXMAPPER from CNAF, but haven't gotten around to getting it running (since DVIDIS does such a good job, I may not bother either). (2) Low resolution fonts in general are a problem. According to Doug Henderson, Metafont wasn't intended to generate fonts of resolutions less than about 150 dpi (a fact readily attested to by anyone who has ever tried). He suggested increasing blacker to get better results for the lowres fonts required by Preview, but I still haven't gotten anything decent from it, and to be perfectly honest, don't particularly care to try. The cm fonts themselves look terrible at low resolutions (anybody who has used TeXtures with an imagewriter will notice this quickly). The end result is that the CM fonts will only look good at waylow resolutions if hand-taylored (I'd just as soon not myself). For those who really want to use TeX to generate low resolution output, I would suggest that somebody create a simple sans serif font that will look good at 10pt and 120dpi. (3) Getting back to the issue of screen previewers, my personal philosophy is that the previewer should use the fonts that are used by the hardcopy output device driver and subsample, remap or whatever other method they like to get the fonts to the screen. Both my previewer for IBM mainframes, DVIview, and Andrew Trevorrow's DVItoVDU take this approach which have the advantage of allowing convenient "zooming" of the image (so the user could, if they wished, see each pixel of each character at much larger than life). -dh ------------------------------ Date: Sat 6 Feb 88 09:31:16-EST From: b beeton Subject: what is amssmc40 ? in texhax 88#4, peter flynn asked what is the mc in amssmc40 and why isn't there a cm version. the mc = medium condensed. amssmc10 has become cmssdc10 = demibold condensed. this designation is more precise typographically. why there's not a cmssdc40 i'm not at all sure, but i've also found the need for one (and still having amssmc40 available, have just been using that). since the day will come when i can no longer live without it, i will try to determine what parameter settings would be suitable for construction of cmssdc40, and will make sure they get posted when they're available. -- barbara beeton ------------------------------ %%% %%% subscriptions, address changes to: texhax-request@score.stanford.edu %%% please send a valid arpanet address!! %%% %%% BITNET distribution: subscribe by sending the following %%% line to LISTSERV@TAMVM1.BITNET: %%% SUBSCRIBE TEX-L %%% %%% submissions to: texhax@score.stanford.edu %%% %%%\bye %%% ------------------------------ End of TeXhax Digest ************************** -------