OSDN Git Service

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