summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2024-05-08 19:33:43 +0000
committerKarl Berry <karl@freefriends.org>2024-05-08 19:33:43 +0000
commita2b1e144f8c72c4e95ca6576f4e8e73e5b51085b (patch)
treedeac848028d3986031f4e6bb396b05b9fb90d678
parent42a2e6123235230d846115088015ce249c8aa3c5 (diff)
fontspec (8may24)
git-svn-id: svn://tug.org/texlive/trunk@71210 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/fontspec/CHANGES.md16
-rw-r--r--Master/texmf-dist/doc/latex/fontspec/README.md31
-rw-r--r--Master/texmf-dist/doc/latex/fontspec/fontspec-code.pdfbin706350 -> 704184 bytes
-rw-r--r--Master/texmf-dist/doc/latex/fontspec/fontspec.pdfbin496854 -> 496860 bytes
-rw-r--r--Master/texmf-dist/source/latex/fontspec/fontspec-code-api.dtx1
-rw-r--r--Master/texmf-dist/source/latex/fontspec/fontspec-code-internal.dtx26
-rw-r--r--Master/texmf-dist/source/latex/fontspec/fontspec-code-keyval.dtx4
-rw-r--r--Master/texmf-dist/source/latex/fontspec/fontspec-code-msg.dtx11
-rw-r--r--Master/texmf-dist/source/latex/fontspec/fontspec-code-opentype.dtx15
-rw-r--r--Master/texmf-dist/source/latex/fontspec/fontspec-code-vars.dtx1
-rw-r--r--Master/texmf-dist/source/latex/fontspec/fontspec.dtx6
-rw-r--r--Master/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty48
-rw-r--r--Master/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty52
-rw-r--r--Master/texmf-dist/tex/latex/fontspec/fontspec.lua4
-rw-r--r--Master/texmf-dist/tex/latex/fontspec/fontspec.sty2
15 files changed, 95 insertions, 122 deletions
diff --git a/Master/texmf-dist/doc/latex/fontspec/CHANGES.md b/Master/texmf-dist/doc/latex/fontspec/CHANGES.md
index 7dab8151f3c..47c3b7128e2 100644
--- a/Master/texmf-dist/doc/latex/fontspec/CHANGES.md
+++ b/Master/texmf-dist/doc/latex/fontspec/CHANGES.md
@@ -1,6 +1,22 @@
Change history
==============
+## v2.9d (2024/05/07)
+
+ * Now that `Script` and `Language` are retained even if the font doesn't support them,
+ we can no longer check for font feature existence before applying the OpenType tags.
+ This release removes checking. (#515)
+
+ * Fix bug/regression in loading font families constructed from fonts with different file
+ extensions; e.g.: (#514)
+
+ \setmainfont{MyLato}
+ [
+ UprightFont = Lato-Regular.ttf ,
+ BoldFont = FiraSans-Bold.otf ,
+ ]
+
+
## v2.9c (2024/05/03)
* Fix copy/paste regression bug with the `Language` feature (primarily exposed through `babel` package). (#513)
diff --git a/Master/texmf-dist/doc/latex/fontspec/README.md b/Master/texmf-dist/doc/latex/fontspec/README.md
index 6624bcca6b3..0f66c469019 100644
--- a/Master/texmf-dist/doc/latex/fontspec/README.md
+++ b/Master/texmf-dist/doc/latex/fontspec/README.md
@@ -11,7 +11,27 @@ available with OpenType (and other) fonts, including upper and lower case number
proportional and monospaced numbers, swash letters, ligature control, and many
many others.
-See the documentation `fontspec.pdf` for full information.
+
+Documentation
+-------------
+
+See the PDF documentation for complete user information (including examples):
+
+ texdoc fontspec
+
+Additional online documentation is provided at:
+ <http://latex3.github.io/fontspec/>
+
+The package code is documented in typeset PDF form via
+
+ texdoc fontspec-code
+
+Licence
+-------
+
+This package is distributed under the terms and conditions of the LaTeX Project Public License (LPPL), version 1.3a or higher.
+
+The maintainer of the package is Will Robertson and the LaTeX3 project.
Summary of user commands
@@ -50,9 +70,6 @@ To add features to the font family currently in use:
Package details
---------------
-Repository documentation is provided at:
- <http://latex3.github.io/fontspec/>
-
Release versions of fontspec are available from CTAN:
<http://www.ctan.org/pkg/fontspec>
@@ -70,7 +87,11 @@ package by running
If you wish to manually download the latest release version from CTAN,
get the pre-built TDS package and extract it into your local texmf tree:
- http://mirror.ctan.org/install/macros/latex/contrib/fontspec.tds.zip
+ http://mirror.ctan.org/install/macros/unicodetex/latex/fontspec.tds.zip
+
+Historical releases are available via GitHub:
+ <https://github.com/latex3/fontspec/releases>
+ <https://github.com/latex3/fontspec/tags>
If you wish to use the latest development version from Github,
use git to obtain the latest repository code with
diff --git a/Master/texmf-dist/doc/latex/fontspec/fontspec-code.pdf b/Master/texmf-dist/doc/latex/fontspec/fontspec-code.pdf
index 576b93ee4ca..cf04b4a6a2a 100644
--- a/Master/texmf-dist/doc/latex/fontspec/fontspec-code.pdf
+++ b/Master/texmf-dist/doc/latex/fontspec/fontspec-code.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/fontspec/fontspec.pdf b/Master/texmf-dist/doc/latex/fontspec/fontspec.pdf
index 0ceac30d40a..643375da1ea 100644
--- a/Master/texmf-dist/doc/latex/fontspec/fontspec.pdf
+++ b/Master/texmf-dist/doc/latex/fontspec/fontspec.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/fontspec/fontspec-code-api.dtx b/Master/texmf-dist/source/latex/fontspec/fontspec-code-api.dtx
index be63bcc0566..2b210124725 100644
--- a/Master/texmf-dist/source/latex/fontspec/fontspec-code-api.dtx
+++ b/Master/texmf-dist/source/latex/fontspec/fontspec-code-api.dtx
@@ -388,6 +388,7 @@
\@@_tl_new_if_free:N #1
#4 #1 \l_fontspec_family_tl
\tl_set:Nn \l_@@_fontface_cs_tl {\l_fontspec_font} % reset
+%<debug>\typeout{::::::~END~fontspec_set_family:Nnn}
}
\cs_new:Nn \fontspec_gset_family:Nnn { \@@_set_family:NnnN #1 {#2} {#3} \tl_gset_eq:NN }
\cs_new:Nn \fontspec_set_family:Nnn { \@@_set_family:NnnN #1 {#2} {#3} \tl_set_eq:NN }
diff --git a/Master/texmf-dist/source/latex/fontspec/fontspec-code-internal.dtx b/Master/texmf-dist/source/latex/fontspec/fontspec-code-internal.dtx
index 16e2922b396..fd52183c183 100644
--- a/Master/texmf-dist/source/latex/fontspec/fontspec-code-internal.dtx
+++ b/Master/texmf-dist/source/latex/fontspec/fontspec-code-internal.dtx
@@ -37,13 +37,11 @@
\@@_font_suppress_not_found_error:
\@@_init:
- \@@_sanitise_fontname:Nn \l_fontspec_fontname_tl {#2}
- \@@_sanitise_fontname:Nn \l_@@_fontname_up_tl {#2}
- \@@_sanitise_fontname:Nn \l_@@_basename_tl {#2}
+ \@@_sanitise_fontname:Nn \l_fontspec_fontname_tl {#2}
+ \tl_set_eq:NN \l_@@_fontname_up_tl \l_fontspec_fontname_tl
+ \tl_set_eq:NN \l_@@_basename_tl \l_fontspec_fontname_tl
%<debug>\typeout{^^J::::::::::::::: l_fontspec_fontname_tl~ =~ \l_fontspec_fontname_tl }
-%<debug>\typeout{::::::::::::::: _fontname_up_tl~ =~ \l_@@_fontname_up_tl }
-%<debug>\typeout{::::::::::::::: l_@@_extension_tl~ =~ \l_@@_extension_tl }
\@@_if_detect_external:nT {#2}
{ \keys_set:nn {fontspec-preparse-external} {Path} }
@@ -80,6 +78,7 @@
\group_end:
\tl_set_eq:NN \l_fontspec_family_tl \g_@@_nfss_family_tl
+%<debug>\typeout{::::::::::::::::::::::::::::::}
}
% \end{macrocode}
% \end{macro}
@@ -107,6 +106,7 @@
{
\tl_if_in:NnT #1 {##1}
{
+%<debug> \typeout{::@@_process_ext:N~ --~ Removing~ EXT:~ ##1}
\tl_remove_once:Nn #1 {##1}
\tl_set:Nn \l_@@_extension_tl {##1}
\@@_font_is_file:
@@ -143,9 +143,9 @@
{
\str_if_eq:eeT { \str_lowercase:f {\l_@@_extension_tl} } {.ttc}
{
- \@@_sanitise_fontname:Nn \l_@@_fontname_it_tl {#1}
- \@@_sanitise_fontname:Nn \l_@@_fontname_bf_tl {#1}
- \@@_sanitise_fontname:Nn \l_@@_fontname_bfit_tl {#1}
+ \tl_set_eq:NN \l_@@_fontname_it_tl \l_fontspec_fontname_tl
+ \tl_set_eq:NN \l_@@_fontname_bf_tl \l_fontspec_fontname_tl
+ \tl_set_eq:NN \l_@@_fontname_bfit_tl \l_fontspec_fontname_tl
}
}
% \end{macrocode}
@@ -253,7 +253,8 @@
{
%<debug>\typeout{:: @@_load_font}
-%<debug>\typeout{Set~ base~ font~ for~ preliminary~ analysis: \@@_construct_font_call:nn { \l_@@_fontname_up_tl } {} }
+ \@@_sanitise_fontname:Nn \l_@@_fontname_up_tl { \l_@@_fontname_up_tl }
+%<debug>\typeout{Set~ base~ font~ for~ preliminary~ analysis:~ "\l_@@_fontname_up_tl"~ with~ features~ "\l_@@_pre_feat_sclist" }
\@@_primitive_font_set:NnnF \l_@@_test_font
{ \@@_construct_font_call:nn { \l_@@_fontname_up_tl } { \l_@@_pre_feat_sclist } }
{ \f@size pt - 2sp }
@@ -543,6 +544,7 @@
% \begin{macrocode}
\cs_new:Nn \@@_set_faces_aux:nnnnn
{
+%<debug> \typeout{:: @@_set_faces_aux:nnnnn \exp_not:n { {#1} {#2} {#3} {#4} {#5} } }
\fontspec_complete_fontname:Nn \l_@@_curr_fontname_tl {#3}
\@@_make_font_shapes:Nnnnn \l_@@_curr_fontname_tl {#1} {#2} {#4} {#5}
}
@@ -557,8 +559,10 @@
\cs_new:Nn \fontspec_complete_fontname:Nn
{
\tl_set:Nx #1 {#2}
- \tl_replace_all:Nne #1 {*} {\l_@@_basename_tl}
- \@@_process_ext:N #1
+ \tl_if_in:NnF \l_fontspec_fontname_tl {*}
+ {
+ \tl_replace_all:Nne #1 {*} {\l_@@_basename_tl}
+ }
}
% \end{macrocode}
% \end{macro}
diff --git a/Master/texmf-dist/source/latex/fontspec/fontspec-code-keyval.dtx b/Master/texmf-dist/source/latex/fontspec/fontspec-code-keyval.dtx
index a844b0e0560..bd83f8556ca 100644
--- a/Master/texmf-dist/source/latex/fontspec/fontspec-code-keyval.dtx
+++ b/Master/texmf-dist/source/latex/fontspec/fontspec-code-keyval.dtx
@@ -173,7 +173,7 @@
% \begin{macrocode}
\@@_keys_define_code:nnn {fontspec-preparse} {Script}
{
-%<XE> \keys_set:nn {fontspec-renderer} {Renderer=OpenType}
+%<XE> \tl_if_empty:NT \l_@@_renderer_tl { \keys_set:nn {fontspec-renderer} {Renderer=OpenType} }
\tl_set:Nn \l_@@_script_name_tl {#1}
}
% \end{macrocode}
@@ -181,7 +181,7 @@
% \begin{macrocode}
\@@_keys_define_code:nnn {fontspec-preparse} {Language}
{
-%<XE> \keys_set:nn {fontspec-renderer} {Renderer=OpenType}
+%<XE> \tl_if_empty:NT \l_@@_renderer_tl { \keys_set:nn {fontspec-renderer} {Renderer=OpenType} }
\tl_set:Nn \l_@@_lang_name_tl {#1}
}
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/fontspec/fontspec-code-msg.dtx b/Master/texmf-dist/source/latex/fontspec/fontspec-code-msg.dtx
index 16b328fad3d..2904f7350e1 100644
--- a/Master/texmf-dist/source/latex/fontspec/fontspec-code-msg.dtx
+++ b/Master/texmf-dist/source/latex/fontspec/fontspec-code-msg.dtx
@@ -149,17 +149,6 @@
AAT feature '\l_keys_key_tl=\l_keys_value_tl' (#1) not available
in font '\l_fontspec_fontname_tl'.
}
-\@@_msg_new:nn {icu-feature-not-exist}
- {
- '\l_keys_key_tl=\l_keys_value_tl' feature not supported
- for OpenType font '\l_fontspec_fontname_tl'
- }
-\@@_msg_new:nn {icu-feature-not-exist-in-font}
- {
- OpenType feature '\l_keys_key_tl=\l_keys_value_tl' (#1) not available
- for font '\l_fontspec_fontname_tl'
- with script '\l_@@_script_name_tl' and language '\l_@@_lang_name_tl'.
- }
\@@_msg_new:nn {no-opticals}
{
'#1' doesn't appear to have an Optical Size axis.
diff --git a/Master/texmf-dist/source/latex/fontspec/fontspec-code-opentype.dtx b/Master/texmf-dist/source/latex/fontspec/fontspec-code-opentype.dtx
index d78e0a8be9d..dab45952c6e 100644
--- a/Master/texmf-dist/source/latex/fontspec/fontspec-code-opentype.dtx
+++ b/Master/texmf-dist/source/latex/fontspec/fontspec-code-opentype.dtx
@@ -127,21 +127,8 @@
\cs_new:Nn \@@_make_OT_feature:nnn
{
%<debug> \typeout{:: @@_make_OT_feature:nnn \exp_not:n { {#1}{#2}{#3} } }
-
- \bool_set_true:N \l_@@_proceed_bool
-
- \tl_if_empty:nF {#1}
- {
- \exp_args:No \@@_check_ot_feat:NnF \l_@@_fontface_cs_tl {#1}
- {
- \@@_warning:nx {icu-feature-not-exist-in-font} {#1}
- \bool_set_false:N \l_@@_proceed_bool
- }
- }
-
\@@_remove_clashing_featstr:x { #2 , \@@_swap_plus_minus:n {#2} , #3 }
-
- \bool_if:NT \l_@@_proceed_bool { \@@_update_featstr:n {#2} }
+ \@@_update_featstr:n {#2}
}
\cs_generate_variant:Nn \@@_make_OT_feature:nnn {xxx}
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/fontspec/fontspec-code-vars.dtx b/Master/texmf-dist/source/latex/fontspec/fontspec-code-vars.dtx
index c2be0378c5a..e0639364044 100644
--- a/Master/texmf-dist/source/latex/fontspec/fontspec-code-vars.dtx
+++ b/Master/texmf-dist/source/latex/fontspec/fontspec-code-vars.dtx
@@ -68,7 +68,6 @@
\bool_new:N \l_@@_scriptlang_exist_bool
\bool_new:N \g_@@_em_normalise_slant_bool
\bool_new:N \l_@@_external_kpse_bool
-\bool_new:N \l_@@_proceed_bool
% \end{macrocode}
%
% \begin{macro}{\l_@@_never_check_bool}
diff --git a/Master/texmf-dist/source/latex/fontspec/fontspec.dtx b/Master/texmf-dist/source/latex/fontspec/fontspec.dtx
index e3002ff5e54..ea7bbffe55e 100644
--- a/Master/texmf-dist/source/latex/fontspec/fontspec.dtx
+++ b/Master/texmf-dist/source/latex/fontspec/fontspec.dtx
@@ -70,7 +70,7 @@
\ProvidesExplFile{fontspec.dtx}
%</dtx>
%<*fontspec>
- {2024/05/03}{2.9c}{Font selection for XeLaTeX and LuaLaTeX}
+ {2024/05/07}{2.9d}{Font selection for XeLaTeX and LuaLaTeX}
%</fontspec>
% \end{macrocode}
%
@@ -89,8 +89,8 @@
%<lua>local fontspec = fontspec
%<lua>fontspec.module = {
%<lua> name = "fontspec",
-%<lua> version = "2.9c",
-%<lua> date = "2024/05/03",
+%<lua> version = "2.9d",
+%<lua> date = "2024/05/07",
%<lua> description = "Font selection for XeLaTeX and LuaLaTeX",
%<lua> author = "Khaled Hosny, Philipp Gesang, Will Robertson",
%<lua> copyright = "Khaled Hosny, Philipp Gesang, Will Robertson",
diff --git a/Master/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty b/Master/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty
index 17efa49db69..4fe9f75c91f 100644
--- a/Master/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty
+++ b/Master/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty
@@ -40,7 +40,7 @@
\RequirePackage{xparse}
\ProvidesExplPackage{fontspec-luatex}%
- {2024/05/03}{2.9c}{Font selection for XeLaTeX and LuaLaTeX}
+ {2024/05/07}{2.9d}{Font selection for XeLaTeX and LuaLaTeX}
%%^^A%% fontspec-code-load.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
%%^^A%% fontspec-code-vars.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
@@ -68,7 +68,6 @@
\bool_new:N \l__fontspec_scriptlang_exist_bool
\bool_new:N \g__fontspec_em_normalise_slant_bool
\bool_new:N \l__fontspec_external_kpse_bool
-\bool_new:N \l__fontspec_proceed_bool
\bool_new:N \l__fontspec_never_check_bool
\int_new:N \l__fontspec_script_int
\int_new:N \l__fontspec_language_int
@@ -335,17 +334,6 @@
AAT feature '\l_keys_key_tl=\l_keys_value_tl' (#1) not available
in font '\l_fontspec_fontname_tl'.
}
-\__fontspec_msg_new:nn {icu-feature-not-exist}
- {
- '\l_keys_key_tl=\l_keys_value_tl' feature not supported
- for OpenType font '\l_fontspec_fontname_tl'
- }
-\__fontspec_msg_new:nn {icu-feature-not-exist-in-font}
- {
- OpenType feature '\l_keys_key_tl=\l_keys_value_tl' (#1) not available
- for font '\l_fontspec_fontname_tl'
- with script '\l__fontspec_script_name_tl' and language '\l__fontspec_lang_name_tl'.
- }
\__fontspec_msg_new:nn {no-opticals}
{
'#1' doesn't appear to have an Optical Size axis.
@@ -1186,9 +1174,9 @@
\__fontspec_font_suppress_not_found_error:
\__fontspec_init:
- \__fontspec_sanitise_fontname:Nn \l_fontspec_fontname_tl {#2}
- \__fontspec_sanitise_fontname:Nn \l__fontspec_fontname_up_tl {#2}
- \__fontspec_sanitise_fontname:Nn \l__fontspec_basename_tl {#2}
+ \__fontspec_sanitise_fontname:Nn \l_fontspec_fontname_tl {#2}
+ \tl_set_eq:NN \l__fontspec_fontname_up_tl \l_fontspec_fontname_tl
+ \tl_set_eq:NN \l__fontspec_basename_tl \l_fontspec_fontname_tl
\__fontspec_if_detect_external:nT {#2}
@@ -1257,9 +1245,9 @@
{
\str_if_eq:eeT { \str_lowercase:f {\l__fontspec_extension_tl} } {.ttc}
{
- \__fontspec_sanitise_fontname:Nn \l__fontspec_fontname_it_tl {#1}
- \__fontspec_sanitise_fontname:Nn \l__fontspec_fontname_bf_tl {#1}
- \__fontspec_sanitise_fontname:Nn \l__fontspec_fontname_bfit_tl {#1}
+ \tl_set_eq:NN \l__fontspec_fontname_it_tl \l_fontspec_fontname_tl
+ \tl_set_eq:NN \l__fontspec_fontname_bf_tl \l_fontspec_fontname_tl
+ \tl_set_eq:NN \l__fontspec_fontname_bfit_tl \l_fontspec_fontname_tl
}
}
\cs_new:Nn \__fontspec_load_external_fontoptions:N
@@ -1321,6 +1309,7 @@
\cs_new:Nn \__fontspec_load_font:
{
+ \__fontspec_sanitise_fontname:Nn \l__fontspec_fontname_up_tl { \l__fontspec_fontname_up_tl }
\__fontspec_primitive_font_set:NnnF \l__fontspec_test_font
{ \__fontspec_construct_font_call:nn { \l__fontspec_fontname_up_tl } { \l__fontspec_pre_feat_sclist } }
{ \f@size pt - 2sp }
@@ -1492,8 +1481,10 @@
\cs_new:Nn \fontspec_complete_fontname:Nn
{
\tl_set:Nx #1 {#2}
- \tl_replace_all:Nne #1 {*} {\l__fontspec_basename_tl}
- \__fontspec_process_ext:N #1
+ \tl_if_in:NnF \l_fontspec_fontname_tl {*}
+ {
+ \tl_replace_all:Nne #1 {*} {\l__fontspec_basename_tl}
+ }
}
\cs_new:Nn \__fontspec_add_nfssfont:nnnn
{
@@ -1903,21 +1894,8 @@
}
\cs_new:Nn \__fontspec_make_OT_feature:nnn
{
-
- \bool_set_true:N \l__fontspec_proceed_bool
-
- \tl_if_empty:nF {#1}
- {
- \exp_args:No \__fontspec_check_ot_feat:NnF \l__fontspec_fontface_cs_tl {#1}
- {
- \__fontspec_warning:nx {icu-feature-not-exist-in-font} {#1}
- \bool_set_false:N \l__fontspec_proceed_bool
- }
- }
-
\__fontspec_remove_clashing_featstr:x { #2 , \__fontspec_swap_plus_minus:n {#2} , #3 }
-
- \bool_if:NT \l__fontspec_proceed_bool { \__fontspec_update_featstr:n {#2} }
+ \__fontspec_update_featstr:n {#2}
}
\cs_generate_variant:Nn \__fontspec_make_OT_feature:nnn {xxx}
\cs_new:Nn \__fontspec_swap_plus_minus:n { \__fontspec_swap_plus_minus_aux:Nq #1 \q_nil }
diff --git a/Master/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty b/Master/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty
index d0068bb3b76..242e8141c0e 100644
--- a/Master/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty
+++ b/Master/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty
@@ -40,7 +40,7 @@
\RequirePackage{xparse}
\ProvidesExplPackage{fontspec-xetex}%
- {2024/05/03}{2.9c}{Font selection for XeLaTeX and LuaLaTeX}
+ {2024/05/07}{2.9d}{Font selection for XeLaTeX and LuaLaTeX}
%%^^A%% fontspec-code-load.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
%%^^A%% fontspec-code-vars.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
@@ -68,7 +68,6 @@
\bool_new:N \l__fontspec_scriptlang_exist_bool
\bool_new:N \g__fontspec_em_normalise_slant_bool
\bool_new:N \l__fontspec_external_kpse_bool
-\bool_new:N \l__fontspec_proceed_bool
\bool_new:N \l__fontspec_never_check_bool
\int_new:N \l__fontspec_script_int
\int_new:N \l__fontspec_language_int
@@ -335,17 +334,6 @@
AAT feature '\l_keys_key_tl=\l_keys_value_tl' (#1) not available
in font '\l_fontspec_fontname_tl'.
}
-\__fontspec_msg_new:nn {icu-feature-not-exist}
- {
- '\l_keys_key_tl=\l_keys_value_tl' feature not supported
- for OpenType font '\l_fontspec_fontname_tl'
- }
-\__fontspec_msg_new:nn {icu-feature-not-exist-in-font}
- {
- OpenType feature '\l_keys_key_tl=\l_keys_value_tl' (#1) not available
- for font '\l_fontspec_fontname_tl'
- with script '\l__fontspec_script_name_tl' and language '\l__fontspec_lang_name_tl'.
- }
\__fontspec_msg_new:nn {no-opticals}
{
'#1' doesn't appear to have an Optical Size axis.
@@ -1182,9 +1170,9 @@
\__fontspec_font_suppress_not_found_error:
\__fontspec_init:
- \__fontspec_sanitise_fontname:Nn \l_fontspec_fontname_tl {#2}
- \__fontspec_sanitise_fontname:Nn \l__fontspec_fontname_up_tl {#2}
- \__fontspec_sanitise_fontname:Nn \l__fontspec_basename_tl {#2}
+ \__fontspec_sanitise_fontname:Nn \l_fontspec_fontname_tl {#2}
+ \tl_set_eq:NN \l__fontspec_fontname_up_tl \l_fontspec_fontname_tl
+ \tl_set_eq:NN \l__fontspec_basename_tl \l_fontspec_fontname_tl
\__fontspec_if_detect_external:nT {#2}
@@ -1253,9 +1241,9 @@
{
\str_if_eq:eeT { \str_lowercase:f {\l__fontspec_extension_tl} } {.ttc}
{
- \__fontspec_sanitise_fontname:Nn \l__fontspec_fontname_it_tl {#1}
- \__fontspec_sanitise_fontname:Nn \l__fontspec_fontname_bf_tl {#1}
- \__fontspec_sanitise_fontname:Nn \l__fontspec_fontname_bfit_tl {#1}
+ \tl_set_eq:NN \l__fontspec_fontname_it_tl \l_fontspec_fontname_tl
+ \tl_set_eq:NN \l__fontspec_fontname_bf_tl \l_fontspec_fontname_tl
+ \tl_set_eq:NN \l__fontspec_fontname_bfit_tl \l_fontspec_fontname_tl
}
}
\cs_new:Nn \__fontspec_load_external_fontoptions:N
@@ -1317,6 +1305,7 @@
\cs_new:Nn \__fontspec_load_font:
{
+ \__fontspec_sanitise_fontname:Nn \l__fontspec_fontname_up_tl { \l__fontspec_fontname_up_tl }
\__fontspec_primitive_font_set:NnnF \l__fontspec_test_font
{ \__fontspec_construct_font_call:nn { \l__fontspec_fontname_up_tl } { \l__fontspec_pre_feat_sclist } }
{ \f@size pt - 2sp }
@@ -1495,8 +1484,10 @@
\cs_new:Nn \fontspec_complete_fontname:Nn
{
\tl_set:Nx #1 {#2}
- \tl_replace_all:Nne #1 {*} {\l__fontspec_basename_tl}
- \__fontspec_process_ext:N #1
+ \tl_if_in:NnF \l_fontspec_fontname_tl {*}
+ {
+ \tl_replace_all:Nne #1 {*} {\l__fontspec_basename_tl}
+ }
}
\cs_new:Nn \__fontspec_add_nfssfont:nnnn
{
@@ -1945,21 +1936,8 @@
}
\cs_new:Nn \__fontspec_make_OT_feature:nnn
{
-
- \bool_set_true:N \l__fontspec_proceed_bool
-
- \tl_if_empty:nF {#1}
- {
- \exp_args:No \__fontspec_check_ot_feat:NnF \l__fontspec_fontface_cs_tl {#1}
- {
- \__fontspec_warning:nx {icu-feature-not-exist-in-font} {#1}
- \bool_set_false:N \l__fontspec_proceed_bool
- }
- }
-
\__fontspec_remove_clashing_featstr:x { #2 , \__fontspec_swap_plus_minus:n {#2} , #3 }
-
- \bool_if:NT \l__fontspec_proceed_bool { \__fontspec_update_featstr:n {#2} }
+ \__fontspec_update_featstr:n {#2}
}
\cs_generate_variant:Nn \__fontspec_make_OT_feature:nnn {xxx}
\cs_new:Nn \__fontspec_swap_plus_minus:n { \__fontspec_swap_plus_minus_aux:Nq #1 \q_nil }
@@ -2321,12 +2299,12 @@
}
\__fontspec_keys_define_code:nnn {fontspec-preparse} {Script}
{
- \keys_set:nn {fontspec-renderer} {Renderer=OpenType}
+ \tl_if_empty:NT \l__fontspec_renderer_tl { \keys_set:nn {fontspec-renderer} {Renderer=OpenType} }
\tl_set:Nn \l__fontspec_script_name_tl {#1}
}
\__fontspec_keys_define_code:nnn {fontspec-preparse} {Language}
{
- \keys_set:nn {fontspec-renderer} {Renderer=OpenType}
+ \tl_if_empty:NT \l__fontspec_renderer_tl { \keys_set:nn {fontspec-renderer} {Renderer=OpenType} }
\tl_set:Nn \l__fontspec_lang_name_tl {#1}
}
\__fontspec_keys_define_code:nnn {fontspec-preparse} {FontIndex}
diff --git a/Master/texmf-dist/tex/latex/fontspec/fontspec.lua b/Master/texmf-dist/tex/latex/fontspec/fontspec.lua
index f5507973c77..c889bc65b2c 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.9c",
- date = "2024/05/03",
+ version = "2.9d",
+ date = "2024/05/07",
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 ca1d17e2165..b0c70f2b249 100644
--- a/Master/texmf-dist/tex/latex/fontspec/fontspec.sty
+++ b/Master/texmf-dist/tex/latex/fontspec/fontspec.sty
@@ -24,7 +24,7 @@
\RequirePackage{xparse}
\ProvidesExplPackage{fontspec}%
- {2024/05/03}{2.9c}{Font selection for XeLaTeX and LuaLaTeX}
+ {2024/05/07}{2.9d}{Font selection for XeLaTeX and LuaLaTeX}
%%^^A%% fontspec-code-vars.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
\bool_new:N \g__fontspec_cfg_bool