[comp.text] TeXhax Digest V90 #2

TeXhax@cs.washington.edu (TeXhax Digest) (01/08/90)

TeXhax Digest    Friday,  January 5, 1989  Volume 90 : Issue 2

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:         

                    RE: BiBTeX in the DECUS TeX Collection
                           A historical LaTeX document
                            RE: TeXhax Digest V89 #110
                  Circle fonts in LaTeX - the modification blues
                              Re bug, \uppercase
                 Re: LaTeX References as superscripts? (no []'s)
                  Style files for citations, underlining, tables
                    Re: LaTeX references as superscripts
                      Re: Font substitution in old dvisun

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

Date: Sun, 17 Dec 89 13:23 EST
From: Ted Nieland <@AAMRL.AF.MIL:TNIELAND@FALCON>
Subject: RE: BiBTeX in the DECUS TeX Collection
Keywords: BiBTeXm DECUS

Brian Hamilton-Kelly writes:

>In TeXhax, Volume 89 #105, Granville Paules (paules@phoenix.Princeton.EDU)
>writes:
>
>>Has anyone running the DECUS distribution of BibTeX v 0.99c for VAX/VMS
>>experienced any problems and if so has a fix been posted?  I am successfully
>>running BibTeX v 0.98i under BSD Unix and the uTeX version on PC.  The
>>error issued is encountered for every entry in a bib database with
>>the message  "string" is a literal, not a function for entry "entry"
>>             while executing---line 729 of file plain.bst
>>where string is the field and entry is the entry.
>
>This is simply solved: he's using the WRONG BIBTEX STYLE FILES.  There was a
>major revision between 0.98 and 0.99, involving almost complete reversal of
>the syntax of BibTeX's internal workings: consequently, the .BST files are
>incompatible (although the same .BIB files are usable).
>
>Oren Patashnik, quite rightly, insists that the LaTeXable files that describe
>BibTeX should be distributed with it; I cannot imagine that Ted Nieland failed
>to put these onto the DECUS dsitribution tape, so really it behooves the USER
>to ensure that he's read the documentation!


The DECUS TeX Collection includes all the style files from the Clarkson 
Archive at the time the collection was made.  Some are for pre 0.99 versions
of BiBTeX, but they are all marked in the comments in the BST files as to
what version of BiBTeX they work with.

The collection also contains all the electronic documentation on all 
pieces of the collection, as they are available.  In the collection 
introduction, I highly recommend that users get The TeXBook and the LaTeX 
book, and I give the book references (I suggest getting them through TUG and 
give the TUG address and phone).

Ted Nieland
DECUS TeX Collection Editor

TNIELAND@AAMRL.AF.MIL  <- WORK 
dayvb!nieland!DECUS-TeX  <- Home (referencing the DECUS TeX Collection)

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

Date: 14 Dec 89 12:39 GMT+0100
From: Jan Vorbrueggen <vorbrueggen@mpih-frankfurt.mpg.dbp.de>
Subject: A historical LaTeX document
Keywords: LaTeX, history

A historical note:
I just received a copy of "DECnet Digital Network Architecture (Phase V)",
\copyright 1987 by DEC. It is obviously typeset by LaTeX, and if
you look at the figures, you can see that LaTeX's line font
(esp. the arrow heads) were generated with cmbase loaded...:-)
Now I know why LL went to all that trouble giving us LaTeX!

Jan Vorbrueggen
MPI for Brain Research
Frankfurt, FRG

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

Date: Thu, 14 DEC 89 13:16:11 GMT
From: CHAA006%vaxa.rhbnc.ac.uk@NSFnet-Relay.AC.UK
Reply-To: Philip Taylor (RHBNC) <P.Taylor%vaxa.rhbnc.ac.uk@NSFnet-Relay.AC.UK>
Subject: RE: TeXhax Digest V89 #110
Keywords: drivers, fonts

S. Holmes (Consulting Detective) <sjh@helicon.math.purdue.edu> asked about
drivers for the LN03+; as he does not mention what operating system he is
using, I can only hope that he has joined the sane world of VMS, in which
case I can heartily recommend Brian {Hamilton Kelly}'s driver DVItoLN03.
Brian is accessible as <TeX@Rmcs.Cranfield.Ac.Uk>

Robert Bruner <rrb@math.wayne.edu> asked about generating pixel [sic] files
in other magnifications [than \magstep 0 ?] from MetaFont.  I would
recommend a MetaFont incantation such as:

