% luatexja-preset.sty
-\ProvidesPackage{luatexja-preset}[2017/05/05 Japanese font presets]
+\ProvidesPackage{luatexja-preset}[2017/07/30 Japanese font presets]
\RequirePackage{expl3,l3keys2e}
\RequirePackage{luatexja}
%% Pro
\ltjpreset_declare_option:nn{kozuka-pro}{
\ltjpreset_set_multi:n {
- KozMinPro-Regular , % mc/m
- KozMinPro-Bold , % mc/bx
- KozGoPro-Regular , % gt/m (multi)
- KozGoPro-Bold , % gt/bx
- KozGoPro-Medium , % gt/m (uni)
- KozGoPro-Heavy , % gt/eb
- KozGoPro-Heavy % mg/m
+ KozMinPro-Regular, % mc/m
+ KozMinPro-Bold, % mc/bx
+ KozGoPro-Regular, % gt/m (multi)
+ KozGoPro-Bold, % gt/bx
+ KozGoPro-Medium, % gt/m (uni)
+ KozGoPro-Heavy, % gt/eb
+ KozGoPro-Heavy, % mg/m
+ KozMinPro-Light, % mc/l
}
}
%% Pr6
\ltjpreset_declare_option:nn{kozuka-pr6}{
\ltjpreset_set_multi:n {
- KozMinProVI-Regular , % mc/m
- KozMinProVI-Bold , % mc/bx
- KozGoProVI-Regular , % gt/m (multi)
- KozGoProVI-Bold , % gt/bx
- KozGoProVI-Medium , % gt/m (uni)
- KozGoProVI-Heavy , % gt/eb
- KozGoProVI-Heavy % mg/m
+ KozMinProVI-Regular, % mc/m
+ KozMinProVI-Bold, % mc/bx
+ KozGoProVI-Regular, % gt/m (multi)
+ KozGoProVI-Bold, % gt/bx
+ KozGoProVI-Medium, % gt/m (uni)
+ KozGoProVI-Heavy, % gt/eb
+ KozGoProVI-Heavy, % mg/m
+ KozMinProVI-Light, % mc/l
}
}
%% Pr6N
\ltjpreset_declare_option:nn{kozuka-pr6n}{
\ltjpreset_set_multi:n {
- KozMinPr6N-Regular , % mc/m
- KozMinPr6N-Bold , % mc/bx
- KozGoPr6N-Regular , % gt/m (multi)
- KozGoPr6N-Bold , % gt/bx
- KozGoPr6N-Medium , % gt/m (uni)
- KozGoPr6N-Heavy , % gt/eb
- KozGoPr6N-Heavy % mg/m
+ KozMinPr6N-Regular, % mc/m
+ KozMinPr6N-Bold, % mc/bx
+ KozGoPr6N-Regular, % gt/m (multi)
+ KozGoPr6N-Bold, % gt/bx
+ KozGoPr6N-Medium, % gt/m (uni)
+ KozGoPr6N-Heavy, % gt/eb
+ KozGoPr6N-Heavy, % mg/m
+ KozMinPr6N-Light, % mc/l
}
}
HiraKakuPro-W6 , % gt/m (uni)
HiraKakuStd-W8 ,
HiraMaruPro-W4 ,
+ HiraMinPro-W2,
}
}
\ltjpreset_declare_option:nn{hiragino-pron}{
HiraKakuProN-W6 , % gt/m (uni)
HiraKakuStdN-W8 ,
HiraMaruProN-W4 ,
+ HiraMinProN-W2 ,
}
}
\ltjpreset_declare_option:nn{yu-win}{
\ltjpreset_set_multi:n {
YuMincho-Regular , YuMincho-Demibold , % mc/m, mc/bx
- YuGothic-Regular , YuGothic-Bold , % gt/m, gt/bx (multiweight))
+ YuGothic-Regular , YuGothic-Bold , % gt/m, gt/bx (multiweight))
YuGothic-Regular , YuGothic-Bold , % gt/m (uni), gt/eb
- YuGothic-Bold % mg/m
+ YuGothic-Bold, YuMincho-Light % mg/m, mc/l
}
}
% Win10
\ltjpreset_declare_option:nn{yu-win10}{
\ltjpreset_set_multi:n {
YuMincho-Regular , YuMincho-Demibold , % mc/m, mc/bx
- YuGothic-Regular , YuGothic-Bold , % gt/m, gt/bx (multiweight))
+ YuGothic-Regular , YuGothic-Bold , % gt/m, gt/bx (multiweight))
YuGothic-Medium , YuGothic-Bold , % gt/m (uni), gt/eb
- YuGothic-Bold % mg/m
+ YuGothic-Bold, YuMincho-Light % mg/m, mc/l
}
}
\ltjpreset_set_multi:n {
YuMincho~Medium , YuMincho~Demibold , % mc/m, mc/bx
YuGothic~Medium , YuGothic~Bold , % gt/m, gt/bx (multiweight))
- YuGothic~Medium , YuGothic~Bold , % gt/m (uni), gt/eb
+ YuGothic~Medium , YuGothic~Bold , % gt/m (uni), gt/eb
YuGothic~Bold % mg/m
}
}
% moga-mobo
\ltjpreset_declare_option:nn{moga-mobo}{
\ltjpreset_set_multi:n {
- Moga90Mincho, Moga90Mincho~Bold , % mc/m, mc/bx
- Moga90Gothic, Moga90Gothic~Bold, % gt/m, gt/bx (multiweight))
+ Moga90Mincho, Moga90Mincho~Bold , % mc/m, mc/bx
+ Moga90Gothic, Moga90Gothic~Bold, % gt/m, gt/bx (multiweight))
Moga90Gothic, Moga90Gothic~Bold, % gt/m (uni), gt/eb
- Mobo90Gothic % mg/m
+ Mobo90Gothic % mg/m
}
}
\ltjpreset_declare_option:nn{moga-mobo-ex}{
\ltjpreset_set_multi:n {
- MogaEx90Mincho, MogaEx90Mincho~Bold , % mc/m, mc/bx
- MogaEx90Gothic, MogaEx90Gothic~Bold, % gt/m, gt/bx (multiweight))
+ MogaEx90Mincho, MogaEx90Mincho~Bold , % mc/m, mc/bx
+ MogaEx90Gothic, MogaEx90Gothic~Bold, % gt/m, gt/bx (multiweight))
MogaEx90Gothic, MogaEx90Gothic~Bold, % gt/m (uni), gt/eb
- MoboEx90Gothic % mg/m
+ MoboEx90Gothic % mg/m
}
}
Source~Han~Sans~Bold, % gt/bx
Source~Han~Sans~Medium, % gt/m (uni)
Source~Han~Sans~Heavy, % gt/eb
- Source~Han~Sans~Heavy % mg/m
+ Source~Han~Sans~Heavy, % mg/m
+ Source~Han~Serif~Light, % mc/l
+ }
+}
+\ltjpreset_declare_option:nn{sourcehan-jp}{
+ \ltjpreset_set_multi:n {
+ Source~Han~Serif~JP~Regular, % mc/m
+ Source~Han~Serif~JP~Bold, % mc/bx
+ Source~Han~Sans~JP~Regular, % gt/m (multi)
+ Source~Han~Sans~JP~Bold, % gt/bx
+ Source~Han~Sans~JP~Medium, % gt/m (uni)
+ Source~Han~Sans~JP~Heavy, % gt/eb
+ Source~Han~Sans~JP~Heavy, % mg/m
+ Source~Han~Serif~JP~Light, % mc/l
}
}
\ltjpreset_declare_option:nn{noto-otc}{
Noto~Sans~CJK~Medium, % gt/m (uni)
Noto~Sans~CJK~Black, % gt/eb
Noto~Sans~CJK~Black, % mg/m
+ Noto~Serif~CJK~Light, % mc/l
}
}
\ltjpreset_declare_option:nn{noto-otf}{
Noto~Sans~CJK~JP~Medium, % gt/m (uni)
Noto~Sans~CJK~JP~Black, % gt/eb
Noto~Sans~CJK~JP~Black, % mg/m
+ Noto~Serif~CJK~JP~Light, % mc/l
}
}
\clist_pop:NN \l_ltjpreset_font_list \l_tmpa_tl
\cs_set:Nx \ltjpreset_font_mg: { \tl_use:N \l_tmpa_tl }
+
%% HG 系フォント + JIS2004/90JIS のときはフォント名を置換
\bool_if:NT \l_ltjpreset_office_bool {
\tl_set:Nn \l_tmpa_tl {, CJKShape=JIS2004 }
}
}
+% mc/l
+\clist_if_empty:NTF \l_ltjpreset_font_list
+ { \tl_set:Nn \l_tmpa_tl {~} }{ \clist_pop:NN \l_ltjpreset_font_list \l_tmpa_tl }
+\tl_if_empty:NT \l_tmpa_tl {\tl_set\colon Nn \l_tmpa_tl {~}}
+\cs_set:Nx \ltjpreset_font_mc_l: {
+ \tl_if_blank:nTF \l_tmpa_tl { \ltjpreset_font_mc_m: } {\tl_use:N \l_tmpa_tl }
+}
+
%% 90JIS/JIS2004 字形指定のオプション
\bool_if:NTF \l_ltjpreset_nfssonly_bool {
\tl_set:Nn \l_tmpa_tl {, CJKShape=JIS1990 }
}
}
+
+%%%%%%%% 存在判定
+\msg_new:nnn { luatexja-preset }{ no-font }{
+ Font~ for~ #1~ (#2)~ is~ not~found.~ Hence~ I~ substitute~ #3~ (#4)~ for~ it.
+}
+\bool_if:NT \l_ltjpreset_deluxe_bool {
+ \group_begin:
+ \suppressfontnotfounderror=1
+ \font \l_ltjpreset_font_test: = "\tl_use:N \ltjpreset_font_gt_eb:"\relax
+ \ifx \l_ltjpreset_font_test: \nullfont
+ \msg_warning:nnxxxx { luatexja-preset }{ no-font }
+ { \tl_use:N \ltjpreset_font_gt_eb: }{ gt/eb }{ \tl_use:N \ltjpreset_font_gt_bx: }{ gt/bx }
+ \cs_gset_eq:NN \ltjpreset_font_gt_eb: \ltjpreset_font_gt_bx:
+ \fi
+ \font \l_ltjpreset_font_test: = "\tl_use:N \ltjpreset_font_mc_l:"\relax
+ \ifx \l_ltjpreset_font_test: \nullfont
+ \msg_warning:nnxxxx { luatexja-preset }{ no-font }
+ { \tl_use:N \ltjpreset_font_mc_l: }{ mc/l }{ \tl_use:N \ltjpreset_font_mc_m: }{ mc/m }
+ \cs_gset_eq:NN \ltjpreset_font_mc_l: \ltjpreset_font_mc_m:
+ \fi
+ \font \l_ltjpreset_font_test: = "\tl_use:N \ltjpreset_font_mg:"\relax
+ \ifx \l_ltjpreset_font_test: \nullfont
+ \msg_warning:nnxxxx { luatexja-preset }{ no-font }
+ { \tl_use:N \ltjpreset_font_mg: }{ mg/m }{ \tl_use:N \ltjpreset_font_gt_bx: }{ gt/bx }
+ \cs_gset_eq:NN \ltjpreset_font_mg: \ltjpreset_font_gt_bx:
+ \fi
+ \group_end:
+}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%% nfss only
\bool_if:NTF \l_ltjpreset_nfssonly_bool {
\DeclareFontShape{JY3}{#1}{#2}{n}{ <-> s*[\fp_use:N \l_ltjpreset_scale_fp]
{\bool_if:NT \l_ltjpreset_noembed_bool {psft:} "#3"
: jfm=\tl_use:N \ltjpreset_use_jfm_yoko_tl ;-kern;\tl_use:N \l_ltjpreset_kanji_shape_tl
- ; script=cjk \bool_if:NT \l_ltjpreset_expert_bool { ;+hkna }}
+ ; script=hani \bool_if:NT \l_ltjpreset_expert_bool { ;+hkna }}
} {}
\DeclareFontShape{JT3}{#1}{#2}{n}{ <-> s*[\fp_use:N \l_ltjpreset_scale_fp]
{\bool_if:NT \l_ltjpreset_noembed_bool {psft:} "#3"
: jfm=\tl_use:N \ltjpreset_use_jfm_tate_tl ;-kern;\tl_use:N \l_ltjpreset_kanji_shape_tl;
- ; script=cjk \bool_if:NT \l_ltjpreset_expert_bool { ;+vkna }}
+ ; script=hani \bool_if:NT \l_ltjpreset_expert_bool { ;+vkna }}
} {}
\bool_if:NT \l_ltjpreset_expert_bool {
\DeclareFontShape{JY3}{#1}{#2}{rb}{ <-> s*[\fp_use:N \l_ltjpreset_scale_fp]
{\bool_if:NT \l_ltjpreset_noembed_bool {psft:} "#3"
: jfm=\tl_use:N \ltjpreset_use_jfm_yoko_tl ;-kern;\tl_use:N \l_ltjpreset_kanji_shape_tl ;+ruby
- ; script=kana }
+ ; script=kana}
} {}
\DeclareFontShape{JT3}{#1}{#2}{rb}{ <-> s*[\fp_use:N \l_ltjpreset_scale_fp]
{\bool_if:NT \l_ltjpreset_noembed_bool {psft:} "#3"
: jfm=\tl_use:N \ltjpreset_use_jfm_tate_tl ;-kern;\tl_use:N \l_ltjpreset_kanji_shape_tl ;+ruby
- ; script=kana }
+ ; script=kana}
} {}
}
}
\bool_if:NTF \l_ltjpreset_deluxe_bool {
\DeclareKanjiFamily{JY3}{ltjpmg}{}\DeclareKanjiFamily{JT3}{ltjpmg}{}
- \ltj_preset_define_family:nnn {ltjpmg} {m} {\ltjpreset_font_mg:}
- \ltj_preset_define_family:nnn {ltjpg} {eb} {\ltjpreset_font_gt_eb:}
+ \def\ltdefault{l}
+ \DeclareRobustCommand\ltseries { \not@math@alphabet\ltseries\relax\fontseries\ltdefault\selectfont }
+ \ltj_preset_define_family:nnn {ltjpm} {l} {\ltjpreset_font_mc_l:}
\def\ebdefault{eb}
- \DeclareRobustCommand\ebseries { \not@math@alphabet\ebseries\relaxfontseries\ebdefault\selectfont }
+ \DeclareRobustCommand\ebseries { \not@math@alphabet\ebseries\relax\fontseries\ebdefault\selectfont }
\DeclareRobustCommand\gtebfamily { \kanjifamily{ltjpg}\fontseries{\ebdefault}\selectfont }
\DeclareTextFontCommand{\textgteb}{\gtebfamily}
+ \ltj_preset_define_family:nnn {ltjpg} {eb} {\ltjpreset_font_gt_eb:}
\DeclareRobustCommand\mgfamily { \not@math@alphabet\mgfamily\relax\kanjifamily{ltjpmg}\selectfont }
\DeclareTextFontCommand{\textmg}{\mgfamily}
+ \ltj_preset_define_family:nnn {ltjpmg} {m} {\ltjpreset_font_mg:}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\DeclareRobustCommand\ebseries { \not@math@alphabet\ebseries\relax\fontseries\ebdefault\selectfont }
\DeclareRobustCommand\gtebfamily { \kanjifamily{\gtdefault}\fontseries{\ebdefault}\selectfont }
\DeclareTextFontCommand{\textgteb}{\gtebfamily}
+%% mc/l
+ \def\ltdefault{l}
+ \DeclareRobustCommand\ltseries { \not@math@alphabet\ltseries\relax\fontseries\ltdefault\selectfont }
\bool_if:NT \l_ltjpreset_bold_bool {
\cs_set_eq:NN \ltjpreset_font_mc_bx: \ltjpreset_font_gt_bx:
}
\addjfontfeature{ Kerning=Off }
\setmainjfont [
+ \bool_if:NT \l_ltjpreset_deluxe_bool {
+ FontFace={l}{n}{\ltjpreset_font_mc_l:},
+ }
BoldFont = \ltjpreset_font_mc_bx:
\bool_if:NT \l_ltjpreset_noembed_bool { , NoEmbed },
\tl_use:N \l_ltjpreset_add_features_tl