[comp.text.tex] Can character "coloring" be altered within TeX?

edelsohn@sccs.syr.edu (David Edelsohn) (03/27/91)

	I believe that the term "coloring" is used by professional
typesetters to describe intercharacter spacing, i.e. the look of a document
when the character kerning is uniformly wider or narrower than usual.  I am
trying to typeset some text with special intercharacter separation.  TeX
appears to assume a natural width defined when the font is created without
any adjustment parameter for characters equivalent to \baselineskip's effect
on lines.  "\hbox spread XXpt{}" only affects interword spacing not
intercharacter spacing, and I cannot create a separate font or TFM file for
each coloring change.  The closest parameter is the \sfcode table, but I
cannot find any mechanism whereby all of the entries may be quickly changed
by a uniform factor.  Currently I am kerning each and every character to
obtain the correct spacing.  Is there any better solution?
					David
-- 
===============================================================================
David Edelsohn                                          Dept of Physics
Syracuse Center for Computational Science               201 Physics Bldg
INTERNET: edelsohn@sccs.Syr.EDU                         Syracuse, NY 13244-1130
"It's only a dream away ..." -- from Time Bandits ending credits song
"... Nature cannot be fooled." -- Richard Feynman

eijkhout@s41.csrd.uiuc.edu (Victor Eijkhout) (03/29/91)

edelsohn@sccs.syr.edu (David Edelsohn) writes:

>	I believe that the term "coloring" is used by professional
>typesetters to describe intercharacter spacing, i.e. the look of a document
>when the character kerning is uniformly wider or narrower than usual.

Intercharacter spacing is certainly one of the aspects of colour.

> The closest parameter is the \sfcode table, but I
>cannot find any mechanism whereby all of the entries may be quickly changed
>by a uniform factor.  Currently I am kerning each and every character to
>obtain the correct spacing.  Is there any better solution?

Not an easy one. You could for instance make every character
active, and let it stand for a command that will place that
character plus a bit of space. Apart from the obvious drawback
that you can then *only* write plain text, no commands,
this will destroy any kerning information the tfm file has.

Sorry to say that what you want is indeed a component of
high quality typesetting systems, but not of TeX, as yet.
However, I fail to see why you would want different colours
in one document. Wouldn't the result be what is generally
called 'a mess'?

Victor.

karl@apple-gunkies.gnu.ai.mit.edu (Karl Berry) (03/29/91)

>> The closest parameter is the \sfcode table, but I
>>cannot find any mechanism whereby all of the entries may be quickly changed
>>by a uniform factor.  Currently I am kerning each and every character to
>>obtain the correct spacing.  Is there any better solution?

>Sorry to say that what you want is indeed a component of
>high quality typesetting systems, but not of TeX, as yet.

Victor, I disagree with the implication of `high quality' here.  I think
it is an abomination that typesetter manufacturers ever provided the
``feature'' of being able to change the letter spacing.

One of the basic elements of any well-design type is that the distance
between the main vertical strokes is close to a constant.  There are
good physical reasons why this is true (the human visual systems sees
certain frequencies much better than others; the spatial frequency of
the strokes in typical 10pt type ``just happens'' to be one the hvs is
highly attuned to).  When you allow arbitrary munging of the
intercharacter spacing, you allow the side bearings to be changed
without also changing the interior spaces, creating, in my opinion,
trash.

As for the ``as yet'', here is what Knuth has to say (the very last lines of
tex82.bug):

. if anybody wants letter spacing desperately they should put it in their own
   private version (e.g. generalize the hpack routine) and NOT call it TeX.)
   

All that said, you can do letter spacing fairly easily in PostScript; I
think it might even be in the cookbook.

karl@cs.umb.edu