1151497Sru#! /bin/awk -f
2151497Sru
3151497Sru# Correct Intellifont-based height metrics for several glyphs in
4151497Sru# special font for TrueType CG Times (LaserJet 4000 and later).
5151497Sru
6151497Srufunction scale(num)
7151497Sru{
8151497Sru  return int(num * em + 0.5)
9151497Sru}
10151497Sru
11151497SruBEGIN {
12151497Sru  FS = "\t"
13151497Sru  OFS = "\t"
14151497Sru  em = 26346	# Intellifont (8782 DU/em) and hpftodit(1) multiplier of 3
15151497Sru
16151497Sru  ascent["integralcrvmid"] = scale(0.84358)
17151497Sru  descent["integralcrvmid"] = scale(0.25006)
18151497Sru  ascent["integralbt"] = scale(0.84358)
19151497Sru  descent["integralbt"] = scale(0.15164)
20151497Sru  ascent["lt"] = scale(0.84358)
21151497Sru  descent["lt"] = scale(0.15164)
22151497Sru  ascent["parenlefttp"] = scale(0.84358)
23151497Sru  descent["parenlefttp"] = scale(0.15164)
24151497Sru  ascent["bracelefttp"] = scale(0.84358)
25151497Sru  descent["bracelefttp"] = scale(0.15164)
26151497Sru  ascent["lk"] = scale(0.84358)
27151497Sru  descent["lk"] = scale(0.15164)
28151497Sru  ascent["braceleftmid"] = scale(0.84358)
29151497Sru  descent["braceleftmid"] = scale(0.15164)
30151497Sru  ascent["lb"] = scale(0.84358)
31151497Sru  descent["lb"] = scale(0.15164)
32151497Sru  ascent["parenleftbt"] = scale(0.84358)
33151497Sru  descent["parenleftbt"] = scale(0.15164)
34151497Sru  ascent["braceleftbt"] = scale(0.84358)
35151497Sru  descent["braceleftbt"] = scale(0.15164)
36151497Sru  ascent["rt"] = scale(0.84358)
37151497Sru  descent["rt"] = scale(0.15164)
38151497Sru  ascent["parenrighttp"] = scale(0.84358)
39151497Sru  descent["parenrighttp"] = scale(0.15164)
40151497Sru  ascent["bracerighttp"] = scale(0.84358)
41151497Sru  descent["bracerighttp"] = scale(0.15164)
42151497Sru  ascent["rk"] = scale(0.84358)
43151497Sru  descent["rk"] = scale(0.15164)
44151497Sru  ascent["bracerightmid"] = scale(0.84358)
45151497Sru  descent["bracerightmid"] = scale(0.15164)
46151497Sru  ascent["rb"] = scale(0.84358)
47151497Sru  descent["rb"] = scale(0.15164)
48151497Sru  ascent["parenrightbt"] = scale(0.84358)
49151497Sru  descent["parenrightbt"] = scale(0.15164)
50151497Sru  ascent["bracerightbt"] = scale(0.84358)
51151497Sru  descent["bracerightbt"] = scale(0.15164)
52151497Sru  ascent["parenrightex"] = scale(0.84358)
53151497Sru  descent["parenrightex"] = scale(0.15164)
54151497Sru  ascent["parenleftex"] = scale(0.84358)
55151497Sru  descent["parenleftex"] = scale(0.15164)
56151497Sru  ascent["bv"] = scale(0.84358)
57151497Sru  descent["bv"] = scale(0.15164)
58151497Sru  ascent["bracerightex"] = scale(0.84358)
59151497Sru  descent["bracerightex"] = scale(0.15164)
60151497Sru  ascent["braceleftex"] = scale(0.84358)
61151497Sru  descent["braceleftex"] = scale(0.15164)
62151497Sru  ascent["integralex"] = scale(0.84358)
63151497Sru  descent["integralex"] = scale(0.15164)
64151497Sru  ascent["bracketrightex"] = scale(0.84358)
65151497Sru  descent["bracketrightex"] = scale(0.15164)
66151497Sru  ascent["bracketleftex"] = scale(0.84358)
67151497Sru  descent["bracketleftex"] = scale(0.15164)
68151497Sru  ascent["barex"] = scale(0.84358)
69151497Sru  descent["barex"] = scale(0.15164)
70151497Sru}
71151497Sru{
72151497Sru  if ($2 != "\"" && ascent[$1]) {
73151497Sru    n = split($2, temp, ",")
74151497Sru    $2 = sprintf("%d,%d,%d", temp[1], ascent[$1], descent[$1])
75151497Sru    # just in case there are additional metrics
76151497Sru    for (i = 4; i <= n; i++)
77151497Sru      $2 = $2 "," temp[i]
78151497Sru  }
79151497Sru  print $0
80151497Sru}
81151497Sru
82151497Sru# EOF
83