OSDN Git Service

luatexja-core.sty: insert \leavevmode in the def. of \ltjjachar and \ltjalchar
[luatex-ja/luatexja.git] / src / jfm-ujis.lua
index f7f541d..08f567d 100644 (file)
--- A sample of Japanese font metric for pluatex
--- The unit of <height>, <depth>: 
--- The unit of other dimension: the design size
-
-jfm.dir = 'yoko'
--- 'yoko'
-
-jfm.zw= 1.0; jfm.zh = 1.0
--- amount of ``1zw'' and ``1zh'' (these units are used in pTeX)
-
-
--- character type
--- jfm.define_char_type(<type>, <letters>)
-jfm.define_char_type(1, {
-  0x2018, 0x201C, 0x3008, 0x300A, 0x300C, 0x300E, 0x3010, 0x3014, 0x3016, 
-  0x3018, 0x301D, 0xFF08, 0xFF3B, 0xFF5B, 0xFF5F
-                    }) -- 開き括弧類
-jfm.define_char_type(2, {
-  0x2019, 0x201D, 0x3001, 0x3009, 0x300B, 0x300D, 0x300F, 0x3011, 0x3015, 
-  0x3017, 0x3019, 0x301F, 0xFF09, 0xFF0C, 0xFF3D, 0xFF5D, 0xFF60
-                    }) -- 閉じ括弧類
-jfm.define_char_type(3, {0x30FB, 0xFF1A, 0xFF1B}) -- 中点類
-jfm.define_char_type(4, {0x3002, 0xFF0E}) -- 句点類
-jfm.define_char_type(5, {0x2015, 0x2025, 0x2026}) -- ダッシュ
-jfm.define_char_type(6, {'boxbdd'})
-jfm.define_char_type(7, {
-  0xFF61, 0xFF62, 0xFF63, 0xFF64, 0xFF65, 0xFF66, 0xFF67, 0xFF68, 0xFF69, 
-  0xFF6A, 0xFF6B, 0xFF6C, 0xFF6D, 0xFF6E, 0xFF6F, 0xFF70, 0xFF71, 0xFF72, 
-  0xFF73, 0xFF74, 0xFF75, 0xFF76, 0xFF77, 0xFF78, 0xFF79, 0xFF7A, 0xFF7B, 
-  0xFF7C, 0xFF7D, 0xFF7E, 0xFF7F, 0xFF80, 0xFF81, 0xFF82, 0xFF83, 0xFF84, 
-  0xFF85, 0xFF86, 0xFF87, 0xFF88, 0xFF89, 0xFF8A, 0xFF8B, 0xFF8C, 0xFF8D, 
-  0xFF8E, 0xFF8F, 0xFF90, 0xFF91, 0xFF92, 0xFF93, 0xFF94, 0xFF95, 0xFF96, 
-  0xFF97, 0xFF98, 0xFF99, 0xFF9A, 0xFF9B, 0xFF9C, 0xFF9D, 0xFF9E, 0xFF9F
-}) -- 半角カナ
-
-
--- 'boxbdd' matches 
---       o the beginning of paragraphs and hboxes
---       o the ending of paragraphs and hboxes
---       o just after the hbox created by \parindent
-
--- 'jcharbdd' matches the boundary between two Japanese characters whose metrics (or sizes) 
---            are different.
-
--- 'diffmet' matches the boundary between a Japanese character 
---           and a material which is not a Japanese character.
-
--- dimension
--- jfm.define_type_dim(<type>, <left>, <down>, <width>, 
---                     <height>, <depth>, <italic correction>)
-jfm.define_type_dim(0, 0.0 , 0.0 , 1.0 , 0.88, 0.12, 0.0)
-jfm.define_type_dim(1, 0.5 , 0.0 , 0.5 , 0.88, 0.12, 0.0)
-jfm.define_type_dim(2, 0.0 , 0.0 , 0.5 , 0.88, 0.12, 0.0)
-jfm.define_type_dim(3, 0.25, 0.0 , 0.5 , 0.88, 0.12, 0.0)
-jfm.define_type_dim(4, 0.0 , 0.0 , 0.5 , 0.88, 0.12, 0.0)
-jfm.define_type_dim(5, 0.0 , 0.0 , 1.0 , 0.88, 0.12, 0.0)
--- jfm.define_type_dim(6, 0.0 , 0.0 , 1.0 , 0.88, 0.12, 0.0): does not needed
-jfm.define_type_dim(7, 0.0 , 0.0 , 0.5 , 0.88, 0.12, 0.0)
-
--- glue/kern
--- jfm.define_glue(<btype>, <atype>, <width>, <stretch>, <shrink>)
--- jfm.define_kern(<btype>, <atype>, <width>)
-jfm.define_glue(0,1, 0.5 , 0.0, 0.5 )
-jfm.define_glue(7,1, 0.5 , 0.0, 0.5 )
-jfm.define_glue(0,3, 0.25, 0.0, 0.25)
-jfm.define_glue(7,3, 0.25, 0.0, 0.25)
-jfm.define_glue(1,3, 0.25, 0.0, 0.25)
-jfm.define_glue(2,0, 0.5 , 0.0, 0.5 )
-jfm.define_glue(2,7, 0.5 , 0.0, 0.5 )
-jfm.define_glue(2,1, 0.5 , 0.0, 0.5 )
-jfm.define_glue(2,3, 0.25, 0.0, 0.25)
-jfm.define_glue(2,5, 0.5 , 0.0, 0.5 )
-jfm.define_glue(3,0, 0.25, 0.0, 0.25)
-jfm.define_glue(3,7, 0.25, 0.0, 0.25)
-jfm.define_glue(3,1, 0.25, 0.0, 0.25)
-jfm.define_glue(3,2, 0.25, 0.0, 0.25)
-jfm.define_glue(3,3, 0.5 , 0.0, 0.5 )
-jfm.define_glue(3,4, 0.25, 0.0, 0.25)
-jfm.define_glue(3,5, 0.25, 0.0, 0.25)
-jfm.define_glue(4,0, 0.5 , 0.0, 0.0 )
-jfm.define_glue(4,7, 0.5 , 0.0, 0.0 )
-jfm.define_glue(4,1, 0.5 , 0.0, 0.0 )
-jfm.define_glue(4,3, 0.75, 0.0, 0.25)
-jfm.define_glue(4,5, 0.5 , 0.0, 0.0 )
-jfm.define_glue(5,1, 0.5 , 0.0, 0.5 )
-jfm.define_glue(5,3, 0.25, 0.0, 0.25)
-jfm.define_kern(5,5, 0.0)
\ No newline at end of file
+-- -*- coding: utf-8 -*-
+-- jfm-ujis.lua: LuaTeX-ja 標準 JFM
+-- based on upnmlminr-h.tfm (a metric in UTF/OTF package used by upTeX).
+
+-- JIS X 4051:2004 では,行末の句読点や中点はベタなのでそれに従う
+-- kanjiskip:    0pt plus .25zw minus 0pt
+-- xkanjiskip: .25zw plus .25zw (or .0833zw) minus .125zw
+
+local t = {
+   version = 3,
+   dir = 'yoko',
+   zw = 1.0, zh = 1.0,
+   kanjiskip =  { 0.0, 0.25, 0 },
+   xkanjiskip = { 0.25, 0.25, .125 },
+   [0] = {
+      align = 'left', left = 0.0, down = 0.0,
+      width = 1.0, height = 0.88, depth = 0.12, italic=0.0,
+      glue = {
+        [1] = { 0.5 , 0.0, 0.5, ratio=1, kanjiskip_stretch=1 },
+        [2] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [3] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
+        [4] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [6] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [007] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [107] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [207] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [8] = { 0, 0, 0, kanjiskip_shrink=1 },
+      },
+      kern = { [307] = 0 },     
+      round_threshold = 0.01,
+   },
+
+   [1] = { -- 開き括弧類
+      chars = {
+        '‘', '“', '〈', '《', '「', '『', '【', '〔', '〖',
+        '〘', '〝', '(', '[', '{', '⦅'
+      },
+      align = 'right', left = 0.0, down = 0.0,
+      width = 0.5, height = 0.88, depth = 0.12, italic=0.0,
+      glue = {
+-- 3 のみ四分,あとは0
+         [0] = { 0, 0, 0, kanjiskip_shrink=1 },
+         [1] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [2] = { 0, 0, 0, kanjiskip_shrink=1, kanjiskip_stretch=1 },
+        [3] = { 0.25, 0.0, 0.25, priority=1 },
+        [4] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [5] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [105] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [205] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [305] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [405] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [6] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [007] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [107] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [207] = { 0, 0, 0, kanjiskip_shrink=1 },
+         [8] = { 0, 0, 0, kanjiskip_shrink=1 },
+      }
+   },
+
+   [2] = { -- 閉じ括弧類
+      chars = {
+        '’', '”', '〉', '》', '」', '』', '】', '〕',
+        '〗', '〙', '〟', ')', ']', '}', '⦆', '、', ',*'
+      },
+      align = 'left', left = 0.0, down = 0.0,
+      width = 0.5, height = 0.88, depth = 0.12, italic=0.0,
+      glue = {
+-- 3 は四分, 2, 4, 9 は0, あとは0.5
+        [0] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
+        [1] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
+         [2] = { 0, 0, 0, kanjiskip_shrink=1},
+        [3] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
+         [4] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [5] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
+        [105] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
+        [205] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
+        [305] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
+        [405] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
+        [6] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
+        [007] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
+        [107] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
+        [207] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
+        [8] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
+      }
+   },
+
+   [3] = { -- 中点類
+      chars = {'・', ':', ';', '·'},
+      align = 'middle', left = 0.0, down = 0.0,
+      width = 0.5, height = 0.88, depth = 0.12, italic=0.0,
+      --end_stretch = 0.25,
+      glue = {
+-- 3 のみ 0.5,あとは0.25
+        [0] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
+        [1] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
+        [2] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
+        [3] = { 0.5 , 0.0, 0.5 , priority=1 },
+        [4] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
+        [5] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
+        [105] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
+        [205] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
+        [305] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
+        [405] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
+        [6] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
+        [007] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
+        [107] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
+        [207] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
+        [8] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
+      }
+   },
+
+   [4] = { -- 句点類
+      chars = {'。', '.'},
+      align = 'left', left = 0.0, down = 0.0,
+      width = 0.5, height = 0.88, depth = 0.12, italic=0.0,
+      glue = {
+         -- 3 は.75, 2, 4 は0, あとは0.5
+        [0] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
+        [1] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
+        [3] = { 0.75, 0.0, 0.25, priority=1, ratio=1./3, kanjiskip_stretch=1 },
+        [5] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
+        [105] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
+        [205] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
+        [305] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
+        [405] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
+        [6] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
+        [007] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
+        [107] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
+        [207] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
+        [8] = { 0.5 , 0.0, 0.5, ratio=0, kanjiskip_stretch=1 },
+      }
+   },
+
+   [5] = { -- 分離禁止文字
+      chars = { '―', '‥', '…', '〳', '〴', '〵', },
+      align = 'left', left = 0.0, down = 0.0,
+      width = 1.0, height = 0.88, depth = 0.12, italic=0.0,
+      glue = {
+        [1] = { 0.5 , 0.0, 0.5, ratio=1, kanjiskip_stretch=1 },
+        [2] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [3] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
+        [4] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [6] = { 0, 0, 0, kanjiskip_shrink=1 },
+      },
+      kern = {
+        [5] = 0.0, [105] = 0.0, [205] = 0.0, [305] = 0.0, [405] = 0.0,
+      }
+   },
+
+   [105] = { -- 二分(二重)ダッシュ
+      chars = { '゠', '–' },
+      align = 'middle', left = 0.0, down = 0.0,
+      width = 0.5, height = 0.88, depth = 0.12, italic=0.0,
+      glue = {
+        [1] = { 0.5 , 0.0, 0.5, ratio=1, kanjiskip_stretch=1 },
+        [2] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [3] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
+        [4] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [6] = { 0, 0, 0, kanjiskip_shrink=1 },
+      },
+      kern = {
+        [5] = 0.0, [105] = 0.0, [205] = 0.0, [305] = 0.0, [405] = 0.0,
+      }
+   },
+
+   [205] = { -- em-dash
+      chars = { 0x2014 },
+      align = 'middle', left = 0.0, down = 0.0,
+      width = 1, height = 0.88, depth = 0.12, italic=0.0,
+      glue = {
+        [1] = { 0.5 , 0.0, 0.5, ratio=1, kanjiskip_stretch=1 },
+        [2] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [3] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
+        [4] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [6] = { 0, 0, 0, kanjiskip_shrink=1 },
+      },
+      kern = {
+        [5] = 0.0, [105] = 0.0, [205] = 0.0, [305] = 0.0, [405] = 0.0,
+      }
+   },
+   [305] = { -- two-em dash
+      chars = { 0x2E3A },
+      align = 'middle', left = 0.0, down = 0.0,
+      width = 2, height = 0.88, depth = 0.12, italic=0.0,
+      glue = {
+        [1] = { 0.5 , 0.0, 0.5, ratio=1, kanjiskip_stretch=1 },
+        [2] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [3] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
+        [4] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [6] = { 0, 0, 0, kanjiskip_shrink=1 },
+      },
+      kern = {
+        [5] = 0.0, [105] = 0.0, [205] = 0.0, [305] = 0.0, [405] = 0.0,
+      }
+   },
+   [405] = { -- three-em dash
+      chars = { 0x2E3B },
+      align = 'middle', left = 0.0, down = 0.0,
+      width = 3, height = 0.88, depth = 0.12, italic=0.0,
+      glue = {
+        [1] = { 0.5 , 0.0, 0.5, ratio=1, kanjiskip_stretch=1 },
+        [2] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [3] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
+        [4] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [6] = { 0, 0, 0, kanjiskip_shrink=1 },
+      },
+      kern = {
+        [5] = 0.0, [105] = 0.0, [205] = 0.0, [305] = 0.0, [405] = 0.0,
+      }
+   },
+
+   [6] = { -- 感嘆符・疑問符
+      chars = { '?', '!', '‼', '⁇', '⁈', '⁉', },
+      align = 'left', left = 0.0, down = 0.0,
+      width = 1.0, height = 0.88, depth = 0.12, italic=0.0,
+      glue = {
+         [0] = { 0.5 , 0.0, 0.5, ratio=1, kanjiskip_stretch=1 },
+        [1] = { 0.5 , 0.0, 0.5, ratio=1, kanjiskip_stretch=1 },
+        [2] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [3] = { 0.75, 0.0, 0.25, priority=1, ratio=1 },
+        [4] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [6] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [007] = { 0.5 , 0.0, 0.5, ratio=1, kanjiskip_stretch=1 },
+        [107] = { 0.5 , 0.0, 0.5, ratio=1, kanjiskip_stretch=1 },
+        [207] = { 0.5 , 0.0, 0.5, ratio=1, kanjiskip_stretch=1 },
+        [8] = { 0, 0, 0, kanjiskip_shrink=1 },
+      },
+      kern = {
+        [5] = 0.0, [105] = 0.0, [205] = 0.0, [305] = 0.0, [405] = 0.0,
+      }
+   },
+
+   [007] = { -- 半角カナ,その他半角CID
+      chars = {
+        '。', '「', '」', '、', '・', 'ヲ', 'ァ', 'ィ', 'ゥ',
+        'ェ', 'ォ', 'ャ', 'ュ', 'ョ', 'ッ', 'ー', 'ア', 'イ',
+        'ウ', 'エ', 'オ', 'カ', 'キ', 'ク', 'ケ', 'コ', 'サ',
+        'シ', 'ス', 'セ', 'ソ', 'タ', 'チ', 'ツ', 'テ', 'ト',
+        'ナ', 'ニ', 'ヌ', 'ネ', 'ノ', 'ハ', 'ヒ', 'フ', 'ヘ',
+        'ホ', 'マ', 'ミ', 'ム', 'メ', 'モ', 'ヤ', 'ユ', 'ヨ',
+        'ラ', 'リ', 'ル', 'レ', 'ロ', 'ワ', 'ン', '゙', '゚',
+      },
+      align = 'left', left = 0.0, down = 0.0,
+      width = 0.5, height = 0.88, depth = 0.12, italic=0.0,
+      glue = {
+        [1] = { 0.5 , 0.0, 0.5, ratio=1, kanjiskip_stretch=1 },
+        [2] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [3] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
+        [4] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [6] = { 0, 0, 0, kanjiskip_shrink=1 },
+         [8] = { 0, 0, 0, kanjiskip_shrink=1 },
+      },
+      kern = { [307] = 0 },     
+   },
+
+   [107] = { -- 1/3 角
+      chars = {},
+      align = 'left', left = 0.0, down = 0.0,
+      width = 1/3, height = 0.88, depth = 0.12, italic=0.0,
+      glue = {
+        [1] = { 0.5 , 0.0, 0.5, ratio=1, kanjiskip_stretch=1 },
+        [2] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [3] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
+        [4] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [6] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [107] = { 0, 0, 0, kanjiskip_shrink=1 },
+         [8] = { 0, 0, 0, kanjiskip_shrink=1 },
+      }
+   },
+
+   [207] = { -- 1/4 角
+      chars = {},
+      align = 'left', left = 0.0, down = 0.0,
+      width = 0.25, height = 0.88, depth = 0.12, italic=0.0,
+      glue = {
+        [1] = { 0.5 , 0.0, 0.5, ratio=1, kanjiskip_stretch=1 },
+        [2] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [3] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
+        [4] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [6] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [207] = { 0, 0, 0, kanjiskip_shrink=1 },
+         [8] = { 0, 0, 0, kanjiskip_shrink=1 },
+      }
+   },
+
+   [307] = { -- 合成用(半)濁点
+      chars = { 0x3099, 0x309A },
+      align = 'right', left = 0.0, down = 0.0,
+      width = 0, height = 0.88, depth = 0.12, italic=0.0,
+      glue = {
+        [1] = { 0.5 , 0.0, 0.5, ratio=1, kanjiskip_stretch=1 },
+        [2] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [3] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
+        [4] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [6] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [207] = { 0, 0, 0, kanjiskip_shrink=1 },
+         [8] = { 0, 0, 0, kanjiskip_shrink=1 },
+      }
+   },
+
+   [8] = { -- 罫線類.
+      chars = {
+        '─', '━', '│', '┃', '┄', '┅', '┆', '┇',
+        '┈', '┉', '┊', '┋', '┌', '┍', '┎', '┏',
+        '┐', '┑', '┒', '┓', '└', '┕', '┖', '┗',
+        '┘', '┙', '┚', '┛', '├', '┝', '┞', '┟',
+        '┠', '┡', '┢', '┣', '┤', '┥', '┦', '┧',
+        '┨', '┩', '┪', '┫', '┬', '┭', '┮', '┯',
+        '┰', '┱', '┲', '┳', '┴', '┵', '┶', '┷',
+        '┸', '┹', '┺', '┻', '┼', '┽', '┾', '┿',
+        '╀', '╁', '╂', '╃', '╄', '╅', '╆', '╇',
+        '╈', '╉', '╊', '╋', '╌', '╍', '╎', '╏',
+        '═', '║', '╒', '╓', '╔', '╕', '╖', '╗',
+        '╘', '╙', '╚', '╛', '╜', '╝', '╞', '╟',
+        '╠', '╡', '╢', '╣', '╤', '╥', '╦', '╧',
+        '╨', '╩', '╪', '╫', '╬', '╭', '╮', '╯',
+        '╰', '╱', '╲', '╳', '╴', '╵', '╶', '╷',
+        '╸', '╹', '╺', '╻', '╼', '╽', '╾', '╿',
+      },
+      align = 'left', left = 0.0, down = 0.0,
+      width = 1.0, height = 0.88, depth = 0.12, italic=0.0,
+      glue = {
+        [1] = { 0.5 , 0.0, 0.5, ratio=1, kanjiskip_stretch=1 },
+        [2] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [3] = { 0.25, 0.0, 0.25, priority=1, ratio=1 },
+        [4] = { 0, 0, 0, kanjiskip_shrink=1 },
+        [6] = { 0, 0, 0, kanjiskip_shrink=1 },
+      },
+      kern = {
+        [8] = 0.0
+      }
+   },
+
+   [99] = { -- box末尾
+      chars = {'boxbdd', 'glue'},
+   },
+   [199] = { -- box末尾
+      chars = {'parbdd'},
+   },
+}
+
+local ht = t[007].chars
+for i=231,632 do ht[#ht+1] = 'AJ1-' .. tostring(i) end
+for i=8718,8719 do ht[#ht+1] = 'AJ1-' .. tostring(i) end
+for i=12063,12087 do ht[#ht+1] = 'AJ1-' .. tostring(i) end
+local ht = t[107].chars
+for i=9758,9778 do ht[#ht+1] = 'AJ1-' .. tostring(i) end
+local ht = t[207].chars
+for i=9738,9757 do ht[#ht+1] = 'AJ1-' .. tostring(i) end
+
+t[100]=table.fastcopy(t[0])
+t[100].chars={'nox_alchar'}
+for i,v in pairs(t) do
+  if i~=6 and type(i)=='number' and type(v)=='table' then -- 感嘆符以外
+    if v.glue and v.glue[0] then v.glue[100] = v.glue[0] end
+    if v.kern and v.kern[0] then v.kern[100] = v.kern[0] end
+  end
+end
+t[200]=table.fastcopy(t[0])
+t[200].chars={ 0x3031,0x3032 }
+t[200].height=1.38; t[200].depth=0.62
+for i,v in pairs(t) do
+  if type(i)=='number' and type(v)=='table' then
+    if v.glue and v.glue[0] then v.glue[200] = v.glue[0] end
+    if v.kern and v.kern[0] then v.kern[200] = v.kern[0] end
+  end
+end
+
+local jf = luatexja.jfont.jfm_feature
+if jf and jf.beginpar_middledot_zw==true then
+    t[199].kern = { [3] = 0.25 }
+end
+
+luatexja.jfont.define_jfm(t)