OSDN Git Service

Added jfm-{jis,min}.lua and modified jsclasses.dtx.
authorHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Mon, 3 Oct 2011 12:44:36 +0000 (21:44 +0900)
committerHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Mon, 3 Oct 2011 12:44:36 +0000 (21:44 +0900)
12 files changed:
src/jfm-jis.lua [new file with mode: 0644]
src/jfm-min.lua [new file with mode: 0644]
src/jfm-ujis.lua
src/ltjsclasses/ltjsarticle.cls
src/ltjsclasses/ltjsbook.cls
src/ltjsclasses/ltjsclasses.dtx
src/ltjsclasses/ltjskiyou.cls
src/ltjsclasses/ltjspf.cls
test/test01-noembed.pdf
test/test01-noembed.tex
test/test01.pdf
test/test01.tex

diff --git a/src/jfm-jis.lua b/src/jfm-jis.lua
new file mode 100644 (file)
index 0000000..94746dc
--- /dev/null
@@ -0,0 +1,92 @@
+-- -*- 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
diff --git a/src/jfm-min.lua b/src/jfm-min.lua
new file mode 100644 (file)
index 0000000..23c8ace
--- /dev/null
@@ -0,0 +1,261 @@
+-- -*- 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
index dd40509..0569384 100644 (file)
@@ -1,3 +1,7 @@
+-- -*- 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,
@@ -13,8 +17,8 @@ luatexja.jfont.define_jfm {
 
    [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,
@@ -25,8 +29,8 @@ luatexja.jfont.define_jfm {
 
    [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,
@@ -35,12 +39,13 @@ luatexja.jfont.define_jfm {
         [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 = {
@@ -50,12 +55,13 @@ luatexja.jfont.define_jfm {
         [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 = {
@@ -63,12 +69,13 @@ luatexja.jfont.define_jfm {
         [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 = {
@@ -80,19 +87,30 @@ luatexja.jfont.define_jfm {
       }
    },
 
-   [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", 
@@ -113,4 +131,9 @@ luatexja.jfont.define_jfm {
         [3] = { 0.25, 0.0, 0.25 }
       }
    },
+
+   [99] = { -- box末尾
+      chars = {'boxbdd'},
+   },
+
 }
\ No newline at end of file
index 33e2eda..5ed1ed5 100644 (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}%
index 474b356..271f4ff 100644 (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}%
index 2dd9c06..38ce700 100644 (file)
 % オプション自体は残してあります(つまり,削除されたオプションが指定されていても
 % コンパイルは通る)。
 % \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|の再定義は不要のように思われます.
 %
 % 新クラスでも数式内で日本語が使えるようにしました。
 %
index 01ad7c5..74ca28e 100644 (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}
 \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}%
index cd9e93b..f5ebc0b 100644 (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.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}%
index 8cc2ba7..ba78cc7 100644 (file)
Binary files a/test/test01-noembed.pdf and b/test/test01-noembed.pdf differ
index 7abebd7..4d6942b 100644 (file)
 \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
 
index a4cc3ce..86fda87 100644 (file)
Binary files a/test/test01.pdf and b/test/test01.pdf differ
index 141782a..2217c08 100644 (file)
 
 \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