summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-01-23 21:54:34 +0000
committerKarl Berry <karl@freefriends.org>2020-01-23 21:54:34 +0000
commitfb7a86c739d47ad1fe1a6e483b01b0240a83c854 (patch)
treebb844326b2fcc9773854406f9d3c12c6fb7b750b
parent5d1480d3fcb2ca5d3647a5a5a56fab1506aafa4b (diff)
fontspec (23jan20)
git-svn-id: svn://tug.org/texlive/trunk@53512 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/fontspec/CHANGES.md14
-rw-r--r--Master/texmf-dist/doc/latex/fontspec/fontspec-code.pdfbin626376 -> 627146 bytes
-rw-r--r--Master/texmf-dist/doc/latex/fontspec/fontspec.pdfbin673740 -> 610894 bytes
-rw-r--r--Master/texmf-dist/source/latex/fontspec/fontspec-code-feat-aat.dtx3
-rw-r--r--Master/texmf-dist/source/latex/fontspec/fontspec-code-feat-opentype.dtx18
-rw-r--r--Master/texmf-dist/source/latex/fontspec/fontspec-code-internal.dtx2
-rw-r--r--Master/texmf-dist/source/latex/fontspec/fontspec-code-keyval.dtx16
-rw-r--r--Master/texmf-dist/source/latex/fontspec/fontspec-code-patches.dtx30
-rw-r--r--Master/texmf-dist/source/latex/fontspec/fontspec-code-user.dtx20
-rw-r--r--Master/texmf-dist/source/latex/fontspec/fontspec-code-vars.dtx1
-rw-r--r--Master/texmf-dist/source/latex/fontspec/fontspec-doc-api.tex10
-rw-r--r--Master/texmf-dist/source/latex/fontspec/fontspec-doc-featset.tex11
-rw-r--r--Master/texmf-dist/source/latex/fontspec/fontspec-doc-fontsel.tex19
-rw-r--r--Master/texmf-dist/source/latex/fontspec/fontspec-doc-opentype.tex76
-rw-r--r--Master/texmf-dist/source/latex/fontspec/fontspec-doc-style.sty2
-rw-r--r--Master/texmf-dist/source/latex/fontspec/fontspec-doc-xetex.tex142
-rw-r--r--Master/texmf-dist/source/latex/fontspec/fontspec.dtx7
-rw-r--r--Master/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty63
-rw-r--r--Master/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty66
-rw-r--r--Master/texmf-dist/tex/latex/fontspec/fontspec.lua4
-rw-r--r--Master/texmf-dist/tex/latex/fontspec/fontspec.sty2
21 files changed, 219 insertions, 287 deletions
diff --git a/Master/texmf-dist/doc/latex/fontspec/CHANGES.md b/Master/texmf-dist/doc/latex/fontspec/CHANGES.md
index 557e22c12fe..1f6b1d96c12 100644
--- a/Master/texmf-dist/doc/latex/fontspec/CHANGES.md
+++ b/Master/texmf-dist/doc/latex/fontspec/CHANGES.md
@@ -1,6 +1,20 @@
Change history
==============
+## v2.7f (2020/01/24)
+
+ * Rename font feature `Letters=Uppercase` to `Style=Uppercase`, as this feature does
+ not generally affect the letters themselves, only symbols and accents.
+ The old name will be retained for the time being.
+ * Rename `Style=TitlingCaps` to `Style=Titling`.
+ * Track changes in both LaTeX2e and `expl3`.
+ * Fix long-standing (but never noticed?) bug that successive `\addfontfeatures`
+ would overwrite previous ones when using `UprightFeatures={...}` or similar.
+ Now the ‘`UprightFeatures`’ are accumulated.
+ * Remove AAT font examples from the documentation — support for many AAT fonts now
+ appears broken with latest versions of macOS.
+
+
## v2.7e (2020/01/09)
* Rename for `Renderer=HarfBuzz` (the old `Harfbuzz` name is kept for compatibility)
diff --git a/Master/texmf-dist/doc/latex/fontspec/fontspec-code.pdf b/Master/texmf-dist/doc/latex/fontspec/fontspec-code.pdf
index d72b67cfdb2..fca2c0af987 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 26a68d306a6..193b3234f8b 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-aat.dtx b/Master/texmf-dist/source/latex/fontspec/fontspec-code-feat-aat.dtx
index 4c60399a22e..cf9736c0356 100644
--- a/Master/texmf-dist/source/latex/fontspec/fontspec-code-feat-aat.dtx
+++ b/Master/texmf-dist/source/latex/fontspec/fontspec-code-feat-aat.dtx
@@ -170,7 +170,8 @@
\@@_define_aat_feature:nnnn {Style} {Ruby} {28} {2}
\@@_define_aat_feature:nnnn {Style} {Display} {19} {1}
\@@_define_aat_feature:nnnn {Style} {Engraved} {19} {2}
-\@@_define_aat_feature:nnnn {Style} {TitlingCaps} {19} {4}
+\@@_define_aat_feature:nnnn {Style} {Titling} {19} {4}
+\@@_define_aat_feature:nnnn {Style} {TitlingCaps} {19} {4} % backwards compat
\@@_define_aat_feature:nnnn {Style} {TallCaps} {19} {5}
% \end{macrocode}
%
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 80a85795bc0..935cf81a702 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
@@ -62,13 +62,13 @@
% \end{macrocode}
%
% \begin{macrocode}
-\@@_define_opentype_onoffreset:nnnnn {Letters} {Uppercase} {case} {case} {+smcp,+pcap,+c2sc,+c2pc,+unic,+rand}
-\@@_define_opentype_onoffreset:nnnnn {Letters} {SmallCaps} {smcp} {smcp} {+pcap,+unic,+rand}
-\@@_define_opentype_onoffreset:nnnnn {Letters} {PetiteCaps} {pcap} {pcap} {+smcp,+unic,+rand}
-\@@_define_opentype_onoffreset:nnnnn {Letters} {UppercaseSmallCaps} {c2sc} {c2sc} {+c2pc,+unic,+rand}
-\@@_define_opentype_onoffreset:nnnnn {Letters} {UppercasePetiteCaps} {c2pc} {c2pc} {+c2sc,+unic,+rand}
-\@@_define_opentype_onoffreset:nnnnn {Letters} {Unicase} {unic} {unic} {+rand}
-\@@_define_opentype_onoffreset:nnnnn {Letters} {Random} {rand} {rand} {+unic}
+\@@_define_opentype_onoffreset:nnnnn {Letters} {Uppercase} {case} {case} {}
+\@@_define_opentype_onoffreset:nnnnn {Letters} {SmallCaps} {smcp} {smcp} {+pcap,+unic}
+\@@_define_opentype_onoffreset:nnnnn {Letters} {PetiteCaps} {pcap} {pcap} {+smcp,+unic}
+\@@_define_opentype_onoffreset:nnnnn {Letters} {UppercaseSmallCaps} {c2sc} {c2sc} {+c2pc,+unic}
+\@@_define_opentype_onoffreset:nnnnn {Letters} {UppercasePetiteCaps} {c2pc} {c2pc} {+c2sc,+unic}
+\@@_define_opentype_onoffreset:nnnnn {Letters} {Unicase} {unic} {unic} {}
+\@@_define_opentype_onoffreset:nnnnn {Letters} {Random} {rand} {rand} {}
% \end{macrocode}
%
% \subsection{Numbers}
@@ -235,12 +235,14 @@
\@@_define_opentype_onoffreset:nnnnn {Style} {Swash} {swsh} {swsh} {}
\@@_define_opentype_onoffreset:nnnnn {Style} {Cursive} {swsh} {curs} {}
\@@_define_opentype_onoffreset:nnnnn {Style} {Historic} {hist} {hist} {}
-\@@_define_opentype_onoffreset:nnnnn {Style} {TitlingCaps} {titl} {titl} {}
+\@@_define_opentype_onoffreset:nnnnn {Style} {Titling} {titl} {titl} {}
+\@@_define_opentype_onoffreset:nnnnn {Style} {TitlingCaps} {titl} {titl} {} % backwards compat
\@@_define_opentype_onoffreset:nnnnn {Style} {HorizontalKana} {hkna} {hkna} {+vkna,+pkna}
\@@_define_opentype_onoffreset:nnnnn {Style} {VerticalKana} {vkna} {vkna} {+hkna,+pkna}
\@@_define_opentype_onoffreset:nnnnn {Style} {ProportionalKana} {pkna} {pkna} {+vkna,+hkna}
\@@_define_opentype_feature:nnnnn {Style} {MathScript} {ssty} {+ssty=0} {+ssty=1}
\@@_define_opentype_feature:nnnnn {Style} {MathScriptScript} {ssty} {+ssty=1} {+ssty=0}
+\@@_define_opentype_onoffreset:nnnnn {Style} {Uppercase} {case} {case} {}
% \end{macrocode}
%
% \subsection{CJK shape}
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 7e159a1e105..d86f675dfa1 100644
--- a/Master/texmf-dist/source/latex/fontspec/fontspec-code-internal.dtx
+++ b/Master/texmf-dist/source/latex/fontspec/fontspec-code-internal.dtx
@@ -128,7 +128,7 @@
% \begin{macrocode}
\cs_new:Nn \@@_init_ttc:n
{
- \str_if_eq:eeT { \str_lower_case:f {\l_@@_extension_tl} } {.ttc}
+ \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}
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 ad8e0629b58..25c71c34008 100644
--- a/Master/texmf-dist/source/latex/fontspec/fontspec-code-keyval.dtx
+++ b/Master/texmf-dist/source/latex/fontspec/fontspec-code-keyval.dtx
@@ -179,7 +179,7 @@
% \begin{macrocode}
\@@_keys_define_code:nnn {fontspec-preparse} {FontIndex}
{
- \str_if_eq:eeF { \str_lower_case:f {\l_@@_extension_tl} } {.ttc}
+ \str_if_eq:eeF { \str_lowercase:f {\l_@@_extension_tl} } {.ttc}
{ \@@_warning:n {font-index-needs-ttc} }
%<XE> \tl_set:Nn \l_@@_ttc_index_tl {:#1}
%<LU> \tl_set:Nn \l_@@_ttc_index_tl {(#1)}
@@ -304,30 +304,30 @@
% \begin{macrocode}
\@@_keys_define_code:nnn {fontspec-preparse} {UprightFeatures}
{
- \clist_set:Nn \l_@@_fontfeat_up_clist {#1}
+ \clist_put_right:Nn \l_@@_fontfeat_up_clist {#1}
}
\@@_keys_define_code:nnn {fontspec-preparse} {BoldFeatures}
{
- \clist_set:Nn \l_@@_fontfeat_bf_clist {#1}
+ \clist_put_right:Nn \l_@@_fontfeat_bf_clist {#1}
% \prop_put:NxV \l_@@_nfss_prop
% {BoldFont-\g_@@_curr_series_tl} \l_@@_curr_bfname_tl
}
\@@_keys_define_code:nnn {fontspec-preparse} {ItalicFeatures}
{
- \clist_set:Nn \l_@@_fontfeat_it_clist {#1}
+ \clist_put_right:Nn \l_@@_fontfeat_it_clist {#1}
}
\@@_keys_define_code:nnn {fontspec-preparse} {BoldItalicFeatures}
{
- \clist_set:Nn \l_@@_fontfeat_bfit_clist {#1}
+ \clist_put_right:Nn \l_@@_fontfeat_bfit_clist {#1}
}
\@@_keys_define_code:nnn {fontspec-preparse} {SlantedFeatures}
{
- \clist_set:Nn \l_@@_fontfeat_sl_clist {#1}
+ \clist_put_right:Nn \l_@@_fontfeat_sl_clist {#1}
}
\@@_keys_define_code:nnn {fontspec-preparse} {BoldSlantedFeatures}
{
- \clist_set:Nn \l_@@_fontfeat_bfsl_clist {#1}
+ \clist_put_right:Nn \l_@@_fontfeat_bfsl_clist {#1}
}
% \end{macrocode}
% Note that small caps features can vary by shape, so these in fact \emph{aren't} pre-parsed.
@@ -336,7 +336,7 @@
{
\bool_if:NF \l_@@_firsttime_bool
{
- \clist_set:Nn \l_@@_fontfeat_sc_clist {#1}
+ \clist_put_right:Nn \l_@@_fontfeat_sc_clist {#1}
}
}
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/fontspec/fontspec-code-patches.dtx b/Master/texmf-dist/source/latex/fontspec/fontspec-code-patches.dtx
deleted file mode 100644
index 31a72193e8d..00000000000
--- a/Master/texmf-dist/source/latex/fontspec/fontspec-code-patches.dtx
+++ /dev/null
@@ -1,30 +0,0 @@
-%%^^A%% fontspec-code-patches.dtx -- part of FONTSPEC <wspr.io/fontspec>
-
-% \section{Patching code}
-%
-% \begin{macrocode}
-%<*fontspec>
-% \end{macrocode}
-%
-% Nothing here right now.
-%
-% \begin{macrocode}
-%</fontspec>
-% \end{macrocode}
-
-\endinput
-
-% /©
-% ------------------------------------------------
-% The FONTSPEC package <wspr.io/fontspec>
-% ------------------------------------------------
-% Copyright 2004-2020 Will Robertson, LPPL "maintainer"
-% Copyright 2009-2015 Khaled Hosny
-% Copyright 2013 Philipp Gesang
-% Copyright 2013-2016 Joseph Wright
-% ------------------------------------------------
-% This package is free software and may be redistributed and/or modified under
-% the conditions of the LaTeX Project Public License, version 1.3c or higher
-% (your choice): <http://www.latex-project.org/lppl/>.
-% ------------------------------------------------
-% ©/
diff --git a/Master/texmf-dist/source/latex/fontspec/fontspec-code-user.dtx b/Master/texmf-dist/source/latex/fontspec/fontspec-code-user.dtx
index aa739b4dee8..e4ba3539d0b 100644
--- a/Master/texmf-dist/source/latex/fontspec/fontspec-code-user.dtx
+++ b/Master/texmf-dist/source/latex/fontspec/fontspec-code-user.dtx
@@ -32,12 +32,20 @@
% \begin{macro}{\ttfamily}
% Add an encoding switch to the three family commands.
% \begin{macrocode}
-\tl_replace_all:cnn { rmfamily~ } { \fontfamily }
- { \fontencoding \l_@@_rmfamily_encoding_tl \fontfamily }
-\tl_replace_all:cnn { sffamily~ } { \fontfamily }
- { \fontencoding \l_@@_sffamily_encoding_tl \fontfamily }
-\tl_replace_all:cnn { ttfamily~ } { \fontfamily }
- { \fontencoding \l_@@_ttfamily_encoding_tl \fontfamily }
+\cs_if_exist:NTF \@rmfamilyhook
+ {
+ \tl_put_right:Nn \@rmfamilyhook {\fontencoding \l_@@_rmfamily_encoding_tl}
+ \tl_put_right:Nn \@sffamilyhook {\fontencoding \l_@@_sffamily_encoding_tl}
+ \tl_put_right:Nn \@ttfamilyhook {\fontencoding \l_@@_ttfamily_encoding_tl}
+ }
+ {
+ \tl_replace_all:cnn { rmfamily~ } { \fontfamily }
+ { \fontencoding \l_@@_rmfamily_encoding_tl \fontfamily }
+ \tl_replace_all:cnn { sffamily~ } { \fontfamily }
+ { \fontencoding \l_@@_sffamily_encoding_tl \fontfamily }
+ \tl_replace_all:cnn { ttfamily~ } { \fontfamily }
+ { \fontencoding \l_@@_ttfamily_encoding_tl \fontfamily }
+ }
\tl_set_eq:NN \l_@@_rmfamily_encoding_tl \g_fontspec_encoding_tl
\tl_set_eq:NN \l_@@_sffamily_encoding_tl \g_fontspec_encoding_tl
\tl_set_eq:NN \l_@@_ttfamily_encoding_tl \g_fontspec_encoding_tl
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 75f316f23b0..6350d24cc51 100644
--- a/Master/texmf-dist/source/latex/fontspec/fontspec-code-vars.dtx
+++ b/Master/texmf-dist/source/latex/fontspec/fontspec-code-vars.dtx
@@ -191,6 +191,7 @@
\tl_new:N \l_@@_fontname_tl
\tl_new:N \l_@@_options_tl
\tl_new:N \l_@@_saved_fontname_tl
+\tl_new:N \l_@@_prev_unicode_name_tl
% \end{macrocode}
%
% \begin{macrocode}
diff --git a/Master/texmf-dist/source/latex/fontspec/fontspec-doc-api.tex b/Master/texmf-dist/source/latex/fontspec/fontspec-doc-api.tex
index e5f11e3503a..3ef857e9143 100644
--- a/Master/texmf-dist/source/latex/fontspec/fontspec-doc-api.tex
+++ b/Master/texmf-dist/source/latex/fontspec/fontspec-doc-api.tex
@@ -99,9 +99,13 @@ the \verb|TUR| tag will be queried and used if possible as a fallback.
\section{Going behind \pkg{fontspec}'s back}
+
Expert users may wish not to use \pkg{fontspec}'s feature handling at all,
while still taking advantage of its \LaTeX\ font selection conveniences. The
-\feat{RawFeature} font feature allows font feature selection using a literal feature selection string if you happen to have the OpenType feature tag memorised.
+\feat{RawFeature} font feature allows font feature selection using a literal feature
+selection string if you happen to have the OpenType feature tag memorised.
+More importantly, this can be used to enable features for which \pkg{fontspec}
+does not yet have a user interface to.
\begin{Xexample}{raw}{Using raw font features directly.}
\fontspec{texgyrepagella-regular.otf}[RawFeature=+smcp]
@@ -113,6 +117,10 @@ Multiple features can either be included in a single declaration:\par
\noindent or with multiple declarations:\par
{\centering|[RawFeature=+smcp, RawFeature=+onum]|\par}
+Note that there is no error-checking when using |RawFeature|. Where a \pkg{fontspec}
+interface exists to a feature it is generally better to use it. If the font lacks the feature
+or if it would clash with another feature, \pkg{fontspec} will attemmpt to warn and/or resolve the issues.
+
\section{Renaming existing features \& options}
\label{sec:aliasfontfeature}
diff --git a/Master/texmf-dist/source/latex/fontspec/fontspec-doc-featset.tex b/Master/texmf-dist/source/latex/fontspec/fontspec-doc-featset.tex
index dac017ae148..90b1019561e 100644
--- a/Master/texmf-dist/source/latex/fontspec/fontspec-doc-featset.tex
+++ b/Master/texmf-dist/source/latex/fontspec/fontspec-doc-featset.tex
@@ -93,9 +93,9 @@ Please note: At time of writing this function only supports OpenType fonts; AAT/
\cmdbox{\cmd\addfontfeatures\marg{font features}}
-This command allows font features to
+This command allows font features in an entire font family to
be changed without knowing what features are currently selected or even what
-font is being used. A good example of this could be to add a hook to all
+font family is being used. A good example of this could be to add a hook to all
tabular material to use monospaced numbers, as shown in \exref{aff}.
If you attempt to \emph{change} an already-selected feature, \pkg{fontspec} will try to de-activate any features that clash with the new ones.
\Eg, the following two invocations are mutually exclusive:
@@ -106,6 +106,13 @@ If you attempt to \emph{change} an already-selected feature, \pkg{fontspec} will
\end{Verbatim}
Since |Numbers=Lining| comes last, it takes precedence and deactivates the call |Numbers=OldStyle|.
+If you wish to apply the change to only one of the fonts of a family (say, italics only)
+you can write
+\begin{Verbatim}
+\addfontfeature{ItalicFeatures={Numbers=Lowercase}}
+\end{Verbatim}
+
+
\begin{Lexample}{aff}{A demonstration of the \cs{addfontfeatures} command.}
\fontspec{texgyreadventor-regular.otf}%
[Numbers={Proportional,OldStyle}]
diff --git a/Master/texmf-dist/source/latex/fontspec/fontspec-doc-fontsel.tex b/Master/texmf-dist/source/latex/fontspec/fontspec-doc-fontsel.tex
index 884dd409b87..85ad1ea75d0 100644
--- a/Master/texmf-dist/source/latex/fontspec/fontspec-doc-fontsel.tex
+++ b/Master/texmf-dist/source/latex/fontspec/fontspec-doc-fontsel.tex
@@ -390,6 +390,8 @@ feature is provided.
When a font family has both slanted \emph{and} italic shapes, these may be specified separately using the analogous features \feat{SlantedFont} and \feat{BoldSlantedFont}.
Without these, however, the \LaTeX\ font switches for slanted (\cs{textsl}, \cs{slshape}) will default to the italic shape.
+For modern OpenType fonts, small caps glyphs are included within a fontface and \pkg{fontspec} will automatically detect them
+for use with the \cs{textsc} and \cs{scshape} commands.
Pre-OpenType, it was common for font families to be distributed with small caps glyphs in separate fonts, due to the limitations on the number of glyphs allowed in the PostScript Type~1 format.
Such fonts may be used by declaring the \feat{SmallCapsFont} of the family you are specifying:
\begin{Verbatim}
@@ -398,8 +400,8 @@ Such fonts may be used by declaring the \feat{SmallCapsFont} of the family you a
]
Roman 123 \\ \textsc{Small caps 456}
\end{Verbatim}
-In fact, you should specify the small caps font for each individual bold and
-italic shape as in
+In fact, this example is overly simplistic since it does not cover the other shapes in a font family.
+You should specify the small caps font for each individual bold and italic shape as in
\begin{Verbatim}
\setmainfont{ <upright> }[
UprightFeatures = { SmallCapsFont={ <sc> } } ,
@@ -440,7 +442,7 @@ In certain cases it is desirable to be able to choose this internal font family
\end{Verbatim}
To select a font for use in this way in \pkg{fontspec} use the \feat{NFSSFamily} feature:\footnote{Thanks to Luca Fascione for the example and motivation for finally implementing this feature.}
\begin{Verbatim}
- \newfontfamily\verbatimfont[NFSSFamily=myverbatimfont]{Inconsolata}
+ \newfontfamily\verbatimfont{Inconsolata}[NFSSFamily=myverbatimfont]
\end{Verbatim}
It is then possible to write commands such as:
\begin{Verbatim}
@@ -602,17 +604,6 @@ I hope this doesn't cause any problems.
\end{Verbatim}
if you really felt like it and both sets of features would be applied.
- \item
- Following standard \pkg{xparse} behaviour, there must be no space before the opening bracket; writing
- \begin{Verbatim*}
-\fontspec{myfont.otf} [Color=red]
- \end{Verbatim*}
- will result in |[Color=red]| not being recognised an argument and therefore it will be typeset as text. When breaking over lines, write either of:
- \begin{Verbatim}
- \fontspec{myfont.otf}% \fontspec{myfont.otf}[
- [Color=red] Color=Red]
- \end{Verbatim}
-
\end{enumerate}
\paragraph{Spaces}
diff --git a/Master/texmf-dist/source/latex/fontspec/fontspec-doc-opentype.tex b/Master/texmf-dist/source/latex/fontspec/fontspec-doc-opentype.tex
index a21d7f80cf3..fb08645abb5 100644
--- a/Master/texmf-dist/source/latex/fontspec/fontspec-doc-opentype.tex
+++ b/Master/texmf-dist/source/latex/fontspec/fontspec-doc-opentype.tex
@@ -815,7 +815,7 @@ For completeness, the complete list of OpenType features \emph{not} provided wit
a \pkg{fontspec} interface is shown in \vref{tab:none-ot}.
Features omitted are partially by design and partially by oversight;
for example, the |aalt| feature is largely useless in \TeX\ since it is designed
-for providing a textsc{gui} interface for selecting `all alternates' of a glyph.
+for providing a \textsc{gui} interface for selecting `all alternates' of a glyph.
Others, such as optical bounds for example, simply haven't yet been considered
due to a lack of fonts available for testing.
Suggestions welcome for how/where to add these missing features to the package.
@@ -919,12 +919,12 @@ particular font. These correspond to the OpenType features |cv01| to |cv99|.
For each character that can be varied, it is possible to select among
possible options for that particular glyph.
-For example, in the example below, variants are chosen for glyphs `4' and `5',
+For example, in the hypothetical example below, variants are chosen for glyphs `4' and `5',
and the trailing |:|\meta{n} corresponds to which variety to choose.
\begin{Verbatim}
- \fontspec{EB Garamond 12 Italic}[CharacterVariant={4,5:2}] \& violet
+ \fontspec{CV Font}[CharacterVariant={4,5:2}] \& violet
\end{Verbatim}
-The numbering is entirely font-soecific. Glyph `5' might be the character `v', for example.
+The numbering is entirely font-specific. Glyph `5' might be the character `v', for example.
Character variants are specifically designed not to conflict with each
other, so you can enable them individually per character.
(Unlike stylistic alternates, say.)
@@ -979,19 +979,18 @@ according to the Script setting.
\otf{ResetAll}{}
\end{features}
-For OpenType fonts use a regular text slash to create fractions, but
-the \feat{Fraction} feature must be explicitly activated.
-Some (Asian fonts predominantly) also provide for the
-\opt{Alternate} feature. These are both shown in \exref{ot-frac}.
-
-\begin{Xexample}{ot-frac}{The \feat{Fractions} feature.}
- \fontspec{Hiragino Maru Gothic Pro W4}
- 1/2 \quad 1/4 \quad 5/6 \quad 13579/24680 \\
- \addfontfeature{Fractions=On}
- 1/2 \quad 1/4 \quad 5/6 \quad 13579/24680 \\
- \addfontfeature{Fractions=Alternate}
- 1/2 \quad 1/4 \quad 5/6 \quad 13579/24680 \\
-\end{Xexample}
+Activates the construction of `vulgar' fractions using precomposed glyphs and/or
+subscript and superscript characters from within the font.
+Coverage will vary by font; see \exref{ot-frac}.
+Some (Asian fonts predominantly) also provide for the \opt{Alternate} option.
+
+\begin{Lexample}{ot-frac}{The \feat{Fractions} feature.}
+\setsansfont{Lato}[Fractions=On]
+\setmonofont{IBM Plex Mono}[Fractions=On]
+
+\sffamily 1/2 47/11 1/1000 \par
+\ttfamily 1/2 47/11
+\end{Lexample}
@@ -1034,12 +1033,11 @@ controlled by the \opt{On}/\opt{Off} options.
\subsubsection{Letters} \label{sec:letters}
The \opt{Letters} feature specifies how the letters in the current font
will look. OpenType fonts may contain the following options:
-\opt{Uppercase}, \opt{SmallCaps}, \opt{PetiteCaps},
+\opt{SmallCaps}, \opt{PetiteCaps},
\opt{UppercaseSmallCaps}, \opt{UppercasePetiteCaps}, and
\opt{Unicase}.
\begin{features}{Letters}
-\otf*{Uppercase}{case}
\otf*{SmallCaps}{smcp}
\otf*{PetiteCaps}{pcap}
\otf*{UppercaseSmallCaps}{c2sc}
@@ -1066,24 +1064,6 @@ This difference is shown in \exref{caps}.
THIS SENTENCE no verb
\end{Lexample}
-Note that the \opt{Uppercase} option will (probably)
-not actually map letters to uppercase.
- \note{If you want automatic uppercase letters, look to \LaTeX's
- \cmd\MakeUppercase\ command.}
-It is designed to select various
-uppercase forms for glyphs such as accents and dashes, such as shown
-in \exref{letters-uppercase}; note the raised position of the hyphen
-to better match the surrounding letters.
-
-\begin{Lexample}{letters-uppercase}{An example of the \opt{Uppercase} option of the \feat{Letters} feature.}
- \fontspec{LinLibertine_R.otf}
- UPPER-CASE example \\
- \addfontfeature{Letters=Uppercase}
- UPPER-CASE example
-\end{Lexample}
-
-The \feat{Kerning} feature also contains an \opt{Uppercase} option,
-which adds a small amount of spacing in between letters (see \vref{sec:kerning}).
\subsubsection{Ligatures}
@@ -1196,7 +1176,7 @@ selected numerically such as for the \feat{Annotation} feature.
\otf*{Swash}{swsh}
\otf*{Cursive}{curs}
\otf*{Historic}{hist}
-\otf*{TitlingCaps}{titl}
+\otf*{Titling}{titl}
\otf*{HorizontalKana}{hkna}
\otf*{VerticalKana}{vkna}
\cmidrule{2-4}
@@ -1221,6 +1201,26 @@ particular substitutions are organised with which feature largely up to the font
M Q W
\end{Xexample}
+The \opt{Uppercase} option is designed to select various
+uppercase forms for glyphs such as accents and dashes, such as shown
+in \exref{style-uppercase}; note the raised position of the hyphen
+to better match the surrounding letters.
+It will (probably) not actually map letters to uppercase.
+ \note{If you want automatic uppercase letters, look to \LaTeX's
+ \cmd\MakeUppercase\ command.}
+This option used to be selected under the \feat{Letters} feature, but moved here
+as it generally does not actually affect the letters themselves.
+The \feat{Kerning} feature also contains an \opt{Uppercase} option,
+which adds a small amount of spacing in between letters (see \vref{sec:kerning}).
+
+\begin{Lexample}{style-uppercase}{An example of the \opt{Uppercase} option of the \feat{Style} feature.}
+ \fontspec{LinLibertine_R.otf}
+ UPPER-CASE example \\
+ \addfontfeature{Style=Uppercase}
+ UPPER-CASE example
+\end{Lexample}
+
+
In other features, larger breadths of changes can be seen, covering
the style of an entire alphabet.
See \exref{style-itrub}; here, the \opt{Italic} option affects the Latin text
diff --git a/Master/texmf-dist/source/latex/fontspec/fontspec-doc-style.sty b/Master/texmf-dist/source/latex/fontspec/fontspec-doc-style.sty
index 43fbc38442f..751e7a150d5 100644
--- a/Master/texmf-dist/source/latex/fontspec/fontspec-doc-style.sty
+++ b/Master/texmf-dist/source/latex/fontspec/fontspec-doc-style.sty
@@ -8,6 +8,8 @@
\usepackage{fontspec,booktabs,caption,xcolor,flafter,fancyvrb,hologo,graphicx,
url,varioref,varwidth,microtype,tocloft,framed,xparse,docmute}
+\let\FancyVerbSpace\verbvisiblespace
+
%% Various labelling commands:
\newcommand*\name[1]{{#1}}
\newcommand*\opt[1]{\texttt{#1}}
diff --git a/Master/texmf-dist/source/latex/fontspec/fontspec-doc-xetex.tex b/Master/texmf-dist/source/latex/fontspec/fontspec-doc-xetex.tex
index 5d28095dfde..5c1e3e3e7d4 100644
--- a/Master/texmf-dist/source/latex/fontspec/fontspec-doc-xetex.tex
+++ b/Master/texmf-dist/source/latex/fontspec/fontspec-doc-xetex.tex
@@ -32,6 +32,8 @@ The use of the latter syntax is recommended for better compatibility with
\subsection{Different font technologies: \AAT, OpenType, and Graphite}\label{sec:renderer-xetex}
+\textbf{Note that from 2020 it appears that \XeTeX\ can no longer support \AAT\ fonts in \MacOSX.}
+
\XeTeX\ supports three rendering technologies for typesetting, selected with
the \feat{Renderer} font feature. The first, \opt{AAT}, is
that provided only by \MacOSX.
@@ -77,6 +79,26 @@ explicitly.
\end{Verbatim}
+\subsection{Vertical typesetting}
+
+\XeTeX\ provides for vertical typesetting simply with the ability to rotate
+the individual glyphs as a font is used for typesetting, as shown in
+\exref{vert}.
+
+\begin{Xexample}[firstline=2]{vert}{Vertical typesetting.}
+ \def\verttext{共産主義者は}
+ \fontspec{Hiragino Mincho Pro}
+ \verttext
+
+ \fontspec{Hiragino Mincho Pro}[Renderer=AAT,Vertical=RotatedGlyphs]
+ \rotatebox{-90}{\verttext}% requires the graphicx package
+\end{Xexample}
+
+No actual provision is made for typesetting top-to-bottom
+languages; for an example of how to do this, see the vertical Chinese
+example provided in the \XeTeX\ documentation.
+
+
\section{The Graphite renderer}
\label{sec:graphite-features}
@@ -109,6 +131,7 @@ Here's another:
\textbf{Warning!}
\XeTeX's implementation on \MacOSX\ is currently in a state of flux and the information contained below may well be wrong from 2013 onwards.
There is a good chance that the features described in this section will not be available any more as \XeTeX's completes its transition to a cross-platform--only application.
+All examples in this section have now been removed.
\end{quote}
\MacOSX's font technology began life before the ubiquitous-OpenType era
@@ -160,20 +183,6 @@ The options for \AAT\ fonts are
non-exclusive selectors, like the ligatures, you can turn them off
by prefixing their name with \opt{No}.
-\begin{Xexample}{wordcx}{Contextual glyph for the beginnings and ends of words.}
- \newfontface\fancy{Hoefler Text Italic}[%
- Contextuals={WordInitial,WordFinal}]
- \fancy where is all the vegemite
-\end{Xexample}
-
-\begin{Xexample}{longsaat}{A contextual feature for the `long s' can be convenient as the character does not need to be marked up explicitly.}
- \fontspec{Hoefler Text}[Contextuals=Inner]
- `Inner' swashes can \emph{sometimes} \\
- contain the archaic long~s.
-\end{Xexample}
-
-
-
\subsection{Vertical position}
The \feat{VerticalPosition} feature is used to access things like
subscript (\opt{Inferior}) and superscript (\opt{Superior}) numbers and
@@ -181,22 +190,8 @@ letters (and a small amount of punctuation, sometimes).
The \opt{Ordinal} option is (supposed to be)
contextually sensitive to only raise characters that appear directly
after a number.
-These are shown in \exref{aat-supp}.
-
-\begin{Xexample}{aat-supp}{Vertical position for AAT fonts.}
- \fontspec{Skia}
- Normal
- \fontspec{Skia}[VerticalPosition=Superior]
- Superior
- \fontspec{Skia}[VerticalPosition=Inferior]
- Inferior \\
- \fontspec{Skia}[VerticalPosition=Ordinal]
- 1st 2nd 3rd 4th 0th 8abcde
-\end{Xexample}
-The \pkg{realscripts} package
-(also loaded by \pkg{xltxtra})
-redefines the \cmd\textsubscript\ and
+The \pkg{realscripts} package redefines the \cmd\textsubscript\ and
\cmd\textsuperscript\ commands to use the above font features,
including for use in footnote labels.
@@ -209,88 +204,36 @@ in both \AAT\ and OpenType fonts.
In \AAT\ fonts, the `fraction slash' or solidus character, is
to be used to create fractions. When \feat{Fractions} are turned
\opt{On}, then only pre-drawn fractions will be used.
-See \exref{aat-frac}.
Using the \opt{Diagonal} option (\AAT\ only), the font will attempt
to create the fraction from superscript and subscript
characters.
-\edef\caretcc{\the\catcode`\^}
-\catcode`\^=12\relax
-\begin{Xexample}{aat-frac}{Fractions in AAT fonts. The \texttt{\relax^^^^2044} glyph is the `fraction slash' that may be typed in \MacOSX\ with \textsc{opt+shift+1}; not shown literally here due to font contraints.}
- \fontspec[Fractions=On]{Skia}
- 1{^^^^2044}2 \quad 5{^^^^2044}6 \\ % fraction slash
- 1/2 \quad 5/6 % regular slash
-
- \fontspec[Fractions=Diagonal]{Skia}
- 13579{^^^^2044}24680 \\ % fraction slash
- \quad 13579/24680 % regular slash
-\end{Xexample}
-\catcode`\^=\caretcc\relax
-
Some (Asian fonts predominantly) also provide for the
-\opt{Alternate} feature shown in \exref{frac-alt}.
-
-\begin{Xexample}{frac-alt}{Alternate design of pre-composed fractions.}
- \fontspec{Hiragino Maru Gothic Pro}
- 1/2 \quad 1/4 \quad 5/6 \quad 13579/24680 \\
- \addfontfeature{Fractions=Alternate}
- 1/2 \quad 1/4 \quad 5/6 \quad 13579/24680
-\end{Xexample}
-
+\opt{Alternate} feature.
\subsection{Variants}
The \feat{Variant} feature takes a single numerical input for
-choosing different alphabetic shapes. Don't mind my fancy \exref{aat-var}
-\texttt{:)} I'm just looping through the nine~(\,!\,) variants of
-Zapfino.
-
-\begin{Xexample}[firstline=2,lastline=9]{aat-var}{Nine variants of Zapfino.}
- \Huge \rule{0pt}{2cm}
- \newcounter{var}
- \whiledo{\value{var}<9}{%
- \edef\1{%
- \noexpand\fontspec[Variant=\thevar,
- Color=0099\thevar\thevar]{Zapfino}}\1%
- \makebox[0.75\width]{d}%
- \stepcounter{var}}
- \hspace*{2cm}
-\end{Xexample}
-
+choosing different alphabetic shapes.
See \vref{sec:newfeatures} for a way to assign names to variants,
which should be done on a per-font basis.
\subsection{Alternates}
-
-Selection of \feat{Alternate}s \emph{again}
-must be done numerically; see \exref{aat-alt}.
+Selection of \feat{Alternate}s again must be done numerically.
See \vref{sec:newfeatures} for a way to assign names to alternates,
which should be done on a per-font basis.
-\begin{Xexample}{aat-alt}{Alternate shape selection must be numerical.}
- \fontspec{Hoefler Text Italic}[Alternate=0]
- Sphinx Of Black Quartz, {\scshape Judge My Vow} \\
- \fontspec{Hoefler Text Italic}[Alternate=1]
- Sphinx Of Black Quartz, {\scshape Judge My Vow}
-\end{Xexample}
-
\subsection{Style}
-
The options of the \feat{Style} feature
are defined in \AAT\ as one of the following: \opt{Display},
\opt{Engraved}, \opt{IlluminatedCaps}, \opt{Italic},
-\opt{Ruby},\footnotemark\ \opt{TallCaps}, or \opt{TitlingCaps}.
+\opt{Ruby},\footnotemark\ \opt{TallCaps}, or \opt{Titling}.
\footnotetext{`Ruby' refers to a small optical size, used in
Japanese typography for annotations.}
Typical examples for these features are shown in \ref{sec:ot-feat-style}.
-
-
-
-
-
\subsection{CJK shape}
There have been many standards for how CJK ideographic
glyphs are `supposed' to look. Some fonts will contain many alternate
@@ -306,34 +249,6 @@ the same between OpenType and \AAT\ fonts.
\AAT\ also allows \feat{CharacterWidth}|=|\opt{Default} to return to
the original font settings.
-
-
-
-
-
-
-\subsection{Vertical typesetting}
-
-\XeTeX\ provides for vertical typesetting simply with the ability to rotate
-the individual glyphs as a font is used for typesetting, as shown in
-\exref{vert}.
-
-\begin{Xexample}[firstline=2]{vert}{Vertical typesetting.}
- \def\verttext{共産主義者は}
- \fontspec{Hiragino Mincho Pro}
- \verttext
-
- \fontspec{Hiragino Mincho Pro}[Renderer=AAT,Vertical=RotatedGlyphs]
- \rotatebox{-90}{\verttext}% requires the graphicx package
-\end{Xexample}
-
-No actual provision is made for typesetting top-to-bottom
-languages; for an example of how to do this, see the vertical Chinese
-example provided in the \XeTeX\ documentation.
-
-
-
-
\subsection{Diacritics}
Diacritics are marks, such as the acute accent or the tilde, applied to letters; they usually indicate a change in pronunciation.
In Arabic scripts, diacritics are used to indicate vowels.
@@ -352,7 +267,6 @@ the proper \LaTeX\ input conventions for obtaining such characters
instead.
-
\subsection{Annotation}
Various Asian fonts are equipped with a more extensive range of
numbers and numerals in different forms. These are accessed through
diff --git a/Master/texmf-dist/source/latex/fontspec/fontspec.dtx b/Master/texmf-dist/source/latex/fontspec/fontspec.dtx
index e1c377b6560..7e0232e989e 100644
--- a/Master/texmf-dist/source/latex/fontspec/fontspec.dtx
+++ b/Master/texmf-dist/source/latex/fontspec/fontspec.dtx
@@ -29,7 +29,6 @@
\DTX{fontspec-code-math.dtx}
\DTX{fontspec-code-closing.dtx}
\DTX{fontspec-code-xfss.dtx}
- \DTX{fontspec-code-patches.dtx}
}
%</dtx>
% \end{macrocode}
@@ -71,7 +70,7 @@
\ProvidesExplFile{fontspec.dtx}
%</dtx>
%<*fontspec>
- {2020/01/09}{2.7e}{Font selection for XeLaTeX and LuaLaTeX}
+ {2020/01/24}{2.7f}{Font selection for XeLaTeX and LuaLaTeX}
%</fontspec>
% \end{macrocode}
%
@@ -90,8 +89,8 @@
%<lua>local fontspec = fontspec
%<lua>fontspec.module = {
%<lua> name = "fontspec",
-%<lua> version = "2.7e",
-%<lua> date = "2020/01/09",
+%<lua> version = "2.7f",
+%<lua> date = "2020/01/24",
%<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 446b923d080..4d671b2946f 100644
--- a/Master/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty
+++ b/Master/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty
@@ -25,7 +25,6 @@
%% fontspec-code-math.dtx (with options: `fontspec,LU')
%% fontspec-code-closing.dtx (with options: `fontspec,LU')
%% fontspec-code-xfss.dtx (with options: `fontspec,LU')
-%% fontspec-code-patches.dtx (with options: `fontspec,LU')
%% ------------------------------------------------
%% The FONTSPEC package <wspr.io/fontspec>
%% ------------------------------------------------
@@ -41,7 +40,7 @@
\RequirePackage{xparse}
\ProvidesExplPackage{fontspec-luatex}%
- {2020/01/09}{2.7e}{Font selection for XeLaTeX and LuaLaTeX}
+ {2020/01/24}{2.7f}{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>
@@ -143,6 +142,7 @@
\tl_new:N \l__fontspec_fontname_tl
\tl_new:N \l__fontspec_options_tl
\tl_new:N \l__fontspec_saved_fontname_tl
+\tl_new:N \l__fontspec_prev_unicode_name_tl
\tl_new:N \g__fontspec_nfss_enc_tl
\tl_new:N \g__fontspec_nfss_family_tl
\tl_new:N \l__fontspec_nfss_sc_tl
@@ -735,12 +735,20 @@
\fontencoding { \g__fontspec_nfss_enc_tl }
\selectfont
}
-\tl_replace_all:cnn { rmfamily~ } { \fontfamily }
- { \fontencoding \l__fontspec_rmfamily_encoding_tl \fontfamily }
-\tl_replace_all:cnn { sffamily~ } { \fontfamily }
- { \fontencoding \l__fontspec_sffamily_encoding_tl \fontfamily }
-\tl_replace_all:cnn { ttfamily~ } { \fontfamily }
- { \fontencoding \l__fontspec_ttfamily_encoding_tl \fontfamily }
+\cs_if_exist:NTF \@rmfamilyhook
+ {
+ \tl_put_right:Nn \@rmfamilyhook {\fontencoding \l__fontspec_rmfamily_encoding_tl}
+ \tl_put_right:Nn \@sffamilyhook {\fontencoding \l__fontspec_sffamily_encoding_tl}
+ \tl_put_right:Nn \@ttfamilyhook {\fontencoding \l__fontspec_ttfamily_encoding_tl}
+ }
+ {
+ \tl_replace_all:cnn { rmfamily~ } { \fontfamily }
+ { \fontencoding \l__fontspec_rmfamily_encoding_tl \fontfamily }
+ \tl_replace_all:cnn { sffamily~ } { \fontfamily }
+ { \fontencoding \l__fontspec_sffamily_encoding_tl \fontfamily }
+ \tl_replace_all:cnn { ttfamily~ } { \fontfamily }
+ { \fontencoding \l__fontspec_ttfamily_encoding_tl \fontfamily }
+ }
\tl_set_eq:NN \l__fontspec_rmfamily_encoding_tl \g_fontspec_encoding_tl
\tl_set_eq:NN \l__fontspec_sffamily_encoding_tl \g_fontspec_encoding_tl
\tl_set_eq:NN \l__fontspec_ttfamily_encoding_tl \g_fontspec_encoding_tl
@@ -1275,7 +1283,7 @@
}
\cs_new:Nn \__fontspec_init_ttc:n
{
- \str_if_eq:eeT { \str_lower_case:f {\l__fontspec_extension_tl} } {.ttc}
+ \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}
@@ -2146,7 +2154,7 @@
}
\__fontspec_keys_define_code:nnn {fontspec-preparse} {FontIndex}
{
- \str_if_eq:eeF { \str_lower_case:f {\l__fontspec_extension_tl} } {.ttc}
+ \str_if_eq:eeF { \str_lowercase:f {\l__fontspec_extension_tl} } {.ttc}
{ \__fontspec_warning:n {font-index-needs-ttc} }
\tl_set:Nn \l__fontspec_ttc_index_tl {(#1)}
}
@@ -2220,34 +2228,34 @@
}
\__fontspec_keys_define_code:nnn {fontspec-preparse} {UprightFeatures}
{
- \clist_set:Nn \l__fontspec_fontfeat_up_clist {#1}
+ \clist_put_right:Nn \l__fontspec_fontfeat_up_clist {#1}
}
\__fontspec_keys_define_code:nnn {fontspec-preparse} {BoldFeatures}
{
- \clist_set:Nn \l__fontspec_fontfeat_bf_clist {#1}
+ \clist_put_right:Nn \l__fontspec_fontfeat_bf_clist {#1}
}
\__fontspec_keys_define_code:nnn {fontspec-preparse} {ItalicFeatures}
{
- \clist_set:Nn \l__fontspec_fontfeat_it_clist {#1}
+ \clist_put_right:Nn \l__fontspec_fontfeat_it_clist {#1}
}
\__fontspec_keys_define_code:nnn {fontspec-preparse} {BoldItalicFeatures}
{
- \clist_set:Nn \l__fontspec_fontfeat_bfit_clist {#1}
+ \clist_put_right:Nn \l__fontspec_fontfeat_bfit_clist {#1}
}
\__fontspec_keys_define_code:nnn {fontspec-preparse} {SlantedFeatures}
{
- \clist_set:Nn \l__fontspec_fontfeat_sl_clist {#1}
+ \clist_put_right:Nn \l__fontspec_fontfeat_sl_clist {#1}
}
\__fontspec_keys_define_code:nnn {fontspec-preparse} {BoldSlantedFeatures}
{
- \clist_set:Nn \l__fontspec_fontfeat_bfsl_clist {#1}
+ \clist_put_right:Nn \l__fontspec_fontfeat_bfsl_clist {#1}
}
\__fontspec_keys_define_code:nnn {fontspec} {SmallCapsFeatures}
{
\bool_if:NF \l__fontspec_firsttime_bool
{
- \clist_set:Nn \l__fontspec_fontfeat_sc_clist {#1}
+ \clist_put_right:Nn \l__fontspec_fontfeat_sc_clist {#1}
}
}
\__fontspec_keys_define_code:nnn {fontspec-preparse} {SizeFeatures}
@@ -2613,13 +2621,13 @@
+case,+smcp,+pcap,+c2sc,+c2pc,+unic,+rand,
-case,-smcp,-pcap,-c2sc,-c2pc,-unic,-rand
}
-\__fontspec_define_opentype_onoffreset:nnnnn {Letters} {Uppercase} {case} {case} {+smcp,+pcap,+c2sc,+c2pc,+unic,+rand}
-\__fontspec_define_opentype_onoffreset:nnnnn {Letters} {SmallCaps} {smcp} {smcp} {+pcap,+unic,+rand}
-\__fontspec_define_opentype_onoffreset:nnnnn {Letters} {PetiteCaps} {pcap} {pcap} {+smcp,+unic,+rand}
-\__fontspec_define_opentype_onoffreset:nnnnn {Letters} {UppercaseSmallCaps} {c2sc} {c2sc} {+c2pc,+unic,+rand}
-\__fontspec_define_opentype_onoffreset:nnnnn {Letters} {UppercasePetiteCaps} {c2pc} {c2pc} {+c2sc,+unic,+rand}
-\__fontspec_define_opentype_onoffreset:nnnnn {Letters} {Unicase} {unic} {unic} {+rand}
-\__fontspec_define_opentype_onoffreset:nnnnn {Letters} {Random} {rand} {rand} {+unic}
+\__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}
+\__fontspec_define_opentype_onoffreset:nnnnn {Letters} {UppercasePetiteCaps} {c2pc} {c2pc} {+c2sc,+unic}
+\__fontspec_define_opentype_onoffreset:nnnnn {Letters} {Unicase} {unic} {unic} {}
+\__fontspec_define_opentype_onoffreset:nnnnn {Letters} {Random} {rand} {rand} {}
\__fontspec_define_opentype_feature_group:n {Numbers}
\__fontspec_define_opentype_feature:nnnnn {Numbers} {ResetAll} {} {}
{
@@ -2728,12 +2736,14 @@
\__fontspec_define_opentype_onoffreset:nnnnn {Style} {Swash} {swsh} {swsh} {}
\__fontspec_define_opentype_onoffreset:nnnnn {Style} {Cursive} {swsh} {curs} {}
\__fontspec_define_opentype_onoffreset:nnnnn {Style} {Historic} {hist} {hist} {}
-\__fontspec_define_opentype_onoffreset:nnnnn {Style} {TitlingCaps} {titl} {titl} {}
+\__fontspec_define_opentype_onoffreset:nnnnn {Style} {Titling} {titl} {titl} {}
+\__fontspec_define_opentype_onoffreset:nnnnn {Style} {TitlingCaps} {titl} {titl} {} % backwards compat
\__fontspec_define_opentype_onoffreset:nnnnn {Style} {HorizontalKana} {hkna} {hkna} {+vkna,+pkna}
\__fontspec_define_opentype_onoffreset:nnnnn {Style} {VerticalKana} {vkna} {vkna} {+hkna,+pkna}
\__fontspec_define_opentype_onoffreset:nnnnn {Style} {ProportionalKana} {pkna} {pkna} {+vkna,+hkna}
\__fontspec_define_opentype_feature:nnnnn {Style} {MathScript} {ssty} {+ssty=0} {+ssty=1}
\__fontspec_define_opentype_feature:nnnnn {Style} {MathScriptScript} {ssty} {+ssty=1} {+ssty=0}
+\__fontspec_define_opentype_onoffreset:nnnnn {Style} {Uppercase} {case} {case} {}
\__fontspec_define_opentype_feature_group:n {CJKShape}
\__fontspec_define_opentype_feature:nnnnn {CJKShape} {ResetAll} {} {}
{
@@ -3902,6 +3912,3 @@
\cs_new:Nn \fontspec_set_strong_level:n { \int_set:Nn \l__fontspec_strong_int {#1} }
\strongfontdeclare{ \bfseries }
-%%^^A%% fontspec-code-patches.dtx -- part of FONTSPEC <wspr.io/fontspec>
-
-
diff --git a/Master/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty b/Master/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty
index 25ce0813879..c9ef53a09ac 100644
--- a/Master/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty
+++ b/Master/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty
@@ -25,7 +25,6 @@
%% fontspec-code-math.dtx (with options: `fontspec,XE')
%% fontspec-code-closing.dtx (with options: `fontspec,XE')
%% fontspec-code-xfss.dtx (with options: `fontspec,XE')
-%% fontspec-code-patches.dtx (with options: `fontspec,XE')
%% ------------------------------------------------
%% The FONTSPEC package <wspr.io/fontspec>
%% ------------------------------------------------
@@ -41,7 +40,7 @@
\RequirePackage{xparse}
\ProvidesExplPackage{fontspec-xetex}%
- {2020/01/09}{2.7e}{Font selection for XeLaTeX and LuaLaTeX}
+ {2020/01/24}{2.7f}{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>
@@ -143,6 +142,7 @@
\tl_new:N \l__fontspec_fontname_tl
\tl_new:N \l__fontspec_options_tl
\tl_new:N \l__fontspec_saved_fontname_tl
+\tl_new:N \l__fontspec_prev_unicode_name_tl
\tl_new:N \g__fontspec_nfss_enc_tl
\tl_new:N \g__fontspec_nfss_family_tl
\tl_new:N \l__fontspec_nfss_sc_tl
@@ -728,12 +728,20 @@
\fontencoding { \g__fontspec_nfss_enc_tl }
\selectfont
}
-\tl_replace_all:cnn { rmfamily~ } { \fontfamily }
- { \fontencoding \l__fontspec_rmfamily_encoding_tl \fontfamily }
-\tl_replace_all:cnn { sffamily~ } { \fontfamily }
- { \fontencoding \l__fontspec_sffamily_encoding_tl \fontfamily }
-\tl_replace_all:cnn { ttfamily~ } { \fontfamily }
- { \fontencoding \l__fontspec_ttfamily_encoding_tl \fontfamily }
+\cs_if_exist:NTF \@rmfamilyhook
+ {
+ \tl_put_right:Nn \@rmfamilyhook {\fontencoding \l__fontspec_rmfamily_encoding_tl}
+ \tl_put_right:Nn \@sffamilyhook {\fontencoding \l__fontspec_sffamily_encoding_tl}
+ \tl_put_right:Nn \@ttfamilyhook {\fontencoding \l__fontspec_ttfamily_encoding_tl}
+ }
+ {
+ \tl_replace_all:cnn { rmfamily~ } { \fontfamily }
+ { \fontencoding \l__fontspec_rmfamily_encoding_tl \fontfamily }
+ \tl_replace_all:cnn { sffamily~ } { \fontfamily }
+ { \fontencoding \l__fontspec_sffamily_encoding_tl \fontfamily }
+ \tl_replace_all:cnn { ttfamily~ } { \fontfamily }
+ { \fontencoding \l__fontspec_ttfamily_encoding_tl \fontfamily }
+ }
\tl_set_eq:NN \l__fontspec_rmfamily_encoding_tl \g_fontspec_encoding_tl
\tl_set_eq:NN \l__fontspec_sffamily_encoding_tl \g_fontspec_encoding_tl
\tl_set_eq:NN \l__fontspec_ttfamily_encoding_tl \g_fontspec_encoding_tl
@@ -1267,7 +1275,7 @@
}
\cs_new:Nn \__fontspec_init_ttc:n
{
- \str_if_eq:eeT { \str_lower_case:f {\l__fontspec_extension_tl} } {.ttc}
+ \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}
@@ -2261,7 +2269,7 @@
}
\__fontspec_keys_define_code:nnn {fontspec-preparse} {FontIndex}
{
- \str_if_eq:eeF { \str_lower_case:f {\l__fontspec_extension_tl} } {.ttc}
+ \str_if_eq:eeF { \str_lowercase:f {\l__fontspec_extension_tl} } {.ttc}
{ \__fontspec_warning:n {font-index-needs-ttc} }
\tl_set:Nn \l__fontspec_ttc_index_tl {:#1}
}
@@ -2335,34 +2343,34 @@
}
\__fontspec_keys_define_code:nnn {fontspec-preparse} {UprightFeatures}
{
- \clist_set:Nn \l__fontspec_fontfeat_up_clist {#1}
+ \clist_put_right:Nn \l__fontspec_fontfeat_up_clist {#1}
}
\__fontspec_keys_define_code:nnn {fontspec-preparse} {BoldFeatures}
{
- \clist_set:Nn \l__fontspec_fontfeat_bf_clist {#1}
+ \clist_put_right:Nn \l__fontspec_fontfeat_bf_clist {#1}
}
\__fontspec_keys_define_code:nnn {fontspec-preparse} {ItalicFeatures}
{
- \clist_set:Nn \l__fontspec_fontfeat_it_clist {#1}
+ \clist_put_right:Nn \l__fontspec_fontfeat_it_clist {#1}
}
\__fontspec_keys_define_code:nnn {fontspec-preparse} {BoldItalicFeatures}
{
- \clist_set:Nn \l__fontspec_fontfeat_bfit_clist {#1}
+ \clist_put_right:Nn \l__fontspec_fontfeat_bfit_clist {#1}
}
\__fontspec_keys_define_code:nnn {fontspec-preparse} {SlantedFeatures}
{
- \clist_set:Nn \l__fontspec_fontfeat_sl_clist {#1}
+ \clist_put_right:Nn \l__fontspec_fontfeat_sl_clist {#1}
}
\__fontspec_keys_define_code:nnn {fontspec-preparse} {BoldSlantedFeatures}
{
- \clist_set:Nn \l__fontspec_fontfeat_bfsl_clist {#1}
+ \clist_put_right:Nn \l__fontspec_fontfeat_bfsl_clist {#1}
}
\__fontspec_keys_define_code:nnn {fontspec} {SmallCapsFeatures}
{
\bool_if:NF \l__fontspec_firsttime_bool
{
- \clist_set:Nn \l__fontspec_fontfeat_sc_clist {#1}
+ \clist_put_right:Nn \l__fontspec_fontfeat_sc_clist {#1}
}
}
\__fontspec_keys_define_code:nnn {fontspec-preparse} {SizeFeatures}
@@ -2744,13 +2752,13 @@
+case,+smcp,+pcap,+c2sc,+c2pc,+unic,+rand,
-case,-smcp,-pcap,-c2sc,-c2pc,-unic,-rand
}
-\__fontspec_define_opentype_onoffreset:nnnnn {Letters} {Uppercase} {case} {case} {+smcp,+pcap,+c2sc,+c2pc,+unic,+rand}
-\__fontspec_define_opentype_onoffreset:nnnnn {Letters} {SmallCaps} {smcp} {smcp} {+pcap,+unic,+rand}
-\__fontspec_define_opentype_onoffreset:nnnnn {Letters} {PetiteCaps} {pcap} {pcap} {+smcp,+unic,+rand}
-\__fontspec_define_opentype_onoffreset:nnnnn {Letters} {UppercaseSmallCaps} {c2sc} {c2sc} {+c2pc,+unic,+rand}
-\__fontspec_define_opentype_onoffreset:nnnnn {Letters} {UppercasePetiteCaps} {c2pc} {c2pc} {+c2sc,+unic,+rand}
-\__fontspec_define_opentype_onoffreset:nnnnn {Letters} {Unicase} {unic} {unic} {+rand}
-\__fontspec_define_opentype_onoffreset:nnnnn {Letters} {Random} {rand} {rand} {+unic}
+\__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}
+\__fontspec_define_opentype_onoffreset:nnnnn {Letters} {UppercasePetiteCaps} {c2pc} {c2pc} {+c2sc,+unic}
+\__fontspec_define_opentype_onoffreset:nnnnn {Letters} {Unicase} {unic} {unic} {}
+\__fontspec_define_opentype_onoffreset:nnnnn {Letters} {Random} {rand} {rand} {}
\__fontspec_define_opentype_feature_group:n {Numbers}
\__fontspec_define_opentype_feature:nnnnn {Numbers} {ResetAll} {} {}
{
@@ -2858,12 +2866,14 @@
\__fontspec_define_opentype_onoffreset:nnnnn {Style} {Swash} {swsh} {swsh} {}
\__fontspec_define_opentype_onoffreset:nnnnn {Style} {Cursive} {swsh} {curs} {}
\__fontspec_define_opentype_onoffreset:nnnnn {Style} {Historic} {hist} {hist} {}
-\__fontspec_define_opentype_onoffreset:nnnnn {Style} {TitlingCaps} {titl} {titl} {}
+\__fontspec_define_opentype_onoffreset:nnnnn {Style} {Titling} {titl} {titl} {}
+\__fontspec_define_opentype_onoffreset:nnnnn {Style} {TitlingCaps} {titl} {titl} {} % backwards compat
\__fontspec_define_opentype_onoffreset:nnnnn {Style} {HorizontalKana} {hkna} {hkna} {+vkna,+pkna}
\__fontspec_define_opentype_onoffreset:nnnnn {Style} {VerticalKana} {vkna} {vkna} {+hkna,+pkna}
\__fontspec_define_opentype_onoffreset:nnnnn {Style} {ProportionalKana} {pkna} {pkna} {+vkna,+hkna}
\__fontspec_define_opentype_feature:nnnnn {Style} {MathScript} {ssty} {+ssty=0} {+ssty=1}
\__fontspec_define_opentype_feature:nnnnn {Style} {MathScriptScript} {ssty} {+ssty=1} {+ssty=0}
+\__fontspec_define_opentype_onoffreset:nnnnn {Style} {Uppercase} {case} {case} {}
\__fontspec_define_opentype_feature_group:n {CJKShape}
\__fontspec_define_opentype_feature:nnnnn {CJKShape} {ResetAll} {} {}
{
@@ -3731,7 +3741,8 @@
\__fontspec_define_aat_feature:nnnn {Style} {Ruby} {28} {2}
\__fontspec_define_aat_feature:nnnn {Style} {Display} {19} {1}
\__fontspec_define_aat_feature:nnnn {Style} {Engraved} {19} {2}
-\__fontspec_define_aat_feature:nnnn {Style} {TitlingCaps} {19} {4}
+\__fontspec_define_aat_feature:nnnn {Style} {Titling} {19} {4}
+\__fontspec_define_aat_feature:nnnn {Style} {TitlingCaps} {19} {4} % backwards compat
\__fontspec_define_aat_feature:nnnn {Style} {TallCaps} {19} {5}
\__fontspec_define_aat_feature_group:n {CJKShape}
\__fontspec_define_aat_feature:nnnn {CJKShape} {Traditional} {20} {0}
@@ -4164,6 +4175,3 @@
\cs_new:Nn \fontspec_set_strong_level:n { \int_set:Nn \l__fontspec_strong_int {#1} }
\strongfontdeclare{ \bfseries }
-%%^^A%% fontspec-code-patches.dtx -- part of FONTSPEC <wspr.io/fontspec>
-
-
diff --git a/Master/texmf-dist/tex/latex/fontspec/fontspec.lua b/Master/texmf-dist/tex/latex/fontspec/fontspec.lua
index ac39921f050..62f646d421b 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.7e",
- date = "2020/01/09",
+ version = "2.7f",
+ date = "2020/01/24",
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 09c3903e6e7..b9a37e66e36 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}%
- {2020/01/09}{2.7e}{Font selection for XeLaTeX and LuaLaTeX}
+ {2020/01/24}{2.7f}{Font selection for XeLaTeX and LuaLaTeX}
%%^^A%% fontspec-code-load.dtx -- part of FONTSPEC <wspr.io/fontspec>
\sys_if_engine_luatex:T