texlive[45697] Master/texmf-dist: fontspec (5nov17)
commits+karl at tug.org
commits+karl at tug.org
Sun Nov 5 23:03:44 CET 2017
Revision: 45697
http://tug.org/svn/texlive?view=revision&revision=45697
Author: karl
Date: 2017-11-05 23:03:43 +0100 (Sun, 05 Nov 2017)
Log Message:
-----------
fontspec (5nov17)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/latex/fontspec/CHANGES.md
trunk/Master/texmf-dist/doc/latex/fontspec/fontspec-example.tex
trunk/Master/texmf-dist/doc/latex/fontspec/fontspec.pdf
trunk/Master/texmf-dist/source/latex/fontspec/fontspec-api.dtx
trunk/Master/texmf-dist/source/latex/fontspec/fontspec-closing.dtx
trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc-api.tex
trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc-enc.tex
trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc-featset.tex
trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc-fontsel.tex
trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc-intro.tex
trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc-luatex.tex
trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc-opentype.tex
trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc-style.sty
trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc-xetex.tex
trunk/Master/texmf-dist/source/latex/fontspec/fontspec-enc.dtx
trunk/Master/texmf-dist/source/latex/fontspec/fontspec-feat-aat.dtx
trunk/Master/texmf-dist/source/latex/fontspec/fontspec-feat-opentype.dtx
trunk/Master/texmf-dist/source/latex/fontspec/fontspec-fontload.dtx
trunk/Master/texmf-dist/source/latex/fontspec/fontspec-graphite.dtx
trunk/Master/texmf-dist/source/latex/fontspec/fontspec-interfaces.dtx
trunk/Master/texmf-dist/source/latex/fontspec/fontspec-internal.dtx
trunk/Master/texmf-dist/source/latex/fontspec/fontspec-keyval.dtx
trunk/Master/texmf-dist/source/latex/fontspec/fontspec-lang.dtx
trunk/Master/texmf-dist/source/latex/fontspec/fontspec-lua.dtx
trunk/Master/texmf-dist/source/latex/fontspec/fontspec-math.dtx
trunk/Master/texmf-dist/source/latex/fontspec/fontspec-msg.dtx
trunk/Master/texmf-dist/source/latex/fontspec/fontspec-opening.dtx
trunk/Master/texmf-dist/source/latex/fontspec/fontspec-opentype.dtx
trunk/Master/texmf-dist/source/latex/fontspec/fontspec-patches.dtx
trunk/Master/texmf-dist/source/latex/fontspec/fontspec-scripts.dtx
trunk/Master/texmf-dist/source/latex/fontspec/fontspec-user.dtx
trunk/Master/texmf-dist/source/latex/fontspec/fontspec-vars.dtx
trunk/Master/texmf-dist/source/latex/fontspec/fontspec-xfss.dtx
trunk/Master/texmf-dist/source/latex/fontspec/fontspec.dtx
trunk/Master/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty
trunk/Master/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty
trunk/Master/texmf-dist/tex/latex/fontspec/fontspec.cfg
trunk/Master/texmf-dist/tex/latex/fontspec/fontspec.lua
trunk/Master/texmf-dist/tex/latex/fontspec/fontspec.sty
Added Paths:
-----------
trunk/Master/texmf-dist/doc/latex/fontspec/fontspec-code.ltx
trunk/Master/texmf-dist/doc/latex/fontspec/fontspec-code.pdf
trunk/Master/texmf-dist/doc/latex/fontspec/fontspec.ltx
trunk/Master/texmf-dist/source/latex/fontspec/fontspec-code-load.dtx
trunk/Master/texmf-dist/source/latex/fontspec/fontspec-code.ltx
trunk/Master/texmf-dist/source/latex/fontspec/fontspec-example.tex
trunk/Master/texmf-dist/source/latex/fontspec/fontspec.ins
trunk/Master/texmf-dist/source/latex/fontspec/fontspec.ltx
Removed Paths:
-------------
trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc.tex
Modified: trunk/Master/texmf-dist/doc/latex/fontspec/CHANGES.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/fontspec/CHANGES.md 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/doc/latex/fontspec/CHANGES.md 2017-11-05 22:03:43 UTC (rev 45697)
@@ -2,6 +2,15 @@
Change history
==============
+- v2.6f (2017-11-05)
+
+ * Fix loading of Graphite fonts and add a little documentation (a better interface is needed, though)
+ * Correct and simplify some internal code that fixes a bug in the way some fonts are displayed in `\tracingoutput` mode.
+ * This also fixes an obscure bug using the API in which a query for a selected font feature
+ would test against the upright font in the current family regardless of the face/shape actually in use.
+ * This package now complies with the `expl3` option `check-declarations`.
+
+
- v2.6e (2017/09/22)
* Re-enable use of `HyphenChar=None` in LuaLaTeX. (Hyphenation and font choice are
Added: trunk/Master/texmf-dist/doc/latex/fontspec/fontspec-code.ltx
===================================================================
--- trunk/Master/texmf-dist/doc/latex/fontspec/fontspec-code.ltx (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/fontspec/fontspec-code.ltx 2017-11-05 22:03:43 UTC (rev 45697)
@@ -0,0 +1,44 @@
+%%^^A%% fontspec-code.ltx -- part of FONTSPEC <wspr.io/fontspec>
+
+\documentclass[a4paper]{l3doc}
+\usepackage{fontspec-doc-style}
+\begin{document}
+
+\GetFileInfo{fontspec.dtx}
+\title{The \textsf{fontspec} package\\Font selection for \XeLaTeX\ and \LuaLaTeX}
+\author{
+ \textsc{Will Robertson} and \textsc{Khaled Hosny}\\
+ \url{http://wspr.io/fontspec/}
+}
+\date{\filedate \qquad \fileversion}
+
+\maketitle
+\tableofcontents
+\newpage
+
+\def\DTX#1{\DocInput{#1}}
+\FONTSPECDTX
+
+\clearpage
+\PrintChanges
+
+\clearpage
+\setcounter{IndexColumns}{2}
+\PrintIndex
+
+\end{document}
+
+\endinput
+
+% /©
+% ------------------------------------------------
+% The FONTSPEC package <wspr.io/fontspec>
+% ------------------------------------------------
+% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+% Copyright 2009-2013 Khaled Hosny
+% ------------------------------------------------
+% 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/>.
+% ------------------------------------------------
+% ©/
Property changes on: trunk/Master/texmf-dist/doc/latex/fontspec/fontspec-code.ltx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/fontspec/fontspec-code.pdf
===================================================================
(Binary files differ)
Index: trunk/Master/texmf-dist/doc/latex/fontspec/fontspec-code.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/fontspec/fontspec-code.pdf 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/doc/latex/fontspec/fontspec-code.pdf 2017-11-05 22:03:43 UTC (rev 45697)
Property changes on: trunk/Master/texmf-dist/doc/latex/fontspec/fontspec-code.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/fontspec/fontspec-example.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/fontspec/fontspec-example.tex 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/doc/latex/fontspec/fontspec-example.tex 2017-11-05 22:03:43 UTC (rev 45697)
@@ -1,5 +1,5 @@
+%%^^A%% fontspec-example.tex -- part of FONTSPEC <wspr.io/fontspec>
-
\documentclass{article}
\usepackage{fontspec}
Added: trunk/Master/texmf-dist/doc/latex/fontspec/fontspec.ltx
===================================================================
--- trunk/Master/texmf-dist/doc/latex/fontspec/fontspec.ltx (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/fontspec/fontspec.ltx 2017-11-05 22:03:43 UTC (rev 45697)
@@ -0,0 +1,47 @@
+%%^^A%% fontspec.ltx -- part of FONTSPEC <wspr.io/fontspec>
+
+\ifdefined \XeTeXOTcountscripts \else \makeatletter
+ \@latex at error{^^J*** The fontspec documentation can only be typeset with `xelatex` ***\@gobble}\@ehc
+\fi
+
+\documentclass[a4paper]{l3doc}
+\usepackage{fontspec-doc-style}
+\begin{document}
+
+\GetFileInfo{fontspec.dtx}
+\title{The \textsf{fontspec} package\\Font selection for \XeLaTeX\ and \LuaLaTeX}
+\author{
+ \textsc{Will Robertson} and \textsc{Khaled Hosny}\\
+ \url{http://wspr.io/fontspec/}
+}
+\date{\filedate \qquad \fileversion}
+
+\maketitle
+\tableofcontents
+\newpage
+
+\include{fontspec-doc-intro}
+\include{fontspec-doc-fontsel}
+\include{fontspec-doc-featset}
+\include{fontspec-doc-opentype}
+\include{fontspec-doc-enc}
+\include{fontspec-doc-luatex}
+\include{fontspec-doc-xetex}
+\include{fontspec-doc-api}
+
+\end{document}
+
+\endinput
+
+% /©
+% ------------------------------------------------
+% The FONTSPEC package <wspr.io/fontspec>
+% ------------------------------------------------
+% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+% Copyright 2009-2013 Khaled Hosny
+% ------------------------------------------------
+% 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/>.
+% ------------------------------------------------
+% ©/
Property changes on: trunk/Master/texmf-dist/doc/latex/fontspec/fontspec.ltx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/fontspec/fontspec.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-api.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-api.dtx 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-api.dtx 2017-11-05 22:03:43 UTC (rev 45697)
@@ -1,3 +1,4 @@
+%%^^A%% fontspec-api.dtx -- part of FONTSPEC <wspr.io/fontspec>
% \section{Programmer's interface}
%
@@ -27,7 +28,7 @@
% \begin{macrocode}
\prg_new_conditional:Nnn \fontspec_if_fontspec_font: {TF,T,F}
{
- \cs_if_exist:cTF {g_@@_ \f at family _prop} \prg_return_true: \prg_return_false:
+ \cs_if_exist:cTF {g_@@_fontinfo_ \f at family _prop} \prg_return_true: \prg_return_false:
}
% \end{macrocode}
% \end{macro}
@@ -41,11 +42,10 @@
{
\fontspec_if_fontspec_font:TF
{
- \prop_get:cnN {g_@@_ \f at family _prop} {fontdef} \l_@@_fontdef_tl
- \@@_primitive_font_set:Nnn \l_fontspec_font {\l_@@_fontdef_tl} {\f at size pt}
+ \@@_set_font_type:N \font
\bool_if:NTF \l_@@_atsui_bool
{
- \@@_make_AAT_feature_string:nnTF {#1}{#2}
+ \@@_make_AAT_feature_string:NnnTF \font {#1} {#2}
\prg_return_true: \prg_return_false:
}
{
@@ -68,9 +68,7 @@
{
\fontspec_if_fontspec_font:TF
{
- \prop_get:cnN {g_@@_ \f at family _prop} {fontdef} \l_@@_fontdef_tl
- \@@_primitive_font_set:Nnn \l_fontspec_font {\l_@@_fontdef_tl} {\f at size pt}
- \@@_set_font_type:
+ \@@_set_font_type:N \font
\bool_if:NTF \l_@@_ot_bool \prg_return_true: \prg_return_false:
}
{
@@ -90,21 +88,19 @@
{
\fontspec_if_fontspec_font:TF
{
- \prop_get:cnN {g_@@_ \f at family _prop} {fontdef} \l_@@_fontdef_tl
- \@@_primitive_font_set:Nnn \l_fontspec_font {\l_@@_fontdef_tl} {\f at size pt}
- \@@_set_font_type:
+ \@@_set_font_type:N \font
\bool_if:NTF \l_@@_ot_bool
{
- \prop_get:cnN {g_@@_ \f at family _prop} {script-num} \l_@@_tmp_tl
+ \prop_get:cnN {g_@@_fontinfo_ \f at family _prop} {script-num} \l_@@_tmp_tl
\int_set:Nn \l_@@_script_int {\l_@@_tmp_tl}
- \prop_get:cnN {g_@@_ \f at family _prop} {lang-num} \l_@@_tmp_tl
+ \prop_get:cnN {g_@@_fontinfo_ \f at family _prop} {lang-num} \l_@@_tmp_tl
\int_set:Nn \l_@@_language_int {\l_@@_tmp_tl}
- \prop_get:cnN {g_@@_ \f at family _prop} {script-tag} \l_fontspec_script_tl
- \prop_get:cnN {g_@@_ \f at family _prop} {lang-tag} \l_fontspec_lang_tl
+ \prop_get:cnN {g_@@_fontinfo_ \f at family _prop} {script-tag} \l_fontspec_script_tl
+ \prop_get:cnN {g_@@_fontinfo_ \f at family _prop} {lang-tag} \l_fontspec_lang_tl
- \@@_check_ot_feat:nTF {#1} {\prg_return_true:} {\prg_return_false:}
+ \@@_check_ot_feat:NnTF \font {#1} {\prg_return_true:} {\prg_return_false:}
}
{
\prg_return_false:
@@ -128,14 +124,12 @@
{
\fontspec_if_fontspec_font:TF
{
- \prop_get:cnN {g_@@_ \f at family _prop} {fontdef} \l_@@_fontdef_tl
- \@@_primitive_font_set:Nnn \l_fontspec_font {\l_@@_fontdef_tl} {\f at size pt}
- \@@_set_font_type:
+ \@@_set_font_type:N \font
\bool_if:NTF \l_@@_ot_bool
{
\@@_iv_str_to_num:Nn \l_@@_script_int {#1}
\@@_iv_str_to_num:Nn \l_@@_language_int {#2}
- \@@_check_ot_feat:nTF {#3} \prg_return_true: \prg_return_false:
+ \@@_check_ot_feat:NnTF \font {#3} \prg_return_true: \prg_return_false:
}
{ \prg_return_false: }
}
@@ -154,12 +148,10 @@
{
\fontspec_if_fontspec_font:TF
{
- \prop_get:cnN {g_@@_ \f at family _prop} {fontdef} \l_@@_fontdef_tl
- \@@_primitive_font_set:Nnn \l_fontspec_font {\l_@@_fontdef_tl} {\f at size pt}
- \@@_set_font_type:
+ \@@_set_font_type:N \font
\bool_if:NTF \l_@@_ot_bool
{
- \@@_check_script:nTF {#1} \prg_return_true: \prg_return_false:
+ \@@_check_script:NnTF \font {#1} \prg_return_true: \prg_return_false:
}
{ \prg_return_false: }
}
@@ -178,16 +170,14 @@
{
\fontspec_if_fontspec_font:TF
{
- \prop_get:cnN {g_@@_ \f at family _prop} {fontdef} \l_@@_fontdef_tl
- \@@_primitive_font_set:Nnn \l_fontspec_font {\l_@@_fontdef_tl} {\f at size pt}
- \@@_set_font_type:
+ \@@_set_font_type:N \font
\bool_if:NTF \l_@@_ot_bool
{
- \prop_get:cnN {g_@@_ \f at family _prop} {script-num} \l_@@_tmp_tl
- \int_set:Nn \l_@@_script_int {\l_@@_tmp_tl}
- \prop_get:cnN {g_@@_ \f at family _prop} {script-tag} \l_fontspec_script_tl
+ \prop_get:cnN {g_@@_fontinfo_ \f at family _prop} {script-num} \l_@@_tmpf_tl
+ \int_set:Nn \l_@@_script_int {\l_@@_tmpf_tl}
+ \prop_get:cnN {g_@@_fontinfo_ \f at family _prop} {script-tag} \l_fontspec_script_tl
- \@@_check_lang:nTF {#1} \prg_return_true: \prg_return_false:
+ \@@_check_lang:NnTF \font {#1} \prg_return_true: \prg_return_false:
}
{ \prg_return_false: }
}
@@ -206,14 +196,12 @@
{
\fontspec_if_fontspec_font:TF
{
- \prop_get:cnN {g_@@_ \f at family _prop} {fontdef} \l_@@_fontdef_tl
- \@@_primitive_font_set:Nnn \l_fontspec_font {\l_@@_fontdef_tl} {\f at size pt}
- \@@_set_font_type:
+ \@@_set_font_type:N \font
\bool_if:NTF \l_@@_ot_bool
{
\tl_set:Nn \l_fontspec_script_tl {#1}
\@@_iv_str_to_num:Nn \l_@@_script_int {#1}
- \@@_check_lang:nTF {#2} \prg_return_true: \prg_return_false:
+ \@@_check_lang:NnTF \font {#2} \prg_return_true: \prg_return_false:
}
{ \prg_return_false: }
}
@@ -231,12 +219,10 @@
{
\fontspec_if_fontspec_font:TF
{
- \prop_get:cnN {g_@@_ \f at family _prop} {fontdef} \l_@@_fontdef_tl
- \@@_primitive_font_set:Nnn \l_fontspec_font {\l_@@_fontdef_tl} {\f at size pt}
- \@@_set_font_type:
+ \@@_set_font_type:N \font
\bool_if:NTF \l_@@_ot_bool
{
- \prop_get:cnN {g_@@_ \f at family _prop} {script-tag} \l_@@_tmp_tl
+ \prop_get:cnN {g_@@_fontinfo_ \f at family _prop} {script-tag} \l_@@_tmp_tl
\str_if_eq:nVTF {#1} \l_@@_tmp_tl
{\prg_return_true:} {\prg_return_false:}
}
@@ -255,12 +241,10 @@
{
\fontspec_if_fontspec_font:TF
{
- \prop_get:cnN {g_@@_ \f at family _prop} {fontdef} \l_@@_fontdef_tl
- \@@_primitive_font_set:Nnn \l_fontspec_font {\l_@@_fontdef_tl} {\f at size pt}
- \@@_set_font_type:
+ \@@_set_font_type:N \font
\bool_if:NTF \l_@@_ot_bool
{
- \prop_get:cnN {g_@@_ \f at family _prop} {lang-tag} \l_@@_tmp_tl
+ \prop_get:cnN {g_@@_fontinfo_ \f at family _prop} {lang-tag} \l_@@_tmp_tl
\str_if_eq:nVTF {#1} \l_@@_tmp_tl
{\prg_return_true:} {\prg_return_false:}
}
@@ -305,7 +289,7 @@
{
\tl_set:Nn \l_@@_family_label_tl { #1 }
\@@_select_font_family:nn {#3}{#4}
- \tl_set_eq:NN #1 \l_fontspec_font
+ \font #1 = \fontname \l_fontspec_font \scan_stop:
\tl_set_eq:NN #2 \l_fontspec_family_tl
}
% \end{macrocode}
@@ -371,3 +355,19 @@
%</fontspec&(xetexx|luatex)>
% \end{macrocode}
% \fi
+
+
+\endinput
+
+% /©
+% ------------------------------------------------
+% The FONTSPEC package <wspr.io/fontspec>
+% ------------------------------------------------
+% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+% Copyright 2009-2013 Khaled Hosny
+% ------------------------------------------------
+% 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/>.
+% ------------------------------------------------
+% ©/
Modified: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-closing.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-closing.dtx 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-closing.dtx 2017-11-05 22:03:43 UTC (rev 45697)
@@ -1,3 +1,4 @@
+%%^^A%% fontspec-closing.dtx -- part of FONTSPEC <wspr.io/fontspec>
%
% \section{Closing code}
%
@@ -23,3 +24,19 @@
%</fontspec&(xetexx|luatex)>
% \end{macrocode}
% \fi
+
+
+\endinput
+
+% /©
+% ------------------------------------------------
+% The FONTSPEC package <wspr.io/fontspec>
+% ------------------------------------------------
+% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+% Copyright 2009-2013 Khaled Hosny
+% ------------------------------------------------
+% 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/>.
+% ------------------------------------------------
+% ©/
Added: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-code-load.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-code-load.dtx (rev 0)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-code-load.dtx 2017-11-05 22:03:43 UTC (rev 45697)
@@ -0,0 +1,47 @@
+%%^^A%% fontspec-code-load.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%
+% \section{Loading}
+%
+% The \textsf{expl3} module is \texttt{fontspec}.
+% \begin{macrocode}
+%<@@=fontspec>
+% \end{macrocode}
+%
+% Check engine and load specific modules.
+% For Lua\TeX, load \pkg{luaotfload}.
+% \begin{macrocode}
+%<*load>
+\sys_if_engine_luatex:T
+ { \RequirePackage{luaotfload}
+ \directlua{require("fontspec")}
+ \RequirePackageWithOptions{fontspec-luatex} \endinput }
+\sys_if_engine_xetex:T
+ { \RequirePackageWithOptions{fontspec-xetex} \endinput }
+% \end{macrocode}
+% If not one of the above, error:
+% \begin{macrocode}
+\msg_new:nnn {fontspec} {cannot-use-pdftex}
+ {
+ The~ fontspec~ package~ requires~ either~ XeTeX~ or~ LuaTeX.\\\\
+ You~ must~ change~ your~ typesetting~ engine~ to,~ e.g.,~ "xelatex"~ or~ "lualatex" instead~ of~ plain~ "latex"~ or~ "pdflatex".
+ }
+\msg_fatal:nn {fontspec} {cannot-use-pdftex}
+\endinput
+%</load>
+% \end{macrocode}
+
+
+\endinput
+
+% /©
+% ------------------------------------------------
+% The FONTSPEC package <wspr.io/fontspec>
+% ------------------------------------------------
+% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+% Copyright 2009-2013 Khaled Hosny
+% ------------------------------------------------
+% 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/>.
+% ------------------------------------------------
+% ©/
Property changes on: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-code-load.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-code.ltx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-code.ltx (rev 0)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-code.ltx 2017-11-05 22:03:43 UTC (rev 45697)
@@ -0,0 +1,44 @@
+%%^^A%% fontspec-code.ltx -- part of FONTSPEC <wspr.io/fontspec>
+
+\documentclass[a4paper]{l3doc}
+\usepackage{fontspec-doc-style}
+\begin{document}
+
+\GetFileInfo{fontspec.dtx}
+\title{The \textsf{fontspec} package\\Font selection for \XeLaTeX\ and \LuaLaTeX}
+\author{
+ \textsc{Will Robertson} and \textsc{Khaled Hosny}\\
+ \url{http://wspr.io/fontspec/}
+}
+\date{\filedate \qquad \fileversion}
+
+\maketitle
+\tableofcontents
+\newpage
+
+\def\DTX#1{\DocInput{#1}}
+\FONTSPECDTX
+
+\clearpage
+\PrintChanges
+
+\clearpage
+\setcounter{IndexColumns}{2}
+\PrintIndex
+
+\end{document}
+
+\endinput
+
+% /©
+% ------------------------------------------------
+% The FONTSPEC package <wspr.io/fontspec>
+% ------------------------------------------------
+% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+% Copyright 2009-2013 Khaled Hosny
+% ------------------------------------------------
+% 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/>.
+% ------------------------------------------------
+% ©/
Property changes on: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-code.ltx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc-api.tex
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc-api.tex 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc-api.tex 2017-11-05 22:03:43 UTC (rev 45697)
@@ -1,6 +1,10 @@
+%%^^A%% fontspec-doc-api.tex -- part of FONTSPEC <wspr.io/fontspec>
+\documentclass[a4paper]{l3doc}
+\usepackage{fontspec-doc-style}
+\showexamplesfalse
+\begin{document}
-
\part{Customisation and programming interface}
This is the beginning of some work to provide some hooks that use
@@ -307,5 +311,19 @@
OpenType language tag |#1|.
\end{macro}
+\end{document}
+% /©
+% ------------------------------------------------
+% The FONTSPEC package <wspr.io/fontspec>
+% ------------------------------------------------
+% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+% Copyright 2009-2013 Khaled Hosny
+% ------------------------------------------------
+% 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/>.
+% ------------------------------------------------
+% ©/
+
Modified: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc-enc.tex
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc-enc.tex 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc-enc.tex 2017-11-05 22:03:43 UTC (rev 45697)
@@ -1,6 +1,8 @@
-\documentclass[a4paper]{ltxdoc}
+%%^^A%% fontspec-doc-enc.tex -- part of FONTSPEC <wspr.io/fontspec>
+
+\documentclass[a4paper]{l3doc}
\usepackage{fontspec-doc-style}
-
+\showexamplesfalse
\begin{document}
\part{Commands for accents and symbols (`encodings')}
@@ -181,7 +183,7 @@
\cs{UndeclareTextCommand}\marg{command}\marg{encoding}
\end{quote}
See |fntguide.pdf| for full documentation of these.
-As shown above, the following shorthands a provided by \pkg{fontspec} to simplify
+As shown above, the following shorthands are provided by \pkg{fontspec} to simplify
the process of defining Unicode font range encodings:
\begin{quote}\obeylines
\cs{EncodingCommand}\marg{command}\oarg{num}\oarg{default}\marg{code}
@@ -190,9 +192,23 @@
\cs{EncodingComposite}\marg{command}\marg{letter}\marg{slot}
\cs{EncodingCompositeCommand}\marg{command}\marg{letter}\marg{code}
\cs{UndeclareSymbol}\marg{command}
+ \cs{UndeclareAccent}\marg{command}
+ \cs{UndeclareCommand}\marg{command}
\cs{UndeclareComposite}\marg{command}\marg{letter}
\end{quote}
-Despite its name, |\UndeclareSymbol| can be used for commands defined by all three of |\EncodingCommand|,
-|\EncodingAccent|, and |\EncodingSymbol|.
\end{document}
+
+
+% /©
+% ------------------------------------------------
+% The FONTSPEC package <wspr.io/fontspec>
+% ------------------------------------------------
+% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+% Copyright 2009-2013 Khaled Hosny
+% ------------------------------------------------
+% 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/>.
+% ------------------------------------------------
+% ©/
Modified: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc-featset.tex
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc-featset.tex 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc-featset.tex 2017-11-05 22:03:43 UTC (rev 45697)
@@ -1,4 +1,10 @@
+%%^^A%% fontspec-doc-featset.tex -- part of FONTSPEC <wspr.io/fontspec>
+\documentclass[a4paper]{l3doc}
+\usepackage{fontspec-doc-style}
+\showexamplesfalse
+\begin{document}
+
\part{Selecting font features}
\label{sec:selectingfeature}
@@ -592,3 +598,17 @@
In particular, small amounts of letter spacing can be very useful, when setting small caps or all caps titles.
Also see the OpenType \opt{Uppercase} option of the \feat{Letters} feature (\vref*{sec:letters}).
+\end{document}
+
+% /©
+% ------------------------------------------------
+% The FONTSPEC package <wspr.io/fontspec>
+% ------------------------------------------------
+% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+% Copyright 2009-2013 Khaled Hosny
+% ------------------------------------------------
+% 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/>.
+% ------------------------------------------------
+% ©/
Modified: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc-fontsel.tex
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc-fontsel.tex 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc-fontsel.tex 2017-11-05 22:03:43 UTC (rev 45697)
@@ -1,4 +1,9 @@
+%%^^A%% fontspec-doc-fontsel.tex -- part of FONTSPEC <wspr.io/fontspec>
+\documentclass[a4paper]{l3doc}
+\usepackage{fontspec-doc-style}
+\showexamplesfalse
+\begin{document}
\part{General font selection}
@@ -558,4 +563,17 @@
if it were a `naked' control sequence; \eg, `|M. \fontspec{...} N|' and
`|M. \fontspec{...}N|' are the same.
+\end{document}
+% /©
+% ------------------------------------------------
+% The FONTSPEC package <wspr.io/fontspec>
+% ------------------------------------------------
+% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+% Copyright 2009-2013 Khaled Hosny
+% ------------------------------------------------
+% 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/>.
+% ------------------------------------------------
+% ©/
Modified: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc-intro.tex
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc-intro.tex 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc-intro.tex 2017-11-05 22:03:43 UTC (rev 45697)
@@ -1,4 +1,10 @@
+%%^^A%% fontspec-doc-intro.tex -- part of FONTSPEC <wspr.io/fontspec>
+\documentclass[a4paper]{l3doc}
+\usepackage{fontspec-doc-style}
+\showexamplesfalse
+\begin{document}
+
\part{Getting started}
\section{History}
@@ -227,3 +233,18 @@
Use \cs{renewcommand}\cs{strongreset}|{\mdseries}| to start again from the beginning if desired.
An example for setting up a font family for use with \cs{strong} is discussed in \vref{sec:strong-example}.
+
+\end{document}
+
+% /©
+% ------------------------------------------------
+% The FONTSPEC package <wspr.io/fontspec>
+% ------------------------------------------------
+% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+% Copyright 2009-2013 Khaled Hosny
+% ------------------------------------------------
+% 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/>.
+% ------------------------------------------------
+% ©/
Modified: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc-luatex.tex
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc-luatex.tex 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc-luatex.tex 2017-11-05 22:03:43 UTC (rev 45697)
@@ -1,4 +1,9 @@
+%%^^A%% fontspec-doc-luatex.tex -- part of FONTSPEC <wspr.io/fontspec>
+\documentclass[a4paper]{l3doc}
+\usepackage{fontspec-doc-style}
+\showexamplesfalse
+\begin{document}
\part{\LuaTeX-only font features}
\label{sec:luatex-features}
@@ -35,6 +40,18 @@
\hrule
\end{figure}
+\end{document}
+% /©
+% ------------------------------------------------
+% The FONTSPEC package <wspr.io/fontspec>
+% ------------------------------------------------
+% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+% Copyright 2009-2013 Khaled Hosny
+% ------------------------------------------------
+% 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/>.
+% ------------------------------------------------
+% ©/
-
Modified: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc-opentype.tex
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc-opentype.tex 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc-opentype.tex 2017-11-05 22:03:43 UTC (rev 45697)
@@ -1,5 +1,11 @@
+%%^^A%% fontspec-doc-opentype.tex -- part of FONTSPEC <wspr.io/fontspec>
+\documentclass[a4paper]{l3doc}
+\usepackage{fontspec-doc-style}
+\showexamplesfalse
+\begin{document}
+
\part{OpenType}
\label{sec:opentype-features}
@@ -52,12 +58,12 @@
Then open it in your regular \TeX\ editor and change the font name to the font you'd like to query; after running through plain \XeTeX, the output \textsc{pdf} will look something like this:
\begin{framed}
+
+%%% From OpenType-info.tex %%%
+\DeleteShortVerb\"
\def\myfontname{[Asana-Math.otf]}
-%
-%%% OpenType-info.tex %%%
+\font\testfont="\myfontname/OT" at 10pt\relax
-\font\testfont="\myfontname/ICU" at 12pt
-
\rightskip=0pt plus 1fil
\font\titlefont=ec-lmssbx10 at 12pt
@@ -129,8 +135,8 @@
\repeat
\end{framed}
-\noindent I intentionally picked a font that by design needs few font features; `regular' text fonts such as Latin Modern Roman contain many more, and I didn't want to clutter up the document too much.
-You'll then need to cross-check the OpenType feature tags with the `logical' names used by \pkg{fontspec}.
+\noindent I intentionally picked a font above that by design contains few font features; `regular' text fonts such as Latin Modern Roman contain many more, and I didn't want to clutter up the document too much.
+After finding the scripts, languages, and features contained within the font, you'll then need to cross-check the OpenType tags with the `logical' names used by \pkg{fontspec}.
\paragraph{otfinfo}
Alternatively, and more simply, you can use the command line tool |otfinfo|, which is distributed with \TeX{}Live.
@@ -1434,4 +1440,17 @@
\end{minipage}
\end{table}
+\end{document}
+% /©
+% ------------------------------------------------
+% The FONTSPEC package <wspr.io/fontspec>
+% ------------------------------------------------
+% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+% Copyright 2009-2013 Khaled Hosny
+% ------------------------------------------------
+% 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/>.
+% ------------------------------------------------
+% ©/
Modified: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc-style.sty
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc-style.sty 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc-style.sty 2017-11-05 22:03:43 UTC (rev 45697)
@@ -1,11 +1,15 @@
+
+
\ProvidesPackage{fontspec-doc-style}
+\input{fontspec.dtx}
+\ExplSyntaxOff
+
\usepackage{fontspec,booktabs,calc,caption,color,enumitem,flafter,fancyvrb,hologo,graphicx,
ifthen,url,varioref,varwidth,microtype,tocloft,framed,xparse,docmute}
%% Various labelling commands:
\newcommand*\name[1]{{#1}}
-\newcommand*\pkg[1]{\textsf{#1}}
\newcommand*\opt[1]{\texttt{#1}}
\newcommand*\feat[1]{\texttt{#1}}
@@ -18,14 +22,12 @@
\newcommand\note[1]{\unskip\footnote{#1}}
-\def\MacOSX{Mac~OS~X}
+\def\MacOSX{macOS}
\def\AAT{\textsc{aat}}
\def\ATSUI{\textsc{atsui}}
\newcommand\NFSS{\textsc{nfss}}
-\newcommand\XeTeX{\hologo{XeTeX}}
\newcommand\XeLaTeX{\hologo{XeLaTeX}}
-\newcommand\LuaTeX{\hologo{LuaTeX}}
\newcommand\LuaLaTeX{\hologo{LuaLaTeX}}
% ToC formatting:
@@ -75,20 +77,6 @@
\linespread{1.05} % Pagella needs more space between lines
\frenchspacing % Remove ugly extra space after punctuation
-\usepackage[
- bookmarks=true,
- colorlinks=true,
- linkcolor=niceblue,
- urlcolor=niceblue,
- citecolor=niceblue,
- pdftitle={The fontspec package},
- pdfsubject={Advanced font selection for XeLaTeX/LuaLaTeX},
- pdfauthor={Will Robertson},
- pdfkeywords={xetex, xelatex, luatex, lualatex, unicode, opentype, aat}
- ]{hyperref}
-
-
-
%% ToC
\def\@dotsep{1000}
\setcounter{tocdepth}{2}
@@ -123,6 +111,9 @@
%% EXAMPLES
+\newif\ifshowexamples
+\showexamplestrue
+
\newsavebox\X
\newsavebox\Y
@@ -147,9 +138,11 @@
\def\prefix{#4}
\refstepcounter{example}%
\label{ex:\filename}%
- \IfFileExists{zzz-\theexample-\prefix-\filename.tex}{}{%
- \immediate\write18{rm -f zzz-\theexample-* ;}%
- }%
+ \ifshowexamples
+ \IfFileExists{zzz-\theexample-\prefix-\filename.tex}{}{%
+ \immediate\write18{rm -f zzz-\theexample-* ;}%
+ }%
+ \fi
\VerbatimEnvironment
\begin{VerbatimOut}{zzz-\theexample-\prefix-\filename.tex}}
% text in the environment
@@ -182,12 +175,14 @@
\csname prog@\prefix\endcsname "\unexpanded\expandafter{\XXcmd}";
printf '\@percentchar s' '\unexpanded\expandafter{\XXcmd}' > zzz-\theexample-\prefix-\filename-test.tex;
}%
- \immediate\write18{\unexpanded\expandafter{\1}}%
+ \ifshowexamples
+ \immediate\write18{\unexpanded\expandafter{\1}}%
+ \fi
}%
\savebox\Y{%
\IfFileExists{zzz-\theexample-\prefix-\filename.pdf}
{\includegraphics{zzz-\theexample-\prefix-\filename.pdf}}
- {\color{red}\itshape ---Graphic not generated---}%
+ {\color{red}\itshape ---Example graphic not generated---}%
}
% TYPESETTING
\rule[0.5\baselineskip]{\columnwidth}{1pt}%
@@ -286,3 +281,10 @@
\catcode `\_= 11
\renewcommand\partname{Part}
+
+
+% /©
+%
+% (COPYRIGHT GOES HERE)
+%
+% ©/
Modified: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc-xetex.tex
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc-xetex.tex 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc-xetex.tex 2017-11-05 22:03:43 UTC (rev 45697)
@@ -1,4 +1,9 @@
+%%^^A%% fontspec-doc-xetex.tex -- part of FONTSPEC <wspr.io/fontspec>
+\documentclass[a4paper]{l3doc}
+\usepackage{fontspec-doc-style}
+\showexamplesfalse
+\begin{document}
\part{Fonts and features with \XeTeX}
\label{sec:xetex-features}
@@ -11,7 +16,7 @@
\subsection{Mapping}
\label{sec:mapping}
-\feat{Mapping} enables a \XeTeX\ text-mapping scheme, shown in \exref{mapping}.
+The \feat{Mapping} feature enables a \XeTeX\ text-mapping scheme, with an example shown in \exref{mapping}.
\begin{Xexample}{mapping}{\XeTeX's \feat{Mapping} feature.}
\fontspec{Cochin}[Mapping=tex-text]
@@ -25,22 +30,22 @@
\LuaTeX\ documents.
-\subsection{Different font technologies: \AAT\ and OpenType}\label{sec:renderer}
+\subsection{Different font technologies: \AAT, OpenType, and Graphite}\label{sec:renderer}
-\XeTeX\ supports two rendering technologies for typesetting, selected with
+\XeTeX\ supports three rendering technologies for typesetting, selected with
the \feat{Renderer} font feature. The first, \opt{AAT}, is
-that provided (only) by \MacOSX\ itself. The second, \opt{OpenType},
-is an open source OpenType interpreter.
-\note{v2.4: This was called `\texttt{ICU}' in previous versions of \XeTeX\ and \pkg{fontspec}.
-Backwards compatibility is preserved.}
-It provides greater support for
-OpenType features, notably contextual arrangement, over \opt{AAT}.
+that provided only by \MacOSX.
+The second, \opt{OpenType}, is an open source OpenType interpreter.
+It provides greater support for OpenType features, notably contextual arrangement, over \opt{AAT}.
+The third is \opt{Graphite}, which is an alternative to OpenType with particular features for less-common languages and the capability for more powerful font options.
+Features for \opt{OpenType} have already been discussed in \vref{sec:opentype-features};
+\opt{Graphite} and \opt{AAT} features are discussed later in \vref{sec:graphite-features} and \vref{sec:aat-features}.
-In general, this feature will not need to be explicitly called: for OpenType
+Unless you have a particular need, the \feat{Renderer} feature is rarely explicitly required: for OpenType
fonts, the \opt{OpenType} renderer is used automatically, and for \AAT\ fonts,
\opt{AAT} is chosen by default. Some fonts, however, will contain font tables
-for \emph{both} rendering technologies, such as the Hiragino Japanese fonts
-distributed with \MacOSX, and in these cases the choice may be required.
+for multiple rendering technologies, such as the Hiragino Japanese fonts
+distributed with \MacOSX, and in these cases one over the other may be preferred.
Among some other font features only available through a specific renderer,
\opt{OpenType} provides for the \feat{Script} and \feat{Language} features, which allow
@@ -72,8 +77,31 @@
\end{Verbatim}
+\section{The Graphite renderer}
+\label{sec:graphite-features}
+Since the Graphite renderer is designed for less common scripts and languages, usually with
+specific or unique requirements, Graphite features are not standard across fonts.
+Currently \pkg{fontspec} does not support a convenient interface to select Graphite font
+features and all selection must be done via `raw' font feature selection.
+
+Here's an example:
+\begin{Verbatim}
+ \fontspec{Charis SIL}[
+ Renderer=Graphite,
+ RawFeature={Uppercase Eng alternates=Large eng on baseline}]
+ Ŋ
+\end{Verbatim}
+
+Here's another:
+\begin{Verbatim}
+\fontspec{AwamiNastaliq-Regular.ttf}[Renderer=Graphite] ^^^^06b5
+\addfontfeature{RawFeature={Lam with V=V over bowl}} ^^^^06b5
+\end{Verbatim}
+
+
+
\section{\MacOSX's \AAT\ fonts}
\label{sec:aat-features}
@@ -334,3 +362,17 @@
\opt{Parenthesis}, \opt{Period}, \opt{RomanNumerals}, \opt{Diamond},
\opt{BlackSquare}, \opt{BlackRoundSquare}, and \opt{DoubleCircle}.
+\end{document}
+
+% /©
+% ------------------------------------------------
+% The FONTSPEC package <wspr.io/fontspec>
+% ------------------------------------------------
+% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+% Copyright 2009-2013 Khaled Hosny
+% ------------------------------------------------
+% 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/>.
+% ------------------------------------------------
+% ©/
Deleted: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc.tex
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc.tex 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-doc.tex 2017-11-05 22:03:43 UTC (rev 45697)
@@ -1,40 +0,0 @@
-
-\ifdefined \XeTeXOTcountscripts \else \makeatletter
- \@latex at error{^^J*** The fontspec documentation can only be typeset with XeTeX at present! ***\@gobble}\@ehc
-\fi
-
-\documentclass[a4paper]{ltxdoc}
-\usepackage{fontspec-doc-style}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\EnableCrossrefs
-\CodelineIndex
-\RecordChanges
-%\OnlyDescription
-\begin{document}
-
-\GetFileInfo{fontspec.dtx}
-
-\title{The \textsf{fontspec} package\\Font selection for \XeLaTeX\ and \LuaLaTeX}
-\author{
- \textsc{Will Robertson} and \textsc{Khaled Hosny}\\
- \url{http://wspr.io/fontspec/}
-}
-\date{\filedate \qquad \fileversion}
-
-\maketitle
-\tableofcontents
-\newpage
-
-\include{fontspec-doc-intro}
-\include{fontspec-doc-fontsel}
-\include{fontspec-doc-featset}
-\include{fontspec-doc-opentype}
-\include{fontspec-doc-enc}
-\include{fontspec-doc-luatex}
-\include{fontspec-doc-xetex}
-\include{fontspec-doc-api}
-
-\providecommand\ENDDOCUMENT{\end{document}}
-\ENDDOCUMENT
Modified: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-enc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-enc.dtx 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-enc.dtx 2017-11-05 22:03:43 UTC (rev 45697)
@@ -1,3 +1,4 @@
+%%^^A%% fontspec-enc.dtx -- part of FONTSPEC <wspr.io/fontspec>
% \section{Extended font encodings}
%
@@ -108,6 +109,9 @@
% \end{macro}
%
% \begin{macro}{\UndeclareSymbol}
+% \begin{macro}{\UndeclareAccent}
+% \begin{macro}{\UndeclareCommand}
+% Synonyms for each other but all included for completeness.
% \begin{macrocode}
\DeclareDocumentCommand \UndeclareSymbol {m}
{
@@ -115,9 +119,22 @@
{ \@@_error:nn {only-inside-encdef} \UndeclareSymbol }
\UndeclareTextCommand {#1} {\UnicodeEncodingName}
}
-
+\DeclareDocumentCommand \UndeclareAccent {m}
+ {
+ \bool_if:NF \l_@@_defining_encoding_bool
+ { \@@_error:nn {only-inside-encdef} \UndeclareAccent }
+ \UndeclareTextCommand {#1} {\UnicodeEncodingName}
+ }
+\DeclareDocumentCommand \UndeclareCommand {m}
+ {
+ \bool_if:NF \l_@@_defining_encoding_bool
+ { \@@_error:nn {only-inside-encdef} \UndeclareCommand }
+ \UndeclareTextCommand {#1} {\UnicodeEncodingName}
+ }
% \end{macrocode}
% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \begin{macro}{\UndeclareComposite}
% \begin{macrocode}
@@ -136,3 +153,19 @@
%</fontspec&(xetexx|luatex)>
% \end{macrocode}
% \fi
+
+
+\endinput
+
+% /©
+% ------------------------------------------------
+% The FONTSPEC package <wspr.io/fontspec>
+% ------------------------------------------------
+% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+% Copyright 2009-2013 Khaled Hosny
+% ------------------------------------------------
+% 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/>.
+% ------------------------------------------------
+% ©/
Added: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-example.tex
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-example.tex (rev 0)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-example.tex 2017-11-05 22:03:43 UTC (rev 45697)
@@ -0,0 +1,48 @@
+%%^^A%% fontspec-example.tex -- part of FONTSPEC <wspr.io/fontspec>
+
+\documentclass{article}
+
+\usepackage{fontspec}
+
+\setmainfont{TeX Gyre Pagella}
+\setsansfont{TeX Gyre Heros}[Scale=MatchLowercase]
+\setmonofont{Inconsolata}[Scale=MatchLowercase]
+
+\begin{document}
+\pagestyle{empty}
+
+\section*{The basics of the \textsf{fontspec} package}
+
+The \textsf{fontspec} package enables automatic font selection
+for \LaTeX{} documents typeset with Xe\TeX{} or Lua\TeX.
+The basic command is
+
+{\centering \verb|\fontspec{font display name}[font features]|.\par}
+
+The default, sans serif, and typewriter fonts may be set with the
+commands \verb|\setmainfont|, \verb|\setsansfont| and \verb|\setmonofont|,
+respectively, as shown in the preamble. They take the
+same syntax as the \verb|\fontspec| package. All expected font
+shapes are available:
+
+\begin{center}
+ {\itshape Italics and \scshape small caps\dots}\\
+ {\sffamily\bfseries Bold sans serif and \itshape bold italic sans serif\dots}
+\end{center}
+
+Text fonts in maths mode are also changed (e.g., notice the cosine function in
+`$\cos(n\pi)=\pm 1$') but only if the roman and sans serif fonts are set in
+the preamble; \verb|\setmainfont| will not affect these maths mode fonts when
+called mid-document.
+Maths symbols themselves are not affected.
+
+Notice the font features used to load the default fonts in the preamble.
+\verb|Ligatures=TeX| is automatically enabled for the roman and sans font,
+allowing regular \TeX{} ligatures like \verb|``---''| for ``---''.
+\verb|Scale=MatchLowercase| automatically scales the fonts to
+the same x-height.
+
+Please see the complete \textsf{fontspec} documentation for further
+information.
+
+\end{document}
Property changes on: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-example.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-feat-aat.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-feat-aat.dtx 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-feat-aat.dtx 2017-11-05 22:03:43 UTC (rev 45697)
@@ -1,3 +1,4 @@
+%%^^A%% fontspec-feat-aat.dtx -- part of FONTSPEC <wspr.io/fontspec>
% \subsection{AAT feature definitions}
%
@@ -222,3 +223,19 @@
% \end{macrocode}
% \fi
+
+
+\endinput
+
+% /©
+% ------------------------------------------------
+% The FONTSPEC package <wspr.io/fontspec>
+% ------------------------------------------------
+% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+% Copyright 2009-2013 Khaled Hosny
+% ------------------------------------------------
+% 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/>.
+% ------------------------------------------------
+% ©/
Modified: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-feat-opentype.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-feat-opentype.dtx 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-feat-opentype.dtx 2017-11-05 22:03:43 UTC (rev 45697)
@@ -1,3 +1,4 @@
+%%^^A%% fontspec-feat-opentype.dtx -- part of FONTSPEC <wspr.io/fontspec>
% \subsection{OpenType feature definitions}
%
@@ -414,7 +415,7 @@
\bool_set_false:N \l_@@_script_exist_bool
\clist_map_inline:nn {#2}
{
- \@@_check_script:nTF {####1}
+ \@@_check_script:NnTF \l_fontspec_font {####1}
{
\tl_set:Nn \l_fontspec_script_tl {####1}
\int_set:Nn \l_@@_script_int {\l_@@_strnum_int}
@@ -431,7 +432,7 @@
\@@_warning:nx {script-not-exist} {#1}
}
{
- \@@_check_script:nTF {latn}
+ \@@_check_script:NnTF \l_fontspec_font {latn}
{
\@@_warning:nx {script-not-exist-latn} {#1}
\tl_set:Nn \l_fontspec_script_tl {latn}
@@ -454,7 +455,7 @@
\cs_new:Nn \fontspec_new_lang:nn
{
\keys_define:nn { fontspec-opentype } { Language / #1 .code:n =
- \@@_check_lang:nTF {#2}
+ \@@_check_lang:NnTF \l_fontspec_font {#2}
{
\tl_set:Nn \l_fontspec_lang_tl {#2}
\int_set:Nn \l_@@_language_int {\l_@@_strnum_int}
@@ -485,7 +486,7 @@
{
Language / Turkish .code:n =
{
- \@@_check_lang:nTF {TRK}
+ \@@_check_lang:NnTF \l_fontspec_font {TRK}
{
\int_set:Nn \l_@@_language_int {\l_@@_strnum_int}
\tl_set:Nn \l_fontspec_lang_tl {TRK}
@@ -492,7 +493,7 @@
\tl_gset:Nn \g_@@_single_feat_tl { language=TRK }
}
{
- \@@_check_lang:nTF {TUR}
+ \@@_check_lang:NnTF \l_fontspec_font {TUR}
{
\int_set:Nn \l_@@_language_int {\l_@@_strnum_int}
\tl_set:Nn \l_fontspec_lang_tl {TUR}
@@ -539,3 +540,18 @@
% \end{macrocode}
% \fi
+
+\endinput
+
+% /©
+% ------------------------------------------------
+% The FONTSPEC package <wspr.io/fontspec>
+% ------------------------------------------------
+% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+% Copyright 2009-2013 Khaled Hosny
+% ------------------------------------------------
+% 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/>.
+% ------------------------------------------------
+% ©/
Modified: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-fontload.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-fontload.dtx 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-fontload.dtx 2017-11-05 22:03:43 UTC (rev 45697)
@@ -1,3 +1,4 @@
+%%^^A%% fontspec-fontload.dtx -- part of FONTSPEC <wspr.io/fontspec>
% \section{expl3 interface for primitive font loading}
%
@@ -85,3 +86,18 @@
%</fontspec&(xetexx|luatex)>
% \end{macrocode}
% \fi
+
+\endinput
+
+% /©
+% ------------------------------------------------
+% The FONTSPEC package <wspr.io/fontspec>
+% ------------------------------------------------
+% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+% Copyright 2009-2013 Khaled Hosny
+% ------------------------------------------------
+% 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/>.
+% ------------------------------------------------
+% ©/
Modified: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-graphite.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-graphite.dtx 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-graphite.dtx 2017-11-05 22:03:43 UTC (rev 45697)
@@ -1,3 +1,5 @@
+%%^^A%% fontspec-graphite.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
% \section{Graphite/AAT code}
%
% \iffalse
@@ -34,7 +36,7 @@
\tl_if_empty:nTF {#1}
{ \@@_warning:n {aat-feature-not-exist} }
{
- \@@_make_AAT_feature_string:nnTF {#1}{#2}
+ \@@_make_AAT_feature_string:NnnTF \l_fontspec_font {#1}{#2}
{
\@@_update_featstr:n {\l_fontspec_feature_string_tl}
}
@@ -44,7 +46,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\@@_make_AAT_feature_string:nnTF}
+% \begin{macro}{\@@_make_AAT_feature_string:NnnTF}
% This macro takes the numerical codes for a font feature and
% creates a specified macro containing the string required in the
% font definition to turn that feature on or off. Used primarily in
@@ -62,25 +64,25 @@
%
% Finally, save out the complete feature string in \cmd\l_fontspec_feature_string_tl.
% \begin{macrocode}
-\prg_new_conditional:Nnn \@@_make_AAT_feature_string:nn {TF,T,F}
+\prg_new_conditional:Nnn \@@_make_AAT_feature_string:Nnn {TF,T,F}
{
- \tl_set:Nx \l_tmpa_tl { \XeTeXfeaturename \l_fontspec_font #1 }
+ \tl_set:Nx \l_tmpa_tl { \XeTeXfeaturename #1 #2 }
\tl_if_empty:NTF \l_tmpa_tl
{ \prg_return_false: }
{
- \int_compare:nTF { \XeTeXisexclusivefeature\l_fontspec_font #1 > 0 }
+ \int_compare:nTF { \XeTeXisexclusivefeature #1 #2 > 0 }
{
- \tl_set:Nx \l_tmpb_tl {\XeTeXselectorname\l_fontspec_font #1\space #2}
+ \tl_set:Nx \l_tmpb_tl {\XeTeXselectorname #1 #2\space #3}
}
{
- \int_if_even:nTF {#2}
+ \int_if_even:nTF {#3}
{
- \tl_set:Nx \l_tmpb_tl {\XeTeXselectorname\l_fontspec_font #1\space #2}
+ \tl_set:Nx \l_tmpb_tl {\XeTeXselectorname #1 #2\space #3}
}
{
\tl_set:Nx \l_tmpb_tl
{
- \XeTeXselectorname\l_fontspec_font #1\space \numexpr#2-1\relax
+ \XeTeXselectorname #1 #2\space \numexpr#3-1\relax
}
\tl_if_empty:NF \l_tmpb_tl { \tl_put_left:Nn \l_tmpb_tl {!} }
}
@@ -101,3 +103,19 @@
%</fontspec&xetexx>
% \end{macrocode}
% \fi
+
+
+\endinput
+
+% /©
+% ------------------------------------------------
+% The FONTSPEC package <wspr.io/fontspec>
+% ------------------------------------------------
+% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+% Copyright 2009-2013 Khaled Hosny
+% ------------------------------------------------
+% 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/>.
+% ------------------------------------------------
+% ©/
Modified: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-interfaces.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-interfaces.dtx 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-interfaces.dtx 2017-11-05 22:03:43 UTC (rev 45697)
@@ -1,3 +1,5 @@
+%%^^A%% fontspec-interfaces.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
% \section{User commands}\label{sec:codeuser}
%
% This section contains the definitions of the commands detailed in
@@ -196,3 +198,19 @@
%</fontspec&(xetexx|luatex)>
% \end{macrocode}
% \fi
+
+
+\endinput
+
+% /©
+% ------------------------------------------------
+% The FONTSPEC package <wspr.io/fontspec>
+% ------------------------------------------------
+% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+% Copyright 2009-2013 Khaled Hosny
+% ------------------------------------------------
+% 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/>.
+% ------------------------------------------------
+% ©/
Modified: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-internal.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-internal.dtx 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-internal.dtx 2017-11-05 22:03:43 UTC (rev 45697)
@@ -1,3 +1,5 @@
+%%^^A%% fontspec-internal.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
% \section{Internals}
%
% \iffalse
@@ -230,7 +232,7 @@
\@@_primitive_font_set:Nnn \l_fontspec_font
{ \@@_construct_font_call:nn { \l_@@_fontname_up_tl } {} } {\f at size pt}
\@@_primitive_font_if_null:NT \l_fontspec_font { \@@_error:nx {font-not-found} {\l_@@_fontname_up_tl} }
- \@@_set_font_type:
+ \@@_set_font_type:N \l_fontspec_font
%<debug>\typeout{Set~ base~ font~ properly: \@@_construct_font_call:nn { \l_@@_fontname_up_tl } {} }
\@@_primitive_font_gset:Nnn \l_fontspec_font
{ \@@_construct_font_call:nn { \l_@@_fontname_up_tl } {} } {\f at size pt}
@@ -298,7 +300,7 @@
{
\tl_if_empty:NTF \l_@@_script_name_tl
{
- \@@_check_script:nTF {latn}
+ \@@_check_script:NnTF \l_fontspec_font {latn}
{
\tl_set:Nn \l_@@_script_name_tl {Latin}
\tl_if_empty:NT \l_@@_lang_name_tl
@@ -351,8 +353,8 @@
% \EROROR
}
{
-%<debug> \typeout{::: Setting~ keys~ for~ AAT~ font~ features:~"\l_@@_keys_leftover_clist"}
- \bool_if:NT \l_@@_atsui_bool
+%<debug> \typeout{::: Setting~ keys~ for~ AAT/Graphite~ font~ features:~"\l_@@_keys_leftover_clist"}
+ \bool_if:nT { \l_@@_atsui_bool || \l_@@_graphite_bool }
{ \keys_set:nV {fontspec-aat} \l_@@_keys_leftover_clist }
}
%</xetexx>
@@ -390,12 +392,18 @@
%<debug> \typeout{save~ family:~ #1}
%<debug> \typeout{== fontid_tl: "\l_@@_fontid_tl".}
- \cs_if_exist:NT \l_@@_nfss_fam_tl
+ \tl_if_exist:cF {g_@@_UID_\l_@@_fontid_tl}
+ {
+ \tl_new:c {g_@@_UID_\l_@@_fontid_tl}
+ }
+
+ \tl_if_exist:NT \l_@@_nfss_fam_tl
+ {
+ \tl_set_eq:cN {g_@@_UID_\l_@@_fontid_tl} \l_@@_nfss_fam_tl
+ }
+
+ \tl_if_empty:cT {g_@@_UID_\l_@@_fontid_tl}
{
- \cs_set_eq:cN {g_@@_UID_\l_@@_fontid_tl} \l_@@_nfss_fam_tl
- }
- \cs_if_exist:cF {g_@@_UID_\l_@@_fontid_tl}
- {
% 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 {~}
@@ -410,7 +418,7 @@
}
}
\tl_gset:Nv \l_fontspec_family_tl {g_@@_UID_\l_@@_fontid_tl}
- \cs_if_exist:cTF {g_@@_ \l_fontspec_family_tl _prop}
+ \cs_if_exist:cTF {g_@@_fontinfo_ \l_fontspec_family_tl _prop}
\prg_return_false: \prg_return_true:
}
% \end{macrocode}
@@ -435,18 +443,18 @@
% \begin{macrocode}
\cs_new:Nn \@@_save_fontinfo:n
{
- \prop_new:c {g_@@_ \l_fontspec_family_tl _prop}
- \prop_gput:cnx {g_@@_ \l_fontspec_family_tl _prop} {fontname} { #1 }
- \prop_gput:cnx {g_@@_ \l_fontspec_family_tl _prop} {options} { \l_@@_all_features_clist }
- \prop_gput:cnx {g_@@_ \l_fontspec_family_tl _prop} {fontdef}
+ \prop_new:c {g_@@_fontinfo_ \l_fontspec_family_tl _prop}
+ \prop_gput:cnx {g_@@_fontinfo_ \l_fontspec_family_tl _prop} {fontname} { #1 }
+ \prop_gput:cnx {g_@@_fontinfo_ \l_fontspec_family_tl _prop} {options} { \l_@@_all_features_clist }
+ \prop_gput:cnx {g_@@_fontinfo_ \l_fontspec_family_tl _prop} {fontdef}
{
\@@_construct_font_call:nn {\l_fontspec_fontname_tl}
{ \l_@@_pre_feat_sclist \l_@@_rawfeatures_sclist }
}
- \prop_gput:cnV {g_@@_ \l_fontspec_family_tl _prop} {script-num} \l_@@_script_int
- \prop_gput:cnV {g_@@_ \l_fontspec_family_tl _prop} {lang-num} \l_@@_language_int
- \prop_gput:cnV {g_@@_ \l_fontspec_family_tl _prop} {script-tag} \l_fontspec_script_tl
- \prop_gput:cnV {g_@@_ \l_fontspec_family_tl _prop} {lang-tag} \l_fontspec_lang_tl
+ \prop_gput:cnV {g_@@_fontinfo_ \l_fontspec_family_tl _prop} {script-num} \l_@@_script_int
+ \prop_gput:cnV {g_@@_fontinfo_ \l_fontspec_family_tl _prop} {lang-num} \l_@@_language_int
+ \prop_gput:cnV {g_@@_fontinfo_ \l_fontspec_family_tl _prop} {script-tag} \l_fontspec_script_tl
+ \prop_gput:cnV {g_@@_fontinfo_ \l_fontspec_family_tl _prop} {lang-tag} \l_fontspec_lang_tl
}
% \end{macrocode}
% \end{macro}
@@ -549,7 +557,7 @@
%
% \subsubsection{Fonts}
%
-% \begin{macro}{\@@_set_font_type:}
+% \begin{macro}{\@@_set_font_type:N}
% Now check if the font is to be rendered with \ATSUI\ or Harfbuzz. This will either
% be automatic (based on the font type), or specified by the user via a font feature.
%
@@ -558,7 +566,7 @@
% font or an OpenType font or a font with feature axes (either \AAT\ or
% Multiple Master), respectively.
% \begin{macrocode}
-\cs_new:Nn \@@_set_font_type:
+\cs_new:Nn \@@_set_font_type:N
{
%<debug> \typeout{:: @@_set_font_type:}
%<*xetexx>
@@ -567,32 +575,30 @@
\bool_set_false:N \l_@@_ot_bool
\bool_set_false:N \l_@@_mm_bool
\bool_set_false:N \l_@@_graphite_bool
- \ifcase\XeTeXfonttype\l_fontspec_font
+ \ifcase\XeTeXfonttype #1
\bool_set_true:N \l_@@_tfm_bool
\or
\bool_set_true:N \l_@@_atsui_bool
- \ifnum\XeTeXcountvariations\l_fontspec_font > \c_zero
+ \tl_if_empty:NT \l_fontspec_renderer_tl { \tl_set:Nn \l_fontspec_renderer_tl {/AAT} }
+ \ifnum\XeTeXcountvariations #1 > \c_zero
\bool_set_true:N \l_@@_mm_bool
\fi
\or
\bool_set_true:N \l_@@_ot_bool
+ \tl_if_empty:NT \l_fontspec_renderer_tl { \tl_set:Nn \l_fontspec_renderer_tl {/OT} }
+ \or
+ \bool_set_true:N \l_@@_graphite_bool
+ \tl_if_empty:NT \l_fontspec_renderer_tl { \tl_set:Nn \l_fontspec_renderer_tl {/GR} }
\fi
+%</xetexx>
% \end{macrocode}
% If automatic, the \cmd{\l_fontspec_renderer_tl} token list will still be
% empty (other suffices that could be added will be later in the feature
% processing), and if it is indeed still empty, assign it a value so that the
% other weights of the font are specifically loaded with the same renderer.
+%
+% LuaTeX only supports one:
% \begin{macrocode}
- \tl_if_empty:NT \l_fontspec_renderer_tl
- {
- \bool_if:NTF \l_@@_atsui_bool
- { \tl_set:Nn \l_fontspec_renderer_tl {/AAT} }
- {
- \bool_if:NT \l_@@_ot_bool
- { \tl_set:Nn \l_fontspec_renderer_tl {/OT} }
- }
- }
-%</xetexx>
%<*luatex>
\bool_set_true:N \l_@@_ot_bool
%</luatex>
@@ -916,7 +922,7 @@
%<luatex>\cs_set:Nn \@@_make_smallcaps:TF
%<xetexx>\cs_set:Nn \@@_make_ot_smallcaps:TF
{
- \@@_check_ot_feat:nTF {smcp} {#1} {#2}
+ \@@_check_ot_feat:NnTF \l_fontspec_font {smcp} {#1} {#2}
}
%<*xetexx>
\cs_set:Nn \@@_make_smallcaps:TF
@@ -925,7 +931,7 @@
{ \@@_make_ot_smallcaps:TF {#1} {#2} }
{
\bool_if:NT \l_@@_atsui_bool
- { \@@_make_AAT_feature_string:nnTF {3}{3} {#1} {#2} }
+ { \@@_make_AAT_feature_string:NnnTF \l_fontspec_font {3}{3} {#1} {#2} }
}
}
%</xetexx>
@@ -1060,3 +1066,19 @@
%</fontspec&(xetexx|luatex)>
% \end{macrocode}
% \fi
+
+
+\endinput
+
+% /©
+% ------------------------------------------------
+% The FONTSPEC package <wspr.io/fontspec>
+% ------------------------------------------------
+% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+% Copyright 2009-2013 Khaled Hosny
+% ------------------------------------------------
+% 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/>.
+% ------------------------------------------------
+% ©/
Modified: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-keyval.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-keyval.dtx 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-keyval.dtx 2017-11-05 22:03:43 UTC (rev 45697)
@@ -1,3 +1,4 @@
+%%^^A%% fontspec-keyval.dtx -- part of FONTSPEC <wspr.io/fontspec>
% \section{Font loading (\pkg{keyval}) definitions}
%
@@ -105,8 +106,10 @@
{
\int_compare:nTF {\l_keys_choice_int <= 4} {
%<*xetexx>
- \tl_set:Nv \l_fontspec_renderer_tl
- { g_fontspec_renderer_tag_ \l_keys_choice_tl }
+ \tl_set:Nx \l_fontspec_renderer_tl
+ {
+ \int_case:nn \l_keys_choice_int { 1 {/AAT} 2 {/OT} 3 {/OT} 4 {/GR} }
+ }
\tl_gset:Nx \g_@@_single_feat_tl { \l_fontspec_renderer_tl }
%</xetexx>
%<*luatex>
@@ -118,19 +121,15 @@
\@@_warning:nx {only-luatex-feature} {Renderer=Full/Basic}
%</xetexx>
%<*luatex>
- \tl_set:Nv \l_fontspec_mode_tl
- { g_fontspec_mode_tag_ \l_keys_choice_tl }
+ \tl_set:Nx \l_fontspec_mode_tl
+ {
+ \int_case:nn \l_keys_choice_int { 5 {node} 6 {base} }
+ }
\tl_gset:Nx \g_@@_single_feat_tl { mode=\l_fontspec_mode_tl }
%</luatex>
}
}
}
-\tl_set:cn {g_fontspec_renderer_tag_AAT} {/AAT}
-\tl_set:cn {g_fontspec_renderer_tag_ICU} {/OT}
-\tl_set:cn {g_fontspec_renderer_tag_OpenType} {/OT}
-\tl_set:cn {g_fontspec_renderer_tag_Graphite} {/GR}
-\tl_set:cn {g_fontspec_mode_tag_Full} {node}
-\tl_set:cn {g_fontspec_mode_tag_Basic} {base}
% \end{macrocode}
%
% \paragraph{OpenType script/language}
@@ -371,7 +370,7 @@
\tl_set:Nx \l_@@_nfss_fam_tl { #1 }
\cs_undefine:c {g_@@_UID_\l_@@_fontid_tl}
\tl_if_exist:NT \l_fontspec_family_tl
- { \cs_undefine:c {g_@@_ \l_fontspec_family_tl _prop} }
+ { \cs_undefine:c {g_@@_fontinfo_ \l_fontspec_family_tl _prop} }
}
% \end{macrocode}
%
@@ -847,3 +846,19 @@
%</fontspec&(xetexx|luatex)>
% \end{macrocode}
% \fi
+
+
+\endinput
+
+% /©
+% ------------------------------------------------
+% The FONTSPEC package <wspr.io/fontspec>
+% ------------------------------------------------
+% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+% Copyright 2009-2013 Khaled Hosny
+% ------------------------------------------------
+% 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/>.
+% ------------------------------------------------
+% ©/
Modified: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-lang.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-lang.dtx 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-lang.dtx 2017-11-05 22:03:43 UTC (rev 45697)
@@ -1,3 +1,4 @@
+%%^^A%% fontspec-lang.dtx -- part of FONTSPEC <wspr.io/fontspec>
% \subsection{Font language definitions}
%
@@ -397,3 +398,19 @@
%</fontspec&(xetexx|luatex)>
% \end{macrocode}
% \fi
+
+
+\endinput
+
+% /©
+% ------------------------------------------------
+% The FONTSPEC package <wspr.io/fontspec>
+% ------------------------------------------------
+% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+% Copyright 2009-2013 Khaled Hosny
+% ------------------------------------------------
+% 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/>.
+% ------------------------------------------------
+% ©/
Modified: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-lua.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-lua.dtx 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-lua.dtx 2017-11-05 22:03:43 UTC (rev 45697)
@@ -1,3 +1,5 @@
+%%^^A%% fontspec-lua.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%
% \section{Lua module}
%
% \begin{macrocode}
@@ -80,3 +82,17 @@
% \begin{macrocode}
%</lua>
% \end{macrocode}
+
+
+% /©
+% ------------------------------------------------
+% The FONTSPEC package <wspr.io/fontspec>
+% ------------------------------------------------
+% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+% Copyright 2009-2013 Khaled Hosny
+% ------------------------------------------------
+% 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/>.
+% ------------------------------------------------
+% ©/
Modified: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-math.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-math.dtx 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-math.dtx 2017-11-05 22:03:43 UTC (rev 45697)
@@ -1,3 +1,4 @@
+%%^^A%% fontspec-math.dtx -- part of FONTSPEC <wspr.io/fontspec>
%
% \section{Selecting maths fonts}
% Here, the fonts used in math mode are redefined to correspond to the
@@ -234,3 +235,19 @@
%</fontspec&(xetexx|luatex)>
% \end{macrocode}
% \fi
+
+
+\endinput
+
+% /©
+% ------------------------------------------------
+% The FONTSPEC package <wspr.io/fontspec>
+% ------------------------------------------------
+% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+% Copyright 2009-2013 Khaled Hosny
+% ------------------------------------------------
+% 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/>.
+% ------------------------------------------------
+% ©/
Modified: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-msg.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-msg.dtx 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-msg.dtx 2017-11-05 22:03:43 UTC (rev 45697)
@@ -1,3 +1,4 @@
+%%^^A%% fontspec-msg.dtx -- part of FONTSPEC <wspr.io/fontspec>
%
% \section{Error/warning/info messages}
%
@@ -265,3 +266,19 @@
% \begin{macrocode}
%</fontspec>
% \end{macrocode}
+
+
+\endinput
+
+% /©
+% ------------------------------------------------
+% The FONTSPEC package <wspr.io/fontspec>
+% ------------------------------------------------
+% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+% Copyright 2009-2013 Khaled Hosny
+% ------------------------------------------------
+% 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/>.
+% ------------------------------------------------
+% ©/
Modified: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-opening.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-opening.dtx 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-opening.dtx 2017-11-05 22:03:43 UTC (rev 45697)
@@ -1,3 +1,4 @@
+%%^^A%% fontspec-opening.dtx -- part of FONTSPEC <wspr.io/fontspec>
%
% \section{Opening code}
%
@@ -98,8 +99,84 @@
}
% \end{macrocode}
%
+%
+% \subsection{Generic functions}
+%
+% \begin{macro}{\FontspecSetCheckBoolTrue}
+% \begin{macro}{\FontspecSetCheckBoolFalse}
+% These strange set functions are to simplify returning code from LuaTeX:
+% \begin{macrocode}
+\cs_new:Npn \FontspecSetCheckBoolTrue { \bool_set_true:N \l_@@_check_bool }
+\cs_new:Npn \FontspecSetCheckBoolFalse { \bool_set_false:N \l_@@_check_bool }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@@_keys_set_known:nnN}
+% \begin{macrocode}
+\cs_new:Nn \@@_keys_set_known:nnN
+ {
+%<debug> \typeout{:::: Keys~set:~{#1}~{#2} }
+ \keys_set_known:nnN {#1} {#2} #3
+%<debug> \typeout{:::: Leftover:~{#3} }
+ }
+\cs_generate_variant:Nn \@@_keys_set_known:nnN {nx}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@@_int_mult_truncate:Nn}
+% Missing in expl3, IMO.
+% \begin{macrocode}
+\cs_new:Nn \@@_int_mult_truncate:Nn
+ {
+ \int_set:Nn #1 { \__dim_eval:w #2 #1 \__dim_eval_end: }
+ }
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \subsection{\pkg{expl3} variants}
+%
+% \begin{macrocode}
+\cs_generate_variant:Nn \int_set:Nn {Nv}
+\cs_generate_variant:Nn \keys_set:nn {nx}
+\cs_generate_variant:Nn \keys_set_known:nnN {nx}
+\cs_generate_variant:Nn \prop_put:Nnn {Nxx}
+\cs_generate_variant:Nn \prop_put:Nnn {NxV}
+\cs_generate_variant:Nn \prop_gput_if_new:Nnn {NxV}
+\cs_generate_variant:Nn \prop_gput:Nnn {Nxn}
+\cs_generate_variant:Nn \prop_get:NnNT {NxN}
+\cs_generate_variant:Nn \prop_get:NnNTF {NxN}
+\cs_generate_variant:Nn \str_if_eq:nnTF {nv}
+\cs_generate_variant:Nn \tl_if_empty:nTF {x}
+\cs_generate_variant:Nn \tl_if_empty:nF {x}
+\cs_generate_variant:Nn \tl_if_empty:nF {f}
+\cs_generate_variant:Nn \tl_if_eq:nnT {ox}
+\cs_generate_variant:Nn \tl_replace_all:Nnn {Nnx}
+% \end{macrocode}
+%
+%
+%
+%
% \iffalse
% \begin{macrocode}
%</fontspec&(xetexx|luatex)>
% \end{macrocode}
% \fi
+
+
+\endinput
+
+% /©
+% ------------------------------------------------
+% The FONTSPEC package <wspr.io/fontspec>
+% ------------------------------------------------
+% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+% Copyright 2009-2013 Khaled Hosny
+% ------------------------------------------------
+% 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/>.
+% ------------------------------------------------
+% ©/
Modified: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-opentype.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-opentype.dtx 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-opentype.dtx 2017-11-05 22:03:43 UTC (rev 45697)
@@ -1,3 +1,5 @@
+%%^^A%% fontspec-opentype.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
% \section{OpenType definitions code}
%
% \iffalse
@@ -114,7 +116,7 @@
\tl_if_empty:nT {#1} { \bool_set_false:N \l_@@_check_feat_bool }
\bool_if:NT \l_@@_check_feat_bool
{
- \@@_check_ot_feat:nF {#1}
+ \@@_check_ot_feat:NnF \l_fontspec_font {#1}
{
\@@_warning:nx {icu-feature-not-exist-in-font} {#1}
\bool_set_false:N \l_@@_proceed_bool
@@ -140,24 +142,24 @@
% \end{macro}
%
%
-% \begin{macro}{\@@_check_script:nTF}
+% \begin{macro}{\@@_check_script:NnTF}
% This macro takes an OpenType script tag and checks if it exists in the current
% font. The output boolean is \cmd\@tempswatrue. \cmd\l_@@_script_int\ is used to store
% the number corresponding to the script tag string.
% \begin{macrocode}
-\prg_new_conditional:Nnn \@@_check_script:n {TF}
+\prg_new_conditional:Nnn \@@_check_script:Nn {TF}
{
\bool_if:NTF \l_@@_never_check_bool
{ \prg_return_true: }
%<*xetexx>
{
- \@@_iv_str_to_num:Nn \l_@@_strnum_int {#1}
- \int_set:Nn \l_tmpb_int { \XeTeXOTcountscripts \l_fontspec_font }
+ \@@_iv_str_to_num:Nn \l_@@_strnum_int {#2}
+ \int_set:Nn \l_tmpb_int { \XeTeXOTcountscripts #1 }
\int_zero:N \l_tmpa_int
\bool_set_false:N \l__fontspec_check_bool
\bool_until_do:nn { \int_compare_p:nNn \l_tmpa_int = \l_tmpb_int }
{
- \ifnum \XeTeXOTscripttag\l_fontspec_font \l_tmpa_int = \l_@@_strnum_int
+ \ifnum \XeTeXOTscripttag #1 \l_tmpa_int = \l_@@_strnum_int
\bool_set_true:N \l__fontspec_check_bool
\int_set:Nn \l_tmpa_int {\l_tmpb_int}
\else
@@ -168,16 +170,19 @@
}
%</xetexx>
%<*luatex>
- {
- \directlua{fontspec.check_ot_script("l_fontspec_font", "#1")}
- \bool_if:NTF \l__fontspec_check_bool \prg_return_true: \prg_return_false:
- }
+ {
+ \cs_if_eq:NNTF #1 \font
+ { \tl_set:Nx \l_@@_tmp_tl {\curr at fontshape/\f at size} }
+ { \tl_set:Nx \l_@@_tmp_tl {\cs_to_str:N #1} }
+ \directlua{fontspec.check_ot_script("\l_@@_tmp_tl", "#2")}
+ \bool_if:NTF \l__fontspec_check_bool \prg_return_true: \prg_return_false:
+ }
%</luatex>
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\@@_check_lang:nTF}
+% \begin{macro}{\@@_check_lang:NnTF}
% This macro takes an OpenType language tag and checks if it exists in the current
% font/script. The output boolean is \cmd\@tempswatrue. \cmd\l_@@_language_int\ is used to store
% the number corresponding to the language tag string.
@@ -184,20 +189,20 @@
% The script used is whatever's held in \cmd\l_@@_script_int. By default, that's the
% number corresponding to `|latn|'.
% \begin{macrocode}
-\prg_new_conditional:Nnn \@@_check_lang:n {TF}
+\prg_new_conditional:Nnn \@@_check_lang:Nn {TF}
{
\bool_if:NTF \l_@@_never_check_bool
{ \prg_return_true: }
%<*xetexx>
{
- \@@_iv_str_to_num:Nn \l_@@_strnum_int {#1}
+ \@@_iv_str_to_num:Nn \l_@@_strnum_int {#2}
\int_set:Nn \l_tmpb_int
- { \XeTeXOTcountlanguages \l_fontspec_font \l_@@_script_int }
+ { \XeTeXOTcountlanguages #1 \l_@@_script_int }
\int_zero:N \l_tmpa_int
\bool_set_false:N \l__fontspec_check_bool
\bool_until_do:nn { \int_compare_p:nNn \l_tmpa_int = \l_tmpb_int }
{
- \ifnum\XeTeXOTlanguagetag\l_fontspec_font\l_@@_script_int \l_tmpa_int =\l_@@_strnum_int
+ \ifnum\XeTeXOTlanguagetag #1 \l_@@_script_int \l_tmpa_int = \l_@@_strnum_int
\bool_set_true:N \l__fontspec_check_bool
\int_set:Nn \l_tmpa_int {\l_tmpb_int}
\else
@@ -208,19 +213,22 @@
}
%</xetexx>
%<*luatex>
- {
- \directlua
- {
- fontspec.check_ot_lang( "l_fontspec_font", "#1", "\l_fontspec_script_tl" )
- }
- \bool_if:NTF \l__fontspec_check_bool \prg_return_true: \prg_return_false:
- }
+ {
+ \cs_if_eq:NNTF #1 \font
+ { \tl_set:Nx \l_@@_tmp_tl {\curr at fontshape/\f at size} }
+ { \tl_set:Nx \l_@@_tmp_tl {\cs_to_str:N #1} }
+ \directlua
+ {
+ fontspec.check_ot_lang( "\l_@@_tmp_tl", "#2", "\l_fontspec_script_tl" )
+ }
+ \bool_if:NTF \l__fontspec_check_bool \prg_return_true: \prg_return_false:
+ }
%</luatex>
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\@@_check_ot_feat:nTF}
+% \begin{macro}{\@@_check_ot_feat:NnTF}
% This macro takes an OpenType feature tag and checks if it exists in the current
% font/script/language.
% \cmd\l_@@_strnum_int\ is used to store the number corresponding to the feature tag string.
@@ -228,7 +236,7 @@
% number corresponding to `|latn|'. The language used is \cmd\l_@@_language_int,
% by default |0|, the `default language'.
% \begin{macrocode}
-\prg_new_conditional:Nnn \@@_check_ot_feat:n {TF,F}
+\prg_new_conditional:Nnn \@@_check_ot_feat:Nn {TF,F}
{
\bool_if:NTF \l_@@_never_check_bool
{ \prg_return_true: }
@@ -237,16 +245,16 @@
%<debug>\typeout{::~ fontspec_check_ot_feat:n~ {#1}}
\int_set:Nn \l_tmpb_int
{
- \XeTeXOTcountfeatures \l_fontspec_font
+ \XeTeXOTcountfeatures #1
\l_@@_script_int
\l_@@_language_int
}
- \@@_iv_str_to_num:Nn \l_@@_strnum_int {#1}
+ \@@_iv_str_to_num:Nn \l_@@_strnum_int {#2}
\int_zero:N \l_tmpa_int
\bool_set_false:N \l_@@_check_bool
\bool_until_do:nn { \int_compare_p:nNn \l_tmpa_int = \l_tmpb_int }
{
- \ifnum\XeTeXOTfeaturetag\l_fontspec_font\l_@@_script_int\l_@@_language_int
+ \ifnum\XeTeXOTfeaturetag #1 \l_@@_script_int \l_@@_language_int
\l_tmpa_int =\l_@@_strnum_int
\bool_set_true:N \l_@@_check_bool
\int_set:Nn \l_tmpa_int {\l_tmpb_int}
@@ -258,17 +266,20 @@
}
%</xetexx>
%<*luatex>
- {
+ {
%<debug>\typeout{::~ fontspec_check_ot_feat:n~ {#1}}
- \directlua
- {
- fontspec.check_ot_feat(
- "l_fontspec_font", "#1",
+ \cs_if_eq:NNTF #1 \font
+ { \tl_set:Nx \l_@@_tmp_tl {\curr at fontshape/\f at size} }
+ { \tl_set:Nx \l_@@_tmp_tl {\cs_to_str:N #1} }
+ \directlua
+ {
+ fontspec.check_ot_feat(
+ "\l_@@_tmp_tl", "#2",
"\l_fontspec_lang_tl", "\l_fontspec_script_tl"
)
- }
- \bool_if:NTF \l_@@_check_bool \prg_return_true: \prg_return_false:
- }
+ }
+ \bool_if:NTF \l_@@_check_bool \prg_return_true: \prg_return_false:
+ }
%</luatex>
}
% \end{macrocode}
@@ -407,3 +418,19 @@
% \end{macrocode}
% \fi
+
+
+\endinput
+
+% /©
+% ------------------------------------------------
+% The FONTSPEC package <wspr.io/fontspec>
+% ------------------------------------------------
+% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+% Copyright 2009-2013 Khaled Hosny
+% ------------------------------------------------
+% 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/>.
+% ------------------------------------------------
+% ©/
Modified: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-patches.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-patches.dtx 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-patches.dtx 2017-11-05 22:03:43 UTC (rev 45697)
@@ -1,3 +1,5 @@
+%%^^A%% fontspec-patches.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
% \section{Patching code}
%
% \begin{macrocode}
@@ -186,3 +188,19 @@
% \begin{macrocode}
%</fontspec>
% \end{macrocode}
+
+
+\endinput
+
+% /©
+% ------------------------------------------------
+% The FONTSPEC package <wspr.io/fontspec>
+% ------------------------------------------------
+% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+% Copyright 2009-2013 Khaled Hosny
+% ------------------------------------------------
+% 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/>.
+% ------------------------------------------------
+% ©/
Modified: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-scripts.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-scripts.dtx 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-scripts.dtx 2017-11-05 22:03:43 UTC (rev 45697)
@@ -1,3 +1,4 @@
+%%^^A%% fontspec-scripts.dtx -- part of FONTSPEC <wspr.io/fontspec>
% \subsection{Font script definitions}
%
@@ -162,3 +163,19 @@
%</fontspec&(xetexx|luatex)>
% \end{macrocode}
% \fi
+
+
+\endinput
+
+% /©
+% ------------------------------------------------
+% The FONTSPEC package <wspr.io/fontspec>
+% ------------------------------------------------
+% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+% Copyright 2009-2013 Khaled Hosny
+% ------------------------------------------------
+% 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/>.
+% ------------------------------------------------
+% ©/
Modified: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-user.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-user.dtx 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-user.dtx 2017-11-05 22:03:43 UTC (rev 45697)
@@ -1,3 +1,5 @@
+%%^^A%% fontspec-user.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
% \section{User command internals}
% \label{sec:codeinternal}
%
@@ -297,8 +299,8 @@
{
\group_begin:
\keys_set_known:nnN {fontspec-addfeatures} {#1} \l_@@_tmp_tl
- \prop_get:cnN {g_@@_ \f at family _prop} {options} \l_@@_options_tl
- \prop_get:cnN {g_@@_ \f at family _prop} {fontname} \l_@@_fontname_tl
+ \prop_get:cnN {g_@@_fontinfo_ \f at family _prop} {options} \l_@@_options_tl
+ \prop_get:cnN {g_@@_fontinfo_ \f at family _prop} {fontname} \l_@@_fontname_tl
\bool_set_true:N \l_@@_disable_defaults_bool
%<debug> \typeout{ \@@_select_font_family:nn { \l_@@_options_tl , #1 } {\l_@@_fontname_tl} }
\use:x
@@ -505,3 +507,19 @@
%</fontspec&(xetexx|luatex)>
% \end{macrocode}
% \fi
+
+
+\endinput
+
+% /©
+% ------------------------------------------------
+% The FONTSPEC package <wspr.io/fontspec>
+% ------------------------------------------------
+% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+% Copyright 2009-2013 Khaled Hosny
+% ------------------------------------------------
+% 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/>.
+% ------------------------------------------------
+% ©/
Modified: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-vars.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-vars.dtx 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-vars.dtx 2017-11-05 22:03:43 UTC (rev 45697)
@@ -1,5 +1,6 @@
+%%^^A%% fontspec-vars.dtx -- part of FONTSPEC <wspr.io/fontspec>
%
-% \section{Declaration of variables and functions}
+% \section{Declaration of variables}
%
% \begin{macrocode}
%<*fontspec>
@@ -18,12 +19,7 @@
\bool_new:N \l_@@_nobf_bool
\bool_new:N \l_@@_noit_bool
\bool_new:N \l_@@_nosc_bool
-% \end{macrocode}
-% These strange set functions are to simplify returning code from LuaTeX:
-% \begin{macrocode}
\bool_new:N \l_@@_check_bool
-\cs_new:Npn \FontspecSetCheckBoolTrue { \bool_set_true:N \l_@@_check_bool }
-\cs_new:Npn \FontspecSetCheckBoolFalse { \bool_set_false:N \l_@@_check_bool }
% \end{macrocode}
%
% \begin{macrocode}
@@ -49,6 +45,7 @@
% \end{macrocode}
%
% \begin{macrocode}
+\bool_new:N \l_@@_tmpa_bool
\bool_new:N \l_@@_disable_defaults_bool
\bool_new:N \l_@@_alias_bool
\bool_new:N \l_@@_external_bool
@@ -88,9 +85,29 @@
% \begin{macrocode}
\clist_new:N \g_@@_default_fontopts_clist
\clist_new:N \g_@@_all_keyval_modules_clist
+\clist_new:N \l_@@_sizefeat_clist
\clist_set:Nn \l_@@_sizefeat_clist {Size={-}}
+\clist_new:N \l_@@_extensions_clist
+\clist_new:N \l_@@_fontopts_clist
+\clist_new:N \l_@@_family_fontopts_clist
+\clist_new:N \l_@@_all_features_clist
+\clist_new:N \l_@@_leftover_clist
+\clist_new:N \l_@@_keys_leftover_clist
+\clist_new:N \l_@@_sizing_leftover_clist
+\clist_new:N \l_@@_fontfeat_clist
+\clist_new:N \l_@@_fontfeat_curr_clist
% \end{macrocode}
%
+% \begin{macrocode}
+\tl_new:N \l_@@_fontfeat_up_clist
+\tl_new:N \l_@@_fontfeat_bf_clist
+\tl_new:N \l_@@_fontfeat_it_clist
+\tl_new:N \l_@@_fontfeat_bfit_clist
+\tl_new:N \l_@@_fontfeat_sl_clist
+\tl_new:N \l_@@_fontfeat_bfsl_clist
+\tl_new:N \l_@@_fontfeat_sc_clist
+% \end{macrocode}
+%
% \paragraph{Property lists}
% \begin{macrocode}
\prop_new:N \g_@@_fontopts_prop
@@ -99,11 +116,63 @@
\prop_new:N \g_@@_OT_features_prop
\prop_new:N \g_@@_all_opentype_feature_names_prop
\prop_new:N \g_@@_em_prop
+\prop_new:N \g_@@_strong_prop
% \end{macrocode}
%
% \paragraph{Token lists}
%
% \begin{macrocode}
+\tl_new:N \l_fontspec_family_tl
+\tl_new:N \g_fontspec_encoding_tl
+\tl_new:N \l_fontspec_renderer_tl
+\tl_new:N \l_fontspec_fontname_tl
+\tl_new:N \l_fontspec_defined_shapes_tl
+% \end{macrocode}
+%
+% \begin{macrocode}
+\tl_new:N \UTFencname
+\tl_new:N \cyrillicencoding
+\tl_new:N \latinencoding
+% \end{macrocode}
+%
+% \begin{macrocode}
+\tl_new:N \g_@@_single_feat_tl
+\tl_new:N \l_@@_tmp_tl
+\tl_new:N \l_@@_size_tl
+\tl_new:N \l_@@_sizedfont_tl
+\tl_new:N \l_@@_nfss_tl
+\tl_new:N \l_@@_nfss_sc_tl
+\tl_new:N \l_@@_this_font_tl
+\tl_new:N \l_@@_scale_tl
+\tl_new:N \l_@@_opacity_tl
+\tl_new:N \l_@@_hexcol_tl
+\tl_new:N \l_@@_fontid_tl
+\tl_new:N \l_@@_extension_tl
+\tl_new:N \l_@@_ext_filename_tl
+\tl_new:N \l_@@_font_path_tl
+\tl_new:N \l_@@_basename_tl
+\tl_new:N \l_@@_curr_fontname_tl
+\tl_new:N \l_@@_saved_fontname_tl
+\tl_new:N \l_@@_optical_size_tl
+\tl_new:N \l_@@_ttc_index_tl
+\tl_new:N \l_@@_nfss_enc_tl
+\tl_new:N \g_@@_curr_series_tl
+\tl_new:N \l_@@_options_tl
+\tl_new:N \l_@@_fontname_tl
+% \end{macrocode}
+%
+% \begin{macrocode}
+\tl_new:N \l_@@_rawfeatures_sclist
+\tl_new:N \l_@@_pre_feat_sclist
+% \end{macrocode}
+%
+% \begin{macrocode}
+\tl_new:N \g_@@_rmfamily_family
+\tl_new:N \g_@@_sffamily_family
+\tl_new:N \g_@@_ttfamily_family
+% \end{macrocode}
+%
+% \begin{macrocode}
\tl_new:N \g_@@_mathrm_tl
\tl_new:N \g_@@_bfmathrm_tl
\tl_new:N \g_@@_mathsf_tl
@@ -127,16 +196,6 @@
% \end{macrocode}
%
% \begin{macrocode}
-\tl_new:N \l_@@_fontfeat_up_clist
-\tl_new:N \l_@@_fontfeat_bf_clist
-\tl_new:N \l_@@_fontfeat_it_clist
-\tl_new:N \l_@@_fontfeat_bfit_clist
-\tl_new:N \l_@@_fontfeat_sl_clist
-\tl_new:N \l_@@_fontfeat_bfsl_clist
-\tl_new:N \l_@@_fontfeat_sc_clist
-% \end{macrocode}
-%
-% \begin{macrocode}
\tl_new:N \l_@@_script_name_tl
\tl_new:N \l_fontspec_script_tl
\tl_new:N \l_@@_lang_name_tl
@@ -149,66 +208,32 @@
\tl_new:N \g_@@_opacity_tl
\tl_set:Nn \g_@@_hexcol_tl {000000}
\tl_set:Nn \g_@@_opacity_tl {FF~}
+\tl_new:N \l_@@_punctspace_adjust_tl
+\tl_new:N \l_@@_wordspace_adjust_tl
+\tl_new:N \l_@@_postadjust_tl
+\tl_new:N \g_@@_postadjust_tl
\tl_set:Nn \g_@@_postadjust_tl { \l_@@_wordspace_adjust_tl \l_@@_punctspace_adjust_tl }
% \end{macrocode}
%
%
%
-% \subsection{Generic functions}
%
-% \begin{macro}{\@@_keys_set_known:nnN}
% \begin{macrocode}
-\cs_new:Nn \@@_keys_set_known:nnN
- {
-%<debug> \typeout{:::: Keys~set:~{#1}~{#2} }
- \keys_set_known:nnN {#1} {#2} #3
-%<debug> \typeout{:::: Leftover:~{#3} }
- }
-\cs_generate_variant:Nn \@@_keys_set_known:nnN {nx}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@@_head_ii:n}
-% Expands to the first two \meta{items} of |#1|.
-% \begin{macrocode}
-\cs_set:Npn \@@_head_ii:n #1 { \@@_head_ii:w #1 *** \q_stop}
-\cs_set:Npn \@@_head_ii:w #1#2#3 \q_stop { #1#2 }
-\cs_generate_variant:Nn \@@_head_ii:n {o}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@@_int_mult_truncate:Nn}
-% Missing in expl3, IMO.
-% \begin{macrocode}
-\cs_new:Nn \@@_int_mult_truncate:Nn
- {
- \int_set:Nn #1 { \__dim_eval:w #2 #1 \__dim_eval_end: }
- }
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \subsection{expl3 variants}
-%
-% \begin{macrocode}
-\cs_generate_variant:Nn \int_set:Nn {Nv}
-\cs_generate_variant:Nn \keys_set:nn {nx}
-\cs_generate_variant:Nn \keys_set_known:nnN {nx}
-\cs_generate_variant:Nn \prop_put:Nnn {Nxx}
-\cs_generate_variant:Nn \prop_put:Nnn {NxV}
-\cs_generate_variant:Nn \prop_gput_if_new:Nnn {NxV}
-\cs_generate_variant:Nn \prop_gput:Nnn {Nxn}
-\cs_generate_variant:Nn \prop_get:NnNT {NxN}
-\cs_generate_variant:Nn \prop_get:NnNTF {NxN}
-\cs_generate_variant:Nn \str_if_eq:nnTF {nv}
-\cs_generate_variant:Nn \tl_if_empty:nTF {x}
-\cs_generate_variant:Nn \tl_if_empty:nF {x}
-\cs_generate_variant:Nn \tl_if_empty:nF {f}
-\cs_generate_variant:Nn \tl_if_eq:nnT {ox}
-\cs_generate_variant:Nn \tl_replace_all:Nnn {Nnx}
-% \end{macrocode}
-%
-% \begin{macrocode}
%</fontspec>
% \end{macrocode}
+
+\endinput
+
+% /©
+% ------------------------------------------------
+% The FONTSPEC package <wspr.io/fontspec>
+% ------------------------------------------------
+% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+% Copyright 2009-2013 Khaled Hosny
+% ------------------------------------------------
+% 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/>.
+% ------------------------------------------------
+% ©/
Modified: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-xfss.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-xfss.dtx 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-xfss.dtx 2017-11-05 22:03:43 UTC (rev 45697)
@@ -1,3 +1,5 @@
+%%^^A%% fontspec-xfss.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
% \section{Changes to the NFSS}
%
% \begin{macrocode}
@@ -264,3 +266,19 @@
% \begin{macrocode}
%</fontspec>
% \end{macrocode}
+
+
+\endinput
+
+% /©
+% ------------------------------------------------
+% The FONTSPEC package <wspr.io/fontspec>
+% ------------------------------------------------
+% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+% Copyright 2009-2013 Khaled Hosny
+% ------------------------------------------------
+% 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/>.
+% ------------------------------------------------
+% ©/
Modified: trunk/Master/texmf-dist/source/latex/fontspec/fontspec.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec.dtx 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec.dtx 2017-11-05 22:03:43 UTC (rev 45697)
@@ -1,42 +1,10 @@
+%%^^A%% fontspec.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
% \iffalse
-%<*internal>
-\begingroup
-\input l3docstrip.tex\relax
-\keepsilent
-\usedir{tex/latex/fontspec}
-\let\MetaPrefix\relax
-\preamble
-------------------------------------------------
-The FONTSPEC package for XeLaTeX/LuaLaTeX
-(C) 2004--2017 Will Robertson and Khaled Hosny
-License information appended.
-------------------------------------------------
-\endpreamble
-\postamble
-------------------------------------------------
-Copyright 2004--2017 Will Robertson <will.robertson at latex-project.org>
-Copyright 2009--2013 Khaled Hosny <khaledhosny at eglug.org>
-
-Distributable under the LaTeX Project Public License, version 1.3c or higher.
-The latest version of this license is at: http://www.latex-project.org/lppl.txt
-
-This work is "maintained" by Will Robertson.
-It consists of the files: fontspec*.dtx, fontspec.cfg, fontspec*.tex.
-And the derived files: fontspec*.sty,fontspec.lua, fontspec.pdf.
-------------------------------------------------
-\endpostamble
-\askforoverwritefalse
-\def\MetaPrefix{-- }
-\generate{\file{fontspec.lua}{\from{fontspec.dtx}{lua}\from{fontspec-lua.dtx}{lua}}}
-\let\MetaPrefix\DoubleperCent
-\ifx\FontspecDebug\undefined\def\FSDEBUG{}\else\def\FSDEBUG{,debug}\fi
-
-\generate{\file{fontspec.sty}{
- \from{fontspec.dtx}{fontspec,load\FSDEBUG}
-}}
-
+%<*dtx>
\gdef\FONTSPECDTX{
\DTX{fontspec.dtx}
+ \DTX{fontspec-code-load.dtx}
\DTX{fontspec-vars.dtx}
\DTX{fontspec-msg.dtx}
\DTX{fontspec-opening.dtx}
@@ -58,87 +26,46 @@
\DTX{fontspec-xfss.dtx}
\DTX{fontspec-patches.dtx}
}
-
-\def\DTX#1{\from{#1}{fontspec,XE,xetexx\FSDEBUG}}
-\generate{\file{fontspec-xetex.sty}{\FONTSPECDTX}}
-
-\def\DTX#1{\from{#1}{fontspec,LU,luatex\FSDEBUG}}
-\generate{\file{fontspec-luatex.sty}{\FONTSPECDTX}}
-
+%</dtx>
+%<*driver>
\def\tmpa{plain}
-\ifx\tmpa\fmtname\endgroup\expandafter\bye\fi
-\endgroup
-%</internal>
-%<*fontspec>
-\RequirePackage{expl3}
+\ifx\tmpa\fmtname\expandafter\endinput\fi
+%</driver>
+%<fontspec>\RequirePackage{xparse}
+%<fontspec&load>\ProvidesExplPackage{fontspec}%
+%<fontspec&xetexx>\ProvidesExplPackage{fontspec-xetex}%
+%<fontspec&luatex>\ProvidesExplPackage{fontspec-luatex}%
+%<*driver>
\RequirePackage{xparse}
-%</fontspec>
-%<*driver>
\ProvidesExplFile{fontspec.dtx}
%</driver>
-%<fontspec&!xetexx&!luatex>\ProvidesExplPackage{fontspec}%
-%<fontspec&xetexx>\ProvidesExplPackage{fontspec-xetex}%
-%<fontspec&luatex>\ProvidesExplPackage{fontspec-luatex}%
%<*fontspec>
- {2017/09/22}{2.6e}{Font selection for XeLaTeX and LuaLaTeX}
+ {2017/11/05}{2.6f}{Font selection for XeLaTeX and LuaLaTeX}
%</fontspec>
%<lua>fontspec = fontspec or {}
%<lua>local fontspec = fontspec
%<lua>fontspec.module = {
%<lua> name = "fontspec",
-%<lua> version = "2.6e",
-%<lua> date = "2017/09/27",
+%<lua> version = "2.6f",
+%<lua> date = "2017/11/05",
%<lua> description = "Font selection for XeLaTeX and LuaLaTeX",
%<lua> author = "Khaled Hosny, Philipp Gesang, Will Robertson",
%<lua> copyright = "Khaled Hosny, Philipp Gesang, Will Robertson",
%<lua> license = "LPPL"
%<lua>}
-%
-%<*driver>
-\ExplSyntaxOff
-\providecommand\ENDDOCUMENT{}
-\input{fontspec-doc.tex}
-\StopEventually{}
-\part{Implementation}
-\def\DTX#1{\DocInput{#1}}
-\FONTSPECDTX
-\clearpage
-\PrintChanges
-\clearpage
-\setcounter{IndexColumns}{2}
-\PrintIndex
-\Finale
-\end{document}
-%</driver>
% \fi
-%
-% \section{Loading}
-%
-% The \textsf{expl3} module is \texttt{fontspec}.
-% \begin{macrocode}
-%<@@=fontspec>
-% \end{macrocode}
-%
-% Check engine and load specific modules.
-% For Lua\TeX, load \pkg{luaotfload}.
-% \begin{macrocode}
-%<*load>
-\sys_if_engine_luatex:T
- { \RequirePackage{luaotfload}
- \directlua{require("fontspec")}
- \RequirePackageWithOptions{fontspec-luatex} \endinput }
-\sys_if_engine_xetex:T
- { \RequirePackageWithOptions{fontspec-xetex} \endinput }
-% \end{macrocode}
-% If not one of the above, error:
-% \begin{macrocode}
-\msg_new:nnn {fontspec} {cannot-use-pdftex}
- {
- The~ fontspec~ package~ requires~ either~ XeTeX~ or~ LuaTeX.\\\\
- You~ must~ change~ your~ typesetting~ engine~ to,~ e.g.,~ "xelatex"~ or~ "lualatex" instead~ of~ plain~ "latex"~ or~ "pdflatex".
- }
-\msg_fatal:nn {fontspec} {cannot-use-pdftex}
+
\endinput
-%</load>
-% \end{macrocode}
-\endinput
+
+% /©
+% ------------------------------------------------
+% The FONTSPEC package <wspr.io/fontspec>
+% ------------------------------------------------
+% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+% Copyright 2009-2013 Khaled Hosny
+% ------------------------------------------------
+% 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/>.
+% ------------------------------------------------
+% ©/
Added: trunk/Master/texmf-dist/source/latex/fontspec/fontspec.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec.ins (rev 0)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec.ins 2017-11-05 22:03:43 UTC (rev 45697)
@@ -0,0 +1,53 @@
+%%^^A%% fontspec.ins -- part of FONTSPEC <wspr.io/fontspec>
+
+\input fontspec.dtx\relax
+\input l3docstrip.tex\relax
+
+\keepsilent
+\usedir{tex/latex/fontspec}
+\let\MetaPrefix\relax
+\preamble
+------------------------------------------------
+The FONTSPEC package <wspr.io/fontspec>
+------------------------------------------------
+Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+Copyright 2009-2013 Khaled Hosny
+------------------------------------------------
+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/>.
+------------------------------------------------
+\endpreamble
+\nopostamble
+\askforoverwritefalse
+\def\MetaPrefix{-- }
+\generate{\file{fontspec.lua}{\from{fontspec.dtx}{lua}\from{fontspec-lua.dtx}{lua}}}
+\let\MetaPrefix\DoubleperCent
+\ifx\FontspecDebug\undefined\def\FSDEBUG{}\else\def\FSDEBUG{,debug}\fi
+
+\generate{\file{fontspec.sty}{
+ \from{fontspec.dtx}{fontspec,load\FSDEBUG}
+ \from{fontspec-code-load.dtx}{fontspec,load\FSDEBUG}
+}}
+
+\def\DTX#1{\from{#1}{fontspec,XE,xetexx\FSDEBUG}}
+\generate{\file{fontspec-xetex.sty}{\FONTSPECDTX}}
+
+\def\DTX#1{\from{#1}{fontspec,LU,luatex\FSDEBUG}}
+\generate{\file{fontspec-luatex.sty}{\FONTSPECDTX}}
+
+\endbatchfile
+\endinput
+
+% /©
+% ------------------------------------------------
+% The FONTSPEC package <wspr.io/fontspec>
+% ------------------------------------------------
+% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+% Copyright 2009-2013 Khaled Hosny
+% ------------------------------------------------
+% 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/>.
+% ------------------------------------------------
+% ©/
Added: trunk/Master/texmf-dist/source/latex/fontspec/fontspec.ltx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec.ltx (rev 0)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec.ltx 2017-11-05 22:03:43 UTC (rev 45697)
@@ -0,0 +1,47 @@
+%%^^A%% fontspec.ltx -- part of FONTSPEC <wspr.io/fontspec>
+
+\ifdefined \XeTeXOTcountscripts \else \makeatletter
+ \@latex at error{^^J*** The fontspec documentation can only be typeset with `xelatex` ***\@gobble}\@ehc
+\fi
+
+\documentclass[a4paper]{l3doc}
+\usepackage{fontspec-doc-style}
+\begin{document}
+
+\GetFileInfo{fontspec.dtx}
+\title{The \textsf{fontspec} package\\Font selection for \XeLaTeX\ and \LuaLaTeX}
+\author{
+ \textsc{Will Robertson} and \textsc{Khaled Hosny}\\
+ \url{http://wspr.io/fontspec/}
+}
+\date{\filedate \qquad \fileversion}
+
+\maketitle
+\tableofcontents
+\newpage
+
+\include{fontspec-doc-intro}
+\include{fontspec-doc-fontsel}
+\include{fontspec-doc-featset}
+\include{fontspec-doc-opentype}
+\include{fontspec-doc-enc}
+\include{fontspec-doc-luatex}
+\include{fontspec-doc-xetex}
+\include{fontspec-doc-api}
+
+\end{document}
+
+\endinput
+
+% /©
+% ------------------------------------------------
+% The FONTSPEC package <wspr.io/fontspec>
+% ------------------------------------------------
+% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+% Copyright 2009-2013 Khaled Hosny
+% ------------------------------------------------
+% 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/>.
+% ------------------------------------------------
+% ©/
Property changes on: trunk/Master/texmf-dist/source/latex/fontspec/fontspec.ltx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty 2017-11-05 22:03:43 UTC (rev 45697)
@@ -5,6 +5,7 @@
%% The original source files were:
%%
%% fontspec.dtx (with options: `fontspec,LU,luatex')
+%% fontspec-code-load.dtx (with options: `fontspec,LU,luatex')
%% fontspec-vars.dtx (with options: `fontspec,LU,luatex')
%% fontspec-msg.dtx (with options: `fontspec,LU,luatex')
%% fontspec-opening.dtx (with options: `fontspec,LU,luatex')
@@ -26,21 +27,28 @@
%% fontspec-xfss.dtx (with options: `fontspec,LU,luatex')
%% fontspec-patches.dtx (with options: `fontspec,LU,luatex')
%% ------------------------------------------------
-%% The FONTSPEC package for XeLaTeX/LuaLaTeX
-%% (C) 2004--2017 Will Robertson and Khaled Hosny
-%% License information appended.
+%% The FONTSPEC package <wspr.io/fontspec>
%% ------------------------------------------------
-\RequirePackage{expl3}
+%% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+%% Copyright 2009-2013 Khaled Hosny
+%% ------------------------------------------------
+%% 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/>.
+%% ------------------------------------------------
+%%^^A%% fontspec.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
\RequirePackage{xparse}
\ProvidesExplPackage{fontspec-luatex}%
- {2017/09/22}{2.6e}{Font selection for XeLaTeX and LuaLaTeX}
+ {2017/11/05}{2.6f}{Font selection for XeLaTeX and LuaLaTeX}
+
+%%^^A%% fontspec-code-load.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-vars.dtx -- part of FONTSPEC <wspr.io/fontspec>
\bool_new:N \l__fontspec_firsttime_bool
\bool_new:N \l__fontspec_nobf_bool
\bool_new:N \l__fontspec_noit_bool
\bool_new:N \l__fontspec_nosc_bool
\bool_new:N \l__fontspec_check_bool
-\cs_new:Npn \FontspecSetCheckBoolTrue { \bool_set_true:N \l__fontspec_check_bool }
-\cs_new:Npn \FontspecSetCheckBoolFalse { \bool_set_false:N \l__fontspec_check_bool }
\bool_new:N \l__fontspec_tfm_bool
\bool_new:N \l__fontspec_atsui_bool
\bool_new:N \l__fontspec_ot_bool
@@ -54,6 +62,7 @@
\bool_new:N \g__fontspec_cfg_bool
\bool_new:N \g__fontspec_math_bool
\bool_new:N \g__fontspec_euenc_bool
+\bool_new:N \l__fontspec_tmpa_bool
\bool_new:N \l__fontspec_disable_defaults_bool
\bool_new:N \l__fontspec_alias_bool
\bool_new:N \l__fontspec_external_bool
@@ -77,7 +86,24 @@
\seq_new:N \g__fontspec_bf_series_seq
\clist_new:N \g__fontspec_default_fontopts_clist
\clist_new:N \g__fontspec_all_keyval_modules_clist
+\clist_new:N \l__fontspec_sizefeat_clist
\clist_set:Nn \l__fontspec_sizefeat_clist {Size={-}}
+\clist_new:N \l__fontspec_extensions_clist
+\clist_new:N \l__fontspec_fontopts_clist
+\clist_new:N \l__fontspec_family_fontopts_clist
+\clist_new:N \l__fontspec_all_features_clist
+\clist_new:N \l__fontspec_leftover_clist
+\clist_new:N \l__fontspec_keys_leftover_clist
+\clist_new:N \l__fontspec_sizing_leftover_clist
+\clist_new:N \l__fontspec_fontfeat_clist
+\clist_new:N \l__fontspec_fontfeat_curr_clist
+\tl_new:N \l__fontspec_fontfeat_up_clist
+\tl_new:N \l__fontspec_fontfeat_bf_clist
+\tl_new:N \l__fontspec_fontfeat_it_clist
+\tl_new:N \l__fontspec_fontfeat_bfit_clist
+\tl_new:N \l__fontspec_fontfeat_sl_clist
+\tl_new:N \l__fontspec_fontfeat_bfsl_clist
+\tl_new:N \l__fontspec_fontfeat_sc_clist
\prop_new:N \g__fontspec_fontopts_prop
\prop_new:N \l__fontspec_nfss_prop
\prop_new:N \l__fontspec_nfssfont_prop
@@ -84,6 +110,43 @@
\prop_new:N \g__fontspec_OT_features_prop
\prop_new:N \g__fontspec_all_opentype_feature_names_prop
\prop_new:N \g__fontspec_em_prop
+\prop_new:N \g__fontspec_strong_prop
+\tl_new:N \l_fontspec_family_tl
+\tl_new:N \g_fontspec_encoding_tl
+\tl_new:N \l_fontspec_renderer_tl
+\tl_new:N \l_fontspec_fontname_tl
+\tl_new:N \l_fontspec_defined_shapes_tl
+\tl_new:N \UTFencname
+\tl_new:N \cyrillicencoding
+\tl_new:N \latinencoding
+\tl_new:N \g__fontspec_single_feat_tl
+\tl_new:N \l__fontspec_tmp_tl
+\tl_new:N \l__fontspec_size_tl
+\tl_new:N \l__fontspec_sizedfont_tl
+\tl_new:N \l__fontspec_nfss_tl
+\tl_new:N \l__fontspec_nfss_sc_tl
+\tl_new:N \l__fontspec_this_font_tl
+\tl_new:N \l__fontspec_scale_tl
+\tl_new:N \l__fontspec_opacity_tl
+\tl_new:N \l__fontspec_hexcol_tl
+\tl_new:N \l__fontspec_fontid_tl
+\tl_new:N \l__fontspec_extension_tl
+\tl_new:N \l__fontspec_ext_filename_tl
+\tl_new:N \l__fontspec_font_path_tl
+\tl_new:N \l__fontspec_basename_tl
+\tl_new:N \l__fontspec_curr_fontname_tl
+\tl_new:N \l__fontspec_saved_fontname_tl
+\tl_new:N \l__fontspec_optical_size_tl
+\tl_new:N \l__fontspec_ttc_index_tl
+\tl_new:N \l__fontspec_nfss_enc_tl
+\tl_new:N \g__fontspec_curr_series_tl
+\tl_new:N \l__fontspec_options_tl
+\tl_new:N \l__fontspec_fontname_tl
+\tl_new:N \l__fontspec_rawfeatures_sclist
+\tl_new:N \l__fontspec_pre_feat_sclist
+\tl_new:N \g__fontspec_rmfamily_family
+\tl_new:N \g__fontspec_sffamily_family
+\tl_new:N \g__fontspec_ttfamily_family
\tl_new:N \g__fontspec_mathrm_tl
\tl_new:N \g__fontspec_bfmathrm_tl
\tl_new:N \g__fontspec_mathsf_tl
@@ -98,13 +161,6 @@
\tl_new:N \l__fontspec_fontname_sl_tl
\tl_new:N \l__fontspec_fontname_bfsl_tl
\tl_new:N \l__fontspec_fontname_sc_tl
-\tl_new:N \l__fontspec_fontfeat_up_clist
-\tl_new:N \l__fontspec_fontfeat_bf_clist
-\tl_new:N \l__fontspec_fontfeat_it_clist
-\tl_new:N \l__fontspec_fontfeat_bfit_clist
-\tl_new:N \l__fontspec_fontfeat_sl_clist
-\tl_new:N \l__fontspec_fontfeat_bfsl_clist
-\tl_new:N \l__fontspec_fontfeat_sc_clist
\tl_new:N \l__fontspec_script_name_tl
\tl_new:N \l_fontspec_script_tl
\tl_new:N \l__fontspec_lang_name_tl
@@ -114,35 +170,13 @@
\tl_new:N \g__fontspec_opacity_tl
\tl_set:Nn \g__fontspec_hexcol_tl {000000}
\tl_set:Nn \g__fontspec_opacity_tl {FF~}
+\tl_new:N \l__fontspec_punctspace_adjust_tl
+\tl_new:N \l__fontspec_wordspace_adjust_tl
+\tl_new:N \l__fontspec_postadjust_tl
+\tl_new:N \g__fontspec_postadjust_tl
\tl_set:Nn \g__fontspec_postadjust_tl { \l__fontspec_wordspace_adjust_tl \l__fontspec_punctspace_adjust_tl }
-\cs_new:Nn \__fontspec_keys_set_known:nnN
- {
- \keys_set_known:nnN {#1} {#2} #3
- }
-\cs_generate_variant:Nn \__fontspec_keys_set_known:nnN {nx}
-\cs_set:Npn \__fontspec_head_ii:n #1 { \__fontspec_head_ii:w #1 *** \q_stop}
-\cs_set:Npn \__fontspec_head_ii:w #1#2#3 \q_stop { #1#2 }
-\cs_generate_variant:Nn \__fontspec_head_ii:n {o}
-\cs_new:Nn \__fontspec_int_mult_truncate:Nn
- {
- \int_set:Nn #1 { \__dim_eval:w #2 #1 \__dim_eval_end: }
- }
-\cs_generate_variant:Nn \int_set:Nn {Nv}
-\cs_generate_variant:Nn \keys_set:nn {nx}
-\cs_generate_variant:Nn \keys_set_known:nnN {nx}
-\cs_generate_variant:Nn \prop_put:Nnn {Nxx}
-\cs_generate_variant:Nn \prop_put:Nnn {NxV}
-\cs_generate_variant:Nn \prop_gput_if_new:Nnn {NxV}
-\cs_generate_variant:Nn \prop_gput:Nnn {Nxn}
-\cs_generate_variant:Nn \prop_get:NnNT {NxN}
-\cs_generate_variant:Nn \prop_get:NnNTF {NxN}
-\cs_generate_variant:Nn \str_if_eq:nnTF {nv}
-\cs_generate_variant:Nn \tl_if_empty:nTF {x}
-\cs_generate_variant:Nn \tl_if_empty:nF {x}
-\cs_generate_variant:Nn \tl_if_empty:nF {f}
-\cs_generate_variant:Nn \tl_if_eq:nnT {ox}
-\cs_generate_variant:Nn \tl_replace_all:Nnn {Nnx}
+%%^^A%% fontspec-msg.dtx -- part of FONTSPEC <wspr.io/fontspec>
\cs_new:Npn \__fontspec_error:n { \msg_error:nn {fontspec} }
\cs_new:Npn \__fontspec_error:nn { \msg_error:nnn {fontspec} }
\cs_new:Npn \__fontspec_error:nx { \msg_error:nnx {fontspec} }
@@ -373,6 +407,8 @@
* an eight-digit hex colour RRGGBBTT with opacity
}
\char_set_catcode_ignore:n {32}
+
+%%^^A%% fontspec-opening.dtx -- part of FONTSPEC <wspr.io/fontspec>
\DeclareOption{cm-default}
{ \__fontspec_warning:n {cm-default-obsolete} }
\DeclareOption{math}{\bool_set_true:N \g__fontspec_math_bool}
@@ -434,7 +470,35 @@
\RequirePackage{xunicode}
\cs_set_eq:NN \XeTeXpicfile \fontspec_tmp:
}
+\cs_new:Npn \FontspecSetCheckBoolTrue { \bool_set_true:N \l__fontspec_check_bool }
+\cs_new:Npn \FontspecSetCheckBoolFalse { \bool_set_false:N \l__fontspec_check_bool }
+\cs_new:Nn \__fontspec_keys_set_known:nnN
+ {
+ \keys_set_known:nnN {#1} {#2} #3
+ }
+\cs_generate_variant:Nn \__fontspec_keys_set_known:nnN {nx}
+\cs_new:Nn \__fontspec_int_mult_truncate:Nn
+ {
+ \int_set:Nn #1 { \__dim_eval:w #2 #1 \__dim_eval_end: }
+ }
+\cs_generate_variant:Nn \int_set:Nn {Nv}
+\cs_generate_variant:Nn \keys_set:nn {nx}
+\cs_generate_variant:Nn \keys_set_known:nnN {nx}
+\cs_generate_variant:Nn \prop_put:Nnn {Nxx}
+\cs_generate_variant:Nn \prop_put:Nnn {NxV}
+\cs_generate_variant:Nn \prop_gput_if_new:Nnn {NxV}
+\cs_generate_variant:Nn \prop_gput:Nnn {Nxn}
+\cs_generate_variant:Nn \prop_get:NnNT {NxN}
+\cs_generate_variant:Nn \prop_get:NnNTF {NxN}
+\cs_generate_variant:Nn \str_if_eq:nnTF {nv}
+\cs_generate_variant:Nn \tl_if_empty:nTF {x}
+\cs_generate_variant:Nn \tl_if_empty:nF {x}
+\cs_generate_variant:Nn \tl_if_empty:nF {f}
+\cs_generate_variant:Nn \tl_if_eq:nnT {ox}
+\cs_generate_variant:Nn \tl_replace_all:Nnn {Nnx}
+%%^^A%% fontspec-fontload.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
\cs_set:Npn \__fontspec_primitive_font_set:Nnn #1#2#3
{
\font #1 = #2 ~at~ #3 \scan_stop:
@@ -476,6 +540,9 @@
{
\tex_hyphenchar:D #1 = #2 \scan_stop:
}
+
+%%^^A%% fontspec-interfaces.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
\NewDocumentCommand \fontspec { O{} m O{} }
{
\__fontspec_main_fontspec:nn {#1,#3} {#2}
@@ -572,6 +639,9 @@
{
\__fontspec_main_IfFontFeatureActiveTF:nnn {#1} {#2} {#3}
}
+
+%%^^A%% fontspec-user.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
\cs_set:Nn \__fontspec_main_fontspec:nn
{
\fontspec_set_family:Nnn \f at family {#1} {#2}
@@ -721,8 +791,8 @@
{
\group_begin:
\keys_set_known:nnN {fontspec-addfeatures} {#1} \l__fontspec_tmp_tl
- \prop_get:cnN {g__fontspec_ \f at family _prop} {options} \l__fontspec_options_tl
- \prop_get:cnN {g__fontspec_ \f at family _prop} {fontname} \l__fontspec_fontname_tl
+ \prop_get:cnN {g__fontspec_fontinfo_ \f at family _prop} {options} \l__fontspec_options_tl
+ \prop_get:cnN {g__fontspec_fontinfo_ \f at family _prop} {fontname} \l__fontspec_fontname_tl
\bool_set_true:N \l__fontspec_disable_defaults_bool
\use:x
{
@@ -850,19 +920,20 @@
}
}
+%%^^A%% fontspec-api.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
\prg_new_conditional:Nnn \fontspec_if_fontspec_font: {TF,T,F}
{
- \cs_if_exist:cTF {g__fontspec_ \f at family _prop} \prg_return_true: \prg_return_false:
+ \cs_if_exist:cTF {g__fontspec_fontinfo_ \f at family _prop} \prg_return_true: \prg_return_false:
}
\prg_new_conditional:Nnn \fontspec_if_aat_feature:nn {TF,T,F}
{
\fontspec_if_fontspec_font:TF
{
- \prop_get:cnN {g__fontspec_ \f at family _prop} {fontdef} \l__fontspec_fontdef_tl
- \__fontspec_primitive_font_set:Nnn \l_fontspec_font {\l__fontspec_fontdef_tl} {\f at size pt}
+ \__fontspec_set_font_type:N \font
\bool_if:NTF \l__fontspec_atsui_bool
{
- \__fontspec_make_AAT_feature_string:nnTF {#1}{#2}
+ \__fontspec_make_AAT_feature_string:NnnTF \font {#1} {#2}
\prg_return_true: \prg_return_false:
}
{
@@ -877,9 +948,7 @@
{
\fontspec_if_fontspec_font:TF
{
- \prop_get:cnN {g__fontspec_ \f at family _prop} {fontdef} \l__fontspec_fontdef_tl
- \__fontspec_primitive_font_set:Nnn \l_fontspec_font {\l__fontspec_fontdef_tl} {\f at size pt}
- \__fontspec_set_font_type:
+ \__fontspec_set_font_type:N \font
\bool_if:NTF \l__fontspec_ot_bool \prg_return_true: \prg_return_false:
}
{
@@ -890,21 +959,19 @@
{
\fontspec_if_fontspec_font:TF
{
- \prop_get:cnN {g__fontspec_ \f at family _prop} {fontdef} \l__fontspec_fontdef_tl
- \__fontspec_primitive_font_set:Nnn \l_fontspec_font {\l__fontspec_fontdef_tl} {\f at size pt}
- \__fontspec_set_font_type:
+ \__fontspec_set_font_type:N \font
\bool_if:NTF \l__fontspec_ot_bool
{
- \prop_get:cnN {g__fontspec_ \f at family _prop} {script-num} \l__fontspec_tmp_tl
+ \prop_get:cnN {g__fontspec_fontinfo_ \f at family _prop} {script-num} \l__fontspec_tmp_tl
\int_set:Nn \l__fontspec_script_int {\l__fontspec_tmp_tl}
- \prop_get:cnN {g__fontspec_ \f at family _prop} {lang-num} \l__fontspec_tmp_tl
+ \prop_get:cnN {g__fontspec_fontinfo_ \f at family _prop} {lang-num} \l__fontspec_tmp_tl
\int_set:Nn \l__fontspec_language_int {\l__fontspec_tmp_tl}
- \prop_get:cnN {g__fontspec_ \f at family _prop} {script-tag} \l_fontspec_script_tl
- \prop_get:cnN {g__fontspec_ \f at family _prop} {lang-tag} \l_fontspec_lang_tl
+ \prop_get:cnN {g__fontspec_fontinfo_ \f at family _prop} {script-tag} \l_fontspec_script_tl
+ \prop_get:cnN {g__fontspec_fontinfo_ \f at family _prop} {lang-tag} \l_fontspec_lang_tl
- \__fontspec_check_ot_feat:nTF {#1} {\prg_return_true:} {\prg_return_false:}
+ \__fontspec_check_ot_feat:NnTF \font {#1} {\prg_return_true:} {\prg_return_false:}
}
{
\prg_return_false:
@@ -918,14 +985,12 @@
{
\fontspec_if_fontspec_font:TF
{
- \prop_get:cnN {g__fontspec_ \f at family _prop} {fontdef} \l__fontspec_fontdef_tl
- \__fontspec_primitive_font_set:Nnn \l_fontspec_font {\l__fontspec_fontdef_tl} {\f at size pt}
- \__fontspec_set_font_type:
+ \__fontspec_set_font_type:N \font
\bool_if:NTF \l__fontspec_ot_bool
{
\__fontspec_iv_str_to_num:Nn \l__fontspec_script_int {#1}
\__fontspec_iv_str_to_num:Nn \l__fontspec_language_int {#2}
- \__fontspec_check_ot_feat:nTF {#3} \prg_return_true: \prg_return_false:
+ \__fontspec_check_ot_feat:NnTF \font {#3} \prg_return_true: \prg_return_false:
}
{ \prg_return_false: }
}
@@ -935,12 +1000,10 @@
{
\fontspec_if_fontspec_font:TF
{
- \prop_get:cnN {g__fontspec_ \f at family _prop} {fontdef} \l__fontspec_fontdef_tl
- \__fontspec_primitive_font_set:Nnn \l_fontspec_font {\l__fontspec_fontdef_tl} {\f at size pt}
- \__fontspec_set_font_type:
+ \__fontspec_set_font_type:N \font
\bool_if:NTF \l__fontspec_ot_bool
{
- \__fontspec_check_script:nTF {#1} \prg_return_true: \prg_return_false:
+ \__fontspec_check_script:NnTF \font {#1} \prg_return_true: \prg_return_false:
}
{ \prg_return_false: }
}
@@ -950,16 +1013,14 @@
{
\fontspec_if_fontspec_font:TF
{
- \prop_get:cnN {g__fontspec_ \f at family _prop} {fontdef} \l__fontspec_fontdef_tl
- \__fontspec_primitive_font_set:Nnn \l_fontspec_font {\l__fontspec_fontdef_tl} {\f at size pt}
- \__fontspec_set_font_type:
+ \__fontspec_set_font_type:N \font
\bool_if:NTF \l__fontspec_ot_bool
{
- \prop_get:cnN {g__fontspec_ \f at family _prop} {script-num} \l__fontspec_tmp_tl
- \int_set:Nn \l__fontspec_script_int {\l__fontspec_tmp_tl}
- \prop_get:cnN {g__fontspec_ \f at family _prop} {script-tag} \l_fontspec_script_tl
+ \prop_get:cnN {g__fontspec_fontinfo_ \f at family _prop} {script-num} \l__fontspec_tmpf_tl
+ \int_set:Nn \l__fontspec_script_int {\l__fontspec_tmpf_tl}
+ \prop_get:cnN {g__fontspec_fontinfo_ \f at family _prop} {script-tag} \l_fontspec_script_tl
- \__fontspec_check_lang:nTF {#1} \prg_return_true: \prg_return_false:
+ \__fontspec_check_lang:NnTF \font {#1} \prg_return_true: \prg_return_false:
}
{ \prg_return_false: }
}
@@ -969,14 +1030,12 @@
{
\fontspec_if_fontspec_font:TF
{
- \prop_get:cnN {g__fontspec_ \f at family _prop} {fontdef} \l__fontspec_fontdef_tl
- \__fontspec_primitive_font_set:Nnn \l_fontspec_font {\l__fontspec_fontdef_tl} {\f at size pt}
- \__fontspec_set_font_type:
+ \__fontspec_set_font_type:N \font
\bool_if:NTF \l__fontspec_ot_bool
{
\tl_set:Nn \l_fontspec_script_tl {#1}
\__fontspec_iv_str_to_num:Nn \l__fontspec_script_int {#1}
- \__fontspec_check_lang:nTF {#2} \prg_return_true: \prg_return_false:
+ \__fontspec_check_lang:NnTF \font {#2} \prg_return_true: \prg_return_false:
}
{ \prg_return_false: }
}
@@ -986,12 +1045,10 @@
{
\fontspec_if_fontspec_font:TF
{
- \prop_get:cnN {g__fontspec_ \f at family _prop} {fontdef} \l__fontspec_fontdef_tl
- \__fontspec_primitive_font_set:Nnn \l_fontspec_font {\l__fontspec_fontdef_tl} {\f at size pt}
- \__fontspec_set_font_type:
+ \__fontspec_set_font_type:N \font
\bool_if:NTF \l__fontspec_ot_bool
{
- \prop_get:cnN {g__fontspec_ \f at family _prop} {script-tag} \l__fontspec_tmp_tl
+ \prop_get:cnN {g__fontspec_fontinfo_ \f at family _prop} {script-tag} \l__fontspec_tmp_tl
\str_if_eq:nVTF {#1} \l__fontspec_tmp_tl
{\prg_return_true:} {\prg_return_false:}
}
@@ -1003,12 +1060,10 @@
{
\fontspec_if_fontspec_font:TF
{
- \prop_get:cnN {g__fontspec_ \f at family _prop} {fontdef} \l__fontspec_fontdef_tl
- \__fontspec_primitive_font_set:Nnn \l_fontspec_font {\l__fontspec_fontdef_tl} {\f at size pt}
- \__fontspec_set_font_type:
+ \__fontspec_set_font_type:N \font
\bool_if:NTF \l__fontspec_ot_bool
{
- \prop_get:cnN {g__fontspec_ \f at family _prop} {lang-tag} \l__fontspec_tmp_tl
+ \prop_get:cnN {g__fontspec_fontinfo_ \f at family _prop} {lang-tag} \l__fontspec_tmp_tl
\str_if_eq:nVTF {#1} \l__fontspec_tmp_tl
{\prg_return_true:} {\prg_return_false:}
}
@@ -1027,7 +1082,7 @@
{
\tl_set:Nn \l__fontspec_family_label_tl { #1 }
\__fontspec_select_font_family:nn {#3}{#4}
- \tl_set_eq:NN #1 \l_fontspec_font
+ \font #1 = \fontname \l_fontspec_font \scan_stop:
\tl_set_eq:NN #2 \l_fontspec_family_tl
}
\prg_new_conditional:Nnn \fontspec_font_if_exist:n {TF,T,F}
@@ -1067,6 +1122,9 @@
}
{ \prg_return_false: }
}
+
+%%^^A%% fontspec-internal.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
\cs_new_protected:Nn \__fontspec_select_font_family:nn
{
\group_begin:
@@ -1193,7 +1251,7 @@
\__fontspec_primitive_font_set:Nnn \l_fontspec_font
{ \__fontspec_construct_font_call:nn { \l__fontspec_fontname_up_tl } {} } {\f at size pt}
\__fontspec_primitive_font_if_null:NT \l_fontspec_font { \__fontspec_error:nx {font-not-found} {\l__fontspec_fontname_up_tl} }
- \__fontspec_set_font_type:
+ \__fontspec_set_font_type:N \l_fontspec_font
\__fontspec_primitive_font_gset:Nnn \l_fontspec_font
{ \__fontspec_construct_font_call:nn { \l__fontspec_fontname_up_tl } {} } {\f at size pt}
\l_fontspec_font % this is necessary for LuaLaTeX to check the scripts properly
@@ -1228,7 +1286,7 @@
{
\tl_if_empty:NTF \l__fontspec_script_name_tl
{
- \__fontspec_check_script:nTF {latn}
+ \__fontspec_check_script:NnTF \l_fontspec_font {latn}
{
\tl_set:Nn \l__fontspec_script_name_tl {Latin}
\tl_if_empty:NT \l__fontspec_lang_name_tl
@@ -1273,12 +1331,18 @@
{
- \cs_if_exist:NT \l__fontspec_nfss_fam_tl
+ \tl_if_exist:cF {g__fontspec_UID_\l__fontspec_fontid_tl}
+ {
+ \tl_new:c {g__fontspec_UID_\l__fontspec_fontid_tl}
+ }
+
+ \tl_if_exist:NT \l__fontspec_nfss_fam_tl
+ {
+ \tl_set_eq:cN {g__fontspec_UID_\l__fontspec_fontid_tl} \l__fontspec_nfss_fam_tl
+ }
+
+ \tl_if_empty:cT {g__fontspec_UID_\l__fontspec_fontid_tl}
{
- \cs_set_eq:cN {g__fontspec_UID_\l__fontspec_fontid_tl} \l__fontspec_nfss_fam_tl
- }
- \cs_if_exist:cF {g__fontspec_UID_\l__fontspec_fontid_tl}
- {
% The font name is fully expanded, in case it's defined in terms of macros, before having its spaces zapped:
\tl_set:Nx \l__fontspec_tmp_tl {#1}
\tl_remove_all:Nn \l__fontspec_tmp_tl {~}
@@ -1293,7 +1357,7 @@
}
}
\tl_gset:Nv \l_fontspec_family_tl {g__fontspec_UID_\l__fontspec_fontid_tl}
- \cs_if_exist:cTF {g__fontspec_ \l_fontspec_family_tl _prop}
+ \cs_if_exist:cTF {g__fontspec_fontinfo_ \l_fontspec_family_tl _prop}
\prg_return_false: \prg_return_true:
}
\cs_new:Nn \__fontspec_save_family:nn
@@ -1306,18 +1370,18 @@
}
\cs_new:Nn \__fontspec_save_fontinfo:n
{
- \prop_new:c {g__fontspec_ \l_fontspec_family_tl _prop}
- \prop_gput:cnx {g__fontspec_ \l_fontspec_family_tl _prop} {fontname} { #1 }
- \prop_gput:cnx {g__fontspec_ \l_fontspec_family_tl _prop} {options} { \l__fontspec_all_features_clist }
- \prop_gput:cnx {g__fontspec_ \l_fontspec_family_tl _prop} {fontdef}
+ \prop_new:c {g__fontspec_fontinfo_ \l_fontspec_family_tl _prop}
+ \prop_gput:cnx {g__fontspec_fontinfo_ \l_fontspec_family_tl _prop} {fontname} { #1 }
+ \prop_gput:cnx {g__fontspec_fontinfo_ \l_fontspec_family_tl _prop} {options} { \l__fontspec_all_features_clist }
+ \prop_gput:cnx {g__fontspec_fontinfo_ \l_fontspec_family_tl _prop} {fontdef}
{
\__fontspec_construct_font_call:nn {\l_fontspec_fontname_tl}
{ \l__fontspec_pre_feat_sclist \l__fontspec_rawfeatures_sclist }
}
- \prop_gput:cnV {g__fontspec_ \l_fontspec_family_tl _prop} {script-num} \l__fontspec_script_int
- \prop_gput:cnV {g__fontspec_ \l_fontspec_family_tl _prop} {lang-num} \l__fontspec_language_int
- \prop_gput:cnV {g__fontspec_ \l_fontspec_family_tl _prop} {script-tag} \l_fontspec_script_tl
- \prop_gput:cnV {g__fontspec_ \l_fontspec_family_tl _prop} {lang-tag} \l_fontspec_lang_tl
+ \prop_gput:cnV {g__fontspec_fontinfo_ \l_fontspec_family_tl _prop} {script-num} \l__fontspec_script_int
+ \prop_gput:cnV {g__fontspec_fontinfo_ \l_fontspec_family_tl _prop} {lang-num} \l__fontspec_language_int
+ \prop_gput:cnV {g__fontspec_fontinfo_ \l_fontspec_family_tl _prop} {script-tag} \l_fontspec_script_tl
+ \prop_gput:cnV {g__fontspec_fontinfo_ \l_fontspec_family_tl _prop} {lang-tag} \l_fontspec_lang_tl
}
\cs_new:Nn \__fontspec_find_autofonts:
{
@@ -1376,7 +1440,7 @@
{ {#1}{#2}{\l__fontspec_this_font_tl}{#4}{\l__fontspec_sizefeat_clist} }
}
}
-\cs_new:Nn \__fontspec_set_font_type:
+\cs_new:Nn \__fontspec_set_font_type:N
{
\bool_set_true:N \l__fontspec_ot_bool
}
@@ -1570,7 +1634,7 @@
}
\cs_set:Nn \__fontspec_make_smallcaps:TF
{
- \__fontspec_check_ot_feat:nTF {smcp} {#1} {#2}
+ \__fontspec_check_ot_feat:NnTF \l_fontspec_font {smcp} {#1} {#2}
}
\cs_new:Nn \__fontspec_update_featstr:n
{
@@ -1637,6 +1701,9 @@
}
}
\cs_generate_variant:Nn \__fontspec_iv_str_to_num:Nn {No}
+
+%%^^A%% fontspec-opentype.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
\cs_new:Nn \__fontspec_define_opentype_feature_group:n
{
\keys_define:nn {fontspec-opentype} { #1 .multichoice: }
@@ -1694,7 +1761,7 @@
\tl_if_empty:nT {#1} { \bool_set_false:N \l__fontspec_check_feat_bool }
\bool_if:NT \l__fontspec_check_feat_bool
{
- \__fontspec_check_ot_feat:nF {#1}
+ \__fontspec_check_ot_feat:NnF \l_fontspec_font {#1}
{
\__fontspec_warning:nx {icu-feature-not-exist-in-font} {#1}
\bool_set_false:N \l__fontspec_proceed_bool
@@ -1713,42 +1780,51 @@
\cs_new:Nn \__fontspec_swap_plus_minus:n { \__fontspec_swap_plus_minus_aux:Nq #1 \q_nil }
\cs_new:Npn \__fontspec_swap_plus_minus_aux:Nq #1#2 \q_nil
{ \str_case:nn {#1} { {+} {-#2} {-} {+#2} } }
-\prg_new_conditional:Nnn \__fontspec_check_script:n {TF}
+\prg_new_conditional:Nnn \__fontspec_check_script:Nn {TF}
{
\bool_if:NTF \l__fontspec_never_check_bool
{ \prg_return_true: }
- {
- \directlua{fontspec.check_ot_script("l_fontspec_font", "#1")}
- \bool_if:NTF \l__fontspec_check_bool \prg_return_true: \prg_return_false:
+ {
+ \cs_if_eq:NNTF #1 \font
+ { \tl_set:Nx \l__fontspec_tmp_tl {\curr at fontshape/\f at size} }
+ { \tl_set:Nx \l__fontspec_tmp_tl {\cs_to_str:N #1} }
+ \directlua{fontspec.check_ot_script("\l__fontspec_tmp_tl", "#2")}
+ \bool_if:NTF \l__fontspec_check_bool \prg_return_true: \prg_return_false:
+ }
}
- }
-\prg_new_conditional:Nnn \__fontspec_check_lang:n {TF}
+\prg_new_conditional:Nnn \__fontspec_check_lang:Nn {TF}
{
\bool_if:NTF \l__fontspec_never_check_bool
{ \prg_return_true: }
- {
- \directlua
- {
- fontspec.check_ot_lang( "l_fontspec_font", "#1", "\l_fontspec_script_tl" )
- }
- \bool_if:NTF \l__fontspec_check_bool \prg_return_true: \prg_return_false:
- }
+ {
+ \cs_if_eq:NNTF #1 \font
+ { \tl_set:Nx \l__fontspec_tmp_tl {\curr at fontshape/\f at size} }
+ { \tl_set:Nx \l__fontspec_tmp_tl {\cs_to_str:N #1} }
+ \directlua
+ {
+ fontspec.check_ot_lang( "\l__fontspec_tmp_tl", "#2", "\l_fontspec_script_tl" )
+ }
+ \bool_if:NTF \l__fontspec_check_bool \prg_return_true: \prg_return_false:
}
-\prg_new_conditional:Nnn \__fontspec_check_ot_feat:n {TF,F}
+ }
+\prg_new_conditional:Nnn \__fontspec_check_ot_feat:Nn {TF,F}
{
\bool_if:NTF \l__fontspec_never_check_bool
{ \prg_return_true: }
- {
- \directlua
- {
- fontspec.check_ot_feat(
- "l_fontspec_font", "#1",
+ {
+ \cs_if_eq:NNTF #1 \font
+ { \tl_set:Nx \l__fontspec_tmp_tl {\curr at fontshape/\f at size} }
+ { \tl_set:Nx \l__fontspec_tmp_tl {\cs_to_str:N #1} }
+ \directlua
+ {
+ fontspec.check_ot_feat(
+ "\l__fontspec_tmp_tl", "#2",
"\l_fontspec_lang_tl", "\l_fontspec_script_tl"
)
- }
- \bool_if:NTF \l__fontspec_check_bool \prg_return_true: \prg_return_false:
- }
+ }
+ \bool_if:NTF \l__fontspec_check_bool \prg_return_true: \prg_return_false:
}
+ }
\prop_gput:Nnn \g__fontspec_all_opentype_feature_names_prop {aalt}{Access~All~Alternates}
\prop_gput:Nnn \g__fontspec_all_opentype_feature_names_prop {abvf}{Above-base~Forms}
\prop_gput:Nnn \g__fontspec_all_opentype_feature_names_prop {abvm}{Above-base~Mark~Positioning}
@@ -1872,7 +1948,11 @@
\prop_gput:Nnn \g__fontspec_all_opentype_feature_names_prop {vrtr}{Vertical~Alternates~for~Rotation}
\prop_gput:Nnn \g__fontspec_all_opentype_feature_names_prop {zero}{Slashed~Zero}
+%%^^A%% fontspec-graphite.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
+%%^^A%% fontspec-keyval.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
\clist_set:Nn \g__fontspec_all_keyval_modules_clist
{
fontspec, fontspec-opentype, fontspec-aat,
@@ -1925,18 +2005,14 @@
\__fontspec_warning:nx {only-xetex-feature} {Renderer=AAT/OpenType/Graphite}
}
{
- \tl_set:Nv \l_fontspec_mode_tl
- { g_fontspec_mode_tag_ \l_keys_choice_tl }
+ \tl_set:Nx \l_fontspec_mode_tl
+ {
+ \int_case:nn \l_keys_choice_int { 5 {node} 6 {base} }
+ }
\tl_gset:Nx \g__fontspec_single_feat_tl { mode=\l_fontspec_mode_tl }
}
}
}
-\tl_set:cn {g_fontspec_renderer_tag_AAT} {/AAT}
-\tl_set:cn {g_fontspec_renderer_tag_ICU} {/OT}
-\tl_set:cn {g_fontspec_renderer_tag_OpenType} {/OT}
-\tl_set:cn {g_fontspec_renderer_tag_Graphite} {/GR}
-\tl_set:cn {g_fontspec_mode_tag_Full} {node}
-\tl_set:cn {g_fontspec_mode_tag_Basic} {base}
\__fontspec_keys_define_code:nnn {fontspec-preparse} {Script}
{
\tl_set:Nn \l__fontspec_script_name_tl {#1}
@@ -2098,7 +2174,7 @@
\tl_set:Nx \l__fontspec_nfss_fam_tl { #1 }
\cs_undefine:c {g__fontspec_UID_\l__fontspec_fontid_tl}
\tl_if_exist:NT \l_fontspec_family_tl
- { \cs_undefine:c {g__fontspec_ \l_fontspec_family_tl _prop} }
+ { \cs_undefine:c {g__fontspec_fontinfo_ \l_fontspec_family_tl _prop} }
}
\__fontspec_keys_define_code:nnn {fontspec} {FontFace}
{
@@ -2382,6 +2458,8 @@
\__fontspec_update_featstr:n {#1}
}
+%%^^A%% fontspec-feat-opentype.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
\__fontspec_feat_prop_add:nn {salt} { Alternate\,=\,$N$ }
\__fontspec_feat_prop_add:nn {nalt} { Annotation\,=\,$N$ }
\__fontspec_feat_prop_add:nn {ornm} { Ornament\,=\,$N$ }
@@ -2642,7 +2720,7 @@
\bool_set_false:N \l__fontspec_script_exist_bool
\clist_map_inline:nn {#2}
{
- \__fontspec_check_script:nTF {####1}
+ \__fontspec_check_script:NnTF \l_fontspec_font {####1}
{
\tl_set:Nn \l_fontspec_script_tl {####1}
\int_set:Nn \l__fontspec_script_int {\l__fontspec_strnum_int}
@@ -2659,7 +2737,7 @@
\__fontspec_warning:nx {script-not-exist} {#1}
}
{
- \__fontspec_check_script:nTF {latn}
+ \__fontspec_check_script:NnTF \l_fontspec_font {latn}
{
\__fontspec_warning:nx {script-not-exist-latn} {#1}
\tl_set:Nn \l_fontspec_script_tl {latn}
@@ -2676,7 +2754,7 @@
\cs_new:Nn \fontspec_new_lang:nn
{
\keys_define:nn { fontspec-opentype } { Language / #1 .code:n =
- \__fontspec_check_lang:nTF {#2}
+ \__fontspec_check_lang:NnTF \l_fontspec_font {#2}
{
\tl_set:Nn \l_fontspec_lang_tl {#2}
\int_set:Nn \l__fontspec_language_int {\l__fontspec_strnum_int}
@@ -2698,7 +2776,7 @@
{
Language / Turkish .code:n =
{
- \__fontspec_check_lang:nTF {TRK}
+ \__fontspec_check_lang:NnTF \l_fontspec_font {TRK}
{
\int_set:Nn \l__fontspec_language_int {\l__fontspec_strnum_int}
\tl_set:Nn \l_fontspec_lang_tl {TRK}
@@ -2705,7 +2783,7 @@
\tl_gset:Nn \g__fontspec_single_feat_tl { language=TRK }
}
{
- \__fontspec_check_lang:nTF {TUR}
+ \__fontspec_check_lang:NnTF \l_fontspec_font {TUR}
{
\int_set:Nn \l__fontspec_language_int {\l__fontspec_strnum_int}
\tl_set:Nn \l_fontspec_lang_tl {TUR}
@@ -2740,6 +2818,8 @@
\__fontspec_ot_compat:nn {Diacritics} {AboveBase}
\__fontspec_ot_compat:nn {Diacritics} {BelowBase}
+%%^^A%% fontspec-scripts.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
\newfontscript{Adlam}{adlm}
\newfontscript{Ahom}{ahom}
\newfontscript{Anatolian~Hieroglyphs}{hluw}
@@ -2885,6 +2965,8 @@
\newfontscript{N'ko}{nko~}
\newfontscript{Oriya}{ory2,orya}
+%%^^A%% fontspec-lang.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
\newfontlanguage{Abaza}{ABA}
\newfontlanguage{Abkhazian}{ABK}
\newfontlanguage{Adyghe}{ADY}
@@ -3268,7 +3350,11 @@
\newfontlanguage{Zande}{ZND}
\newfontlanguage{Zulu}{ZUL}
+%%^^A%% fontspec-feat-aat.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
+%%^^A%% fontspec-enc.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
\providecommand\UnicodeFontFile[2]{"[#1]:#2"}
\providecommand\UnicodeFontName[2]{"#1:#2"}
\providecommand\UnicodeFontTeXLigatures{+tlig;}
@@ -3337,7 +3423,18 @@
{ \__fontspec_error:nn {only-inside-encdef} \UndeclareSymbol }
\UndeclareTextCommand {#1} {\UnicodeEncodingName}
}
-
+\DeclareDocumentCommand \UndeclareAccent {m}
+ {
+ \bool_if:NF \l__fontspec_defining_encoding_bool
+ { \__fontspec_error:nn {only-inside-encdef} \UndeclareAccent }
+ \UndeclareTextCommand {#1} {\UnicodeEncodingName}
+ }
+\DeclareDocumentCommand \UndeclareCommand {m}
+ {
+ \bool_if:NF \l__fontspec_defining_encoding_bool
+ { \__fontspec_error:nn {only-inside-encdef} \UndeclareCommand }
+ \UndeclareTextCommand {#1} {\UnicodeEncodingName}
+ }
\DeclareDocumentCommand \UndeclareComposite {mm}
{
\bool_if:NF \l__fontspec_defining_encoding_bool
@@ -3345,6 +3442,8 @@
\cs_undefine:c
{ \c_backslash_str \UnicodeEncodingName \token_to_str:N #1 - \tl_to_str:n {#2} }
}
+
+%%^^A%% fontspec-math.dtx -- part of FONTSPEC <wspr.io/fontspec>
\@ifpackageloaded{euler}
{
\bool_set_true:N \g__fontspec_pkg_euler_loaded_bool
@@ -3480,6 +3579,8 @@
}
}
\AtBeginDocument{\fontspec_maybe_setup_maths:}
+
+%%^^A%% fontspec-closing.dtx -- part of FONTSPEC <wspr.io/fontspec>
\bool_if:NT \g__fontspec_cfg_bool
{
\InputIfFileExists{fontspec.cfg}
@@ -3486,6 +3587,9 @@
{}
{\typeout{No~ fontspec.cfg~ file~ found;~ no~ configuration~ loaded.}}
}
+
+%%^^A%% fontspec-xfss.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
\providecommand*\itscdefault{\itdefault\scdefault}
\providecommand*\slscdefault{\sldefault\scdefault}
\DeclareRobustCommand{\sishape}
@@ -3643,6 +3747,9 @@
\cs_new:Nn \fontspec_set_strong_level:n { \int_set:Nn \l__fontspec_strong_int {#1} }
\strongfontdeclare{ \bfseries }
\emfontdeclare{ \emshape, \eminnershape }
+
+%%^^A%% fontspec-patches.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
\DeclareRobustCommand{\-}
{
\discretionary
@@ -3743,16 +3850,4 @@
{
{ \addfontfeature{Numbers=Lining} #1 }
}
-%% ------------------------------------------------
-%% Copyright 2004--2017 Will Robertson <will.robertson at latex-project.org>
-%% Copyright 2009--2013 Khaled Hosny <khaledhosny at eglug.org>
-%%
-%% Distributable under the LaTeX Project Public License, version 1.3c or higher.
-%% The latest version of this license is at: http://www.latex-project.org/lppl.txt
-%%
-%% This work is "maintained" by Will Robertson.
-%% It consists of the files: fontspec*.dtx, fontspec.cfg, fontspec*.tex.
-%% And the derived files: fontspec*.sty,fontspec.lua, fontspec.pdf.
-%% ------------------------------------------------
-%%
-%% End of file `fontspec-luatex.sty'.
+
Modified: trunk/Master/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty 2017-11-05 22:03:43 UTC (rev 45697)
@@ -5,6 +5,7 @@
%% The original source files were:
%%
%% fontspec.dtx (with options: `fontspec,XE,xetexx')
+%% fontspec-code-load.dtx (with options: `fontspec,XE,xetexx')
%% fontspec-vars.dtx (with options: `fontspec,XE,xetexx')
%% fontspec-msg.dtx (with options: `fontspec,XE,xetexx')
%% fontspec-opening.dtx (with options: `fontspec,XE,xetexx')
@@ -26,21 +27,28 @@
%% fontspec-xfss.dtx (with options: `fontspec,XE,xetexx')
%% fontspec-patches.dtx (with options: `fontspec,XE,xetexx')
%% ------------------------------------------------
-%% The FONTSPEC package for XeLaTeX/LuaLaTeX
-%% (C) 2004--2017 Will Robertson and Khaled Hosny
-%% License information appended.
+%% The FONTSPEC package <wspr.io/fontspec>
%% ------------------------------------------------
-\RequirePackage{expl3}
+%% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+%% Copyright 2009-2013 Khaled Hosny
+%% ------------------------------------------------
+%% 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/>.
+%% ------------------------------------------------
+%%^^A%% fontspec.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
\RequirePackage{xparse}
\ProvidesExplPackage{fontspec-xetex}%
- {2017/09/22}{2.6e}{Font selection for XeLaTeX and LuaLaTeX}
+ {2017/11/05}{2.6f}{Font selection for XeLaTeX and LuaLaTeX}
+
+%%^^A%% fontspec-code-load.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-vars.dtx -- part of FONTSPEC <wspr.io/fontspec>
\bool_new:N \l__fontspec_firsttime_bool
\bool_new:N \l__fontspec_nobf_bool
\bool_new:N \l__fontspec_noit_bool
\bool_new:N \l__fontspec_nosc_bool
\bool_new:N \l__fontspec_check_bool
-\cs_new:Npn \FontspecSetCheckBoolTrue { \bool_set_true:N \l__fontspec_check_bool }
-\cs_new:Npn \FontspecSetCheckBoolFalse { \bool_set_false:N \l__fontspec_check_bool }
\bool_new:N \l__fontspec_tfm_bool
\bool_new:N \l__fontspec_atsui_bool
\bool_new:N \l__fontspec_ot_bool
@@ -54,6 +62,7 @@
\bool_new:N \g__fontspec_cfg_bool
\bool_new:N \g__fontspec_math_bool
\bool_new:N \g__fontspec_euenc_bool
+\bool_new:N \l__fontspec_tmpa_bool
\bool_new:N \l__fontspec_disable_defaults_bool
\bool_new:N \l__fontspec_alias_bool
\bool_new:N \l__fontspec_external_bool
@@ -77,7 +86,24 @@
\seq_new:N \g__fontspec_bf_series_seq
\clist_new:N \g__fontspec_default_fontopts_clist
\clist_new:N \g__fontspec_all_keyval_modules_clist
+\clist_new:N \l__fontspec_sizefeat_clist
\clist_set:Nn \l__fontspec_sizefeat_clist {Size={-}}
+\clist_new:N \l__fontspec_extensions_clist
+\clist_new:N \l__fontspec_fontopts_clist
+\clist_new:N \l__fontspec_family_fontopts_clist
+\clist_new:N \l__fontspec_all_features_clist
+\clist_new:N \l__fontspec_leftover_clist
+\clist_new:N \l__fontspec_keys_leftover_clist
+\clist_new:N \l__fontspec_sizing_leftover_clist
+\clist_new:N \l__fontspec_fontfeat_clist
+\clist_new:N \l__fontspec_fontfeat_curr_clist
+\tl_new:N \l__fontspec_fontfeat_up_clist
+\tl_new:N \l__fontspec_fontfeat_bf_clist
+\tl_new:N \l__fontspec_fontfeat_it_clist
+\tl_new:N \l__fontspec_fontfeat_bfit_clist
+\tl_new:N \l__fontspec_fontfeat_sl_clist
+\tl_new:N \l__fontspec_fontfeat_bfsl_clist
+\tl_new:N \l__fontspec_fontfeat_sc_clist
\prop_new:N \g__fontspec_fontopts_prop
\prop_new:N \l__fontspec_nfss_prop
\prop_new:N \l__fontspec_nfssfont_prop
@@ -84,6 +110,43 @@
\prop_new:N \g__fontspec_OT_features_prop
\prop_new:N \g__fontspec_all_opentype_feature_names_prop
\prop_new:N \g__fontspec_em_prop
+\prop_new:N \g__fontspec_strong_prop
+\tl_new:N \l_fontspec_family_tl
+\tl_new:N \g_fontspec_encoding_tl
+\tl_new:N \l_fontspec_renderer_tl
+\tl_new:N \l_fontspec_fontname_tl
+\tl_new:N \l_fontspec_defined_shapes_tl
+\tl_new:N \UTFencname
+\tl_new:N \cyrillicencoding
+\tl_new:N \latinencoding
+\tl_new:N \g__fontspec_single_feat_tl
+\tl_new:N \l__fontspec_tmp_tl
+\tl_new:N \l__fontspec_size_tl
+\tl_new:N \l__fontspec_sizedfont_tl
+\tl_new:N \l__fontspec_nfss_tl
+\tl_new:N \l__fontspec_nfss_sc_tl
+\tl_new:N \l__fontspec_this_font_tl
+\tl_new:N \l__fontspec_scale_tl
+\tl_new:N \l__fontspec_opacity_tl
+\tl_new:N \l__fontspec_hexcol_tl
+\tl_new:N \l__fontspec_fontid_tl
+\tl_new:N \l__fontspec_extension_tl
+\tl_new:N \l__fontspec_ext_filename_tl
+\tl_new:N \l__fontspec_font_path_tl
+\tl_new:N \l__fontspec_basename_tl
+\tl_new:N \l__fontspec_curr_fontname_tl
+\tl_new:N \l__fontspec_saved_fontname_tl
+\tl_new:N \l__fontspec_optical_size_tl
+\tl_new:N \l__fontspec_ttc_index_tl
+\tl_new:N \l__fontspec_nfss_enc_tl
+\tl_new:N \g__fontspec_curr_series_tl
+\tl_new:N \l__fontspec_options_tl
+\tl_new:N \l__fontspec_fontname_tl
+\tl_new:N \l__fontspec_rawfeatures_sclist
+\tl_new:N \l__fontspec_pre_feat_sclist
+\tl_new:N \g__fontspec_rmfamily_family
+\tl_new:N \g__fontspec_sffamily_family
+\tl_new:N \g__fontspec_ttfamily_family
\tl_new:N \g__fontspec_mathrm_tl
\tl_new:N \g__fontspec_bfmathrm_tl
\tl_new:N \g__fontspec_mathsf_tl
@@ -98,13 +161,6 @@
\tl_new:N \l__fontspec_fontname_sl_tl
\tl_new:N \l__fontspec_fontname_bfsl_tl
\tl_new:N \l__fontspec_fontname_sc_tl
-\tl_new:N \l__fontspec_fontfeat_up_clist
-\tl_new:N \l__fontspec_fontfeat_bf_clist
-\tl_new:N \l__fontspec_fontfeat_it_clist
-\tl_new:N \l__fontspec_fontfeat_bfit_clist
-\tl_new:N \l__fontspec_fontfeat_sl_clist
-\tl_new:N \l__fontspec_fontfeat_bfsl_clist
-\tl_new:N \l__fontspec_fontfeat_sc_clist
\tl_new:N \l__fontspec_script_name_tl
\tl_new:N \l_fontspec_script_tl
\tl_new:N \l__fontspec_lang_name_tl
@@ -114,35 +170,13 @@
\tl_new:N \g__fontspec_opacity_tl
\tl_set:Nn \g__fontspec_hexcol_tl {000000}
\tl_set:Nn \g__fontspec_opacity_tl {FF~}
+\tl_new:N \l__fontspec_punctspace_adjust_tl
+\tl_new:N \l__fontspec_wordspace_adjust_tl
+\tl_new:N \l__fontspec_postadjust_tl
+\tl_new:N \g__fontspec_postadjust_tl
\tl_set:Nn \g__fontspec_postadjust_tl { \l__fontspec_wordspace_adjust_tl \l__fontspec_punctspace_adjust_tl }
-\cs_new:Nn \__fontspec_keys_set_known:nnN
- {
- \keys_set_known:nnN {#1} {#2} #3
- }
-\cs_generate_variant:Nn \__fontspec_keys_set_known:nnN {nx}
-\cs_set:Npn \__fontspec_head_ii:n #1 { \__fontspec_head_ii:w #1 *** \q_stop}
-\cs_set:Npn \__fontspec_head_ii:w #1#2#3 \q_stop { #1#2 }
-\cs_generate_variant:Nn \__fontspec_head_ii:n {o}
-\cs_new:Nn \__fontspec_int_mult_truncate:Nn
- {
- \int_set:Nn #1 { \__dim_eval:w #2 #1 \__dim_eval_end: }
- }
-\cs_generate_variant:Nn \int_set:Nn {Nv}
-\cs_generate_variant:Nn \keys_set:nn {nx}
-\cs_generate_variant:Nn \keys_set_known:nnN {nx}
-\cs_generate_variant:Nn \prop_put:Nnn {Nxx}
-\cs_generate_variant:Nn \prop_put:Nnn {NxV}
-\cs_generate_variant:Nn \prop_gput_if_new:Nnn {NxV}
-\cs_generate_variant:Nn \prop_gput:Nnn {Nxn}
-\cs_generate_variant:Nn \prop_get:NnNT {NxN}
-\cs_generate_variant:Nn \prop_get:NnNTF {NxN}
-\cs_generate_variant:Nn \str_if_eq:nnTF {nv}
-\cs_generate_variant:Nn \tl_if_empty:nTF {x}
-\cs_generate_variant:Nn \tl_if_empty:nF {x}
-\cs_generate_variant:Nn \tl_if_empty:nF {f}
-\cs_generate_variant:Nn \tl_if_eq:nnT {ox}
-\cs_generate_variant:Nn \tl_replace_all:Nnn {Nnx}
+%%^^A%% fontspec-msg.dtx -- part of FONTSPEC <wspr.io/fontspec>
\cs_new:Npn \__fontspec_error:n { \msg_error:nn {fontspec} }
\cs_new:Npn \__fontspec_error:nn { \msg_error:nnn {fontspec} }
\cs_new:Npn \__fontspec_error:nx { \msg_error:nnx {fontspec} }
@@ -373,6 +407,8 @@
* an eight-digit hex colour RRGGBBTT with opacity
}
\char_set_catcode_ignore:n {32}
+
+%%^^A%% fontspec-opening.dtx -- part of FONTSPEC <wspr.io/fontspec>
\DeclareOption{cm-default}
{ \__fontspec_warning:n {cm-default-obsolete} }
\DeclareOption{math}{\bool_set_true:N \g__fontspec_math_bool}
@@ -431,7 +467,35 @@
{
\RequirePackage{xunicode}
}
+\cs_new:Npn \FontspecSetCheckBoolTrue { \bool_set_true:N \l__fontspec_check_bool }
+\cs_new:Npn \FontspecSetCheckBoolFalse { \bool_set_false:N \l__fontspec_check_bool }
+\cs_new:Nn \__fontspec_keys_set_known:nnN
+ {
+ \keys_set_known:nnN {#1} {#2} #3
+ }
+\cs_generate_variant:Nn \__fontspec_keys_set_known:nnN {nx}
+\cs_new:Nn \__fontspec_int_mult_truncate:Nn
+ {
+ \int_set:Nn #1 { \__dim_eval:w #2 #1 \__dim_eval_end: }
+ }
+\cs_generate_variant:Nn \int_set:Nn {Nv}
+\cs_generate_variant:Nn \keys_set:nn {nx}
+\cs_generate_variant:Nn \keys_set_known:nnN {nx}
+\cs_generate_variant:Nn \prop_put:Nnn {Nxx}
+\cs_generate_variant:Nn \prop_put:Nnn {NxV}
+\cs_generate_variant:Nn \prop_gput_if_new:Nnn {NxV}
+\cs_generate_variant:Nn \prop_gput:Nnn {Nxn}
+\cs_generate_variant:Nn \prop_get:NnNT {NxN}
+\cs_generate_variant:Nn \prop_get:NnNTF {NxN}
+\cs_generate_variant:Nn \str_if_eq:nnTF {nv}
+\cs_generate_variant:Nn \tl_if_empty:nTF {x}
+\cs_generate_variant:Nn \tl_if_empty:nF {x}
+\cs_generate_variant:Nn \tl_if_empty:nF {f}
+\cs_generate_variant:Nn \tl_if_eq:nnT {ox}
+\cs_generate_variant:Nn \tl_replace_all:Nnn {Nnx}
+%%^^A%% fontspec-fontload.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
\cs_set:Npn \__fontspec_primitive_font_set:Nnn #1#2#3
{
\font #1 = #2 ~at~ #3 \scan_stop:
@@ -473,6 +537,9 @@
{
\tex_hyphenchar:D #1 = #2 \scan_stop:
}
+
+%%^^A%% fontspec-interfaces.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
\NewDocumentCommand \fontspec { O{} m O{} }
{
\__fontspec_main_fontspec:nn {#1,#3} {#2}
@@ -569,6 +636,9 @@
{
\__fontspec_main_IfFontFeatureActiveTF:nnn {#1} {#2} {#3}
}
+
+%%^^A%% fontspec-user.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
\cs_set:Nn \__fontspec_main_fontspec:nn
{
\fontspec_set_family:Nnn \f at family {#1} {#2}
@@ -718,8 +788,8 @@
{
\group_begin:
\keys_set_known:nnN {fontspec-addfeatures} {#1} \l__fontspec_tmp_tl
- \prop_get:cnN {g__fontspec_ \f at family _prop} {options} \l__fontspec_options_tl
- \prop_get:cnN {g__fontspec_ \f at family _prop} {fontname} \l__fontspec_fontname_tl
+ \prop_get:cnN {g__fontspec_fontinfo_ \f at family _prop} {options} \l__fontspec_options_tl
+ \prop_get:cnN {g__fontspec_fontinfo_ \f at family _prop} {fontname} \l__fontspec_fontname_tl
\bool_set_true:N \l__fontspec_disable_defaults_bool
\use:x
{
@@ -847,19 +917,20 @@
}
}
+%%^^A%% fontspec-api.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
\prg_new_conditional:Nnn \fontspec_if_fontspec_font: {TF,T,F}
{
- \cs_if_exist:cTF {g__fontspec_ \f at family _prop} \prg_return_true: \prg_return_false:
+ \cs_if_exist:cTF {g__fontspec_fontinfo_ \f at family _prop} \prg_return_true: \prg_return_false:
}
\prg_new_conditional:Nnn \fontspec_if_aat_feature:nn {TF,T,F}
{
\fontspec_if_fontspec_font:TF
{
- \prop_get:cnN {g__fontspec_ \f at family _prop} {fontdef} \l__fontspec_fontdef_tl
- \__fontspec_primitive_font_set:Nnn \l_fontspec_font {\l__fontspec_fontdef_tl} {\f at size pt}
+ \__fontspec_set_font_type:N \font
\bool_if:NTF \l__fontspec_atsui_bool
{
- \__fontspec_make_AAT_feature_string:nnTF {#1}{#2}
+ \__fontspec_make_AAT_feature_string:NnnTF \font {#1} {#2}
\prg_return_true: \prg_return_false:
}
{
@@ -874,9 +945,7 @@
{
\fontspec_if_fontspec_font:TF
{
- \prop_get:cnN {g__fontspec_ \f at family _prop} {fontdef} \l__fontspec_fontdef_tl
- \__fontspec_primitive_font_set:Nnn \l_fontspec_font {\l__fontspec_fontdef_tl} {\f at size pt}
- \__fontspec_set_font_type:
+ \__fontspec_set_font_type:N \font
\bool_if:NTF \l__fontspec_ot_bool \prg_return_true: \prg_return_false:
}
{
@@ -887,21 +956,19 @@
{
\fontspec_if_fontspec_font:TF
{
- \prop_get:cnN {g__fontspec_ \f at family _prop} {fontdef} \l__fontspec_fontdef_tl
- \__fontspec_primitive_font_set:Nnn \l_fontspec_font {\l__fontspec_fontdef_tl} {\f at size pt}
- \__fontspec_set_font_type:
+ \__fontspec_set_font_type:N \font
\bool_if:NTF \l__fontspec_ot_bool
{
- \prop_get:cnN {g__fontspec_ \f at family _prop} {script-num} \l__fontspec_tmp_tl
+ \prop_get:cnN {g__fontspec_fontinfo_ \f at family _prop} {script-num} \l__fontspec_tmp_tl
\int_set:Nn \l__fontspec_script_int {\l__fontspec_tmp_tl}
- \prop_get:cnN {g__fontspec_ \f at family _prop} {lang-num} \l__fontspec_tmp_tl
+ \prop_get:cnN {g__fontspec_fontinfo_ \f at family _prop} {lang-num} \l__fontspec_tmp_tl
\int_set:Nn \l__fontspec_language_int {\l__fontspec_tmp_tl}
- \prop_get:cnN {g__fontspec_ \f at family _prop} {script-tag} \l_fontspec_script_tl
- \prop_get:cnN {g__fontspec_ \f at family _prop} {lang-tag} \l_fontspec_lang_tl
+ \prop_get:cnN {g__fontspec_fontinfo_ \f at family _prop} {script-tag} \l_fontspec_script_tl
+ \prop_get:cnN {g__fontspec_fontinfo_ \f at family _prop} {lang-tag} \l_fontspec_lang_tl
- \__fontspec_check_ot_feat:nTF {#1} {\prg_return_true:} {\prg_return_false:}
+ \__fontspec_check_ot_feat:NnTF \font {#1} {\prg_return_true:} {\prg_return_false:}
}
{
\prg_return_false:
@@ -915,14 +982,12 @@
{
\fontspec_if_fontspec_font:TF
{
- \prop_get:cnN {g__fontspec_ \f at family _prop} {fontdef} \l__fontspec_fontdef_tl
- \__fontspec_primitive_font_set:Nnn \l_fontspec_font {\l__fontspec_fontdef_tl} {\f at size pt}
- \__fontspec_set_font_type:
+ \__fontspec_set_font_type:N \font
\bool_if:NTF \l__fontspec_ot_bool
{
\__fontspec_iv_str_to_num:Nn \l__fontspec_script_int {#1}
\__fontspec_iv_str_to_num:Nn \l__fontspec_language_int {#2}
- \__fontspec_check_ot_feat:nTF {#3} \prg_return_true: \prg_return_false:
+ \__fontspec_check_ot_feat:NnTF \font {#3} \prg_return_true: \prg_return_false:
}
{ \prg_return_false: }
}
@@ -932,12 +997,10 @@
{
\fontspec_if_fontspec_font:TF
{
- \prop_get:cnN {g__fontspec_ \f at family _prop} {fontdef} \l__fontspec_fontdef_tl
- \__fontspec_primitive_font_set:Nnn \l_fontspec_font {\l__fontspec_fontdef_tl} {\f at size pt}
- \__fontspec_set_font_type:
+ \__fontspec_set_font_type:N \font
\bool_if:NTF \l__fontspec_ot_bool
{
- \__fontspec_check_script:nTF {#1} \prg_return_true: \prg_return_false:
+ \__fontspec_check_script:NnTF \font {#1} \prg_return_true: \prg_return_false:
}
{ \prg_return_false: }
}
@@ -947,16 +1010,14 @@
{
\fontspec_if_fontspec_font:TF
{
- \prop_get:cnN {g__fontspec_ \f at family _prop} {fontdef} \l__fontspec_fontdef_tl
- \__fontspec_primitive_font_set:Nnn \l_fontspec_font {\l__fontspec_fontdef_tl} {\f at size pt}
- \__fontspec_set_font_type:
+ \__fontspec_set_font_type:N \font
\bool_if:NTF \l__fontspec_ot_bool
{
- \prop_get:cnN {g__fontspec_ \f at family _prop} {script-num} \l__fontspec_tmp_tl
- \int_set:Nn \l__fontspec_script_int {\l__fontspec_tmp_tl}
- \prop_get:cnN {g__fontspec_ \f at family _prop} {script-tag} \l_fontspec_script_tl
+ \prop_get:cnN {g__fontspec_fontinfo_ \f at family _prop} {script-num} \l__fontspec_tmpf_tl
+ \int_set:Nn \l__fontspec_script_int {\l__fontspec_tmpf_tl}
+ \prop_get:cnN {g__fontspec_fontinfo_ \f at family _prop} {script-tag} \l_fontspec_script_tl
- \__fontspec_check_lang:nTF {#1} \prg_return_true: \prg_return_false:
+ \__fontspec_check_lang:NnTF \font {#1} \prg_return_true: \prg_return_false:
}
{ \prg_return_false: }
}
@@ -966,14 +1027,12 @@
{
\fontspec_if_fontspec_font:TF
{
- \prop_get:cnN {g__fontspec_ \f at family _prop} {fontdef} \l__fontspec_fontdef_tl
- \__fontspec_primitive_font_set:Nnn \l_fontspec_font {\l__fontspec_fontdef_tl} {\f at size pt}
- \__fontspec_set_font_type:
+ \__fontspec_set_font_type:N \font
\bool_if:NTF \l__fontspec_ot_bool
{
\tl_set:Nn \l_fontspec_script_tl {#1}
\__fontspec_iv_str_to_num:Nn \l__fontspec_script_int {#1}
- \__fontspec_check_lang:nTF {#2} \prg_return_true: \prg_return_false:
+ \__fontspec_check_lang:NnTF \font {#2} \prg_return_true: \prg_return_false:
}
{ \prg_return_false: }
}
@@ -983,12 +1042,10 @@
{
\fontspec_if_fontspec_font:TF
{
- \prop_get:cnN {g__fontspec_ \f at family _prop} {fontdef} \l__fontspec_fontdef_tl
- \__fontspec_primitive_font_set:Nnn \l_fontspec_font {\l__fontspec_fontdef_tl} {\f at size pt}
- \__fontspec_set_font_type:
+ \__fontspec_set_font_type:N \font
\bool_if:NTF \l__fontspec_ot_bool
{
- \prop_get:cnN {g__fontspec_ \f at family _prop} {script-tag} \l__fontspec_tmp_tl
+ \prop_get:cnN {g__fontspec_fontinfo_ \f at family _prop} {script-tag} \l__fontspec_tmp_tl
\str_if_eq:nVTF {#1} \l__fontspec_tmp_tl
{\prg_return_true:} {\prg_return_false:}
}
@@ -1000,12 +1057,10 @@
{
\fontspec_if_fontspec_font:TF
{
- \prop_get:cnN {g__fontspec_ \f at family _prop} {fontdef} \l__fontspec_fontdef_tl
- \__fontspec_primitive_font_set:Nnn \l_fontspec_font {\l__fontspec_fontdef_tl} {\f at size pt}
- \__fontspec_set_font_type:
+ \__fontspec_set_font_type:N \font
\bool_if:NTF \l__fontspec_ot_bool
{
- \prop_get:cnN {g__fontspec_ \f at family _prop} {lang-tag} \l__fontspec_tmp_tl
+ \prop_get:cnN {g__fontspec_fontinfo_ \f at family _prop} {lang-tag} \l__fontspec_tmp_tl
\str_if_eq:nVTF {#1} \l__fontspec_tmp_tl
{\prg_return_true:} {\prg_return_false:}
}
@@ -1024,7 +1079,7 @@
{
\tl_set:Nn \l__fontspec_family_label_tl { #1 }
\__fontspec_select_font_family:nn {#3}{#4}
- \tl_set_eq:NN #1 \l_fontspec_font
+ \font #1 = \fontname \l_fontspec_font \scan_stop:
\tl_set_eq:NN #2 \l_fontspec_family_tl
}
\prg_new_conditional:Nnn \fontspec_font_if_exist:n {TF,T,F}
@@ -1064,6 +1119,9 @@
}
{ \prg_return_false: }
}
+
+%%^^A%% fontspec-internal.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
\cs_new_protected:Nn \__fontspec_select_font_family:nn
{
\group_begin:
@@ -1189,7 +1247,7 @@
\__fontspec_primitive_font_set:Nnn \l_fontspec_font
{ \__fontspec_construct_font_call:nn { \l__fontspec_fontname_up_tl } {} } {\f at size pt}
\__fontspec_primitive_font_if_null:NT \l_fontspec_font { \__fontspec_error:nx {font-not-found} {\l__fontspec_fontname_up_tl} }
- \__fontspec_set_font_type:
+ \__fontspec_set_font_type:N \l_fontspec_font
\__fontspec_primitive_font_gset:Nnn \l_fontspec_font
{ \__fontspec_construct_font_call:nn { \l__fontspec_fontname_up_tl } {} } {\f at size pt}
\l_fontspec_font % this is necessary for LuaLaTeX to check the scripts properly
@@ -1224,7 +1282,7 @@
{
\tl_if_empty:NTF \l__fontspec_script_name_tl
{
- \__fontspec_check_script:nTF {latn}
+ \__fontspec_check_script:NnTF \l_fontspec_font {latn}
{
\tl_set:Nn \l__fontspec_script_name_tl {Latin}
\tl_if_empty:NT \l__fontspec_lang_name_tl
@@ -1261,7 +1319,7 @@
% \EROROR
}
{
- \bool_if:NT \l__fontspec_atsui_bool
+ \bool_if:nT { \l__fontspec_atsui_bool || \l__fontspec_graphite_bool }
{ \keys_set:nV {fontspec-aat} \l__fontspec_keys_leftover_clist }
}
@@ -1278,12 +1336,18 @@
{
- \cs_if_exist:NT \l__fontspec_nfss_fam_tl
+ \tl_if_exist:cF {g__fontspec_UID_\l__fontspec_fontid_tl}
+ {
+ \tl_new:c {g__fontspec_UID_\l__fontspec_fontid_tl}
+ }
+
+ \tl_if_exist:NT \l__fontspec_nfss_fam_tl
+ {
+ \tl_set_eq:cN {g__fontspec_UID_\l__fontspec_fontid_tl} \l__fontspec_nfss_fam_tl
+ }
+
+ \tl_if_empty:cT {g__fontspec_UID_\l__fontspec_fontid_tl}
{
- \cs_set_eq:cN {g__fontspec_UID_\l__fontspec_fontid_tl} \l__fontspec_nfss_fam_tl
- }
- \cs_if_exist:cF {g__fontspec_UID_\l__fontspec_fontid_tl}
- {
% The font name is fully expanded, in case it's defined in terms of macros, before having its spaces zapped:
\tl_set:Nx \l__fontspec_tmp_tl {#1}
\tl_remove_all:Nn \l__fontspec_tmp_tl {~}
@@ -1298,7 +1362,7 @@
}
}
\tl_gset:Nv \l_fontspec_family_tl {g__fontspec_UID_\l__fontspec_fontid_tl}
- \cs_if_exist:cTF {g__fontspec_ \l_fontspec_family_tl _prop}
+ \cs_if_exist:cTF {g__fontspec_fontinfo_ \l_fontspec_family_tl _prop}
\prg_return_false: \prg_return_true:
}
\cs_new:Nn \__fontspec_save_family:nn
@@ -1311,18 +1375,18 @@
}
\cs_new:Nn \__fontspec_save_fontinfo:n
{
- \prop_new:c {g__fontspec_ \l_fontspec_family_tl _prop}
- \prop_gput:cnx {g__fontspec_ \l_fontspec_family_tl _prop} {fontname} { #1 }
- \prop_gput:cnx {g__fontspec_ \l_fontspec_family_tl _prop} {options} { \l__fontspec_all_features_clist }
- \prop_gput:cnx {g__fontspec_ \l_fontspec_family_tl _prop} {fontdef}
+ \prop_new:c {g__fontspec_fontinfo_ \l_fontspec_family_tl _prop}
+ \prop_gput:cnx {g__fontspec_fontinfo_ \l_fontspec_family_tl _prop} {fontname} { #1 }
+ \prop_gput:cnx {g__fontspec_fontinfo_ \l_fontspec_family_tl _prop} {options} { \l__fontspec_all_features_clist }
+ \prop_gput:cnx {g__fontspec_fontinfo_ \l_fontspec_family_tl _prop} {fontdef}
{
\__fontspec_construct_font_call:nn {\l_fontspec_fontname_tl}
{ \l__fontspec_pre_feat_sclist \l__fontspec_rawfeatures_sclist }
}
- \prop_gput:cnV {g__fontspec_ \l_fontspec_family_tl _prop} {script-num} \l__fontspec_script_int
- \prop_gput:cnV {g__fontspec_ \l_fontspec_family_tl _prop} {lang-num} \l__fontspec_language_int
- \prop_gput:cnV {g__fontspec_ \l_fontspec_family_tl _prop} {script-tag} \l_fontspec_script_tl
- \prop_gput:cnV {g__fontspec_ \l_fontspec_family_tl _prop} {lang-tag} \l_fontspec_lang_tl
+ \prop_gput:cnV {g__fontspec_fontinfo_ \l_fontspec_family_tl _prop} {script-num} \l__fontspec_script_int
+ \prop_gput:cnV {g__fontspec_fontinfo_ \l_fontspec_family_tl _prop} {lang-num} \l__fontspec_language_int
+ \prop_gput:cnV {g__fontspec_fontinfo_ \l_fontspec_family_tl _prop} {script-tag} \l_fontspec_script_tl
+ \prop_gput:cnV {g__fontspec_fontinfo_ \l_fontspec_family_tl _prop} {lang-tag} \l_fontspec_lang_tl
}
\cs_new:Nn \__fontspec_find_autofonts:
{
@@ -1380,7 +1444,7 @@
{ {#1}{#2}{\l__fontspec_this_font_tl}{#4}{\l__fontspec_sizefeat_clist} }
}
}
-\cs_new:Nn \__fontspec_set_font_type:
+\cs_new:Nn \__fontspec_set_font_type:N
{
\bool_set_false:N \l__fontspec_tfm_bool
\bool_set_false:N \l__fontspec_atsui_bool
@@ -1387,25 +1451,21 @@
\bool_set_false:N \l__fontspec_ot_bool
\bool_set_false:N \l__fontspec_mm_bool
\bool_set_false:N \l__fontspec_graphite_bool
- \ifcase\XeTeXfonttype\l_fontspec_font
+ \ifcase\XeTeXfonttype #1
\bool_set_true:N \l__fontspec_tfm_bool
\or
\bool_set_true:N \l__fontspec_atsui_bool
- \ifnum\XeTeXcountvariations\l_fontspec_font > \c_zero
+ \tl_if_empty:NT \l_fontspec_renderer_tl { \tl_set:Nn \l_fontspec_renderer_tl {/AAT} }
+ \ifnum\XeTeXcountvariations #1 > \c_zero
\bool_set_true:N \l__fontspec_mm_bool
\fi
\or
\bool_set_true:N \l__fontspec_ot_bool
+ \tl_if_empty:NT \l_fontspec_renderer_tl { \tl_set:Nn \l_fontspec_renderer_tl {/OT} }
+ \or
+ \bool_set_true:N \l__fontspec_graphite_bool
+ \tl_if_empty:NT \l_fontspec_renderer_tl { \tl_set:Nn \l_fontspec_renderer_tl {/GR} }
\fi
- \tl_if_empty:NT \l_fontspec_renderer_tl
- {
- \bool_if:NTF \l__fontspec_atsui_bool
- { \tl_set:Nn \l_fontspec_renderer_tl {/AAT} }
- {
- \bool_if:NT \l__fontspec_ot_bool
- { \tl_set:Nn \l_fontspec_renderer_tl {/OT} }
- }
- }
}
\cs_new:Nn \__fontspec_set_autofont:Nnn
{
@@ -1599,7 +1659,7 @@
}
\cs_set:Nn \__fontspec_make_ot_smallcaps:TF
{
- \__fontspec_check_ot_feat:nTF {smcp} {#1} {#2}
+ \__fontspec_check_ot_feat:NnTF \l_fontspec_font {smcp} {#1} {#2}
}
\cs_set:Nn \__fontspec_make_smallcaps:TF
{
@@ -1607,7 +1667,7 @@
{ \__fontspec_make_ot_smallcaps:TF {#1} {#2} }
{
\bool_if:NT \l__fontspec_atsui_bool
- { \__fontspec_make_AAT_feature_string:nnTF {3}{3} {#1} {#2} }
+ { \__fontspec_make_AAT_feature_string:NnnTF \l_fontspec_font {3}{3} {#1} {#2} }
}
}
\cs_new:Nn \__fontspec_update_featstr:n
@@ -1670,6 +1730,9 @@
}
}
\cs_generate_variant:Nn \__fontspec_iv_str_to_num:Nn {No}
+
+%%^^A%% fontspec-opentype.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
\cs_new:Nn \__fontspec_define_opentype_feature_group:n
{
\keys_define:nn {fontspec-opentype} { #1 .multichoice: }
@@ -1727,7 +1790,7 @@
\tl_if_empty:nT {#1} { \bool_set_false:N \l__fontspec_check_feat_bool }
\bool_if:NT \l__fontspec_check_feat_bool
{
- \__fontspec_check_ot_feat:nF {#1}
+ \__fontspec_check_ot_feat:NnF \l_fontspec_font {#1}
{
\__fontspec_warning:nx {icu-feature-not-exist-in-font} {#1}
\bool_set_false:N \l__fontspec_proceed_bool
@@ -1746,18 +1809,18 @@
\cs_new:Nn \__fontspec_swap_plus_minus:n { \__fontspec_swap_plus_minus_aux:Nq #1 \q_nil }
\cs_new:Npn \__fontspec_swap_plus_minus_aux:Nq #1#2 \q_nil
{ \str_case:nn {#1} { {+} {-#2} {-} {+#2} } }
-\prg_new_conditional:Nnn \__fontspec_check_script:n {TF}
+\prg_new_conditional:Nnn \__fontspec_check_script:Nn {TF}
{
\bool_if:NTF \l__fontspec_never_check_bool
{ \prg_return_true: }
{
- \__fontspec_iv_str_to_num:Nn \l__fontspec_strnum_int {#1}
- \int_set:Nn \l_tmpb_int { \XeTeXOTcountscripts \l_fontspec_font }
+ \__fontspec_iv_str_to_num:Nn \l__fontspec_strnum_int {#2}
+ \int_set:Nn \l_tmpb_int { \XeTeXOTcountscripts #1 }
\int_zero:N \l_tmpa_int
\bool_set_false:N \l__fontspec_check_bool
\bool_until_do:nn { \int_compare_p:nNn \l_tmpa_int = \l_tmpb_int }
{
- \ifnum \XeTeXOTscripttag\l_fontspec_font \l_tmpa_int = \l__fontspec_strnum_int
+ \ifnum \XeTeXOTscripttag #1 \l_tmpa_int = \l__fontspec_strnum_int
\bool_set_true:N \l__fontspec_check_bool
\int_set:Nn \l_tmpa_int {\l_tmpb_int}
\else
@@ -1767,19 +1830,19 @@
\bool_if:NTF \l__fontspec_check_bool \prg_return_true: \prg_return_false:
}
}
-\prg_new_conditional:Nnn \__fontspec_check_lang:n {TF}
+\prg_new_conditional:Nnn \__fontspec_check_lang:Nn {TF}
{
\bool_if:NTF \l__fontspec_never_check_bool
{ \prg_return_true: }
{
- \__fontspec_iv_str_to_num:Nn \l__fontspec_strnum_int {#1}
+ \__fontspec_iv_str_to_num:Nn \l__fontspec_strnum_int {#2}
\int_set:Nn \l_tmpb_int
- { \XeTeXOTcountlanguages \l_fontspec_font \l__fontspec_script_int }
+ { \XeTeXOTcountlanguages #1 \l__fontspec_script_int }
\int_zero:N \l_tmpa_int
\bool_set_false:N \l__fontspec_check_bool
\bool_until_do:nn { \int_compare_p:nNn \l_tmpa_int = \l_tmpb_int }
{
- \ifnum\XeTeXOTlanguagetag\l_fontspec_font\l__fontspec_script_int \l_tmpa_int =\l__fontspec_strnum_int
+ \ifnum\XeTeXOTlanguagetag #1 \l__fontspec_script_int \l_tmpa_int = \l__fontspec_strnum_int
\bool_set_true:N \l__fontspec_check_bool
\int_set:Nn \l_tmpa_int {\l_tmpb_int}
\else
@@ -1789,7 +1852,7 @@
\bool_if:NTF \l__fontspec_check_bool \prg_return_true: \prg_return_false:
}
}
-\prg_new_conditional:Nnn \__fontspec_check_ot_feat:n {TF,F}
+\prg_new_conditional:Nnn \__fontspec_check_ot_feat:Nn {TF,F}
{
\bool_if:NTF \l__fontspec_never_check_bool
{ \prg_return_true: }
@@ -1796,16 +1859,16 @@
{
\int_set:Nn \l_tmpb_int
{
- \XeTeXOTcountfeatures \l_fontspec_font
+ \XeTeXOTcountfeatures #1
\l__fontspec_script_int
\l__fontspec_language_int
}
- \__fontspec_iv_str_to_num:Nn \l__fontspec_strnum_int {#1}
+ \__fontspec_iv_str_to_num:Nn \l__fontspec_strnum_int {#2}
\int_zero:N \l_tmpa_int
\bool_set_false:N \l__fontspec_check_bool
\bool_until_do:nn { \int_compare_p:nNn \l_tmpa_int = \l_tmpb_int }
{
- \ifnum\XeTeXOTfeaturetag\l_fontspec_font\l__fontspec_script_int\l__fontspec_language_int
+ \ifnum\XeTeXOTfeaturetag #1 \l__fontspec_script_int \l__fontspec_language_int
\l_tmpa_int =\l__fontspec_strnum_int
\bool_set_true:N \l__fontspec_check_bool
\int_set:Nn \l_tmpa_int {\l_tmpb_int}
@@ -1939,7 +2002,9 @@
\prop_gput:Nnn \g__fontspec_all_opentype_feature_names_prop {vrtr}{Vertical~Alternates~for~Rotation}
\prop_gput:Nnn \g__fontspec_all_opentype_feature_names_prop {zero}{Slashed~Zero}
+%%^^A%% fontspec-graphite.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
\cs_new:Nn \__fontspec_define_aat_feature_group:n
{ \keys_define:nn {fontspec-aat} { #1 .multichoice: } }
\cs_new:Nn \__fontspec_define_aat_feature:nnnn
@@ -1955,7 +2020,7 @@
\tl_if_empty:nTF {#1}
{ \__fontspec_warning:n {aat-feature-not-exist} }
{
- \__fontspec_make_AAT_feature_string:nnTF {#1}{#2}
+ \__fontspec_make_AAT_feature_string:NnnTF \l_fontspec_font {#1}{#2}
{
\__fontspec_update_featstr:n {\l_fontspec_feature_string_tl}
}
@@ -1962,25 +2027,25 @@
{ \__fontspec_warning:nx {aat-feature-not-exist-in-font} {#1,#2} }
}
}
-\prg_new_conditional:Nnn \__fontspec_make_AAT_feature_string:nn {TF,T,F}
+\prg_new_conditional:Nnn \__fontspec_make_AAT_feature_string:Nnn {TF,T,F}
{
- \tl_set:Nx \l_tmpa_tl { \XeTeXfeaturename \l_fontspec_font #1 }
+ \tl_set:Nx \l_tmpa_tl { \XeTeXfeaturename #1 #2 }
\tl_if_empty:NTF \l_tmpa_tl
{ \prg_return_false: }
{
- \int_compare:nTF { \XeTeXisexclusivefeature\l_fontspec_font #1 > 0 }
+ \int_compare:nTF { \XeTeXisexclusivefeature #1 #2 > 0 }
{
- \tl_set:Nx \l_tmpb_tl {\XeTeXselectorname\l_fontspec_font #1\space #2}
+ \tl_set:Nx \l_tmpb_tl {\XeTeXselectorname #1 #2\space #3}
}
{
- \int_if_even:nTF {#2}
+ \int_if_even:nTF {#3}
{
- \tl_set:Nx \l_tmpb_tl {\XeTeXselectorname\l_fontspec_font #1\space #2}
+ \tl_set:Nx \l_tmpb_tl {\XeTeXselectorname #1 #2\space #3}
}
{
\tl_set:Nx \l_tmpb_tl
{
- \XeTeXselectorname\l_fontspec_font #1\space \numexpr#2-1\relax
+ \XeTeXselectorname #1 #2\space \numexpr#3-1\relax
}
\tl_if_empty:NF \l_tmpb_tl { \tl_put_left:Nn \l_tmpb_tl {!} }
}
@@ -1994,6 +2059,8 @@
}
}
+%%^^A%% fontspec-keyval.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
\clist_set:Nn \g__fontspec_all_keyval_modules_clist
{
fontspec, fontspec-opentype, fontspec-aat,
@@ -2044,8 +2111,10 @@
{AAT,ICU,OpenType,Graphite,Full,Basic}
{
\int_compare:nTF {\l_keys_choice_int <= 4} {
- \tl_set:Nv \l_fontspec_renderer_tl
- { g_fontspec_renderer_tag_ \l_keys_choice_tl }
+ \tl_set:Nx \l_fontspec_renderer_tl
+ {
+ \int_case:nn \l_keys_choice_int { 1 {/AAT} 2 {/OT} 3 {/OT} 4 {/GR} }
+ }
\tl_gset:Nx \g__fontspec_single_feat_tl { \l_fontspec_renderer_tl }
}
{
@@ -2053,12 +2122,6 @@
}
}
}
-\tl_set:cn {g_fontspec_renderer_tag_AAT} {/AAT}
-\tl_set:cn {g_fontspec_renderer_tag_ICU} {/OT}
-\tl_set:cn {g_fontspec_renderer_tag_OpenType} {/OT}
-\tl_set:cn {g_fontspec_renderer_tag_Graphite} {/GR}
-\tl_set:cn {g_fontspec_mode_tag_Full} {node}
-\tl_set:cn {g_fontspec_mode_tag_Basic} {base}
\__fontspec_keys_define_code:nnn {fontspec-preparse} {Script}
{
\keys_set:nn {fontspec-renderer} {Renderer=OpenType}
@@ -2222,7 +2285,7 @@
\tl_set:Nx \l__fontspec_nfss_fam_tl { #1 }
\cs_undefine:c {g__fontspec_UID_\l__fontspec_fontid_tl}
\tl_if_exist:NT \l_fontspec_family_tl
- { \cs_undefine:c {g__fontspec_ \l_fontspec_family_tl _prop} }
+ { \cs_undefine:c {g__fontspec_fontinfo_ \l_fontspec_family_tl _prop} }
}
\__fontspec_keys_define_code:nnn {fontspec} {FontFace}
{
@@ -2522,6 +2585,8 @@
\__fontspec_update_featstr:n {#1}
}
+%%^^A%% fontspec-feat-opentype.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
\__fontspec_feat_prop_add:nn {salt} { Alternate\,=\,$N$ }
\__fontspec_feat_prop_add:nn {nalt} { Annotation\,=\,$N$ }
\__fontspec_feat_prop_add:nn {ornm} { Ornament\,=\,$N$ }
@@ -2783,7 +2848,7 @@
\bool_set_false:N \l__fontspec_script_exist_bool
\clist_map_inline:nn {#2}
{
- \__fontspec_check_script:nTF {####1}
+ \__fontspec_check_script:NnTF \l_fontspec_font {####1}
{
\tl_set:Nn \l_fontspec_script_tl {####1}
\int_set:Nn \l__fontspec_script_int {\l__fontspec_strnum_int}
@@ -2800,7 +2865,7 @@
\__fontspec_warning:nx {script-not-exist} {#1}
}
{
- \__fontspec_check_script:nTF {latn}
+ \__fontspec_check_script:NnTF \l_fontspec_font {latn}
{
\__fontspec_warning:nx {script-not-exist-latn} {#1}
\tl_set:Nn \l_fontspec_script_tl {latn}
@@ -2817,7 +2882,7 @@
\cs_new:Nn \fontspec_new_lang:nn
{
\keys_define:nn { fontspec-opentype } { Language / #1 .code:n =
- \__fontspec_check_lang:nTF {#2}
+ \__fontspec_check_lang:NnTF \l_fontspec_font {#2}
{
\tl_set:Nn \l_fontspec_lang_tl {#2}
\int_set:Nn \l__fontspec_language_int {\l__fontspec_strnum_int}
@@ -2839,7 +2904,7 @@
{
Language / Turkish .code:n =
{
- \__fontspec_check_lang:nTF {TRK}
+ \__fontspec_check_lang:NnTF \l_fontspec_font {TRK}
{
\int_set:Nn \l__fontspec_language_int {\l__fontspec_strnum_int}
\tl_set:Nn \l_fontspec_lang_tl {TRK}
@@ -2846,7 +2911,7 @@
\tl_gset:Nn \g__fontspec_single_feat_tl { language=TRK }
}
{
- \__fontspec_check_lang:nTF {TUR}
+ \__fontspec_check_lang:NnTF \l_fontspec_font {TUR}
{
\int_set:Nn \l__fontspec_language_int {\l__fontspec_strnum_int}
\tl_set:Nn \l_fontspec_lang_tl {TUR}
@@ -2881,6 +2946,8 @@
\__fontspec_ot_compat:nn {Diacritics} {AboveBase}
\__fontspec_ot_compat:nn {Diacritics} {BelowBase}
+%%^^A%% fontspec-scripts.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
\newfontscript{Adlam}{adlm}
\newfontscript{Ahom}{ahom}
\newfontscript{Anatolian~Hieroglyphs}{hluw}
@@ -3026,6 +3093,8 @@
\newfontscript{N'ko}{nko~}
\newfontscript{Oriya}{ory2,orya}
+%%^^A%% fontspec-lang.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
\newfontlanguage{Abaza}{ABA}
\newfontlanguage{Abkhazian}{ABK}
\newfontlanguage{Adyghe}{ADY}
@@ -3409,7 +3478,9 @@
\newfontlanguage{Zande}{ZND}
\newfontlanguage{Zulu}{ZUL}
+%%^^A%% fontspec-feat-aat.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
\__fontspec_define_aat_feature_group:n {Ligatures}
\__fontspec_define_aat_feature:nnnn {Ligatures} {Required} {1} {0}
\__fontspec_define_aat_feature:nnnn {Ligatures} {NoRequired} {1} {1}
@@ -3548,6 +3619,8 @@
\__fontspec_define_aat_feature:nnnn {Annotation} {BlackRoundSquare} {24} {10}
\__fontspec_define_aat_feature:nnnn {Annotation} {DoubleCircle} {24} {11}
+%%^^A%% fontspec-enc.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
\providecommand\UnicodeFontFile[2]{"[#1]:#2"}
\providecommand\UnicodeFontName[2]{"#1:#2"}
\providecommand\UnicodeFontTeXLigatures{mapping=tex-text;}
@@ -3616,7 +3689,18 @@
{ \__fontspec_error:nn {only-inside-encdef} \UndeclareSymbol }
\UndeclareTextCommand {#1} {\UnicodeEncodingName}
}
-
+\DeclareDocumentCommand \UndeclareAccent {m}
+ {
+ \bool_if:NF \l__fontspec_defining_encoding_bool
+ { \__fontspec_error:nn {only-inside-encdef} \UndeclareAccent }
+ \UndeclareTextCommand {#1} {\UnicodeEncodingName}
+ }
+\DeclareDocumentCommand \UndeclareCommand {m}
+ {
+ \bool_if:NF \l__fontspec_defining_encoding_bool
+ { \__fontspec_error:nn {only-inside-encdef} \UndeclareCommand }
+ \UndeclareTextCommand {#1} {\UnicodeEncodingName}
+ }
\DeclareDocumentCommand \UndeclareComposite {mm}
{
\bool_if:NF \l__fontspec_defining_encoding_bool
@@ -3624,6 +3708,8 @@
\cs_undefine:c
{ \c_backslash_str \UnicodeEncodingName \token_to_str:N #1 - \tl_to_str:n {#2} }
}
+
+%%^^A%% fontspec-math.dtx -- part of FONTSPEC <wspr.io/fontspec>
\@ifpackageloaded{euler}
{
\bool_set_true:N \g__fontspec_pkg_euler_loaded_bool
@@ -3759,6 +3845,8 @@
}
}
\AtBeginDocument{\fontspec_maybe_setup_maths:}
+
+%%^^A%% fontspec-closing.dtx -- part of FONTSPEC <wspr.io/fontspec>
\bool_if:NT \g__fontspec_cfg_bool
{
\InputIfFileExists{fontspec.cfg}
@@ -3765,6 +3853,9 @@
{}
{\typeout{No~ fontspec.cfg~ file~ found;~ no~ configuration~ loaded.}}
}
+
+%%^^A%% fontspec-xfss.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
\providecommand*\itscdefault{\itdefault\scdefault}
\providecommand*\slscdefault{\sldefault\scdefault}
\DeclareRobustCommand{\sishape}
@@ -3922,6 +4013,9 @@
\cs_new:Nn \fontspec_set_strong_level:n { \int_set:Nn \l__fontspec_strong_int {#1} }
\strongfontdeclare{ \bfseries }
\emfontdeclare{ \emshape, \eminnershape }
+
+%%^^A%% fontspec-patches.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
\DeclareRobustCommand{\-}
{
\discretionary
@@ -4022,16 +4116,4 @@
{
{ \addfontfeature{Numbers=Lining} #1 }
}
-%% ------------------------------------------------
-%% Copyright 2004--2017 Will Robertson <will.robertson at latex-project.org>
-%% Copyright 2009--2013 Khaled Hosny <khaledhosny at eglug.org>
-%%
-%% Distributable under the LaTeX Project Public License, version 1.3c or higher.
-%% The latest version of this license is at: http://www.latex-project.org/lppl.txt
-%%
-%% This work is "maintained" by Will Robertson.
-%% It consists of the files: fontspec*.dtx, fontspec.cfg, fontspec*.tex.
-%% And the derived files: fontspec*.sty,fontspec.lua, fontspec.pdf.
-%% ------------------------------------------------
-%%
-%% End of file `fontspec-xetex.sty'.
+
Modified: trunk/Master/texmf-dist/tex/latex/fontspec/fontspec.cfg
===================================================================
--- trunk/Master/texmf-dist/tex/latex/fontspec/fontspec.cfg 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/tex/latex/fontspec/fontspec.cfg 2017-11-05 22:03:43 UTC (rev 45697)
@@ -1,4 +1,5 @@
+
%%% FONTSPEC.CFG %%%
%
% This configuration file sets up TeX Ligatures by default for all fonts loaded
Modified: trunk/Master/texmf-dist/tex/latex/fontspec/fontspec.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/fontspec/fontspec.lua 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/tex/latex/fontspec/fontspec.lua 2017-11-05 22:03:43 UTC (rev 45697)
@@ -7,21 +7,30 @@
-- fontspec.dtx (with options: `lua')
-- fontspec-lua.dtx (with options: `lua')
-- ------------------------------------------------
--- The FONTSPEC package for XeLaTeX/LuaLaTeX
--- (C) 2004--2017 Will Robertson and Khaled Hosny
--- License information appended.
+-- The FONTSPEC package <wspr.io/fontspec>
-- ------------------------------------------------
+-- Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+-- Copyright 2009-2013 Khaled Hosny
+-- ------------------------------------------------
+-- 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/>.
+-- ------------------------------------------------
+-- ^^A%% fontspec.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
fontspec = fontspec or {}
local fontspec = fontspec
fontspec.module = {
name = "fontspec",
- version = "2.6e",
- date = "2017/09/27",
+ version = "2.6f",
+ date = "2017/11/05",
description = "Font selection for XeLaTeX and LuaLaTeX",
author = "Khaled Hosny, Philipp Gesang, Will Robertson",
copyright = "Khaled Hosny, Philipp Gesang, Will Robertson",
license = "LPPL"
}
+
+-- ^^A%% fontspec-lua.dtx -- part of FONTSPEC <wspr.io/fontspec>
local err, warn, info, log = luatexbase.provides_module(fontspec.module)
fontspec.log = log or (function (s) luatexbase.module_info("fontspec", s) end)
fontspec.warning = warn or (function (s) luatexbase.module_warning("fontspec", s) end)
@@ -70,16 +79,4 @@
tex.sprint("0pt")
end
end
--- ------------------------------------------------
--- Copyright 2004--2017 Will Robertson <will.robertson at latex-project.org>
--- Copyright 2009--2013 Khaled Hosny <khaledhosny at eglug.org>
---
--- Distributable under the LaTeX Project Public License, version 1.3c or higher.
--- The latest version of this license is at: http://www.latex-project.org/lppl.txt
---
--- This work is "maintained" by Will Robertson.
--- It consists of the files: fontspec*.dtx, fontspec.cfg, fontspec*.tex.
--- And the derived files: fontspec*.sty,fontspec.lua, fontspec.pdf.
--- ------------------------------------------------
---
--- End of file `fontspec.lua'.
+
Modified: trunk/Master/texmf-dist/tex/latex/fontspec/fontspec.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/fontspec/fontspec.sty 2017-11-05 17:30:14 UTC (rev 45696)
+++ trunk/Master/texmf-dist/tex/latex/fontspec/fontspec.sty 2017-11-05 22:03:43 UTC (rev 45697)
@@ -5,15 +5,24 @@
%% The original source files were:
%%
%% fontspec.dtx (with options: `fontspec,load')
+%% fontspec-code-load.dtx (with options: `fontspec,load')
%% ------------------------------------------------
-%% The FONTSPEC package for XeLaTeX/LuaLaTeX
-%% (C) 2004--2017 Will Robertson and Khaled Hosny
-%% License information appended.
+%% The FONTSPEC package <wspr.io/fontspec>
%% ------------------------------------------------
-\RequirePackage{expl3}
+%% Copyright 2004-2017 Will Robertson, LPPL "maintainer"
+%% Copyright 2009-2013 Khaled Hosny
+%% ------------------------------------------------
+%% 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/>.
+%% ------------------------------------------------
+%%^^A%% fontspec.dtx -- part of FONTSPEC <wspr.io/fontspec>
+
\RequirePackage{xparse}
\ProvidesExplPackage{fontspec}%
- {2017/09/22}{2.6e}{Font selection for XeLaTeX and LuaLaTeX}
+ {2017/11/05}{2.6f}{Font selection for XeLaTeX and LuaLaTeX}
+
+%%^^A%% fontspec-code-load.dtx -- part of FONTSPEC <wspr.io/fontspec>
\sys_if_engine_luatex:T
{ \RequirePackage{luaotfload}
\directlua{require("fontspec")}
@@ -26,16 +35,3 @@
You~ must~ change~ your~ typesetting~ engine~ to,~ e.g.,~ "xelatex"~ or~ "lualatex" instead~ of~ plain~ "latex"~ or~ "pdflatex".
}
\msg_fatal:nn {fontspec} {cannot-use-pdftex}
-%% ------------------------------------------------
-%% Copyright 2004--2017 Will Robertson <will.robertson at latex-project.org>
-%% Copyright 2009--2013 Khaled Hosny <khaledhosny at eglug.org>
-%%
-%% Distributable under the LaTeX Project Public License, version 1.3c or higher.
-%% The latest version of this license is at: http://www.latex-project.org/lppl.txt
-%%
-%% This work is "maintained" by Will Robertson.
-%% It consists of the files: fontspec*.dtx, fontspec.cfg, fontspec*.tex.
-%% And the derived files: fontspec*.sty,fontspec.lua, fontspec.pdf.
-%% ------------------------------------------------
-%%
-%% End of file `fontspec.sty'.
More information about the tex-live-commits
mailing list