From 9f04eca1bf29093754bee8f4020918840d64ed22 Mon Sep 17 00:00:00 2001 From: Hironori Kitagawa Date: Wed, 30 Jan 2019 09:50:50 +0900 Subject: [PATCH] altfont --- src/ltj-jfont.lua | 2 +- src/patches/lltjfont.sty | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/ltj-jfont.lua b/src/ltj-jfont.lua index e6f5bfe..0f32e25 100644 --- a/src/ltj-jfont.lua +++ b/src/ltj-jfont.lua @@ -661,7 +661,7 @@ do end -- EXT function luatexja.jfont.print_aftl_address() - tex.sprint(cat_lp, ';ltjaltfont' .. tostring(aftl_base):sub(8)) + return ';ltjaltfont' .. tostring(aftl_base):sub(8) end -- EXT diff --git a/src/patches/lltjfont.sty b/src/patches/lltjfont.sty index d1f5921..1b4a4a5 100644 --- a/src/patches/lltjfont.sty +++ b/src/patches/lltjfont.sty @@ -675,12 +675,21 @@ % 異なる和文 enc/fam/ser/shape からは異なるフォント番号が振られるように % わざと「ゴミをつける」 \def\ltj@@patch@external@font#1 at{% - #1\directlua{luatexja.jfont.print_aftl_address()}\space at% + \directlua{ + local s = '\luatexluaescapestring{#1}' + local is_braced, is_quoted + if s:sub(1,1)=='{' and s:sub(-1)=='}' then is_braced=true; s=s:sub(2,-2) end + if s:sub(1,1)=='"' and s:sub(-1)=='"' then is_quoted=true; s=s:sub(2,-2) end + s=s..luatexja.jfont.print_aftl_address() + if is_braced then s='{'..s..'}' elseif is_quoted then s='"'..s..'"' end + %print(s, is_quoted, is_braced) + tex.sprint(-2, s)}% + \space at% } \def\extract@jfont{% \get@external@font \ltj@@does@alt@set{\f@encoding/\f@family/\f@series/\f@shape}{% - \edef\external@font{\expandafter\ltj@@patch@external@font\external@font}% + \edef\external@font{\expandafter\ltj@@patch@external@font\romannumeral-`0\external@font}% }% \expandafter\globaljfont\font@name\external@font\relax\font@name% ここで時間がかかる \csname \f@encoding+\f@family\endcsname -- 2.11.0