Work in progress: new PostScript/PDF generator back end
authorH. Peter Anvin <hpa@zytor.com>
Tue, 14 May 2002 21:59:59 +0000 (21:59 +0000)
committerH. Peter Anvin <hpa@zytor.com>
Tue, 14 May 2002 21:59:59 +0000 (21:59 +0000)
46 files changed:
doc/afmmetrics.pl [new file with mode: 0755]
doc/genps.pl [new file with mode: 0755]
doc/head.ps [new file with mode: 0644]
doc/metrics/pagd8a.ph [new file with mode: 0644]
doc/metrics/pagdo8a.ph [new file with mode: 0644]
doc/metrics/pagk8a.ph [new file with mode: 0644]
doc/metrics/pagko8a.ph [new file with mode: 0644]
doc/metrics/pbkd8a.ph [new file with mode: 0644]
doc/metrics/pbkdi8a.ph [new file with mode: 0644]
doc/metrics/pbkl8a.ph [new file with mode: 0644]
doc/metrics/pbkli8a.ph [new file with mode: 0644]
doc/metrics/pcrb8a.ph [new file with mode: 0644]
doc/metrics/pcrbo8a.ph [new file with mode: 0644]
doc/metrics/pcrr8a.ph [new file with mode: 0644]
doc/metrics/pcrro8a.ph [new file with mode: 0644]
doc/metrics/phvb8a.ph [new file with mode: 0644]
doc/metrics/phvb8an.ph [new file with mode: 0644]
doc/metrics/phvbo8a.ph [new file with mode: 0644]
doc/metrics/phvbo8an.ph [new file with mode: 0644]
doc/metrics/phvl8a.ph [new file with mode: 0644]
doc/metrics/phvlo8a.ph [new file with mode: 0644]
doc/metrics/phvr8a.ph [new file with mode: 0644]
doc/metrics/phvr8an.ph [new file with mode: 0644]
doc/metrics/phvro8a.ph [new file with mode: 0644]
doc/metrics/phvro8an.ph [new file with mode: 0644]
doc/metrics/pncb8a.ph [new file with mode: 0644]
doc/metrics/pncbi8a.ph [new file with mode: 0644]
doc/metrics/pncr8a.ph [new file with mode: 0644]
doc/metrics/pncri8a.ph [new file with mode: 0644]
doc/metrics/pplb8a.ph [new file with mode: 0644]
doc/metrics/pplbi8a.ph [new file with mode: 0644]
doc/metrics/pplr8a.ph [new file with mode: 0644]
doc/metrics/pplri8a.ph [new file with mode: 0644]
doc/metrics/psyr.ph [new file with mode: 0644]
doc/metrics/ptmb8a.ph [new file with mode: 0644]
doc/metrics/ptmbi8a.ph [new file with mode: 0644]
doc/metrics/ptmr8a.ph [new file with mode: 0644]
doc/metrics/ptmri8a.ph [new file with mode: 0644]
doc/metrics/putb8a.ph [new file with mode: 0644]
doc/metrics/putbi8a.ph [new file with mode: 0644]
doc/metrics/putr8a.ph [new file with mode: 0644]
doc/metrics/putri8a.ph [new file with mode: 0644]
doc/metrics/pzcmi8a.ph [new file with mode: 0644]
doc/metrics/pzdr.ph [new file with mode: 0644]
doc/psfonts.ph [new file with mode: 0644]
doc/pswidth.ph [new file with mode: 0644]

