[R] unicode&pdf font problem RESOLVED

tdenes at cogpsyphy.hu tdenes at cogpsyphy.hu
Thu Jan 13 16:17:04 CET 2011


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
>
>



More information about the R-help mailing list