OSDN Git Service

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