Contents of the FIXKERN.TXT file
Rufus S. Hendon 16 August 1991
Correcting Defective Kerning Tables for Intellifont Scalable Fonts
in LaserJet III .ALL and .PRS Files
The kerning tables for proportional-spaced Intellifont-format scalable fonts
included in the .ALL files for the Hewlett-Packard LaserJet III currently
supplied by WordPerfect Corporation for use with WordPerfect 5.1 are incorrect.
The kerning tables generated by the AutoFont facility of the current version of
the PTR 5.1 program from TFM ("Tagged Font Metrics") files are also incorrect.
The fault isn't with the kerning information in the TFM files supplied by
Hewlett-Packard and other font vendors: that information is correct. The
nature of the mistake is known, and it could be repaired easily and quickly.
I have written to WP Corp. explaining the problem and the simple correction
that needs to be made, and they have (sort of) acknowledged that something is
wrong, and stated that the report of the error has gone into the printer bug
hopper. However, there is no way of knowing if or when they will issue new
.ALL files and a corrected version of PTR. I am therefore posting this
package in the WPSGA Forum to call the existence of the problem to the
attention of WP 5.1 users and to provide a stopgap method for coping with it.
This package supplies the necessary information and tools to enable any
user of WP for whom kerning is important to do two things: (1) replace the
defective kerning tables in the .ALL file for the resident CG Times and Univers
fonts with correct tables and (2) counteract the error in the generation of
kerning tables by PTR so that correct tables can be created for cartridge or
soft fonts for which TFM files are available.
Be sure to make backups of the files to which you apply the procedures
described here. I disavow any responsibility for damage to files or loss of
files that might result from the use of these procedures.
Contents of the FIXKERN package
The package consists of five files, which are listed below with a brief
indication of what they contain:
FIXKERN.TXT - This file (which you are now reading) describes the problem
and tells you how to use the other materials to install
correct kerning tables.
LJ3KERN.ALL - Contains corrected kerning tables for CG Times and Univers, to
replace the defective tables in .ALL files.
TRYKERN.DOC - A document to test the kerning of CG Times and Univers.
TRYKERN.PRT - Contains TRYKERN.DOC formatted with correct kerning and ready
to print, to provide a specimen of correct CG Times and
Univers kerning for purposes of comparison.
MODKERN.EXE - Utility to modify the kerning table in an AutoFont .TFM file
so that the AutoFont facility of PTR will generate a correct
WP kerning table in the .ALL file.
Correcting the CG Times and Univers kerning tables in .ALL or .PRS files
The FIXKERN package allows you to replace the defective CG Times and Univers
kerning tables in the .ALL files for the LaserJet III with correct tables. If
you prefer, the replacement can be made in a .PRS file.
The first thing to do is to determine that the tables in the .ALL file from
which the .PRS file you use was generated are indeed incorrect and hence in
need of replacement. Do the following:
(1) Load TRYKERN.DOC into WP. You'll have to select your HP LJ III printer,
but don't make any alterations to the text or the formatting of the
document. Print the document. The output will consist of two pages
showing a number of words printed in 72-point CG Times and 72-point
Univers, with kerning turned on. The kerning used will be that specified
by the kerning tables in your current .PRS file. Write something on the
output to identify it, e.g. "printed with current .PRS file".
(2) Execute the command:
copy /b trykern.prt lpt1
(If your printer is connected to a port other than LPT1, replace "lpt1" by
the designation of the proper port.) The same two pages will be printed,
with letters kerned according to the correct kerning tables for CG Times
and Univers. Write "correct kerning" on the output.
Compare the two printouts. If the kerning is identical, your .PRS file and
the .ALL file from which it was generated already contain correct kerning
tables for CG Times and Univers. If that is the case, nothing needs to be
done; you can skip the rest of this section. Otherwise the kerning tables are
defective and must be replaced.
The procedure for replacing the kerning tables can be applied to an .ALL
file such as WPHP1.ALL, in which case all .PRS files generated from the
modified .ALL file will have correct kerning tables. You can also operate
directly on your .PRS files; you must then remember that any new .PRS file
you create from an unmodified .ALL file will have incorrect kerning tables.
In the following description I'll refer to the file being modified as
"LJ3.ALL"; you must, of course, replace this with the name of the .ALL or .PRS
file you actually want to apply the procedure to.
Here are the steps to be performed to replace the kerning tables:
(1) Make a backup of LJ3.ALL!
(2) Copy LJ3KERN.ALL into the same directory as PTR.EXE.
(3) Issue the command:
(4) PTR displays the Printers screen with "HP LJ III Corrected Kerning Tables"
highlighted. Press Alt-F6 to switch to the screen called Kerning Tables.
You'll see these kerning tables listed:
CG Times (corrected) Univers (corrected)
CG Times Bold (corrected) Univers Bold (corrected)
CG Times Bold Italic (corrected) Univers Bold Italic (corrected)
CG Times Italic (corrected) Univers Italic (corrected)
(5) Highlight "CG Times (corrected)" and press 4 (Copy).
(6) PTR prompts for "Destination file:". Type LJ3.ALL and press Enter. PTR
copies the kerning table to LJ3.ALL.
(7) Repeat steps 5 and 6 for each of the other "(corrected)" kerning tables.
(Now, when PTR prompts for "Destination file:", you don't have to type
LJ3.ALL because PTR supplies it as the suggested name; all you have to do
is press Enter.)
(8) When all the kerning tables have been copied, press F7. PTR asks: "Save
file? (Y/N) Y". Press N (LJ3KERN.ALL hasn't been changed, so there's no
need to save it). PTR then asks: "Exit Printer Program? (Y/N) N". Press
Enter to accept the proposed response, "N" (because there's more work to
(9) Press Shift-F10 (Retrieve). The prompt "File to be Retrieved:" appears.
Type LJ3.ALL and press Enter.
(10) The Printers screen is displayed, with "HP LaserJet III" highlighted as
the only printer. Press Alt-F6 to switch to the screen called Kerning
(11) Check to be sure that the tables mentioned in 4 above are listed. If
they aren't, something is wrong; you'll have to exit from PTR and start
all over again. Otherwise press F8 to get back to the Printers screen.
(12) Press F6 to bring up the Proportional Spacing Tables screen. The list
should include "CG Times", "CG Times Bold", "CG Times Bold Italic", "CG
Times Italic", "Univers", "Univers Bold", "Univers Bold Italic", and
"Univers Italic". If this isn't the case, you'll have to exit and start
over again with an .ALL file that does include these tables.
(13) If all the required tables are present, highlight "CG Times" and press
Enter to edit that table.
(14) The initial screen of the proportional spacing table you selected is
displayed. If the highlight isn't on "Kerning Table" in the section at
the bottom, press Tab as often as rquired to move the highlight there.
For CG Times, for example, the entry should read "Kerning Table:
(15) Press Enter. This causes the Kerning Tables screen to appear with the
highlight on the asterisked name of the kerning table currently assigned
to the proportional spacing table. If you plan to delete the incorrect
tables later (step 17), write down the name of the asterisked table. Then
press backspace to remove the *, move the highlight to the proper
corrected kerning table, press * to select it, and then press F7 to return
to the Proportional Spacing Tables screen. -- The corrected kerning table
to assign to each of the proportional spacing tables is shown below:
Proportional spacing table Kerning table
CG Times CG Times (corrected)
CG Times Bold CG Times Bold (corrected)
CG Times Bold Italic CG Times Bold Italic (corrected)
CG Times Italic CG Times Italic (corrected)
Univers Univers (corrected)
Univers Bold Univers Bold (corrected)
Univers Bold Italic Univers Bold Italic (corrected)
Univers Italic Univers Italic (corrected)
(16) For each of the remaining proportional spacing tables (CG Times Bold
through Univers Italic), execute steps 14 and 15.
(17) When you are back to the Proportional Spacing Tables screen after
processing the last table (Univers Italic), you may, if you wish, delete
the incorrect tables, the names of which you recorded in step 15, by
highlighting each and pressing 2 (Delete). It isn't necessary to do so,
(18) Now press F7. When the prompt "Save file? (Y/N) Y" appears, press Enter.
When "File to be saved: lj3.all" appears, press Enter to accept the
proposed file name. When "Replace C:\WP51\LJ3.ALL? (Y/N) N" appears (the
path may, of course, be different on your computer), press Y. PTR will
save the modified file. (These messages from PTR will of course specify
the name of the .ALL or .PRS file you are actually working on rather than
LJ3.ALL.) When this is finished, it prompts "Exit Printer Program? (Y/N)
N". Press Y to return to DOS.
You should now make LJ3KERN.ALL inaccessible to WP so that it won't be
treated as a possible source of printers. You can either move it so that it
isn't in the directory where WP looks for .ALL files or you can rename it with
an extension other than .ALL, e.g. LJ3KERN.XLL. (Eventually you can simply
delete it, but for now it's a good idea to keep it on hand in case you have to
go through the installation process described above again.)
If the file modified was an .ALL file, you should now delete any .PRS files
created from it (since their kerning tables are incorrect), go into WP, and
generate the .PRS files all over again from the modified .ALL file.
Modifying TFM files to counteract the error in the PTR program
If you purchase Intellifont scalable fonts in cartridge or diskette form and
the fonts are accompanied by TFM files, you can use the AutoFont facility of
the PTR program to install the fonts into an .ALL file. However, the current
version of PTR will generate incorrect kerning tables for the fonts from the
information in the TFM files.
This problem can be circumvented by altering the kerning information in the
TFM file in such a way that when PTR applies its incorrect method for
calculating WP kerning amounts to the modified TFM information the result will
be a correct kerning table.
Here is the procedure to accomplish this:
(1) Alter the name of the TFM file, e.g. by changing its extension from .TFM
to .ORG ("original"). This is necessary because the original name must be
given to the modified TFM file, because that is the name by which the TFM
file to be used is specified in the GLUE.TXT file created when you ran the
AutfoFont installation program supplied with the font or cartridge.
(2) Execute MODKERN.EXE specifying two arguments. The first is the (changed)
name of the original TFM file. The second is the original TFM name, which
will be given to the file into which MODKERN writes the modified TFM
information. If, for instance, the original name of the TFM file was
PVI0000S.TFM and you changed this to PVI0000S.ORG, the command would take
modkern pvi0000s.org pvi0000s.tfm
(The names might have to be preceded by path information, depending on
where the AutoFont installation program put the TFM file. If might be
necessary, for example, to prefix C:\AUTOFONT\ to the names.)
(3) If you are installing a cartridge with a number of fonts, repeat steps 1
and 2 for each of the TFM files.
(4) If you previously installed this font or set of fonts, use PTR to delete
the font or fonts from the .ALL file.
(5) Run PTR with the /AUTOFONT option to install the font or set of fonts
into the .ALL file.
That's all there is to it. After the execution of step 5, the .ALL file
will have correct kerning tables for the font or fonts involved.