summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/fontspec
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-01-24 03:00:54 +0000
committerNorbert Preining <norbert@preining.info>2020-01-24 03:00:54 +0000
commite1192611f0655a1ccaff0dff2f53c7c65fa5db07 (patch)
tree232f5be17a2221a57cc6515bfe8692772b3a3e89 /macros/latex/contrib/fontspec
parentf7e5d81fe9880913485f7f8c541eeca7adf4c195 (diff)
CTAN sync 202001240300
Diffstat (limited to 'macros/latex/contrib/fontspec')
-rw-r--r--macros/latex/contrib/fontspec/CHANGES.md14
-rw-r--r--macros/latex/contrib/fontspec/fontspec-code-feat-aat.dtx3
-rw-r--r--macros/latex/contrib/fontspec/fontspec-code-feat-opentype.dtx18
-rw-r--r--macros/latex/contrib/fontspec/fontspec-code-internal.dtx2
-rw-r--r--macros/latex/contrib/fontspec/fontspec-code-keyval.dtx16
-rw-r--r--macros/latex/contrib/fontspec/fontspec-code-patches.dtx30
-rw-r--r--macros/latex/contrib/fontspec/fontspec-code-user.dtx20
-rw-r--r--macros/latex/contrib/fontspec/fontspec-code-vars.dtx1
-rw-r--r--macros/latex/contrib/fontspec/fontspec-code.pdfbin626376 -> 627146 bytes
-rw-r--r--macros/latex/contrib/fontspec/fontspec-doc-api.tex10
-rw-r--r--macros/latex/contrib/fontspec/fontspec-doc-featset.tex11
-rw-r--r--macros/latex/contrib/fontspec/fontspec-doc-fontsel.tex19
-rw-r--r--macros/latex/contrib/fontspec/fontspec-doc-opentype.tex76
-rw-r--r--macros/latex/contrib/fontspec/fontspec-doc-style.sty2
-rw-r--r--macros/latex/contrib/fontspec/fontspec-doc-xetex.tex142
-rw-r--r--macros/latex/contrib/fontspec/fontspec.dtx7
-rw-r--r--macros/latex/contrib/fontspec/fontspec.pdfbin673740 -> 610894 bytes
17 files changed, 144 insertions, 227 deletions
diff --git a/macros/latex/contrib/fontspec/CHANGES.md b/macros/latex/contrib/fontspec/CHANGES.md
index 557e22c12f..1f6b1d96c1 100644
--- a/macros/latex/contrib/fontspec/CHANGES.md
+++ b/macros/latex/contrib/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/macros/latex/contrib/fontspec/fontspec-code-feat-aat.dtx b/macros/latex/contrib/fontspec/fontspec-code-feat-aat.dtx
index 4c60399a22..cf9736c035 100644
--- a/macros/latex/contrib/fontspec/fontspec-code-feat-aat.dtx
+++ b/macros/latex/contrib/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/macros/latex/contrib/fontspec/fontspec-code-feat-opentype.dtx b/macros/latex/contrib/fontspec/fontspec-code-feat-opentype.dtx
index 80a85795bc..935cf81a70 100644
--- a/macros/latex/contrib/fontspec/fontspec-code-feat-opentype.dtx
+++ b/macros/latex/contrib/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/macros/latex/contrib/fontspec/fontspec-code-internal.dtx b/macros/latex/contrib/fontspec/fontspec-code-internal.dtx
index 7e159a1e10..d86f675dfa 100644
--- a/macros/latex/contrib/fontspec/fontspec-code-internal.dtx
+++ b/macros/latex/contrib/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/macros/latex/contrib/fontspec/fontspec-code-keyval.dtx b/macros/latex/contrib/fontspec/fontspec-code-keyval.dtx
index ad8e0629b5..25c71c3400 100644
--- a/macros/latex/contrib/fontspec/fontspec-code-keyval.dtx
+++ b/macros/latex/contrib/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/macros/latex/contrib/fontspec/fontspec-code-patches.dtx b/macros/latex/contrib/fontspec/fontspec-code-patches.dtx
deleted file mode 100644
index 31a72193e8..0000000000
--- a/macros/latex/contrib/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/macros/latex/contrib/fontspec/fontspec-code-user.dtx b/macros/latex/contrib/fontspec/fontspec-code-user.dtx
index aa739b4dee..e4ba3539d0 100644
--- a/macros/latex/contrib/fontspec/fontspec-code-user.dtx
+++ b/macros/latex/contrib/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/macros/latex/contrib/fontspec/fontspec-code-vars.dtx b/macros/latex/contrib/fontspec/fontspec-code-vars.dtx
index 75f316f23b..6350d24cc5 100644
--- a/macros/latex/contrib/fontspec/fontspec-code-vars.dtx
+++ b/macros/latex/contrib/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/macros/latex/contrib/fontspec/fontspec-code.pdf b/macros/latex/contrib/fontspec/fontspec-code.pdf
index d72b67cfdb..fca2c0af98 100644
--- a/macros/latex/contrib/fontspec/fontspec-code.pdf
+++ b/macros/latex/contrib/fontspec/fontspec-code.pdf
Binary files differ
diff --git a/macros/latex/contrib/fontspec/fontspec-doc-api.tex b/macros/latex/contrib/fontspec/fontspec-doc-api.tex
index e5f11e3503..3ef857e914 100644
--- a/macros/latex/contrib/fontspec/fontspec-doc-api.tex
+++ b/macros/latex/contrib/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/macros/latex/contrib/fontspec/fontspec-doc-featset.tex b/macros/latex/contrib/fontspec/fontspec-doc-featset.tex
index dac017ae14..90b1019561 100644
--- a/macros/latex/contrib/fontspec/fontspec-doc-featset.tex
+++ b/macros/latex/contrib/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/macros/latex/contrib/fontspec/fontspec-doc-fontsel.tex b/macros/latex/contrib/fontspec/fontspec-doc-fontsel.tex
index 884dd409b8..85ad1ea75d 100644
--- a/macros/latex/contrib/fontspec/fontspec-doc-fontsel.tex
+++ b/macros/latex/contrib/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/macros/latex/contrib/fontspec/fontspec-doc-opentype.tex b/macros/latex/contrib/fontspec/fontspec-doc-opentype.tex
index a21d7f80cf..fb08645abb 100644
--- a/macros/latex/contrib/fontspec/fontspec-doc-opentype.tex
+++ b/macros/latex/contrib/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/macros/latex/contrib/fontspec/fontspec-doc-style.sty b/macros/latex/contrib/fontspec/fontspec-doc-style.sty
index 43fbc38442..751e7a150d 100644
--- a/macros/latex/contrib/fontspec/fontspec-doc-style.sty
+++ b/macros/latex/contrib/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/macros/latex/contrib/fontspec/fontspec-doc-xetex.tex b/macros/latex/contrib/fontspec/fontspec-doc-xetex.tex
index 5d28095dfd..5c1e3e3e7d 100644
--- a/macros/latex/contrib/fontspec/fontspec-doc-xetex.tex
+++ b/macros/latex/contrib/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/macros/latex/contrib/fontspec/fontspec.dtx b/macros/latex/contrib/fontspec/fontspec.dtx
index e1c377b656..7e0232e989 100644
--- a/macros/latex/contrib/fontspec/fontspec.dtx
+++ b/macros/latex/contrib/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/macros/latex/contrib/fontspec/fontspec.pdf b/macros/latex/contrib/fontspec/fontspec.pdf
index 26a68d306a..193b3234f8 100644
--- a/macros/latex/contrib/fontspec/fontspec.pdf
+++ b/macros/latex/contrib/fontspec/fontspec.pdf
Binary files differ