1 -- -*- coding: utf-8 -*-
2 -- jfm-ujis.lua: LuaTeX-ja 標準 JFM
3 -- based on upnmlminr-h.tfm (a metric in UTF/OTF package used by upTeX).
5 -- JIS X 4051:2004 では,行末の句読点や中点はベタなのでそれに従う
6 -- kanjiskip: 0pt plus .25zw minus 0pt
7 -- xkanjiskip: .25zw plus .25zw (or .0833zw) minus .125zw
13 kanjiskip = { 0.0, 0.25, 0 },
14 xkanjiskip = { 0.25, 0.25, .125 },
16 align = 'left', left = 0.0, down = 0.0,
17 width = 1.0, height = 0.88, depth = 0.12, italic=0.0,
19 [1] = { 0.5 , 0.0, 0.5, ratio=1, kanjiskip_stretch=1 },
20 [2] = { 0, 0, 0, kanjiskip_shrink=1 },
21 [3] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
22 [4] = { 0, 0, 0, kanjiskip_shrink=1 },
23 [6] = { 0, 0, 0, kanjiskip_shrink=1 },
24 [007] = { 0, 0, 0, kanjiskip_shrink=1 },
25 [107] = { 0, 0, 0, kanjiskip_shrink=1 },
26 [207] = { 0, 0, 0, kanjiskip_shrink=1 },
27 [8] = { 0, 0, 0, kanjiskip_shrink=1 },
33 '‘', '“', '〈', '《', '「', '『', '【', '〔', '〖',
34 '〘', '〝', '(', '[', '{', '⦅'
36 align = 'right', left = 0.0, down = 0.0,
37 width = 0.5, height = 0.88, depth = 0.12, italic=0.0,
40 [0] = { 0, 0, 0, kanjiskip_shrink=1 },
41 [1] = { 0, 0, 0, kanjiskip_shrink=1 },
42 [2] = { 0, 0, 0, kanjiskip_shrink=1, kanjiskip_stretch=1 },
43 [3] = { 0.25, 0.0, 0.25, priority=1 },
44 [4] = { 0, 0, 0, kanjiskip_shrink=1 },
45 [5] = { 0, 0, 0, kanjiskip_shrink=1 },
46 [105] = { 0, 0, 0, kanjiskip_shrink=1 },
47 [6] = { 0, 0, 0, kanjiskip_shrink=1 },
48 [007] = { 0, 0, 0, kanjiskip_shrink=1 },
49 [107] = { 0, 0, 0, kanjiskip_shrink=1 },
50 [207] = { 0, 0, 0, kanjiskip_shrink=1 },
51 [8] = { 0, 0, 0, kanjiskip_shrink=1 },
57 '’', '”', '〉', '》', '」', '』', '】', '〕',
58 '〗', '〙', '〟', ')', ']', '}', '⦆', '、', ',*'
60 align = 'left', left = 0.0, down = 0.0,
61 width = 0.5, height = 0.88, depth = 0.12, italic=0.0,
63 -- 3 は四分, 2, 4, 9 は0, あとは0.5
64 [0] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
65 [1] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
66 [2] = { 0, 0, 0, kanjiskip_shrink=1},
67 [3] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
68 [4] = { 0, 0, 0, kanjiskip_shrink=1 },
69 [5] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
70 [105] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
71 [6] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
72 [007] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
73 [107] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
74 [207] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
75 [8] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
80 chars = {'・', ':', ';'},
81 align = 'middle', left = 0.0, down = 0.0,
82 width = 0.5, height = 0.88, depth = 0.12, italic=0.0,
86 [0] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
87 [1] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
88 [2] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
89 [3] = { 0.5 , 0.0, 0.5 , priority=1 },
90 [4] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
91 [5] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
92 [105] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
93 [6] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
94 [007] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
95 [107] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
96 [207] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
97 [8] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
103 align = 'left', left = 0.0, down = 0.0,
104 width = 0.5, height = 0.88, depth = 0.12, italic=0.0,
106 -- 3 は.75, 2, 4 は0, あとは0.5
107 [0] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
108 [1] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
109 [3] = { 0.75, 0.0, 0.25, priority=1, ratio=1./3, kanjiskip_stretch=1 },
110 [5] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
111 [105] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
112 [6] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
113 [007] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
114 [107] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
115 [207] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
116 [8] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
121 chars = { '—', '―', '‥', '…', '〳', '〴', '〵', },
122 align = 'left', left = 0.0, down = 0.0,
123 width = 1.0, height = 0.88, depth = 0.12, italic=0.0,
125 [1] = { 0.5 , 0.0, 0.5, ratio=1, kanjiskip_stretch=1 },
126 [2] = { 0, 0, 0, kanjiskip_shrink=1 },
127 [3] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
128 [4] = { 0, 0, 0, kanjiskip_shrink=1 },
129 [6] = { 0, 0, 0, kanjiskip_shrink=1 },
137 [105] = { -- 二分(二重)ダッシュ
138 chars = { '゠', '–' },
139 align = 'middle', left = 0.0, down = 0.0,
140 width = 0.5, height = 0.88, depth = 0.12, italic=0.0,
142 [1] = { 0.5 , 0.0, 0.5, ratio=1, kanjiskip_stretch=1 },
143 [2] = { 0, 0, 0, kanjiskip_shrink=1 },
144 [3] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
145 [4] = { 0, 0, 0, kanjiskip_shrink=1 },
146 [6] = { 0, 0, 0, kanjiskip_shrink=1 },
155 chars = { '?', '!', '‼', '⁇', '⁈', '⁉', },
156 align = 'left', left = 0.0, down = 0.0,
157 width = 1.0, height = 0.88, depth = 0.12, italic=0.0,
159 [0] = { 0.5 , 0.0, 0.5, ratio=1, kanjiskip_stretch=1 },
160 [1] = { 0.5 , 0.0, 0.5, ratio=1, kanjiskip_stretch=1 },
161 [2] = { 0, 0, 0, kanjiskip_shrink=1 },
162 [3] = { 0.75, 0.0, 0.25, priority=1, ratio=1 },
163 [4] = { 0, 0, 0, kanjiskip_shrink=1 },
164 [6] = { 0, 0, 0, kanjiskip_shrink=1 },
165 [007] = { 0.5 , 0.0, 0.5, ratio=1, kanjiskip_stretch=1 },
166 [107] = { 0.5 , 0.0, 0.5, ratio=1, kanjiskip_stretch=1 },
167 [207] = { 0.5 , 0.0, 0.5, ratio=1, kanjiskip_stretch=1 },
168 [8] = { 0, 0, 0, kanjiskip_shrink=1 },
176 [007] = { -- 半角カナ,その他半角CID
178 '。', '「', '」', '、', '・', 'ヲ', 'ァ', 'ィ', 'ゥ',
179 'ェ', 'ォ', 'ャ', 'ュ', 'ョ', 'ッ', 'ー', 'ア', 'イ',
180 'ウ', 'エ', 'オ', 'カ', 'キ', 'ク', 'ケ', 'コ', 'サ',
181 'シ', 'ス', 'セ', 'ソ', 'タ', 'チ', 'ツ', 'テ', 'ト',
182 'ナ', 'ニ', 'ヌ', 'ネ', 'ノ', 'ハ', 'ヒ', 'フ', 'ヘ',
183 'ホ', 'マ', 'ミ', 'ム', 'メ', 'モ', 'ヤ', 'ユ', 'ヨ',
184 'ラ', 'リ', 'ル', 'レ', 'ロ', 'ワ', 'ン', '゙', '゚',
186 align = 'left', left = 0.0, down = 0.0,
187 width = 0.5, height = 0.88, depth = 0.12, italic=0.0,
189 [1] = { 0.5 , 0.0, 0.5, ratio=1, kanjiskip_stretch=1 },
190 [2] = { 0, 0, 0, kanjiskip_shrink=1 },
191 [3] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
192 [4] = { 0, 0, 0, kanjiskip_shrink=1 },
193 [6] = { 0, 0, 0, kanjiskip_shrink=1 },
194 [8] = { 0, 0, 0, kanjiskip_shrink=1 },
200 align = 'left', left = 0.0, down = 0.0,
201 width = 1/3, height = 0.88, depth = 0.12, italic=0.0,
203 [1] = { 0.5 , 0.0, 0.5, ratio=1, kanjiskip_stretch=1 },
204 [2] = { 0, 0, 0, kanjiskip_shrink=1 },
205 [3] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
206 [4] = { 0, 0, 0, kanjiskip_shrink=1 },
207 [6] = { 0, 0, 0, kanjiskip_shrink=1 },
208 [107] = { 0, 0, 0, kanjiskip_shrink=1 },
209 [8] = { 0, 0, 0, kanjiskip_shrink=1 },
215 align = 'left', left = 0.0, down = 0.0,
216 width = 0.25, height = 0.88, depth = 0.12, italic=0.0,
218 [1] = { 0.5 , 0.0, 0.5, ratio=1, kanjiskip_stretch=1 },
219 [2] = { 0, 0, 0, kanjiskip_shrink=1 },
220 [3] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
221 [4] = { 0, 0, 0, kanjiskip_shrink=1 },
222 [6] = { 0, 0, 0, kanjiskip_shrink=1 },
223 [207] = { 0, 0, 0, kanjiskip_shrink=1 },
224 [8] = { 0, 0, 0, kanjiskip_shrink=1 },
230 '─', '━', '│', '┃', '┄', '┅', '┆', '┇',
231 '┈', '┉', '┊', '┋', '┌', '┍', '┎', '┏',
232 '┐', '┑', '┒', '┓', '└', '┕', '┖', '┗',
233 '┘', '┙', '┚', '┛', '├', '┝', '┞', '┟',
234 '┠', '┡', '┢', '┣', '┤', '┥', '┦', '┧',
235 '┨', '┩', '┪', '┫', '┬', '┭', '┮', '┯',
236 '┰', '┱', '┲', '┳', '┴', '┵', '┶', '┷',
237 '┸', '┹', '┺', '┻', '┼', '┽', '┾', '┿',
238 '╀', '╁', '╂', '╃', '╄', '╅', '╆', '╇',
239 '╈', '╉', '╊', '╋', '╌', '╍', '╎', '╏',
240 '═', '║', '╒', '╓', '╔', '╕', '╖', '╗',
241 '╘', '╙', '╚', '╛', '╜', '╝', '╞', '╟',
242 '╠', '╡', '╢', '╣', '╤', '╥', '╦', '╧',
243 '╨', '╩', '╪', '╫', '╬', '╭', '╮', '╯',
244 '╰', '╱', '╲', '╳', '╴', '╵', '╶', '╷',
245 '╸', '╹', '╺', '╻', '╼', '╽', '╾', '╿',
247 align = 'left', left = 0.0, down = 0.0,
248 width = 1.0, height = 0.88, depth = 0.12, italic=0.0,
250 [1] = { 0.5 , 0.0, 0.5, ratio=1, kanjiskip_stretch=1 },
251 [2] = { 0, 0, 0, kanjiskip_shrink=1 },
252 [3] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
253 [4] = { 0, 0, 0, kanjiskip_shrink=1 },
254 [6] = { 0, 0, 0, kanjiskip_shrink=1 },
263 chars = {'boxbdd', 'parbdd'},
265 [3] = { 0.25, 0.0, 0.25, priority=1 },
271 local ht = t[007].chars
272 for i=231,632 do ht[#ht+1] = 'AJ1-' .. tostring(i) end
273 for i=8718,8719 do ht[#ht+1] = 'AJ1-' .. tostring(i) end
274 for i=12063,12087 do ht[#ht+1] = 'AJ1-' .. tostring(i) end
275 local ht = t[107].chars
276 for i=9758,9778 do ht[#ht+1] = 'AJ1-' .. tostring(i) end
277 local ht = t[207].chars
278 for i=9738,9757 do ht[#ht+1] = 'AJ1-' .. tostring(i) end
280 luatexja.jfont.define_jfm(t)