1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
#!/usr/bin/env ruby
# This file is part of the Gentium package for TeX.
# It is licensed under the Expat License, see doc//README for details.
#
# This script generates *.fd, *.tfm and *.map files. It also takes encoding
# files (*.enc) containing small and capital letters and creates encoding
# files for small caps from them. It doesn't touch other files, like *.sty or
# support files for ConTeXt. This script is called without any parameters.
#
# TODO: Make it work with current version of Ruby! It works with version
# 1.8.7, but not with version as old as 1.9.1.
require './gentium'
# encodings
encodings = EncodingSet.new
[ "ot1", "ec", "texnansi", "l7x", "qx", "t5", "ts1" ].each do |enc|
encodings[enc] = Encoding.new(enc, true) # name, supported_by_basic
end
[ "t2a", "t2b", "t2c", "x2", "agr", "lgr" ].each do |enc|
encodings[enc] = Encoding.new(enc, false) # name, supported_by_basic
end
# fonts
font_gentiumplus_rm = Font.new("GentiumPlus-Regular", "GentiumPlus-Regular", "gentiumplus-regular")
font_gentiumplus_it = Font.new("GentiumPlus-Italic", "GentiumPlus-Italic", "gentiumplus-italic")
font_gentiumplus_bf = Font.new("GentiumPlus-Bold", "GentiumPlus-Bold", "gentiumplus-bold")
font_gentiumplus_bi = Font.new("GentiumPlus-BoldItalic", "GentiumPlus-BoldItalic", "gentiumplus-bolditalic")
fontlist = [font_gentiumplus_rm, font_gentiumplus_it, font_gentiumplus_bf, font_gentiumplus_bi]
font_gentiumbook_rm = Font.new("GentiumBookPlus-Regular", "GentiumBookPlus-Regular", "gentiumbook-regular")
font_gentiumbook_it = Font.new("GentiumBookPlus-Italic", "GentiumBookPlus-Italic", "gentiumbook-italic")
font_gentiumbook_bf = Font.new("GentiumBookPlus-Bold", "GentiumBookPlus-Bold", "gentiumbook-bold")
font_gentiumbook_bi = Font.new("GentiumBookPlus-BoldItalic", "GentiumBookPlus-BoldItalic", "gentiumbook-bolditalic")
fontlist_book = [font_gentiumbook_rm, font_gentiumbook_it, font_gentiumbook_bf, font_gentiumbook_bi]
encodings.each_value do |encoding|
# generate 'enc' files for small caps
if encoding.has_smallcaps? then
# font_gentiumplus_rm is needed to check for glyph names
encoding.generate_enc_sc(font_gentiumplus_rm)
end
# generate 'fd' files
if encoding.is_used_in_latex? then
encoding.generate_fd
encoding.generate_fd_book # GentiumBookPlus family
end
# generate 'tfm' files
fontlist.each do |font|
font.generate_tfms(encoding)
end
fontlist_book.each do |font|
font.generate_tfms(encoding)
end
end
# generate 'map' files
encodings.generate_maps(fontlist)
encodings.generate_maps_book(fontlist_book)
|