diff --git a/doc/afmmetrics.pl b/doc/afmmetrics.pl
new file mode 100755 (executable)
index 0000000..fc28cc8
--- /dev/null
@@ -0,0 +1,96 @@
+#!/usr/bin/perl
+#
+# Parse AFM metric files
+#
+
+@widths = ((undef)x256);
+
+while ( $line = <STDIN> ) {
+    if ( $line =~ /^\s*FontName\s+(.*)\s*$/ ) {
+       $fontname = $1;
+    } elsif ( $line =~ /^\s*StartCharMetrics\b/ ) {
+       $charmetrics = 1;
+    } elsif ( $line =~ /^\s*EndCharMetrics\b/ ) {
+       $charmetrics = 0;
+    } elsif ( $line =~ /^\s*StartKernPairs\b/ ) {
+       $kerndata = 1;
+    } elsif ( $line =~ /^\s*EndKernPairs\b/ ) {
+       $kerndata = 0;
+    } elsif ( $charmetrics ) {
+       @data = split(/\s*;\s*/, $line);
+       undef $charcode, $width, $name;
+       foreach $d ( @data ) {
+           @dd = split(/\s+/, $d);
+           if ( $dd[0] eq 'C' ) {
+               $charcode = $dd[1];
+           } elsif ( $dd[0] eq 'WX' ) {
+               $width = $dd[1];
+           } elsif ( $dd[0] eq 'N' ) {
+               $name = $dd[1];
+           }
+       }
+       if ( defined($charcode) && $charcode >= 0 && $charcode < 256 ) {
+           $charcodes{$name} = $charcode;
+           $widths[$charcode] = $width;
+       }
+    } elsif ( $kerndata ) {
+       @data = split(/\s+/, $line);
+       if ( $data[0] eq 'KPX' ) {
+           if ( defined($charcodes{$data[1]}) &&
+                defined($charcodes{$data[2]}) &&
+                $data[3] != 0 ) {
+               $kernpairs{chr($charcodes{$data[1]}).
+                          chr($charcodes{$data[2]})} = $data[3];
+           }
+       }
+    }
+}
+
+sub qstr($) {
+    my($s) = @_;
+    my($o,$c,$i);
+    $o = '"';
+    for ( $i = 0 ; $i < length($s) ; $i++ ) {
+       $c = substr($s,$i,1);
+       if ( $c lt ' ' || $c gt '~' ) {
+           $o .= sprintf("\\%03o", ord($c));
+       } elsif ( $c eq "\'" || $c eq "\"" || $c eq "\\" ) {
+           $o .= "\\".$c;
+       } else {
+           $o .= $c;
+       }
+    }
+    return $o.'"';
+}
+
+$psfont = $fontname;
+$psfont =~ s/[^A-Za-z0-9]/_/g;
+
+print "%PS_${psfont} = (\n";
+print "  name => \'$fontname\',\n";
+print "  widths => [\n";
+for ( $i = 0 ; $i < 256 ; $i += 8 ) {
+    print "    ";
+    for ( $j = 0 ; $j < 8 ; $j++ ) {
+       printf("%5d", $widths[$i+$j]);
+       print ',' if (($i+$j) < 255);
+       print ' ' if ($j < 7);
+    }
+    print "\n";
+}
+print "  ],\n";
+print "  kern => {";
+$lw = 100000;
+foreach $kp ( keys(%kernpairs) ) {
+    $ss = sprintf('%s => %d, ', qstr($kp), $kernpairs{$kp});
+    $lw += length($ss);
+    if ( $lw > 72 ) {
+       print "\n    ";
+       $lw = 4 + length($ss);
+    }
+    print $ss;
+}
+print "  }\n";
+print ");\n";
+
+
diff --git a/doc/genps.pl b/doc/genps.pl
new file mode 100755 (executable)
index 0000000..410bff0
--- /dev/null
@@ -0,0 +1,776 @@
+#!/usr/bin/perl
+#
+# Format the documentation as PostScript
+#
+
+require 'psfonts.ph';          # The fonts we want to use
+require 'pswidth.ph';          # PostScript string width
+
+#
+# PostScript configurables; these values are also available to the
+# PostScript code itself
+#
+%psconf = (
+          pagewidth => 595,    # Page width in PostScript points
+          pageheight => 792,   # Page height in PostScript points
+          lmarg => 100,        # Left margin in PostScript points
+          rmarg => 50,         # Right margin in PostScript points
+          topmarg => 100,      # Top margin in PostScript points
+          botmarg => 100,      # Bottom margin in PostScript points
+          plmarg => 50,        # Page number position relative to left margin
+          prmarg => 0,         # Page number position relative to right margin
+          pymarg => 50,        # Page number position relative to bot margin
+          bulladj => 12,       # How much to indent a bullet paragraph
+          tocind => 12,        # TOC indentation per level
+          tocpnz => 24,        # Width of TOC page number only zone
+          tocdots => 8,        # Spacing between TOC dots
+          idxspace => 24,      # Minimum space between index title and pg#
+          idxindent => 32,     # How much to indent a subindex entry
+          idxgutter => 24,     # Space between index columns
+          );
+
+# US-Letter paper
+# $psconf{pagewidth} = 612; $psconf{pageheight} = 792;
+# A4 paper
+# $psconf{pagewidth} = 595; $psconf{pageheight} = 842;
+
+$paraskip = 6;                 # Space between paragraphs
+$chapstart = 30;               # Space before a chapter heading
+$chapskip = 24;                        # Space after a chapter heading
+$tocskip = 6;                  # Space between TOC entries
+
+# Configure post-paragraph skips for each kind of paragraph
+%skiparray = ('chap' => $chapskip, 'appn' => $chapstart,
+             'head' => $paraskip, 'subh' => $paraskip,
+             'norm' => $paraskip, 'bull' => $paraskip,
+             'code' => $paraskip, 'toc0' => $tocskip,
+             'toc1' => $tocskip,  'toc2' => $tocskip);
+
+#
+# First, format the stuff coming from the front end into
+# a cleaner representation
+#
+open(PARAS, '< nasmdoc.dip');
+while ( defined($line = <PARAS>) ) {
+    chomp $line;
+    $data = <PARAS>;
+    chomp $data;
+    if ( $line =~ /^meta :/ ) {
+       $metakey = $';
+       $metadata{$metakey} = $data;
+    } elsif ( $line =~ /^indx :/ ) {
+       $ixentry = $';
+       push(@ixentries, $ixentry);
+       $ixterms{$ixentry} = [split(/\037/, $data)];
+       # Look for commas.  This is easier done on the string
+       # representation, so do it now.
+       if ( $line =~ /^(.*\,)\037sp\037/ ) {
+           $ixprefix = $1;
+           $ixhasprefix{$ixentry} = $ixprefix;
+           if ( !$ixprefixes{$ixprefix} ) {
+               $ixcommafirst{$ixentry}++;
+           }
+           $ixprefixes{$ixprefix}++;
+       }
+    } else {
+       push(@ptypes, $line);
+       push(@paras, [split(/\037/, $data)]);
+    }
+}
+close(PARAS);
+
+#
+# Convert an integer to a chosen base
+#
+sub int2base($$) {
+    my($i,$b) = @_;
+    my($s) = '';
+    my($n) = '';
+    my($z) = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
+    return '0' if ($i == 0);
+    if ( $i < 0 ) { $n = '-'; $i = -$i; }
+    while ( $i ) {
+       $s = substr($z,$i%$b,1) . $s;
+       $i = int($i/$b);
+    }
+    return $n.$s;
+}    
+
+#
+# Take a crossreference name and generate the PostScript name for it.
+#
+sub ps_xref($) {
+    my($s) = @_;
+    return $s;                 # Identity transform should be OK for now
+}
+
+#
+# Flow lines according to a particular font set and width
+#
+# A "font set" is represented as an array containing
+# arrays of pairs: [<size>, <metricref>]
+#
+# Each line is represented as:
+# [ [type,first|last,aux,fontset,page,ypos], [rendering array] ]
+#
+# A space character may be "squeezed" by up to this much
+# (as a fraction of the normal width of a space.)
+#
+$ps_space_squeeze = 0.00;      # Min space width 100%
+sub ps_flow_lines($$$@) {
+    my($wid, $fontset, $type, @data) = @_;
+    my($fonts) = $$fontset{fonts};
+    my($e);
+    my($w)  = 0;               # Width of current line
+    my($sw) = 0;               # Width of current line due to spaces
+    my(@l)  = ();              # Current line
+    my(@ls) = ();              # Accumulated output lines
+    my(@xd) = ();              # Metadata that goes with subsequent text
+
+    $w = 0;
+    foreach $e ( @data ) {
+       if ( $$e[0] < 0 ) {
+           # Type is metadata.  Zero width.
+           if ( $$e[0] < -1 ) {
+               # -1 (end anchor) goes with the preceeding text, otherwise
+               # with the subsequent text
+               push(@xd, $e);
+           } else {
+               push(@l, $e);
+           }
+       } else {
+           my $ew = ps_width($$e[1], $fontset->{fonts}->[$$e[0]][1]) *
+               ($fontset->{fonts}->[$$e[0]][0]/1000);
+           my $sp = $$e[1];
+           $sp =~ tr/[^ ]//d;  # Delete nonspaces
+           my $esw = ps_width($sp, $fontset->{fonts}->[$$e[0]][1]) *
+               ($fontset->{fonts}->[$$e[0]][0]/1000);
+           
+           if ( ($w+$ew) - $ps_space_squeeze*($sw+$esw) > $wid ) {
+               # Begin new line
+               # Search backwards for previous space chunk
+               my $lx = scalar(@l)-1;
+               my @rm = ();
+               while ( $lx >= 0 ) {
+                   while ( $lx >= 0 && $l[$lx]->[0] < 0 ) { $lx-- }; # Skip metadata
+                   if ( $lx >= 0 ) {
+                       if ( $l[$lx]->[1] eq ' ' ) {
+                           splice(@l, $lx, 1);
+                           @rm = splice(@l, $lx);
+                           last; # Found place to break
+                       } else {
+                           $lx--;
+                       }
+                   }
+               }
+
+               # Now @l contains the stuff to remain on the old line
+               # If we broke the line inside a link of type -2 or -3,
+               # then split the link into two.
+               my $lkref = undef;
+               foreach my $lc ( @l ) {
+                   if ( $$lc[0] == -2 || $$lc[0] == -3 ) {
+                       $lkref = $lc;
+                   } elsif ( $$lc[0] == -1 ) {
+                       undef $lkref;
+                   }
+               }
+               push(@l, [-1,undef]) if ( defined($lkref) );
+               push(@ls, [[$type,0,undef,$fontset,0,0],[@l]]);
+               @l = @rm;
+               unshift(@l, $lkref) if ( defined($lkref) );
+               $w = $sw = 0;
+               # Compute the width of the remainder array
+               for my $le ( @l ) {
+                   if ( $$le[0] >= 0 ) {
+                       my $xew = ps_width($$le[1], $fontset->{fonts}->[$$le[0]][1]) *
+                           ($fontset->{fonts}->[$$le[0]][0]/1000);
+                       my $xsp = $$le[1];
+                       $xsp =~ tr/[^ ]//d;     # Delete nonspaces
+                       my $xsw = ps_width($xsp, $fontset->{fonts}->[$$le[0]][1]) *
+                           ($fontset->{fonts}->[$$le[0]][0]/1000);
+                       $w += $xew;  $sw += $xsw;
+                   }
+               }
+           }
+           push(@l, @xd);      # Accumulated metadata
+           @xd = ();
+           if ( $$e[1] ne '' ) {
+               push(@l, $e);
+               $w += $ew; $sw += $esw;
+           }
+       }
+    }
+    push(@l,@wd);
+    if ( scalar(@l) ) {
+       push(@ls, [[$type,0,undef,$fontset,0,0],[@l]]); # Final line
+    }
+
+    # Mark the first line as first and the last line as last
+    if ( scalar(@ls) ) {
+       $ls[0]->[0]->[1] |= 1;     # First in para
+       $ls[-1]->[0]->[1] |= 2;    # Last in para
+    }
+    return @ls;
+}
+
+#
+# Once we have broken things into lines, having multiple chunks
+# with the same font index is no longer meaningful.  Merge
+# adjacent chunks to keep down the size of the whole file.
+#
+sub ps_merge_chunks(@) {
+    my(@ci) = @_;
+    my($c, $lc);
+    my(@co, $eco);
+    
+    undef $lc;
+    @co = ();
+    $eco = -1;                 # Index of the last entry in @co
+    foreach $c ( @ci ) {
+       if ( defined($lc) && $$c[0] == $lc && $$c[0] >= 0 ) {
+           $co[$eco]->[1] .= $$c[1];
+       } else {
+           push(@co, $c);  $eco++;
+           $lc = $$c[0];
+       }
+    }
+    return @co;
+}
+
+#
+# Convert paragraphs to rendering arrays.  Each
+# element in the array contains (font, string),
+# where font can be one of:
+# -1 end link
+# -2 begin crossref
+# -3 begin weblink
+# -4 index item anchor
+# -5 crossref anchor
+#  0 normal
+#  1 empatic (italic)
+#  2 code (fixed spacing)
+#
+
+sub mkparaarray($@) {
+    my($ptype, @chunks) = @_;
+
+    my @para = ();
+    my $in_e = 0;
+    my $chunk;
+
+    if ( $ptype =~ /^code/ ) {
+       foreach $chunk ( @{$paras[$i]} ) {
+           push(@para, [2, $chunk]);
+       }
+    } else {
+       foreach $chunk ( @{$paras[$i]} ) {
+           my $type = substr($chunk,0,2);
+           my $text = substr($chunk,2);
+           
+           if ( $type eq 'sp' ) {
+               push(@para, [$in_e?1:0, ' ']);
+           } elsif ( $type eq 'da' ) {
+               # \261 is en dash in Adobe StandardEncoding
+               push(@para, [$in_e?1:0, "\261"]);
+           } elsif ( $type eq 'n ' ) {
+               push(@para, [0, $text]);
+               $in_e = 0;
+           } elsif ( $type =~ '^e' ) {
+               push(@para, [1, $text]);
+               $in_e = ($type eq 'es' || $type eq 'e ');
+           } elsif ( $type eq 'c ' ) {
+               push(@para, [2, $text]);
+               $in_e = 0;
+           } elsif ( $type eq 'x ' ) {
+               push(@para, [-2, ps_xref($text)]);
+           } elsif ( $type eq 'xe' ) {
+               push(@para, [-1, undef]);
+           } elsif ( $type eq 'wc' || $type eq 'w ' ) {
+               $text =~ /\<(.*)\>(.*)$/;
+               my $link = $1; $text = $2;
+               push(@para, [-3, $link]);
+               push(@para, [($type eq 'wc') ? 2:0, $text]);
+               push(@para, [-1, undef]);
+               $in_e = 0;
+           } elsif ( $type eq 'i ' ) {
+               push(@para, [-4, $text]);
+           } else {
+               die "Unexpected paragraph chunk: $chunk";
+           }
+       }
+    }
+    return @para;
+}
+
+$npara = scalar(@paras);
+for ( $i = 0 ; $i < $npara ; $i++ ) {
+    $paras[$i] = [mkparaarray($ptypes[$i], @{$paras[$i]})];
+}
+
+#
+# This converts a rendering array to a simple string
+#
+sub ps_arraytostr(@) {
+    my $s = '';
+    my $c;
+    foreach $c ( @_ ) {
+       $s .= $$c[1] if ( $$c[0] >= 0 );
+    }
+    return $s;
+}
+
+#
+# This generates a duplicate of a paragraph
+#
+sub ps_dup_para(@) {
+    my(@i) = @_;
+    my(@o) = ();
+    my($c);
+
+    foreach $c ( @i ) {
+       my @cc = @{$c};
+       push(@o, [@cc]);
+    }
+    return @o;
+}
+
+#
+# Scan for header paragraphs and fix up their contents;
+# also generate table of contents and PDF bookmarks.
+#
+@tocparas = ([[-5, 'contents'], [0,'Contents']]);
+@tocptypes = ('chap');
+@bookmarks = (['title', 0, 'Title Page'], ['contents', 0, 'Contents']);
+%bookref = ();
+for ( $i = 0 ; $i < $npara ; $i++ ) {
+    my $xtype = $ptypes[$i];
+    my $ptype = substr($xtype,0,4);
+    my $str;
+    my $book;
+
+    if ( $ptype eq 'chap' || $ptype eq 'appn' ) {
+       unless ( $xtype =~ /^\S+ (\S+) :(.*)$/ ) {
+           die "Bad para";
+       }
+       my $secn = $1;
+       my $sech = $2;
+       my $xref = ps_xref($sech);
+       my $chap = ($ptype eq 'chap')?'Chapter':'Appendix';
+
+       $book = [$xref, 0, ps_arraytostr(@{$paras[$i]})];
+       push(@bookmarks, $book);
+       $bookref{$secn} = $book;
+
+       push(@tocparas, [ps_dup_para(@{$paras[$i]})]);
+       push(@tocptypes, 'toc0'.' :'.$sech.':'.$chap.' '.$secn.':');
+
+       unshift(@{$paras[$i]},
+               [-5, $xref], [0,$chap.' '.$secn.':'], [0, ' ']);
+    } elsif ( $ptype eq 'head' || $ptype eq 'subh' ) {
+       unless ( $xtype =~ /^\S+ (\S+) :(.*)$/ ) {
+           die "Bad para";
+       }
+       my $secn = $1;
+       my $sech = $2;
+       my $xref = ps_xref($sech);
+       my $pref;
+       $pref = $secn; $pref =~ s/\.[^\.]+$//; # Find parent node
+
+       $book = [$xref, 0, ps_arraytostr(@{$paras[$i]})];
+       push(@bookmarks, $book);
+       $bookref{$secn} = $book;
+       $bookref{$pref}->[1]--; # Adjust count for parent node
+
+       push(@tocparas, [ps_dup_para(@{$paras[$i]})]);
+       push(@tocptypes,
+            (($ptype eq 'subh') ? 'toc2':'toc1').' :'.$sech.':'.$secn);
+
+       unshift(@{$paras[$i]}, [-5, $xref]);
+    }
+}
+
+#
+# Add TOC to beginning of paragraph list
+#
+unshift(@paras,  @tocparas);
+unshift(@ptypes, @tocptypes);
+$npara = scalar(@paras);
+
+#
+# Line Auxilliary Information Types
+#
+$AuxStr            = 1;                # String
+$AuxPage    = 2;               # Page number (from xref)
+$AuxPageStr = 3;               # Page number as a PostScript string
+$AuxXRef    = 4;               # Cross reference as a name
+$AuxNum     = 5;               # Number
+
+#
+# Break or convert paragraphs into lines.
+#
+@pslines    = ();
+@pslinedata = ();
+$linewidth  = $psconf{pagewidth}-$psconf{lmarg}-$psconf{rmarg};
+$bullwidth  = $linewidth-$psconf{bulladj};
+
+for ( $i = 0 ; $i < $npara ; $i++ ) {
+    my $xtype = $ptypes[$i];
+    my $ptype = substr($xtype,0,4);
+    my @data = @{$paras[$i]};
+    my @ls = ();
+    if ( $ptype eq 'code' ) {
+       my $p;
+       # Code paragraph; each chunk is a line
+       foreach $p ( @data ) {
+           push(@ls, [[$ptype,0,undef,\%TextFont,0,0],[$p]]);
+       }
+       $ls[0]->[0]->[1] |= 1;       # First in para
+       $ls[-1]->[0]->[1] |= 2;      # Last in para
+    } elsif ( $ptype eq 'chap' || $ptype eq 'appn' ) {
+       # Chapters are flowed normally, but in an unusual font
+       @ls = ps_flow_lines($linewidth, \%ChapFont, $ptype, @data);
+    } elsif ( $ptype eq 'head' || $ptype eq 'subh' ) {
+       unless ( $xtype =~ /^\S+ (\S+) :(.*)$/ ) {
+           die "Bad para";
+       }
+       my $secn = $1;
+       my $sech = $2;
+       my $font = ($ptype eq 'head') ? \%HeadFont : \%SubhFont;
+       @ls = ps_flow_lines($linewidth, $font, $ptype, @data);
+       # We need the heading number as auxillary data
+       $ls[0]->[0]->[2] = [[$AuxStr,$secn]];
+    } elsif ( $ptype eq 'norm' ) {
+       @ls = ps_flow_lines($linewidth, \%TextFont, $ptype, @data);
+    } elsif ( $ptype eq 'bull' ) {
+       @ls = ps_flow_lines($bullwidth, \%TextFont, $ptype, @data);
+    } elsif ( $ptype =~ /^toc/ ) {
+       unless ( $xtype =~/^\S+ :([^:]*):(.*)$/ ) {
+           die "Bad para";
+       }
+       my $xref = $1;
+       my $refname = $2.' ';
+       my $ntoc = substr($ptype,3,1)+0;
+       my $refwidth = ps_width($refname, $TextFont{fonts}->[0][1]) *
+           ($TextFont{fonts}->[0][0]/1000);
+       
+       @ls = ps_flow_lines($linewidth-$ntoc*$psconf{tocind}-
+                           $psconf{tocpnz}-$refwidth,
+                           \%TextFont, $ptype, @data);
+
+       # Auxilliary data: for the first line, the cross reference symbol
+       # and the reference name; for all lines but the first, the
+       # reference width; and for the last line, the page number
+       # as a string.
+       my $nl = scalar(@ls);
+       $ls[0]->[0]->[2] = [[$AuxStr,$refname], [$AuxXRef,$xref]];
+       for ( $j = 1 ; $j < $nl ; $j++ ) {
+           $ls[$j]->[0]->[2] = [[$AuxNum,$refwidth]];
+       }
+       push(@{$ls[$nl-1]->[0]->[2]}, [$AuxPageStr,$xref]);
+    } else {
+       die "Unknown para type: $ptype";
+    }
+    # Merge adjacent identical chunks
+    foreach $l ( @ls ) {
+       @{$$l[1]} = ps_merge_chunks(@{$$l[1]});
+    }
+    push(@pslines,@ls);
+}
+
+#
+# Break lines in to pages
+#
+
+# Paragraph types which should never be broken
+$nobreakregexp = "^(chap|appn|head|subh|toc.)\$";
+# Paragraph types which are heading (meaning they should not be broken
+# immediately after)
+$headingregexp = "^(chap|appn|head|subh)\$";
+
+$curpage = 3;                  # First text page is page 3
+$curypos = 0;                  # Space used on this page
+$nlines = scalar(@pslines);
+
+$upageheight = $psconf{pageheight}-$psconf{topmarg}-$psconf{botmarg};
+
+for ( $i = 0 ; $i < $nlines ; $i++ ) {
+    my $linfo = $pslines[$i]->[0];
+    if ( ($$linfo[0] eq 'chap' || $$linfo[0] eq 'appn')
+        && ($$linfo[1] & 1) ) {
+       # First line of a new chapter heading.  Start a new line.
+       $curpage++ if ( $curypos > 0 );
+       $curypos = $chapstart;
+    }
+    
+    # Adjust position by the appropriate leading
+    $curypos += $$linfo[3]->{leading};
+
+    # Record the page and y-position
+    $$linfo[4] = $curpage;
+    $$linfo[5] = $curypos; 
+
+    if ( $curypos > $upageheight ) {
+       # We need to break the page before this line.
+       my $broken = 0;         # No place found yet
+       while ( !$broken && $pslines[$i]->[0]->[4] == $curpage ) {
+           my $linfo = $pslines[$i]->[0];
+           my $pinfo = $pslines[$i-1]->[0];
+
+           if ( $$linfo[1] == 2 ) {
+               # This would be an orphan, don't break.
+           } elsif ( $$linfo[1] & 1 ) {
+               # Sole line or start of paragraph.  Break unless
+               # the previous line was part of a heading.
+               $broken = 1 if ( $$pinfo[0] !~ /$headingregexp/o );
+           } else {
+               # Middle of paragraph.  Break unless we're in a
+               # no-break paragraph, or the previous line would
+               # end up being a widow.
+               $broken = 1 if ( $$linfo[0] !~ /$nobreakregexp/o &&
+                                $$pinfo[1] != 1 );
+           }
+           $i--;
+       }
+       die "Nowhere to break page $curpage\n" if ( !$broken );
+       # Now $i should point to line immediately before the break, i.e.
+       # the next paragraph should be the first on the new page
+       $curpage++;
+       $curypos = 0;
+       next;
+    }
+
+    # Add end of paragraph skip
+    if ( $$linfo[1] & 2 ) {
+       $curypos += $skiparray{$$linfo[0]};
+    }
+}
+
+#
+# Find the page number of all the indices
+#
+%ps_xref_page   = ();          # Crossref anchor pages
+%ps_index_pages = ();          # Index item pages
+for ( $i = 0 ; $i < $nlines ; $i++ ) {
+    my $linfo = $pslines[$i]->[0];
+    foreach my $c ( @{$pslines[$i]->[1]} ) {
+       if ( $$c[0] == -4 ) {
+           if ( !defined($ps_index_pages{$$c[1]}) ) {
+               $ps_index_pages{$$c[1]} = [];
+           } elsif ( $ps_index_pages{$$c[1]}->[-1] eq $$linfo[4] ) {
+               # Pages are emitted in order; if this is a duplicated
+               # entry it will be the last one
+               next;           # Duplicate
+           }
+           push(@{$ps_index_pages{$$c[1]}}, $$linfo[4]);
+       } elsif ( $$c[0] == -5 ) {
+           $ps_xref_page{$$c[1]} = $$linfo[4];
+       }
+    }
+}
+
+# Get the list of fonts used
+%ps_all_fonts = ();
+foreach $fset ( @AllFonts ) {
+    foreach $font ( @{$fset->{fonts}} ) {
+       $ps_all_fonts{$font->[1]->{name}}++;
+    }
+}
+
+# Emit the PostScript DSC header
+print "%!PS-Adobe-3.0\n";
+print "%%Pages: $curpage\n";
+print "%%BoundingBox: 0 0 ", $psconf{pagewidth}, ' ', $psconf{pageheight}, "\n";
+print "%%Creator: NASM psflow.pl\n";
+print "%%DocumentData: Clean7Bit\n";
+print "%%DocumentFonts: ", join(' ', keys(%ps_all_fonts)), "\n";
+print "%%DocumentNeededFonts: ", join(' ', keys(%ps_all_fonts)), "\n";
+print "%%Orientation: Portrait\n";
+print "%%PageOrder: Ascend\n";
+print "%%EndComments\n";
+print "%%BeginProlog\n";
+
+# Emit the configurables as PostScript tokens
+for $c ( keys(%psconf) ) {
+    print "/$c ", $psconf{$c}, " def\n";
+}
+
+# Emit fontset definitions
+foreach $fset ( @AllFonts ) {
+    my $i = 0;
+    my @zfonts = ();
+    foreach $font ( @{$fset->{fonts}} ) {
+       print '/', $fset->{name}, $i, ' ',
+       '/', $font->[1]->{name}, ' findfont ',
+       $font->[0], " scalefont def\n";
+       push(@zfonts, $fset->{name}.$i);
+       $i++;
+    }
+    print '/', $fset->{name}, ' [', join(' ',@zfonts), "] def\n";
+}
+
+# Emit the result as PostScript.  This is *NOT* correct code yet!
+open(PSHEAD, "< head.ps");
+while ( defined($line = <PSHEAD>) ) {
+    print $line;
+}
+close(PSHEAD);
+print "%%EndProlog\n";
+
+# Generate a PostScript string
+sub ps_string($) {
+    my ($s) = @_;
+    my ($i,$c);
+    my ($o) = '(';
+    my ($l) = length($s);
+    for ( $i = 0 ; $i < $l ; $i++ ) {
+       $c = substr($s,$i,1);
+       if ( ord($c) < 32 || ord($c) > 126 ) {
+           $o .= sprintf("\\%03o", ord($c));
+       } elsif ( $c eq '(' || $c eq ')' || $c eq "\\" ) {
+           $o .= "\\".$c;
+       } else {
+           $o .= $c;
+       }
+    }
+    return $o.')';
+}
+
+# Generate PDF bookmarks
+print "%%BeginSetup\n";
+foreach $b ( @bookmarks ) {
+    print '[/Title ', ps_string($b->[2]), "\n";
+    print '/Count ', $b->[1], ' ' if ( $b->[1] );
+    print '/Dest /',$b->[0]," /OUT pdfmark\n";
+}
+
+# Ask the PostScript interpreter for the proper size media
+print "setpagesize\n";
+print "%%EndSetup\n";
+
+# Start a PostScript page
+sub ps_start_page() {
+    $ps_page++;
+    print "%%Page: $ps_page $ps_page\n";
+    print "%%BeginPageSetup\n";
+    print "save\n";
+    print "%%EndPageSetup\n";
+}
+
+# End a PostScript page
+sub ps_end_page($) {
+    my($pn) = @_;
+    if ( $pn ) {
+       print "($ps_page)", (($ps_page & 1) ? 'pageodd' : 'pageeven'), "\n";
+    }
+    print "restore showpage\n";
+}
+
+$ps_page = 0;
+
+# Title page and inner cover
+ps_start_page();
+# FIX THIS: This shouldn't be hard-coded like this
+$title = $metadata{'title'};
+$title =~ s/ \- / \320 /;      # \320 = em dash
+$pstitle = ps_string($title);
+print <<EOF;
+lmarg pageheight 2 mul 3 div moveto
+/Helvetica-Bold findfont 20 scalefont setfont
+/title linkdest ${pstitle} show
+lmarg pageheight 2 mul 3 div 10 sub moveto
+0 setlinecap 3 setlinewidth
+pagewidth lmarg sub rmarg sub 0 rlineto stroke
+/nasmlogo {
+gsave 1 dict begin
+/sz exch def
+/Courier-Bold findfont sz scalefont setfont
+moveto
+0.85 1.22 scale
+[(-~~..~:\#;L       .-:\#;L,.-   .~:\#:;.T  -~~.~:;. .~:;. )
+( E8+U    *T     +U\'   *T\#  .97     *L   E8+\'  *;T\'  *;, )
+( D97     \`*L  .97     \'*L   \"T;E+:,     D9     *L    *L )
+( H7       I\#  T7       I\#        \"*:.   H7     I\#    I\# )
+( U:       :8  *\#+    , :8  T,      79   U:     :8    :8 )
+(,\#B.     .IE,  \"T;E*  .IE, J *+;\#:T*\"  ,\#B.   .IE,  .IE,)] {
+currentpoint 3 -1 roll
+sz -0.10 mul 0 3 -1 roll ashow
+sz 0.72 mul sub moveto
+} forall
+end grestore
+} def
+0.6 setgray
+pagewidth 2 div 143 sub
+pageheight 2 div 33 add
+12 nasmlogo
+EOF
+ps_end_page(0);
+ps_start_page();
+print "% Inner cover goes here\n";
+ps_end_page(0);
+
+$curpage = 3;
+ps_start_page();
+for ( $i = 0 ; $i < $nlines ; $i++ ) {
+    my $linfo = $pslines[$i]->[0];
+
+    if ( $$linfo[4] != $curpage ) {
+       ps_end_page(1);
+       ps_start_page();
+       $curpage = $$linfo[4];
+    }
+
+    print '[';
+    my $curfont = 0;
+    foreach my $c ( @{$pslines[$i]->[1]} ) {
+       if ( $$c[0] >= 0 ) {
+           if ( $curfont != $$c[0] ) {
+               print ($curfont = $$c[0]);
+           }
+           print ps_string($$c[1]);
+       } elsif ( $$c[0] == -1 ) {
+           print '{el}';       # End link
+       } elsif ( $$c[0] == -2 ) {
+           print '{/',$$c[1],' xl}'; # xref link
+       } elsif ( $$c[0] == -3 ) {
+           print '{',ps_string($$c[1]),'wl}'; # web link
+       } elsif ( $$c[0] == -4 ) {
+           # Index anchor -- ignore
+       } elsif ( $$c[0] == -5 ) {
+           print '{/',$$c[1],' xa}'; #xref anchor
+       } else {
+           die "Unknown annotation";
+       }
+    }
+    print ']';
+    if ( defined($$linfo[2]) ) {
+       foreach my $x ( @{$$linfo[2]} ) {
+           if ( $$x[0] == $AuxStr ) {
+               print ps_string($$x[1]);
+           } elsif ( $$x[0] == $AuxPage ) {
+               print $ps_xref_page{$$x[1]},' ';
+           } elsif ( $$x[0] == $AuxPageStr ) {
+               print ps_string($ps_xref_page{$$x[1]});
+           } elsif ( $$x[0] == $AuxXRef ) {
+               print '/',ps_xref($$x[1]),' ';
+           } elsif ( $$x[0] == $AuxNum ) {
+               print $$x[1],' ';
+           } else {
+               die "Unknown auxilliary data type";
+           }
+       }
+    }
+    print ($psconf{pageheight}-$psconf{topmarg}-$$linfo[5]);
+    print ' ', $$linfo[0].$$linfo[1], "\n";
+}
+
+ps_end_page(1);
+print "%%EOF\n";
+
+# Emit index as comments for now
+foreach $k ( sort(keys(%ps_index_pages)) ) {
+    print "% ",$k, ' ', join(',', @{$ps_index_pages{$k}});
+    print ' [prefix]' if ( defined($ixhasprefix{$k}) );
+    print ' [first]' if ( defined($ixcommafirst{$k}) );
+    print "\n";
+}
diff --git a/doc/head.ps b/doc/head.ps
new file mode 100644 (file)
index 0000000..d18d7b7
--- /dev/null
@@ -0,0 +1,326 @@
+% $Id$
+%
+% PostScript header for NASM documentation
+%
+
+% Avoid barfing on old PS implementations
+/pdfmark where
+{pop} {userdict /pdfmark /cleartomark load put} ifelse
+/setpagedevice where
+{pop} {userdict /setpagedevice /pop load put} ifelse
+
+% Useful definition
+/space 32 def
+
+%
+% This asks the PostScript interpreter for the proper size paper
+%
+/setpagesize {
+  1 dict dup /PageSize [pagewidth pageheight] put setpagedevice
+} def
+
+%
+% Code to handle links
+%
+/min { 2 copy gt { exch } if pop } def
+/max { 2 copy lt { exch } if pop } def
+
+/lkbegun 0 def
+/lkisuri false def
+/lkury 0 def
+/lkurx 0 def
+/lklly 0 def
+/lkllx 0 def
+/lkxmarg 1 def % Extra space for link in x dir
+/lkymarg 1 def % Extra space for link in y dir
+/lktarget () def
+
+% target --
+/linkbegin {
+  userdict begin
+    /lkbegun 1 def
+    /lkisuri false def
+    /lktarget exch def
+  end
+} def
+
+% uristring --
+/linkbeginuri {
+  userdict begin
+    /lkbegun 1 def
+    /lkisuri true def
+    /lktarget exch def
+  end
+} def
+
+% string spacepadding --
+/linkshow {
+  userdict begin
+    /lspad exch def /lss exch def
+    lkbegun 0 ne {
+      gsave lss true charpath flattenpath pathbbox grestore
+      lkbegun 1 eq {
+        /lkury exch def
+        lss spacecount lspad mul add /lkurx exch def
+        /lklly exch def
+        /lkllx exch def
+        /lkbegun 2 def
+      } {
+        lkury max /lkury exch def
+        lss spacecount lspad mul add lkurx max /lkurx exch def
+        lklly min /lklly exch def
+        lkllx min /lkllx exch def
+      } ifelse
+    } if
+    lspad 0 space lss widthshow
+  end
+} def
+
+% --
+/linkend {
+  userdict begin
+    [ lkisuri {
+        /Action
+        % << .. >> would be languagelevel 2 :(
+        2 dict dup /Subtype /URI put dup /URI lktarget put
+      } {
+        /Dest lktarget
+      } ifelse
+      /Border [0 0 0]
+      /Rect [ lkllx lkxmarg sub
+              lklly lkymarg sub
+              lkurx lkxmarg add
+              lkury lkymarg add ]
+      /Subtype /Link
+      /ANN pdfmark
+    /lkbegun 0 def
+  end
+} def
+
+% targetname --
+/linkdest {
+  [ /Dest 3 -1 roll
+    /View [ /XYZ currentpoint null ]
+    /DEST pdfmark
+} def
+
+% A "fontset" is an array of fonts; a "stream" is an array of strings
+% and numbers or procedures:
+% [ 0 (Foo) ( ) (mani) ( ) 1 (padme) 0 ( ) (hum.) ]
+% A number choses a font from the current fontset.
+% A procedure is invoked as-is when printing the stream.
+%
+% When printing justified, an equal amount of space is added in
+% between each string.
+
+% string -- spacecount
+% Count space characters in a string
+/spacecount {
+  0 exch {
+    space eq { 1 add } if
+  } forall
+} def
+
+% stream fontset -- spacecount width
+% Get the width of a stream in the given fontset, and the
+% number of space characters in the stream
+/streamwidth {
+  gsave
+    6 dict begin
+      /f exch def
+      /w 0 def
+      /s 0 def
+      f 0 get setfont
+      /integertype {
+        f exch get setfont
+      } def
+      /stringtype {
+        dup stringwidth pop w add /w exch def
+        spacecount s add /s exch def
+      } def
+      /arraytype { pop } def
+      % The input stream is on the top of the stack now
+      {
+        dup type exec
+      } forall
+      s w
+    end
+  grestore
+} def
+
+% stream fontset spacer --
+% Show the stream in the given fontset, but add a certain amount
+% of space to each space character
+/showstreamspc {
+  5 dict begin
+    /spc exch def
+    /f exch def
+    f 0 get setfont
+    /integertype {
+      f exch get setfont
+    } def
+    /stringtype {
+      spc linkshow
+    } def
+    /arraytype {
+      exec
+    } def
+    % Now stream is on the top of the stack
+    {
+      dup type exec
+    } forall
+  end
+} def
+
+% stream fontset --
+% Show the stream in the given fontset, with no extra spacing
+/showstream {
+  0 showstreamspc
+} def
+
+% stream fontset totalspace --
+% Show the stream justified to fit into a certain number of pixels
+/showstreamjust {
+  userdict begin
+    /ts exch def /fs exch def /st exch def
+      st fs
+        st fs streamwidth ts exch sub exch
+       dup 0 gt { div } { pop } ifelse
+      showstreamspc
+    end
+} def
+
+/bullmarg lmarg bulladj add def
+/lwidth pagewidth lmarg sub rmarg sub def
+/bwidth lwidth bulladj sub def
+
+%
+% The various paragraph types
+% The number at the end indicates start (1) of para, end (2) of para
+%
+/chapline {
+       currentpoint exch pop 10 sub lmarg exch moveto
+       0 setlinecap 3 setlinewidth
+       lwidth 0 rlineto stroke
+} def
+
+/chap0 { lmarg exch moveto cfont lwidth showstreamjust } def
+/chap1 { lmarg exch moveto cfont lwidth showstreamjust } def
+/chap2 { lmarg exch moveto cfont showstream chapline } def
+/chap3 { lmarg exch moveto cfont showstream chapline } def
+
+/appn0 {chap0} def
+/appn1 {chap1} def
+/appn2 {chap2} def
+/appn3 {chap3} def
+
+% lbl ypos fontset -- ypos
+/headlbl {
+  3 -1 roll [exch (  )] exch % ypos strm fontset
+  2 copy % ypos strm fontset strm fontset
+  streamwidth % ypos strm fontset spccount width
+  lmarg exch sub % ypos strm fontset spccount xpos
+  4 index % ypos strm fontset spccount xpos ypos
+  moveto % ypos strm fontset spccount
+  pop % ypos strm fontset spccount
+  showstream % ypos
+} def
+
+/head0 { lmarg exch moveto hfont lwidth showstreamjust } def
+/head1 { hfont headlbl lmarg exch moveto hfont lwidth showstreamjust } def
+/head2 { lmarg exch moveto hfont showstream } def
+/head3 { hfont headlbl lmarg exch moveto hfont showstream } def
+
+/subh0 { lmarg exch moveto sfont lwidth showstreamjust } def
+/subh1 { sfont headlbl lmarg exch moveto sfont lwidth showstreamjust } def
+/subh2 { lmarg exch moveto sfont showstream } def
+/subh3 { sfont headlbl lmarg exch moveto sfont showstream } def
+
+/norm0 { lmarg exch moveto tfont lwidth showstreamjust } def
+/norm1 { lmarg exch moveto tfont lwidth showstreamjust } def
+/norm2 { lmarg exch moveto tfont showstream } def
+/norm3 { lmarg exch moveto tfont showstream } def
+
+/code0 { lmarg exch moveto tfont showstream } def
+/code1 { lmarg exch moveto tfont showstream } def
+/code2 { lmarg exch moveto tfont showstream } def
+/code3 { lmarg exch moveto tfont showstream } def
+
+/bull0 { bullmarg exch moveto tfont bwidth showstreamjust } def
+/bull1 { dup lmarg exch moveto [(\267)] tfont showstream
+        bullmarg exch moveto tfont bwidth showstreamjust } def
+/bull2 { bullmarg exch moveto tfont showstream } def
+/bull3 { dup lmarg exch moveto [(\267)] tfont showstream
+        bullmarg exch moveto tfont showstream } def
+
+/tocw0 lwidth tocpnz sub def
+/tocw1 tocw0 tocind sub def
+/tocw2 tocw1 tocind sub def
+
+/tocx0 lmarg def
+/tocx1 tocx0 tocind add def
+/tocx2 tocx1 tocind add def
+
+/tocpn {
+  tfont0 setfont
+  3 dict begin
+    /s exch def
+    /x s stringwidth pop pagewidth rmarg sub exch sub def
+    currentpoint /y exch def
+    lmarg sub tocdots div ceiling tocdots mul lmarg add
+    tocdots x {
+      y moveto (.) 0 linkshow
+    } for
+    x y moveto s 0 linkshow
+  end
+  linkend
+} def
+
+/toc00 { tocx0 exch moveto 0 rmoveto tfont showstream } def
+/toc01 { tocx0 exch moveto
+        linkbegin tfont0 setfont 0 linkshow tfont showstream } def
+/toc02 { tocx0 exch moveto 3 1 roll
+        0 rmoveto tfont showstream tocpn } def
+/toc03 { tocx0 exch moveto 4 1 roll
+        linkbegin tfont0 setfont 0 linkshow tfont showstream tocpn } def
+
+/toc10 { tocx1 exch moveto 0 rmoveto tfont showstream } def
+/toc11 { tocx1 exch moveto
+        linkbegin tfont0 setfont 0 linkshow tfont showstream } def
+/toc12 { tocx1 exch moveto 3 1 roll
+        0 rmoveto tfont showstream tocpn } def
+/toc13 { tocx1 exch moveto 4 1 roll
+        linkbegin tfont0 setfont 0 linkshow tfont showstream tocpn } def
+
+/toc20 { tocx2 exch moveto 0 rmoveto tfont showstream } def
+/toc21 { tocx2 exch moveto
+        linkbegin tfont0 setfont 0 linkshow tfont showstream } def
+/toc22 { tocx2 exch moveto 3 1 roll
+        0 rmoveto tfont showstream tocpn } def
+/toc23 { tocx2 exch moveto 4 1 roll
+        linkbegin tfont0 setfont 0 linkshow tfont showstream tocpn } def
+
+%
+% Page numbers
+%
+/pagey botmarg pymarg sub def
+/pagel lmarg plmarg sub def
+/pager pagewidth rmarg sub prmarg add def
+
+/pageeven { pagel pagey moveto sfont0 setfont show } def
+/pageodd  { sfont0 setfont dup stringwidth pop pager exch sub
+           pagey moveto show } def
+
+%
+% Functions invoked during parsing
+%
+/xa { linkdest } def
+/xl { linkbegin } def
+/wl { linkbeginuri } def
+/el { linkend } def
+
+%
+% PDF viewer options
+%
+[/PageMode /UseOutlines /DOCVIEW pdfmark       % Display bookmarks
+
diff --git a/doc/metrics/pagd8a.ph b/doc/metrics/pagd8a.ph
new file mode 100644 (file)
index 0000000..aa70deb
--- /dev/null
@@ -0,0 +1,82 @@
+%PS_AvantGarde_Demi = (
+  name => 'AvantGarde-Demi',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      280,   280,   360,   560,   560,   860,   680,   280,
+      380,   380,   440,   600,   280,   420,   280,   460,
+      560,   560,   560,   560,   560,   560,   560,   560,
+      560,   560,   280,   280,   600,   600,   600,   560,
+      740,   740,   580,   780,   700,   520,   480,   840,
+      680,   280,   480,   620,   440,   900,   740,   840,
+      560,   840,   580,   520,   420,   640,   700,   900,
+      680,   620,   500,   320,   640,   320,   600,   500,
+      280,   660,   660,   640,   660,   640,   280,   660,
+      600,   240,   260,   580,   240,   940,   600,   640,
+      660,   660,   320,   440,   300,   600,   560,   800,
+      560,   580,   460,   340,   600,   340,   600,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   280,   560,   560,   160,   560,   560,   560,
+      560,   220,   480,   460,   240,   240,   520,   520,
+        0,   500,   560,   560,   280,     0,   600,   600,
+      280,   480,   480,   460,  1000,  1280,     0,   560,
+        0,   420,   420,   540,   480,   420,   480,   280,
+      500,     0,   360,   340,     0,   700,   340,   540,
+     1000,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   900,     0,   360,     0,     0,     0,     0,
+      480,   840,  1060,   360,     0,     0,     0,     0,
+        0,  1080,     0,     0,     0,   240,     0,     0,
+      320,   660,  1080,   600,     0,     0,     0,     0
+  ],
+  kern => {
+    "T," => -82, "s." => 20, "T-" => -75, "T." => -91, "DA" => -50, 
+    "yo" => -30, ". " => -50, "T:" => -15, "T;" => -29, "Ke" => -40, 
+    "rc" => -7, ".\'" => -70, "TA" => -25, "rd" => -6, "re" => -4, 
+    "bv" => -20, "rg" => 1, "\272 " => -50, "Ko" => -45, "DV" => -50, 
+    "ri" => 20, "f\365" => -15, "by" => -20, "DW" => -25, "rk" => 5, 
+    "DY" => -45, "rl" => 20, "rm" => 15, "rn" => 21, "LT" => -46, 
+    "Ku" => -15, "ro" => -15, "U," => -20, "rp" => 20, "LV" => -85, 
+    "rq" => -8, "U." => -20, "TO" => -15, "LW" => -55, "Ky" => -20, 
+    "rs" => 20, "LY" => -80, "rt" => 20, "ru" => 20, "\' " => -50, 
+    "rv" => 40, "ry" => 40, "\252A" => -50, "\'\'" => -80, "ck" => -15, 
+    "cl" => -15, "ke" => -40, "F," => -162, "F." => -129, "Ta" => -70, 
+    "UA" => -40, "Te" => -49, "ko" => -30, "cy" => -20, "V," => -145, 
+    "V-" => -75, "To" => -49, "ky" => -5, "V." => -145, "Ly" => -23, 
+    "Tr" => -30, "FA" => -75, "Tu" => -46, "Tw" => -55, "Ty" => -10, 
+    "V:" => -18, "V;" => -33, "f," => -40, "G," => -20, "f." => -40, 
+    "G." => -20, "VA" => -102, "O," => -30, "VG" => -20, "O." => -30, 
+    " A" => -20, "v," => -90, "W," => -106, "v." => -90, "W-" => -35, 
+    "W." => -106, "VO" => -45, ",\272" => -70, "Fa" => -20, 
+    "\'d" => -50, "Fe" => -20, "OA" => -60, "W:" => -15, "W;" => -33, 
+    " T" => -25, " V" => -80, " W" => -25, "Va" => -95, "WA" => -58, 
+    " Y" => -60, "\'r" => -20, "\'s" => -15, "\'t" => 10, "ev" => -20, 
+    "Ve" => -101, "ew" => -20, "P," => -220, "\'v" => -10, "ex" => -20, 
+    "ey" => -20, "P." => -200, "Vi" => -15, " `" => -50, "GY" => -15, 
+    "mu" => -20, "w," => -90, "OT" => -15, "w." => -90, "OV" => -45, 
+    "Vo" => -101, "my" => -20, "L\272" => -30, "OW" => -20, 
+    "WO" => -20, "fa" => -15, "OX" => -30, "A\'" => -90, "OY" => -30, 
+    "Vu" => -55, "ff" => -20, "fi" => -15, "PA" => -100, "fl" => -15, 
+    "fo" => -20, "va" => -30, "Wa" => -50, "ve" => -20, "We" => -47, 
+    "Q," => 20, "Wi" => -10, "`A" => -50, "nv" => -30, "AC" => -40, 
+    "vo" => -20, "Y," => -145, "Wo" => -46, "Y-" => -100, "ny" => -15, 
+    "Y." => -145, ".\272" => -70, "ga" => 15, "AG" => -40, "Wu" => -30, 
+    "gi" => 25, "AO" => -50, "Wy" => -15, "Pa" => -20, "AQ" => -50, 
+    "Y:" => -10, "Y;" => -23, "AT" => -25, "Pe" => -20, "AU" => -40, 
+    "AV" => -102, "wa" => -30, "J." => -15, "AW" => -60, "AY" => -80, 
+    "YA" => -80, "we" => -20, "Po" => -20, "``" => -80, "BA" => -10, 
+    "y," => -100, "ov" => -30, "wo" => -30, "ow" => -20, "y." => -100, 
+    "ox" => -30, "oy" => -20, "YO" => -30, " \252" => -50, "JA" => -30, 
+    ", " => -50, ",\'" => -70, "Au" => -20, "Av" => -70, "Aw" => -65, 
+    "Ay" => -50, "Ya" => -93, "xe" => -20, "r," => -75, "Ye" => -89, 
+    "r-" => -60, "S," => 20, "r." => -73, "hy" => -30, "RO" => 25, 
+    "ab" => 5, "CA" => -40, "RT" => 40, "RU" => 25, "RV" => -10, 
+    "Yo" => -89, "py" => -20, "RW" => 25, "Ja" => -20, "Yu" => -52, 
+    "D," => -20, "ap" => 20, "D." => -20, "L\'" => -30, "at" => 5, 
+    "ya" => -30, "KO" => -30, "yc" => -35, "ye" => -20, "s," => 20,   }
+);
diff --git a/doc/metrics/pagdo8a.ph b/doc/metrics/pagdo8a.ph
new file mode 100644 (file)
index 0000000..dbba510
--- /dev/null
@@ -0,0 +1,82 @@
+%PS_AvantGarde_DemiOblique = (
+  name => 'AvantGarde-DemiOblique',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      280,   280,   360,   560,   560,   860,   680,   280,
+      380,   380,   440,   600,   280,   420,   280,   460,
+      560,   560,   560,   560,   560,   560,   560,   560,
+      560,   560,   280,   280,   600,   600,   600,   560,
+      740,   740,   580,   780,   700,   520,   480,   840,
+      680,   280,   480,   620,   440,   900,   740,   840,
+      560,   840,   580,   520,   420,   640,   700,   900,
+      680,   620,   500,   320,   640,   320,   600,   500,
+      280,   660,   660,   640,   660,   640,   280,   660,
+      600,   240,   260,   580,   240,   940,   600,   640,
+      660,   660,   320,   440,   300,   600,   560,   800,
+      560,   580,   460,   340,   600,   340,   600,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   280,   560,   560,   160,   560,   560,   560,
+      560,   220,   480,   460,   240,   240,   520,   520,
+        0,   500,   560,   560,   280,     0,   600,   600,
+      280,   480,   480,   460,  1000,  1280,     0,   560,
+        0,   420,   420,   540,   480,   420,   480,   280,
+      500,     0,   360,   340,     0,   700,   340,   540,
+     1000,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   900,     0,   360,     0,     0,     0,     0,
+      480,   840,  1060,   360,     0,     0,     0,     0,
+        0,  1080,     0,     0,     0,   240,     0,     0,
+      320,   660,  1080,   600,     0,     0,     0,     0
+  ],
+  kern => {
+    "T," => -82, "s." => 20, "T-" => -75, "T." => -91, "DA" => -50, 
+    "yo" => -30, ". " => -50, "T:" => -15, "T;" => -29, "Ke" => -40, 
+    "rc" => -7, ".\'" => -70, "TA" => -25, "rd" => -6, "re" => -4, 
+    "bv" => -20, "rg" => 1, "\272 " => -50, "Ko" => -45, "DV" => -50, 
+    "ri" => 20, "f\365" => -15, "by" => -20, "DW" => -25, "rk" => 5, 
+    "DY" => -45, "rl" => 20, "rm" => 15, "rn" => 21, "LT" => -46, 
+    "Ku" => -15, "ro" => -15, "U," => -20, "rp" => 20, "LV" => -85, 
+    "rq" => -8, "U." => -20, "TO" => -15, "LW" => -55, "Ky" => -20, 
+    "rs" => 20, "LY" => -80, "rt" => 20, "ru" => 20, "\' " => -50, 
+    "rv" => 40, "ry" => 40, "\252A" => -50, "\'\'" => -80, "ck" => -15, 
+    "cl" => -15, "ke" => -40, "F," => -162, "F." => -129, "Ta" => -70, 
+    "UA" => -40, "Te" => -49, "ko" => -30, "cy" => -20, "V," => -145, 
+    "V-" => -75, "To" => -49, "ky" => -5, "V." => -145, "Ly" => -23, 
+    "Tr" => -30, "FA" => -75, "Tu" => -46, "Tw" => -55, "Ty" => -10, 
+    "V:" => -18, "V;" => -33, "f," => -40, "G," => -20, "f." => -40, 
+    "G." => -20, "VA" => -102, "O," => -30, "VG" => -20, "O." => -30, 
+    " A" => -20, "v," => -90, "W," => -106, "v." => -90, "W-" => -35, 
+    "W." => -106, "VO" => -45, ",\272" => -70, "Fa" => -20, 
+    "\'d" => -50, "Fe" => -20, "OA" => -60, "W:" => -15, "W;" => -33, 
+    " T" => -25, " V" => -80, " W" => -25, "Va" => -95, "WA" => -58, 
+    " Y" => -60, "\'r" => -20, "\'s" => -15, "\'t" => 10, "ev" => -20, 
+    "Ve" => -101, "ew" => -20, "P," => -220, "\'v" => -10, "ex" => -20, 
+    "ey" => -20, "P." => -200, "Vi" => -15, " `" => -50, "GY" => -15, 
+    "mu" => -20, "w," => -90, "OT" => -15, "w." => -90, "OV" => -45, 
+    "Vo" => -101, "my" => -20, "L\272" => -30, "OW" => -20, 
+    "WO" => -20, "fa" => -15, "OX" => -30, "A\'" => -90, "OY" => -30, 
+    "Vu" => -55, "ff" => -20, "fi" => -15, "PA" => -100, "fl" => -15, 
+    "fo" => -20, "va" => -30, "Wa" => -50, "ve" => -20, "We" => -47, 
+    "Q," => 20, "Wi" => -10, "`A" => -50, "nv" => -30, "AC" => -40, 
+    "vo" => -20, "Y," => -145, "Wo" => -46, "Y-" => -100, "ny" => -15, 
+    "Y." => -145, ".\272" => -70, "ga" => 15, "AG" => -40, "Wu" => -30, 
+    "gi" => 25, "AO" => -50, "Wy" => -15, "Pa" => -20, "AQ" => -50, 
+    "Y:" => -10, "Y;" => -23, "AT" => -25, "Pe" => -20, "AU" => -40, 
+    "AV" => -102, "wa" => -30, "J." => -15, "AW" => -60, "AY" => -80, 
+    "YA" => -80, "we" => -20, "Po" => -20, "``" => -80, "BA" => -10, 
+    "y," => -100, "ov" => -30, "wo" => -30, "ow" => -20, "y." => -100, 
+    "ox" => -30, "oy" => -20, "YO" => -30, " \252" => -50, "JA" => -30, 
+    ", " => -50, ",\'" => -70, "Au" => -20, "Av" => -70, "Aw" => -65, 
+    "Ay" => -50, "Ya" => -93, "xe" => -20, "r," => -75, "Ye" => -89, 
+    "r-" => -60, "S," => 20, "r." => -73, "hy" => -30, "RO" => 25, 
+    "ab" => 5, "CA" => -40, "RT" => 40, "RU" => 25, "RV" => -10, 
+    "Yo" => -89, "py" => -20, "RW" => 25, "Ja" => -20, "Yu" => -52, 
+    "D," => -20, "ap" => 20, "D." => -20, "L\'" => -30, "at" => 5, 
+    "ya" => -30, "KO" => -30, "yc" => -35, "ye" => -20, "s," => 20,   }
+);
diff --git a/doc/metrics/pagk8a.ph b/doc/metrics/pagk8a.ph
new file mode 100644 (file)
index 0000000..d42563c
--- /dev/null
@@ -0,0 +1,83 @@
+%PS_AvantGarde_Book = (
+  name => 'AvantGarde-Book',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      277,   295,   309,   554,   554,   775,   757,   351,
+      369,   369,   425,   606,   277,   332,   277,   437,
+      554,   554,   554,   554,   554,   554,   554,   554,
+      554,   554,   277,   277,   606,   606,   606,   591,
+      867,   740,   574,   813,   744,   536,   485,   872,
+      683,   226,   482,   591,   462,   919,   740,   869,
+      592,   871,   607,   498,   426,   655,   702,   960,
+      609,   592,   480,   351,   605,   351,   606,   500,
+      351,   683,   682,   647,   685,   650,   314,   673,
+      610,   200,   203,   502,   200,   938,   610,   655,
+      682,   682,   301,   388,   339,   608,   554,   831,
+      480,   536,   425,   351,   672,   351,   606,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   295,   554,   554,   166,   554,   554,   615,
+      554,   198,   502,   425,   251,   251,   487,   485,
+        0,   500,   553,   553,   277,     0,   564,   606,
+      354,   502,   484,   425,  1000,  1174,     0,   591,
+        0,   378,   375,   502,   439,   485,   453,   222,
+      369,     0,   332,   324,     0,   552,   302,   502,
+     1000,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   992,     0,   369,     0,     0,     0,     0,
+      517,   868,  1194,   369,     0,     0,     0,     0,
+        0,  1157,     0,     0,     0,   200,     0,     0,
+      300,   653,  1137,   554,     0,     0,     0,     0
+  ],
+  kern => {
+    "T," => -82, "s." => 20, "T-" => -75, "T." => -91, "DA" => -50, 
+    "yo" => -30, ". " => -110, "T:" => -15, "T;" => -29, "Ke" => -20, 
+    "ra" => -20, "rc" => -20, ".\'" => -120, "TA" => -45, "rd" => -6, 
+    "re" => -4, "bv" => -20, "rg" => -15, "\272 " => -110, "Ko" => -15, 
+    "DV" => -50, "ri" => 20, "f\365" => -34, "by" => -20, "DW" => -10, 
+    "A\272" => -100, "rk" => 20, "DY" => -30, "rl" => 20, "rm" => 28, 
+    "rn" => 21, "LT" => -46, "ro" => -20, "U," => -20, "rp" => 20, 
+    "LV" => -113, "rq" => -8, "U." => -20, "TO" => -30, "LW" => -67, 
+    "rs" => 20, "LY" => -91, "rt" => 20, "ru" => 20, "\' " => -110, 
+    "rv" => 40, "ry" => 40, "\252A" => -100, "\'\'" => -203, 
+    "ck" => -15, "ke" => -15, "F," => -180, "F." => -160, "Ta" => -90, 
+    "UA" => -40, "Te" => -49, "cy" => -20, "Ti" => 10, "V," => -145, 
+    "V-" => -75, "To" => -70, "ky" => -5, "V." => -165, "Ly" => -23, 
+    "Tr" => -30, "FA" => -75, "Tu" => -46, "\252`" => -35, "Tw" => -55, 
+    "Ty" => -50, "V:" => -18, "V;" => -33, "f," => -50, "G," => -20, 
+    "f." => -50, "G." => -20, "VA" => -102, "O," => -30, "VG" => -20, 
+    "O." => -30, " A" => -20, "v," => -100, "W," => -106, "v." => -130, 
+    "W-" => -35, "W." => -106, "VO" => -60, ",\272" => -120, 
+    "Fa" => -20, "\'d" => -110, "Fe" => -20, "ma" => -20, "OA" => -60, 
+    "W:" => -15, "W;" => -33, " T" => -25, " V" => -50, " W" => -25, 
+    "Va" => -104, "WA" => -58, " Y" => -60, "\'r" => -20, "\'s" => -15, 
+    "\'t" => 10, "ev" => -20, "Ve" => -101, "ew" => -20, "P," => -280, 
+    "\'v" => -30, "ey" => -20, "P." => -300, "Vi" => -5, " `" => -110, 
+    "GY" => -20, "mu" => -20, "w," => -90, "OT" => -30, "w." => -100, 
+    "OV" => -60, "Vo" => -101, "my" => -20, "L\272" => -130, 
+    "OW" => -20, "WO" => -20, "fa" => -40, "OX" => -30, "A\'" => -100, 
+    "OY" => -30, "fe" => -20, "Vu" => -40, "ff" => -60, "fi" => -34, 
+    "PA" => -114, "fl" => -30, "fo" => -40, "va" => -30, "Wa" => -50, 
+    "ve" => -20, "We" => -47, "Q," => 20, "Wi" => 6, "`A" => -100, 
+    "nv" => -20, "AC" => -40, "vo" => -30, "Y," => -145, "Wo" => -46, 
+    "Y-" => -85, "ny" => -15, "Y." => -175, ".\272" => -120, 
+    "ga" => -15, "AG" => -40, "Wu" => -30, "AO" => -50, "Wy" => -2, 
+    "Pa" => -20, "AQ" => -40, "Y:" => -10, "Y;" => -23, "AT" => -45, 
+    "Pe" => -20, "AU" => -40, "AV" => -102, "wa" => -30, "J." => -15, 
+    "AW" => -60, "AY" => -92, "YA" => -92, "we" => -20, "wh" => 15, 
+    "Po" => -60, "``" => -203, "\'\272" => -35, "BA" => -10, 
+    "y," => -110, "ov" => -30, "wo" => -30, "ow" => -20, "y." => -125, 
+    "ox" => -15, "oy" => -20, "YO" => -30, " \252" => -110, 
+    "JA" => -30, ", " => -110, ",\'" => -120, "Au" => -20, "Av" => -70, 
+    "Aw" => -65, "Ay" => -62, "Ya" => -93, "r," => -75, "Ye" => -89, 
+    "r-" => -60, "S," => 20, "r." => -73, "hy" => -30, "ab" => 20, 
+    "CA" => -40, "RT" => 6, "RV" => -10, "Yo" => -89, "py" => -20, 
+    "RW" => 10, "RY" => -10, "Ja" => -20, "Yu" => -52, "D," => -20, 
+    "ap" => 20, "D." => -20, "L\'" => -130, "ya" => -30, "KO" => -20, 
+    "ye" => -20, "s," => 20,   }
+);
diff --git a/doc/metrics/pagko8a.ph b/doc/metrics/pagko8a.ph
new file mode 100644 (file)
index 0000000..c260ea5
--- /dev/null
@@ -0,0 +1,83 @@
+%PS_AvantGarde_BookOblique = (
+  name => 'AvantGarde-BookOblique',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      277,   295,   309,   554,   554,   775,   757,   351,
+      369,   369,   425,   606,   277,   332,   277,   437,
+      554,   554,   554,   554,   554,   554,   554,   554,
+      554,   554,   277,   277,   606,   606,   606,   591,
+      867,   740,   574,   813,   744,   536,   485,   872,
+      683,   226,   482,   591,   462,   919,   740,   869,
+      592,   871,   607,   498,   426,   655,   702,   960,
+      609,   592,   480,   351,   605,   351,   606,   500,
+      351,   683,   682,   647,   685,   650,   314,   673,
+      610,   200,   203,   502,   200,   938,   610,   655,
+      682,   682,   301,   388,   339,   608,   554,   831,
+      480,   536,   425,   351,   672,   351,   606,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   295,   554,   554,   166,   554,   554,   615,
+      554,   198,   502,   425,   251,   251,   487,   485,
+        0,   500,   553,   553,   277,     0,   564,   606,
+      354,   502,   484,   425,  1000,  1174,     0,   591,
+        0,   378,   375,   502,   439,   485,   453,   222,
+      369,     0,   332,   324,     0,   552,   302,   502,
+     1000,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   992,     0,   369,     0,     0,     0,     0,
+      517,   868,  1194,   369,     0,     0,     0,     0,
+        0,  1157,     0,     0,     0,   200,     0,     0,
+      300,   653,  1137,   554,     0,     0,     0,     0
+  ],
+  kern => {
+    "T," => -82, "s." => 20, "T-" => -75, "T." => -91, "DA" => -50, 
+    "yo" => -30, ". " => -110, "T:" => -15, "T;" => -29, "Ke" => -20, 
+    "ra" => -20, "rc" => -20, ".\'" => -120, "TA" => -45, "rd" => -6, 
+    "re" => -4, "bv" => -20, "rg" => -15, "\272 " => -110, "Ko" => -15, 
+    "DV" => -50, "ri" => 20, "f\365" => -34, "by" => -20, "DW" => -10, 
+    "A\272" => -100, "rk" => 20, "DY" => -30, "rl" => 20, "rm" => 28, 
+    "rn" => 21, "LT" => -46, "ro" => -20, "U," => -20, "rp" => 20, 
+    "LV" => -113, "rq" => -8, "U." => -20, "TO" => -30, "LW" => -67, 
+    "rs" => 20, "LY" => -91, "rt" => 20, "ru" => 20, "\' " => -110, 
+    "rv" => 40, "ry" => 40, "\252A" => -100, "\'\'" => -203, 
+    "ck" => -15, "ke" => -15, "F," => -180, "F." => -160, "Ta" => -90, 
+    "UA" => -40, "Te" => -49, "cy" => -20, "Ti" => 10, "V," => -145, 
+    "V-" => -75, "To" => -70, "ky" => -5, "V." => -165, "Ly" => -23, 
+    "Tr" => -30, "FA" => -75, "Tu" => -46, "\252`" => -35, "Tw" => -55, 
+    "Ty" => -50, "V:" => -18, "V;" => -33, "f," => -50, "G," => -20, 
+    "f." => -50, "G." => -20, "VA" => -102, "O," => -30, "VG" => -20, 
+    "O." => -30, " A" => -20, "v," => -100, "W," => -106, "v." => -130, 
+    "W-" => -35, "W." => -106, "VO" => -60, ",\272" => -120, 
+    "Fa" => -20, "\'d" => -110, "Fe" => -20, "ma" => -20, "OA" => -60, 
+    "W:" => -15, "W;" => -33, " T" => -25, " V" => -50, " W" => -25, 
+    "Va" => -104, "WA" => -58, " Y" => -60, "\'r" => -20, "\'s" => -15, 
+    "\'t" => 10, "ev" => -20, "Ve" => -101, "ew" => -20, "P," => -280, 
+    "\'v" => -30, "ey" => -20, "P." => -300, "Vi" => -5, " `" => -110, 
+    "GY" => -20, "mu" => -20, "w," => -90, "OT" => -30, "w." => -100, 
+    "OV" => -60, "Vo" => -101, "my" => -20, "L\272" => -130, 
+    "OW" => -20, "WO" => -20, "fa" => -40, "OX" => -30, "A\'" => -100, 
+    "OY" => -30, "fe" => -20, "Vu" => -40, "ff" => -60, "fi" => -34, 
+    "PA" => -114, "fl" => -30, "fo" => -40, "va" => -30, "Wa" => -50, 
+    "ve" => -20, "We" => -47, "Q," => 20, "Wi" => 6, "`A" => -100, 
+    "nv" => -20, "AC" => -40, "vo" => -30, "Y," => -145, "Wo" => -46, 
+    "Y-" => -85, "ny" => -15, "Y." => -175, ".\272" => -120, 
+    "ga" => -15, "AG" => -40, "Wu" => -30, "AO" => -50, "Wy" => -2, 
+    "Pa" => -20, "AQ" => -40, "Y:" => -10, "Y;" => -23, "AT" => -45, 
+    "Pe" => -20, "AU" => -40, "AV" => -102, "wa" => -30, "J." => -15, 
+    "AW" => -60, "AY" => -92, "YA" => -92, "we" => -20, "wh" => 15, 
+    "Po" => -60, "``" => -203, "\'\272" => -35, "BA" => -10, 
+    "y," => -110, "ov" => -30, "wo" => -30, "ow" => -20, "y." => -125, 
+    "ox" => -15, "oy" => -20, "YO" => -30, " \252" => -110, 
+    "JA" => -30, ", " => -110, ",\'" => -120, "Au" => -20, "Av" => -70, 
+    "Aw" => -65, "Ay" => -62, "Ya" => -93, "r," => -75, "Ye" => -89, 
+    "r-" => -60, "S," => 20, "r." => -73, "hy" => -30, "ab" => 20, 
+    "CA" => -40, "RT" => 6, "RV" => -10, "Yo" => -89, "py" => -20, 
+    "RW" => 10, "RY" => -10, "Ja" => -20, "Yu" => -52, "D," => -20, 
+    "ap" => 20, "D." => -20, "L\'" => -130, "ya" => -30, "KO" => -20, 
+    "ye" => -20, "s," => 20,   }
+);
diff --git a/doc/metrics/pbkd8a.ph b/doc/metrics/pbkd8a.ph
new file mode 100644 (file)
index 0000000..ecd46a9
--- /dev/null
@@ -0,0 +1,56 @@
+%PS_Bookman_Demi = (
+  name => 'Bookman-Demi',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      340,   360,   420,   660,   660,   940,   800,   320,
+      320,   320,   460,   600,   340,   360,   340,   600,
+      660,   660,   660,   660,   660,   660,   660,   660,
+      660,   660,   340,   340,   600,   600,   600,   660,
+      820,   720,   720,   740,   780,   720,   680,   780,
+      820,   400,   640,   800,   640,   940,   740,   800,
+      660,   800,   780,   660,   700,   740,   720,   940,
+      780,   700,   640,   300,   600,   300,   600,   500,
+      320,   580,   600,   580,   640,   580,   380,   580,
+      680,   360,   340,   660,   340,  1000,   680,   620,
+      640,   620,   460,   520,   460,   660,   600,   800,
+      600,   620,   560,   320,   600,   320,   600,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   360,   660,   660,   120,   660,   660,   600,
+      660,   240,   540,   400,   220,   220,   740,   740,
+        0,   500,   440,   380,   340,     0,   800,   460,
+      320,   540,   540,   400,  1000,  1360,     0,   660,
+        0,   400,   400,   500,   480,   460,   500,   320,
+      500,     0,   340,   360,     0,   440,   320,   500,
+     1000,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,  1140,     0,   400,     0,     0,     0,     0,
+      640,   800,  1220,   400,     0,     0,     0,     0,
+        0,   880,     0,     0,     0,   360,     0,     0,
+      340,   620,   940,   660,     0,     0,     0,     0
+  ],
+  kern => {
+    "T," => -122, "T-" => -10, "T." => -122, "Vo" => -79, "Vr" => -15, 
+    "Vu" => -11, "Ry" => -8, "ff" => 21, "T:" => 7, "Vy" => 12, 
+    "T;" => 5, "PA" => -46, "rc" => -9, "TA" => -42, "rd" => -10, 
+    "re" => -10, "rf" => 20, "Wa" => -73, "rg" => -9, "rh" => -23, 
+    "We" => -79, "rm" => 20, "rn" => 20, "Wi" => 15, "LT" => -4, 
+    "ro" => -9, "LV" => -50, "rq" => -9, "LW" => -41, "Y," => -103, 
+    "LY" => -35, "Y-" => -10, "Wo" => -78, "Y." => -105, "Wr" => -15, 
+    "Wu" => -11, "Wy" => 12, "F," => -130, "Y:" => -32, "Y;" => -34, 
+    "F." => -132, "Ta" => -24, "AT" => -40, "Tc" => -29, "AV" => -68, 
+    "AW" => -20, "Te" => -29, "YA" => -56, "AY" => -52, "Ti" => 27, 
+    "V," => -103, "To" => -28, "V-" => -10, "V." => -105, "Ly" => 19, 
+    "Tr" => 27, "FA" => -59, "Ts" => -10, "V:" => -37, "V;" => -38, 
+    "Av" => -8, "VA" => -88, "Aw" => -9, "Ya" => -60, "Ay" => -1, 
+    "r," => -101, "Ye" => -67, "r-" => -10, "r." => -102, "Yi" => 2, 
+    "W," => -103, "W-" => -10, "W." => -105, "RT" => -4, "Yo" => -66, 
+    "RV" => -29, "Yp" => -23, "RW" => -24, "Yq" => -66, "RY" => -20, 
+    "Yu" => -13, "Yv" => 24, "W:" => -37, "W;" => -38, "Va" => -74, 
+    "WA" => -60, "Ve" => -80, "P," => -129, "P." => -128, "Vi" => 15,   }
+);
diff --git a/doc/metrics/pbkdi8a.ph b/doc/metrics/pbkdi8a.ph
new file mode 100644 (file)
index 0000000..d5120b3
--- /dev/null
@@ -0,0 +1,57 @@
+%PS_Bookman_DemiItalic = (
+  name => 'Bookman-DemiItalic',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      340,   320,   380,   680,   680,   880,   980,   320,
+      260,   260,   460,   600,   340,   280,   340,   360,
+      680,   680,   680,   680,   680,   680,   680,   680,
+      680,   680,   340,   340,   620,   600,   620,   620,
+      780,   720,   720,   700,   760,   720,   660,   760,
+      800,   380,   620,   780,   640,   860,   740,   760,
+      640,   760,   740,   700,   700,   740,   660,  1000,
+      740,   660,   680,   260,   580,   260,   620,   500,
+      320,   680,   600,   560,   680,   560,   420,   620,
+      700,   380,   320,   700,   380,   960,   680,   600,
+      660,   620,   500,   540,   440,   680,   540,   860,
+      620,   600,   560,   300,   620,   300,   620,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   320,   680,   680,   120,   680,   680,   620,
+      680,   180,   520,   380,   220,   220,   820,   820,
+        0,   500,   420,   420,   340,     0,   680,   360,
+      300,   520,   520,   380,  1000,  1360,     0,   620,
+        0,   380,   340,   480,   480,   480,   460,   380,
+      520,     0,   360,   360,     0,   560,   320,   480,
+     1000,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,  1140,     0,   440,     0,     0,     0,     0,
+      640,   760,  1180,   440,     0,     0,     0,     0,
+        0,   880,     0,     0,     0,   380,     0,     0,
+      380,   600,   920,   660,     0,     0,     0,     0
+  ],
+  kern => {
+    "T," => -100, "T-" => -20, "T." => -107, "Vo" => -50, "Vr" => 2, 
+    "Vu" => -1, "Ry" => 27, "ff" => 10, "T:" => 26, "Vy" => 17, 
+    "T;" => 31, "PA" => -31, "rc" => -5, "TA" => -42, "rd" => -3, 
+    "re" => -6, "rf" => 42, "Wa" => -100, "rg" => -23, "rh" => -35, 
+    "We" => -100, "rm" => 39, "rn" => 39, "Wi" => -36, "LT" => -26, 
+    "ro" => -1, "LV" => -19, "rq" => -3, "LW" => -15, "Y," => -106, 
+    "LY" => -5, "Y-" => -20, "Wo" => -100, "Y." => -113, "Wr" => -66, 
+    "Wu" => -69, "Wy" => -51, "F," => -98, "Y:" => -9, "Y;" => -4, 
+    "F." => -105, "Ta" => -8, "AT" => -17, "Tc" => -8, "AV" => -40, 
+    "AW" => -35, "Te" => -10, "YA" => -30, "AY" => -25, "Ti" => 42, 
+    "V," => -137, "To" => -5, "V-" => -20, "V." => -115, "Ly" => 62, 
+    "Tr" => 41, "FA" => -35, "Ts" => -1, "Tu" => 42, "Tw" => 69, 
+    "Ty" => 56, "V:" => -28, "V;" => -22, "Av" => 20, "VA" => -50, 
+    "Aw" => 20, "Ya" => -45, "Ay" => 20, "r," => -113, "Ye" => -46, 
+    "r-" => -20, "r." => -120, "Yi" => 20, "W," => -201, "W-" => -22, 
+    "W." => -183, "RT" => -3, "Yo" => -41, "RV" => -8, "RW" => -4, 
+    "Yq" => -43, "RY" => 4, "Yu" => -1, "Yv" => 26, "W:" => -86, 
+    "W;" => -81, "Va" => -50, "WA" => -77, "Ve" => -50, "P," => -98, 
+    "P." => -105, "Vi" => 32,   }
+);
diff --git a/doc/metrics/pbkl8a.ph b/doc/metrics/pbkl8a.ph
new file mode 100644 (file)
index 0000000..94bfc22
--- /dev/null
@@ -0,0 +1,55 @@
+%PS_Bookman_Light = (
+  name => 'Bookman-Light',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      320,   300,   380,   620,   620,   900,   800,   220,
+      300,   300,   440,   600,   320,   400,   320,   600,
+      620,   620,   620,   620,   620,   620,   620,   620,
+      620,   620,   320,   320,   600,   600,   600,   540,
+      820,   680,   740,   740,   800,   720,   640,   800,
+      800,   340,   600,   720,   600,   920,   740,   800,
+      620,   820,   720,   660,   620,   780,   700,   960,
+      720,   640,   640,   300,   600,   300,   600,   500,
+      220,   580,   620,   520,   620,   520,   320,   540,
+      660,   300,   300,   620,   300,   940,   660,   560,
+      620,   580,   440,   520,   380,   680,   520,   780,
+      560,   540,   480,   280,   600,   280,   600,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   300,   620,   620,   140,   620,   620,   520,
+      620,   220,   400,   360,   240,   240,   620,   620,
+        0,   500,   540,   540,   320,     0,   600,   460,
+      220,   400,   400,   360,  1000,  1280,     0,   540,
+        0,   340,   340,   420,   440,   440,   460,   260,
+      420,     0,   320,   320,     0,   380,   320,   420,
+     1000,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,  1260,     0,   420,     0,     0,     0,     0,
+      600,   800,  1240,   420,     0,     0,     0,     0,
+        0,   860,     0,     0,     0,   300,     0,     0,
+      320,   560,   900,   660,     0,     0,     0,     0
+  ],
+  kern => {
+    "T," => -28, "T-" => 90, "T." => -33, "Vo" => -71, "Vr" => -41, 
+    "Vu" => -38, "Ry" => 59, "ff" => 29, "Vy" => 15, "PA" => -8, 
+    "rc" => 7, "TA" => 1, "rd" => 7, "re" => 7, "rf" => 33, 
+    "Wa" => -66, "rg" => -4, "rh" => -21, "We" => -69, "rm" => 31, 
+    "rn" => 31, "Wi" => -20, "LT" => 28, "ro" => 8, "LV" => -4, 
+    "rq" => 9, "LW" => 1, "Y," => -34, "LY" => 13, "Y-" => 11, 
+    "Wo" => -68, "Y." => -40, "Wr" => -41, "Wu" => -38, "Wy" => 15, 
+    "F," => -41, "F." => -46, "AT" => 1, "Ta" => 17, "AV" => -56, 
+    "Tc" => 14, "AW" => -40, "Te" => 13, "YA" => -53, "AY" => -35, 
+    "Ti" => 42, "V," => -34, "To" => 15, "V-" => 11, "V." => -40, 
+    "Ly" => 79, "Tr" => 38, "FA" => -21, "Ts" => 16, "Av" => 7, 
+    "VA" => -66, "Aw" => 4, "Ya" => -54, "Ay" => 32, "r," => -58, 
+    "Ye" => -58, "r-" => 70, "r." => -64, "Yi" => -37, "W," => -34, 
+    "W-" => 11, "W." => -40, "RT" => 71, "RV" => 8, "Yo" => -57, 
+    "RW" => 13, "Yp" => -31, "Yq" => -55, "RY" => 26, "Yu" => -38, 
+    "Yv" => 15, "Va" => -69, "WA" => -64, "Ve" => -72, "P," => -55, 
+    "P." => -60, "Vi" => -20,   }
+);
diff --git a/doc/metrics/pbkli8a.ph b/doc/metrics/pbkli8a.ph
new file mode 100644 (file)
index 0000000..d4e615d
--- /dev/null
@@ -0,0 +1,55 @@
+%PS_Bookman_LightItalic = (
+  name => 'Bookman-LightItalic',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      300,   320,   360,   620,   620,   800,   820,   280,
+      280,   280,   440,   600,   300,   320,   300,   600,
+      620,   620,   620,   620,   620,   620,   620,   620,
+      620,   620,   300,   300,   600,   600,   600,   540,
+      780,   700,   720,   720,   740,   680,   620,   760,
+      800,   320,   560,   720,   580,   860,   720,   760,
+      600,   780,   700,   640,   600,   720,   680,   960,
+      700,   660,   580,   260,   600,   260,   600,   500,
+      280,   620,   600,   480,   640,   540,   340,   560,
+      620,   280,   280,   600,   280,   880,   620,   540,
+      600,   560,   400,   540,   340,   620,   540,   880,
+      540,   600,   520,   360,   600,   380,   600,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   320,   620,   620,    20,   620,   620,   620,
+      620,   200,   440,   300,   180,   180,   640,   660,
+        0,   500,   620,   620,   300,     0,   620,   460,
+      320,   480,   440,   300,  1000,  1180,     0,   540,
+        0,   340,   320,   440,   440,   440,   440,   260,
+      420,     0,   300,   320,     0,   340,   260,   440,
+     1000,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,  1220,     0,   440,     0,     0,     0,     0,
+      580,   760,  1180,   400,     0,     0,     0,     0,
+        0,   880,     0,     0,     0,   280,     0,     0,
+      340,   540,   900,   620,     0,     0,     0,     0
+  ],
+  kern => {
+    "T," => -79, "T-" => 20, "T." => -78, "Vo" => -70, "Vr" => -20, 
+    "Vu" => -10, "ff" => -19, "T:" => 48, "Vy" => -14, "T;" => 48, 
+    "PA" => -30, "rc" => -8, "TA" => -14, "rd" => -9, "re" => -15, 
+    "rf" => -9, "Wa" => -60, "rg" => -3, "rh" => -20, "We" => -60, 
+    "rm" => 37, "rn" => 38, "Wi" => 3, "ro" => -10, "LV" => 4, 
+    "rq" => -14, "LW" => 9, "Y," => -109, "LY" => 7, "Y-" => 20, 
+    "Wo" => -60, "Y." => -100, "Wr" => -30, "Wu" => -20, "Wy" => -14, 
+    "F," => -98, "Y:" => -35, "Y;" => -40, "F." => -97, "AT" => -5, 
+    "Ta" => 9, "AV" => -78, "Tc" => 16, "AW" => -73, "Te" => 10, 
+    "YA" => -82, "AY" => -62, "Ti" => 71, "V," => -109, "To" => 14, 
+    "V-" => 20, "V." => -100, "Ly" => 20, "Tr" => 67, "FA" => -16, 
+    "Ts" => -7, "V:" => -35, "V;" => -44, "VA" => -70, "Ya" => -79, 
+    "r," => -143, "Ye" => -78, "r-" => 20, "r." => -134, "Yi" => -11, 
+    "W," => -109, "W-" => 20, "W." => -100, "RT" => 65, "RV" => 2, 
+    "Yo" => -75, "RW" => 2, "Yp" => -37, "Yq" => -72, "RY" => 11, 
+    "Yu" => -31, "Yv" => -19, "W:" => -35, "W;" => -42, "Va" => -70, 
+    "WA" => -60, "Ve" => -70, "P," => -106, "P." => -105, "Vi" => 3,   }
+);
diff --git a/doc/metrics/pcrb8a.ph b/doc/metrics/pcrb8a.ph
new file mode 100644 (file)
index 0000000..8ad5c1b
--- /dev/null
@@ -0,0 +1,38 @@
+%PS_Courier_Bold = (
+  name => 'Courier-Bold',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+        0,   600,   600,   600,   600,     0,   600,   600,
+      600,   600,   600,   600,   600,   600,     0,   600,
+        0,   600,   600,   600,   600,   600,   600,   600,
+      600,     0,   600,   600,     0,   600,   600,   600,
+      600,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   600,     0,   600,     0,     0,     0,     0,
+      600,   600,   600,   600,     0,     0,     0,     0,
+        0,   600,     0,     0,     0,   600,     0,     0,
+      600,   600,   600,   600,     0,     0,     0,     0
+  ],
+  kern => {  }
+);
diff --git a/doc/metrics/pcrbo8a.ph b/doc/metrics/pcrbo8a.ph
new file mode 100644 (file)
index 0000000..296e1ab
--- /dev/null
@@ -0,0 +1,38 @@
+%PS_Courier_BoldOblique = (
+  name => 'Courier-BoldOblique',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+        0,   600,   600,   600,   600,     0,   600,   600,
+      600,   600,   600,   600,   600,   600,     0,   600,
+        0,   600,   600,   600,   600,   600,   600,   600,
+      600,     0,   600,   600,     0,   600,   600,   600,
+      600,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   600,     0,   600,     0,     0,     0,     0,
+      600,   600,   600,   600,     0,     0,     0,     0,
+        0,   600,     0,     0,     0,   600,     0,     0,
+      600,   600,   600,   600,     0,     0,     0,     0
+  ],
+  kern => {  }
+);
diff --git a/doc/metrics/pcrr8a.ph b/doc/metrics/pcrr8a.ph
new file mode 100644 (file)
index 0000000..b19b6d0
--- /dev/null
@@ -0,0 +1,38 @@
+%PS_Courier = (
+  name => 'Courier',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+        0,   600,   600,   600,   600,     0,   600,   600,
+      600,   600,   600,   600,   600,   600,     0,   600,
+        0,   600,   600,   600,   600,   600,   600,   600,
+      600,     0,   600,   600,     0,   600,   600,   600,
+      600,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   600,     0,   600,     0,     0,     0,     0,
+      600,   600,   600,   600,     0,     0,     0,     0,
+        0,   600,     0,     0,     0,   600,     0,     0,
+      600,   600,   600,   600,     0,     0,     0,     0
+  ],
+  kern => {  }
+);
diff --git a/doc/metrics/pcrro8a.ph b/doc/metrics/pcrro8a.ph
new file mode 100644 (file)
index 0000000..3b2be3f
--- /dev/null
@@ -0,0 +1,38 @@
+%PS_Courier_Oblique = (
+  name => 'Courier-Oblique',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   600,   600,   600,   600,   600,   600,   600,
+      600,   600,   600,   600,   600,   600,   600,   600,
+        0,   600,   600,   600,   600,     0,   600,   600,
+      600,   600,   600,   600,   600,   600,     0,   600,
+        0,   600,   600,   600,   600,   600,   600,   600,
+      600,     0,   600,   600,     0,   600,   600,   600,
+      600,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   600,     0,   600,     0,     0,     0,     0,
+      600,   600,   600,   600,     0,     0,     0,     0,
+        0,   600,     0,     0,     0,   600,     0,     0,
+      600,   600,   600,   600,     0,     0,     0,     0
+  ],
+  kern => {  }
+);
diff --git a/doc/metrics/phvb8a.ph b/doc/metrics/phvb8a.ph
new file mode 100644 (file)
index 0000000..5aad26f
--- /dev/null
@@ -0,0 +1,81 @@
+%PS_Helvetica_Bold = (
+  name => 'Helvetica-Bold',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      278,   333,   474,   556,   556,   889,   722,   278,
+      333,   333,   389,   584,   278,   333,   278,   278,
+      556,   556,   556,   556,   556,   556,   556,   556,
+      556,   556,   333,   333,   584,   584,   584,   611,
+      975,   722,   722,   722,   722,   667,   611,   778,
+      722,   278,   556,   722,   611,   833,   722,   778,
+      667,   778,   722,   667,   611,   722,   667,   944,
+      667,   667,   611,   333,   278,   333,   584,   556,
+      278,   556,   611,   556,   611,   556,   333,   611,
+      611,   278,   278,   556,   278,   889,   611,   611,
+      611,   611,   389,   556,   333,   611,   556,   778,
+      556,   556,   500,   389,   280,   389,   584,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   333,   556,   556,   167,   556,   556,   556,
+      556,   238,   500,   556,   333,   333,   611,   611,
+        0,   556,   556,   556,   278,     0,   556,   350,
+      278,   500,   500,   556,  1000,  1000,     0,   611,
+        0,   333,   333,   333,   333,   333,   333,   333,
+      333,     0,   333,   333,     0,   333,   333,   333,
+     1000,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,  1000,     0,   370,     0,     0,     0,     0,
+      611,   778,  1000,   365,     0,     0,     0,     0,
+        0,   889,     0,     0,     0,   278,     0,     0,
+      278,   611,   944,   611,     0,     0,     0,     0
+  ],
+  kern => {
+    "T," => -80, "T-" => -120, "T." => -80, "DA" => -40, "yo" => -25, 
+    ". " => -40, "bl" => -10, "T:" => -40, "T;" => -40, "Ke" => -15, 
+    "rc" => -20, ".\'" => -120, "TA" => -90, "rd" => -20, "bu" => -20, 
+    "bv" => -20, "rg" => -15, "\272 " => -80, "Ko" => -35, "DV" => -40, 
+    "by" => -20, "DW" => -40, "DY" => -70, "ze" => 10, "LT" => -90, 
+    "Ku" => -30, "ro" => -20, "U," => -30, "LV" => -110, "rq" => -20, 
+    "U." => -30, "TO" => -40, "LW" => -80, "Ky" => -40, "rs" => -15, 
+    "LY" => -120, "rt" => 20, "\' " => -80, "rv" => 10, "ry" => 10, 
+    "ch" => -10, "\'\'" => -46, "ck" => -20, "cl" => -20, "e," => 10, 
+    "F," => -100, "e." => 20, "F." => -100, "Ta" => -80, "UA" => -50, 
+    "Te" => -60, "ko" => -15, "cy" => -10, "V," => -120, "V-" => -80, 
+    "To" => -80, "V." => -120, "Ly" => -30, "Tr" => -80, "FA" => -80, 
+    "dd" => -10, "Tu" => -90, "sw" => -15, "Tw" => -60, "f\'" => 30, 
+    "Ty" => -60, "V:" => -40, "V;" => -40, "f," => -10, "f." => -10, 
+    "VA" => -80, "dv" => -15, "dw" => -15, "O," => -40, "dy" => -15, 
+    "VG" => -50, "O." => -40, "v," => -80, "lw" => -15, "W," => -80, 
+    "v." => -80, "W-" => -40, "ly" => -15, "W." => -80, "VO" => -50, 
+    ",\272" => -120, "Fa" => -20, "\'d" => -80, "OA" => -50, 
+    "W:" => -10, "W;" => -10, "\'l" => -20, " T" => -100, " V" => -80, 
+    " W" => -80, "Va" => -60, "WA" => -60, " Y" => -120, "\'r" => -40, 
+    "\'s" => -60, "ev" => -15, "Ve" => -50, "ew" => -15, "P," => -120, 
+    "\'v" => -20, "ex" => -15, "ey" => -15, "P." => -120, " `" => -60, 
+    "mu" => -20, "w," => -40, "OT" => -40, "w." => -40, "OV" => -50, 
+    "Vo" => -90, "my" => -30, "L\272" => -140, "OW" => -50, 
+    "WO" => -20, "OX" => -50, "OY" => -70, "fe" => -10, "Vu" => -60, 
+    "PA" => -100, "fo" => -20, "va" => -20, "Wa" => -40, ": " => -40, 
+    "We" => -35, "Q," => 20, "Q." => 20, "nu" => -10, "nv" => -40, 
+    "AC" => -40, "vo" => -30, "Y," => -100, "Wo" => -60, "ny" => -20, 
+    "Y." => -100, ".\272" => -120, "AG" => -50, "ge" => 10, 
+    "Wu" => -45, "gg" => -10, "AO" => -40, "Wy" => -20, "Pa" => -30, 
+    "AQ" => -40, "Y:" => -50, "Y;" => -50, "AT" => -90, "Pe" => -30, 
+    "J," => -20, "AU" => -50, "AV" => -80, "J." => -20, "AW" => -60, 
+    "AY" => -110, "YA" => -110, "; " => -40, "Po" => -40, "``" => -46, 
+    "BA" => -30, "y," => -80, "ov" => -20, "wo" => -20, "ow" => -15, 
+    "QU" => -10, "y." => -80, "ox" => -30, "oy" => -20, "YO" => -70, 
+    " \252" => -80, "JA" => -20, ", " => -40, ",\'" => -120, 
+    "Au" => -30, "Av" => -40, "BU" => -10, "Aw" => -30, "Ay" => -30, 
+    "Ya" => -90, "xe" => -10, "r," => -60, "Ye" => -80, "r-" => -20, 
+    "r." => -60, "f\272" => 30, "hy" => -20, "RO" => -20, "RT" => -20, 
+    "RU" => -20, "RV" => -50, "Yo" => -100, "ag" => -10, "py" => -15, 
+    "RW" => -40, "RY" => -50, "Yu" => -100, "D," => -30, "D." => -30, 
+    "L\'" => -140, "av" => -15, "aw" => -15, "ya" => -30, "KO" => -30, 
+    "ay" => -20, "ye" => -10, "Ju" => -20,   }
+);
diff --git a/doc/metrics/phvb8an.ph b/doc/metrics/phvb8an.ph
new file mode 100644 (file)
index 0000000..7912e73
--- /dev/null
@@ -0,0 +1,80 @@
+%PS_Helvetica_Narrow_Bold = (
+  name => 'Helvetica-Narrow-Bold',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      228,   273,   389,   456,   456,   729,   592,   228,
+      273,   273,   319,   479,   228,   273,   228,   228,
+      456,   456,   456,   456,   456,   456,   456,   456,
+      456,   456,   273,   273,   479,   479,   479,   501,
+      800,   592,   592,   592,   592,   547,   501,   638,
+      592,   228,   456,   592,   501,   683,   592,   638,
+      547,   638,   592,   547,   501,   592,   547,   774,
+      547,   547,   501,   273,   228,   273,   479,   456,
+      228,   456,   501,   456,   501,   456,   273,   501,
+      501,   228,   228,   456,   228,   729,   501,   501,
+      501,   501,   319,   456,   273,   501,   456,   638,
+      456,   456,   410,   319,   230,   319,   479,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   273,   456,   456,   137,   456,   456,   456,
+      456,   195,   410,   456,   273,   273,   501,   501,
+        0,   456,   456,   456,   228,     0,   456,   287,
+      228,   410,   410,   456,   820,   820,     0,   501,
+        0,   273,   273,   273,   273,   273,   273,   273,
+      273,     0,   273,   273,     0,   273,   273,   273,
+      820,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   820,     0,   303,     0,     0,     0,     0,
+      501,   638,   820,   299,     0,     0,     0,     0,
+        0,   729,     0,     0,     0,   228,     0,     0,
+      228,   501,   774,   501,     0,     0,     0,     0
+  ],
+  kern => {
+    "T," => -65, "T-" => -97, "T." => -65, "DA" => -32, "yo" => -20, 
+    ". " => -32, "bl" => -7, "T:" => -32, "T;" => -32, "Ke" => -11, 
+    "rc" => -15, ".\'" => -97, "TA" => -73, "rd" => -15, "bu" => -15, 
+    "bv" => -15, "rg" => -11, "\272 " => -65, "Ko" => -28, "DV" => -32, 
+    "by" => -15, "DW" => -32, "DY" => -56, "ze" => 8, "LT" => -73, 
+    "Ku" => -24, "ro" => -15, "U," => -24, "LV" => -89, "rq" => -15, 
+    "U." => -24, "TO" => -32, "LW" => -65, "Ky" => -32, "rs" => -11, 
+    "LY" => -97, "rt" => 16, "\' " => -65, "rv" => 8, "ry" => 8, 
+    "ch" => -7, "\'\'" => -37, "ck" => -15, "cl" => -15, "e," => 8, 
+    "F," => -81, "e." => 16, "F." => -81, "Ta" => -65, "UA" => -40, 
+    "Te" => -48, "ko" => -11, "cy" => -7, "V," => -97, "V-" => -65, 
+    "To" => -65, "V." => -97, "Ly" => -24, "Tr" => -65, "FA" => -65, 
+    "dd" => -7, "Tu" => -73, "sw" => -11, "Tw" => -48, "f\'" => 25, 
+    "Ty" => -48, "V:" => -32, "V;" => -32, "f," => -7, "f." => -7, 
+    "VA" => -65, "dv" => -11, "dw" => -11, "O," => -32, "dy" => -11, 
+    "VG" => -40, "O." => -32, "v," => -65, "lw" => -11, "W," => -65, 
+    "v." => -65, "W-" => -32, "ly" => -11, "W." => -65, "VO" => -40, 
+    ",\272" => -97, "Fa" => -15, "\'d" => -65, "OA" => -40, "W:" => -7, 
+    "W;" => -7, "\'l" => -15, " T" => -81, " V" => -65, " W" => -65, 
+    "Va" => -48, "WA" => -48, " Y" => -97, "\'r" => -32, "\'s" => -48, 
+    "ev" => -11, "Ve" => -40, "ew" => -11, "P," => -97, "\'v" => -15, 
+    "ex" => -11, "ey" => -11, "P." => -97, " `" => -48, "mu" => -15, 
+    "w," => -32, "OT" => -32, "w." => -32, "OV" => -40, "Vo" => -73, 
+    "my" => -24, "L\272" => -114, "OW" => -40, "WO" => -15, 
+    "OX" => -40, "OY" => -56, "fe" => -7, "Vu" => -48, "PA" => -81, 
+    "fo" => -15, "va" => -15, "Wa" => -32, ": " => -32, "We" => -28, 
+    "Q," => 16, "Q." => 16, "nu" => -7, "nv" => -32, "AC" => -32, 
+    "vo" => -24, "Y," => -81, "Wo" => -48, "ny" => -15, "Y." => -81, 
+    ".\272" => -97, "AG" => -40, "ge" => 8, "Wu" => -36, "gg" => -7, 
+    "AO" => -32, "Wy" => -15, "Pa" => -24, "AQ" => -32, "Y:" => -40, 
+    "Y;" => -40, "AT" => -73, "Pe" => -24, "J," => -15, "AU" => -40, 
+    "AV" => -65, "J." => -15, "AW" => -48, "AY" => -89, "YA" => -89, 
+    "; " => -32, "Po" => -32, "``" => -37, "BA" => -24, "y," => -65, 
+    "ov" => -15, "wo" => -15, "ow" => -11, "QU" => -7, "y." => -65, 
+    "ox" => -24, "oy" => -15, "YO" => -56, " \252" => -65, "JA" => -15, 
+    ", " => -32, ",\'" => -97, "Au" => -24, "Av" => -32, "BU" => -7, 
+    "Aw" => -24, "Ay" => -24, "Ya" => -73, "xe" => -7, "r," => -48, 
+    "Ye" => -65, "r-" => -15, "r." => -48, "f\272" => 25, "hy" => -15, 
+    "RO" => -15, "RT" => -15, "RU" => -15, "RV" => -40, "Yo" => -81, 
+    "ag" => -7, "py" => -11, "RW" => -32, "RY" => -40, "Yu" => -81, 
+    "D," => -24, "D." => -24, "L\'" => -114, "av" => -11, "aw" => -11, 
+    "ya" => -24, "KO" => -24, "ay" => -15, "ye" => -7, "Ju" => -15,   }
+);
diff --git a/doc/metrics/phvbo8a.ph b/doc/metrics/phvbo8a.ph
new file mode 100644 (file)
index 0000000..2ce2e3e
--- /dev/null
@@ -0,0 +1,81 @@
+%PS_Helvetica_BoldOblique = (
+  name => 'Helvetica-BoldOblique',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      278,   333,   474,   556,   556,   889,   722,   278,
+      333,   333,   389,   584,   278,   333,   278,   278,
+      556,   556,   556,   556,   556,   556,   556,   556,
+      556,   556,   333,   333,   584,   584,   584,   611,
+      975,   722,   722,   722,   722,   667,   611,   778,
+      722,   278,   556,   722,   611,   833,   722,   778,
+      667,   778,   722,   667,   611,   722,   667,   944,
+      667,   667,   611,   333,   278,   333,   584,   556,
+      278,   556,   611,   556,   611,   556,   333,   611,
+      611,   278,   278,   556,   278,   889,   611,   611,
+      611,   611,   389,   556,   333,   611,   556,   778,
+      556,   556,   500,   389,   280,   389,   584,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   333,   556,   556,   167,   556,   556,   556,
+      556,   238,   500,   556,   333,   333,   611,   611,
+        0,   556,   556,   556,   278,     0,   556,   350,
+      278,   500,   500,   556,  1000,  1000,     0,   611,
+        0,   333,   333,   333,   333,   333,   333,   333,
+      333,     0,   333,   333,     0,   333,   333,   333,
+     1000,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,  1000,     0,   370,     0,     0,     0,     0,
+      611,   778,  1000,   365,     0,     0,     0,     0,
+        0,   889,     0,     0,     0,   278,     0,     0,
+      278,   611,   944,   611,     0,     0,     0,     0
+  ],
+  kern => {
+    "T," => -80, "T-" => -120, "T." => -80, "DA" => -40, "yo" => -25, 
+    ". " => -40, "bl" => -10, "T:" => -40, "T;" => -40, "Ke" => -15, 
+    "rc" => -20, ".\'" => -120, "TA" => -90, "rd" => -20, "bu" => -20, 
+    "bv" => -20, "rg" => -15, "\272 " => -80, "Ko" => -35, "DV" => -40, 
+    "by" => -20, "DW" => -40, "DY" => -70, "ze" => 10, "LT" => -90, 
+    "Ku" => -30, "ro" => -20, "U," => -30, "LV" => -110, "rq" => -20, 
+    "U." => -30, "TO" => -40, "LW" => -80, "Ky" => -40, "rs" => -15, 
+    "LY" => -120, "rt" => 20, "\' " => -80, "rv" => 10, "ry" => 10, 
+    "ch" => -10, "\'\'" => -46, "ck" => -20, "cl" => -20, "e," => 10, 
+    "F," => -100, "e." => 20, "F." => -100, "Ta" => -80, "UA" => -50, 
+    "Te" => -60, "ko" => -15, "cy" => -10, "V," => -120, "V-" => -80, 
+    "To" => -80, "V." => -120, "Ly" => -30, "Tr" => -80, "FA" => -80, 
+    "dd" => -10, "Tu" => -90, "sw" => -15, "Tw" => -60, "f\'" => 30, 
+    "Ty" => -60, "V:" => -40, "V;" => -40, "f," => -10, "f." => -10, 
+    "VA" => -80, "dv" => -15, "dw" => -15, "O," => -40, "dy" => -15, 
+    "VG" => -50, "O." => -40, "v," => -80, "lw" => -15, "W," => -80, 
+    "v." => -80, "W-" => -40, "ly" => -15, "W." => -80, "VO" => -50, 
+    ",\272" => -120, "Fa" => -20, "\'d" => -80, "OA" => -50, 
+    "W:" => -10, "W;" => -10, "\'l" => -20, " T" => -100, " V" => -80, 
+    " W" => -80, "Va" => -60, "WA" => -60, " Y" => -120, "\'r" => -40, 
+    "\'s" => -60, "ev" => -15, "Ve" => -50, "ew" => -15, "P," => -120, 
+    "\'v" => -20, "ex" => -15, "ey" => -15, "P." => -120, " `" => -60, 
+    "mu" => -20, "w," => -40, "OT" => -40, "w." => -40, "OV" => -50, 
+    "Vo" => -90, "my" => -30, "L\272" => -140, "OW" => -50, 
+    "WO" => -20, "OX" => -50, "OY" => -70, "fe" => -10, "Vu" => -60, 
+    "PA" => -100, "fo" => -20, "va" => -20, "Wa" => -40, ": " => -40, 
+    "We" => -35, "Q," => 20, "Q." => 20, "nu" => -10, "nv" => -40, 
+    "AC" => -40, "vo" => -30, "Y," => -100, "Wo" => -60, "ny" => -20, 
+    "Y." => -100, ".\272" => -120, "AG" => -50, "ge" => 10, 
+    "Wu" => -45, "gg" => -10, "AO" => -40, "Wy" => -20, "Pa" => -30, 
+    "AQ" => -40, "Y:" => -50, "Y;" => -50, "AT" => -90, "Pe" => -30, 
+    "J," => -20, "AU" => -50, "AV" => -80, "J." => -20, "AW" => -60, 
+    "AY" => -110, "YA" => -110, "; " => -40, "Po" => -40, "``" => -46, 
+    "BA" => -30, "y," => -80, "ov" => -20, "wo" => -20, "ow" => -15, 
+    "QU" => -10, "y." => -80, "ox" => -30, "oy" => -20, "YO" => -70, 
+    " \252" => -80, "JA" => -20, ", " => -40, ",\'" => -120, 
+    "Au" => -30, "Av" => -40, "BU" => -10, "Aw" => -30, "Ay" => -30, 
+    "Ya" => -90, "xe" => -10, "r," => -60, "Ye" => -80, "r-" => -20, 
+    "r." => -60, "f\272" => 30, "hy" => -20, "RO" => -20, "RT" => -20, 
+    "RU" => -20, "RV" => -50, "Yo" => -100, "ag" => -10, "py" => -15, 
+    "RW" => -40, "RY" => -50, "Yu" => -100, "D," => -30, "D." => -30, 
+    "L\'" => -140, "av" => -15, "aw" => -15, "ya" => -30, "KO" => -30, 
+    "ay" => -20, "ye" => -10, "Ju" => -20,   }
+);
diff --git a/doc/metrics/phvbo8an.ph b/doc/metrics/phvbo8an.ph
new file mode 100644 (file)
index 0000000..b16de70
--- /dev/null
@@ -0,0 +1,81 @@
+%PS_Helvetica_Narrow_BoldOblique = (
+  name => 'Helvetica-Narrow-BoldOblique',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      228,   273,   389,   456,   456,   729,   592,   228,
+      273,   273,   319,   479,   228,   273,   228,   228,
+      456,   456,   456,   456,   456,   456,   456,   456,
+      456,   456,   273,   273,   479,   479,   479,   501,
+      800,   592,   592,   592,   592,   547,   501,   638,
+      592,   228,   456,   592,   501,   683,   592,   638,
+      547,   638,   592,   547,   501,   592,   547,   774,
+      547,   547,   501,   273,   228,   273,   479,   456,
+      228,   456,   501,   456,   501,   456,   273,   501,
+      501,   228,   228,   456,   228,   729,   501,   501,
+      501,   501,   319,   456,   273,   501,   456,   638,
+      456,   456,   410,   319,   230,   319,   479,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   273,   456,   456,   137,   456,   456,   456,
+      456,   195,   410,   456,   273,   273,   501,   501,
+        0,   456,   456,   456,   228,     0,   456,   287,
+      228,   410,   410,   456,   820,   820,     0,   501,
+        0,   273,   273,   273,   273,   273,   273,   273,
+      273,     0,   273,   273,     0,   273,   273,   273,
+      820,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   820,     0,   303,     0,     0,     0,     0,
+      501,   638,   820,   299,     0,     0,     0,     0,
+        0,   729,     0,     0,     0,   228,     0,     0,
+      228,   501,   774,   501,     0,     0,     0,     0
+  ],
+  kern => {
+    "T," => -80, "T-" => -120, "T." => -80, "DA" => -40, "yo" => -25, 
+    ". " => -40, "bl" => -10, "T:" => -40, "T;" => -40, "Ke" => -15, 
+    "rc" => -20, ".\'" => -120, "TA" => -90, "rd" => -20, "bu" => -20, 
+    "bv" => -20, "rg" => -15, "\272 " => -80, "Ko" => -35, "DV" => -40, 
+    "by" => -20, "DW" => -40, "DY" => -70, "ze" => 10, "LT" => -90, 
+    "Ku" => -30, "ro" => -20, "U," => -30, "LV" => -110, "rq" => -20, 
+    "U." => -30, "TO" => -40, "LW" => -80, "Ky" => -40, "rs" => -15, 
+    "LY" => -120, "rt" => 20, "\' " => -80, "rv" => 10, "ry" => 10, 
+    "ch" => -10, "\'\'" => -46, "ck" => -20, "cl" => -20, "e," => 10, 
+    "F," => -100, "e." => 20, "F." => -100, "Ta" => -80, "UA" => -50, 
+    "Te" => -60, "ko" => -15, "cy" => -10, "V," => -120, "V-" => -80, 
+    "To" => -80, "V." => -120, "Ly" => -30, "Tr" => -80, "FA" => -80, 
+    "dd" => -10, "Tu" => -90, "sw" => -15, "Tw" => -60, "f\'" => 30, 
+    "Ty" => -60, "V:" => -40, "V;" => -40, "f," => -10, "f." => -10, 
+    "VA" => -80, "dv" => -15, "dw" => -15, "O," => -40, "dy" => -15, 
+    "VG" => -50, "O." => -40, "v," => -80, "lw" => -15, "W," => -80, 
+    "v." => -80, "W-" => -40, "ly" => -15, "W." => -80, "VO" => -50, 
+    ",\272" => -120, "Fa" => -20, "\'d" => -80, "OA" => -50, 
+    "W:" => -10, "W;" => -10, "\'l" => -20, " T" => -100, " V" => -80, 
+    " W" => -80, "Va" => -60, "WA" => -60, " Y" => -120, "\'r" => -40, 
+    "\'s" => -60, "ev" => -15, "Ve" => -50, "ew" => -15, "P," => -120, 
+    "\'v" => -20, "ex" => -15, "ey" => -15, "P." => -120, " `" => -60, 
+    "mu" => -20, "w," => -40, "OT" => -40, "w." => -40, "OV" => -50, 
+    "Vo" => -90, "my" => -30, "L\272" => -140, "OW" => -50, 
+    "WO" => -20, "OX" => -50, "OY" => -70, "fe" => -10, "Vu" => -60, 
+    "PA" => -100, "fo" => -20, "va" => -20, "Wa" => -40, ": " => -40, 
+    "We" => -35, "Q," => 20, "Q." => 20, "nu" => -10, "nv" => -40, 
+    "AC" => -40, "vo" => -30, "Y," => -100, "Wo" => -60, "ny" => -20, 
+    "Y." => -100, ".\272" => -120, "AG" => -50, "ge" => 10, 
+    "Wu" => -45, "gg" => -10, "AO" => -40, "Wy" => -20, "Pa" => -30, 
+    "AQ" => -40, "Y:" => -50, "Y;" => -50, "AT" => -90, "Pe" => -30, 
+    "J," => -20, "AU" => -50, "AV" => -80, "J." => -20, "AW" => -60, 
+    "AY" => -110, "YA" => -110, "; " => -40, "Po" => -40, "``" => -46, 
+    "BA" => -30, "y," => -80, "ov" => -20, "wo" => -20, "ow" => -15, 
+    "QU" => -10, "y." => -80, "ox" => -30, "oy" => -20, "YO" => -70, 
+    " \252" => -80, "JA" => -20, ", " => -40, ",\'" => -120, 
+    "Au" => -30, "Av" => -40, "BU" => -10, "Aw" => -30, "Ay" => -30, 
+    "Ya" => -90, "xe" => -10, "r," => -60, "Ye" => -80, "r-" => -20, 
+    "r." => -60, "f\272" => 30, "hy" => -20, "RO" => -20, "RT" => -20, 
+    "RU" => -20, "RV" => -50, "Yo" => -100, "ag" => -10, "py" => -15, 
+    "RW" => -40, "RY" => -50, "Yu" => -100, "D," => -30, "D." => -30, 
+    "L\'" => -140, "av" => -15, "aw" => -15, "ya" => -30, "KO" => -30, 
+    "ay" => -20, "ye" => -10, "Ju" => -20,   }
+);
diff --git a/doc/metrics/phvl8a.ph b/doc/metrics/phvl8a.ph
new file mode 100644 (file)
index 0000000..b54c126
--- /dev/null
@@ -0,0 +1,59 @@
+%PS_Helvetica_Light = (
+  name => 'Helvetica-Light',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      278,   333,   278,   556,   556,   889,   667,   222,
+      333,   333,   389,   660,   278,   333,   278,   278,
+      556,   556,   556,   556,   556,   556,   556,   556,
+      556,   556,   278,   278,   660,   660,   660,   500,
+      800,   667,   667,   722,   722,   611,   556,   778,
+      722,   278,   500,   667,   556,   833,   722,   778,
+      611,   778,   667,   611,   556,   722,   611,   889,
+      611,   611,   611,   333,   278,   333,   660,   500,
+      222,   556,   611,   556,   611,   556,   278,   611,
+      556,   222,   222,   500,   222,   833,   556,   556,
+      611,   611,   333,   500,   278,   556,   500,   722,
+      500,   500,   500,   333,   222,   333,   660,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   333,   556,   556,   167,   556,   556,   556,
+      556,   222,   389,   556,   389,   389,   500,   500,
+        0,   500,   556,   556,   278,     0,   650,   500,
+      222,   389,   389,   556,  1000,  1000,     0,   500,
+        0,   333,   333,   333,   333,   333,   333,   333,
+      333,     0,   333,   333,     0,   333,   333,   333,
+     1000,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,  1000,     0,   334,     0,     0,     0,     0,
+      556,   778,  1000,   334,     0,     0,     0,     0,
+        0,   889,     0,     0,     0,   222,     0,     0,
+      222,   556,   944,   500,     0,     0,     0,     0
+  ],
+  kern => {
+    "T," => -111, "T-" => -129, "T." => -111, "w," => -55, "w." => -55, 
+    "Vo" => -55, "Vr" => -37, "A\'" => -74, "Vu" => -37, "ff" => -18, 
+    "T:" => -111, "Vy" => -18, "T;" => -111, "PA" => -74, "rc" => -18, 
+    "TA" => -92, "rd" => -18, "re" => -18, "rf" => 18, "Wa" => -37, 
+    "We" => -18, "rm" => 18, "rn" => 18, "LT" => -92, "ro" => -18, 
+    "LV" => -92, "rq" => -18, "LW" => -55, "Y," => -111, "LY" => -111, 
+    "rt" => 18, "Y-" => -111, "Wo" => -18, "Y." => -111, "Wr" => -18, 
+    "ry" => 18, "Wu" => -18, "\'\'" => -18, "F," => -129, "Y:" => -92, 
+    "Y;" => -92, "F." => -129, "Ta" => -111, "AT" => -92, "Tc" => -111, 
+    "AV" => -74, "AW" => -37, "Te" => -111, "YA" => -74, "AY" => -74, 
+    "``" => -18, "V," => -129, "To" => -111, "V-" => -55, "V." => -129, 
+    "y," => -92, "Ly" => -37, "Tr" => -92, "y." => -92, "FA" => -55, 
+    "Ts" => -111, "Tu" => -92, "Tw" => -84, "f\'" => 18, "Ty" => -84, 
+    "V:" => -74, "V;" => -74, "Av" => -18, "VA" => -74, "Aw" => -18, 
+    "Ya" => -92, "Ay" => -18, "r," => -92, "Ye" => -92, "r-" => -55, 
+    "r." => -92, "v," => -74, "Yi" => -20, "W," => -74, "v." => -74, 
+    "W." => -74, "RT" => -18, "Yo" => -92, "RV" => -18, "Yp" => -37, 
+    "RW" => -18, "Yq" => -92, "RY" => -37, "Yu" => -37, "Yv" => -40, 
+    "W:" => -18, "W;" => -18, "L\'" => -74, "Va" => -55, "WA" => -37, 
+    "\'s" => -74, "\'t" => -18, "Ve" => -55, "P," => -129, 
+    "P." => -129, "Vi" => -18,   }
+);
diff --git a/doc/metrics/phvlo8a.ph b/doc/metrics/phvlo8a.ph
new file mode 100644 (file)
index 0000000..0f2f4b8
--- /dev/null
@@ -0,0 +1,59 @@
+%PS_Helvetica_LightOblique = (
+  name => 'Helvetica-LightOblique',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      278,   333,   278,   556,   556,   889,   667,   222,
+      333,   333,   389,   660,   278,   333,   278,   278,
+      556,   556,   556,   556,   556,   556,   556,   556,
+      556,   556,   278,   278,   660,   660,   660,   500,
+      800,   667,   667,   722,   722,   611,   556,   778,
+      722,   278,   500,   667,   556,   833,   722,   778,
+      611,   778,   667,   611,   556,   722,   611,   889,
+      611,   611,   611,   333,   278,   333,   660,   500,
+      222,   556,   611,   556,   611,   556,   278,   611,
+      556,   222,   222,   500,   222,   833,   556,   556,
+      611,   611,   333,   500,   278,   556,   500,   722,
+      500,   500,   500,   333,   222,   333,   660,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   333,   556,   556,   167,   556,   556,   556,
+      556,   222,   389,   556,   389,   389,   500,   500,
+        0,   500,   556,   556,   278,     0,   650,   500,
+      222,   389,   389,   556,  1000,  1000,     0,   500,
+        0,   333,   333,   333,   333,   333,   333,   333,
+      333,     0,   333,   333,     0,   333,   333,   333,
+     1000,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,  1000,     0,   334,     0,     0,     0,     0,
+      556,   778,  1000,   334,     0,     0,     0,     0,
+        0,   889,     0,     0,     0,   222,     0,     0,
+      222,   556,   944,   500,     0,     0,     0,     0
+  ],
+  kern => {
+    "T," => -111, "T-" => -129, "T." => -111, "w," => -55, "w." => -55, 
+    "Vo" => -55, "Vr" => -37, "A\'" => -74, "Vu" => -37, "ff" => -18, 
+    "T:" => -111, "Vy" => -18, "T;" => -111, "PA" => -74, "rc" => -18, 
+    "TA" => -92, "rd" => -18, "re" => -18, "rf" => 18, "Wa" => -37, 
+    "We" => -18, "rm" => 18, "rn" => 18, "LT" => -92, "ro" => -18, 
+    "LV" => -92, "rq" => -18, "LW" => -55, "Y," => -111, "LY" => -111, 
+    "rt" => 18, "Y-" => -111, "Wo" => -18, "Y." => -111, "Wr" => -18, 
+    "ry" => 18, "Wu" => -18, "\'\'" => -18, "F," => -129, "Y:" => -92, 
+    "Y;" => -92, "F." => -129, "Ta" => -111, "AT" => -92, "Tc" => -111, 
+    "AV" => -74, "AW" => -37, "Te" => -111, "YA" => -74, "AY" => -74, 
+    "``" => -18, "V," => -129, "To" => -111, "V-" => -55, "V." => -129, 
+    "y," => -92, "Ly" => -37, "Tr" => -92, "y." => -92, "FA" => -55, 
+    "Ts" => -111, "Tu" => -92, "Tw" => -84, "f\'" => 18, "Ty" => -84, 
+    "V:" => -74, "V;" => -74, "Av" => -18, "VA" => -74, "Aw" => -18, 
+    "Ya" => -92, "Ay" => -18, "r," => -92, "Ye" => -92, "r-" => -55, 
+    "r." => -92, "v," => -74, "Yi" => -20, "W," => -74, "v." => -74, 
+    "W." => -74, "RT" => -18, "Yo" => -92, "RV" => -18, "Yp" => -37, 
+    "RW" => -18, "Yq" => -92, "RY" => -37, "Yu" => -37, "Yv" => -40, 
+    "W:" => -18, "W;" => -18, "L\'" => -74, "Va" => -55, "WA" => -37, 
+    "\'s" => -74, "\'t" => -18, "Ve" => -55, "P," => -129, 
+    "P." => -129, "Vi" => -18,   }
+);
diff --git a/doc/metrics/phvr8a.ph b/doc/metrics/phvr8a.ph
new file mode 100644 (file)
index 0000000..01742c3
--- /dev/null
@@ -0,0 +1,92 @@
+%PS_Helvetica = (
+  name => 'Helvetica',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      278,   278,   355,   556,   556,   889,   667,   222,
+      333,   333,   389,   584,   278,   333,   278,   278,
+      556,   556,   556,   556,   556,   556,   556,   556,
+      556,   556,   278,   278,   584,   584,   584,   556,
+     1015,   667,   667,   722,   722,   667,   611,   778,
+      722,   278,   500,   667,   556,   833,   722,   778,
+      667,   778,   722,   667,   611,   722,   667,   944,
+      667,   667,   611,   278,   278,   278,   469,   556,
+      222,   556,   556,   500,   556,   556,   278,   556,
+      556,   222,   222,   500,   222,   833,   556,   556,
+      556,   556,   333,   500,   278,   556,   500,   722,
+      500,   500,   500,   334,   260,   334,   584,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   333,   556,   556,   167,   556,   556,   556,
+      556,   191,   333,   556,   333,   333,   500,   500,
+        0,   556,   556,   556,   278,     0,   537,   350,
+      222,   333,   333,   556,  1000,  1000,     0,   611,
+        0,   333,   333,   333,   333,   333,   333,   333,
+      333,     0,   333,   333,     0,   333,   333,   333,
+     1000,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,  1000,     0,   370,     0,     0,     0,     0,
+      556,   778,  1000,   365,     0,     0,     0,     0,
+        0,   889,     0,     0,     0,   278,     0,     0,
+      222,   611,   944,   611,     0,     0,     0,     0
+  ],
+  kern => {
+    "T," => -120, "s." => -15, "T-" => -140, "T." => -120, "bb" => -10, 
+    "DA" => -40, "yo" => -20, ". " => -60, "bl" => -20, "T:" => -20, 
+    "T;" => -20, "Ke" => -40, "ra" => -10, ".\'" => -100, "TA" => -120, 
+    "bu" => -20, "bv" => -20, "\272 " => -40, "Ko" => -40, "DV" => -70, 
+    "ri" => 15, "f\365" => -28, "by" => -20, "DW" => -40, "rk" => 15, 
+    "DY" => -90, "rl" => 15, "ze" => -15, "rm" => 25, "rn" => 25, 
+    "LT" => -110, "Ku" => -30, "U," => -40, "rp" => 30, "LV" => -110, 
+    "U." => -40, "TO" => -40, "LW" => -70, "Ky" => -50, "LY" => -140, 
+    "rt" => 40, "ru" => 15, "\' " => -70, "rv" => 30, "zo" => -15, 
+    "ry" => 30, "\'\'" => -57, "ck" => -20, "ke" => -20, "e," => -15, 
+    "F," => -150, "e." => -15, "F." => -150, "Ta" => -120, "UA" => -40, 
+    "Te" => -120, "ko" => -20, "V," => -125, "V-" => -80, "To" => -120, 
+    "V." => -125, "\371," => -95, "Ly" => -30, "Tr" => -120, 
+    "\371." => -95, "FA" => -80, "Tu" => -120, "sw" => -30, 
+    "Tw" => -120, "f\'" => 50, "Ty" => -120, "V:" => -40, "V;" => -40, 
+    "f," => -30, "f." => -30, "VA" => -80, "O," => -40, "VG" => -40, 
+    "O." => -40, "v," => -80, "W," => -80, "v." => -80, "W-" => -40, 
+    "W." => -80, "VO" => -40, ",\272" => -100, "Fa" => -50, 
+    "\'d" => -50, "Fe" => -30, "OA" => -20, " T" => -50, "Fo" => -30, 
+    " V" => -50, " W" => -40, "Va" => -70, "WA" => -50, "Fr" => -45, 
+    " Y" => -90, "\'r" => -50, "\'s" => -50, "\371a" => -55, 
+    "\371b" => -55, "o," => -40, "ev" => -30, "Ve" => -80, 
+    "\371c" => -55, "ew" => -20, "P," => -180, "\371d" => -55, 
+    "o." => -40, "ex" => -30, "\371e" => -55, "ey" => -20, 
+    "P." => -180, "\371f" => -55, " `" => -60, "\371g" => -55, 
+    "\371h" => -55, "\371i" => -55, "mu" => -10, "w," => -60, 
+    "\371j" => -55, "OT" => -40, "\371k" => -55, "w." => -60, 
+    "\371l" => -55, "OV" => -50, "Vo" => -80, "\371m" => -55, 
+    "my" => -15, "L\272" => -140, "OW" => -30, "WO" => -20, 
+    "\371n" => -55, "fa" => -30, "OX" => -60, "\371o" => -55, 
+    "OY" => -70, "\371p" => -55, "\371q" => -55, "\371r" => -55, 
+    "fe" => -30, "Vu" => -70, "\371s" => -55, "\371t" => -55, 
+    "\371u" => -55, "\371v" => -70, "\371w" => -70, "\371x" => -85, 
+    "PA" => -120, "\371y" => -70, "\371z" => -55, "fo" => -30, 
+    "va" => -25, "Wa" => -40, ": " => -50, "ve" => -25, "p," => -35, 
+    "We" => -30, "p." => -35, "nu" => -10, "nv" => -20, "AC" => -30, 
+    "vo" => -25, "Y," => -140, "Wo" => -30, "Y-" => -140, "ny" => -15, 
+    "Y." => -140, ".\272" => -100, "AG" => -30, "Wu" => -30, 
+    "B," => -20, "AO" => -30, "B." => -20, "Wy" => -20, "Pa" => -40, 
+    "AQ" => -30, "Y:" => -60, "Y;" => -60, "AT" => -120, "Pe" => -50, 
+    "AU" => -50, "J," => -30, "AV" => -70, "wa" => -15, "AW" => -50, 
+    "J." => -30, "gr" => -10, "AY" => -100, "YA" => -110, "; " => -50, 
+    "we" => -10, "Po" => -50, "``" => -57, "y," => -100, "ov" => -15, 
+    "wo" => -10, "ow" => -15, "QU" => -10, "y." => -100, "ox" => -30, 
+    "oy" => -30, "YO" => -85, " \252" => -30, "JA" => -20, "b," => -40, 
+    "C," => -30, "b." => -40, "C." => -30, ",\'" => -100, "Au" => -30, 
+    "Av" => -40, "BU" => -10, "Aw" => -40, "Ay" => -40, "Ya" => -140, 
+    "xe" => -30, "r," => -50, "Ye" => -140, "S," => -20, "r." => -50, 
+    "f\272" => 60, "hy" => -30, "RO" => -20, "S." => -20, "Yi" => -20, 
+    "RT" => -30, "RU" => -40, "RV" => -50, "Yo" => -140, "py" => -30, 
+    "RW" => -30, "RY" => -50, "Ja" => -20, "r:" => 30, "r;" => 30, 
+    "Yu" => -110, "c," => -15, "D," => -70, "D." => -70, "L\'" => -160, 
+    "av" => -20, "aw" => -20, "ya" => -20, "KO" => -50, "ay" => -30, 
+    "ye" => -20, "s," => -15, "Ju" => -20,   }
+);
diff --git a/doc/metrics/phvr8an.ph b/doc/metrics/phvr8an.ph
new file mode 100644 (file)
index 0000000..d088d00
--- /dev/null
@@ -0,0 +1,91 @@
+%PS_Helvetica_Narrow = (
+  name => 'Helvetica-Narrow',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      228,   228,   291,   456,   456,   729,   547,   182,
+      273,   273,   319,   479,   228,   273,   228,   228,
+      456,   456,   456,   456,   456,   456,   456,   456,
+      456,   456,   228,   228,   479,   479,   479,   456,
+      832,   547,   547,   592,   592,   547,   501,   638,
+      592,   228,   410,   547,   456,   683,   592,   638,
+      547,   638,   592,   547,   501,   592,   547,   774,
+      547,   547,   501,   228,   228,   228,   385,   456,
+      182,   456,   456,   410,   456,   456,   228,   456,
+      456,   182,   182,   410,   182,   683,   456,   456,
+      456,   456,   273,   410,   228,   456,   410,   592,
+      410,   410,   410,   274,   213,   274,   479,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   273,   456,   456,   137,   456,   456,   456,
+      456,   157,   273,   456,   273,   273,   410,   410,
+        0,   456,   456,   456,   228,     0,   440,   287,
+      182,   273,   273,   456,   820,   820,     0,   501,
+        0,   273,   273,   273,   273,   273,   273,   273,
+      273,     0,   273,   273,     0,   273,   273,   273,
+      820,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   820,     0,   303,     0,     0,     0,     0,
+      456,   638,   820,   299,     0,     0,     0,     0,
+        0,   729,     0,     0,     0,   228,     0,     0,
+      182,   501,   774,   501,     0,     0,     0,     0
+  ],
+  kern => {
+    "T," => -97, "s." => -11, "T-" => -114, "T." => -97, "bb" => -7, 
+    "DA" => -32, "yo" => -15, ". " => -48, "bl" => -15, "T:" => -15, 
+    "T;" => -15, "Ke" => -32, "ra" => -7, ".\'" => -81, "TA" => -97, 
+    "bu" => -15, "bv" => -15, "\272 " => -32, "Ko" => -32, "DV" => -56, 
+    "ri" => 12, "f\365" => -22, "by" => -15, "DW" => -32, "rk" => 12, 
+    "DY" => -73, "rl" => 12, "ze" => -11, "rm" => 21, "rn" => 21, 
+    "LT" => -89, "Ku" => -24, "U," => -32, "rp" => 25, "LV" => -89, 
+    "U." => -32, "TO" => -32, "LW" => -56, "Ky" => -40, "LY" => -114, 
+    "rt" => 33, "ru" => 12, "\' " => -56, "rv" => 25, "zo" => -11, 
+    "ry" => 25, "\'\'" => -46, "ck" => -15, "ke" => -15, "e," => -11, 
+    "F," => -122, "e." => -11, "F." => -122, "Ta" => -97, "UA" => -32, 
+    "Te" => -97, "ko" => -15, "V," => -102, "V-" => -65, "To" => -97, 
+    "V." => -102, "\371," => -77, "Ly" => -24, "Tr" => -97, 
+    "\371." => -77, "FA" => -65, "Tu" => -97, "sw" => -24, "Tw" => -97, 
+    "f\'" => 41, "Ty" => -97, "V:" => -32, "V;" => -32, "f," => -24, 
+    "f." => -24, "VA" => -65, "O," => -32, "VG" => -32, "O." => -32, 
+    "v," => -65, "W," => -65, "v." => -65, "W-" => -32, "W." => -65, 
+    "VO" => -32, ",\272" => -81, "Fa" => -40, "\'d" => -40, 
+    "Fe" => -24, "OA" => -15, " T" => -40, "Fo" => -24, " V" => -40, 
+    " W" => -32, "Va" => -56, "WA" => -40, "Fr" => -36, " Y" => -73, 
+    "\'r" => -40, "\'s" => -40, "\371a" => -44, "\371b" => -44, 
+    "o," => -32, "ev" => -24, "Ve" => -65, "\371c" => -44, "ew" => -15, 
+    "P," => -147, "\371d" => -44, "o." => -32, "ex" => -24, 
+    "\371e" => -44, "ey" => -15, "P." => -147, "\371f" => -44, 
+    " `" => -48, "\371g" => -44, "\371h" => -44, "\371i" => -44, 
+    "mu" => -7, "w," => -48, "\371j" => -44, "OT" => -32, 
+    "\371k" => -44, "w." => -48, "\371l" => -44, "OV" => -40, 
+    "Vo" => -65, "\371m" => -44, "my" => -11, "L\272" => -114, 
+    "OW" => -24, "WO" => -15, "\371n" => -44, "fa" => -24, "OX" => -48, 
+    "\371o" => -44, "OY" => -56, "\371p" => -44, "\371q" => -44, 
+    "\371r" => -44, "fe" => -24, "Vu" => -56, "\371s" => -44, 
+    "\371t" => -44, "\371u" => -44, "\371v" => -56, "\371w" => -56, 
+    "\371x" => -69, "PA" => -97, "\371y" => -56, "\371z" => -44, 
+    "fo" => -24, "va" => -20, "Wa" => -32, ": " => -40, "ve" => -20, 
+    "p," => -28, "We" => -24, "p." => -28, "nu" => -7, "nv" => -15, 
+    "AC" => -24, "vo" => -20, "Y," => -114, "Wo" => -24, "Y-" => -114, 
+    "ny" => -11, "Y." => -114, ".\272" => -81, "AG" => -24, 
+    "Wu" => -24, "B," => -15, "AO" => -24, "B." => -15, "Wy" => -15, 
+    "Pa" => -32, "AQ" => -24, "Y:" => -48, "Y;" => -48, "AT" => -97, 
+    "Pe" => -40, "AU" => -40, "J," => -24, "AV" => -56, "wa" => -11, 
+    "AW" => -40, "J." => -24, "gr" => -7, "AY" => -81, "YA" => -89, 
+    "; " => -40, "we" => -7, "Po" => -40, "``" => -46, "y," => -81, 
+    "ov" => -11, "wo" => -7, "ow" => -11, "QU" => -7, "y." => -81, 
+    "ox" => -24, "oy" => -24, "YO" => -69, " \252" => -24, "JA" => -15, 
+    "b," => -32, "C," => -24, "b." => -32, "C." => -24, ",\'" => -81, 
+    "Au" => -24, "Av" => -32, "BU" => -7, "Aw" => -32, "Ay" => -32, 
+    "Ya" => -114, "xe" => -24, "r," => -40, "Ye" => -114, "S," => -15, 
+    "r." => -40, "f\272" => 49, "hy" => -24, "RO" => -15, "S." => -15, 
+    "Yi" => -15, "RT" => -24, "RU" => -32, "RV" => -40, "Yo" => -114, 
+    "py" => -24, "RW" => -24, "RY" => -40, "Ja" => -15, "r:" => 25, 
+    "r;" => 25, "Yu" => -89, "c," => -11, "D," => -56, "D." => -56, 
+    "L\'" => -130, "av" => -15, "aw" => -15, "ya" => -15, "KO" => -40, 
+    "ay" => -24, "ye" => -15, "s," => -11, "Ju" => -15,   }
+);
diff --git a/doc/metrics/phvro8a.ph b/doc/metrics/phvro8a.ph
new file mode 100644 (file)
index 0000000..74d7959
--- /dev/null
@@ -0,0 +1,92 @@
+%PS_Helvetica_Oblique = (
+  name => 'Helvetica-Oblique',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      278,   278,   355,   556,   556,   889,   667,   222,
+      333,   333,   389,   584,   278,   333,   278,   278,
+      556,   556,   556,   556,   556,   556,   556,   556,
+      556,   556,   278,   278,   584,   584,   584,   556,
+     1015,   667,   667,   722,   722,   667,   611,   778,
+      722,   278,   500,   667,   556,   833,   722,   778,
+      667,   778,   722,   667,   611,   722,   667,   944,
+      667,   667,   611,   278,   278,   278,   469,   556,
+      222,   556,   556,   500,   556,   556,   278,   556,
+      556,   222,   222,   500,   222,   833,   556,   556,
+      556,   556,   333,   500,   278,   556,   500,   722,
+      500,   500,   500,   334,   260,   334,   584,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   333,   556,   556,   167,   556,   556,   556,
+      556,   191,   333,   556,   333,   333,   500,   500,
+        0,   556,   556,   556,   278,     0,   537,   350,
+      222,   333,   333,   556,  1000,  1000,     0,   611,
+        0,   333,   333,   333,   333,   333,   333,   333,
+      333,     0,   333,   333,     0,   333,   333,   333,
+     1000,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,  1000,     0,   370,     0,     0,     0,     0,
+      556,   778,  1000,   365,     0,     0,     0,     0,
+        0,   889,     0,     0,     0,   278,     0,     0,
+      222,   611,   944,   611,     0,     0,     0,     0
+  ],
+  kern => {
+    "T," => -120, "s." => -15, "T-" => -140, "T." => -120, "bb" => -10, 
+    "DA" => -40, "yo" => -20, ". " => -60, "bl" => -20, "T:" => -20, 
+    "T;" => -20, "Ke" => -40, "ra" => -10, ".\'" => -100, "TA" => -120, 
+    "bu" => -20, "bv" => -20, "\272 " => -40, "Ko" => -40, "DV" => -70, 
+    "ri" => 15, "f\365" => -28, "by" => -20, "DW" => -40, "rk" => 15, 
+    "DY" => -90, "rl" => 15, "ze" => -15, "rm" => 25, "rn" => 25, 
+    "LT" => -110, "Ku" => -30, "U," => -40, "rp" => 30, "LV" => -110, 
+    "U." => -40, "TO" => -40, "LW" => -70, "Ky" => -50, "LY" => -140, 
+    "rt" => 40, "ru" => 15, "\' " => -70, "rv" => 30, "zo" => -15, 
+    "ry" => 30, "\'\'" => -57, "ck" => -20, "ke" => -20, "e," => -15, 
+    "F," => -150, "e." => -15, "F." => -150, "Ta" => -120, "UA" => -40, 
+    "Te" => -120, "ko" => -20, "V," => -125, "V-" => -80, "To" => -120, 
+    "V." => -125, "\371," => -95, "Ly" => -30, "Tr" => -120, 
+    "\371." => -95, "FA" => -80, "Tu" => -120, "sw" => -30, 
+    "Tw" => -120, "f\'" => 50, "Ty" => -120, "V:" => -40, "V;" => -40, 
+    "f," => -30, "f." => -30, "VA" => -80, "O," => -40, "VG" => -40, 
+    "O." => -40, "v," => -80, "W," => -80, "v." => -80, "W-" => -40, 
+    "W." => -80, "VO" => -40, ",\272" => -100, "Fa" => -50, 
+    "\'d" => -50, "Fe" => -30, "OA" => -20, " T" => -50, "Fo" => -30, 
+    " V" => -50, " W" => -40, "Va" => -70, "WA" => -50, "Fr" => -45, 
+    " Y" => -90, "\'r" => -50, "\'s" => -50, "\371a" => -55, 
+    "\371b" => -55, "o," => -40, "ev" => -30, "Ve" => -80, 
+    "\371c" => -55, "ew" => -20, "P," => -180, "\371d" => -55, 
+    "o." => -40, "ex" => -30, "\371e" => -55, "ey" => -20, 
+    "P." => -180, "\371f" => -55, " `" => -60, "\371g" => -55, 
+    "\371h" => -55, "\371i" => -55, "mu" => -10, "w," => -60, 
+    "\371j" => -55, "OT" => -40, "\371k" => -55, "w." => -60, 
+    "\371l" => -55, "OV" => -50, "Vo" => -80, "\371m" => -55, 
+    "my" => -15, "L\272" => -140, "OW" => -30, "WO" => -20, 
+    "\371n" => -55, "fa" => -30, "OX" => -60, "\371o" => -55, 
+    "OY" => -70, "\371p" => -55, "\371q" => -55, "\371r" => -55, 
+    "fe" => -30, "Vu" => -70, "\371s" => -55, "\371t" => -55, 
+    "\371u" => -55, "\371v" => -70, "\371w" => -70, "\371x" => -85, 
+    "PA" => -120, "\371y" => -70, "\371z" => -55, "fo" => -30, 
+    "va" => -25, "Wa" => -40, ": " => -50, "ve" => -25, "p," => -35, 
+    "We" => -30, "p." => -35, "nu" => -10, "nv" => -20, "AC" => -30, 
+    "vo" => -25, "Y," => -140, "Wo" => -30, "Y-" => -140, "ny" => -15, 
+    "Y." => -140, ".\272" => -100, "AG" => -30, "Wu" => -30, 
+    "B," => -20, "AO" => -30, "B." => -20, "Wy" => -20, "Pa" => -40, 
+    "AQ" => -30, "Y:" => -60, "Y;" => -60, "AT" => -120, "Pe" => -50, 
+    "AU" => -50, "J," => -30, "AV" => -70, "wa" => -15, "AW" => -50, 
+    "J." => -30, "gr" => -10, "AY" => -100, "YA" => -110, "; " => -50, 
+    "we" => -10, "Po" => -50, "``" => -57, "y," => -100, "ov" => -15, 
+    "wo" => -10, "ow" => -15, "QU" => -10, "y." => -100, "ox" => -30, 
+    "oy" => -30, "YO" => -85, " \252" => -30, "JA" => -20, "b," => -40, 
+    "C," => -30, "b." => -40, "C." => -30, ",\'" => -100, "Au" => -30, 
+    "Av" => -40, "BU" => -10, "Aw" => -40, "Ay" => -40, "Ya" => -140, 
+    "xe" => -30, "r," => -50, "Ye" => -140, "S," => -20, "r." => -50, 
+    "f\272" => 60, "hy" => -30, "RO" => -20, "S." => -20, "Yi" => -20, 
+    "RT" => -30, "RU" => -40, "RV" => -50, "Yo" => -140, "py" => -30, 
+    "RW" => -30, "RY" => -50, "Ja" => -20, "r:" => 30, "r;" => 30, 
+    "Yu" => -110, "c," => -15, "D," => -70, "D." => -70, "L\'" => -160, 
+    "av" => -20, "aw" => -20, "ya" => -20, "KO" => -50, "ay" => -30, 
+    "ye" => -20, "s," => -15, "Ju" => -20,   }
+);
diff --git a/doc/metrics/phvro8an.ph b/doc/metrics/phvro8an.ph
new file mode 100644 (file)
index 0000000..ac6bbea
--- /dev/null
@@ -0,0 +1,92 @@
+%PS_Helvetica_Narrow_Oblique = (
+  name => 'Helvetica-Narrow-Oblique',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      228,   228,   291,   456,   456,   729,   547,   182,
+      273,   273,   319,   479,   228,   273,   228,   228,
+      456,   456,   456,   456,   456,   456,   456,   456,
+      456,   456,   228,   228,   479,   479,   479,   456,
+      832,   547,   547,   592,   592,   547,   501,   638,
+      592,   228,   410,   547,   456,   683,   592,   638,
+      547,   638,   592,   547,   501,   592,   547,   774,
+      547,   547,   501,   228,   228,   228,   385,   456,
+      182,   456,   456,   410,   456,   456,   228,   456,
+      456,   182,   182,   410,   182,   683,   456,   456,
+      456,   456,   273,   410,   228,   456,   410,   592,
+      410,   410,   410,   274,   213,   274,   479,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   273,   456,   456,   137,   456,   456,   456,
+      456,   157,   273,   456,   273,   273,   410,   410,
+        0,   456,   456,   456,   228,     0,   440,   287,
+      182,   273,   273,   456,   820,   820,     0,   501,
+        0,   273,   273,   273,   273,   273,   273,   273,
+      273,     0,   273,   273,     0,   273,   273,   273,
+      820,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   820,     0,   303,     0,     0,     0,     0,
+      456,   638,   820,   299,     0,     0,     0,     0,
+        0,   729,     0,     0,     0,   228,     0,     0,
+      182,   501,   774,   501,     0,     0,     0,     0
+  ],
+  kern => {
+    "T," => -120, "s." => -15, "T-" => -140, "T." => -120, "bb" => -10, 
+    "DA" => -40, "yo" => -20, ". " => -60, "bl" => -20, "T:" => -20, 
+    "T;" => -20, "Ke" => -40, "ra" => -10, ".\'" => -100, "TA" => -120, 
+    "bu" => -20, "bv" => -20, "\272 " => -40, "Ko" => -40, "DV" => -70, 
+    "ri" => 15, "f\365" => -28, "by" => -20, "DW" => -40, "rk" => 15, 
+    "DY" => -90, "rl" => 15, "ze" => -15, "rm" => 25, "rn" => 25, 
+    "LT" => -110, "Ku" => -30, "U," => -40, "rp" => 30, "LV" => -110, 
+    "U." => -40, "TO" => -40, "LW" => -70, "Ky" => -50, "LY" => -140, 
+    "rt" => 40, "ru" => 15, "\' " => -70, "rv" => 30, "zo" => -15, 
+    "ry" => 30, "\'\'" => -57, "ck" => -20, "ke" => -20, "e," => -15, 
+    "F," => -150, "e." => -15, "F." => -150, "Ta" => -120, "UA" => -40, 
+    "Te" => -120, "ko" => -20, "V," => -125, "V-" => -80, "To" => -120, 
+    "V." => -125, "\371," => -95, "Ly" => -30, "Tr" => -120, 
+    "\371." => -95, "FA" => -80, "Tu" => -120, "sw" => -30, 
+    "Tw" => -120, "f\'" => 50, "Ty" => -120, "V:" => -40, "V;" => -40, 
+    "f," => -30, "f." => -30, "VA" => -80, "O," => -40, "VG" => -40, 
+    "O." => -40, "v," => -80, "W," => -80, "v." => -80, "W-" => -40, 
+    "W." => -80, "VO" => -40, ",\272" => -100, "Fa" => -50, 
+    "\'d" => -50, "Fe" => -30, "OA" => -20, " T" => -50, "Fo" => -30, 
+    " V" => -50, " W" => -40, "Va" => -70, "WA" => -50, "Fr" => -45, 
+    " Y" => -90, "\'r" => -50, "\'s" => -50, "\371a" => -55, 
+    "\371b" => -55, "o," => -40, "ev" => -30, "Ve" => -80, 
+    "\371c" => -55, "ew" => -20, "P," => -180, "\371d" => -55, 
+    "o." => -40, "ex" => -30, "\371e" => -55, "ey" => -20, 
+    "P." => -180, "\371f" => -55, " `" => -60, "\371g" => -55, 
+    "\371h" => -55, "\371i" => -55, "mu" => -10, "w," => -60, 
+    "\371j" => -55, "OT" => -40, "\371k" => -55, "w." => -60, 
+    "\371l" => -55, "OV" => -50, "Vo" => -80, "\371m" => -55, 
+    "my" => -15, "L\272" => -140, "OW" => -30, "WO" => -20, 
+    "\371n" => -55, "fa" => -30, "OX" => -60, "\371o" => -55, 
+    "OY" => -70, "\371p" => -55, "\371q" => -55, "\371r" => -55, 
+    "fe" => -30, "Vu" => -70, "\371s" => -55, "\371t" => -55, 
+    "\371u" => -55, "\371v" => -70, "\371w" => -70, "\371x" => -85, 
+    "PA" => -120, "\371y" => -70, "\371z" => -55, "fo" => -30, 
+    "va" => -25, "Wa" => -40, ": " => -50, "ve" => -25, "p," => -35, 
+    "We" => -30, "p." => -35, "nu" => -10, "nv" => -20, "AC" => -30, 
+    "vo" => -25, "Y," => -140, "Wo" => -30, "Y-" => -140, "ny" => -15, 
+    "Y." => -140, ".\272" => -100, "AG" => -30, "Wu" => -30, 
+    "B," => -20, "AO" => -30, "B." => -20, "Wy" => -20, "Pa" => -40, 
+    "AQ" => -30, "Y:" => -60, "Y;" => -60, "AT" => -120, "Pe" => -50, 
+    "AU" => -50, "J," => -30, "AV" => -70, "wa" => -15, "AW" => -50, 
+    "J." => -30, "gr" => -10, "AY" => -100, "YA" => -110, "; " => -50, 
+    "we" => -10, "Po" => -50, "``" => -57, "y," => -100, "ov" => -15, 
+    "wo" => -10, "ow" => -15, "QU" => -10, "y." => -100, "ox" => -30, 
+    "oy" => -30, "YO" => -85, " \252" => -30, "JA" => -20, "b," => -40, 
+    "C," => -30, "b." => -40, "C." => -30, ",\'" => -100, "Au" => -30, 
+    "Av" => -40, "BU" => -10, "Aw" => -40, "Ay" => -40, "Ya" => -140, 
+    "xe" => -30, "r," => -50, "Ye" => -140, "S," => -20, "r." => -50, 
+    "f\272" => 60, "hy" => -30, "RO" => -20, "S." => -20, "Yi" => -20, 
+    "RT" => -30, "RU" => -40, "RV" => -50, "Yo" => -140, "py" => -30, 
+    "RW" => -30, "RY" => -50, "Ja" => -20, "r:" => 30, "r;" => 30, 
+    "Yu" => -110, "c," => -15, "D," => -70, "D." => -70, "L\'" => -160, 
+    "av" => -20, "aw" => -20, "ya" => -20, "KO" => -50, "ay" => -30, 
+    "ye" => -20, "s," => -15, "Ju" => -20,   }
+);
diff --git a/doc/metrics/pncb8a.ph b/doc/metrics/pncb8a.ph
new file mode 100644 (file)
index 0000000..43a4350
--- /dev/null
@@ -0,0 +1,66 @@
+%PS_NewCenturySchlbk_Bold = (
+  name => 'NewCenturySchlbk-Bold',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      287,   296,   333,   574,   574,   833,   852,   241,
+      389,   389,   500,   606,   278,   333,   278,   278,
+      574,   574,   574,   574,   574,   574,   574,   574,
+      574,   574,   278,   278,   606,   606,   606,   500,
+      747,   759,   778,   778,   833,   759,   722,   833,
+      870,   444,   648,   815,   722,   981,   833,   833,
+      759,   833,   815,   667,   722,   833,   759,   981,
+      722,   722,   667,   389,   606,   389,   606,   500,
+      241,   611,   648,   556,   667,   574,   389,   611,
+      685,   370,   352,   667,   352,   963,   685,   611,
+      667,   648,   519,   500,   426,   685,   611,   889,
+      611,   611,   537,   389,   606,   389,   606,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   296,   574,   574,   167,   574,   574,   500,
+      574,   241,   481,   500,   333,   333,   685,   685,
+        0,   500,   500,   500,   278,     0,   747,   606,
+      241,   481,   481,   500,  1000,  1000,     0,   500,
+        0,   333,   333,   333,   333,   333,   333,   333,
+      333,     0,   333,   333,     0,   333,   333,   333,
+     1000,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   981,     0,   367,     0,     0,     0,     0,
+      722,   833,  1000,   367,     0,     0,     0,     0,
+        0,   870,     0,     0,     0,   370,     0,     0,
+      352,   611,   907,   611,     0,     0,     0,     0
+  ],
+  kern => {
+    " `" => -18, "T," => -100, "T-" => -125, "T." => -100, 
+    "w," => -100, "OT" => 10, "w." => -100, "Vo" => -74, 
+    "L\272" => -100, "A\'" => -74, "Vu" => -55, ". " => -18, 
+    "PA" => -74, ".\'" => -18, "TA" => -55, "Wa" => -74, 
+    "\272 " => -18, ": " => -18, "A\272" => -74, "We" => -74, 
+    "Wi" => -18, "LT" => -100, "Ku" => -18, "`A" => -74, "U," => -25, 
+    "LV" => -100, "U." => -25, "TO" => 10, "LW" => -74, "Ky" => -25, 
+    "Y," => -100, "LY" => -74, "Y-" => -125, "Wo" => -74, "Y." => -100, 
+    ".\272" => -18, "\252A" => -74, "Wu" => -37, "Wy" => -25, 
+    "Pa" => -55, "F," => -125, "Y:" => -25, "Y;" => -25, "F." => -125, 
+    "Ta" => -74, "Pe" => -55, "AT" => -55, "UA" => -18, "AU" => -18, 
+    "J," => -55, "AV" => -74, "AW" => -74, "J." => -55, "Te" => -74, 
+    "YA" => -91, "N," => -18, "AY" => -91, "; " => -18, "N." => -18, 
+    "Ti" => -18, "Po" => -55, "V," => -125, "V-" => -100, "To" => -74, 
+    "V." => -125, "y," => -100, "Ly" => -25, "Tr" => -18, "y." => -100, 
+    "Tu" => -18, " \252" => -18, "JA" => -18, ", " => -18, "f\'" => 75, 
+    "C," => -18, "V:" => -37, "C." => -18, "V;" => -37, ",\'" => -18, 
+    "VA" => -74, "Av" => -18, "Aw" => -18, "Ya" => -100, "Ay" => -18, 
+    "O," => -25, "O." => -25, "r," => -74, "Ye" => -100, "S," => -18, 
+    "r." => -74, "f\272" => 75, " A" => -18, "S." => -18, "v," => -100, 
+    "Yi" => -18, "W," => -100, "v." => -100, "W-" => -100, 
+    "W." => -100, ",\272" => -18, "Fa" => -74, "Yo" => -100, 
+    "\'d" => -25, "Ja" => -18, "Fe" => -55, "Yu" => -55, "Je" => -18, 
+    "Fi" => -18, "D," => -25, "W:" => -55, "W;" => -55, "D." => -25, 
+    "L\'" => -100, " T" => -18, "Fo" => -55, " V" => -18, " W" => -18, 
+    "Va" => -74, "WA" => -74, "Fr" => -18, " Y" => -18, "Jo" => -18, 
+    "\'s" => -25, "Ve" => -74, "P," => -150, "P." => -150, "Vi" => -18, 
+    "Ju" => -18,   }
+);
diff --git a/doc/metrics/pncbi8a.ph b/doc/metrics/pncbi8a.ph
new file mode 100644 (file)
index 0000000..8af2b14
--- /dev/null
@@ -0,0 +1,86 @@
+%PS_NewCenturySchlbk_BoldItalic = (
+  name => 'NewCenturySchlbk-BoldItalic',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      287,   333,   400,   574,   574,   889,   889,   259,
+      407,   407,   500,   606,   287,   333,   287,   278,
+      574,   574,   574,   574,   574,   574,   574,   574,
+      574,   574,   287,   287,   606,   606,   606,   481,
+      747,   741,   759,   759,   833,   741,   704,   815,
+      870,   444,   667,   778,   704,   944,   852,   833,
+      741,   833,   796,   685,   722,   833,   741,   944,
+      741,   704,   704,   407,   606,   407,   606,   500,
+      259,   667,   611,   537,   667,   519,   389,   611,
+      685,   389,   370,   648,   389,   944,   685,   574,
+      648,   630,   519,   481,   407,   685,   556,   833,
+      574,   519,   519,   407,   606,   407,   606,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   333,   574,   574,   167,   574,   574,   500,
+      574,   287,   481,   481,   278,   278,   685,   685,
+        0,   500,   500,   500,   287,     0,   650,   606,
+      259,   481,   481,   481,  1000,  1167,     0,   481,
+        0,   333,   333,   333,   333,   333,   333,   333,
+      333,     0,   333,   333,     0,   333,   333,   333,
+     1000,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   889,     0,   412,     0,     0,     0,     0,
+      704,   833,   963,   356,     0,     0,     0,     0,
+        0,   815,     0,     0,     0,   389,     0,     0,
+      389,   574,   852,   574,     0,     0,     0,     0
+  ],
+  kern => {
+    "T," => -55, "s." => 11, "T-" => -75, "T." => -55, "yo" => 8, 
+    ". " => -18, "Ke" => 18, "ra" => -11, ".\'" => -18, "TA" => -60, 
+    "rd" => -7, "re" => -7, "bv" => 8, "rg" => -11, "\272 " => -18, 
+    "Ko" => -4, "DV" => -18, "ri" => -14, "f\365" => 7, "by" => -6, 
+    "DW" => -11, "A\272" => -95, "rk" => 9, "DY" => 6, "rl" => -14, 
+    "ze" => 4, "LT" => -75, "Ku" => -4, "ro" => -11, "U," => -25, 
+    "rp" => -17, "LV" => -97, "U." => -25, "TO" => 11, "LW" => -69, 
+    "Ky" => -48, "rs" => -20, "LY" => -55, "rt" => -11, "ru" => -11, 
+    "rv" => -7, "ry" => -20, "\252A" => -60, "ch" => -18, "ck" => -8, 
+    "cl" => -13, "ke" => -16, "F," => -91, "F." => -91, "Ta" => -40, 
+    "UA" => -42, "Te" => -33, "ko" => -22, "N," => -49, "cy" => -20, 
+    "Th" => -9, "N." => -49, "Ti" => -22, "V," => -94, "V-" => -94, 
+    "To" => -40, "ky" => -15, "V." => -94, "Ly" => -30, "Tr" => -9, 
+    "FA" => -79, "Tu" => -22, "\252`" => 20, "Tw" => -30, "f\'" => 105, 
+    "Ty" => -30, "V:" => -49, "V;" => 6, "f," => -28, "f." => -28, 
+    "VA" => -100, "dw" => -15, "O," => -18, "dy" => -15, "VG" => -12, 
+    "O." => -18, " A" => -22, "v," => -11, "lw" => -7, "W," => -86, 
+    "v." => -11, "W-" => -61, "ly" => -7, "W." => -86, "VO" => -19, 
+    ",\272" => -18, "eb" => -8, "Fa" => -47, "\'d" => -41, "Fe" => -41, 
+    "eg" => -4, "Fi" => -41, "OA" => -5, "W:" => -22, "W;" => -22, 
+    "\'l" => -22, "g," => -5, " T" => -18, "g." => -5, "ep" => -11, 
+    "Fo" => -47, " V" => -24, " W" => -33, "Va" => -55, "WA" => -66, 
+    "Fr" => -27, " Y" => -18, "\'r" => -9, "\'s" => -46, "\'t" => -22, 
+    "Ve" => -66, "ew" => -15, "P," => -100, "\'v" => -16, "ex" => -5, 
+    "ey" => -15, "P." => -100, "Vi" => -35, "mu" => -11, "w," => -17, 
+    "w." => -17, "OV" => -24, "Vo" => -71, "my" => -20, 
+    "L\272" => -100, "OW" => -15, "WO" => -11, "fa" => 8, "OX" => -18, 
+    "A\'" => -95, "fe" => 14, "Vu" => -70, "fi" => 7, "PA" => -80, 
+    "fl" => 7, "fo" => 7, "va" => -6, "Wa" => -33, ": " => -18, 
+    "p," => 8, "We" => -39, "p." => 8, "Wh" => 5, "Wi" => -27, 
+    "`A" => -80, "nu" => -11, "nv" => -7, "AC" => 5, "vo" => -6, 
+    "Y," => -91, "Wo" => -33, "Y-" => -91, "ny" => -20, "Y." => -91, 
+    ".\272" => -18, "AG" => 5, "Wu" => -25, "B," => 15, "AO" => 5, 
+    "B." => 15, "Wy" => -41, "Pa" => -40, "AQ" => 5, "Y:" => -55, 
+    "Y;" => -55, "AT" => 5, "Pe" => -33, "AU" => -32, "J," => -74, 
+    "AV" => -100, "wa" => -14, "AW" => -84, "J." => -74, "gr" => 11, 
+    "AY" => -70, "YA" => -79, "; " => -18, "we" => -8, "Po" => -40, 
+    "gy" => -11, "BA" => -11, "y," => -25, "ov" => 6, "wo" => -14, 
+    "ow" => -8, "y." => -25, "oy" => -11, " \252" => -18, "JA" => -30, 
+    ", " => -18, "b," => 6, "b." => 6, ",\'" => -18, "Au" => -15, 
+    "BU" => 15, "Av" => -10, "Aw" => -25, "r\'" => 9, "Ay" => -33, 
+    "Ya" => -77, "xe" => 5, "r," => -90, "Ye" => -71, "r-" => -16, 
+    "S," => -18, "r." => -90, "f\272" => 105, "hy" => -20, "S." => -18, 
+    "Yi" => -22, "CA" => -5, "RV" => -24, "Yo" => -77, "py" => -4, 
+    "RW" => -14, "Ja" => -40, "r:" => 9, "r;" => 9, "Yu" => -58, 
+    "c," => -8, "Je" => -33, "D," => -11, "c." => -8, "D." => -11, 
+    "L\'" => -100, "av" => 6, "aw" => -8, "Jo" => -40, "ya" => 8, 
+    "ay" => -8, "ye" => 15, "s," => 11, "iv" => 7, "Ju" => -39,   }
+);
diff --git a/doc/metrics/pncr8a.ph b/doc/metrics/pncr8a.ph
new file mode 100644 (file)
index 0000000..cfb772d
--- /dev/null
@@ -0,0 +1,74 @@
+%PS_NewCenturySchlbk_Roman = (
+  name => 'NewCenturySchlbk-Roman',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      278,   296,   389,   556,   556,   833,   815,   204,
+      333,   333,   500,   606,   278,   333,   278,   278,
+      556,   556,   556,   556,   556,   556,   556,   556,
+      556,   556,   278,   278,   606,   606,   606,   444,
+      737,   722,   722,   722,   778,   722,   667,   778,
+      833,   407,   556,   778,   667,   944,   815,   778,
+      667,   778,   722,   630,   667,   815,   722,   981,
+      704,   704,   611,   333,   606,   333,   606,   500,
+      204,   556,   556,   444,   574,   500,   333,   537,
+      611,   315,   296,   593,   315,   889,   611,   500,
+      574,   556,   444,   463,   389,   611,   537,   778,
+      537,   537,   481,   333,   606,   333,   606,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   296,   556,   556,   167,   556,   556,   500,
+      556,   204,   389,   426,   259,   259,   611,   611,
+        0,   556,   500,   500,   278,     0,   606,   606,
+      204,   389,   389,   426,  1000,  1000,     0,   444,
+        0,   333,   333,   333,   333,   333,   333,   333,
+      333,     0,   333,   333,     0,   333,   333,   333,
+     1000,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,  1000,     0,   334,     0,     0,     0,     0,
+      667,   778,  1000,   300,     0,     0,     0,     0,
+        0,   796,     0,     0,     0,   315,     0,     0,
+      315,   500,   833,   574,     0,     0,     0,     0
+  ],
+  kern => {
+    "T," => -125, "s." => -25, "T-" => -100, "T." => -125, ". " => -37, 
+    "T:" => -37, "T;" => -37, "Ke" => 10, ".\'" => -37, "TA" => -18, 
+    "\272 " => -37, "Ko" => 10, "DV" => -18, "A\272" => -74, 
+    "DY" => -18, "LT" => -75, "U," => -100, "LV" => -91, "U." => -100, 
+    "TO" => 10, "LW" => -74, "Ky" => -25, "LY" => -74, "\252A" => -74, 
+    "ch" => -7, "\'\'" => -25, "ck" => -7, "cl" => -7, "e," => -18, 
+    "F," => -125, "e." => -18, "F." => -125, "Ta" => -55, "UA" => -30, 
+    "Te" => -55, "N," => -55, "N." => -55, "V," => -125, "V-" => -100, 
+    "To" => -55, "V." => -125, "Ly" => -25, "FA" => -50, "f\'" => 100, 
+    "V:" => -75, "V;" => -75, "f," => -37, "G," => -37, "f." => -37, 
+    "G." => -37, "VA" => -74, "O," => -37, "O." => -37, " A" => -37, 
+    "v," => -125, "W," => -125, "v." => -125, "W-" => -100, 
+    "W." => -125, "VO" => -18, ",\272" => -37, "Fa" => -65, 
+    "\'d" => -37, "Fe" => -55, "Fi" => -10, "W:" => -100, "W;" => -100, 
+    "g," => -25, " T" => -37, "g." => -25, "Fo" => -55, " V" => -37, 
+    " W" => -37, "Va" => -85, "WA" => -50, "Fr" => -10, " Y" => -37, 
+    "\'s" => -25, "o," => -18, "Ve" => -75, "P," => -125, "o." => -18, 
+    "P." => -125, "Vi" => -18, " `" => -37, "w," => -125, "OT" => 10, 
+    "w." => -125, "OV" => -18, "Vo" => -75, "L\272" => -100, 
+    "A\'" => -74, "OY" => -18, "Vu" => -75, "PA" => -55, "Wa" => -75, 
+    ": " => -37, "p," => -18, "We" => -60, "Q," => -25, "p." => -18, 
+    "Q." => -25, "Wi" => -18, "`A" => -74, "Y," => -100, "Wo" => -60, 
+    "Y-" => -125, "Y." => -100, ".\272" => -37, "Wu" => -55, 
+    "B," => -37, "B." => -37, "Wy" => -55, "Pa" => -37, "Y:" => -75, 
+    "Y;" => -75, "AT" => -18, "Pe" => -37, "AU" => -30, "J," => -74, 
+    "AV" => -75, "wa" => -18, "J." => -74, "AW" => -50, "AY" => -75, 
+    "YA" => -75, "; " => -37, "Po" => -37, "``" => -25, "BA" => -18, 
+    "y," => -125, "y." => -125, "YO" => -18, " \252" => -37, 
+    "JA" => -18, ", " => -37, "b," => -18, "C," => -37, "b." => -18, 
+    "C." => -37, ",\'" => -37, "Av" => -37, "Aw" => -25, "Ay" => -37, 
+    "Ya" => -100, "r," => -100, "Ye" => -100, "r-" => -37, "S," => -37, 
+    "r." => -100, "f\272" => 100, "S." => -37, "Yi" => -18, 
+    "CA" => -18, "Yo" => -100, "Ja" => -25, "Yu" => -91, "Je" => -25, 
+    "c," => -18, "D," => -37, "c." => -18, "D." => -37, "L\'" => -100, 
+    "av" => -10, "aw" => -10, "Jo" => -25, "ay" => -10, "s," => -25, 
+    "Ju" => -25,   }
+);
diff --git a/doc/metrics/pncri8a.ph b/doc/metrics/pncri8a.ph
new file mode 100644 (file)
index 0000000..19e60cd
--- /dev/null
@@ -0,0 +1,76 @@
+%PS_NewCenturySchlbk_Italic = (
+  name => 'NewCenturySchlbk-Italic',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      278,   333,   400,   556,   556,   833,   852,   204,
+      333,   333,   500,   606,   278,   333,   278,   606,
+      556,   556,   556,   556,   556,   556,   556,   556,
+      556,   556,   278,   278,   606,   606,   606,   444,
+      747,   704,   722,   722,   778,   722,   667,   778,
+      833,   407,   611,   741,   667,   944,   815,   778,
+      667,   778,   741,   667,   685,   815,   704,   926,
+      704,   685,   667,   333,   606,   333,   606,   500,
+      204,   574,   556,   444,   611,   444,   333,   537,
+      611,   333,   315,   556,   333,   889,   611,   500,
+      574,   556,   444,   444,   352,   611,   519,   778,
+      500,   500,   463,   333,   606,   333,   606,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   333,   556,   556,   167,   556,   556,   500,
+      556,   278,   389,   426,   333,   333,   611,   611,
+        0,   500,   500,   500,   278,     0,   650,   606,
+      204,   389,   389,   426,  1000,  1000,     0,   444,
+        0,   333,   333,   333,   333,   333,   333,   333,
+      333,     0,   333,   333,     0,   333,   333,   333,
+     1000,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   870,     0,   422,     0,     0,     0,     0,
+      667,   778,   981,   372,     0,     0,     0,     0,
+        0,   722,     0,     0,     0,   333,     0,     0,
+      333,   500,   778,   556,     0,     0,     0,     0
+  ],
+  kern => {
+    "T," => -100, "s." => -50, "T-" => -100, "T." => -100, "bb" => -10, 
+    ". " => -37, "T:" => -50, "T;" => -50, ".\'" => -37, 
+    "\272 " => -37, "DV" => -18, "DW" => -18, "A\272" => -125, 
+    "rk" => -18, "DY" => -18, "LT" => -100, "U," => -100, "LV" => -100, 
+    "U." => -100, "TO" => 18, "LW" => -100, "rs" => -10, "LY" => -100, 
+    "\252A" => -75, "ch" => -18, "\'\'" => -37, "ck" => -18, 
+    "e," => -37, "F," => -125, "e." => -37, "F." => -125, "Ta" => -74, 
+    "UA" => -18, "Te" => -74, "N," => -60, "Th" => -25, "N." => -60, 
+    "Ti" => -18, "V," => -100, "V-" => -100, "To" => -74, "V." => -100, 
+    "Ly" => -50, "Tr" => -50, "FA" => -35, "Tu" => -50, "Tw" => -50, 
+    "f\'" => 75, "Ty" => -50, "V:" => -75, "V;" => -75, "f," => -75, 
+    "G," => -50, "f." => -75, "G." => -50, "VA" => -37, "O," => -50, 
+    "O." => -50, " A" => -37, "v," => -75, "W," => -100, "v." => -75, 
+    "W-" => -75, "ly" => -10, "W." => -100, ",\272" => -37, 
+    "Fa" => -55, "\'d" => -37, "Fe" => -55, "Fi" => -10, "W:" => -75, 
+    "W;" => -75, "g," => -50, " T" => -37, "g." => -50, "Fo" => -55, 
+    " V" => -37, " W" => -37, "Va" => -75, "WA" => -55, "Fr" => -55, 
+    " Y" => -37, "\'s" => -25, "o," => -50, "Ve" => -75, "P," => -125, 
+    "o." => -50, "P." => -125, "Vi" => -50, " `" => -37, "w," => -75, 
+    "OT" => 18, "w." => -75, "OV" => -18, "Vo" => -75, "L\272" => -125, 
+    "OX" => -18, "A\'" => -125, "OY" => -18, "Vu" => -75, "PA" => -50, 
+    "fo" => -10, "Wa" => -55, ": " => -37, "p," => -50, "We" => -55, 
+    "Q," => -20, "p." => -50, "Q." => -20, "Wh" => -20, "Wi" => -20, 
+    "`A" => -75, "AC" => -18, "Y," => -100, "Wo" => -55, "Y-" => -100, 
+    "Y." => -100, ".\272" => -37, "AG" => -18, "Wu" => -55, 
+    "B," => -50, "AO" => -18, "B." => -50, "Wy" => -55, "Pa" => -55, 
+    "AQ" => -18, "Y:" => -75, "Y;" => -75, "AT" => -30, "Pe" => -55, 
+    "AU" => -37, "J," => -100, "AV" => -74, "AW" => -74, "J." => -100, 
+    "AY" => -55, "YA" => -55, "; " => -37, "Po" => -55, "``" => -37, 
+    "y," => -75, "y." => -75, " \252" => -37, "JA" => -18, ", " => -37, 
+    "b," => -50, "C," => -50, "b." => -50, "C." => -50, ",\'" => -37, 
+    "Au" => -18, "Av" => -18, "Aw" => -18, "Ay" => -55, "Ya" => -100, 
+    "r," => -125, "Ye" => -100, "r-" => -75, "S," => -50, "r." => -125, 
+    "f\272" => 75, "S." => -50, "Yi" => -25, "RU" => -18, "RV" => -18, 
+    "Yo" => -100, "RW" => -18, "RY" => -18, "Ja" => -37, "r:" => -25, 
+    "r;" => -25, "Yu" => -100, "c," => -50, "Je" => -37, "D," => -50, 
+    "c." => -50, "D." => -50, "L\'" => -125, "Jo" => -37, "s," => -50, 
+    "Ju" => -18,   }
+);
diff --git a/doc/metrics/pplb8a.ph b/doc/metrics/pplb8a.ph
new file mode 100644 (file)
index 0000000..c99b0ab
--- /dev/null
@@ -0,0 +1,59 @@
+%PS_Palatino_Bold = (
+  name => 'Palatino-Bold',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      250,   278,   402,   500,   500,   889,   833,   278,
+      333,   333,   444,   606,   250,   333,   250,   296,
+      500,   500,   500,   500,   500,   500,   500,   500,
+      500,   500,   250,   250,   606,   606,   606,   444,
+      747,   778,   667,   722,   833,   611,   556,   833,
+      833,   389,   389,   778,   611,  1000,   833,   833,
+      611,   833,   722,   611,   667,   778,   778,  1000,
+      667,   667,   667,   333,   606,   333,   606,   500,
+      278,   500,   611,   444,   611,   500,   389,   556,
+      611,   333,   333,   611,   333,   889,   611,   556,
+      611,   611,   389,   444,   333,   611,   556,   833,
+      500,   556,   500,   310,   606,   310,   606,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   278,   500,   500,   167,   500,   500,   500,
+      500,   227,   500,   500,   389,   389,   611,   611,
+        0,   500,   500,   500,   250,     0,   641,   606,
+      333,   500,   500,   500,  1000,  1000,     0,   444,
+        0,   333,   333,   333,   333,   333,   333,   333,
+      333,     0,   333,   333,     0,   333,   333,   333,
+     1000,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,  1000,     0,   438,     0,     0,     0,     0,
+      611,   833,  1000,   488,     0,     0,     0,     0,
+        0,   778,     0,     0,     0,   333,     0,     0,
+      333,   556,   833,   611,     0,     0,     0,     0
+  ],
+  kern => {
+    "T," => -92, "T-" => -92, "A " => -18, "11" => -37, "T." => -92, 
+    "w," => -92, "w." => -92, "Vo" => -111, "Vr" => -111, "A\'" => -92, 
+    "Vu" => -92, "Ry" => -30, "ff" => -18, "T:" => -74, "Vy" => -90, 
+    "T;" => -74, "PA" => -74, "TA" => -92, "Wa" => -74, "We" => -74, 
+    "Wi" => -37, "LT" => -74, "LV" => -92, "LW" => -92, "Y," => -74, 
+    "LY" => -92, "Y-" => -74, "Wo" => -74, "\' " => -55, "Y." => -74, 
+    "Wr" => -74, "Wu" => -74, "\'\'" => -55, "Wy" => -74, "F," => -111, 
+    "Y:" => -55, "Y;" => -55, "F." => -111, "Ta" => -111, "AT" => -92, 
+    "Tc" => -129, "AV" => -129, "AW" => -90, "Te" => -111, "YA" => -55, 
+    "AY" => -111, "Ti" => -55, "``" => -55, "V," => -129, "To" => -111, 
+    "V-" => -92, "V." => -129, "y," => -92, "Ly" => -74, "Tr" => -111, 
+    "y." => -92, "FA" => -55, "Ts" => -111, "Tu" => -129, "Tw" => -90, 
+    "f\'" => 37, "Ty" => -90, "V:" => -74, "V;" => -74, "Av" => -70, 
+    "VA" => -129, "Aw" => -70, "r\'" => 55, "Ya" => -74, "Ay" => -70, 
+    "r," => -55, "Ye" => -74, "r-" => -18, "r." => -55, "v," => -111, 
+    "Yi" => -55, "W," => -92, "v." => -111, "W-" => -37, "W." => -37, 
+    "RT" => -55, "Yo" => -74, "RV" => -74, "Yp" => -74, "RW" => -37, 
+    "Yq" => -92, "RY" => -55, "L " => -18, "Yu" => -74, "Yv" => -74, 
+    "W:" => -37, "W;" => -37, "L\'" => -74, "Va" => -111, "WA" => -90, 
+    "\'s" => -55, "\'t" => -18, "Ve" => -111, "P," => -129, 
+    "P." => -129, "Vi" => -55,   }
+);
diff --git a/doc/metrics/pplbi8a.ph b/doc/metrics/pplbi8a.ph
new file mode 100644 (file)
index 0000000..a3ba0a6
--- /dev/null
@@ -0,0 +1,60 @@
+%PS_Palatino_BoldItalic = (
+  name => 'Palatino-BoldItalic',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      250,   333,   500,   500,   500,   889,   833,   278,
+      333,   333,   444,   606,   250,   389,   250,   315,
+      500,   500,   500,   500,   500,   500,   500,   500,
+      500,   500,   250,   250,   606,   606,   606,   444,
+      833,   722,   667,   685,   778,   611,   556,   778,
+      778,   389,   389,   722,   611,   944,   778,   833,
+      667,   833,   722,   556,   611,   778,   667,  1000,
+      722,   611,   667,   333,   606,   333,   606,   500,
+      278,   556,   537,   444,   556,   444,   333,   500,
+      556,   333,   333,   556,   333,   833,   556,   556,
+      556,   537,   389,   444,   389,   556,   556,   833,
+      500,   556,   500,   333,   606,   333,   606,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   333,   500,   500,   167,   500,   500,   556,
+      500,   250,   500,   500,   333,   333,   611,   611,
+        0,   500,   556,   556,   250,     0,   556,   606,
+      250,   500,   500,   500,  1000,  1000,     0,   444,
+        0,   333,   333,   333,   333,   333,   333,   333,
+      333,     0,   556,   333,     0,   333,   333,   333,
+     1000,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   944,     0,   333,     0,     0,     0,     0,
+      611,   833,   944,   333,     0,     0,     0,     0,
+        0,   738,     0,     0,     0,   333,     0,     0,
+      333,   556,   778,   556,     0,     0,     0,     0
+  ],
+  kern => {
+    "T," => -55, "T-" => -92, "A " => -55, "11" => -55, "T." => -55, 
+    "w," => -55, "w." => -55, "Vo" => -74, "Vr" => -74, "A\'" => -55, 
+    "Vu" => -50, "Ry" => -20, "ff" => -37, "T:" => -55, "Vy" => -50, 
+    "T;" => -55, "PA" => -92, "rc" => -18, "TA" => -55, "re" => -18, 
+    "Wa" => -74, "rg" => -18, "rh" => -18, "We" => -55, "Wi" => -30, 
+    "LT" => -74, "ro" => -18, "LV" => -74, "rq" => -18, "TO" => -18, 
+    "LW" => -74, "Y," => -55, "LY" => -74, "Y-" => -55, "Wo" => -55, 
+    "F " => -18, "\' " => -37, "Y." => -55, "Wr" => -30, "Wu" => -30, 
+    "\'\'" => -55, "Wy" => -30, "F," => -111, "Y:" => -55, "Y;" => -55, 
+    "F." => -111, "Ta" => -111, "AT" => -55, "Tc" => -92, "AV" => -74, 
+    "AW" => -74, "Te" => -111, "YA" => -55, "AY" => -74, "Ti" => -74, 
+    "``" => -55, "V," => -111, "To" => -111, "V-" => -37, "V." => -111, 
+    "y," => -37, "Ly" => -37, "Tr" => -92, "y." => -37, "FA" => -74, 
+    "Ts" => -92, "Tu" => -92, "Tw" => -50, "f\'" => 37, "Ty" => -80, 
+    "V:" => -37, "V;" => -37, "Av" => -55, "VA" => -74, "Aw" => -37, 
+    "r\'" => 55, "Ya" => -111, "Ay" => -55, "r," => -55, "Ye" => -92, 
+    "r." => -55, "v," => -55, "Yi" => -54, "W," => -55, "v." => -55, 
+    "W." => -55, "RT" => -37, "Yo" => -111, "RV" => -55, "Yp" => -74, 
+    "RW" => -55, "Yq" => -92, "RY" => -37, "L " => -18, "Yu" => -50, 
+    "Yv" => -30, "P " => -55, "W:" => -28, "W;" => -18, "L\'" => -55, 
+    "Va" => -92, "WA" => -74, "\'s" => -37, "\'t" => -18, "Ve" => -74, 
+    "P," => -129, "P." => -129, "Vi" => -50,   }
+);
diff --git a/doc/metrics/pplr8a.ph b/doc/metrics/pplr8a.ph
new file mode 100644 (file)
index 0000000..930cfd9
--- /dev/null
@@ -0,0 +1,61 @@
+%PS_Palatino_Roman = (
+  name => 'Palatino-Roman',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      250,   278,   371,   500,   500,   840,   778,   278,
+      333,   333,   389,   606,   250,   333,   250,   606,
+      500,   500,   500,   500,   500,   500,   500,   500,
+      500,   500,   250,   250,   606,   606,   606,   444,
+      747,   778,   611,   709,   774,   611,   556,   763,
+      832,   337,   333,   726,   611,   946,   831,   786,
+      604,   786,   668,   525,   613,   778,   722,  1000,
+      667,   667,   667,   333,   606,   333,   606,   500,
+      278,   500,   553,   444,   611,   479,   333,   556,
+      582,   291,   234,   556,   291,   883,   582,   546,
+      601,   560,   395,   424,   326,   603,   565,   834,
+      516,   556,   500,   333,   606,   333,   606,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   278,   500,   500,   167,   500,   500,   500,
+      500,   208,   500,   500,   331,   331,   605,   608,
+        0,   500,   500,   500,   250,     0,   628,   606,
+      278,   500,   500,   500,  1000,  1144,     0,   444,
+        0,   333,   333,   333,   333,   333,   333,   250,
+      333,     0,   333,   333,     0,   380,   313,   333,
+     1000,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   944,     0,   333,     0,     0,     0,     0,
+      611,   833,   998,   333,     0,     0,     0,     0,
+        0,   758,     0,     0,     0,   287,     0,     0,
+      291,   556,   827,   556,     0,     0,     0,     0
+  ],
+  kern => {
+    "T," => -74, "T-" => -55, "A " => -55, "11" => -55, "T." => -74, 
+    "w," => -92, "w." => -92, "Vo" => -111, "Vr" => -92, "A\'" => -74, 
+    "Vu" => -92, "Ry" => -37, "ff" => -18, "T:" => -55, "Vy" => -92, 
+    "T;" => -55, "PA" => -92, "rc" => -18, "TA" => -74, "rd" => -18, 
+    "re" => -18, "Wa" => -92, "rg" => -18, "Y " => -18, "rh" => -18, 
+    "We" => -92, "Wi" => -55, "LT" => -74, "ro" => -18, "LV" => -92, 
+    "rq" => -18, "TO" => -18, "LW" => -74, "Y," => -111, "LY" => -92, 
+    "Y-" => -92, "Wo" => -92, "ru" => -8, "Y." => -111, "Wr" => -74, 
+    "Wu" => -50, "\'\'" => -37, "Wy" => -50, "F," => -92, "Y:" => -74, 
+    "Y;" => -74, "F." => -92, "Ta" => -92, "AT" => -74, "Tc" => -111, 
+    "AV" => -111, "AW" => -74, "Te" => -92, "YA" => -92, "AY" => -111, 
+    "Ti" => -55, "``" => -37, "V," => -129, "To" => -92, "V-" => -74, 
+    "V." => -129, "y," => -111, "Ly" => -55, "Tr" => -90, "y." => -111, 
+    "FA" => -74, "Ts" => -90, "Tu" => -90, "Tw" => -90, "f\'" => 55, 
+    "Ty" => -90, "V:" => -55, "V;" => -55, "Av" => -92, "VA" => -111, 
+    "Aw" => -74, "r\'" => 74, "Ya" => -92, "Ay" => -74, "r," => -74, 
+    "Ye" => -92, "r-" => -18, "r." => -74, " A" => -37, "v," => -111, 
+    "Yi" => -55, "W," => -92, "v." => -111, "W-" => -55, "W." => -92, 
+    "RT" => -37, "Yo" => -92, "RV" => -55, "Yp" => -111, "RW" => -37, 
+    "Yq" => -90, "RY" => -37, "L " => -37, "Yu" => -90, "Yv" => -90, 
+    "P " => -18, "W:" => -18, "W;" => -18, "L\'" => -74, "Va" => -92, 
+    "WA" => -92, " Y" => -18, "Ve" => -111, "P," => -129, "P." => -129, 
+    "Vi" => -55,   }
+);
diff --git a/doc/metrics/pplri8a.ph b/doc/metrics/pplri8a.ph
new file mode 100644 (file)
index 0000000..d7376a6
--- /dev/null
@@ -0,0 +1,60 @@
+%PS_Palatino_Italic = (
+  name => 'Palatino-Italic',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      250,   333,   500,   500,   500,   889,   778,   278,
+      333,   333,   389,   606,   250,   333,   250,   296,
+      500,   500,   500,   500,   500,   500,   500,   500,
+      500,   500,   250,   250,   606,   606,   606,   500,
+      747,   722,   611,   667,   778,   611,   556,   722,
+      778,   333,   333,   667,   556,   944,   778,   778,
+      611,   778,   667,   556,   611,   778,   722,   944,
+      722,   667,   667,   333,   606,   333,   606,   500,
+      278,   444,   463,   407,   500,   389,   278,   500,
+      500,   278,   278,   444,   278,   778,   556,   444,
+      500,   463,   389,   389,   333,   556,   500,   722,
+      500,   500,   444,   333,   606,   333,   606,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   333,   500,   500,   167,   500,   500,   500,
+      500,   333,   500,   500,   333,   333,   528,   545,
+        0,   500,   500,   500,   250,     0,   500,   500,
+      278,   500,   500,   500,  1000,  1000,     0,   500,
+        0,   333,   333,   333,   333,   333,   333,   333,
+      333,     0,   333,   333,     0,   333,   333,   333,
+     1000,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   941,     0,   333,     0,     0,     0,     0,
+      556,   778,  1028,   333,     0,     0,     0,     0,
+        0,   638,     0,     0,     0,   278,     0,     0,
+      278,   444,   669,   500,     0,     0,     0,     0
+  ],
+  kern => {
+    "T," => -74, "T-" => -55, "A " => -37, "11" => -55, "T." => -74, 
+    "w," => -55, "w." => -55, "Vo" => -74, "Vr" => -92, "A\'" => -55, 
+    "Vu" => -74, "Ry" => -37, "T:" => -74, "Vy" => -74, "T;" => -74, 
+    "PA" => -129, "rc" => -18, "TA" => -92, "re" => -18, "Wa" => -20, 
+    "rg" => -18, "rh" => -18, "We" => -20, "Wi" => -20, "LT" => -74, 
+    "ro" => -18, "LV" => -74, "rq" => -18, "TO" => -18, "LW" => -74, 
+    "Y," => -92, "LY" => -74, "Y-" => -74, "Wo" => -20, "\' " => -55, 
+    "Y." => -92, "Wr" => -20, "Wu" => -20, "\'\'" => -74, "Wy" => -20, 
+    "F," => -111, "Y:" => -74, "Y;" => -74, "F." => -111, "Ta" => -111, 
+    "AT" => -55, "Tc" => -111, "AV" => -74, "AW" => -55, "Te" => -111, 
+    "YA" => -92, "AY" => -55, "Ti" => -55, "``" => -74, "V," => -129, 
+    "To" => -111, "V-" => -55, "V." => -129, "y," => -37, "Ly" => -37, 
+    "Tr" => -111, "y." => -37, "FA" => -111, "Ts" => -111, 
+    "Tu" => -111, "Tw" => -92, "f\'" => 55, "Ty" => -92, "V:" => -37, 
+    "V;" => -37, "Av" => -37, "VA" => -210, "Aw" => -37, "r\'" => 37, 
+    "Ya" => -92, "Ay" => -55, "r," => -74, "Ye" => -111, "r." => -74, 
+    "v," => -55, "Yi" => -55, "W," => -55, "v." => -55, "W-" => -18, 
+    "W." => -55, "RT" => -55, "Yo" => -111, "RV" => -74, "Yp" => -74, 
+    "RW" => -55, "Yq" => -92, "RY" => -55, "L " => -18, "Yu" => -92, 
+    "Yv" => -74, "W:" => -18, "W;" => -18, "L\'" => -37, "Va" => -74, 
+    "WA" => -92, "\'s" => -55, "\'t" => -37, "Ve" => -92, "P," => -129, 
+    "P." => -129, "Vi" => -74,   }
+);
diff --git a/doc/metrics/psyr.ph b/doc/metrics/psyr.ph
new file mode 100644 (file)
index 0000000..e69f01b
--- /dev/null
@@ -0,0 +1,38 @@
+%PS_Symbol = (
+  name => 'Symbol',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      250,   333,   713,   500,   549,   833,   778,   439,
+      333,   333,   500,   549,   250,   549,   250,   278,
+      500,   500,   500,   500,   500,   500,   500,   500,
+      500,   500,   278,   278,   549,   549,   549,   444,
+      549,   722,   667,   722,   612,   611,   763,   603,
+      722,   333,   631,   722,   686,   889,   722,   722,
+      768,   741,   556,   592,   611,   690,   439,   768,
+      645,   795,   611,   333,   863,   333,   658,   500,
+      500,   631,   549,   549,   494,   439,   521,   411,
+      603,   329,   603,   549,   549,   576,   521,   549,
+      549,   521,   549,   603,   439,   576,   713,   686,
+      493,   686,   494,   480,   200,   480,   549,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   620,   247,   549,   167,   713,   500,   753,
+      753,   753,   753,  1042,   987,   603,   987,   603,
+      400,   549,   411,   549,   549,   713,   494,   460,
+      549,   549,   549,   549,  1000,   603,  1000,   658,
+      823,   686,   795,   987,   768,   768,   823,   768,
+      768,   713,   713,   713,   713,   713,   713,   713,
+      768,   713,   790,   790,   890,   823,   549,   250,
+      713,   603,   603,  1042,   987,   603,   987,   603,
+      494,   329,   790,   790,   786,   713,   384,   384,
+      384,   384,   384,   384,   494,   494,   494,   494,
+        0,   329,   274,   686,   686,   686,   384,   384,
+      384,   384,   384,   384,   494,   494,   494,     0
+  ],
+  kern => {  }
+);
diff --git a/doc/metrics/ptmb8a.ph b/doc/metrics/ptmb8a.ph
new file mode 100644 (file)
index 0000000..f42555b
--- /dev/null
@@ -0,0 +1,76 @@
+%PS_Times_Bold = (
+  name => 'Times-Bold',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      250,   333,   555,   500,   500,  1000,   833,   333,
+      333,   333,   500,   570,   250,   333,   250,   278,
+      500,   500,   500,   500,   500,   500,   500,   500,
+      500,   500,   333,   333,   570,   570,   570,   500,
+      930,   722,   667,   722,   722,   667,   611,   778,
+      778,   389,   500,   778,   667,   944,   722,   778,
+      611,   778,   722,   556,   667,   722,   722,  1000,
+      722,   722,   667,   333,   278,   333,   581,   500,
+      333,   500,   556,   444,   556,   444,   333,   500,
+      556,   278,   333,   556,   278,   833,   556,   500,
+      556,   556,   444,   389,   333,   556,   500,   722,
+      500,   500,   444,   394,   220,   394,   520,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   333,   500,   500,   167,   500,   500,   500,
+      500,   278,   500,   500,   333,   333,   556,   556,
+        0,   500,   500,   500,   250,     0,   540,   350,
+      333,   500,   500,   500,  1000,  1000,     0,   500,
+        0,   333,   333,   333,   333,   333,   333,   333,
+      333,     0,   333,   333,     0,   333,   333,   333,
+     1000,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,  1000,     0,   300,     0,     0,     0,     0,
+      667,   778,  1000,   330,     0,     0,     0,     0,
+        0,   722,     0,     0,     0,   278,     0,     0,
+      278,   500,   722,   556,     0,     0,     0,     0
+  ],
+  kern => {
+    "T," => -74, "T-" => -92, "T." => -90, "bb" => -10, "DA" => -35, 
+    "yo" => -25, "T:" => -74, "T;" => -74, "Ke" => -25, "rc" => -18, 
+    ".\'" => -55, "TA" => -90, "re" => -18, "bu" => -20, "bv" => -15, 
+    "rg" => -10, "Ko" => -25, "DV" => -40, "f\365" => -35, "DW" => -40, 
+    "DY" => -40, "rn" => -15, "LT" => -92, "Ku" => -15, "ro" => -18, 
+    "U," => -50, "rp" => -10, "LV" => -92, "rq" => -18, "U." => -50, 
+    "TO" => -18, "LW" => -92, "Ky" => -45, "LY" => -92, "\' " => -74, 
+    "rv" => -10, "\252A" => -10, "\'\'" => -63, "ke" => -10, 
+    "F," => -92, "F." => -110, "Ta" => -92, "UA" => -60, "Te" => -92, 
+    "ko" => -15, "Ti" => -18, "V," => -129, "V-" => -74, "To" => -92, 
+    "ky" => -15, "V." => -145, "Ly" => -55, "Tr" => -74, "FA" => -90, 
+    "Tu" => -92, "Tw" => -74, "f\'" => 55, "Ty" => -74, "NA" => -20, 
+    "V:" => -92, "V;" => -92, "f," => -15, "f." => -15, "VA" => -135, 
+    "dw" => -15, "VG" => -30, " A" => -55, "v," => -55, "W," => -92, 
+    "v." => -70, "W-" => -37, "W." => -92, "VO" => -45, ",\272" => -45, 
+    "Fa" => -25, "\'d" => -20, "Fe" => -25, "OA" => -40, "W:" => -55, 
+    "W;" => -55, " T" => -30, "g." => -15, "Fo" => -25, " V" => -45, 
+    " W" => -30, "Va" => -92, "WA" => -120, " Y" => -55, "\'r" => -20, 
+    "\'s" => -37, "ev" => -15, "Ve" => -100, "P," => -92, "\'v" => -20, 
+    "P." => -110, "Vi" => -37, "w," => -55, "OT" => -40, "w." => -70, 
+    "OV" => -50, "Vo" => -100, "L\272" => -20, "OW" => -50, 
+    "WO" => -10, "OX" => -40, "A\'" => -74, "OY" => -50, "Vu" => -92, 
+    "fi" => -25, "PA" => -74, "fo" => -25, "va" => -10, "Wa" => -65, 
+    "ve" => -10, "We" => -65, "Q." => -20, "Wi" => -18, "`A" => -10, 
+    "nv" => -40, "AC" => -55, "vo" => -10, "Y," => -92, "Wo" => -75, 
+    "Y-" => -92, "Y." => -92, ".\272" => -55, "AG" => -55, "Wu" => -50, 
+    "AO" => -45, "Wy" => -60, "Pa" => -10, "AQ" => -45, "Y:" => -92, 
+    "Y;" => -92, "AT" => -95, "Pe" => -20, "AU" => -50, "AV" => -145, 
+    "J." => -20, "AW" => -130, "AY" => -100, "YA" => -110, "Po" => -20, 
+    "``" => -63, "BA" => -30, "y," => -55, "ov" => -10, "wo" => -10, 
+    "ow" => -10, "QU" => -10, "y." => -70, "YO" => -35, "JA" => -30, 
+    "b." => -40, "Ap" => -25, ",\'" => -55, "Au" => -50, "Av" => -100, 
+    "BU" => -10, "Aw" => -90, "Ay" => -74, "Ya" => -85, "r," => -92, 
+    "Ye" => -111, "r-" => -37, "r." => -100, "f\272" => 50, 
+    "hy" => -15, "RO" => -30, "Yi" => -37, "RT" => -40, "RU" => -30, 
+    "RV" => -55, "Yo" => -111, "RW" => -35, "RY" => -35, "Ja" => -15, 
+    "Yu" => -92, "Je" => -15, "D." => -20, "L\'" => -110, "av" => -25, 
+    "Jo" => -15, "KO" => -30, "ye" => -10, "iv" => -10, "Ju" => -15,   }
+);
diff --git a/doc/metrics/ptmbi8a.ph b/doc/metrics/ptmbi8a.ph
new file mode 100644 (file)
index 0000000..598d57c
--- /dev/null
@@ -0,0 +1,73 @@
+%PS_Times_BoldItalic = (
+  name => 'Times-BoldItalic',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      250,   389,   555,   500,   500,   833,   778,   333,
+      333,   333,   500,   570,   250,   333,   250,   278,
+      500,   500,   500,   500,   500,   500,   500,   500,
+      500,   500,   333,   333,   570,   570,   570,   500,
+      832,   667,   667,   667,   722,   667,   667,   722,
+      778,   389,   500,   667,   611,   889,   722,   722,
+      611,   722,   667,   556,   611,   722,   667,   889,
+      667,   611,   611,   333,   278,   333,   570,   500,
+      333,   500,   500,   444,   500,   444,   333,   500,
+      556,   278,   278,   500,   278,   778,   556,   500,
+      500,   500,   389,   389,   278,   556,   444,   667,
+      500,   444,   389,   348,   220,   348,   570,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   389,   500,   500,   167,   500,   500,   500,
+      500,   278,   500,   500,   333,   333,   556,   556,
+        0,   500,   500,   500,   250,     0,   500,   350,
+      333,   500,   500,   500,  1000,  1000,     0,   500,
+        0,   333,   333,   333,   333,   333,   333,   333,
+      333,     0,   333,   333,     0,   333,   333,   333,
+     1000,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   944,     0,   266,     0,     0,     0,     0,
+      611,   722,   944,   300,     0,     0,     0,     0,
+        0,   722,     0,     0,     0,   278,     0,     0,
+      278,   500,   722,   500,     0,     0,     0,     0
+  ],
+  kern => {
+    "T," => -92, "T-" => -92, "T." => -92, "bb" => -10, "DA" => -25, 
+    "T:" => -74, "T;" => -74, "Ke" => -25, ".\'" => -95, "TA" => -55, 
+    "bu" => -20, "Ko" => -25, "DV" => -50, "f\365" => -30, "DW" => -40, 
+    "DY" => -50, "LT" => -18, "Ku" => -20, "LV" => -37, "TO" => -18, 
+    "LW" => -37, "Ky" => -20, "LY" => -37, "\' " => -74, "ch" => -10, 
+    "\'\'" => -74, "ck" => -10, "ke" => -30, "F," => -129, 
+    "F." => -129, "Ta" => -92, "UA" => -45, "Te" => -92, "ko" => -10, 
+    "Ti" => -37, "V," => -129, "V-" => -70, "To" => -95, "V." => -129, 
+    "Ly" => -37, "Tr" => -37, "FA" => -100, "Tu" => -37, "Tw" => -37, 
+    "f\'" => 55, "Ty" => -37, "NA" => -30, "V:" => -74, "V;" => -74, 
+    "f," => -10, "f." => -10, "VA" => -85, "VG" => -10, " A" => -37, 
+    "v," => -37, "W," => -74, "v." => -37, "W-" => -50, "W." => -74, 
+    "VO" => -30, ",\272" => -95, "eb" => -10, "Fa" => -95, 
+    "\'d" => -15, "Fe" => -100, "Fi" => -40, "OA" => -40, "W:" => -55, 
+    "W;" => -55, "Fo" => -70, " V" => -70, " W" => -70, "Va" => -111, 
+    "WA" => -74, "Fr" => -50, " Y" => -70, "\'r" => -15, "\'s" => -74, 
+    "\'t" => -37, "Ve" => -111, "P," => -129, "\'v" => -15, 
+    "P." => -129, "Vi" => -55, "w," => -37, "OT" => -40, "w." => -37, 
+    "OV" => -50, "Vo" => -111, "OW" => -50, "WO" => -15, "OX" => -40, 
+    "A\'" => -74, "OY" => -50, "fe" => -10, "Vu" => -55, "ff" => -18, 
+    "PA" => -85, "fo" => -10, "Wa" => -85, "ve" => -15, "We" => -90, 
+    "Wi" => -37, "nv" => -40, "AC" => -65, "vo" => -15, "Y," => -92, 
+    "Wo" => -80, "Y-" => -92, "Y." => -74, ".\272" => -95, "AG" => -60, 
+    "Wu" => -55, "AO" => -50, "Wy" => -55, "Pa" => -40, "AQ" => -55, 
+    "Y:" => -92, "Y;" => -92, "AT" => -55, "Pe" => -50, "J," => -10, 
+    "AU" => -50, "AV" => -95, "wa" => -10, "J." => -10, "AW" => -100, 
+    "AY" => -70, "YA" => -74, "we" => -10, "Po" => -55, "``" => -74, 
+    "BA" => -25, "y," => -37, "ov" => -15, "wo" => -15, "ow" => -25, 
+    "QU" => -10, "y." => -37, "ox" => -10, "oy" => -10, "YO" => -25, 
+    "JA" => -25, "b." => -40, ",\'" => -95, "Au" => -30, "Av" => -74, 
+    "BU" => -10, "Aw" => -74, "Ay" => -74, "Ya" => -92, "xe" => -10, 
+    "r," => -65, "Ye" => -111, "r." => -65, "RO" => -40, "Yi" => -55, 
+    "RT" => -30, "RU" => -40, "RV" => -18, "Yo" => -111, "RW" => -18, 
+    "RY" => -18, "Ja" => -40, "Yu" => -92, "Je" => -40, "L\'" => -55, 
+    "Jo" => -40, "KO" => -30, "Ju" => -40,   }
+);
diff --git a/doc/metrics/ptmr8a.ph b/doc/metrics/ptmr8a.ph
new file mode 100644 (file)
index 0000000..16c7e00
--- /dev/null
@@ -0,0 +1,74 @@
+%PS_Times_Roman = (
+  name => 'Times-Roman',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      250,   333,   408,   500,   500,   833,   778,   333,
+      333,   333,   500,   564,   250,   333,   250,   278,
+      500,   500,   500,   500,   500,   500,   500,   500,
+      500,   500,   278,   278,   564,   564,   564,   444,
+      921,   722,   667,   667,   722,   611,   556,   722,
+      722,   333,   389,   722,   611,   889,   722,   722,
+      556,   722,   667,   556,   611,   722,   722,   944,
+      722,   722,   611,   333,   278,   333,   469,   500,
+      333,   444,   500,   444,   500,   444,   333,   500,
+      500,   278,   278,   500,   278,   778,   500,   500,
+      500,   500,   333,   389,   278,   500,   500,   722,
+      500,   500,   444,   480,   200,   480,   541,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   333,   500,   500,   167,   500,   500,   500,
+      500,   180,   444,   500,   333,   333,   556,   556,
+        0,   500,   500,   500,   250,     0,   453,   350,
+      333,   444,   444,   500,  1000,  1000,     0,   444,
+        0,   333,   333,   333,   333,   333,   333,   333,
+      333,     0,   333,   333,     0,   333,   333,   333,
+     1000,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   889,     0,   276,     0,     0,     0,     0,
+      611,   722,   889,   310,     0,     0,     0,     0,
+        0,   667,     0,     0,     0,   278,     0,     0,
+      278,   500,   722,   500,     0,     0,     0,     0
+  ],
+  kern => {
+    "T," => -74, "T-" => -92, "T." => -74, "DA" => -40, "T:" => -50, 
+    "T;" => -55, "Ke" => -25, ".\'" => -70, "TA" => -93, "bu" => -20, 
+    "bv" => -15, "rg" => -18, "Ko" => -35, "DV" => -40, "f\365" => -50, 
+    "DW" => -30, "DY" => -55, "LT" => -92, "Ku" => -15, "LV" => -100, 
+    "TO" => -18, "LW" => -74, "Ky" => -25, "LY" => -100, "\' " => -74, 
+    "\252A" => -80, "\'\'" => -74, "ke" => -10, "F," => -80, 
+    "F." => -80, "Ta" => -80, "UA" => -40, "Te" => -70, "ko" => -10, 
+    "cy" => -15, "Ti" => -35, "V," => -129, "V-" => -100, "To" => -80, 
+    "ky" => -15, "V." => -129, "Ly" => -55, "Tr" => -35, "FA" => -74, 
+    "Tu" => -45, "Tw" => -80, "f\'" => 55, "Ty" => -80, "NA" => -35, 
+    "V:" => -74, "V;" => -74, "VA" => -135, "VG" => -15, " A" => -55, 
+    "v," => -65, "lw" => -10, "W," => -92, "v." => -65, "W-" => -65, 
+    "W." => -92, "VO" => -40, ",\272" => -70, "Fa" => -15, 
+    "\'d" => -50, "eg" => -15, "OA" => -35, "W:" => -37, "W;" => -37, 
+    "\'l" => -10, " T" => -18, "Fo" => -15, " V" => -50, " W" => -30, 
+    "Va" => -111, "WA" => -120, " Y" => -90, "\'r" => -50, 
+    "\'s" => -55, "\'t" => -18, "ev" => -25, "Ve" => -111, "ew" => -25, 
+    "P," => -111, "\'v" => -50, "ex" => -15, "ey" => -15, "P." => -111, 
+    "Vi" => -60, "w," => -65, "OT" => -40, "w." => -65, "OV" => -50, 
+    "Vo" => -129, "OW" => -35, "WO" => -10, "OX" => -40, "fa" => -10, 
+    "A\'" => -111, "OY" => -50, "Vu" => -75, "ff" => -25, "fi" => -20, 
+    "PA" => -92, "va" => -25, "Wa" => -80, "ve" => -15, "We" => -80, 
+    "Wi" => -40, "`A" => -80, "AC" => -40, "nv" => -40, "vo" => -20, 
+    "Y," => -129, "Wo" => -80, "Y-" => -111, "Y." => -129, "ny" => -15, 
+    "AG" => -40, "ga" => -5, ".\272" => -70, "Wu" => -50, "AO" => -55, 
+    "Wy" => -73, "Pa" => -15, "AQ" => -55, "Y:" => -92, "Y;" => -92, 
+    "AT" => -111, "AU" => -55, "AV" => -135, "wa" => -10, "AW" => -90, 
+    "AY" => -105, "YA" => -120, "``" => -74, "BA" => -35, "y," => -65, 
+    "ov" => -15, "wo" => -10, "QU" => -10, "ow" => -25, "y." => -65, 
+    "YO" => -30, "oy" => -10, "JA" => -60, "b." => -40, ",\'" => -70, 
+    "Av" => -74, "BU" => -10, "Aw" => -92, "Ay" => -92, "Ya" => -100, 
+    "xe" => -15, "r," => -40, "Ye" => -100, "r-" => -20, "r." => -55, 
+    "RO" => -40, "hy" => -5, "Yi" => -55, "RT" => -60, "RU" => -40, 
+    "RV" => -80, "Yo" => -110, "RW" => -55, "py" => -10, "RY" => -65, 
+    "Yu" => -111, "L\'" => -92, "av" => -20, "aw" => -15, "KO" => -30, 
+    "iv" => -25,   }
+);
diff --git a/doc/metrics/ptmri8a.ph b/doc/metrics/ptmri8a.ph
new file mode 100644 (file)
index 0000000..6e10ef6
--- /dev/null
@@ -0,0 +1,76 @@
+%PS_Times_Italic = (
+  name => 'Times-Italic',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      250,   333,   420,   500,   500,   833,   778,   333,
+      333,   333,   500,   675,   250,   333,   250,   278,
+      500,   500,   500,   500,   500,   500,   500,   500,
+      500,   500,   333,   333,   675,   675,   675,   500,
+      920,   611,   611,   667,   722,   611,   611,   722,
+      722,   333,   444,   667,   556,   833,   667,   722,
+      611,   722,   611,   500,   556,   722,   611,   833,
+      611,   556,   556,   389,   278,   389,   422,   500,
+      333,   500,   500,   444,   500,   444,   278,   500,
+      500,   278,   278,   444,   278,   722,   500,   500,
+      500,   500,   389,   389,   278,   500,   444,   667,
+      444,   444,   389,   400,   275,   400,   541,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   389,   500,   500,   167,   500,   500,   500,
+      500,   214,   556,   500,   333,   333,   500,   500,
+        0,   500,   500,   500,   250,     0,   523,   350,
+      333,   556,   556,   500,   889,  1000,     0,   500,
+        0,   333,   333,   333,   333,   333,   333,   333,
+      333,     0,   333,   333,     0,   333,   333,   333,
+      889,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   889,     0,   276,     0,     0,     0,     0,
+      556,   722,   944,   310,     0,     0,     0,     0,
+        0,   667,     0,     0,     0,   278,     0,     0,
+      278,   500,   667,   500,     0,     0,     0,     0
+  ],
+  kern => {
+    "T," => -74, "T-" => -74, "T." => -74, "DA" => -35, "T:" => -55, 
+    "T;" => -65, "Ke" => -35, "ra" => -15, "rc" => -37, ".\'" => -140, 
+    "TA" => -50, "rd" => -37, "re" => -37, "bu" => -20, "rg" => -37, 
+    "Ko" => -40, "DV" => -40, "f\365" => -60, "DW" => -40, "DY" => -40, 
+    "LT" => -20, "Ku" => -40, "ro" => -45, "U," => -25, "LV" => -55, 
+    "rq" => -37, "U." => -25, "TO" => -18, "LW" => -55, "Ky" => -40, 
+    "rs" => -10, "LY" => -20, "\' " => -111, "ch" => -15, 
+    "\'\'" => -111, "ck" => -20, "ke" => -10, "e," => -10, 
+    "F," => -135, "e." => -15, "F." => -135, "Ta" => -92, "UA" => -40, 
+    "Te" => -92, "ko" => -10, "Ti" => -55, "V," => -129, "V-" => -55, 
+    "To" => -92, "ky" => -10, "V." => -129, "Ly" => -30, "Tr" => -55, 
+    "FA" => -115, "Tu" => -55, "Tw" => -74, "f\'" => 92, "Ty" => -74, 
+    "NA" => -27, "V:" => -65, "V;" => -74, "f," => -10, "f." => -15, 
+    "VA" => -60, " A" => -18, "v," => -74, "W," => -92, "v." => -74, 
+    "W-" => -37, "W." => -92, "VO" => -30, ",\272" => -140, 
+    "Fa" => -75, "\'d" => -25, "Fe" => -75, "eg" => -40, "Fi" => -45, 
+    "OA" => -55, "W:" => -65, "W;" => -65, "g," => -10, " T" => -18, 
+    "g." => -15, "Fo" => -105, " V" => -35, " W" => -40, "Va" => -111, 
+    "WA" => -60, "Fr" => -55, " Y" => -75, "\'r" => -25, "\'s" => -40, 
+    "\'t" => -30, "ev" => -15, "Ve" => -111, "ew" => -15, "P," => -135, 
+    "\'v" => -10, "ex" => -20, "ey" => -30, "P." => -135, "Vi" => -74, 
+    "w," => -74, "OT" => -40, "w." => -74, "OV" => -50, "Vo" => -111, 
+    "OW" => -50, "WO" => -25, "OX" => -40, "A\'" => -37, "OY" => -50, 
+    "Vu" => -74, "ff" => -18, "fi" => -20, "PA" => -90, "Wa" => -92, 
+    "We" => -92, "Wi" => -55, "nv" => -40, "AC" => -30, "Y," => -92, 
+    "Wo" => -92, "Y-" => -74, "Y." => -92, ".\272" => -140, 
+    "AG" => -35, "ge" => -10, "Wu" => -55, "gg" => -10, "AO" => -40, 
+    "Wy" => -70, "Pa" => -80, "AQ" => -40, "Y:" => -65, "Y;" => -65, 
+    "AT" => -37, "Pe" => -80, "og" => -10, "J," => -25, "AU" => -50, 
+    "AV" => -105, "J." => -25, "AW" => -95, "AY" => -55, "YA" => -50, 
+    "Po" => -80, "``" => -111, "BA" => -25, "y," => -55, "ov" => -10, 
+    "QU" => -10, "y." => -55, "YO" => -15, "JA" => -40, "b." => -40, 
+    ",\'" => -140, "Au" => -20, "Av" => -55, "BU" => -10, "Aw" => -55, 
+    "Ay" => -55, "Ya" => -92, "r," => -111, "Ye" => -92, "r-" => -20, 
+    "r." => -111, "RO" => -40, "Yi" => -74, "RU" => -40, "RV" => -18, 
+    "Yo" => -92, "ag" => -10, "RW" => -18, "RY" => -18, "Ja" => -35, 
+    "Yu" => -92, "Je" => -25, "L\'" => -37, "Jo" => -25, "KO" => -50, 
+    "Ju" => -35,   }
+);
diff --git a/doc/metrics/putb8a.ph b/doc/metrics/putb8a.ph
new file mode 100644 (file)
index 0000000..c05f749
--- /dev/null
@@ -0,0 +1,180 @@
+%PS_Utopia_Bold = (
+  name => 'Utopia-Bold',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      210,   278,   473,   560,   560,   887,   748,   252,
+      365,   365,   442,   600,   280,   392,   280,   378,
+      560,   560,   560,   560,   560,   560,   560,   560,
+      560,   560,   280,   280,   600,   600,   600,   456,
+      833,   644,   683,   689,   777,   629,   593,   726,
+      807,   384,   386,   707,   585,   918,   739,   768,
+      650,   768,   684,   561,   624,   786,   645,   933,
+      634,   617,   614,   335,   379,   335,   600,   500,
+      252,   544,   605,   494,   605,   519,   342,   533,
+      631,   316,   316,   582,   309,   948,   638,   585,
+      615,   597,   440,   446,   370,   629,   520,   774,
+      522,   524,   483,   365,   284,   365,   600,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   278,   560,   560,   100,   560,   560,   566,
+      560,   252,   473,   487,   287,   287,   639,   639,
+        0,   500,   510,   486,   280,     0,   552,   455,
+      252,   473,   473,   487,  1000,  1289,     0,   456,
+        0,   430,   430,   430,   430,   430,   430,   430,
+      430,     0,   430,   430,     0,   430,   430,   430,
+     1000,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   879,     0,   405,     0,     0,     0,     0,
+      591,   768,  1049,   427,     0,     0,     0,     0,
+        0,   806,     0,     0,     0,   316,     0,     0,
+      321,   585,   866,   662,     0,     0,     0,     0
+  ],
+  kern => {
+    "Zi" => -12, "[J" => 60, "Zo" => -12, "[T" => 35, "Zu" => -6, 
+    "[V" => 64, "Zw" => -36, "[W" => 64, "Zy" => -36, "[Y" => 64, 
+    "A\272" => -80, "zc" => -6, "zd" => -6, "ze" => -6, "{J" => 50, 
+    "zo" => -6, "{T" => 25, "{V" => 64, "{W" => 64, "{Y" => 64, 
+    "a\272" => -40, "b\272" => -40, " T" => -40, " V" => -60, 
+    " W" => -60, " Y" => -60, " `" => -40, "A\'" => -110, 
+    "d\272" => -24, "`A" => -122, "AC" => -18, "a\'" => -45, 
+    "AG" => -18, "`J" => -24, "AO" => -18, "AQ" => -18, "`T" => 35, 
+    "AT" => -58, "`V" => 35, "AU" => -40, "`W" => 35, "AV" => -70, 
+    "`X" => 30, "AW" => -54, "`Y" => 35, "AX" => -18, "AY" => -64, 
+    "e\272" => -20, "``" => -30, "F\272" => 20, "`a" => -60, 
+    "Aa" => -6, "`c" => -70, "Ab" => -12, "`d" => -70, "Ac" => -12, 
+    "`e" => -70, "Ad" => -12, "`f" => -10, "Ae" => -6, "`g" => -50, 
+    "b\'" => -45, "`m" => -40, "`n" => -40, "b," => -10, "`o" => -70, 
+    "f\251" => 70, "`p" => -40, "b." => -10, "Ao" => -12, "`q" => -70, 
+    "Ap" => -18, "`r" => -40, "Aq" => -6, "`s" => -40, "`t" => -25, 
+    "As" => 6, "`u" => -25, "At" => -12, "`v" => -5, "BT" => -20, 
+    "Au" => -18, "`w" => 5, "BU" => -25, "Av" => -48, "`x" => -5, 
+    "BV" => -20, "Aw" => -42, "`y" => -5, "BW" => -20, "`z" => -26, 
+    "Ay" => -40, "Az" => 25, "f\272" => 68, "G\272" => -20, 
+    "Ba" => -12, "Bb" => -10, "CC" => -6, "Be" => -6, "c\'" => -5, 
+    "CG" => -6, "Bh" => -15, "Bi" => -12, "Bk" => -15, "Bl" => -15, 
+    "D," => -40, "Bo" => -6, "D." => -40, "CO" => -6, "CQ" => -6, 
+    "Br" => -12, "Bu" => -12, "By" => -18, "Ca" => -16, "Ce" => -12, 
+    "d\'" => -24, "E," => 10, "Co" => -12, "E." => 10, "Cr" => -6, 
+    "bv" => -20, "Cu" => -18, "bw" => -20, "DV" => -40, "by" => -15, 
+    "DW" => -40, "Cy" => -24, "Cz" => -5, "DY" => -60, "h\272" => -60, 
+    "Da" => -15, "\' " => -40, "De" => -5, "\252A" => -122, 
+    "e\'" => -25, "Dh" => -18, "Di" => -12, "F\'" => 20, "\'\'" => -30, 
+    "F," => -150, "\'," => -100, "Do" => -5, "\252J" => -24, 
+    "F." => -150, "\'." => -100, "Dr" => -12, "Du" => -12, "EV" => -6, 
+    "EW" => -6, "\252T" => 18, "EY" => -6, "\252V" => 40, 
+    "\252W" => 40, "\252X" => 20, "\252Y" => 30, "i\272" => -20, 
+    "Ea" => -4, "Eb" => -5, "FA" => -60, "Ec" => -6, "Ed" => -6, 
+    "Ee" => -6, "\252a" => -60, "Eg" => -6, "\252c" => -70, 
+    "f\'" => 68, "\252d" => -70, "Ei" => -6, "\252e" => -70, 
+    "f)" => 110, "Ej" => -6, "\252f" => -30, "\252g" => -50, 
+    "f," => -20, "Em" => -4, "En" => -4, "f." => -10, "Eo" => -6, 
+    "Ep" => -18, "Eq" => -6, "\252m" => -40, "Er" => -4, 
+    "\252n" => -40, "Es" => -12, "\252o" => -70, "Et" => -18, 
+    "\252p" => -40, "Eu" => -12, "\252q" => -70, "Ev" => -24, 
+    "\252r" => -40, "Ew" => -24, "\252s" => -32, "\252t" => -40, 
+    "Ey" => -30, "\252u" => -40, "\252w" => 10, "\252z" => -26, 
+    "j\272" => -20, ",\272" => -100, "Fa" => -48, "\'d" => -100, 
+    "Fe" => -36, "Fi" => -22, "(J" => 50, "Fl" => -12, "\'l" => -6, 
+    "g," => 10, "\'m" => -42, "Fo" => -36, "Fr" => -36, "\'r" => -42, 
+    "\'s" => -70, "\'t" => -50, "Fu" => -12, "(T" => 50, "\'v" => -20, 
+    "(V" => 64, "(W" => 64, "ez" => -4, "Fy" => -18, "(Y" => 64, 
+    "f]" => 100, "k\272" => -30, "L\272" => -130, "Ga" => -12, 
+    "h\'" => -60, "Gh" => -12, "Gi" => -12, "Gl" => -6, "Gn" => -18, 
+    "Gr" => -18, "Gu" => -12, "Gy" => -12, "f}" => 80, "l\272" => -24, 
+    ".\272" => -100, "Ha" => -25, "gf" => 20, "He" => -30, 
+    "i\'" => -20, "Hi" => -18, "gp" => 20, "Ho" => -30, "Hu" => -26, 
+    "gy" => 20, "Hy" => -24, "m\272" => -60, "Ia" => -24, "Ib" => -6, 
+    ", " => -40, "Ic" => -30, "Id" => -30, "Ie" => -30, "If" => -6, 
+    "Ig" => -6, "j\'" => -20, "Ih" => -6, ",\'" => -100, "Ik" => -6, 
+    "Il" => -6, "j," => -10, "Im" => -18, "In" => -18, "j." => -10, 
+    "Io" => -30, "Ip" => -26, "Ir" => -12, "Is" => -18, "It" => -24, 
+    "Iu" => -26, "Iv" => -24, "Iw" => -18, "Ix" => -6, "Iy" => -6, 
+    "Iz" => -6, "J]" => 15, "n\272" => -60, "Ja" => -36, "KA" => 20, 
+    "KC" => -36, "Je" => -35, "k\'" => -30, "KG" => -36, "Ji" => -20, 
+    "L\'" => -130, "Jo" => -35, "KO" => -36, "KQ" => -36, "Ju" => -36, 
+    "Jy" => -20, "J}" => 15, "o\272" => -40, "P\272" => 20, "Ka" => -6, 
+    "LA" => 30, ". " => -40, "LC" => -12, "Ke" => -18, "Kh" => 10, 
+    "LG" => -12, "l\'" => -24, "Ki" => 6, ".\'" => -100, "Kl" => 10, 
+    "Ko" => -30, "LO" => -12, "LQ" => -12, "Ku" => -42, "LT" => -80, 
+    "Kv" => -80, "LU" => -32, "Kw" => -60, "LV" => -95, "LW" => -78, 
+    "Ky" => -70, "LY" => -70, "p\272" => -60, "m\'" => -60, "Lj" => -6, 
+    "Ll" => 6, "Lu" => -12, "Lw" => -58, "Ly" => -52, "q\272" => -50, 
+    "R\272" => -10, "Ma" => -25, "Mc" => -30, "Md" => -30, "Me" => -30, 
+    "n\'" => -60, "Mi" => -12, "Mj" => -12, "Mn" => -6, "O," => -40, 
+    "Mo" => -30, "O." => -40, "Mu" => -36, "My" => -24, "r\272" => -10, 
+    "S\272" => -15, "Na" => -30, "OA" => -30, "Ne" => -30, 
+    "o\'" => -45, "Ni" => -24, "P\'" => 20, "o," => -10, "P," => -200, 
+    "No" => -30, "P-" => -30, "o." => -10, "P." => -200, 
+    "r\320" => -20, "Nu" => -30, "OT" => -40, "OV" => -35, 
+    "T\261" => -40, "OW" => -35, "Ny" => -24, "OX" => -40, "OY" => -50, 
+    "s\272" => -40, "T\272" => 24, "Oa" => -12, "Ob" => -15, 
+    "PA" => -85, "Oc" => -6, "Od" => -6, "Oe" => -6, "PE" => -20, 
+    "Og" => -6, "p\'" => -45, "Oh" => -15, "Oi" => -6, "PH" => -20, 
+    "PI" => -20, "Ok" => -15, "Ol" => -15, "p," => -10, "Om" => -10, 
+    "On" => -10, "p." => -10, "Oo" => -6, "Op" => -10, "Oq" => -6, 
+    "Or" => -10, "Os" => -6, "Ot" => -6, "Ou" => -6, "T\320" => -60, 
+    "Oz" => -6, "Pa" => -36, "QA" => -30, "Pe" => -36, "q\'" => -50, 
+    "Ph" => -15, "Pi" => -6, "R\'" => -10, "Pl" => -15, "q," => -10, 
+    "Pn" => -12, "q." => -10, "Po" => -36, "Pr" => -12, "Ps" => -30, 
+    "Pt" => -6, "Pu" => -18, "QT" => -40, "ov" => -30, "QU" => -25, 
+    "ow" => -30, "QV" => -35, "ox" => -18, "QW" => -35, "oy" => -25, 
+    "Py" => 10, "QX" => -40, "oz" => -12, "QY" => -50, "u\272" => -60, 
+    "V\272" => 36, "Qa" => -18, "RC" => -10, "r\'" => -20, "RG" => -10, 
+    "S\'" => -15, "r," => -80, "r-" => -60, "r." => -60, "RO" => -10, 
+    "RQ" => -10, "Qu" => -6, "RT" => -20, "V\320" => -20, "pw" => -15, 
+    "RU" => -30, "RV" => -26, "py" => -15, "RW" => -18, "pz" => -10, 
+    "RX" => 20, "RY" => -32, "r:" => 20, "r;" => 20, "v\272" => 10, 
+    "W\272" => 24, "Ra" => -6, "Re" => -18, "s\'" => -40, "T\'" => 24, 
+    "T)" => 40, "T," => -95, "Ro" => -12, "T-" => -110, "T." => -95, 
+    "Rt" => -25, "Ru" => -12, "Ry" => -20, "T;" => -50, "w\272" => 20, 
+    "Sa" => -18, "rc" => -20, "TA" => -52, "rd" => -20, "re" => -20, 
+    "TC" => -25, "rf" => 8, "rg" => 5, "rh" => -10, "\272 " => -40, 
+    "ri" => 8, "Sh" => -12, "TG" => -25, "Si" => -12, "rk" => -10, 
+    "Sj" => -30, "rl" => -10, "Sk" => -24, "rm" => 8, "Sl" => -18, 
+    "t," => 10, "rn" => 8, "Sm" => -24, "ro" => -6, "Sn" => -24, 
+    "t." => 15, "rq" => -6, "Sp" => -24, "TO" => -25, "Sr" => -10, 
+    "TQ" => -25, "rt" => 8, "\272," => -100, "ru" => 8, "St" => -24, 
+    "TS" => -12, "rv" => 30, "\272." => -100, "Su" => -24, "TT" => 30, 
+    "rw" => 30, "Sv" => -40, "rx" => 12, "Sw" => -30, "TV" => 6, 
+    "Y\261" => -30, "ry" => 18, "TW" => 15, "rz" => 20, "Sy" => -35, 
+    "TX" => 10, "TY" => 12, "T]" => 40, "x\272" => -20, "Y\272" => 36, 
+    "Ta" => -90, "UA" => -50, "Te" => -80, "u\'" => -60, "Ti" => -28, 
+    "V\'" => 50, "V)" => 80, "Tm" => -72, "V," => -135, "To" => -90, 
+    "V-" => -90, "V." => -135, "Tr" => -74, "Ts" => -82, "Tu" => -74, 
+    "Y\320" => -50, "Tw" => -72, "Ty" => -74, "Tz" => -64, "V:" => -45, 
+    "T}" => 30, "V;" => -45, "y\272" => 10, "Ua" => -50, "Ub" => -12, 
+    "VA" => -60, "Uc" => -40, "Ud" => -40, "VC" => -20, "Uf" => -20, 
+    "Ug" => -40, "v\'" => 5, "Uh" => -6, "VG" => -20, "Ui" => -22, 
+    "W\'" => 40, "Uk" => -12, "W)" => 80, "Ul" => -12, "v," => -90, 
+    "Um" => -50, "Un" => -50, "W," => -100, "v." => -75, "W-" => -70, 
+    "Up" => -50, "VO" => -20, "W." => -100, "Ur" => -50, "VQ" => -20, 
+    "Us" => -45, "Ut" => -36, "Uv" => -30, "Ux" => -30, "Uy" => -30, 
+    "Uz" => -35, "v:" => 20, "v;" => 20, "W:" => -40, "W;" => -40, 
+    "V]" => 80, "z\272" => -20, "Va" => -70, "WA" => -58, "WC" => -20, 
+    "Ve" => -70, "w\'" => 15, "WG" => -20, "Vi" => 20, "X\'" => 15, 
+    "w," => -68, "w." => -60, "Vo" => -70, "WO" => -20, "Vr" => -75, 
+    "WQ" => -20, "Vu" => -50, "WT" => 30, "Vy" => -36, "w:" => 20, 
+    "w;" => 20, "V}" => 80, "W]" => 80, "va" => -15, "Wa" => -75, 
+    "vc" => -15, "XA" => 20, "vd" => -15, ": " => -20, "ve" => -15, 
+    "Wd" => -60, "XC" => -30, "We" => -60, "x\'" => -25, "Wh" => 20, 
+    "XG" => -30, "Wi" => 5, "Y\'" => 50, "Y)" => 60, "Wm" => -50, 
+    "vo" => -15, "Y," => -90, "Wo" => -60, "Y-" => -100, "vq" => -15, 
+    "XO" => -30, "Y." => -90, "Wr" => -50, "XQ" => -24, "Wt" => -30, 
+    "Wu" => -46, "Wy" => -50, "Y:" => -60, "W}" => 70, "Y;" => -37, 
+    "Xa" => -6, "wc" => -10, "YA" => -55, "wd" => -10, "; " => -20, 
+    "we" => -10, "YC" => -40, "Xe" => -6, "y\'" => 5, "YG" => -40, 
+    "y," => -72, "y-" => -20, "wo" => -10, "y." => -72, "wq" => -10, 
+    "YO" => -40, " \252" => -40, "YQ" => -40, "Xu" => -24, "YT" => 30, 
+    "YV" => 12, "YW" => 12, "Xy" => -40, "YX" => 12, "YY" => 12, 
+    "y:" => 20, "y;" => 20, "Y]" => 80, " \270" => -100, 
+    " \271" => -100, "Ya" => -80, "xc" => -12, "ZA" => 25, "xd" => -12, 
+    "xe" => -12, "Yd" => -90, "ZC" => -18, "Ye" => -90, "z\'" => -20, 
+    "ZG" => -18, "Yi" => 15, "Yl" => 25, "xo" => -6, "Yo" => -90, 
+    "xq" => -6, "ZO" => -18, "Yq" => -100, "ZQ" => -18, "Yt" => -46, 
+    "Yu" => -65, "Yv" => -50, "Y}" => 64, "Za" => -6, "Ze" => -6,   }
+);
diff --git a/doc/metrics/putbi8a.ph b/doc/metrics/putbi8a.ph
new file mode 100644 (file)
index 0000000..47b6695
--- /dev/null
@@ -0,0 +1,183 @@
+%PS_Utopia_BoldItalic = (
+  name => 'Utopia-BoldItalic',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      210,   285,   455,   560,   560,   896,   752,   246,
+      350,   350,   500,   600,   280,   392,   280,   260,
+      560,   560,   560,   560,   560,   560,   560,   560,
+      560,   560,   280,   280,   600,   600,   600,   454,
+      828,   634,   680,   672,   774,   622,   585,   726,
+      800,   386,   388,   688,   586,   921,   741,   761,
+      660,   761,   681,   551,   616,   776,   630,   920,
+      630,   622,   618,   350,   460,   350,   600,   500,
+      246,   596,   586,   456,   609,   476,   348,   522,
+      629,   339,   333,   570,   327,   914,   635,   562,
+      606,   584,   440,   417,   359,   634,   518,   795,
+      516,   489,   466,   340,   265,   340,   600,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   285,   560,   560,   100,   560,   560,   568,
+      560,   246,   455,   560,   360,   360,   651,   652,
+        0,   500,   514,   490,   280,     0,   580,   465,
+      246,   455,   455,   560,  1000,  1297,     0,   454,
+        0,   400,   400,   400,   400,   400,   400,   402,
+      400,     0,   400,   400,     0,   400,   350,   400,
+     1000,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   890,     0,   444,     0,     0,     0,     0,
+      592,   761,  1016,   412,     0,     0,     0,     0,
+        0,   789,     0,     0,     0,   339,     0,     0,
+      339,   562,   811,   628,     0,     0,     0,     0
+  ],
+  kern => {
+    "Zi" => -12, "[J" => 30, "Zo" => -6, "yq" => -10, "[T" => 35, 
+    "Zu" => -12, "[V" => 64, "Zw" => -36, "[W" => 64, "Zy" => -36, 
+    "[Y" => 60, "A\272" => -92, "zc" => -6, "zd" => -6, "ze" => -6, 
+    "{J" => 60, "zo" => -6, "{T" => 40, "{V" => 64, "{W" => 64, 
+    "{Y" => 64, "a\272" => -54, "B\272" => -32, "b\272" => -30, 
+    "C\272" => 20, " A" => -50, " T" => -50, " V" => -70, " W" => -50, 
+    " Y" => -70, "c\272" => 5, "D\272" => -20, " `" => -60, 
+    "A\'" => -92, "d\272" => -12, "`A" => -100, "AC" => -30, 
+    "a\'" => -54, "AG" => -30, "B\'" => -20, "AO" => -30, "AQ" => -30, 
+    "`T" => 36, "AT" => -60, "`V" => 28, "AU" => -50, "`W" => 46, 
+    "AV" => -75, "`X" => 46, "AW" => -46, "`Y" => 12, "AX" => -8, 
+    "AY" => -56, "e\272" => -25, "F\272" => 35, "`a" => -30, 
+    "`b" => 24, "Aa" => 10, "`c" => -30, "Ab" => -6, "`d" => -30, 
+    "Ac" => -6, "`e" => -30, "Ad" => 4, "`g" => -30, "`h" => 10, 
+    "b\'" => -30, "Ah" => -6, "C\'" => 12, "`k" => 10, "`l" => 10, 
+    "`m" => -12, "Al" => -18, "`n" => -12, "b," => -15, "Am" => -12, 
+    "`o" => -30, "An" => -12, "`p" => -12, "b." => -15, "Ao" => -18, 
+    "`q" => -30, "Ap" => -6, "`r" => -12, "`s" => -30, "Ar" => -6, 
+    "`t" => -30, "As" => 6, "`u" => -12, "At" => -6, "BT" => -20, 
+    "Au" => -18, "`w" => -12, "BU" => -30, "Av" => -30, "`x" => -10, 
+    "BV" => -45, "Aw" => -30, "`y" => 30, "BW" => -30, "Ax" => 16, 
+    "`z" => -30, "Ay" => -40, "Az" => 18, "f\272" => 120, 
+    "G\272" => -30, "Ba" => 10, "CC" => -12, "Be" => 4, "c\'" => 5, 
+    "CG" => -12, "Bh" => -15, "D\'" => -20, "Bi" => -12, "Bk" => -10, 
+    "Bl" => -20, "D," => -20, "Bo" => 6, "D." => -20, "CO" => -12, 
+    "CQ" => -12, "Br" => -6, "Bu" => -12, "By" => -6, "g\272" => -20, 
+    "Ca" => -6, "Ce" => -6, "d\'" => -12, "Ci" => -6, "E\'" => 10, 
+    "d," => 15, "E," => 15, "d." => 15, "E." => 15, "Cr" => -12, 
+    "bv" => -5, "Cu" => -12, "bw" => -5, "DV" => -65, "by" => -6, 
+    "DW" => -40, "Cy" => -18, "Cz" => -6, "DY" => -80, "h\272" => -78, 
+    "Da" => 6, "\' " => -50, "De" => 6, "\252A" => -100, "e\'" => -25, 
+    "Dh" => -15, "F\'" => 40, "F," => -110, "\'," => -140, "Do" => 6, 
+    "F." => -120, "\'." => -140, "Dy" => 18, "\252T" => 36, 
+    "\252V" => 40, "\252W" => 55, "\252X" => 45, "\252Y" => 30, 
+    "i\272" => -20, "J\272" => 6, "Ea" => 10, "FA" => -45, "Ed" => 10, 
+    "\252a" => -50, "\252b" => 24, "Eg" => -12, "\252c" => -30, 
+    "f\'" => 120, "\252d" => -50, "Ei" => -12, "G\'" => -30, 
+    "\252e" => -30, "f)" => 100, "Ej" => -6, "\252g" => -30, 
+    "El" => -6, "\252h" => 10, "f," => -30, "Em" => -12, "En" => -12, 
+    "f." => -30, "\252k" => 10, "Ep" => -12, "\252l" => 10, "Eq" => 10, 
+    "\252m" => -12, "Er" => -6, "\252n" => -12, "Es" => -6, 
+    "\252o" => -30, "Et" => -18, "\252p" => -12, "Eu" => -24, 
+    "\252q" => -50, "Ev" => -18, "\252r" => -12, "Ew" => -30, 
+    "\252s" => -30, "Ex" => 15, "\252t" => 5, "Ey" => -24, 
+    "\252u" => -12, "Ez" => -6, "\252v" => -12, "\252w" => -12, 
+    "\252x" => -60, "\252z" => -30, "j\272" => -20, "K\272" => 36, 
+    ",\272" => -100, "Fa" => -30, "\'d" => -65, "Fe" => -24, 
+    "Fi" => -6, "(J" => 50, "\'l" => -12, "g," => 20, "\'m" => -12, 
+    "Fo" => -24, "Fr" => -12, "\'r" => -12, "\'s" => -45, "ev" => -10, 
+    "Fu" => -24, "(T" => 30, "ew" => -10, "\'v" => -20, "ex" => -10, 
+    "(V" => 64, "ey" => 6, "(W" => 64, "Fy" => -12, "(Y" => 64, 
+    "f]" => 110, "k\272" => -38, "L\272" => -110, "Ge" => 5, 
+    "h\'" => -78, "Gh" => -18, "Gi" => -12, "Gl" => -24, "Gn" => -22, 
+    "Gr" => -22, "Gu" => -22, "Gy" => -25, "f}" => 110, "l\272" => -12, 
+    "M\272" => 6, ".\272" => -100, "Ha" => -25, "gf" => 42, 
+    "He" => -25, "i\'" => -20, "Hi" => -25, "J\'" => 6, "gp" => 30, 
+    "Ho" => -25, "Hu" => -30, "gy" => 50, "Hy" => -18, "m\272" => -78, 
+    "Ia" => -15, "Ib" => -6, ", " => -40, "Ic" => -25, "Id" => -15, 
+    "Ie" => -25, "If" => -6, "Ig" => -24, "j\'" => -20, "Ii" => -10, 
+    "K\'" => 36, ",\'" => -100, "Ij" => -20, "Ik" => -6, "Il" => -6, 
+    "j," => -20, "Im" => -18, "In" => -18, "j." => -20, "Io" => -25, 
+    "Ip" => -18, "Ir" => -12, "Is" => -18, "It" => -18, "Iu" => -30, 
+    "Iv" => -30, "Iw" => -30, "Ix" => -6, "Iy" => -6, "Iz" => -20, 
+    "n\272" => -88, "O\272" => -20, "Ja" => -36, "KA" => 15, 
+    "KC" => -50, "Je" => -30, "k\'" => -38, "KG" => -50, "Ji" => -30, 
+    "L\'" => -110, "Jo" => -36, "KO" => -50, "KQ" => -50, "Ju" => -32, 
+    "Jy" => -12, "J}" => 15, "o\272" => -50, "Ka" => -12, "LA" => 40, 
+    ". " => -40, "LC" => -48, "Ke" => -30, "Kh" => 15, "LG" => -48, 
+    "l\'" => -12, "Ki" => -12, "M\'" => 6, ".\'" => -100, "Kl" => 10, 
+    "Kn" => -24, "Ko" => -30, "LO" => -48, "Kr" => -24, "LQ" => -48, 
+    "Ku" => -30, "LT" => -100, "Kv" => -30, "LU" => -42, "Kw" => -36, 
+    "LV" => -110, "LW" => -78, "Ky" => -70, "LY" => -80, 
+    "p\272" => -52, "Q\272" => -38, "m\'" => -78, "Li" => -18, 
+    "Lj" => -18, "Ll" => -16, "Lu" => -18, "Lw" => -30, "Ly" => -70, 
+    "q\272" => -40, "R\272" => -22, "Ma" => -20, "Mc" => -25, 
+    "Md" => -20, "Me" => -25, "n\'" => -88, "Mi" => -20, "O\'" => -20, 
+    "Mj" => -35, "Mn" => -20, "O," => -10, "Mo" => -25, "O." => -10, 
+    "Mu" => -24, "r\261" => -20, "My" => -18, "r\272" => -6, 
+    "S\272" => -50, "Na" => -22, "OA" => -8, "Ne" => -16, "o\'" => -50, 
+    "Ni" => -12, "P\'" => -12, "o," => -10, "P," => -170, "o." => -10, 
+    "No" => -18, "P." => -170, "Nu" => -24, "OT" => -42, "OV" => -50, 
+    "T\261" => -40, "OW" => -35, "Ny" => -18, "OX" => -30, "OY" => -70, 
+    "s\272" => -30, "T\272" => 36, "Oa" => 6, "PA" => -70, "Od" => 6, 
+    "Oe" => 6, "PE" => -45, "Og" => -6, "p\'" => -30, "Oh" => -10, 
+    "PH" => -45, "Q\'" => -20, "Oj" => -6, "PI" => -45, "Ok" => -10, 
+    "Ol" => -15, "p," => -15, "Om" => -6, "On" => -6, "p." => -15, 
+    "Op" => -6, "Oq" => 6, "Or" => -6, "Os" => -6, "Ot" => -6, 
+    "Ou" => -6, "T\320" => -40, "Oy" => 12, "Oz" => -6, "t\272" => 15, 
+    "Pa" => -40, "QA" => -18, "Pe" => -24, "q\'" => -40, "Ph" => -20, 
+    "R\'" => -22, "Pl" => -20, "q," => -5, "Pn" => -12, "q." => -10, 
+    "Po" => -24, "Pr" => -6, "Ps" => -24, "Pt" => -6, "ov" => -25, 
+    "Pu" => -18, "QT" => -36, "ow" => -25, "QU" => -30, "ox" => -20, 
+    "QV" => -50, "V\261" => -20, "oy" => -12, "QW" => -35, "Py" => 6, 
+    "QX" => -12, "QY" => -70, "u\272" => -78, "V\272" => 60, 
+    "Qa" => -6, "RA" => 15, "RC" => -8, "r\'" => -6, "RG" => -8, 
+    "S\'" => -38, "r," => -100, "r-" => -40, "r." => -100, "RO" => -8, 
+    "RQ" => -8, "Qu" => -6, "RT" => -18, "V\320" => -20, "pw" => -6, 
+    "RU" => -40, "RV" => -35, "RW" => -25, "RX" => 15, "RY" => -45, 
+    "r:" => 20, "r;" => 20, "v\272" => -10, "W\272" => 55, "Re" => -12, 
+    "s\'" => -25, "T\'" => 36, "T)" => 25, "T," => -90, "Ro" => -20, 
+    "T-" => -100, "T." => -70, "Ru" => -12, "Ry" => -6, "T;" => -6, 
+    "w\272" => -10, "X\272" => 40, "ra" => -25, "rc" => -12, 
+    "TA" => -40, "rd" => -25, "re" => -26, "TC" => -6, "rf" => 8, 
+    "Se" => -6, "rh" => -10, "\272 " => -50, "t\'" => 15, "Sh" => -12, 
+    "TG" => -6, "Si" => -20, "rk" => -12, "Sj" => -25, "rl" => -12, 
+    "Sk" => -18, "Sl" => -20, "t," => 15, "Sm" => -24, "ro" => -6, 
+    "Sn" => -24, "t." => 15, "rq" => -24, "Sp" => -18, "TO" => -6, 
+    "Sr" => -20, "TQ" => -6, "rt" => 8, "\272," => -200, "St" => -18, 
+    "rv" => 6, "\272." => -200, "Su" => -18, "TT" => 40, "rw" => 6, 
+    "Sv" => -20, "rx" => 12, "Sw" => -30, "TV" => 20, "Y\261" => -40, 
+    "ry" => 18, "TW" => 30, "rz" => 20, "Sy" => -30, "TX" => 18, 
+    "TY" => 12, "T]" => 20, "x\272" => -30, "Y\272" => 70, "Ta" => -78, 
+    "UA" => -40, "Te" => -78, "u\'" => -65, "Th" => 6, "Ti" => -22, 
+    "V\'" => 46, "V)" => 64, "u," => 20, "Tm" => -54, "V," => -110, 
+    "u." => 20, "To" => -78, "V-" => -60, "V." => -110, "Tr" => -54, 
+    "Ts" => -60, "Tu" => -54, "Y\320" => -40, "Tw" => -54, "Ty" => -52, 
+    "Tz" => -48, "V:" => -18, "T}" => 30, "V;" => -45, "y\272" => -10, 
+    "Z\272" => 18, "Ua" => -30, "Ub" => -6, "VA" => -70, "Uc" => -30, 
+    "Ud" => -30, "Uf" => -10, "Ug" => -30, "v\'" => -10, "Uh" => -6, 
+    "Ui" => -24, "W\'" => 42, "Uk" => -12, "W)" => 55, "Ul" => -12, 
+    "v," => -62, "Um" => -30, "Un" => -30, "W," => -80, "v." => -62, 
+    "W-" => -40, "Up" => -30, "W." => -80, "Ur" => -30, "Us" => -40, 
+    "Ut" => -24, "VT" => 12, "Uv" => -20, "Ux" => -30, "Uz" => -18, 
+    "W:" => -12, "W;" => -12, "V]" => 64, "z\272" => -40, "Va" => -80, 
+    "WA" => -45, "WC" => -5, "Ve" => -55, "w\'" => -10, "WG" => -5, 
+    "Vi" => 15, "X\'" => 24, "w," => -50, "w." => -40, "Vo" => -55, 
+    "WO" => -5, "Vr" => -55, "WQ" => -5, "Vu" => -42, "WT" => 30, 
+    "Vy" => -34, "V}" => 64, "W]" => 64, "va" => -6, "Wa" => -60, 
+    "vc" => -6, "vd" => -6, ": " => -30, "ve" => -6, "Wd" => -60, 
+    "XC" => -45, "We" => -55, "x\'" => -30, "Wh" => 16, "XG" => -45, 
+    "Wi" => 5, "Y\'" => 56, "Y)" => 5, "Wm" => -30, "vo" => -6, 
+    "Y," => -80, "Wo" => -55, "Y-" => -110, "vq" => -6, "XO" => -45, 
+    "Y." => -80, "Wr" => -30, "XQ" => -45, "Wt" => -10, "Wu" => -30, 
+    "XW" => -6, "Wy" => -36, "XY" => -6, "Y:" => -20, "W}" => 64, 
+    "Y;" => -20, "Xa" => -6, "YA" => -40, "; " => -30, "YC" => -25, 
+    "Xe" => -18, "y\'" => -10, "YG" => -25, "Xi" => -6, "Z\'" => 18, 
+    "y," => -56, "y." => -56, "YO" => -25, " \252" => -60, "Xr" => -6, 
+    "YQ" => -25, "Xu" => -30, "YT" => 30, "YV" => 6, "YW" => 12, 
+    "Xy" => -40, "YX" => 12, "YY" => 12, "Y]" => 64, " \270" => -60, 
+    " \271" => -60, "Ya" => -85, "xc" => -6, "ZA" => 30, "xd" => -6, 
+    "xe" => -6, "Yd" => -85, "ZC" => -20, "Ye" => -95, "z\'" => -40, 
+    "ZG" => -20, "Yi" => 15, "Yl" => 15, "xo" => -6, "Yo" => -95, 
+    "xq" => -6, "ZO" => -20, "Yq" => -100, "ZQ" => -20, "Yt" => -32, 
+    "Yu" => -70, "xw" => -6, "Yv" => -60, "xy" => 12, "Y}" => 64, 
+    "Za" => -6, "yd" => -10, "Ze" => -6,   }
+);
diff --git a/doc/metrics/putr8a.ph b/doc/metrics/putr8a.ph
new file mode 100644 (file)
index 0000000..1cc3456
--- /dev/null
@@ -0,0 +1,187 @@
+%PS_Utopia_Regular = (
+  name => 'Utopia-Regular',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      225,   242,   458,   530,   530,   838,   706,   278,
+      350,   350,   412,   570,   265,   392,   265,   460,
+      530,   530,   530,   530,   530,   530,   530,   530,
+      530,   530,   265,   265,   570,   570,   570,   389,
+      793,   635,   646,   684,   779,   606,   580,   734,
+      798,   349,   350,   658,   568,   944,   780,   762,
+      600,   762,   644,   541,   621,   791,   634,   940,
+      624,   588,   610,   330,   460,   330,   570,   500,
+      278,   523,   598,   496,   598,   514,   319,   520,
+      607,   291,   280,   524,   279,   923,   619,   577,
+      608,   591,   389,   436,   344,   606,   504,   768,
+      486,   506,   480,   340,   228,   340,   570,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   242,   530,   530,   150,   530,   530,   554,
+      530,   278,   458,   442,   257,   257,   610,   610,
+        0,   500,   504,   488,   265,     0,   555,   409,
+      278,   458,   458,   442,  1000,  1208,     0,   389,
+        0,   400,   400,   400,   400,   400,   400,   400,
+      400,     0,   400,   400,     0,   400,   400,   400,
+     1000,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   876,     0,   390,     0,     0,     0,     0,
+      574,   762,  1025,   398,     0,     0,     0,     0,
+        0,   797,     0,     0,     0,   291,     0,     0,
+      294,   577,   882,   601,     0,     0,     0,     0
+  ],
+  kern => {
+    "Zi" => -12, "[J" => 80, "yo" => -6, "Zo" => -12, "yq" => -6, 
+    "[T" => 54, "Zu" => -6, "[V" => 64, "Zw" => -36, "[W" => 64, 
+    "Zy" => -36, "[Y" => 64, "A\272" => -120, "zc" => -6, "zd" => -6, 
+    "ze" => -6, "{J" => 80, "zo" => -6, "{T" => 54, "{V" => 64, 
+    "{W" => 64, "{Y" => 64, "a\272" => -80, "b\272" => -70, 
+    " T" => -36, " V" => -60, " W" => -60, " Y" => -60, "c\272" => -28, 
+    "D\272" => -20, " `" => -40, "A\'" => -120, "d\272" => -24, 
+    "`A" => -130, "`B" => -20, "`C" => -30, "`D" => -20, "AC" => -24, 
+    "`E" => -20, "`F" => -20, "`G" => -40, "`H" => -20, "a\'" => -70, 
+    "AG" => -24, "`I" => -20, "`J" => -40, "`K" => -20, "`L" => -20, 
+    "`M" => -20, "`N" => -20, "B," => -20, "`O" => -30, "`P" => -20, 
+    "B." => -30, "AO" => -24, "`Q" => -20, "`R" => -20, "AQ" => -24, 
+    "`T" => 10, "`U" => -20, "AT" => -70, "`V" => 18, "AU" => -50, 
+    "`W" => 18, "AV" => -72, "F\261" => 20, "`X" => 12, "AW" => -58, 
+    "`Y" => 18, "AX" => -6, "`Z" => -20, "AY" => -70, "e\272" => -60, 
+    "``" => -72, "`a" => -60, "`c" => -70, "Ab" => -12, "`d" => -70, 
+    "Ac" => -12, "`e" => -70, "Ad" => -12, "`f" => -40, "Ae" => -6, 
+    "`g" => -65, "b\'" => -70, "`m" => -50, "`n" => -50, "b," => -40, 
+    "`o" => -70, "f\251" => 30, "`p" => -50, "b." => -40, "Ao" => -12, 
+    "`q" => -70, "Ap" => -18, "`r" => -50, "Aq" => -6, "`s" => -45, 
+    "`t" => -40, "`u" => -50, "At" => -12, "`v" => -20, "BT" => -20, 
+    "Au" => -25, "`w" => -20, "BU" => -20, "Av" => -60, "`x" => -30, 
+    "BV" => -20, "Aw" => -45, "`y" => -35, "BW" => -25, "`z" => -40, 
+    "Ay" => -50, "Az" => 6, "f\272" => 56, "Ba" => -12, "CC" => -6, 
+    "Be" => -6, "c\'" => -28, "CG" => -6, "Bh" => -12, "D\'" => -20, 
+    "Bi" => -12, "Bl" => -12, "D," => -50, "c." => -10, "Bo" => -6, 
+    "D." => -60, "CO" => -6, "CQ" => -6, "Br" => -12, "Bu" => -12, 
+    "By" => -18, "g\272" => -10, "Ca" => -12, "Ce" => -12, 
+    "d\'" => -24, "Co" => -12, "Cr" => -6, "bv" => -35, "Cu" => -18, 
+    "bw" => -30, "DV" => -35, "by" => -25, "DW" => -35, "Cy" => -24, 
+    "Cz" => -18, "DY" => -45, "h\272" => -80, "Da" => -6, "De" => -6, 
+    "\252A" => -130, "\252B" => -20, "e\'" => -60, "Dh" => -12, 
+    "\252C" => -30, "Di" => -6, "\'\'" => -72, "\252D" => -20, 
+    "\252E" => -20, "\252F" => -20, "\252G" => -30, "e," => -20, 
+    "\252H" => -20, "F," => -180, "\'," => -130, "\252I" => -20, 
+    "e." => -20, "\252J" => -40, "F." => -180, "\'." => -130, 
+    "\252K" => -20, "\252L" => -20, "Dr" => -12, "\252M" => -20, 
+    "\252N" => -20, "\252O" => -30, "Du" => -12, "\252P" => -20, 
+    "\252Q" => -20, "EV" => -6, "\252R" => -20, "EW" => -6, 
+    "\252S" => -20, "Dy" => 6, "\252T" => 10, "EY" => -6, 
+    "\252U" => -20, "\252V" => 18, "\252W" => 18, "\252Y" => 12, 
+    "\252Z" => -20, "Eb" => -12, "FA" => -60, "f\"" => 30, "Ec" => -6, 
+    "Ed" => -6, "Ee" => -6, "\252a" => -70, "Ef" => -12, "Eg" => -6, 
+    "\252c" => -80, "f\'" => 65, "\252d" => -80, "Ei" => -6, 
+    "\252e" => -80, "f)" => 100, "Ej" => -6, "\252f" => -50, "Ek" => 5, 
+    "\252g" => -70, "El" => 5, "Em" => -4, "En" => -4, "Eo" => -6, 
+    "Ep" => -18, "Eq" => -6, "\252m" => -50, "Er" => -4, 
+    "\252n" => -50, "\252o" => -80, "Et" => -18, "\252p" => -50, 
+    "Eu" => -12, "\252q" => -80, "Ev" => -24, "\252r" => -50, 
+    "Ew" => -24, "\252s" => -50, "Ex" => -6, "\252t" => -40, 
+    "Ey" => -30, "\252u" => -40, "Ez" => -6, "\252v" => -20, 
+    "\252w" => -20, "\252x" => -40, "\252y" => -30, "\252z" => -60, 
+    "j\272" => -20, ",\272" => -50, "Fa" => -48, "\'d" => -120, 
+    "Fe" => -36, "g\'" => -18, "Fi" => -10, "(J" => 80, "Fl" => -12, 
+    "\'l" => -6, "\'m" => -70, "Fo" => -36, "Fr" => -20, "\'r" => -70, 
+    "\'s" => -110, "\'t" => -75, "Fu" => -12, "(T" => 64, "\'v" => -40, 
+    "(V" => 64, "(W" => 64, "ez" => -4, "Fy" => -18, "(Y" => 64, 
+    "f]" => 100, "k\272" => -40, "L\272" => -50, "Ga" => -12, 
+    "Ge" => 5, "h\'" => -80, "Gh" => -12, "Gi" => -12, "Gl" => -6, 
+    "Gn" => -5, "Go" => 5, "Gr" => -5, "Gu" => -12, "Gy" => -18, 
+    "f}" => 100, "l\272" => -10, ".\272" => -50, "Ha" => -24, 
+    "He" => -30, "Hi" => -18, "Ho" => -30, "Hu" => -26, "Hy" => -24, 
+    "m\272" => -80, "Ia" => -24, "Ib" => -6, "Ic" => -30, "Id" => -30, 
+    "Ie" => -30, "If" => -6, "Ig" => -10, "j\'" => -20, "Ih" => -6, 
+    ",\'" => -50, "Ik" => -6, "Il" => -6, "j," => -30, "Im" => -18, 
+    "In" => -18, "j." => -30, "Io" => -30, "Ip" => -26, "Ir" => -12, 
+    "Is" => -18, "It" => -24, "Iu" => -26, "Iv" => -24, "Iw" => -18, 
+    "Ix" => -6, "Iy" => -6, "Iz" => -6, "J]" => 20, "n\272" => -80, 
+    "Ja" => -36, "KC" => -42, "Je" => -30, "k\'" => -40, "KG" => -42, 
+    "Ji" => -20, "L\'" => -130, "Jo" => -30, "KO" => -42, "KQ" => -42, 
+    "Ju" => -36, "Jy" => -12, "J}" => 20, "o\272" => -70, "Ka" => -12, 
+    "LA" => 12, "LC" => -18, "Ke" => -24, "LG" => -18, "l\'" => -10, 
+    "Ki" => 6, ".\'" => -50, "Ko" => -30, "LO" => -10, "LQ" => -18, 
+    "Ku" => -42, "LT" => -100, "Kv" => -70, "LU" => -24, "Kw" => -70, 
+    "LV" => -100, "LW" => -90, "Ky" => -60, "LY" => -70, 
+    "p\272" => -70, "m\'" => -80, "Lj" => -6, "Ll" => 6, "Lu" => -12, 
+    "Lw" => -58, "Ly" => -52, "q\272" => -50, "R\272" => -20, 
+    "Ma" => -12, "Mc" => -30, "Md" => -30, "Me" => -30, "n\'" => -80, 
+    "Mi" => -12, "Mj" => -12, "Mn" => -6, "O," => -50, "Mo" => -30, 
+    "O." => -60, "Mu" => -36, "My" => -24, "r\272" => -20, 
+    "S\272" => -10, "Na" => -30, "OA" => -18, "Ne" => -30, 
+    "o\'" => -70, "Ni" => -24, "o," => -40, "P," => -200, "No" => -30, 
+    "P-" => -40, "o." => -40, "P." => -200, "Nu" => -30, "OT" => -30, 
+    "OV" => -18, "T\261" => -50, "OW" => -30, "Ny" => -24, "OX" => -24, 
+    "OY" => -55, "s\272" => -40, "Oa" => -12, "PA" => -55, "Oc" => -6, 
+    "Od" => -6, "Oe" => -6, "PE" => -6, "Og" => -6, "Oh" => -12, 
+    "p\'" => -70, "Oi" => -5, "PH" => -12, "PI" => -6, "Ok" => -6, 
+    "Ol" => -6, "Om" => -5, "p," => -40, "On" => -5, "Oo" => -6, 
+    "p." => -40, "Op" => -6, "Oq" => -6, "Os" => -6, "Ot" => -6, 
+    "Ou" => -6, "T\320" => -50, "Oz" => -6, "t\272" => -18, 
+    "Pa" => -36, "QA" => -18, "Pe" => -30, "q\'" => -50, "Ph" => -6, 
+    "R\'" => -20, "Pl" => -6, "q," => -10, "Pn" => -12, "q." => -20, 
+    "Po" => -30, "R-" => -30, "Pr" => -12, "Ps" => -24, "Pt" => -6, 
+    "Pu" => -12, "QT" => -24, "ov" => -30, "QU" => -30, "ow" => -30, 
+    "QV" => -18, "V\261" => -20, "ox" => -18, "QW" => -24, "oy" => -30, 
+    "QX" => -24, "oz" => -12, "QY" => -30, "u\272" => -30, 
+    "V\272" => 20, "Qa" => -18, "RC" => -24, "r\'" => -20, "RG" => -24, 
+    "S\'" => -10, "r," => -60, "r-" => -20, "r." => -60, "RO" => -24, 
+    "RQ" => -24, "Qu" => -6, "RT" => -32, "V\320" => -20, "RU" => -30, 
+    "pw" => -30, "RV" => -32, "RW" => -24, "py" => -25, "pz" => -20, 
+    "RY" => -45, "r:" => 10, "r;" => 10, "v\272" => 20, "W\272" => 20, 
+    "Ra" => -12, "Rd" => -20, "Re" => -20, "s\'" => -40, "T\'" => 24, 
+    "T)" => 54, "s," => -10, "T," => -110, "s." => -20, "Ro" => -20, 
+    "T-" => -100, "T." => -110, "Ru" => -12, "Ry" => -20, "T:" => -50, 
+    "T;" => -56, "w\272" => 20, "ra" => -10, "Sa" => -18, "rc" => -20, 
+    "TA" => -65, "rd" => -20, "re" => -20, "TC" => -18, "rf" => 8, 
+    "Se" => -12, "rg" => -6, "rh" => 6, "t\'" => -18, "ri" => 8, 
+    "Sh" => -12, "TG" => -18, "Si" => -20, "rk" => -6, "Sj" => -12, 
+    "Sk" => -24, "rm" => 8, "Sl" => -18, "rn" => 8, "Sm" => -20, 
+    "ro" => -6, "Sn" => -20, "So" => -12, "rq" => -6, "Sp" => -24, 
+    "TO" => -18, "Sq" => -5, "Sr" => -20, "TQ" => -18, "rt" => 8, 
+    "\272," => -130, "ru" => 8, "St" => -24, "TS" => -12, "rv" => 18, 
+    "\272." => -130, "Su" => -24, "TT" => 12, "rw" => 18, "Sv" => -30, 
+    "rx" => 12, "Sw" => -30, "TV" => 6, "ry" => 18, "TW" => 6, 
+    "rz" => 10, "Sy" => -25, "TX" => 18, "TY" => 12, "T]" => 54, 
+    "x\272" => -20, "Y\272" => 20, "Ta" => -100, "UA" => -40, 
+    "Te" => -100, "u\'" => -30, "Ti" => -34, "V\'" => 36, "V)" => 85, 
+    "Tm" => -82, "V," => -140, "To" => -100, "V-" => -60, "V." => -140, 
+    "Tr" => -82, "Ts" => -82, "Tu" => -82, "Y\320" => -20, 
+    "Tw" => -100, "Ty" => -84, "Tz" => -64, "V:" => -45, "T}" => 54, 
+    "V;" => -45, "Ua" => -40, "Ub" => -12, "VA" => -60, "Uc" => -45, 
+    "Ud" => -45, "VC" => -12, "Uf" => -12, "Ug" => -50, "v\'" => 20, 
+    "Uh" => -6, "VG" => -12, "Ui" => -28, "W\'" => 36, "Uk" => -12, 
+    "W)" => 85, "Ul" => -12, "v," => -90, "Um" => -40, "Un" => -40, 
+    "W," => -100, "v." => -90, "W-" => -40, "Up" => -42, "VO" => -12, 
+    "W." => -110, "Ur" => -40, "VQ" => -12, "Us" => -40, "Ut" => -36, 
+    "VT" => 6, "Uv" => -20, "Ux" => -30, "Uy" => -20, "Uz" => -30, 
+    "v:" => 10, "v;" => 10, "W:" => -40, "W;" => -40, "V]" => 64, 
+    "z\272" => -30, "Va" => -60, "WA" => -48, "WC" => -6, "Ve" => -70, 
+    "w\'" => 20, "WG" => -6, "Vi" => 6, "X\'" => 15, "w," => -75, 
+    "w." => -80, "Vo" => -70, "WO" => -6, "Vr" => -70, "WQ" => -6, 
+    "Vu" => -40, "WT" => 18, "Vy" => -36, "w:" => 10, "w;" => 10, 
+    "V}" => 64, "W]" => 64, "va" => -6, "Wa" => -60, "vc" => -6, 
+    "XA" => 6, "vd" => -10, "ve" => -5, "Wd" => -65, "XC" => -30, 
+    "We" => -65, "x\'" => -10, "XG" => -30, "Wi" => -10, "Y\'" => 36, 
+    "Y)" => 60, "Wm" => -45, "vo" => -5, "Y," => -90, "Wo" => -65, 
+    "Y-" => -50, "vq" => -10, "XO" => -30, "Y." => -90, "Wr" => -45, 
+    "XQ" => -24, "Wu" => -46, "Wy" => -50, "Y:" => -50, "W}" => 64, 
+    "Y;" => -37, "Xa" => -6, "wc" => -6, "YA" => -32, "wd" => -6, 
+    "we" => -6, "YC" => -18, "Xe" => -6, "YG" => -18, "y," => -85, 
+    "y-" => -30, "y." => -95, "wq" => -6, "YO" => -18, " \252" => -40, 
+    "YQ" => -18, "Xu" => -24, "YT" => 12, "YV" => 12, "YW" => 12, 
+    "Xy" => -18, "YX" => 12, "YY" => 12, "y:" => 10, "y;" => 10, 
+    "Y]" => 64, " \270" => -60, " \271" => -60, "Ya" => -68, 
+    "xc" => -12, "ZA" => 20, "xd" => -12, "Yd" => -90, "ZC" => -20, 
+    "Ye" => -90, "z\'" => -20, "ZG" => -30, "Yl" => 10, "xo" => -6, 
+    "Yo" => -90, "xq" => -6, "ZO" => -20, "Yq" => -100, "ZQ" => -20, 
+    "Yt" => -46, "Yu" => -54, "Yv" => -50, "Y}" => 64, "Za" => -6, 
+    "yc" => -6, "yd" => -6, "ye" => -6, "Ze" => -6,   }
+);
diff --git a/doc/metrics/putri8a.ph b/doc/metrics/putri8a.ph
new file mode 100644 (file)
index 0000000..aa4a216
--- /dev/null
@@ -0,0 +1,182 @@
+%PS_Utopia_Italic = (
+  name => 'Utopia-Italic',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      225,   240,   402,   530,   530,   826,   725,   216,
+      350,   350,   412,   570,   265,   392,   265,   270,
+      530,   530,   530,   530,   530,   530,   530,   530,
+      530,   530,   265,   265,   570,   570,   570,   425,
+      794,   624,   632,   661,   763,   596,   571,   709,
+      775,   345,   352,   650,   565,   920,   763,   753,
+      614,   753,   640,   533,   606,   794,   637,   946,
+      632,   591,   622,   330,   390,   330,   570,   500,
+      216,   561,   559,   441,   587,   453,   315,   499,
+      607,   317,   309,   545,   306,   912,   618,   537,
+      590,   559,   402,   389,   341,   618,   510,   785,
+      516,   468,   468,   340,   270,   340,   570,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   240,   530,   530,   100,   530,   530,   530,
+      530,   216,   402,   462,   277,   277,   607,   603,
+        0,   500,   500,   490,   265,     0,   560,   500,
+      216,   402,   402,   462,  1000,  1200,     0,   425,
+        0,   400,   400,   400,   400,   400,   400,   402,
+      400,     0,   400,   400,     0,   400,   350,   400,
+     1000,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   880,     0,   425,     0,     0,     0,     0,
+      571,   753,  1020,   389,     0,     0,     0,     0,
+        0,   779,     0,     0,     0,   317,     0,     0,
+      318,   537,   806,   577,     0,     0,     0,     0
+  ],
+  kern => {
+    "Zi" => -12, "[J" => 80, "Zo" => -6, "[T" => 54, "Zu" => -12, 
+    "[V" => 64, "Zw" => -36, "[W" => 64, "Zy" => -36, "[Y" => 64, 
+    "A\272" => -110, "zc" => -6, "zd" => -6, "ze" => -6, "{J" => 80, 
+    "zo" => -6, "{T" => 54, "{V" => 64, "{W" => 64, "{Y" => 64, 
+    "a\272" => -40, "B\272" => -30, "b\272" => -50, "C\272" => 20, 
+    " V" => -70, " W" => -70, " Y" => -70, "c\272" => -20, 
+    "D\272" => -50, " `" => -40, "A\'" => -110, "d\272" => -12, 
+    "E\272" => 10, "`A" => -90, "AC" => -30, "a\'" => -40, "AG" => -30, 
+    "B\'" => -40, "AO" => -30, "AQ" => -30, "`T" => 36, "AT" => -72, 
+    "`V" => 28, "AU" => -60, "`W" => 28, "AV" => -90, "`X" => 28, 
+    "AW" => -80, "`Y" => 12, "AX" => -8, "AY" => -76, "e\272" => -30, 
+    "``" => -18, "F\272" => 35, "`a" => -45, "`b" => 24, "Aa" => 12, 
+    "`c" => -30, "Ab" => -6, "`d" => -30, "Ac" => -6, "`e" => -30, 
+    "Ad" => 10, "`g" => -30, "`h" => 10, "b\'" => -50, "Ah" => -6, 
+    "`k" => 10, "Aj" => 6, "`l" => 10, "`m" => -12, "Al" => -18, 
+    "`n" => -12, "b," => -30, "Am" => -18, "`o" => -30, "An" => -18, 
+    "`p" => -12, "b." => -40, "Ao" => -10, "`q" => -30, "Ap" => -12, 
+    "`r" => -12, "Aq" => 10, "`s" => -30, "Ar" => -12, "`t" => -12, 
+    "As" => 15, "`u" => -12, "At" => -6, "`v" => -12, "BT" => -20, 
+    "Au" => -10, "`w" => -12, "BU" => -50, "Av" => -30, "`x" => -40, 
+    "BV" => -50, "Aw" => -30, "`y" => -10, "BW" => -20, "Ax" => 10, 
+    "`z" => -30, "Ay" => -20, "f\272" => 110, "G\272" => -20, 
+    "Ba" => 12, "Be" => 6, "c\'" => -20, "Bh" => -15, "D\'" => -40, 
+    "Bi" => -12, "Bk" => -15, "Bl" => -20, "D," => -20, "Bo" => 6, 
+    "D." => -30, "Br" => -15, "Bu" => -20, "By" => -6, "H\272" => 10, 
+    "Ca" => -6, "Ce" => -6, "d\'" => -12, "Ci" => -5, "E\'" => 10, 
+    "E," => 10, "E." => 10, "bv" => -15, "Cu" => -18, "bw" => -15, 
+    "DV" => -60, "by" => -6, "DW" => -50, "Cy" => -18, "Cz" => -6, 
+    "DY" => -70, "h\272" => -80, "I\272" => 10, "Da" => 6, 
+    "\' " => -40, "De" => 6, "\252A" => -90, "e\'" => -30, "Dh" => -25, 
+    "Di" => 6, "F\'" => 15, "\'\'" => -18, "F," => -170, "\'," => -100, 
+    "Do" => 6, "F." => -180, "\'." => -100, "Du" => -10, "Dy" => 18, 
+    "\252T" => 36, "\252V" => 28, "\252W" => 28, "\252X" => 28, 
+    "\252Y" => 12, "J\272" => 15, "Eb" => -6, "FA" => -45, "Ed" => 10, 
+    "Ee" => 5, "\252a" => -60, "\252b" => 24, "Eg" => -12, 
+    "\252c" => -40, "f\'" => 110, "\252d" => -40, "Ei" => -12, 
+    "G\'" => -20, "\252e" => -40, "f)" => 100, "Ej" => -6, "Ek" => -10, 
+    "\252g" => -30, "El" => -12, "\252h" => 10, "f," => -20, 
+    "Em" => -12, "En" => -12, "f." => -20, "Eo" => -6, "\252k" => 10, 
+    "Ep" => -12, "\252l" => 10, "Eq" => 10, "\252m" => -12, "Er" => -6, 
+    "\252n" => -12, "Es" => 5, "\252o" => -30, "Et" => -18, 
+    "\252p" => -12, "Eu" => -24, "\252q" => -40, "Ev" => -18, 
+    "\252r" => -12, "Ew" => -20, "\252s" => -30, "Ex" => 5, 
+    "\252t" => -12, "Ey" => -18, "\252u" => -12, "Ez" => -6, 
+    "\252v" => -12, "\252w" => -12, "\252x" => -40, "\252z" => -30, 
+    "j\272" => -20, "K\272" => 40, ",\272" => -80, "Fa" => -30, 
+    "\'d" => -70, "Fe" => -30, "Fi" => -12, "H\'" => 10, "(J" => 80, 
+    "Fl" => -6, "\'l" => -12, "\'m" => -25, "Fo" => -30, "Fr" => -18, 
+    "\'r" => -25, "\'s" => -55, "\'t" => -35, "Fu" => -30, "(T" => 64, 
+    "ew" => -10, "\'v" => -35, "ex" => -10, "(V" => 75, "(W" => 75, 
+    "Fy" => -12, "(Y" => 75, "f]" => 90, "k\272" => -50, 
+    "L\272" => -110, "Ga" => 5, "Ge" => 10, "h\'" => -80, "Gh" => -18, 
+    "Gi" => -12, "I\'" => 10, "Gl" => -24, "Gn" => -22, "Go" => 10, 
+    "Gr" => -22, "Gu" => -22, "Gy" => -16, "f}" => 90, "M\272" => 15, 
+    ".\272" => -80, "Ha" => -12, "gf" => 42, "He" => -12, "Hi" => -12, 
+    "J\'" => 6, "gp" => 12, "Ho" => -12, "Hu" => -30, "gy" => 30, 
+    "Hy" => -18, "m\272" => -80, "N\272" => 10, "Ia" => -6, "Ib" => -6, 
+    ", " => -40, "Ic" => -12, "Id" => -6, "If" => -6, "Ig" => -12, 
+    "j\'" => -20, "K\'" => 25, ",\'" => -80, "Ik" => -6, "Il" => -6, 
+    "j," => -20, "Im" => -18, "In" => -18, "j." => -35, "Io" => -12, 
+    "Ip" => -18, "Ir" => -12, "Is" => -18, "It" => -18, "Iu" => -30, 
+    "Iv" => -30, "Iw" => -30, "Ix" => -6, "Iy" => -6, "Iz" => -20, 
+    "n\272" => -80, "O\272" => -40, "Ja" => -36, "KC" => -24, 
+    "Je" => -36, "k\'" => -30, "KG" => -24, "Ji" => -30, "L\'" => -110, 
+    "Jo" => -36, "KO" => -24, "KQ" => -24, "Ju" => -36, "Jy" => -12, 
+    "J}" => 10, "o\272" => -50, "Ka" => -6, "LA" => 30, ". " => -40, 
+    "LC" => -48, "Ke" => -12, "Kh" => 6, "LG" => -48, "Ki" => -6, 
+    "M\'" => 6, ".\'" => -80, "Kn" => -18, "Ko" => -24, "LO" => -48, 
+    "Kr" => -12, "LQ" => -48, "Ku" => -24, "LT" => -80, "Kv" => -20, 
+    "LU" => -42, "Kw" => -30, "LV" => -110, "LW" => -90, "Ky" => -40, 
+    "LY" => -80, "p\272" => -70, "Q\272" => -50, "La" => 10, 
+    "m\'" => -80, "Li" => -18, "N\'" => 10, "Lj" => -18, "Ll" => -16, 
+    "Lu" => -18, "Lw" => -30, "Ly" => -55, "q\272" => -30, 
+    "R\272" => -20, "Ma" => -6, "Mc" => -20, "Md" => -10, "Me" => -20, 
+    "n\'" => -80, "Mi" => -12, "O\'" => -40, "Mj" => -18, "Mn" => -12, 
+    "O," => -10, "Mo" => -25, "O." => -20, "Mu" => -24, "My" => -18, 
+    "r\272" => -15, "S\272" => -30, "Na" => -22, "OA" => -18, 
+    "Ne" => -20, "o\'" => -60, "Ni" => -12, "o," => -20, "P," => -220, 
+    "o." => -30, "No" => -25, "P." => -220, "r\320" => -20, 
+    "Nu" => -24, "OT" => -48, "OV" => -60, "T\261" => -60, "OW" => -40, 
+    "Ny" => -18, "OX" => -30, "OY" => -75, "s\272" => -45, 
+    "T\272" => 50, "Oa" => 5, "Ob" => -6, "PA" => -75, "Oc" => 5, 
+    "Od" => 6, "Oe" => 5, "PE" => -30, "Og" => -6, "p\'" => -50, 
+    "Oh" => -10, "PH" => -30, "Q\'" => -40, "Oj" => -6, "PI" => -30, 
+    "Ok" => -10, "Ol" => -20, "p," => -20, "Om" => -6, "On" => -6, 
+    "p." => -30, "Op" => -6, "Oq" => 5, "Or" => -6, "Os" => -6, 
+    "Ot" => -6, "Ou" => -6, "T\320" => -60, "Ov" => -10, "Ow" => -10, 
+    "Oy" => 12, "Oz" => -6, "t\272" => -10, "U\272" => 10, "Pa" => -24, 
+    "QA" => -18, "Pe" => -24, "q\'" => -20, "Ph" => -15, "R\'" => -30, 
+    "Pl" => -25, "q," => -10, "Pn" => -12, "q." => -20, "Po" => -24, 
+    "R-" => -20, "Pr" => -6, "Ps" => -24, "Pt" => -6, "ov" => -35, 
+    "Pu" => -18, "QT" => -36, "ow" => -30, "QU" => -35, "ox" => -20, 
+    "QV" => -60, "V\261" => -20, "oy" => -20, "QW" => -35, "oz" => -10, 
+    "Py" => 6, "QX" => -12, "QY" => -70, "u\272" => -50, "V\272" => 70, 
+    "Qa" => -6, "RA" => -6, "RC" => -10, "RG" => -10, "S\'" => -38, 
+    "r," => -110, "r-" => -30, "r." => -120, "RO" => -10, "RQ" => -10, 
+    "Qu" => -6, "RT" => -30, "V\320" => -20, "pw" => -15, "RU" => -40, 
+    "RV" => -40, "W\261" => -2, "RW" => -30, "pz" => -10, "RY" => -50, 
+    "v\272" => -30, "W\272" => 60, "Re" => -12, "s\'" => -40, 
+    "T\'" => 45, "T)" => 54, "T," => -110, "Ro" => -12, "T-" => -100, 
+    "T." => -100, "Ru" => -12, "W\320" => -10, "Ry" => -14, 
+    "T:" => -10, "T;" => -36, "w\272" => -30, "X\272" => 15, 
+    "ra" => -20, "rc" => -12, "TA" => -56, "rd" => -26, "re" => -26, 
+    "TC" => -12, "rf" => 8, "Se" => -6, "rh" => -20, "\272 " => -40, 
+    "t\'" => 10, "Sh" => -30, "TG" => -12, "Si" => -30, "U\'" => 10, 
+    "rk" => -20, "Sj" => -25, "rl" => -20, "Sk" => -24, "Sl" => -30, 
+    "Sm" => -24, "ro" => -6, "Sn" => -24, "rq" => -24, "Sp" => -18, 
+    "TO" => -12, "Sr" => -20, "TQ" => -12, "rt" => 8, "\272," => -100, 
+    "St" => -30, "rv" => 6, "\272." => -100, "Su" => -18, "TT" => 18, 
+    "rw" => 6, "Sv" => -30, "Sw" => -30, "Y\261" => -20, "ry" => 18, 
+    "TW" => 6, "Sy" => -30, "TX" => 18, "TY" => 12, "T]" => 45, 
+    "x\272" => -50, "Y\272" => 70, "Ta" => -90, "UA" => -45, 
+    "Te" => -90, "u\'" => -55, "Ti" => -34, "V\'" => 75, "V)" => 64, 
+    "Tm" => -64, "V," => -120, "To" => -90, "V-" => -60, "V." => -130, 
+    "Tr" => -64, "Ts" => -72, "Tu" => -74, "Y\320" => -20, "Tw" => -64, 
+    "Ty" => -60, "Tz" => -70, "V:" => -18, "T}" => 54, "V;" => -35, 
+    "y\272" => -20, "Z\272" => 10, "Ua" => -40, "Ub" => -6, 
+    "VA" => -70, "Uc" => -35, "Ud" => -40, "Ug" => -30, "v\'" => -20, 
+    "Uh" => -6, "Ui" => -24, "W\'" => 55, "Uk" => -12, "W)" => 64, 
+    "Ul" => -12, "v," => -70, "Um" => -45, "Un" => -45, "W," => -108, 
+    "v." => -70, "W-" => -40, "Up" => -40, "W." => -108, "Ur" => -30, 
+    "Us" => -30, "y\320" => 40, "Ut" => -24, "VT" => 6, "Ux" => -40, 
+    "Uz" => -30, "W:" => -28, "W;" => -28, "V]" => 64, "z\272" => -50, 
+    "Va" => -60, "WA" => -58, "WC" => -10, "Ve" => -52, "w\'" => -20, 
+    "WG" => -10, "Vi" => -10, "X\'" => 35, "w," => -62, "w." => -62, 
+    "Vo" => -62, "WO" => -10, "Vr" => -50, "WQ" => -10, "Vu" => -42, 
+    "WT" => 12, "Vy" => -46, "V}" => 64, "W]" => 55, "va" => -6, 
+    "Wa" => -60, "vc" => -6, "XA" => -18, "vd" => -6, ": " => -30, 
+    "ve" => -6, "Wd" => -50, "XC" => -30, "We" => -54, "x\'" => -40, 
+    "XG" => -30, "Wi" => -10, "Y\'" => 65, "Y)" => 60, "Wm" => -35, 
+    "vo" => -6, "Y," => -80, "Wo" => -60, "Y-" => -95, "vq" => -6, 
+    "XO" => -30, "Y." => -90, "Wr" => -40, "XQ" => -30, "Wt" => -20, 
+    "Wu" => -56, "XW" => -6, "Wy" => -42, "XY" => -6, "Y:" => -36, 
+    "W}" => 64, "Y;" => -36, "Xa" => 5, "YA" => -36, "; " => -30, 
+    "YC" => -5, "Xe" => -10, "y\'" => -10, "YG" => -5, "Xi" => -6, 
+    "Z\'" => 10, "y," => -60, "y." => -70, "YO" => -5, " \252" => -40, 
+    "Xr" => -6, "YQ" => -5, "Xu" => -30, "YT" => 25, "YV" => 6, 
+    "YW" => 12, "Xy" => -35, "YX" => 12, "YY" => 12, "Y]" => 64, 
+    " \270" => -30, " \271" => -30, "Ya" => -82, "xc" => -6, 
+    "ZA" => 12, "xd" => -6, "xe" => -6, "Yd" => -80, "ZC" => -30, 
+    "Ye" => -72, "z\'" => -40, "ZG" => -30, "Yl" => 10, "xo" => -6, 
+    "Yo" => -72, "xq" => -6, "ZO" => -30, "Yq" => -100, "ZQ" => -30, 
+    "Yt" => -32, "Yu" => -58, "xw" => -6, "Yv" => -50, "xy" => 12, 
+    "Y}" => 75, "Za" => -6, "Ze" => -6,   }
+);
diff --git a/doc/metrics/pzcmi8a.ph b/doc/metrics/pzcmi8a.ph
new file mode 100644 (file)
index 0000000..33c31d2
--- /dev/null
@@ -0,0 +1,65 @@
+%PS_ZapfChancery_MediumItalic = (
+  name => 'ZapfChancery-MediumItalic',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      220,   280,   220,   440,   440,   680,   780,   240,
+      260,   220,   420,   520,   220,   280,   220,   340,
+      440,   440,   440,   440,   440,   440,   440,   440,
+      440,   440,   260,   240,   520,   520,   520,   380,
+      700,   620,   600,   520,   700,   620,   580,   620,
+      680,   380,   400,   660,   580,   840,   700,   600,
+      540,   600,   600,   460,   500,   740,   640,   880,
+      560,   560,   620,   240,   480,   320,   520,   500,
+      240,   420,   420,   340,   440,   340,   320,   400,
+      440,   240,   220,   440,   240,   620,   460,   400,
+      440,   400,   300,   320,   320,   460,   440,   680,
+      420,   400,   440,   240,   520,   240,   520,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   280,   440,   440,    60,   440,   440,   420,
+      440,   160,   340,   340,   240,   260,   520,   520,
+        0,   500,   460,   480,   220,     0,   500,   600,
+      180,   280,   360,   380,  1000,   960,     0,   400,
+        0,   220,   300,   340,   440,   440,   440,   220,
+      360,     0,   300,   300,     0,   400,   280,   340,
+     1000,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   740,     0,   260,     0,     0,     0,     0,
+      580,   660,   820,   260,     0,     0,     0,     0,
+        0,   540,     0,     0,     0,   240,     0,     0,
+      300,   440,   560,   420,     0,     0,     0,     0
+  ],
+  kern => {
+    "s." => -20, "T-" => -20, "mu" => 10, "w," => -20, "OT" => 20, 
+    "bb" => -20, "w." => -30, "Vo" => -20, "DA" => -10, "my" => 10, 
+    "WO" => 10, "L\272" => -25, "fa" => -20, "OY" => 10, "A\'" => -40, 
+    "fe" => -10, "ff" => -50, "bl" => -20, "Ke" => -20, "PA" => -10, 
+    ".\'" => -80, "TA" => 10, "Wa" => -20, "Ko" => -20, "ri" => 10, 
+    "A\272" => -40, "p," => -20, "We" => -20, "DY" => 10, "p." => -30, 
+    "Wh" => 10, "Wi" => 10, "Ku" => -20, "`A" => 10, "LV" => -20, 
+    "TO" => 30, "LW" => -10, "AC" => 20, "Y," => -40, "Wo" => -20, 
+    "ny" => 20, "Y." => -50, ".\272" => -80, "ga" => 10, "AG" => -30, 
+    "\252A" => 10, "ge" => 10, "\'\'" => -115, "ck" => -10, 
+    "ke" => -20, "gi" => 10, "AO" => 10, "Pa" => -20, "F," => -30, 
+    "AQ" => 10, "F." => -40, "Ta" => -20, "Pe" => -10, "AT" => 10, 
+    "AU" => -10, "J," => -10, "J." => -20, "Te" => -20, "ko" => -10, 
+    "Th" => 20, "Ti" => 20, "wh" => 20, "Po" => -10, "``" => -115, 
+    "gy" => 10, "\'\272" => 20, "V," => -90, "To" => -20, "ky" => 10, 
+    "V." => -100, "Ly" => -10, "wo" => 10, "QU" => -10, "dd" => -40, 
+    "\252`" => 20, "f\'" => 30, "b," => -20, "b." => -30, "f," => -40, 
+    ",\'" => -70, "G," => -10, "f." => -50, "G." => -20, "dv" => -10, 
+    "Ya" => -60, "dw" => -20, "O," => -10, "O." => -20, "VG" => -20, 
+    "r," => -40, "Ye" => -40, "r." => -50, "pp" => -10, "f\272" => 30, 
+    "v," => -20, "Yi" => 10, "W," => -40, "v." => -30, "VO" => 10, 
+    "W." => -50, ",\272" => -70, "RT" => 20, "Yo" => -50, "RW" => 10, 
+    "RY" => 10, "Yu" => -20, "Fi" => 10, "OA" => -20, "D," => -20, 
+    "D." => -30, "\'l" => 20, "g," => -20, "L\'" => -25, "g." => -30, 
+    "Va" => -20, "\'r" => 30, "\'s" => -25, "\'t" => 20, "o," => -20, 
+    "Ve" => -20, "P," => -40, "\'v" => 30, "o." => -30, "ey" => 10, 
+    "P." => -50, "s," => -10,   }
+);
diff --git a/doc/metrics/pzdr.ph b/doc/metrics/pzdr.ph
new file mode 100644 (file)
index 0000000..4f82f71
--- /dev/null
@@ -0,0 +1,38 @@
+%PS_ZapfDingbats = (
+  name => 'ZapfDingbats',
+  widths => [
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+      278,   974,   961,   974,   980,   719,   789,   790,
+      791,   690,   960,   939,   549,   855,   911,   933,
+      911,   945,   974,   755,   846,   762,   761,   571,
+      677,   763,   760,   759,   754,   494,   552,   537,
+      577,   692,   786,   788,   788,   790,   793,   794,
+      816,   823,   789,   841,   823,   833,   816,   831,
+      923,   744,   723,   749,   790,   792,   695,   776,
+      768,   792,   759,   707,   708,   682,   701,   826,
+      815,   789,   789,   707,   687,   696,   689,   786,
+      787,   713,   791,   785,   791,   873,   761,   762,
+      762,   759,   759,   892,   892,   788,   784,   438,
+      138,   277,   415,   392,   392,   668,   668,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,
+        0,   732,   544,   544,   910,   667,   760,   760,
+      776,   595,   694,   626,   788,   788,   788,   788,
+      788,   788,   788,   788,   788,   788,   788,   788,
+      788,   788,   788,   788,   788,   788,   788,   788,
+      788,   788,   788,   788,   788,   788,   788,   788,
+      788,   788,   788,   788,   788,   788,   788,   788,
+      788,   788,   788,   788,   894,   838,  1016,   458,
+      748,   924,   748,   918,   927,   928,   928,   834,
+      873,   828,   924,   924,   917,   930,   931,   463,
+      883,   836,   836,   867,   867,   696,   696,   874,
+        0,   874,   760,   946,   771,   865,   771,   888,
+      967,   888,   831,   873,   927,   970,   918,     0
+  ],
+  kern => {  }
+);
diff --git a/doc/psfonts.ph b/doc/psfonts.ph
new file mode 100644 (file)
index 0000000..fe1fe20
--- /dev/null
@@ -0,0 +1,44 @@
+#!/usr/bin/perl
+#
+# Font metrics for the PS code generator
+#
+
+# These files are generated from AFM files
+require 'metrics/ptmr8a.ph';   # Times-Roman
+require 'metrics/ptmri8a.ph';  # Times-Italic
+require 'metrics/pcrr8a.ph';   # Courier
+require 'metrics/pcrb8a.ph';   # Courier-Bold
+require 'metrics/phvb8a.ph';   # Helvetica-Bold
+require 'metrics/phvbo8a.ph';  # Helvetica-BoldOblique
+
+# The fonts we want to use for various things
+# The order is: <normal> <emphatic> <code>
+
+%ChapFont = (name => 'cfont',
+             leading => 18,
+            fonts => [[18,\%PS_Helvetica_Bold],
+                      [18,\%PS_Helvetica_BoldOblique],
+                      [18,\%PS_Courier_Bold]]);
+%HeadFont = (name => 'hfont',
+            leading => 14,
+            fonts => [[14,\%PS_Helvetica_Bold],
+                      [14,\%PS_Helvetica_BoldOblique],
+                      [14,\%PS_Courier_Bold]]);
+%SubhFont = (name => 'sfont',
+            leading => 12,
+            fonts => [[12,\%PS_Helvetica_Bold],
+                      [12,\%PS_Helvetica_BoldOblique],
+                      [12,\%PS_Courier_Bold]]);
+%TextFont = (name => 'tfont',
+            leading => 11,
+            fonts => [[11,\%PS_Times_Roman],
+                      [11,\%PS_Times_Italic],
+                      [11,\%PS_Courier]]);
+
+#
+# List of all fontsets; used to compute the list of fonts needed
+#
+@AllFonts = ( \%ChapFont, \%HeadFont, \%SubhFont, \%TextFont );
+
+# OK
+1;
diff --git a/doc/pswidth.ph b/doc/pswidth.ph
new file mode 100644 (file)
index 0000000..b3fd736
--- /dev/null
@@ -0,0 +1,26 @@
+#!/usr/bin/perl
+#
+# Get the width of a PostScript string in font units
+# (1000 font units == the font point height) given a set of
+# font metrics.
+#
+sub ps_width($$) {
+    my($str, $met) = @_;
+    my($w) = 0;
+    my($i,$c,$p);
+
+    $l = length($str);
+    undef $p;
+    for ( $i = 0 ; $i < $l ; $i++ ) {
+       $c = substr($str,$i,1);
+       $w += $$met{widths}[ord($c)];
+       # The standard PostScript "show" operator doesn't do kerning.
+       # $w += $$met{kern}{$p.$c};
+       $p = $c;
+    }
+    
+    return $w;
+}
+
+# OK
+1;