From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/57057 Path: news.gmane.org!not-for-mail From: Michael Saunders Newsgroups: gmane.comp.tex.context Subject: simplefonts Date: Sat, 13 Mar 2010 10:09:50 -0600 Message-ID: <54d7f5601003130809m7a86c77djd5bc5784db45d689@mail.gmail.com> Reply-To: mailing list for ConTeXt users NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Trace: dough.gmane.org 1268496610 15760 80.91.229.12 (13 Mar 2010 16:10:10 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sat, 13 Mar 2010 16:10:10 +0000 (UTC) To: ntg-context@ntg.nl Original-X-From: ntg-context-bounces@ntg.nl Sat Mar 13 17:10:06 2010 Return-path: Envelope-to: gctc-ntg-context-518@m.gmane.org Original-Received: from balder.ntg.nl ([195.12.62.10]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1NqTua-0008JF-KI for gctc-ntg-context-518@m.gmane.org; Sat, 13 Mar 2010 17:10:00 +0100 Original-Received: from localhost (localhost [127.0.0.1]) by balder.ntg.nl (Postfix) with ESMTP id C99AFC9CC1; Sat, 13 Mar 2010 17:09:59 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at balder.ntg.nl Original-Received: from balder.ntg.nl ([127.0.0.1]) by localhost (balder.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id Y8BN3Qw0anyE; Sat, 13 Mar 2010 17:09:57 +0100 (CET) Original-Received: from balder.ntg.nl (localhost [127.0.0.1]) by balder.ntg.nl (Postfix) with ESMTP id E39B5C9CD3; Sat, 13 Mar 2010 17:09:56 +0100 (CET) Original-Received: from localhost (localhost [127.0.0.1]) by balder.ntg.nl (Postfix) with ESMTP id 5B97BC9CD3 for ; Sat, 13 Mar 2010 17:09:55 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at balder.ntg.nl Original-Received: from balder.ntg.nl ([127.0.0.1]) by localhost (balder.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id o8Ys42DZMu9o for ; Sat, 13 Mar 2010 17:09:52 +0100 (CET) Original-Received: from mail-gy0-f169.google.com (mail-gy0-f169.google.com [209.85.160.169]) by balder.ntg.nl (Postfix) with ESMTP id 5DC23C9CC1 for ; Sat, 13 Mar 2010 17:09:52 +0100 (CET) Original-Received: by gyb13 with SMTP id 13so39766gyb.14 for ; Sat, 13 Mar 2010 08:09:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject :from:to:content-type; bh=OP36ayoNDum5/1ERK9enIuaB6Q3l7VV0iaiuG3CpTfo=; b=AlGhIdrm7GKpYr/+a5LEuVd0SzwkrZg5EF9auY76weNoHUpEegy7H7q2woAuTqtqOh tQY/c5ccH5oZ+6Ly0JWiRxVFLt7SaIaj7kxTdtECKqLnDk0FPHpUz4n5zEbYNIJvPmum F51ypi66D/230TWUINie7gTUsEx+eFBjeTppE= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=Uzx4pUsJh/ij5iVUHM6/l3oB66n6tzLW2r0tllDiMrQEP9MoJIHgc1ZuL3DYuKirMp 7kJ2Eo9kNsYDbmj0EKIOMeyDuaIWYx/gIC42cXF8L7dofebP0j3wfaMxxuAvgMFmxTRm IBwPBpUq9JDQd5/kv434A6yrvLe7jkdF5s6yg= Original-Received: by 10.101.205.26 with SMTP id h26mr3689636anq.170.1268496590994; Sat, 13 Mar 2010 08:09:50 -0800 (PST) X-BeenThere: ntg-context@ntg.nl X-Mailman-Version: 2.1.12 Precedence: list List-Id: mailing list for ConTeXt users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: ntg-context-bounces@ntg.nl Errors-To: ntg-context-bounces@ntg.nl Xref: news.gmane.org gmane.comp.tex.context:57057 Archived-At: Aditya Mahajan: > Have you read the chapter on typography in the new manual > http://context.aanhet.net/svn/contextman/context-reference/en/co-typography.pdf Yes. Several times. And I took notes. ------------------------------ Hans Hagen: > > 1. What the first two arguments do. > the mode=base|node determines if we use traditional tex mechanisms > (base) or let mkiv do all work itself (node) > 2. What keys and values are available for the third, and what they mean. Thank you, but by "the first two arguments", I mean 1 and 2 of: \definefontfeature [1][2][3]. For example, in \definefontfeature[smallcaps][smallcaps][script=latn] I don't know what "[smallcaps][smallcaps]" is doing. > > 3. Once I have composed a \definefontfeature command, how do I use it > > in the text. > not in the text, only when defining fonts; although you can enable and > disable features in the running text (dynamicly) .. from the source: > % \startbuffer > % \definefontfeature[smallcaps][smallcaps][script=latn] > % \definefontfeature[oldstyle] [oldstyle] [script=latn] > % > % \definedfont[name:cambria at 15pt] > % > % Hello there {\setff{smallcaps}capped 123 \setff{oldstyle}123!} \blank > % Hello there {\addff{smallcaps}capped 123 \addff{oldstyle}123!} \blank > % Hello there {\addff{smallcaps}capped \subff{smallcaps}normal} \blank > % \stopbuffer > % > % \typebuffer \getbuffer Naturally, I don't know what any of this code means (which is why I seek a human language explanation), but I'm guessing that in \definefontfeature[oldstyle] [oldstyle] [script=latn] the first "[oldstyle]" creates a command or variable called "oldstyle", the second "[oldstyle]" relates this to something else (another command or variable, maybe a font file) which is also called "oldstyle", and the key-value pair "[script=latn]"qualifies this, selecting the only the Latin part of the second "[oldstyle]". (And, by the way, my font has Greek and Cyrillic as well---why disable oldstyle in them?) I think that leaves me with a command or variable or something called "oldstyle", which I could include in the text. My first guess would have been that it's "\oldstyle", but, later in your code snippet, I see "\setff{smallcaps}" and "\addff{smallcaps}". There's no telling what the difference is. So, I'm left guessing that \definefontfeature[oldstyle] [oldstyle] [script=latn] creates a possible argument for \setff{} and \addff{}, whatever they are. They might be the commands for font switching in the text. Since the code snippet isn't a human explanation, however, I can't tell--- I can only make wild guesses. > > 4. For example, I gathered that I needed a [default] [default] > > [...onum=yes...] to get oldstyle numerals by default, but what if I > > want to use some lining numerals here and there? > > \definefontfeature [lining] [lining] [...onum=no...] > > {\lining 123} > > doesn't do it. > lnum=yes I tried this, and \definefontfeature [lining] [lining] [lnum=yes] {\lining 123} still gives me "undefined control sequence" on \lining. I also tried {\switchtobodyfont [lining] 123}, which had no effect. > > 5. How I could use the superior and inferior shapes in my font---like > > for the footnotemarks, for example? > hm, with sups=yes,subs=yes i guess but better use \high{..} and \low{..} > as often such font features are rather limited and depend on the font I'll have to try that out (since I know which fonts have them), but: \definefontfeature [?] [?] [sups=yes,subs=yes] ? ------------------------------ Thomas A. Schmitz: > This is not to disparage Wolfgang's great simplefonts module, but I learnt setting up fonts the old-fashioned way (with typescripts), > so I will give a few explanations about this approach. Most of what you want can be achieved easily. I have Garamond Premier myself, and this is how I set it up: Thank you, this is very encouraging. I used to do this with otftotfm and .fd files, so it's not totally alien to me. I just need to grasp the syntax of the Context commands. I've been pouring over your example. There are a few points I still don't understand. ... > 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 I don't understand the syntax of \starttypescript. It doesn't appear in the manual. It occurs twice in the "typography" document. In both cases the first argument appears to be the name of the typescript. In one example, there is only one argument, and in the other example, the second argument appears to be a list of encodings. Since everything is now utf-8, I guess that could be forgotten. So, in your example here, I take "serif" to be the name of both typsecripts, but I don't know what [garamondprem] is doing. It's never spelled out, but from looking at examples of \definefontsynonym [1][2] in the docs, I think it means something like "what we used to call 2 we can now call 1", i.e., telling the machine to replace instances of "1" with "2". If this is the case, your third arguments above just seem to apply your features to the fonts referred to, which makes sense. I don't see, though, why this has to be done twice, and with an extra layer of misdirection. E.g., instead of: \definefontsynonym [Garamond-Roman] [name:garamondpremierpro] [features=myroman] \definefontsynonym [Serif] [Garamond-Roman] [features=myroman] why not just: \definefontsynonym [Serif] [name:garamondpremierpro] [features=myroman]? I think the purpose of the above step is to connect identifiers like "Serif" to a qualified font file. > Finally, define your first typeface: > > \starttypescript [GaramondPrem] > \definetypeface [GaramondPrem] [rm] [serif] [garamondprem] [default] > \stoptypescript I think this is a typescript called GaramondPrem that contains a typeface called GaramondPrem. It seems a little redundant that they have the same name. I know that the typescripts are referred to by \usetypescript, but I don't know where typefaces are referred to, so maybe it's just a dummy argument. The "[rm]" seems to be what links this to the font switching command, and the "[garamondprem]" obviously refers to both the typescripts you defined above. I don't understand what the "[serif]" is doing. 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. 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. > 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 I think I follow you, up to the line: \definefontsynonym [SerifItalic] [Serif]. These last lines seem to say that if you're in bold or italic, that you should still use regular superior figures, but the font has its own bold and italic superiors. I think that's true of all the weight/shape/design size variations in the set. > \starttypescript [GaramondPremUpper] > \definetypeface [GaramondPremUpper] [rm] [serif] [garamondpremupper] [default] > \stoptypescript 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. > OK so far? Thank you---that brought me a lot closer to understanding! after saving your example and running luatools --generate, I put the last lines in my test document and tried running Context on it in the usual way. I get the error: !undefined control sequence \usetypescript l.12 \usetypescript [GaramondPrem] > 5. How I could use the superior and inferior shapes in my font---like > for the footnotemarks, for example? > > You have defined a font instance with superiors. To use it, set up your footnotes accordingly: > > \setupfootnotes[textstyle=normal, > textcommand={\switchtobodyfont[GaramondPremUpper]}, > numbercommand={\switchtobodyfont[GaramondPremUpper]}] > 7. Maybe \definefontfeature is how I should turn on hz? > With the fontfeature, we have defined to use protrusion=pure,expansion=quality . To enable it, put this in the preamble of your document: > \enableprotruding > \enableadjusting I'll try these when I get things working. Thanks again. ------------------------------ Wolfgang Schuster: > \setupalign[hanging,hz] Or maybe I'll try that. ------------------------------ Andreas Harder: >> 5. How I could use the superior and inferior shapes in my font---like >> for the footnotemarks, for example? > \definefontfeature [sups] [default] [sups=yes] > > \setupnote > [footnote] > [command=, % -> numbercommand > textstyle=, % -> textcommand > numbercommand=\setff{sups}, % use superscript-figures > textcommand=\setff{sups}] > > So you don't have to define GaramondPremUpper. Thank you. With this, the marks in the text look good, the ones at the bottom (with the footnotes) look absurdly small. I suspect this might be because they have been optically scaled down, not switched to the smaller design size, so they seem to evaporate. They might look better if they remain the same size as in the text, I'm not sure. ------------------------------ Wolfgang Schuster: http://wiki.contextgarden.net/Optical_Size Ahhh, the rest of my weekend. Thank you. -- m ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________