%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{lltjp-unicode-math}[2013/05/14 Patch to unicode-math for LuaTeX-ja]
+\ProvidesPackage{lltjp-unicode-math}[2015/10/28 Patch to unicode-math for LuaTeX-ja]
\RequirePackage{unicode-math,luatexja}
\ExplSyntaxOn
\group_begin:
- \cs_gset:Nn \um_define_math_chars: {
+ \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:
- \char_set_catcode_math_superscript:N \^
- \cs_set:Npn \_um_sym:nnn ##1##2##3 {
- \bool_if:nTF { \cs_if_eq_p:NN ##3 \mathaccent ||
- \cs_if_eq_p:NN ##3 \mathopen ||
- \cs_if_eq_p:NN ##3 \mathclose ||
- \cs_if_eq_p:NN ##3 \mathover ||
- \cs_if_eq_p:NN ##3 \mathunder ||
- \cs_if_eq_p:NN ##3 \mathbotaccent } {
+ \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_cs_set_eq_active_char:Nw ##2 = ##1 \q_nil \ignorespaces
}
- }
- \char_set_catcode_other:N \#
- \um_input_math_symbol_table:
+ }
+ \__um_input_math_symbol_table:
\group_end:
}
- \cs_gset:Npn \um_cs_set_eq_active_char:Nw #1 = "#2 \q_nil {%"
+}{
+ \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_hexadecimal:n {#2}, #2}% <- for debug
+ %\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