summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/fontspec
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-01-09 22:13:09 +0000
committerKarl Berry <karl@freefriends.org>2020-01-09 22:13:09 +0000
commitf3f16f605a5cf9e28f8caa4f2f8b59020654155d (patch)
tree61a77dad80f685a2d45188a7048a540a595b0017 /Master/texmf-dist/tex/latex/fontspec
parent5a49a16364de5bdb0b342263c630719965ca6f89 (diff)
fontspec (9jan20)
git-svn-id: svn://tug.org/texlive/trunk@53357 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/fontspec')
-rw-r--r--Master/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty272
-rw-r--r--Master/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty270
-rw-r--r--Master/texmf-dist/tex/latex/fontspec/fontspec.lua4
-rw-r--r--Master/texmf-dist/tex/latex/fontspec/fontspec.sty2
4 files changed, 184 insertions, 364 deletions
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 <wspr.io/fontspec>
%%^^A%% fontspec-code-vars.dtx -- part of FONTSPEC <wspr.io/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 <wspr.io/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 <wspr.io/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 <wspr.io/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 <wspr.io/fontspec>
%%^^A%% fontspec-code-vars.dtx -- part of FONTSPEC <wspr.io/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 <wspr.io/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 <wspr.io/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 <wspr.io/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 <wspr.io/fontspec>
\sys_if_engine_luatex:T