Thomas A. Schmitz: Thank you, Thomas. I've been studying this closely.
A typescript file can contain a series of typeface definitions, e.g., one for serif, one for sans, one for mono, one for math, etc. hence the syntax \starttypescript
[<typeface>] [<identifier>] I see! So, I'm guessing that it is this <typeface> which connects the typescripts to the font switching commands like \rm. My guess is: <typeface> switch serif \rm sans \ss mono \tt math \mm ?? \hw ?? \cg and that Context only permits these six families?
In the typography manual, Hans says, "The third and fourth arguments to \definetypeface are pointers to already declared font sets; these are defined elsewhere." I think by "font set" he must mean a typescript like garamondprem, but I don't know where the font set (typescript?) "serif" is or why two font sets need to be pointed to.
???
That's how I feel. The command in question was: \definetypeface [GaramondPrem] [rm] [serif] [garamondprem] [default] The typography document says that the "[serif] [garamondprem]" "are pointers to already declared font sets; these are defined elsewhere." I know now that "[garamondprem]" is the "font set" in your typescript. I don't know what font set "[serif]" points to or why.
The same typography document goes on to explain the fifth argument: "The fifth argument to \definetypeface specifies specific font size setups (if any), these will be covered in section ?? in the next chapter." This is getting scary, but I'm hoping putting "[optical]" there will solve everything.
I don't follow. http://context.aanhet.net/svn/contextman/context-reference/en/co-typography.... says: "The fifth argument to \definetypeface specifies specific font size setups (if any), these will be covered in section ?? in the next chapter." If this chapter were inserted into the manual, the next chapter would be about color and backgrounds, so, no luck searching there. But, I noticed that that fifth argument was filled by "[optical]" at the bottom of this page: http://wiki.contextgarden.net/Optical_Size so: "\definetypeface [minion-pro] [rm] [serif] [minion-pro] [optical]"
I'm confused about how [GaramondPremUpper] and [garamondpremupper] seem to be getting associated with [rm] and [serif] after they were already associated with [GaramondPrem] and [garamondprem]. I don't see how, when I now use \rm, the machine is going to know whether I mean garamondpremupper or garamondprem. The rest of the file seems straightforward.
In ConTeXt, you are always within a certain bodyfont (the one defined with the \definetypeface command). A switch like \it or \rm will thus take the italic/roman from this bodyfont. Meaning: when you say \setubodyfont[GaramondPrem], it will use "normal" Garamond Premier, if you use \switchtobodyfont[GaramondPremUpper], it will use the superior numbers variant.
Ahhh, okay. It wasn't intuitive to me, as a user, that a relatively small change (from, say, oldstyle to superiors) would take a much bigger switch (of the whole bodyfont) than would a relatively big change (from, say, roman to italic, which only needs a little \it). I wrote a set of font switches once (in LaTeX) that were all little digraph codes (major axis: rm, it, sl, ui; minor axis: rg, ac, sc, sw, in, su, nu, de, po, pl, to, tl + ornaments, which handles all of the variations that Adobe makes, anyway). Maybe I'll be able to reproduce it once I get this working.
I get the error: !undefined control sequence <recently read> \usetypescript l.12 \usetypescript [GaramondPrem]
Then we will need your example - this is not normal behavior.
okay: First, I put an almost exact copy of your file (with your comments commented out) in type-garamondprem.tex in C:\contextminimal\tex\texmf-local and ran luatools --generate, which seems to see the directory alright. Then I put the commands: \usetypescriptfile [type-garamondprem] \usetypescript [GaramondPremUpper] \usetypsecript [GaramondPrem] \setupbodyfont [GaramondPrem,12pt] in my preamble, with nothing else. When I try to run Context, the above error was returned. For the record, here is the exact contents of type-garamondprem.tex: %So we define a set of such features for the different font instances we want to define. %In my case, I want regular text with oldstyle figures, small caps with lining figures, and superior numerals. This goes into your typescript: \definefontfeature [myroman] [protrusion=pure,expansion=quality,script=latn,liga=yes,onum=yes,pnum=yes,kern=yes,tlig=yes,trep=yes] \definefontfeature [mysmcp] [mode=node,script=latn,language=dflt,liga=yes,onum=yes,pnum=yes,kern=yes,tlig=yes,trep=yes,smcp=yes] \definefontfeature [mysup] [mode=node,script=latn,onum=no,pnum=yes,sups=yes] %Next step: we set up the "normal" and smallcaps font: \starttypescript [serif] [garamondprem] \definefontsynonym [Garamond-Roman] [name:garamondpremierpro] [features=myroman] \definefontsynonym [Garamond-Bold] [name:garamondpremierprobold] [features=myroman] \definefontsynonym [Garamond-Italic] [name:garamondpremierproitalic] [features=myroman] \definefontsynonym [Garamond-Bold-Italic] [name:garamondpremierprobolditalicc] [features=myroman] \definefontsynonym [Garamond-SmallCaps] [name:garamondpremierpro] [features=mysmcp] \stoptypescript \starttypescript [serif] [garamondprem] \definefontsynonym [Serif] [Garamond-Roman] [features=myroman] \definefontsynonym [SerifItalic] [Garamond-Italic] [features=myroman] \definefontsynonym [SerifBold] [Garamond-Bold] [features=myroman] \definefontsynonym [SerifBoldItalic] [Garamond-Bold-Italic] [features=myroman] \definefontsynonym [SerifCaps] [Garamond-SmallCaps] [features=mysmcp] \stoptypescript %Finally, define your first typeface: \starttypescript [GaramondPrem] \definetypeface [GaramondPrem] [rm] [serif] [garamondprem] [default] \stoptypescript %Next step: defining a typeface with superior numbers for footnote references etc.: \starttypescript [serif] [garamondpremupper] \definefontsynonym [GaramondPremUpper-Roman] [name:agaramondproregular] [features=mysup] \stoptypescript \starttypescript [serif] [garamondpremupper] \definefontsynonym [Serif] [GaramondPremUpper-Roman] [features=mysup] \definefontsynonym [SerifItalic] [Serif] \definefontsynonym [SerifBold] [Serif] \definefontsynonym [SerifBoldItalic] [Serif] \definefontsynonym [SerifCaps] [Serif] \stoptypescript \starttypescript [GaramondPremUpper] \definetypeface [GaramondPremUpper] [rm] [serif] [garamondpremupper] [default] \stoptypescript %Save this typescript somewhere where ConTeXt can find it and run luatools --generate. To use these in your documents, you need these lines Thank you again, this has been a huge help.