diff options
-rw-r--r-- | Master/texmf-dist/doc/latex/fontspec/README | 17 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/fontspec/fontspec-testsuite.pdf | bin | 116520 -> 116619 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/fontspec/fontspec.pdf | bin | 2060813 -> 2680629 bytes | |||
-rw-r--r-- | Master/texmf-dist/source/latex/fontspec/Makefile | 7 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/fontspec/fontspec.dtx | 227 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/fontspec/fontspec-patches.sty | 2 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/fontspec/fontspec.sty | 25 |
7 files changed, 155 insertions, 123 deletions
diff --git a/Master/texmf-dist/doc/latex/fontspec/README b/Master/texmf-dist/doc/latex/fontspec/README index 36db9156794..21c129041ff 100644 --- a/Master/texmf-dist/doc/latex/fontspec/README +++ b/Master/texmf-dist/doc/latex/fontspec/README @@ -1,5 +1,5 @@ -THE FONTSPEC PACKAGE v2.0a +THE FONTSPEC PACKAGE v2.0b ========================== This is the initial release of the fontspec package with support for LuaTeX. @@ -143,7 +143,17 @@ gladly accepted! Change history -------------- -- v2.0a (2010 July 11) +- v2.0b (2010/07/14) + *Actually* the final release before TeX Live 2010. + + * Improved examples in the documentation, with fewer proprietary fonts + * All font examples are included as separate images on CTAN, so the + manual can be compiled (with pdfLaTeX) by anyone, anywhere + * LuaLaTeX fixes for the StylisticSet and Annotation features + * New OpenType feature `CharacterVariant` now supported + * Minor change: `Ligatures=Historical` is now `Ligatures=Historic` for consistency + +- v2.0a (2010/07/11) Final release before TeX Live 2010. * Bug fix for the Language setting being ignored @@ -176,6 +186,9 @@ Test suite: (within testsuite/) X*.ltx XeLaTeX test file F*.ltx Test file for both engines +Documentation sources: + doc/*.pdf These are pre-generated example outputs for + direct inclusion in the documentation License ------- diff --git a/Master/texmf-dist/doc/latex/fontspec/fontspec-testsuite.pdf b/Master/texmf-dist/doc/latex/fontspec/fontspec-testsuite.pdf Binary files differindex d4472599526..c331f7f9d48 100644 --- a/Master/texmf-dist/doc/latex/fontspec/fontspec-testsuite.pdf +++ b/Master/texmf-dist/doc/latex/fontspec/fontspec-testsuite.pdf diff --git a/Master/texmf-dist/doc/latex/fontspec/fontspec.pdf b/Master/texmf-dist/doc/latex/fontspec/fontspec.pdf Binary files differindex 0a404d06161..0cf3e2c1160 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/Makefile b/Master/texmf-dist/source/latex/fontspec/Makefile index 64fc172348a..dc1e0deebb2 100644 --- a/Master/texmf-dist/source/latex/fontspec/Makefile +++ b/Master/texmf-dist/source/latex/fontspec/Makefile @@ -43,7 +43,9 @@ GENERATED = $(COMPILED) $(UNPACKED) TESTS = $(shell ls testsuite/*.cls testsuite/*.tex testsuite/*.ltx) -CTAN_FILES = $(SOURCE) $(COMPILED) $(EXAMPLES) $(TESTS) +DOC_EXAMPLES = $(shell ls doc/*.pdf) + +CTAN_FILES = $(SOURCE) $(COMPILED) $(EXAMPLES) $(TESTS) $(DOC_EXAMPLES) # Files grouped by installation location UNPACKED_DOC = fontspec-luatex.tex fontspec-xetex.tex @@ -73,7 +75,8 @@ DO_MAKEINDEX = makeindex -s gind.ist $(subst .dtx,,$<) >/dev/null 2>&1 all: $(GENERATED) doc: $(COMPILED) unpack: $(UNPACKED) -ctan: check $(CTAN_ZIP) +ctan: $(CTAN_ZIP) + echo $(DOCFILES) tds: $(TDS_ZIP) world: all ctan diff --git a/Master/texmf-dist/source/latex/fontspec/fontspec.dtx b/Master/texmf-dist/source/latex/fontspec/fontspec.dtx index bbe70b83cce..791bdd8bc38 100644 --- a/Master/texmf-dist/source/latex/fontspec/fontspec.dtx +++ b/Master/texmf-dist/source/latex/fontspec/fontspec.dtx @@ -63,7 +63,7 @@ This work consists of this file fontspec.dtx %<fontspec>\ProvidesPackage{fontspec} %<patches>\ProvidesPackage{fontspec-patches} %<*fontspec|patches> - [2010/07/11 v2.0a Advanced font selection for XeLaTeX/LuaLaTeX] + [2010/07/14 v2.0b Advanced font selection for XeLaTeX/LuaLaTeX] %</fontspec|patches> % %<*driver> @@ -85,7 +85,10 @@ This work consists of this file fontspec.dtx % \errorcontextlines=999 ^^A% Show up all my mistakes % % \title{The \textsf{fontspec} package} -% \author{\textsc{Will Robertson} and \textsc{Khaled Hosny}} +% \author{ +% \textsc{Will Robertson} and \textsc{Khaled Hosny}\\ +% \texttt{will.robertson@latex-project.org} +% } % \date{\filedate \qquad \fileversion} % % \maketitle @@ -939,38 +942,34 @@ This work consists of this file fontspec.dtx % % OpenType fonts with optical scaling will exist in % several discrete sizes, and these will be selected by \XeTeX\ -% \emph{automatically} determined by the current font size. The +% \emph{automatically} determined by the current font size as in +% \exref{optsize}, in which we've scaled down some large text in order to be +% able to compare the difference for equivalent font sizes. +% +% The % \opt{OpticalSize} option may be used to specify a different optical % size. -% -% For the OpenType font Warnock Pro, we have three optically sized -% variants: caption, subhead, and display. With \opt{OpticalSize} set +% With \opt{OpticalSize} set % to zero, no optical size font substitution is performed, as shown in % \exref{optsize0}. % -% \begin{Lexample}{optsize0}{Optical size substitution is suppressed when set to zero.} -% \fontspec[OpticalSize=0]{Warnock Pro Caption} -% Warnock Pro optical sizes \\ -% \fontspec[OpticalSize=0]{Warnock Pro} -% Warnock Pro optical sizes \\ -% \fontspec[OpticalSize=0]{Warnock Pro Subhead} -% Warnock Pro optical sizes \\ -% \fontspec[OpticalSize=0]{Warnock Pro Display} -% Warnock Pro optical sizes -% \end{Lexample} -% -% Automatic OpenType optical scaling is in -% \exref{optsize}, in which we've scaled down some large text in order to be -% able to compare the difference for equivalent font sizes (this -% gives the same output as we saw in the previous example for Warnock -% Pro Display). -% -% \begin{Lexample}{optsize}{A demonstration of automatic optical size selection.} -% \fontspec{Warnock Pro} +% \begin{Xexample}{optsize}{A demonstration of automatic optical size selection.} +% \fontspec{Latin Modern Roman} % Automatic optical size \\ % \scalebox{0.4}{\Huge % Automatic optical size} -% \end{Lexample} +% \end{Xexample} +% +% \begin{Xexample}{optsize0}{Optical size substitution is suppressed when set to zero.} +% \fontspec[OpticalSize=0]{Latin Modern Roman 5 Regular} +% Latin Modern optical sizes \\ +% \fontspec[OpticalSize=0]{Latin Modern Roman 8 Regular} +% Latin Modern optical sizes \\ +% \fontspec[OpticalSize=0]{Latin Modern Roman 12 Regular} +% Latin Modern optical sizes \\ +% \fontspec[OpticalSize=0]{Latin Modern Roman 17 Regular} +% Latin Modern optical sizes +% \end{Xexample} % % The \feat{SizeFeatures} feature (\vref*{sec:sizefeature}) can be % used to specify exactly which optical sizes will be used for ranges @@ -982,7 +981,7 @@ This work consists of this file fontspec.dtx % {Size= 10-14, OpticalSize=10}, % {Size= 14-18, OpticalSize=14}, % {Size= 18-, OpticalSize=18}} -% ]{Warnock Pro} +% ]{Latin Modern Roman} % \end{verbatim} % % \part{OpenType} @@ -1022,7 +1021,7 @@ This work consists of this file fontspec.dtx % \otf*{Common}{liga} % \otf*{Contextual}{clig} % \otf{Rare/Discretionary}{dlig} -% \otf{Historical}{hlig} +% \otf{Historic}{hlig} % \otf{TeX}{tlig/trep} % \end{features} % @@ -1031,7 +1030,7 @@ This work consists of this file fontspec.dtx % \def\test#1#2{% % #2 $\to$ {\addfontfeature{#1} #2}\\} % \fontspec{Linux Libertine} -% \test{Ligatures=Historical}{strict} +% \test{Ligatures=Historic}{strict} % \test{Ligatures=Rare}{wurtzite} % \test{Ligatures=NoCommon}{firefly} % \end{Lexample} @@ -1223,7 +1222,7 @@ This work consists of this file fontspec.dtx % \end{Xexample} % % -% \subsection{StylisticSet} +% \subsection{Stylistic Set variations} % % This feature selects a `Stylistic Set' variation, % which usually corresponds to an alternate glyph style for a range of @@ -1254,6 +1253,19 @@ This work consists of this file fontspec.dtx % See \vref{sec:newfeatures} for a way to assign names to stylistic sets, % which should be done on a per-font basis. % +% \subsection{Character Variants} +% +% Similar to the `Stylistic Sets' above, `Character Variations' are selected +% numerically to adjust the output of (usually) a single character for the +% particular font. These correspond to the OpenType features |cv01| to |cv99|. +% +% I don't have a font to demonstrate this with (please suggest one if you +% know of a free font with this feature!), but the syntax is similar to that +% above: +% \begin{verbatim} +% \fontspec[CharacterVariant={1,3,5}]{...} +% \end{verbatim} +% % \subsection{Alternates} % % The \feat{Alternate} feature (for the raw OpenType feature |salt|) is used to access alternate font glyphs when variations exist in the font, such as in \exref{salt}. @@ -1295,32 +1307,32 @@ This work consists of this file fontspec.dtx % subtitutions with similar characteristics. % Note the occasional inconsistency with which font features are labelled; a long-tailed `Q' could turn up anywhere! % -% \begin{Lexample}[firstline=2]{style-alt}{Example of the \opt{Alternate} option of the \feat{Style} feature.} +% \begin{Xexample}[firstline=2]{style-alt}{Example of the \opt{Alternate} option of the \feat{Style} feature.} % \Large % \fontspec{Warnock Pro} % K Q R k v w y \\ % \addfontfeature{Style=Alternate} % K Q R k v w y -% \end{Lexample} +% \end{Xexample} % -% \begin{Lexample}[firstline=2]{style-hist}{Example of the \opt{Historic} option of the \feat{Style} feature.} +% \begin{Xexample}[firstline=2]{style-hist}{Example of the \opt{Historic} option of the \feat{Style} feature.} % \Large % \fontspec{Adobe Jenson Pro} % M Q Z \\ % \addfontfeature{Style=Historic} % M Q Z -% \end{Lexample} +% \end{Xexample} % % In other features, larger breadths of changes can be seen, covering % the style of an entire alphabet. See \exref{style-titl} and \exref{style-itrub}; in the latter, the \opt{Italic} option affects the Latin text and the \opt{Ruby} option the Japanese. % -% \begin{Lexample}[firstline=2]{style-titl}{Example of the \opt{TitlingCaps} option of the \feat{Style} feature.} +% \begin{Xexample}[firstline=2]{style-titl}{Example of the \opt{TitlingCaps} option of the \feat{Style} feature.} % \Large % \fontspec{Adobe Garamond Pro} % TITLING CAPS \\ % \addfontfeature{Style=TitlingCaps} % TITLING CAPS -% \end{Lexample} +% \end{Xexample} % % \begin{Xexample}[firstline=2]{style-itrub}{Example of the \opt{Italic} and \opt{Ruby} options of the \feat{Style} feature.} % \Large \def\kana{ようこそ ワカヨタレソ} @@ -1364,14 +1376,15 @@ This work consists of this file fontspec.dtx % \end{features} % % As briefly mentioned previously at the end of \vref{sec:letters}, -% the \opt{Uppercase} option will add a small amount of tracking between uppercase letters, seen in \exref{kernup}. +% the \opt{Uppercase} option will add a small amount of tracking between uppercase letters, seen in \exref{kernup}, which uses the Romande fonts\footnote{\url{http://arkandis.tuxfamily.org/adffonts.html}} (thanks to Clea F. Rees for the suggestion). % -% \begin{Lexample}{kernup}{Adding extra kerning for uppercase letters.} -% \fontspec{Warnock Pro} -% UPPER-CASE EXAMPLE \\ +% \begin{Xexample}[firstline=2]{kernup}{Adding extra kerning for uppercase letters.} +% \large +% \fontspec{Romande ADF Std Bold} +% UPPERCASE EXAMPLE \\ % \addfontfeature{Kerning=Uppercase} -% UPPER-CASE EXAMPLE -% \end{Lexample} +% UPPERCASE EXAMPLE +% \end{Xexample} % % % \subsection{Font transformations} @@ -1523,79 +1536,47 @@ This work consists of this file fontspec.dtx % % Because these font features can % change which features are able to be selected for the font, they are selected -% by \pkg{fontspec} before all others and will specifically select the \opt{ICU} +% by \pkg{fontspec} before all others and, if \XeTeX\ is being used, will specifically select the \opt{ICU} % renderer for this font, as described in \vref{sec:renderer}. % % -% \iffalse -% \subsubsection{\feat{Script} examples} +% \subsubsection{\feat{Script} and \feat{Language} examples} % -% In the following examples, the same font is used to typeset the -% verbatim input and the \XeTeX\ output. Because the \opt{Script} is -% only specified for the output, the text is rendered incorrectly in -% the verbatim input. Many examples of incorrect diacritic spacing as +% In the following examples, the Code2000 font\footnote{\url{http://www.code2000.net/}} +% is used to typeset the input without and without the OpenType Script applied. The text is only rendered correctly in the second case; +% many examples of incorrect diacritic spacing as % well as a lack of contextual ligatures and rearrangement can be % seen. Thanks to \name{Jonathan Kew}, \name{Yves Codet} and % \name{Gildas Hamel} for their contributions towards these examples. % -% \begingroup -% \setverbwidth{0.5\textwidth} -% \begin{opentypeexample} -% \fontspec[Script=Arabic]{Code2000} -% العربي -% \end{opentypeexample} -% \begin{opentypeexample} -% \fontspec[Script=Devanagari]{Code2000} -% हिन्दी -% \end{opentypeexample} -% \begin{opentypeexample} -% \fontspec[Script=Bengali]{Code2000} -% লেখ -% \end{opentypeexample} -% \begin{opentypeexample} -% \fontspec[Script=Gujarati]{Code2000} -% મર્યાદા-સૂચક નિવેદન -% \end{opentypeexample} -% \begin{opentypeexample} -% \fontspec[Script=Malayalam]{Code2000} -% നമ്മുടെ പാരബര്യ -% \end{opentypeexample} -% \begin{opentypeexample} -% \fontspec[Script=Gurmukhi]{Code2000} -% ਆਦਿ ਸਚੁ ਜੁਗਾਦਿ ਸਚੁ -% \end{opentypeexample} -% \begin{opentypeexample} -% \fontspec[Script=Tamil]{Code2000} -% தமிழ் தேடி -% \end{opentypeexample} -% \begin{opentypeexample} -% \fontspec[Script=Hebrew]{Code2000} -% רִדְתָּֽהּ -% \end{opentypeexample} -% \endgroup -% -% \subsubsection{\feat{Language} examples} +% \begin{Xexample}[firstline=14,lastline=23]{script-lang}{An example of various Scripts and Languages.} +% \def\testfeature#1#2{%^^A +% \fontspec{\examplefont}#2 & \fontspec[#1]{\examplefont}#2\\[1ex]} +% \def \examplefont{Code2000} +% \def \arabictext{العربي} +% \def \devanagaritext{हिन्दी} +% \def \bengalitext{লেখ} +% \def \gujaratitext{મર્યાદા-સૂચક નિવેદન} +% \def \malayalamtext{നമ്മുടെ പാരബര്യ} +% \def \gurmukhitext{ਆਦਿ ਸਚੁ ਜੁਗਾਦਿ ਸਚੁ} +% \def \tamiltext{தமிழ் தேடி} +% \def \hebrewtext{רִדְתָּֽהּ} +% \def \vietnamesetext{cấp số mỗi} +% \begin{tabular}{r@{\quad}l} +% \testfeature{Script=Arabic}{\arabictext} +% \testfeature{Script=Devanagari}{\devanagaritext} +% \testfeature{Script=Bengali}{\bengalitext} +% \testfeature{Script=Gujarati}{\gujaratitext} +% \testfeature{Script=Malayalam}{\malayalamtext} +% \testfeature{Script=Gurmukhi}{\gurmukhitext} +% \testfeature{Script=Tamil}{\tamiltext} +% \testfeature{Script=Hebrew}{\hebrewtext} +% \def\examplefont{Doulos SIL} +% \testfeature{Language=Vietnamese}{\vietnamesetext} +% \end{tabular} +% \end{Xexample} % -% Vietnamese requires careful diacritic placement: -% \begingroup -% \setexsize\Large -% \begin{opentypeexample} -% \fontspec{Doulos SIL} -% cấp số mỗi \\ -% \addfontfeature{Language=Vietnamese} -% cấp số mỗi -% \end{opentypeexample} -% \noindent Moldavian, as a typical example from Ralf Stubner's FPL Neu font: -% \setexsize\Large -% \begin{opentypeexample} -% \fontspec{FPL Neu} -% Ş ş Ţ ţ \\ -% \addfontfeature{Language=Moldavian} -% Ş ş Ţ ţ -% \end{opentypeexample} -% \endgroup % -% \fi % % \subsubsection{Defining new scripts and languages} % @@ -1608,7 +1589,7 @@ This work consists of this file fontspec.dtx % \newfontlanguage{Turkish}{TUR} % \end{Verbatim} % The first argument is the \pkg{fontspec} name, the second the OpenType -% definition. The advantage to using these commands rather than \cmd\newfontfeature\ +% tag. The advantage to using these commands rather than \cmd\newfontfeature\ % (see \vref{sec:newfeatures}) is the error-checking that is performed when % the script or language is requested. % @@ -2321,7 +2302,7 @@ This work consists of this file fontspec.dtx % \LaTeX\ defines the macro \cmd\-\ to insert discretionary hyphenation points. % However, it is hard-coded in \LaTeX\ to use the hyphen |-| character. Since \pkg{fontspec} % makes it easy to change the hyphenation character on a per font basis, it would -% be nice if \cmd\-\ adjusted automatically — and now it does. +% be nice if \cmd\-\ adjusted automatically --- and now it does. % % \StopEventually{} % @@ -4827,8 +4808,8 @@ This work consists of this file fontspec.dtx \zf@define@feature@option{Ligatures}{NoDiscretionary}{1}{5}{-dlig} \zf@define@feature@option{Ligatures}{Contextual} {}{} {+clig} \zf@define@feature@option{Ligatures}{NoContextual} {}{} {-clig} -\zf@define@feature@option{Ligatures}{Historical} {}{} {+hlig} -\zf@define@feature@option{Ligatures}{NoHistorical} {}{} {-hlig} +\zf@define@feature@option{Ligatures}{Historic} {}{} {+hlig} +\zf@define@feature@option{Ligatures}{NoHistoric} {}{} {-hlig} \zf@define@feature@option{Ligatures}{Logos} {1}{6} {} \zf@define@feature@option{Ligatures}{NoLogos} {1}{7} {} \zf@define@feature@option{Ligatures}{Rebus} {1}{8} {} @@ -4977,25 +4958,42 @@ This work consists of this file fontspec.dtx \setkeys*[zf@feat]{Alternate}{#1} \unless\ifx\XKV@rm\@empty \def\XKV@tfam{Alternate} - \fontspec_make_feature:nnn{17}{#1}{+salt=#1} + \fontspec_make_feature:nnx {17}{#1} { \fontspec_salt:n {#1} } \fi \clist_set_eq:NN \XKV@rm \l_fontspec_tmpa_clist } % \end{macrocode} % % \begin{macrocode} +\xetex_or_luatex:nnn { \cs_set:Npn \fontspec_salt:n #1 } + {+salt=#1} { +salt= \intexpr_eval:n {#1+1} } +% \end{macrocode} +% +% \begin{macrocode} \define@key[zf]{options}{Variant}{ \clist_set_eq:NN \l_fontspec_tmpa_clist \XKV@rm \setkeys*[zf@feat]{Variant}{#1} \unless\ifx\XKV@rm\@empty \def\XKV@tfam{Variant} - \fontspec_make_feature:nnx{18}{#1}{+ss\two@digits{#1}} + \fontspec_make_feature:nnx {18}{#1} { +ss \two@digits {#1} } \fi \clist_set_eq:NN \XKV@rm \l_fontspec_tmpa_clist } \aliasfontfeature{Variant}{StylisticSet} % \end{macrocode} % +% \begin{macrocode} +\define@key[zf]{options}{CharacterVariant}{ + \clist_set_eq:NN \l_fontspec_tmpa_clist \XKV@rm + \setkeys*[zf@feat]{CharacterVariant}{#1} + \unless\ifx\XKV@rm\@empty + \def\XKV@tfam{CharacterVariant} + \fontspec_make_feature:nnx {}{} { +cv \two@digits {#1} } + \fi + \clist_set_eq:NN \XKV@rm \l_fontspec_tmpa_clist +} +% \end{macrocode} +% % \subsubsection{Style} % \begin{macrocode} \zf@define@font@feature{Style} @@ -5059,12 +5057,17 @@ This work consists of this file fontspec.dtx \setkeys*[zf@feat]{Annotation}{#1} \unless\ifx\XKV@rm\@empty \def\XKV@tfam{Alternate} - \fontspec_make_feature:nnn{}{}{+nalt=#1} + \fontspec_make_feature:nnx {}{} { \fontspec_nalt:n {#1} } \fi \clist_set_eq:NN \XKV@rm \l_fontspec_tmpa_clist } % \end{macrocode} % +% \begin{macrocode} +\xetex_or_luatex:nnn { \cs_set:Npn \fontspec_nalt:n #1 } + {+nalt=#1} { +nalt= \intexpr_eval:n {#1+1} } +% \end{macrocode} +% % \subsubsection{Vertical} % \begin{macrocode} \zf@define@font@feature{Vertical} diff --git a/Master/texmf-dist/tex/latex/fontspec/fontspec-patches.sty b/Master/texmf-dist/tex/latex/fontspec/fontspec-patches.sty index 73bda2464b5..4a52efff3e4 100644 --- a/Master/texmf-dist/tex/latex/fontspec/fontspec-patches.sty +++ b/Master/texmf-dist/tex/latex/fontspec/fontspec-patches.sty @@ -14,7 +14,7 @@ %% %% \ProvidesPackage{fontspec-patches} - [2010/07/11 v2.0a Advanced font selection for XeLaTeX/LuaLaTeX] + [2010/07/14 v2.0b Advanced font selection for XeLaTeX/LuaLaTeX] diff --git a/Master/texmf-dist/tex/latex/fontspec/fontspec.sty b/Master/texmf-dist/tex/latex/fontspec/fontspec.sty index bed70f621fb..d842d849224 100644 --- a/Master/texmf-dist/tex/latex/fontspec/fontspec.sty +++ b/Master/texmf-dist/tex/latex/fontspec/fontspec.sty @@ -14,7 +14,7 @@ %% %% \ProvidesPackage{fontspec} - [2010/07/11 v2.0a Advanced font selection for XeLaTeX/LuaLaTeX] + [2010/07/14 v2.0b Advanced font selection for XeLaTeX/LuaLaTeX] @@ -1443,8 +1443,8 @@ \zf@define@feature@option{Ligatures}{NoDiscretionary}{1}{5}{-dlig} \zf@define@feature@option{Ligatures}{Contextual} {}{} {+clig} \zf@define@feature@option{Ligatures}{NoContextual} {}{} {-clig} -\zf@define@feature@option{Ligatures}{Historical} {}{} {+hlig} -\zf@define@feature@option{Ligatures}{NoHistorical} {}{} {-hlig} +\zf@define@feature@option{Ligatures}{Historic} {}{} {+hlig} +\zf@define@feature@option{Ligatures}{NoHistoric} {}{} {-hlig} \zf@define@feature@option{Ligatures}{Logos} {1}{6} {} \zf@define@feature@option{Ligatures}{NoLogos} {1}{7} {} \zf@define@feature@option{Ligatures}{Rebus} {1}{8} {} @@ -1537,20 +1537,31 @@ \setkeys*[zf@feat]{Alternate}{#1} \unless\ifx\XKV@rm\@empty \def\XKV@tfam{Alternate} - \fontspec_make_feature:nnn{17}{#1}{+salt=#1} + \fontspec_make_feature:nnx {17}{#1} { \fontspec_salt:n {#1} } \fi \clist_set_eq:NN \XKV@rm \l_fontspec_tmpa_clist } +\xetex_or_luatex:nnn { \cs_set:Npn \fontspec_salt:n #1 } + {+salt=#1} { +salt= \intexpr_eval:n {#1+1} } \define@key[zf]{options}{Variant}{ \clist_set_eq:NN \l_fontspec_tmpa_clist \XKV@rm \setkeys*[zf@feat]{Variant}{#1} \unless\ifx\XKV@rm\@empty \def\XKV@tfam{Variant} - \fontspec_make_feature:nnx{18}{#1}{+ss\two@digits{#1}} + \fontspec_make_feature:nnx {18}{#1} { +ss \two@digits {#1} } \fi \clist_set_eq:NN \XKV@rm \l_fontspec_tmpa_clist } \aliasfontfeature{Variant}{StylisticSet} +\define@key[zf]{options}{CharacterVariant}{ + \clist_set_eq:NN \l_fontspec_tmpa_clist \XKV@rm + \setkeys*[zf@feat]{CharacterVariant}{#1} + \unless\ifx\XKV@rm\@empty + \def\XKV@tfam{CharacterVariant} + \fontspec_make_feature:nnx {}{} { +cv \two@digits {#1} } + \fi + \clist_set_eq:NN \XKV@rm \l_fontspec_tmpa_clist +} \zf@define@font@feature{Style} \zf@define@feature@option{Style}{Alternate} {} {} {+salt} \zf@define@feature@option{Style}{Italic} {32}{2}{+ital} @@ -1597,10 +1608,12 @@ \setkeys*[zf@feat]{Annotation}{#1} \unless\ifx\XKV@rm\@empty \def\XKV@tfam{Alternate} - \fontspec_make_feature:nnn{}{}{+nalt=#1} + \fontspec_make_feature:nnx {}{} { \fontspec_nalt:n {#1} } \fi \clist_set_eq:NN \XKV@rm \l_fontspec_tmpa_clist } +\xetex_or_luatex:nnn { \cs_set:Npn \fontspec_nalt:n #1 } + {+nalt=#1} { +nalt= \intexpr_eval:n {#1+1} } \zf@define@font@feature{Vertical} \define@key[zf@feat]{Vertical}{RotatedGlyphs}[]{ \ifzf@icu |