OSDN Git Service

Merge branch 'kitagawa_test' of git.sourceforge.jp:/gitroot/luatex-ja/luatexja into...
[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:NNT \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    { \tl_remove_all:Nn \l_ltjpreset_font_list {90} }%%% これでいいのか?
233  
234 }
235
236 %%%%  リストからの展開
237 % mc/m
238 \clist_pop:NN \l_ltjpreset_font_list \l_tmpa_tl
239 \cs_set:Nx \ltjpreset_font_mc_m: { \tl_use:N \l_tmpa_tl }
240
241 % mc/bx
242 \clist_pop:NN \l_ltjpreset_font_list \l_tmpa_tl
243 \cs_set:Nx \ltjpreset_font_mc_bx: { \tl_use:N \l_tmpa_tl }
244
245 % gt/m
246 \clist_pop:NN \l_ltjpreset_font_list \l_tmpa_tl
247 \cs_set:Nx \ltjpreset_font_gt_m: { \tl_use:N \l_tmpa_tl }
248
249 % gt/bx
250 \clist_pop:NN \l_ltjpreset_font_list \l_tmpa_tl
251 \cs_set:Nx \ltjpreset_font_gt_bx: { \tl_use:N \l_tmpa_tl }
252
253 % gt/m-uni
254 \clist_pop:NN \l_ltjpreset_font_list \l_tmpa_tl
255 \cs_set:Nx \ltjpreset_font_gt_n_uni: { \tl_use:N \l_tmpa_tl }
256
257 % gt/eb
258 \clist_pop:NN \l_ltjpreset_font_list \l_tmpa_tl
259 \cs_set:Nx \ltjpreset_font_gt_eb: { \tl_use:N \l_tmpa_tl }
260
261 % mg/m
262 \clist_pop:NN \l_ltjpreset_font_list \l_tmpa_tl
263 \cs_set:Nx \ltjpreset_font_mg: { \tl_use:N \l_tmpa_tl }
264
265 %% HG 系フォント + JIS2004/90JIS のときはフォント名を置換
266 \bool_if:NT \l_ltjpreset_office_bool {
267   \tl_set:Nn \l_tmpa_tl {, CJKShape=JIS2004 }
268   \tl_if_eq:NNT \l_ltjpreset_kanji_shape_tl \l_tmpa_tl { 
269     \cs_set:Nx \ltjpreset_font_mc_bx: { hgrme04.ttc }
270     \cs_set:Nx \ltjpreset_font_gt_bx: { hgrge04.ttc }
271     \cs_set:Nx \ltjpreset_font_gt_eb: { hgrsgu04.ttc }
272     \cs_set:Nx \ltjpreset_font_mg:    { hgrsmp04.ttf }
273     \cs_set_eq:NN \ltjpreset_font_gt_m: \ltjpreset_font_gt_n_uni:
274     % HG ゴシックM のときはそうはいかないので 1 ウェイト時のゴシック体を使う
275   }
276   \tl_set:Nn \l_tmpa_tl {, CJKShape=JIS1990 }
277   \tl_if_eq:NNT \l_ltjpreset_kanji_shape_tl \l_tmpa_tl { 
278     \cs_set:Nx \ltjpreset_font_mc_bx: { hgrme.ttc }
279     \cs_set:Nx \ltjpreset_font_gt_bx: { hgrge.ttc }
280     \cs_set:Nx \ltjpreset_font_gt_eb: { hgrsgu.ttc }
281     \cs_set:Nx \ltjpreset_font_mg:    { hgrsmp.ttf }
282   }
283 }
284
285 %% 90JIS/JIS2004 字形指定のオプション
286 \bool_if:NTF \l_ltjpreset_nfssonly_bool {
287   \tl_set:Nn \l_tmpa_tl {, CJKShape=JIS1990 }
288   \tl_if_eq:NNT \l_ltjpreset_kanji_shape_tl \l_tmpa_tl {
289     \tl_set:Nn \l_ltjpreset_kanji_shape_tl { +jp90 }
290   }
291   \tl_set:Nn \l_tmpa_tl {, CJKShape=JIS2004 }
292   \tl_if_eq:NNT \l_ltjpreset_kanji_shape_tl \l_tmpa_tl {
293     \bool_if:NTF \l_ltjpreset_shape_nlck_bool 
294       { \tl_set:Nn \l_ltjpreset_kanji_shape_tl { +nlck } }
295       { \tl_set:Nn \l_ltjpreset_kanji_shape_tl { +jp04 } }
296   }
297 } {
298   \tl_set:Nn \l_tmpa_tl {, CJKShape=JIS2004 }
299   \tl_if_eq:NNT \l_ltjpreset_kanji_shape_tl \l_tmpa_tl {
300     \bool_if:NT \l_ltjpreset_shape_nlck_bool 
301       { \tl_set:Nn \l_ltjpreset_kanji_shape_tl { , CJKShape=NLC } }
302   }
303 }
304
305 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
306 %%%%%%%% nfss only
307 \bool_if:NTF \l_ltjpreset_nfssonly_bool {
308
309 \fp_new:N \l_ltjpreset_scale_fp
310 \group_begin:
311 \fontsize{10}{10}\selectfont
312 \fp_gset:Nn \l_ltjpreset_scale_fp {\zw / 10}
313 \group_end:
314 \msg_new:nnn { luatexja-preset }{ scale }{
315   Japanese~fonts~will~be~scaled~by~\fp_use:N \l_ltjpreset_scale_fp.
316 }
317 \msg_warning:nn { luatexja-preset }{ scale }
318
319 \cs_new:Nn \ltj_preset_define_family:nnn {
320   \DeclareFontShape{JY3}{#1}{#2}{n}{ <-> s*[\fp_use:N \l_ltjpreset_scale_fp] 
321     {\bool_if:NT \l_ltjpreset_noembed_bool {psft:} "#3"
322     : jfm=\ltjpreset_use_jfm: ;-kern;\tl_use:N \l_ltjpreset_kanji_shape_tl
323     ; script=latn \bool_if:NT \l_ltjpreset_expert_bool { ;+hkna }}
324   } {}
325   \DeclareFontShape{JT3}{#1}{#2}{n}{ <-> s*[\fp_use:N \l_ltjpreset_scale_fp] 
326     {\bool_if:NT \l_ltjpreset_noembed_bool {psft:} "#3"
327     : jfm=ujisv ;-kern;\tl_use:N \l_ltjpreset_kanji_shape_tl;
328     ; script=latn \bool_if:NT \l_ltjpreset_expert_bool { ;+vkna }}
329   } {}
330   \bool_if:NT \l_ltjpreset_expert_bool { 
331     \DeclareFontShape{JY3}{#1}{#2}{rb}{ <-> s*[\fp_use:N \l_ltjpreset_scale_fp] 
332       {\bool_if:NT \l_ltjpreset_noembed_bool {psft:} "#3"
333       : jfm=\ltjpreset_use_jfm: ;-kern;\tl_use:N \l_ltjpreset_kanji_shape_tl ;+ruby
334       ; script=kana}
335     } {}
336     \DeclareFontShape{JT3}{#1}{#2}{rb}{ <-> s*[\fp_use:N \l_ltjpreset_scale_fp] 
337       {\bool_if:NT \l_ltjpreset_noembed_bool {psft:} "#3"
338       : jfm=ujisv ;-kern;\tl_use:N \l_ltjpreset_kanji_shape_tl ;+ruby
339       ; script=kana}
340     } {}
341   }
342 }
343
344 \DeclareKanjiFamily{JY3}{ltjpm}{}\DeclareKanjiFamily{JT3}{ltjpm}{}
345 \DeclareKanjiFamily{JY3}{ltjpg}{}\DeclareKanjiFamily{JT3}{ltjpg}{}
346
347 \int_compare:nTF { \l_ltjpreset_deluxe_int ==  2 } {
348   \bool_if:NT \l_ltjpreset_bold_bool {
349     \cs_set_eq:NN \ltjpreset_font_mc_bx: \ltjpreset_font_gt_bx:
350   }
351 }{
352   \bool_if:NTF \l_ltjpreset_bold_bool {
353     \cs_set_eq:NN \ltjpreset_font_gt_m: \ltjpreset_font_gt_bx:
354   }{
355     \cs_set_eq:NN \ltjpreset_font_gt_m: \ltjpreset_font_gt_n_uni:
356   }
357   \cs_set_eq:NN \ltjpreset_font_gt_bx: \ltjpreset_font_gt_m:
358   \cs_set_eq:NN \ltjpreset_font_mc_bx: \ltjpreset_font_gt_m:
359 }
360
361 \ltj_preset_define_family:nnn {ltjpm} {m}  {\ltjpreset_font_mc_m:} 
362 \ltj_preset_define_family:nnn {ltjpm} {bx} {\ltjpreset_font_mc_bx:}
363 \ltj_preset_define_family:nnn {ltjpg} {m}  {\ltjpreset_font_gt_m:} 
364 \ltj_preset_define_family:nnn {ltjpg} {bx} {\ltjpreset_font_gt_bx:}
365
366 \def\mcdefault{ltjpm}\def\gtdefault{ltjpg}
367 \normalfont
368
369 \SetSymbolFont{mincho}{normal}{JY3}{ltjpm}{m}{n}
370 \SetSymbolFont{mincho}{bold}{JY3}{ltjpm}{bx}{n}
371 \DeclareMathAlphabet{\mathgt}{JY3}{ltjpg}{m}{n}
372
373 \bool_if:NT \l_ltjpreset_expert_bool { 
374   \DeclareRobustCommand\rubyfamily { \kanjishape{rb}\selectfont }
375 }
376
377 \int_compare:nTF { \l_ltjpreset_deluxe_int ==  2 } {
378   \DeclareKanjiFamily{JY3}{ltjpmg}{}\DeclareKanjiFamily{JT3}{ltjpmg}{}
379   \ltj_preset_define_family:nnn {ltjpmg} {m}  {\ltjpreset_font_mg:} 
380   \ltj_preset_define_family:nnn {ltjpg}  {eb} {\ltjpreset_font_gt_eb:}
381   \def\ebdefault{eb}
382   \DeclareRobustCommand\ebseries { \not@math@alphabet\ebseries\relaxfontseries\ebdefault\selectfont }
383   \DeclareRobustCommand\gtebfamily { \kanjifamily{ltjpg}\fontseries{eb}\selectfont }
384   \DeclareTextFontCommand{\textgteb}{\gtebfamily}
385   \DeclareRobustCommand\mgfamily { \not@math@alphabet\mgfamily\relax\kanjifamily{ltjpmg}\selectfont }
386   \DeclareTextFontCommand{\textmg}{\mgfamily}
387 }
388
389 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
390 %%%%%%%% fontspec
391 } {
392
393 \RequirePackage{luatexja-fontspec}
394 % scale
395 \msg_new:nnn { luatexja-preset }{ scale }{
396   Japanese~fonts~will~be~scaled~by~\fp_use:N \g_ltj_fontspec_scale_fp.
397 }
398 \msg_warning:nn { luatexja-preset }{ scale }
399
400 % expert 用設定
401 \tl_new:N \l_ltjpreset_add_features_tl
402
403 \tl_set:Nx \l_ltjpreset_add_features_tl {
404   \tl_use:N \l_ltjpreset_kanji_shape_tl,
405   YokoFeatures = { JFM = \ltjpreset_use_jfm: }, 
406 }
407
408 \bool_if:NT \l_ltjpreset_expert_bool {
409   \cs_set:Npn \rubyfamily { \addjfontfeatures { 
410     Style=Ruby , YokoFeatures={RawFeature=-hkna} , TateFeatures={RawFeature=-vkna}
411   } }
412   \tl_put_left:Nn \l_ltjpreset_add_features_tl { 
413     YokoFeatures = {Style = HorizontalKana}, 
414     TateFeatures = {Style = VerticalKana}, 
415   }
416 }
417
418 % (丸)ゴシック体の設定: bold option もここで
419 \int_compare:nTF { \l_ltjpreset_deluxe_int ==  2 } {
420 %% mg
421  \newjfontfamily \mgfamily [
422       BoldFont = \ltjpreset_font_mg:,
423       \bool_if:NT \l_ltjpreset_noembed_bool { NoEmbed,  }
424       \tl_use:N \l_ltjpreset_add_features_tl 
425     ] { \ltjpreset_font_mg: }
426     \DeclareTextFontCommand{\textmg}{\mgfamily}
427 %% gt/eb
428 %% 注意: ファミリは 'gteb'.シリーズは \mdseries のまま.
429 %%       \bfseries を追加したほうが良い?
430   \newjfontfamily \gtebfamily [
431       BoldFont = \ltjpreset_font_gt_eb:,
432       \bool_if:NT \l_ltjpreset_noembed_bool { NoEmbed,  }
433       \tl_use:N \l_ltjpreset_add_features_tl 
434     ] { \ltjpreset_font_gt_eb: }
435   \DeclareTextFontCommand{\textgteb}{\gtebfamily}
436   \bool_if:NT \l_ltjpreset_bold_bool {
437     \cs_set_eq:NN \ltjpreset_font_mc_bx: \ltjpreset_font_gt_bx:
438   }
439 }{
440   \bool_if:NTF \l_ltjpreset_bold_bool {
441     \cs_set_eq:NN \ltjpreset_font_gt_m: \ltjpreset_font_gt_bx:
442   }{
443     \cs_set_eq:NN \ltjpreset_font_gt_m: \ltjpreset_font_gt_n_uni:
444   }
445   \cs_set_eq:NN \ltjpreset_font_gt_bx: \ltjpreset_font_gt_m:
446   \cs_set_eq:NN \ltjpreset_font_mc_bx: \ltjpreset_font_gt_m:
447 }
448
449
450 % 実際の fontspec の呼びだし
451
452 \addjfontfeature{ Kerning=Off }
453
454 \setmainjfont [ 
455   BoldFont = \ltjpreset_font_mc_bx:
456   \bool_if:NT \l_ltjpreset_noembed_bool { , NoEmbed }, 
457   \tl_use:N \l_ltjpreset_add_features_tl 
458 ] { \ltjpreset_font_mc_m: }
459 \setsansjfont [ 
460   BoldFont = \ltjpreset_font_gt_bx: 
461   \bool_if:NT \l_ltjpreset_noembed_bool { , NoEmbed }, 
462   \tl_use:N \l_ltjpreset_add_features_tl 
463 ] { \ltjpreset_font_gt_m: }
464
465 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
466 }
467 \ExplSyntaxOff
468 \endinput