OSDN Git Service

lltjfont.sty: append garbage to argument of \jfont only if alternate fonts is set...
[luatex-ja/luatexja.git] / src / patches / lltjfont.sty
index 244ae45..e10834c 100644 (file)
 % 異なる和文 enc/fam/ser/shape からは異なるフォント番号が振られるように
 % わざと「ゴミをつける」
 \def\ltj@@patch@external@font#1 at{%
-  #1;\directlua{luatexja.jfont.print_aftl_address(%
-    '\luatexluaescapestring{\f@encoding/\f@family/\f@series/\f@shape}')}\space at%
+  #1\directlua{luatexja.jfont.print_aftl_address()}\space at%
 }
 \def\extract@jfont{%
    \get@external@font
-    \edef\external@font{\expandafter\ltj@@patch@external@font\external@font}%
+    \ltj@@does@alt@set{\f@encoding/\f@family/\f@series/\f@shape}%
+      \edef\external@font{\expandafter\ltj@@patch@external@font\external@font}%
+    \fi
     \expandafter\globaljfont\font@name\external@font\relax
     \font@name%\global\zw=\zw\global\zh=\zh
     \csname \f@encoding+\f@family\endcsname
 \let\ltj@@alt@selectfont@orig=\selectfont
 \def\selectfont{%
   \ltj@@alt@selectfont@orig
-  % alt fonts の定義
-  \directlua{luatexja.jfont.output_alt_font_cmd('\luatexluaescapestring{\curr@kfontshape}')}%
-  % 定義した alt fonts のデータを \ltjdeclarealtfont に渡すのと同等の処理をする
-  \directlua{luatexja.jfont.pickup_alt_font_a('\f@size')}%
+  \ltj@@does@alt@set{\curr@kfontshape}
+    % alt fonts の定義
+    \directlua{luatexja.jfont.output_alt_font_cmd('\luatexluaescapestring{\curr@kfontshape}')}%
+    % 定義した alt fonts のデータを \ltjdeclarealtfont に渡すのと同等の処理をする
+    \directlua{luatexja.jfont.pickup_alt_font_a('\f@size')}%
+  \fi
 }
+%\let\selectfont=\ltj@@alt@selectfont@orig
+
 \def\ltj@pickup@altfont@aux#1{%
   {\edef\font@name{\csname #1/\f@size\endcsname}\pickup@jfont}%
 }
   \directlua{luatexja.jfont.pickup_alt_font_b(\the\ltj@tempcntc,'\luatexluaescapestring{#2}')}%
 }
 
+\def\ltj@@does@alt@set#1{%
+  \directlua{luatexja.jfont.does_alt_set'\luatexluaescapestring{#1}'}}
+
 \endinput