[net.unix-wizards] converting to ditroff

dno@cvl.UUCP (David Oskard) (10/22/85)

[ doo wop! ]

	  I'm installing ditroff on our 785's (4.2BSD) for use with
the Imagen 8/300 laser printer.  In trying to create font description as
used by makedev, I've run across a parameter which I have no clue about.
Does anyone know what a "kern" is?  It has something to do with...well, let
me just let you see what it says here:

(from makdev.c)

	DESC.out contains:
	dev structure with fundamental sizes
	list of sizes (nsizes+1) terminated by 0, as short's
	indices of char names (nchtab * sizeof(short))
	char names as hy\0em\0... (lchname)
	nfonts occurrences of
		widths (nwidth)
-->>>>>>	kerning (nwidth) [ascender+descender only so far]
		codes (nwidth) to drive actual typesetter
		fitab (nchtab+128-32)
	each of these is an array of char.

	dev.filesize contains the number of bytes
	in the file, excluding the dev part itself.

	F.out contains the font header, width, kern, codes, and fitab.
	Width, kern and codes are parallel arrays.
	(Which suggests that they ought to be together?)
	Later, we might allow for codes which are actually
	sequences of formatting info so characters can be drawn.


Has anybody done conversions from old troff width tables (i.e. charmap)
to ditroff width tables or description files?  What's a kern anyway?
As usual, thanks in advance for any help.
Please reply by mail through Usenet (before November) since our Arpa
connection is not up yet from our recent move.


					David Oskard
					seismo!rlgvax!cvl!dno
					dno@cvl.arpa
					dno@cvl.umd.edu

jmg@dolphy.UUCP (Intergalactic Psychic Police Of Uranus) (10/22/85)

> In trying to create font description as
> used by makedev, I've run across a parameter which I have no clue about.
> Does anyone know what a "kern" is?  It has something to do with...well, let
> me just let you see what it says here:
> 
> (from makdev.c)
> 
> 	DESC.out contains:
> 	dev structure with fundamental sizes
> 	list of sizes (nsizes+1) terminated by 0, as short's
> 	indices of char names (nchtab * sizeof(short))
> 	char names as hy\0em\0... (lchname)
> 	nfonts occurrences of
> 		widths (nwidth)
> -->>>>>>	kerning (nwidth) [ascender+descender only so far]
> 		codes (nwidth) to drive actual typesetter
> 		fitab (nchtab+128-32)
> 	each of these is an array of char.

kerning is used to press letters close to each other...as in 'Ac'...
that is the right leg of 'A' is allowed to fall underneath the gentle
curve of 'c's buttocks...This is known as side-by-side kerning, but
has a better name in French.  In the case of 'ascender+descender' kerning
the tops portions of letters, the heads, are allowed to amorously delve
into the tails, the 'descenders', of the letters above; simply put,
the letter 'p' on top of the letter 'l'.  Thus, what is wanted is the
length of your ascender and descender, for each font.  Nu?