summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorDan Allen <dan.j.allen@gmail.com>2014-04-18 22:52:50 -0600
committerDan Allen <dan.j.allen@gmail.com>2014-04-18 22:52:50 -0600
commit36057b5cb430db0d1f23557f848de1ca7b812644 (patch)
tree56fb09962f4b7a7768c912ec0fe8c8c20452adef /scripts
parent27a8559730b71d35eeb8d71d03783d37dd7fadda (diff)
font improvements
- regenerate Noto Serif fonts from upstream - add script to generate optimized subset of Noto Serif fonts - enable kerning in a standard way except on Kindle - fix link color in abstract in WebKit - prevent iBooks from hyphenating the chapter title - update WORKLOG
Diffstat (limited to 'scripts')
-rw-r--r--scripts/optimize-noto-serif-fonts.pe211
1 files changed, 211 insertions, 0 deletions
diff --git a/scripts/optimize-noto-serif-fonts.pe b/scripts/optimize-noto-serif-fonts.pe
new file mode 100644
index 0000000..557b96f
--- /dev/null
+++ b/scripts/optimize-noto-serif-fonts.pe
@@ -0,0 +1,211 @@
+# Run using:
+# $ fontforge -script optimize-noto-serif-fonts.pe
+# Run against fonts from https://code.google.com/p/noto/source/browse/#svn%2Ftrunk%2Ffonts%2Findividual%2Funhinted
+# IMPORTANT: Must generate Apple format (0x10) or include old-fashioned 'kern' table for kerning to work in Prawn
+# generate flags (additive):
+# * 0x00 - OpenType
+# * 0x10 - Apple
+# * 0x80 - OpenType and Apple
+# * 0x90 - Neither OpenType or Apple
+# * 0x800 - Generate old-style 'kern' table
+# * 0x08 - exclude TrueType instructions
+# NotoSerif Regular
+Open("NotoSerif-Regular.ttf")
+SelectAll()
+ClearInstrs()
+#Simplify()
+#RoundToInt()
+SelectNone()
+# Basic Latin
+SelectMore(0u0020,0u007e)
+# Latin-1 Supplement
+SelectMore(0u00a0,0u00ff)
+# Mathematical Operators
+SelectMore(0u2200,0u22ff)
+# General Punctuation (most)
+SelectMore(0u2000,0u203a)
+# Trademark sign
+SelectMore(0u2122)
+# Geometric Shapes
+SelectMore(0u25a0,0u25ff)
+# Latin Extended-A, Latin Extended-B
+SelectMore(0u0100,0u024f)
+# IPA Extensions
+#SelectMore(0u0250,0u02af)
+# Upside-down e
+SelectMore(0u0259)
+# Spacing Modifier Letters
+SelectMore(0u02b0,0u02ff)
+# Greek
+SelectMore(0u0370,0u03ff)
+# Greek Extended
+#SelectMore(0u1f00,0u1fff)
+# Cyrillic
+SelectMore(0u0400,0u04ff)
+# Cyrillic Supplement
+#SelectMore(0u0500,0u052f)
+# Latin Extended Additional
+SelectMore(0u1e00,0u1eff)
+# Currency Symbols
+SelectMore(0u20a0,0u20d0)
+# Latin Ligatures
+#SelectMore(0ufb00,0ufb06)
+# BOM
+SelectMore(0ufeff)
+# Non-marking return
+SelectMore(0u000d)
+SelectInvert()
+Clear()
+SelectNone()
+Generate("noto-serif-regular.ttf", "", 0x08)
+Close()
+# NotoSerif Bold
+Open("NotoSerif-Bold.ttf")
+SelectAll()
+ClearInstrs()
+#Simplify()
+#RoundToInt()
+SelectNone()
+# Basic Latin
+SelectMore(0u0020,0u007e)
+# Latin-1 Supplement
+SelectMore(0u00a0,0u00ff)
+# Mathematical Operators
+SelectMore(0u2200,0u22ff)
+# General Punctuation (most)
+SelectMore(0u2000,0u203a)
+# Trademark sign
+SelectMore(0u2122)
+# Geometric Shapes
+SelectMore(0u25a0,0u25ff)
+# Latin Extended-A, Latin Extended-B
+SelectMore(0u0100,0u024f)
+# IPA Extensions
+#SelectMore(0u0250,0u02af)
+# Upside-down e
+SelectMore(0u0259)
+# Spacing Modifier Letters
+SelectMore(0u02b0,0u02ff)
+# Greek
+SelectMore(0u0370,0u03ff)
+# Greek Extended
+#SelectMore(0u1f00,0u1fff)
+# Cyrillic
+SelectMore(0u0400,0u04ff)
+# Cyrillic Supplement
+#SelectMore(0u0500,0u052f)
+# Latin Extended Additional
+SelectMore(0u1e00,0u1eff)
+# Currency Symbols
+SelectMore(0u20a0,0u20d0)
+# Latin Ligatures
+#SelectMore(0ufb00,0ufb06)
+# BOM
+SelectMore(0ufeff)
+# Non-marking return
+SelectMore(0u000d)
+SelectInvert()
+Clear()
+SelectNone()
+Generate("noto-serif-bold.ttf", "", 0x08)
+Close()
+# NotoSerif Italic
+Open("NotoSerif-Italic.ttf")
+SelectAll()
+ClearInstrs()
+#Simplify()
+#RoundToInt()
+SelectNone()
+# Basic Latin
+SelectMore(0u0020,0u007e)
+# Latin-1 Supplement
+SelectMore(0u00a0,0u00ff)
+# Mathematical Operators
+SelectMore(0u2200,0u22ff)
+# General Punctuation (most)
+SelectMore(0u2000,0u203a)
+# Trademark sign
+SelectMore(0u2122)
+# Geometric Shapes
+SelectMore(0u25a0,0u25ff)
+# Latin Extended-A, Latin Extended-B
+SelectMore(0u0100,0u024f)
+# IPA Extensions
+#SelectMore(0u0250,0u02af)
+# Upside-down e
+SelectMore(0u0259)
+# Spacing Modifier Letters
+SelectMore(0u02b0,0u02ff)
+# Greek
+SelectMore(0u0370,0u03ff)
+# Greek Extended
+#SelectMore(0u1f00,0u1fff)
+# Cyrillic
+SelectMore(0u0400,0u04ff)
+# Cyrillic Supplement
+#SelectMore(0u0500,0u052f)
+# Latin Extended Additional
+SelectMore(0u1e00,0u1eff)
+# Currency Symbols
+SelectMore(0u20a0,0u20d0)
+# Latin Ligatures
+#SelectMore(0ufb00,0ufb06)
+# BOM
+SelectMore(0ufeff)
+# Non-marking return
+SelectMore(0u000d)
+SelectInvert()
+Clear()
+SelectNone()
+Generate("noto-serif-italic.ttf", "", 0x08)
+Close()
+# NotoSerif Bold Italic
+Open("NotoSerif-BoldItalic.ttf")
+SelectAll()
+ClearInstrs()
+#Simplify()
+#RoundToInt()
+SelectNone()
+# Basic Latin
+SelectMore(0u0020,0u007e)
+# Latin-1 Supplement
+SelectMore(0u00a0,0u00ff)
+# Mathematical Operators
+SelectMore(0u2200,0u22ff)
+# General Punctuation (most)
+SelectMore(0u2000,0u203a)
+# Trademark sign
+SelectMore(0u2122)
+# Geometric Shapes
+SelectMore(0u25a0,0u25ff)
+# Latin Extended-A, Latin Extended-B
+SelectMore(0u0100,0u024f)
+# IPA Extensions
+#SelectMore(0u0250,0u02af)
+# Upside-down e
+SelectMore(0u0259)
+# Spacing Modifier Letters
+SelectMore(0u02b0,0u02ff)
+# Greek
+SelectMore(0u0370,0u03ff)
+# Greek Extended
+#SelectMore(0u1f00,0u1fff)
+# Cyrillic
+SelectMore(0u0400,0u04ff)
+# Cyrillic Supplement
+#SelectMore(0u0500,0u052f)
+# Latin Extended Additional
+SelectMore(0u1e00,0u1eff)
+# Currency Symbols
+SelectMore(0u20a0,0u20d0)
+# Latin Ligatures
+#SelectMore(0ufb00,0ufb06)
+# BOM
+SelectMore(0ufeff)
+# Non-marking return
+SelectMore(0u000d)
+SelectInvert()
+Clear()
+SelectNone()
+Generate("noto-serif-bold-italic.ttf", "", 0x08)
+Close()