diff options
author | Karl Berry <karl@freefriends.org> | 2018-11-03 21:08:36 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2018-11-03 21:08:36 +0000 |
commit | 0fe320209795205ffb3b6f01e216820f854eef42 (patch) | |
tree | 673298fc464518514d18fb0343ea80aab6794d44 /Master/texmf-dist/tex/luatex | |
parent | e0fba477b7614dae0067d85728e716a4f930b98a (diff) |
luatexja (3nov18)
git-svn-id: svn://tug.org/texlive/trunk@49067 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/luatex')
33 files changed, 655 insertions, 568 deletions
diff --git a/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec-25c.sty b/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec-25c.sty index dd0bd9b2ee9..b4d08cdce1e 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec-25c.sty +++ b/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec-25c.sty @@ -3,7 +3,7 @@ % \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{luatexja-fontspec-25c}[2018/06/15 fontspec support of LuaTeX-ja] +\ProvidesPackage{luatexja-fontspec-25c}[2018/10/08 fontspec support of LuaTeX-ja] \RequirePackage{l3keys2e,luatexja} \ExplSyntaxOn @@ -281,14 +281,18 @@ \DeclareDocumentCommand \setmainjfont { O{} m O{} } { \ltj_fontspec_set_family:Nnn \mcdefault {#1,#3}{#2} - \DeclareSymbolFont{mincho}{JY3}{\l_fontspec_family_tl}{\mddefault}{n} - \SetSymbolFont{mincho}{bold}{JY3}{\l_fontspec_family_tl}{\bfdefault}{n} + \unless\ifltj@disablejfam + \DeclareSymbolFont{mincho}{JY3}{\l_fontspec_family_tl}{\mddefault}{n} + \SetSymbolFont{mincho}{bold}{JY3}{\l_fontspec_family_tl}{\bfdefault}{n} + \fi \normalfont } \DeclareDocumentCommand \setsansjfont { O{} m O{} } { \ltj_fontspec_set_family:Nnn \gtdefault {#1,#3}{#2} - \DeclareMathAlphabet{\mathgt}{JY3}{\l_fontspec_family_tl}{\mddefault}{n} + \unless\ifltj@disablejfam + \DeclareMathAlphabet{\mathgt}{JY3}{\l_fontspec_family_tl}{\mddefault}{n} + \fi \normalfont } diff --git a/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec-26h.sty b/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec-26h.sty index 6c1ffdd64d2..ac6757f7bff 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec-26h.sty +++ b/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec-26h.sty @@ -3,7 +3,7 @@ % \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{luatexja-fontspec-26h}[2018/08/02 fontspec support of LuaTeX-ja] +\ProvidesPackage{luatexja-fontspec-26h}[2018/10/08 fontspec support of LuaTeX-ja] \RequirePackage{l3keys2e,luatexja} \ExplSyntaxOn @@ -315,14 +315,18 @@ \DeclareDocumentCommand \setmainjfont { O{} m O{} } { \ltj_fontspec_set_family:Nnn \mcdefault {#1,#3}{#2} - \DeclareSymbolFont{mincho}{JY3}{\mcdefault}{\mddefault}{n} - \SetSymbolFont{mincho}{bold}{JY3}{\mcdefault}{\bfdefault}{n} + \unless\ifltj@disablejfam + \DeclareSymbolFont{mincho}{JY3}{\mcdefault}{\mddefault}{n} + \SetSymbolFont{mincho}{bold}{JY3}{\mcdefault}{\bfdefault}{n} + \fi \normalfont } \DeclareDocumentCommand \setsansjfont { O{} m O{} } { \ltj_fontspec_set_family:Nnn \gtdefault {#1,#3}{#2} - \DeclareMathAlphabet{\mathgt}{JY3}{\gtdefault}{\mddefault}{n} + \unless\ifltj@disablejfam + \DeclareMathAlphabet{\mathgt}{JY3}{\gtdefault}{\mddefault}{n} + \fi \normalfont } diff --git a/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-preset.sty b/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-preset.sty index b4681e91997..69104467507 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-preset.sty +++ b/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-preset.sty @@ -1,5 +1,5 @@ % luatexja-preset.sty -\ProvidesPackage{luatexja-preset}[2018/09/30 Japanese font presets] +\ProvidesPackage{luatexja-preset}[2018/10/08 Japanese font presets] \RequirePackage{expl3,l3keys2e} \RequirePackage{luatexja} @@ -465,7 +465,7 @@ \cs_new:Nn \ltj_preset_declare_font_shape:nnnnnn { \DeclareFontShape{#1}{#2}{#3}{#4}{ <-> s*[\Cjascale] { \bool_if:NT \g_ltjpreset_noembed_bool {psft:} #5 - ;-kern \tl_use:N \l_ltjpreset_kanji_shape_tl; #6 } } {} + ;-kern \tl_use:N \l_ltjpreset_kanji_shape_tl; #6 } } {} } \cs_new:Nn \ltj_preset_define_family:nnn { \ltj_preset_declare_font_shape:nnnnnn { JY3 } @@ -505,9 +505,11 @@ \DeclareKanjiFamily{JT3}{\mcdefault}{} \DeclareKanjiFamily{JY3}{\gtdefault}{} \DeclareKanjiFamily{JT3}{\gtdefault}{} - \SetSymbolFont{mincho}{normal}{JY3}{\mcdefault}{m}{n} - \SetSymbolFont{mincho}{bold}{JY3}{\mcdefault}{bx}{n} - \DeclareMathAlphabet{\mathgt}{JY3}{\gtdefault}{m}{n} + \unless\ifltj@disablejfam + \SetSymbolFont{mincho}{normal}{JY3}{\mcdefault}{m}{n} + \SetSymbolFont{mincho}{bold}{JY3}{\mcdefault}{bx}{n} + \DeclareMathAlphabet{\mathgt}{JY3}{\gtdefault}{m}{n} + \fi \bool_if:NT \g_ltjpreset_deluxe_bool { \DeclareKanjiFamily{JY3}{ltjpmg \int_to_arabic:n { \g_ltjpreset_applycount_int }}{} \DeclareKanjiFamily{JT3}{ltjpmg \int_to_arabic:n { \g_ltjpreset_applycount_int }}{} @@ -573,11 +575,11 @@ ] { \ltjpreset_font_gt_m: } \bool_if:NT \g_ltjpreset_deluxe_bool { %% mg - \bool_if_exist:NTF \setfontfamily { + \bool_if_exist:NTF \setfontfamily { \setjfontfamily \mgfamily [ BoldFont = \ltjpreset_font_mg_m: \tl_use:N \l_ltjpreset_add_features_tl ] { \ltjpreset_font_mg_m: } - } { + } { \newjfontfamily \mgfamily [ BoldFont = \ltjpreset_font_mg_m: \tl_use:N \l_ltjpreset_add_features_tl ] { \ltjpreset_font_mg_m: } diff --git a/Master/texmf-dist/tex/luatex/luatexja/lltjext.sty b/Master/texmf-dist/tex/luatex/luatexja/lltjext.sty index 9c6867f2264..eb1087ad6ba 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/lltjext.sty +++ b/Master/texmf-dist/tex/luatex/luatexja/lltjext.sty @@ -3,7 +3,7 @@ % \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{lltjext}[2018/09/29 v1.2j-ltj-10 Macros for vertical writing] +\ProvidesPackage{lltjext}[2018/10/07 v1.2k-ltj-10 Macros for vertical writing] \RequirePackage{luatexja} \newcount\ltj@ext@dir \let\ltj@lltjext@orig@tabular=\tabular @@ -206,8 +206,8 @@ \if Z\caption@posa\def\caption@posa{#4}\fi \if Z\caption@posb\def\caption@posb{#5}\fi}} \@onlypreamble\DeclareLayoutCaption -\DeclareLayoutCaption{figure}<y>(.8\linewidth)[cd] -\DeclareLayoutCaption{table}<y>(.8\linewidth)[cu] +\DeclareLayoutCaption{figure}<n>(.8\linewidth)[cd] +\DeclareLayoutCaption{table}<n>(.8\linewidth)[cu] \def\layoutcaption{\def\caption@dir{Z}\captionwidth\z@ \def\caption@posa{Z}\def\caption@posb{Z}% \@ifnextchar<\X@layoutcaption{% @@ -276,7 +276,8 @@ \setbox0\hbox{\hbox{\captiondir \captionfontsetup\parindent\z@\inhibitglue \csname fnum@\@captype\endcsname #1}}%" - \if@tempswa\@tempdima\ltjgetht0\relax\else\@tempdima\ltjgetwd0\relax\fi + \if@tempswa\@tempdima\ltjgetht0 \advance\@tempdima\ltjgetdp0 + \else\@tempdima\ltjgetwd0 \fi \ifdim\@tempdima>\captionwidth \@tempdima\captionwidth \fi \@pboxswfalse \setbox0\hbox{% diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua index ad29ad432a2..372b39784d2 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua +++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua @@ -3,7 +3,7 @@ -- luatexbase.provides_module({ name = 'luatexja.jfont', - date = '2018/06/15', + date = '2018/11/01', description = 'Loader for Japanese fonts', }) @@ -68,101 +68,101 @@ function luatexja.jfont.define_jfm(to) t.char_type = {}; t.chars = {} for i,v in pairs(t) do if type(i) == 'number' then -- char_type - if not v.chars then - if i ~= 0 then defjfm_res= nil; return end - else - for j,w in pairs(v.chars) do - if type(w) == 'number' and w~=-1 then - elseif type(w) == 'string' and utf.len(w)==1 then - w = utf.byte(w) - elseif type(w) == 'string' and utf.len(w)==2 and utf.sub(w,2) == '*' then - w = utf.byte(utf.sub(w,1,1)) - end - if not t.chars[w] then - t.chars[w] = i - else - defjfm_res= nil; return - end - end - v.chars = nil - end - if type(v.align)~='string' then - v.align = 'left' -- left - end - if type(v.width)~='number' then - v.width = nil - end - if type(v.height)~='number' then - v.height = (jfm_dir=='tate') and 0.0 - end - if type(v.depth)~='number' then - v.depth = (jfm_dir=='tate') and 0.0 - end - if type(v.italic)~='number' then - v.italic = 0.0 - end - if type(v.left)~='number' then - v.left = 0.0 - end - if type(v.down)~='number' then - v.down = 0.0 - end - if t.version>=2 then - if v.end_stretch then defjfm_res= nil; return end - if v.end_shrink then defjfm_res= nil; return end - if v.end_adjust then - if type(v.end_adjust)~='table' then - v.end_adjust = nil - elseif #(v.end_adjust)==0 then - v.end_adjust = nil - else - table.sort(v.end_adjust) - end - end - else - v.end_adjust = nil - if v.end_stretch and v.end_stretch~=0.0 then - v.end_adjust = (v.end_adjust or {}) - v.end_adjust[#(v.end_adjust)+1] = v.end_stretch - end - if v.end_shrink and v.end_ahrink~=0.0 then - v.end_adjust = (v.end_adjust or {}) - v.end_adjust[#(v.end_adjust)+1] = -v.end_shrink - end - if v.end_adjust then v.end_adjust[#(v.end_adjust)+1] = 0.0 end - end - v.kern = v.kern or {}; v.glue = v.glue or {} - for j,x in pairs(v.glue) do - if v.kern[j] then defjfm_res= nil; return end - x.ratio, x[5] = (x.ratio or (x[5] and 0.5*(1+x[5]) or 0.5)), nil - do - local xp - xp, x[4] = (x.priority or x[4]), nil - if type(xp)=='table' and t.version>=2 then - if type(xp[1])~='number' or xp[1]<-4 or xp[1]>3 then defjfm_res=nil end -- stretch - if type(xp[2])~='number' or xp[2]<-4 or xp[2]>3 then defjfm_res=nil end -- shrink - xp = (xp[1]+4)*8+(xp[2]+4) - elseif xp and type(xp)~='number' then - defjfm_res = nil - else - xp = (xp or 0)*9+36 - if xp<0 or xp>=64 then defjfm_res=nil end - end - x.priority = xp - end - x.kanjiskip_natural = norm_val(x.kanjiskip_natural) - x.kanjiskip_stretch = norm_val(x.kanjiskip_stretch) - x.kanjiskip_shrink = norm_val(x.kanjiskip_shrink) - end - for j,x in pairs(v.kern) do - if type(x)=='number' then + if not v.chars then + if i ~= 0 then defjfm_res= nil; return end + else + for j,w in pairs(v.chars) do + if type(w) == 'number' and w~=-1 then + elseif type(w) == 'string' and utf.len(w)==1 then + w = utf.byte(w) + elseif type(w) == 'string' and utf.len(w)==2 and utf.sub(w,2) == '*' then + w = utf.byte(utf.sub(w,1,1)) + end + if not t.chars[w] then + t.chars[w] = i + else + defjfm_res= nil; return + end + end + v.chars = nil + end + if type(v.align)~='string' then + v.align = 'left' -- left + end + if type(v.width)~='number' then + v.width = nil + end + if type(v.height)~='number' then + v.height = (jfm_dir=='tate') and 0.0 + end + if type(v.depth)~='number' then + v.depth = (jfm_dir=='tate') and 0.0 + end + if type(v.italic)~='number' then + v.italic = 0.0 + end + if type(v.left)~='number' then + v.left = 0.0 + end + if type(v.down)~='number' then + v.down = 0.0 + end + if t.version>=2 then + if v.end_stretch then defjfm_res= nil; return end + if v.end_shrink then defjfm_res= nil; return end + if v.end_adjust then + if type(v.end_adjust)~='table' then + v.end_adjust = nil + elseif #(v.end_adjust)==0 then + v.end_adjust = nil + else + table.sort(v.end_adjust) + end + end + else + v.end_adjust = nil + if v.end_stretch and v.end_stretch~=0.0 then + v.end_adjust = (v.end_adjust or {}) + v.end_adjust[#(v.end_adjust)+1] = v.end_stretch + end + if v.end_shrink and v.end_ahrink~=0.0 then + v.end_adjust = (v.end_adjust or {}) + v.end_adjust[#(v.end_adjust)+1] = -v.end_shrink + end + if v.end_adjust then v.end_adjust[#(v.end_adjust)+1] = 0.0 end + end + v.kern = v.kern or {}; v.glue = v.glue or {} + for j,x in pairs(v.glue) do + if v.kern[j] then defjfm_res= nil; return end + x.ratio, x[5] = (x.ratio or (x[5] and 0.5*(1+x[5]) or 0.5)), nil + do + local xp + xp, x[4] = (x.priority or x[4]), nil + if type(xp)=='table' and t.version>=2 then + if type(xp[1])~='number' or xp[1]<-4 or xp[1]>3 then defjfm_res=nil end -- stretch + if type(xp[2])~='number' or xp[2]<-4 or xp[2]>3 then defjfm_res=nil end -- shrink + xp = (xp[1]+4)*8+(xp[2]+4) + elseif xp and type(xp)~='number' then + defjfm_res = nil + else + xp = (xp or 0)*9+36 + if xp<0 or xp>=64 then defjfm_res=nil end + end + x.priority = xp + end + x.kanjiskip_natural = norm_val(x.kanjiskip_natural) + x.kanjiskip_stretch = norm_val(x.kanjiskip_stretch) + x.kanjiskip_shrink = norm_val(x.kanjiskip_shrink) + end + for j,x in pairs(v.kern) do + if type(x)=='number' then v.kern[j] = {x, 0.5} elseif type(x)=='table' then v.kern[j] = { x[1], (x.ratio or (x[2] and 0.5*(1+x[2]) or 0.5)) } end - end - t.char_type[i] = v - t[i] = nil + end + t.char_type[i] = v + t[i] = nil end end if t.version<3 then @@ -185,17 +185,17 @@ do local function myround(a) return floor(a+0.5) end local function mult_table(old,scale) -- modified from table.fastcopy if old then - local new = { } - for k,v in next, old do - if type(v) == "table" then - new[k] = mult_table(v,scale) - elseif type(v) == "number" then - new[k] = myround(v*scale) - else - new[k] = v - end - end - return new + local new = { } + for k,v in next, old do + if type(v) == "table" then + new[k] = mult_table(v,scale) + elseif type(v) == "number" then + new[k] = myround(v*scale) + else + new[k] = v + end + end + return new else return nil end end update_jfm_cache = function (j,sz) @@ -205,28 +205,28 @@ do t.chars = metrics[j].chars t.char_type = mult_table(metrics[j].char_type, sz) for i,v in pairs(t.char_type) do - v.align = (v.align=='left') and 0 or - ((v.align=='right') and 1 or 0.5) - if type(i) == 'number' then -- char_type - for k,w in pairs(v.glue) do - v[k] = { - nil, - ratio=w.ratio/sz, - priority=FROM_JFM + w.priority/sz, - width = w[1], stretch = w[2], shrink = w[3], - kanjiskip_natural = w.kanjiskip_natural and w.kanjiskip_natural/sz, - kanjiskip_stretch = w.kanjiskip_stretch and w.kanjiskip_stretch/sz, - kanjiskip_shrink = w.kanjiskip_shrink and w.kanjiskip_shrink/sz, - } - end - for k,w in pairs(v.kern) do - local g = node_new(id_kern, 1) - setfield(g, 'kern', w[1]) - set_attr(g, attr_icflag, FROM_JFM) - v[k] = {g, ratio=w[2]/sz} - end - end - v.glue, v.kern = nil, nil + v.align = (v.align=='left') and 0 or + ((v.align=='right') and 1 or 0.5) + if type(i) == 'number' then -- char_type + for k,w in pairs(v.glue) do + v[k] = { + nil, + ratio=w.ratio/sz, + priority=FROM_JFM + w.priority/sz, + width = w[1], stretch = w[2], shrink = w[3], + kanjiskip_natural = w.kanjiskip_natural and w.kanjiskip_natural/sz, + kanjiskip_stretch = w.kanjiskip_stretch and w.kanjiskip_stretch/sz, + kanjiskip_shrink = w.kanjiskip_shrink and w.kanjiskip_shrink/sz, + } + end + for k,w in pairs(v.kern) do + local g = node_new(id_kern, 1) + setfield(g, 'kern', w[1]) + set_attr(g, attr_icflag, FROM_JFM) + v[k] = {g, ratio=w[2]/sz} + end + end + v.glue, v.kern = nil, nil end t.kanjiskip = mult_table(metrics[j].kanjiskip, sz) t.xkanjiskip = mult_table(metrics[j].xkanjiskip,sz) @@ -237,9 +237,9 @@ do end luatexbase.create_callback("luatexja.find_char_class", "data", - function (arg, fmtable, char) - return 0 - end) + function (arg, fmtable, char) + return 0 + end) local find_char_class do local start_time_measure = ltjb.start_time_measure @@ -272,22 +272,22 @@ do local global_flag -- true if \globaljfont, false if \jfont local function load_jfont_metric() if jfm_file_name=='' then - ltjb.package_error('luatexja', - 'no JFM specified', - 'To load and define a Japanese font, a JFM must be specified.'.. - "The JFM 'ujis' will be used for now.") - jfm_file_name='ujis' + ltjb.package_error('luatexja', + 'no JFM specified', + 'To load and define a Japanese font, a JFM must be specified.'.. + "The JFM 'ujis' will be used for now.") + jfm_file_name='ujis' end for j,v in ipairs(metrics) do - if v.name==jfm_file_name then return j end + if v.name==jfm_file_name then return j end end luatexja.load_lua('jfm-' .. jfm_file_name .. '.lua') if defjfm_res then - defjfm_res.name = jfm_file_name - table.insert(metrics, defjfm_res) - return #metrics + defjfm_res.name = jfm_file_name + table.insert(metrics, defjfm_res) + return #metrics else - return nil + return nil end end @@ -299,7 +299,7 @@ do cstemp = cstemp:sub(1, ((cstemp:sub(-1,-1)==' ') and (cstemp:len()>=2)) and -2 or -1) global_flag = g and '\\global' or '' tex.sprint(cat_lp, '\\expandafter\\font\\csname ', - (cstemp==' ') and '\\space' or cstemp, '\\endcsname') + (cstemp==' ') and '\\space' or cstemp, '\\endcsname') end luatexbase.create_callback("luatexja.define_jfont", "data", function (ft, fn) return ft end) @@ -312,28 +312,28 @@ do local fn = font.id(cstemp) local f = font_getfont(fn) if not j then - ltjb.package_error('luatexja', - "bad JFM `" .. jfm_file_name .. "'", - 'The JFM file you specified is not valid JFM file.\n'.. - 'So defining Japanese font is cancelled.') - tex.sprint(cat_lp, global_flag, '\\expandafter\\let\\csname ', - (cstemp==' ') and '\\space' or cstemp, - '\\endcsname=\\relax') - return + ltjb.package_error('luatexja', + "bad JFM `" .. jfm_file_name .. "'", + 'The JFM file you specified is not valid JFM file.\n'.. + 'So defining Japanese font is cancelled.') + tex.sprint(cat_lp, global_flag, '\\expandafter\\let\\csname ', + (cstemp==' ') and '\\space' or cstemp, + '\\endcsname=\\relax') + return end if not f then return end update_jfm_cache(j, f.size) local ad = identifiers[fn].parameters local sz = metrics[j].size_cache[f.size] local fmtable = { jfm = j, size = f.size, var = jfm_var, - with_kanjiskip = jfm_ksp, - zw = sz.zw, zh = sz.zh, - ascent = ad.ascender, - descent = ad.descender, - chars = sz.chars, char_type = sz.char_type, - kanjiskip = sz.kanjiskip, xkanjiskip = sz.xkanjiskip, + with_kanjiskip = jfm_ksp, + zw = sz.zw, zh = sz.zh, + ascent = ad.ascender, + descent = ad.descender, + chars = sz.chars, char_type = sz.char_type, + kanjiskip = sz.kanjiskip, xkanjiskip = sz.xkanjiskip, chars_cbcache = {}, - vert_activated = is_vert_enabled, + vert_activated = is_vert_enabled, } if auto_enable_vrt2 then local t = identifiers[fn] @@ -344,11 +344,14 @@ do t.shared.features[vrt2_exist and 'vrt2' or 'vert'] = true end + --texio.write_nl('term and log', + --'JFNT\t' .. identifiers[fn].name .. '\t' .. identifiers[fn].size .. '\t' .. fn, '') + fmtable = luatexbase.call_callback("luatexja.define_jfont", fmtable, fn) font_metric_table[fn]=fmtable tex.sprint(cat_lp, global_flag, '\\protected\\expandafter\\def\\csname ', - (cstemp==' ') and '\\space' or cstemp, '\\endcsname{\\ltj@cur'.. - (jfm_dir == 'yoko' and 'j' or 't') .. 'fnt', fn, '\\relax}') + (cstemp==' ') and '\\space' or cstemp, '\\endcsname{\\ltj@cur'.. + (jfm_dir == 'yoko' and 'j' or 't') .. 'fnt', fn, '\\relax}') jfm_file_name = nil end end @@ -360,12 +363,12 @@ do -- PUBLIC function function luatexja.jfont.get_zw() local a = font_metric_table[ - tex_get_attr((get_dir_count()==dir_tate) and attr_curtfnt or attr_curjfnt)] + tex_get_attr((get_dir_count()==dir_tate) and attr_curtfnt or attr_curjfnt)] return a and a.zw or 0 end function luatexja.jfont.get_zh() local a = font_metric_table[ - tex_get_attr((get_dir_count()==dir_tate) and attr_curtfnt or attr_curjfnt)] + tex_get_attr((get_dir_count()==dir_tate) and attr_curtfnt or attr_curjfnt)] return a and a.zw or 0 end end @@ -377,60 +380,60 @@ do local function extract_metric(name) do local nametemp - nametemp = name:match('^{(.*)}$') - if nametemp then name = nametemp + nametemp = name:match('^{(.*)}$') + if nametemp then name = nametemp else - nametemp = name:match('^"(.*)"$') - name = nametemp or name + nametemp = name:match('^"(.*)"$') + name = nametemp or name end end jfm_file_name = ''; jfm_var = ''; jfm_ksp = true local tmp, index = name:sub(1, 5), 1 if tmp == 'file:' or tmp == 'name:' or tmp == 'psft:' then - index = 6 + index = 6 end local p = name:find(":", index); index = p and (p+1) or index while index do - local l = name:len()+1 - local q = name:find(";", index) or l - if name:sub(index, index+3)=='jfm=' and q>index+4 then - jfm_file_name = name:sub(index+4, q-1) - if l~=q then - name = name:sub(1,index-1) .. name:sub(q+1) - else - name = name:sub(1,index-1) - index = nil - end - elseif name:sub(index, index+6)=='jfmvar=' and q>index+6 then - jfm_var = name:sub(index+7, q-1) - if l~=q then - name = name:sub(1,index-1) .. name:sub(q+1) - else - name = name:sub(1,index-1) - index = nil - end - else - index = (l~=q) and (q+1) or nil - end + local l = name:len()+1 + local q = name:find(";", index) or l + if name:sub(index, index+3)=='jfm=' and q>index+4 then + jfm_file_name = name:sub(index+4, q-1) + if l~=q then + name = name:sub(1,index-1) .. name:sub(q+1) + else + name = name:sub(1,index-1) + index = nil + end + elseif name:sub(index, index+6)=='jfmvar=' and q>index+6 then + jfm_var = name:sub(index+7, q-1) + if l~=q then + name = name:sub(1,index-1) .. name:sub(q+1) + else + name = name:sub(1,index-1) + index = nil + end + else + index = (l~=q) and (q+1) or nil + end end if jfm_file_name~='' then - local l = name:sub(-1) - name = name - .. ((l==':' or l==';') and '' or ';') - .. 'jfm=' .. jfm_file_name - if jfm_var~='' then - name = name .. 'jfmvar=' .. jfm_var - end + local l = name:sub(-1) + name = name + .. ((l==':' or l==';') and '' or ';') + .. 'jfm=' .. jfm_file_name + if jfm_var~='' then + name = name .. ';jfmvar=' .. jfm_var + end end for x in gmatch (name, "[:;]([+%%-]?)ltjks") do - jfm_ksp = not (x=='-') + jfm_ksp = not (x=='-') end if jfm_dir == 'tate' then - is_vert_enabled = (not name:match('[:;]%-vert')) and (not name:match('[:;]%-vrt2')) - auto_enable_vrt2 - = (not name:match('[:;][+%-]?vert')) and (not name:match('[:;][+%-]?vrt2')) + is_vert_enabled = (not name:match('[:;]%-vert')) and (not name:match('[:;]%-vrt2')) + auto_enable_vrt2 + = (not name:match('[:;][+%-]?vert')) and (not name:match('[:;][+%-]?vrt2')) else - is_vert_enabled, auto_enable_vrt2 = nil, nil + is_vert_enabled, auto_enable_vrt2 = nil, nil end return name end @@ -468,7 +471,7 @@ do end function luatexja.jfont.is_kenc(enc) tex.sprint(cat_lp, '\\let\\ifin@\\if' - .. (kyenc_list[enc] or ktenc_list[enc] or 'false ')) + .. (kyenc_list[enc] or ktenc_list[enc] or 'false ')) end local kfam_list, Nkfam_list = {}, {} @@ -477,23 +480,23 @@ do end function luatexja.jfont.search_kfam(fam, use_fd) if kfam_list[fam] then - tex.sprint(cat_lp, '\\let\\ifin@\\iftrue '); return + tex.sprint(cat_lp, '\\let\\ifin@\\iftrue '); return elseif Nkfam_list[fam] then - tex.sprint(cat_lp, '\\let\\ifin@\\iffalse '); return + tex.sprint(cat_lp, '\\let\\ifin@\\iffalse '); return elseif use_fd then - for i,_ in pairs(kyenc_list) do - if kpse.find_file(string.lower(i)..fam..'.fd') then - tex.sprint(cat_lp, '\\let\\ifin@\\iftrue '); return - end - end - for i,_ in pairs(ktenc_list) do - if kpse.find_file(string.lower(i)..fam..'.fd') then - tex.sprint(cat_lp, '\\let\\ifin@\\iftrue '); return - end - end - Nkfam_list[fam]=true; tex.sprint(cat_lp, '\\let\\ifin@\\iffalse '); return + for i,_ in pairs(kyenc_list) do + if kpse.find_file(string.lower(i)..fam..'.fd') then + tex.sprint(cat_lp, '\\let\\ifin@\\iftrue '); return + end + end + for i,_ in pairs(ktenc_list) do + if kpse.find_file(string.lower(i)..fam..'.fd') then + tex.sprint(cat_lp, '\\let\\ifin@\\iftrue '); return + end + end + Nkfam_list[fam]=true; tex.sprint(cat_lp, '\\let\\ifin@\\iffalse '); return else - tex.sprint(cat_lp, '\\let\\ifin@\\iffalse '); return + tex.sprint(cat_lp, '\\let\\ifin@\\iffalse '); return end end local ffam_list, Nffam_list = {}, {} @@ -506,20 +509,20 @@ do function luatexja.jfont.search_ffam_declared() local s = '' for i,_ in pairs(fenc_list) do - s = s .. '\\cdp@elt{' .. i .. '}' + s = s .. '\\cdp@elt{' .. i .. '}' end tex.sprint(cat_lp, s) end function luatexja.jfont.search_ffam_fd(fam) if Nffam_list[fam] then - tex.sprint(cat_lp, '\\let\\ifin@\\iffalse '); return + tex.sprint(cat_lp, '\\let\\ifin@\\iffalse '); return else - for i,_ in pairs(fenc_list) do - if kpse.find_file(string.lower(i)..fam..'.fd') then - tex.sprint(cat_lp, '\\let\\ifin@\\iftrue '); return - end - end - Nffam_list[fam]=true; tex.sprint(cat_lp, '\\let\\ifin@\\iffalse '); return + for i,_ in pairs(fenc_list) do + if kpse.find_file(string.lower(i)..fam..'.fd') then + tex.sprint(cat_lp, '\\let\\ifin@\\iftrue '); return + end + end + Nffam_list[fam]=true; tex.sprint(cat_lp, '\\let\\ifin@\\iffalse '); return end end @@ -538,15 +541,15 @@ function luatexja.jfont.set_alt_font(b,e,ind,bfnt) if b>e then b, e = e, b end if b*e<=0 then ltjb.package_error('luatexja', - 'bad character range ([' .. b .. ',' .. e .. ']). ' .. - 'I take the intersection with [0x80, 0x10ffff].') + 'bad character range ([' .. b .. ',' .. e .. ']). ' .. + 'I take the intersection with [0x80, 0x10ffff].') b, e = math.max(0x80,b),math.min(ucs_out-1,e) elseif e<0 then -- b<e<0 -- do nothing elseif b<0x80 or e>=ucs_out then ltjb.package_warning('luatexja', - 'bad character range ([' .. b .. ',' .. e .. ']). ' .. - 'I take the intersection with [0x80, 0x10ffff].') + 'bad character range ([' .. b .. ',' .. e .. ']). ' .. + 'I take the intersection with [0x80, 0x10ffff].') b, e = math.max(0x80,b), math.min(ucs_out-1,e) end if not alt_font_table[bfnt] then alt_font_table[bfnt]={} end @@ -555,13 +558,13 @@ function luatexja.jfont.set_alt_font(b,e,ind,bfnt) if bfnt==ind then ind = nil end -- ind == bfnt の場合はテーブルから削除 if e>=0 then -- character range for i=b, e do - if ac[i]then t[i]=ind end + if ac[i]then t[i]=ind end end else b, e = -e, -b local tx = font_metric_table[bfnt].chars for i,v in pairs(tx) do - if b<=v and v<=e and ac[i] then t[i]=ind end + if b<=v and v<=e and ac[i] then t[i]=ind end end end end @@ -598,15 +601,15 @@ function luatexja.jfont.set_alt_font_latex(b,e,ind,bbase) if b>e then b, e = e, b end if b*e<=0 then ltjb.package_error('luatexja', - 'bad character range ([' .. b .. ',' .. e .. ']). ' .. - 'I take the intersection with [0x80, 0x10ffff].') + 'bad character range ([' .. b .. ',' .. e .. ']). ' .. + 'I take the intersection with [0x80, 0x10ffff].') b, e = math.max(0x80,b),math.min(ucs_out-1,e) elseif e<0 then -- b<e<0 -- do nothing elseif b<0x80 or e>=ucs_out then ltjb.package_warning('luatexja', - 'bad character range ([' .. b .. ',' .. e .. ']). ' .. - 'I take the intersection with [0x80, 0x10ffff].') + 'bad character range ([' .. b .. ',' .. e .. ']). ' .. + 'I take the intersection with [0x80, 0x10ffff].') b, e = math.max(0x80,b), math.min(ucs_out-1,e) end @@ -648,9 +651,9 @@ do function luatexja.jfont.output_alt_font_cmd(dir, bbase) alt_font_base = bbase if dir == 't' then - alt_font_base_num = tex.getattribute(attr_curtfnt) + alt_font_base_num = tex.getattribute(attr_curtfnt) else - alt_font_base_num = tex.getattribute(attr_curjfnt) + alt_font_base_num = tex.getattribute(attr_curjfnt) end local t = alt_font_table[alt_font_base_num] if t then @@ -711,17 +714,17 @@ do function luatexja.jfont.cleanup_size_cache() --local gs, ke = 0, 0 for _,n in pairs(metrics) do - for i,t in pairs(n.size_cache) do - for _,v in pairs(t.char_type) do - for k,w in pairs(v) do - if type(k)=='number' then - --if w[1] then gs = gs + 1 else ke = ke + 1 end - if w[1] then node_free(w[1]) end - end - end - end - n.size_cache[i]=nil - end + for i,t in pairs(n.size_cache) do + for _,v in pairs(t.char_type) do + for k,w in pairs(v) do + if type(k)=='number' then + --if w[1] then gs = gs + 1 else ke = ke + 1 end + if w[1] then node_free(w[1]) end + end + end + end + n.size_cache[i]=nil + end end end end @@ -751,33 +754,33 @@ do if id.specification and id.resources then local rot = {} for i,_ in pairs(id.characters) do - if rotate_in_uax50(i) then rot[i] = true end + if rotate_in_uax50(i) then rot[i] = true end end if id.resources.sequences then - for _,i in pairs(id.resources.sequences) do - if i.order[1]== 'vert' and i.type == 'gsub_single' and i.steps then - for _,j in pairs(i.steps) do - if type(j)=='table' then - if type(j.coverage)=='table' then - for i,_ in pairs(j.coverage) do rot[i]=nil end - end - end - end - end - end; end - -- コードポイントが共有されているグリフについて + for _,i in pairs(id.resources.sequences) do + if i.order[1]== 'vert' and i.type == 'gsub_single' and i.steps then + for _,j in pairs(i.steps) do + if type(j)=='table' then + if type(j.coverage)=='table' then + for i,_ in pairs(j.coverage) do rot[i]=nil end + end + end + end + end + end; end + -- コードポイントが共有されているグリフについて if id.resources.duplicates then - for i,v in pairs(id.resources.duplicates) do - local f = rot[i] + for i,v in pairs(id.resources.duplicates) do + local f = rot[i] for j,_ in pairs(v) do f = f and rot[j] end rot[i]=f for j,_ in pairs(v) do rot[j] = f end end; end - - for i,_ in pairs(rot) do - dest = dest or {} - dest[i] = dest[i] or {} - dest[i].rotation = true + + for i,_ in pairs(rot) do + dest = dest or {} + dest[i] = dest[i] or {} + dest[i].rotation = true end end return dest @@ -793,9 +796,9 @@ do local flds = fields(glyph) local vw, tsb, vk = nil, nil, nil for _,i in ipairs(flds) do - if i=='vwidth' then vw = glyph.vwidth end - if i=='tsidebearing' then tsb = glyph.tsidebearing end - if i=='vkerns' then vk = glyph.vkerns end + if i=='vwidth' then vw = glyph.vwidth end + if i=='tsidebearing' then tsb = glyph.tsidebearing end + if i=='vkerns' then vk = glyph.vkerns end end return vw, tsb, vk end @@ -806,59 +809,59 @@ do if glyphmax < 0 then return dest end local tg = glyphs.glyphs for i = glyphmin, glyphmax do - local gv = tg[i] - if gv then - if gv.altuni then - for _,at in pairs(gv.altuni) do - local bu, vsel = at.unicode, at.variant - if vsel then - if vsel>=0xE0100 then vsel = vsel - 0xE0100 end - local uniq_flag = true + local gv = tg[i] + if gv then + if gv.altuni then + for _,at in pairs(gv.altuni) do + local bu, vsel = at.unicode, at.variant + if vsel then + if vsel>=0xE0100 then vsel = vsel - 0xE0100 end + local uniq_flag = true if dest and dest[bu] then - for i,_ in pairs(dest[bu]) do - if i==vsel then uniq_flag = false; break end - end + for i,_ in pairs(dest[bu]) do + if i==vsel then uniq_flag = false; break end + end + end + if uniq_flag then + dest = dest or {}; dest[bu] = dest[bu] or {} + dest[bu][vsel] = unitable[gv.name] + end + end + end + end + -- vertical metric + local vw, tsb, vk = glyph_vmetric(gv) + local gi = unitable[gv.name] + if gi and vw and vw~=asc_des then + -- We do not use tsidebearing, since (1) fontloader does not read VORG table + -- and (2) 'tsidebearing' doea not appear in the returned table by fontloader.fields. + -- Hence, we assume that vertical origin == ascender + -- (see capsule_glyph_tate in ltj-setwidth.lua) + dest = dest or {}; dest[gi] = dest[gi] or {} + dest[gi].vwidth = vw/units + end + -- vertical kern + if gi and vk then + dest = dest or {}; + local dest_vk = dest.vkerns or {}; dest.vkerns = dest_vk + for _,v in pairs(vk) do + if unitable[v.char] then + local vl = v.lookup + if type(vl)=='table' then + for _,vlt in pairs(vl) do + dest_vk[vlt] = dest_vk[vlt] or {} + dest_vk[vlt][gi] = dest_vk[vlt][gi] or {} + dest_vk[vlt][gi][unitable[v.char]] = v.off + end + else + dest_vk[vl] = dest_vk[vl] or {} + dest_vk[vl][gi] = dest_vk[vl][gi] or {} + dest_vk[vl][gi][unitable[v.char]] = v.off end - if uniq_flag then - dest = dest or {}; dest[bu] = dest[bu] or {} - dest[bu][vsel] = unitable[gv.name] - end - end - end - end - -- vertical metric - local vw, tsb, vk = glyph_vmetric(gv) - local gi = unitable[gv.name] - if gi and vw and vw~=asc_des then - -- We do not use tsidebearing, since (1) fontloader does not read VORG table - -- and (2) 'tsidebearing' doea not appear in the returned table by fontloader.fields. - -- Hence, we assume that vertical origin == ascender - -- (see capsule_glyph_tate in ltj-setwidth.lua) - dest = dest or {}; dest[gi] = dest[gi] or {} - dest[gi].vwidth = vw/units - end - -- vertical kern - if gi and vk then - dest = dest or {}; - local dest_vk = dest.vkerns or {}; dest.vkerns = dest_vk - for _,v in pairs(vk) do - if unitable[v.char] then - local vl = v.lookup - if type(vl)=='table' then - for _,vlt in pairs(vl) do - dest_vk[vlt] = dest_vk[vlt] or {} - dest_vk[vlt][gi] = dest_vk[vlt][gi] or {} - dest_vk[vlt][gi][unitable[v.char]] = v.off - end - else - dest_vk[vl] = dest_vk[vl] or {} - dest_vk[vl][gi] = dest_vk[vl][gi] or {} - dest_vk[vl][gi][unitable[v.char]] = v.off - end - end - end - end - end + end + end + end + end end return dest end @@ -870,41 +873,41 @@ do fl = fontloader.open(id.filename) else fl = fontloader.open(id.filename, id.fontname) -- マニュアルにはこっちで書いてあるが? - if not fl then + if not fl then local index - for i,v in ipairs(t) do + for i,v in ipairs(t) do if v.fontname == id.fontname then index=i; break end end - fl = fontloader.open(id.filename, index) + fl = fontloader.open(id.filename, index) end end if not fl then fontloader.close(fl); return dest end local ind_to_uni, unicodes = {}, {} for i,v in pairs(id.characters) do - ind_to_uni[v.index] = i + ind_to_uni[v.index] = i end if fl.glyphs then - local tg, glyphmin, glyphmax = fl.glyphs, fl.glyphmin, fl.glyphmax + local tg, glyphmin, glyphmax = fl.glyphs, fl.glyphmin, fl.glyphmax if 0 <= glyphmax then for i = glyphmin, glyphmax do if tg[i] and tg[i].name then unicodes[tg[i].name] = ind_to_uni[i] end - end - end - dest = add_fl_table(dest, fl, unicodes, - fl.ascent + fl.descent, fl.units_per_em, id) + end + end + dest = add_fl_table(dest, fl, unicodes, + fl.ascent + fl.descent, fl.units_per_em, id) end if fl.subfonts then for _,v in pairs(fl.subfonts) do - local tg, glyphmin, glyphmax = v.glyphs, v.glyphmin, v.glyphmax + local tg, glyphmin, glyphmax = v.glyphs, v.glyphmin, v.glyphmax if 0 <= glyphmax then for i = glyphmin, glyphmax do if tg[i] and tg[i].name then unicodes[tg[i].name] = ind_to_uni[i] end - end - end + end + end end for _,v in pairs(fl.subfonts) do dest = add_fl_table(dest, v, unicodes, - fl.ascent + fl.descent, fl.units_per_em, id) + fl.ascent + fl.descent, fl.units_per_em, id) end end if dest then dest.unicodes = unicodes end @@ -917,71 +920,71 @@ do local lookuphash = id.resources.lookuphash local desc = id.shared.rawdata.descriptions if bx and lookuphash then - for i,v in pairs(bx) do - lookuphash[i] = lookuphash[i] or v - for j,w in pairs(v) do - desc[j].kerns = desc[j].kerns or {} - desc[j].kerns[i] = w - end - end + for i,v in pairs(bx) do + lookuphash[i] = lookuphash[i] or v + for j,w in pairs(v) do + desc[j].kerns = desc[j].kerns or {} + desc[j].kerns[i] = w + end + end end end end -- do - local cache_ver = 15 - local checksum = file.checksum + local cache_ver = 16 local function prepare_extra_data_base(id) if (not id) or (not id.filename) then return end local bname = id.psname or file.nameonly(id.filename) if not font_extra_basename[bname] then - -- if the cache is present, read it - local newsum = checksum(id.filename) -- MD5 checksum of the fontfile - local v = "extra_" .. string.lower(bname) - local dat = ltjb.load_cache( - v, - function (t) return (t.version~=cache_ver) or (t.chksum~=newsum) end - ) - -- if the cache is not found or outdated, save the cache - if dat then - font_extra_basename[bname] = dat[1] or {} - else - local dat = nil - dat = prepare_fl_data(dat, id) - dat = list_rotate_glyphs(dat, id) - font_extra_basename[bname] = dat or {} - ltjb.save_cache( v, - { - chksum = newsum, - version = cache_ver, - dat, - }) - end - return bname + -- if the cache is present, read it + if not lfs then lfs=require"lfs" end + local newtime = lfs.attributes(id.filename,"modification") + local v = "extra_" .. string.lower(bname) + local dat = ltjb.load_cache( + v, + function (t) return (t.version~=cache_ver) or (t.modtime~=newtime) end + ) + -- if the cache is not found or outdated, save the cache + if dat then + font_extra_basename[bname] = dat[1] or {} + else + local dat = nil + dat = prepare_fl_data(dat, id) + dat = list_rotate_glyphs(dat, id) + font_extra_basename[bname] = dat or {} + ltjb.save_cache( v, + { + modtime = newtime, + version = cache_ver, + dat, + }) + end + return bname end end local function prepare_extra_data_font(id, res) if type(res)=='table' and res.shared and (res.psname or res.filename) then - font_extra_info[id] = font_extra_basename[res.psname or file.nameonly(res.filename)] + font_extra_info[id] = font_extra_basename[res.psname or file.nameonly(res.filename)] end end luatexbase.add_to_callback( 'luaotfload.patch_font', function (tfmdata) - -- these function is executed one time per one fontfile + -- these function is executed one time per one fontfile if jfm_file_name then local bname = prepare_extra_data_base(tfmdata) if bname then supply_vkern_table(tfmdata, bname) end end - return tfmdata + return tfmdata end, 'ltj.prepare_extra_data', 1) luatexbase.add_to_callback( 'luatexja.define_font', function (res, name, size, id) - prepare_extra_data_font(id, res) + prepare_extra_data_font(id, res) end, 'ltj.prepare_extra_data', 1) @@ -991,8 +994,8 @@ do local identifiers = fonts.hashes.identifiers for i=1,font.nextid()-1 do if identifiers[i] then - prepare_extra_data_base(identifiers[i]) - prepare_extra_data_font(i,identifiers[i]) + prepare_extra_data_base(identifiers[i]) + prepare_extra_data_font(i,identifiers[i]) end end end @@ -1004,20 +1007,20 @@ end do local function acc_feature(table_vadv, table_vorg, subtables, ft, already_vert) for char_num,v in pairs(ft.shared.rawdata.descriptions) do - if v.slookups then - for sn, sv in pairs(v.slookups) do - if subtables[sn] and type(sv)=='table' then - if sv[4]~=0 then - table_vadv[char_num] - = (table_vadv[char_num] or 0) + sv[4] - end - if sv[2]~=0 and not already_vert then - table_vorg[char_num] - = (table_vorg[char_num] or 0) + sv[2] - end - end - end - end + if v.slookups then + for sn, sv in pairs(v.slookups) do + if subtables[sn] and type(sv)=='table' then + if sv[4]~=0 then + table_vadv[char_num] + = (table_vadv[char_num] or 0) + sv[4] + end + if sv[2]~=0 and not already_vert then + table_vorg[char_num] + = (table_vorg[char_num] or 0) + sv[2] + end + end + end + end end end @@ -1029,25 +1032,25 @@ luatexbase.add_to_callback( local ft = font_getfont(fnum) local subtables = {} if ft.specification then - for feat_name,v in pairs(ft.specification.features.normal) do - if v==true and ft.resources then - for _,i in pairs(ft.resources.sequences) do - if i.order[1]== feat_name and i.type == 'gpos_single' and type(i.subtables)=='table' then - for _,st in pairs(i.subtables) do - subtables[st] = true - end - end - end - end - end - acc_feature(vadv, vorg, subtables, ft, - ft.specification.features.normal.vrt2 or ft.specification.features.normal.vert) - for i,v in pairs(vadv) do - vadv[i]=vadv[i]/ft.units_per_em*fmtable.size - end - for i,v in pairs(vorg) do - vorg[i]=vorg[i]/ft.units_per_em*fmtable.size - end + for feat_name,v in pairs(ft.specification.features.normal) do + if v==true and ft.resources then + for _,i in pairs(ft.resources.sequences) do + if i.order[1]== feat_name and i.type == 'gpos_single' and type(i.subtables)=='table' then + for _,st in pairs(i.subtables) do + subtables[st] = true + end + end + end + end + end + acc_feature(vadv, vorg, subtables, ft, + ft.specification.features.normal.vrt2 or ft.specification.features.normal.vert) + for i,v in pairs(vadv) do + vadv[i]=vadv[i]/ft.units_per_em*fmtable.size + end + for i,v in pairs(vorg) do + vorg[i]=vorg[i]/ft.units_per_em*fmtable.size + end end return fmtable end, 'ltj.v_advance', 1 @@ -1076,12 +1079,12 @@ do local function add_vform(coverage, vform, ft, add_vert) if type(coverage)~='table' then return end for i,v in pairs(vert_form_table) do - if not coverage[i] and ft.characters[v] then - vform[i] = v - end + if not coverage[i] and ft.characters[v] then + vform[i] = v + end end if add_vert then -- vert feature が有効にならない場合 - for i,v in pairs(coverage) do vform[i] = vform[i] or v end + for i,v in pairs(coverage) do vform[i] = vform[i] or v end end end @@ -1091,17 +1094,17 @@ luatexbase.add_to_callback( local vform = {}; fmtable.vform = vform local t = font_getfont(fnum) if t.specification and t.resources then - local add_vert - = not (provides_feature(fnum, t.properties.script, t.properties.language, 'vert')) - and not (provides_feature(fnum, t.properties.script, t.properties.language, 'vrt2')) + local add_vert + = not (provides_feature(fnum, t.properties.script, t.properties.language, 'vert')) + and not (provides_feature(fnum, t.properties.script, t.properties.language, 'vrt2')) -- 現在の language, script で vert もvrt2 も有効にできない場合,強制的に vert 適用 - for _,i in pairs(t.resources.sequences) do - if i.order[1]== 'vert' and i.type == 'gsub_single' and i.steps then - for _,j in pairs(i.steps) do - if type(j)=='table' then add_vform(j.coverage,vform, t, add_vert) end - end - end - end + for _,i in pairs(t.resources.sequences) do + if i.order[1]== 'vert' and i.type == 'gsub_single' and i.steps then + for _,j in pairs(i.steps) do + if type(j)=='table' then add_vform(j.coverage,vform, t, add_vert) end + end + end + end end return fmtable end, 'ltj.get_vert_form', 1 @@ -1116,21 +1119,21 @@ do luatexbase.add_to_callback( 'luaotfload.patch_font', function (tfmdata) - local cidinfo = tfmdata.cidinfo or tfmdata.resources.cidinfo - if cidinfo and cidinfo.registry and cidinfo.ordering then - local rd = ltjr_prepare_cid_font(cidinfo.registry, cidinfo.ordering) - if rd then - local ru, rc = rd.resources.unicodes, rd.characters - for i,v in pairs(tfmdata.characters) do - local w = ru["Japan1." .. tostring(v.index)] - if w then - v.tounicode = v.tounicode or rc[w]. tounicode - end - end - end - end + local cidinfo = tfmdata.cidinfo or tfmdata.resources.cidinfo + if cidinfo and cidinfo.registry and cidinfo.ordering then + local rd = ltjr_prepare_cid_font(cidinfo.registry, cidinfo.ordering) + if rd then + local ru, rc = rd.resources.unicodes, rd.characters + for i,v in pairs(tfmdata.characters) do + local w = ru["Japan1." .. tostring(v.index)] + if w then + v.tounicode = v.tounicode or rc[w]. tounicode + end + end + end + end - return tfmdata + return tfmdata end, 'ltj.supply_tounicode', 1) end @@ -1155,7 +1158,7 @@ do new_ic_kern = function() local g = node_new(id_kern, 1) set_attr(g, attr_icflag, ITALIC) - return g + return g end end -- EXT: italic correction @@ -1163,24 +1166,24 @@ do local p = to_direct(tex.nest[tex.nest.ptr].tail) local TEMP = node_new(id_kern) if p and getid(p)==id_glyph then - if is_ucs_in_japanese_char(p) then - local j = font_metric_table[ - has_attr(p, (get_dir_count()==dir_tate) and attr_curtfnt or attr_curjfnt) - ] - local g = new_ic_kern() - setfield(g, 'kern', j.char_type[find_char_class(getchar(p), j)].italic) - node_write(g); ensure_tex_attr(attr_icflag, 0) - else - local f = getfont(p) - local h = font_getfont(f) or font.fonts[f] - if h then - local g = new_ic_kern() - if h.characters[getchar(p)] and h.characters[getchar(p)].italic then - setfield(g, 'kern', h.characters[getchar(p)].italic) - node_write(g); ensure_tex_attr(attr_icflag, 0) - end - end - end + if is_ucs_in_japanese_char(p) then + local j = font_metric_table[ + has_attr(p, (get_dir_count()==dir_tate) and attr_curtfnt or attr_curjfnt) + ] + local g = new_ic_kern() + setfield(g, 'kern', j.char_type[find_char_class(getchar(p), j)].italic) + node_write(g); ensure_tex_attr(attr_icflag, 0) + else + local f = getfont(p) + local h = font_getfont(f) or font.fonts[f] + if h then + local g = new_ic_kern() + if h.characters[getchar(p)] and h.characters[getchar(p)].italic then + setfield(g, 'kern', h.characters[getchar(p)].italic) + node_write(g); ensure_tex_attr(attr_icflag, 0) + end + end + end end node_free(TEMP) end diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjarticle.cls b/Master/texmf-dist/tex/luatex/luatexja/ltjarticle.cls index 6aed78925d2..3a08f1680c0 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltjarticle.cls +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjarticle.cls @@ -23,7 +23,7 @@ %% File: ltjclasses.dtx \NeedsTeXFormat{LaTeX2e} \ProvidesClass{ltjarticle} - [2018/07/24 v1.8-ltj-15 + [2018/10/08 v1.8-ltj-16 Standard LuaLaTeX-ja class] \RequirePackage{luatexja} \newcounter{@paper} @@ -122,8 +122,6 @@ \if@compatibility \@mathrmmctrue \else - \DeclareOption{disablejfam}{% - \ClassWarningNoLine{\@currname}{The class option 'disablejfam' is obsolete}} \DeclareOption{mathrmmc}{\@mathrmmctrue} \fi \DeclareOption{draft}{\setlength\overfullrule{5pt}} @@ -633,6 +631,7 @@ \setlength\fboxsep{3\p@} \setlength\fboxrule{.4\p@} \renewcommand{\theequation}{\@arabic\c@equation} +\unless\ifltj@disablejfam \if@compatibility\else \DeclareSymbolFont{mincho}{JY3}{mc}{m}{n} \DeclareSymbolFontAlphabet{\mathmc}{mincho} @@ -646,6 +645,7 @@ \reDeclareMathAlphabet{\mathbf}{\mathbf}{\mathgt} }% \fi +\fi \DeclareOldFontCommand{\mc}{\normalfont\mcfamily}{\mathmc} \DeclareOldFontCommand{\gt}{\normalfont\gtfamily}{\mathgt} \DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} @@ -680,12 +680,14 @@ \hb@xt@\@pnumwidth{\hss\normalfont \normalcolor #5}% \par}% \fi} +\providecommand*\protected@file@percent{} \def\addcontentsline#1#2#3{% \protected@write\@auxout {\let\label\@gobble \let\index\@gobble \let\glossary\@gobble \@temptokena{\thepage}}% {\string\@writefile{#1}% - {\protect\contentsline{#2}{#3}{\the\@temptokena}}}% + {\protect\contentsline{#2}{#3}{\the\@temptokena}% +\protected@file@percent}}% } \newcommand{\tableofcontents}{% \section*{\contentsname diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjbk10.clo b/Master/texmf-dist/tex/luatex/luatexja/ltjbk10.clo index 5537850769c..29093f3edc1 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltjbk10.clo +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjbk10.clo @@ -23,7 +23,7 @@ %% File: ltjclasses.dtx \NeedsTeXFormat{LaTeX2e} \ProvidesFile{ltjbk10.clo} - [2018/07/24 v1.8-ltj-15 + [2018/10/08 v1.8-ltj-16 Standard LuaLaTeX-ja file (size option)] \renewcommand{\normalsize}{% \@setfontsize\normalsize\@xpt{15}% diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjbk11.clo b/Master/texmf-dist/tex/luatex/luatexja/ltjbk11.clo index 2928aedf149..b0f792ec910 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltjbk11.clo +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjbk11.clo @@ -23,7 +23,7 @@ %% File: ltjclasses.dtx \NeedsTeXFormat{LaTeX2e} \ProvidesFile{ltjbk11.clo} - [2018/07/24 v1.8-ltj-15 + [2018/10/08 v1.8-ltj-16 Standard LuaLaTeX-ja file (size option)] \renewcommand{\normalsize}{% \@setfontsize\normalsize\@xipt{15.5}% diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjbk12.clo b/Master/texmf-dist/tex/luatex/luatexja/ltjbk12.clo index c5420848ab7..42073daa5c6 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltjbk12.clo +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjbk12.clo @@ -23,7 +23,7 @@ %% File: ltjclasses.dtx \NeedsTeXFormat{LaTeX2e} \ProvidesFile{ltjbk12.clo} - [2018/07/24 v1.8-ltj-15 + [2018/10/08 v1.8-ltj-16 Standard LuaLaTeX-ja file (size option)] \renewcommand{\normalsize}{% \@setfontsize\normalsize\@xiipt{16.5}% diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjbook.cls b/Master/texmf-dist/tex/luatex/luatexja/ltjbook.cls index d0076ebbff3..b3e5ea2ee6d 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltjbook.cls +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjbook.cls @@ -23,7 +23,7 @@ %% File: ltjclasses.dtx \NeedsTeXFormat{LaTeX2e} \ProvidesClass{ltjbook} - [2018/07/24 v1.8-ltj-15 + [2018/10/08 v1.8-ltj-16 Standard LuaLaTeX-ja class] \RequirePackage{luatexja} \newcounter{@paper} @@ -132,8 +132,6 @@ \if@compatibility \@mathrmmctrue \else - \DeclareOption{disablejfam}{% - \ClassWarningNoLine{\@currname}{The class option 'disablejfam' is obsolete}} \DeclareOption{mathrmmc}{\@mathrmmctrue} \fi \DeclareOption{draft}{\setlength\overfullrule{5pt}} @@ -726,6 +724,7 @@ \@addtoreset{equation}{chapter} \renewcommand{\theequation}{% \ifnum\c@chapter>\z@\thechapter.\fi \@arabic\c@equation} +\unless\ifltj@disablejfam \if@compatibility\else \DeclareSymbolFont{mincho}{JY3}{mc}{m}{n} \DeclareSymbolFontAlphabet{\mathmc}{mincho} @@ -739,6 +738,7 @@ \reDeclareMathAlphabet{\mathbf}{\mathbf}{\mathgt} }% \fi +\fi \DeclareOldFontCommand{\mc}{\normalfont\mcfamily}{\mathmc} \DeclareOldFontCommand{\gt}{\normalfont\gtfamily}{\mathgt} \DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} @@ -773,12 +773,14 @@ \hb@xt@\@pnumwidth{\hss\normalfont \normalcolor #5}% \par}% \fi} +\providecommand*\protected@file@percent{} \def\addcontentsline#1#2#3{% \protected@write\@auxout {\let\label\@gobble \let\index\@gobble \let\glossary\@gobble \@temptokena{\thepage}}% {\string\@writefile{#1}% - {\protect\contentsline{#2}{#3}{\the\@temptokena}}}% + {\protect\contentsline{#2}{#3}{\the\@temptokena}% +\protected@file@percent}}% } \newcommand{\tableofcontents}{% \if@twocolumn\@restonecoltrue\onecolumn diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjreport.cls b/Master/texmf-dist/tex/luatex/luatexja/ltjreport.cls index bfceb9f3cd3..b208e1c4922 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltjreport.cls +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjreport.cls @@ -23,7 +23,7 @@ %% File: ltjclasses.dtx \NeedsTeXFormat{LaTeX2e} \ProvidesClass{ltjreport} - [2018/07/24 v1.8-ltj-15 + [2018/10/08 v1.8-ltj-16 Standard LuaLaTeX-ja class] \RequirePackage{luatexja} \newcounter{@paper} @@ -130,8 +130,6 @@ \if@compatibility \@mathrmmctrue \else - \DeclareOption{disablejfam}{% - \ClassWarningNoLine{\@currname}{The class option 'disablejfam' is obsolete}} \DeclareOption{mathrmmc}{\@mathrmmctrue} \fi \DeclareOption{draft}{\setlength\overfullrule{5pt}} @@ -722,6 +720,7 @@ \@addtoreset{equation}{chapter} \renewcommand{\theequation}{% \ifnum\c@chapter>\z@\thechapter.\fi \@arabic\c@equation} +\unless\ifltj@disablejfam \if@compatibility\else \DeclareSymbolFont{mincho}{JY3}{mc}{m}{n} \DeclareSymbolFontAlphabet{\mathmc}{mincho} @@ -735,6 +734,7 @@ \reDeclareMathAlphabet{\mathbf}{\mathbf}{\mathgt} }% \fi +\fi \DeclareOldFontCommand{\mc}{\normalfont\mcfamily}{\mathmc} \DeclareOldFontCommand{\gt}{\normalfont\gtfamily}{\mathgt} \DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} @@ -769,12 +769,14 @@ \hb@xt@\@pnumwidth{\hss\normalfont \normalcolor #5}% \par}% \fi} +\providecommand*\protected@file@percent{} \def\addcontentsline#1#2#3{% \protected@write\@auxout {\let\label\@gobble \let\index\@gobble \let\glossary\@gobble \@temptokena{\thepage}}% {\string\@writefile{#1}% - {\protect\contentsline{#2}{#3}{\the\@temptokena}}}% + {\protect\contentsline{#2}{#3}{\the\@temptokena}% +\protected@file@percent}}% } \newcommand{\tableofcontents}{% \if@twocolumn\@restonecoltrue\onecolumn diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjsarticle.cls b/Master/texmf-dist/tex/luatex/luatexja/ltjsarticle.cls index 56cd0c76ec3..e2dfed79cbb 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltjsarticle.cls +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjsarticle.cls @@ -38,7 +38,7 @@ %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} \ProvidesClass{ltjsarticle} - [2018/09/23 ltjsclasses ] + [2018/10/08 ltjsclasses ] \def\jsc@clsname{ltjsarticle} \def\Cjascale{0.924715} \RequirePackage{luatexja} @@ -194,8 +194,6 @@ option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}% &\global\@eqcnt\thr@@ \hb@xt@\z@\bgroup\hss##\egroup \tabskip\z@skip\cr }} -\DeclareOption{disablejfam}{% - \ClassWarningNoLine{\jsc@clsname}{The class option 'disablejfam' is obsolete}} \DeclareOption{draft}{\setlength\overfullrule{5pt}} \DeclareOption{final}{\setlength\overfullrule{0pt}} \newif\ifmingoth @@ -347,8 +345,11 @@ option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}% \renewcommand\jttdefault{\gtdefault}\@ltj@match@familytrue %% \AtBeginDocument{% - \reDeclareMathAlphabet{\mathrm}{\mathrm}{\mathmc} - \reDeclareMathAlphabet{\mathbf}{\mathbf}{\mathgt}}% + \unless\ifltj@disablejfam + \reDeclareMathAlphabet{\mathrm}{\mathrm}{\mathmc} + \reDeclareMathAlphabet{\mathbf}{\mathbf}{\mathgt} + \fi +}% \ltjsetparameter{jaxspmode={`!,2}} \ltjsetparameter{jaxspmode={`〒,1}} \ltjsetparameter{alxspmode={`+,3}} diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjsbook.cls b/Master/texmf-dist/tex/luatex/luatexja/ltjsbook.cls index 4032c340aa9..ef9690bae9a 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltjsbook.cls +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjsbook.cls @@ -38,7 +38,7 @@ %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} \ProvidesClass{ltjsbook} - [2018/09/23 ltjsclasses ] + [2018/10/08 ltjsclasses ] \def\jsc@clsname{ltjsbook} \def\Cjascale{0.924715} \RequirePackage{luatexja} @@ -199,8 +199,6 @@ option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}% &\global\@eqcnt\thr@@ \hb@xt@\z@\bgroup\hss##\egroup \tabskip\z@skip\cr }} -\DeclareOption{disablejfam}{% - \ClassWarningNoLine{\jsc@clsname}{The class option 'disablejfam' is obsolete}} \DeclareOption{draft}{\setlength\overfullrule{5pt}} \DeclareOption{final}{\setlength\overfullrule{0pt}} \newif\ifmingoth @@ -355,8 +353,11 @@ option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}% \renewcommand\jttdefault{\gtdefault}\@ltj@match@familytrue %% \AtBeginDocument{% - \reDeclareMathAlphabet{\mathrm}{\mathrm}{\mathmc} - \reDeclareMathAlphabet{\mathbf}{\mathbf}{\mathgt}}% + \unless\ifltj@disablejfam + \reDeclareMathAlphabet{\mathrm}{\mathrm}{\mathmc} + \reDeclareMathAlphabet{\mathbf}{\mathbf}{\mathgt} + \fi +}% \ltjsetparameter{jaxspmode={`!,2}} \ltjsetparameter{jaxspmode={`〒,1}} \ltjsetparameter{alxspmode={`+,3}} diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjsize10.clo b/Master/texmf-dist/tex/luatex/luatexja/ltjsize10.clo index 96f1aa7e0a4..2c445458ae2 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltjsize10.clo +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjsize10.clo @@ -23,7 +23,7 @@ %% File: ltjclasses.dtx \NeedsTeXFormat{LaTeX2e} \ProvidesFile{ltjsize10.clo} - [2018/07/24 v1.8-ltj-15 + [2018/10/08 v1.8-ltj-16 Standard LuaLaTeX-ja file (size option)] \renewcommand{\normalsize}{% \@setfontsize\normalsize\@xpt{15}% diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjsize11.clo b/Master/texmf-dist/tex/luatex/luatexja/ltjsize11.clo index 60d01de1506..983f9bab1df 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltjsize11.clo +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjsize11.clo @@ -23,7 +23,7 @@ %% File: ltjclasses.dtx \NeedsTeXFormat{LaTeX2e} \ProvidesFile{ltjsize11.clo} - [2018/07/24 v1.8-ltj-15 + [2018/10/08 v1.8-ltj-16 Standard LuaLaTeX-ja file (size option)] \renewcommand{\normalsize}{% \@setfontsize\normalsize\@xipt{15.5}% diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjsize12.clo b/Master/texmf-dist/tex/luatex/luatexja/ltjsize12.clo index b9f5d885653..efd3aec0c52 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltjsize12.clo +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjsize12.clo @@ -23,7 +23,7 @@ %% File: ltjclasses.dtx \NeedsTeXFormat{LaTeX2e} \ProvidesFile{ltjsize12.clo} - [2018/07/24 v1.8-ltj-15 + [2018/10/08 v1.8-ltj-16 Standard LuaLaTeX-ja file (size option)] \renewcommand{\normalsize}{% \@setfontsize\normalsize\@xiipt{16.5}% diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjskiyou.cls b/Master/texmf-dist/tex/luatex/luatexja/ltjskiyou.cls index 755718014d0..22cb42bc1c3 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltjskiyou.cls +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjskiyou.cls @@ -38,7 +38,7 @@ %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} \ProvidesClass{ltjskiyou} - [2018/09/23 ltjsclasses ] + [2018/10/08 ltjsclasses ] \def\jsc@clsname{ltjskiyou} \def\Cjascale{0.924715} \RequirePackage{luatexja} @@ -193,8 +193,6 @@ option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}% &\global\@eqcnt\thr@@ \hb@xt@\z@\bgroup\hss##\egroup \tabskip\z@skip\cr }} -\DeclareOption{disablejfam}{% - \ClassWarningNoLine{\jsc@clsname}{The class option 'disablejfam' is obsolete}} \DeclareOption{draft}{\setlength\overfullrule{5pt}} \DeclareOption{final}{\setlength\overfullrule{0pt}} \newif\ifmingoth @@ -347,8 +345,11 @@ option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}% \renewcommand\jttdefault{\gtdefault}\@ltj@match@familytrue %% \AtBeginDocument{% - \reDeclareMathAlphabet{\mathrm}{\mathrm}{\mathmc} - \reDeclareMathAlphabet{\mathbf}{\mathbf}{\mathgt}}% + \unless\ifltj@disablejfam + \reDeclareMathAlphabet{\mathrm}{\mathrm}{\mathmc} + \reDeclareMathAlphabet{\mathbf}{\mathbf}{\mathgt} + \fi +}% \ltjsetparameter{jaxspmode={`!,2}} \ltjsetparameter{jaxspmode={`〒,1}} \ltjsetparameter{alxspmode={`+,3}} diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjspf.cls b/Master/texmf-dist/tex/luatex/luatexja/ltjspf.cls index a380ba9c670..5c7fd8a2eab 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltjspf.cls +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjspf.cls @@ -38,7 +38,7 @@ %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} \ProvidesClass{ltjspf} - [2018/09/23 ltjsclasses ] + [2018/10/08 ltjsclasses ] \def\jsc@clsname{ltjspf} \def\Cjascale{0.903375} \RequirePackage{luatexja} @@ -193,8 +193,6 @@ option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}% &\global\@eqcnt\thr@@ \hb@xt@\z@\bgroup\hss##\egroup \tabskip\z@skip\cr }} -\DeclareOption{disablejfam}{% - \ClassWarningNoLine{\jsc@clsname}{The class option 'disablejfam' is obsolete}} \DeclareOption{draft}{\setlength\overfullrule{5pt}} \DeclareOption{final}{\setlength\overfullrule{0pt}} \newif\ifmingoth @@ -346,8 +344,11 @@ option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}% \renewcommand\jttdefault{\gtdefault}\@ltj@match@familytrue %% \AtBeginDocument{% - \reDeclareMathAlphabet{\mathrm}{\mathrm}{\mathmc} - \reDeclareMathAlphabet{\mathbf}{\mathbf}{\mathgt}}% + \unless\ifltj@disablejfam + \reDeclareMathAlphabet{\mathrm}{\mathrm}{\mathmc} + \reDeclareMathAlphabet{\mathbf}{\mathbf}{\mathgt} + \fi +}% \ltjsetparameter{jaxspmode={`!,2}} \ltjsetparameter{jaxspmode={`〒,1}} \ltjsetparameter{alxspmode={`+,3}} diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjsreport.cls b/Master/texmf-dist/tex/luatex/luatexja/ltjsreport.cls index ec151b4aa1b..4b6803a301e 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltjsreport.cls +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjsreport.cls @@ -38,7 +38,7 @@ %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} \ProvidesClass{ltjsreport} - [2018/09/23 ltjsclasses ] + [2018/10/08 ltjsclasses ] \def\jsc@clsname{ltjsreport} \def\Cjascale{0.924715} \RequirePackage{luatexja} @@ -198,8 +198,6 @@ option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}% &\global\@eqcnt\thr@@ \hb@xt@\z@\bgroup\hss##\egroup \tabskip\z@skip\cr }} -\DeclareOption{disablejfam}{% - \ClassWarningNoLine{\jsc@clsname}{The class option 'disablejfam' is obsolete}} \DeclareOption{draft}{\setlength\overfullrule{5pt}} \DeclareOption{final}{\setlength\overfullrule{0pt}} \newif\ifmingoth @@ -351,8 +349,11 @@ option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}% \renewcommand\jttdefault{\gtdefault}\@ltj@match@familytrue %% \AtBeginDocument{% - \reDeclareMathAlphabet{\mathrm}{\mathrm}{\mathmc} - \reDeclareMathAlphabet{\mathbf}{\mathbf}{\mathgt}}% + \unless\ifltj@disablejfam + \reDeclareMathAlphabet{\mathrm}{\mathrm}{\mathmc} + \reDeclareMathAlphabet{\mathbf}{\mathbf}{\mathgt} + \fi +}% \ltjsetparameter{jaxspmode={`!,2}} \ltjsetparameter{jaxspmode={`〒,1}} \ltjsetparameter{alxspmode={`+,3}} diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjtarticle.cls b/Master/texmf-dist/tex/luatex/luatexja/ltjtarticle.cls index b05ba9f090b..08db701933b 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltjtarticle.cls +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjtarticle.cls @@ -23,7 +23,7 @@ %% File: ltjclasses.dtx \NeedsTeXFormat{LaTeX2e} \ProvidesClass{ltjtarticle} - [2018/07/24 v1.8-ltj-15 + [2018/10/08 v1.8-ltj-16 Standard LuaLaTeX-ja class] \RequirePackage{luatexja} \newcounter{@paper} @@ -133,8 +133,6 @@ \if@compatibility \@mathrmmctrue \else - \DeclareOption{disablejfam}{% - \ClassWarningNoLine{\@currname}{The class option 'disablejfam' is obsolete}} \DeclareOption{mathrmmc}{\@mathrmmctrue} \fi \DeclareOption{draft}{\setlength\overfullrule{5pt}} @@ -648,6 +646,7 @@ \setlength\fboxsep{3\p@} \setlength\fboxrule{.4\p@} \renewcommand{\theequation}{\@arabic\c@equation} +\unless\ifltj@disablejfam \if@compatibility\else \DeclareSymbolFont{mincho}{JY3}{mc}{m}{n} \DeclareSymbolFontAlphabet{\mathmc}{mincho} @@ -661,6 +660,7 @@ \reDeclareMathAlphabet{\mathbf}{\mathbf}{\mathgt} }% \fi +\fi \DeclareOldFontCommand{\mc}{\normalfont\mcfamily}{\mathmc} \DeclareOldFontCommand{\gt}{\normalfont\gtfamily}{\mathgt} \DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} @@ -695,12 +695,14 @@ \hb@xt@\@pnumwidth{\hss\normalfont \normalcolor #5}% \par}% \fi} +\providecommand*\protected@file@percent{} \def\addcontentsline#1#2#3{% \protected@write\@auxout {\let\label\@gobble \let\index\@gobble \let\glossary\@gobble \@temptokena{\rensuji{\thepage}}}% {\string\@writefile{#1}% - {\protect\contentsline{#2}{#3}{\the\@temptokena}}}% + {\protect\contentsline{#2}{#3}{\the\@temptokena}% +\protected@file@percent}}% } \newcommand{\tableofcontents}{% \section*{\contentsname diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjtbk10.clo b/Master/texmf-dist/tex/luatex/luatexja/ltjtbk10.clo index 38928a2cd4d..496dae25d97 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltjtbk10.clo +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjtbk10.clo @@ -23,7 +23,7 @@ %% File: ltjclasses.dtx \NeedsTeXFormat{LaTeX2e} \ProvidesFile{ltjtbk10.clo} - [2018/07/24 v1.8-ltj-15 + [2018/10/08 v1.8-ltj-16 Standard LuaLaTeX-ja file (size option)] \renewcommand{\normalsize}{% \@setfontsize\normalsize\@xpt{17}% diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjtbk11.clo b/Master/texmf-dist/tex/luatex/luatexja/ltjtbk11.clo index 70ec9486937..a8428e3e157 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltjtbk11.clo +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjtbk11.clo @@ -23,7 +23,7 @@ %% File: ltjclasses.dtx \NeedsTeXFormat{LaTeX2e} \ProvidesFile{ltjtbk11.clo} - [2018/07/24 v1.8-ltj-15 + [2018/10/08 v1.8-ltj-16 Standard LuaLaTeX-ja file (size option)] \renewcommand{\normalsize}{% \@setfontsize\normalsize\@xipt{17}% diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjtbk12.clo b/Master/texmf-dist/tex/luatex/luatexja/ltjtbk12.clo index 717bd8c9e25..c7d5f894972 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltjtbk12.clo +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjtbk12.clo @@ -23,7 +23,7 @@ %% File: ltjclasses.dtx \NeedsTeXFormat{LaTeX2e} \ProvidesFile{ltjtbk12.clo} - [2018/07/24 v1.8-ltj-15 + [2018/10/08 v1.8-ltj-16 Standard LuaLaTeX-ja file (size option)] \renewcommand{\normalsize}{% \@setfontsize\normalsize\@xiipt{18}% diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjtbook.cls b/Master/texmf-dist/tex/luatex/luatexja/ltjtbook.cls index bf12faa6033..b56c3b8516d 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltjtbook.cls +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjtbook.cls @@ -23,7 +23,7 @@ %% File: ltjclasses.dtx \NeedsTeXFormat{LaTeX2e} \ProvidesClass{ltjtbook} - [2018/07/24 v1.8-ltj-15 + [2018/10/08 v1.8-ltj-16 Standard LuaLaTeX-ja class] \RequirePackage{luatexja} \newcounter{@paper} @@ -143,8 +143,6 @@ \if@compatibility \@mathrmmctrue \else - \DeclareOption{disablejfam}{% - \ClassWarningNoLine{\@currname}{The class option 'disablejfam' is obsolete}} \DeclareOption{mathrmmc}{\@mathrmmctrue} \fi \DeclareOption{draft}{\setlength\overfullrule{5pt}} @@ -741,6 +739,7 @@ \@addtoreset{equation}{chapter} \renewcommand{\theequation}{% \ifnum\c@chapter>\z@\thechapter.\fi \@arabic\c@equation} +\unless\ifltj@disablejfam \if@compatibility\else \DeclareSymbolFont{mincho}{JY3}{mc}{m}{n} \DeclareSymbolFontAlphabet{\mathmc}{mincho} @@ -754,6 +753,7 @@ \reDeclareMathAlphabet{\mathbf}{\mathbf}{\mathgt} }% \fi +\fi \DeclareOldFontCommand{\mc}{\normalfont\mcfamily}{\mathmc} \DeclareOldFontCommand{\gt}{\normalfont\gtfamily}{\mathgt} \DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} @@ -788,12 +788,14 @@ \hb@xt@\@pnumwidth{\hss\normalfont \normalcolor #5}% \par}% \fi} +\providecommand*\protected@file@percent{} \def\addcontentsline#1#2#3{% \protected@write\@auxout {\let\label\@gobble \let\index\@gobble \let\glossary\@gobble \@temptokena{\rensuji{\thepage}}}% {\string\@writefile{#1}% - {\protect\contentsline{#2}{#3}{\the\@temptokena}}}% + {\protect\contentsline{#2}{#3}{\the\@temptokena}% +\protected@file@percent}}% } \newcommand{\tableofcontents}{% \if@twocolumn\@restonecoltrue\onecolumn diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjtreport.cls b/Master/texmf-dist/tex/luatex/luatexja/ltjtreport.cls index 8f7cb8d9f20..4949ba0c17e 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltjtreport.cls +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjtreport.cls @@ -23,7 +23,7 @@ %% File: ltjclasses.dtx \NeedsTeXFormat{LaTeX2e} \ProvidesClass{ltjtreport} - [2018/07/24 v1.8-ltj-15 + [2018/10/08 v1.8-ltj-16 Standard LuaLaTeX-ja class] \RequirePackage{luatexja} \newcounter{@paper} @@ -141,8 +141,6 @@ \if@compatibility \@mathrmmctrue \else - \DeclareOption{disablejfam}{% - \ClassWarningNoLine{\@currname}{The class option 'disablejfam' is obsolete}} \DeclareOption{mathrmmc}{\@mathrmmctrue} \fi \DeclareOption{draft}{\setlength\overfullrule{5pt}} @@ -737,6 +735,7 @@ \@addtoreset{equation}{chapter} \renewcommand{\theequation}{% \ifnum\c@chapter>\z@\thechapter.\fi \@arabic\c@equation} +\unless\ifltj@disablejfam \if@compatibility\else \DeclareSymbolFont{mincho}{JY3}{mc}{m}{n} \DeclareSymbolFontAlphabet{\mathmc}{mincho} @@ -750,6 +749,7 @@ \reDeclareMathAlphabet{\mathbf}{\mathbf}{\mathgt} }% \fi +\fi \DeclareOldFontCommand{\mc}{\normalfont\mcfamily}{\mathmc} \DeclareOldFontCommand{\gt}{\normalfont\gtfamily}{\mathgt} \DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} @@ -784,12 +784,14 @@ \hb@xt@\@pnumwidth{\hss\normalfont \normalcolor #5}% \par}% \fi} +\providecommand*\protected@file@percent{} \def\addcontentsline#1#2#3{% \protected@write\@auxout {\let\label\@gobble \let\index\@gobble \let\glossary\@gobble \@temptokena{\rensuji{\thepage}}}% {\string\@writefile{#1}% - {\protect\contentsline{#2}{#3}{\the\@temptokena}}}% + {\protect\contentsline{#2}{#3}{\the\@temptokena}% +\protected@file@percent}}% } \newcommand{\tableofcontents}{% \if@twocolumn\@restonecoltrue\onecolumn diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjtsize10.clo b/Master/texmf-dist/tex/luatex/luatexja/ltjtsize10.clo index b50ea53f92a..834522ee8c4 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltjtsize10.clo +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjtsize10.clo @@ -23,7 +23,7 @@ %% File: ltjclasses.dtx \NeedsTeXFormat{LaTeX2e} \ProvidesFile{ltjtsize10.clo} - [2018/07/24 v1.8-ltj-15 + [2018/10/08 v1.8-ltj-16 Standard LuaLaTeX-ja file (size option)] \renewcommand{\normalsize}{% \@setfontsize\normalsize\@xpt{17}% diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjtsize11.clo b/Master/texmf-dist/tex/luatex/luatexja/ltjtsize11.clo index 750b328342e..6afec3c1ccf 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltjtsize11.clo +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjtsize11.clo @@ -23,7 +23,7 @@ %% File: ltjclasses.dtx \NeedsTeXFormat{LaTeX2e} \ProvidesFile{ltjtsize11.clo} - [2018/07/24 v1.8-ltj-15 + [2018/10/08 v1.8-ltj-16 Standard LuaLaTeX-ja file (size option)] \renewcommand{\normalsize}{% \@setfontsize\normalsize\@xipt{17}% diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjtsize12.clo b/Master/texmf-dist/tex/luatex/luatexja/ltjtsize12.clo index 3c1487514f1..fc7ab2967a0 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltjtsize12.clo +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjtsize12.clo @@ -23,7 +23,7 @@ %% File: ltjclasses.dtx \NeedsTeXFormat{LaTeX2e} \ProvidesFile{ltjtsize12.clo} - [2018/07/24 v1.8-ltj-15 + [2018/10/08 v1.8-ltj-16 Standard LuaLaTeX-ja file (size option)] \renewcommand{\normalsize}{% \@setfontsize\normalsize\@xiipt{18}% diff --git a/Master/texmf-dist/tex/luatex/luatexja/luatexja.sty b/Master/texmf-dist/tex/luatex/luatexja/luatexja.sty index fb37eed3a8f..496e4c86960 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/luatexja.sty +++ b/Master/texmf-dist/tex/luatex/luatexja/luatexja.sty @@ -24,6 +24,7 @@ \edef\ltj@AtEnd{\x \noexpand\let\noexpand\ltj@AtEnd\relax} \def\luatexjaLoaded{\endinput} +\newif\ifltj@disablejfam %% Check if LaTeX is used. \begingroup\expandafter\expandafter\expandafter\endgroup @@ -35,9 +36,12 @@ \csname iftrue\endcsname \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{luatexja}[2018/09/30 Japanese Typesetting with Lua(La)TeX] + \DeclareOption{disablejfam}{\ltj@disablejfamtrue} + \DeclareOption*{} + \ProcessOptions\relax \fi %</LaTeX> %%%% VERSION -\def\LuaTeXjaversion{20180930.0} +\def\LuaTeXjaversion{20181103.0} \directlua{require('ltj-unicode-ccfix.lua')}% catcode of ideographs diff --git a/Master/texmf-dist/tex/luatex/luatexja/patches/lltjdefs.sty b/Master/texmf-dist/tex/luatex/luatexja/patches/lltjdefs.sty index c497f215f06..a4a457f906b 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/patches/lltjdefs.sty +++ b/Master/texmf-dist/tex/luatex/luatexja/patches/lltjdefs.sty @@ -3,7 +3,7 @@ % \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{lltjdefs}[2018/09/05 Default font settings of LuaTeX-ja] +\ProvidesPackage{lltjdefs}[2018/10/08 Default font settings of LuaTeX-ja] \ifdefined\ltj@stdmcfont\else\def\ltj@stdmcfont{IPAExMincho}\fi \ifdefined\ltj@stdgtfont\else\def\ltj@stdgtfont{IPAExGothic}\fi @@ -63,11 +63,13 @@ \DeclareOldFontCommand{\mc}{\normalfont\mcfamily}{} \DeclareOldFontCommand{\gt}{\normalfont\gtfamily}{} -\DeclareSymbolFont{mincho}{JY3}{mc}{m}{n} -\jfam\symmincho -\SetSymbolFont{mincho}{bold}{JY3}{gt}{m}{n} -\DeclareSymbolFontAlphabet{\mathmc}{mincho} -\DeclareMathAlphabet{\mathgt}{JY3}{gt}{m}{n} +\unless\ifltj@disablejfam + \DeclareSymbolFont{mincho}{JY3}{mc}{m}{n} + \jfam\symmincho + \SetSymbolFont{mincho}{bold}{JY3}{gt}{m}{n} + \DeclareSymbolFontAlphabet{\mathmc}{mincho} + \DeclareMathAlphabet{\mathgt}{JY3}{gt}{m}{n} +\fi \newif\if@ltj@match@family \@ltj@match@familyfalse diff --git a/Master/texmf-dist/tex/luatex/luatexja/patches/lltjfont.sty b/Master/texmf-dist/tex/luatex/luatexja/patches/lltjfont.sty index ce566c30c8f..6560f3fa3fe 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/patches/lltjfont.sty +++ b/Master/texmf-dist/tex/luatex/luatexja/patches/lltjfont.sty @@ -3,7 +3,7 @@ % \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{lltjfont}[2018/01/12 Patch to NFSS2 for LuaTeX-ja] +\ProvidesPackage{lltjfont}[2018/10/08 Patch to NFSS2 for LuaTeX-ja] \def\ltj@chardef@text@cmd#1{% \let\@ifdefinable\@@ifdefinable% @@ -318,49 +318,50 @@ \expandafter\let\csname selectfont\space \endcsname \ltj@@orig@selectfont \ltj@@EverySelectfont@Init } -\def\ltj@selectfont@patch{% - \directlua{luatexja.base.start_time_measure('selectfont')}% - \global\let\ltj@afont@name=\font@name - \let\tmp@error@fontshape\error@fontshape - \let\error@fontshape\error@kfontshape - \directlua{luatexja.jfont.is_kyenc('\luatexluaescapestring{\k@encoding}')}\ifin@% - \let\cy@encoding\k@encoding - \edef\ct@encoding{\csname t@enc@\k@encoding\endcsname}% - \else - \directlua{luatexja.jfont.is_ktenc('\luatexluaescapestring{\k@encoding}')}\ifin@% - \let\ct@encoding\k@encoding - \edef\cy@encoding{\csname y@enc@\k@encoding\endcsname}% - \else - \@latex@error{KANJI Encoding scheme `\k@encoding' unknown}\@eha - \fi - \fi -% +\def\ltj@selectfont@tate{% \let\k@encoding\ct@encoding \xdef\font@name{\csname\curr@kfontshape/\f@size\endcsname}% - \pickup@tfont - \font@name + \pickup@tfont\font@name \ltj@@does@alt@set{\curr@kfontshape}% % alt fonts の定義 \directlua{luatexja.jfont.output_alt_font_cmd('t', '\luatexluaescapestring{\curr@kfontshape}')}% % 定義した alt fonts のデータを \ltjdeclarealtfont に渡すのと同等の処理をする \directlua{luatexja.jfont.pickup_alt_font_a('\f@size')}% - \fi -% + \fi} +\def\ltj@selectfont@yoko{% \let\k@encoding\cy@encoding \xdef\font@name{\csname\curr@kfontshape/\f@size\endcsname}% - \pickup@jfont - \font@name + \pickup@jfont\font@name \ltj@@does@alt@set{\curr@kfontshape}% % alt fonts の定義 \directlua{luatexja.jfont.output_alt_font_cmd('y', '\luatexluaescapestring{\curr@kfontshape}')}% % 定義した alt fonts のデータを \ltjdeclarealtfont に渡すのと同等の処理をする \directlua{luatexja.jfont.pickup_alt_font_a('\f@size')}% + \fi} +\def\ltj@selectfont@patch{% + \directlua{luatexja.base.start_time_measure('selectfont')}% + \let\tmp@error@fontshape\error@fontshape + \let\error@fontshape\error@kfontshape + \directlua{luatexja.jfont.is_kyenc('\luatexluaescapestring{\k@encoding}')}\ifin@% + \let\cy@encoding\k@encoding + \edef\ct@encoding{\csname t@enc@\k@encoding\endcsname}% + \else + \directlua{luatexja.jfont.is_ktenc('\luatexluaescapestring{\k@encoding}')}\ifin@% + \let\ct@encoding\k@encoding + \edef\cy@encoding{\csname y@enc@\k@encoding\endcsname}% + \else + \@latex@error{KANJI Encoding scheme `\k@encoding' unknown}\@eha + \fi \fi + \global\let\ltj@afont@name=\font@name + %\ifnum3=\ltjgetparameter{direction}\relax \ltj@selectfont@tate + %\else \ltj@selectfont@yoko\fi + \ltj@selectfont@tate\ltj@selectfont@yoko % \edef\tmp@item{{\k@encoding}}\expandafter\def\expandafter\k@encoding\tmp@item \kenc@update + \global\let\font@name=\ltj@afont@name \let\error@fontshape\tmp@error@fontshape -% \if@knjcmd \@knjcmdfalse \expandafter\ifx \csname rel@\k@encoding/\k@family/\k@series/\k@shape\endcsname\relax @@ -426,7 +427,7 @@ = ((getfont(font.current()) or nulltable) .characters or nulltable)[77] or nulltable %% 'M' set_attr('ltj@tablshift', - 0.5*((fm.height or 0)- (fm.depth or 0) - ht+ dp)) + tex.round(0.5*((fm.height or 0)- (fm.depth or 0) - ht+ dp))) if dir() ~= dir_tate then ft = fmt[get_attr('ltj@curjfnt')] or nulltable ft = ft and ft.char_type or nulltable @@ -570,12 +571,12 @@ \romanshape{\shapedefault}% \selectfont\ignorespaces} \let\reset@font\normalfont -\DeclareRobustCommand\mcfamily - {\not@math@alphabet\mcfamily\mathmc - \kanjifamily\mcdefault\selectfont} -\DeclareRobustCommand\gtfamily - {\not@math@alphabet\gtfamily\mathgt - \kanjifamily\gtdefault\selectfont} +\DeclareRobustCommand\mcfamily{% + \unless\ifltj@disablejfam\not@math@alphabet\mcfamily\mathmc\fi + \kanjifamily\mcdefault\selectfont} +\DeclareRobustCommand\gtfamily{% + \unless\ifltj@disablejfam\not@math@alphabet\gtfamily\mathgt\fi + \kanjifamily\gtdefault\selectfont} \let\romanprocess@table\process@table \def\kanjiprocess@table{% \kanjiencoding{\kanjiencodingdefault}% @@ -656,6 +657,7 @@ \let\@@italiccorr=\/ %%%%%% Japanese font for math mode +\unless\ifltj@disablejfam % \M@<enc> から その <enc> が和文用か調べる {\catcode`M=12% @@ -689,6 +691,8 @@ \ifin@\jfam#2\relax\else\mathgroup#2\relax\fi \expandafter\math@egroup\fi}% +\fi + %%%%%% Alternate Japanese Fonts %%%% \DeclareAlternateKanjiFont<Benc><Bfam><Bser><Bshape><Aenc><Afam><Aser><Ashape><range> % いつも global diff --git a/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-siunitx.sty b/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-siunitx.sty index d629fd3cb1e..3c7569efbc8 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-siunitx.sty +++ b/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-siunitx.sty @@ -1,10 +1,11 @@ % -% lltjp-siunitx.sty 2018-08-24 +% lltjp-siunitx.sty 2018-11-02 % \NeedsTeXFormat{LaTeX2e} \RequirePackage{luatexja} +\makeatletter \ExplSyntaxOn \cs_generate_variant:Nn \tl_if_in:NnT { coT } \cs_new:Nn \__ltj_siunix_patch_inner:n { @@ -26,5 +27,48 @@ \__ltj_siunix_patch_inner_math:n { arcsecond } \__ltj_siunix_patch_inner_math:n { ohm } } + +%%%% new table column: S and s +\cs_set_protected:Npn \__siunitx_table_collect_not_braced:N #1 + { + \token_if_eq_meaning:NNF #1 \relax { + \token_if_eq_meaning:NNF #1 \ltjfakeboxbdd { + \token_if_eq_meaning:NNF #1 \pltx@next@inhibitglue { + \token_if_eq_meaning:NNF #1 \tex_ignorespaces:D + { + \token_if_eq_meaning:NNF #1 \tex_unskip:D + { \__siunitx_table_collect_not_braced_aux_i:N #1 } + } + }}} + \__siunitx_table_collect_next: + } + +\AtBeginDocument + { + \@ifpackageloaded { mdwtab } + { + \cs_set_protected:Npn \__siunitx_table_collect_not_braced:N #1 + { + \token_if_eq_meaning:NNF #1 \relax { + \token_if_eq_meaning:NNF #1 \ltjfakeboxbdd { + \token_if_eq_meaning:NNF #1 \pltx@next@inhibitglue { + \token_if_eq_meaning:NNF #1 \tex_ignorespaces:D + { + \token_if_eq_meaning:NNF #1 \tex_unskip:D + { + \token_if_eq_meaning:NNF #1 \tab@setcr + { + \token_if_eq_meaning:NNF #1 \@maybe@unskip + { \__siunitx_table_collect_not_braced_aux_i:N #1 } + } + } + } + }}} + \__siunitx_table_collect_next: + } + } + { } + } + \ExplSyntaxOff \endinput diff --git a/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-unicode-math.sty b/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-unicode-math.sty index 9c8bbfca9f9..fa974bbb846 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-unicode-math.sty +++ b/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-unicode-math.sty @@ -1,5 +1,5 @@ % -% lltjp-unicode-math.sty 2018-08-24 +% lltjp-unicode-math.sty 2018-10-09 % \NeedsTeXFormat{LaTeX2e} @@ -23,6 +23,7 @@ \__um_input_math_symbol_table: \group_end: } +\unless\ifltj@disablejfam \cs_set:Npn \use@mathgroup #1 #2 { %\typeout{UM <#1><#2>} @@ -36,6 +37,7 @@ \math@egroup } } +\fi \ifcsname jsc@mag@xrealtrue \endcsname \else \expandafter\expandafter\expandafter \ExplSyntaxOff \expandafter \endinput |