X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=src%2Fpatches%2Flltjp-unicode-math.sty;h=b6d17a6031fd79795ab6d3415aa87986e8f83b8b;hb=ab23049deb6fb90ca689fdf4924b3783f08f8f2e;hp=bd5cbc3814aec6ec8d24e6a89cff1a5cbee55076;hpb=c81e014b81eeafff107001530d4d3380b3d810a0;p=luatex-ja%2Fluatexja.git diff --git a/src/patches/lltjp-unicode-math.sty b/src/patches/lltjp-unicode-math.sty index bd5cbc3..b6d17a6 100644 --- a/src/patches/lltjp-unicode-math.sty +++ b/src/patches/lltjp-unicode-math.sty @@ -3,24 +3,67 @@ % \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{lltjp-unicode-math}[2011/11/22 Patch to unicode-math for LuaLaTeX-ja] +\ProvidesPackage{lltjp-unicode-math}[2015/10/28 Patch to unicode-math for LuaTeX-ja] \RequirePackage{unicode-math,luatexja} \ExplSyntaxOn \group_begin: - \cs_gset:Npn \um_cs_set_eq_active_char:Nw #1 = "#2 \q_nil {%" + \bool_new:N \lltjp_um_patch_mathgroup_bool +\@ifpackagelater{unicode-math}{2015/09/24}{% +%%%%%%%% 2015/09/24 0.8c + \bool_set_true:N \lltjp_um_patch_mathgroup_bool + \cs_gset:Nn \__um_define_math_chars: { \group_begin: - %\typeout {um: \string#1, \int_from_hexadecimal:n {#2}} <- for debug - \char_set_lccode:nn { `! } { "#2 } + \cs_set:Npn \__um_sym:nnn ##1##2##3 + { + \tl_if_in:nnT + { \mathord \mathalpha \mathbin \mathrel \mathpunct \mathop \mathfence } + {##3} + { + \exp_last_unbraced:NNx \cs_gset_eq:NN ##2 { \Ucharcat ##1 ~ 12 ~ } + \ltjsetmathletter{ ##1 } + } + } + \__um_input_math_symbol_table: + \group_end: + } +}{ + \cs_if_exist:cTF { __um_cs_set_eq_active_char:Nw } { + \tl_set:Nn \l_tmpa_tl { __um_cs_set_eq_active_char:Nw } + \bool_set_true:N \lltjp_um_patch_mathgroup_bool + }{ + \tl_set:Nn \l_tmpa_tl { um_cs_set_eq_active_char:Nw } + } + \cs_gset:cpn { \tl_use:N \l_tmpa_tl } #1 = "#2 \q_nil {%" + \group_begin: + %\typeout {um: \string#1, \int_from_hex:n {#2}, #2}% <- for debug + \char_set_lccode:nn { `! } { "#2 }%" \tex_lowercase:D { - \tl_set:Nn \l_tmpa_tl {\relax\ifmmode!\else{\directlua{tex.globaldefs = 0}\ltj@allalchar!}\fi} + \tl_set:Nn \l_tmpa_tl { \relax + \ifmmode!\else{\directlua{tex.globaldefs = 0}\ltj@allalchar!}\fi} \cs_gset_eq:NN #1 \l_tmpa_tl } - \ltjsetmathletter{ \int_from_hexadecimal:n {#2} } + \ltjsetmathletter{ \int_from_hex:n {#2} } \group_end: } +} + +\bool_if:NT \lltjp_um_patch_mathgroup_bool { + \cs_gset:Npn \use@mathgroup #1 #2 + { + \mode_if_math:T % <- not sure if this is really necessary since we've just checked for mmode and raised an error if not! + { + \math@bgroup + \cs_if_eq:cNF {M@\f@encoding} #1 {#1} + \__um_switchto_literal: + \ltj@tempcnta=#2 \expandafter\ltj@@mathJapaneseFonts\string#1\relax% + \ifin@ \jfam #2 \relax \else \mathgroup #2 \relax \fi + \math@egroup + } + } +} \group_end: \ExplSyntaxOff