%% %% 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--2008 Will Robertson %% %% License information appended. %% \ProvidesPackage{fontspec} [2008/08/09 v1.18 Advanced font selection for XeLaTeX] \RequirePackage{ifxetex} \RequireXeTeX \newif\ifzf@firsttime \newif\ifzf@nobf \newif\ifzf@noit \newif\ifzf@nosc \newif\ifzf@tfm \newif\ifzf@atsui \newif\ifzf@icu \newif\ifzf@mm \newif\ifzf@math@euler \newif\ifzf@math@lucida \newif\ifzf@package@euler@loaded \newif\if@zf@configfile \newif\if@zf@euenc \newif\if@zf@math \newcount\c@zf@newff \newcount\c@zf@index \newcount\c@zf@script \newcount\c@zf@language \def\zf@nl{^^J\space\space\space\space} \newcommand\zf@PackageError[2]{% \PackageError{fontspec}{{\zf@nl #1}^^J}{#2}} \newcommand\zf@PackageWarning[1]{% \PackageWarning{fontspec}{\zf@nl #1^^JThis warning occured}} \newcommand\zf@PackageInfo[1]{\PackageInfo{fontspec}{#1}} \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} \DeclareOption{cm-default}{\@zf@euencfalse} \DeclareOption{lm-default}{\@zf@euenctrue} \DeclareOption{math}{\@zf@mathtrue} \DeclareOption{no-math}{\@zf@mathfalse} \DeclareOption{config}{\@zf@configfiletrue} \DeclareOption{no-config}{\@zf@configfilefalse} \DeclareOption{noconfig}{\@zf@configfilefalse} \DeclareOption{quiet}{% \let\zf@PackageWarning\zf@PackageInfo \let\zf@PackageInfo\@gobble} \DeclareOption{silent}{% \let\zf@PackageWarning\@gobble \let\zf@PackageInfo\@gobble} \ExecuteOptions{config,lm-default,math} \ProcessOptions* \RequirePackage{ifxetex} \RequireXeTeX \RequirePackage{calc} \RequirePackage{xkeyval}[2005/05/07] \if@zf@euenc \def\zf@enc{EU1} \renewcommand{\rmdefault}{lmr} \renewcommand{\sfdefault}{lmss} \renewcommand{\ttdefault}{lmtt} \RequirePackage[\zf@enc]{fontenc} \else \def\zf@enc{U} \let\encodingdefault\zf@enc \fi \let\UTFencname\zf@enc \let\cyrillicencoding\zf@enc \let\latinencoding\zf@enc \g@addto@macro\document{% \let\cyrillicencoding\zf@enc \let\latinencoding\zf@enc} \newcommand*\fontspec[2][]{% \zf@fontspec{#1}{#2}% \fontfamily\zf@family\selectfont \ignorespaces} \newcommand*\setmainfont[2][]{% \zf@fontspec{#1}{#2}% \let\rmdefault\zf@family \normalfont} \let\setromanfont\setmainfont \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*\newfontfamily[1]{% \@ifnextchar[{\newfontfamily@i#1}{\newfontfamily@i#1[]}} \def\newfontfamily@i#1[#2]#3{% \zf@fontspec{#2}{#3}% \edef\@tempa{% \noexpand\DeclareRobustCommand\noexpand#1 {\noexpand\fontfamily{\zf@family}\noexpand\selectfont}}% \@tempa} \newcommand*\newfontface[1]{% \@ifnextchar[{\newfontface@i#1}{\newfontface@i#1[]}} \def\newfontface@i#1[#2]#3{% \zf@fontspec{BoldFont={},ItalicFont={},SmallCapsFont={},#2}{#3}% \edef\@tempa{% \noexpand\DeclareRobustCommand\noexpand#1 {\noexpand\fontfamily{\zf@family}\noexpand\selectfont}}% \@tempa} \newcommand*\defaultfontfeatures[1]{\def\zf@default@options{#1,}} \let\zf@default@options\@empty \newcommand*\addfontfeatures[1]{% \ifcsname zf@family@fontdef\f@family\endcsname \begingroup \let\zf@default@options\@empty \edef\@tempa{% \noexpand\zf@fontspec {\csname zf@family@options\f@family\endcsname,#1}% {\csname zf@family@fontname\f@family\endcsname}}% \@tempa \endgroup \fontfamily\zf@family\selectfont \else \zf@PackageWarning{% \protect\addfontfeature (s) ignored;\zf@nl it cannot be used with a font that wasn't selected by fontspec.}% \fi \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 \global\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\space does not contain script '#1'}% \fi}} \newcommand*\newfontlanguage[2]{% \define@key[zf@feat]{Lang}{#1}[]{% \zf@check@ot@lang{#2}% \if@tempswa \global\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\space does not contain language '#1' for script '\zf@script@name'}% \fi}} \newcommand*\zf@fontspec[2]{% \begingroup \zf@init \edef\zf@fontname{#2}% \let\zf@family@long\zf@fontname \setkeys*[zf]{prepreparse}{#1}% \let\zf@up\zf@fontname \edef\@tempa{\noexpand\setkeys*[zf]{preparse}{\XKV@rm}}\@tempa \let\zf@fontname\zf@up \let\zf@font@feat\XKV@rm \font\zf@basefont="\zf@font@wrap\zf@fontname\zf@suffix" at \f@size pt \unless\ifzf@icu \zf@set@font@type \fi \ifx\zf@suffix\@empty \ifzf@atsui \def\zf@suffix{/AAT}% \else \ifzf@icu \def\zf@suffix{/ICU}% \fi \fi \font\zf@basefont="\zf@font@wrap\zf@fontname\zf@suffix" at \f@size pt \fi \zf@firsttimetrue \zf@get@feature@requests{\zf@font@feat}% \zf@firsttimefalse \unless\ifcsname zf@UID@\zf@family@long\endcsname \edef\@tempa{#2}% \ifcsname c@zf@famc@\@tempa\endcsname \expandafter\stepcounter\else \expandafter\newcounter\fi {zf@famc@\@tempa}% \gdef@cx{zf@UID@\zf@family@long}{% \expandafter\expandafter\expandafter \zap@space\expandafter\@tempa\space\@empty (\expandafter\the\csname c@zf@famc@\@tempa\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}% \unless\ifzf@nobf \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 \fi \unless\ifzf@noit \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 \fi \@tempswatrue \ifzf@nobf\@tempswafalse\fi \ifzf@noit\@tempswafalse\fi \if@tempswa \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 \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][]{% \begingroup \edef\@tempa{#1}% \unless\ifx\@tempa\@empty \font\@tempfonta="\zf@font@wrap{#1}\zf@suffix" at \f@size pt \edef\@tempa{\fontname\@tempfonta}% \fi \font\@tempfontb="\zf@font@wrap{#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 \unless\ifzf@nosc \zf@make@smallcaps \unless\ifx\zf@smallcaps\@empty \zf@DeclareFontShape[\zf@smallcaps]{#3} {\ifx#4\itdefault\sidefault\else\scdefault\fi}{#5\zf@sc@feat}% \fi \fi \else \edef\zf@fontname{\zf@sc}% \zf@DeclareFontShape{#3} {\ifx#4\itdefault\sidefault\else\scdefault\fi}{#5\zf@sc@feat}% \fi \fi \endgroup} \newcommand\zf@DeclareFontShape[4][]{% \ifx\zf@size@feat\@empty \zf@get@feature@requests{#4}% \edef\zf@font@str{<->\zf@scale"\zf@font@wrap\zf@fontname\zf@suffix:% \zf@pre@ff\zf@ff#1"}% \else \@for\zf@this@size:=\zf@size@feat\do{% \let\zf@size\@empty \let\zf@size@fnt\zf@fontname \edef\@tempa{\noexpand \setkeys*[zf]{sizing}{\expandafter\@firstofone\zf@this@size}}% \@tempa \ifx\zf@size\@empty\zf@PackageError {Size information must be supplied} {For example, SizeFeatures={Size={8-12},...},...}% \fi \zf@get@feature@requests{#4,\XKV@rm}% \edef\zf@font@str{\zf@font@str <\zf@size>% \zf@scale"\zf@size@fnt\zf@suffix:\zf@pre@ff\zf@ff#1"}}% \fi \edef\@tempa{\noexpand \DeclareFontShape{\zf@enc}{\zf@family}{#2}{#3} {\zf@font@str}{\zf@adjust}}% \@tempa \edef\@tempa{#3}% \edef\@tempb{\itdefault}% \ifx\@tempa\@tempb \edef\@tempa{\noexpand \DeclareFontShape{\zf@enc}{\zf@family}{#2}{\sldefault} {<->ssub*\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{% \zf@icufalse \let\zf@pre@ff \@empty \let\zf@font@feat \@empty \let\zf@font@str \@empty \let\zf@font@wrap \@firstofone \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 \let\zf@size \@empty \let\zf@size@feat \@empty \let\zf@size@fnt \@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\@tempa\@empty \edef\zf@smallcaps{\@tempa;}% \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 \def\@tempa{#1}% \ifx\@tempa\@empty \zf@PackageWarning{% '\XKV@tfam=\XKV@tkey' feature not supported for AAT font \fontname\zf@basefont}% \else \zf@make@aat@feature@string{#1}{#2}% \ifx\@tempa\@empty \zf@PackageWarning{% AAT feature '\XKV@tfam=\XKV@tkey' (#1,#2) not available\zf@nl in font \fontname\zf@basefont}% \else \zf@update@family{+#1,#2}% \zf@update@ff\@tempa \fi \fi \fi \ifzf@icu \edef\@tempa{#3}% \ifx\@tempa\@empty \zf@PackageWarning{% '\XKV@tfam=\XKV@tkey' feature not supported for ICU font \fontname\zf@basefont}% \else \expandafter\zf@check@ot@feat\expandafter{\@tempa}% \if@tempswa \zf@update@family{#3}% \zf@update@ff{#3}% \else \zf@PackageWarning{% OpenType feature '\XKV@tfam=\XKV@tkey' (#3) not available\zf@nl for font \fontname\zf@basefont, \zf@nl with script '\zf@script@name',\zf@nl and language '\zf@language@name'.}% \fi \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\@tempa{\XeTeXfeaturename\zf@basefont #1}% \unless\ifx\@tempa\@empty \ifnum\XeTeXisexclusivefeature\zf@basefont #1>0 \edef\@tempb{\XeTeXselectorname\zf@basefont #1 #2}% \else \unless\ifodd #2 \edef\@tempb{\XeTeXselectorname\zf@basefont #1 #2}% \else \edef\@tempb{\XeTeXselectorname\zf@basefont #1 \numexpr#2-1\relax}% \unless\ifx\@tempb\@empty \edef\@tempb{!\@tempb}% \fi \fi \fi \unless\ifx\@tempb\@empty \edef\@tempa{\@tempa=\@tempb}% \else \let\@tempa\@empty \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]{prepreparse}{ExternalLocation}[]{% \zf@icutrue \zf@nobftrue\zf@noittrue \gdef\zf@font@wrap##1{[#1##1]}} \define@choicekey[zf]{preparse}{Renderer}{AAT,ICU}{% \edef\zf@suffix{\zf@suffix/#1}% \font\zf@basefont="\zf@font@wrap\zf@fontname\zf@suffix" at \f@size pt \edef\zf@family@long{\zf@family@long +rend:#1}} \define@key[zf]{preparse}{Script}{% \zf@icutrue \edef\zf@suffix{\zf@suffix/ICU}% \font\zf@basefont="\zf@font@wrap\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}{% \zf@icutrue \edef\zf@suffix{\zf@suffix/ICU}% \font\zf@basefont="\zf@font@wrap\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]{preparse}{UprightFont}{% \edef\@tempa{#1}% \zf@partial@fontname#1\@nil=\zf@up \edef\zf@family@long{\zf@family@long up:#1}} \define@key[zf]{preparse}{BoldFont}{% \edef\@tempa{#1}% \ifx\@tempa\@empty \zf@nobftrue \edef\zf@family@long{\zf@family@long nobf}% \else \zf@nobffalse \zf@partial@fontname#1\@nil=\zf@bf \edef\zf@family@long{\zf@family@long bf:#1}% \fi} \define@key[zf]{preparse}{ItalicFont}{% \edef\@tempa{#1}% \ifx\@tempa\@empty \zf@noittrue \edef\zf@family@long{\zf@family@long noit}% \else \zf@noitfalse \zf@partial@fontname#1\@nil=\zf@it \edef\zf@family@long{\zf@family@long it:#1}% \fi} \define@key[zf]{preparse}{BoldItalicFont}{% \zf@partial@fontname#1\@nil=\zf@bfit \edef\zf@family@long{\zf@family@long bfit:#1}} \define@key[zf]{options}{SmallCapsFont}{% \edef\@tempa{#1}% \ifx\@tempa\@empty \zf@nosctrue \edef\zf@family@long{\zf@family@long nosc}% \else \zf@noscfalse \zf@partial@fontname#1\@nil=\zf@sc \zf@update@family{sc:\zap@space #1 \@empty}% \fi} \def\zf@partial@fontname#1#2\@nil=#3{% \if#1*\relax \edef#3{\zf@fontname#2}% \else \edef#3{#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@key[zf]{preparse}{SizeFeatures}{% \unless\ifzf@firsttime\def\zf@size@feat{#1}\fi \zf@update@family{sizefeat:\zap@space #1 \@empty}} \define@key[zf]{sizing}{Size}{\def\zf@size{#1}} \define@key[zf]{sizing}{Font}{\def\zf@size@fnt{#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 \setlength\@tempdima{#1\fontdimen2\zf@basefont}% \@tempdimb\@tempdima \@tempdimc\@tempdima \else \setlength\@tempdima{#1\fontdimen2\zf@basefont}% \setlength\@tempdimb{#2\fontdimen3\zf@basefont}% \setlength\@tempdimc{#3\fontdimen4\zf@basefont}% \fi \edef\zf@adjust{\zf@adjust \fontdimen2\font\the\@tempdima \fontdimen3\font\the\@tempdimb \fontdimen4\font\the\@tempdimc}} \define@key[zf]{options}{PunctuationSpace}{% \zf@update@family{+punctspace:#1}% \setlength\@tempdima{#1\fontdimen7\zf@basefont}% \edef\zf@adjust{\zf@adjust\fontdimen7\font\the\@tempdima}} \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 {\zf@basefont\expandafter\ifnum\expandafter\XeTeXcharglyph \expandafter`#1 > 0 \g@addto@macro\zf@adjust{% {\expandafter\hyphenchar\expandafter \font\expandafter`#1}}% \else \zf@PackageError {\fontname\zf@basefont\space doesn't appear to have the glyph corresponding to #1.} {You can't hyphenate with a character that's not available!} \fi}% \else {\zf@basefont\ifnum\XeTeXcharglyph#1 > 0 \g@addto@macro\zf@adjust{\hyphenchar\font#1\relax}% \else \zf@PackageError {\fontname\zf@basefont\space doesn't appear to have the glyph corresponding to #1.} {You can't hyphenate with a character that's not available!}% \fi}% \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} \define@key[zf]{options}{FakeSlant}{% \zf@update@family{+slant:#1}% \zf@update@ff{slant=#1}} \define@key[zf]{options}{FakeStretch}{% \zf@update@family{+extend:#1}% \zf@update@ff{extend=#1}} \define@key[zf]{options}{FakeBold}{% \zf@update@family{+embolden:#1}% \zf@update@ff{embolden=#1}} \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}{Alternate} {} {} {+calt} \zf@define@feature@option{Contextuals}{NoAlternate} {} {} {-calt} \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}{Ordinal} {10}{3}{+ordn} \zf@define@feature@option{VerticalPosition}{Numerator} {} {} {+numr} \zf@define@feature@option{VerticalPosition}{Denominator}{} {} {+dnom} \zf@define@feature@option{VerticalPosition}{ScientificInferior}{}{}{+sinf} \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}[0]{% \setkeys*[zf@feat]{Alternate}{#1}% \unless\ifx\XKV@rm\@empty \def\XKV@tfam{Alternate}% \zf@make@feature{17}{#1}{+salt=#1}% \fi} \define@key[zf]{options}{Variant}{% \setkeys*[zf@feat]{Variant}{#1}% \unless\ifx\XKV@rm\@empty \def\XKV@tfam{Variant}% \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}% \zf@update@family{+vert}% \zf@update@ff{vertical}% \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{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} \define@key[zf@feat]{Lang}{Turkish}[]{% \zf@check@ot@lang{TRK}% \if@tempswa \c@zf@language\@tempcnta\relax \xdef\zf@language@name{Turkish}% \xdef\zf@family@long{\zf@family@long+lang=Turkish}% \xdef\zf@pre@ff{\zf@pre@ff language=TRK,}% \else \zf@check@ot@lang{TUR}% \if@tempswa \c@zf@language\@tempcnta\relax \xdef\zf@language@name{Turkish}% \xdef\zf@family@long{\zf@family@long+lang=Turkish}% \xdef\zf@pre@ff{\zf@pre@ff language=TUR,}% \else \zf@PackageWarning{Language '#1' not available\zf@nl for font \fontname\zf@basefont\zf@nl with script '\zf@script@name'.}% \fi \fi} \define@key[zf]{options}{RawFeature}{% \zf@update@family{+Raw:#1}% \zf@update@ff{#1}} \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} \@ifpackageloaded{euler}{\zf@package@euler@loadedtrue} {\zf@package@euler@loadedfalse} \def\zf@math{% \let\zf@font@warning\@font@warning \let\@font@warning\@font@info \@ifpackageloaded{euler}{% \ifzf@package@euler@loaded \zf@math@eulertrue \else \zf@PackageError{The euler package must be loaded BEFORE fontspec} {fontspec only overwrites euler's attempt to ^^J define the maths text fonts if fontspec is ^^J loaded after euler. Type to proceed ^^J 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} \def\zf@math@maybe{% \@ifpackageloaded{anttor}{% \ifx\define@antt@mathversions a\@zf@mathfalse\fi}{} \@ifpackageloaded{arev}{\@zf@mathfalse}{} \@ifpackageloaded{eulervm}{\@zf@mathfalse}{} \@ifpackageloaded{mathdesign}{\@zf@mathfalse}{} \@ifpackageloaded{concmath}{\@zf@mathfalse}{} \@ifpackageloaded{cmbright}{\@zf@mathfalse}{} \@ifpackageloaded{mathesf}{\@zf@mathfalse}{} \@ifpackageloaded{gfsartemisia}{\@zf@mathfalse}{} \@ifpackageloaded{gfsneohellenic}{\@zf@mathfalse}{} \@ifpackageloaded{iwona}{% \ifx\define@iwona@mathversions a\@zf@mathfalse\fi}{} \@ifpackageloaded{kpfonts}{\@zf@mathfalse}{} \@ifpackageloaded{kmath}{\@zf@mathfalse}{} \@ifpackageloaded{kurier}{% \ifx\define@kurier@mathversions a\@zf@mathfalse\fi}{} \@ifpackageloaded{fouriernc}{\@zf@mathfalse}{} \@ifpackageloaded{fourier}{\@zf@mathfalse}{} \@ifpackageloaded{mathpazo}{\@zf@mathfalse}{} \@ifpackageloaded{mathptmx}{\@zf@mathfalse}{} \@ifpackageloaded{MinionPro}{\@zf@mathfalse}{} \@ifpackageloaded{unicode-math}{\@zf@mathfalse}{} \if@zf@math \zf@PackageInfo{% Adjusting the maths setup (use [no-math] to avoid this).} \zf@math \fi} \AtBeginDocument{\zf@math@maybe} \if@zf@configfile \InputIfFileExists{fontspec.cfg} {\typeout{fontspec.cfg loaded.}} {\typeout{No fontspec.cfg file found; no configuration loaded.}} \fi %% %% Copyright 2004--2008 by Will Robertson %% %% Distributable under the LaTeX Project Public License, %% version 1.3c or higher (your choice). The latest version of %% this license is at: http://www.latex-project.org/lppl.txt %% %% This work is "maintained" (as per LPPL maintenance status) %% by Will Robertson. %% %% This work consists of this file fontspec.dtx %% and the derived files fontspec.sty, %% fontspec.cfg, %% fontspec.ins, %% fontspec-example.ltx, %% and fontspec.pdf. %% %% %% End of file `fontspec.sty'.