* fixed bug where condensed version of serif italic didn't get proper (sub)family...
[dejavu.git] / dejavu-fonts / scripts / narrow.pe
blob8e707fbfb3ffa1eefb825b78ecee62407a53b39b
1 #!/usr/bin/env fontforge
2 # $Id$
4 # script file for FontForge for font narrowing
5 # usage: fontforge -script narrow.pe scale *.sfd
6 #   created files have suffix .narrow
8 # DejaVu Condensed have scale 90
10 if ($version < "20050209")
11   Error("Your version of FontForge transforms glyphs w/o content");
12 endif
13 if ($argc < 2)
14   Error("usage: scale sfds...")
15 endif
16 scale = Strtol($argv[1])
17 i = 2
18 while (i < $argc)
19   Open($argv[i], 1)
20   SelectAll()
21   Scale(scale, 100, 0, 0)
22   # Panose changes are valid only for DejaVu fonts (I guess)
23   SetPanose(3, 6)
24   new_fontname = $fontname
25   old_familyname = $familyname
26   j = Strstr(new_fontname, "-Roman")
27   if (j > -1)
28     new_fontname = Strsub(new_fontname, 0, j)
29   endif
30   j = Strstr(new_fontname, "-")
31   if (j > -1)
32     new_fontname = Strsub(new_fontname, 0, j) + "Condensed" + Strsub(new_fontname, j)
33   else
34     new_fontname = new_fontname + "Condensed"
35   endif
36   new_fullname = $fullname
37   newprefsubfamily = "Condensed"
38   new_subfamily = $weight
39   j = Strstr(new_fullname, "Bold")
40   if (j == -1)
41     j = Strstr(new_fullname, "Oblique")
42   endif
43   if (j == -1)
44     j = Strstr(new_fullname, "Italic")
45   endif
46   if (j > -1)
47     new_subfamily = Strsub(new_fullname, j)
48     new_fullname = Strsub(new_fullname, 0, j) + "Condensed " + new_subfamily
49     newprefsubfamily = newprefsubfamily + " " + new_subfamily
50   else
51     new_fullname = new_fullname + " Condensed"
52   endif
53   new_familyname = $familyname + " Condensed"
54   SetFontNames(new_fontname, new_familyname, new_fullname)
55   SetOS2Value("Width",4)
56   SetTTFName(1033, 2, new_subfamily) # ttf_subfamily
57   SetTTFName(1033, 3, new_fullname) # ttf_uniqueid
58   SetTTFName(1033, 16, old_familyname) # ttf_preffamilyname
59   SetTTFName(1033, 17, newprefsubfamily) # ttf_prefmodifiers
60   Save($argv[i] + ".narrow")
61   i++
62 endloop