TeXhax Digest Tuesday, May 10, 1988 Volume 88 : Issue 44 [SCORE.STANFORD.EDU]TEXHAX44.88 Moderator: Malcolm Brown Today's Topics: \input TeX style for VMS manuals VMS changes for BibTeX 0.99c TeX/LaTeX on a Gould Powernode 9080 (TeXhax Digest V88 #42) VMS change file for BIBTEX Version .99c RE: VMS manuals in TeX/ String Operations? Re: TFM mismatching Re: POSTSCRIPT FOR DEC SCRIPTWRITER Re: TeXhax Digest V88 #42 "Standard" collection of CM fonts Big TeX/LaTeX for VAX/VMS systems. APS is considering LaTeX for their journals Questions lost TeX/LaTeX on a Gould Powernode 9080 (TeXhax Digest V88 #42) Two questions TeX/LaTeX on a Gould Powernode 9080 (TeXhax Digest V88 #42) ---------------------------------------------------------------------- Date: Sat, 30 Apr 88 08:15:03 EDT From: gae@osupyr.mast.ohio-state.edu (Gerald Edgar) Subject: \input How can I get TeX to \input a file, if the file has a name with a space character in it? ------------------------------ Date: Sat, 30 Apr 88 09:15:44 PDT From: KARNEY%PPC.MFENET@NMFECC.ARPA Subject: TeX style for VMS manuals I don't know how to get hold of DEC's style files they use for their manuals. However, Tom Fredian of MIT wrote some macros that accurately mimick this style. His mail address is: TWF%PFC-VAX.MIT.EDU@MC.LCS.MIT.EDU 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: Sat, 30 Apr 88 09:20:42 PDT From: KARNEY%PPC.MFENET@NMFECC.ARPA Subject: VMS changes for BibTeX 0.99c I have a change file for BibTeX 0.99c for VAX/VMS systems. It is based on the Kellerman & Smith change file. I am happy to send MY changes to anyone who wants (this will be in the form of a difference file between my BIBTEX.CH and the Kellerman & Smith's). 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: Sat, 30 Apr 88 09:58:51 PDT From: mackay@june.cs.washington.edu (Pierre MacKay) Subject: TeX/LaTeX on a Gould Powernode 9080 (TeXhax Digest V88 #42) The answer is WEB-to-C, just as it is the answer for almost any Unix-based system with a reasonable view of large continually addressable data space. (that is, just about anything but the 286 segmented world). web2c.shar.Z is available from june.cs.washington.edu in ~ftp/pub. You can also find a bootstrap tangle.c there. I have successfully compiled a TeX with 1,000,000 "halfwords" of general purpose memory. Except that the core image is 9MB it is in every respect satisfactory. (Big TeX requires some tinkering with data structures.) Email: mackay@june.cs.washington.edu Pierre A. MacKay Smail: Northwest Computing Support Group TUG Site Coordinator for Lewis Hall, Mail Stop DW10 Unix-flavored TeX University of Washington Seattle, WA 98195 (206) 543-6259 ------------------------------ Date: Sat, 30 Apr 88 14:21 EST From: "Jerry Leichter (LEICHTER-JERRY@CS.YALE.EDU)" Subject: VMS change file for BIBTEX Version .99c BIBTeX change file for Vax/VMS Modified, 12-Feb-88 by Jerry Leichter for Version .99b Modified, 15-Apr-88 by Jerry Leichter for Version .99c @x \def\title{\BibTeX\ } @y \pageno=\contentspagenumber \advance\pageno by 1 \let\maybe=\iffalse \def\title{\BibTeX changes for Vax/VMS} @z @x @d banner=='This is BibTeX, Version 0.99c' {printed when the program starts} @y @d banner=='This is BibTeX, Vax/VMS Version 0.99c' @z @x @d term_out == tty @d term_in == tty @y @d term_out == output @d term_in == input @z @x @d print(#) == begin write(log_file,#); write(term_out,#); end @d print_ln(#) == begin write_ln(log_file,#); write_ln(term_out,#); end @d print_newline == print_a_newline {making this a procedure saves a little space} @# @d trace_pr(#) == begin write(log_file,#); end @d trace_pr_ln(#) == begin write_ln(log_file,#); end @d trace_pr_newline == begin write_ln(log_file); end @= procedure print_a_newline; begin write_ln(log_file); write_ln(term_out); end; @y @d print(#) == begin write(log_file,#); write(term_out,#); end @d print_ln(#) == begin write_ln(log_file,#,chr(13),chr(10)); write_ln(term_out,#,chr(13),chr(10)); end @d print_newline == print_a_newline {making this a procedure saves a little space} @# @d trace_pr(#) == begin write(log_file,#); end @d trace_pr_ln(#) == begin write_ln(log_file,#,chr(13),chr(10)); end @d trace_pr_newline == begin write_ln(log_file,chr(13),chr(10)); end @= procedure print_a_newline; begin write_ln(log_file,chr(13),chr(10)); write_ln(term_out,chr(13),chr(10)); end; @z @x @d othercases == others: {default for cases not listed explicitly} @y @d othercases == otherwise {Vax/VMS default for cases not listed explicitly} @z @x program BibTEX; {all files are opened dynamically} @y program BibTEX(input,output); {all files are opened dynamically} @z @x @= @{@&$C-,A+,D-@} {no range check, catch arithmetic overflow, no debug overhead} @!debug @{@&$C+,D+@}@+ gubed {but turn everything on when debugging} @y On Vax/VMS, there are no compiler directives that can be introduced in this way, but we take this opportunity to include a few sysetem dependent goodies. @d VAX_text==@= text @> @d VAX_new==@= new @> @d VAX_none==@= none @> @d VAX_word==@= word @> @d VAX_error==@= error @> @d VAX_length==@= length @> @d VAX_syi_sid==@= syi$_sid @> @d VAX_continue==@= continue @> @d VAX_external==@= external @> @d VAX_readonly==@= readonly @> @d VAX_volatile==@= volatile @> @d VAX_aligned==@= aligned @> @d VAX_unsigned==@= unsigned @> @d VAX_carriage_control==@= carriage_control @> @d VAX_io_setmode==@= io$_setmode @> @d VAX_iom_ctrlcast==@= io$m_ctrlcast @> @d VAX_immed==@= %immed @> @d VAX_stdescr==@= %stdescr @> @d VAX_ref==@= %ref @> @d VAX_qiow==@= $qiow @> @d VAX_assign==@= $assign @> @d VAX_numtim==@= $numtim @> @d VAX_getsyi==@= $getsyi @> @d VAX_lib_get_foreign==@= lib$get_foreign @> @d VAX_disposition==@= disposition @> @d VAX_delete==@= delete @> @d VAX_save==@= save @> @d VAX_varying==@= varying @> @d VAX_substr==@= substr @> @d VAX_trnlog==@= $trnlog @> @d VAX_ss_normal==@= ss$_normal @> @= @=[check(none)]@> {no debug overhead, but...} debug @=[check(all)]@> gubed {turn everything on when debugging} @z @x @!alpha_file=packed file of text_char; {files that contain textual data} @y @!alpha_file=text; {files that contain textual data} @z @x @d reset_OK(#)==erstat(#)=0 @d rewrite_OK(#)==erstat(#)=0 @= function erstat(var f:file):integer; extern; {in the runtime library} @#@t\2@> function a_open_in(var f:alpha_file):boolean; {open a text file for input} begin reset(f,name_of_file,'/O'); a_open_in:=reset_OK(f); end; @# function a_open_out(var f:alpha_file):boolean; {open a text file for output} begin rewrite(f,name_of_file,'/O'); a_open_out:=rewrite_OK(f); end; @y @= function a_open_in(var f:alpha_file):boolean; {open a text file for input} begin open(f,name_of_file,VAX_readonly,VAX_error:=VAX_continue); if status(f)>0 then a_open_in:=false else begin reset(f,VAX_error:=VAX_continue); a_open_in:=status(f)<=0; end; end; @# function a_open_out(var f:alpha_file):boolean; {open a text file for output} begin open(f,name_of_file,VAX_new,16383,{VAX_disposition:=VAX_delete,} VAX_error:=VAX_continue); if status(f)>0 then a_open_out:=false else begin rewrite(f,VAX_error:=VAX_continue); a_open_out:=status(f)<=0; end; end; @z @x pre_define('texinputs: ',10,file_area_ilk); s_bst_area := hash_text[pre_def_loc]; pre_define('texbib: ',7,file_area_ilk); s_bib_area := hash_text[pre_def_loc]; @y pre_define('tex$inputs: ',11,file_area_ilk); s_bst_area := hash_text[pre_def_loc]; pre_define('tex$bib: ',8,file_area_ilk); s_bib_area := hash_text[pre_def_loc]; @z @x This section should be replaced, if necessary, by changes to the program that are necessary to make \BibTeX\ work at a particular installation. It is usually best to design your change file so that all changes to previous sections preserve the section numbering; then everybody's version will be consistent with the printed program. More extensive changes, which introduce new sections, can be inserted here; then only the index itself will get a new section number. @y Here are the remaining changes to the program that are necessary to make \.{TeX} work on Vax/VMS. @z ------------------------------ Date: Sat, 30 Apr 1988 08:59 EDT From: Jim Walker Subject: RE: VMS manuals in TeX/ String Operations? Answers to two questions in TeXhax V88 #42: VMS manuals are produced using a DEC product called VAXDocument. It uses TeX as its typesetting engine, but has another markup language as a front end. TeX doesn't have much in the way of string operations, but to just compare a string to another, you can use \ifx. It is also possible to test for the presence of a substring using a macro with a delimited parameter. For instance, suppose that the macro \blah expands to a string, and you want to test whether it contains the letter x. Then something like the following should work. \def\findx#1x#2\end{\def\foo{#2}\ifx\foo\empty \message{no x}\else \message{there's an x}\fi} \expandafter\findx\blah x\end --Jim Walker, Department of Mathematics, University of South Carolina ------------------------------ Date: Sat, 30 Apr 88 15:05 PDT From: Don Hosek Subject: Re: TFM mismatching My experience has been that TFM mismatching occurs when (1) You are using a pre-generated FMT from a tape: This happened to me while installing TeX on a CMS system; (2) You are mixing pre-generated fonts with the same fonts at different magnifications: The problem is not the mode_def settings; they shouldn't affect the checksum unless they're *really* drastic (and even then, I don't think it would make a difference). The problem here is that the pre-generated fonts might have come from a different version of the CM MF source than what you have on-line. I generally don't trust pre-generated fonts--I've had plenty of bad experiences and too few good ones. Especially on some machines (like an IBM 3081) generating a complete set of fonts (all the cm at magsteps 0 1/2 1 2 3 4 5) generally can be accomplished in about a day. On a smaller machine (say a MicroVAX, or a 4341 or something along those lines) it might take up to a week, but it's well worth the time, to be sure that you're consistent. Under these circumstances, when one gets an invalid checksum, one *knows* that it means their's a problem with the font (this occured to me recently with a cminch at magstep5; MF died in the middle of processing the font, as a result the checksum didn't match. Since I run MF in batchmode, their's no other way for me to spot these bad fonts. -dh ------------------------------ Date: Sat, 30 Apr 88 15:14 PDT From: Don Hosek Subject: Re: POSTSCRIPT FOR DEC SCRIPTWRITER This message was bounced by the Colorado mailer, so I'm sending it to the list-at-large. Additions or corrections to this information are welcome-send them to me at Assuming that the DEC Scriptwriter isn't really bizarre (such as having an unusual resolution) you should be able to use any PostScript converter. Aside from having an odd resolution, I can't think of much else that could be unique about any brand of PostScript printer. And even if that is the case, any PostScript driver will still work (but the output might be less than optimum if the resolution is a multiple of 300 or really ugly if it's otherwise). One driver, DVI/PS will poll the printer and find out what engine and resolution are used and will then use appropriate fonts. DVIALW, should be easily changed to use another resolution; I'm not sure about DVI/PS. One driver not listed below, DVIOUT, is described in TeXhax v88n40. It's available from the DECUS library. Arbortext, Inc. DVIlaser/PS Allows inclusion of graphics, use of printer resident fonts, font substitution, font scaling, and magnifies or shrinks images, landscape printing and uses pxl, gf and pk files. Cost: $500 workstations; $750 mainframes. Site licenses available. Academic discounts available. Arbortext, Inc. Contact: Bruce Baker Postal Address: 535 W. William Street Suite 300 Ann Arbor, MI 48103 Phone: (313) 996-3566 Arpanet: bwb%arbortext@umix.cc.umich.EDU University of Sydney Dvi/PS (by Alec Dunn) Uses GF, and both word- and byte-packed PXL fonts. Allows landscape printing, inclusion of PostScript graphics (described in TUGboat 8#2), and use of PostScript fonts. A PostScript-from-Mac program is available on request. The program communicates with the printer to determine what resolution/set of fonts to use. Written in Pascal. Source not included. Cost: $500 University of Sydney Contact: Alec Dunn Postal Address: School of Electrical Engineering University of Sydney NSW 2006, Australia Phone: (02) 692-2014 Acsnet: alecd@facet.ee.su.oz Arpanet: alecd%facet.ee.su.oz@Seismo.Css.GOV University of Utah DVIALW (by Nelson H.F. Beebe and Neal Holtz) Uses GF, PK or PXL files. Graphics inclusion is supported. Written in C. Source is included. University of Utah Contact: Nelson H.F. Beebe Postal Address: Center for Scientific Computing 220 South Physics University of Utah Salt Lake City, UT 84112 Phone: (801) 581-5254 Arpanet: Beebe@Science.Utah.EDU Availability: All of the Beebe drivers are distributed together. They are available on IBM PC-DOS floppy disks (about 6), or 1600bpi 9-track tape in TOPS-10/20 BACKUP/DUMPER format, VAX/VMS BACKUP format, Unix tar format, and ANSI D-format. Send tape or disks for a copy. FTP: The programs are available for anonymous FTP from SCIENCE.UTAH.EDU on the internet; information is in the file PS:00README.TXT. A VAX/VMS binary distribution is available for anonymous FTP (password guest) from CTRSCI.UTAH.EDU. 00README.TXT in the login directory gives details. On JANET, the programs may be obtained from the directory aston.kirk::[public.texdvi210]. On DECnet, they are available from the DECnet file repository, for more information send mail to the DECnet address <39937::luvisetto>. Listserve: The drivers are available from Listserv on EARN to European Bitnet users. Sending the command GET DRIVER FILELIST (in an interactive message, or as the first line of a mail message) to LISTSERV@DHDURZ1. Files are obtained with the command GET filename filetype. Hope this is helpful, -dh ------------------------------ Date: Sat, 30 Apr 88 15:44:32 PDT From: lamport@src.dec.com (Leslie Lamport) Subject: Re: TeXhax Digest V88 #42 Jim Gerland writes: I found a missing \def in letter.sty. Sorry if this has been announced before but I haven't seen it so I thought I'd let you know. Are there any other 'fixes' I should know about? Thanks, The missing def, of \fromname, is needed in the standard letter.sty file only if the user doesn't type a \signature command. I don't know if it's a legal input file if it doesn't have a \signature command. I'll add the definition in the file, but I wouldn't advise people to rush out and get the new version. "Josie" writes: I am a novice user of TeX and a more advanced user of LaTeX. I have encountered two problems when running LaTeX one which I've been able to solve and the other which I haven't. They are as follows: 1. When I create a table of contents, I must include the \tableofcontents command at the end of the document otherwise my output will consist of an empty page with the word CONTENTS on the upper left hand corner. Before I process the .TOC file, I must edit it to include a \setcounter{page} command. For example, if the last page in my document is page 80, the first page of the table of contents will be 81. I assume this is because the \tableofcontents command appears at the end of the document. I may may then process the .TOC file. 2. When I choose the [titlepage] option in the article style (to create a separate title page) in addition to a \thanks command, the footnotes are not numbered "properly." With the book and report styles and the article style in which the [titlepage] option is NOT chosen, footnotes to the title page are marked by an asterisk, dagger, double dagger and so on. However, once the [titlepage] option is chosen, footnotes are numbered (1, 2, etc.) By the way, this does not affect the numbering of footnotes in the document. For example, the first footnote in the text will be numbered 1. Does anyone know how I can number the footnotes correctly? 1. The \tableofcontents command should be put exactly where you want the table of contents. He/she jumped to a hasty conclusion about what would and wouldn't work; I suggest reading section 4.1 of the manual. 2. He/she has, for some unknown reason, decided that it is correct to number footnotes in a title by asterisk, etc. and incorrect to number them 1, 2, ... LaTeX is numbering the footnotes exactly the way I thought they should be numbered. If he/she wants to change the way they are numbered, I recommend looking in the index under "numbering". If my answers to these questions are even more abrupt than usual, it is because this sort of novice question should not be wasting everyone's time by appearing in TeXHaX. Anyone who sells or installs LaTeX is supposed to produce a Local Guide and designate some local wizard to answer such simple questions and forward more difficult ones. I expect that Josie had no one to turn to with his/her questions, so it wasn't his/her fault, but that doesn't make me any happier to answer them. Leslie Lamport ------------------------------ Date: Sun, 1 May 88 03:54:22 EDT From: jonradel%icecream.Princeton.EDU@Princeton.EDU (Jon Radel) Subject: "Standard" collection of CM fonts From TeXhax41.88: >A user wanted to print a document with cmr9 at magstep1. We didn't >have it because it wasn't in the Unix TeX distribution. Now I >understand that what was provided on the tape is fairly minimal and I >should make more sizes. The question is, what is a standard set of CM >fonts? As far as I know, there isn't any such thing. What I distribute as the "standard" are the 16 essential fonts mentioned by Knuth in {\it Computer Modern Typefaces} in steps 0 through 5, cminch in step 0, and the 58 other fonts at steps 0 through 1. The people at Personal TeX, Inc. do the same thing, except that they add cmcsc10, cmb10, and cmss10 to the fonts supported in all magsteps. If you find someone with more authorative ideas on the matter, I'd love to hear them. --Jon Radel jonradel@icecream.princeton.edu ------------------------------ Date: Sun, 1 May 88 07:13:01 PDT From: KARNEY%PPC.MFENET@NMFECC.ARPA Subject: Big TeX/LaTeX for VAX/VMS systems. Big TeX/LaTeX for VAX/VMS systems. The standard versions of TeX for VAX/VMS systems fit a memory_word into a longword (32 bits). As a consequence mem_max is limited to 2^16 or 65000. This means that some applications (particularly processing halftone images, etc.) are impossible. These limitations are removed by packing a memory_word into a quadword (64 bits). This is similar to the approach taken by Adrian Clark. However, I take care of the alignments of the components in memory_word, to give slightly better performance. I'll describe the changes necessary to TEX.CH: (A) Here are the components of memory_word: A memory_word is 64 bits [quad], A halfword is 32 bits [long], A quarterword is 16 bits [word], An integer is 32 bits [long], A glue ratio is double-precision [quad]. (B) Constant settings: Set mem_max and mem_top to 400000 Set max_quarterword to 1023 (anything up to $2^{14}-1$ is OK) Set max_halfword to @"3FFFFFFF (this is $2^{30}-1$ which is the maximum) (C) Use double precision for glue ratios: @d set_glue_ratio_zero(#) == #:=0.0@&D0 {store the representation of zero ratio} @d set_glue_ratio_one(#) == #:=1.0@&D0 {store the representation of unit ratio} @d real == double {use double precision reals for computation} @d float(#) == # {convert from |glue_ratio| to type |real|} @d unfloat(#) == # {convert from |real| to type |glue_ratio|} @d float_constant(#) == #.0@&D0 {convert |integer| constant to |real|} @!glue_ratio=real; {one-word representation of a glue expansion factor} (D) Type definitions: @!two_halves = [@=quad@>] packed record@;@/ @!rh:halfword; case two_choices of 1: (@!lh:[@=long@>] halfword); 2: (@!b0:[@=word@>] quarterword; @!b1:[@=word@>] quarterword); end; @!four_quarters = [@=quad@>] packed record@;@/ @!b0:[@=word@>] quarterword; @!b1:[@=word@>] quarterword; @!b2:[@=word@>] quarterword; @!b3:[@=word@>] quarterword; end; @!memory_word = [@=quad@>] record@;@/ case four_choices of 1: (@!int:integer); 2: (@!gr:glue_ratio); 3: (@!hh:two_halves); 4: (@!qqqq:four_quarters); end; (E) Make sure $numtim uses an array of 16 bit words (uword is 0..@"FFFFFF): var t:packed array[1..7] of uword; {raw year, month, day and time} begin @= $numtim@>(t);@/ NOTES: (1) The maximum values for max_quarterword and max_halfword (2^{14}-1 and 2^{30}-1) are less than what will fit into a longword and a quadlong. The limit on max_quarterword is given by the fact that TANGLE does arithmetic on it, and objects if any of its calculations exceed 2^{15}-1. The limit on max_halfword is given by the fact that TeX makes the comparison "2*max_halfword Subject: Two questions hi. I have 2 questions (one for me, one for a colleague): a) is there a macro available for TeX to do endnotes rather than footnotes? b) is there a way to generate an index to a supplied list of keywords? I'm quite a novice at TeX so I have no idea as to the likelihood of either of these things existing. If you have any suggestions please email to me directly. Thanks in advance for any help. -- jonathan nagler e339nj@tamunix ------------------------------ Date: Mon, 2 May 88 08:29:40 PDT From: mackay@june.cs.washington.edu (Pierre MacKay) Subject: TeX/LaTeX on a Gould Powernode 9080 (TeXhax Digest V88 #42) Your message at last explains why the Gould port of pascal-based TeX never got completed. It sounds as if there is only one possible approach, and that is to convert the couple of large arrays into pointer references. That has worked even on 64K segmented architecture, under MS-DOS. Why on earth did Gould use segmented architecture on what they were trying to advertise as a good high-speed file-server and large process execution system for Unix Work-Stations? No wonder the pitch failed. I heard some of the sales talks a couple of years ago. It is bizarre to think that they were suggesting the adoption of a server with worse limitations than the client 68020 machines they were trying to serve. I wish I had known enough to ask the right questions at the time. Pierre ------------------------------ %%% %%% 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 %%% %%%\bye %%% ------------------------------ End of TeXhax Digest ************************** -------