[racket] text/font not rendering symbol fonts on WinXP

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Fri Nov 23 16:32:24 EST 2012

Oh, I see. I'm sorry I don't know what is going wrong. Different
versions of cairo/pango could be relevant, possibly.

I doubt it is going to matter, but if you change the expression on
line 932 in collects/mrlib/image-core.rkt:

           (send dc draw-text (text-string np-atomic-shape)
                 (real-part p)
                 (imag-part p)
                 #f 0 θ)

by turning the #f into a #t, does that change anything?

Robby


On Fri, Nov 23, 2012 at 2:55 PM, Clement Erik Ferguson
<clementraphael at gmail.com> wrote:
> I'm sorry, I don't think I've explained the problem I'm having clearly.
>
> I have fonts that I'm using that map latin characters to neumes for
> byzantine chant music. So pressing "1" gives me a particular musical symbol,
> and "a" gives me another symbol. I am trying to use text/font to render
> those symbols, so I call it with a "1" but I'm getting a "1" instead of the
> musical symbol on certain platforms. This method works fine on Ubuntu 12.04
> 32bit and a Debian system that another user tested it on (I'm not sure of
> the version info), but it isn't working on Windows XP and on Ubuntu 12.10
> 64bit.
>
> If you go to https://github.com/muraiki/byzscribe and scroll down to the
> picture, you can see what the output should look like. On platforms where it
> doesn't work, instead of getting the musical symbols I simply get the
> textual string that should map to those symbols, such as 01a.
>
> You can download the font package, which includes a PDF with a character
> table, from here: http://www.stanthonysmonastery.org/music/ByzMusicFonts.zip
> The character table is EZ-CharacterTables.pdf
>
> The other symbol fonts that I've tried work in the same way, although
> instead of musical symbols they have other things like snowflakes and
> shapes. Those aren't the fonts that I need to use, but I wanted to make sure
> that the problem didn't lie in the byzantine chant fonts. On platforms where
> the byzantine chant fonts don't work as expected, no other symbol fonts
> work, either.
>
> I'm sorry if this is a bit confusing. Thank you for your help!
>
>
>
> On Fri, Nov 23, 2012 at 3:38 PM, Robby Findler <robby at eecs.northwestern.edu>
> wrote:
>>
>> If you want to use, say, α, then you need an actual α in the string, not
>> an "a".
>>
>> I don't know how the dingbats work, but certainly that's how it works
>> for characters that are in the unicode character set.
>>
>> (You can type those characters by using their LaTeX equivalents and
>> then hitting control-\ or alt-\ (depending on the platform).)
>>
>> Robby
>>
>> On Fri, Nov 23, 2012 at 2:02 PM, Clement Erik Ferguson
>> <clementraphael at gmail.com> wrote:
>> > Now I'm experiencing the same problem in Ubuntu 12.10. No symbol fonts
>> > render when using text/font; I only get the latin text equivalent. I
>> > tried
>> > this using the Dingbats font built into Ubuntu along with custom symbol
>> > fonts I had downloaded. Both Dingbats and the other symbol fonts I
>> > downloaded work fine in other programs.
>> >
>> > The system where this did work correctly was an Ubuntu 12.04 machine
>> > (running under a VM). The Ubuntu 12.10 machine I'm using now is a fresh
>> > OS
>> > installation using the 64-bit binary downloaded from the Racket site.
>> >
>> > Is anyone else using Ubuntu 12.10? Can you try running the following
>> > code?
>> >
>> > (require 2htdp/image)
>> > (text/font "test" FONT-SIZE "black" "Dingbats" 'symbol 'normal 'normal
>> > #f)
>> >
>> > This should render some triangles and a snowflake, not "test".
>> >
>> > Thanks!
>> >
>> >
>> > On Wed, Nov 21, 2012 at 1:54 PM, Robby Findler
>> > <robby at eecs.northwestern.edu>
>> > wrote:
>> >>
>> >> The text/font function ultimately just calls find-or-create-font with
>> >> the font details and then draw-string on the dc<%> with the string, so
>> >> I guess that this is either a problem at that level of the Racket GUI
>> >> system, or something that is just different about how Windows works
>> >> from other platforms. (Sorry I don't know the right answer here.)
>> >>
>> >> Robby
>> >>
>> >> On Wed, Nov 21, 2012 at 12:29 PM, Clement Erik Ferguson
>> >> <clementraphael at gmail.com> wrote:
>> >> > Hi all,
>> >> >
>> >> > I'm a newcomer to Racket and I ran into a problem with the text/font
>> >> > function in 2htdp/image. stamourv on #racket helped me diagnose this,
>> >> > and it
>> >> > seems to be a problem confined to Windows XP. When using text/font
>> >> > with
>> >> > a
>> >> > symbol font like Wingdings or Symbol (standard symbol fonts included
>> >> > with
>> >> > Windows) the character is not rendered. Instead, I get whatever the
>> >> > equivalent Roman character would be.
>> >> >
>> >> > For instance:
>> >> >
>> >> > (define testingfont
>> >> >   (text/font "012abc" 36 "black"
>> >> >              "Wingdings" 'default 'normal 'normal #f))
>> >> >
>> >> > If I then type testingfont into the interactions window, instead of
>> >> > rendering a series of symbols I get the input string 012abc instead.
>> >> > I
>> >> > also
>> >> > tried using 'symbol instead of 'default. We tried the same code on
>> >> > Debian
>> >> > (stamourv) and Ubuntu (me) and it worked fine on those platforms.
>> >> >
>> >> > I'm running Windows XP 32-bit, and I am using Racket 5.3.1.
>> >> >
>> >> > Thanks!
>> >> >
>> >> > ____________________
>> >> >   Racket Users list:
>> >> >   http://lists.racket-lang.org/users
>> >> >
>> >
>> >
>
>


Posted on the users mailing list.