summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/luatex/luatexja/ltj-otf.lua
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-05-05 22:19:33 +0000
committerKarl Berry <karl@freefriends.org>2016-05-05 22:19:33 +0000
commit166ecf8f4ada7e344bb8d198de16259aed65f7ee (patch)
treeaea5501297dcb4af6e36eda6db597171cede4fbb /Master/texmf-dist/tex/luatex/luatexja/ltj-otf.lua
parent4a55f10229652978387f3ed0ff6e1de158644a22 (diff)
luatexja (5may2016)
git-svn-id: svn://tug.org/texlive/trunk@40904 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/luatex/luatexja/ltj-otf.lua')
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltj-otf.lua29
1 files changed, 18 insertions, 11 deletions
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-otf.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-otf.lua
index d13cff277b4..6a1447aebf6 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltj-otf.lua
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-otf.lua
@@ -96,19 +96,24 @@ do
local tex_get_attr = tex.getattribute
cid = function (key)
if key==0 then return append_jglyph(char) end
- local curjfnt = identifiers[tex_get_attr((ltjd_get_dir_count()==dir_tate)
- and attr_curtfnt or attr_curjfnt)]
- if not curjfnt.cidinfo or
- curjfnt.cidinfo.ordering ~= "Japan1" and
- curjfnt.cidinfo.ordering ~= "GB1" and
- curjfnt.cidinfo.ordering ~= "CNS1" and
- curjfnt.cidinfo.ordering ~= "Korea1" then
+ local curjfnt_num = tex_get_attr((ltjd_get_dir_count()==dir_tate)
+ and attr_curtfnt or attr_curjfnt)
+ local curjfnt = identifiers[curjfnt_num]
+ local cidinfo = curjfnt.resources.cidinfo
+ if not cidinfo or
+ cidinfo.ordering ~= "Japan1" and
+ cidinfo.ordering ~= "GB1" and
+ cidinfo.ordering ~= "CNS1" and
+ cidinfo.ordering ~= "Korea1" then
-- ltjb.package_warning('luatexja-otf',
-- 'Current Japanese font (or other CJK font) "'
-- ..curjfnt.psname..'" is not a CID-Keyed font (Adobe-Japan1 etc.)')
return append_jglyph(get_ucs_from_rmlgbm(key))
end
- local char = curjfnt.resources.unicodes[curjfnt.cidinfo.ordering..'.'..tostring(key)]
+ local fe, char = ltjf_font_extra_info[curjfnt_num], nil
+ if fe and fe.unicodes then
+ char = fe.unicodes[cidinfo.ordering..'.'..tostring(key)]
+ end
if not char then
ltjb.package_warning('luatexja-otf',
'Current Japanese font (or other CJK font) "'
@@ -167,11 +172,13 @@ ltjb.add_to_callback('pre_linebreak_filter', extract,'ltj.otf',
-- 和文フォント読み込み時に,CID -> unicode 対応をとっておく.
local function cid_to_char(fmtable, fn)
local fi = identifiers[fn]
- if fi.cidinfo and fi.cidinfo.ordering == "Japan1" then
+ local fe = ltjf_font_extra_info[fn]
+ if (fi.resources and fi.resources.cidinfo and fi.resources.cidinfo.ordering == "Japan1" )
+ and (fe and fe.unicodes) then
for i, v in pairs(fmtable.chars) do
local j = string.match(i, "^AJ1%-([0-9]*)")
if j then
- j = tonumber(fi.resources.unicodes['Japan1.'..tostring(j)])
+ j = tonumber(fe.unicodes['Japan1.'..tostring(j)])
if j then
fmtable.cid_char_type = fmtable.cid_char_type or {}
fmtable.cid_char_type[j] = v
@@ -230,7 +237,7 @@ do
if qc>=0xE0100 then qc = qc - 0xE0100 end
local pf = getfont(p)
local pt = ltjf_font_extra_info[pf]
- pt = pt and pt[getchar(p)]; pt = pt and pt[qc]
+ pt = pt and pt[getchar(p)]; pt = pt and pt[qc]
head, r = node_remove(head,q)
node_free(q)
if pt then