From 446616af78c68a47b3851065c2121bab5a96ad53 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 19 Jun 2006 22:49:18 +0000 Subject: fontspec update, and put under xetex git-svn-id: svn://tug.org/texlive/trunk@1706 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/xetex/fontspec/fontspec.cfg | 25 + Master/texmf-dist/tex/xetex/fontspec/fontspec.sty | 1028 +++++++++++++++++++++ 2 files changed, 1053 insertions(+) create mode 100644 Master/texmf-dist/tex/xetex/fontspec/fontspec.cfg create mode 100644 Master/texmf-dist/tex/xetex/fontspec/fontspec.sty (limited to 'Master/texmf-dist/tex/xetex') 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 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 +%% +%% 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'. -- cgit v1.2.3