diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/fontspec/fontspec.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/fontspec/fontspec.dtx | 143 |
1 files changed, 80 insertions, 63 deletions
diff --git a/Master/texmf-dist/source/latex/fontspec/fontspec.dtx b/Master/texmf-dist/source/latex/fontspec/fontspec.dtx index da3219ae1ac..11582be7e05 100644 --- a/Master/texmf-dist/source/latex/fontspec/fontspec.dtx +++ b/Master/texmf-dist/source/latex/fontspec/fontspec.dtx @@ -38,14 +38,16 @@ Distributable under the LaTeX Project Public License, version 1.3c or higher (your choice). The latest version of this license is at: http://www.latex-project.org/lppl.txt -This work is "author-maintained" by Will Robertson. +This work is "maintained" by Will Robertson. This work consists of this file fontspec.dtx and the derived files fontspec.sty, fontspec.lua, fontspec.cfg, - fontspec-xetex.tex, - fontspec-luatex.tex, + fontspec-xetex.sty, + fontspec-luatex.sty, + fontspec-patches.sty, + fontspec-example.tex, and fontspec.pdf. \endpostamble @@ -91,7 +93,7 @@ This work consists of this file fontspec.dtx %<fontspec&luatex>\ProvidesPackage{fontspec-luatex} %<patches>\ProvidesPackage{fontspec-patches} %<*fontspec|patches> - [2014/06/01 v2.4 Font selection for XeLaTeX and LuaLaTeX] + [2014/06/21 v2.4a Font selection for XeLaTeX and LuaLaTeX] %</fontspec|patches> % %<*driver> @@ -1082,14 +1084,14 @@ This work consists of this file fontspec.dtx % the text. The colour is defined as a triplet of two-digit Hex RGB % values, with optionally another value for the transparency (where % |00| is completely transparent and |FF| is opaque.) -% \begin{Xexample}{color}{Selecting colour with transparency.} +% \begin{Lexample}{color}{Selecting colour with transparency. N.B. due to a conflict betweeen \pkg{fontspec} and the \pkg{preview} package, this example currently does not show any transparency!} % \fontsize{48}{48} % \fontspec{TeX Gyre Bonum Bold} -% {\addfontfeature{Color=FF000099}W}\kern-1ex -% {\addfontfeature{Color=0000FF99}S}\kern-0.8ex -% {\addfontfeature{Color=DDBB2299}P}\kern-0.8ex +% {\addfontfeature{Color=FF000099}W}\kern-0.5ex +% {\addfontfeature{Color=0000FF99}S}\kern-0.4ex +% {\addfontfeature{Color=DDBB2299}P}\kern-0.4ex % {\addfontfeature{Color=00BB3399}R} -% \end{Xexample} +% \end{Lexample} % Transparency is supported by \LuaLaTeX; \XeLaTeX\ with the \texttt{xdvipdfmx} driver % does not support this feature. % @@ -1236,7 +1238,7 @@ This work consists of this file fontspec.dtx % EXAMPLE HYPHENATION% % }}\qquad\qquad\null\par\bigskip} % -% \fontspec{Linux Libertine} +% \fontspec{Linux Libertine O} % \addfontfeature{HyphenChar=None} % \text % \addfontfeature{HyphenChar={+}} @@ -1417,7 +1419,7 @@ This work consists of this file fontspec.dtx % to better match the surrounding letters. % % \begin{Lexample}{letters-uppercase}{An example of the \opt{Uppercase} option of the \feat{Letters} feature.} -% \fontspec{Linux Libertine} +% \fontspec{Linux Libertine O} % UPPER-CASE example \\ % \addfontfeature{Letters=Uppercase} % UPPER-CASE example @@ -1479,7 +1481,6 @@ This work consists of this file fontspec.dtx % \subsection{Contextuals} % This feature refers to substitutions of glyphs that vary `contextually' by their relative position in a word or string of characters; % features such as contextual swashes are accessed via the options shown in \ref{feat:Contextuals}. -% See \exref{swash} for an, er, example. % % \begin{features}{Contextuals} % \otf{Swash}{cswh} @@ -1490,16 +1491,9 @@ This work consists of this file fontspec.dtx % \otf{Inner}{medi} % \end{features} % -% \begin{Lexample}{swash}{An example of the \opt{Swashes} option of the \opt{Contextuals} feature.} -% \fontspec{Warnock Pro} \itshape -% Without Contextual Swashes \\ -% \fontspec{Warnock Pro}[Contextuals=Swash] -% With Contextual Swashes; cf. W C S -% \end{Lexample} -% % Historic forms are accessed in OpenType % fonts via the feature \feat{Style=Historic}; this is generally \emph{not} -% contextual in OpenType, which is why it is not included here. +% contextual in OpenType, which is why it is not included in this feature. % % \subsection{Vertical Position} % @@ -1524,17 +1518,15 @@ This work consists of this file fontspec.dtx % \opt{Numerator} and \opt{Denominator} should only be used for creating % arbitrary fractions (see next section). % -% \begin{Lexample}{vertpos}{The \feat{VerticalPosition} feature. Note that the \opt{Ordinal} option can be quite unreliable, as the results here demonstrate.} -% \fontspec{Warnock Pro}[VerticalPosition=Superior] -% Sup: abdehilmnorst (-\$12,345.67) \\ -% \fontspec{Warnock Pro}[VerticalPosition=Numerator] +% \begin{Lexample}{vertpos}{The \feat{VerticalPosition} feature.} +% \fontspec{LibreCaslonText-Regular.otf}[VerticalPosition=Superior] +% Superior: 1234567890 \\ +% \fontspec{LibreCaslonText-Regular.otf}[VerticalPosition=Numerator] % Numerator: 12345 \\ -% \fontspec{Warnock Pro}[VerticalPosition=Denominator] +% \fontspec{LibreCaslonText-Regular.otf}[VerticalPosition=Denominator] % Denominator: 12345 \\ -% \fontspec{Warnock Pro}[VerticalPosition=ScientificInferior] -% Scientific Inferior: 12345 \\ -% \fontspec{Warnock Pro}[VerticalPosition=Ordinal] -% `Ordinals': 1st 2nd 3rd 4th 0th +% \fontspec{LibreCaslonText-Regular.otf}[VerticalPosition=ScientificInferior] +% Scientific Inferior: 12345 % \end{Lexample} % % The \pkg{realscripts} package @@ -1622,20 +1614,20 @@ This work consists of this file fontspec.dtx % % \begin{Lexample}[firstline=2]{cv}{The \feat{CharacterVariant} feature showing off Georg Duffner's open source Garamond revival font.} % \huge -% \fontspec{EB Garamond Italic} very \\ -% \fontspec{EB Garamond Italic}[CharacterVariant=5] very \\ -% \fontspec{EB Garamond Italic}[CharacterVariant=5:0] very \\ -% \fontspec{EB Garamond Italic}[CharacterVariant=5:1] very \\ -% \fontspec{EB Garamond Italic}[CharacterVariant=5:2] very \\ -% \fontspec{EB Garamond Italic}[CharacterVariant=5:3] very +% \fontspec{EB Garamond 12 Italic} very \\ +% \fontspec{EB Garamond 12 Italic}[CharacterVariant=5] very \\ +% \fontspec{EB Garamond 12 Italic}[CharacterVariant=5:0] very \\ +% \fontspec{EB Garamond 12 Italic}[CharacterVariant=5:1] very \\ +% \fontspec{EB Garamond 12 Italic}[CharacterVariant=5:2] very \\ +% \fontspec{EB Garamond 12 Italic}[CharacterVariant=5:3] very % \end{Lexample} % % \begin{Lexample}[firstline=2]{cv2}{The \feat{CharacterVariant} feature selecting multiple variants simultaneously.} % \huge -% \fontspec{EB Garamond Italic} \& violet \\ -% \fontspec{EB Garamond Italic}[CharacterVariant={4}] \& violet \\ -% \fontspec{EB Garamond Italic}[CharacterVariant={5:2}] \& violet \\ -% \fontspec{EB Garamond Italic}[CharacterVariant={4,5:2}] \& violet +% \fontspec{EB Garamond 12 Italic} \& violet \\ +% \fontspec{EB Garamond 12 Italic}[CharacterVariant={4}] \& violet \\ +% \fontspec{EB Garamond 12 Italic}[CharacterVariant={5:2}] \& violet \\ +% \fontspec{EB Garamond 12 Italic}[CharacterVariant={4,5:2}] \& violet % \end{Lexample} % % \subsection{Alternates} @@ -1647,7 +1639,7 @@ This work consists of this file fontspec.dtx % % \begin{Xexample}[firstline=2]{salt}{The \feat{Alternate} feature.} % \huge -% \fontspec{Linux Libertine} +% \fontspec{Linux Libertine O} % \textsc{a} \& h \\ % \addfontfeature{Alternate=0} % \textsc{a} \& h @@ -1684,10 +1676,10 @@ This work consists of this file fontspec.dtx % % \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 \\ +% \fontspec{Quattrocento Roman} +% M Q W \\ % \addfontfeature{Style=Alternate} -% K Q R k v w y +% M Q W % \end{Xexample} % % \begin{Xexample}[firstline=2]{style-hist}{Example of the \opt{Historic} option of the \feat{Style} feature.} @@ -2338,12 +2330,11 @@ This work consists of this file fontspec.dtx % % \begin{Xexample}[firstline=2,lastline=9]{aat-var}{Nine variants of Zapfino.} % \Huge \rule{0pt}{2cm} -% \newcounter{var}\newcounter{trans} +% \newcounter{var} % \whiledo{\value{var}<9}{% -% \stepcounter{trans}% % \edef\1{% % \noexpand\fontspec[Variant=\thevar, -% Color=005599\thetrans\thetrans]{Zapfino}}\1% +% Color=0099\thevar\thevar]{Zapfino}}\1% % \makebox[0.75\width]{d}% % \stepcounter{var}} % \hspace*{2cm} @@ -2714,7 +2705,7 @@ This work consists of this file fontspec.dtx % By default \LaTeX\ defines symbolic footnote characters in terms of commands % that don't resolve well; better results can be achieved by using specific Unicode characters or proper LICRs with the \pkg{xunicode} package. % -% This problem has been solved by loading the \pkg{fixltx2e} package. +% This problem is solved by defining \cs{@fnsymbol} in a similar manner to the \pkg{fixltx2e} package. % % \section{Verbatim} % \label{sec:verb} @@ -2773,6 +2764,12 @@ This work consists of this file fontspec.dtx \ExplSyntaxOn % \end{macrocode} % +% Quick fix for lualatex-math: +% \begin{macrocode} +\cs_if_exist:NF \lua_now_x:n + { \cs_set_eq:NN \lua_now_x:n \directlua } +% \end{macrocode} +% % Check engine and load specific modules. For Lua\TeX, load only % \pkg{luaotfload} which loads \pkg{luatexbase} and \pkg{lualibs} too. % @@ -4025,12 +4022,13 @@ This work consists of this file fontspec.dtx \@@_set_faces: \@@_info:nxx {defining-font} {#1} {#2} %<*debug> + \typeout{"\l_@@_fontid_tl"~ defined.} \@@_warning:nxx {defining-font} {#1} {#2} %</debug> } { %<*debug> - \typeout{"#2"~ already~ defined~ apparently.} + \typeout{"\l_@@_fontid_tl"~ already~ defined~ apparently.} %</debug> } \group_end: @@ -4217,24 +4215,27 @@ This work consists of this file fontspec.dtx % with a counter to create a simple NFSS family name for the font we're % selecting. % -% The font name is fully expanded, in case it's defined in terms of macros, before having its spaces zapped. % \begin{macrocode} \prg_new_conditional:Nnn \@@_save_family:n {TF} { +%<debug>\typeout{save~ family:~ #1} \cs_if_exist:NT \l_@@_nfss_fam_tl { \cs_set_eq:cN {g_@@_UID_\l_@@_fontid_tl} \l_@@_nfss_fam_tl } \cs_if_exist:cF {g_@@_UID_\l_@@_fontid_tl} { - \cs_if_exist:cTF {g_@@_family_#1_int} - { \int_gincr:c {g_@@_family_#1_int} } - { \int_new:c {g_@@_family_#1_int} } + % The font name is fully expanded, in case it's defined in terms of macros, before having its spaces zapped: \tl_set:Nx \l_@@_tmp_tl {#1} \tl_remove_all:Nn \l_@@_tmp_tl {~} + + \cs_if_exist:cTF {g_@@_family_ \l_@@_tmp_tl _int} + { \int_gincr:c {g_@@_family_ \l_@@_tmp_tl _int} } + { \int_new:c {g_@@_family_ \l_@@_tmp_tl _int} } + \tl_gset:cx {g_@@_UID_\l_@@_fontid_tl} { - \l_@@_tmp_tl ( \int_use:c {g_@@_family_#1_int} ) + \l_@@_tmp_tl ( \int_use:c {g_@@_family_ \l_@@_tmp_tl _int} ) } } \tl_gset:Nv \l_fontspec_family_tl {g_@@_UID_\l_@@_fontid_tl} @@ -5382,11 +5383,10 @@ This work consists of this file fontspec.dtx } \@@_keys_define_code:nnn {fontspec-preparse} {BoldFeatures} { - \ \clist_set:Nn \l_@@_fontfeat_bf_clist {#1} - \prop_put:NxV \l_@@_nfss_prop - {BoldFont-\g_@@_curr_series_tl} \l_@@_curr_bfname_tl +% \prop_put:NxV \l_@@_nfss_prop +% {BoldFont-\g_@@_curr_series_tl} \l_@@_curr_bfname_tl } \@@_keys_define_code:nnn {fontspec-preparse} {ItalicFeatures} { @@ -5562,10 +5562,11 @@ This work consists of this file fontspec.dtx \rmfamily \@@_set_font_dimen:NnN \l_@@_tmpa_dim {#1} \font \@@_set_font_dimen:NnN \l_@@_tmpb_dim {#1} \l_fontspec_font - \fp_set_from_dim:Nn \l_@@_tmpa_fp { \l_@@_tmpa_dim } - \fp_set_from_dim:Nn \l_@@_tmpb_fp { \l_@@_tmpb_dim } - \fp_div:Nn \l_@@_tmpa_fp { \l_@@_tmpb_fp } - \tl_gset:Nx \l_@@_scale_tl { \fp_use:N \l_@@_tmpa_fp } + \tl_gset:Nx \l_@@_scale_tl + { + \fp_eval:n { \dim_to_fp:n {\l_@@_tmpa_dim} / + \dim_to_fp:n {\l_@@_tmpb_dim} } + } \@@_info:n {set-scale} \group_end: } @@ -6768,7 +6769,7 @@ This work consists of this file fontspec.dtx % \begin{macrocode} \DeclareSymbolFont{operators}\g_fontspec_encoding_tl\g_@@_mathrm_tl\mddefault\updefault \SetSymbolFont{operators}{normal}\g_fontspec_encoding_tl\g_@@_mathrm_tl\mddefault\updefault - \SetMathAlphabet\mathrm{normal}\g_fontspec_encoding_tl\g_@@_mathrm_tl\mddefault\updefault + \DeclareSymbolFontAlphabet\mathrm{operators} \SetMathAlphabet\mathit{normal}\g_fontspec_encoding_tl\g_@@_mathrm_tl\mddefault\itdefault \SetMathAlphabet\mathbf{normal}\g_fontspec_encoding_tl\g_@@_mathrm_tl\bfdefault\updefault \SetMathAlphabet\mathsf{normal}\g_fontspec_encoding_tl\g_@@_mathsf_tl\mddefault\updefault @@ -6776,7 +6777,6 @@ This work consists of this file fontspec.dtx \SetSymbolFont{operators}{bold}\g_fontspec_encoding_tl\g_@@_mathrm_tl\bfdefault\updefault \tl_if_empty:NTF \g_@@_bfmathrm_tl { - \SetMathAlphabet\mathrm{bold}\g_fontspec_encoding_tl\g_@@_mathrm_tl\bfdefault\updefault \SetMathAlphabet\mathit{bold}\g_fontspec_encoding_tl\g_@@_mathrm_tl\bfdefault\itdefault } { @@ -6989,9 +6989,26 @@ end % \end{macrocode} % % \subsection{Unicode footnote symbols} +% We used to load \pkg{fixltx2e} but this is not recommended; it should ideally be loaded before \cs{begindocument}, especially from TL2014 onwards. % \begin{macrocode} -\RequirePackage{fixltx2e}[2006/03/24] \ExplSyntaxOn +\cs_set_protected:Npn \@fnsymbol #1 + { + \int_case:nnF {#1} + { + {0} {} + {1} { \mode_if_math:TF *\textasteriskcentered } + {2} { \mode_if_math:TF \dagger\textdagger } + {3} { \mode_if_math:TF \ddagger\textdaggerdbl } + {4} { \mode_if_math:TF \mathsection\textsection } + {5} { \mode_if_math:TF \mathparagraph\textparagraph } + {6} { \mode_if_math:TF \|\textbardbl } + {7} { \mode_if_math:TF {**}{\textasteriskcentered\textasteriskcentered} } + {8} { \mode_if_math:TF {\dagger\dagger}{\textdagger\textdagger} } + {9} { \mode_if_math:TF {\ddagger\ddagger}{\textdaggerdbl\textdaggerdbl} } + } + { \@ctrerr } + } % \end{macrocode} % % \subsection{Emph} |