%D \module
%D   [       file=type-xtx,
%D        version=2004.11.15, % prereleased earlier
%D          title=\CONTEXT\ Typescript Macros,
%D       subtitle=\XETEX's font treasures,
%D         author=Adam T. Lindsay,
%D           date=\currentdate,
%D      copyright={Adam T. Lindsay / PRAGMA}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.

%D Here are some fonts definitions that can get you started with
%D \XETEX (for more details see Adam's MyWay documents).
%D
%D Most typescripts in this file are mostly independent of the other
%D typescript files. Generally, you can speed things up a lot by
%D eliminating all but one of \CONTEXT's typescript files:
%D
%D \starttyping
%D \usetypescriptfiles[reset]     % HH: watch out, new feature, since
%D \usetypescriptfiles[type-siz]  % I disliked the low level redef.
%D \stoptyping
%D
%D The exceptions are the \quotation {legacy} fonts Times, Palatino,
%D Courier, and Helvetica, which also depend on \type {type-syn}.
%D
%D These following six typescripts call the basic four variants on any
%D given font, given the name of the \quotation {Regular} variant in the
%D name slot. These typescripts default to a Unicode encoding,
%D accepts sizes \quotation {default} and \quotation {dtp}, and are
%D activated with the identifiers \quotation {Xserif}, \quotation {Xsans},
%D and \quotation {Xmono}. They can have relative scaling within the
%D typeface. Any of the following work:
%D
%D \starttyping
%D \definetypeface[basic][rm][Xserif][Baskerville]
%D \definetypeface[basic][ss][Xsans] [Optima Regular][default][encoding=uc,rscale=.87]
%D \definetypeface[basic][tt][Xmono] [Courier]       [default]
%D \stoptyping
%D
%D Activate the typeface with:
%D
%D \starttyping
%D \setupbodyfont[basic]
%D \stoptyping

\starttypescriptcollection[xetex]

\starttypescript[Xserif][all][name]

\definefontsynonym[Dummy]          ['\typescripttwo:mapping=tex-text']   [encoding=uc]
\definefontsynonym[DummyItalic]    ['\typescripttwo/I:mapping=tex-text'] [encoding=uc]
\definefontsynonym[DummyBold]      ['\typescripttwo/B:mapping=tex-text'] [encoding=uc]
\definefontsynonym[DummyBoldItalic]['\typescripttwo/BI:mapping=tex-text'][encoding=uc]

\definefontsynonym[Serif]           [Dummy]
\definefontsynonym[SerifBold]       [DummyBold]
\definefontsynonym[SerifItalic]     [DummyItalic]
\definefontsynonym[SerifBoldItalic] [DummyBoldItalic]
\definefontsynonym[SerifSlanted]    [DummyItalic]
\definefontsynonym[SerifBoldSlanted][DummyBoldItalic]
\definefontsynonym[SerifCaps]       [Dummy]

\stoptypescript

\starttypescript[Xsans][all][name]

\definefontsynonym[DummySans]          ['\typescripttwo:mapping=tex-text']   [encoding=uc]
\definefontsynonym[DummySansItalic]    ['\typescripttwo/I:mapping=tex-text'] [encoding=uc]
\definefontsynonym[DummySansBold]      ['\typescripttwo/B:mapping=tex-text'] [encoding=uc]
\definefontsynonym[DummySansBoldItalic]['\typescripttwo/BI:mapping=tex-text'][encoding=uc]

\definefontsynonym[Sans]           [DummySans]
\definefontsynonym[SansBold]       [DummySansBold]
\definefontsynonym[SansItalic]     [DummySansItalic]
\definefontsynonym[SansBoldItalic] [DummySansBoldItalic]
\definefontsynonym[SansSlanted]    [DummySansItalic]
\definefontsynonym[SansBoldSlanted][DummySansBoldItalic]
\definefontsynonym[SansCaps]       [DummySans]

\stoptypescript

\starttypescript[Xmono][all][name]

\definefontsynonym[DummyMono]          ['\typescripttwo']   [encoding=uc]
\definefontsynonym[DummyMonoItalic]    ['\typescripttwo/I'] [encoding=uc]
\definefontsynonym[DummyMonoBold]      ['\typescripttwo/B'] [encoding=uc]
\definefontsynonym[DummyMonoBoldItalic]['\typescripttwo/BI'][encoding=uc]

\definefontsynonym[Mono]           [DummyMono]
\definefontsynonym[MonoBold]       [DummyMonoBold]
\definefontsynonym[MonoItalic]     [DummyMonoItalic]
\definefontsynonym[MonoBoldItalic] [DummyMonoBoldItalic]
\definefontsynonym[MonoSlanted]    [DummyMonoItalic]
\definefontsynonym[MonoBoldSlanted][DummyMonoBoldItalic]
\definefontsynonym[MonoCaps]       [DummyMono]

\stoptypescript

\starttypescript[Xserif][default][size]
  \definebodyfont
    [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt]
    [rm] [default]
\stoptypescript

\starttypescript[Xsans][default][size]
  \definebodyfont
    [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt]
    [ss] [default]
\stoptypescript

\starttypescript [Xmono][default][size]
  \definebodyfont
    [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt]
    [tt] [default]
\stoptypescript

\starttypescript[Xserif][dtp][size]
  \definebodyfont
    [5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,13pt,14pt,16pt,18pt,22pt,28pt]
    [rm] [default]
\stoptypescript

\starttypescript[Xsans][dtp][size]
  \definebodyfont
    [5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,13pt,14pt,16pt,18pt,22pt,28pt]
    [ss] [default]
\stoptypescript

\starttypescript[Xmono][dtp][size]
  \definebodyfont
    [5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,13pt,14pt,16pt,18pt,22pt,28pt]
    [tt] [default]
\stoptypescript

%D The following are \quotation {legacy} named fonts. Times, Palatino,
%D and Helvetica are familiar to most users of modern \TEX\
%D systems. These versions are accessed via the Unicode encoding
%D enabled by \XETEX. There is no attempt to match metrics with
%D the actual legacy fonts. These are simply familiar names.

%D These typescripts, unlike others in this file, depend on those in
%D \type{type-pre}.

\starttypescript[serif][times][uc]

\definefontsynonym[Times-Roman]     ['Times Roman:mapping=tex-text']       [encoding=uc]
\definefontsynonym[Times-Italic]    ['Times Italic:mapping=tex-text']      [encoding=uc]
\definefontsynonym[Times-Bold]      ['Times Bold:mapping=tex-text']        [encoding=uc]
\definefontsynonym[Times-BoldItalic]['Times Bold Italic:mapping=tex-text;'][encoding=uc]

\stoptypescript

%D Book Antiqua is Mac OS X's Palatino clone.

\starttypescript[serif][palatino][uc]

\definefontsynonym[Palatino]            ['Book Antiqua:mapping=tex-text']            [encoding=uc]
\definefontsynonym[Palatino-Italic]     ['Book Antiqua Italic:mapping=tex-text']     [encoding=uc]
\definefontsynonym[Palatino-Bold]       ['Book Antiqua Bold:mapping=tex-text']       [encoding=uc]
\definefontsynonym[Palatino-BoldItalic] ['Book Antiqua Bold Italic:mapping=tex-text'][encoding=uc]

\definefontsynonym[Palatino-Slanted]    [Palatino-Italic]
\definefontsynonym[Palatino-BoldSlanted][Palatino-BoldItalic]
\definefontsynonym[Palatino-Caps]       [Palatino]

\stoptypescript

%D The default Helvetica doesn't have an oblique variant, so we'll
%D go ahead and name Helvertica Neue here.

\starttypescript[sans][helvetica][uc]

\definefontsynonym[Helvetica]            ['Helvetica Neue:mapping=tex-text']            [encoding=uc]
\definefontsynonym[Helvetica-Oblique]    ['Helvetica Neue Italic:mapping=tex-text']     [encoding=uc]
\definefontsynonym[Helvetica-Bold]       ['Helvetica Neue Bold:mapping=tex-text']       [encoding=uc]
\definefontsynonym[Helvetica-BoldOblique]['Helvetica Neue Bold Italic:mapping=tex-text'][encoding=uc]

\stoptypescript

%D Courier, as delivered on MacOSX 10.3, doesn't have an oblique
%D variant, either. Unfortunately, none of the default Mono fonts in
%D MacOSX have oblique|/|italic versions!

\starttypescript[mono][courier][uc]

\definefontsynonym[Courier]            ['Courier:mapping=tex-text']     [encoding=uc]
\definefontsynonym[Courier-Oblique]    [Courier]
\definefontsynonym[Courier-Bold]       ['Courier Bold:mapping=tex-text'][encoding=uc]
\definefontsynonym[Courier-BoldOblique][Courier-Bold]

\stoptypescript

%D The following fonts go beyond the usual four variants that
%D are accessible via the above wildcard typescripts, so they
%D get a more expanded treatment here:

\starttypescript[serif][hoefler][uc]

\definefontsynonym[Hoefler]      ['Hoefler Text:mapping=tex-text;
                   Ligatures=Diphthongs']  [encoding=uc]
\definefontsynonym[HoeflerItalic]['Hoefler Text Italic:mapping=tex-text;
                   Ligatures=Diphthongs']  [encoding=uc]
\definefontsynonym[HoeflerBlack] ['Hoefler Text Black:mapping=tex-text;
                   Ligatures=Diphthongs']  [encoding=uc]
\definefontsynonym[HoeflerBlackItalic]['Hoefler Text Black Italic:mapping=tex-text;
                   Ligatures=Diphthongs']  [encoding=uc]
\definefontsynonym[HoeflerSmCap] ['Hoefler Text:mapping=tex-text;
                   Ligatures=Diphthongs;
                   Letter Case=Small Caps'][encoding=uc]
\stoptypescript

\starttypescript[serif][hoefler][name]

\definefontsynonym[Serif]           [Hoefler]
\definefontsynonym[SerifBold]       [HoeflerBlack]
\definefontsynonym[SerifItalic]     [HoeflerItalic]
\definefontsynonym[SerifBoldItalic] [HoeflerBlackItalic]
\definefontsynonym[SerifSlanted]    [HoeflerItalic]
\definefontsynonym[SerifBoldSlanted][HoeflerBlackItalic]
\definefontsynonym[SerifCaps]       [HoeflerSmCap]

\stoptypescript

\starttypescript[sans][lucidagrande][uc]

\definefontsynonym[LucidaGrande]    ['Lucida Grande:mapping=tex-text']     [encoding=uc]
\definefontsynonym[LucidaGrandeBold]['Lucida Grande Bold:mapping=tex-text'][encoding=uc]

\stoptypescript

\starttypescript[sans][lucidagrande][name]

\definefontsynonym[Sans]           [LucidaGrande]
\definefontsynonym[SansBold]       [LucidaGrandeBold]
\definefontsynonym[SansItalic]     [LucidaGrande]
\definefontsynonym[SansBoldItalic] [LucidaGrandeBold]
\definefontsynonym[SansSlanted]    [LucidaGrande]
\definefontsynonym[SansBoldSlanted][LucidaGrandeBold]
\definefontsynonym[SansCaps]       [LucidaGrande]

\stoptypescript

\starttypescript[sans][optima][uc]
\definefontsynonym[Optima]          ['Optima Regular:mapping=tex-text']    [encoding=uc]
\definefontsynonym[OptimaItalic]    ['Optima Italic:mapping=tex-text']     [encoding=uc]
\definefontsynonym[OptimaBold]      ['Optima Bold:mapping=tex-text']       [encoding=uc]
\definefontsynonym[OptimaBoldItalic]['Optima Bold Italic:mapping=tex-text'][encoding=uc]
\definefontsynonym[OptimaBlack]     ['Optima ExtraBlack:mapping=tex-text'] [encoding=uc]
\stoptypescript

\starttypescript[sans][optima][name]

\definefontsynonym[Sans]           [Optima]
\definefontsynonym[SansBold]       [OptimaBold]
\definefontsynonym[SansItalic]     [OptimaItalic]
\definefontsynonym[SansBoldItalic] [OptimaBoldItalic]
\definefontsynonym[SansSlanted]    [OptimaItalic]
\definefontsynonym[SansBoldSlanted][OptimaBoldItalic]
\definefontsynonym[SansCaps]       [Optima]

\stoptypescript

\starttypescript[sans][gillsans,gillsanslt][uc]

\definefontsynonym[GillSans]           ['Gill Sans:mapping=tex-text']             [encoding=uc]
\definefontsynonym[GillSansItalic]     ['Gill Sans Italic:mapping=tex-text']      [encoding=uc]
\definefontsynonym[GillSansBold]       ['Gill Sans Bold:mapping=tex-text']        [encoding=uc]
\definefontsynonym[GillSansBoldItalic] ['Gill Sans Bold Italic:mapping=tex-text'] [encoding=uc]
\definefontsynonym[GillSansLight]      ['Gill Sans Light:mapping=tex-text']       [encoding=uc]
\definefontsynonym[GillSansLightItalic]['Gill Sans Light Italic:mapping=tex-text'][encoding=uc]

\stoptypescript

\starttypescript[sans][gillsans][name]

\definefontsynonym[Sans]           [GillSans]
\definefontsynonym[SansBold]       [GillSansBold]
\definefontsynonym[SansItalic]     [GillSansItalic]
\definefontsynonym[SansBoldItalic] [GillSansBoldItalic]
\definefontsynonym[SansSlanted]    [GillSansItalic]
\definefontsynonym[SansBoldSlanted][GillSansBoldItalic]
\definefontsynonym[SansCaps]       [GillSans]

\stoptypescript

\starttypescript[sans][gillsanslt][name]

\definefontsynonym[Sans]           [GillSansLight]
\definefontsynonym[SansBold]       [GillSans]
\definefontsynonym[SansItalic]     [GillSansLightItalic]
\definefontsynonym[SansBoldItalic] [GillSansItalic]
\definefontsynonym[SansSlanted]    [GillSansLightItalic]
\definefontsynonym[SansBoldSlanted][GillSansItalic]
\definefontsynonym[SansCaps]       [GillSansLight]

\stoptypescript

\starttypescript[serif,handwriting][zapfino][uc]

\definefontsynonym[ZapfinoOne]  ['Zapfino:mapping=tex-text']                  [encoding=uc]
\definefontsynonym[ZapfinoTwo]  ['Zapfino:mapping=tex-text;
                                 Stylistic Variants=First variant glyph set'] [encoding=uc]
\definefontsynonym[ZapfinoThree]['Zapfino:mapping=tex-text;
                                 Stylistic Variants=Second variant glyph set'][encoding=uc]
\definefontsynonym[ZapfinoFour] ['Zapfino:mapping=tex-text;
                                 Stylistic Variants=Third variant glyph set'] [encoding=uc]
\stoptypescript

\starttypescript[handwriting][zapfino][name]

\definefontsynonym[Handwriting][ZapfinoOne]

\stoptypescript

\starttypescript[serif][zapfino][name]

\definefontsynonym[Serif]           [ZapfinoOne]
\definefontsynonym[SerifBold]       [ZapfinoThree]
\definefontsynonym[SerifItalic]     [ZapfinoTwo]
\definefontsynonym[SerifBoldItalic] [ZapfinoTwo]
\definefontsynonym[SerifSlanted]    [ZapfinoThree]
\definefontsynonym[SerifBoldSlanted][ZapfinoThree]
\definefontsynonym[SerifCaps]       [ZapfinoOne]

\stoptypescript

\starttypescript[serif,calligraphy][applechancery][uc]

\definefontsynonym[AppleChanceryOne]    ['Apple Chancery:mapping=tex-text;
                   Number Case=Old Styles']                [encoding=uc]
\definefontsynonym[AppleChanceryTwo]    ['Apple Chancery:mapping=tex-text;
                   Number Case=Old Styles;
                   Design Complexity=Elegant Design Level'][encoding=uc]
\definefontsynonym[AppleChanceryThree]  ['Apple Chancery:mapping=tex-text;
                   Number Case=Old Styles;
                   Design Complexity=Flourishes Set A']    [encoding=uc]
\definefontsynonym[AppleChanceryFour]   ['Apple Chancery:mapping=tex-text;
                   Number Case=Old Styles;
                   Design Complexity=Flourishes Set B']    [encoding=uc]
\definefontsynonym[AppleChanceryCaps]   ['Apple Chancery:mapping=tex-text;
                   Number Case=Old Styles;
                   Letter Case=Small Caps']                [encoding=uc]
\definefontsynonym[AppleChanceryCapsTwo]['Apple Chancery:mapping=tex-text;
                   Number Case=Old Styles;
                   Letter Case=Small Caps;
                   Design Complexity=Flourishes Set B']    [encoding=uc]
\stoptypescript

\starttypescript[calligraphy][applechancery][name]

\definefontsynonym[Calligraphy][AppleChanceryOne]

\stoptypescript

\starttypescript[serif][applechancery][name]

\definefontsynonym[Serif]           [AppleChanceryOne]
\definefontsynonym[SerifBold]       [AppleChanceryThree]
\definefontsynonym[SerifItalic]     [AppleChanceryTwo]
\definefontsynonym[SerifBoldItalic] [AppleChanceryFour]
\definefontsynonym[SerifSlanted]    [AppleChanceryThree]
\definefontsynonym[SerifBoldSlanted][AppleChanceryFour]
\definefontsynonym[SerifCaps]       [AppleChanceryCaps]

\stoptypescript

% MS Office 2004 for Mac has impressive Unicode coverage in
% many of its fonts.

\starttypescript[serif][timesnewroman][uc]

\definefontsynonym[MSTimes]          ['Times New Roman:mapping=tex-text']            [encoding=uc]
\definefontsynonym[MSTimesItalic]    ['Times New Roman Italic:mapping=tex-text']     [encoding=uc]
\definefontsynonym[MSTimesBold]      ['Times New Roman Bold:mapping=tex-text']       [encoding=uc]
\definefontsynonym[MSTimesBoldItalic]['Times New Roman Bold Italic:mapping=tex-text'][encoding=uc]

\stoptypescript

\starttypescript[serif][timesnewroman][name]

\definefontsynonym[Serif]           [MSTimes]
\definefontsynonym[SerifBold]       [MSTimesBold]
\definefontsynonym[SerifItalic]     [MSTimesItalic]
\definefontsynonym[SerifBoldItalic] [MSTimesBoldItalic]
\definefontsynonym[SerifSlanted]    [MSTimesItalic]
\definefontsynonym[SerifBoldSlanted][MSTimesBoldItalic]
\definefontsynonym[SerifCaps]       [MSTimes]

\stoptypescript

\starttypescript[sans][arial][uc]

\definefontsynonym[Arial]          ['Arial:mapping=tex-text']            [encoding=uc]
\definefontsynonym[ArialItalic]    ['Arial Italic:mapping=tex-text']     [encoding=uc]
\definefontsynonym[ArialBold]      ['Arial Bold:mapping=tex-text']       [encoding=uc]
\definefontsynonym[ArialBoldItalic]['Arial Bold Italic:mapping=tex-text'][encoding=uc]

\stoptypescript

\starttypescript[sans][arial][name]

\definefontsynonym[Sans]           [Arial]
\definefontsynonym[SansBold]       [ArialBold]
\definefontsynonym[SansItalic]     [ArialItalic]
\definefontsynonym[SansBoldItalic] [ArialBoldItalic]
\definefontsynonym[SansSlanted]    [ArialItalic]
\definefontsynonym[SansBoldSlanted][ArialBoldItalic]
\definefontsynonym[SansCaps]       [Arial]

\stoptypescript

%D MS Office comes with an installation of the Lucida family in
%D TrueType form. It's nice, except\dots\ no math, no slanted, no caps
%D and some other auxiliary fonts.

\starttypescript [serif] [lucida] [uc]

  \definefontsynonym [LucidaBright]              ['Lucida Bright:mapping=tex-text']         [encoding=uc]
  \definefontsynonym [LucidaBright-Demi]         ['Lucida Bright Demibold:mapping=tex-text'][encoding=uc]
  \definefontsynonym [LucidaBright-DemiItalic]   ['Lucida Bright Demibold:mapping=tex-text'][encoding=uc]
  \definefontsynonym [LucidaBright-Italic]       ['Lucida Bright:mapping=tex-text']         [encoding=uc]

  \definefontsynonym [LucidaBrightSmallcaps]     [LucidaBright]
  \definefontsynonym [LucidaBrightSmallcaps-Demi][LucidaBright-Demi]
  \definefontsynonym [LucidaBright-Oblique]      [LucidaBright-Italic]

\stoptypescript

\starttypescript [sans] [lucida] [uc]
  \definefontsynonym [LucidaSans]           ['Lucida Sans Regular:mapping=tex-text']        [encoding=uc]
  \definefontsynonym [LucidaSans-Demi]      ['Lucida Sans Demibold Roman:mapping=tex-text'] [encoding=uc]
  \definefontsynonym [LucidaSans-DemiItalic]['Lucida Sans Demibold Italic:mapping=tex-text'][encoding=uc]
  \definefontsynonym [LucidaSans-Italic]    ['Lucida Sans Italic:mapping=tex-text']         [encoding=uc]

  \definefontsynonym [LucidaSans-Bold]      [LucidaSans-Demi]
  \definefontsynonym [LucidaSans-BoldItalic][LucidaSans-DemiItalic]

\stoptypescript

\starttypescript [mono] [lucida] [uc]

  \definefontsynonym [LucidaSans-Typewriter]           ['Lucida Sans Typewriter Regular']     [encoding=uc]
  \definefontsynonym [LucidaSans-TypewriterBold]       ['Lucida Sans Typewriter Bold']        [encoding=uc]
  \definefontsynonym [LucidaSans-TypewriterBoldOblique]['Lucida Sans Typewriter Bold Oblique'][encoding=uc]
  \definefontsynonym [LucidaSans-TypewriterOblique]    ['Lucida Sans Typewriter Oblique']     [encoding=uc]

\stoptypescript

\starttypescript [calligraphy] [lucida] [uc]

  \definefontsynonym[LucidaCalligraphy-Italic]['Lucida Calligraphy Italic:mapping=tex-text'][encoding=uc]

\stoptypescript

% No casual that I know of

\starttypescript[handwriting][lucida][uc]

  \definefontsynonym[LucidaHandwriting-Italic]['Lucida Handwriting Italic:mapping=tex-text'][encoding=uc]

\stoptypescript

\starttypescript[fax][lucida][uc]

  \definefontsynonym[LucidaFax]           ['Lucida Fax Regular:mapping=tex-text']        [encoding=uc]
  \definefontsynonym[LucidaFax-Demi]      ['Lucida Fax Demibold:mapping=tex-text']       [encoding=uc]
  \definefontsynonym[LucidaFax-DemiItalic]['Lucida Fax Demibold Italic:mapping=tex-text'][encoding=uc]
  \definefontsynonym[LucidaFax-Italic]    ['Lucida Fax Italic:mapping=tex-text']         [encoding=uc]

\stoptypescript

%D Gentium is from SIL, the fine makers of \XETEX, and it's not only
%D very complete with Roman and Italic Unicode support, but very
%D attractive.

\starttypescript[serif][gentium][uc]

\definefontsynonym[Gentium]      ['Gentium:mapping=tex-text']       [encoding=uc]
\definefontsynonym[GentiumItalic]['Gentium Italic:mapping=tex-text'][encoding=uc]

\stoptypescript

\starttypescript[serif][gentium][name]

\definefontsynonym[Serif]           [Gentium]
\definefontsynonym[SerifBold]       [Gentium]
\definefontsynonym[SerifItalic]     [GentiumItalic]
\definefontsynonym[SerifBoldItalic] [GentiumItalic]
\definefontsynonym[SerifSlanted]    [GentiumItalic]
\definefontsynonym[SerifBoldSlanted][GentiumItalic]
\definefontsynonym[SerifCaps]       [Gentium]

\stoptypescript

\stoptypescriptcollection

\endinput
