OSDN Git Service

fix "Command `\colon' already defined" error when fontspec is loaded without no-math...
[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 luatexja.jfont.define_jfm {
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          [7] = { 0, 0, 0, kanjiskip_shrink=1 },
25          [8] = { 0, 0, 0, kanjiskip_shrink=1 },
26       }
27    },
28
29    [1] = { -- 開き括弧類
30       chars = {
31          '‘', '“', '〈', '《', '「', '『', '【', '〔', '〖',
32          '〘', '〝', '(', '[', '{', '⦅'
33       },
34       align = 'right', left = 0.0, down = 0.0,
35       width = 0.5, height = 0.88, depth = 0.12, italic=0.0,
36       glue = {
37 -- 3 のみ四分,あとは0
38          [0] = { 0, 0, 0, kanjiskip_shrink=1 },
39          [1] = { 0, 0, 0, kanjiskip_shrink=1 },
40          [2] = { 0, 0, 0, kanjiskip_shrink=1, kanjiskip_stretch=1 },
41          [3] = { 0.25, 0.0, 0.25, priority=1 },
42          [4] = { 0, 0, 0, kanjiskip_shrink=1 },
43          [5] = { 0, 0, 0, kanjiskip_shrink=1 },
44          [6] = { 0, 0, 0, kanjiskip_shrink=1 },
45          [7] = { 0, 0, 0, kanjiskip_shrink=1 },
46          [8] = { 0, 0, 0, kanjiskip_shrink=1 },
47       }
48    },
49
50    [2] = { -- 閉じ括弧類
51       chars = {
52          '’', '”', '〉', '》', '」', '』', '】', '〕',
53          '〗', '〙', '〟', ')', ']', '}', '⦆', '、', ',*'
54       },
55       align = 'left', left = 0.0, down = 0.0,
56       width = 0.5, height = 0.88, depth = 0.12, italic=0.0,
57       glue = {
58 -- 3 は四分, 2, 4, 9 は0, あとは0.5
59          [0] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
60          [1] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
61          [2] = { 0, 0, 0, kanjiskip_shrink=1},
62          [3] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
63          [4] = { 0, 0, 0, kanjiskip_shrink=1 },
64          [5] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
65          [6] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
66          [7] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
67          [8] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
68       }
69    },
70
71    [3] = { -- 中点類
72       chars = {'・', ':', ';'},
73       align = 'middle', left = 0.0, down = 0.0,
74       width = 0.5, height = 0.88, depth = 0.12, italic=0.0,
75       --end_stretch = 0.25,
76       glue = {
77 -- 3 のみ 0.5,あとは0.25
78          [0] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
79          [1] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
80          [2] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
81          [3] = { 0.5 , 0.0, 0.5 , priority=1 },
82          [4] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
83          [5] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
84          [6] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
85          [7] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
86          [8] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
87       }
88    },
89
90    [4] = { -- 句点類
91       chars = {'。', '.'},
92       align = 'left', left = 0.0, down = 0.0,
93       width = 0.5, height = 0.88, depth = 0.12, italic=0.0,
94       glue = {
95 -- 3 は.75, 2, 4 は0, あとは0.5
96          [0] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
97          [1] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
98          [3] = { 0.75, 0.0, 0.25, priority=1, ratio=1./3, kanjiskip_stretch=1 },
99          [5] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
100          [6] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
101          [7] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
102          [8] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
103       }
104    },
105
106    [5] = { -- ダッシュ
107       chars = { '—', '―', '‥', '…', '〳', '〴', '〵', },
108       align = 'left', left = 0.0, down = 0.0,
109       width = 1.0, height = 0.88, depth = 0.12, italic=0.0,
110       glue = {
111          [1] = { 0.5 , 0.0, 0.5, ratio=1, kanjiskip_stretch=1 },
112          [2] = { 0, 0, 0, kanjiskip_shrink=1 },
113          [3] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
114          [4] = { 0, 0, 0, kanjiskip_shrink=1 },
115          [6] = { 0, 0, 0, kanjiskip_shrink=1 },
116       },
117       kern = {
118          [5] = 0.0
119       }
120    },
121
122    [6] = { -- 感嘆符・疑問符
123       chars = { '?', '!', '‼', '⁇', '⁈', '⁉', },
124       align = 'left', left = 0.0, down = 0.0,
125       width = 1.0, height = 0.88, depth = 0.12, italic=0.0,
126       glue = {
127          [0] = { 0.5 , 0.0, 0.5, ratio=1, kanjiskip_stretch=1 },
128          [1] = { 0.5 , 0.0, 0.5, ratio=1, kanjiskip_stretch=1 },
129          [2] = { 0, 0, 0, kanjiskip_shrink=1 },
130          [3] = { 0.75, 0.0, 0.25, priority=1, ratio=1 },
131          [4] = { 0, 0, 0, kanjiskip_shrink=1 },
132          [6] = { 0, 0, 0, kanjiskip_shrink=1 },
133          [7] = { 0.5 , 0.0, 0.5, ratio=1, kanjiskip_stretch=1 },
134          [8] = { 0, 0, 0, kanjiskip_shrink=1 },
135       },
136       kern = {
137          [5] = 0.0
138       }
139    },
140
141    [7] = { -- 半角カナ
142       chars = {
143          '。', '「', '」', '、', '・', 'ヲ', 'ァ', 'ィ', 'ゥ',
144          'ェ', 'ォ', 'ャ', 'ュ', 'ョ', 'ッ', 'ー', 'ア', 'イ',
145          'ウ', 'エ', 'オ', 'カ', 'キ', 'ク', 'ケ', 'コ', 'サ',
146          'シ', 'ス', 'セ', 'ソ', 'タ', 'チ', 'ツ', 'テ', 'ト',
147          'ナ', 'ニ', 'ヌ', 'ネ', 'ノ', 'ハ', 'ヒ', 'フ', 'ヘ',
148          'ホ', 'マ', 'ミ', 'ム', 'メ', 'モ', 'ヤ', 'ユ', 'ヨ',
149          'ラ', 'リ', 'ル', 'レ', 'ロ', 'ワ', 'ン', '゙', '゚',
150          "AJ1-516", "AJ1-517", "AJ1-518", "AJ1-519", "AJ1-520", "AJ1-521", "AJ1-522",
151          "AJ1-523", "AJ1-524", "AJ1-525", "AJ1-526", "AJ1-527", "AJ1-528", "AJ1-529",
152          "AJ1-530", "AJ1-531", "AJ1-532", "AJ1-533", "AJ1-534", "AJ1-535", "AJ1-536",
153          "AJ1-537", "AJ1-538", "AJ1-539", "AJ1-540", "AJ1-541", "AJ1-542", "AJ1-543",
154          "AJ1-544", "AJ1-545", "AJ1-546", "AJ1-547", "AJ1-548", "AJ1-549", "AJ1-550",
155          "AJ1-551", "AJ1-552", "AJ1-553", "AJ1-554", "AJ1-555", "AJ1-556", "AJ1-557",
156          "AJ1-558", "AJ1-559", "AJ1-560", "AJ1-561", "AJ1-562", "AJ1-563", "AJ1-564",
157          "AJ1-565", "AJ1-566", "AJ1-567", "AJ1-568", "AJ1-569", "AJ1-570", "AJ1-571",
158          "AJ1-572", "AJ1-573", "AJ1-574", "AJ1-575", "AJ1-576", "AJ1-577", "AJ1-578",
159          "AJ1-579", "AJ1-580", "AJ1-581", "AJ1-582", "AJ1-583", "AJ1-584", "AJ1-585",
160          "AJ1-586", "AJ1-587", "AJ1-588", "AJ1-589", "AJ1-590", "AJ1-591", "AJ1-592",
161          "AJ1-593", "AJ1-594", "AJ1-595", "AJ1-596", "AJ1-597", "AJ1-598",
162       },
163       align = 'left', left = 0.0, down = 0.0,
164       width = 0.5, height = 0.88, depth = 0.12, italic=0.0,
165       glue = {
166          [1] = { 0.5 , 0.0, 0.5, ratio=1, kanjiskip_stretch=1 },
167          [2] = { 0, 0, 0, kanjiskip_shrink=1 },
168          [3] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
169          [4] = { 0, 0, 0, kanjiskip_shrink=1 },
170          [6] = { 0, 0, 0, kanjiskip_shrink=1 },
171          [7] = { 0, 0, 0, kanjiskip_shrink=1 },
172          [8] = { 0, 0, 0, kanjiskip_shrink=1 },
173       }
174    },
175
176    [8] = { -- 罫線類.
177       chars = {
178          '─', '━', '│', '┃', '┄', '┅', '┆', '┇',
179          '┈', '┉', '┊', '┋', '┌', '┍', '┎', '┏',
180          '┐', '┑', '┒', '┓', '└', '┕', '┖', '┗',
181          '┘', '┙', '┚', '┛', '├', '┝', '┞', '┟',
182          '┠', '┡', '┢', '┣', '┤', '┥', '┦', '┧',
183          '┨', '┩', '┪', '┫', '┬', '┭', '┮', '┯',
184          '┰', '┱', '┲', '┳', '┴', '┵', '┶', '┷',
185          '┸', '┹', '┺', '┻', '┼', '┽', '┾', '┿',
186          '╀', '╁', '╂', '╃', '╄', '╅', '╆', '╇',
187          '╈', '╉', '╊', '╋', '╌', '╍', '╎', '╏',
188          '═', '║', '╒', '╓', '╔', '╕', '╖', '╗',
189          '╘', '╙', '╚', '╛', '╜', '╝', '╞', '╟',
190          '╠', '╡', '╢', '╣', '╤', '╥', '╦', '╧',
191          '╨', '╩', '╪', '╫', '╬', '╭', '╮', '╯',
192          '╰', '╱', '╲', '╳', '╴', '╵', '╶', '╷',
193          '╸', '╹', '╺', '╻', '╼', '╽', '╾', '╿',
194       },
195       align = 'left', left = 0.0, down = 0.0,
196       width = 1.0, height = 0.88, depth = 0.12, italic=0.0,
197       glue = {
198          [1] = { 0.5 , 0.0, 0.5, ratio=1, kanjiskip_stretch=1 },
199          [2] = { 0, 0, 0, kanjiskip_shrink=1 },
200          [3] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
201          [4] = { 0, 0, 0, kanjiskip_shrink=1 },
202          [6] = { 0, 0, 0, kanjiskip_shrink=1 },
203       },
204       kern = {
205          [8] = 0.0
206       }
207    },
208
209
210    [99] = { -- box末尾
211       chars = {'boxbdd', 'parbdd'},
212       glue = {
213          [3] = { 0.25, 0.0, 0.25, priority=1 },
214       }
215    },
216
217 }