(1)	$ MetaFont "\mode=localfont; mag=magstep 1; input <filename>"

to generate the {\it GF} file at \magstep 1; simply substitute different
numbers for "1" to get other magnifications.  As to generating {\it PIXEL}
files: don't bother --- they are out of date and grossly inefficient
representations of GF or PK files.  Rather, get yourself a driver that
supports PK files, and use GFtoPK to convert the result of (1) above:

(2)	$GFPK <filename>.360GF ! or whatever value you end up with

					Philip Taylor
			    Royal Holloway and Bedford New College.

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

Date: Wed, 13 Dec 89 18:24:36 EST
From: John Crawford <CRAW4D@prime.cob.ohio-state.edu>
Subject: Circle fonts in LaTeX - the modification blues
Keywords: LaTeX, circle fonts

The latest LaTeX lfonts.tex and sfonts.tex (which I've just today
ftp'ed from Stanford's labrea machine) have modifications with
the circle fonts ...
(extracted from the file LFONTS - Version of 21 November 1989)

\font\tencirc  = lcircle10    % 21 Nov 89 : circle10 -> lcircle10

Where do the lcircle10 fonts come from? I don't have them and don't
see that they exist at all on labrea in any form.

Thanks for any feedback on this change.

John Crawford

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

%%Moderators note: Our apologies to Hubert Partl, who sent mail
%%stating that his submission concerning the bug in \uppercase
%%was a mistake and should not be included in TeXhax. We didn't
%%see his message until the Digest was already on its way. Sorry!!! 

Date: Thu, 14 Dec 89 10:01:32 GMT
From: Martin Ward <martin%EASBY.DURHAM.AC.UK@UWAVM.ACS.WASHINGTON.EDU>
Subject: Re bug, \uppercase
Keywords: TeX, \uppercase

The argument of a command (especially a Plain TeX one) is not necessarily
put into a group. The {} around the argument indicate the extent of that
argument, they are stripped off when the macro is expanded - hence unless
the body of the macro contains an extra pair of braces, the argument
will not be in a group.

                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: Wed, 13 Dec 89 12:04:27 EST
From: Denys Duchier <duchier-denys@YALE.ARPA>
Subject: Re: LaTeX References as superscripts? (no []'s)
Keywords: LaTeX, superscripts

{\makeatletter
\gdef\@cite#1#2{{\setbox0\hbox{\scriptsize #1\if@tempswa, #2\fi}%
\ifmmode ^{\box0}\else$^{\box0}$\fi}}}

   --Denys

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

Date: Wed, 13 Dec 89 13:21:18 PST
From: neil@boris.teleos.com (Neil Hunt)
Subject: Re: LaTeX references as superscripts
Keywords: LaTeX, superscripts

The citation is printed by the macro \@cite#1#2, where #1 is the citation,
and #2 is the page/chapter etc if specified.  The comments in latex.tex
seem to imply that the label in the references section is generated by
the \@biblabel#1 macro; however, this command is macro is only used
within the \item[] of the bibliography entry when you are using non default
labels  (e.g. in an alpha or named bibliography style).  Thus in order
to get superscripted numbers in your references section, you need to
redefine the \item command in the bibliography enviornment.

Note also that \@cite takes a second argument, which is the optional
argument supplied to \cite: e.g. the "chapter 2" bit in the citation
\cite[chapter 2]{Hunt:thesis}.  There is nowhere to put this with
superscripted citations, so I have just left it out in the following
definitions.

\makeatletter			% Allow names with @

				% Redefine the cite command
\def\@cite#1#2{$^{\mbox{\footnotesize #1}}$}

				% Redefine the \item used in thebibliography
\def\thebibliography#1{\section*{References\markboth
 {REFERENCES}{REFERENCES}}\list
 {$^{\mbox{\footnotesize \arabic{enumi}}}$\hfill}{\settowidth
 \labelwidth{[#1]}\leftmargin\labelwidth
 \advance\leftmargin\labelsep
 \usecounter{enumi}}
 \def\newblock{\hskip .11em plus .33em minus -.07em}
 \sloppy
 \sfcode`\.=1000\relax}

\makeatother			% Remove this line if used in a .sty file.

Neil/.		Neil%teleos.com@ai.sri.com	...decwrl!argosy!teleos!neil

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

Date:  Thu, 14 Dec 89 01:17 PST
From: <ASND%TRIUMFCL.BITNET@UWAVM.ACS.WASHINGTON.EDU>
Subject:  Style files for citations, underlining, tables
Keywords: LaTeX, style files, citations, underlining, tables

LaTeX users,

I recently submitted four LaTeX style files to the Clarkson archive.
They are in the pub\latex directory now, but I don't know if they
have migrated to other archives.  Two of the styles are for citations:

  cite.sty       Format citations as bracketed numbers in almost the
                 normal way except: lists of successive numbers are
                 compressed into a single range; linebreaks within
                 the list are allowed with VERY high penalties, and
                 very small spaces are added after the commas.  Whatever
                 space you put before the the \cite it is replaced with
                 a \highpenalty and a normal interword space.

  overcite.sty   Give citation numbers as superscripts with the same
                 input format as normal citations.  Any space before
                 the \cite is ignored, and no break is allowed.  If
                 punctuation (.,;:) follows the citation they trade
                 places but some checking is done to suppress doubling
                 of periods.  If there is an optional note on the
                 citation it is formatted just as if \cite.sty were
                 in effect. Overcite does the list compression that
                 cite.sty does.

In all both cases the macro \citen can be used like \cite to get just
the number(s) and write to the aux file without the extra formatting.

And the other two are:

  tabls.sty      Modify LaTeX's tabular environment macros to keep text
                 from touching other text or hlines above or below.
                 \hline is also changed to take an optional length argument
                 (just like \\) giving the space to insert below.  More
                 importantly, the new \hline fixes the notches that used
                 to appear at the junction between horizontal and vertical
                 lines.

  ulem.sty       Use underlining, rather than italics, for \em-phasis.
                 Allows line breaks and even some hyphenation.  Not
                 perfect, but pretty good.

Complete documentation is given as comments in each file.
These are document sub-styles so the appropriate name should be given
as an optional argument to the \documentstyle command.

                                Donald Arseneau
                                asnd@triumfcl [.bitnet]
                                arseneau@mtsg.ubc.ca

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

Date: Thu, 14 Dec 89 00:26:11 -0500
From: chris@cs.UMD.EDU (Chris Torek)
Subject: Re: Font substitution in old dvisun
Keywords: fonts, dvisun

In TeXhax Vol 89, Issue 109 Pierre Mackay writes
(excerpted from some font-finding code):
>If the font cannot be found as requested, a FUZZ amount ranging from
>LO_FONT_FUZZ to HI_FONT_FUZZ is added to the magnification and access()
>is tried on each resultant font filename.

The `fuzz' (or, as I call it, `slop') approach works fairly well.  But
I must note that the Unix access() routine should not exist, and though
it does exist, should not be used.  Access() is a design flaw---it was
intended for `secure' programs, but fails to make them truly secure---
and has no business being used in most ordinary programs (it makes them
fail if, for some reason, they are run set-id).  Instead of the sequence:

	if (access(path, access_mode) < 0)
		complain("cannot get at file %s", path);
	else
		if ((fd = open(path, open_mode)) < 0)
			complain("%s: access=>yes but open=>no!?", file);

programs should use the sequence:

	if ((fd = open(path, open_mode)) < 0)
		complain("cannot get at file %s", path);

That is, rather than first asking `will this work' and then trying it
(and having to ask again `did it work'), programs should simply try it.
If it fails, they can try again (e.g., for fuzz).

That aside, let us move on a bit:

>If that fails, and the DPI value is greater than the base resolution,
>the DPI value is divided by one magstep (1.2) and FUZZ is tried again,
>and again, until the resultant resolution is down at the base resolution
>given by the defined value of RESOLUTION in this program.  Then, if the
>design size is > 10, another attempt is made at designsize 10
>(that is cmsy17 -> cmsy10).  Smaller fonts are all converted to
>cmr7.  (If you don't have cmr7 at the base resolution, you ARE in trouble.)
>One last desperate try is made if even designsize 10 cannot be
>made to work on one of the larger fonts.  The brutal substition
>of cmr10 at the base resolution is used, no matter what the font
>may have been supposed to be.  (By that time the document looks
>pretty strange in any case.)

This, I think, is overkill.  Indeed, it is more than overkill---it is
just plain wrong.  A much better approach, which I have yet to
implement here (alas!), is to try a fuzz and, if that fails, run
METAFONT to generate the desired font in the requested size.  This is
slow, but produces good results.  Moreover, it allows people to set up
their font directories as a `cache' of often-used fonts.  If `cmr7
scaled 1776' is peculiarly popular locally, it will stay around, while
if it is used only once, a standard file-cleaner-upper can eat it after
it expires.

>The FUZZ is set very large.  9 units on either side of the requested
>rasterization value.  This is so that a directory full of *200pk and
>240pk fonts can be used when the program asks for 207pk or 248pk.
>300pk can be used as a substitute for 298pk in the same way.  The
>possibilities are quite generous.

In general, I find large fuzz/slop values to be unnecessary.  A slop of
1 is usually---perhaps even always---enough to hide roundoff error.
Larger errors are usually due to bugs.

I want to take this opportunity to plug my own software again :-) .
The MC-TeX system (now available via anonymous FTP from mimsy.umd.edu
in the compressed tar file `tex/mctex.beta.1dec89.Z') is built on a
library of routines, including font-reading routines, that understand
a configuration file.  This file has the following form on our machines:

	#
	# MC-TeX font configurations
	#
	# N.B.: choose only one of `box' or `blank' TFM fonts

	# Allow the use of `built-in' PostScript fonts,
	# including via $TEXFONTS, for engine `PostScript'.
	font	tfm	PostScript 0	/usr/local/lib/tex/fonts/%f.tfm
	fontenv	tfm	PostScript 0	TEXFONTS	%f.tfm
	
	# allow people to override fonts (slows things down)
	#	TYPE	SPEC	SLOP	VARIABLE	NAMEPART
	fontenv	pk	*	2	OVERRIDE_FONTS	%f.%mpk
	fontenv	gf	*	2	OVERRIDE_FONTS	%f.%mgf
	
	# try standard directories first
	font	pk	*	2	/usr/local/lib/tex/fonts/%f/%f.%mpk
	font	gf	*	2	/usr/local/lib/tex/fonts/%f/%f.%mgf
	
	# then try $TEXFONTS
	fontenv	pk	*	2	TEXFONTS	%f.%mpk
	fontenv	gf	*	2	TEXFONTS	%f.%mgf
	
	# last resort: box fonts
	font	box	*	0	/usr/local/lib/tex/fonts/%f.tfm
	fontenv	box	*	0	TEXFONTS	%f.tfm

This is all documented fairly extensively.  The `SPEC' field is a print
engine name (analagous to METAFONT's `mode' parameters, if not necessarily
identical: there should be a one-to-one onto mapping for it, at worst).

Although I have not decided how to work it yet, I intend to be able to
replace the current `last resort' (which draws boxes for each
character, like those in Chapter 11 of {\it The \TeX book}---see
Exercise 11.5) with something like

	# call METAFONT if still not found
	makefont /usr/local/lib/tex/buildfont

which would run the given file (as a script) with arguments giving
the print engine (recall that this is effectively a METAFONT `mode'),
the font name, and the magnification.  After a `makefont' run one
would start over at the top of the fontdesc file, perhaps, or (better?)
simply have a following line, such as

	font gf * 0 /usr/local/lib/tex/fonts/newmade/%f.%mgf

or wherever new-made fonts are found.  (The first problem that comes to
mind is `simultaneous' builds of the same font.  Some sort of locking
may be needed.  I may leave this to the script.  The slop can probably
be zero, since METAFONT will be given `mag:=1234' rather than
`mag:=magstep(2.0)'.)

At any rate, the MC-TeX library is available for use in other drivers,
previewers, and so forth, and simplifies writing such programs.

In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 7163)
Domain:	chris@cs.umd.edu	Path:	uunet!mimsy!chris

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

%%% Further information about the TeXhax Digest, the TeX
%%% Users Group, and the latest software versions is available
%%% in every tenth issue of the TeXhax Digest.
%%%
%%% Concerning subscriptions, address changes, unsubscribing:
%%%
%%%  BITNET: send a one-line mail message to LISTSERV@xxx
%%%         SUBSCRIBE TEX-L <your name>    % to subscribe
%%%      or UNSUBSCRIBE TEX-L
%%%
%%% Internet: send a similar one line mail message to
%%%           TeXhax-request@cs.washington.edu
%%% 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
%%%
%%%\bye
%%%

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