OSDN Git Service

lltjext.sty: baselineshift of JAchar may be not zero
[luatex-ja/luatexja.git] / src / patches / lltjfont.sty
index f55a93f..cfff0f0 100644 (file)
@@ -3,7 +3,7 @@
 %
 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{lltjfont}[2017/04/01 Patch to NFSS2 for LuaTeX-ja]
+\ProvidesPackage{lltjfont}[2017/05/05 Patch to NFSS2 for LuaTeX-ja]
 
 \def\ltj@chardef@text@cmd#1{%
   \let\@ifdefinable\@@ifdefinable%
                 \@height.7\baselineskip \@depth.3\baselineskip}%
      \let\size@update\relax}}
 
-\ifdefined\newluafunction
-  \newluafunction\ltj@@adjust@baseline@inner
-  \begingroup\catcode`\~=12
-  \directlua{%
-    local nulltable = {}
-    local t = lua.get_functions_table()
-    local getfont, dir_tate = font.getfont, luatexja.dir_table.dir_tate
-    local fmt, get_attr = luatexja.jfont.font_metric_table, tex.getattribute
-    local setdimen, set_attr = tex.setdimen, tex.setattribute
-    local dir = luatexja.unary_pars.direction
-    t[\the\ltj@@adjust@baseline@inner] = function()
-      local ft = fmt[get_attr('ltj@curtfnt')] or nulltable
+\newluafunction\ltj@@adjust@baseline@inner
+\begingroup\catcode`\~=12
+\directlua{%
+  local nulltable = {}
+  local t = lua.get_functions_table()
+  local getfont, dir_tate = font.getfont, luatexja.dir_table.dir_tate
+  local fmt, get_attr = luatexja.jfont.font_metric_table, tex.getattribute
+  local setdimen, set_attr = tex.setdimen, tex.setattribute
+  local dir = luatexja.unary_pars.direction
+  t[\the\ltj@@adjust@baseline@inner] = function()
+    local ft = fmt[get_attr('ltj@curtfnt')] or nulltable
+    ft = ft and ft.char_type or nulltable
+    local fk = ft and ft[0] or nulltable
+    local ht, dp, wd = fk.height or 0, fk.depth or 0,
+                       fk.width or ft.zw or 0
+    local fm 
+      = ((getfont(font.current()) or nulltable)
+        .characters or nulltable)[77] or nulltable %% 'M'
+    set_attr('ltj@tablshift',
+      0.5*((fm.height or 0)- (fm.depth or 0) - ht+ dp))
+    if dir() ~= dir_tate then
+      ft = fmt[get_attr('ltj@curjfnt')] or nulltable
       ft = ft and ft.char_type or nulltable
-      local fk = ft and ft[0] or nulltable
-      local ht, dp, wd = fk.height or 0, fk.depth or 0,
-                         fk.width or ft.zw or 0
-      local fm 
-        = ((getfont(font.current()) or nulltable)
-          .characters or nulltable)[77] or nulltable %% 'M'
-      set_attr('ltj@tablshift',
-        0.5*((fm.height or 0)- (fm.depth or 0) - ht+ dp))
-      if dir() ~= dir_tate then
-        ft = fmt[get_attr('ltj@curjfnt')] or nulltable
-        ft = ft and ft.char_type or nulltable
-        fk = ft and ft[0] or nulltable
-        ht, dp, wd = fk.height or 0, fk.depth or 0,
-                     fk.width or ft.zw or 0
-      end
-      setdimen('cht', ht); setdimen('cdp', dp)
-      setdimen('cwd', wd); setdimen('chs', wd)
-      setdimen('cHT', ht+dp)
+      fk = ft and ft[0] or nulltable
+      ht, dp, wd = fk.height or 0, fk.depth or 0,
+                   fk.width or ft.zw or 0
     end
-  }\endgroup
-  \def\adjustbaseline{\luafunction\ltj@@adjust@baseline@inner
-     \cvs\normalbaselineskip}
-\else
-  \newbox\adjust@box
-  \newbox\adjust@box@aux
-  \newdimen\adjust@dimen
-  \def\adjustbaseline{%
-    \setbox\adjust@box\hbox{%
-      \ltj@ykblshift\z@\ltj@tkblshift\z@ 漢}%
-    \cht\ht\adjust@box
-    \cdp\dp\adjust@box
-    \cwd\wd\adjust@box
-    \cvs\normalbaselineskip
-    \chs\cwd
-    \cHT\cht \advance\cHT\cdp
-    \setbox\adjust@box@aux\hbox{\tate\ltj@tkblshift\z@ 漢}%
-    \setbox\adjust@box\hbox{\tate\ltj@tablshift\z@ M}%
-    \adjust@dimen\ht\adjust@box
-    \advance\adjust@dimen\dp\adjust@box
-    \advance\adjust@dimen-\ht\adjust@box@aux
-    \divide\adjust@dimen\tw@
-    \advance\adjust@dimen0.5\dp\adjust@box@aux
-    \advance\adjust@dimen-\dp\adjust@box
-    \ltj@tablshift=\adjust@dimen
-  }
-\fi
+    setdimen('cht', ht); setdimen('cdp', dp)
+    setdimen('cwd', wd); setdimen('chs', wd)
+    setdimen('cHT', ht+dp)
+  end
+}\endgroup
+\def\adjustbaseline{\luafunction\ltj@@adjust@baseline@inner
+   \cvs\normalbaselineskip}
 \DeclareRobustCommand\romanencoding[1]{%
     \expandafter\ifx\csname T@#1\endcsname\relax
       \@latex@error{Encoding scheme `#1' unknown}\@eha