83 lines
2.6 KiB
Awk
83 lines
2.6 KiB
Awk
#! /bin/awk -f
|
|
|
|
# Correct Intellifont-based height metrics for several glyphs in
|
|
# special font for TrueType CG Times (LaserJet 4000 and later).
|
|
|
|
function scale(num)
|
|
{
|
|
return int(num * em + 0.5)
|
|
}
|
|
|
|
BEGIN {
|
|
FS = "\t"
|
|
OFS = "\t"
|
|
em = 26346 # Intellifont (8782 DU/em) and hpftodit(1) multiplier of 3
|
|
|
|
ascent["integralcrvmid"] = scale(0.84358)
|
|
descent["integralcrvmid"] = scale(0.25006)
|
|
ascent["integralbt"] = scale(0.84358)
|
|
descent["integralbt"] = scale(0.15164)
|
|
ascent["lt"] = scale(0.84358)
|
|
descent["lt"] = scale(0.15164)
|
|
ascent["parenlefttp"] = scale(0.84358)
|
|
descent["parenlefttp"] = scale(0.15164)
|
|
ascent["bracelefttp"] = scale(0.84358)
|
|
descent["bracelefttp"] = scale(0.15164)
|
|
ascent["lk"] = scale(0.84358)
|
|
descent["lk"] = scale(0.15164)
|
|
ascent["braceleftmid"] = scale(0.84358)
|
|
descent["braceleftmid"] = scale(0.15164)
|
|
ascent["lb"] = scale(0.84358)
|
|
descent["lb"] = scale(0.15164)
|
|
ascent["parenleftbt"] = scale(0.84358)
|
|
descent["parenleftbt"] = scale(0.15164)
|
|
ascent["braceleftbt"] = scale(0.84358)
|
|
descent["braceleftbt"] = scale(0.15164)
|
|
ascent["rt"] = scale(0.84358)
|
|
descent["rt"] = scale(0.15164)
|
|
ascent["parenrighttp"] = scale(0.84358)
|
|
descent["parenrighttp"] = scale(0.15164)
|
|
ascent["bracerighttp"] = scale(0.84358)
|
|
descent["bracerighttp"] = scale(0.15164)
|
|
ascent["rk"] = scale(0.84358)
|
|
descent["rk"] = scale(0.15164)
|
|
ascent["bracerightmid"] = scale(0.84358)
|
|
descent["bracerightmid"] = scale(0.15164)
|
|
ascent["rb"] = scale(0.84358)
|
|
descent["rb"] = scale(0.15164)
|
|
ascent["parenrightbt"] = scale(0.84358)
|
|
descent["parenrightbt"] = scale(0.15164)
|
|
ascent["bracerightbt"] = scale(0.84358)
|
|
descent["bracerightbt"] = scale(0.15164)
|
|
ascent["parenrightex"] = scale(0.84358)
|
|
descent["parenrightex"] = scale(0.15164)
|
|
ascent["parenleftex"] = scale(0.84358)
|
|
descent["parenleftex"] = scale(0.15164)
|
|
ascent["bv"] = scale(0.84358)
|
|
descent["bv"] = scale(0.15164)
|
|
ascent["bracerightex"] = scale(0.84358)
|
|
descent["bracerightex"] = scale(0.15164)
|
|
ascent["braceleftex"] = scale(0.84358)
|
|
descent["braceleftex"] = scale(0.15164)
|
|
ascent["integralex"] = scale(0.84358)
|
|
descent["integralex"] = scale(0.15164)
|
|
ascent["bracketrightex"] = scale(0.84358)
|
|
descent["bracketrightex"] = scale(0.15164)
|
|
ascent["bracketleftex"] = scale(0.84358)
|
|
descent["bracketleftex"] = scale(0.15164)
|
|
ascent["barex"] = scale(0.84358)
|
|
descent["barex"] = scale(0.15164)
|
|
}
|
|
{
|
|
if ($2 != "\"" && ascent[$1]) {
|
|
n = split($2, temp, ",")
|
|
$2 = sprintf("%d,%d,%d", temp[1], ascent[$1], descent[$1])
|
|
# just in case there are additional metrics
|
|
for (i = 4; i <= n; i++)
|
|
$2 = $2 "," temp[i]
|
|
}
|
|
print $0
|
|
}
|
|
|
|
# EOF
|