Changes

Jump to navigation Jump to search
no edit summary
< [[Fonts]] >Typescripts are the ConTeXt way of using fonts and defining font families.
Typescripts are Beware, the ConTeXt way of using fonts and defining font familiesexamples on this page work only with MkII / pdfTeX (i.e. neither XeTeX nor LuaTeX).
==Basics==
Sample typescript for the free text font [http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&item_id=Gentium Gentium]. Installation instructions are at [[Installing_a_TrueType_fontInstalling a TrueType font,_step_by_stepstep by step - Old Content]].A typescript must live in your project folder to be foundor in another folder in your ConTeXt path (e.g., even if I'd prefer <tt>(texmf)/fontstex/typescriptscontext/user</tt>...)
<texcode>
% load mapfile
 \starttypescript [map] [gentium] [\defaultencoding] \loadmapfile [\defaultencoding-sil-gentium.map]
\stoptypescript
% mapping from PostScript name (or visible font name, if it's a TrueType font) to TFM file name
% The second argument means that these names are loaded with either the 'gentium'% or 'gentium-alt' names. \starttypescript [serif] [gentium,gentium-alt] [\defaultencoding]% mapping is used by two "name" typescripts \definefontsynonym [GentiumAlt-ItalicGentium] [\defaultencoding-genai101genr101] [encoding=\defaultencoding] \definefontsynonym [GentiumAltGentium-Italic] [\defaultencoding-genar101geni101] [encoding=\defaultencoding] \definefontsynonym [Gentium-ItalicGentiumAlt] [\defaultencoding-geni101genar101][encoding=\defaultencoding] \definefontsynonym [GentiumGentiumAlt-Italic] [\defaultencoding-genr101genai101][encoding=\defaultencoding]
\stoptypescript
% mapping from generic family name to PostScript name
 \starttypescript [serif] [gentium] [name] \definefontsynonym [Serif] [Gentium] \definefontsynonym [SerifItalic] [Gentium-Italic]
\stoptypescript
% additional mapping to alternate glyphs, not further used
 \starttypescript [serif] [gentium-alt] [name] \usetypescript [serif] [gentium] [\defaultencoding] % use font name mapping \definefontsynonym [Serif] [GentiumAlt] \definefontsynonym [SerifItalic] [GentiumAlt-Italic]
\stoptypescript
% sample family definition
% here we define only the serif (rm) version.
 \starttypescript [my] [sil-gentium] \definetypeface [sil-gentium] [rm] [serif] [gentium] [default][encoding=\defaultencoding]% \definetypeface [sil-gentium] [ss] [sans] [default] [default][encoding=\defaultencoding]% \definetypeface [sil-gentium] [tt] [mono] [default] [default][encoding=\defaultencoding]% \definetypeface [sil-gentium] [mm] [math] [default] [default][encoding=\defaultencoding]
\stoptypescript
</texcode>
<texcode>
\setupencoding[default=ec] % defines \defaultencoding
 
\usetypescriptfile[type-sil-gentium]
\usetypescript[my][sil-gentium]
\setupbodyfont [sil-gentium, rm, 12pt]
\usetypescript[sil-gentium]\setupbodyfont[sil-gentium,rm,12pt] \setupbodyfontenvironment[default] [em=italic] % slanted is default emphasize in ConTeXt
</texcode>
% This is the first change we need to make: we list all the encodings it can match,
% and then use that data within the typescript:
 \starttypescript [map] [gentium] [ec,texnansi,8r,t5,t2a,t2b,qx] \loadmapfile [\typescripttwotypescriptthree-sil-gentium.map]
\stoptypescript
% We use the same technique. As the encoding variable shows up in the third
% argument, we use \typescriptthree.
% The second argument means that these names are loaded with either the 'gentium'% or 'gentium-alt' names.\starttypescript [serif] [gentium,gentium-alt] [ec,texnansi,8r,t5,t2a,t2b,qx] \definefontsynonym [GentiumAlt-ItalicGentium] [\typescriptthree-genai101genr101][encoding=\typescriptthree] \definefontsynonym [GentiumAltGentium-Italic] [\typescriptthree-genar101geni101][encoding=\typescriptthree] \definefontsynonym [Gentium-ItalicGentiumAlt] [\typescriptthree-geni101genar101] [encoding=\typescriptthree] \definefontsynonym [GentiumGentiumAlt-Italic] [\typescriptthree-genr101genai101] [encoding=\typescriptthree]
\stoptypescript
% We use Getting fancy: occasionally you want to access alternates from the new (and fast loading) main font fallbacks to cover bold markup.\starttypescript [serif] [gentium] [name] \setups [font:fallback:serif] \definefontsynonym [Serif] [Gentium] \definefontsynonym [SerifItalic] [Gentium-Italic]\stoptypescript
% The 'gentium-alt' script differs from its brother above in the fonts it points to.\starttypescript [serif] [gentium-alt] [name] \setups [font:fallback:serif]% We use the new (and fast loading) font fallbacks to cover bold markup. \definefontsynonym [Serif] [Gentium] \definefontsynonym [SerifItalic] [Gentium-Italic] % Gentium contains only two faces, so we map everything else on Italic \definefontsynonym [SerifSlanted] [SerifItalic] \definefontsynonym [SerifBoldItalic] [SerifItalic] \definefontsynonym [SerifCaps] [SerifItalic] \definefontsynonym [SerifBoldCaps] [SerifItalic] % markup of \Var[alt] results in a (subtle) font switch (Gentium's alternate glyphs change only some diacritics): \definefontvariant [Serif] [alt] [Alt] % unfortunately you need to define eight synonyms to handle the fallback cases: \definefontsynonym [SerifRegular] [Serif] \definefontsynonym [SerifRegularAlt] [GentiumAlt] % you must define "Regular" for every additional variant \definefontsynonym [SerifBoldAlt] [GentiumAlt] \definefontsynonym [SerifCapsAlt] [GentiumAlt] \definefontsynonym [SerifItalicAlt] [GentiumAlt-Italic] \definefontsynonym [SerifSlantedAlt] [GentiumAlt-Italic] \definefontsynonym [SerifBoldItalicAlt] [SerifItalicGentiumAlt-Italic] \definefontsynonym [SerifBoldSlantedAlt] [GentiumAlt-Italic]
\stoptypescript
% sample family definition
% here we define only the serif (rm) version.
\starttypescript [sil-gentium] [ec,texnansi,8r,t5,t2a,t2b,qx]
\definetypeface [sil-gentium] [rm] [serif] [gentium] [default] [encoding=\typescripttwo]
% \definetypeface [sil-gentium] [ss] [sans] [default] [default] [encoding=\typescripttwo]
% \definetypeface [sil-gentium] [tt] [mono] [default] [default] [encoding=\typescripttwo]
% \definetypeface [sil-gentium] [mm] [math] [default] [default] [encoding=\typescripttwo]
\stoptypescript
% Getting fancy: occasionally you want to access alternates from the main font:\starttypescript [serifsil-gentium] [ec,texnansi,8r,t5,t2a,t2b,qx] \definetypeface [sil-gentium] [namerm]% unfortunately you need to define eight synonyms to handle the fallback cases: \definefontsynonym [SerifRegularserif] [Serifgentium] \definefontsynonym [SerifRegularAltdefault] [GentiumAltencoding=\typescripttwo]% \definefontsynonym definetypeface [SerifBoldAltsil-gentium] [GentiumAltss] \definefontsynonym [SerifCapsAltsans] [GentiumAltdefault] \definefontsynonym [SerifItalicAltdefault] [GentiumAlt-Italicencoding=\typescripttwo]% \definefontsynonym definetypeface [SerifSlantedAltsil-gentium] [GentiumAlt-Italictt] \definefontsynonym [SerifBoldItalicAltmono] [GentiumAlt-Italicdefault] [default] [encoding=\typescripttwo]% \definefontsynonym definetypeface [SerifBoldSlantedAltsil-gentium] [GentiumAlt-Italicmm% markup of \Var[altmath] results in a (subtle) font switch: \definefontvariant [Serifdefault] [altdefault] [Altencoding=\typescripttwo]
\stoptypescript
==Links==
* [http://www.pragma-ade.com/general/manuals/showfont.pdf examples of using typescripts] by Pragma
* Sample of [http://wwwwiki.rammcontextgarden.chnet/fiee/texnique/?menu=0-1-4&amp;lang=en example exljbris_typescript MkIV typescripts] for free and commercial exljbris fonts, by Hraban (partly outdated)]
* typescripts for some fonts from the FontSite500 CD on the [[Font Site]] page, by Holger Schöner
* typescripts for lazy font combinations on the [[Flexi Face]] page
* some pointers on extending typescripts to accommodate access to &ldquo;variants,&rdquo; like old-style figures, are on the [[Font Variants]] page
* [[Fonts in XeTeX- Old Content]] gives some details about the [[XeTeX]]-specific typescripts in <tt>type-xtx</tt> [[Category:Old Content]]

Navigation menu