summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty')
-rw-r--r--Master/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty200
1 files changed, 123 insertions, 77 deletions
diff --git a/Master/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty b/Master/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty
index b50575f0070..8989970ff2b 100644
--- a/Master/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty
+++ b/Master/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty
@@ -26,7 +26,7 @@
%% fontspec-code-closing.dtx (with options: `fontspec,LU')
%% fontspec-code-xfss.dtx (with options: `fontspec,LU')
%% ------------------------------------------------
-%% The FONTSPEC package <wspr.io/fontspec>
+%% The FONTSPEC package <latex3.github.io/fontspec>
%% ------------------------------------------------
%% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
%% Copyright 2009-2013 Khaled Hosny
@@ -35,15 +35,15 @@
%% the conditions of the LaTeX Project Public License, version 1.3c or higher
%% (your choice): <http://www.latex-project.org/lppl/>.
%% ------------------------------------------------
-%%^^A%% fontspec.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
%%^^A%% Metadata for the package, including files and versioning
\RequirePackage{xparse}
\ProvidesExplPackage{fontspec-luatex}%
- {2024/02/13}{2.9a}{Font selection for XeLaTeX and LuaLaTeX}
+ {2024/04/27}{2.9b}{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>
+%%^^A%% fontspec-code-load.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
+%%^^A%% fontspec-code-vars.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
\bool_new:N \l__fontspec_firsttime_bool
\bool_new:N \l__fontspec_nobf_bool
\bool_new:N \l__fontspec_noit_bool
@@ -209,11 +209,11 @@
\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>
+%%^^A%% fontspec-code-msg.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
\cs_new:Npn \__fontspec_error:n { \msg_error:nn {fontspec} }
\cs_new:Npn \__fontspec_error:nn { \msg_error:nnn {fontspec} }
\cs_new:Npn \__fontspec_error:nx { \msg_error:nnx {fontspec} }
-\cs_new:Npn \__fontspec_error:nxx { \msg_error:nnxx {fontspec} }
+\cs_new:Npn \__fontspec_error:nxx { \msg_error:nnxx {fontspec} }
\cs_new:Npn \__fontspec_warning:n { \msg_warning:nn {fontspec} }
\cs_new:Npn \__fontspec_warning:nx { \msg_warning:nnx {fontspec} }
\cs_new:Npn \__fontspec_warning:nxx { \msg_warning:nnxx {fontspec} }
@@ -224,9 +224,9 @@
\cs_generate_variant:Nn \msg_new:nnn {nnx}
\cs_generate_variant:Nn \msg_new:nnnn {nnxx}
\cs_new:Nn \__fontspec_msg_new:nn
- { \msg_new:nnx {fontspec} {#1} { \tl_trim_spaces:n {#2} } }
+ { \msg_new:nnx {fontspec} {#1} { ^^J \tl_trim_spaces:n {#2} } }
\cs_new:Nn \__fontspec_msg_new:nnn
- { \msg_new:nnxx {fontspec} {#1} { \tl_trim_spaces:n {#2} } { \tl_trim_spaces:n {#3} } }
+ { \msg_new:nnxx {fontspec} {#1} { ^^J \tl_trim_spaces:n {#2} } { \tl_trim_spaces:n {#3} } }
\char_set_catcode_space:n {32}
\__fontspec_msg_new:nn {only-inside-encdef}
{
@@ -240,7 +240,10 @@
}
\__fontspec_msg_new:nnn {font-not-found}
{
- The font "#1" cannot be found.
+ The font "#1" cannot be found; this may be but usually is not
+ a fontspec bug. Either there is a typo in the font name/file,
+ the font is not installed (correctly), or there is a bug
+ in the underlying font loading engine (XeTeX/luaotfload).
}
{
A font might not be found for many reasons.\\
@@ -349,9 +352,11 @@
}
\__fontspec_msg_new:nn {language-not-exist}
{
- Language '#1' not available
- for font '\l_fontspec_fontname_tl'
+ Language '#1' not explicitly supported
+ within font '\l_fontspec_fontname_tl'
with script '\l__fontspec_script_name_tl'.
+ Check the typeset output, and if it is okay then ignore this warning.
+ Otherwise a different font should be chosen.
}
\__fontspec_msg_new:nn {only-xetex-feature}
{
@@ -406,7 +411,9 @@
}
\__fontspec_msg_new:nn {no-script}
{
- Font "#1" does not contain requested Script "#2".
+ Script '#2' not explicitly supported within font '#1'.
+ Check the typeset output, and if it is okay then ignore this warning.
+ Otherwise a different font should be chosen.
}
\__fontspec_msg_new:nn {opa-twice}
{
@@ -428,7 +435,7 @@
}
\char_set_catcode_ignore:n {32}
-%%^^A%% fontspec-code-opening.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-code-opening.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
\cs_if_exist:cF {T@TU}
{
\__fontspec_warning:n {tu-clash}
@@ -481,7 +488,7 @@
\cs_generate_variant:Nn \tl_if_eq:nnT {ox}
\cs_generate_variant:Nn \tl_replace_all:Nnn {Nnx}
-%%^^A%% fontspec-code-fontload.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-code-fontload.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
\cs_set:Npn \__fontspec_primitive_font_set:Nnn #1#2#3
{
@@ -544,7 +551,7 @@
\__fontspec_primitive_font_get_name:N \tex_font:D
}
-%%^^A%% fontspec-code-interfaces.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-code-interfaces.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
\NewDocumentCommand \fontspec { O{} m O{} }
{
@@ -685,7 +692,7 @@
\__fontspec_main_liningnums:n {#1}
}
-%%^^A%% fontspec-code-user.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-code-user.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
\cs_new:Nn \__fontspec_main_fontspec:nn
{
@@ -972,7 +979,7 @@
\group_end:
}
-%%^^A%% fontspec-code-api.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-code-api.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
\prg_new_conditional:Nnn \fontspec_if_fontspec_font: {TF,T,F}
{
@@ -1182,7 +1189,7 @@
{ \prg_return_false: }
}
-%%^^A%% fontspec-code-internal.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-code-internal.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
\cs_new_protected:Nn \__fontspec_select_font_family:nn
{
@@ -1194,6 +1201,7 @@
\__fontspec_sanitise_fontname:Nn \l__fontspec_fontname_up_tl {#2}
\__fontspec_sanitise_fontname:Nn \l__fontspec_basename_tl {#2}
+
\__fontspec_if_detect_external:nT {#2}
{ \keys_set:nn {fontspec-preparse-external} {Path} }
@@ -1207,6 +1215,8 @@
\__fontspec_preparse_features:
+
+
\__fontspec_load_font:
\__fontspec_set_scriptlang:
\__fontspec_get_features:n {}
@@ -1226,13 +1236,19 @@
\cs_new:Nn \__fontspec_sanitise_fontname:Nn
{
\tl_set:Nx #1 {#2}
- \tl_remove_all:Nn #1 {~}
+ \tl_trim_spaces:N #1
+ \__fontspec_process_ext:N #1
+ }
+
+\cs_new:Nn \__fontspec_process_ext:N
+ {
\clist_map_inline:Nn \l__fontspec_extensions_clist
{
\tl_if_in:NnT #1 {##1}
{
\tl_remove_once:Nn #1 {##1}
\tl_set:Nn \l__fontspec_extension_tl {##1}
+ \__fontspec_font_is_file:
\clist_map_break:
}
}
@@ -1265,8 +1281,15 @@
\tl_remove_all:Nn \l__fontspec_ext_filename_tl {~}
\prop_if_in:NVF \g__fontspec_fontopts_prop #1
{
- \exp_args:No \file_if_exist:nT { \l__fontspec_ext_filename_tl }
- { \file_input:n { \l__fontspec_ext_filename_tl } }
+ \exp_args:No \file_if_exist:nTF { \l__fontspec_ext_filename_tl }
+ {
+ \file_input:n { \l__fontspec_ext_filename_tl }
+ }
+ {
+ \tl_remove_all:Nn \l__fontspec_ext_filename_tl {~}
+ \exp_args:No \file_if_exist:nT { \l__fontspec_ext_filename_tl }
+ { \file_input:n { \l__fontspec_ext_filename_tl } }
+ }
}
}
}
@@ -1344,11 +1367,14 @@
}
\cs_new:Nn \__fontspec_font_is_file:
{
- \cs_set:Npn \__fontspec_fontname_wrap:n ##1 { [ \l__fontspec_font_path_tl ##1 ] }
- }
-\cs_new:Nn \__fontspec_font_is_kpse:
- {
- \cs_set:Npn \__fontspec_fontname_wrap:n ##1 { kpse: ##1 }
+ \bool_set_true:N \l__fontspec_external_bool
+ \bool_lazy_and:nnTF { \l__fontspec_external_kpse_bool } { \tl_if_empty_p:N \l__fontspec_font_path_tl }
+ {
+ \cs_set:Npn \__fontspec_fontname_wrap:n ##1 { kpse: ##1 }
+ }
+ {
+ \cs_set:Npn \__fontspec_fontname_wrap:n ##1 { [ \l__fontspec_font_path_tl ##1 ] }
+ }
}
\cs_new:Nn \__fontspec_set_scriptlang:
{
@@ -1367,7 +1393,7 @@
\__fontspec_keys_set_known:nxN {fontspec-renderer} {\l__fontspec_fontfeat_clist,#1}
\l__fontspec_keys_leftover_clist
\__fontspec_keys_set_known:nxN {fontspec} {\l__fontspec_keys_leftover_clist} \l__fontspec_keys_leftover_clist
- \keys_set:nV {fontspec-opentype} \l__fontspec_keys_leftover_clist
+ \keys_set_known:nV {fontspec-opentype} \l__fontspec_keys_leftover_clist
\tl_if_empty:NF \l__fontspec_mapping_tl
{ \__fontspec_update_featstr:n { mapping = \l__fontspec_mapping_tl } }
@@ -1478,7 +1504,7 @@
{
\tl_set:Nx #1 {#2}
\tl_replace_all:Nnx #1 {*} {\l__fontspec_basename_tl}
- \tl_remove_all:Nn #1 {~}
+ \__fontspec_process_ext:N #1
}
\cs_new:Nn \__fontspec_add_nfssfont:nnnn
{
@@ -1793,10 +1819,6 @@
\tl_gclear:N \g__fontspec_curr_series_tl
\tl_gset_eq:NN \g__fontspec_nfss_enc_tl \g_fontspec_encoding_tl
\tl_set:Nn \l__fontspec_mode_tl {node}
- \int_set:Nn \prehyphenchar { `\- } % fixme
- \int_zero:N \posthyphenchar % fixme
- \int_zero:N \preexhyphenchar % fixme
- \int_zero:N \postexhyphenchar % fixme
}
\cs_new:Nn \__fontspec_init_fontface:
{
@@ -1827,7 +1849,7 @@
{ \__fontspec_error:nx {ot-tag-too-long} {#1#2#3#4#5} }
}
-%%^^A%% fontspec-code-opentype.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-code-opentype.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
\cs_new:Nn \__fontspec_define_opentype_variation_axis:nn
{
@@ -1912,7 +1934,7 @@
\cs_new:Nn \__fontspec_swap_plus_minus:n { \__fontspec_swap_plus_minus_aux:Nq #1 \q_nil }
\cs_new:Npn \__fontspec_swap_plus_minus_aux:Nq #1#2 \q_nil
{ \str_case:nn {#1} { {+} {-#2} {-} {+#2} } }
-\prg_new_conditional:Nnn \__fontspec_check_script:Nn {TF,T}
+\prg_new_conditional:Nnn \__fontspec_check_script:Nn {TF,T,F}
{
\bool_if:NTF \l__fontspec_never_check_bool
{ \prg_return_true: }
@@ -2104,10 +2126,10 @@
\prop_gput:Nnn \g__fontspec_all_opentype_feature_names_prop {vrtr}{Vertical~Alternates~for~Rotation}
\prop_gput:Nnn \g__fontspec_all_opentype_feature_names_prop {zero}{Slashed~Zero}
-%%^^A%% fontspec-code-graphite.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-code-graphite.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
-%%^^A%% fontspec-code-keyval.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-code-keyval.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
\clist_gset:Nn \g__fontspec_all_keyval_modules_clist
{
@@ -2136,15 +2158,8 @@
{
\bool_set_true:N \l__fontspec_nobf_bool
\bool_set_true:N \l__fontspec_noit_bool
- \bool_set_true:N \l__fontspec_external_bool
\tl_set:Nn \l__fontspec_font_path_tl {#1}
- \bool_lazy_and:nnTF { \l__fontspec_external_kpse_bool } { \tl_if_empty_p:N \l__fontspec_font_path_tl }
- {
- \__fontspec_font_is_kpse:
- }
- {
- \__fontspec_font_is_file:
- }
+ \__fontspec_font_is_file:
}
\aliasfontfeature{Path}{ExternalLocation}
\__fontspec_keys_define_code:nnn {fontspec} {Path} {}
@@ -2161,10 +2176,7 @@
\__fontspec_keys_define_code:nnn {fontspec-preparse-external} {KpseOnly}
{
\bool_set_true:N \l__fontspec_external_kpse_bool
- \bool_if:NT \l__fontspec_external_bool
- {
- \__fontspec_font_is_kpse:
- }
+ \bool_if:NT \l__fontspec_external_bool \__fontspec_font_is_file:
}
\__fontspec_keys_define_code:nnn {fontspec} {KpseOnly} {}
\keys_define:nn {fontspec-renderer}
@@ -2692,7 +2704,7 @@
\__fontspec_update_featstr:n {#1}
}
-%%^^A%% fontspec-code-feat-opentype.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-code-feat-opentype.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
\__fontspec_feat_prop_add:nn {salt} { Alternate\,=\,$N$ }
\__fontspec_feat_prop_add:nn {nalt} { Annotation\,=\,$N$ }
@@ -2715,10 +2727,21 @@
\__fontspec_define_opentype_feature_group:n {Letters}
\__fontspec_define_opentype_feature:nnnnn {Letters} {ResetAll} {} {}
{
- +case,+smcp,+pcap,+c2sc,+c2pc,+unic,+rand,
- -case,-smcp,-pcap,-c2sc,-c2pc,-unic,-rand
+ +lower,-lower,+upper,-upper,+case,+cpsp,
+ +smcp,+pcap,+c2sc,+c2pc,+unic,+rand,
+ -smcp,-pcap,-c2sc,-c2pc,-unic,-rand
}
-\__fontspec_define_opentype_onoffreset:nnnnn {Letters} {Uppercase} {case} {case} {}
+\keys_define:nn {fontspec-opentype}
+ {
+ Letters / Uppercase .code:n = {
+ \__fontspec_make_OT_feature:nnn {} {+upper} {+lower}
+ \__fontspec_make_OT_feature:nnn {} {+case} {}
+ \__fontspec_make_OT_feature:nnn {} {+cpsp} {}
+ },
+ }
+\__fontspec_define_opentype_feature:nnnnn {Letters} {UppercaseOff} {} {-upper} {+case,+cpsp}
+\__fontspec_define_opentype_feature:nnnnn {Letters} {UppercaseReset} {} {} {+upper,-upper}
+\__fontspec_define_opentype_onoffreset:nnnnn {Letters} {Lowercase} {} {lower} {+upper,+case,+cpsp}
\__fontspec_define_opentype_onoffreset:nnnnn {Letters} {SmallCaps} {smcp} {smcp} {+pcap,+unic}
\__fontspec_define_opentype_onoffreset:nnnnn {Letters} {PetiteCaps} {pcap} {pcap} {+smcp,+unic}
\__fontspec_define_opentype_onoffreset:nnnnn {Letters} {UppercaseSmallCaps} {c2sc} {c2sc} {+c2pc,+unic}
@@ -2983,28 +3006,46 @@
\clist_map_break:
}
}
-
\bool_if:NF \l__fontspec_scriptlang_exist_bool
{
- \bool_if:nF { \str_if_eq_p:ee {#1} {CustomDefault} }
+ \__fontspec_warning:nxx {no-script} {\l_fontspec_fontname_tl} {#1}
+ \clist_set:Nn \l_tmpa_clist {#2}
+ \clist_get:NN \l_tmpa_clist \l__fontspec_script_tl
+ \exp_args:Noo \__fontspec_check_script:NnF \l__fontspec_fontface_cs_tl \l__fontspec_script_tl
{
- \tl_clear:N \l__fontspec_script_name_tl
- \__fontspec_warning:nxx {no-script} {\l_fontspec_fontname_tl} {#1}
- }
-
- \bool_if:nF
- {
- \str_if_eq_p:ee {#1} {Default} ||
- \str_if_eq_p:ee {#1} {Latin} ||
- \str_if_eq_p:ee {#1} {CustomDefault}
+ \tl_set:Nn \l__fontspec_script_name_tl {#1}
+ \int_set:Nn \l__fontspec_script_int {\l__fontspec_strnum_int}
+ \tl_gset:Nx \g__fontspec_single_feat_tl { script=\l__fontspec_script_tl }
}
+ }
+ }
+ }
+ }
+\cs_new:Nn \fontspec_default_script:nn
+ {
+ \keys_define:nn {fontspec-opentype} { Script / #1 .code:n =
+ {
+ \bool_set_false:N \l__fontspec_scriptlang_exist_bool
+ \clist_map_inline:nn {#2}
+ {
+ \exp_args:No \__fontspec_check_script:NnT \l__fontspec_fontface_cs_tl {####1}
{
- \keys_set:nn {fontspec-opentype} { Script = CustomDefault }
+ \tl_set:Nn \l__fontspec_script_name_tl {#1}
+ \tl_set:Nn \l__fontspec_script_tl {####1}
+ \int_set:Nn \l__fontspec_script_int {\l__fontspec_strnum_int}
+ \bool_set_true:N \l__fontspec_scriptlang_exist_bool
+ \tl_gset:Nx \g__fontspec_single_feat_tl { script=####1 }
+ \clist_map_break:
}
}
+ \bool_if:NF \l__fontspec_scriptlang_exist_bool
+ {
+ \tl_clear:N \l__fontspec_script_name_tl
+ }
}
}
}
+\fontspec_default_script:nn {CustomDefault} {latn,DFLT}
\keys_define:nn {fontspec-opentype}
{
Language .choice: ,
@@ -3029,7 +3070,14 @@
\bool_if:NF \l__fontspec_scriptlang_exist_bool
{
\__fontspec_warning:nx {language-not-exist} {#1}
- \keys_set:nn {fontspec-opentype} { Language = Default }
+ \clist_set:Nn \l_tmpa_clist {#2}
+ \clist_get:NN \l_tmpa_clist \l__fontspec_lang_tl
+ \exp_args:Noo \__fontspec_check_script:NnF \l__fontspec_fontface_cs_tl \l__fontspec_script_tl
+ {
+ \tl_set:Nn \l__fontspec_script_name_tl {#1}
+ \int_set:Nn \l__fontspec_language_int {\l__fontspec_strnum_int}
+ \tl_gset:Nx \g__fontspec_single_feat_tl { language=####1 }
+ }
}
}
}
@@ -3062,7 +3110,7 @@
\__fontspec_ot_compat:nn {Diacritics} {AboveBase}
\__fontspec_ot_compat:nn {Diacritics} {BelowBase}
-%%^^A%% fontspec-code-scripts.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-code-scripts.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
\newfontscript{Adlam}{adlm}
\newfontscript{Ahom}{ahom}
@@ -3095,7 +3143,6 @@
\newfontscript{Cypro-Minoan}{cpmn}
\newfontscript{Cyrillic}{cyrl}
\newfontscript{Default}{DFLT}
-\newfontscript{CustomDefault}{latn,DFLT}
\newfontscript{Deseret}{dsrt}
\newfontscript{Devanagari}{dev2,deva}
\newfontscript{Dives~Akuru}{diak}
@@ -3235,7 +3282,7 @@
\newfontscript{N'ko}{nko~}
\newfontscript{Oriya}{ory2,orya}
-%%^^A%% fontspec-code-lang.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-code-lang.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
\newfontlanguage{Abaza}{ABA}
\newfontlanguage{Abkhazian}{ABK}
@@ -3621,10 +3668,10 @@
\newfontlanguage{Zande}{ZND}
\newfontlanguage{Zulu}{ZUL}
-%%^^A%% fontspec-code-feat-aat.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-code-feat-aat.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
-%%^^A%% fontspec-code-enc.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-code-enc.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
\DeclareDocumentCommand \EncodingCommand { m O{} O{} m }
{
@@ -3706,7 +3753,7 @@
{ \c_backslash_str \UnicodeEncodingName \token_to_str:N #1 - \tl_to_str:n {#2} }
}
-%%^^A%% fontspec-code-math.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-code-math.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
\@ifpackageloaded{euler}
{ \bool_gset_true:N \g__fontspec_pkg_euler_loaded_bool }
{ \bool_gset_false:N \g__fontspec_pkg_euler_loaded_bool }
@@ -3845,7 +3892,7 @@
}
\AtBeginDocument{\fontspec_maybe_setup_maths:}
-%%^^A%% fontspec-code-closing.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-code-closing.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
\bool_if:NT \g__fontspec_cfg_bool
{
\InputIfFileExists{fontspec.cfg}
@@ -3853,7 +3900,7 @@
{ \typeout{No~ fontspec.cfg~ file~ found;~ no~ configuration~ loaded.} }
}
-%%^^A%% fontspec-code-xfss.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-code-xfss.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
\providecommand*\scitdefault{\scdefault\itdefault}
\providecommand*\scsldefault{\scdefault\sldefault}
@@ -3925,11 +3972,10 @@
}
\DeclareTextFontCommand{\strong}{\strongenv}
\cs_set:Npn \strongreset {}
-\cs_set:Npn \reset@font
+\cs_set_protected:Npn \reset@font
{
\normalfont
\int_zero:N \l__fontspec_strong_int
}
-\cs_new:Nn \fontspec_set_strong_level:n { \int_set:Nn \l__fontspec_strong_int {#1} }
-\strongfontdeclare{ \bfseries }
+\strongfontdeclare{\bfseries}