[R] unicode&pdf font problem RESOLVED

David Winsemius dwinsemius at comcast.net
Thu Jan 13 16:42:12 CET 2011


Good work, Denes;

Setting encodings to CP1250 in the pdf call allows the Hungarian  
umlaut glyph to be printed to a pdf document on Macs as well, which by  
the way uses a default postscript/pdf family="Helvetica".

-- 
David.
On Jan 13, 2011, at 10:17 AM, tdenes at cogpsyphy.hu wrote:

>
> Dear David,
>
> Thank you for your efforts. Inspired by your remarks, I started a new
> google-search and found this:
> http://stackoverflow.com/questions/3434349/sweave-not-printing-localized-characters
>
> SO HERE COMES THE SOLUTION (it works on both OSs):
>
> pdf.options(encoding = "CP1250")
> pdf()
> plot(1,type="n")
> text(1,1,"\U0171")
> dev.off()
>
> CP1250 should work for all Central-European languages:
> http://en.wikipedia.org/wiki/Windows-1250
>
>
> Thank you again,
>  Denes
>
>
>
>>
>> On Jan 13, 2011, at 7:01 AM, tdenes at cogpsyphy.hu wrote:
>>
>>>
>>> Hi!
>>>
>>> Sorry for the missing specs, here they are:
>>>> version
>>>              _
>>> platform       i386-pc-mingw32
>>> arch           i386
>>> os             mingw32
>>> system         i386, mingw32
>>> status
>>> major          2
>>> minor          12.1
>>> year           2010
>>> month          12
>>> day            16
>>> svn rev        53855
>>> language       R
>>> version.string R version 2.12.1 (2010-12-16)
>>>
>>> OS: Windows 7 (English version, 32 bit)
>>>
>>>
>>
>> You are after what Adobe calls: udblacute; 0171.  It is recognized in
>> the list of adobe glyphs:
>>> str(tools::Adobe_glyphs[371, ])
>> 'data.frame':	1 obs. of  2 variables:
>>  $ adobe  : chr "udblacute"
>>  $ unicode: chr "0171"
>>
>> Consulted the help pages
>> points {graphics}
>> postscript {grDevices}
>> pdf {grDevices}
>> charsets {tools}
>> postscriptFonts {grDevices}
>>
>> I have tried a variety of the pdfFonts installed on my Mac without
>> success. You can perhaps make a list of fonts on your machines with
>> names(pdfFonts()). Perhaps the range of fonts and the glyphs they
>> contain is different on your machines. I get consistently warning
>> messages saying there is a conversion failure:
>>
>>> pdf("trial.pdf", family="Helvetica")
>> # also tried with font="Helvetica" but I think that is erroneous
>>> plot(1,type="n")
>>> text(1,1,"print \U0170\U0171")
>> Warning messages:
>> 1: In text.default(1, 1, "print Űű") :
>>   conversion failure on 'print Űű' in 'mbcsToSbcs': dot substituted
>> for <c5>
>> 2: In text.default(1, 1, "print Űű") :
>>   conversion failure on 'print Űű' in 'mbcsToSbcs': dot substituted
>> for <b0>
>> 3: In text.default(1, 1, "print Űű") :
>>   conversion failure on 'print Űű' in 'mbcsToSbcs': dot substituted
>> for <c5>
>> 4: In text.default(1, 1, "print Űű") :
>>   conversion failure on 'print Űű' in 'mbcsToSbcs': dot substituted
>> for <b1>
>> 5: In text.default(1, 1, "print Űű") :
>>   font metrics unknown for Unicode character U+0170
>> 6: In text.default(1, 1, "print Űű") :
>>   font metrics unknown for Unicode character U+0171
>> 7: In text.default(1, 1, "print Űű") :
>>   conversion failure on 'print Űű' in 'mbcsToSbcs': dot substituted
>> for <c5>
>> 8: In text.default(1, 1, "print Űű") :
>>   conversion failure on 'print Űű' in 'mbcsToSbcs': dot substituted
>> for <b0>
>> 9: In text.default(1, 1, "print Űű") :
>>   conversion failure on 'print Űű' in 'mbcsToSbcs': dot substituted
>> for <c5>
>> 10: In text.default(1, 1, "print Űű") :
>>   conversion failure on 'print Űű' in 'mbcsToSbcs': dot substituted
>> for <b1>
>>
>> And this is despite my system saying the \U0170 and \U0171 are  
>> present
>> in the Helvetica font. Also tried family=URWHelvetica and
>> family=NimbusSanand and a bunch of others without success, but my  
>> last
>> best hope after reading the material in help(postscript) in the
>> "Families" section had been NimbusSan.  There is also information on
>> that page regarding encodings that appears to be very machine  
>> specific.
>>
>>>
>>> Note that \U0171 != ü. See
>>> http://www.fileformat.info/info/unicode/char/171/index.htm
>>> Anyway, I have no problem with ű (~u") and other special
>>> Hungarian
>>> characters in my R-Gui. It is correctly displayed in the console, in
>>> plots, etc. The problem is with the pdf conversion.
>>>
>>> The same holds for my Ubuntu Hardy Heron system*, with exactly the
>>> same
>>> error messages as reported in an earlier thread
>>> http://www.mail-archive.com/r-help@r-project.org/msg89792.html
>>> As far as I know, Hershey fonts do not contain \U0171.
>>>
>>>
>>> Regards,
>>> Denes
>>>
>>> * The specs of Ubuntu:
>>>> version
>>>              _
>>> platform       x86_64-pc-linux-gnu
>>> arch           x86_64
>>> os             linux-gnu
>>> system         x86_64, linux-gnu
>>> status
>>> major          2
>>> minor          12.0
>>> year           2010
>>> month          10
>>> day            15
>>> svn rev        53317
>>> language       R
>>> version.string R version 2.12.0 (2010-10-15)
>>>
>>>
>>>>
>>>> On Jan 12, 2011, at 11:11 PM, tdenes at cogpsyphy.hu wrote:
>>>>
>>>>>
>>>>> Dear List,
>>>>>
>>>>> I would like to print a plot into pdf. The problem is that the
>>>>> character
>>>>> \U0171 is replaced by a simple 'u' (i.e. without accents) in the  
>>>>> pdf
>>>>> file.
>>>>>
>>>>> Example:
>>>>> # this works fine
>>>>> plot(1,type="n")
>>>>> text(1,1,"print \U0171")
>>>>>
>>>>> # this fails
>>>>> pdf("trial.pdf")
>>>>> plot(1,type="n")
>>>>> text(1,1,"print \U0171")
>>>>> dev.off()
>>>>
>>>> Have you tried:
>>>>
>>>> pdf("trial.pdf")
>>>> plot(1,type="n")
>>>> text(1,1,"print ü")
>>>> dev.off()
>>>>
>>>> Your default screen fonts may not be the same as your default pdf
>>>> fonts. A lot depends on system specifics, none of which have you
>>>> provided.
>>>>
>>>>
>>>>>
>>>>> I found an earlier post at
>>>>> http://www.mail-archive.com/r-help@r-project.org/msg65541.html,  
>>>>> but
>>>>> it is
>>>>> too hard to understand at my R-level. Any help is appreciated.
>>>>
>>>>
>>>>
>>>> David Winsemius, MD
>>>> West Hartford, CT
>>>>
>>>>
>>>
>>>
>>>
>>>
>>>
>>
>> David Winsemius, MD
>> West Hartford, CT
>>
>>
>
>

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list