}
\cs_new:Nn \__ltj_fontspec_altfont_key_code:n
- {
+{
\clist_set:Nn \l_ltj_fontspec_altfont_clist {#1}
- \fontspec_update_fontid:n {alt:#1}
- }
+}
+\cs_set_eq:NN \__ltj_orig_fontspec_select:nn \fontspec_select:nn
\cs_new:Nn \ltj_fontspec_select:nn {
\group_begin:
\ltj_fontspec_define_option:nn {AltFont} {
\__fontspec_update_featstr:n {jfmvar=##1}
}
\ltj_fontspec_define_preparse_external:nn {NoEmbed} {
- \cs_set:Nn \fontspec_namewrap:n {psft:####1}
+ \cs_set:Nn \__fontspec_namewrap:n {psft:####1}
}
%% Omit the warning message
%% "OpenType feature 'Kerning=Off' (-kern) not available ..."
{JFM=ujis, Scale=\fp_use:N \g_ltj_fontspec_scale_fp,
Kerning=Off, \g_ltj_fontspec_default_fontopts_tl}
\prop_set_eq:NN \g__fontspec_fontopts_prop \g__ltj_fontspec_fontopts_prop
- \cs_set_eq:NN \fontspec_make_font_shapes:nnnn \ltj_fontspec_make_font_shapes:nnnn
+ \cs_set_eq:NN \__fontspec_make_font_shapes:Nnnnn \ltj_fontspec_make_font_shapes:Nnnnn
\cs_set_eq:NN \DeclareFontFamily \DeclareKanjiFamily
- \fontspec_select:nn{#1}{#2}
+ \__ltj_orig_fontspec_select:nn{#1}{#2}
\group_end:
}
\ltj_fontspec_select:nn{#2}{#3}
\tl_set_eq:NN #1 \l_fontspec_family_tl
}
-\cs_set_eq:NN \__ltj_orig_fontspec_make_font_shapes:nnnn \fontspec_make_font_shapes:nnnn
+\cs_set_eq:NN \__ltj_orig_fontspec_make_font_shapes:Nnnnn \__fontspec_make_font_shapes:Nnnnn
\cs_set_eq:NN \__ltj_fontspec_orig_DeclareFontShape \DeclareFontShape
-\cs_new:Nn \ltj_fontspec_make_font_shapes:nnnn {
- \__ltj_orig_fontspec_make_font_shapes:nnnn {#1} {#2} {#3} {#4}
+\cs_new:Nn \ltj_fontspec_make_font_shapes:Nnnnn {
+ \__ltj_orig_fontspec_make_font_shapes:Nnnnn {#1} {#2} {#3} {#4} {#5}
\group_begin:
%% Parse font features. However, we have to avoid redefine already defined shape.
\__fontspec_load_fontname:n {#1}
\cs_set_eq:NN \DeclareFontShape \use_none:nnnnnn
- \fontspec_declare_shape:nnn {#2}{#3}
- { \quark_if_no_value:NF \l__fontspec_fontopts_clist {\l__fontspec_fontopts_clist,} #4 }
+ \__fontspec_declare_shape:nnxx {#2} {#3} { \l__fontspec_fontopts_clist, #4 } {#5}
\cs_set_eq:NN \DeclareFontShape \__ltj_fontspec_orig_DeclareFontShape
%%
\clist_if_empty:NF \l_ltj_fontspec_altfont_clist {
} {
\group_begin:
\__fontspec_load_fontname:n { \l_ltj_fontspec_altname_tl }
- \fontspec_declare_shape:nnn {#2}
+ \__fontspec_declare_shape:nnxx {#2}
{#3 _ alt \int_use:N \g_ltj_fontspec_altnumber_int }
- {
- \quark_if_no_value:NF \l__fontspec_fontopts_clist {\l__fontspec_fontopts_clist,}
- #4 , \l_ltj_fontspec_altfont_leftover_clist
- }
+ {\l__fontspec_fontopts_clist, #4 , \l_ltj_fontspec_altfont_leftover_clist}
+ {#5}
\group_end:
\DeclareAlternateKanjiFont
{JY3}{ \l_fontspec_family_tl }{#2}{#3}%
}
\DeclareDocumentCommand \addjfontfeatures {m} {
- \ifcsname zf@family@fontdef\k@family\endcsname
+ \ltj_fontspec_if_fontspec_font:TF
+ {
\group_begin:
- \tl_clear:N \g_ltj_fontspec_default_fontopts_tl
- \use:x {
- \exp_not:N\ltj_fontspec_select:nn
- {\csname zf@family@options\k@family\endcsname,#1}
- {\csname zf@family@fontname\k@family\endcsname}
- }
+ \tl_set_eq:NN \f@family \k@family
+ \cs_set_eq:NN \fontspec_select:nn \ltj_fontspec_select:nn
+ \addfontfeatures {#1}
\group_end:
\fontfamily\l_fontspec_family_tl\selectfont
- \else
+ }{
\msg_warning:nn {luatexja-fontspec} {addjfontfeatures-ignored}
- \fi
+ }
\ignorespaces
}
\cs_set_eq:NN \addjfontfeature \addjfontfeatures
+\prg_new_conditional:Nnn \ltj_fontspec_if_fontspec_font: {TF,T,F}
+{
+ \cs_if_exist:cTF {g__fontspec_ \k@family _prop} \prg_return_true: \prg_return_false:
+}
+
+
%%% CJKShape=JIS2004
\__fontspec_define_feature_option:nnnnn{CJKShape}{JIS2004}{20}{5}{+jp04}