Changes

Jump to navigation Jump to search
no edit summary
< [[Fonts]] >
 
Typescripts are the ConTeXt way of using fonts and defining font families.
==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 font, step by step- Old Content]].
A typescript must live in your project folder or in another folder in your ConTeXt path (e.g., <tt>(texmf)/tex/context/user</tt>)
% load mapfile
 \starttypescript [map] [gentium] [\defaultencoding] \loadmapfile [\defaultencoding-sil-gentium.map]
\stoptypescript
% 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] \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 [\typescriptthree-sil-gentium.map]
\stoptypescript
% We use the same technique. As the encoding variable shows up in the third
% argument, we use \typescriptthree.
 \starttypescript [serif] [gentium] [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
% Getting fancy: occasionally you want to access alternates from the main font:
\starttypescript [serif] [gentium] [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]
\starttypescript [serif] [gentium] [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] [GentiumAlt-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
==Links==
* [http://www.pragma-ade.com/general/manuals/showfont.pdf examples of using typescripts] by Pragma
* [http://www.ramm.ch/fiee/texnique/?menu=0-1-4&amp;lang=en example typescripts] for free and commercial fonts, by Hraban (partly outdated)
* Sample of [http://wiki.contextgarden.net/exljbris_typescript MkIV typescripts for exljbris fonts]
* 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:FontsOld Content]]

Navigation menu