OSDN Git Service

support \ltjjachar<c> where <c> <= 255
authorHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Thu, 25 Jul 2019 08:43:05 +0000 (17:43 +0900)
committerHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Thu, 25 Jul 2019 08:43:05 +0000 (17:43 +0900)
src/luatexja-core.sty

index e57739d..64448d0 100644 (file)
 
 %%%%%%%% \ltjalchar<number>, \ltjjachar<number>
 \let\ltj@@origchar=\char
-\protected\def\ltj@alljachar{\relax
-    \csname ltj@kcat0\endcsname\z@
-    \csname ltj@kcat1\endcsname\z@
-    \csname ltj@kcat2\endcsname\z@
-    \csname ltj@kcat3\endcsname\z@
-    \csname ltj@kcat4\endcsname\z@
-    \csname ltj@kcat5\endcsname\z@
-    \csname ltj@kcat6\endcsname\z@}
+\newluafunction\ltj@alljachar@inner
+\directlua{
+  local t, set_attr = lua.get_functions_table(), tex.setattribute
+  local get_attr, floor = tex.getattribute, math.floor
+  local attr_curjfnt = luatexbase.attributes['ltj@curjfnt']
+  local lang_ja = luatexja.lang_ja
+  t[\the\ltj@alljachar@inner] = function()
+    font.current(get_attr(attr_curjfnt)); tex.language=lang_ja;
+    for i=0,6 do
+      set_attr(luatexbase.attributes['ltj@kcat' .. floor(i)],0)
+    end
+  end
+}
+\protected\def\ltj@alljachar{\luafunction\ltj@alljachar@inner}
 \protected\def\ltj@allalchar{\relax
     \csname ltj@kcat0\endcsname="7FFFFFFF %"
     \csname ltj@kcat1\endcsname="7FFFFFFF %"