% % lltjp-unicode-math.sty % \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{lltjp-unicode-math}[2017/05/05 Patch to unicode-math for LuaTeX-ja] \RequirePackage{unicode-math,luatexja} \ExplSyntaxOn \group_begin: \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: \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} \cs_gset_eq:NN #1 \l_tmpa_tl } \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 \endinput