OSDN Git Service

lltjext.sty: baselineshift of JAchar may be not zero
authorHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Tue, 25 Jul 2017 23:53:55 +0000 (08:53 +0900)
committerHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Tue, 25 Jul 2017 23:53:55 +0000 (08:53 +0900)
src/lltjext.sty
src/luatexja.lua

index 78ca61d..31d218c 100644 (file)
@@ -3,7 +3,7 @@
 %
 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{lltjext}[2017/07/17 v1.2g-ltj-6 Macros for vertical writing]
+\ProvidesPackage{lltjext}[2017/07/26 v1.2g-ltj-7 Macros for vertical writing]
 \RequirePackage{luatexja}
 \newcount\ltj@ext@dir
 {\catcode`\*=11
       \def\@end@parbox{\m@th$\null}%
     \fi
   \fi\fi}
+\def\lltjext@getjablshift{%
+  \ifnum\ltj@ext@dir=3 \ltjgetparameter{tjabaselineshift}\else
+  \ltjgetparameter{yjabaselineshift}\fi}
 \def\fork@parbox@option@@B#1{%
   \if #1t\relax
-    \def\@begin@parbox{\raise\cht\vtop\bgroup\kern\z@\vbox}%
+    \def\@begin@parbox{\raise\dimexpr\cht-\lltjext@getjablshift\vtop\bgroup\kern\z@\vbox}%
     \let\@end@parbox\egroup
   \else\if #1b\relax
-    \def\@begin@parbox{\lower\cdp\vbox\bgroup\vbox}%
+    \def\@begin@parbox{\lower\dimexpr\cdp+\lltjext@getjablshift\vbox\bgroup\vbox}%
     \def\@end@parbox{\kern\z@\egroup}%
   \else
     \ifmmode
 
 %%%%%%%%%%%%%%%% LuaTeX-ja original
 
-\define@key[ltj]{japaram}{autouprightnum}{%      %COUNT
-  \ltj@@set@stack{AURN}{0}{10000}\z@#1 }
+%%\define@key[ltj]{japaram}{autouprightnum}{%      %COUNT
+%%  \ltj@@set@stack{AURN}{0}{10000}\z@#1 }
 
 \endinput
index 3aae0c9..d6d83e6 100644 (file)
@@ -177,18 +177,23 @@ end
 
 -- EXT: print parameters that don't need arguments
 do
+   local tex_getattr = tex.getattribute
+   local function getattr(a)
+      local r = tex.getattribute(a)
+      return (r==-0x7FFFFFFF) and 0 or r
+   end 
    luatexja.unary_pars = {
       yalbaselineshift = function(t)
-        return print_scaled(tex.getattribute('ltj@yablshift'))..'pt'
+        return print_scaled(getattr('ltj@yablshift'))..'pt'
       end,
       yjabaselineshift = function(t)
-        return print_scaled(tex.getattribute('ltj@ykblshift'))..'pt'
+        return print_scaled(getattr('ltj@ykblshift'))..'pt'
       end,
       talbaselineshift = function(t)
-        return print_scaled(tex.getattribute('ltj@tablshift'))..'pt'
+        return print_scaled(getattr('ltj@tablshift'))..'pt'
       end,
       tjabaselineshift = function(t)
-        return print_scaled(tex.getattribute('ltj@tkblshift'))..'pt'
+        return print_scaled(getattr('ltj@tkblshift'))..'pt'
       end,
       kanjiskip = function(t)
         return print_spec(ltjs.get_stack_skip(stack_table_index.KSK, t))
@@ -200,10 +205,10 @@ do
         return ltjs.get_stack_table(stack_table_index.JWP, 0, t)
       end,
       autospacing = function(t)
-        return tex.getattribute('ltj@autospc')
+        return getattr('ltj@autospc')
       end,
       autoxspacing = function(t)
-        return tex.getattribute('ltj@autoxspc')
+        return getattr('ltj@autoxspc')
       end,
       differentjfm = function(t)
         local f, r = luatexja.jfmglue.diffmet_rule, '???'