--- /dev/null
+-- -*- coding: utf-8 -*-
+-- jfm-jis.lua: JISフォントメトリック互換
+-- Besed on ujis.tfm (a counterpart of jis.tfm for upTeX).
+-- * Do not confuse with jfm-ujis.lua.
+
+local vscale = 0.916443 / 0.962216
+local vht = 0.777588 / 0.962216
+local vdp = 0.138855 / 0.962216
+luatexja.jfont.define_jfm {
+ dir = 'yoko',
+ zw = 1.0, zh = vscale,
+
+ [0] = {
+ align = 'left', left = 0.0, down = 0.0,
+ width = 1.0, height = vht, depth = vdp, italic=0.0,
+ glue = {
+ [1] = { 0.5 , 0.0, 0.5 },
+ [3] = { 0.25, 0.0, 0.25 }
+ }
+ },
+
+ [1] = { -- 開き括弧類
+ chars = {
+ '‘', '“', '〈', '《', '「', '『', '【', '〔', '〖',
+ '〘', '〝', '(', '[', '{', '⦅'
+ },
+ align = 'right', left = 0.0, down = 0.0,
+ width = 0.5, height = vht, depth = vdp, italic=0.0,
+ glue = {
+ [3] = { 0.25, 0.0, 0.25 }
+ }
+ },
+
+ [2] = { -- 閉じ括弧類
+ chars = {
+ '’', '”', '、', '〉', '》', '」', '』', '】', '〕',
+ '〗', '〙', '〟', ')', ',', ']', '}', '⦆'
+ },
+ align = 'left', left = 0.0, down = 0.0,
+ width = 0.5, height = vht, depth = vdp, italic=0.0,
+ glue = {
+ [0] = { 0.5 , 0.0, 0.5 },
+ [1] = { 0.5 , 0.0, 0.5 },
+ [3] = { 0.25, 0.0, 0.25 },
+ [5] = { 0.5 , 0.0, 0.5 },
+ }
+ },
+
+ [3] = { -- 中点類
+ chars = {'・', ':', ';'},
+ align = 'middle', left = 0.0, down = 0.0,
+ width = 0.5, height = vht, depth = vdp, italic=0.0,
+ glue = {
+ [0] = { 0.25, 0.0, 0.25 },
+ [1] = { 0.25, 0.0, 0.25 },
+ [2] = { 0.25, 0.0, 0.25 },
+ [3] = { 0.5 , 0.0, 0.5 },
+ [4] = { 0.25, 0.0, 0.25 },
+ [5] = { 0.25, 0.0, 0.25 },
+ }
+ },
+
+ [4] = { -- 句点類
+ chars = {'。', '.'},
+ align = 'left', left = 0.0, down = 0.0,
+ width = 0.5, height = vht, depth = vdp, italic=0.0,
+ glue = {
+ [0] = { 0.5 , 0.0, 0.0 },
+ [1] = { 0.5 , 0.0, 0.0 },
+ [3] = { 0.75, 0.0, 0.25 },
+ [5] = { 0.5 , 0.0, 0.0 },
+ }
+ },
+
+ [5] = { -- ダッシュ
+ chars = { '―', '‥', '…' },
+ align = 'left', left = 0.0, down = 0.0,
+ width = 1.0, height = vht, depth = vdp, italic=0.0,
+ glue = {
+ [1] = { 0.5 , 0.0, 0.5 },
+ [3] = { 0.25, 0.0, 0.25 }
+ },
+ kern = {
+ [5] = 0.0
+ }
+ },
+
+ [99] = { -- box末尾
+ chars = {'boxbdd'},
+ },
+
+}
\ No newline at end of file
--- /dev/null
+-- -*- coding: utf-8 -*-
+-- jfm-min.lua: min10 互換
+-- Besed on umin10.tfm (a counterpart of min10.tfm for upTeX).
+
+local vscale = 0.916443 / 0.962216
+local vht = 0.777588 / 0.962216
+local vdp = 0.138855 / 0.962216
+
+luatexja.jfont.define_jfm {
+ dir = 'yoko',
+ zw = 1.0, zh = vscale,
+
+ [0] = {
+ align = 'left', left = 0.0, down = 0.0,
+ width = 1.0, height = vht, depth = vdp, italic=0.0,
+ glue = {
+ [4] = { 0.316224, 0.0, 0.316224 },
+ [5] = { 0.238097, 0.0, 0.238097 },
+ [3] = { 0.111608, 0.0, 0.111608 },
+ [6] = { 0.476196, 0.0, 0.476196 },
+ }
+ },
+
+ [1] = {
+ chars = {
+ '〉', '》', '」', '』', '】', '〕', '〗', '〙', '〟', ')', ']', '}', '⦆ '
+ },
+ align = 'left', left = 0.0, down = 0.0,
+ width = 0.523804, height = vht, depth = vdp, italic=0.0,
+ glue = {
+ [0] = { 0.476196, 0.0, 0.238097 },
+ [7] = { 0.476196, 0.0, 0.238097 },
+ [12] = { 0.476196, 0.0, 0.238097 },
+ [13] = { 0.476196, 0.0, 0.238097 },
+ [14] = { 0.476196, 0.0, 0.238097 },
+ [10] = { 0.238097, 0.238097, 0.238097 },
+ [2] = { 0.238097, 0.238097, 0.238097 },
+ [4] = { 0.238097, 0.238097, 0.238097 },
+ [5] = { 0.238097, 0.238097, 0.238097 },
+ [3] = { 0.476196, 0.0, 0.238097 },
+ [6] = { 0.476196, 0.0, 0.238097 },
+ [11] = { 0.0, 0.476196, 0.0 },
+ [1] = { 0.0, 0.476196, 0.0 },
+ }
+ },
+
+ [2] = {
+ chars = {
+ '゛', '゜'
+ },
+ align = 'left', left = 0.0, down = 0.0,
+ width = 0.367552, height = vht, depth = vdp, italic=0.0,
+ glue = {
+ [0] = { 0.632447, 0.0, 0.238097 },
+ [7] = { 0.632447, 0.0, 0.238097 },
+ [12] = { 0.632447, 0.0, 0.238097 },
+ [13] = { 0.632447, 0.0, 0.238097 },
+ [14] = { 0.632447, 0.0, 0.238097 },
+ [10] = { 0.0, 0.316224, 0.0 },
+ [2] = { 0.0, 0.316224, 0.0 },
+ [4] = { 0.476196, 0.0, 0.238097 },
+ [5] = { 0.476196, 0.0, 0.238097 },
+ [3] = { 0.476196, 0.0, 0.238097 },
+ [6] = { 0.238097, 0.238097, 0.238097 },
+ }
+ },
+ [3] = {
+ chars = {
+ '∴', '♀', '♂', '〃', '々', 'ぁ', 'ぃ', 'ぅ', 'ぇ', 'ぉ', 'っ', 'ゃ', 'ゅ ',
+ 'ょ', 'ゎ', 'ゕ', 'ゖ', 'ゞ', 'ァ', 'ィ', 'ゥ', 'ェ', 'ォ', 'ッ', 'ャ', 'ュ', 'ョ',
+ 'ヮ', 'ヵ', 'ヶ', 'ㇰ', 'ㇱ', 'ㇲ', 'ㇳ', 'ㇴ', 'ㇵ', 'ㇶ', 'ㇷ', 'ㇸ', 'ㇹ', 'ㇺ',
+ 'ㇻ', 'ㇼ', 'ㇽ', 'ㇾ', 'ㇿ', '$', '¢', '£'
+ },
+ align = 'middle', left = 0.0, down = 0.0,
+ width = 0.776784, height = vht, depth = vdp, italic=0.0,
+ glue = {
+ [0] = { 0.111608, 0.0, 0.111608 },
+ [7] = { 0.111608, 0.0, 0.111608 },
+ [12] = { 0.111608, 0.0, 0.111608 },
+ [13] = { 0.111608, 0.0, 0.111608 },
+ [14] = { 0.111608, 0.0, 0.111608 },
+ [10] = { 0.0, 0.316224, 0.0},
+ [2] = { 0.0, 0.316224, 0.0},
+ [4] = { 0.316224, 0.0, 0.316224 },
+ [5] = { 0.238097, 0.0, 0.238097 },
+ [6] = { 0.476196, 0.0, 0.476196 },
+ [11] = { 0.111608, 0.0, 0.111608 },
+ [1] = { 0.111608, 0.0, 0.111608 },
+ },
+ },
+ [4] = {
+ chars = {
+ '´', '‐', '‖', '‘', '’', '・', '!', ':', ';', '`', '|'
+ },
+ align = 'middle', left = 0.0, down = 0.0,
+ width = 0.367552, height = vht, depth = vdp, italic=0.0,
+ glue = {
+ [0] = { 0.316224, 0.0, 0.316224 },
+ [7] = { 0.316224, 0.0, 0.316224 },
+ [12] = { 0.316224, 0.0, 0.316224 },
+ [13] = { 0.316224, 0.0, 0.316224 },
+ [14] = { 0.316224, 0.0, 0.316224 },
+ [10] = { 0.0, 0.316224, 0.0 },
+ [2] = { 0.0, 0.316224, 0.0 },
+ [4] = { 0.0, 0.316224, 0.0 },
+ [5] = { 0.0, 0.316224, 0.0 },
+ [3] = { 0.316224, 0.0, 0.316224 },
+ [6] = { 0.238097, 0.238097, 0.238097 },
+ [11] = { 0.316224, 0.0, 0.316224 },
+ [1] = { 0.316224, 0.0, 0.316224 },
+ }
+ },
+ [5] = {
+ chars = {
+ '§', '¨', '°', '“', '”', '′', '″', 'ゝ', 'ヽ', '?', '^'
+ },
+ align = 'middle', left = 0.0, down = 0.0,
+ width = 0.523804, height = vht, depth = vdp, italic=0.0,
+ glue = {
+ [0] = { 0.238097, 0.0, 0.238097 },
+ [7] = { 0.238097, 0.0, 0.238097 },
+ [12] = { 0.238097, 0.0, 0.238097 },
+ [13] = { 0.238097, 0.0, 0.238097 },
+ [14] = { 0.238097, 0.0, 0.238097 },
+ [10] = { 0.0, 0.316224, 0.0 },
+ [2] = { 0.0, 0.316224, 0.0 },
+ [4] = { 0.0, 0.316224, 0.0 },
+ [5] = { 0.0, 0.316224, 0.0 },
+ [3] = { 0.238097, 0.0, 0.238097 },
+ [6] = { 0.238097, 0.238097, 0.238097 },
+ [11] = { 0.238097, 0.0, 0.238097 },
+ [1] = { 0.238097, 0.0, 0.238097 },
+ },
+ },
+ [6] = {
+ chars = {
+ '〈', '《', '「', '『', '【', '〔', '〖', '〘', '〝', '(', '[', '{', '⦅'
+ },
+ align = 'right', left = 0.0, down = 0.0,
+ width = 0.523804, height = vht, depth = vdp, italic=0.0,
+ glue = {
+ [4] = { 0.316224, 0.0, 0.316224 },
+ [5] = { 0.238097, 0.0, 0.238097 },
+ [3] = { 0.111608, 0.0, 0.111608 },
+ [6] = { 0.0, 0.476196, 0.0 },
+ },
+ },
+ [7] = {
+ chars = {
+ 'う', 'く', 'ぐ', 'け', 'げ', 'す', 'ず', 'り', 'テ', 'デ', 'ヤ'
+ },
+ align = 'left', left = 0.0, down = 0.0,
+ width = 1.0, height = vht, depth = vdp, italic=0.0,
+ glue = {
+ [4] = { 0.316224, 0.0, 0.316224 },
+ [5] = { 0.238097, 0.0, 0.238097 },
+ [3] = { 0.111608, 0.0, 0.111608 },
+ [6] = { 0.476196, 0.0, 0.238097 },
+ },
+ kern = {
+ [10] = -0.05, [11] = -0.05
+ },
+ },
+
+ [10] = {
+ chars = {
+ ',', '.'
+ },
+ align = 'left', left = 0.0, down = 0.0,
+ width = 0.367552, height = vht, depth = vdp, italic=0.0,
+ glue = {
+ [0] = { 0.632447, 0.0, 0.238097 },
+ [7] = { 0.632447, 0.0, 0.238097 },
+ [12] = { 0.632447, 0.0, 0.238097 },
+ [13] = { 0.632447, 0.0, 0.238097 },
+ [14] = { 0.632447, 0.0, 0.238097 },
+ [10] = { 0.0, 0.316224, 0.0 },
+ [2] = { 0.0, 0.316224, 0.0 },
+ [4] = { 0.476196, 0.0, 0.238097 },
+ [5] = { 0.476196, 0.0, 0.238097 },
+ [3] = { 0.476196, 0.0, 0.238097 },
+ [6] = { 0.238097, 0.238097, 0.238097 },
+ }
+ },
+ [11] = {
+ chars = {
+ '、', '。 '
+ },
+ align = 'left', left = 0.0, down = 0.0,
+ width = 0.523804, height = vht, depth = vdp, italic=0.0,
+ glue = {
+ [0] = { 0.476196, 0.0, 0.238097 },
+ [7] = { 0.476196, 0.0, 0.238097 },
+ [12] = { 0.476196, 0.0, 0.238097 },
+ [13] = { 0.476196, 0.0, 0.238097 },
+ [14] = { 0.476196, 0.0, 0.238097 },
+ [10] = { 0.238097, 0.238097, 0.238097 },
+ [2] = { 0.238097, 0.238097, 0.238097 },
+ [4] = { 0.238097, 0.238097, 0.238097 },
+ [5] = { 0.238097, 0.238097, 0.238097 },
+ [3] = { 0.476196, 0.0, 0.238097 },
+ [6] = { 0.476196, 0.0, 0.238097 },
+ [11] = { 0.0, 0.476196, 0.0 },
+ [1] = { 0.0, 0.476196, 0.0 },
+ }
+ },
+ [12] = {
+ chars = {
+ 'ア', 'イ', 'ウ', 'オ', 'ケ', 'ゲ', 'サ', 'ザ', 'ソ', 'ゾ', 'チ', 'ヂ', 'ツ',
+ 'ヅ', 'ト', 'ド', 'ナ', 'フ', 'ブ', 'プ', 'ミ', 'メ', 'ラ', 'リ', 'ワ', 'ヲ'
+ },
+ align = 'left', left = 0.0, down = 0.0,
+ width = 1.0, height = vht, depth = vdp, italic=0.0,
+ glue = {
+ [4] = { 0.316224, 0.0, 0.316224 },
+ [5] = { 0.238097, 0.0, 0.238097 },
+ [3] = { 0.111608, 0.0, 0.111608 },
+ [6] = { 0.476196, 0.0, 0.238097 },
+ },
+ kern = {
+ [10] = -0.1, [11] = -0.1
+ },
+ },
+ [13] = {
+ chars = {
+ 'ク', 'グ', 'タ', 'ダ'
+ },
+ align = 'left', left = 0.0, down = 0.0,
+ width = 1.0, height = vht, depth = vdp, italic=0.0,
+ glue = {
+ [4] = { 0.316224, 0.0, 0.316224 },
+ [5] = { 0.238097, 0.0, 0.238097 },
+ [3] = { 0.111608, 0.0, 0.111608 },
+ [6] = { 0.476196, 0.0, 0.238097 },
+ },
+ kern = {
+ [10] = -0.15, [11] = -0.15
+ },
+ },
+ [14] = {
+ chars = {
+ 'ノ'
+ },
+ align = 'left', left = 0.0, down = 0.0,
+ width = 1.0, height = vht, depth = vdp, italic=0.0,
+ glue = {
+ [4] = { 0.316224, 0.0, 0.316224 },
+ [5] = { 0.238097, 0.0, 0.238097 },
+ [3] = { 0.111608, 0.0, 0.111608 },
+ [6] = { 0.476196, 0.0, 0.238097 },
+ },
+ kern = {
+ [10] = -0.2, [11] = -0.2
+ },
+ },
+
+ [99] = { -- box末尾
+ chars = {'boxbdd'},
+ },
+
+}
\ No newline at end of file
+-- -*- coding: utf-8 -*-
+-- jfm-ujis.lua: LuaTeX-ja 標準 JFM
+-- besed on upnmlminr-h.tfm (a metric in UTF/OTF package used by upTeX).
+
luatexja.jfont.define_jfm {
dir = 'yoko',
zw = 1.0, zh = 1.0,
[1] = { -- 開き括弧類
chars = {
- 0x2018, 0x201C, 0x3008, 0x300A, 0x300C, 0x300E, 0x3010, 0x3014, 0x3016,
- 0x3018, 0x301D, 0xFF08, 0xFF3B, 0xFF5B, 0xFF5F
+ '‘', '“', '〈', '《', '「', '『', '【', '〔', '〖',
+ '〘', '〝', '(', '[', '{', '⦅'
},
align = 'right', left = 0.0, down = 0.0,
width = 0.5, height = 0.88, depth = 0.12, italic=0.0,
[2] = { -- 閉じ括弧類
chars = {
- 0x2019, 0x201D, 0x3001, 0x3009, 0x300B, 0x300D, 0x300F, 0x3011, 0x3015,
- 0x3017, 0x3019, 0x301F, 0xFF09, 0xFF0C, 0xFF3D, 0xFF5D, 0xFF60
+ '’', '”', '、', '〉', '》', '」', '』', '】', '〕',
+ '〗', '〙', '〟', ')', ',', ']', '}', '⦆'
},
align = 'left', left = 0.0, down = 0.0,
width = 0.5, height = 0.88, depth = 0.12, italic=0.0,
[1] = { 0.5 , 0.0, 0.5 },
[3] = { 0.25, 0.0, 0.25 },
[5] = { 0.5 , 0.0, 0.5 },
+ [6] = { 0.5 , 0.0, 0.5 },
[7] = { 0.5 , 0.0, 0.5 }
}
},
[3] = { -- 中点類
- chars = {0x30FB, 0xFF1A, 0xFF1B},
+ chars = {'・', ':', ';'},
align = 'middle', left = 0.0, down = 0.0,
width = 0.5, height = 0.88, depth = 0.12, italic=0.0,
glue = {
[3] = { 0.5 , 0.0, 0.5 },
[4] = { 0.25, 0.0, 0.25 },
[5] = { 0.25, 0.0, 0.25 },
+ [6] = { 0.25, 0.0, 0.25 },
[7] = { 0.25, 0.0, 0.25 }
}
},
[4] = { -- 句点類
- chars = {0x3002, 0xFF0E},
+ 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.0 },
[3] = { 0.75, 0.0, 0.25 },
[5] = { 0.5 , 0.0, 0.0 },
+ [6] = { 0.5 , 0.0, 0.0 },
[7] = { 0.5 , 0.0, 0.0 }
}
},
[5] = { -- ダッシュ
- chars = { 0x2015, 0x2025, 0x2026 },
+ chars = { '―', '‥', '…' },
align = 'left', left = 0.0, down = 0.0,
width = 1.0, height = 0.88, depth = 0.12, italic=0.0,
glue = {
}
},
- [6] = { -- box末尾
- chars = {'boxbdd'},
+ [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 },
+ [1] = { 0.5 , 0.0, 0.5 },
+ [3] = { 0.25, 0.0, 0.25 },
+ [7] = { 0.5 , 0.0, 0.5 },
+ },
+ kern = {
+ [5] = 0.0
+ }
},
[7] = { -- 半角カナ
chars = {
- 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,
+ '。', '「', '」', '、', '・', 'ヲ', 'ァ', 'ィ', 'ゥ',
+ 'ェ', 'ォ', 'ャ', 'ュ', 'ョ', 'ッ', 'ー', 'ア', 'イ',
+ 'ウ', 'エ', 'オ', 'カ', 'キ', 'ク', 'ケ', 'コ', 'サ',
+ 'シ', 'ス', 'セ', 'ソ', 'タ', 'チ', 'ツ', 'テ', 'ト',
+ 'ナ', 'ニ', 'ヌ', 'ネ', 'ノ', 'ハ', 'ヒ', 'フ', 'ヘ',
+ 'ホ', 'マ', 'ミ', 'ム', 'メ', 'モ', 'ヤ', 'ユ', 'ヨ',
+ 'ラ', 'リ', 'ル', 'レ', 'ロ', 'ワ', 'ン', '゙', '゚',
"AJ1-516", "AJ1-517", "AJ1-518", "AJ1-519", "AJ1-520", "AJ1-521", "AJ1-522",
"AJ1-523", "AJ1-524", "AJ1-525", "AJ1-526", "AJ1-527", "AJ1-528", "AJ1-529",
"AJ1-530", "AJ1-531", "AJ1-532", "AJ1-533", "AJ1-534", "AJ1-535", "AJ1-536",
[3] = { 0.25, 0.0, 0.25 }
}
},
+
+ [99] = { -- box末尾
+ chars = {'boxbdd'},
+ },
+
}
\ No newline at end of file
\newif\ifdraft
\DeclareOption{draft}{\drafttrue \setlength\overfullrule{5pt}}
\DeclareOption{final}{\draftfalse \setlength\overfullrule{0pt}}
-\newif\ifwinjis
-\winjisfalse
\newif\ifmingoth
\mingothfalse
\newif\ifjisfont
\jisfontfalse
-\newif\if@jsc@uplatex
-\@jsc@uplatexfalse
+\newif\ifptexjis
+\ptexjisfalse
+\DeclareOption{winjis}{}\DeclareOption{uplatex}{} % These 2 options are ignored.
\DeclareOption{mingoth}{\mingothtrue}
-\DeclareOption{winjis}{\winjistrue}
+\DeclareOption{ptexjis}{\ptexjistrue}
\DeclareOption{jis}{\jisfonttrue}
-\DeclareOption{uplatex}{\@jsc@uplatextrue\winjisfalse}
\newif\ifpapersize
\papersizefalse
\DeclareOption{papersize}{\papersizetrue}
\fi
\setlength\paperwidth{\inv@mag\paperwidth}%
\setlength\paperheight{\inv@mag\paperheight}%
+\ifmingoth
+ \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.924872] psft:Ryumin-Light:jfm=min}{}
+ \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.924872] psft:GothicBBB-Medium:jfm=min}{}
+\else
+ \ifptexjis
+ \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.924872] psft:Ryumin-Light:jfm=jis}{}
+ \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.924872] psft:GothicBBB-Medium:jfm=jis}{}
+ \else
+ \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.924872] psft:Ryumin-Light:jfm=ujis}{}
+ \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.924872] psft:GothicBBB-Medium:jfm=ujis}{}
+ \fi
+\fi
\DeclareFontShape{JY3}{mc}{bx}{n}{<->ssub*gt/m/n}{}
\DeclareFontShape{JY3}{gt}{bx}{n}{<->ssub*gt/m/n}{}
\DeclareFontShape{JY3}{mc}{m}{it}{<->ssub*mc/m/n}{}
\DeclareRobustCommand\ttfamily
{\not@math@alphabet\ttfamily\mathtt
\romanfamily\ttdefault\kanjifamily\gtdefault\selectfont}
-\def\textmc#1{\relax\ifmmode\hbox\fi{\mcfamily #1}}
-\def\textgt#1{\relax\ifmmode\hbox\fi{\gtfamily #1}}
+%%
\def\reDeclareMathAlphabet#1#2#3{%
\edef\@tempa{\expandafter\@gobble\string#2}%
\edef\@tempb{\expandafter\@gobble\string#3}%
\newif\ifdraft
\DeclareOption{draft}{\drafttrue \setlength\overfullrule{5pt}}
\DeclareOption{final}{\draftfalse \setlength\overfullrule{0pt}}
-\newif\ifwinjis
-\winjisfalse
\newif\ifmingoth
\mingothfalse
\newif\ifjisfont
\jisfontfalse
-\newif\if@jsc@uplatex
-\@jsc@uplatexfalse
+\newif\ifptexjis
+\ptexjisfalse
+\DeclareOption{winjis}{}\DeclareOption{uplatex}{} % These 2 options are ignored.
\DeclareOption{mingoth}{\mingothtrue}
-\DeclareOption{winjis}{\winjistrue}
+\DeclareOption{ptexjis}{\ptexjistrue}
\DeclareOption{jis}{\jisfonttrue}
-\DeclareOption{uplatex}{\@jsc@uplatextrue\winjisfalse}
\newif\ifpapersize
\papersizefalse
\DeclareOption{papersize}{\papersizetrue}
\fi
\setlength\paperwidth{\inv@mag\paperwidth}%
\setlength\paperheight{\inv@mag\paperheight}%
+\ifmingoth
+ \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.924872] psft:Ryumin-Light:jfm=min}{}
+ \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.924872] psft:GothicBBB-Medium:jfm=min}{}
+\else
+ \ifptexjis
+ \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.924872] psft:Ryumin-Light:jfm=jis}{}
+ \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.924872] psft:GothicBBB-Medium:jfm=jis}{}
+ \else
+ \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.924872] psft:Ryumin-Light:jfm=ujis}{}
+ \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.924872] psft:GothicBBB-Medium:jfm=ujis}{}
+ \fi
+\fi
\DeclareFontShape{JY3}{mc}{bx}{n}{<->ssub*gt/m/n}{}
\DeclareFontShape{JY3}{gt}{bx}{n}{<->ssub*gt/m/n}{}
\DeclareFontShape{JY3}{mc}{m}{it}{<->ssub*mc/m/n}{}
\DeclareRobustCommand\ttfamily
{\not@math@alphabet\ttfamily\mathtt
\romanfamily\ttdefault\kanjifamily\gtdefault\selectfont}
-\def\textmc#1{\relax\ifmmode\hbox\fi{\mcfamily #1}}
-\def\textgt#1{\relax\ifmmode\hbox\fi{\gtfamily #1}}
+%%
\def\reDeclareMathAlphabet#1#2#3{%
\edef\@tempa{\expandafter\@gobble\string#2}%
\edef\@tempb{\expandafter\@gobble\string#3}%
% オプション自体は残してあります(つまり,削除されたオプションが指定されていても
% コンパイルは通る)。
% \begin{itemize}
-% \item フォントメトリック関係のオプション |mingoth|, |winjis|, |jis| が
-% 効かないようにしてあります(要検討)。
+% \item フォントメトリック関係のオプション |winjis| は単に無視されます.
+% \item 標準では|jfm-ujis.lua|(Lua\TeX-ja標準のメトリック,OTFパッケージのものがベース)を使用します.
% \item up\TeX 関係のオプションを削除してあります。
% \item |disablejfam| オプションが無効になっています。
+% ←本当にそれでいい? \LaTeX カーネルレベルではまだ16個のままのような気がします.
% \item |papersize| オプションの指定に関わらず PDF のページサイズは適切に
% 設定されます。
% \item 「\texttt{amsmath} との衝突の回避」のコードは,上流で既に対処されている上に
%
% \paragraph{和文フォントメトリックの選択}
%
-% 一旦無効にします。Lua\TeX-ja でも対応する JFM ファイルを用意すれば
-% 互換性は確保できると思われます(要検討)。
-%
+% ここではOTFパッケージのメトリックを元とした,|jfm-ujis.lua|メトリックを標準で使います。
+% 古い \texttt{min10},\texttt{goth10} 互換のメトリックを使いたいときは \texttt{mingoth}
+% というオプションを指定します。
+% p\TeX でよく利用される \texttt{jis} フォントメトリックと互換のメトリックを使いたい場合は,
+% \texttt{ptexjis} というオプションを指定します。
+% \texttt{winjis} メトリックは用済みのため,\texttt{winjis} オプションは無視されます.
+%
% \begin{macrocode}
-\newif\ifwinjis
-\winjisfalse
\newif\ifmingoth
\mingothfalse
\newif\ifjisfont
\jisfontfalse
-\newif\if@jsc@uplatex
-\@jsc@uplatexfalse
+\newif\ifptexjis
+\ptexjisfalse
+\DeclareOption{winjis}{}\DeclareOption{uplatex}{} % These 2 options are ignored.
\DeclareOption{mingoth}{\mingothtrue}
-\DeclareOption{winjis}{\winjistrue}
+\DeclareOption{ptexjis}{\ptexjistrue}
\DeclareOption{jis}{\jisfonttrue}
-\DeclareOption{uplatex}{\@jsc@uplatextrue\winjisfalse}
% \end{macrocode}
%
% \paragraph{papersizeスペシャルの利用}
\setlength\paperheight{\inv@mag\paperheight}%
% \end{macrocode}
%
+% \section{和文フォントの選択}
+%
+% JISの1ポイントは0.3514mm(約1/72.28インチ),
+% PostScriptの1ポイントは1/72インチですが,
+% \TeX では1/72.27インチを1pt(ポイント),
+% 1/72インチを1bp(ビッグポイント)と表します。
+% QuarkXPressなどのDTPソフトは標準で1/72インチを1ポイント
+% としますが,以下ではすべて1/72.27インチを1ptとしています。
+% 1インチは定義により25.4mmです。
+%
+% \pTeX (アスキーが日本語化した\TeX )では,例えば従来のフォントメトリック
+% \texttt{min10} やJISフォントメトリックでは「公称10ポイントの和文フォントは,
+% 実際には9.62216ptで出力される(メトリック側で0.962216倍される)」という
+% 仕様になっています.
+% 一方,Lua\TeX-jaの提供するメトリックでは,そのようなことはありません.
+% 公称10ポイントの和文フォントは,10ポイントで出力されます.
+%
+% この|ltjsclasses|でも,派生元の|jsclasses|と同じように,
+% この公称10ポイントのフォントをここでは13級に縮小して
+% 使うことにします。そのためには,$13\,\textrm{Q}/10\,\textrm{pt}\simeq 0.924872$ 倍
+% すればいいことになります。
+%
+%
+% \begin{macrocode}
+%<*!jspf>
+\ifmingoth
+ \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.924872] psft:Ryumin-Light:jfm=min}{}
+ \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.924872] psft:GothicBBB-Medium:jfm=min}{}
+\else
+ \ifptexjis
+ \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.924872] psft:Ryumin-Light:jfm=jis}{}
+ \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.924872] psft:GothicBBB-Medium:jfm=jis}{}
+ \else
+ \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.924872] psft:Ryumin-Light:jfm=ujis}{}
+ \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.924872] psft:GothicBBB-Medium:jfm=ujis}{}
+ \fi
+\fi
+%</!jspf>
+% \end{macrocode}
+%
+% これにより,公称10ポイントの和文フォントを0.924872倍したことにより,
+% 約9.25ポイント,
+% DTPで使う単位(1/72インチ)では9.21ポイントということになり,
+% 公称10ポイントといっても実は9ポイント強になります。
+%
+% 某学会誌では,
+% 和文フォントをPostScriptの9ポイントにするために,
+% $0.9*72.27/72 \simeq 0.903375$ 倍します。
+%
+% \begin{macrocode}
+%<*jspf>
+\ifmingoth
+ \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.903375] psft:Ryumin-Light:jfm=min}{}
+ \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.903375] psft:GothicBBB-Medium:jfm=min}{}
+\else
+ \ifptexjis
+ \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.903375] psft:Ryumin-Light:jfm=jis}{}
+ \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.903375] psft:GothicBBB-Medium:jfm=jis}{}
+ \else
+ \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.903375] psft:Ryumin-Light:jfm=ujis}{}
+ \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.903375] psft:GothicBBB-Medium:jfm=ujis}{}
+ \fi
+\fi
+%</jspf>
+% \end{macrocode}
+%
% 和文でイタリック体,斜体,サンセリフ体,
% タイプライタ体の代わりにゴシック体を使うことにします。
%
{\not@math@alphabet\ttfamily\mathtt
\romanfamily\ttdefault\kanjifamily\gtdefault\selectfont}
% \end{macrocode}
-%
-% \begin{macro}{\textmc}
-% \begin{macro}{\textgt}
-%
-% 次のコマンドはイタリック補正なども含めて定義されていますが,
-% 和文ではイタリック補正はあまり役に立たず,
-% 欧文・和文間のグルーが入らないという副作用もありますので,
-% 単純な定義に直します。
-%
-% \begin{macrocode}
-\def\textmc#1{\relax\ifmmode\hbox\fi{\mcfamily #1}}
-\def\textgt#1{\relax\ifmmode\hbox\fi{\gtfamily #1}}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
+%%
+% Lua\TeX-jaでは和文組版に伴うグルーはノードベースで挿入するようになり,また
+% 欧文・和文間のグルーとイタリック補正は干渉しないようになりました.
+% まだ「和文の斜体」についてはLua\LaTeX カーネル側でまともな対応がされていませんが,
+% |jsclasses.dtx|で行われていた|\textmc|, |\textgt|の再定義は不要のように思われます.
%
% 新クラスでも数式内で日本語が使えるようにしました。
%
\newif\ifdraft
\DeclareOption{draft}{\drafttrue \setlength\overfullrule{5pt}}
\DeclareOption{final}{\draftfalse \setlength\overfullrule{0pt}}
-\newif\ifwinjis
-\winjisfalse
\newif\ifmingoth
\mingothfalse
\newif\ifjisfont
\jisfontfalse
-\newif\if@jsc@uplatex
-\@jsc@uplatexfalse
+\newif\ifptexjis
+\ptexjisfalse
+\DeclareOption{winjis}{}\DeclareOption{uplatex}{} % These 2 options are ignored.
\DeclareOption{mingoth}{\mingothtrue}
-\DeclareOption{winjis}{\winjistrue}
+\DeclareOption{ptexjis}{\ptexjistrue}
\DeclareOption{jis}{\jisfonttrue}
-\DeclareOption{uplatex}{\@jsc@uplatextrue\winjisfalse}
\newif\ifpapersize
\papersizefalse
\DeclareOption{papersize}{\papersizetrue}
\def\inv@mag{1.02354}
\setlength\paperwidth{\inv@mag\paperwidth}%
\setlength\paperheight{\inv@mag\paperheight}%
+\ifmingoth
+ \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.924872] psft:Ryumin-Light:jfm=min}{}
+ \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.924872] psft:GothicBBB-Medium:jfm=min}{}
+\else
+ \ifptexjis
+ \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.924872] psft:Ryumin-Light:jfm=jis}{}
+ \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.924872] psft:GothicBBB-Medium:jfm=jis}{}
+ \else
+ \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.924872] psft:Ryumin-Light:jfm=ujis}{}
+ \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.924872] psft:GothicBBB-Medium:jfm=ujis}{}
+ \fi
+\fi
\DeclareFontShape{JY3}{mc}{bx}{n}{<->ssub*gt/m/n}{}
\DeclareFontShape{JY3}{gt}{bx}{n}{<->ssub*gt/m/n}{}
\DeclareFontShape{JY3}{mc}{m}{it}{<->ssub*mc/m/n}{}
\DeclareRobustCommand\ttfamily
{\not@math@alphabet\ttfamily\mathtt
\romanfamily\ttdefault\kanjifamily\gtdefault\selectfont}
-\def\textmc#1{\relax\ifmmode\hbox\fi{\mcfamily #1}}
-\def\textgt#1{\relax\ifmmode\hbox\fi{\gtfamily #1}}
+%%
\def\reDeclareMathAlphabet#1#2#3{%
\edef\@tempa{\expandafter\@gobble\string#2}%
\edef\@tempb{\expandafter\@gobble\string#3}%
\newif\ifdraft
\DeclareOption{draft}{\drafttrue \setlength\overfullrule{5pt}}
\DeclareOption{final}{\draftfalse \setlength\overfullrule{0pt}}
-\newif\ifwinjis
-\winjisfalse
\newif\ifmingoth
\mingothfalse
\newif\ifjisfont
\jisfontfalse
-\newif\if@jsc@uplatex
-\@jsc@uplatexfalse
+\newif\ifptexjis
+\ptexjisfalse
+\DeclareOption{winjis}{}\DeclareOption{uplatex}{} % These 2 options are ignored.
\DeclareOption{mingoth}{\mingothtrue}
-\DeclareOption{winjis}{\winjistrue}
+\DeclareOption{ptexjis}{\ptexjistrue}
\DeclareOption{jis}{\jisfonttrue}
-\DeclareOption{uplatex}{\@jsc@uplatextrue\winjisfalse}
\newif\ifpapersize
\papersizefalse
\DeclareOption{papersize}{\papersizetrue}
\fi
\setlength\paperwidth{\inv@mag\paperwidth}%
\setlength\paperheight{\inv@mag\paperheight}%
+\ifmingoth
+ \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.903375] psft:Ryumin-Light:jfm=min}{}
+ \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.903375] psft:GothicBBB-Medium:jfm=min}{}
+\else
+ \ifptexjis
+ \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.903375] psft:Ryumin-Light:jfm=jis}{}
+ \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.903375] psft:GothicBBB-Medium:jfm=jis}{}
+ \else
+ \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.903375] psft:Ryumin-Light:jfm=ujis}{}
+ \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.903375] psft:GothicBBB-Medium:jfm=ujis}{}
+ \fi
+\fi
\DeclareFontShape{JY3}{mc}{bx}{n}{<->ssub*gt/m/n}{}
\DeclareFontShape{JY3}{gt}{bx}{n}{<->ssub*gt/m/n}{}
\DeclareFontShape{JY3}{mc}{m}{it}{<->ssub*mc/m/n}{}
\DeclareRobustCommand\ttfamily
{\not@math@alphabet\ttfamily\mathtt
\romanfamily\ttdefault\kanjifamily\gtdefault\selectfont}
-\def\textmc#1{\relax\ifmmode\hbox\fi{\mcfamily #1}}
-\def\textgt#1{\relax\ifmmode\hbox\fi{\gtfamily #1}}
+%%
\def\reDeclareMathAlphabet#1#2#3{%
\edef\@tempa{\expandafter\@gobble\string#2}%
\edef\@tempb{\expandafter\@gobble\string#3}%
\ltjsetparameter{differentjfm=Both}\djtest
+\bigskip
+{\noindent\bf\tengt ■ujis, jis, min}
+
+\def\test#1{\jfont\mx={psft:Ryumin-Light:jfm=#1}
+\par\noindent\hbox to 30pt{#1}%
+\hbox to 250pt{\mx ちょっとチェックしちゃった!が,まあいいです。\hss}%
+\hbox{\mx「大」、「小」,‘国’“国”――……}}
+
+\test{ujis}
+\test{jis}
+\test{min}
+
\end
\ltjsetparameter{differentjfm=Both}\djtest
+\bigskip
+{\noindent\bf\tengt ■ujis, jis, min}
+
+\def\test#1{\jfont\mx={file:ipaexm.ttf:jfm=#1}
+\par\noindent\hbox to 30pt{#1}%
+\hbox to 250pt{\mx ちょっとチェックしちゃった!が,まあいいです。\hss}%
+\hbox{\mx「大」、「小」,‘国’“国”――……}}
+\test{ujis}
+\test{jis}
+\test{min}
\end