From f3f16f605a5cf9e28f8caa4f2f8b59020654155d Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 9 Jan 2020 22:13:09 +0000 Subject: fontspec (9jan20) git-svn-id: svn://tug.org/texlive/trunk@53357 c570f23f-e606-0410-a88d-b1316a301751 --- .../tex/latex/fontspec/fontspec-luatex.sty | 272 +++++++-------------- .../tex/latex/fontspec/fontspec-xetex.sty | 270 +++++++------------- Master/texmf-dist/tex/latex/fontspec/fontspec.lua | 4 +- Master/texmf-dist/tex/latex/fontspec/fontspec.sty | 2 +- 4 files changed, 184 insertions(+), 364 deletions(-) (limited to 'Master/texmf-dist/tex/latex/fontspec') diff --git a/Master/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty b/Master/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty index f0e42d2a378..446b923d080 100644 --- a/Master/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty +++ b/Master/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty @@ -41,7 +41,7 @@ \RequirePackage{xparse} \ProvidesExplPackage{fontspec-luatex}% - {2019/10/19}{2.7d}{Font selection for XeLaTeX and LuaLaTeX} + {2020/01/09}{2.7e}{Font selection for XeLaTeX and LuaLaTeX} %%^^A%% fontspec-code-load.dtx -- part of FONTSPEC %%^^A%% fontspec-code-vars.dtx -- part of FONTSPEC @@ -201,6 +201,9 @@ \tl_new:N \l__fontspec_rmfamily_family_tl \tl_new:N \l__fontspec_sffamily_family_tl \tl_new:N \l__fontspec_ttfamily_family_tl +\tl_new:N \l__fontspec_rmfamily_encoding_tl +\tl_new:N \l__fontspec_sffamily_encoding_tl +\tl_new:N \l__fontspec_ttfamily_encoding_tl %%^^A%% fontspec-code-msg.dtx -- part of FONTSPEC \cs_new:Npn \__fontspec_error:n { \msg_error:nn {fontspec} } @@ -732,79 +735,64 @@ \fontencoding { \g__fontspec_nfss_enc_tl } \selectfont } +\tl_replace_all:cnn { rmfamily~ } { \fontfamily } + { \fontencoding \l__fontspec_rmfamily_encoding_tl \fontfamily } +\tl_replace_all:cnn { sffamily~ } { \fontfamily } + { \fontencoding \l__fontspec_sffamily_encoding_tl \fontfamily } +\tl_replace_all:cnn { ttfamily~ } { \fontfamily } + { \fontencoding \l__fontspec_ttfamily_encoding_tl \fontfamily } +\tl_set_eq:NN \l__fontspec_rmfamily_encoding_tl \g_fontspec_encoding_tl +\tl_set_eq:NN \l__fontspec_sffamily_encoding_tl \g_fontspec_encoding_tl +\tl_set_eq:NN \l__fontspec_ttfamily_encoding_tl \g_fontspec_encoding_tl \cs_new:Nn \__fontspec_main_setmainfont:nn { \fontspec_set_family:Nnn \l__fontspec_rmfamily_family_tl {#1} {#2} \tl_set_eq:NN \rmdefault \l__fontspec_rmfamily_family_tl - \use:x - { - \exp_not:n { \DeclareRobustCommand \rmfamily } - { - \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl } - \exp_not:N \fontfamily { \exp_not:N \rmdefault } - \exp_not:N \selectfont - } - } + \tl_set_eq:NN \l__fontspec_rmfamily_encoding_tl \g__fontspec_nfss_enc_tl \str_if_eq:eeT {\familydefault} {\rmdefault} { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl } - \__fontspec_setmainfont_hook:nn {#1} {#2} + \__fontspec_setmainfont_hook:nn {#1} {#2} % for unicode-math only \normalfont } \cs_new:Nn \__fontspec_main_setsansfont:nn { \fontspec_set_family:Nnn \l__fontspec_sffamily_family_tl {#1} {#2} \tl_set_eq:NN \sfdefault \l__fontspec_sffamily_family_tl - \use:x - { - \exp_not:n { \DeclareRobustCommand \sffamily } - { - \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl } - \exp_not:N \fontfamily { \exp_not:N \sfdefault } - \exp_not:N \selectfont - } - } + \tl_set_eq:NN \l__fontspec_sffamily_encoding_tl \g__fontspec_nfss_enc_tl \str_if_eq:eeT {\familydefault} {\sfdefault} { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl } - \__fontspec_setsansfont_hook:nn {#1} {#2} + \__fontspec_setsansfont_hook:nn {#1} {#2} % for unicode-math only \normalfont } \cs_new:Nn \__fontspec_main_setmonofont:nn { \fontspec_set_family:Nnn \l__fontspec_ttfamily_family_tl {#1} {#2} \tl_set_eq:NN \ttdefault \l__fontspec_ttfamily_family_tl - \use:x - { - \exp_not:n { \DeclareRobustCommand \ttfamily } - { - \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl } - \exp_not:N \fontfamily { \exp_not:N \ttdefault } - \exp_not:N \selectfont - } - } + \tl_set_eq:NN \l__fontspec_ttfamily_encoding_tl \g__fontspec_nfss_enc_tl \str_if_eq:eeT {\familydefault} {\ttdefault} { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl } - \__fontspec_setmonofont_hook:nn {#1} {#2} + \__fontspec_setmonofont_hook:nn {#1} {#2} % for unicode-math only \normalfont } \cs_new:Nn \__fontspec_main_setmathrm:nn { \fontspec_gset_family:Nnn \g__fontspec_mathrm_tl {Renderer=Basic,#1} {#2} - \__fontspec_setmathrm_hook:nn {#1} {#2} + \__fontspec_setmathrm_hook:nn {#1} {#2} % for unicode-math only } \cs_new:Nn \__fontspec_main_setboldmathrm:nn { \fontspec_gset_family:Nnn \g__fontspec_bfmathrm_tl {Renderer=Basic,#1} {#2} - \__fontspec_setboldmathrm_hook:nn {#1} {#2} + \__fontspec_setboldmathrm_hook:nn {#1} {#2} % for unicode-math only } \cs_new:Nn \__fontspec_main_setmathsf:nn { \fontspec_gset_family:Nnn \g__fontspec_mathsf_tl {Renderer=Basic,#1} {#2} - \__fontspec_setmathsf_hook:nn {#1} {#2} + \__fontspec_setmathsf_hook:nn {#1} {#2} % for unicode-math only } \cs_new:Nn \__fontspec_main_setmathtt:nn { \fontspec_gset_family:Nnn \g__fontspec_mathtt_tl {Renderer=Basic,#1} {#2} - \__fontspec_setmathtt_hook:nn {#1} {#2} + \__fontspec_setmathtt_hook:nn {#1} {#2} % for unicode-math only } \cs_set_eq:NN \__fontspec_setmainfont_hook:nn \use_none:nn \cs_set_eq:NN \__fontspec_setsansfont_hook:nn \use_none:nn @@ -1212,7 +1200,7 @@ { \tl_if_eq:ccTF { \f@encoding/\f@family/\f@series/\l__fontspec_smcp_shape_tl } - { \f@encoding/\f@family/\f@series/\updefault } + { \f@encoding/\f@family/\f@series/\shapedefault } { \prg_return_false: } { \prg_return_true: } } @@ -1348,13 +1336,13 @@ { \__fontspec_primitive_font_set:NnnF \l__fontspec_test_font - { \__fontspec_construct_font_call:nn { \l__fontspec_fontname_up_tl } {} } + { \__fontspec_construct_font_call:nn { \l__fontspec_fontname_up_tl } { \l__fontspec_pre_feat_sclist } } { \f@size pt - 2sp } { \__fontspec_error:nx {font-not-found} {\l__fontspec_fontname_up_tl} } \__fontspec_set_font_type:N \l__fontspec_test_font \__fontspec_primitive_font_gset:Onn \l__fontspec_fontface_cs_tl - { \__fontspec_construct_font_call:nn { \l__fontspec_fontname_up_tl } {} } + { \__fontspec_construct_font_call:nn { \l__fontspec_fontname_up_tl } { \l__fontspec_pre_feat_sclist } } { \f@size pt } \l__fontspec_fontface_cs_tl % this is necessary for LuaLaTeX to check the scripts properly @@ -1493,13 +1481,12 @@ } \cs_new:Nn \__fontspec_set_faces: { - \__fontspec_add_nfssfont:nnnn \mddefault \updefault \l_fontspec_fontname_tl \l__fontspec_fontfeat_up_clist - \__fontspec_add_nfssfont:nnnn \bfdefault \updefault \l__fontspec_fontname_bf_tl \l__fontspec_fontfeat_bf_clist - \__fontspec_add_nfssfont:nnnn \mddefault \itdefault \l__fontspec_fontname_it_tl \l__fontspec_fontfeat_it_clist - \__fontspec_add_nfssfont:nnnn \mddefault \sldefault \l__fontspec_fontname_sl_tl \l__fontspec_fontfeat_sl_clist - \__fontspec_add_nfssfont:nnnn \bfdefault \itdefault \l__fontspec_fontname_bfit_tl \l__fontspec_fontfeat_bfit_clist - \__fontspec_add_nfssfont:nnnn \bfdefault \sldefault \l__fontspec_fontname_bfsl_tl \l__fontspec_fontfeat_bfsl_clist - + \__fontspec_add_nfssfont:nnnn \mddefault \shapedefault \l_fontspec_fontname_tl \l__fontspec_fontfeat_up_clist + \__fontspec_add_nfssfont:nnnn \bfdefault \shapedefault \l__fontspec_fontname_bf_tl \l__fontspec_fontfeat_bf_clist + \__fontspec_add_nfssfont:nnnn \mddefault \itdefault \l__fontspec_fontname_it_tl \l__fontspec_fontfeat_it_clist + \__fontspec_add_nfssfont:nnnn \mddefault \sldefault \l__fontspec_fontname_sl_tl \l__fontspec_fontfeat_sl_clist + \__fontspec_add_nfssfont:nnnn \bfdefault \itdefault \l__fontspec_fontname_bfit_tl \l__fontspec_fontfeat_bfit_clist + \__fontspec_add_nfssfont:nnnn \bfdefault \sldefault \l__fontspec_fontname_bfsl_tl \l__fontspec_fontfeat_bfsl_clist \prop_map_inline:Nn \l__fontspec_nfssfont_prop { \__fontspec_set_faces_aux:nnnnn ##2 } } \cs_new:Nn \__fontspec_set_faces_aux:nnnnn @@ -1549,8 +1536,8 @@ \prg_new_conditional:Nnn \__fontspec_if_autofont:nn {T,TF} { \group_begin: - \__fontspec_primitive_font_set:Nnn \l__fontspec_tmpa_font { \__fontspec_construct_font_call:nn {#1} {} } { \f@size pt + 1sp } - \__fontspec_primitive_font_set:Nnn \l__fontspec_tmpb_font { \__fontspec_construct_font_call:nn {#1#2} {} } { \f@size pt + 1sp } + \__fontspec_primitive_font_set:Nnn \l__fontspec_tmpa_font { \__fontspec_construct_font_call:nn {#1} { \l__fontspec_pre_feat_sclist } } { \f@size pt + 1sp } + \__fontspec_primitive_font_set:Nnn \l__fontspec_tmpb_font { \__fontspec_construct_font_call:nn {#1#2} { \l__fontspec_pre_feat_sclist } } { \f@size pt + 1sp } \str_if_eq:eeTF { \__fontspec_primitive_font_get_name:N \l__fontspec_tmpa_font } { \__fontspec_primitive_font_get_name:N \l__fontspec_tmpb_font } { \group_end: \prg_return_false: } { \group_end: \prg_return_true: } @@ -1570,7 +1557,7 @@ { \clist_clear:N \l__fontspec_fontopts_clist } \keys_set_groups:nnV {fontspec/fontname} {getfontname} \l__fontspec_fontopts_clist \__fontspec_primitive_font_set:OnnF \l__fontspec_fontface_cs_tl - { \__fontspec_construct_font_call:nn {#1} {} } { \f@size pt } + { \__fontspec_construct_font_call:nn {#1} { \l__fontspec_pre_feat_sclist } } { \f@size pt } { \__fontspec_error:nx {font-not-found} {#2} } } \keys_define:nn {fontspec/fontname} @@ -1696,8 +1683,8 @@ \exp_not:n { \\ } -~ \exp_not:N \str_case:nn {#1/#2} { - {\mddefault/\updefault} {'normal'~} - {\bfdefault/\updefault} {'bold'~} + {\mddefault/\shapedefault} {'normal'~} + {\bfdefault/\shapedefault} {'bold'~} {\mddefault/\itdefault} {'italic'~} {\mddefault/\sldefault} {'slanted'~} {\bfdefault/\itdefault} {'bold~ italic'~} @@ -1710,10 +1697,10 @@ { {\mddefault/\scdefault} {'small~ caps'~} {\bfdefault/\scdefault} {'bold~ small~ caps'~} - {\mddefault/\itscdefault} {'italic~ small~ caps'~} - {\bfdefault/\itscdefault} {'bold~ italic~ small~ caps'~} - {\mddefault/\slscdefault} {'slanted~ small~ caps'~} - {\bfdefault/\slscdefault} {'bold~ slanted~ small~ caps'~} + {\mddefault/\scitdefault} {'italic~ small~ caps'~} + {\bfdefault/\scitdefault} {'bold~ italic~ small~ caps'~} + {\mddefault/\scsldefault} {'slanted~ small~ caps'~} + {\bfdefault/\scsldefault} {'bold~ slanted~ small~ caps'~} }~( #1 / \__fontspec_combo_sc_shape:n {#2} )~ with~ NFSS~ spec.:~ \l__fontspec_nfss_sc_tl @@ -2119,18 +2106,18 @@ \keys_define:nn {fontspec-renderer} { Renderer .choices:nn = - {Full,Node,Basic,Base,Harfbuzz,OpenType,AAT,Graphite} + {Full,Node,Basic,Base,HarfBuzz,Harfbuzz,OpenType,AAT,Graphite} { \int_compare:nT {\l_keys_choice_int >= 5} { \bool_set_true:N \l__fontspec_harfbuzz_bool } \tl_set:Nx \l__fontspec_mode_tl { - \int_case:nn \l_keys_choice_int { 1 {node} 2 {node} 3 {base} 4 {base} 5 {harf} 6 {harf} 7 {harf} 8 {harf} } + \int_case:nn \l_keys_choice_int { 1 {node} 2 {node} 3 {base} 4 {base} 5 {harf} 6 {harf} 7 {harf} 8 {harf} 9 {harf}} } \tl_set:Nx \l__fontspec_shaper_tl { - \int_case:nn \l_keys_choice_int { 1 {} 2 {} 3 {} 4 {} 5 {} 6 {ot} 7 {coretext_aat} 8 {graphite2} } + \int_case:nn \l_keys_choice_int { 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {ot} 8 {coretext_aat} 9 {graphite2} } } @@ -2294,6 +2281,11 @@ { \fontspec_complete_fontname:Nn \l__fontspec_sizedfont_tl {#1} } +\__fontspec_keys_define_code:nnn {fontspec-opentype} {UprightFont} {} +\__fontspec_keys_define_code:nnn {fontspec-opentype} {ItalicFont} {} +\__fontspec_keys_define_code:nnn {fontspec-opentype} {BoldFont} {} +\__fontspec_keys_define_code:nnn {fontspec-opentype} {BoldItalicFont} {} + \__fontspec_keys_define_code:nnn {fontspec-preparse} {NFSSEncoding} { \tl_gset:Nx \g__fontspec_nfss_enc_tl { #1 } @@ -3667,25 +3659,25 @@ \renewcommand{\hbar}{{\mathchar"AF\mkern-9mu h}}% TODO: test with other fonts } } - \DeclareSymbolFont{operators}\g_fontspec_encoding_tl\g__fontspec_mathrm_tl\mddefault\updefault - \SetSymbolFont{operators}{normal}\g_fontspec_encoding_tl\g__fontspec_mathrm_tl\mddefault\updefault + \DeclareSymbolFont{operators}\g_fontspec_encoding_tl\g__fontspec_mathrm_tl\mddefault\shapedefault + \SetSymbolFont{operators}{normal}\g_fontspec_encoding_tl\g__fontspec_mathrm_tl\mddefault\shapedefault \DeclareSymbolFontAlphabet\mathrm{operators} \SetMathAlphabet\mathit{normal}\g_fontspec_encoding_tl\g__fontspec_mathrm_tl\mddefault\itdefault - \SetMathAlphabet\mathbf{normal}\g_fontspec_encoding_tl\g__fontspec_mathrm_tl\bfdefault\updefault - \SetMathAlphabet\mathsf{normal}\g_fontspec_encoding_tl\g__fontspec_mathsf_tl\mddefault\updefault - \SetMathAlphabet\mathtt{normal}\g_fontspec_encoding_tl\g__fontspec_mathtt_tl\mddefault\updefault - \SetSymbolFont{operators}{bold}\g_fontspec_encoding_tl\g__fontspec_mathrm_tl\bfdefault\updefault + \SetMathAlphabet\mathbf{normal}\g_fontspec_encoding_tl\g__fontspec_mathrm_tl\bfdefault\shapedefault + \SetMathAlphabet\mathsf{normal}\g_fontspec_encoding_tl\g__fontspec_mathsf_tl\mddefault\shapedefault + \SetMathAlphabet\mathtt{normal}\g_fontspec_encoding_tl\g__fontspec_mathtt_tl\mddefault\shapedefault + \SetSymbolFont{operators}{bold}\g_fontspec_encoding_tl\g__fontspec_mathrm_tl\bfdefault\shapedefault \tl_if_empty:NTF \g__fontspec_bfmathrm_tl { \SetMathAlphabet\mathit{bold}\g_fontspec_encoding_tl\g__fontspec_mathrm_tl\bfdefault\itdefault } { - \SetMathAlphabet\mathrm{bold}\g_fontspec_encoding_tl\g__fontspec_bfmathrm_tl\mddefault\updefault - \SetMathAlphabet\mathbf{bold}\g_fontspec_encoding_tl\g__fontspec_bfmathrm_tl\bfdefault\updefault + \SetMathAlphabet\mathrm{bold}\g_fontspec_encoding_tl\g__fontspec_bfmathrm_tl\mddefault\shapedefault + \SetMathAlphabet\mathbf{bold}\g_fontspec_encoding_tl\g__fontspec_bfmathrm_tl\bfdefault\shapedefault \SetMathAlphabet\mathit{bold}\g_fontspec_encoding_tl\g__fontspec_bfmathrm_tl\mddefault\itdefault } - \SetMathAlphabet\mathsf{bold}\g_fontspec_encoding_tl\g__fontspec_mathsf_tl\bfdefault\updefault - \SetMathAlphabet\mathtt{bold}\g_fontspec_encoding_tl\g__fontspec_mathtt_tl\bfdefault\updefault + \SetMathAlphabet\mathsf{bold}\g_fontspec_encoding_tl\g__fontspec_mathsf_tl\bfdefault\shapedefault + \SetMathAlphabet\mathtt{bold}\g_fontspec_encoding_tl\g__fontspec_mathtt_tl\bfdefault\shapedefault } \cs_new:Nn \fontspec_maybe_setup_maths: { @@ -3742,33 +3734,21 @@ %%^^A%% fontspec-code-xfss.dtx -- part of FONTSPEC -\providecommand*\itscdefault{\itdefault\scdefault} -\providecommand*\slscdefault{\sldefault\scdefault} -\DeclareRobustCommand{\sishape} - { - \not@math@alphabet\sishape\relax - \fontshape{\itscdefault}\selectfont - } -\DeclareTextFontCommand{\textsi}{\sishape} +\providecommand*\scitdefault{\scdefault\itdefault} +\providecommand*\scsldefault{\scdefault\sldefault} \cs_new:Nn \__fontspec_shape_merge:nn { c__fontspec_shape_#1_#2_tl } \cs_new:Nn \__fontspec_merge_default_shapes: { - \tl_const:cn { \__fontspec_shape_merge:nn \itdefault \scdefault } {\itscdefault} - \tl_const:cn { \__fontspec_shape_merge:nn \sldefault \scdefault } {\slscdefault} - \tl_const:cn { \__fontspec_shape_merge:nn \scdefault \itdefault } {\itscdefault} - \tl_const:cn { \__fontspec_shape_merge:nn \scdefault \sldefault } {\slscdefault} - \tl_const:cn { \__fontspec_shape_merge:nn \slscdefault \itdefault } {\itscdefault} - \tl_const:cn { \__fontspec_shape_merge:nn \itscdefault \sldefault } {\slscdefault} - \tl_const:cn { \__fontspec_shape_merge:nn \itscdefault \updefault } {\scdefault} - \tl_const:cn { \__fontspec_shape_merge:nn \slscdefault \updefault } {\scdefault} + \tl_const:cn { \__fontspec_shape_merge:nn \itdefault \scdefault } {\scitdefault} + \tl_const:cn { \__fontspec_shape_merge:nn \sldefault \scdefault } {\scsldefault} + \tl_const:cn { \__fontspec_shape_merge:nn \scdefault \itdefault } {\scitdefault} + \tl_const:cn { \__fontspec_shape_merge:nn \scdefault \sldefault } {\scsldefault} + \tl_const:cn { \__fontspec_shape_merge:nn \scsldefault \itdefault } {\scitdefault} + \tl_const:cn { \__fontspec_shape_merge:nn \scitdefault \sldefault } {\scsldefault} + \tl_const:cn { \__fontspec_shape_merge:nn \scitdefault \shapedefault } {\scdefault} + \tl_const:cn { \__fontspec_shape_merge:nn \scsldefault \shapedefault } {\scdefault} } \__fontspec_merge_default_shapes: -\cs_new:Nn \__fontspec_merge_shape:n - { - \__fontspec_if_merge_shape:nTF {#1} - { \fontshape { \tl_use:c { \__fontspec_shape_merge:nn {\f@shape} {#1} } } \selectfont } - { \fontshape {#1} \selectfont } - } \prg_new_conditional:Nnn \__fontspec_if_merge_shape:n {TF} { \bool_lazy_and:nnTF @@ -3782,6 +3762,23 @@ } \prg_return_true: \prg_return_false: } +\cs_if_exist:NTF \DeclareFontSeriesChangeRule +{ + \cs_set_eq:NN \emfontdeclare \DeclareEmphSequence +} +{ +\DeclareRobustCommand{\sishape} + { + \not@math@alphabet\sishape\relax + \fontshape{\scitdefault}\selectfont + } +\DeclareTextFontCommand{\textsi}{\sishape} +\cs_new:Nn \__fontspec_merge_shape:n + { + \__fontspec_if_merge_shape:nTF {#1} + { \fontshape { \tl_use:c { \__fontspec_shape_merge:nn {\f@shape} {#1} } } \selectfont } + { \fontshape {#1} \selectfont } + } \DeclareRobustCommand \itshape { \not@math@alphabet\itshape\mathit @@ -3802,7 +3799,7 @@ \not@math@alphabet\upshape\relax \__fontspec_merge_shape:n\updefault } -\cs_new_protected:Npn \emfontdeclare #1 +\cs_set_protected:Npn \emfontdeclare #1 { \prop_gclear:N \g__fontspec_em_prop \int_zero:N \l__fontspec_emdef_int @@ -3856,7 +3853,10 @@ \cs_set:Npn \emreset { \upshape } \cs_set:Npn \emshape { \itshape } \cs_set:Npn \eminnershape { \upshape } -\cs_new_protected:Npn \strongfontdeclare #1 +\emfontdeclare{ \emshape, \eminnershape } +\cs_new:Nn \fontspec_set_em_level:n { \int_set:Nn \l__fontspec_em_int {#1} } +} +\cs_set_protected:Npn \strongfontdeclare #1 { \prop_gclear:N \g__fontspec_strong_prop \int_zero:N \l__fontspec_strongdef_int @@ -3899,99 +3899,9 @@ \int_zero:N \l__fontspec_em_int \int_zero:N \l__fontspec_strong_int } -\cs_new:Nn \fontspec_set_em_level:n { \int_set:Nn \l__fontspec_em_int {#1} } \cs_new:Nn \fontspec_set_strong_level:n { \int_set:Nn \l__fontspec_strong_int {#1} } \strongfontdeclare{ \bfseries } -\emfontdeclare{ \emshape, \eminnershape } %%^^A%% fontspec-code-patches.dtx -- part of FONTSPEC -\cs_new_protected:Nn \fontspec_visible_space: - { - \__fontspec_primitive_font_glyph_if_exist:NnTF \font {"2423} - { \char"2423\scan_stop: } - { \fontspec_visible_space_fallback: } - } -\cs_new_protected:Nn \fontspec_visible_space_fallback: - { - { - \usefont{\g_fontspec_encoding_tl}{lmtt}{\f@series}{\f@shape} - \textvisiblespace - } - } -\group_begin: -\char_set_catcode_active:n{"20}% -\cs_gset:Npn\fontspec_print_visible_spaces:{% -\char_set_catcode_active:n{"20}% -\cs_set_eq:NN^^20\fontspec_visible_space:% -}% -\group_end: -\AtBeginDocument - { - \cs_if_exist:NF \verbvisiblespace - { -\__fontspec_patch_verb: -\__fontspec_patch_verbatim: -\__fontspec_patch_moreverb: -\__fontspec_patch_fancyvrb: -\__fontspec_patch_listings: -} - } -\cs_new_protected:Npn \__fontspec_patch_verb: - { -\def\verb -{ -\relax\ifmmode\hbox\else\leavevmode\null\fi -\bgroup -\verb@eol@error \let\do\@makeother \dospecials -\verbatim@font\@noligs -\@ifstar\__fontspecsverb\@verb -} -\def\__fontspecsverb{\fontspec_print_visible_spaces:\@sverb} -} -\cs_new_protected:Npn \__fontspec_patch_verbatim: - { - \@ifpackageloaded{verbatim} - { - \cs_set:cpn {verbatim*} - { - \group_begin: \@verbatim \fontspec_print_visible_spaces: \verbatim@start - } - } - { - \cs_set:cpn {verbatim*} - { - \@verbatim \fontspec_print_visible_spaces: \@sxverbatim - } - } - } -\cs_new_protected:Npn \__fontspec_patch_moreverb: - { - \@ifpackageloaded{moreverb} - { - \cs_set:cpn {listingcont*} - { - \cs_set:Npn \verbatim@processline - { - \thelisting@line \global\advance\listing@line1\relax - \the\verbatim@line\par - } - \@verbatim \fontspec_print_visible_spaces: \verbatim@start - } - }{} - } -\cs_new_protected:Npn \__fontspec_patch_fancyvrb: - { - \@ifpackageloaded{fancyvrb} - { - \cs_set_eq:NN \FancyVerbSpace \fontspec_visible_space: - }{} - } -\cs_new_protected:Npn \__fontspec_patch_listings: - { - \@ifpackageloaded{listings} - { - \cs_set_eq:NN \lst@visiblespace \fontspec_visible_space: - }{} - } diff --git a/Master/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty b/Master/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty index aa8ad7dc05d..25ce0813879 100644 --- a/Master/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty +++ b/Master/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty @@ -41,7 +41,7 @@ \RequirePackage{xparse} \ProvidesExplPackage{fontspec-xetex}% - {2019/10/19}{2.7d}{Font selection for XeLaTeX and LuaLaTeX} + {2020/01/09}{2.7e}{Font selection for XeLaTeX and LuaLaTeX} %%^^A%% fontspec-code-load.dtx -- part of FONTSPEC %%^^A%% fontspec-code-vars.dtx -- part of FONTSPEC @@ -201,6 +201,9 @@ \tl_new:N \l__fontspec_rmfamily_family_tl \tl_new:N \l__fontspec_sffamily_family_tl \tl_new:N \l__fontspec_ttfamily_family_tl +\tl_new:N \l__fontspec_rmfamily_encoding_tl +\tl_new:N \l__fontspec_sffamily_encoding_tl +\tl_new:N \l__fontspec_ttfamily_encoding_tl %%^^A%% fontspec-code-msg.dtx -- part of FONTSPEC \cs_new:Npn \__fontspec_error:n { \msg_error:nn {fontspec} } @@ -725,79 +728,64 @@ \fontencoding { \g__fontspec_nfss_enc_tl } \selectfont } +\tl_replace_all:cnn { rmfamily~ } { \fontfamily } + { \fontencoding \l__fontspec_rmfamily_encoding_tl \fontfamily } +\tl_replace_all:cnn { sffamily~ } { \fontfamily } + { \fontencoding \l__fontspec_sffamily_encoding_tl \fontfamily } +\tl_replace_all:cnn { ttfamily~ } { \fontfamily } + { \fontencoding \l__fontspec_ttfamily_encoding_tl \fontfamily } +\tl_set_eq:NN \l__fontspec_rmfamily_encoding_tl \g_fontspec_encoding_tl +\tl_set_eq:NN \l__fontspec_sffamily_encoding_tl \g_fontspec_encoding_tl +\tl_set_eq:NN \l__fontspec_ttfamily_encoding_tl \g_fontspec_encoding_tl \cs_new:Nn \__fontspec_main_setmainfont:nn { \fontspec_set_family:Nnn \l__fontspec_rmfamily_family_tl {#1} {#2} \tl_set_eq:NN \rmdefault \l__fontspec_rmfamily_family_tl - \use:x - { - \exp_not:n { \DeclareRobustCommand \rmfamily } - { - \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl } - \exp_not:N \fontfamily { \exp_not:N \rmdefault } - \exp_not:N \selectfont - } - } + \tl_set_eq:NN \l__fontspec_rmfamily_encoding_tl \g__fontspec_nfss_enc_tl \str_if_eq:eeT {\familydefault} {\rmdefault} { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl } - \__fontspec_setmainfont_hook:nn {#1} {#2} + \__fontspec_setmainfont_hook:nn {#1} {#2} % for unicode-math only \normalfont } \cs_new:Nn \__fontspec_main_setsansfont:nn { \fontspec_set_family:Nnn \l__fontspec_sffamily_family_tl {#1} {#2} \tl_set_eq:NN \sfdefault \l__fontspec_sffamily_family_tl - \use:x - { - \exp_not:n { \DeclareRobustCommand \sffamily } - { - \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl } - \exp_not:N \fontfamily { \exp_not:N \sfdefault } - \exp_not:N \selectfont - } - } + \tl_set_eq:NN \l__fontspec_sffamily_encoding_tl \g__fontspec_nfss_enc_tl \str_if_eq:eeT {\familydefault} {\sfdefault} { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl } - \__fontspec_setsansfont_hook:nn {#1} {#2} + \__fontspec_setsansfont_hook:nn {#1} {#2} % for unicode-math only \normalfont } \cs_new:Nn \__fontspec_main_setmonofont:nn { \fontspec_set_family:Nnn \l__fontspec_ttfamily_family_tl {#1} {#2} \tl_set_eq:NN \ttdefault \l__fontspec_ttfamily_family_tl - \use:x - { - \exp_not:n { \DeclareRobustCommand \ttfamily } - { - \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl } - \exp_not:N \fontfamily { \exp_not:N \ttdefault } - \exp_not:N \selectfont - } - } + \tl_set_eq:NN \l__fontspec_ttfamily_encoding_tl \g__fontspec_nfss_enc_tl \str_if_eq:eeT {\familydefault} {\ttdefault} { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl } - \__fontspec_setmonofont_hook:nn {#1} {#2} + \__fontspec_setmonofont_hook:nn {#1} {#2} % for unicode-math only \normalfont } \cs_new:Nn \__fontspec_main_setmathrm:nn { \fontspec_gset_family:Nnn \g__fontspec_mathrm_tl {#1} {#2} - \__fontspec_setmathrm_hook:nn {#1} {#2} + \__fontspec_setmathrm_hook:nn {#1} {#2} % for unicode-math only } \cs_new:Nn \__fontspec_main_setboldmathrm:nn { \fontspec_gset_family:Nnn \g__fontspec_bfmathrm_tl {#1} {#2} - \__fontspec_setboldmathrm_hook:nn {#1} {#2} + \__fontspec_setboldmathrm_hook:nn {#1} {#2} % for unicode-math only } \cs_new:Nn \__fontspec_main_setmathsf:nn { \fontspec_gset_family:Nnn \g__fontspec_mathsf_tl {#1} {#2} - \__fontspec_setmathsf_hook:nn {#1} {#2} + \__fontspec_setmathsf_hook:nn {#1} {#2} % for unicode-math only } \cs_new:Nn \__fontspec_main_setmathtt:nn { \fontspec_gset_family:Nnn \g__fontspec_mathtt_tl {#1} {#2} - \__fontspec_setmathtt_hook:nn {#1} {#2} + \__fontspec_setmathtt_hook:nn {#1} {#2} % for unicode-math only } \cs_set_eq:NN \__fontspec_setmainfont_hook:nn \use_none:nn \cs_set_eq:NN \__fontspec_setsansfont_hook:nn \use_none:nn @@ -1205,7 +1193,7 @@ { \tl_if_eq:ccTF { \f@encoding/\f@family/\f@series/\l__fontspec_smcp_shape_tl } - { \f@encoding/\f@family/\f@series/\updefault } + { \f@encoding/\f@family/\f@series/\shapedefault } { \prg_return_false: } { \prg_return_true: } } @@ -1340,13 +1328,13 @@ { \__fontspec_primitive_font_set:NnnF \l__fontspec_test_font - { \__fontspec_construct_font_call:nn { \l__fontspec_fontname_up_tl } {} } + { \__fontspec_construct_font_call:nn { \l__fontspec_fontname_up_tl } { \l__fontspec_pre_feat_sclist } } { \f@size pt - 2sp } { \__fontspec_error:nx {font-not-found} {\l__fontspec_fontname_up_tl} } \__fontspec_set_font_type:N \l__fontspec_test_font \__fontspec_primitive_font_gset:Onn \l__fontspec_fontface_cs_tl - { \__fontspec_construct_font_call:nn { \l__fontspec_fontname_up_tl } {} } + { \__fontspec_construct_font_call:nn { \l__fontspec_fontname_up_tl } { \l__fontspec_pre_feat_sclist } } { \f@size pt } \l__fontspec_fontface_cs_tl % this is necessary for LuaLaTeX to check the scripts properly @@ -1492,13 +1480,12 @@ } \cs_new:Nn \__fontspec_set_faces: { - \__fontspec_add_nfssfont:nnnn \mddefault \updefault \l_fontspec_fontname_tl \l__fontspec_fontfeat_up_clist - \__fontspec_add_nfssfont:nnnn \bfdefault \updefault \l__fontspec_fontname_bf_tl \l__fontspec_fontfeat_bf_clist - \__fontspec_add_nfssfont:nnnn \mddefault \itdefault \l__fontspec_fontname_it_tl \l__fontspec_fontfeat_it_clist - \__fontspec_add_nfssfont:nnnn \mddefault \sldefault \l__fontspec_fontname_sl_tl \l__fontspec_fontfeat_sl_clist - \__fontspec_add_nfssfont:nnnn \bfdefault \itdefault \l__fontspec_fontname_bfit_tl \l__fontspec_fontfeat_bfit_clist - \__fontspec_add_nfssfont:nnnn \bfdefault \sldefault \l__fontspec_fontname_bfsl_tl \l__fontspec_fontfeat_bfsl_clist - + \__fontspec_add_nfssfont:nnnn \mddefault \shapedefault \l_fontspec_fontname_tl \l__fontspec_fontfeat_up_clist + \__fontspec_add_nfssfont:nnnn \bfdefault \shapedefault \l__fontspec_fontname_bf_tl \l__fontspec_fontfeat_bf_clist + \__fontspec_add_nfssfont:nnnn \mddefault \itdefault \l__fontspec_fontname_it_tl \l__fontspec_fontfeat_it_clist + \__fontspec_add_nfssfont:nnnn \mddefault \sldefault \l__fontspec_fontname_sl_tl \l__fontspec_fontfeat_sl_clist + \__fontspec_add_nfssfont:nnnn \bfdefault \itdefault \l__fontspec_fontname_bfit_tl \l__fontspec_fontfeat_bfit_clist + \__fontspec_add_nfssfont:nnnn \bfdefault \sldefault \l__fontspec_fontname_bfsl_tl \l__fontspec_fontfeat_bfsl_clist \prop_map_inline:Nn \l__fontspec_nfssfont_prop { \__fontspec_set_faces_aux:nnnnn ##2 } } \cs_new:Nn \__fontspec_set_faces_aux:nnnnn @@ -1566,8 +1553,8 @@ \prg_new_conditional:Nnn \__fontspec_if_autofont:nn {T,TF} { \group_begin: - \__fontspec_primitive_font_set:Nnn \l__fontspec_tmpa_font { \__fontspec_construct_font_call:nn {#1} {} } { \f@size pt + 1sp } - \__fontspec_primitive_font_set:Nnn \l__fontspec_tmpb_font { \__fontspec_construct_font_call:nn {#1#2} {} } { \f@size pt + 1sp } + \__fontspec_primitive_font_set:Nnn \l__fontspec_tmpa_font { \__fontspec_construct_font_call:nn {#1} { \l__fontspec_pre_feat_sclist } } { \f@size pt + 1sp } + \__fontspec_primitive_font_set:Nnn \l__fontspec_tmpb_font { \__fontspec_construct_font_call:nn {#1#2} { \l__fontspec_pre_feat_sclist } } { \f@size pt + 1sp } \str_if_eq:eeTF { \__fontspec_primitive_font_get_name:N \l__fontspec_tmpa_font } { \__fontspec_primitive_font_get_name:N \l__fontspec_tmpb_font } { \group_end: \prg_return_false: } { \group_end: \prg_return_true: } @@ -1587,7 +1574,7 @@ { \clist_clear:N \l__fontspec_fontopts_clist } \keys_set_groups:nnV {fontspec/fontname} {getfontname} \l__fontspec_fontopts_clist \__fontspec_primitive_font_set:OnnF \l__fontspec_fontface_cs_tl - { \__fontspec_construct_font_call:nn {#1} {} } { \f@size pt } + { \__fontspec_construct_font_call:nn {#1} { \l__fontspec_pre_feat_sclist } } { \f@size pt } { \__fontspec_error:nx {font-not-found} {#2} } } \keys_define:nn {fontspec/fontname} @@ -1713,8 +1700,8 @@ \exp_not:n { \\ } -~ \exp_not:N \str_case:nn {#1/#2} { - {\mddefault/\updefault} {'normal'~} - {\bfdefault/\updefault} {'bold'~} + {\mddefault/\shapedefault} {'normal'~} + {\bfdefault/\shapedefault} {'bold'~} {\mddefault/\itdefault} {'italic'~} {\mddefault/\sldefault} {'slanted'~} {\bfdefault/\itdefault} {'bold~ italic'~} @@ -1727,10 +1714,10 @@ { {\mddefault/\scdefault} {'small~ caps'~} {\bfdefault/\scdefault} {'bold~ small~ caps'~} - {\mddefault/\itscdefault} {'italic~ small~ caps'~} - {\bfdefault/\itscdefault} {'bold~ italic~ small~ caps'~} - {\mddefault/\slscdefault} {'slanted~ small~ caps'~} - {\bfdefault/\slscdefault} {'bold~ slanted~ small~ caps'~} + {\mddefault/\scitdefault} {'italic~ small~ caps'~} + {\bfdefault/\scitdefault} {'bold~ italic~ small~ caps'~} + {\mddefault/\scsldefault} {'slanted~ small~ caps'~} + {\bfdefault/\scsldefault} {'bold~ slanted~ small~ caps'~} }~( #1 / \__fontspec_combo_sc_shape:n {#2} )~ with~ NFSS~ spec.:~ \l__fontspec_nfss_sc_tl @@ -2247,7 +2234,7 @@ \keys_define:nn {fontspec-renderer} { Renderer .choices:nn = - {AAT,ICU,OpenType,Graphite,Full,Basic,Node,Base,Harfbuzz} + {AAT,ICU,OpenType,Graphite,Full,Basic,Node,Base,HarfBuzz,Harfbuzz} { \int_compare:nTF {\l_keys_choice_int <= 4} { @@ -2258,7 +2245,7 @@ \tl_gset:Nx \g__fontspec_single_feat_tl { \l__fontspec_renderer_tl } } { - \__fontspec_warning:nx {only-luatex-feature} {Renderer=Full/Basic/Node/Base/Harfbuzz} + \__fontspec_warning:nx {only-luatex-feature} {Renderer=Full/Basic/Node/Base/HarfBuzz} } } } @@ -2409,6 +2396,11 @@ { \fontspec_complete_fontname:Nn \l__fontspec_sizedfont_tl {#1} } +\__fontspec_keys_define_code:nnn {fontspec-opentype} {UprightFont} {} +\__fontspec_keys_define_code:nnn {fontspec-opentype} {ItalicFont} {} +\__fontspec_keys_define_code:nnn {fontspec-opentype} {BoldFont} {} +\__fontspec_keys_define_code:nnn {fontspec-opentype} {BoldItalicFont} {} + \__fontspec_keys_define_code:nnn {fontspec-preparse} {NFSSEncoding} { \tl_gset:Nx \g__fontspec_nfss_enc_tl { #1 } @@ -3929,25 +3921,25 @@ \renewcommand{\hbar}{{\mathchar"AF\mkern-9mu h}}% TODO: test with other fonts } } - \DeclareSymbolFont{operators}\g_fontspec_encoding_tl\g__fontspec_mathrm_tl\mddefault\updefault - \SetSymbolFont{operators}{normal}\g_fontspec_encoding_tl\g__fontspec_mathrm_tl\mddefault\updefault + \DeclareSymbolFont{operators}\g_fontspec_encoding_tl\g__fontspec_mathrm_tl\mddefault\shapedefault + \SetSymbolFont{operators}{normal}\g_fontspec_encoding_tl\g__fontspec_mathrm_tl\mddefault\shapedefault \DeclareSymbolFontAlphabet\mathrm{operators} \SetMathAlphabet\mathit{normal}\g_fontspec_encoding_tl\g__fontspec_mathrm_tl\mddefault\itdefault - \SetMathAlphabet\mathbf{normal}\g_fontspec_encoding_tl\g__fontspec_mathrm_tl\bfdefault\updefault - \SetMathAlphabet\mathsf{normal}\g_fontspec_encoding_tl\g__fontspec_mathsf_tl\mddefault\updefault - \SetMathAlphabet\mathtt{normal}\g_fontspec_encoding_tl\g__fontspec_mathtt_tl\mddefault\updefault - \SetSymbolFont{operators}{bold}\g_fontspec_encoding_tl\g__fontspec_mathrm_tl\bfdefault\updefault + \SetMathAlphabet\mathbf{normal}\g_fontspec_encoding_tl\g__fontspec_mathrm_tl\bfdefault\shapedefault + \SetMathAlphabet\mathsf{normal}\g_fontspec_encoding_tl\g__fontspec_mathsf_tl\mddefault\shapedefault + \SetMathAlphabet\mathtt{normal}\g_fontspec_encoding_tl\g__fontspec_mathtt_tl\mddefault\shapedefault + \SetSymbolFont{operators}{bold}\g_fontspec_encoding_tl\g__fontspec_mathrm_tl\bfdefault\shapedefault \tl_if_empty:NTF \g__fontspec_bfmathrm_tl { \SetMathAlphabet\mathit{bold}\g_fontspec_encoding_tl\g__fontspec_mathrm_tl\bfdefault\itdefault } { - \SetMathAlphabet\mathrm{bold}\g_fontspec_encoding_tl\g__fontspec_bfmathrm_tl\mddefault\updefault - \SetMathAlphabet\mathbf{bold}\g_fontspec_encoding_tl\g__fontspec_bfmathrm_tl\bfdefault\updefault + \SetMathAlphabet\mathrm{bold}\g_fontspec_encoding_tl\g__fontspec_bfmathrm_tl\mddefault\shapedefault + \SetMathAlphabet\mathbf{bold}\g_fontspec_encoding_tl\g__fontspec_bfmathrm_tl\bfdefault\shapedefault \SetMathAlphabet\mathit{bold}\g_fontspec_encoding_tl\g__fontspec_bfmathrm_tl\mddefault\itdefault } - \SetMathAlphabet\mathsf{bold}\g_fontspec_encoding_tl\g__fontspec_mathsf_tl\bfdefault\updefault - \SetMathAlphabet\mathtt{bold}\g_fontspec_encoding_tl\g__fontspec_mathtt_tl\bfdefault\updefault + \SetMathAlphabet\mathsf{bold}\g_fontspec_encoding_tl\g__fontspec_mathsf_tl\bfdefault\shapedefault + \SetMathAlphabet\mathtt{bold}\g_fontspec_encoding_tl\g__fontspec_mathtt_tl\bfdefault\shapedefault } \cs_new:Nn \fontspec_maybe_setup_maths: { @@ -4004,33 +3996,21 @@ %%^^A%% fontspec-code-xfss.dtx -- part of FONTSPEC -\providecommand*\itscdefault{\itdefault\scdefault} -\providecommand*\slscdefault{\sldefault\scdefault} -\DeclareRobustCommand{\sishape} - { - \not@math@alphabet\sishape\relax - \fontshape{\itscdefault}\selectfont - } -\DeclareTextFontCommand{\textsi}{\sishape} +\providecommand*\scitdefault{\scdefault\itdefault} +\providecommand*\scsldefault{\scdefault\sldefault} \cs_new:Nn \__fontspec_shape_merge:nn { c__fontspec_shape_#1_#2_tl } \cs_new:Nn \__fontspec_merge_default_shapes: { - \tl_const:cn { \__fontspec_shape_merge:nn \itdefault \scdefault } {\itscdefault} - \tl_const:cn { \__fontspec_shape_merge:nn \sldefault \scdefault } {\slscdefault} - \tl_const:cn { \__fontspec_shape_merge:nn \scdefault \itdefault } {\itscdefault} - \tl_const:cn { \__fontspec_shape_merge:nn \scdefault \sldefault } {\slscdefault} - \tl_const:cn { \__fontspec_shape_merge:nn \slscdefault \itdefault } {\itscdefault} - \tl_const:cn { \__fontspec_shape_merge:nn \itscdefault \sldefault } {\slscdefault} - \tl_const:cn { \__fontspec_shape_merge:nn \itscdefault \updefault } {\scdefault} - \tl_const:cn { \__fontspec_shape_merge:nn \slscdefault \updefault } {\scdefault} + \tl_const:cn { \__fontspec_shape_merge:nn \itdefault \scdefault } {\scitdefault} + \tl_const:cn { \__fontspec_shape_merge:nn \sldefault \scdefault } {\scsldefault} + \tl_const:cn { \__fontspec_shape_merge:nn \scdefault \itdefault } {\scitdefault} + \tl_const:cn { \__fontspec_shape_merge:nn \scdefault \sldefault } {\scsldefault} + \tl_const:cn { \__fontspec_shape_merge:nn \scsldefault \itdefault } {\scitdefault} + \tl_const:cn { \__fontspec_shape_merge:nn \scitdefault \sldefault } {\scsldefault} + \tl_const:cn { \__fontspec_shape_merge:nn \scitdefault \shapedefault } {\scdefault} + \tl_const:cn { \__fontspec_shape_merge:nn \scsldefault \shapedefault } {\scdefault} } \__fontspec_merge_default_shapes: -\cs_new:Nn \__fontspec_merge_shape:n - { - \__fontspec_if_merge_shape:nTF {#1} - { \fontshape { \tl_use:c { \__fontspec_shape_merge:nn {\f@shape} {#1} } } \selectfont } - { \fontshape {#1} \selectfont } - } \prg_new_conditional:Nnn \__fontspec_if_merge_shape:n {TF} { \bool_lazy_and:nnTF @@ -4044,6 +4024,23 @@ } \prg_return_true: \prg_return_false: } +\cs_if_exist:NTF \DeclareFontSeriesChangeRule +{ + \cs_set_eq:NN \emfontdeclare \DeclareEmphSequence +} +{ +\DeclareRobustCommand{\sishape} + { + \not@math@alphabet\sishape\relax + \fontshape{\scitdefault}\selectfont + } +\DeclareTextFontCommand{\textsi}{\sishape} +\cs_new:Nn \__fontspec_merge_shape:n + { + \__fontspec_if_merge_shape:nTF {#1} + { \fontshape { \tl_use:c { \__fontspec_shape_merge:nn {\f@shape} {#1} } } \selectfont } + { \fontshape {#1} \selectfont } + } \DeclareRobustCommand \itshape { \not@math@alphabet\itshape\mathit @@ -4064,7 +4061,7 @@ \not@math@alphabet\upshape\relax \__fontspec_merge_shape:n\updefault } -\cs_new_protected:Npn \emfontdeclare #1 +\cs_set_protected:Npn \emfontdeclare #1 { \prop_gclear:N \g__fontspec_em_prop \int_zero:N \l__fontspec_emdef_int @@ -4118,7 +4115,10 @@ \cs_set:Npn \emreset { \upshape } \cs_set:Npn \emshape { \itshape } \cs_set:Npn \eminnershape { \upshape } -\cs_new_protected:Npn \strongfontdeclare #1 +\emfontdeclare{ \emshape, \eminnershape } +\cs_new:Nn \fontspec_set_em_level:n { \int_set:Nn \l__fontspec_em_int {#1} } +} +\cs_set_protected:Npn \strongfontdeclare #1 { \prop_gclear:N \g__fontspec_strong_prop \int_zero:N \l__fontspec_strongdef_int @@ -4161,99 +4161,9 @@ \int_zero:N \l__fontspec_em_int \int_zero:N \l__fontspec_strong_int } -\cs_new:Nn \fontspec_set_em_level:n { \int_set:Nn \l__fontspec_em_int {#1} } \cs_new:Nn \fontspec_set_strong_level:n { \int_set:Nn \l__fontspec_strong_int {#1} } \strongfontdeclare{ \bfseries } -\emfontdeclare{ \emshape, \eminnershape } %%^^A%% fontspec-code-patches.dtx -- part of FONTSPEC -\cs_new_protected:Nn \fontspec_visible_space: - { - \__fontspec_primitive_font_glyph_if_exist:NnTF \font {"2423} - { \char"2423\scan_stop: } - { \fontspec_visible_space_fallback: } - } -\cs_new_protected:Nn \fontspec_visible_space_fallback: - { - { - \usefont{\g_fontspec_encoding_tl}{lmtt}{\f@series}{\f@shape} - \textvisiblespace - } - } -\group_begin: -\char_set_catcode_active:n{"20}% -\cs_gset:Npn\fontspec_print_visible_spaces:{% -\char_set_catcode_active:n{"20}% -\cs_set_eq:NN^^20\fontspec_visible_space:% -}% -\group_end: -\AtBeginDocument - { - \cs_if_exist:NF \verbvisiblespace - { -\__fontspec_patch_verb: -\__fontspec_patch_verbatim: -\__fontspec_patch_moreverb: -\__fontspec_patch_fancyvrb: -\__fontspec_patch_listings: -} - } -\cs_new_protected:Npn \__fontspec_patch_verb: - { -\def\verb -{ -\relax\ifmmode\hbox\else\leavevmode\null\fi -\bgroup -\verb@eol@error \let\do\@makeother \dospecials -\verbatim@font\@noligs -\@ifstar\__fontspecsverb\@verb -} -\def\__fontspecsverb{\fontspec_print_visible_spaces:\@sverb} -} -\cs_new_protected:Npn \__fontspec_patch_verbatim: - { - \@ifpackageloaded{verbatim} - { - \cs_set:cpn {verbatim*} - { - \group_begin: \@verbatim \fontspec_print_visible_spaces: \verbatim@start - } - } - { - \cs_set:cpn {verbatim*} - { - \@verbatim \fontspec_print_visible_spaces: \@sxverbatim - } - } - } -\cs_new_protected:Npn \__fontspec_patch_moreverb: - { - \@ifpackageloaded{moreverb} - { - \cs_set:cpn {listingcont*} - { - \cs_set:Npn \verbatim@processline - { - \thelisting@line \global\advance\listing@line1\relax - \the\verbatim@line\par - } - \@verbatim \fontspec_print_visible_spaces: \verbatim@start - } - }{} - } -\cs_new_protected:Npn \__fontspec_patch_fancyvrb: - { - \@ifpackageloaded{fancyvrb} - { - \cs_set_eq:NN \FancyVerbSpace \fontspec_visible_space: - }{} - } -\cs_new_protected:Npn \__fontspec_patch_listings: - { - \@ifpackageloaded{listings} - { - \cs_set_eq:NN \lst@visiblespace \fontspec_visible_space: - }{} - } diff --git a/Master/texmf-dist/tex/latex/fontspec/fontspec.lua b/Master/texmf-dist/tex/latex/fontspec/fontspec.lua index edd69967a05..ac39921f050 100644 --- a/Master/texmf-dist/tex/latex/fontspec/fontspec.lua +++ b/Master/texmf-dist/tex/latex/fontspec/fontspec.lua @@ -23,8 +23,8 @@ fontspec = fontspec or {} local fontspec = fontspec fontspec.module = { name = "fontspec", - version = "2.7d", - date = "2019/10/19", + version = "2.7e", + date = "2020/01/09", description = "Font selection for XeLaTeX and LuaLaTeX", author = "Khaled Hosny, Philipp Gesang, Will Robertson", copyright = "Khaled Hosny, Philipp Gesang, Will Robertson", diff --git a/Master/texmf-dist/tex/latex/fontspec/fontspec.sty b/Master/texmf-dist/tex/latex/fontspec/fontspec.sty index ebc2bb923ba..09c3903e6e7 100644 --- a/Master/texmf-dist/tex/latex/fontspec/fontspec.sty +++ b/Master/texmf-dist/tex/latex/fontspec/fontspec.sty @@ -21,7 +21,7 @@ \RequirePackage{xparse} \ProvidesExplPackage{fontspec}% - {2019/10/19}{2.7d}{Font selection for XeLaTeX and LuaLaTeX} + {2020/01/09}{2.7e}{Font selection for XeLaTeX and LuaLaTeX} %%^^A%% fontspec-code-load.dtx -- part of FONTSPEC \sys_if_engine_luatex:T -- cgit v1.2.3