From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/11271 Path: main.gmane.org!not-for-mail From: Bill McClain Newsgroups: gmane.comp.tex.context Subject: Re: Hanging punctuation Date: Sun, 9 Mar 2003 08:30:33 -0600 Sender: ntg-context-admin@ntg.nl Message-ID: <20030309083033.1abbcf56.wmcclain@salamander.com> References: <200303090907.32731.john@wexfordpress.com> Reply-To: ntg-context@ntg.nl NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart_Sun__9_Mar_2003_08:30:33_-0600_08487d38" X-Trace: main.gmane.org 1047220613 1578 80.91.224.249 (9 Mar 2003 14:36:53 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Sun, 9 Mar 2003 14:36:53 +0000 (UTC) Original-X-From: ntg-context-admin@ntg.nl Sun Mar 09 15:36:52 2003 Return-path: Original-Received: from ref.vet.uu.nl ([131.211.172.13] helo=ref.ntg.nl) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 18s1v1-0000PJ-00 for ; Sun, 09 Mar 2003 15:36:52 +0100 Original-Received: from ref.ntg.nl (localhost.localdomain [127.0.0.1]) by ref.ntg.nl (Postfix) with ESMTP id ED62C10B41; Sun, 9 Mar 2003 15:37:27 +0100 (MET) Original-Received: from smtp6.mindspring.com (smtp6.mindspring.com [207.69.200.110]) by ref.ntg.nl (Postfix) with ESMTP id CB1B410AB6 for ; Sun, 9 Mar 2003 15:33:39 +0100 (MET) Original-Received: from pmdeco1-70.rconnect.com ([209.163.54.70] helo=atipa.local) by smtp6.mindspring.com with esmtp (Exim 3.33 #1) id 18s1ri-0006nG-00 for ntg-context@ntg.nl; Sun, 09 Mar 2003 09:33:27 -0500 Original-Received: from atipa.local (localhost [127.0.0.1]) by atipa.local (8.12.6/8.12.6/SuSE Linux 0.6) with SMTP id h29EUXLE002739 for ; Sun, 9 Mar 2003 08:30:33 -0600 Original-To: ntg-context@ntg.nl In-Reply-To: <200303090907.32731.john@wexfordpress.com> X-Mailer: Sylpheed version 0.8.10claws (GTK+ 1.2.10; i686-pc-linux-gnu) Errors-To: ntg-context-admin@ntg.nl X-BeenThere: ntg-context@ntg.nl X-Mailman-Version: 2.0.13 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: mailing list for ConTeXt users List-Unsubscribe: , List-Archive: Xref: main.gmane.org gmane.comp.tex.context:11271 X-Report-Spam: http://spam.gmane.org/gmane.comp.tex.context:11271 This is a multi-part message in MIME format. --Multipart_Sun__9_Mar_2003_08:30:33_-0600_08487d38 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Sun, 9 Mar 2003 09:07:32 -0500 John Culleton wrote: > I have been able to use optical alignment in pdfetex by reading > carefully Han The Thanh's dissertation, but I haven't puzzled out the > Context implementation. Perhaps someone who has could post an example > that works for them. I've attached an example where I've hand-tuned the margin kerning for Sabon. Note this is just my subjective evaluation; I adjust the parameters from time to time and the script is always "in progress". If anyone wants to see the resulting pdf, just mail me. It's only 29k but I didn't want to clog the list further. Very important: note the [hanging] typescript at the bottom of type-sabon.tex. It won't work without that. This is also described in the "margin kerning" section at: http://home.salamander.com/~wmcclain/context-help.html -Bill -- Sattre Press Curiosities of the Sky http://sattre-press.com/ by Garrett Serviss info@sattre-press.com http://csky.sattre-press.com/ --Multipart_Sun__9_Mar_2003_08:30:33_-0600_08487d38 Content-Type: text/plain; name="sample.tex" Content-Disposition: attachment; filename="sample.tex" Content-Transfer-Encoding: 7bit \usetypescriptfile[type-sabon] \usetypescript [serif] [hanging] [sabon] \usetypescript[Sabon] \setupbodyfont[Sabon] \setupalign[hanging] \showframe \starttext \input tufte \input knuth \par \stoptext --Multipart_Sun__9_Mar_2003_08:30:33_-0600_08487d38 Content-Type: text/plain; name="type-sabon.tex" Content-Disposition: attachment; filename="type-sabon.tex" Content-Transfer-Encoding: 7bit % % Adobe Sabon % \usetypescriptfile[type-buy] \loadmapfile[texnansi-adobe-sabon.map] \starttypescript [serif] [sabon, sabon-oldstyle] [texnansi] \definefontsynonym [Sabon-Roman] [texnansi-sar] [encoding=texnansi] \definefontsynonym [Sabon-Bold] [texnansi-sab] [encoding=texnansi] \definefontsynonym [Sabon-Italic] [texnansi-sai] [encoding=texnansi] \definefontsynonym [Sabon-Bold-Italic] [texnansi-sabi] [encoding=texnansi] \definefontsynonym [Sabon-Roman-SmallCaps][texnansi-sarsc] [encoding=texnansi] \definefontsynonym [Sabon-Italic-OSF] [texnansi-saiof] [encoding=texnansi] \definefontsynonym [Sabon-Bold-OSF] [texnansi-sabof] [encoding=texnansi] \definefontsynonym [Sabon-Bold-Italic-OSF][texnansi-sabio] [encoding=texnansi] \stoptypescript \starttypescript [serif] [sabon] [name] \usetypescript[serif][fallback] \definefontsynonym [Serif] [Sabon-Roman] \definefontsynonym [SerifBold] [Sabon-Bold] \definefontsynonym [SerifItalic] [Sabon-Italic] \definefontsynonym [SerifBoldItalic] [Sabon-Bold-Italic] \definefontsynonym [SerifCaps] [Sabon-Roman-SmallCaps] % the regular old-style figures are in the small-caps file \definefontsynonym [OldStyle] [Sabon-Roman-SmallCaps] \stoptypescript \starttypescript [Sabon] \definetypeface [Sabon] [rm] [serif] [sabon] [default] [encoding=texnansi] \stoptypescript \starttypescript [serif] [sabon-oldstyle] [name] \usetypescript[serif][fallback] \definefontsynonym [Serif] [Sabon-Roman] \definefontsynonym [SerifBold] [Sabon-Bold-OSF] \definefontsynonym [SerifItalic] [Sabon-Italic-OSF] \definefontsynonym [SerifBoldItalic] [Sabon-Bold-Italic-OSF] \definefontsynonym [SerifCaps] [Sabon-Roman-SmallCaps] % the regular old-style figures are in the small-caps file \definefontsynonym [OldStyle] [Sabon-Roman-SmallCaps] \stoptypescript \starttypescript [SabonOldStyle] \definetypeface [SabonOldStyle] [rm] [serif] [sabon-oldstyle] [default] [encoding=texnansi] \stoptypescript \startfonthandling [sabon] \defineprotrudefactor ? 0 .05 \defineprotrudefactor ! 0 0 \defineprotrudefactor ' 0 .4 \defineprotrudefactor ` .4 0 \defineprotrudefactor ( .05 0 \defineprotrudefactor ) 0 .05 \defineprotrudefactor [ .05 0 \defineprotrudefactor ] 0 .05 \defineprotrudefactor , 0 .4 % comma is pretty heavy \defineprotrudefactor - 0 .5 \defineprotrudefactor . 0 .5 \defineprotrudefactor : 0 .2 \defineprotrudefactor ; 0 .2 \defineprotrudefactor rightupperninequote 0 .5 \defineprotrudefactor leftupperninequote .4 0 \defineprotrudefactor endash 0 .3 \defineprotrudefactor emdash 0 .2 \defineprotrudefactor hyphen 0 .5 \defineprotrudefactor A .05 .05 \defineprotrudefactor B 0 0 \defineprotrudefactor C 0 0 \defineprotrudefactor D 0 0 \defineprotrudefactor E 0 0 \defineprotrudefactor F 0 0 \defineprotrudefactor G 0 0 \defineprotrudefactor H 0 0 \defineprotrudefactor I 0 0 \defineprotrudefactor J 0 0 % .05 seems heavy on the left \defineprotrudefactor K 0 .05 \defineprotrudefactor L 0 .1 \defineprotrudefactor M .05 .05 \defineprotrudefactor N .05 .05 \defineprotrudefactor O 0 0 \defineprotrudefactor P 0 0 \defineprotrudefactor Q 0 0 \defineprotrudefactor R 0 .05 \defineprotrudefactor S 0 0 \defineprotrudefactor T .1 .1 \defineprotrudefactor U 0 0 \defineprotrudefactor V .1 .1 \defineprotrudefactor W 0 0 % .05 too much? \defineprotrudefactor X .05 .05 \defineprotrudefactor Y .1 .1 \defineprotrudefactor Z 0 0 \defineprotrudefactor a .1 .05 \defineprotrudefactor b 0 .1 \defineprotrudefactor c .05 .05 \defineprotrudefactor d .05 0 \defineprotrudefactor e .05 .05 \defineprotrudefactor f 0 -.05 % big overhang on the right \defineprotrudefactor g .05 0 \defineprotrudefactor h 0 0.05 \defineprotrudefactor i 0 0 \defineprotrudefactor j 0 0 \defineprotrudefactor k 0 .12 \defineprotrudefactor l 0 0 \defineprotrudefactor m 0 .05 \defineprotrudefactor n 0 .05 \defineprotrudefactor o .03 .03 % .05 seems too much \defineprotrudefactor p 0 .1 \defineprotrudefactor q .1 0 \defineprotrudefactor r 0 .1 \defineprotrudefactor s 0 0 % .05 seems too much \defineprotrudefactor t 0 .05 \defineprotrudefactor u 0 0 \defineprotrudefactor v .05 .05 \defineprotrudefactor w .05 .05 \defineprotrudefactor x .05 .05 \defineprotrudefactor y .05 .1 % long diagonal stroke \defineprotrudefactor z 0 0 % \inheritprotrudefactor Acircumflex A % \inheritprotrudefactor acircumflex a % \inheritprotrudefactor Ccircumflex C % \inheritprotrudefactor ccircumflex c % \inheritprotrudefactor Ecircumflex E % \inheritprotrudefactor ecircumflex e % \inheritprotrudefactor Gcircumflex G % \inheritprotrudefactor gcircumflex g % \inheritprotrudefactor Hcircumflex H % \inheritprotrudefactor hcircumflex h % \inheritprotrudefactor Icircumflex I % \inheritprotrudefactor icircumflex i % \inheritprotrudefactor Jcircumflex J % \inheritprotrudefactor jcircumflex j % \inheritprotrudefactor Ocircumflex O % \inheritprotrudefactor ocircumflex o % \inheritprotrudefactor Scircumflex S % \inheritprotrudefactor scircumflex s % \inheritprotrudefactor Ucircumflex U % \inheritprotrudefactor ucircumflex u % \inheritprotrudefactor Wcircumflex W % \inheritprotrudefactor wcircumflex w % \inheritprotrudefactor Ycircumflex Y % \inheritprotrudefactor ycircumflex y % % \inheritprotrudefactor Agrave A % \inheritprotrudefactor agrave a % \inheritprotrudefactor Egrave E % \inheritprotrudefactor egrave e % \inheritprotrudefactor Igrave I % \inheritprotrudefactor igrave i % \inheritprotrudefactor Ograve O % \inheritprotrudefactor ograve o % \inheritprotrudefactor Ugrave U % \inheritprotrudefactor ugrave u % \inheritprotrudefactor Ygrave Y % \inheritprotrudefactor ygrave y % % \inheritprotrudefactor Atilde A % \inheritprotrudefactor atilde a % \inheritprotrudefactor Itilde I % \inheritprotrudefactor itilde i % \inheritprotrudefactor Ntilde N % \inheritprotrudefactor ntilde n % \inheritprotrudefactor Otilde O % \inheritprotrudefactor otilde o % \inheritprotrudefactor Utilde U % \inheritprotrudefactor utilde u % % \inheritprotrudefactor Adiaeresis A % \inheritprotrudefactor adiaeresis a % \inheritprotrudefactor Ediaeresis E % \inheritprotrudefactor ediaeresis e % \inheritprotrudefactor Idiaeresis I % \inheritprotrudefactor idiaeresis i % \inheritprotrudefactor Odiaeresis O % \inheritprotrudefactor odiaeresis o % \inheritprotrudefactor Udiaeresis U % \inheritprotrudefactor udiaeresis u % \inheritprotrudefactor Ydiaeresis Y % \inheritprotrudefactor ydiaeresis y % % \inheritprotrudefactor Aacute A % \inheritprotrudefactor aacute a % \inheritprotrudefactor Cacute C % \inheritprotrudefactor cacute c % \inheritprotrudefactor Eacute E % \inheritprotrudefactor eacute e % \inheritprotrudefactor Iacute I % \inheritprotrudefactor iacute i % \inheritprotrudefactor Lacute L % \inheritprotrudefactor lacute l % \inheritprotrudefactor Nacute N % \inheritprotrudefactor nacute n % \inheritprotrudefactor Oacute O % \inheritprotrudefactor oacute o % \inheritprotrudefactor Racute R % \inheritprotrudefactor racute r % \inheritprotrudefactor Sacute s % \inheritprotrudefactor sacute s % \inheritprotrudefactor Uacute U % \inheritprotrudefactor uacute u % \inheritprotrudefactor Yacute Y % \inheritprotrudefactor yacute y % \inheritprotrudefactor Zacute Z % \inheritprotrudefactor zacute z % % \inheritprotrudefactor Dstroke D % \inheritprotrudefactor dstroke d % \inheritprotrudefactor Hstroke H % \inheritprotrudefactor hstroke h % \inheritprotrudefactor Tstroke T % \inheritprotrudefactor tstroke t % % \inheritprotrudefactor Cdotaccent C % \inheritprotrudefactor cdotaccent c % \inheritprotrudefactor Edotaccent E % \inheritprotrudefactor edotaccent e % \inheritprotrudefactor Gdotaccent G % \inheritprotrudefactor gdotaccent g % \inheritprotrudefactor Idotaccent I % \inheritprotrudefactor idotaccent i % \inheritprotrudefactor Zdotaccent Z % \inheritprotrudefactor zdotaccent z % % \inheritprotrudefactor Amacron A % \inheritprotrudefactor amacron a % \inheritprotrudefactor Emacron E % \inheritprotrudefactor emacron e % \inheritprotrudefactor Imacron I % \inheritprotrudefactor imacron i % \inheritprotrudefactor Omacron O % \inheritprotrudefactor omacron o % \inheritprotrudefactor Umacron U % \inheritprotrudefactor umacron u % % \inheritprotrudefactor Ccedilla C % \inheritprotrudefactor ccedilla c % \inheritprotrudefactor Kcedilla K % \inheritprotrudefactor kcedilla k % \inheritprotrudefactor Lcedilla L % \inheritprotrudefactor lcedilla l % \inheritprotrudefactor Ncedilla N % \inheritprotrudefactor ncedilla n % \inheritprotrudefactor Rcedilla R % \inheritprotrudefactor rcedilla r % \inheritprotrudefactor Scedilla S % \inheritprotrudefactor scedilla s % \inheritprotrudefactor Tcedilla T % \inheritprotrudefactor tcedilla t % % \inheritprotrudefactor Ohungarumlaut O % \inheritprotrudefactor ohungarumlaut o % \inheritprotrudefactor Uhungarumlaut U % \inheritprotrudefactor uhungarumlaut u % % \inheritprotrudefactor Aogonek A % \inheritprotrudefactor aogonek a % \inheritprotrudefactor Eogonek E % \inheritprotrudefactor eogonek e % \inheritprotrudefactor Iogonek I % \inheritprotrudefactor iogonek i % \inheritprotrudefactor Uogonek U % \inheritprotrudefactor uogonek u % % \inheritprotrudefactor Aring A % \inheritprotrudefactor aring a % \inheritprotrudefactor Uring U % \inheritprotrudefactor uring u % % \inheritprotrudefactor Abreve A % \inheritprotrudefactor abreve a % \inheritprotrudefactor Ebreve E % \inheritprotrudefactor ebreve e % \inheritprotrudefactor Gbreve G % \inheritprotrudefactor gbreve g % \inheritprotrudefactor Ibreve I % \inheritprotrudefactor ibreve i % \inheritprotrudefactor Obreve O % \inheritprotrudefactor obreve o % \inheritprotrudefactor Ubreve U % \inheritprotrudefactor ubreve u % % \inheritprotrudefactor Ccaron C % \inheritprotrudefactor ccaron c % \inheritprotrudefactor Dcaron D % \inheritprotrudefactor dcaron d % \inheritprotrudefactor Ecaron E % \inheritprotrudefactor ecaron e % \inheritprotrudefactor Lcaron L % \inheritprotrudefactor lcaron l % \inheritprotrudefactor Ncaron N % \inheritprotrudefactor ncaron n % \inheritprotrudefactor Rcaron R % \inheritprotrudefactor rcaron r % \inheritprotrudefactor Scaron S % \inheritprotrudefactor scaron s % \inheritprotrudefactor Tcaron T % \inheritprotrudefactor tcaron t % \inheritprotrudefactor Ycaron Y % \inheritprotrudefactor ycaron y % \inheritprotrudefactor Zcaron Z % \inheritprotrudefactor zcaron z % % \inheritprotrudefactor AEligature E % \inheritprotrudefactor aeligature e % \inheritprotrudefactor Lstroke I % \inheritprotrudefactor lstroke o % \inheritprotrudefactor Ostroke O % \inheritprotrudefactor ostroke o % \inheritprotrudefactor OEligature O % \inheritprotrudefactor oeligature o % % \inheritprotrudefactor Ssharp S % \inheritprotrudefactor ssharp s % \inheritprotrudefactor IJligature J % \inheritprotrudefactor ijligature j % % \inheritprotrudefactor aumlaut a % \inheritprotrudefactor eumlaut e % \inheritprotrudefactor iumlaut i % \inheritprotrudefactor oumlaut o % \inheritprotrudefactor uumlaut u % % \inheritprotrudefactor Aumlaut A % \inheritprotrudefactor Eumlaut E % \inheritprotrudefactor Iumlaut I % \inheritprotrudefactor Oumlaut O % \inheritprotrudefactor Uumlaut U % % \inheritprotrudefactor Lslash L % \inheritprotrudefactor lslash l % \inheritprotrudefactor Dslash D % \inheritprotrudefactor dslash d % \inheritprotrudefactor Oslash O % \inheritprotrudefactor oslash o % % \inheritprotrudefactor Eszett S % \inheritprotrudefactor eszett s % % \inheritprotrudefactor Thorn P % \inheritprotrudefactor thorn p % \stopfonthandling \starttypescript [serif] [hanging] [sabon] \setupfontsynonym [Serif] [handling=sabon] % not handling these yet %\setupfontsynonym [SerifBold] [handling=bold] %\setupfontsynonym [SerifSlanted] [handling=slanted] %\setupfontsynonym [SerifItalic] [handling=italic] %\setupfontsynonym [SerifBoldSlanted] [handling=boldslanted] %\setupfontsynonym [SerifBoldItalic] [handling=bolditalic] \stoptypescript --Multipart_Sun__9_Mar_2003_08:30:33_-0600_08487d38--