Dear Prof Ripley, FWIW, kerning problems seem to affect even European character sets, e.g.:
> pdf(); plot(0,main="árvíztűrő tükörfúrógép"); dev.off() in a clean session produces some misaligned characters in the resulting Rplots.pdf. [--> note the misplacements after the characters ő and ű (Hungarian long umlaut): intToUtf8(c(337L,369L)) ] Otherwise I completely concur with Greg Snow, huge Thank You for keeping on improving the marvellous capabilities of R! Best regrads, Bálint -- > sessionInfo() R version 2.6.2 (2008-02-08) i386-pc-mingw32 locale: LC_COLLATE=Hungarian_Hungary.1250;LC_CTYPE=Hungarian_Hungary.1250;LC_MONETARY=Hungarian_Hungary.1250;LC_NUMERIC=C;LC_TIME=Hungarian_Hungary.1250 attached base packages: [1] stats graphics grDevices utils datasets methods base [* sorry for not using the most recent R version, I hope this is still helpful -- otherwise please ignore my comment...] -- Bálint Czúcz Institute of Ecology and Botany of the Hungarian Academy of Sciences H-2163 Vácrátót, Alkotmány u. 2-4. HUNGARY Tel: +36 28 360122/157 +36 70 7034692 On Thu, Oct 16, 2008 at 5:56 PM, Greg Snow <[EMAIL PROTECTED]> wrote: > Prof. Ripley, > > I am sure I speak for many others when I say Thank You for this and all the > other great work that you do. R is already capable of producing high quality > graphics, this will just make them better. Kerning is one of those things > that generally don't get noticed unless done wrong/poorly, so I expect in the > future people will look at their graphs and know that they look great, but > not understand why, or the work that you put into giving them that extra > quality. So I just wanted to take this chance to say thank you (I/we > probably don't say it enough). > > Also Thank You to the rest of R core for all the great work. > > R: Come for the price, Stay for the Quality > > -- > Gregory (Greg) L. Snow Ph.D. > Statistical Data Center > Intermountain Healthcare > [EMAIL PROTECTED] > 801.408.8111 > > >> -----Original Message----- >> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] >> project.org] On Behalf Of Prof Brian Ripley >> Sent: Thursday, October 16, 2008 3:03 AM >> To: R-devel@r-project.org >> Subject: Re: [Rd] RFC: Kerning, postscript() and pdf() >> >> I've now implemented B and C in R-devel, with C as the default. >> >> On Sun, 12 Oct 2008, Prof Brian Ripley wrote: >> >> > Ei-ji Nakama has pointed out (from another Japanese user, I believe) >> that >> > postscript() and pdf() have not been handling kerning correctly, and >> this is >> > a request for opinions about how we should correct it. >> > >> > Kerning is the adjustment of the spacing between letters from their >> natural >> > width, so that for example 'Yo' is usually typeset with the o closer >> to the Y >> > than 'Yl' would be. Kerning is not very well standardized, so that >> for >> > example R's default Helvetica and its URW clone (Nimbus Sans) have >> quite >> > different ideas of the amount of kerning corrections for 'Yo'. This >> matters, >> > because not many people actually see Helvetica when viewing R's >> PostScript or >> > PDF output, but rather a similar face like Nimbus Sans or Arial, or >> in the >> > case of Acrobat Reader, a not very similar face. Kerning is only a >> feature >> > of some proportionally spaced fonts and so not of Courier nor CJK >> fonts. >> > >> > The current position (R <= 2.8.0) is that string widths have been >> computing >> > using kerning from the Adobe Font Metric files for the nominal font, >> but the >> > strings have been displayed without using kerning (at least in the >> viewers we >> > are aware of, and the PostScript and PDF reference manuals mandate >> that >> > behaviour, if rather obscurely). This means that in strings such as >> 'You', >> > the width used in the string placement differs from that actually >> displayed. >> > >> > For postscript(), this doesn't have much impact, as centring or right >> > justification ('hadj' in text()) is done by PostScript code and >> computes the >> > width from the actual font used (and so copes well with font >> substitution). >> > It might affect the fine layout in plotmath, but using strings which >> would be >> > kerned in annotations is not common. >> > >> > For pdf() the effect is more commonly seen, as all text is set >> > left-justified, and the computed width is used to centre/right- >> justify. >> > >> > There are several things we could do: >> > >> > A. Do nothing, for back compatibility. After all, this has been >> going on >> > for years and no one has complained until last month. >> > >> > B. Ignore kerning, and hence change the string width computations to >> match >> > the current display. This is more attractive than it appears at >> first sight >> > -- as far as I know all other devices ignore kerning, and we are >> increasingly >> > used to seeing 'typeset' output without kerning. It would be >> desirable when >> > copying graphs by e.g. dev.copy2eps from devices that do not kern. >> > >> > C. Insert kerning corrections by splitting up strings, so e.g. 'You' >> is set >> > as (Y)-140 kc(ou): this is what TeX engines do. >> > >> > D. Compute the position of each letter in the string and place them >> > individually. >> > >> > C and D would give visually identical output when the font used is >> exactly as >> > specified, and hopefully also when a substitute font is using with >> the same >> > glyph widths (as substituting Nimbus Sans for Helvetica, at least for >> some >> > versions of each), but where the substitute is a poor match, C ought >> to look >> > more elegant but line up less well. D would produce much larger >> files than >> > C. >> > >> > We do have the option of not changing the output when there is no >> kerning. >> > That would be by far the most common case except that some fonts >> (including >> > Helvetica but not Nimbus Sans) kern between punctuation and a space, >> e.g. ', >> > '. I'm inclined to believe that most uses of ',' in R graphical >> output are >> > not punctuation (certainly true of R's own examples), and also that >> we >> > nowadays do not expect to see kerning involving spaces. >> > >> > Ei-ji Nakama provided an implementation of C for pdf() and D for >> postscript() >> > (thanks Ei-ji, and apologies that we did not have a chance to discuss >> the >> > principles first). I'm inclined to suggest that we should go >> forwards with >> > at most two of these alternatives, and those two should be the same >> for >> > postscript() and pdf() -- my own inclination is to B and C. >> > >> > So questions: >> > >> > 1) Do people feel strongly that we should preserve graphical output >> from past >> > versions of R, even when there are known bugs? I can see the need to >> > reproduce published figures, but normally this would also need using >> the same >> > version of R. >> > >> > 2) Is kerning worth pursuing? >> > >> > 3) If so, is elegant looking output more important than exact layout? >> > >> > 4) If we allow kerning, should it be the default (or only) option? >> > >> > To see that sometimes there can be a large effect, try in >> postscript() or >> > pdf() >> > >> > xx <- 'You You You You You You You You' >> > plot(0,0,xlim=c(0,1),ylim=c(0,1),type='n') >> > abline(v=0) >> > text(0, 0.5, xx, adj=0) >> > abline(v=strwidth(xx)) >> > x2 <- strsplit(xx, "") >> > w <- sapply(x2, strwidth) >> > abline(v=sum(w)) >> > >> > The leftmost of the right pair of lines is the computed width, the >> rightmost >> > the (normal) displayed width. >> > >> > Unless there are cogent reasons to bring this forward to 2.8.1, any >> changes >> > would be as from 2.9.0. >> > >> > Brian Ripley >> > >> > -- >> > Brian D. Ripley, [EMAIL PROTECTED] >> > Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ >> > University of Oxford, Tel: +44 1865 272861 (self) >> > 1 South Parks Road, +44 1865 272866 (PA) >> > Oxford OX1 3TG, UK Fax: +44 1865 272595 >> > >> >> -- >> Brian D. Ripley, [EMAIL PROTECTED] >> Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ >> University of Oxford, Tel: +44 1865 272861 (self) >> 1 South Parks Road, +44 1865 272866 (PA) >> Oxford OX1 3TG, UK Fax: +44 1865 272595 >> >> ______________________________________________ >> R-devel@r-project.org mailing list >> https://stat.ethz.ch/mailman/listinfo/r-devel > > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel > ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel