[comp.text] TeXhax Digest V89 #80

TeXhax@cs.washington.edu (TeXhax Digest) (09/07/89)

TeXhax Digest    Wednesday, September 6, 1989  Volume 89 : Issue 80

Moderators: Tiina Modisett and Pierre MacKay

%%% The TeXhax digest is brought to you as a service of the TeX Users Group %%%
%%%       in cooperation with the UnixTeX distribution service at the       %%%
%%%                      University of Washington                           %%%

Today's Topics:         

                             Per-thousand sign
                  Squeezing spaces from write token list
                     PC-TEX for Multitasking Systems
          Re: TeXhax Digest V89 #74 (integrating graphics and TeX)
                     Looking for Bibtex for the Mac
                         Question about dvipage
                    Re: TeXhax Digest V89 #70 (Typos)
              Public Domain TeX--screen previewer and driver
                       Re: Special purpose tabular
                            Re: LFONTS kludge
                   Terminating no-arg command strings
              Re: Explicitly terminating control string names
                  Explicitly terminating control strings
                      Preventing pagebreaks after \par
                        Pagebreaks between paragraphs
                     Re: MTEX- music typesetting in TeX

---------------------------------------------------------------------------

Date: Sun, 27 Aug 89 00:28 GMT
From: Peter Flynn UCC <CBTS8001%IRUCCVAX.UCC.IE@UWAVM.ACS.WASHINGTON.EDU>
Subject: Per-thousand sign
Keywords: per thousand sign

There is a per-mille sign in the Hodge-Podge font MDHPnn
which can be obtained from Malcolm Clark (or I believe direct from
the MetaFoundry, Dublin, Ohio). Otherwise you're on your own.

...Peter Flynn
   Cork U Comp Cent
   <cbts8001@iruccvax.bitnet>

-------------------------------------------------------------------------

Date: Fri, 25 Aug 89 10:53:58 -0400
From amgreene@ATHENA.MIT.EDU  Fri Aug 25 07:54:47 1989
Subject: Squeezing spaces from write token list
Keywords: write token list

[Carlos A. Felippa asks about getting \writedef{macroname}{macrodefinition}
to write the line \def\macroname{macrodefinition} to a file.]

You might try

\def\writedef#1#2{{\edef\tmp{\expandafter\string\csname #1\endcsname}
\immediate\write16{\def\tmp{#2}}}}

which uses \csname..\endcsname to make your text argument into a
command string, then uses \string to get its value (including the
\escapechar).  Look on page 40 of the TeXbook, where a similar example
is given.

I hope this helps!

- Andrew Marc Greene
  MIT Project Athena

---------------------------------------------------------------------------

Date: Fri, 25 Aug 89 15:41 EDT
From: MICDD@ubvmsc.cc.buffalo.edu
Subject: PC-TEX for Multitasking Systems
Keywords: PC-TeX, multitasking

Does anyone know if a version of PC-TEX is available for either OS/2,
XENIX, AIX or some other PC multitasking operating system?????
A user who uses PC-TEX extensively requires to be able to do compiling,
printing, etc. since his documents are quite large.

Any suggestions or solutions will be greatly appreciated.
David A. Durni
Micro Support Group
SUNY Buffalo   MICDD@UBVM

--------------------------------------------------------------------------

Date: Fri, 25 Aug 89 13:31:43 SET
From: Bernhard Vogeler <RZA02%DHAFEU11.BITNET@UWAVM.ACS.WASHINGTON.EDU>
Subject: Re: TeXhax Digest V89 #74 (integrating graphics and TeX)
Keywords: graphics, TeX, LaTeX

in TeXhax V89 #74 Nachum Shachan asks for some help while integrating
graphics and TeX/LaTeX.

There is a nice package of macros written by Michael J. Wichura,
Univ. of Chicago, called PiCTeX. A description of this macro system
is published as paperback:
   TeXniques, Publications for the TeX Community, Number 6
   "The PICTEX Manual"
This book includes a MS-DOS Diskette ready for Installation.

        B. Vogeler

-------------------------------------------------------------------------

Date: Thu, 24 Aug 89 16:45:31 EDT
From: Michael D. Prange <prange@erl.mit.edu>
Subject: Looking for Bibtex for the Mac
Keywords: BibTeX, Mac

%% Moderator's note: BELTRAME@ICNUCEVM.CNUCE.CNR.IT is also
%% interested in any information on this subject.

Does anyone have a version of Bibtex which works on the Macintosh?

Michael

--------------------------------------------------------------------------

Date: Wed, 23 Aug 89 17:15:40 PDT
From: slo@ipac.caltech.edu (Steven Lo)
Subject: Question about dvipage
Keywords: dvipage

Hi, 

	I am a new user of the dvipage tool and I have a question which
you may help me answer it.

	How can I condense the character of the dvipage output??  I can't
even view the whole page of the document on the dvipage tool.  Do I have
to generate another set of font or I have to modify the source of the
dvipage??  Can you give me some suggestions.  Thank you.

						Steven Lo ......

-----------------------------------------------------------------------

Date: Wed, 23 Aug 89 15:48:01 PDT
From: siemsen%skat.usc.edu@usc.edu (Pete Siemsen)
Subject: Re: TeXhax Digest V89 #70 (Typos)
Keywords: METAFONT, typos

I've found 4 typos in the METAFONTbook.  Who should I tell?

-------------------------------------------------------------------------

Date: Wed, 23 Aug 89 12:18:24 EDT
From: Will Thacker <V010558%UNIVSCVM.BITNET@UWAVM.ACS.WASHINGTON.EDU>
Subject: Public Domain TeX--screen previewer and driver
Keywords: driver, previewer, PD TeX

Does anyone know where I could get a public domain version of a
screen previewer for the IBM/PC  and/or a public domain version of
an IBM graphics printer driver for the PC.   Thanks.

-------------------------------------------------------------------------

Date: Thu, 24 Aug 89 15:51:40 EDT
From: Denys Duchier <duchier-denys@YALE.ARPA>
Subject: Re: Special purpose tabular
Keywords: tabular, environment

> I'm trying to define an environment for writing BNF-type grammar
> descriptions. Seems to me what i want is something like a tabular
> environment with two columns.  My first pass is this:
> 
> \begin{tabular}{r@{\ $\rightarrow $\ }l} 
> 
> Now the problem: if the right-hand side of an expression doesn't fit on a
> single line, i want it wrapped without getting extra production
> arrows, i.e. something like

There is no easy way to do what you want. However, you might try the following:

\newdimen\foodim
\newbox\foobox
\def\foosetup#1{\setbox\foobox\hbox{#1{\ $\rightarrow$\ }}\foodim\linewidth
  \advance\foodim-\wd\foobox\advance\foodim-2\tabcolsep}

\newenvironment
{footab}[1]%
{\foosetup{#1}\center\tabular{r@{\ $\rightarrow$\ }p{\foodim}}}%
{\endtabular\endcenter}%

You would use it like this:
\begin{footab}{longuest-left-hand-side}
...
\end{footab}

Now of course you have to know which is the longuest left-hand side...
Oh well! I hope this helps though.

--Denys
Organization: Computer Science, Yale University, New Haven, CT 06520-2158

---------------------------------------------------------------------------

Date: Thu, 24 Aug 89 16:34:40 -0700
From: lamport@src.dec.com
Subject: Re: LFONTS kludge
Keywords: LFONTS, kludge

John Jorgensen writes:

   At the top of ``LFONTS - Version of 11 November 1986'' are the lines:
   
       % This file contains the following kludge: 8pt and 9pt versions
       % of \sc call magnifications of amcsc10 instead of cmcsc10.
       % Search for KLUDGE to find for both instances.
   
   What's the point of the kludge?  Why not just shrink cmcsc10, the way
   that ``LFONTS - Version of 6 May 1986'' did?  Is the shrunk AM font
   thought to look better?  I don't have the AM fonts on hand now--is it
   worth getting them instead of just switching back to using cmcsc10?

A more interesting question is: Is the current version of LFONTS.TEX,
dated 10 April 1989, which does not have this kludge, currently on
Score?

Leslie Lamport

-----------------------------------------------------------------------------

Date: Sat, 26 Aug 89 0:01:22 EDT
From: Bernie Cosell <cosell@WILMA.BBN.COM>
Subject: Terminating no-arg command strings
Keywords: command strings, termination

Thanks, all, for the advice and suggestions.  The most popular one was
just to use paired braces.  Either \bbn{} or {\bbn} work fine.  BUT..
a few people pointed me at Knuths "\TeX/" example in the TeX Book and
that proved to be the winner for my purpose.  Here's what I've done.
I have added to my project-local style files (eventually to get into our
master styles, if not moving right into latex.tex if anyone globally thinks
this is worthwhile) the following little definition:

\def\abbr#1#2{\def#1/{#2}}

Then what I do is in all the places where I would normally use \newcommand,
I instead do something like:

\abbr{\bbn}{{\caps BBN}}

And now in my document, I reference 'bbn' by just doing "\bbn/"  *always*.
No special cases, no border conditions...  and it isn't even very uglyto type
or to look at.

Another problem solved!

  /Bernie\

ps, I know that my definition for \abbr would never do for latex.tex, but I
tried to sort out how it does \newcommand and pattern \abbr after it, but THAT
tangle was completely unravelable [what IS that @tempb machinery trying to do,
anyway?], so I gave up and went with something simple to start with... /b\

----------------------------------------------------------------------------

Date: Fri, 25 Aug 89 13:06:33 BST
From: Martin Ward <martin%EASBY.DURHAM.AC.UK@UWAVM.ACS.WASHINGTON.EDU>
Subject: Re: Explicitly terminating control string names
Keywords: TeX, character

The problem: no argument commands in running text require a backslash
after them but ONLY if they are followed by a space (eg you type \bbn\ in
the middle of a sentance but at the end its \bbn.)

The solution: include a terminating character in the definition of the
command, eg:
		\def\bbn|{... defn of \bbn}
The character can be almost anything other than a letter, #, \, %, { or },
since it is not expanded.

Here's an example of mine taken from my LaTeX style file for typesetting
algorithms. I wanted to type in variable names as: |long_var_name|
which should work in text or math mode. I also wanted to use _ in math
mode to denote subscripts, and I wanted | to work as normal in the
preamble to an array or tabular environment. Finally I wanted |\ (ie
| followed by a space) to have the normal effect of a single |.

% Set up | as a variable delimiter and _ as \_ outside math mode:
% Simple vars will have the form: |very_long_pascal_variable_name|
% The test of \@sharp checks if the | is in an array or tabular
% environment preamble - if so then | has its default value.
% Otherwise, if next char is a space then | has default value.
% If next char is not a space then | is a variable delimiter.
\catcode`\|=12\relax
\def\origbar{|}
\catcode`\|=\active
\catcode`\_=\active \def_{\ifmmode\sb\else\_\fi}
\def|{\ifx\@sharp\relax\origbar\else\@xdovar\fi}
% The argument to \@xdovar will be the closing \fi of |
% This is so that \@dovar can find the variable name immidiately.
\def\@xdovar#1{#1\@ifnextchar \ {\origbar\@gobble}
                                {\@dovar}} % #1 = \fi from defn of |
\def\@dovar#1|{\variable{#1}}

A question for the _real_ TeX hackers:
How can you define \bbn so that you _can_ type \bbn\ every time.
The problem is that the \ (and the next character or sequence of letters)
has already been read (while TeX is looking for the end of the \bbn name)
before \bbn is expanded so you can't define \bbn to make \ an active character
which restores the catcode of \.

		Martin.

My ARPANET address is:  martin%EASBY.DUR.AC.UK@CUNYVM.CUNY.EDU
OR: martin%uk.ac.dur.easby@nfsnet-relay.ac.uk  UUCP:...!mcvax!ukc!easby!martin
JANET: martin@uk.ac.dur.easby    BITNET: martin%dur.easby@ac.uk

----------------------------------------------------------------------------

Date: Fri, 25 Aug 89 13:59:39 MDT
From: Dirk Grunwald <grunwald@boulder.Colorado.EDU>
Subject: Explicitly terminating control strings
Keywords: control string names, termination

Bernie Cosell writes:
>> There is a real problem with using no-argument commands in running text:
>> the algorithm for how to terminate them is moderately complicated, and
>> is viewed as being mostly a total crock by less-than-experts.  It'd be

and he's correct, it's a pain. The solution I've found most successful,
particularly when you decided to globally replace names is:

	Digitial Equipment Corporation -> {\dec}

This works fine for:
	DEC. -> {\dec}.
	the DEC sales... -> the {\dec} sales

I haven't seen any cases where this notation causes any problems, and it's
a lot simpler than the rules I was using before.

Dirk Grunwald -- Univ. of Colorado-Boulder	(grunwald@boulder.colorado.edu)
Office: 6-1 EECR (303) 492-0452

---------------------------------------------------------------------------

Date: Fri, 25 Aug 89 19:01 EDT
From: "Jerry Leichter - LEICHTER-JERRY@CS.YALE.EDU"
Subject: Preventing pagebreaks after \par
Keywords: pagebreaks, \par

In a recent TeXhax, Stephan Bechtolsheim says:

	The problem I would like to address is how to prevent
	page breaks between paragraphs.

He suggests one possibility:

	2. When you write
		xxxxxxxxx
		\par
		\penalty 10000
		yyyyyyyyy

	then the vertical list around the \par looks as follows:

		last line box of xxxxxxx paragraph
		\penalty 10000
		\parskip glue
		interline glue (computation based on baselineskip)
		first line box of yyyyyyyy paragraph

	3. How do you attach / assign a penalty to the interline glue?
	Because if you don't, a break can occur at this point (remember:
	glue is a "legal break point" unless preceded by a penalty.)

He "remembers" wrong!  According to the TeXbook (page 110), page breaks may
occur "at glue, provided that this glue is immediately preceeded by a non-
discardable item (i.e., by a box, whatsit, mark, or insertion)."  Since the
interline glue is preceeded by \parskip glue, which is discardable, no page
break can occur at it.  (BTW, since a penalty is discardable, no break can
occur at the \parskip glue either.  There is no special rule for penalties.)

For both line and page breaking, successive gobs of glue are effectively
fused into a single unit; a break can only occur before or after the whole
unit, never within it.  (Also, a SINGLE kern may precede a glue unit and
be considered part of it.  A kern in any other position forms a unit of its
own.)

If you imagine a pre-pass which does this fusing, then the rules for breaking
vertical lists are simple:  Breaks can occur at the top of a glue/kern unit,
or at a penalty.  (The situation for horizontal lists is more complex because
of the embedded math items and discretionaries, but as far as breaking around
glue and kerns, the same rules apply.)
	-- Jerry
		
--------------------------------------------------------------------------
				
Date: Sat, 26 Aug 89 08:29:39 EST
From: integin!svb@cs.purdue.edu (Stephan Bechtolsheim)
Subject: Pagebreaks between paragraphs
Keywords: pagebreaks, paragraphs

"In reply to my own message:" I discussed this with Barbara Beeton
who pointed out that I was wrong (LaTeX doesn't seem to make it
right always, I guess that is how I got my missinformation).

To correct my mistake: if TeX is in vertical mode and you say
	\nobreak
	Some text
then the penalty of 10000 will be applies to parskip AND the following
baselineskip and therefore a pakebreak IS prevented.

Stephan Bechtolsheim
svb@cs.purdue.edu

--------------------------------------------------------------------------

Date: Tue, 29 Aug 89 01:01:25 SET
From: VBRANDT%DBNUAMA1.BITNET@CUNYVM.CUNY.EDU
Subject: Re: MTEX- music typesetting in TeX
Keywords: MTeX, music typesetting

Peter Flynn UCC <CBTS8001%IRUCCVAX.UCC.IE@UWAVM.ACS.WASHINGTON.EDU> says:

>Over the weekend I downloaded the MTeX fonts for music typesetting from the
>Aston archive. These were put together by Angelika Schofer & Andrea Steinbach
>in 1987 for typesetting music in TeX, and submitted (I believe) as part of a
>thesis. ...

>VERY impressive. S&S clearly deserve their PhD on this. ...

Well, it was 'only' a diploma thesis ... :-)

>Congratulations to both, where are you, and can we
>expect more? If not, have S&S any pointers as to their intentions?

Well, I know Andrea Steinbach personally, and I have to report that she hasn't
done any work on the subject since she submitted her thesis.  She has since
moved away from Bonn (to Stuttgart), and I haven't seen her for a while.

If anyone is interested in contacting Andrea, I can give you her mailing
address (here in Germany).  I don't know how to get hold of her colleague,
though.

Bitnet:  VBRANDT@DBNUAMA1 (will go away late '89)      Volker A. Brandt
          UNM409@DBNRHRZ1 (soon)                       Angewandte Mathematik
UUCP:    ...!unido!DBNUAMA1.bitnet!vbrandt             (Bonn, West Germany)
ARPAnet: VBRANDT%DBNUAMA1.BITNET@CUNYVM.CUNY.EDU

-------------------------------------------------------------------------------

%%% The TeXhax digest is brought to you as a service of the TeX Users Group
%%%       in cooperation with the UnixTeX distribution service at the 
%%%                      University of Washington
%%%
%%% Concerning subscriptions, address changes, unsubscribing:
%%%  BITNET: send a one-line mail message to LISTSERV@xxx
%%%          where xxx is the nearest geographical site in the
%%%          tree shown below
%%%         SUBSCRIBE TEX-L <your name>    % to subscribe
%%%      or UNSUBSCRIBE TEX-L
%%% Here is the BITNET re-distribution tree as shown in a recent
%%% REVIEW (The geography is guessed at from the subscription list)
%%%
%%%                        CLVM    TAMVM1      FINHUTC
%%%                           |    |     (Finland, UK, Scand, CERN)
%%%                           |    |           |
%%%  TeXhax ----> UWAVM ----- MARIST ----- EB0UB011 ----- BNANDP11
%%%                           |     (France,Italy,Spain)  (Belgium)
%%%                           |                |
%%%                        UBVM      HEARN --- DEARN
%%%                              (Netherlands) (Germany)
%%%
%%% Internet: send a similar one line mail message to
%%%           TeXhax-request@cs.washington.edu
%%%     Please be sure you send a valid internet address!!
%%%        in the form name@domain or name%routing@domain
%%%     and use the style of the Bitnet one-line message, so that
%%%     we can find your subscription request easily.
%%%
%%% JANET users may choose to use
%%%           texhax-request@uk.ac.nsf
%%%
%%% All submissions to: TeXhax@cs.washington.edu
%%%
%%% Back issues available for FTPing as:
%%%          machine:              directory:  filename:
%%%   JUNE.CS.WASHINGTON.EDU         TeXhax/TeXhaxyy.nn
%%%              yy = last two digits of current year
%%%                       nn = issue number
%%%
%%% For further information about TeX Users Group services and publications
%%%  contact Karen at KLB@SEED.AMS.COM or write to TUG at
%%%   TeX Users Group
%%%   P.O. Box 9506
%%%   Providence, R.I. 02940-9506
%%%   Telephone      (401) 751-7760
%%%
%%% Current versions of the software now in general distribution:
%%%    TeX       2.99                  metafont  1.7
%%%    plain.tex 2.94                  plain.mf  1.7
%%%    LaTeX     2.09 ( 5/24/89)       cmbase.mf see cm85.bug
%%%    SliTeX    2.09                  gftodvi   2.0
%%%    tangle    2.9                   gftopk    2.0 
%%%    weave     3.1                   gftype    3.0
%%%    dvitype   2.9                   pktype    2.2 
%%%    pltotf    2.3                   pktogf    1.0
%%%    tftopl    2.5                   mft       1.1
%%%    BibTeX    0.99c                 
%%%    AmSTeX    1.1d
%%%\bye
%%%

End of TeXhax Digest
**************************
-------