diff options
author | Karl Berry <karl@freefriends.org> | 2024-04-27 19:57:18 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2024-04-27 19:57:18 +0000 |
commit | eef02f0cb333c408d5d83295850e03c70fcd4539 (patch) | |
tree | 635ae33e9637e22b8f6a13e668e7d190bb2e3d10 /Master/texmf-dist/tex/latex | |
parent | cab586f7c024839dcdb8ce01712ab3025200178d (diff) |
fontspec (27apr24)
git-svn-id: svn://tug.org/texlive/trunk@71101 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
-rw-r--r-- | Master/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty | 200 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty | 181 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/fontspec/fontspec.lua | 10 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/fontspec/fontspec.sty | 20 |
4 files changed, 253 insertions, 158 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} diff --git a/Master/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty b/Master/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty index 2b6480677c2..3af47d00b5d 100644 --- a/Master/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty +++ b/Master/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty @@ -26,7 +26,7 @@ %% fontspec-code-closing.dtx (with options: `fontspec,XE') %% fontspec-code-xfss.dtx (with options: `fontspec,XE') %% ------------------------------------------------ -%% 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-xetex}% - {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} @@ -477,7 +484,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 { @@ -540,7 +547,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{} } { @@ -681,7 +688,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 { @@ -968,7 +975,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} { @@ -1178,7 +1185,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 { @@ -1190,6 +1197,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} } @@ -1203,6 +1211,8 @@ \__fontspec_preparse_features: + + \__fontspec_load_font: \__fontspec_set_scriptlang: \__fontspec_get_features:n {} @@ -1222,12 +1232,19 @@ \cs_new:Nn \__fontspec_sanitise_fontname:Nn { \tl_set:Nx #1 {#2} + \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: } } @@ -1260,8 +1277,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 } } + } } } } @@ -1339,9 +1363,15 @@ } \cs_new:Nn \__fontspec_font_is_file: { - \cs_set:Npn \__fontspec_fontname_wrap:n ##1 { [ \l__fontspec_font_path_tl ##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_eq:NN \__fontspec_font_is_kpse: \__fontspec_font_is_file: \cs_new:Nn \__fontspec_set_scriptlang: { \bool_if:NT \l__fontspec_firsttime_bool @@ -1361,11 +1391,11 @@ \__fontspec_keys_set_known:nxN {fontspec} {\l__fontspec_keys_leftover_clist} \l__fontspec_keys_leftover_clist \bool_if:NTF \l__fontspec_ot_bool { - \keys_set:nV {fontspec-opentype} \l__fontspec_keys_leftover_clist + \keys_set_known:nV {fontspec-opentype} \l__fontspec_keys_leftover_clist } { \bool_if:nT { \l__fontspec_atsui_bool || \l__fontspec_graphite_bool } - { \keys_set:nV {fontspec-aat} \l__fontspec_keys_leftover_clist } + { \keys_set_known:nV {fontspec-aat} \l__fontspec_keys_leftover_clist } } \tl_if_empty:NF \l__fontspec_mapping_tl @@ -1477,6 +1507,7 @@ { \tl_set:Nx #1 {#2} \tl_replace_all:Nnx #1 {*} {\l__fontspec_basename_tl} + \__fontspec_process_ext:N #1 } \cs_new:Nn \__fontspec_add_nfssfont:nnnn { @@ -1860,7 +1891,7 @@ } } -%%^^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 { @@ -1945,7 +1976,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: } @@ -2168,7 +2199,7 @@ \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> \cs_new:Nn \__fontspec_define_aat_feature_group:n @@ -2230,7 +2261,7 @@ } } -%%^^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 { @@ -2259,15 +2290,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: \keys_set:nn {fontspec-renderer} {Renderer=OpenType} } \aliasfontfeature{Path}{ExternalLocation} @@ -2285,10 +2309,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} @@ -2819,7 +2840,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$ } @@ -2847,10 +2868,9 @@ \__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 + +smcp,+pcap,+c2sc,+c2pc,+unic,+rand, + -smcp,-pcap,-c2sc,-c2pc,-unic,-rand } -\__fontspec_define_opentype_onoffreset:nnnnn {Letters} {Uppercase} {case} {case} {} \__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} @@ -3109,28 +3129,46 @@ \clist_map_break: } } - \bool_if:NF \l__fontspec_scriptlang_exist_bool { - \bool_if:nF { \str_if_eq_p:ee {#1} {CustomDefault} } - { - \tl_clear:N \l__fontspec_script_name_tl - \__fontspec_warning:nxx {no-script} {\l_fontspec_fontname_tl} {#1} - } - - \bool_if:nF + \__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 { - \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: , @@ -3155,7 +3193,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 } + } } } } @@ -3188,7 +3233,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} @@ -3221,7 +3266,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} @@ -3361,7 +3405,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} @@ -3747,7 +3791,7 @@ \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> \__fontspec_define_aat_feature_group:n {Ligatures} @@ -3888,7 +3932,7 @@ \__fontspec_define_aat_feature:nnnn {Annotation} {BlackRoundSquare} {24} {10} \__fontspec_define_aat_feature:nnnn {Annotation} {DoubleCircle} {24} {11} -%%^^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 } { @@ -3970,7 +4014,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 } @@ -4109,7 +4153,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} @@ -4117,7 +4161,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} @@ -4189,11 +4233,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} diff --git a/Master/texmf-dist/tex/latex/fontspec/fontspec.lua b/Master/texmf-dist/tex/latex/fontspec/fontspec.lua index 3857a71e230..24051a5a4b1 100644 --- a/Master/texmf-dist/tex/latex/fontspec/fontspec.lua +++ b/Master/texmf-dist/tex/latex/fontspec/fontspec.lua @@ -7,7 +7,7 @@ -- fontspec.dtx (with options: `lua') -- fontspec-lua.dtx (with options: `lua') -- ------------------------------------------------ --- 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 @@ -16,22 +16,22 @@ -- 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 fontspec = fontspec or {} local fontspec = fontspec fontspec.module = { name = "fontspec", - version = "2.9a", - date = "2024/02/13", + version = "2.9b", + date = "2024/04/27", description = "Font selection for XeLaTeX and LuaLaTeX", author = "Khaled Hosny, Philipp Gesang, Will Robertson", copyright = "Khaled Hosny, Philipp Gesang, Will Robertson", license = "LPPL v1.3c" } --- ^^A%% fontspec-lua.dtx -- part of FONTSPEC <wspr.io/fontspec> +-- ^^A%% fontspec-lua.dtx -- part of FONTSPEC <latex3.github.io/fontspec> local err, warn, info, log = luatexbase.provides_module(fontspec.module) fontspec.log = log or (function (s) luatexbase.module_info("fontspec", s) end) fontspec.warning = warn or (function (s) luatexbase.module_warning("fontspec", s) end) diff --git a/Master/texmf-dist/tex/latex/fontspec/fontspec.sty b/Master/texmf-dist/tex/latex/fontspec/fontspec.sty index e3dedcb3283..7947399070a 100644 --- a/Master/texmf-dist/tex/latex/fontspec/fontspec.sty +++ b/Master/texmf-dist/tex/latex/fontspec/fontspec.sty @@ -10,7 +10,7 @@ %% fontspec-code-opening.dtx (with options: `options') %% fontspec-code-load.dtx (with options: `fontspec,load') %% ------------------------------------------------ -%% 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 @@ -19,18 +19,18 @@ %% 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}% - {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-vars.dtx -- part of FONTSPEC <wspr.io/fontspec> +%%^^A%% fontspec-code-vars.dtx -- part of FONTSPEC <latex3.github.io/fontspec> \bool_new:N \g__fontspec_cfg_bool \bool_new:N \g__fontspec_math_bool -%%^^A%% fontspec-code-msg.dtx -- part of FONTSPEC <wspr.io/fontspec> +%%^^A%% fontspec-code-msg.dtx -- part of FONTSPEC <latex3.github.io/fontspec> \msg_new:nnn {fontspec} {cm-default-obsolete} { The~"cm-default"~package~option~is~obsolete. @@ -40,12 +40,13 @@ The~"#1"~package~option~is~obsolete.~TU~is~the~default~encoding. } -%%^^A%% fontspec-code-opening.dtx -- part of FONTSPEC <wspr.io/fontspec> +%%^^A%% fontspec-code-opening.dtx -- part of FONTSPEC <latex3.github.io/fontspec> \DeclareKeys { cm-default .code:n = { \msg_warning:nn {fontspec} {cm-default-obsolete} } ,math .bool_gset:N = \g__fontspec_math_bool ,math .usage:n = preamble + ,math / unknown .code:n = { } % \msg_warning:nnn {fontspec} {math-opt-unknown} {#1} ,no-math .bool_gset_inverse:N = \g__fontspec_math_bool ,no-math .usage:n = preamble ,config .bool_gset:N = \g__fontspec_cfg_bool @@ -70,10 +71,15 @@ \msg_redirect_module:nnn { fontspec } { info } { info } } } +\msg_new:nnn {fontspec} {math-opt-unknown} + { + The~ global~ option~ 'math=#1'~ is~ not~ recognised.~ It~ will~ be~ ignored. + } + \SetKeys{config,math} \ProcessKeyOptions -%%^^A%% fontspec-code-load.dtx -- part of FONTSPEC <wspr.io/fontspec> +%%^^A%% fontspec-code-load.dtx -- part of FONTSPEC <latex3.github.io/fontspec> \sys_if_engine_luatex:T { \RequirePackage{luaotfload} |