summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/fontspec
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-12 23:56:01 +0000
committerKarl Berry <karl@freefriends.org>2006-01-12 23:56:01 +0000
commita189ff68b875c42249849037699ad941213a2301 (patch)
treed64e006b8e54d23bda44f2d1c70e9899399e288f /Master/texmf-dist/tex/latex/fontspec
parentc6a0220f05b5bea1c3b7f16b05ecbd7975f32cf6 (diff)
fontspec
git-svn-id: svn://tug.org/texlive/trunk@931 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/fontspec')
-rw-r--r--Master/texmf-dist/tex/latex/fontspec/fontspec.sty1070
1 files changed, 1070 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/fontspec/fontspec.sty b/Master/texmf-dist/tex/latex/fontspec/fontspec.sty
new file mode 100644
index 00000000000..2436f15daca
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/fontspec/fontspec.sty
@@ -0,0 +1,1070 @@
+%%
+%% 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, 2005 Will Robertson
+%%
+%% License information appended.
+%%
+%%
+\ProvidesPackage{fontspec}[2005/07/15 v1.8a Advanced font selection for XeLaTeX]
+\expandafter\ifx\csname XeTeXversion\endcsname\relax
+ \@latex@error{^^J
+ *************************************************^^J
+ *** Sorry! ^^J
+ *** The fontspec package only works with XeTeX. ^^J
+ *************************************************}
+\fi
+\def\zf@enc{U}
+\renewcommand\encodingdefault{\zf@enc}
+\RequirePackage{keyval}
+\newcommand*\fontspec[2][]{%
+ \zf@fontspec{#1}{#2}%
+ \fontfamily\zf@family\selectfont}
+\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\zf@tempinst{\noexpand\fontfamily{\zf@family}\noexpand\selectfont}%
+ \let#1\zf@tempinst}
+\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{\csname\f@family\endcsname}%
+ \fontspec
+ [\expandafter\@firstoftwo\zf@thisinfo, #1]%
+ {\expandafter\@secondoftwo\zf@thisinfo}%
+ \let\zf@default@options\zf@default@options@old}
+\let\addfontfeature\addfontfeatures
+\newcounter{newff}
+\newcommand*\newfontfeature[2]{%
+ \stepcounter{newff}%
+ \expandafter\edef\csname +zf-#1\endcsname{+zf-\thenewff}%
+ \define@key{zf}{#1}[]{%
+ \zf@update@family{\csname +zf-#1\endcsname}%
+ \zf@update@ff{#2}}}
+\newcommand*\newfeaturecode[3]{%
+ \define@key{zf}{#1}[]{\zf@make@feature{#2}{#3}{}}}
+\newcommand*\zf@fontspec[2]{%
+ \edef\zf@options{#1}%
+ \edef\zf@macname{#2}%
+ \edef\zf@family{\zap@space #2 \@empty}%
+ \zf@set@font@type{#2}%
+ \zf@firsttimetrue
+ \zf@get@feature@requests
+ \zf@firsttimefalse
+ \expandafter\ifx\csname\zf@family\endcsname\relax
+ \wlog{fontspec: Defining font family for "#2"
+ with options [\zf@current@options]}%
+ \edef\zf@info{{\zf@current@options}{#2}}%
+ \expandafter\let\csname\zf@family\endcsname\zf@info
+ \DeclareFontFamily{\zf@enc}{\zf@family}{}%
+ \zf@make@font@shapes{#2}{\mddefault}{\updefault}%
+ \let\zf@options@old\zf@options
+ \def\zf@options{\zf@options@old,\zf@bf@options}%
+ \ifx\zf@bf\@empty
+ \zf@make@font@shapes[#2]{#2/B}{\bfdefault}{\updefault}%
+ \else
+ \zf@make@font@shapes\zf@bf\bfdefault\updefault
+ \fi
+ \let\zf@options\zf@options@old
+ \let\zf@options@old\zf@options
+ \def\zf@options{\zf@options@old,\zf@it@options}%
+ \ifx\zf@it\@empty
+ \zf@make@font@shapes[#2]{#2/I}{\mddefault}{\itdefault}%
+ \else
+ \zf@make@font@shapes\zf@it\mddefault\itdefault
+ \fi
+ \let\zf@options\zf@options@old
+ \let\zf@options@old\zf@options
+ \def\zf@options{\zf@options@old,\zf@bfit@options}%
+ \ifx\zf@bfit\@empty
+ \ifx\zf@bf\@empty
+ \ifx\zf@it\@empty
+ \zf@make@font@shapes[#2]{#2/BI}{\bfdefault}{\itdefault}%
+ \else
+ \zf@make@font@shapes[\zf@it]{\zf@it/B}{\bfdefault}{\itdefault}%
+ \fi
+ \else
+ \zf@make@font@shapes[\zf@bf]{\zf@bf/I}{\bfdefault}{\itdefault}%
+ \fi
+ \else
+ \zf@make@font@shapes\zf@bfit\bfdefault\itdefault
+ \fi
+ \let\zf@options\zf@options@old
+ \fi}
+\newcommand*\zf@set@font@type[1]{%
+ \font\zf@testfont = "#1" at 10pt
+ \zf@aatfalse \zf@opentypefalse \zf@mmfalse
+ \expandafter\ifnum\XeTeXcountfeatures\zf@testfont > 0
+ \zf@aattrue
+ \fi
+ \expandafter\ifnum\XeTeXOTcountscripts\zf@testfont > 0
+ \zf@opentypetrue
+ \fi
+ \expandafter\ifnum\XeTeXcountvariations\zf@testfont > 0
+ \zf@mmtrue
+ \fi}
+\newif\ifzf@aat \newif\ifzf@opentype \newif\ifzf@mm
+\begingroup
+ \nfss@catcodes
+ \globaldefs=1
+ \newcommand*\zf@make@font@shapes[4][]{%
+ \ifEqFonts{#1}{#2}\then\else
+ \edef\zf@macname{#2}%
+ \zf@get@feature@requests
+ \ifx\zf@scale\@empty
+ \let\zf@scale@str\@empty
+ \else
+ \edef\zf@scale@str{s*[\zf@scale]}%
+ \fi
+ \DeclareFontShape{\zf@enc}{\zf@family}{#3}{#4}%
+ {<-> \zf@scale@str "#2\zf@suffix:\zf@ff"}{}%
+ \zf@test@smallcaps
+ \ifx\zf@smallcaps\@empty\else
+ \ifx #4\updefault
+ \let\zf@scshape\scdefault
+ \fi
+ \ifx #4\itdefault
+ \let\zf@scshape\sidefault
+ \fi
+ \DeclareFontShape
+ {\zf@enc}{\zf@family}{#3}{\zf@scshape}%
+ {<-> \zf@scale@str "#2\zf@suffix:\zf@ff\zf@smallcaps"}{}%
+ \fi
+ \fi}
+\endgroup
+\newcommand*{\zf@update@family}[1]{%
+ \ifzf@firsttime
+ \g@addto@macro\zf@family{#1}%
+ \fi}
+\newif\ifzf@firsttime
+\newcommand*\zf@get@feature@requests{%
+ \ifzf@firsttime
+ \let\zf@scale \@empty
+ \let\zf@suffix \@empty
+ \let\zf@bf \@empty
+ \let\zf@it \@empty
+ \let\zf@bfit \@empty
+ \let\zf@bf@options \@empty
+ \let\zf@it@options \@empty
+ \let\zf@bfit@options\@empty
+ \fi
+ \let\zf@ff\@empty
+ \ifx\zf@default@options\@empty
+ \let\zf@current@options\zf@options
+ \else
+ \edef\zf@current@options{\zf@default@options,\zf@options}%
+ \fi
+ \edef\zf@process@options
+ {\noexpand\setkeys{zf}{\zf@current@options}}%
+ \zf@process@options}
+\newcommand*\zf@test@smallcaps{%
+ \let\zf@smallcaps\@empty
+ \ifzf@aat
+ \zf@make@aat@feature@string{3}{3}%
+ \ifx\zf@thisfontfeature\@empty\else
+ \edef\zf@smallcaps{\zf@thisfontfeature;}%
+ \fi
+ \fi
+ \ifzf@opentype
+ \font\zf@testfont="\zf@macname" at 10pt
+ \count255 = \XeTeXOTcountscripts\zf@testfont
+ \ifnum\count255 > 0
+ \count255 = 0
+ \zf@featurecount = \XeTeXOTcountfeatures\zf@testfont "6C61746E "0
+ \loop\ifnum\count255 < \zf@featurecount
+ \ifnum\XeTeXOTfeaturetag\zf@testfont "6C61746E "0
+ \count255 = "736D6370 % 'smcp'
+ \edef\zf@smallcaps{+smcp,}%
+ \count255 = \zf@featurecount
+ \else
+ \advance\count255 by 1
+ \fi
+ \repeat
+ \fi
+ \fi}
+\newcount\zf@featurecount
+\newcommand*\zf@update@ff[1]{%
+ \begingroup
+ \def\zf@feature@separator{;}%
+ \ifzf@opentype
+ \def\zf@feature@separator{,}%
+ \fi
+ \let\@tempa\zf@ff
+ \xdef\zf@ff{\@tempa #1\zf@feature@separator}%
+ \endgroup}
+\newcommand*\zf@make@feature[3]{%
+ \ifzf@aat
+ \zf@make@aat@feature@string{#1}{#2}%
+ \ifx\zf@thisfontfeature\@empty\else
+ \zf@update@family{+#1,#2}%
+ \zf@update@ff\zf@thisfontfeature
+ \fi
+ \fi
+ \ifzf@opentype
+ \zf@update@family{#3}%
+ \zf@update@ff{#3}%
+ \fi}
+\newcommand*\zf@define@font@feature[1]{%
+ \define@key{zf}{#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*\aliasfeature[2]{%
+ \define@key{zf}{#2}{{\setkeys{zf@feat@#1}{##1}}}}
+\newcommand*\zf@make@aat@feature@string[2]{%
+ \font\zf@fontone="\zf@macname" at 10pt
+ \edef\zf@this@featurename{\XeTeXfeaturename\zf@fontone #1}%
+ \ifx\zf@this@featurename\@empty
+ \let\zf@thisfontfeature\@empty
+ \else
+ \edef\zf@this@selectionname{\XeTeXselectorname\zf@fontone #1 #2}%
+ \ifx\zf@this@selectionname\@empty
+ \let\zf@thisfontfeature\@empty
+ \else
+ \edef\zf@thisfontfeature{%
+ \ifnum\XeTeXisexclusivefeature\zf@fontone #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}
+\let\then\iftrue
+\def\ifEqFonts#1#2\then{%
+ \ifx#1\@empty\else
+ \font\zf@fontone = "#1" at 10pt
+ \edef\@tempa{\fontname\zf@fontone}%
+ \fi
+ \font\zf@fonttwo = "#2" at 10pt
+ \edef\@tempb{\fontname\zf@fonttwo}%
+ \ifx\@tempa\@tempb}
+\define@key{zf}{Bold}{%
+ \def\zf@bf{#1}%
+ \zf@update@family{bf:\zap@space #1 \@empty}}
+\define@key{zf}{Italic}{%
+ \def\zf@it{#1}%
+ \zf@update@family{it:\zap@space #1 \@empty}}
+\define@key{zf}{BoldItalic}{%
+ \def\zf@bfit{#1}%
+ \zf@update@family{bfit:\zap@space #1 \@empty}}
+\define@key{zf}{BoldFont}{%
+ \def\zf@bf{#1}%
+ \zf@update@family{bf:\zap@space #1 \@empty}}
+\define@key{zf}{ItalicFont}{%
+ \def\zf@it{#1}%
+ \zf@update@family{it:\zap@space #1 \@empty}}
+\define@key{zf}{BoldItalicFont}{%
+ \def\zf@bfit{#1}%
+ \zf@update@family{bfit:\zap@space #1 \@empty}}
+
+\define@key{zf}{BoldFeatures}{%
+ \def\zf@bf@options{#1}%
+ \zf@update@family{bffeat:\zap@space #1 \@empty}}
+\define@key{zf}{ItalicFeatures}{%
+ \def\zf@it@options{#1}%
+ \zf@update@family{itfeat:\zap@space #1 \@empty}}
+\define@key{zf}{BoldItalicFeatures}{%
+ \def\zf@bfit@options{#1}%
+ \zf@update@family{bfitfeat:\zap@space #1 \@empty}}
+\define@key{zf}{Scale}{%
+ \zf@update@family{+scale:#1}%
+ \edef\zf@scale{#1}}
+\define@key{zf}{Colour}{%
+ \zf@update@family{+col:#1}%
+ \zf@update@ff{color=#1}}
+\define@key{zf}{Color}{%
+ \zf@update@family{+col:#1}%
+ \zf@update@ff{color=#1}}
+\define@key{zf}{Mapping}{%
+ \zf@update@family{+map:#1}%
+ \zf@update@ff{mapping=#1}}
+\define@key{zf}{Weight}{%
+ \zf@update@family{+weight:#1}%
+ \zf@update@ff{weight=#1}}
+\define@key{zf}{Width}{%
+ \zf@update@family{+width:#1}%
+ \zf@update@ff{width=#1}}
+\define@key{zf}{OpticalSize}{%
+ \ifzf@opentype
+ \g@addto@macro\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@opentype\else
+ \ifzf@mm\else
+ \ifzf@firsttime
+ \PackageWarning{fontspec}{\zf@macname doesn't appear to have an Optical Size axis}
+ \fi
+ \fi
+ \fi}
+\define@key{zf}{Script}{\ifzf@opentype\bgroup\setkeys{zf@scpt}{#1}\egroup\fi}
+\newcommand*\zf@make@scpt@feature[2]{%
+ \define@key{zf@scpt}{#1}[]{%
+ \zf@update@family{+scpt:#2}%
+ \zf@update@ff{script=#2}}}
+\zf@make@scpt@feature{Arabic}{arab}
+\zf@make@scpt@feature{Armenian}{armn}
+\zf@make@scpt@feature{Balinese}{bali}
+\zf@make@scpt@feature{Bengali}{beng}
+\zf@make@scpt@feature{Bopomofo}{bopo}
+\zf@make@scpt@feature{Braille}{brai}
+\zf@make@scpt@feature{Buginese}{bugi}
+\zf@make@scpt@feature{Buhid}{buhd}
+\zf@make@scpt@feature{Byzantine Music}{byzm}
+\zf@make@scpt@feature{Canadian Syllabics}{cans}
+\zf@make@scpt@feature{Cherokee}{cher}
+\zf@make@scpt@feature{CJK}{hani}
+\zf@make@scpt@feature{CJK Ideographic}{hani}
+\zf@make@scpt@feature{Coptic}{copt}
+\zf@make@scpt@feature{Cypriot Syllabary}{cprt}
+\zf@make@scpt@feature{Cyrillic}{cyrl}
+\zf@make@scpt@feature{Default}{DFLT}
+\zf@make@scpt@feature{Deseret}{dsrt}
+\zf@make@scpt@feature{Devanagari}{deva}
+\zf@make@scpt@feature{Ethiopic}{ethi}
+\zf@make@scpt@feature{Georgian}{geor}
+\zf@make@scpt@feature{Glagolitic}{glag}
+\zf@make@scpt@feature{Gothic}{goth}
+\zf@make@scpt@feature{Greek}{grek}
+\zf@make@scpt@feature{Gujarati}{gujr}
+\zf@make@scpt@feature{Gurmukhi}{guru}
+\zf@make@scpt@feature{Hangul Jamo}{jamo}
+\zf@make@scpt@feature{Hangul}{hang}
+\zf@make@scpt@feature{Hanunoo}{hano}
+\zf@make@scpt@feature{Hebrew}{hebr}
+\zf@make@scpt@feature{Hiragana and Katakana}{kana}
+\zf@make@scpt@feature{Kana}{kana}
+\zf@make@scpt@feature{Javanese}{java}
+\zf@make@scpt@feature{Kannada}{knda}
+\zf@make@scpt@feature{Kharosthi}{khar}
+\zf@make@scpt@feature{Khmer}{khmr}
+\zf@make@scpt@feature{Lao}{lao }
+\zf@make@scpt@feature{Latin}{latn}
+\zf@make@scpt@feature{Limbu}{limb}
+\zf@make@scpt@feature{Linear B}{linb}
+\zf@make@scpt@feature{Malayalam}{mlym}
+\zf@make@scpt@feature{Math}{math}
+\zf@make@scpt@feature{Maths}{math}
+\zf@make@scpt@feature{Mongolian}{mong}
+\zf@make@scpt@feature{Musical Symbols}{musc}
+\zf@make@scpt@feature{Myanmar}{mymr}
+\zf@make@scpt@feature{N'ko}{nko }
+\zf@make@scpt@feature{Ogham}{ogam}
+\zf@make@scpt@feature{Old Italic}{ital}
+\zf@make@scpt@feature{Old Persian Cuneiform}{xpeo}
+\zf@make@scpt@feature{Oriya}{orya}
+\zf@make@scpt@feature{Osmanya}{osma}
+\zf@make@scpt@feature{Phags-pa}{phag}
+\zf@make@scpt@feature{Phoenician}{phnx}
+\zf@make@scpt@feature{Runic}{runr}
+\zf@make@scpt@feature{Shavian}{shaw}
+\zf@make@scpt@feature{Sinhala}{sinh}
+\zf@make@scpt@feature{Sumero-Akkadian Cuneiform}{xsux}
+\zf@make@scpt@feature{Syloti Nagri}{sylo}
+\zf@make@scpt@feature{Syriac}{syrc}
+\zf@make@scpt@feature{Tagalog}{tglg}
+\zf@make@scpt@feature{Tagbanwa}{tagb}
+\zf@make@scpt@feature{Tai Le}{tale}
+\zf@make@scpt@feature{Tai Lu}{talu}
+\zf@make@scpt@feature{Tamil}{taml}
+\zf@make@scpt@feature{Telugu}{telu}
+\zf@make@scpt@feature{Thaana}{thaa}
+\zf@make@scpt@feature{Thai}{thai}
+\zf@make@scpt@feature{Tibetan}{tibt}
+\zf@make@scpt@feature{Tifinagh}{tfng}
+\zf@make@scpt@feature{Ugaritic Cuneiform}{ugar}
+\zf@make@scpt@feature{Yi}{yi }
+
+\define@key{zf}{Language}{\ifzf@opentype\bgroup\setkeys{zf@lang}{#1}\egroup\fi}
+\newcommand*\zf@make@lang@feature[2]{%
+ \define@key{zf@lang}{#1}[]{%
+ \zf@update@family{+lang:#2}%
+ \zf@update@ff{language=#2}}}
+\zf@make@lang@feature{Abaza}{ABA}
+\zf@make@lang@feature{Abkhazian}{ABK}
+\zf@make@lang@feature{Adyghe}{ADY}
+\zf@make@lang@feature{Afrikaans}{AFK}
+\zf@make@lang@feature{Afar}{AFR}
+\zf@make@lang@feature{Agaw}{AGW}
+\zf@make@lang@feature{Altai}{ALT}
+\zf@make@lang@feature{Amharic}{AMH}
+\zf@make@lang@feature{Arabic}{ARA}
+\zf@make@lang@feature{Aari}{ARI}
+\zf@make@lang@feature{Arakanese}{ARK}
+\zf@make@lang@feature{Assamese}{ASM}
+\zf@make@lang@feature{Athapaskan}{ATH}
+\zf@make@lang@feature{Avar}{AVR}
+\zf@make@lang@feature{Awadhi}{AWA}
+\zf@make@lang@feature{Aymara}{AYM}
+\zf@make@lang@feature{Azeri}{AZE}
+\zf@make@lang@feature{Badaga}{BAD}
+\zf@make@lang@feature{Baghelkhandi}{BAG}
+\zf@make@lang@feature{Balkar}{BAL}
+\zf@make@lang@feature{Baule}{BAU}
+\zf@make@lang@feature{Berber}{BBR}
+\zf@make@lang@feature{Bench}{BCH}
+\zf@make@lang@feature{Bible Cree}{BCR}
+\zf@make@lang@feature{Belarussian}{BEL}
+\zf@make@lang@feature{Bemba}{BEM}
+\zf@make@lang@feature{Bengali}{BEN}
+\zf@make@lang@feature{Bulgarian}{BGR}
+\zf@make@lang@feature{Bhili}{BHI}
+\zf@make@lang@feature{Bhojpuri}{BHO}
+\zf@make@lang@feature{Bikol}{BIK}
+\zf@make@lang@feature{Bilen}{BIL}
+\zf@make@lang@feature{Blackfoot}{BKF}
+\zf@make@lang@feature{Balochi}{BLI}
+\zf@make@lang@feature{Balante}{BLN}
+\zf@make@lang@feature{Balti}{BLT}
+\zf@make@lang@feature{Bambara}{BMB}
+\zf@make@lang@feature{Bamileke}{BML}
+\zf@make@lang@feature{Breton}{BRE}
+\zf@make@lang@feature{Brahui}{BRH}
+\zf@make@lang@feature{Braj Bhasha}{BRI}
+\zf@make@lang@feature{Burmese}{BRM}
+\zf@make@lang@feature{Bashkir}{BSH}
+\zf@make@lang@feature{Beti}{BTI}
+\zf@make@lang@feature{Catalan}{CAT}
+\zf@make@lang@feature{Cebuano}{CEB}
+\zf@make@lang@feature{Chechen}{CHE}
+\zf@make@lang@feature{Chaha Gurage}{CHG}
+\zf@make@lang@feature{Chattisgarhi}{CHH}
+\zf@make@lang@feature{Chichewa}{CHI}
+\zf@make@lang@feature{Chukchi}{CHK}
+\zf@make@lang@feature{Chipewyan}{CHP}
+\zf@make@lang@feature{Cherokee}{CHR}
+\zf@make@lang@feature{Chuvash}{CHU}
+\zf@make@lang@feature{Comorian}{CMR}
+\zf@make@lang@feature{Coptic}{COP}
+\zf@make@lang@feature{Cree}{CRE}
+\zf@make@lang@feature{Carrier}{CRR}
+\zf@make@lang@feature{Crimean Tatar}{CRT}
+\zf@make@lang@feature{Church Slavonic}{CSL}
+\zf@make@lang@feature{Czech}{CSY}
+\zf@make@lang@feature{Danish}{DAN}
+\zf@make@lang@feature{Dargwa}{DAR}
+\zf@make@lang@feature{Woods Cree}{DCR}
+\zf@make@lang@feature{German}{DEU}
+\zf@make@lang@feature{Default}{DFLT}
+\zf@make@lang@feature{Dogri}{DGR}
+\zf@make@lang@feature{Divehi}{DIV}
+\zf@make@lang@feature{Djerma}{DJR}
+\zf@make@lang@feature{Dangme}{DNG}
+\zf@make@lang@feature{Dinka}{DNK}
+\zf@make@lang@feature{Dungan}{DUN}
+\zf@make@lang@feature{Dzongkha}{DZN}
+\zf@make@lang@feature{Ebira}{EBI}
+\zf@make@lang@feature{Eastern Cree}{ECR}
+\zf@make@lang@feature{Edo}{EDO}
+\zf@make@lang@feature{Efik}{EFI}
+\zf@make@lang@feature{Greek}{ELL}
+\zf@make@lang@feature{English}{ENG}
+\zf@make@lang@feature{Erzya}{ERZ}
+\zf@make@lang@feature{Spanish}{ESP}
+\zf@make@lang@feature{Estonian}{ETI}
+\zf@make@lang@feature{Basque}{EUQ}
+\zf@make@lang@feature{Evenki}{EVK}
+\zf@make@lang@feature{Even}{EVN}
+\zf@make@lang@feature{Ewe}{EWE}
+\zf@make@lang@feature{French Antillean}{FAN}
+\zf@make@lang@feature{Farsi}{FAR}
+\zf@make@lang@feature{Finnish}{FIN}
+\zf@make@lang@feature{Fijian}{FJI}
+\zf@make@lang@feature{Flemish}{FLE}
+\zf@make@lang@feature{Forest Nenets}{FNE}
+\zf@make@lang@feature{Fon}{FON}
+\zf@make@lang@feature{Faroese}{FOS}
+\zf@make@lang@feature{French}{FRA}
+\zf@make@lang@feature{Frisian}{FRI}
+\zf@make@lang@feature{Friulian}{FRL}
+\zf@make@lang@feature{Futa}{FTA}
+\zf@make@lang@feature{Fulani}{FUL}
+\zf@make@lang@feature{Ga}{GAD}
+\zf@make@lang@feature{Gaelic}{GAE}
+\zf@make@lang@feature{Gagauz}{GAG}
+\zf@make@lang@feature{Galician}{GAL}
+\zf@make@lang@feature{Garshuni}{GAR}
+\zf@make@lang@feature{Garhwali}{GAW}
+\zf@make@lang@feature{Ge'ez}{GEZ}
+\zf@make@lang@feature{Gilyak}{GIL}
+\zf@make@lang@feature{Gumuz}{GMZ}
+\zf@make@lang@feature{Gondi}{GON}
+\zf@make@lang@feature{Greenlandic}{GRN}
+\zf@make@lang@feature{Garo}{GRO}
+\zf@make@lang@feature{Guarani}{GUA}
+\zf@make@lang@feature{Gujarati}{GUJ}
+\zf@make@lang@feature{Haitian}{HAI}
+\zf@make@lang@feature{Halam}{HAL}
+\zf@make@lang@feature{Harauti}{HAR}
+\zf@make@lang@feature{Hausa}{HAU}
+\zf@make@lang@feature{Hawaiin}{HAW}
+\zf@make@lang@feature{Hammer-Banna}{HBN}
+\zf@make@lang@feature{Hiligaynon}{HIL}
+\zf@make@lang@feature{Hindi}{HIN}
+\zf@make@lang@feature{High Mari}{HMA}
+\zf@make@lang@feature{Hindko}{HND}
+\zf@make@lang@feature{Ho}{HO}
+\zf@make@lang@feature{Harari}{HRI}
+\zf@make@lang@feature{Croatian}{HRV}
+\zf@make@lang@feature{Hungarian}{HUN}
+\zf@make@lang@feature{Armenian}{HYE}
+\zf@make@lang@feature{Igbo}{IBO}
+\zf@make@lang@feature{Ijo}{IJO}
+\zf@make@lang@feature{Ilokano}{ILO}
+\zf@make@lang@feature{Indonesian}{IND}
+\zf@make@lang@feature{Ingush}{ING}
+\zf@make@lang@feature{Inuktitut}{INU}
+\zf@make@lang@feature{Irish}{IRI}
+\zf@make@lang@feature{Irish Traditional}{IRT}
+\zf@make@lang@feature{Icelandic}{ISL}
+\zf@make@lang@feature{Inari Sami}{ISM}
+\zf@make@lang@feature{Italian}{ITA}
+\zf@make@lang@feature{Hebrew}{IWR}
+\zf@make@lang@feature{Javanese}{JAV}
+\zf@make@lang@feature{Yiddish}{JII}
+\zf@make@lang@feature{Japanese}{JAN}
+\zf@make@lang@feature{Judezmo}{JUD}
+\zf@make@lang@feature{Jula}{JUL}
+\zf@make@lang@feature{Kabardian}{KAB}
+\zf@make@lang@feature{Kachchi}{KAC}
+\zf@make@lang@feature{Kalenjin}{KAL}
+\zf@make@lang@feature{Kannada}{KAN}
+\zf@make@lang@feature{Karachay}{KAR}
+\zf@make@lang@feature{Georgian}{KAT}
+\zf@make@lang@feature{Kazakh}{KAZ}
+\zf@make@lang@feature{Kebena}{KEB}
+\zf@make@lang@feature{Khutsuri Georgian}{KGE}
+\zf@make@lang@feature{Khakass}{KHA}
+\zf@make@lang@feature{Khanty-Kazim}{KHK}
+\zf@make@lang@feature{Khmer}{KHM}
+\zf@make@lang@feature{Khanty-Shurishkar}{KHS}
+\zf@make@lang@feature{Khanty-Vakhi}{KHV}
+\zf@make@lang@feature{Khowar}{KHW}
+\zf@make@lang@feature{Kikuyu}{KIK}
+\zf@make@lang@feature{Kirghiz}{KIR}
+\zf@make@lang@feature{Kisii}{KIS}
+\zf@make@lang@feature{Kokni}{KKN}
+\zf@make@lang@feature{Kalmyk}{KLM}
+\zf@make@lang@feature{Kamba}{KMB}
+\zf@make@lang@feature{Kumaoni}{KMN}
+\zf@make@lang@feature{Komo}{KMO}
+\zf@make@lang@feature{Komso}{KMS}
+\zf@make@lang@feature{Kanuri}{KNR}
+\zf@make@lang@feature{Kodagu}{KOD}
+\zf@make@lang@feature{Korean Old Hangul}{KOH}
+\zf@make@lang@feature{Konkani}{KOK}
+\zf@make@lang@feature{Kikongo}{KON}
+\zf@make@lang@feature{Komi-Permyak}{KOP}
+\zf@make@lang@feature{Korean}{KOR}
+\zf@make@lang@feature{Komi-Zyrian}{KOZ}
+\zf@make@lang@feature{Kpelle}{KPL}
+\zf@make@lang@feature{Krio}{KRI}
+\zf@make@lang@feature{Karakalpak}{KRK}
+\zf@make@lang@feature{Karelian}{KRL}
+\zf@make@lang@feature{Karaim}{KRM}
+\zf@make@lang@feature{Karen}{KRN}
+\zf@make@lang@feature{Koorete}{KRT}
+\zf@make@lang@feature{Kashmiri}{KSH}
+\zf@make@lang@feature{Khasi}{KSI}
+\zf@make@lang@feature{Kildin Sami}{KSM}
+\zf@make@lang@feature{Kui}{KUI}
+\zf@make@lang@feature{Kulvi}{KUL}
+\zf@make@lang@feature{Kumyk}{KUM}
+\zf@make@lang@feature{Kurdish}{KUR}
+\zf@make@lang@feature{Kurukh}{KUU}
+\zf@make@lang@feature{Kuy}{KUY}
+\zf@make@lang@feature{Koryak}{KYK}
+\zf@make@lang@feature{Ladin}{LAD}
+\zf@make@lang@feature{Lahuli}{LAH}
+\zf@make@lang@feature{Lak}{LAK}
+\zf@make@lang@feature{Lambani}{LAM}
+\zf@make@lang@feature{Lao}{LAO}
+\zf@make@lang@feature{Latin}{LAT}
+\zf@make@lang@feature{Laz}{LAZ}
+\zf@make@lang@feature{L-Cree}{LCR}
+\zf@make@lang@feature{Ladakhi}{LDK}
+\zf@make@lang@feature{Lezgi}{LEZ}
+\zf@make@lang@feature{Lingala}{LIN}
+\zf@make@lang@feature{Low Mari}{LMA}
+\zf@make@lang@feature{Limbu}{LMB}
+\zf@make@lang@feature{Lomwe}{LMW}
+\zf@make@lang@feature{Lower Sorbian}{LSB}
+\zf@make@lang@feature{Lule Sami}{LSM}
+\zf@make@lang@feature{Lithuanian}{LTH}
+\zf@make@lang@feature{Luba}{LUB}
+\zf@make@lang@feature{Luganda}{LUG}
+\zf@make@lang@feature{Luhya}{LUH}
+\zf@make@lang@feature{Luo}{LUO}
+\zf@make@lang@feature{Latvian}{LVI}
+\zf@make@lang@feature{Majang}{MAJ}
+\zf@make@lang@feature{Makua}{MAK}
+\zf@make@lang@feature{Malayalam Traditional}{MAL}
+\zf@make@lang@feature{Mansi}{MAN}
+\zf@make@lang@feature{Marathi}{MAR}
+\zf@make@lang@feature{Marwari}{MAW}
+\zf@make@lang@feature{Mbundu}{MBN}
+\zf@make@lang@feature{Manchu}{MCH}
+\zf@make@lang@feature{Moose Cree}{MCR}
+\zf@make@lang@feature{Mende}{MDE}
+\zf@make@lang@feature{Me'en}{MEN}
+\zf@make@lang@feature{Mizo}{MIZ}
+\zf@make@lang@feature{Macedonian}{MKD}
+\zf@make@lang@feature{Male}{MLE}
+\zf@make@lang@feature{Malagasy}{MLG}
+\zf@make@lang@feature{Malinke}{MLN}
+\zf@make@lang@feature{Malayalam Reformed}{MLR}
+\zf@make@lang@feature{Malay}{MLY}
+\zf@make@lang@feature{Mandinka}{MND}
+\zf@make@lang@feature{Mongolian}{MNG}
+\zf@make@lang@feature{Manipuri}{MNI}
+\zf@make@lang@feature{Maninka}{MNK}
+\zf@make@lang@feature{Manx Gaelic}{MNX}
+\zf@make@lang@feature{Moksha}{MOK}
+\zf@make@lang@feature{Moldavian}{MOL}
+\zf@make@lang@feature{Mon}{MON}
+\zf@make@lang@feature{Moroccan}{MOR}
+\zf@make@lang@feature{Maori}{MRI}
+\zf@make@lang@feature{Maithili}{MTH}
+\zf@make@lang@feature{Maltese}{MTS}
+\zf@make@lang@feature{Mundari}{MUN}
+\zf@make@lang@feature{Naga-Assamese}{NAG}
+\zf@make@lang@feature{Nanai}{NAN}
+\zf@make@lang@feature{Naskapi}{NAS}
+\zf@make@lang@feature{N-Cree}{NCR}
+\zf@make@lang@feature{Ndebele}{NDB}
+\zf@make@lang@feature{Ndonga}{NDG}
+\zf@make@lang@feature{Nepali}{NEP}
+\zf@make@lang@feature{Newari}{NEW}
+\zf@make@lang@feature{Nagari}{NGR}
+\zf@make@lang@feature{Norway House Cree}{NHC}
+\zf@make@lang@feature{Nisi}{NIS}
+\zf@make@lang@feature{Niuean}{NIU}
+\zf@make@lang@feature{Nkole}{NKL}
+\zf@make@lang@feature{N'ko}{NKO}
+\zf@make@lang@feature{Dutch}{NLD}
+\zf@make@lang@feature{Nogai}{NOG}
+\zf@make@lang@feature{Norwegian}{NOR}
+\zf@make@lang@feature{Northern Sami}{NSM}
+\zf@make@lang@feature{Northern Tai}{NTA}
+\zf@make@lang@feature{Esperanto}{NTO}
+\zf@make@lang@feature{Nynorsk}{NYN}
+\zf@make@lang@feature{Oji-Cree}{OCR}
+\zf@make@lang@feature{Ojibway}{OJB}
+\zf@make@lang@feature{Oriya}{ORI}
+\zf@make@lang@feature{Oromo}{ORO}
+\zf@make@lang@feature{Ossetian}{OSS}
+\zf@make@lang@feature{Palestinian Aramaic}{PAA}
+\zf@make@lang@feature{Pali}{PAL}
+\zf@make@lang@feature{Punjabi}{PAN}
+\zf@make@lang@feature{Palpa}{PAP}
+\zf@make@lang@feature{Pashto}{PAS}
+\zf@make@lang@feature{Polytonic Greek}{PGR}
+\zf@make@lang@feature{Pilipino}{PIL}
+\zf@make@lang@feature{Palaung}{PLG}
+\zf@make@lang@feature{Polish}{PLK}
+\zf@make@lang@feature{Provencal}{PRO}
+\zf@make@lang@feature{Portuguese}{PTG}
+\zf@make@lang@feature{Chin}{QIN}
+\zf@make@lang@feature{Rajasthani}{RAJ}
+\zf@make@lang@feature{R-Cree}{RCR}
+\zf@make@lang@feature{Russian Buriat}{RBU}
+\zf@make@lang@feature{Riang}{RIA}
+\zf@make@lang@feature{Rhaeto-Romanic}{RMS}
+\zf@make@lang@feature{Romanian}{ROM}
+\zf@make@lang@feature{Romany}{ROY}
+\zf@make@lang@feature{Rusyn}{RSY}
+\zf@make@lang@feature{Ruanda}{RUA}
+\zf@make@lang@feature{Russian}{RUS}
+\zf@make@lang@feature{Sadri}{SAD}
+\zf@make@lang@feature{Sanskrit}{SAN}
+\zf@make@lang@feature{Santali}{SAT}
+\zf@make@lang@feature{Sayisi}{SAY}
+\zf@make@lang@feature{Sekota}{SEK}
+\zf@make@lang@feature{Selkup}{SEL}
+\zf@make@lang@feature{Sango}{SGO}
+\zf@make@lang@feature{Shan}{SHN}
+\zf@make@lang@feature{Sibe}{SIB}
+\zf@make@lang@feature{Sidamo}{SID}
+\zf@make@lang@feature{Silte Gurage}{SIG}
+\zf@make@lang@feature{Skolt Sami}{SKS}
+\zf@make@lang@feature{Slovak}{SKY}
+\zf@make@lang@feature{Slavey}{SLA}
+\zf@make@lang@feature{Slovenian}{SLV}
+\zf@make@lang@feature{Somali}{SML}
+\zf@make@lang@feature{Samoan}{SMO}
+\zf@make@lang@feature{Sena}{SNA}
+\zf@make@lang@feature{Sindhi}{SND}
+\zf@make@lang@feature{Sinhalese}{SNH}
+\zf@make@lang@feature{Soninke}{SNK}
+\zf@make@lang@feature{Sodo Gurage}{SOG}
+\zf@make@lang@feature{Sotho}{SOT}
+\zf@make@lang@feature{Albanian}{SQI}
+\zf@make@lang@feature{Serbian}{SRB}
+\zf@make@lang@feature{Saraiki}{SRK}
+\zf@make@lang@feature{Serer}{SRR}
+\zf@make@lang@feature{South Slavey}{SSL}
+\zf@make@lang@feature{Southern Sami}{SSM}
+\zf@make@lang@feature{Suri}{SUR}
+\zf@make@lang@feature{Svan}{SVA}
+\zf@make@lang@feature{Swedish}{SVE}
+\zf@make@lang@feature{Swadaya Aramaic}{SWA}
+\zf@make@lang@feature{Swahili}{SWK}
+\zf@make@lang@feature{Swazi}{SWZ}
+\zf@make@lang@feature{Sutu}{SXT}
+\zf@make@lang@feature{Syriac}{SYR}
+\zf@make@lang@feature{Tabasaran}{TAB}
+\zf@make@lang@feature{Tajiki}{TAJ}
+\zf@make@lang@feature{Tamil}{TAM}
+\zf@make@lang@feature{Tatar}{TAT}
+\zf@make@lang@feature{TH-Cree}{TCR}
+\zf@make@lang@feature{Telugu}{TEL}
+\zf@make@lang@feature{Tongan}{TGN}
+\zf@make@lang@feature{Tigre}{TGR}
+\zf@make@lang@feature{Tigrinya}{TGY}
+\zf@make@lang@feature{Thai}{THA}
+\zf@make@lang@feature{Tahitian}{THT}
+\zf@make@lang@feature{Tibetan}{TIB}
+\zf@make@lang@feature{Turkmen}{TKM}
+\zf@make@lang@feature{Temne}{TMN}
+\zf@make@lang@feature{Tswana}{TNA}
+\zf@make@lang@feature{Tundra Nenets}{TNE}
+\zf@make@lang@feature{Tonga}{TNG}
+\zf@make@lang@feature{Todo}{TOD}
+\zf@make@lang@feature{Turkish}{TRK}
+\zf@make@lang@feature{Tsonga}{TSG}
+\zf@make@lang@feature{Turoyo Aramaic}{TUA}
+\zf@make@lang@feature{Tulu}{TUL}
+\zf@make@lang@feature{Tuvin}{TUV}
+\zf@make@lang@feature{Twi}{TWI}
+\zf@make@lang@feature{Udmurt}{UDM}
+\zf@make@lang@feature{Ukrainian}{UKR}
+\zf@make@lang@feature{Urdu}{URD}
+\zf@make@lang@feature{Upper Sorbian}{USB}
+\zf@make@lang@feature{Uyghur}{UYG}
+\zf@make@lang@feature{Uzbek}{UZB}
+\zf@make@lang@feature{Venda}{VEN}
+\zf@make@lang@feature{Vietnamese}{VIT}
+\zf@make@lang@feature{Wa}{WA}
+\zf@make@lang@feature{Wagdi}{WAG}
+\zf@make@lang@feature{West-Cree}{WCR}
+\zf@make@lang@feature{Welsh}{WEL}
+\zf@make@lang@feature{Wolof}{WLF}
+\zf@make@lang@feature{Tai Lue}{XBD}
+\zf@make@lang@feature{Xhosa}{XHS}
+\zf@make@lang@feature{Yakut}{YAK}
+\zf@make@lang@feature{Yoruba}{YBA}
+\zf@make@lang@feature{Y-Cree}{YCR}
+\zf@make@lang@feature{Yi Classic}{YIC}
+\zf@make@lang@feature{Yi Modern}{YIM}
+\zf@make@lang@feature{Chinese Hong Kong}{ZHH}
+\zf@make@lang@feature{Chinese Phonetic}{ZHP}
+\zf@make@lang@feature{Chinese Simplified}{ZHS}
+\zf@make@lang@feature{Chinese Traditional}{ZHT}
+\zf@make@lang@feature{Zande}{ZND}
+\zf@make@lang@feature{Zulu}{ZUL}
+\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}{+cpsp}
+\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}{SMALLCAPS}{}{}{+c2sc}
+\zf@define@feature@option{Letters}{PETITECAPS}{}{}{+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{Swashes}
+\zf@define@feature@option{Swashes}{Contextual}{}{}{+cswh}
+\zf@define@feature@option{Swashes}{WordInitial}{8}{0}{+init}
+\zf@define@feature@option{Swashes}{NoWordInitial}{8}{1}{-init}
+\zf@define@feature@option{Swashes}{WordFinal}{8}{2}{+fina}
+\zf@define@feature@option{Swashes}{NoWordFinal}{8}{3}{-fina}
+\zf@define@feature@option{Swashes}{LineInitial}{8}{4}{}
+\zf@define@feature@option{Swashes}{NoLineInitial}{8}{5}{}
+\zf@define@feature@option{Swashes}{LineFinal}{8}{6}{+falt}
+\zf@define@feature@option{Swashes}{NoLineFinal}{8}{7}{-falt}
+\zf@define@feature@option{Swashes}{Inner}{8}{8}{}
+\zf@define@feature@option{Swashes}{NoInner}{8}{9}{}
+\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{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}{Alternate}{\zf@make@feature{17}{#1}{}}
+\define@key{zf}{Variant}{\zf@make@feature{18}{#1}{%
+ \ifnum #1 > 0
+ \ifnum #1 < 100
+ \ifnum #1 > 9
+ +ss#1%
+ \else
+ +ss0#1%
+ \fi
+ \else
+ \PackageWarning{fontspec}{OpenType variant number must be
+ between 1 and 99 inclusive.}%
+ \fi
+ \else
+ \PackageWarning{fontspec}{OpenType variant number must be between 1
+ and 99 inclusive.}%
+ \fi}}
+\zf@define@font@feature{Style}
+\aliasfeature{Style}{StyleOptions}
+\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}{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@font@feature{CharacterShape}
+\zf@define@feature@option{CharacterShape}{Traditional}{20}{0}{+trad}
+\zf@define@feature@option{CharacterShape}{Simplified}{20}{1}{+smpl}
+\zf@define@feature@option{CharacterShape}{JIS1978}{20}{2}{+jp78}
+\zf@define@feature@option{CharacterShape}{JIS1983}{20}{3}{+jp83}
+\zf@define@feature@option{CharacterShape}{JIS1990}{20}{4}{+jp90}
+\zf@define@feature@option{CharacterShape}{Expert}{20}{10}{+expt}
+\zf@define@feature@option{CharacterShape}{NLC}{20}{13}{+nlck}
+\zf@define@font@feature{TextSpacing}
+\zf@define@feature@option{TextSpacing}{Proportional}{22}{0}{+pwid}
+\zf@define@feature@option{TextSpacing}{FullWidth}{22}{1}{+fwid}
+\zf@define@feature@option{TextSpacing}{HalfWidth}{22}{2}{+hwid}
+\zf@define@feature@option{TextSpacing}{ThirdWidth}{22}{3}{+twid}
+\zf@define@feature@option{TextSpacing}{QuarterWidth}{22}{4}{+qwid}
+\zf@define@feature@option{TextSpacing}{AlternateProportional}{22}{5}{+palt}
+\zf@define@feature@option{TextSpacing}{AlternateHalfWidth}{22}{6}{+halt}
+\zf@define@feature@option{TextSpacing}{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}{}
+\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
+ \expandafter\ifx
+ \csname\f@encoding/\f@family/\f@series/#3\endcsname
+ \relax\else
+ \edef\@tempa{#3}%
+ \fi
+ \fi
+ \fontshape{\@tempa}\selectfont}
+\DeclareRobustCommand{\itshape}{%
+ \not@math@alphabet\itshape\mathit
+ \zf@merge@shape\itdefault\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}
+\newif\ifzf@math@euler
+\newif\ifzf@math@lucida
+\newif\ifzf@euler@package@loaded
+\@ifpackageloaded{euler}{\zf@euler@package@loadedtrue}
+ {\zf@euler@package@loadedfalse}
+\AtBeginDocument{%
+ \@ifpackageloaded{euler}{%
+ \ifzf@euler@package@loaded
+ \zf@math@eulertrue
+ \else
+ \PackageError{fontspec}{The euler package must be loaded BEFORE fontspec}
+ {fontspec only overwrites euler's attempt to\MessageBreak
+ define the maths text fonts if fontspec is\MessageBreak
+ loaded after euler. Type <return> to proceed\MessageBreak
+ with incorrect \protect\mathit, \protect\mathbf, etc}
+ \fi}{}
+ \@ifpackageloaded{lucbmath}{\zf@math@lucidatrue}{}
+ \@ifpackageloaded{lucidabr}{\zf@math@lucidatrue}{}
+ \DeclareSymbolFont{legacymaths}{OT1}{cmr}{m}{n}
+ \SetSymbolFont{legacymaths}{bold}{OT1}{cmr}{bx}{n}
+ \DeclareMathAccent{\acute} {\mathalpha}{legacymaths}{"13}
+ \DeclareMathAccent{\grave} {\mathalpha}{legacymaths}{"12}
+ \DeclareMathAccent{\ddot} {\mathalpha}{legacymaths}{"7F}
+ \DeclareMathAccent{\tilde} {\mathalpha}{legacymaths}{"7E}
+ \DeclareMathAccent{\bar} {\mathalpha}{legacymaths}{"16}
+ \DeclareMathAccent{\breve} {\mathalpha}{legacymaths}{"15}
+ \DeclareMathAccent{\check} {\mathalpha}{legacymaths}{"14}
+ \DeclareMathAccent{\hat} {\mathalpha}{legacymaths}{"5E} % too bad, euler
+ \DeclareMathAccent{\dot} {\mathalpha}{legacymaths}{"5F}
+ \DeclareMathAccent{\mathring}{\mathalpha}{legacymaths}{"17}
+ \ifzf@math@euler\else
+ \DeclareMathSymbol{!}{\mathclose}{legacymaths}{"21}
+ \DeclareMathSymbol{:}{\mathrel} {legacymaths}{"3A}
+ \DeclareMathSymbol{;}{\mathpunct}{legacymaths}{"3B}
+ \DeclareMathSymbol{?}{\mathclose}{legacymaths}{"3F}
+ \ifzf@math@lucida
+ \@ifpackageloaded{amsmath}{}{%
+ \DeclareMathSymbol{\colon}{\mathpunct}{legacymaths}{"3A}}
+ \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}{"00}
+ \DeclareMathSymbol{\Delta}{\mathalpha}{legacymaths}{"01}
+ \DeclareMathSymbol{\Theta}{\mathalpha}{legacymaths}{"02}
+ \DeclareMathSymbol{\Lambda}{\mathalpha}{legacymaths}{"03}
+ \DeclareMathSymbol{\Xi}{\mathalpha}{legacymaths}{"04}
+ \DeclareMathSymbol{\Pi}{\mathalpha}{legacymaths}{"05}
+ \DeclareMathSymbol{\Sigma}{\mathalpha}{legacymaths}{"06}
+ \DeclareMathSymbol{\Upsilon}{\mathalpha}{legacymaths}{"07}
+ \DeclareMathSymbol{\Phi}{\mathalpha}{legacymaths}{"08}
+ \DeclareMathSymbol{\Psi}{\mathalpha}{legacymaths}{"09}
+ \DeclareMathSymbol{\Omega}{\mathalpha}{legacymaths}{"0A}
+ \DeclareMathSymbol{+}{\mathbin}{legacymaths}{"2B}
+ \DeclareMathSymbol{=}{\mathrel}{legacymaths}{"3D}
+ \DeclareMathDelimiter{(}{\mathopen} {legacymaths}{"28}{largesymbols}{"00}
+ \DeclareMathDelimiter{)}{\mathclose}{legacymaths}{"29}{largesymbols}{"01}
+ \DeclareMathDelimiter{[}{\mathopen} {legacymaths}{"5B}{largesymbols}{"02}
+ \DeclareMathDelimiter{]}{\mathclose}{legacymaths}{"5D}{largesymbols}{"03}
+ \DeclareMathDelimiter{/}{\mathord}{legacymaths}{"2F}{largesymbols}{"0E}
+ \DeclareMathSymbol{\mathdollar}{\mathord}{legacymaths}{"24}
+ \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
+ \expandafter\ifx\csname zf@rmboldmaths\endcsname\relax
+ \SetMathAlphabet\mathrm{bold}\zf@enc\zf@rmmaths\bfdefault\updefault
+ \SetMathAlphabet\mathit{bold}\zf@enc\zf@rmmaths\bfdefault\itdefault
+ \else
+ \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
+ \fi
+ \SetMathAlphabet\mathsf{bold}\zf@enc\zf@sfmaths\bfdefault\updefault
+ \SetMathAlphabet\mathsf{bold}\zf@enc\zf@ttmaths\bfdefault\updefault}
+%%
+%% Copyright 2005 by Will Robertson <will@guerilla.net.au>
+%%
+%% Distributable under the LaTeX Project Public License,
+%% version 1.3a 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'.