summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/xetex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-06-19 22:49:18 +0000
committerKarl Berry <karl@freefriends.org>2006-06-19 22:49:18 +0000
commit446616af78c68a47b3851065c2121bab5a96ad53 (patch)
treed0d19399424d93ae6e99d635428049ce428f475a /Master/texmf-dist/tex/xetex
parent315f6e8cf21d3f57aaefe05b58147de728d5ede0 (diff)
fontspec update, and put under xetex
git-svn-id: svn://tug.org/texlive/trunk@1706 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/xetex')
-rw-r--r--Master/texmf-dist/tex/xetex/fontspec/fontspec.cfg25
-rw-r--r--Master/texmf-dist/tex/xetex/fontspec/fontspec.sty1028
2 files changed, 1053 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/xetex/fontspec/fontspec.cfg b/Master/texmf-dist/tex/xetex/fontspec/fontspec.cfg
new file mode 100644
index 00000000000..1741bba6d7d
--- /dev/null
+++ b/Master/texmf-dist/tex/xetex/fontspec/fontspec.cfg
@@ -0,0 +1,25 @@
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% FOR BACKWARDS COMPATIBILITY WITH PREVIOUS VERSIONS %%%
+
+\newcommand\newfeaturecode[3]{%
+ \define@key{zf}{#1}[]{\zf@make@feature{#2}{#3}{}}}
+
+\aliasfontfeature{BoldFont}{Bold}
+\aliasfontfeature{ItalicFont}{Italic}
+\aliasfontfeature{BoldItalicFont}{BoldItalic}
+\aliasfontfeature{SmallCapsFont}{SmallCaps}
+\aliasfontfeature{Style}{StyleOptions}
+\aliasfontfeature{Contextuals}{Swashes}
+\aliasfontfeatureoption{Contextuals}{Swash}{Contextual}
+\aliasfontfeatureoption{Letters}{UppercaseSmallCaps}{SMALLCAPS}
+\aliasfontfeatureoption{Letters}{UppercasePetiteCaps}{PETITECAPS}
+
+%%%%%%%%%%%%%%%%%%%%%%%
+%%% FOR CONVENIENCE %%%
+
+\newfontscript{Kana}{kana}
+\newfontscript{Maths}{math}
+\newfontscript{CJK}{hani}
+
diff --git a/Master/texmf-dist/tex/xetex/fontspec/fontspec.sty b/Master/texmf-dist/tex/xetex/fontspec/fontspec.sty
new file mode 100644
index 00000000000..86e8e054a71
--- /dev/null
+++ b/Master/texmf-dist/tex/xetex/fontspec/fontspec.sty
@@ -0,0 +1,1028 @@
+%%
+%% This is file `fontspec.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% fontspec.dtx (with options: `fontspec')
+%%
+%% ________________________________
+%% The fontspec package for XeLaTeX
+%% (C) 2004--2006 Will Robertson
+%%
+%% License information appended.
+%%
+%%
+\ProvidesPackage{fontspec}
+ [2006/06/07 v1.10 Advanced font selection for XeLaTeX]
+
+\unless\ifdefined\XeTeXversion
+ \@latex@error{^^J
+ *************************************************^^J
+ *** Sorry! ^^J
+ *** The fontspec package only works with XeTeX. ^^J
+ *************************************************}
+\fi
+\newif\ifzf@firsttime
+\newif\ifzf@tfm
+\newif\ifzf@atsui
+\newif\ifzf@icu
+\newif\ifzf@mm
+\newif\ifzf@math@euler
+\newif\ifzf@math@lucida
+\newif\ifzf@euler@package@loaded
+\newif\ifzf@package@babel@loaded
+\newcount\c@zf@newff
+\newcount\c@zf@index
+\newcount\c@zf@script
+\newcount\c@zf@language
+\newcommand\zf@PackageError[2]{\PackageError{fontspec}{#1}{#2}}
+\newcommand\zf@PackageWarning[1]{\PackageWarning{fontspec}{#1}}
+\newcommand\zf@PackageInfo[1]{\PackageInfo{fontspec}{#1}}
+\RequirePackage{calc}
+\RequirePackage{xkeyval}[2005/05/07]
+\def\zf@enc{U}
+\renewcommand\encodingdefault{\zf@enc}
+\def\cyrillicencoding{U}%
+\def\latinencoding{U}%
+\g@addto@macro\document{%
+ \def\cyrillicencoding{U}%
+ \def\latinencoding{U}}
+\newcommand*\fontspec[2][]{%
+ \zf@fontspec{#1}{#2}%
+ \fontfamily\zf@family\selectfont
+ \ignorespaces}
+\newcommand*\setromanfont[2][]{%
+ \zf@fontspec{#1}{#2}%
+ \let\rmdefault\zf@family
+ \normalfont}
+\newcommand*\setsansfont[2][]{%
+ \zf@fontspec{#1}{#2}%
+ \let\sfdefault\zf@family
+ \normalfont}
+\newcommand*\setmonofont[2][]{%
+ \zf@fontspec{#1}{#2}%
+ \let\ttdefault\zf@family
+ \normalfont}
+\newcommand*\setmathrm[2][]{%
+ \zf@fontspec{#1}{#2}%
+ \let\zf@rmmaths\zf@family}
+\newcommand*\setboldmathrm[2][]{%
+ \zf@fontspec{#1}{#2}%
+ \let\zf@rmboldmaths\zf@family}
+\newcommand*\setmathsf[2][]{%
+ \zf@fontspec{#1}{#2}%
+ \let\zf@sfmaths\zf@family}
+\newcommand*\setmathtt[2][]{%
+ \zf@fontspec{#1}{#2}%
+ \let\zf@ttmaths\zf@family}
+\@onlypreamble\setmathrm
+\@onlypreamble\setboldmathrm
+\@onlypreamble\setmathsf
+\@onlypreamble\setmathtt
+\def\zf@rmmaths{\rmdefault}
+\def\zf@sfmaths{\sfdefault}
+\def\zf@ttmaths{\ttdefault}
+\newcommand*\newfontinstance[1]{%
+ \@ifnextchar[{\newfontinstance@i#1}{\newfontinstance@i#1[]}}
+\def\newfontinstance@i#1[#2]#3{%
+ \zf@fontspec{#2}{#3}%
+ \edef#1{\noexpand\fontfamily{\zf@family}\noexpand\selectfont}}
+\newcommand*\defaultfontfeatures[1]{\def\zf@default@options{#1,}}
+\let\zf@default@options\@empty
+\newcommand*\addfontfeatures[1]{%
+ \let\zf@default@options@old\zf@default@options
+ \let\zf@default@options\@empty
+ \edef\zf@thisinfo{}%
+ \edef\@tempa{%
+ \noexpand\zf@fontspec
+ {\csname zf@family@options\f@family\endcsname,#1}%
+ {\csname zf@family@fontname\f@family\endcsname}}%
+ \@tempa
+ \fontfamily\zf@family\selectfont
+ \let\zf@default@options\zf@default@options@old
+ \ignorespaces}
+\let\addfontfeature\addfontfeatures
+\newcommand*\newfontfeature[2]{%
+ \stepcounter{zf@newff}%
+ \def@cx{+zf-#1}{+zf-\the\c@zf@newff}%
+ \define@key[zf]{options}{#1}[]{%
+ \zf@update@family{\csname+zf-#1\endcsname}%
+ \zf@update@ff{#2}}}
+\newcommand*\newAATfeature[4]{%
+ \unless\ifcsname zf@options@#1\endcsname
+ \zf@define@font@feature{#1}%
+ \fi
+ \key@ifundefined[zf]{#1}{#2}{}{%
+ \zf@PackageWarning{Option '#2' of font feature '#1' overwritten.}}%
+ \zf@define@feature@option{#1}{#2}{#3}{#4}{}}
+\newcommand*\newICUfeature[3]{%
+ \unless\ifcsname zf@options@#1\endcsname
+ \zf@define@font@feature{#1}%
+ \fi
+ \key@ifundefined[zf]{#1}{#2}{}{%
+ \zf@PackageWarning{Option '#2' of font feature '#1' overwritten.}}%
+ \zf@define@feature@option{#1}{#2}{}{}{#3}}
+\newcommand*\aliasfontfeature[2]{\multi@alias@key{#1}{#2}}
+\newcommand*\aliasfontfeatureoption[3]{\keyval@alias@key[zf@feat]{#1}{#2}{#3}}
+\newcommand*\newfontscript[2]{%
+ \define@key[zf@feat]{Script}{#1}[]{%
+ \zf@check@ot@script{#2}%
+ \if@tempswa
+ \c@zf@script\@tempcnta\relax
+ \xdef\zf@script@name{#1}%
+ \xdef\zf@family@long{\zf@family@long+script=#1}%
+ \xdef\zf@pre@ff{script=#2,\zf@pre@ff}%
+ \else
+ \zf@PackageWarning{Font \fontname\zf@basefont does not contain script '#1'}%
+ \fi}}
+\newcommand*\newfontlanguage[2]{%
+ \define@key[zf@feat]{Lang}{#1}[]{%
+ \zf@check@ot@lang{#2}%
+ \if@tempswa
+ \c@zf@language\@tempcnta\relax
+ \xdef\zf@language@name{#1}%
+ \xdef\zf@family@long{\zf@family@long+lang=#1}%
+ \xdef\zf@pre@ff{\zf@pre@ff language=#2,}%
+ \else
+ \zf@PackageWarning{Font \fontname\zf@basefont does not contain
+ language '#1' for script '\zf@script@name'}%
+ \fi}}
+\providecommand\def@cx[2]{\expandafter\edef\csname#1\endcsname{#2}}
+\providecommand\gdef@cx[2]{\expandafter\xdef\csname#1\endcsname{#2}}
+\providecommand\let@cc[2]{\expandafter\let\csname#1\expandafter\endcsname\csname#2\endcsname}
+\newcommand*\zf@fontspec[2]{%
+ \begingroup
+ \zf@init
+ \edef\zf@fontname{#2}%
+ \let\zf@family@long\zf@fontname
+ \setkeys*[zf]{preparse}{#1}%
+ \edef\zf@font@feat{\zf@font@feat\XKV@rm}%
+ \unless\ifdefined\zf@basefont
+ \font\zf@basefont="\zf@fontname\zf@suffix" at \f@size pt
+ \fi
+ \zf@set@font@type
+ \zf@firsttimetrue
+ \zf@get@feature@requests{\zf@font@feat}%
+ \zf@firsttimefalse
+ \unless\ifcsname zf@UID@\zf@family@long\endcsname
+ \ifcsname c@zf@famc@#2\endcsname
+ \expandafter\stepcounter\else
+ \expandafter\newcounter\fi
+ {zf@famc@#2}%
+ \def@cx{zf@UID@\zf@family@long}{%
+ \zap@space#2 \@empty
+ (\expandafter\the\csname c@zf@famc@#2\endcsname)}%
+ \fi
+ \xdef\zf@family{\@nameuse{zf@UID@\zf@family@long}}%
+ \unless\ifcsname zf@family@fontname\zf@family\endcsname
+ \zf@PackageInfo{Defining font family for "#2"
+ with options [\zf@default@options #1]}%
+ \gdef@cx{zf@family@fontname\zf@family}{\zf@fontname}%
+ \gdef@cx{zf@family@options\zf@family}{\zf@default@options #1}%
+ \gdef@cx{zf@family@fontdef\zf@family}{\zf@fontname\zf@suffix:\zf@pre@ff\zf@ff}%
+ \DeclareFontFamily{\zf@enc}{\zf@family}{}%
+ \zf@make@font@shapes{\zf@fontname}{\mddefault}{\updefault}{\zf@font@feat\zf@up@feat}%
+ \ifx\zf@bf\@empty
+ \zf@make@font@shapes[\zf@fontname]{/B}{\bfdefault}{\updefault}{\zf@font@feat\zf@bf@feat}%
+ \else
+ \zf@make@font@shapes{\zf@bf}{\bfdefault}{\updefault}{\zf@font@feat\zf@bf@feat}%
+ \fi
+ \ifx\zf@it\@empty
+ \zf@make@font@shapes[\zf@fontname]{/I}{\mddefault}{\itdefault}{\zf@font@feat\zf@it@feat}%
+ \else
+ \zf@make@font@shapes{\zf@it}{\mddefault}{\itdefault}{\zf@font@feat\zf@it@feat}%
+ \fi
+ \ifx\zf@bfit\@empty
+ \ifx\zf@bf\@empty
+ \ifx\zf@it\@empty
+ \zf@make@font@shapes[\zf@fontname]{/BI}{\bfdefault}{\itdefault}{\zf@font@feat\zf@bfit@feat}%
+ \else
+ \zf@make@font@shapes[\zf@it]{/B}{\bfdefault}{\itdefault}{\zf@font@feat\zf@bfit@feat}%
+ \fi
+ \else
+ \zf@make@font@shapes[\zf@bf]{/I}{\bfdefault}{\itdefault}{\zf@font@feat\zf@bfit@feat}%
+ \fi
+ \else
+ \zf@make@font@shapes{\zf@bfit}{\bfdefault}{\itdefault}{\zf@font@feat\zf@bfit@feat}%
+ \fi
+ \fi
+ \endgroup
+ }
+\newcommand*\zf@set@font@type{%
+ \zf@tfmfalse \zf@atsuifalse \zf@icufalse \zf@mmfalse
+ \ifcase\XeTeXfonttype\zf@basefont
+ \zf@tfm
+ \or
+ \zf@atsuitrue
+ \ifnum\XeTeXcountvariations\zf@basefont > 0
+ \zf@mmtrue
+ \fi
+ \or
+ \zf@icutrue
+ \fi}
+\newcommand*\zf@make@font@shapes[5][]{%
+ \bgroup
+ \edef\@tempa{#1}%
+ \ifx\@tempa\@empty\else
+ \font\@tempfonta="#1\zf@suffix" at \f@size pt
+ \edef\@tempa{\fontname\@tempfonta}%
+ \fi
+ \font\@tempfontb="#1#2\zf@suffix" at \f@size pt
+ \edef\@tempb{\fontname\@tempfontb}%
+ \ifx\@tempa\@tempb
+ \zf@PackageInfo{Could not resolve font #1#2 (it might not exist)}%
+ \else
+ \edef\zf@fontname{#1#2}%
+ \let\zf@basefont\@tempfontb
+ \zf@DeclareFontShape{#3}{#4}{#5}%
+ \ifx\zf@sc\@empty
+ \zf@make@smallcaps
+ \ifx\zf@smallcaps\@empty\else
+ \zf@DeclareFontShape[\zf@smallcaps]{#3}
+ {\ifx#4\itdefault\sidefault\else\scdefault\fi}{#5\zf@sc@feat}%
+ \fi
+ \else
+ \edef\zf@fontname{\zf@sc}%
+ \zf@DeclareFontShape{#3}
+ {\ifx#4\itdefault\sidefault\else\scdefault\fi}{#5\zf@sc@feat}%
+ \fi
+ \fi
+ \egroup}
+\newcommand\zf@DeclareFontShape[4][]{%
+ \zf@get@feature@requests{#4}%
+ \def\@tempb{"\zf@fontname\zf@suffix:\zf@pre@ff\zf@ff#1"}%
+ \zf@PackageInfo{\string\font\space is \@tempb}%
+ \edef\@tempa{\noexpand
+ \DeclareFontShape{\zf@enc}{\zf@family}{#2}{#3}
+ {<->\zf@scale\@tempb}{\zf@adjust}}%
+ \@tempa
+ \edef\@tempa{#3}\edef\@tempb{\itdefault}%
+ \ifx\@tempa\@tempb
+ \edef\@tempa{\noexpand
+ \DeclareFontShape{\zf@enc}{\zf@family}{#2}{\sldefault}
+ {<->sub*\zf@family/#2/\itdefault}{\zf@adjust}}%
+ \@tempa
+ \fi}
+\newcommand*{\zf@update@family}[1]{%
+ \ifzf@firsttime
+ \xdef\zf@family@long{\zf@family@long#1}%
+ \fi}
+\newcommand*\zf@get@feature@requests[1]{%
+ \let\zf@ff \@empty
+ \let\zf@scale \@empty
+ \let\zf@adjust \@empty
+ \edef\@tempa{\noexpand\setkeys[zf]{options}{\zf@default@options#1}}%
+ \@tempa}
+\newcommand*\zf@init{%
+ \let\zf@pre@ff \@empty
+ \let\zf@font@feat \@empty
+ \let\zf@suffix \@empty
+ \let\zf@bf \@empty
+ \let\zf@it \@empty
+ \let\zf@bfit \@empty
+ \let\zf@sc \@empty
+ \let\zf@up@feat \@empty
+ \let\zf@bf@feat \@empty
+ \let\zf@it@feat \@empty
+ \let\zf@bfit@feat \@empty
+ \let\zf@sc@feat \@empty
+ \c@zf@script 1818326126\relax
+ \def\zf@script@name{Latin}%
+ \c@zf@language 0\relax
+ \def\zf@language@name{Default}%
+}
+\newcommand*\zf@make@smallcaps{%
+ \let\zf@smallcaps\@empty
+ \ifzf@atsui
+ \zf@make@aat@feature@string{3}{3}%
+ \unless\ifx\zf@thisfontfeature\@empty
+ \edef\zf@smallcaps{\zf@thisfontfeature;}%
+ \fi
+ \fi
+ \ifzf@icu
+ \zf@check@ot@feat{+smcp}%
+ \if@tempswa
+ \edef\zf@smallcaps{+smcp,}%
+ \fi
+ \fi}
+\newcommand*\zf@update@ff[1]{%
+ \unless\ifzf@firsttime
+ \xdef\zf@ff{\zf@ff #1\ifzf@icu,\else;\fi}%
+ \fi}
+\newcommand*\zf@make@feature[3]{%
+ \ifzf@atsui
+ \zf@make@aat@feature@string{#1}{#2}%
+ \ifx\zf@thisfontfeature\@empty
+ \zf@PackageWarning{%
+ AAT feature '\XKV@tfam=\XKV@tkey'
+ (#1,#2) not available in font \fontname\zf@basefont}%
+ \else
+ \zf@update@family{+#1,#2}%
+ \zf@update@ff\zf@thisfontfeature
+ \fi
+ \fi
+ \ifzf@icu
+ \zf@check@ot@feat{#3}%
+ \if@tempswa
+ \zf@update@family{#3}%
+ \zf@update@ff{#3}%
+ \else
+ \zf@PackageWarning{%
+ OpenType feature '\XKV@tfam=\XKV@tkey' (#3)
+ not available in font \fontname\zf@basefont, script
+ '\zf@script@name', language '\zf@language@name'}%
+ \fi
+ \fi}
+\newcommand*\zf@define@font@feature[1]{%
+ \define@key[zf]{options}{#1}{{\setkeys[zf@feat]{#1}{##1}}}}
+\newcommand*\zf@define@feature@option[5]{%
+ \define@key[zf@feat]{#1}{#2}[]{\zf@make@feature{#3}{#4}{#5}}}
+\newcommand*\keyval@alias@key[4][KV]{%
+ \let@cc{#1@#2@#4}{#1@#2@#3}%
+ \let@cc{#1@#2@#4@default}{#1@#2@#3@default}}
+\newcommand*\multi@alias@key[2]{
+ \key@ifundefined[zf]{preparse}{#1}
+ {\key@ifundefined[zf]{options}{#1}
+ {\zf@PackageError{The feature #1 doesn't appear to be defined}
+ {It looks like you're trying to rename a feature that doesn't exist.}}
+ {\keyval@alias@key[zf]{options}{#1}{#2}}}
+ {\keyval@alias@key[zf]{preparse}{#1}{#2}}}
+\newcommand*\zf@make@aat@feature@string[2]{%
+ \edef\zf@this@featurename{\XeTeXfeaturename\zf@basefont #1}%
+ \ifx\zf@this@featurename\@empty
+ \let\zf@thisfontfeature\@empty
+ \else
+ \edef\zf@this@selectionname{\XeTeXselectorname\zf@basefont #1 #2}%
+ \ifx\zf@this@selectionname\@empty
+ \let\zf@thisfontfeature\@empty
+ \else
+ \edef\zf@thisfontfeature{%
+ \ifnum\XeTeXisexclusivefeature\zf@basefont #1 > 0
+ \zf@this@featurename=\zf@this@selectionname
+ \else
+ \ifodd #2
+ \zf@this@featurename=!\zf@this@selectionname
+ \else
+ \zf@this@featurename=\zf@this@selectionname
+ \fi
+ \fi}%
+ \fi
+ \fi}
+\newcommand\zf@iv@strnum[1]{%
+ \zf@iv@strnum@i#1 \@nil}
+\def\zf@iv@strnum@i#1 \@nil{%
+ \zf@iv@strnum@ii#1\@empty\@empty\@nil}
+\def\zf@iv@strnum@ii#1#2#3#4#5\@nil{%
+ \@tempcnta\z@
+ \@tempcntb`#1\relax
+ \multiply\@tempcntb"1000000\advance\@tempcnta\@tempcntb
+ \@tempcntb`#2
+ \multiply\@tempcntb"10000\advance\@tempcnta\@tempcntb
+ \expandafter\@tempcntb\ifx\@empty#332\else`#3\fi
+ \multiply\@tempcntb"100\advance\@tempcnta\@tempcntb
+ \expandafter\@tempcntb\ifx\@empty#432\else`#4\fi
+ \advance\@tempcnta\@tempcntb}
+\newcommand\zf@v@strnum[1]{%
+ \expandafter\zf@iv@strnum@i\@gobble#1 \@nil}
+\newcommand\zf@check@ot@script[1]{%
+ \zf@iv@strnum{#1}%
+ \@tempcntb\XeTeXOTcountscripts\zf@basefont
+ \c@zf@index\z@ \@tempswafalse
+ \loop\ifnum\c@zf@index<\@tempcntb
+ \ifnum\XeTeXOTscripttag\zf@basefont\c@zf@index=\@tempcnta
+ \@tempswatrue
+ \c@zf@index\@tempcntb
+ \else
+ \advance\c@zf@index\@ne
+ \fi
+ \repeat}
+\newcommand\zf@check@ot@lang[1]{%
+ \zf@iv@strnum{#1}%
+ \@tempcntb\XeTeXOTcountlanguages\zf@basefont\c@zf@script
+ \c@zf@index\z@ \@tempswafalse
+ \loop\ifnum\c@zf@index<\@tempcntb
+ \ifnum\XeTeXOTlanguagetag\zf@basefont\c@zf@script\c@zf@index=\@tempcnta
+ \@tempswatrue
+ \c@zf@index\@tempcntb
+ \else
+ \advance\c@zf@index\@ne
+ \fi
+ \repeat}
+\newcommand*\zf@check@ot@feat[1]{%
+ \@tempcntb\XeTeXOTcountfeatures\zf@basefont\c@zf@script\c@zf@language
+ \zf@v@strnum{#1}%
+ \c@zf@index\z@ \@tempswafalse
+ \loop\ifnum\c@zf@index<\@tempcntb
+ \ifnum\XeTeXOTfeaturetag\zf@basefont\c@zf@script\c@zf@language\c@zf@index=\@tempcnta
+ \@tempswatrue
+ \c@zf@index\@tempcntb
+ \else
+ \advance\c@zf@index\@ne
+ \fi
+ \repeat}
+\define@key[zf]{preparse}{BoldFont}{%
+ \zf@partial@fontname#1\@nil
+ \let\zf@bf\@tempa
+ \edef\zf@family@long{\zf@family@long bf:#1}}
+\define@key[zf]{preparse}{ItalicFont}{%
+ \zf@partial@fontname#1\@nil
+ \let\zf@it\@tempa
+ \edef\zf@family@long{\zf@family@long it:#1}}
+\define@key[zf]{preparse}{BoldItalicFont}{%
+ \zf@partial@fontname#1\@nil
+ \let\zf@bfit\@tempa
+ \edef\zf@family@long{\zf@family@long bfit:#1}}
+\define@key[zf]{options}{SmallCapsFont}{%
+ \zf@partial@fontname#1\@nil
+ \let\zf@sc\@tempa
+ \zf@update@family{sc:\zap@space #1 \@empty}}
+\def\zf@partial@fontname#1#2\@nil{%
+ \if#1*\relax
+ \edef\@tempa{\zf@fontname#2}%
+ \else
+ \edef\@tempa{#1#2}%
+ \fi}
+\define@key[zf]{preparse}{UprightFeatures}{%
+ \def\zf@up@feat{,#1}%
+ \edef\zf@family@long{\zf@family@long rmfeat:#1}}
+\define@key[zf]{preparse}{BoldFeatures}{%
+ \def\zf@bf@feat{,#1}%
+ \edef\zf@family@long{\zf@family@long bffeat:#1}}
+\define@key[zf]{preparse}{ItalicFeatures}{%
+ \def\zf@it@feat{,#1}%
+ \edef\zf@family@long{\zf@family@long itfeat:#1}}
+\define@key[zf]{preparse}{BoldItalicFeatures}{%
+ \def\zf@bfit@feat{,#1}%
+ \edef\zf@family@long{\zf@family@long bfitfeat:#1}}
+\define@key[zf]{options}{SmallCapsFeatures}{%
+ \unless\ifzf@firsttime\def\zf@sc@feat{,#1}\fi
+ \zf@update@family{scfeat:\zap@space #1 \@empty}}
+\define@choicekey[zf]{preparse}{Renderer}{AAT,ICU}{%
+ \edef\zf@suffix{\zf@suffix/#1}%
+ \font\zf@basefont="\zf@fontname\zf@suffix" at \f@size pt
+ \edef\zf@family@long{\zf@family@long +rend:#1}}
+\define@key[zf]{preparse}{Script}{%
+ \edef\zf@suffix{\zf@suffix/ICU}%
+ \font\zf@basefont="\zf@fontname\zf@suffix" at \f@size pt
+ \edef\zf@family@long{\zf@family@long +script:#1}
+ {\setkeys[zf@feat]{Script}{#1}}}
+\define@key[zf]{preparse}{Language}{%
+ \edef\zf@suffix{\zf@suffix/ICU}%
+ \font\zf@basefont="\zf@fontname\zf@suffix" at \f@size pt
+ \edef\zf@family@long{\zf@family@long +language:#1}
+ {\setkeys[zf@feat]{Lang}{#1}}}
+\define@key[zf]{options}{Scale}{%
+ \edef\@tempa{#1}%
+ \edef\@tempb{MatchLowercase}%
+ \ifx\@tempa\@tempb
+ \zf@calc@scale{5}%
+ \else
+ \edef\@tempb{MatchUppercase}%
+ \ifx\@tempa\@tempb
+ \zf@calc@scale{8}%
+ \else
+ \edef\zf@scale{#1}%
+ \fi
+ \fi
+ \zf@update@family{+scale:\zf@scale}%
+ \edef\zf@scale{s*[\zf@scale]}}
+\newcommand\zf@calc@scale[1]{%
+ \begingroup
+ \rmfamily
+ \setlength\@tempdima{\fontdimen#1\font}%
+ \setlength\@tempdimb{\fontdimen#1\zf@basefont}%
+ \setlength\@tempdimc{1pt*\ratio{\@tempdima}{\@tempdimb}}%
+ \xdef\zf@scale{\strip@pt\@tempdimc}
+ \zf@PackageInfo{\zf@fontname\space scale = \zf@scale}%
+ \endgroup}
+\define@key[zf]{options}{WordSpace}{%
+ \zf@update@family{+wordspace:#1}%
+ \unless\ifzf@firsttime
+ \zf@wordspace@parse#1,\zf@@ii,\zf@@iii,\zf@@
+ \fi}
+\def\zf@wordspace@parse#1,#2,#3,#4\zf@@{%
+ \def\@tempa{#4}%
+ \ifx\@tempa\@empty
+ \g@addto@macro\zf@adjust{%
+ \fontdimen2\font#1\fontdimen2\font
+ \fontdimen3\font#1\fontdimen3\font
+ \fontdimen4\font#1\fontdimen4\font}%
+ \else
+ \g@addto@macro\zf@adjust{%
+ \fontdimen2\font#1\fontdimen2\font
+ \fontdimen3\font#2\fontdimen3\font
+ \fontdimen4\font#3\fontdimen4\font}%
+ \fi}
+\define@key[zf]{options}{PunctuationSpace}{%
+ \zf@update@family{+punctspace:#1}%
+ \g@addto@macro\zf@adjust{%
+ \fontdimen7\font#1\fontdimen7\font}}
+\define@key[zf]{options}{LetterSpace}{%
+ \zf@update@family{+tracking:#1}%
+ \zf@update@ff{letterspace=#1}}
+\define@key[zf]{options}{HyphenChar}{%
+ \zf@update@family{+hyphenchar:#1}%
+ \edef\@tempa{#1}%
+ \edef\@tempb{None}%
+ \ifx\@tempa\@tempb
+ \g@addto@macro\zf@adjust{\hyphenchar\font-1\relax}%
+ \else
+ \zf@check@one@char#1\zf@@
+ \ifx\@tempb\@empty
+ \g@addto@macro\zf@adjust{%
+ {\expandafter\hyphenchar\expandafter
+ \font\expandafter`#1}}%
+ \else
+ \g@addto@macro\zf@adjust{\hyphenchar\font#1\relax}
+ \fi
+ \fi}
+\def\zf@check@one@char#1#2\zf@@{\def\@tempb{#2}}
+\define@key[zf]{options}{Colour}{%
+ \zf@update@family{+col:#1}%
+ \zf@update@ff{color=#1}}
+\keyval@alias@key[zf]{options}{Colour}{Color}
+\define@key[zf]{options}{Mapping}{%
+ \zf@update@family{+map:#1}%
+ \zf@update@ff{mapping=#1}}
+\define@key[zf]{options}{Weight}{%
+ \zf@update@family{+weight:#1}%
+ \zf@update@ff{weight=#1}}
+\define@key[zf]{options}{Width}{%
+ \zf@update@family{+width:#1}%
+ \zf@update@ff{width=#1}}
+\define@key[zf]{options}{OpticalSize}{%
+ \ifzf@icu
+ \edef\zf@suffix{\zf@suffix/S=#1}%
+ \zf@update@family{+size:#1}
+ \fi
+ \ifzf@mm
+ \zf@update@family{+size:#1}%
+ \zf@update@ff{optical size=#1}
+ \fi
+ \ifzf@icu\else
+ \ifzf@mm\else
+ \ifzf@firsttime
+ \zf@PackageWarning
+ {\fontname\zf@basefont\space doesn't appear to have an Optical Size axis}
+ \fi
+ \fi
+ \fi}
+\zf@define@font@feature{Ligatures}
+\zf@define@feature@option{Ligatures}{Required} {1}{0}{+rlig}
+\zf@define@feature@option{Ligatures}{NoRequired} {1}{1}{-rlig}
+\zf@define@feature@option{Ligatures}{Common} {1}{2}{+liga}
+\zf@define@feature@option{Ligatures}{NoCommon} {1}{3}{-liga}
+\zf@define@feature@option{Ligatures}{Rare} {1}{4}{+dlig}
+\zf@define@feature@option{Ligatures}{NoRare} {1}{5}{-dlig}
+\zf@define@feature@option{Ligatures}{Discretionary} {1}{4}{+dlig}
+\zf@define@feature@option{Ligatures}{NoDiscretionary}{1}{5}{-dlig}
+\zf@define@feature@option{Ligatures}{Contextual} {}{} {+clig}
+\zf@define@feature@option{Ligatures}{NoContextual} {}{} {-clig}
+\zf@define@feature@option{Ligatures}{Historical} {}{} {+hlig}
+\zf@define@feature@option{Ligatures}{NoHistorical} {}{} {-hlig}
+\zf@define@feature@option{Ligatures}{Logos} {1}{6} {}
+\zf@define@feature@option{Ligatures}{NoLogos} {1}{7} {}
+\zf@define@feature@option{Ligatures}{Rebus} {1}{8} {}
+\zf@define@feature@option{Ligatures}{NoRebus} {1}{9} {}
+\zf@define@feature@option{Ligatures}{Diphthong} {1}{10}{}
+\zf@define@feature@option{Ligatures}{NoDiphthong} {1}{11}{}
+\zf@define@feature@option{Ligatures}{Squared} {1}{12}{}
+\zf@define@feature@option{Ligatures}{NoSquared} {1}{13}{}
+\zf@define@feature@option{Ligatures}{AbbrevSquared} {1}{14}{}
+\zf@define@feature@option{Ligatures}{NoAbbrevSquared}{1}{15}{}
+\zf@define@feature@option{Ligatures}{Icelandic} {1}{32}{}
+\zf@define@feature@option{Ligatures}{NoIcelandic} {1}{33}{}
+\zf@define@font@feature{Letters}
+\zf@define@feature@option{Letters}{Normal}{3}{0}{}
+\zf@define@feature@option{Letters}{Uppercase}{3}{1}{+case}
+\zf@define@feature@option{Letters}{Lowercase}{3}{2}{}
+\zf@define@feature@option{Letters}{SmallCaps}{3}{3}{+smcp}
+\zf@define@feature@option{Letters}{PetiteCaps}{}{}{+pcap}
+\zf@define@feature@option{Letters}{UppercaseSmallCaps}{}{}{+c2sc}
+\zf@define@feature@option{Letters}{UppercasePetiteCaps}{}{}{+c2pc}
+\zf@define@feature@option{Letters}{InitialCaps}{3}{4}{}
+\zf@define@feature@option{Letters}{Unicase}{}{}{+unic}
+\zf@define@font@feature{Numbers}
+\zf@define@feature@option{Numbers}{Monospaced}{6}{0}{+tnum}
+\zf@define@feature@option{Numbers}{Proportional}{6}{1}{+pnum}
+\zf@define@feature@option{Numbers}{Lowercase}{21}{0}{+onum}
+\zf@define@feature@option{Numbers}{OldStyle}{21}{0}{+onum}
+\zf@define@feature@option{Numbers}{Uppercase}{21}{1}{+lnum}
+\zf@define@feature@option{Numbers}{Lining}{21}{1}{+lnum}
+\zf@define@feature@option{Numbers}{SlashedZero}{14}{5}{+zero}
+\zf@define@feature@option{Numbers}{NoSlashedZero}{14}{4}{-zero}
+\zf@define@font@feature{Contextuals}
+\zf@define@feature@option{Contextuals}{Swash}{}{}{+cswh}
+\zf@define@feature@option{Contextuals}{NoSwash}{}{}{-cswh}
+\zf@define@feature@option{Contextuals}{WordInitial}{8}{0}{+init}
+\zf@define@feature@option{Contextuals}{NoWordInitial}{8}{1}{-init}
+\zf@define@feature@option{Contextuals}{WordFinal}{8}{2}{+fina}
+\zf@define@feature@option{Contextuals}{NoWordFinal}{8}{3}{-fina}
+\zf@define@feature@option{Contextuals}{LineInitial}{8}{4}{}
+\zf@define@feature@option{Contextuals}{NoLineInitial}{8}{5}{}
+\zf@define@feature@option{Contextuals}{LineFinal}{8}{6}{+falt}
+\zf@define@feature@option{Contextuals}{NoLineFinal}{8}{7}{-falt}
+\zf@define@feature@option{Contextuals}{Inner}{8}{8}{+medi}
+\zf@define@feature@option{Contextuals}{NoInner}{8}{9}{-medi}
+\zf@define@font@feature{Diacritics}
+\zf@define@feature@option{Diacritics}{Show}{9}{0}{}
+\zf@define@feature@option{Diacritics}{Hide}{9}{1}{}
+\zf@define@feature@option{Diacritics}{Decompose}{9}{2}{}
+\zf@define@font@feature{Kerning}
+\zf@define@feature@option{Kerning}{Uppercase}{}{}{+cpsp}
+\zf@define@feature@option{Kerning}{On}{}{}{+kern}
+\zf@define@feature@option{Kerning}{Off}{}{}{-kern}
+\zf@define@font@feature{VerticalPosition}
+\zf@define@feature@option{VerticalPosition}{Normal}{10}{0}{}
+\zf@define@feature@option{VerticalPosition}{Superior}{10}{1}{+sups}
+\zf@define@feature@option{VerticalPosition}{Inferior}{10}{2}{+subs}
+\zf@define@feature@option{VerticalPosition}{ScientificInferior}{}{}{+sinf}
+\zf@define@feature@option{VerticalPosition}{Ordinal}{10}{3}{+ordn}
+\zf@define@feature@option{VerticalPosition}{Numerator}{}{}{+numr}
+\zf@define@feature@option{VerticalPosition}{Denominator}{}{}{+dnom}
+\zf@define@font@feature{Fractions}
+\zf@define@feature@option{Fractions}{On}{11}{1}{+frac}
+\zf@define@feature@option{Fractions}{Off}{11}{0}{-frac}
+\zf@define@feature@option{Fractions}{Diagonal}{11}{2}{}
+\zf@define@feature@option{Fractions}{Alternate}{}{}{+afrc}
+\define@key[zf]{options}{Alternate}{%
+ \setkeys*[zf@feat]{Alternate}{#1}%
+ \unless\ifx\XKV@rm\@empty
+ \zf@make@feature{17}{#1}{}%
+ \fi}
+\define@key[zf]{options}{Variant}{%
+ \setkeys*[zf@feat]{Variant}{#1}%
+ \unless\ifx\XKV@rm\@empty
+ \zf@make@feature{18}{#1}{+ss\two@digits{#1}}%
+ \fi}
+\zf@define@font@feature{Style}
+\zf@define@feature@option{Style}{Alternate}{}{}{+salt}
+\zf@define@feature@option{Style}{Italic}{32}{2}{+ital}
+\zf@define@feature@option{Style}{Ruby}{28}{2}{+ruby}
+\zf@define@feature@option{Style}{Swash}{}{}{+swsh}
+\zf@define@feature@option{Style}{Historic}{}{}{+hist}
+\zf@define@feature@option{Style}{Display}{19}{1}{}
+\zf@define@feature@option{Style}{Engraved}{19}{2}{}
+\zf@define@feature@option{Style}{TitlingCaps}{19}{4}{+titl}
+\zf@define@feature@option{Style}{TallCaps}{19}{5}{}
+\zf@define@feature@option{Style}{HorizontalKana}{}{}{+hkna}
+\zf@define@feature@option{Style}{VerticalKana}{}{}{+vkna}
+\zf@define@font@feature{CJKShape}
+\zf@define@feature@option{CJKShape}{Traditional}{20}{0}{+trad}
+\zf@define@feature@option{CJKShape}{Simplified}{20}{1}{+smpl}
+\zf@define@feature@option{CJKShape}{JIS1978}{20}{2}{+jp78}
+\zf@define@feature@option{CJKShape}{JIS1983}{20}{3}{+jp83}
+\zf@define@feature@option{CJKShape}{JIS1990}{20}{4}{+jp90}
+\zf@define@feature@option{CJKShape}{Expert}{20}{10}{+expt}
+\zf@define@feature@option{CJKShape}{NLC}{20}{13}{+nlck}
+\zf@define@font@feature{CharacterWidth}
+\zf@define@feature@option{CharacterWidth}{Proportional}{22}{0}{+pwid}
+\zf@define@feature@option{CharacterWidth}{Full}{22}{1}{+fwid}
+\zf@define@feature@option{CharacterWidth}{Half}{22}{2}{+hwid}
+\zf@define@feature@option{CharacterWidth}{Third}{22}{3}{+twid}
+\zf@define@feature@option{CharacterWidth}{Quarter}{22}{4}{+qwid}
+\zf@define@feature@option{CharacterWidth}{AlternateProportional}{22}{5}{+palt}
+\zf@define@feature@option{CharacterWidth}{AlternateHalf}{22}{6}{+halt}
+\zf@define@feature@option{CharacterWidth}{Default}{22}{7}{}
+\zf@define@font@feature{Annotation}
+\zf@define@feature@option{Annotation}{Off}{24}{0}{-nalt}
+\zf@define@feature@option{Annotation}{On}{}{}{+nalt}
+\zf@define@feature@option{Annotation}{Box}{24}{1}{}
+\zf@define@feature@option{Annotation}{RoundedBox}{24}{2}{}
+\zf@define@feature@option{Annotation}{Circle}{24}{3}{}
+\zf@define@feature@option{Annotation}{BlackCircle}{24}{4}{}
+\zf@define@feature@option{Annotation}{Parenthesis}{24}{5}{}
+\zf@define@feature@option{Annotation}{Period}{24}{6}{}
+\zf@define@feature@option{Annotation}{RomanNumerals}{24}{7}{}
+\zf@define@feature@option{Annotation}{Diamond}{24}{8}{}
+\zf@define@feature@option{Annotation}{BlackSquare}{24}{9}{}
+\zf@define@feature@option{Annotation}{BlackRoundSquare}{24}{10}{}
+\zf@define@feature@option{Annotation}{DoubleCircle}{24}{11}{}
+\zf@define@font@feature{Vertical}
+\define@key[zf@feat]{Vertical}{RotatedGlyphs}[]{%
+ \ifzf@icu
+ \zf@make@feature{}{}{+vrt2}%
+ \else
+ \zf@update@family{+vert}%
+ \zf@update@ff{vertical}%
+ \fi}
+\newfontscript{Arabic}{arab} \newfontscript{Armenian}{armn}
+\newfontscript{Balinese}{bali} \newfontscript{Bengali}{beng}
+\newfontscript{Bopomofo}{bopo} \newfontscript{Braille}{brai}
+\newfontscript{Buginese}{bugi} \newfontscript{Buhid}{buhd}
+\newfontscript{Byzantine Music}{byzm} \newfontscript{Canadian Syllabics}{cans}
+\newfontscript{Cherokee}{cher}
+\newfontscript{CJK Ideographic}{hani} \newfontscript{Coptic}{copt}
+\newfontscript{Cypriot Syllabary}{cprt} \newfontscript{Cyrillic}{cyrl}
+\newfontscript{Default}{DFLT} \newfontscript{Deseret}{dsrt}
+\newfontscript{Devanagari}{deva} \newfontscript{Ethiopic}{ethi}
+\newfontscript{Georgian}{geor} \newfontscript{Glagolitic}{glag}
+\newfontscript{Gothic}{goth} \newfontscript{Greek}{grek}
+\newfontscript{Gujarati}{gujr} \newfontscript{Gurmukhi}{guru}
+\newfontscript{Hangul Jamo}{jamo} \newfontscript{Hangul}{hang}
+\newfontscript{Hanunoo}{hano} \newfontscript{Hebrew}{hebr}
+\newfontscript{Hiragana and Katakana}{kana}
+\newfontscript{Javanese}{java} \newfontscript{Kannada}{knda}
+\newfontscript{Kharosthi}{khar} \newfontscript{Khmer}{khmr}
+\newfontscript{Lao}{lao } \newfontscript{Latin}{latn}
+\newfontscript{Limbu}{limb} \newfontscript{Linear B}{linb}
+\newfontscript{Malayalam}{mlym} \newfontscript{Math}{math}
+\newfontscript{Mongolian}{mong}
+\newfontscript{Musical Symbols}{musc} \newfontscript{Myanmar}{mymr}
+\newfontscript{N'ko}{nko } \newfontscript{Ogham}{ogam}
+\newfontscript{Old Italic}{ital} \newfontscript{Old Persian Cuneiform}{xpeo}
+\newfontscript{Oriya}{orya} \newfontscript{Osmanya}{osma}
+\newfontscript{Phags-pa}{phag} \newfontscript{Phoenician}{phnx}
+\newfontscript{Runic}{runr} \newfontscript{Shavian}{shaw}
+\newfontscript{Sinhala}{sinh} \newfontscript{Sumero-Akkadian Cuneiform}{xsux}
+\newfontscript{Syloti Nagri}{sylo} \newfontscript{Syriac}{syrc}
+\newfontscript{Tagalog}{tglg} \newfontscript{Tagbanwa}{tagb}
+\newfontscript{Tai Le}{tale} \newfontscript{Tai Lu}{talu}
+\newfontscript{Tamil}{taml} \newfontscript{Telugu}{telu}
+\newfontscript{Thaana}{thaa} \newfontscript{Thai}{thai}
+\newfontscript{Tibetan}{tibt} \newfontscript{Tifinagh}{tfng}
+\newfontscript{Ugaritic Cuneiform}{ugar}\newfontscript{Yi}{yi }
+\newfontlanguage{Abaza}{ABA}\newfontlanguage{Abkhazian}{ABK}\newfontlanguage{Adyghe}{ADY}
+\newfontlanguage{Afrikaans}{AFK}\newfontlanguage{Afar}{AFR}\newfontlanguage{Agaw}{AGW}
+\newfontlanguage{Altai}{ALT}\newfontlanguage{Amharic}{AMH}\newfontlanguage{Arabic}{ARA}
+\newfontlanguage{Aari}{ARI}\newfontlanguage{Arakanese}{ARK}\newfontlanguage{Assamese}{ASM}
+\newfontlanguage{Athapaskan}{ATH}\newfontlanguage{Avar}{AVR}\newfontlanguage{Awadhi}{AWA}
+\newfontlanguage{Aymara}{AYM}\newfontlanguage{Azeri}{AZE}\newfontlanguage{Badaga}{BAD}
+\newfontlanguage{Baghelkhandi}{BAG}\newfontlanguage{Balkar}{BAL}\newfontlanguage{Baule}{BAU}
+\newfontlanguage{Berber}{BBR}\newfontlanguage{Bench}{BCH}\newfontlanguage{Bible Cree}{BCR}
+\newfontlanguage{Belarussian}{BEL}\newfontlanguage{Bemba}{BEM}\newfontlanguage{Bengali}{BEN}
+\newfontlanguage{Bulgarian}{BGR}\newfontlanguage{Bhili}{BHI}\newfontlanguage{Bhojpuri}{BHO}
+\newfontlanguage{Bikol}{BIK}\newfontlanguage{Bilen}{BIL}\newfontlanguage{Blackfoot}{BKF}
+\newfontlanguage{Balochi}{BLI}\newfontlanguage{Balante}{BLN}\newfontlanguage{Balti}{BLT}
+\newfontlanguage{Bambara}{BMB}\newfontlanguage{Bamileke}{BML}\newfontlanguage{Breton}{BRE}
+\newfontlanguage{Brahui}{BRH}\newfontlanguage{Braj Bhasha}{BRI}\newfontlanguage{Burmese}{BRM}
+\newfontlanguage{Bashkir}{BSH}\newfontlanguage{Beti}{BTI}\newfontlanguage{Catalan}{CAT}
+\newfontlanguage{Cebuano}{CEB}\newfontlanguage{Chechen}{CHE}\newfontlanguage{Chaha Gurage}{CHG}
+\newfontlanguage{Chattisgarhi}{CHH}\newfontlanguage{Chichewa}{CHI}\newfontlanguage{Chukchi}{CHK}
+\newfontlanguage{Chipewyan}{CHP}\newfontlanguage{Cherokee}{CHR}\newfontlanguage{Chuvash}{CHU}
+\newfontlanguage{Comorian}{CMR}\newfontlanguage{Coptic}{COP}\newfontlanguage{Cree}{CRE}
+\newfontlanguage{Carrier}{CRR}\newfontlanguage{Crimean Tatar}{CRT}\newfontlanguage{Church Slavonic}{CSL}
+\newfontlanguage{Czech}{CSY}\newfontlanguage{Danish}{DAN}\newfontlanguage{Dargwa}{DAR}
+\newfontlanguage{Woods Cree}{DCR}\newfontlanguage{German}{DEU}\newfontlanguage{Default}{DFLT}
+\newfontlanguage{Dogri}{DGR}\newfontlanguage{Divehi}{DIV}\newfontlanguage{Djerma}{DJR}
+\newfontlanguage{Dangme}{DNG}\newfontlanguage{Dinka}{DNK}\newfontlanguage{Dungan}{DUN}
+\newfontlanguage{Dzongkha}{DZN}\newfontlanguage{Ebira}{EBI}\newfontlanguage{Eastern Cree}{ECR}
+\newfontlanguage{Edo}{EDO}\newfontlanguage{Efik}{EFI}\newfontlanguage{Greek}{ELL}
+\newfontlanguage{English}{ENG}\newfontlanguage{Erzya}{ERZ}\newfontlanguage{Spanish}{ESP}
+\newfontlanguage{Estonian}{ETI}\newfontlanguage{Basque}{EUQ}\newfontlanguage{Evenki}{EVK}
+\newfontlanguage{Even}{EVN}\newfontlanguage{Ewe}{EWE}\newfontlanguage{French Antillean}{FAN}
+\newfontlanguage{Farsi}{FAR}\newfontlanguage{Finnish}{FIN}\newfontlanguage{Fijian}{FJI}
+\newfontlanguage{Flemish}{FLE}\newfontlanguage{Forest Nenets}{FNE}\newfontlanguage{Fon}{FON}
+\newfontlanguage{Faroese}{FOS}\newfontlanguage{French}{FRA}\newfontlanguage{Frisian}{FRI}
+\newfontlanguage{Friulian}{FRL}\newfontlanguage{Futa}{FTA}\newfontlanguage{Fulani}{FUL}
+\newfontlanguage{Ga}{GAD}\newfontlanguage{Gaelic}{GAE}\newfontlanguage{Gagauz}{GAG}
+\newfontlanguage{Galician}{GAL}\newfontlanguage{Garshuni}{GAR}\newfontlanguage{Garhwali}{GAW}
+\newfontlanguage{Ge'ez}{GEZ}\newfontlanguage{Gilyak}{GIL}\newfontlanguage{Gumuz}{GMZ}
+\newfontlanguage{Gondi}{GON}\newfontlanguage{Greenlandic}{GRN}\newfontlanguage{Garo}{GRO}
+\newfontlanguage{Guarani}{GUA}\newfontlanguage{Gujarati}{GUJ}\newfontlanguage{Haitian}{HAI}
+\newfontlanguage{Halam}{HAL}\newfontlanguage{Harauti}{HAR}\newfontlanguage{Hausa}{HAU}
+\newfontlanguage{Hawaiin}{HAW}\newfontlanguage{Hammer-Banna}{HBN}\newfontlanguage{Hiligaynon}{HIL}
+\newfontlanguage{Hindi}{HIN}\newfontlanguage{High Mari}{HMA}\newfontlanguage{Hindko}{HND}
+\newfontlanguage{Ho}{HO}\newfontlanguage{Harari}{HRI}\newfontlanguage{Croatian}{HRV}
+\newfontlanguage{Hungarian}{HUN}\newfontlanguage{Armenian}{HYE}\newfontlanguage{Igbo}{IBO}
+\newfontlanguage{Ijo}{IJO}\newfontlanguage{Ilokano}{ILO}\newfontlanguage{Indonesian}{IND}
+\newfontlanguage{Ingush}{ING}\newfontlanguage{Inuktitut}{INU}\newfontlanguage{Irish}{IRI}
+\newfontlanguage{Irish Traditional}{IRT}\newfontlanguage{Icelandic}{ISL}\newfontlanguage{Inari Sami}{ISM}
+\newfontlanguage{Italian}{ITA}\newfontlanguage{Hebrew}{IWR}\newfontlanguage{Javanese}{JAV}
+\newfontlanguage{Yiddish}{JII}\newfontlanguage{Japanese}{JAN}\newfontlanguage{Judezmo}{JUD}
+\newfontlanguage{Jula}{JUL}\newfontlanguage{Kabardian}{KAB}\newfontlanguage{Kachchi}{KAC}
+\newfontlanguage{Kalenjin}{KAL}\newfontlanguage{Kannada}{KAN}\newfontlanguage{Karachay}{KAR}
+\newfontlanguage{Georgian}{KAT}\newfontlanguage{Kazakh}{KAZ}\newfontlanguage{Kebena}{KEB}
+\newfontlanguage{Khutsuri Georgian}{KGE}\newfontlanguage{Khakass}{KHA}\newfontlanguage{Khanty-Kazim}{KHK}
+\newfontlanguage{Khmer}{KHM}\newfontlanguage{Khanty-Shurishkar}{KHS}\newfontlanguage{Khanty-Vakhi}{KHV}
+\newfontlanguage{Khowar}{KHW}\newfontlanguage{Kikuyu}{KIK}\newfontlanguage{Kirghiz}{KIR}
+\newfontlanguage{Kisii}{KIS}\newfontlanguage{Kokni}{KKN}\newfontlanguage{Kalmyk}{KLM}
+\newfontlanguage{Kamba}{KMB}\newfontlanguage{Kumaoni}{KMN}\newfontlanguage{Komo}{KMO}
+\newfontlanguage{Komso}{KMS}\newfontlanguage{Kanuri}{KNR}\newfontlanguage{Kodagu}{KOD}
+\newfontlanguage{Korean Old Hangul}{KOH}\newfontlanguage{Konkani}{KOK}\newfontlanguage{Kikongo}{KON}
+\newfontlanguage{Komi-Permyak}{KOP}\newfontlanguage{Korean}{KOR}\newfontlanguage{Komi-Zyrian}{KOZ}
+\newfontlanguage{Kpelle}{KPL}\newfontlanguage{Krio}{KRI}\newfontlanguage{Karakalpak}{KRK}
+\newfontlanguage{Karelian}{KRL}\newfontlanguage{Karaim}{KRM}\newfontlanguage{Karen}{KRN}
+\newfontlanguage{Koorete}{KRT}\newfontlanguage{Kashmiri}{KSH}\newfontlanguage{Khasi}{KSI}
+\newfontlanguage{Kildin Sami}{KSM}\newfontlanguage{Kui}{KUI}\newfontlanguage{Kulvi}{KUL}
+\newfontlanguage{Kumyk}{KUM}\newfontlanguage{Kurdish}{KUR}\newfontlanguage{Kurukh}{KUU}
+\newfontlanguage{Kuy}{KUY}\newfontlanguage{Koryak}{KYK}\newfontlanguage{Ladin}{LAD}
+\newfontlanguage{Lahuli}{LAH}\newfontlanguage{Lak}{LAK}\newfontlanguage{Lambani}{LAM}
+\newfontlanguage{Lao}{LAO}\newfontlanguage{Latin}{LAT}\newfontlanguage{Laz}{LAZ}
+\newfontlanguage{L-Cree}{LCR}\newfontlanguage{Ladakhi}{LDK}\newfontlanguage{Lezgi}{LEZ}
+\newfontlanguage{Lingala}{LIN}\newfontlanguage{Low Mari}{LMA}\newfontlanguage{Limbu}{LMB}
+\newfontlanguage{Lomwe}{LMW}\newfontlanguage{Lower Sorbian}{LSB}\newfontlanguage{Lule Sami}{LSM}
+\newfontlanguage{Lithuanian}{LTH}\newfontlanguage{Luba}{LUB}\newfontlanguage{Luganda}{LUG}
+\newfontlanguage{Luhya}{LUH}\newfontlanguage{Luo}{LUO}\newfontlanguage{Latvian}{LVI}
+\newfontlanguage{Majang}{MAJ}\newfontlanguage{Makua}{MAK}\newfontlanguage{Malayalam Traditional}{MAL}
+\newfontlanguage{Mansi}{MAN}\newfontlanguage{Marathi}{MAR}\newfontlanguage{Marwari}{MAW}
+\newfontlanguage{Mbundu}{MBN}\newfontlanguage{Manchu}{MCH}\newfontlanguage{Moose Cree}{MCR}
+\newfontlanguage{Mende}{MDE}\newfontlanguage{Me'en}{MEN}\newfontlanguage{Mizo}{MIZ}
+\newfontlanguage{Macedonian}{MKD}\newfontlanguage{Male}{MLE}\newfontlanguage{Malagasy}{MLG}
+\newfontlanguage{Malinke}{MLN}\newfontlanguage{Malayalam Reformed}{MLR}\newfontlanguage{Malay}{MLY}
+\newfontlanguage{Mandinka}{MND}\newfontlanguage{Mongolian}{MNG}\newfontlanguage{Manipuri}{MNI}
+\newfontlanguage{Maninka}{MNK}\newfontlanguage{Manx Gaelic}{MNX}\newfontlanguage{Moksha}{MOK}
+\newfontlanguage{Moldavian}{MOL}\newfontlanguage{Mon}{MON}\newfontlanguage{Moroccan}{MOR}
+\newfontlanguage{Maori}{MRI} \newfontlanguage{Maithili}{MTH} \newfontlanguage{Maltese}{MTS}
+\newfontlanguage{Mundari}{MUN} \newfontlanguage{Naga-Assamese}{NAG} \newfontlanguage{Nanai}{NAN}
+\newfontlanguage{Naskapi}{NAS} \newfontlanguage{N-Cree}{NCR} \newfontlanguage{Ndebele}{NDB}
+\newfontlanguage{Ndonga}{NDG} \newfontlanguage{Nepali}{NEP} \newfontlanguage{Newari}{NEW}
+\newfontlanguage{Nagari}{NGR} \newfontlanguage{Norway House Cree}{NHC} \newfontlanguage{Nisi}{NIS}
+\newfontlanguage{Niuean}{NIU} \newfontlanguage{Nkole}{NKL} \newfontlanguage{N'ko}{NKO}
+\newfontlanguage{Dutch}{NLD} \newfontlanguage{Nogai}{NOG} \newfontlanguage{Norwegian}{NOR}
+\newfontlanguage{Northern Sami}{NSM} \newfontlanguage{Northern Tai}{NTA} \newfontlanguage{Esperanto}{NTO}
+\newfontlanguage{Nynorsk}{NYN} \newfontlanguage{Oji-Cree}{OCR} \newfontlanguage{Ojibway}{OJB}
+\newfontlanguage{Oriya}{ORI} \newfontlanguage{Oromo}{ORO} \newfontlanguage{Ossetian}{OSS}
+\newfontlanguage{Palestinian Aramaic}{PAA} \newfontlanguage{Pali}{PAL} \newfontlanguage{Punjabi}{PAN}
+\newfontlanguage{Palpa}{PAP} \newfontlanguage{Pashto}{PAS} \newfontlanguage{Polytonic Greek}{PGR}
+\newfontlanguage{Pilipino}{PIL} \newfontlanguage{Palaung}{PLG} \newfontlanguage{Polish}{PLK}
+\newfontlanguage{Provencal}{PRO} \newfontlanguage{Portuguese}{PTG} \newfontlanguage{Chin}{QIN}
+\newfontlanguage{Rajasthani}{RAJ} \newfontlanguage{R-Cree}{RCR} \newfontlanguage{Russian Buriat}{RBU}
+\newfontlanguage{Riang}{RIA} \newfontlanguage{Rhaeto-Romanic}{RMS} \newfontlanguage{Romanian}{ROM}
+\newfontlanguage{Romany}{ROY} \newfontlanguage{Rusyn}{RSY} \newfontlanguage{Ruanda}{RUA}
+\newfontlanguage{Russian}{RUS} \newfontlanguage{Sadri}{SAD} \newfontlanguage{Sanskrit}{SAN}
+\newfontlanguage{Santali}{SAT} \newfontlanguage{Sayisi}{SAY} \newfontlanguage{Sekota}{SEK}
+\newfontlanguage{Selkup}{SEL} \newfontlanguage{Sango}{SGO} \newfontlanguage{Shan}{SHN}
+\newfontlanguage{Sibe}{SIB} \newfontlanguage{Sidamo}{SID} \newfontlanguage{Silte Gurage}{SIG}
+\newfontlanguage{Skolt Sami}{SKS} \newfontlanguage{Slovak}{SKY} \newfontlanguage{Slavey}{SLA}
+\newfontlanguage{Slovenian}{SLV} \newfontlanguage{Somali}{SML} \newfontlanguage{Samoan}{SMO}
+\newfontlanguage{Sena}{SNA} \newfontlanguage{Sindhi}{SND} \newfontlanguage{Sinhalese}{SNH}
+\newfontlanguage{Soninke}{SNK} \newfontlanguage{Sodo Gurage}{SOG} \newfontlanguage{Sotho}{SOT}
+\newfontlanguage{Albanian}{SQI} \newfontlanguage{Serbian}{SRB} \newfontlanguage{Saraiki}{SRK}
+\newfontlanguage{Serer}{SRR} \newfontlanguage{South Slavey}{SSL} \newfontlanguage{Southern Sami}{SSM}
+\newfontlanguage{Suri}{SUR} \newfontlanguage{Svan}{SVA} \newfontlanguage{Swedish}{SVE}
+\newfontlanguage{Swadaya Aramaic}{SWA} \newfontlanguage{Swahili}{SWK} \newfontlanguage{Swazi}{SWZ}
+\newfontlanguage{Sutu}{SXT} \newfontlanguage{Syriac}{SYR} \newfontlanguage{Tabasaran}{TAB}
+\newfontlanguage{Tajiki}{TAJ} \newfontlanguage{Tamil}{TAM} \newfontlanguage{Tatar}{TAT}
+\newfontlanguage{TH-Cree}{TCR} \newfontlanguage{Telugu}{TEL} \newfontlanguage{Tongan}{TGN}
+\newfontlanguage{Tigre}{TGR} \newfontlanguage{Tigrinya}{TGY} \newfontlanguage{Thai}{THA}
+\newfontlanguage{Tahitian}{THT} \newfontlanguage{Tibetan}{TIB} \newfontlanguage{Turkmen}{TKM}
+\newfontlanguage{Temne}{TMN} \newfontlanguage{Tswana}{TNA} \newfontlanguage{Tundra Nenets}{TNE}
+\newfontlanguage{Tonga}{TNG} \newfontlanguage{Todo}{TOD} \newfontlanguage{Turkish}{TUR}
+\newfontlanguage{Tsonga}{TSG} \newfontlanguage{Turoyo Aramaic}{TUA} \newfontlanguage{Tulu}{TUL}
+\newfontlanguage{Tuvin}{TUV} \newfontlanguage{Twi}{TWI} \newfontlanguage{Udmurt}{UDM}
+\newfontlanguage{Ukrainian}{UKR} \newfontlanguage{Urdu}{URD} \newfontlanguage{Upper Sorbian}{USB}
+\newfontlanguage{Uyghur}{UYG} \newfontlanguage{Uzbek}{UZB} \newfontlanguage{Venda}{VEN}
+\newfontlanguage{Vietnamese}{VIT} \newfontlanguage{Wa}{WA} \newfontlanguage{Wagdi}{WAG}
+\newfontlanguage{West-Cree}{WCR} \newfontlanguage{Welsh}{WEL} \newfontlanguage{Wolof}{WLF}
+\newfontlanguage{Tai Lue}{XBD} \newfontlanguage{Xhosa}{XHS} \newfontlanguage{Yakut}{YAK}
+\newfontlanguage{Yoruba}{YBA} \newfontlanguage{Y-Cree}{YCR} \newfontlanguage{Yi Classic}{YIC}
+\newfontlanguage{Yi Modern}{YIM} \newfontlanguage{Chinese Hong Kong}{ZHH}
+\newfontlanguage{Chinese Phonetic}{ZHP} \newfontlanguage{Chinese Simplified}{ZHS}
+\newfontlanguage{Chinese Traditional}{ZHT} \newfontlanguage{Zande}{ZND} \newfontlanguage{Zulu}{ZUL}
+\providecommand*{\sidefault}{si}
+\DeclareRobustCommand{\sishape}{%
+ \not@math@alphabet\sishape\relax
+ \fontshape\sidefault\selectfont}
+\DeclareTextFontCommand{\textsi}{\sishape}
+\newcommand*{\zf@merge@shape}[3]{%
+ \edef\@tempa{#1}%
+ \edef\@tempb{#2}%
+ \ifx\f@shape\@tempb
+ \ifcsname\f@encoding/\f@family/\f@series/#3\endcsname
+ \edef\@tempa{#3}%
+ \fi
+ \fi
+ \fontshape{\@tempa}\selectfont}
+\DeclareRobustCommand{\itshape}{%
+ \not@math@alphabet\itshape\mathit
+ \zf@merge@shape\itdefault\scdefault\sidefault}
+\DeclareRobustCommand{\slshape}{%
+ \not@math@alphabet\slshape\relax
+ \zf@merge@shape\sldefault\scdefault\sidefault}
+\DeclareRobustCommand{\scshape}{%
+ \not@math@alphabet\scshape\relax
+ \zf@merge@shape\scdefault\itdefault\sidefault}
+\DeclareRobustCommand{\upshape}{%
+ \not@math@alphabet\upshape\relax
+ \zf@merge@shape\updefault\sidefault\scdefault}
+\AtBeginDocument{%
+ \DeclareRobustCommand\em
+ {\@nomath\em
+ \edef\@tempa{\f@shape}%
+ \edef\@tempb{\itdefault}%
+ \ifx\@tempa\@tempb
+ \eminnershape
+ \else
+ \emshape
+ \fi}}
+\DeclareTextFontCommand{\emph}{\em}
+\let\emshape\itshape
+\let\eminnershape\upshape
+\@ifpackageloaded{euler}{\zf@euler@package@loadedtrue}
+ {\zf@euler@package@loadedfalse}
+\AtBeginDocument{%
+ \let\zf@font@warning\@font@warning
+ \let\@font@warning\@font@info
+ \@ifpackageloaded{euler}{%
+ \ifzf@euler@package@loaded
+ \zf@math@eulertrue
+ \else
+ \zf@PackageError{The euler package must be loaded BEFORE fontspec}
+ {fontspec only overwrites euler's attempt to \MessageBreak
+ define the maths text fonts if fontspec is \MessageBreak
+ loaded after euler. Type <return> to proceed\MessageBreak
+ with incorrect \protect\mathit, \protect\mathbf, etc}
+ \fi}{}
+ \@ifpackageloaded{lucbmath}{\zf@math@lucidatrue}{}
+ \@ifpackageloaded{lucidabr}{\zf@math@lucidatrue}{}
+ \@ifpackageloaded{lucimatx}{\zf@math@lucidatrue}{}
+ \DeclareSymbolFont{legacymaths}{OT1}{cmr}{m}{n}
+ \SetSymbolFont{legacymaths}{bold}{OT1}{cmr}{bx}{n}
+ \DeclareMathAccent{\acute} {\mathalpha}{legacymaths}{19}
+ \DeclareMathAccent{\grave} {\mathalpha}{legacymaths}{18}
+ \DeclareMathAccent{\ddot} {\mathalpha}{legacymaths}{127}
+ \DeclareMathAccent{\tilde} {\mathalpha}{legacymaths}{126}
+ \DeclareMathAccent{\bar} {\mathalpha}{legacymaths}{22}
+ \DeclareMathAccent{\breve} {\mathalpha}{legacymaths}{21}
+ \DeclareMathAccent{\check} {\mathalpha}{legacymaths}{20}
+ \DeclareMathAccent{\hat} {\mathalpha}{legacymaths}{94} % too bad, euler
+ \DeclareMathAccent{\dot} {\mathalpha}{legacymaths}{95}
+ \DeclareMathAccent{\mathring}{\mathalpha}{legacymaths}{23}
+ \begingroup
+ \mathchardef\@tempa="603A %
+ \let\next\egroup
+ \ifx\colon\@tempa
+ \DeclareMathSymbol{\colon}{\mathpunct}{legacymaths}{58}
+ \fi
+ \endgroup
+ \ifzf@math@euler\else
+ \DeclareMathSymbol{!}{\mathclose}{legacymaths}{33}
+ \DeclareMathSymbol{:}{\mathrel} {legacymaths}{58}
+ \DeclareMathSymbol{;}{\mathpunct}{legacymaths}{59}
+ \DeclareMathSymbol{?}{\mathclose}{legacymaths}{63}
+ \ifzf@math@lucida\else
+ \DeclareMathSymbol{0}{\mathalpha}{legacymaths}{`0}
+ \DeclareMathSymbol{1}{\mathalpha}{legacymaths}{`1}
+ \DeclareMathSymbol{2}{\mathalpha}{legacymaths}{`2}
+ \DeclareMathSymbol{3}{\mathalpha}{legacymaths}{`3}
+ \DeclareMathSymbol{4}{\mathalpha}{legacymaths}{`4}
+ \DeclareMathSymbol{5}{\mathalpha}{legacymaths}{`5}
+ \DeclareMathSymbol{6}{\mathalpha}{legacymaths}{`6}
+ \DeclareMathSymbol{7}{\mathalpha}{legacymaths}{`7}
+ \DeclareMathSymbol{8}{\mathalpha}{legacymaths}{`8}
+ \DeclareMathSymbol{9}{\mathalpha}{legacymaths}{`9}
+ \DeclareMathSymbol{\Gamma}{\mathalpha}{legacymaths}{0}
+ \DeclareMathSymbol{\Delta}{\mathalpha}{legacymaths}{1}
+ \DeclareMathSymbol{\Theta}{\mathalpha}{legacymaths}{2}
+ \DeclareMathSymbol{\Lambda}{\mathalpha}{legacymaths}{3}
+ \DeclareMathSymbol{\Xi}{\mathalpha}{legacymaths}{4}
+ \DeclareMathSymbol{\Pi}{\mathalpha}{legacymaths}{5}
+ \DeclareMathSymbol{\Sigma}{\mathalpha}{legacymaths}{6}
+ \DeclareMathSymbol{\Upsilon}{\mathalpha}{legacymaths}{7}
+ \DeclareMathSymbol{\Phi}{\mathalpha}{legacymaths}{8}
+ \DeclareMathSymbol{\Psi}{\mathalpha}{legacymaths}{9}
+ \DeclareMathSymbol{\Omega}{\mathalpha}{legacymaths}{10}
+ \DeclareMathSymbol{+}{\mathbin}{legacymaths}{43}
+ \DeclareMathSymbol{=}{\mathrel}{legacymaths}{61}
+ \DeclareMathDelimiter{(}{\mathopen} {legacymaths}{40}{largesymbols}{0}
+ \DeclareMathDelimiter{)}{\mathclose}{legacymaths}{41}{largesymbols}{1}
+ \DeclareMathDelimiter{[}{\mathopen} {legacymaths}{91}{largesymbols}{2}
+ \DeclareMathDelimiter{]}{\mathclose}{legacymaths}{93}{largesymbols}{3}
+ \DeclareMathDelimiter{/}{\mathord}{legacymaths}{47}{largesymbols}{14}
+ \DeclareMathSymbol{\mathdollar}{\mathord}{legacymaths}{36}
+ \fi
+ \fi
+ \DeclareSymbolFont{operators}\zf@enc\zf@rmmaths\mddefault\updefault
+ \SetSymbolFont{operators}{normal}\zf@enc\zf@rmmaths\mddefault\updefault
+ \SetMathAlphabet\mathrm{normal}\zf@enc\zf@rmmaths\mddefault\updefault
+ \SetMathAlphabet\mathit{normal}\zf@enc\zf@rmmaths\mddefault\itdefault
+ \SetMathAlphabet\mathbf{normal}\zf@enc\zf@rmmaths\bfdefault\updefault
+ \SetMathAlphabet\mathsf{normal}\zf@enc\zf@sfmaths\mddefault\updefault
+ \SetMathAlphabet\mathtt{normal}\zf@enc\zf@ttmaths\mddefault\updefault
+ \SetSymbolFont{operators}{bold}\zf@enc\zf@rmmaths\bfdefault\updefault
+ \ifdefined\zf@rmboldmaths
+ \SetMathAlphabet\mathrm{bold}\zf@enc\zf@rmboldmaths\mddefault\updefault
+ \SetMathAlphabet\mathbf{bold}\zf@enc\zf@rmboldmaths\bfdefault\updefault
+ \SetMathAlphabet\mathit{bold}\zf@enc\zf@rmboldmaths\mddefault\itdefault
+ \else
+ \SetMathAlphabet\mathrm{bold}\zf@enc\zf@rmmaths\bfdefault\updefault
+ \SetMathAlphabet\mathit{bold}\zf@enc\zf@rmmaths\bfdefault\itdefault
+ \fi
+ \SetMathAlphabet\mathsf{bold}\zf@enc\zf@sfmaths\bfdefault\updefault
+ \SetMathAlphabet\mathtt{bold}\zf@enc\zf@ttmaths\bfdefault\updefault
+ \let\font@warning\zf@font@warning}
+\DeclareOption{config}{%
+ \InputIfFileExists{fontspec.cfg}
+ {\typeout{fontspec.cfg loaded.}}
+ {\typeout{fontspec.cfg would be loaded now if it existed.}}}
+\DeclareOption{noconfig}{}
+\DeclareOption{quiet}{\let\zf@PackageWarning\zf@PackageInfo}
+\ExecuteOptions{config}
+\ProcessOptions
+%%
+%% Copyright 2005 by Will Robertson <will@guerilla.net.au>
+%%
+%% Distributable under the LaTeX Project Public License,
+%% version 1.3b or higher (your choice). The latest version of
+%% this license is at: http://www.latex-project.org/lppl.txt
+%%
+%% This work is "maintained" (as per LPPL maintenance status)
+%% by Will Robertson.
+%%
+%% This work consists of the file fontspec.dtx
+%% and the derived files fontspec.sty and fontspec.pdf.
+%%
+%%
+%% End of file `fontspec.sty'.