diff options
Diffstat (limited to 'Master/texmf-dist')
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 Binary files differindex d72b67cfdb2..fca2c0af987 100644 --- a/Master/texmf-dist/doc/latex/fontspec/fontspec-code.pdf +++ b/Master/texmf-dist/doc/latex/fontspec/fontspec-code.pdf diff --git a/Master/texmf-dist/doc/latex/fontspec/fontspec.pdf b/Master/texmf-dist/doc/latex/fontspec/fontspec.pdf Binary files differindex 26a68d306a6..193b3234f8b 100644 --- a/Master/texmf-dist/doc/latex/fontspec/fontspec.pdf +++ b/Master/texmf-dist/doc/latex/fontspec/fontspec.pdf 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 |