OSDN Git Service

restore luatexja-fontspec-25c.sty
[luatex-ja/luatexja.git] / src / patches / lltjp-unicode-math.sty
1 %
2 % lltjp-unicode-math.sty
3 %
4
5 \NeedsTeXFormat{LaTeX2e}
6 \ProvidesPackage{lltjp-unicode-math}[2018/01/14 Patch to unicode-math for LuaTeX-ja]
7
8 \RequirePackage{unicode-math,luatexja,etoolbox}
9
10 \ExplSyntaxOn
11
12 \group_begin:
13   \bool_new:N \__lltjp_um_patch_mathgroup_bool
14   \bool_set_true:N \__lltjp_um_patch_mathgroup_bool
15   \cs_gset:Nn \__um_define_math_chars: {
16     \group_begin:
17       \cs_set:Npn \__um_sym:nnn ##1##2##3
18        {
19         \tl_if_in:nnT
20          { \mathord \mathalpha \mathbin \mathrel \mathpunct \mathop \mathfence }
21          {##3}
22         {
23           \exp_last_unbraced:NNx \cs_gset_eq:NN ##2 { \char_generate:nn {##1} {12} }
24           \ltjsetmathletter{ ##1 }
25         }
26        }
27       \__um_input_math_symbol_table:
28     \group_end:
29   }
30
31 \bool_if:NT \__lltjp_um_patch_mathgroup_bool {
32   \cs_gset:Npn \use@mathgroup #1 #2
33    {
34     %\typeout{UM <#1><#2>}
35     \mode_if_math:T % <- not sure if this is really necessary since we've just checked for mmode and raised an error if not!
36      {
37       \math@bgroup
38         \cs_if_eq:cNF {M@\f@encoding} #1 {#1}
39         \__um_switchto_literal:
40         \ltj@tempcnta=#2 \expandafter\ltj@@mathJapaneseFonts\string#1\relax%
41         \ifin@ \jfam #2 \relax \else \mathgroup #2 \relax \fi
42       \math@egroup
43      }
44    }
45 }
46 \group_end:
47
48 \ifcsname jsc@mag@xrealtrue \endcsname \else
49     \expandafter\expandafter\expandafter \ExplSyntaxOff \expandafter \endinput
50 \fi
51 \ifjsc@mag@xreal
52     \cs_if_exist:cTF { ltjs@orig@get@external@font } {
53           % ltjsclasses: use lua
54           \cs_new:Nn \lltjp_um_unmag_fsize:
55             {
56                   \cs_gset:Nx \lltjp_um_f@size: {\directlua{luatexja.ltjs_unmagnify_fsize(\f@size)}}
57                   \cs_gset:Nx \lltjp_um_sf@size: {\directlua{luatexja.ltjs_unmagnify_fsize(\sf@size)}}
58                   \cs_gset:Nx \lltjp_um_ssf@size: {\directlua{luatexja.ltjs_unmagnify_fsize(\ssf@size)}}
59                 }
60         }{
61           % bxjscls: use \jsc@preadjust@extract@font
62           \cs_new:Nn \lltjp_um_unmag_fsize:
63             {
64                   \group_begin:
65                     \jsc@preadjust@extract@font
66                     \cs_gset_eq:NN \lltjp_um_f@size: \f@size
67                   \group_end:
68                   \group_begin:
69                     \cs_set_eq:NN \f@size \sf@size \jsc@preadjust@extract@font
70                     \cs_gset_eq:NN \lltjp_um_sf@size: \f@size
71                   \group_end:
72                   \group_begin:
73                     \cs_set_eq:NN \f@size \ssf@size \jsc@preadjust@extract@font
74                     \cs_gset_eq:NN \lltjp_um_ssf@size: \f@size
75                   \group_end:
76                 }
77         }
78     \pretocmd { \__um_fontspec_select_font: } {
79           \cs_set_eq:NN \lltjp_um_orig_fsize: \f@size
80           \lltjp_um_unmag_fsize:
81           \cs_set_eq:NN \f@size \lltjp_um_f@size:
82           \cs_set_eq:NN \tf@size \lltjp_um_f@size:
83           \cs_set_eq:NN \sf@size \lltjp_um_sf@size:
84           \cs_set_eq:NN \ssf@size \lltjp_um_ssf@size:
85         } {} {}
86     \apptocmd { \__um_fontspec_select_font: } {
87           \cs_set_eq:NN \f@size \lltjp_um_orig_fsize:
88         } {} {}
89 \fi
90
91 \ExplSyntaxOff
92
93 \endinput