OSDN Git Service

luatexja-preset.sty: bugfix
[luatex-ja/luatexja.git] / src / addons / luatexja-preset.sty
1 % luatexja-preset.sty
2 \ProvidesPackage{luatexja-preset}[2015/04/05 Japanese font presets]
3
4 \RequirePackage{expl3}
5 \RequirePackage{luatexja}
6 \ExplSyntaxOn
7
8 %%%% message
9 \bool_new:N \l_ltjpreset_nfssonly_bool % nfssonly
10 \bool_set_false:N \l_ltjpreset_nfssonly_bool
11 \DeclareOption{nfssonly}  {\bool_set_true:N \l_ltjpreset_nfssonly_bool}
12 \DeclareOption{fontspec}  {\bool_set_false:N \l_ltjpreset_nfssonly_bool}
13
14 \bool_new:N \l_ltjpreset_bold_bool % bold
15 \bool_set_false:N \l_ltjpreset_bold_bool
16 \DeclareOption{bold}  {\bool_set_true:N \l_ltjpreset_bold_bool}
17 \DeclareOption{nobold}{\bool_set_false:N \l_ltjpreset_bold_bool}
18
19 \bool_new:N \l_ltjpreset_expert_bool % expert
20 \bool_set_false:N \l_ltjpreset_expert_bool
21 \DeclareOption{expert}  {\bool_set_true:N \l_ltjpreset_expert_bool}
22 \DeclareOption{noexpert}{\bool_set_false:N \l_ltjpreset_expert_bool}
23
24 \int_new:N \l_ltjpreset_deluxe_int % deluxe
25 \int_set:Nn \l_ltjpreset_deluxe_int { 0 }
26 \DeclareOption{deluxe}{\int_set:Nn \l_ltjpreset_deluxe_int { 2 }}   % 6 fonts
27 \DeclareOption{nodeluxe}{\int_set:Nn \l_ltjpreset_deluxe_int { 0 }} % 2 fonts
28
29 % JFM
30 \cs_set:Npn \ltjpreset_use_jfm: {ujis}  % 使用する JFM
31 %%% \DeclareOption{min}{\cs_set:Npn  \ltjpreset_use_jfm: {min}} % min
32 %%% ↑jfm-min.lua が横組み・縦組み専用仮名に追いついていないので使用禁止
33 \DeclareOption{jis}{\cs_set:Npn  \ltjpreset_use_jfm: {jis}}     % jis
34 \DeclareOption{ujis}{\cs_set:Npn  \ltjpreset_use_jfm: {ujis}}   % ujis
35
36 % 漢字字形
37 \tl_new:N \l_ltjpreset_kanji_shape_tl
38 \DeclareOption{90jis}{  \tl_set:Nn \l_ltjpreset_kanji_shape_tl { , CJKShape=JIS1990 }} % 90jis
39 \DeclareOption{jis2004}{\tl_set:Nn \l_ltjpreset_kanji_shape_tl { , CJKShape=JIS2004 }} % jis2004
40
41 % font preset
42 \bool_new:N \l_ltjpreset_office_bool  % MS Office の HG 系フォントを使っているか
43 \bool_new:N \l_ltjpreset_noembed_bool % 非埋込か
44 \clist_new:N \l_ltjpreset_font_list
45
46 \cs_new:Npn \ltjpreset_set_uni:nn #1#2 {
47   \ltjpreset_set_multi:n { #1, #2, #2, #2, #2, #2, #2 }
48 }
49 \cs_new:Npn \ltjpreset_set_multi:n #1 {
50   \clist_set:Nn \l_ltjpreset_font_list { #1 }
51   \bool_set_false:N \l_ltjpreset_office_bool
52   \bool_set_false:N \l_ltjpreset_noembed_bool
53 }
54 \cs_new:Npn \ltjpreset_set_office:nn #1 #2{
55   \ltjpreset_set_multi:n {
56     #1, HGMinchoE ,           % mc/m, mc/bx
57     HGGothicM , HGGothicE ,   % gt/m, gt/bx (multiweight))
58     #2 , HGSoeiKakugothicUB , % gt/m (uni), gt/eb
59     HGMaruGothicMPRO          % mg/m
60   }
61   \bool_set_true:N \l_ltjpreset_office_bool
62 }
63
64
65 % 小塚 (Adobe)
66 %% Pro
67 \DeclareOption{kozuka-pro}{
68   \ltjpreset_set_multi:n {
69     KozMinPro-Regular , % mc/m
70     KozMinPro-Bold ,    % mc/bx
71     KozGoPro-Regular , % gt/m  (multi)
72     KozGoPro-Bold ,    % gt/bx
73     KozGoPro-Medium  , % gt/m  (uni)
74     KozGoPro-Heavy ,   % gt/eb
75     KozGoPro-Heavy     % mg/m
76   }
77 }
78 %% Pr6
79 \DeclareOption{kozuka-pr6}{
80   \ltjpreset_set_multi:n {
81     KozMinProVI-Regular , % mc/m
82     KozMinProVI-Bold ,    % mc/bx
83     KozGoProVI-Regular , % gt/m  (multi)
84     KozGoProVI-Bold ,    % gt/bx
85     KozGoProVI-Medium  , % gt/m  (uni)
86     KozGoProVI-Heavy ,   % gt/eb
87     KozGoProVI-Heavy     % mg/m
88   }
89 }
90 %% Pr6N
91 \DeclareOption{kozuka-pr6n}{
92   \ltjpreset_set_multi:n {
93     KozMinPr6N-Regular , % mc/m
94     KozMinPr6N-Bold ,    % mc/bx
95     KozGoPr6N-Regular , % gt/m  (multi)
96     KozGoPr6N-Bold ,    % gt/bx
97     KozGoPr6N-Medium  , % gt/m  (uni)
98     KozGoPr6N-Heavy ,   % gt/eb
99     KozGoPr6N-Heavy     % mg/m
100   }
101 }
102
103 % ヒラギノ (OSX)
104 \DeclareOption{hiragino-pro}{
105   \ltjpreset_set_multi:n {
106     HiraMinPro-W3 , 
107     HiraMinPro-W6 , 
108     HiraKakuPro-W3 , % gt/m (multi)
109     HiraKakuPro-W6 , 
110     HiraKakuPro-W6 , % gt/m (uni)
111     HiraKakuStd-W8 , 
112     HiraMaruPro-W4 , 
113   }
114 }
115 \DeclareOption{hiragino-pron}{
116   \ltjpreset_set_multi:n {
117     HiraMinProN-W3 , 
118     HiraMinProN-W6 , 
119     HiraKakuProN-W3 , % gt/m (multi)
120     HiraKakuProN-W6 , 
121     HiraKakuProN-W6 , % gt/m (uni)
122     HiraKakuStdN-W8 , 
123     HiraMaruProN-W4 , 
124   }
125 }
126
127 % モリサワ
128 \DeclareOption{morisawa-pro}{
129   \ltjpreset_set_multi:n {
130     A-OTF-RyuminPro-Light.otf , A-OTF-FutoMinA101Pro-Bold.otf ,    % mc/m, mc/bx
131     A-OTF-GothicBBBPro-Medium.otf , A-OTF-FutoGoB101Pro-Bold.otf , % gt/m, gt/bx (multiweight))
132     A-OTF-GothicBBBPro-Medium.otf , A-OTF-MidashiGoPro-MB31.otf ,  % gt/m (uni), gt/eb
133     A-OTF-Jun101Pro-Light.otf % mg/m
134   }
135 }
136 \DeclareOption{morisawa-pr6n}{
137   \ltjpreset_set_multi:n {
138     A-OTF-RyuminPr6N-Light.otf , A-OTF-FutoMinA101Pr6N-Bold.otf ,    % mc/m, mc/bx
139     A-OTF-GothicBBBPr6N-Medium.otf , A-OTF-FutoGoB101Pr6N-Bold.otf , % gt/m, gt/bx (multiweight))
140     A-OTF-GothicBBBPr6N-Medium.otf , A-OTF-MidashiGoPr6N-MB31.otf ,  % gt/m (uni), gt/eb
141     A-OTF-ShinMGoPr6N-Light.otf                                      % mg/m
142   }
143 }
144
145 % 游明朝/游ゴシック (Win8.1)
146 \DeclareOption{yu-win}{
147   \ltjpreset_set_multi:n {
148     YuMincho-Regular , YuMincho-Demibold , % mc/m, mc/bx
149     YuGothic-Regular , YuGothic-Bold ,     % gt/m, gt/bx (multiweight))
150     YuGothic-Bold    , YuGothic-Bold ,     % gt/m (uni), gt/eb
151     YuGothic-Bold                          % mg/m
152   }
153 }
154
155 % Yu fonts in OSX
156 % according to http://support.apple.com/kb/HT5944
157 \DeclareOption{yu-osx}{
158   \ltjpreset_set_multi:n {
159     YuMincho~Medium , YuMincho~Demibold , % mc/m, mc/bx
160     YuGothic~Medium , YuGothic~Bold ,     % gt/m, gt/bx (multiweight))
161     YuGothic~Bold   , YuGothic~Bold ,     % gt/m (uni), gt/eb
162     YuGothic~Bold                          % mg/m
163   }
164 }
165
166 % ipa, ipaex, ms
167 \DeclareOption{ipa}{
168   \ltjpreset_set_uni:nn { IPAMincho } { IPAGothic }
169 }
170 \DeclareOption{ipaex}{
171   \ltjpreset_set_uni:nn { IPAExMincho } { IPAExGothic }
172 }
173 \DeclareOption{ms}{
174   \ltjpreset_set_uni:nn { MS-Mincho } { MS-Gothic }
175 }
176
177 % {ipa,ipaex,ms}-dx % Office 付属フォントを利用
178 \DeclareOption{ipaex-hg}{
179   \ltjpreset_set_office:nn { IPAExMincho } { IPAExGothic }
180 }
181 \DeclareOption{ipa-hg}{
182   \ltjpreset_set_office:nn { IPAMincho } { IPAGothic }
183 }
184 \DeclareOption{ms-hg}{
185   \ltjpreset_set_office:nn { MS-Mincho } { MS-Gothic }
186 }
187
188
189 % 非埋込
190 \DeclareOption{noembed}{
191   \ltjpreset_set_uni:nn { Ryumin-Light } { GothicBBB-Medium }
192   \bool_set_true:N \l_ltjpreset_noembed_bool
193 }
194
195 \ExecuteOptions{ipaex}
196
197 % match 
198 \DeclareOption{match} {
199   \bool_if:NF  \ltj_fontspec_match_bool {
200     \ltj_fontspec_match_cmd
201     \bool_set_true:N \ltj_fontspec_match_bool
202   }
203 }
204 \ProcessOptions*
205
206 %%%%%%%% main routine
207
208 \msg_new:nnn { luatexja-preset }{ ltj-fontspec }{
209   The~ luatexja-fontspec~ package~ is~ loaded~ already.~
210   Hence~ we~ ignore~ `nfssonly'~option.
211 }
212 \@ifpackageloaded{luatexja-fontspec}{
213   \bool_if:NT \l_ltjpreset_nfssonly_bool
214     { \msg_warning:nn { luatexja-preset }{ ltj-fontspec } }
215   \bool_set_false:N \l_ltjpreset_nfssonly_bool
216 }{}
217
218 \bool_new:N \l_ltjpreset_shape_nlck_bool
219 %% KozMinPr6N, HiraMinProN-W3 の場合はjp04 feature がないので,nlck にする
220 \tl_set:Nn \l_tmpa_tl {, CJKShape=JIS2004 }
221 \tl_if_eq:NNT \l_ltjpreset_kanji_shape_tl \l_tmpa_tl {
222   \clist_if_in:NnT \l_ltjpreset_font_list { KozMinPr6N-Regular }
223    { \bool_set_true:N \l_ltjpreset_shape_nlck_bool }
224   \clist_if_in:NnT \l_ltjpreset_font_list { HiraMinProN-W3 }
225    { \bool_set_true:N \l_ltjpreset_shape_nlck_bool }
226 }
227
228 %%%%  リストからの展開
229 % mc/m
230 \clist_pop:NN \l_ltjpreset_font_list \l_tmpa_tl
231 \cs_set:Nx \ltjpreset_font_mc_m: { \tl_use:N \l_tmpa_tl }
232
233 % mc/bx
234 \clist_pop:NN \l_ltjpreset_font_list \l_tmpa_tl
235 \cs_set:Nx \ltjpreset_font_mc_bx: { \tl_use:N \l_tmpa_tl }
236
237 % gt/m
238 \clist_pop:NN \l_ltjpreset_font_list \l_tmpa_tl
239 \cs_set:Nx \ltjpreset_font_gt_m: { \tl_use:N \l_tmpa_tl }
240
241 % gt/bx
242 \clist_pop:NN \l_ltjpreset_font_list \l_tmpa_tl
243 \cs_set:Nx \ltjpreset_font_gt_bx: { \tl_use:N \l_tmpa_tl }
244
245 % gt/m-uni
246 \clist_pop:NN \l_ltjpreset_font_list \l_tmpa_tl
247 \cs_set:Nx \ltjpreset_font_gt_n_uni: { \tl_use:N \l_tmpa_tl }
248
249 % gt/eb
250 \clist_pop:NN \l_ltjpreset_font_list \l_tmpa_tl
251 \cs_set:Nx \ltjpreset_font_gt_eb: { \tl_use:N \l_tmpa_tl }
252
253 % mg/m
254 \clist_pop:NN \l_ltjpreset_font_list \l_tmpa_tl
255 \cs_set:Nx \ltjpreset_font_mg: { \tl_use:N \l_tmpa_tl }
256
257 %% HG 系フォント + JIS2004/90JIS のときはフォント名を置換
258 \bool_if:NT \l_ltjpreset_office_bool {
259   \tl_set:Nn \l_tmpa_tl {, CJKShape=JIS2004 }
260   \tl_if_eq:NNT \l_ltjpreset_kanji_shape_tl \l_tmpa_tl { 
261     \cs_set:Nx \ltjpreset_font_mc_bx: { hgrme04.ttc }
262     \cs_set:Nx \ltjpreset_font_gt_bx: { hgrge04.ttc }
263     \cs_set:Nx \ltjpreset_font_gt_eb: { hgrsgu04.ttc }
264     \cs_set:Nx \ltjpreset_font_mg:    { hgrsmp04.ttf }
265     \cs_set_eq:NN \ltjpreset_font_gt_m: \ltjpreset_font_gt_n_uni:
266     % HG ゴシックM のときはそうはいかないので 1 ウェイト時のゴシック体を使う
267   }
268   \tl_set:Nn \l_tmpa_tl {, CJKShape=JIS1990 }
269   \tl_if_eq:NNT \l_ltjpreset_kanji_shape_tl \l_tmpa_tl { 
270     \cs_set:Nx \ltjpreset_font_mc_bx: { hgrme.ttc }
271     \cs_set:Nx \ltjpreset_font_gt_bx: { hgrge.ttc }
272     \cs_set:Nx \ltjpreset_font_gt_eb: { hgrsgu.ttc }
273     \cs_set:Nx \ltjpreset_font_mg:    { hgrsmp.ttf }
274   }
275 }
276
277 %% 90JIS/JIS2004 字形指定のオプション
278 \bool_if:NTF \l_ltjpreset_nfssonly_bool {
279   \tl_set:Nn \l_tmpa_tl {, CJKShape=JIS1990 }
280   \tl_if_eq:NNT \l_ltjpreset_kanji_shape_tl \l_tmpa_tl {
281     \tl_set:Nn \l_ltjpreset_kanji_shape_tl { +jp90 }
282   }
283   \tl_set:Nn \l_tmpa_tl {, CJKShape=JIS2004 }
284   \tl_if_eq:NNT \l_ltjpreset_kanji_shape_tl \l_tmpa_tl {
285     \bool_if:NTF \l_ltjpreset_shape_nlck_bool 
286       { \tl_set:Nn \l_ltjpreset_kanji_shape_tl { +nlck } }
287       { \tl_set:Nn \l_ltjpreset_kanji_shape_tl { +jp04 } }
288   }
289 } {
290   \tl_set:Nn \l_tmpa_tl {, CJKShape=JIS2004 }
291   \tl_if_eq:NNT \l_ltjpreset_kanji_shape_tl \l_tmpa_tl {
292     \bool_if:NT \l_ltjpreset_shape_nlck_bool 
293       { \tl_set:Nn \l_ltjpreset_kanji_shape_tl { , CJKShape=NLC } }
294   }
295 }
296
297 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
298 %%%%%%%% nfss only
299 \bool_if:NTF \l_ltjpreset_nfssonly_bool {
300
301 \fp_new:N \l_ltjpreset_scale_fp
302 \group_begin:
303 \fontsize{10}{10}\selectfont
304 \fp_gset:Nn \l_ltjpreset_scale_fp {\zw / 10}
305 \group_end:
306 \msg_new:nnn { luatexja-preset }{ scale }{
307   Japanese~fonts~will~be~scaled~by~\fp_use:N \l_ltjpreset_scale_fp.
308 }
309 \msg_warning:nn { luatexja-preset }{ scale }
310
311 \cs_new:Nn \ltj_preset_define_family:nnn {
312   \DeclareFontShape{JY3}{#1}{#2}{n}{ <-> s*[\fp_use:N \l_ltjpreset_scale_fp] 
313     {\bool_if:NT \l_ltjpreset_noembed_bool {psft:} #3
314     : jfm=\ltjpreset_use_jfm: ;-kern;\tl_use:N \l_ltjpreset_kanji_shape_tl
315     ; script=latn \bool_if:NT \l_ltjpreset_expert_bool { ;+hkna }}
316   } {}
317   \DeclareFontShape{JT3}{#1}{#2}{n}{ <-> s*[\fp_use:N \l_ltjpreset_scale_fp] 
318     {\bool_if:NT \l_ltjpreset_noembed_bool {psft:} #3
319     : jfm=ujisv ;-kern;\tl_use:N \l_ltjpreset_kanji_shape_tl
320     ; script=latn \bool_if:NT \l_ltjpreset_expert_bool { ;+vkna }}
321   } {}
322   \bool_if:NT \l_ltjpreset_expert_bool { 
323     \DeclareFontShape{JY3}{#1}{#2}{rb}{ <-> s*[\fp_use:N \l_ltjpreset_scale_fp] 
324       {\bool_if:NT \l_ltjpreset_noembed_bool {psft:} #3
325       : jfm=\ltjpreset_use_jfm: ;-kern;\tl_use:N \l_ltjpreset_kanji_shape_tl ;+ruby
326       ; script=kana}
327     } {}
328     \DeclareFontShape{JT3}{#1}{#2}{rb}{ <-> s*[\fp_use:N \l_ltjpreset_scale_fp] 
329       {\bool_if:NT \l_ltjpreset_noembed_bool {psft:} #3
330       : jfm=ujisv ;-kern;\tl_use:N \l_ltjpreset_kanji_shape_tl ;+ruby
331       ; script=kana}
332     } {}
333   }
334 }
335
336 \DeclareKanjiFamily{JY3}{ltjpm}{}\DeclareKanjiFamily{JT3}{ltjpm}{}
337 \DeclareKanjiFamily{JY3}{ltjpg}{}\DeclareKanjiFamily{JT3}{ltjpg}{}
338
339 \int_compare:nTF { \l_ltjpreset_deluxe_int ==  2 } {
340   \bool_if:NT \l_ltjpreset_bold_bool {
341     \cs_set_eq:NN \ltjpreset_font_mc_bx: \ltjpreset_font_gt_bx:
342   }
343 }{
344   \bool_if:NTF \l_ltjpreset_bold_bool {
345     \cs_set_eq:NN \ltjpreset_font_gt_m: \ltjpreset_font_gt_bx:
346   }{
347     \cs_set_eq:NN \ltjpreset_font_gt_m: \ltjpreset_font_gt_n_uni:
348   }
349   \cs_set_eq:NN \ltjpreset_font_gt_bx: \ltjpreset_font_gt_m:
350   \cs_set_eq:NN \ltjpreset_font_mc_bx: \ltjpreset_font_gt_m:
351 }
352
353 \ltj_preset_define_family:nnn {ltjpm} {m}  {\ltjpreset_font_mc_m:} 
354 \ltj_preset_define_family:nnn {ltjpm} {bx} {\ltjpreset_font_mc_bx:}
355 \ltj_preset_define_family:nnn {ltjpg} {m}  {\ltjpreset_font_gt_m:} 
356 \ltj_preset_define_family:nnn {ltjpg} {bx} {\ltjpreset_font_gt_bx:}
357
358 \def\mcdefault{ltjpm}\def\gtdefault{ltjpg}
359 \normalfont
360
361 \SetSymbolFont{mincho}{normal}{JY3}{ltjpm}{m}{n}
362 \SetSymbolFont{mincho}{bold}{JY3}{ltjpm}{bx}{n}
363 \DeclareMathAlphabet{\mathgt}{JY3}{ltjpg}{m}{n}
364
365 \bool_if:NT \l_ltjpreset_expert_bool { 
366   \DeclareRobustCommand\rubyfamily { \kanjishape{rb}\selectfont }
367 }
368
369 \int_compare:nTF { \l_ltjpreset_deluxe_int ==  2 } {
370   \DeclareKanjiFamily{JY3}{ltjpmg}{}\DeclareKanjiFamily{JT3}{ltjpmg}{}
371   \ltj_preset_define_family:nnn {ltjpmg} {m}  {\ltjpreset_font_mg:} 
372   \ltj_preset_define_family:nnn {ltjpg}  {eb} {\ltjpreset_font_gt_eb:}
373   \def\ebdefault{eb}
374   \DeclareRobustCommand\ebseries { \not@math@alphabet\ebseries\relaxfontseries\ebdefault\selectfont }
375   \DeclareRobustCommand\gtebfamily { \kanjifamily{ltjpg}\fontseries{eb}\selectfont }
376   \DeclareTextFontCommand{\textgteb}{\gtebfamily}
377   \DeclareRobustCommand\mgfamily { \not@math@alphabet\mgfamily\relax\kanjifamily{ltjpmg}\selectfont }
378   \DeclareTextFontCommand{\textmg}{\mgfamily}
379 }
380
381 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
382 %%%%%%%% fontspec
383 } {
384
385 \RequirePackage{luatexja-fontspec}
386 % scale
387 \msg_new:nnn { luatexja-preset }{ scale }{
388   Japanese~fonts~will~be~scaled~by~\fp_use:N \g_ltj_fontspec_scale_fp.
389 }
390 \msg_warning:nn { luatexja-preset }{ scale }
391
392 % expert 用設定
393 \tl_new:N \l_ltjpreset_add_features_tl
394
395 \tl_set:Nx \l_ltjpreset_add_features_tl {
396   \tl_use:N \l_ltjpreset_kanji_shape_tl,
397   YokoFeatures = { JFM = \ltjpreset_use_jfm: }, 
398 }
399
400 \bool_if:NT \l_ltjpreset_expert_bool {
401   \cs_set:Npn \rubyfamily { \addjfontfeatures { 
402     Style=Ruby , YokoFeatures={RawFeature=-hkna} , TateFeatures={RawFeature=-vkna}
403   } }
404   \tl_put_left:Nn \l_ltjpreset_add_features_tl { 
405     YokoFeatures = {Style = HorizontalKana}, 
406     TateFeatures = {Style = VerticalKana}, 
407   }
408 }
409
410 % (丸)ゴシック体の設定: bold option もここで
411 \int_compare:nTF { \l_ltjpreset_deluxe_int ==  2 } {
412 %% mg
413  \newjfontfamily \mgfamily [
414       BoldFont = \ltjpreset_font_mg:,
415       \tl_use:N \l_ltjpreset_add_features_tl
416       \bool_if:NT \l_ltjpreset_noembed_bool { , NoEmbed }, 
417       \tl_use:N \l_ltjpreset_add_features_tl 
418     ] { \ltjpreset_font_mg: }
419     \DeclareTextFontCommand{\textmg}{\mgfamily}
420 %% gt/eb
421 %% 注意: ファミリは 'gteb'.シリーズは \mdseries のまま.
422 %%       \bfseries を追加したほうが良い?
423   \newjfontfamily \gtebfamily [
424       BoldFont = \ltjpreset_font_gt_eb:, 
425       \tl_use:N \l_ltjpreset_add_features_tl
426       \bool_if:NT \l_ltjpreset_noembed_bool { , NoEmbed }, 
427       \tl_use:N \l_ltjpreset_add_features_tl 
428     ] { \ltjpreset_font_gt_eb: }
429   \DeclareTextFontCommand{\textgteb}{\gtebfamily}
430   \bool_if:NT \l_ltjpreset_bold_bool {
431     \cs_set_eq:NN \ltjpreset_font_mc_bx: \ltjpreset_font_gt_bx:
432   }
433 }{
434   \bool_if:NTF \l_ltjpreset_bold_bool {
435     \cs_set_eq:NN \ltjpreset_font_gt_m: \ltjpreset_font_gt_bx:
436   }{
437     \cs_set_eq:NN \ltjpreset_font_gt_m: \ltjpreset_font_gt_n_uni:
438   }
439   \cs_set_eq:NN \ltjpreset_font_gt_bx: \ltjpreset_font_gt_m:
440   \cs_set_eq:NN \ltjpreset_font_mc_bx: \ltjpreset_font_gt_m:
441 }
442
443
444 % 実際の fontspec の呼びだし
445
446 \addjfontfeature{ Kerning=Off }
447
448 \setmainjfont [ 
449   BoldFont = \ltjpreset_font_mc_bx:
450   \bool_if:NT \l_ltjpreset_noembed_bool { , NoEmbed }, 
451   \tl_use:N \l_ltjpreset_add_features_tl 
452 ] { \ltjpreset_font_mc_m: }
453 \setsansjfont [ 
454   BoldFont = \ltjpreset_font_gt_bx: 
455   \bool_if:NT \l_ltjpreset_noembed_bool { , NoEmbed }, 
456   \tl_use:N \l_ltjpreset_add_features_tl 
457 ] { \ltjpreset_font_gt_m: }
458
459 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
460 }
461 \ExplSyntaxOff
462 \endinput