%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{luatexja-fontspec-26h}[2018/07/31 fontspec support of LuaTeX-ja]
+\ProvidesPackage{luatexja-fontspec-26h}[2018/08/02 fontspec support of LuaTeX-ja]
\RequirePackage{l3keys2e,luatexja}
\ExplSyntaxOn
\DeclareKanjiFamily {JT3} {#2} {#3}
}
+%% save and restore global variable
\tl_new:N \g__ltj_fontspec_kanji_nfss_family_tl
\tl_new:N \g__ltj_fontspec_orig_nfss_family_tl
+%\seq_new:N \g__ltj_fontspec_kanji_bf_series_seq
+\seq_new:N \g__ltj_fontspec_orig_bf_series_seq
+\clist_new:N \g__ltj_fontspec_kanji_default_fontopts_clist
+\clist_new:N \g__ltj_fontspec_orig_default_fontopts_clist
+
+\cs_new:Nn \__ltj_set_global_variable_for_kanji: {
+ \tl_gset_eq:NN \g__ltj_fontspec_orig_nfss_family_tl \g__fontspec_nfss_family_tl
+ \tl_gset_eq:NN \g__fontspec_nfss_family_tl \g__ltj_fontspec_kanji_nfss_family_tl
+ \seq_gset_eq:NN \g__ltj_fontspec_orig_bf_series_seq \g__fontspec_bf_series_seq
+ %\seq_gset_eq:NN \g__fontspec_bf_series_seq \g__ltj_fontspec_kanji_bf_series_seq
+ \seq_gclear:N \g__fontspec_bf_series_seq
+ \clist_set_eq:NN \g__ltj_fontspec_orig_default_fontopts_clist \g__fontspec_default_fontopts_clist
+ \clist_set_eq:NN \g__fontspec_default_fontopts_clist \g__ltj_fontspec_kanji_default_fontopts_clist
+}
+
+\cs_new:Nn \__ltj_restore_global_variable: {
+ \tl_gset_eq:NN \g__ltj_fontspec_kanji_nfss_family_tl \g__fontspec_nfss_family_tl
+ \tl_gset_eq:NN \g__fontspec_nfss_family_tl \g__ltj_fontspec_orig_nfss_family_tl
+ %\seq_gset_eq:NN \g__ltj_fontspec_kanji_bf_series_seq \g__fontspec_bf_series_seq
+ \seq_gset_eq:NN \g__fontspec_bf_series_seq \g__ltj_fontspec_orig_bf_series_seq
+ \clist_set_eq:NN \g__ltj_fontspec_kanji_default_fontopts_clist \g__fontspec_default_fontopts_clist
+ \clist_set_eq:NN \g__fontspec_default_fontopts_clist \g__ltj_fontspec_orig_default_fontopts_clist
+}
\cs_set_eq:NN \__ltj_orig_fontspec_select_font_family:nn \__fontspec_select_font_family:nn
\cs_new_protected:Nn \ltj_fontspec_select_font_family:nn {
\clist_set:Nx \g__fontspec_default_fontopts_clist {
YokoFeatures = { JFM=ujis }, TateFeatures = { JFM=ujisv },
Scale=\Cjascale, Kerning=Off, Script=CJK,
- \g__ltj_fontspec_default_fontopts_clist
+ \g__ltj_fontspec_kanji_default_fontopts_clist
}
\prop_set_eq:NN \g__fontspec_fontopts_prop \g__ltj_fontspec_fontopts_prop
\cs_set_eq:NN \__fontspec_make_font_shapes:Nnnnn \ltj_fontspec_make_font_shapes:Nnnnn
}
\cs_new:Nn \ltj_fontspec_set_family:Nnn {
- %\typeout{A>>[\g__fontspec_nfss_family_tl][\g__ltj_fontspec_kanji_nfss_family_tl]}
- \tl_gset_eq:NN \g__ltj_fontspec_orig_nfss_family_tl \g__fontspec_nfss_family_tl
- \tl_gset_eq:NN \g__fontspec_nfss_family_tl \g__ltj_fontspec_kanji_nfss_family_tl
+ \__ltj_set_global_variable_for_kanji:
\cs_set_eq:NN \__fontspec_select_font_family:nn \ltj_fontspec_select_font_family:nn
\__ltj_orig_fontspec_set_family:Nnn #1 {#2} {#3}
- \cs_set_eq:NN \__fontspec_select_font_family:nn \__ltj_orig_fontspec_select_font_family:nn
- \tl_gset_eq:NN \g__ltj_fontspec_kanji_nfss_family_tl \g__fontspec_nfss_family_tl
- \tl_gset_eq:NN \g__fontspec_nfss_family_tl \g__ltj_fontspec_orig_nfss_family_tl
- %\typeout{B>>[\g__fontspec_nfss_family_tl][\g__ltj_fontspec_kanji_nfss_family_tl]}
+ \__ltj_restore_global_variable:
}
\cs_set_eq:NN \__ltj_orig_fontspec_set_family:Nnn \fontspec_set_family:Nnn
\cs_set_eq:NN \__ltj_orig_fontspec_make_font_shapes:Nnnnn \__fontspec_make_font_shapes:Nnnnn
{#4, \l_ltj_fontspec_altfont_leftover_clist }
{#5}
\DeclareAlternateKanjiFont
- { #6 }{ \l_fontspec_family_tl }{#2}{#3}%
- { #6 }{ \l_fontspec_family_tl }{#2}
+ { #6 }{ \g__fontspec_nfss_family_tl }{#2}{#3}%
+ { #6 }{ \g__fontspec_nfss_family_tl }{#2}
{ #3 _alt \int_use:N \g_ltj_fontspec_altnumber_int }
{ \l_ltj_fontspec_altrange_tl }
\int_gincr:N \g_ltj_fontspec_altnumber_int
\newjfontfamily #1 [ BoldFont={},ItalicFont={},SmallCapsFont={},#2,#4 ] {#3}
}
-\clist_new:N \g__ltj_fontspec_default_fontopts_clist
\prop_new:N \g__ltj_fontspec_fontopts_prop
\DeclareDocumentCommand \defaultjfontfeatures { t+ o m }
{
}
\cs_new:Nn \__ltj_fontspec_set_default_features:nn
{
- \clist_set_eq:NN \l__ltj_fontspec_tmp_clist \g__fontspec_default_fontopts_clist
- \clist_set_eq:NN \g__fontspec_default_fontopts_clist \g__ltj_fontspec_default_fontopts_clist
+ \__ltj_set_global_variable_for_kanji:
\__fontspec_set_default_features:nn {#1} {#2}
- \clist_set_eq:NN \g__ltj_fontspec_default_fontopts_clist \g__fontspec_default_fontopts_clist
- \clist_set_eq:NN \g__fontspec_default_fontopts_clist \l__ltj_fontspec_tmp_clist
+ \__ltj_restore_global_variable:
}
\cs_new:Nn \__ltj_fontspec_set_font_default_features:nnn
{
\DeclareDocumentCommand \addjfontfeatures {m} {
\ltj_fontspec_if_fontspec_font:TF
{
- %\typeout{C>>[\g__fontspec_nfss_family_tl][\g__ltj_fontspec_kanji_nfss_family_tl]}
- \tl_gset_eq:NN \g__ltj_fontspec_orig_nfss_family_tl \g__fontspec_nfss_family_tl
- \tl_gset_eq:NN \g__fontspec_nfss_family_tl \g__ltj_fontspec_kanji_nfss_family_tl
+ \__ltj_set_global_variable_for_kanji:
\group_begin:
\tl_set_eq:NN \f@family \k@family
\cs_set_eq:NN \__fontspec_select_font_family:nn \ltj_fontspec_select_font_family:nn
\addfontfeatures {#1}
\group_end:
\kanjifamily\g__fontspec_nfss_family_tl\selectfont
- \tl_gset_eq:NN \g__ltj_fontspec_kanji_nfss_family_tl \g__fontspec_nfss_family_tl
- \tl_gset_eq:NN \g__fontspec_nfss_family_tl \g__ltj_fontspec_orig_nfss_family_tl
- %\typeout{D>>[\g__fontspec_nfss_family_tl][\g__ltj_fontspec_kanji_nfss_family_tl]}
+ \__ltj_restore_global_variable:
}{
\msg_warning:nn {luatexja-fontspec} {addjfontfeatures-ignored}
}