[net.unix-wizards] converting to ditroff -- kern tables

phil@RICE.ARPA (William LeFebvre) (10/26/85)

>From: jmg@dolphy.UUCP (Intergalactic Psychic Police Of Uranus)
> Thus, what is wanted is the
> length of your ascender and descender, for each font.  Nu?

Nu!  This is not exactly what is wanted, although your description of
kerning is accurate (and stimulating).

Troff has a very stupid idea of kerning.  In fact, almost no idea.  The
kerning table contains an entry for every character in the font.  This
entry is one of four possible values: 0, 1, 2, 3.  These values all
reflect vertical kerning (as described by jmg), but in a very low
resolution manner.  Here is how you obtain the value.  Start with 0.
If the character descends below the baseline, add 1.  If the character
extends above the center of the line (above the top of a lower case
"m"), add 2.  Thus, in the roman font, all upper case letters have a
kern value of 2 (except possibly a fancy "Q" which would have 3).  The
lower case letter "j" has a kern value of 3.  Letters like "a", "c",
and "e" have values of 0, and letters like "g" and "p" have 1.

This is all as it stands now.  Personally, I think the entire idea of
ditroff's kern tables needs to be rethought and reworked, but it will
probably never happen.  I also don't know of ANY utility (including
ditroff) that uses this information!  "Eqn" certainly should.  It needs
to know this information to place things correctly, but it does not use
it.  In fact, one of my pet peeves with the ditroff utilities "eqn" and
"pic" is that they don't look at ANY of the fancy *.OUT tables that
ditroff uses.  Both these utilities need to know the resolution of the
target device -- a value easily determined by looking in the DESC.OUT
file for the device.  But neither utility does this.  All the known
resolutions are hard coded into the programs!  Remember: the ditroff
distribution has a new version of "eqn".  I know the old version didn't
do this and I shouldn't expect it to.  But the version distributed with
ditroff certainly should!

			William LeFebvre
			Department of Computer Science
			Rice University
			<phil@Rice.arpa>
                        or, for the daring: <phil@Rice.edu>

edmoy@ucbopal.BERKELEY.EDU (10/27/85)

In article <2457@brl-tgr.ARPA> phil@RICE.ARPA (William LeFebvre) writes:
>Troff has a very stupid idea of kerning.  In fact, almost no idea.
> ...
>Personally, I think the entire idea of
>ditroff's kern tables needs to be rethought and reworked, but it will
>probably never happen.

A company in Toronto (SoftQuad, I believe) has added a fairly sophisticated
kerning scheme to ditroff.  Here at the UC Berkeley computer center, we
have a version of ditroff that does a simplier method of kerning, involving
character pairs (We are talking with CSRG about combining our version with
CSRG's and then possibly distributing it at some point).

>I also don't know of ANY utility (including
>ditroff) that uses this information!  "Eqn" certainly should.

Eqn does use this information, which it gets from the \n(ct register (which
is set when you use the \w width function).

>In fact, one of my pet peeves with the ditroff utilities "eqn" and
>"pic" is that they don't look at ANY of the fancy *.OUT tables that
>ditroff uses.  Both these utilities need to know the resolution of the
>target device -- a value easily determined by looking in the DESC.OUT
>file for the device.  But neither utility does this.  All the known
>resolutions are hard coded into the programs!

I agree this is a stupid problem in the preprocessors, and that is one
major change in our version of the preprocesors.  Ours do look in the
DESC.out file for the various information.  Our eqn even has a separate
set of tables for fine tuning the various character placements; one set
for each typesetter.

Edward Moy
Academic Computing Services
University of California
Berkeley, CA  94720

edmoy@ucbopal.Berkeley.EDU
ucbvax!ucbopal!edmoy

dougu%lumiere%tektronix.csnet@CSNET-RELAY.ARPA (10/28/85)

Regarding "pic" and "eqn" and the "*.out" files - there is a release
of "ditroff" and "gremlin" from UCB that does make use of these files.

Doug Urner
Small Systems Support Group, Tektronix
dougu@tektronix

laura@l5.uucp (Laura Creighton) (10/30/85)

In article <134@ucbjade.BERKELEY.EDU> edmoy@ucbopal.UUCP () writes:
>A company in Toronto (SoftQuad, I believe) has added a fairly sophisticated
>kerning scheme to ditroff.  

If anybody is interested, SoftQuad is on the net. Send mail to
utzoo!sq!dns.  utzoo talks to a lot of sites -- one of which is ihnp4
and another of which is decvax.




-- 
Help beautify the world. I am writing a book called *How To Write Portable C
Programs*.  Send me anything that you would like to find in such a book when
it appears in your bookstores. Get your name mentioned in the credits. 

Laura Creighton		
sun!l5!laura		(that is ell-five, not fifteen)
l5!laura@lll-crg.arpa