OSDN Git Service

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