%D \module
%D   [       file=type-imp-modern,
%D        version=2007.07.30,
%D          title=\CONTEXT\ Typescript Macros,
%D       subtitle=Latin Modern,
%D         author=Hans Hagen,
%D           date=\currentdate,
%D      copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.

% \starttypescriptcollection[\s!fallback]
%     \starttypescript [\s!fallback]
%         \definetypeface [\s!fallback] [\s!rm] [\s!serif] [modern] [\s!default]
%         \definetypeface [\s!fallback] [\s!ss] [\s!sans]  [modern] [\s!default]
%         \definetypeface [\s!fallback] [\s!tt] [\s!mono]  [modern] [\s!default]
%         \definetypeface [\s!fallback] [\s!mm] [\s!math]  [modern] [\s!default]
%         \quittypescriptscanning
%     \stoptypescript
% \stoptypescriptcollection

%D Here comes good old Latin Modern, the default font, based on Knuths Computer
%D Modern. The design size variants is:
%D
%D modern-designsize

\starttypescriptcollection[latinmodern]

    \doifunknownfontfeature {lm-math-bold} {\definefontfeature[lm-math-bold][boldened]}

    \starttypescript [\s!serif] [simple] [\s!name]
        \definefontsynonym [\s!Simple] [\s!file:lmmonoproplt10-regular] [\s!features=\s!default]
    \stoptypescript

    \starttypescript [\s!serif] [modern,latin-modern-designsize,latin-modern] [\s!name]
        \loadfontgoodies[lm]
        \definefontsynonym [\s!Serif]            [LMRoman-Regular]     [\s!features=\s!default]
        \definefontsynonym [\s!SerifBold]        [LMRoman-Bold]        [\s!features=\s!default]
        \definefontsynonym [\s!SerifItalic]      [LMRoman-Italic]      [\s!features=\s!default]
        \definefontsynonym [\s!SerifSlanted]     [LMRoman-Oblique]     [\s!features=\s!default]
        \definefontsynonym [\s!SerifBoldItalic]  [LMRoman-BoldItalic]  [\s!features=\s!default]
        \definefontsynonym [\s!SerifBoldSlanted] [LMRoman-BoldOblique] [\s!features=\s!default]
        \definefontsynonym [\s!SerifCaps]        [LMRoman-CapsRegular] [\s!features=\s!default]
        \definefontsynonym [SerifCapsSlanted]    [LMRoman-CapsOblique] [\s!features=\s!default]
    \stoptypescript

    \starttypescript [\s!sans] [modern,latin-modern-designsize,latin-modern] [\s!name]
        \loadfontgoodies[lm]
        \definefontsynonym [\s!Sans]            [LMSans-Regular]     [\s!features=\s!default]
        \definefontsynonym [\s!SansBold]        [LMSans-Bold]        [\s!features=\s!default]
        \definefontsynonym [\s!SansItalic]      [LMSans-Oblique]     [\s!features=\s!default]
        \definefontsynonym [\s!SansSlanted]     [LMSans-Oblique]     [\s!features=\s!default]
        \definefontsynonym [\s!SansBoldItalic]  [LMSans-BoldOblique] [\s!features=\s!default]
        \definefontsynonym [\s!SansBoldSlanted] [LMSans-BoldOblique] [\s!features=\s!default]
        \definefontsynonym [\s!SansCaps]        [LMSans-Regular]     [\s!features=\s!default]
        \definefontsynonym [SansCapsSlanted]    [LMSans-Oblique]     [\s!features=\s!default]
    \stoptypescript

    \starttypescript [\s!mono] [modern,latin-modern-designsize,latin-modern] [\s!name]
        \loadfontgoodies[lm]
        \definefontsynonym [\s!Mono]            [LMTypewriter-Regular]      [\s!features=\s!none]
        \definefontsynonym [\s!MonoBold]        [LMTypewriter-Dark]         [\s!features=\s!none]
        \definefontsynonym [\s!MonoItalic]      [LMTypewriter-Italic]       [\s!features=\s!none]
        \definefontsynonym [\s!MonoSlanted]     [LMTypewriter-Oblique]      [\s!features=\s!none]
        \definefontsynonym [\s!MonoBoldItalic]  [LMTypewriter-DarkOblique]  [\s!features=\s!none]
        \definefontsynonym [\s!MonoBoldSlanted] [LMTypewriter-DarkOblique]  [\s!features=\s!none]
        \definefontsynonym [\s!MonoCaps]        [LMTypewriter-CapsRegular]  [\s!features=\s!none]
        \definefontsynonym [MonoCapsSlanted]    [LMTypewriter-CapsOblique]  [\s!features=\s!none]
        \definefontsynonym [MonoVariable]       [LMTypewriterVarWd-Regular] [\s!features=\s!none]
    \stoptypescript

    \starttypescript [\s!math] [modern,latin-modern-designsize,latin-modern] [\s!name]
        \loadfontgoodies[lm]
        \definefontsynonym [\s!MathRoman]     [LMMathRoman-Regular]
        \definefontsynonym [\s!MathRomanBold] [LMMathRoman-Bold]
    \stoptypescript

    \starttypescript [\s!math] [latin-modern-designsize] [\s!name]
        \loadfontgoodies[lm-math]
    \stoptypescript

    \starttypescript [\s!serif] [modern-variable,latin-modern-variable-designsize,latin-modern-variable] [\s!name]
        \loadfontgoodies[lm]
        \definefontsynonym [\s!Serif]            [LMTypewriterVarWd-Regular]     [\s!features=\s!default]
        \definefontsynonym [\s!SerifBold]        [LMTypewriterVarWd-Dark]        [\s!features=\s!default]
        \definefontsynonym [\s!SerifItalic]      [LMTypewriterVarWd-Oblique]     [\s!features=\s!default]
        \definefontsynonym [\s!SerifSlanted]     [LMTypewriterVarWd-Oblique]     [\s!features=\s!default]
        \definefontsynonym [\s!SerifBoldItalic]  [LMTypewriterVarWd-DarkOblique] [\s!features=\s!default]
        \definefontsynonym [\s!SerifBoldSlanted] [LMTypewriterVarWd-DarkOblique] [\s!features=\s!default]
        \definefontsynonym [\s!SerifCaps]        [LMTypewriterVarWd-Regular]     [\s!features=\s!default]
        \definefontsynonym [SerifCapsSlanted]    [LMTypewriterVarWd-Oblique]     [\s!features=\s!default]
    \stoptypescript

    \starttypescript [\s!mono] [modern-condensed,latin-modern-condensed-designsize,latin-modern-condensed,modern-light-condensed,latin-modern-light-condensed] [\s!name]
        \loadfontgoodies[lm]
        \definefontsynonym [\s!Mono]            [LMTypewriter-LightCondensed]        [\s!features=\s!none]
        \definefontsynonym [\s!MonoBold]        [LMTypewriter-LightCondensed]        [\s!features=\s!none]
        \definefontsynonym [\s!MonoItalic]      [LMTypewriter-LightCondensedOblique] [\s!features=\s!none]
        \definefontsynonym [\s!MonoSlanted]     [LMTypewriter-LightCondensedOblique] [\s!features=\s!none]
        \definefontsynonym [\s!MonoBoldItalic]  [LMTypewriter-LightCondensed]        [\s!features=\s!none]
        \definefontsynonym [\s!MonoBoldSlanted] [LMTypewriter-LightCondensed]        [\s!features=\s!none]
        \definefontsynonym [\s!MonoCaps]        [LMTypewriter-LightCondensed]        [\s!features=\s!none]
        \definefontsynonym [MonoCapsSlanted]    [LMTypewriter-LightCondensed]        [\s!features=\s!none]
    \stoptypescript

    \starttypescript [\s!mono] [modern-light,latin-modern-light-designsize,latin-modern-light] [\s!name]
        \loadfontgoodies[lm]
        \definefontsynonym [\s!Mono]            [LMTypewriter-Light]        [\s!features=\s!none]
        \definefontsynonym [\s!MonoBold]        [LMTypewriter-Light]        [\s!features=\s!none]
        \definefontsynonym [\s!MonoItalic]      [LMTypewriter-LightOblique] [\s!features=\s!none]
        \definefontsynonym [\s!MonoSlanted]     [LMTypewriter-LightOblique] [\s!features=\s!none]
        \definefontsynonym [\s!MonoBoldItalic]  [LMTypewriter-Light]        [\s!features=\s!none]
        \definefontsynonym [\s!MonoBoldSlanted] [LMTypewriter-Light]        [\s!features=\s!none]
        \definefontsynonym [\s!MonoCaps]        [LMTypewriter-Light]        [\s!features=\s!none]
        \definefontsynonym [MonoCapsSlanted]    [LMTypewriter-Light]        [\s!features=\s!none]
    \stoptypescript

    % why not also [name]

    \starttypescript [\s!serif] [modern,latin-modern]
        \loadfontgoodies[lm]
        \definefontsynonym [LMRoman-Regular]        [\s!file:lmroman10-regular]      [\s!features=\s!default]
        \definefontsynonym [LMRoman-Bold]           [\s!file:lmroman10-bold]         [\s!features=\s!default]
        \definefontsynonym [LMRoman-Demi]           [\s!file:lmromandemi10-regular]  [\s!features=\s!default]
        \definefontsynonym [LMRoman-Italic]         [\s!file:lmroman10-italic]       [\s!features=\s!default]
        \definefontsynonym [LMRoman-Oblique]        [\s!file:lmromanslant10-regular] [\s!features=\s!default]
        \definefontsynonym [LMRoman-BoldItalic]     [\s!file:lmroman10-bolditalic]   [\s!features=\s!default]
        \definefontsynonym [LMRoman-BoldOblique]    [\s!file:lmromanslant10-bold]    [\s!features=\s!default]
        \definefontsynonym [LMRoman-DemiOblique]    [\s!file:lmromandemi10-oblique]  [\s!features=\s!default]
        \definefontsynonym [LMRoman-CapsRegular]    [\s!file:lmroman10-CapsRegular]  [\s!features=\s!default]
        \definefontsynonym [LMRoman-CapsOblique]    [\s!file:lmroman10-CapsOblique]  [\s!features=\s!default]
        \definefontsynonym [LMRoman-CapsRegular]    [\s!file:lmromancaps10-regular]  [\s!features=\s!default]
        \definefontsynonym [LMRoman-CapsOblique]    [\s!file:lmromancaps10-oblique]  [\s!features=\s!default]
        \definefontsynonym [LMRoman-Dunhill]        [\s!file:lmromandunh10-regular]  [\s!features=\s!default]
        \definefontsynonym [LMRoman-DunhillOblique] [\s!file:lmromandunh10-oblique]  [\s!features=\s!default]
        \definefontsynonym [LMRoman-Unslanted]      [\s!file:lmromanunsl10-regular]  [\s!features=\s!default]

    \stoptypescript

    \starttypescript [\s!sans] [modern,latin-modern]
        \loadfontgoodies[lm]
        \definefontsynonym [LMSans-Regular]               [\s!file:lmsans10-regular]           [\s!features=\s!default]
        \definefontsynonym [LMSans-Bold]                  [\s!file:lmsans10-bold]              [\s!features=\s!default]
        \definefontsynonym [LMSans-Oblique]               [\s!file:lmsans10-oblique]           [\s!features=\s!default]
        \definefontsynonym [LMSans-BoldOblique]           [\s!file:lmsans10-boldoblique]       [\s!features=\s!default]
        \definefontsynonym [LMSans-DemiCondensed]         [\s!file:lmsansdemicond10-regular]   [\s!features=\s!default]
        \definefontsynonym [LMSans-DemiCondensedOblique]  [\s!file:lmsansdemicond10-oblique]   [\s!features=\s!default]
        \definefontsynonym [LMSansQuotation-Regular]      [\s!file:lmsansquot8-regular]        [\s!features=\s!default]
        \definefontsynonym [LMSansQuotation-Bold]         [\s!file:lmsansquot8-bold]           [\s!features=\s!default]
        \definefontsynonym [LMSansQuotation-Oblique]      [\s!file:lmsansquot8-oblique]        [\s!features=\s!default]
        \definefontsynonym [LMSansQuotation-BoldOblique]  [\s!file:lmsansquot8-boldoblique]    [\s!features=\s!default]
    \stoptypescript

    \starttypescript [\s!mono] [modern,latin-modern,modern-variable,latin-modern-variable,modern-condensed,latin-modern-condensed]
        \definefontsynonym [LMTypewriter-Regular]               [\s!file:lmmono10-regular]           [\s!features=\s!none]
        \definefontsynonym [LMTypewriter-Italic]                [\s!file:lmmono10-italic]            [\s!features=\s!none]
        \definefontsynonym [LMTypewriter-Oblique]               [\s!file:lmmonoslant10-regular]      [\s!features=\s!none]
        \definefontsynonym [LMTypewriter-CapsRegular]           [\s!file:lmmonocaps10-regular]       [\s!features=\s!none]
        \definefontsynonym [LMTypewriter-CapsOblique]           [\s!file:lmmonocaps10-oblique]       [\s!features=\s!none]
        \definefontsynonym [LMTypewriter-Light]                 [\s!file:lmmonolt10-regular]         [\s!features=\s!none]
        \definefontsynonym [LMTypewriter-LightOblique]          [\s!file:lmmonolt10-oblique]         [\s!features=\s!none]
        \definefontsynonym [LMTypewriter-LightCondensed]        [\s!file:lmmonoltcond10-regular]     [\s!features=\s!none]
        \definefontsynonym [LMTypewriter-LightCondensedOblique] [\s!file:lmmonoltcond10-oblique]     [\s!features=\s!none]
        \definefontsynonym [LMTypewriter-Dark]                  [\s!file:lmmonolt10-bold]            [\s!features=\s!none]
        \definefontsynonym [LMTypewriter-DarkOblique]           [\s!file:lmmonolt10-boldoblique]     [\s!features=\s!none]
        \definefontsynonym [LMTypewriterVarWd-Regular]          [\s!file:lmmonoproplt10-regular]     [\s!features=\s!default]
        \definefontsynonym [LMTypewriterVarWd-Oblique]          [\s!file:lmmonoproplt10-oblique]     [\s!features=\s!default]
        \definefontsynonym [LMTypewriterVarWd-Light]            [\s!file:lmmonoprop10-regular]       [\s!features=\s!default]
        \definefontsynonym [LMTypewriterVarWd-LightOblique]     [\s!file:lmmonoprop10-oblique]       [\s!features=\s!default]
        \definefontsynonym [LMTypewriterVarWd-Dark]             [\s!file:lmmonoproplt10-bold]        [\s!features=\s!default]
        \definefontsynonym [LMTypewriterVarWd-DarkOblique]      [\s!file:lmmonoproplt10-boldoblique] [\s!features=\s!default]
    \stoptypescript

%     \starttypescript [\s!math] [modern,latin-modern]
%         \loadfontgoodies[lm]
%         \definefontsynonym [LMMathRoman-Regular] [\v!file:latinmodern-math-regular.otf] [\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=lm]
%         \definefontsynonym [LMMathRoman-Bold]    [\v!file:latinmodern-math-regular.otf] [\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=lm]
%     \stoptypescript

    \starttypescript [\s!math] [modern,latin-modern]
        \loadfontgoodies[lm]
        \definefontsynonym [LMMathRoman-Regular] [\v!file:latinmodern-math-regular.otf] [\s!features={\s!math\mathsizesuffix,lm-math,mathextra},\s!goodies=lm]
        \definefontsynonym [LMMathRoman-Bold]    [\v!file:latinmodern-math-regular.otf] [\s!features={\s!math\mathsizesuffix,lm-math-bold,lm-math,mathextra},\s!goodies=lm]
    \stoptypescript

    \starttypescript [modern-designsize-virtual]
        \definetypeface [\typescriptone] [\s!rm] [\s!serif] [latin-modern-designsize] [\s!default] [\s!designsize=\s!auto]
        \definetypeface [\typescriptone] [\s!ss] [\s!sans]  [latin-modern-designsize] [\s!default] [\s!designsize=\s!auto]
        \definetypeface [\typescriptone] [\s!tt] [\s!mono]  [latin-modern-designsize] [\s!default] [\s!designsize=\s!auto]
        \definetypeface [\typescriptone] [\s!mm] [\s!math]  [latin-modern-designsize] [\s!default] [\s!designsize=\s!auto]
        \quittypescriptscanning
    \stoptypescript

    \starttypescript [modern-designsize]
        \definetypeface [\typescriptone] [\s!rm] [\s!serif] [latin-modern-designsize] [\s!default] [\s!designsize=\s!auto]
        \definetypeface [\typescriptone] [\s!ss] [\s!sans]  [latin-modern-designsize] [\s!default] [\s!designsize=\s!auto]
        \definetypeface [\typescriptone] [\s!tt] [\s!mono]  [latin-modern-designsize] [\s!default] [\s!designsize=\s!auto]
        \definetypeface [\typescriptone] [\s!mm] [\s!math]  [modern]                  [\s!default]
        \quittypescriptscanning
    \stoptypescript

    \starttypescript [modern,modern-base]
        \definetypeface [\typescriptone] [\s!rm] [\s!serif] [modern] [\s!default]
        \definetypeface [\typescriptone] [\s!ss] [\s!sans]  [modern] [\s!default]
        \definetypeface [\typescriptone] [\s!tt] [\s!mono]  [modern] [\s!default]
        \definetypeface [\typescriptone] [\s!mm] [\s!math]  [modern] [\s!default]
        \quittypescriptscanning
    \stoptypescript

    \starttypescript [modernvariable,modern-variable]
        \definetypeface [\typescriptone] [\s!rm] [\s!serif] [modern-variable] [\s!default]
        \definetypeface [\typescriptone] [\s!tt] [\s!mono]  [modern-variable] [\s!default]
        \definetypeface [\typescriptone] [\s!mm] [\s!math]  [modern]          [\s!default]
        \quittypescriptscanning
    \stoptypescript

    \starttypescript [modernvariablelight,modern-variable-light]
        \definetypeface [\typescriptone] [\s!rm] [\s!serif] [modern-variable-light] [\s!default]
        \definetypeface [\typescriptone] [\s!tt] [\s!mono]  [modern-variable-light] [\s!default]
        \definetypeface [\typescriptone] [\s!mm] [\s!math]  [modern]                [\s!default]
        \quittypescriptscanning
    \stoptypescript

    \starttypescript [modern-mono,modern-base-mono]
        \definetypeface [\typescriptone] [\s!rm] [\s!serif] [modern]       [\s!default]
        \definetypeface [\typescriptone] [\s!ss] [\s!sans]  [modern]       [\s!default]
        \definetypeface [\typescriptone] [\s!tt] [\s!mono]  [modern-light] [\s!default]
        \definetypeface [\typescriptone] [\s!mm] [\s!math]  [modern]       [\s!default]
        \quittypescriptscanning
    \stoptypescript

\stoptypescriptcollection

%D It doesn't hurt to have these, at least for the moment (can go to type-imp-symbol)

\definefontsynonym [ZapfDingbats] [\s!file:uzdr*dingbats] % works better with symbols

% \definefontsynonym [ZapfDingbats] [\s!file:uzdr] [\s!features=dingbats]% [\s!goodies=dingbats]

\endinput
