From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/50695 Path: news.gmane.org!not-for-mail From: Arthur Reutenauer Newsgroups: gmane.comp.tex.context Subject: Re: French typography is back Date: Fri, 22 May 2009 17:51:57 +0200 Message-ID: <20090522155157.GF30326@phare.normalesup.org> References: <20090520062507.GA4330@Fity> <4A152521.5070406@wxs.nl> <20090521132031.GA27281@khaled-laptop> <4A166F8F.4020003@elvenkind.com> <4A1682EC.1000201@wxs.nl> <4A168B4D.6010702@elvenkind.com> <4A169E10.6020209@pengzone.org> Reply-To: Mailing list for ConTeXt users NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="1yeeQ81UyVL57Vl7" Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1243007584 13853 80.91.229.12 (22 May 2009 15:53:04 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 22 May 2009 15:53:04 +0000 (UTC) To: Mailing list for ConTeXt users Original-X-From: ntg-context-bounces@ntg.nl Fri May 22 17:52:57 2009 Return-path: Envelope-to: gctc-ntg-context-518@m.gmane.org Original-Received: from ronja.vet.uu.nl ([131.211.172.88] helo=ronja.ntg.nl) by lo.gmane.org with esmtp (Exim 4.50) id 1M7X3H-000636-60 for gctc-ntg-context-518@m.gmane.org; Fri, 22 May 2009 17:52:55 +0200 Original-Received: from localhost (localhost [127.0.0.1]) by ronja.ntg.nl (Postfix) with ESMTP id 598261FE8D; Fri, 22 May 2009 17:52:54 +0200 (CEST) Original-Received: from ronja.ntg.nl ([127.0.0.1]) by localhost (smtp.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 24034-01; Fri, 22 May 2009 17:52:12 +0200 (CEST) Original-Received: from ronja.vet.uu.nl (localhost [127.0.0.1]) by ronja.ntg.nl (Postfix) with ESMTP id 2DA4E1FE82; Fri, 22 May 2009 17:52:12 +0200 (CEST) Original-Received: from localhost (localhost [127.0.0.1]) by ronja.ntg.nl (Postfix) with ESMTP id F2CD11FE82 for ; Fri, 22 May 2009 17:52:09 +0200 (CEST) Original-Received: from ronja.ntg.nl ([127.0.0.1]) by localhost (smtp.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 16207-03 for ; Fri, 22 May 2009 17:52:00 +0200 (CEST) Original-Received: from filter3-til.mf.surf.net (filter3-til.mf.surf.net [194.171.167.219]) by ronja.ntg.nl (Postfix) with ESMTP id 9FA861FE81 for ; Fri, 22 May 2009 17:52:00 +0200 (CEST) Original-Received: from nef2.ens.fr (nef2.ens.fr [129.199.96.40]) by filter3-til.mf.surf.net (8.13.8/8.13.8/Debian-3) with ESMTP id n4MFpwWX024575 for ; Fri, 22 May 2009 17:52:00 +0200 Original-Received: from phare.normalesup.org (phare.normalesup.org [129.199.129.80]) by nef2.ens.fr (8.13.6/1.01.28121999) with ESMTP id n4MFpv5g009361 for ; Fri, 22 May 2009 17:51:57 +0200 (CEST) X-Envelope-To: Original-Received: by phare.normalesup.org (Postfix, from userid 1008) id 6F9F6BC0BC; Fri, 22 May 2009 17:51:57 +0200 (CEST) Content-Disposition: inline In-Reply-To: <4A169E10.6020209@pengzone.org> User-Agent: Mutt/1.5.17 (2007-11-01) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-3.1.4 (nef2.ens.fr [129.199.96.32]); Fri, 22 May 2009 17:51:57 +0200 (CEST) X-Bayes-Prob: 0.0001 (Score 0, tokens from: @@RPTN) X-CanIt-Geo: ip=129.199.96.40; country=FR; region=A8; city=Paris; latitude=48.8667; longitude=2.3333; http://maps.google.com/maps?q=48.8667,2.3333&z=6 X-CanItPRO-Stream: uu:ntg-context@ntg.nl (inherits from uu:default, base:default) X-Canit-Stats-ID: 230113409 - de51e05b3c9e - 20090522 X-Scanned-By: CanIt (www . roaringpenguin . com) on 194.171.167.219 X-Virus-Scanned: amavisd-new at ntg.nl X-BeenThere: ntg-context@ntg.nl X-Mailman-Version: 2.1.11 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 X-Virus-Scanned: amavisd-new at ntg.nl Xref: news.gmane.org gmane.comp.tex.context:50695 Archived-At: --1yeeQ81UyVL57Vl7 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable > but instead of arbitrary adding a 0.25em= =20 > before and 1em after the punctuation mark you should use the real nnbsp= =20 > (U+202F) before and real normal space (U+0020) after. I don't think so. Space characters don't mix very well with TeX glue and should best be avoided, generally speaking. In particular, all inter-word spaces that are input in the TeX source as one or more of U+0020 are simply ignored, and replaced by normal inter-word glue, with its appropriate stretchability and shrinkability. This has always been the case in TeX and is not going to change. All other types of Unicode spaces should really, in my opinion, be processed in the same way, while respecting their additional properties in the case of non-breakable spaces, for instance. In addition, characters like U+202F are very badly supported across fonts, and if you take in account the fact that the most appropriate width will probably change depending on the language, you're likely to observe much more arbitrary results if you use the glyph for that character in font. I seriously doubt you want to rely on the font for that. > Why? Let me take your example again: > > {\setcharacterspacing[frenchpunctuation]a? aa? aaa? abba?} > > a\,? aa\,? aaa\,? abba\,? > > Surprise: the first line is longer than the second. It's because sizes = of=20 > the U+0020 and U+202F depend on the font design, their size are not exa= ctly=20 > 1em and 0.25em. That's not the reason. The reason is simply that \, is defined as a \kern by one sixth of an em (see core-spa.mkiv: it's equivalent to \thinspace, which is \kern .16667em). In the first line, the value of .25em is defined in core-spa.mkiv; you can redefine it if you want. In any case, every space is completely controlled by ConTeXt, we don't let the font mess around. For that matter, Latin Modern doesn't have a glyph for U+202F, so if we'd use it, we'd just see nothing: there would be no space at all, see attached file. > Moreover, this is true that in french typography we should use a thin s= pace=20 > before some punctuation mark, and a thin space in France *was* one four= th=20 > of an em. BUT due to modern digital typography, a thin space now corres= pond=20 > to something like one fifth of an em. > In digital typography, the normal space, i.e. inter-word separation, i.= e.=20 > "espace justifiante" in French, has generally a size around one fourth = of=20 > an em, calculated by the engine (you know that better than me). The thi= n=20 > space is a bit more than a half of the inter-word separation, i.e. betw= een=20 > 1/8 and 1/6 of an em. All this really calls for more coordination in order to produce decent specifications, in my opinion. If you think ConTeXt's default should be different, it's fine and I encourage you to contact S=E9bastien to discus= s about it. Report then to Hans and Peter for the implementation. > So I *really* believe that you should not define space before and after= =20 > punctuation with "arbitrary" em spacing. There must be a way to do a=20 > "search and replace" with the correct glyphs (U+202F and U+0020) before= and=20 > after punctuation marks. As my example file demonstrates, we clearly shouldn't use the glyphs from the font. Arthur --1yeeQ81UyVL57Vl7 Content-Type: application/pdf Content-Disposition: attachment; filename="frenchpunctuation.pdf" Content-Transfer-Encoding: base64 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 v/xd/twW/vftTjW1DCN/B+fhUmuf2t4H0V9g8VUmMY3Io0bENfoBuhNKLkj4TCk1gVLyQjXW ZOcFNzckGP2dhOT6thRytNq9MCJcsP7GXIw1Zlu2eH/temgqeVLeckkCY0F0vb463U9e8K45 aCHPZPpIpEnaD217ASuIUC/PCYeT6W329FY3QAK7q4qbU9FfHy7ts+hwbYEYxaZJiJKZ4tC1 NQNdyzN4S7MGmpPlxvxyDyT/53yOVcfTPT1KTTqlUYbwmtseBhxbO4ipC85sYwMhQoLBGNkM 4QWD2Gw2RygwuHEswfJk5oJJ4ViK5WnogilKSlGEARdELVk0gnU3+shGW+xPrZ0BHB2VrjZO 0McK2QqZWZCFEkXGqAftJOgjQ1nZ3LIoRuVmUzjazbIrtu/lfqVs0Nrcp3tU7qLtbQkJ93fX qtZWub97sOP3Y9n7xvsLKswVgwplbmRzdHJlYW0KZW5kb2JqCjMxIDAgb2JqIDw8Ci9Qcm9k dWNlciAoTHVhVGVYLTAuNDAuMSkKL1RyYXBwZWQgL0ZhbHNlL0NvblRlWHQuVmVyc2lvbiAo MjAwOS4wNS4wOSAxMDozMCkvQ29uVGVYdC5UaW1lICgyMDA5LjA1LjIyIDE3OjUwKS9Db25U ZVh0LkpvYm5hbWUgKGZyZW5jaHB1bmN0dWF0aW9uKS9Db25UZVh0LlVybCAod3d3LnByYWdt YS1hZGUuY29tKS9UaXRsZSA8ZmVmZjAwNjYwMDcyMDA2NTAwNmUwMDYzMDA2ODAwNzAwMDc1 MDA2ZTAwNjMwMDc0MDA3NTAwNjEwMDc0MDA2OTAwNmYwMDZlPiAvU3ViamVjdCA8ZmVmZj4g L0F1dGhvciA8ZmVmZj4gL0NyZWF0b3IgPGZlZmYwMDQzMDA2ZjAwNmUwMDU0MDA2NTAwNTgw MDc0MDAyMDAwMmQwMDIwMDAzMjAwMzAwMDMwMDAzOTAwMmUwMDMwMDAzNTAwMmUwMDMwMDAz OTAwMjAwMDMxMDAzMDAwM2EwMDMzMDAzMD4gL01vZERhdGUgKENvblRlWHQgLSAyMDA5LjA1 LjA5IDEwOjMwKSAvSUQgKGZyZW5jaHB1bmN0dWF0aW9uLjIwMDkwNTIyKSAvS2V5d29yZHMg PGZlZmY+Ci9DcmVhdGlvbkRhdGUgKEQ6MjAwOTA1MjIxNzUwMDErMDInMDAnKQovUFRFWC5G dWxsYmFubmVyIChUaGlzIGlzIEx1YVRlWCwgVmVyc2lvbiBiZXRhLTAuNDAuMSAoV2ViMkMg Ny41LjcpIGtwYXRoc2VhIHZlcnNpb24gMy41LjdkZXYpCj4+IGVuZG9iago4IDAgb2JqIDw8 Ci9UeXBlIC9PYmpTdG0KL04gMjAKL0ZpcnN0IDE0MgovTGVuZ3RoIDEwMjUgICAgICAKL0Zp bHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnhetZbbbttIDIbv9RS8bLFwNCdJIyAokCNq bL0tbG9aVPCFas96BTiSYclA8/b9OZJSO6ljYze9MMyhOAdyPnKoSJCkNCWJf2tIKlJpRAmZ NCFpKNaKZEQWP5lQKiKKSUqpSWKKinSgMM8YSYrtdEpsZ1JSWMqmglRESiQYJ6S0tmSgYWto 4gQLkrKxJA3DVOjg/DwIpw9rR+GnfOmC8KoqG1c2NWkccxyEY1dX283c1TizV4zcosgvq++U CSiiNDpTSRSTNfLM2tTOAiy0wQrYiO3fvfNb3GJZOj+n8FbiQPgACYeKelHByU6rEQoWMTP8 tKnmE9dQhuNd31I4dd8bmvGiGRlBWYQg4TejVPkBBNMLcSdI0RrOEPDeSoreTIrWrl1GinR3 hKD7mbOdMLEn166eb4p1U21az/7K7xHAr9MPo8uPf3wYjaqykmowdsvtKmeTVb6sybS2lz52 A2MMDbSUlPA9C5kicBf1nAPHI1xEvn7viuW/DcVSBiFvyR95ThAOm3xVzC/K5cqRCMJJ4+7v QIEKwi/dJKNhxvvdFisHdtrb626jvXD+irnbb40fshJr3ZTzalGUSwqHC2xYNA+D90F4mdfO 3+FhL9sTLnJsCcOaMrCMPeHXtPq7LLCqIwT02DGuhtc8vzvNCfvuXwink+f0M+eXl7Di5KFG iIblPxUgZKiXRd1sHujNxaL65t4G4cfNwm3Y6ze911BOtuv1yt1z2AWH7hE7ndgWuRgORZbT QELBJEX44jmLdcxS1BphRN03EBbDwHhLxCizsDyNsOHdcDwZg7BxdZ+XIKSW4ghmONQAiY5K ISS2E2KHM4z2OLN6hzNMOsSZiH9yFsmO644zn8avwdnLvj6HzZebfdjs0bMcgu1IoPdKAFfp njhfz34LcQo0MXEmFW2RM5qrHZCDgFKeYsC1C2VFJaojj0eYQPjvapu2ABWvCWWQvP408qaT i8nNl568yQpZfrTCRQLoITmkUVyAVLKLnkpeQM8+QW8gH4tcirJ2oMapV6txR7x9Bh+e3qfw weVjiXAIvmOx3qcPXUBHH/qC30AfOogsidGjMFV4srNWwMvIZHW/GUVQ+C8R7E0MAXOyRCQQ QGscx6iBgDROoNWGdKRnePu4Oiqy6HyghAIIYw4PWoXFsl7o2GdksTme6+4f5PeI9+D7Rx7N T4KFJcrur5KAtI3x8ymApx878kklzHkuvECL5P05LT1uvt58Hl316XE0M3BnbWZoZPL/yoyT 8uLVavJhN5+nxPN6rP57PX4hvk+y4bEWow1+9WzYb5Zr7pa33LAF4Z/FAh2PT0Xfnv60vMrR q1VLbouX6KLbrji8c5u6qEqSZxGb/wCEIVV3CmVuZHN0cmVhbQplbmRvYmoKMzIgMCBvYmog PDwKL1R5cGUgL1hSZWYKL0luZGV4IFswIDMyXQovU2l6ZSAzMgovVyBbMSAyIDFdCi9Sb290 IDMwIDAgUgovSW5mbyAzMSAwIFIKL0lEIFs8RDNEREUxNkE1ODlENTk5MTA0MzBCRjVDREI0 RENENEM+IDxEM0RERTE2QTU4OUQ1OTkxMDQzMEJGNUNEQjREQ0Q0Qz5dCi9MZW5ndGggMTA0 ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeF4VyL0NgmAAhOE7PsVP RMAfSsMCNMSEgkWcwISGjm2IE7EIW+Bd8eS9HIA9QaSAKKFWkkuUA/vW310ShtU7MJvco6TM v94nPuGeJWO9eV/4Gt2rFGw+3iW72b3Jg+8fOCz4A/0oCQ8KZW5kc3RyZWFtCmVuZG9iagpz dGFydHhyZWYKMTUwMDMKJSVFT0YK --1yeeQ81UyVL57Vl7 Content-Type: application/x-tex Content-Disposition: attachment; filename="frenchpunctuation.tex" Content-Transfer-Encoding: quoted-printable % engine=3Dluatex=0A=0A\starttext=0A=0ALet's see what sort of spaces \CONTE= XT{} puts before interrogation marks in=0A{\em frenchpunctuation} character= spacing mode:\blank[small]=0A=0A{\setcharacterspacing[frenchpunctuation]a?= aa? aaa? abba?}=0A=0A\blank[big]=0A=0AIf we hardcode the thin space, it's = a bit shorter:\blank[small]=0A=0Aa\,? aa\,? aaa\,? abba\,?=0A=0A\blank[big]= =0A=0AHere we use the font's glyph for U+202F {\sc narrow no-break space} a= nd we see=0Anothing: Latin Modern doesn't have a glyph for it.\blank[small]= =0A=0Aa\char"202F? aa\char"202F? aaa\char"202F? abba\char"202F?=0A=0A\blank= [big]=0A=0ANow we override Mark IV's default settings, see {\tt core-spa.mk= iv}\blank[small]=0A\unprotect=0A\setupcharacterspacing [frenchpunctuation] = ["003F] [\c!left =3D .16667,\c!alternative=3D1]=0A\protect=0A=0A{\setcharac= terspacing[frenchpunctuation]a? aa? aaa? abba?}=0A=0A\stoptext=0A --1yeeQ81UyVL57Vl7 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ___________________________________________________________________________________ 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 : https://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________ --1yeeQ81UyVL57Vl7--