summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-01-15 21:40:03 +0000
committerKarl Berry <karl@freefriends.org>2019-01-15 21:40:03 +0000
commitda62395886e9631f8639036d64e5164caa9f867b (patch)
tree58dc24eac9ef05d24bcf9579969a97e6aefe6007
parentcf124b87971fce95c96c1b89af5157bc4b32881c (diff)
fontspec (15jan19)
git-svn-id: svn://tug.org/texlive/trunk@49718 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/fontspec/CHANGES.md5
-rw-r--r--Master/texmf-dist/doc/latex/fontspec/fontspec-code.pdfbin622215 -> 621585 bytes
-rw-r--r--Master/texmf-dist/doc/latex/fontspec/fontspec.pdfbin685998 -> 686001 bytes
-rw-r--r--Master/texmf-dist/source/latex/fontspec/fontspec-code-feat-opentype.dtx125
-rw-r--r--Master/texmf-dist/source/latex/fontspec/fontspec-code-internal.dtx7
-rw-r--r--Master/texmf-dist/source/latex/fontspec/fontspec-code-lang.dtx1
-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.dtx2
-rw-r--r--Master/texmf-dist/source/latex/fontspec/fontspec-code-vars.dtx2
-rw-r--r--Master/texmf-dist/source/latex/fontspec/fontspec.dtx6
-rw-r--r--Master/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty135
-rw-r--r--Master/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty140
-rw-r--r--Master/texmf-dist/tex/latex/fontspec/fontspec.lua4
-rw-r--r--Master/texmf-dist/tex/latex/fontspec/fontspec.sty2
14 files changed, 198 insertions, 242 deletions
diff --git a/Master/texmf-dist/doc/latex/fontspec/CHANGES.md b/Master/texmf-dist/doc/latex/fontspec/CHANGES.md
index 74daa74118f..3d07721fa37 100644
--- a/Master/texmf-dist/doc/latex/fontspec/CHANGES.md
+++ b/Master/texmf-dist/doc/latex/fontspec/CHANGES.md
@@ -1,6 +1,11 @@
Change history
==============
+## v2.6k (2019/01/16)
+
+ * Fix crash when loading fonts that are missing a requested script.
+
+
## v2.6j (2019/01/10)
* Re-sync with `expl3` for deprecated commands.
diff --git a/Master/texmf-dist/doc/latex/fontspec/fontspec-code.pdf b/Master/texmf-dist/doc/latex/fontspec/fontspec-code.pdf
index 392eb68a08f..bbb8f4f2e79 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 befb4bbce75..a05c93ef6ba 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-feat-opentype.dtx b/Master/texmf-dist/source/latex/fontspec/fontspec-code-feat-opentype.dtx
index 26a75f91166..843e4587740 100644
--- a/Master/texmf-dist/source/latex/fontspec/fontspec-code-feat-opentype.dtx
+++ b/Master/texmf-dist/source/latex/fontspec/fontspec-code-feat-opentype.dtx
@@ -423,37 +423,39 @@
\cs_new:Nn \fontspec_new_script:nn
{
\keys_define:nn { fontspec-opentype } { Script / #1 .code:n =
- \bool_set_false:N \l_@@_script_exist_bool
- \clist_map_inline:nn {#2}
- {
- \@@_check_script:NnTF \l_fontspec_font {####1}
- {
- \tl_set:Nn \l_fontspec_script_tl {####1}
- \int_set:Nn \l_@@_script_int {\l_@@_strnum_int}
- \bool_set_true:N \l_@@_script_exist_bool
- \tl_gset:Nx \g_@@_single_feat_tl { script=####1 }
- \clist_map_break:
- }
- { }
- }
- \bool_if:NF \l_@@_script_exist_bool
- {
- \str_if_eq:nnTF {#1} {Latin}
- {
- \@@_warning:nx {script-not-exist} {#1}
- }
- {
- \@@_check_script:NnTF \l_fontspec_font {latn}
- {
- \@@_warning:nx {script-not-exist-latn} {#1}
- \tl_set:Nn \l_fontspec_script_tl {latn}
- \int_set:Nn \l_@@_script_int {\l_@@_strnum_int}
- }
- {
- \@@_warning:nx {script-not-exist} {#1}
- }
- }
- }
+ {
+ \bool_set_false:N \l_@@_scriptlang_exist_bool
+ \clist_map_inline:nn {#2}
+ {
+ \@@_check_script:NnT \l_fontspec_font {####1}
+ {
+ \tl_set:Nn \l_fontspec_script_tl {####1}
+ \int_set:Nn \l_@@_script_int {\l_@@_strnum_int}
+ \bool_set_true:N \l_@@_scriptlang_exist_bool
+ \tl_gset:Nx \g_@@_single_feat_tl { script=####1 }
+ \clist_map_break:
+ }
+ }
+ \bool_if:NF \l_@@_scriptlang_exist_bool
+ {
+ \str_if_eq:eeTF {#1} {Latin}
+ {
+ \@@_warning:nx {script-not-exist} {#1}
+ }
+ {
+ \@@_check_script:NnTF \l_fontspec_font {latn}
+ {
+ \@@_warning:nx {script-not-exist-latn} {#1}
+ \tl_set:Nn \l_fontspec_script_tl {latn}
+ \int_set:Nn \l_@@_script_int {\l_@@_strnum_int}
+ }
+ {
+ \@@_warning:nx {script-not-exist} {#1}
+ \keys_set:nn {fontspec-opentype} { Script = Default }
+ }
+ }
+ }
+ }
}
}
% \end{macrocode}
@@ -462,28 +464,38 @@
% \subsection{Language}
%
% \begin{macrocode}
-\keys_define:nn { fontspec-opentype } { Language .choice: }
+\keys_define:nn {fontspec-opentype} { Language .choice: }
\cs_new:Nn \fontspec_new_lang:nn
{
\keys_define:nn { fontspec-opentype } { Language / #1 .code:n =
- \@@_check_lang:NnTF \l_fontspec_font {#2}
{
- \tl_set:Nn \l_fontspec_lang_tl {#2}
- \int_set:Nn \l_@@_language_int {\l_@@_strnum_int}
- \tl_gset:Nx \g_@@_single_feat_tl { language=#2 }
- }
- {
- \@@_warning:nx {language-not-exist} {#1}
- \keys_set:nn { fontspec-opentype } { Language = Default }
+ \bool_set_false:N \l_@@_scriptlang_exist_bool
+ \clist_map_inline:nn {#2}
+ {
+ \@@_check_lang:NnTF \l_fontspec_font {#2}
+ {
+ \tl_set:Nn \l_fontspec_lang_tl {#2}
+ \int_set:Nn \l_@@_language_int {\l_@@_strnum_int}
+ \tl_gset:Nx \g_@@_single_feat_tl { language=#2 }
+ \bool_set_true:N \l_@@_scriptlang_exist_bool
+ \clist_map_break:
+ }
+ }
+ \bool_if:NF \l_@@_scriptlang_exist_bool
+ {
+ \@@_warning:nx {language-not-exist} {#1}
+ \keys_set:nn {fontspec-opentype} { Language = Default }
+ }
}
}
}
% \end{macrocode}
%
% \paragraph{Default}
-%
+% I can't remember why this has to be special-cased. From memory, the OpenType default
+% language is hardcoded to have a zero value, although this might be some \XeTeX-specific thing.
% \begin{macrocode}
-\@@_keys_define_code:nnn {fontspec-opentype}{ Language / Default }
+\@@_keys_define_code:nnn {fontspec-opentype} { Language / Default }
{
\tl_set:Nn \l_fontspec_lang_tl {DFLT}
\int_zero:N \l_@@_language_int
@@ -491,35 +503,6 @@
}
% \end{macrocode}
%
-% \paragraph{Turkish} Turns out that many fonts use `TUR' as their Turkish language tag rather than the specified `TRK'. So we check for both:
-% \begin{macrocode}
-\keys_define:nn {fontspec-opentype}
- {
- Language / Turkish .code:n =
- {
- \@@_check_lang:NnTF \l_fontspec_font {TRK}
- {
- \int_set:Nn \l_@@_language_int {\l_@@_strnum_int}
- \tl_set:Nn \l_fontspec_lang_tl {TRK}
- \tl_gset:Nn \g_@@_single_feat_tl { language=TRK }
- }
- {
- \@@_check_lang:NnTF \l_fontspec_font {TUR}
- {
- \int_set:Nn \l_@@_language_int {\l_@@_strnum_int}
- \tl_set:Nn \l_fontspec_lang_tl {TUR}
- \tl_gset:Nn \g_@@_single_feat_tl { language=TUR }
- }
- {
- \@@_warning:nx {language-not-exist} {Turkish}
- \keys_set:nn {fontspec-opentype} {Language=Default}
- }
- }
- }
- }
-% \end{macrocode}
-% TODO: generalise the above
-%
%
% \section{Backwards compatibility}
%
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 a8d8c49763c..da2374cde13 100644
--- a/Master/texmf-dist/source/latex/fontspec/fontspec-code-internal.dtx
+++ b/Master/texmf-dist/source/latex/fontspec/fontspec-code-internal.dtx
@@ -328,9 +328,9 @@
{
\tl_set:Nn \l_@@_lang_name_tl {Default}
}
+%<debug> \typeout{:::: Script=\l_@@_script_name_tl, Language=\l_@@_lang_name_tl}
\keys_set:nx {fontspec-opentype} {Script=\l_@@_script_name_tl}
\keys_set:nx {fontspec-opentype} {Language=\l_@@_lang_name_tl}
-%<debug> \typeout{:::: Script=\l_@@_script_name_tl, Language=\l_@@_lang_name_tl}
}
}
}
@@ -1139,11 +1139,8 @@
{ \@@_error:nx {ot-tag-too-long} {#2#3#4#5#6} }
\str_if_eq:eeTF {#2#3#4#5#6} {DFLT}
+ { \int_zero:N #1 }
{
- \int_set:Nn #1 {0}
- }
- {
-
\int_set:Nn #1
{
`#2 * "1000000
diff --git a/Master/texmf-dist/source/latex/fontspec/fontspec-code-lang.dtx b/Master/texmf-dist/source/latex/fontspec/fontspec-code-lang.dtx
index adcdcb8a355..7b7acfc921a 100644
--- a/Master/texmf-dist/source/latex/fontspec/fontspec-code-lang.dtx
+++ b/Master/texmf-dist/source/latex/fontspec/fontspec-code-lang.dtx
@@ -354,6 +354,7 @@
\newfontlanguage{Thai}{THA}
\newfontlanguage{Tahitian}{THT}
\newfontlanguage{Tibetan}{TIB}
+\newfontlanguage{Turkish}{TRK,TUR}
\newfontlanguage{Turkmen}{TKM}
\newfontlanguage{Temne}{TMN}
\newfontlanguage{Tswana}{TNA}
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 64aa1b96212..42b02254808 100644
--- a/Master/texmf-dist/source/latex/fontspec/fontspec-code-msg.dtx
+++ b/Master/texmf-dist/source/latex/fontspec/fontspec-code-msg.dtx
@@ -135,14 +135,14 @@
{
OpenType tag '#1' is too long; script, language, and feature tags must be four characters or fewer.
}
-\@@_msg_new:nnn {fontspec} {script-not-exist-latn}
+\@@_msg_new:nnn {fontspec} {script-not-exist}
{
- Font '\l_fontspec_fontname_tl' does not contain script '#1'.\\
- 'Latin' script used instead.
+ Font '\l_fontspec_fontname_tl' does not contain script '#1'.
}
-\@@_msg_new:nnn {fontspec} {script-not-exist}
+\@@_msg_new:nnn {fontspec} {script-not-exist-latn}
{
Font '\l_fontspec_fontname_tl' does not contain script '#1'.
+ `Script=Latin` used instead.
}
\@@_msg_new:nnn {fontspec} {aat-feature-not-exist}
{
@@ -173,8 +173,7 @@
{
Language '#1' not available
for font '\l_fontspec_fontname_tl'
- with script '\l_@@_script_name_tl'.\\
- 'Default' language used instead.
+ with script '\l_@@_script_name_tl'.
}
\@@_msg_new:nnn {fontspec} {only-xetex-feature}
{
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 e7820d14dfb..ceda070f907 100644
--- a/Master/texmf-dist/source/latex/fontspec/fontspec-code-opentype.dtx
+++ b/Master/texmf-dist/source/latex/fontspec/fontspec-code-opentype.dtx
@@ -147,7 +147,7 @@
% font. \cmd\l_@@_script_int\ is used to store
% the number corresponding to the script tag string.
% \begin{macrocode}
-\prg_new_conditional:Nnn \@@_check_script:Nn {TF}
+\prg_new_conditional:Nnn \@@_check_script:Nn {TF,T}
{
\bool_if:NTF \l_@@_never_check_bool
{ \prg_return_true: }
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 c7ca26bb0e3..bdd970f3674 100644
--- a/Master/texmf-dist/source/latex/fontspec/fontspec-code-vars.dtx
+++ b/Master/texmf-dist/source/latex/fontspec/fontspec-code-vars.dtx
@@ -60,7 +60,7 @@
\bool_new:N \l_@@_alias_bool
\bool_new:N \l_@@_external_bool
\bool_new:N \l_@@_defining_encoding_bool
-\bool_new:N \l_@@_script_exist_bool
+\bool_new:N \l_@@_scriptlang_exist_bool
\bool_new:N \g_@@_em_normalise_slant_bool
\bool_new:N \l_@@_proceed_bool
\bool_new:N \l_@@_check_feat_bool
diff --git a/Master/texmf-dist/source/latex/fontspec/fontspec.dtx b/Master/texmf-dist/source/latex/fontspec/fontspec.dtx
index e3f4907a98c..e3c5e01bde8 100644
--- a/Master/texmf-dist/source/latex/fontspec/fontspec.dtx
+++ b/Master/texmf-dist/source/latex/fontspec/fontspec.dtx
@@ -71,7 +71,7 @@
\ProvidesExplFile{fontspec.dtx}
%</dtx>
%<*fontspec>
- {2019/01/10}{2.6j}{Font selection for XeLaTeX and LuaLaTeX}
+ {2019/01/16}{2.6k}{Font selection for XeLaTeX and LuaLaTeX}
%</fontspec>
% \end{macrocode}
%
@@ -90,8 +90,8 @@
%<lua>local fontspec = fontspec
%<lua>fontspec.module = {
%<lua> name = "fontspec",
-%<lua> version = "2.6j",
-%<lua> date = "2019/01/10",
+%<lua> version = "2.6k",
+%<lua> date = "2019/01/16",
%<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 17a012c3d66..7382cdaa732 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/01/10}{2.6j}{Font selection for XeLaTeX and LuaLaTeX}
+ {2019/01/16}{2.6k}{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>
@@ -68,7 +68,7 @@
\bool_new:N \l__fontspec_alias_bool
\bool_new:N \l__fontspec_external_bool
\bool_new:N \l__fontspec_defining_encoding_bool
-\bool_new:N \l__fontspec_script_exist_bool
+\bool_new:N \l__fontspec_scriptlang_exist_bool
\bool_new:N \g__fontspec_em_normalise_slant_bool
\bool_new:N \l__fontspec_proceed_bool
\bool_new:N \l__fontspec_check_feat_bool
@@ -308,14 +308,14 @@
{
OpenType tag '#1' is too long; script, language, and feature tags must be four characters or fewer.
}
-\__fontspec_msg_new:nnn {fontspec} {script-not-exist-latn}
+\__fontspec_msg_new:nnn {fontspec} {script-not-exist}
{
- Font '\l_fontspec_fontname_tl' does not contain script '#1'.\\
- 'Latin' script used instead.
+ Font '\l_fontspec_fontname_tl' does not contain script '#1'.
}
-\__fontspec_msg_new:nnn {fontspec} {script-not-exist}
+\__fontspec_msg_new:nnn {fontspec} {script-not-exist-latn}
{
Font '\l_fontspec_fontname_tl' does not contain script '#1'.
+ `Script=Latin` used instead.
}
\__fontspec_msg_new:nnn {fontspec} {aat-feature-not-exist}
{
@@ -346,8 +346,7 @@
{
Language '#1' not available
for font '\l_fontspec_fontname_tl'
- with script '\l__fontspec_script_name_tl'.\\
- 'Default' language used instead.
+ with script '\l__fontspec_script_name_tl'.
}
\__fontspec_msg_new:nnn {fontspec} {only-xetex-feature}
{
@@ -1808,7 +1807,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}
+\prg_new_conditional:Nnn \__fontspec_check_script:Nn {TF,T}
{
\bool_if:NTF \l__fontspec_never_check_bool
{ \prg_return_true: }
@@ -2754,85 +2753,72 @@
\cs_new:Nn \fontspec_new_script:nn
{
\keys_define:nn { fontspec-opentype } { Script / #1 .code:n =
- \bool_set_false:N \l__fontspec_script_exist_bool
- \clist_map_inline:nn {#2}
- {
- \__fontspec_check_script:NnTF \l_fontspec_font {####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_script_exist_bool
- \tl_gset:Nx \g__fontspec_single_feat_tl { script=####1 }
- \clist_map_break:
- }
- { }
- }
- \bool_if:NF \l__fontspec_script_exist_bool
- {
- \str_if_eq:nnTF {#1} {Latin}
- {
- \__fontspec_warning:nx {script-not-exist} {#1}
- }
- {
- \__fontspec_check_script:NnTF \l_fontspec_font {latn}
- {
- \__fontspec_warning:nx {script-not-exist-latn} {#1}
- \tl_set:Nn \l_fontspec_script_tl {latn}
- \int_set:Nn \l__fontspec_script_int {\l__fontspec_strnum_int}
- }
- {
- \__fontspec_warning:nx {script-not-exist} {#1}
- }
- }
- }
+ {
+ \bool_set_false:N \l__fontspec_scriptlang_exist_bool
+ \clist_map_inline:nn {#2}
+ {
+ \__fontspec_check_script:NnT \l_fontspec_font {####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
+ {
+ \str_if_eq:eeTF {#1} {Latin}
+ {
+ \__fontspec_warning:nx {script-not-exist} {#1}
+ }
+ {
+ \__fontspec_check_script:NnTF \l_fontspec_font {latn}
+ {
+ \__fontspec_warning:nx {script-not-exist-latn} {#1}
+ \tl_set:Nn \l_fontspec_script_tl {latn}
+ \int_set:Nn \l__fontspec_script_int {\l__fontspec_strnum_int}
+ }
+ {
+ \__fontspec_warning:nx {script-not-exist} {#1}
+ \keys_set:nn {fontspec-opentype} { Script = Default }
+ }
+ }
+ }
+ }
}
}
-\keys_define:nn { fontspec-opentype } { Language .choice: }
+\keys_define:nn {fontspec-opentype} { Language .choice: }
\cs_new:Nn \fontspec_new_lang:nn
{
\keys_define:nn { fontspec-opentype } { Language / #1 .code:n =
- \__fontspec_check_lang:NnTF \l_fontspec_font {#2}
- {
- \tl_set:Nn \l_fontspec_lang_tl {#2}
- \int_set:Nn \l__fontspec_language_int {\l__fontspec_strnum_int}
- \tl_gset:Nx \g__fontspec_single_feat_tl { language=#2 }
- }
{
- \__fontspec_warning:nx {language-not-exist} {#1}
- \keys_set:nn { fontspec-opentype } { Language = Default }
+ \bool_set_false:N \l__fontspec_scriptlang_exist_bool
+ \clist_map_inline:nn {#2}
+ {
+ \__fontspec_check_lang:NnTF \l_fontspec_font {#2}
+ {
+ \tl_set:Nn \l_fontspec_lang_tl {#2}
+ \int_set:Nn \l__fontspec_language_int {\l__fontspec_strnum_int}
+ \tl_gset:Nx \g__fontspec_single_feat_tl { language=#2 }
+ \bool_set_true:N \l__fontspec_scriptlang_exist_bool
+ \clist_map_break:
+ }
+ }
+ \bool_if:NF \l__fontspec_scriptlang_exist_bool
+ {
+ \__fontspec_warning:nx {language-not-exist} {#1}
+ \keys_set:nn {fontspec-opentype} { Language = Default }
+ }
}
}
}
-\__fontspec_keys_define_code:nnn {fontspec-opentype}{ Language / Default }
+\__fontspec_keys_define_code:nnn {fontspec-opentype} { Language / Default }
{
\tl_set:Nn \l_fontspec_lang_tl {DFLT}
\int_zero:N \l__fontspec_language_int
\tl_gset:Nn \g__fontspec_single_feat_tl { language=DFLT }
}
-\keys_define:nn {fontspec-opentype}
- {
- Language / Turkish .code:n =
- {
- \__fontspec_check_lang:NnTF \l_fontspec_font {TRK}
- {
- \int_set:Nn \l__fontspec_language_int {\l__fontspec_strnum_int}
- \tl_set:Nn \l_fontspec_lang_tl {TRK}
- \tl_gset:Nn \g__fontspec_single_feat_tl { language=TRK }
- }
- {
- \__fontspec_check_lang:NnTF \l_fontspec_font {TUR}
- {
- \int_set:Nn \l__fontspec_language_int {\l__fontspec_strnum_int}
- \tl_set:Nn \l_fontspec_lang_tl {TUR}
- \tl_gset:Nn \g__fontspec_single_feat_tl { language=TUR }
- }
- {
- \__fontspec_warning:nx {language-not-exist} {Turkish}
- \keys_set:nn {fontspec-opentype} {Language=Default}
- }
- }
- }
- }
\cs_new:Nn \__fontspec_ot_compat:nn
{
\aliasfontfeatureoption {#1} {#2Off} {No#2}
@@ -3349,6 +3335,7 @@
\newfontlanguage{Thai}{THA}
\newfontlanguage{Tahitian}{THT}
\newfontlanguage{Tibetan}{TIB}
+\newfontlanguage{Turkish}{TRK,TUR}
\newfontlanguage{Turkmen}{TKM}
\newfontlanguage{Temne}{TMN}
\newfontlanguage{Tswana}{TNA}
diff --git a/Master/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty b/Master/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty
index 2620e3def8f..c3740818680 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/01/10}{2.6j}{Font selection for XeLaTeX and LuaLaTeX}
+ {2019/01/16}{2.6k}{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>
@@ -68,7 +68,7 @@
\bool_new:N \l__fontspec_alias_bool
\bool_new:N \l__fontspec_external_bool
\bool_new:N \l__fontspec_defining_encoding_bool
-\bool_new:N \l__fontspec_script_exist_bool
+\bool_new:N \l__fontspec_scriptlang_exist_bool
\bool_new:N \g__fontspec_em_normalise_slant_bool
\bool_new:N \l__fontspec_proceed_bool
\bool_new:N \l__fontspec_check_feat_bool
@@ -308,14 +308,14 @@
{
OpenType tag '#1' is too long; script, language, and feature tags must be four characters or fewer.
}
-\__fontspec_msg_new:nnn {fontspec} {script-not-exist-latn}
+\__fontspec_msg_new:nnn {fontspec} {script-not-exist}
{
- Font '\l_fontspec_fontname_tl' does not contain script '#1'.\\
- 'Latin' script used instead.
+ Font '\l_fontspec_fontname_tl' does not contain script '#1'.
}
-\__fontspec_msg_new:nnn {fontspec} {script-not-exist}
+\__fontspec_msg_new:nnn {fontspec} {script-not-exist-latn}
{
Font '\l_fontspec_fontname_tl' does not contain script '#1'.
+ `Script=Latin` used instead.
}
\__fontspec_msg_new:nnn {fontspec} {aat-feature-not-exist}
{
@@ -346,8 +346,7 @@
{
Language '#1' not available
for font '\l_fontspec_fontname_tl'
- with script '\l__fontspec_script_name_tl'.\\
- 'Default' language used instead.
+ with script '\l__fontspec_script_name_tl'.
}
\__fontspec_msg_new:nnn {fontspec} {only-xetex-feature}
{
@@ -1757,11 +1756,8 @@
{ \__fontspec_error:nx {ot-tag-too-long} {#2#3#4#5#6} }
\str_if_eq:eeTF {#2#3#4#5#6} {DFLT}
+ { \int_zero:N #1 }
{
- \int_set:Nn #1 {0}
- }
- {
-
\int_set:Nn #1
{
`#2 * "1000000
@@ -1851,7 +1847,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}
+\prg_new_conditional:Nnn \__fontspec_check_script:Nn {TF,T}
{
\bool_if:NTF \l__fontspec_never_check_bool
{ \prg_return_true: }
@@ -2898,85 +2894,72 @@
\cs_new:Nn \fontspec_new_script:nn
{
\keys_define:nn { fontspec-opentype } { Script / #1 .code:n =
- \bool_set_false:N \l__fontspec_script_exist_bool
- \clist_map_inline:nn {#2}
- {
- \__fontspec_check_script:NnTF \l_fontspec_font {####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_script_exist_bool
- \tl_gset:Nx \g__fontspec_single_feat_tl { script=####1 }
- \clist_map_break:
- }
- { }
- }
- \bool_if:NF \l__fontspec_script_exist_bool
- {
- \str_if_eq:nnTF {#1} {Latin}
- {
- \__fontspec_warning:nx {script-not-exist} {#1}
- }
- {
- \__fontspec_check_script:NnTF \l_fontspec_font {latn}
- {
- \__fontspec_warning:nx {script-not-exist-latn} {#1}
- \tl_set:Nn \l_fontspec_script_tl {latn}
- \int_set:Nn \l__fontspec_script_int {\l__fontspec_strnum_int}
- }
- {
- \__fontspec_warning:nx {script-not-exist} {#1}
- }
- }
- }
+ {
+ \bool_set_false:N \l__fontspec_scriptlang_exist_bool
+ \clist_map_inline:nn {#2}
+ {
+ \__fontspec_check_script:NnT \l_fontspec_font {####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
+ {
+ \str_if_eq:eeTF {#1} {Latin}
+ {
+ \__fontspec_warning:nx {script-not-exist} {#1}
+ }
+ {
+ \__fontspec_check_script:NnTF \l_fontspec_font {latn}
+ {
+ \__fontspec_warning:nx {script-not-exist-latn} {#1}
+ \tl_set:Nn \l_fontspec_script_tl {latn}
+ \int_set:Nn \l__fontspec_script_int {\l__fontspec_strnum_int}
+ }
+ {
+ \__fontspec_warning:nx {script-not-exist} {#1}
+ \keys_set:nn {fontspec-opentype} { Script = Default }
+ }
+ }
+ }
+ }
}
}
-\keys_define:nn { fontspec-opentype } { Language .choice: }
+\keys_define:nn {fontspec-opentype} { Language .choice: }
\cs_new:Nn \fontspec_new_lang:nn
{
\keys_define:nn { fontspec-opentype } { Language / #1 .code:n =
- \__fontspec_check_lang:NnTF \l_fontspec_font {#2}
{
- \tl_set:Nn \l_fontspec_lang_tl {#2}
- \int_set:Nn \l__fontspec_language_int {\l__fontspec_strnum_int}
- \tl_gset:Nx \g__fontspec_single_feat_tl { language=#2 }
- }
- {
- \__fontspec_warning:nx {language-not-exist} {#1}
- \keys_set:nn { fontspec-opentype } { Language = Default }
+ \bool_set_false:N \l__fontspec_scriptlang_exist_bool
+ \clist_map_inline:nn {#2}
+ {
+ \__fontspec_check_lang:NnTF \l_fontspec_font {#2}
+ {
+ \tl_set:Nn \l_fontspec_lang_tl {#2}
+ \int_set:Nn \l__fontspec_language_int {\l__fontspec_strnum_int}
+ \tl_gset:Nx \g__fontspec_single_feat_tl { language=#2 }
+ \bool_set_true:N \l__fontspec_scriptlang_exist_bool
+ \clist_map_break:
+ }
+ }
+ \bool_if:NF \l__fontspec_scriptlang_exist_bool
+ {
+ \__fontspec_warning:nx {language-not-exist} {#1}
+ \keys_set:nn {fontspec-opentype} { Language = Default }
+ }
}
}
}
-\__fontspec_keys_define_code:nnn {fontspec-opentype}{ Language / Default }
+\__fontspec_keys_define_code:nnn {fontspec-opentype} { Language / Default }
{
\tl_set:Nn \l_fontspec_lang_tl {DFLT}
\int_zero:N \l__fontspec_language_int
\tl_gset:Nn \g__fontspec_single_feat_tl { language=DFLT }
}
-\keys_define:nn {fontspec-opentype}
- {
- Language / Turkish .code:n =
- {
- \__fontspec_check_lang:NnTF \l_fontspec_font {TRK}
- {
- \int_set:Nn \l__fontspec_language_int {\l__fontspec_strnum_int}
- \tl_set:Nn \l_fontspec_lang_tl {TRK}
- \tl_gset:Nn \g__fontspec_single_feat_tl { language=TRK }
- }
- {
- \__fontspec_check_lang:NnTF \l_fontspec_font {TUR}
- {
- \int_set:Nn \l__fontspec_language_int {\l__fontspec_strnum_int}
- \tl_set:Nn \l_fontspec_lang_tl {TUR}
- \tl_gset:Nn \g__fontspec_single_feat_tl { language=TUR }
- }
- {
- \__fontspec_warning:nx {language-not-exist} {Turkish}
- \keys_set:nn {fontspec-opentype} {Language=Default}
- }
- }
- }
- }
\cs_new:Nn \__fontspec_ot_compat:nn
{
\aliasfontfeatureoption {#1} {#2Off} {No#2}
@@ -3493,6 +3476,7 @@
\newfontlanguage{Thai}{THA}
\newfontlanguage{Tahitian}{THT}
\newfontlanguage{Tibetan}{TIB}
+\newfontlanguage{Turkish}{TRK,TUR}
\newfontlanguage{Turkmen}{TKM}
\newfontlanguage{Temne}{TMN}
\newfontlanguage{Tswana}{TNA}
diff --git a/Master/texmf-dist/tex/latex/fontspec/fontspec.lua b/Master/texmf-dist/tex/latex/fontspec/fontspec.lua
index 61da037b2bc..cd2bd1b9063 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.6j",
- date = "2019/01/10",
+ version = "2.6k",
+ date = "2019/01/16",
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 cbea552a1f3..ca07864a63a 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/01/10}{2.6j}{Font selection for XeLaTeX and LuaLaTeX}
+ {2019/01/16}{2.6k}{Font selection for XeLaTeX and LuaLaTeX}
%%^^A%% fontspec-code-load.dtx -- part of FONTSPEC <wspr.io/fontspec>
\sys_if_engine_luatex:T