OSDN Git Service

More non-embedded 'standard' fonts by MaQiYuan (Chinese and Korean fonts)
[luatex-ja/luatexja.git] / src / mk-rmlgbm-data.tex
1 %#! lualatex
2 \documentclass{article}
3
4 \usepackage{luaotfload}
5 \usepackage{luacode}
6
7 \begin{luacode}
8 function mkrmlgbm(nonfilename,opfilename)
9         local fontdata = containers.read(fonts.otf.cache, nonfilename)
10                 
11         -- from fonts.otf.otf_to_tfm()
12         local tfmdata
13         fontdata.shared = fontdata.shared or {
14            featuredata = { },
15            anchorhash  = { },
16            initialized = false,
17         }
18         tfmdata = fonts.otf.copy_to_tfm(fontdata)
19         tfmdata.unique = tfmdata.unique or { }
20         tfmdata.shared = tfmdata.shared or { } -- combine
21         local shared = tfmdata.shared
22         shared.otfdata = fontdata
23         shared.features = features -- default
24         shared.dynamics = { }
25         shared.processes = { }
26         tfmdata.luatex = fontdata.luatex
27         tfmdata.indices = fontdata.luatex.indices
28         tfmdata.unicodes = fontdata.luatex.unicodes
29         tfmdata.marks = fontdata.luatex.marks
30         tfmdata.originals = fontdata.luatex.originals
31         tfmdata.changed = { }
32         tfmdata.has_italic = fontdata.metadata.has_italic
33         if not tfmdata.language then tfmdata.language = 'dflt' end
34         if not tfmdata.script   then tfmdata.script   = 'dflt' end
35         _, shared.features = fonts.otf.set_features(tfmdata,fonts.define.check(features,fonts.otf.features.default))
36         
37         -- from fonts.otf.read_from_open_type()
38         tfmdata = fonts.tfm.scale(tfmdata, 655360)
39         
40         -- delete extra data
41         fontdata.subfonts = nil
42         fontdata.metadata = {}
43         fontdata.pfminfo = {}
44         fontdata.luatex.filename = 'dummy.otf'
45         fontdata.luatex.foundfilename = nil
46         fontdata.size = nil
47         fontdata.time = nil
48         fontdata.glyphs = nil
49         fontdata.luatex.indices = nil
50         fontdata.luatex.unicodes = nil
51         fontdata.luatex.originals = nil
52         fontdata.luatex.tounicode = nil
53         tfmdata.indices = nil
54         tfmdata.descriptions = {}
55         
56         tfmdata.psname = ''
57         tfmdata.filename = ''
58         tfmdata.fontname = ''
59         tfmdata.fullname = ''
60         tfmdata.name = ''
61         tfmdata.embedding = 'no'
62         tfmdata.cache = 'yes'
63         
64         for k, v in pairs(tfmdata.characters) do
65            tfmdata.characters[k].height = nil
66         end
67         
68         -- for luaotfload
69         fontdata.pfminfo.os2_capheight = 0
70         
71         table.tofile(opfilename, tfmdata, 'return', false, true, false)
72 end
73 mkrmlgbm('AdobeMingStd-Light', 'luatexja-cid-std-adobe-cns1.lua')
74 mkrmlgbm('AdobeSongStd-Light', 'luatexja-cid-std-adobe-gb1.lua')
75 mkrmlgbm('KozMinPr6N-Regular', 'luatexja-cid-std-adobe-japan1.lua')
76 mkrmlgbm('AdobeMyungjoStd-Medium', 'luatexja-cid-std-adobe-korea1.lua')
77 \end{luacode}
78
79 \begin{document}
80 \end{document}