OSDN Git Service

jfm-ujis,ujis[v].lua: removed glue between 'boxbdd' and '・'
[luatex-ja/luatexja.git] / src / jfm-ujis.lua
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).
4
5 -- JIS X 4051:2004 では,行末の句読点や中点はベタなのでそれに従う
6 -- kanjiskip:    0pt plus .25zw minus 0pt
7 -- xkanjiskip: .25zw plus .25zw (or .0833zw) minus .125zw
8
9
10 local t = {
11    dir = 'yoko',
12    zw = 1.0, zh = 1.0,
13    kanjiskip =  { 0.0, 0.25, 0 },
14    xkanjiskip = { 0.25, 0.25, .125 },
15    [0] = {
16       align = 'left', left = 0.0, down = 0.0,
17       width = 1.0, height = 0.88, depth = 0.12, italic=0.0,
18       glue = {
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 },
28       }
29    },
30
31    [1] = { -- 開き括弧類
32       chars = {
33          '‘', '“', '〈', '《', '「', '『', '【', '〔', '〖',
34          '〘', '〝', '(', '[', '{', '⦅'
35       },
36       align = 'right', left = 0.0, down = 0.0,
37       width = 0.5, height = 0.88, depth = 0.12, italic=0.0,
38       glue = {
39 -- 3 のみ四分,あとは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 },
52       }
53    },
54
55    [2] = { -- 閉じ括弧類
56       chars = {
57          '’', '”', '〉', '》', '」', '』', '】', '〕',
58          '〗', '〙', '〟', ')', ']', '}', '⦆', '、', ',*'
59       },
60       align = 'left', left = 0.0, down = 0.0,
61       width = 0.5, height = 0.88, depth = 0.12, italic=0.0,
62       glue = {
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 },
76       }
77    },
78
79    [3] = { -- 中点類
80       chars = {'・', ':', ';'},
81       align = 'middle', left = 0.0, down = 0.0,
82       width = 0.5, height = 0.88, depth = 0.12, italic=0.0,
83       --end_stretch = 0.25,
84       glue = {
85 -- 3 のみ 0.5,あとは0.25
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 },
98       }
99    },
100
101    [4] = { -- 句点類
102       chars = {'。', '.'},
103       align = 'left', left = 0.0, down = 0.0,
104       width = 0.5, height = 0.88, depth = 0.12, italic=0.0,
105       glue = {
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 },
117       }
118    },
119
120    [5] = { -- 分離禁止文字
121       chars = { '—', '―', '‥', '…', '〳', '〴', '〵', },
122       align = 'left', left = 0.0, down = 0.0,
123       width = 1.0, height = 0.88, depth = 0.12, italic=0.0,
124       glue = {
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 },
130       },
131       kern = {
132          [5] = 0.0,
133          [105] = 0.0
134       }
135    },
136
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,
141       glue = {
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 },
147       },
148       kern = {
149          [5] = 0.0,
150          [105] = 0.0
151       }
152    },
153
154    [6] = { -- 感嘆符・疑問符
155       chars = { '?', '!', '‼', '⁇', '⁈', '⁉', },
156       align = 'left', left = 0.0, down = 0.0,
157       width = 1.0, height = 0.88, depth = 0.12, italic=0.0,
158       glue = {
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 },
169       },
170       kern = {
171          [5] = 0.0,
172          [105] = 0.0
173       }
174    },
175
176    [007] = { -- 半角カナ,その他半角CID
177       chars = {
178          '。', '「', '」', '、', '・', 'ヲ', 'ァ', 'ィ', 'ゥ',
179          'ェ', 'ォ', 'ャ', 'ュ', 'ョ', 'ッ', 'ー', 'ア', 'イ',
180          'ウ', 'エ', 'オ', 'カ', 'キ', 'ク', 'ケ', 'コ', 'サ',
181          'シ', 'ス', 'セ', 'ソ', 'タ', 'チ', 'ツ', 'テ', 'ト',
182          'ナ', 'ニ', 'ヌ', 'ネ', 'ノ', 'ハ', 'ヒ', 'フ', 'ヘ',
183          'ホ', 'マ', 'ミ', 'ム', 'メ', 'モ', 'ヤ', 'ユ', 'ヨ',
184          'ラ', 'リ', 'ル', 'レ', 'ロ', 'ワ', 'ン', '゙', '゚',
185       },
186       align = 'left', left = 0.0, down = 0.0,
187       width = 0.5, height = 0.88, depth = 0.12, italic=0.0,
188       glue = {
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 },
195       }
196    },
197
198    [107] = { -- 1/3 角
199       chars = {},
200       align = 'left', left = 0.0, down = 0.0,
201       width = 1/3, height = 0.88, depth = 0.12, italic=0.0,
202       glue = {
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 },
210       }
211    },
212
213    [207] = { -- 1/4 角
214       chars = {},
215       align = 'left', left = 0.0, down = 0.0,
216       width = 0.25, height = 0.88, depth = 0.12, italic=0.0,
217       glue = {
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 },
225       }
226    },
227
228    [8] = { -- 罫線類.
229       chars = {
230          '─', '━', '│', '┃', '┄', '┅', '┆', '┇',
231          '┈', '┉', '┊', '┋', '┌', '┍', '┎', '┏',
232          '┐', '┑', '┒', '┓', '└', '┕', '┖', '┗',
233          '┘', '┙', '┚', '┛', '├', '┝', '┞', '┟',
234          '┠', '┡', '┢', '┣', '┤', '┥', '┦', '┧',
235          '┨', '┩', '┪', '┫', '┬', '┭', '┮', '┯',
236          '┰', '┱', '┲', '┳', '┴', '┵', '┶', '┷',
237          '┸', '┹', '┺', '┻', '┼', '┽', '┾', '┿',
238          '╀', '╁', '╂', '╃', '╄', '╅', '╆', '╇',
239          '╈', '╉', '╊', '╋', '╌', '╍', '╎', '╏',
240          '═', '║', '╒', '╓', '╔', '╕', '╖', '╗',
241          '╘', '╙', '╚', '╛', '╜', '╝', '╞', '╟',
242          '╠', '╡', '╢', '╣', '╤', '╥', '╦', '╧',
243          '╨', '╩', '╪', '╫', '╬', '╭', '╮', '╯',
244          '╰', '╱', '╲', '╳', '╴', '╵', '╶', '╷',
245          '╸', '╹', '╺', '╻', '╼', '╽', '╾', '╿',
246       },
247       align = 'left', left = 0.0, down = 0.0,
248       width = 1.0, height = 0.88, depth = 0.12, italic=0.0,
249       glue = {
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 },
255       },
256       kern = {
257          [8] = 0.0
258       }
259    },
260
261
262    [99] = { -- box末尾
263       chars = {'boxbdd', 'parbdd'},
264    },
265
266 }
267
268 local ht = t[007].chars
269 for i=231,632 do ht[#ht+1] = 'AJ1-' .. tostring(i) end
270 for i=8718,8719 do ht[#ht+1] = 'AJ1-' .. tostring(i) end
271 for i=12063,12087 do ht[#ht+1] = 'AJ1-' .. tostring(i) end
272 local ht = t[107].chars
273 for i=9758,9778 do ht[#ht+1] = 'AJ1-' .. tostring(i) end
274 local ht = t[207].chars
275 for i=9738,9757 do ht[#ht+1] = 'AJ1-' .. tostring(i) end
276
277 luatexja.jfont.define_jfm(t)