OSDN Git Service

13e8786e4d9142d65669e2e81b3664ea0c6420e5
[luatex-ja/luatexja.git] / src / patches / lltjp-fontspec.sty
1 %
2 % lltjp-fontspec.sty 2020-01-13
3 %
4
5 \NeedsTeXFormat{LaTeX2e}
6
7 \RequirePackage{fontspec}
8 \ExplSyntaxOn
9
10 %%%%%%%% fontspec v2.5c overwrites \rmfamily etc. in \setmainfont
11 \@ifpackagelater{fontspec}{2020/01/09}{ %% 2.7e or later
12   \tl_replace_all:cnn { rmfamily~ } { \fontfamily }{ \romanfamily }
13   \tl_replace_all:cnn { sffamily~ } { \fontfamily }{ \romanfamily }
14   \tl_replace_all:cnn { ttfamily~ } { \fontfamily }{ \romanfamily }
15   \typeout{LATEX~ 2019-10-01!}
16   \cs_if_exist:NF \@rmfamilyhook {
17     \tl_replace_all:cnn { rmfamily~ } { \selectfont } {
18       \if@ltj@match@family
19         \prepare@family@series@update@kanji{mc}\mcdefault
20       \fi\selectfont
21     }
22     \tl_replace_all:cnn { sffamily~ } { \selectfont } {
23       \if@ltj@match@family
24         \prepare@family@series@update@kanji{gt}\gtdefault
25       \fi\selectfont
26     }
27     \tl_replace_all:cnn { ttfamily~ } { \selectfont } {
28       \if@ltj@match@family
29         \prepare@family@series@update@kanji{jtt}\jttdefault
30       \fi\selectfont
31     }
32   }
33 %% end of 2.7e (or later)
34 }{\@ifpackagelater{fontspec}{2019/10/19}{ %% 2.7d
35 \cs_set:Nn \__fontspec_main_setmainfont:nn
36   {
37     \fontspec_set_family:Nnn \l__fontspec_rmfamily_family_tl {#1} {#2}
38     \tl_set_eq:NN \rmdefault \l__fontspec_rmfamily_family_tl
39     \use:x
40       {
41         \exp_not:n { \DeclareRobustCommand \rmfamily }
42           {
43             \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl }
44             \exp_not:N \fontfamily { \exp_not:N \rmdefault }
45     \exp_not:N\if@ltj@match@family\exp_not:N\kanjifamily\exp_not:N\mcdefault\exp_not:N\fi%%%
46             \exp_not:N \selectfont
47           }
48       }
49     \str_if_eq:eeT {\familydefault} {\rmdefault}
50       { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl }
51     \__fontspec_setmainfont_hook:nn {#1} {#2}
52     \normalfont
53   }
54 \cs_set:Nn \__fontspec_main_setsansfont:nn
55   {
56     \fontspec_set_family:Nnn \l__fontspec_sffamily_family_tl {#1} {#2}
57     \tl_set_eq:NN \sfdefault \l__fontspec_sffamily_family_tl
58     \use:x
59       {
60         \exp_not:n { \DeclareRobustCommand \sffamily }
61           {
62             \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl }
63             \exp_not:N \fontfamily { \exp_not:N \sfdefault  }
64     \exp_not:N\if@ltj@match@family\exp_not:N\kanjifamily\exp_not:N\gtdefault\exp_not:N\fi%%%
65             \exp_not:N \selectfont
66           }
67       }
68     \str_if_eq:eeT {\familydefault} {\sfdefault}
69       { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl }
70     \__fontspec_setsansfont_hook:nn {#1} {#2}
71     \normalfont
72   }
73 \cs_set:Nn \__fontspec_main_setmonofont:nn
74   {
75     \fontspec_set_family:Nnn \l__fontspec_ttfamily_family_tl {#1} {#2}
76     \tl_set_eq:NN \ttdefault \l__fontspec_ttfamily_family_tl
77     \use:x
78       {
79         \exp_not:n { \DeclareRobustCommand \ttfamily }
80           {
81             \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl }
82             \exp_not:N \fontfamily {  \exp_not:N \ttdefault }
83     \exp_not:N\if@ltj@match@family\exp_not:N\kanjifamily\exp_not:N\jttdefault\exp_not:N\fi%%%
84             \exp_not:N \selectfont
85           }
86       }
87     \str_if_eq:eeT {\familydefault} {\ttdefault}
88       { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl }
89     \__fontspec_setmonofont_hook:nn {#1} {#2}
90     \normalfont
91   }
92 %% end of 2.7d
93 }{%% 2.7c
94 \cs_set:Nn \__fontspec_main_setmainfont:nn
95   {
96     \fontspec_set_family:Nnn \l__fontspec_rmfamily_family_tl {#1} {#2}
97     \tl_set_eq:NN \rmdefault \l__fontspec_rmfamily_family_tl
98     \use:x
99       {
100         \exp_not:n { \DeclareRobustCommand \rmfamily }
101           {
102             \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl }
103             \exp_not:N \fontfamily { \l__fontspec_rmfamily_family_tl }
104     \exp_not:N\if@ltj@match@family\exp_not:N\kanjifamily\exp_not:N\mcdefault\exp_not:N\fi%%%
105             \exp_not:N \selectfont
106           }
107       }
108     \str_if_eq:eeT {\familydefault} {\rmdefault}
109       { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl }
110     \__fontspec_setmainfont_hook:nn {#1} {#2}
111     \normalfont
112   }
113 \cs_set:Nn \__fontspec_main_setsansfont:nn
114   {
115     \fontspec_set_family:Nnn \l__fontspec_sffamily_family_tl {#1} {#2}
116     \tl_set_eq:NN \sfdefault \l__fontspec_sffamily_family_tl
117     \use:x
118       {
119         \exp_not:n { \DeclareRobustCommand \sffamily }
120           {
121             \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl }
122             \exp_not:N \fontfamily { \l__fontspec_sffamily_family_tl }
123     \exp_not:N\if@ltj@match@family\exp_not:N\kanjifamily\exp_not:N\gtdefault\exp_not:N\fi%%%
124             \exp_not:N \selectfont
125           }
126       }
127     \str_if_eq:eeT {\familydefault} {\sfdefault}
128       { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl }
129     \__fontspec_setsansfont_hook:nn {#1} {#2}
130     \normalfont
131   }
132 \cs_set:Nn \__fontspec_main_setmonofont:nn
133   {
134     \fontspec_set_family:Nnn \l__fontspec_ttfamily_family_tl {#1} {#2}
135     \tl_set_eq:NN \ttdefault \l__fontspec_ttfamily_family_tl
136     \use:x
137       {
138         \exp_not:n { \DeclareRobustCommand \ttfamily }
139           {
140             \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl }
141             \exp_not:N \fontfamily { \l__fontspec_ttfamily_family_tl }
142     \exp_not:N\if@ltj@match@family\exp_not:N\kanjifamily\exp_not:N\jttdefault\exp_not:N\fi%%%
143             \exp_not:N \selectfont
144           }
145       }
146     \str_if_eq:eeT {\familydefault} {\ttdefault}
147       { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl }
148     \__fontspec_setmonofont_hook:nn {#1} {#2}
149     \normalfont
150   }
151 %% end of 2.7d
152 }}
153
154 \cs_set:Nn \fontspec_visible_space:
155  {
156  \__fontspec_primitive_font_glyph_if_exist:NnTF \font {"2423}
157    { \ltjalchar"2423\scan_stop: }
158    { \fontspec_visible_space_fallback: }
159  }
160
161 \cs_set:Npn \emshape { \gtfamily \itshape }
162 \cs_set:Npn \eminnershape { \mcfamily \upshape }
163
164 \ExplSyntaxOff
165 \expandafter\patchcmd\csname TU\string\textasteriskcentered\endcsname{\char}{\ltjalchar}{}{}
166
167 \endinput
168