TeXhax Digest Monday, September 19, 1988 Volume 88 : Issue 79 Moderator: Malcolm Brown Today's Topics: Immoderate notes/we're back! refer to BiBTeX conversion Re: The best way to do pictures in TeX. Re: Danish letters in LaTeX headings (TeXhax V88 #77) METAFONT change #536 and fillin=0 TeX mystery Font Quest (repeat submission, mailer is iffy) Chemical Formulae macros (repeat) Some \catcode changing macros should be \outer Olde English fonts PC-Hercules Previewer. The LN03A fonts strike again...(not enough) LaTeX Style Questions DosTeX bug Re: date in letters a verbatim mode for computer programs GFTOPK for VMS ---------------------------------------------------------------------- From: Malcolm Date: 19 Sept 88 Subject: Immoderate notes/we're back! %%% If you're reading this, no doubt you've deduced that TeXhax is %%% back on the air. I regret the long delay, but I was attending %%% the Seybold conference most of last week, causing me to neglect %%% TeXhax to some extent. But I've caught up on all the subscription %%% requests and the like, so let's hope we're up and running (famous %%% last words...) %%% I originally mailed digest 79 before the pause, and was dismayed %%% to return only to find that the mailing had bombed. Accordingly, I'm %%% sending this out once more, since the majority of the TeXhax %%% readership apparently did NOT receive it. My apologies to those %%% for whom this is a duplication! %%% Malcolm ------------------------------ From: Peter King Date: Fri, 26 Aug 88 14:46:57 BST Subject: refer to BiBTeX conversion I have written a shell script (using both sed and awk) which will convert refer (or bib) databases to BiBTeX format. The program r2bib on the UNIX tape does a similar job, but I belive my script is more useful because it a) does a better job of generating keys b) converts accents and (some) troff special characters c) is readily customisable (if you know awk) d) does a slightly better job of classification of type of reference. It's probably too long (c. 850 lines) to include in the mailshot, but here it is for archiving. I have sent Pierre MacKay a copy. The manual page was adapted from the r2bib manual page. Peter King Peter King, Computer Science Department JANET: pjbk@uk.ac.hw.cs Heriot-Watt University ARPA: pjbk@cs.hw.ac.uk 79 Grassmarket, Edinburgh EH1 2HJ or pjbk%cs.hw.ac.uk@ucl-cs Phone: (+44) 31 225 6465 Ext. 555 UUCP: ..!ukc!cs.hw.ac.uk!pjbk %%% Peter's file is indeed too large. It can be FTP'ed from the machine %%% "score.stanford.edu" by GETting the file %%% king.txh %%% A copy has been forwarded to TEX-L for the folks on BITNET. Malcolm ------------------------------ Date: Thu, 25 Aug 88 16:01:51 +0200 From: mcvax!iesd!fj@uunet.UU.NET (Frank Jensen) Subject: Re: The best way to do pictures in TeX. In TeXhax Digest V88 #73, William LeFebvre wrote the following about doing pictures in TeX: > The solution? Use MetaFont, of course. I agree, I do the same! He continues: > Only three problems need to be solved: > > 1) make metafont tile an image, producing many characters for > one image > 2) positioning text correctly in the image (I have some ideas > for this, too) > 3) deal with widely differing printer resolutions gracefully. I will now describe how I deal with these "problems": 1) The reason William LeFebvre gave for tiling an image was the upper limit on character sizes imposed by MF. I don't see this as a problem because I am normally working with pictures that should fit on an A4 page (approximately the same size as the US 11x8 inches format), and this is easily managed by MF. (If you have to make *very* *huge* posters, you can tile the image maually, as you will probably not do it very often.) 2) I am using LaTeX (more or less); this implies that I can use the picture environment in my documents. Here is an outline of the procedure that I follow when making pictures: a) Define the picture (in file figures.mf, say) in the MF language: input definitions; % Macro, pen, etc. definitions. ... charbegin (77, 100pt#, 50pt#, 50pt#); "Figure x, Paper y"; ... % Definition of the figure. endchar; b) Run MF to generate the figures: mf "\mode=localfont; input figures" Notice the use of `localfont' here: don't use proof mode! (If you're using special fonts for previewing, use the appropriate mode to generate those fonts.) c) In your document file (Paper.tex, e.g.) do the following: ... % The usual \documentstyle, etc. stuff. \font\figures = figures ... \begin{figure}[htp] \unitlength 10pt \begin{center} \begin{picture}(10,10) \put(0,5){\figures\char77} \end{picture} \end{center} \caption{...} \end{figure} ... Notice that the positioning is easy once you know where the reference point of your figure (MF character) is! 3) See above how the mode choice automatically deals with the resolution. I have (together with other people in our department) used this method for preparing many of the figures in a book about graph theory to be published later this year, so the above is a well-tested method! There might, however, be problems when you want to *print* your document. Some printer drivers assume that font members are small characters and tries to store them in special memory; this will in certain cases cause problems, but I think this is a deficiency on the printer drivers side, not a fault in the above described method! Any comments? Any other suggestions? Frank Jensen, fj@iesd.dk, {...}!mcvax!dkuug!iesd.dk!fj Department of Mathematics and Computer Science Aalborg University DENMARK ------------------------------ Date: Sat, 27 Aug 88 18:45:55 +0200 From: mcvax!diku.dk!seindal@uunet.UU.NET (Rene' Seindal) Subject: Re: Danish letters in LaTeX headings (TeXhax V88 #77) > When LaTeX makes headings, it converts the titles of the \section s > into caps as default. > This works well until Danish characters are used. To solve the > problem, we tried the following TeX-commands: > \uccode`\~~Z=`\~~] % \ae > \uccode`\~~]=`\~~] % \AE > \uccode`\~~\=`\~~_ % \o > \uccode`\~~_=`\~~_ % \O > but it did not give any result! - And there were no error > messages. Surprisingly, the last Scandinavian character \AA \aa did > not give any problems! At DIKU we use another convention. We use @ as a secondary escape character and type @a, @e and @o for \aa, \ae and \o resp. The definitions follow below. They work well with \uppercase and \lowercase, and more important, they are safe in moving arguments. If you don't like the input style, it should not be that hard to transform it into something else. Maybe even redefine \aa, \o etc... The file functions as a LaTeX documentstyle option (called DK here). Beware that it changes the category code of @, so it must be the last option listed. Otherwise LaTeX bombs out when processing the following options. ---------------------------------------------------------------------- %% DK.sty \def\makeatactive{\catcode`@=\active} \let\makeatother=\makeatactive \let\AT=@ % category 11 (letter) (for use in tabular) \let\@dkA=\AA \let\@dkE=\AE \catcode'035=11\uccode'035='035\lccode'035='032 \let\@dkO=\O \catcode'037=11\uccode'037='037\lccode'037='034 \let\@dka=\aa \let\@dke=\ae \catcode'032=11\uccode'032='032\lccode'032='035 \let\@dko=\o \catcode'034=11\uccode'034='034\lccode'034='037 \def\@dkAT#1{@} \def\@dkcall#1{\csname @dk#1\endcsname} \newtoks\@aterrhelp \@aterrhelp{This @ was not followed by an A, E, O, a, e, o or @ as it should be.} \def\@ATerr{\errhelp=\@aterrhelp\errmessage{Illegal character after @}} \def\@AT{\futurelet\next\d@AT} \def\pAT{\protect\@AT} \def\d@AT{% \if A\next \let\next=\@dkcall \else \if E\next \let\next=\@dkcall \else \if O\next \let\next=\@dkcall \else \if a\next \let\next=\@dkcall \else \if e\next \let\next=\@dkcall \else \if o\next \let\next=\@dkcall \else \ifx \next\pAT \let\next=\@dkAT \else \ifx \next\@AT \let\next=\@dkAT \else \let\next=\@ATerr \fi\fi\fi\fi\fi\fi\fi\fi \next} \typeout{Skifter til dansk inddata format.} % taken from lplain.tex % Here is a list of the characters that have been specially catcoded: \def\dospecials{\do\ \do\\\do\{\do\}\do\$\do\&% \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~\do\@} % (not counting ascii null, tab, linefeed, formfeed, return, delete) % Each symbol in the list is preceded by \do, which can be defined % if you want to do something to every item in the list. % taken from latex.tex \def\@sanitize{\@makeother\ \@makeother\\\@makeother\$\@makeother\&% \@makeother\#\@makeother\^\@makeother\^^K\@makeother\_\@makeother\^^A% \@makeother\%\@makeother\~\@makeother\@} \makeatactive \let @=\pAT ---------------------------------------------------------------------- Rene' Seindal, DIKU, U. of Copenhagen, Denmark. (seindal@diku.dk) ------------------------------ Date: Sun, 28 Aug 88 03:50:54 BST From: CET1%phoenix.cambridge.ac.uk@NSS.Cs.Ucl.AC.UK Subject: METAFONT change #536 and fillin=0 In TeXhax 1987.84 I said, talking about MF change #536: > ... for a mode with fillin=0, ... change #536 ... has no effect. In case anyone else is under this misapprehension: it's completely wrong! My reading of the code must have been pretty sloppy to come to this conclusion. In fact, the order of magnitude of the effects are just as large in the case of fillin=0. I realised this as a result of the awnser to exercise 16.2 in the MFbook changing from 66615.5/65536 = 1.016472- to 69507.5/65536 = 1.060600+ (as is described in the errata list published in TUGboat). The latter is a much better approximation to the "true" value of 0.75*sqrt(2) = 1.060660+, so it's nice to see that change #536 really does fix a bug! (Well, it would, wouldn't it?) Chris Thompson JANET: cet1@uk.ac.cam.phx ARPA: cet1%phx.cam.ac.uk@nss.cs.ucl.ac.uk ------------------------------ Date: Sun, 28 Aug 88 14:44 EDT From: Robert Messer Subject: TeX mystery In the table generated by \halign{&#\cr \noalign{\hrule} a&b\cr c&\span\cr} why does the \span cause the \hrule to extend over only the first column? The output resembles - rather than -- ab ab c c Robert Messer Department of Mathematics Albion College Albion, MI 49224 RAM@ALBION.BITNET ------------------------------ Date: Sun, 28 Aug 88 16:12 CDT From: (J E PITTMAN) Subject: Font Quest (repeat submission, mailer is iffy) Does anyone have the fonts cmsl7, cmsy12, cmex12, msxm12, and/or msym12? I would greatly appreciate it if you could send the parameter file(s) to JEPTEX@TAMVENUS (bitnet). :-? ------------------------------ Date: Sun, 28 Aug 88 16:13 CDT From: (J E PITTMAN) Subject: Chemical Formulae macros (repeat) A few weeks ago, I sent in a request for help in typesetting chemical formulae, terms, and expressions. Enclosed are the macros that I have constructed from the replies I received (thanks everybody). Basically, a chemical formula is composed of groups (), isotopes, ions, and multiples of single items. The macros are \moiety{item}{charge}{multiplier}, \group{subformula}, and \isotope{mass number}{atomic number}symbol. There is also a \bracketgroup macro which works like \group, except that it uses brackets. Organic chemists often label atoms, thus the \label{number}{symbol} macro is included. Since the macro specification for a single substance can be very `messy', I have also written the macros \formuladef{name}{mess} and \formala{name}, which provide a convienent method for creating and using a chemical formula data base. Because of TeX's hyphenation rules, I have also written the macros \termdef{name}{mess} and \term{name}, which work like \formuladef and \formula and provide a convienent method of inserting discretionary hyphens. TeX does not have the graphics abilities that are necessary to make benzene rings and similiar structural diagrams practical, however, structural diagrams composed of vertical and horizontal lines are quite practical. The macros for such diagrams are \bond1, \bond2, and \bond3 for 1, 2, or 3 horizontal lines and \bondabove and \bondbelow, both of which have the parameter set: {number of bond lines} {text that the bond is to be placed above or below} {left text} {center text} {right text}. The left, center, and right text is placed above (or below) the bond lines. The enclosed example should make this a bit clearer. Sincerely, John Pittman JEPTEX@TAMVENUS (bitnet) % ---------------------- macros --------------------- % \def\moiety#1#2#3{\relax \begingroup #1% \nobreak \setbox0=\hbox{X#1}% \setbox1=\hbox{$\bigl($}% \ifdim\ht0>\ht1 \hskip -0.3ex \fi \vtop \bgroup \vbox \bgroup \setbox1=\hbox{$\scriptscriptstyle\vphantom{(}#2$}% \copy1 \vskip -2\dp1 \vskip \ht0 \egroup \nointerlineskip \vbox \bgroup \setbox1=\hbox{$\scriptscriptstyle\vphantom{(}#3$}% \vskip \dp0 \vskip -2\dp1 \box1 \egroup \egroup \-% \endgroup }% % \def\isotope#1#2{\relax \leavevmode \begingroup \setbox0=\vbox \bgroup \hbox{$\scriptscriptstyle\vphantom{(}#1$}% \hbox{$\scriptscriptstyle\vphantom{(}#2$}% \egroup \setbox1=\hbox{X}% \vtop \bgroup \vbox \bgroup \setbox2=\hbox to \wd0 \bgroup \hfil $% \scriptscriptstyle \vphantom{(}% #1% $% \egroup \copy2 \vskip -2\dp2 \vskip \ht1 \egroup \nointerlineskip \vbox \bgroup \setbox2=\hbox to \wd0 \bgroup \hfil $% \scriptscriptstyle \vphantom{(}% #2% $% \egroup \vskip \dp1 \vskip -2\dp2 \box2 \egroup \egroup \endgroup \nobreak }% % \def\group#1{\relax \begingroup \setbox0=\hbox{#1}% $% \left(% \vrule width -0.4ex height 1.05\ht0 depth 1.05\dp0 \right.% $% #1% \nobreak $% \left.% \vrule width -0.4ex height 1.05\ht0 depth 1.05\dp0 \right)% $% \-% \endgroup }% % \def\bracketgroup#1{\relax \begingroup \setbox0=\hbox{#1}% $% \left[% \vrule width -0.4ex height 1.05\ht0 depth 1.05\dp0 \right.% $% #1% \nobreak $% \left.% \vrule width -0.4ex height 1.05\ht0 depth 1.05\dp0 \right] $% \-% \endgroup }% % \def\label#1#2{\relax \leavevmode \begingroup \setbox0=\vbox{\hbox{#1}\hbox{#2}}% \vbox \bgroup \hbox to \wd0{\hfil$\scriptscriptstyle\vphantom{(}#1$\hfil}% \nointerlineskip \hbox to \wd0{\hfil\vphantom{(}#2\hfil}% \egroup \endgroup }% % \def\circa{$\sim$}% % \def\bondbelow#1#2#3#4#5{\relax \vtop \bgroup \setbox0=\hbox{#2}% \copy0 \nointerlineskip \kern 0.1em \hbox to \wd0 \bgroup \hfil \ifcase#1 \or \vrule height 1em depth 0pt width 0.05em \or \vrule height 1em depth 0pt width 0.05em \hskip 0.1em \vrule height 1em depth 0pt width 0.05em \or \vrule height 1em depth 0pt width 0.05em \hskip 0.1em \vrule height 1em depth 0pt width 0.05em \hskip 0.1em \vrule height 1em depth 0pt width 0.05em \fi \hfil \egroup \nointerlineskip \hbox to \wd0 \bgroup \hss \hbox to 0pt \bgroup \hss #3% \egroup \hbox{#4}% \hbox to 0pt \bgroup #5% \hss \egroup \hss \egroup \egroup }% % \def\bondabove#1#2#3#4#5{\relax \vbox \bgroup \setbox0=\hbox{#2}% \hbox to \wd0 \bgroup \hss \hbox to 0pt \bgroup \hss #3% \egroup \hbox{#4}% \hbox to 0pt \bgroup #5% \hss \egroup \hss \egroup \nointerlineskip \hbox to \wd0 \bgroup \hfil \ifcase#1 \or \vrule height 1em depth 0pt width 0.05em \or \vrule height 1em depth 0pt width 0.05em \hskip 0.1em \vrule height 1em depth 0pt width 0.05em \or \vrule height 1em depth 0pt width 0.05em \hskip 0.1em \vrule height 1em depth 0pt width 0.05em \hskip 0.1em \vrule height 1em depth 0pt width 0.05em \fi \hfil \egroup \nointerlineskip \kern 0.1em \copy0 \egroup }% % \def\bond#1{\relax \hbox \bgroup \kern 0.1em \setbox0=\hbox{X}% \vbox to \ht0 \bgroup \vss \ifcase#1 \or \hrule width 1em depth 0pt height 0.05em \or \hrule width 1em depth 0pt height 0.05em \vskip 0.1em \hrule width 1em depth 0pt height 0.05em \or \hrule width 1em depth 0pt height 0.05em \vskip 0.1em \hrule width 1em depth 0pt height 0.05em \vskip 0.1em \hrule width 1em depth 0pt height 0.05em \fi \vss \egroup \kern 0.1em \egroup }% % \def\formula#1{\csname FORMULA#1\endcsname}% % \def\formuladef#1#2{\expandafter\def\csname FORMULA#1\endcsname{#2}}% % \def\term#1{\csname TERM#1\endcsname}% % \def\termdef#1#2{\expandafter\def\csname TERM#1\endcsname{#2}}% % % --------------------------- example -------------------------- % \input macros \isotope{3}{1}{H}\moiety{O}{2+}{3} \isotope{17}{8}{\label{1}{C}}\moiety{\group{OH}}{}{4} \moiety{\group{A\moiety{\group{B}}{+}{2}}}{2+}{2} \formuladef{alcohol}{\moiety{C}{}{2}\moiety{H}{}{5}OH} \hyphenpenalty=-1000 \hsize=2in \rightskip=0pt plus 0.9in \formula{alcohol} \formula{alcohol} \formula{alcohol} \formula{alcohol} \formula{alcohol} \hsize 6.5in \vfil\eject \formuladef {mess} {\label{5}{C}H\bond3\label{4}{C}\bond1% \bondabove1% {\bondbelow1{\label{3}{C}}% {}{C}{\moiety{H}{}{2}\bond1\moiety{CH}{}{3}}}% {C\moiety{H}{}{2}\bond2}{C}{H}% \bond1\label{2}{C}H\bond2\label{1}{C}\moiety{H}{}{2}% } \centerline{\formula{mess}} \vskip 0.5in \centerline{The Wonder of \TeX!} \end ------------------------------ Date: Sun, 28 Aug 88 23:30:36 ECT From: HANCHE%NORUNIT.BITNET@CUNYVM.CUNY.EDU Subject: Some \catcode changing macros should be \outer What prompts me to make this statement is Michael Barr's article on the \chemical macro in TeXhax #76. In this article, after stating that For reasons I guess I would understand if I understood TeX better, if I try to define \chemical#1{{\catcode`1=\active ... #1}}, it simply ignores the change of category codes he goes on to define a macro like this: \def\chemical{\catcode`0=\active ... \catcode`9=\active} In order to understand what is going on, it is important to be aware of two facts: - TeX tokenizes the input upon scanning the characters of the input file. In particular, category codes are attached to individual characters based on the table of catcodes at the time of reading. The resulting stream of tokens is the real food of TeX, not the original characters. This explains why the first version of \chemical does not work, for the argument of the macro is scanned and inserted into the macro replacement text before any commands inside the macro are executed. - TeX never scans the input file farther than it has to. Thus, with the second definition, when you say {\chemical H2O}, the \chemical macro is expanded and the catcodes are changed before "H2O" is scanned. That is why this definition works. Once this much is understood, it should be clear that there are situations where even the second definition of \chemical will not work, because the text "H2O" is scanned while ordinary catcodes are in effect. Here are two examples: \def\water{\chemical{H2O}} \declare{Theorem 32 (The freezing point of {\chemical H2O})} By changing the definition of \chemical to read \outer\def\chemical{...} we do not make those two examples work, but will rather take the easy way out and make them illegal. The following code will be legal, and it should even work: {\chemical \gdef\water{H2O}} \declare{Theorem 32 (The freezing point of \water)} Wow. This turned out to be a whole little tutorial. Hope it will save some unsuspecting souls... - Harald Hanche-Olsen Division of Mathematical Sciences The Norwegian Institute of Technology ------------------------------ Date: Sun, 28 Aug 88 10:24:24 PST From: Peter Scott Subject: Olde English fonts Anyone got Metafont source for Gothic/Old English fonts? ------------------------------ Date: Mon, 29 Aug 88 10:58:02 IST From: "Jacques J. Goldberg" Subject: PC-Hercules Previewer. 1. If what you look for is a WORKING Previewer, stop wasting your time, install Steve Ward's Public Domain, widely available, superior, DVIEW (written for CGA,EGA, works on VGA) along with the Public Domain etc... SIMCGA40 that makes your Hercules for as a CGA. I use it daily. To the best of my knowledge there isn't any approaching driver on the market, expensive included. 2. If what you want is to learn writing a Previewer, may I recommend that you consider the PowerC compiler along with its on-line debugger, each priced 20$ ? The debugger is incredible, required the matching compiler. You won't regret your 40 bucks (I mean, forty). Jacques ------------------------------ Date: Mon, 29 Aug 88 11:21:32 IST From: "Jacques J. Goldberg" Subject: The LN03A fonts strike again...(not enough) Users, specially of DVI2LN3 which now reads PK files and conserves disk space, should once for all note down that the old LN03 and the LN03A have different writing engines. The current parameters in TuGBoat are for the LN03. Such fonts applied to an LN03A (Ln03 Plus) are very faint. This was discussed last week at the Montreal TuG meeting. Doug Henderson will send me the LN03A parameters momentarily. There is an idle IBM3081 here which is good at running big Metafont jobs. I'll make 74 CM, 7 LASY, 2 LINE, 2 CIRCL at magsteps 0, 1/2, 1,2,3,4,5 this week as soon as I have the parameters, and ship them on tape in VMS dump format upon request, to (hopefully) stop the return of this eternal item of discussion. Jacques ------------------------------ From: Z3000PA%AWITUW01.BITNET@Forsythe.Stanford.EDU Subject: LaTeX Style Questions Date: 22 AUG 88 14:54:45 What I Want To Do: I want to design a Document Style Option File REFMAN.STY that changes LaTeX's article or report page layout to something similar to the PostScript Reference Manual's style: - There shall be a big left margin and no right margin. - Section headers shall stick out into the margin (use the full page width). - Marginal notes should be used for many purposes. - Tables and figures should be allowed to use the full page width (if necessary). My Questions: The basic horizontal page layout is = + 1. How do the values above correspond with the LaTeX dimensions \textwidth, \c@lumnwidth, \oddsidemargin, \leftmargin, etc. and with the Plain TeX dimensions \hsize, \hoffset, \leftskip, etc.? And how are these dimensions related to each other within LaTeX? 2. Which of these dimensions are used by the paragraph maker and can be changed between paragraphs within a page? 3. Which of them are used by the page output routine (including running heads and foots) and therefore must not be changed within pages? 4. How can I redefine \marginpar that it always uses the left hand margin and never the right hand one? 5. How can I redefine the \section etc. commands that they use the ? How can I switch back and forth between and (e.g. for large tables)? 6. How can I define a \newenvironment{bigdescription} that acts as a zero level description environment with the item lables appearing in the ? Any help is appreciated. ---> z3000pa@awituw01.bitnet Hubert Partl EDV-Zentrum Technical University Wiedner Hauptstrasse 8-10 A-1040 WIEN (Austria) ------------------------------ Date: Mon, 29 Aug 88 10:07:31 CDT From: beihl%cadillac.cad.mcc.com@mcc.com (Gary Beihl) Subject: DosTeX bug The following may be useful to DosTeX users: There appears to be a bug in the version of DVIEPS distributed with recent copies of DosTeX v2.7b. It causes the PC to hang when closing the log file. As a workaround until this gets fixed, be sure to use the -l option (which disables logging). Gary Beihl (beihl@mcc.com) ------------------------------ From: Stephen Slade Date: Mon, 29 Aug 88 14:44:20 EDT Subject: Re: date in letters When I use the LaTeX letter environment I automatically have a date supplied. But the date given is always today, not the day that I wrote and sent the letter, so if I print out a copy of the letter later I get the wrong date. I cannot locate anyplace in the manual that says how to over ride this (under date or letter or today or whatever), or even how to prevent the date from showing (so that I can insert my own). So: how do I prevent dates or over ride the default? \date{mydate} doesn't work. Tom Schneider toms@ncifcrf.gov Letter uses \today to insert the date. You may simply redefine \today to be the date chosen. I find the following command useful and include it in my local letter style file. \newcommand{\setdate}[1]{\renewcommand{\today}{#1}} At the head of the file, I insert a \setdate{} command, e.g., \documentstyle{letter} \setdate{August 29, 1988} \begin{document} \begin{letter}{...} ... --Stephen Slade Yale AI Project ------------------------------ From: INHB%MCGILLC.BITNET@Forsythe.Stanford.EDU Date: MON AUG 29, 1988 17.14.58 Subject: a verbatim mode for computer programs There has been at least one recent inquiry on a simple way of inputting formatted computer programs. Here is simple verbatim routine that appears to work well. There is a minor problem with ?` and !` ligature that is solved by the method described on page 381 of the TeXbook, if you care. The only notable thing is the use of the escape char (ascii 27) to end the mode. It is shown in the listing below (which includes an extract of a C program) as ESC (and must be changed to the actual escape character), because it very likely won't get through E-Mail. Note you cannot use \[, the usual synonym for escape, since \ has no special meaning inside this routine. {\catcode`\ =13 \global\let =\ \catcode`\~~M=13 \gdef~~M{\leavevmode\par}} \def\program{\tt \catcode`\~~M=13 \catcode`\ =13 \catcode`\\=12 \catcode`\{=12 \catcode`\}=12 \catcode`\_=12 \catcode`\~=12 \catcode`\&=12 \catcode`\c=12 \catcode`\#=12 \catcode`\%=12 \catcode`\$=12 \catcode`ESC=2 } {\program #include #define CIC86 1 /* JC for Lattice 2.0 */ struct dta /* DOS Disk Transfer Address table */ { char fname[NAMESIZ]; /* filename and extension */ }; /* Added for testing: 4 backslashes \\\\ */ main(argc, argv) int argc; char *argv[]; { char *s; /* process input options */ while(--argc > 0 && (*++argv)[0] == '-') { } } }ESC We should be back to normal $A~{B_{12}}$. ------------------------------ Date: 29 Aug 88 18:07:00 EST From: "Michael J. Porter" Subject: GFTOPK for VMS Does anyone have a VMS specific change file for GFtoPK? If you could either mail it to me or let me know where I could FTP it from, I would appreciate it. Thanks in advance, Mike Porter mike@vax.oit.udel.edu ------------------------------ %%% %%% 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 %%% %%% Back issues available for FTPing as: %%% machine: directory: filename: %%% [SCORE.STANFORD.EDU]TEXHAXnn.yy %%% nn = issue number %%% yy = last two digits of current year %%%\bye %%% ------------------------------ End of TeXhax Digest ************************** -------