[PD] Pd internal font size inconsistency on Raspbian

Jonathan Wilkes jancsika at yahoo.com
Thu Oct 8 15:41:37 CEST 2015


Four things:1) The font dialog shouldn't use numbers.  It should say "tiny", "small", "medium", etc. because those numbers just mislead the user.

2)  Font dialog number "10" in Vanilla may correspond to any font size that hasa width less than or equal to 7 pixels (and height <= 13).  That includes DejaVu Sans Mono at pixel size 11 on Raspbian.  Since the text fits in the box in your screenshot we can tell Tk is measuring the actual font correctly.  (Well, more orless-- what happens with a message box that has, say 50 lines?).
3) I can't figure out how pd_font_10 ends up with pixel size "11".

4) There are only two ways I can think of to fix this problem.  One is to alwayssize boxes according to fi_maxwidth and fi_maxheight.  The other is to forgo 
the automated metrics and brute-force it so that DejaVu Sans Mono fits exactlyinto the hardcoded metrics of s_main.c.  I chose the 2nd solution in the GUI 
port, but only because I have decimal pixel sizes to choose from.  Tcl/tk doesn't 
let you do that.
I'll check again but I think my method looks fine on Raspbian as well as Ubuntu.
I also played around with Droid Sans Mono Dotted because it has CJK 
characters.  But DejaVu Sans Mono evidently has them, too-- or at least whenI copy/paste them they show up correctly.  (Perhaps there's some kind of 
fallback mechanism that I'm not seeing.)  Those characters open up a 
wellspring of new problems.  They are referred to as "full width", but take 
up something like 1.5x width of ascii characters.  If you use them in 
any flavor of Pd they overflow the object/message box borders.

-Jonathan
 


     On Thursday, October 8, 2015 2:53 AM, katja <katjavetter at gmail.com> wrote:
   

 On Thu, Oct 8, 2015 at 12:23 AM, Jonathan Wilkes <jancsika at yahoo.com> wrote:
> Ok, try this in place of the command that was giving the error:
> pdtk_post "rank tk speculation follows: [font actual [get_font_for_size
> $font_size] -displayof $tkcanvas]\n"
>

There you got it, inspector Wilkes! For Xubuntu the output is:

rank tk speculation follows: -family {DejaVu Sans Mono} -size -10
-weight normal -slant roman -underline 0 -overstrike 0

For Raspbian:

rank tk speculation follows: -family {DejaVu Sans Mono} -size -11
-weight normal -slant roman -underline 0 -overstrike 0

In both cases the font size menu says "10".

>
>
>
>
>
>
>
>
>
>
>
> On Wednesday, October 7, 2015 4:33 PM, Jonathan Wilkes via Pd-list
> <pd-list at lists.iem.at> wrote:
>
>
> Sorry, I thought that would work.  I'll sit down and wade through all the
> indirection later to get a working debug printout.
>
> -Jonathan
>
>
>
> On Wednesday, October 7, 2015 4:26 PM, katja <katjavetter at gmail.com> wrote:
>
>
> On Wed, Oct 7, 2015 at 9:40 PM, Jonathan Wilkes <jancsika at yahoo.com> wrote:
>> For the official record-- I'm holding my tongue, in the hopes that when
>> others look at the code
>> in my GUI port they'll practice similar restraint.
>>
>> Ok, add this:
>>
>> pdtk_post "for real this time-- the actual font we are sending to tk is:
>> [set [get_font_for_size $font_size]]\n"
>
> Pd list is now looking at a line that doesn't work. The error is:
>
> can't read "::pd_font_10": no such variable
>
>
>
>
>> -Jonathan
>>
>>
>>
>>
>>
>>
>> On Wednesday, October 7, 2015 3:19 PM, katja <katjavetter at gmail.com>
>> wrote:
>>
>>
>> On Wed, Oct 7, 2015 at 8:37 PM, Jonathan Wilkes <jancsika at yahoo.com>
>> wrote:
>>> Silly me, I forgot this is Pd so it has to be way more complex than
>>> that...
>>>
>>> Add this line to pdtk_text_new in pdtk_text.tcl:
>>>
>>> pdtk_post "the actual font we are sending to tk is: [get_font_for_size
>>> $font_size]\n"
>>>
>>> Now do the test I mentioned before.
>>
>> The answer is in both cases:
>>
>> "the actual font we are sending to tk is: ::pd_font_10"
>>
>>
>>
>>> -Jonathan
>>>
>>>
>>>
>>> On Wednesday, October 7, 2015 2:16 PM, Jonathan Wilkes via Pd-list
>>> <pd-list at lists.iem.at> wrote:
>>>
>>>
>>> Hi katja,
>>>
>>> Could you do a test?  Make a simple patch with a single object in it, and
>>> use the same canvas font size you did above.  Then run Pd with -d 3 flag
>>> and
>>> see what font size is actually being sent from Pd to the GUI on each
>>> distro.
>>>
>>> -Jonathan
>>>
>>>
>>>
>>>
>>>
>>> On Wednesday, October 7, 2015 12:28 PM, katja <katjavetter at gmail.com>
>>> wrote:
>>>
>>>
>>> Hello,
>>>
>>> A particular font size issue can be observed in vanilla Pd and package
>>> puredata on Raspbian Wheezy and Jessie: font size 10 is larger for
>>> object boxes, message boxes and comments than for IEM guis (bang,
>>> toggle, slider, radio button, canvas). Object/message/comment
>>> characters are too large in number of pixels. When Edit > Font > Font
>>> Size is set to 8, their size is identical to IEM gui font size 10.
>>> This inconsistency does not happen for me on Xubuntu. A test patch and
>>> two screenshots are attached for illustration.
>>>
>>> For IEM guis, font size 10 translates to 6 pixels per character on
>>> both systems, given the default font type DejaVu Sans Mono. For object
>>> boxes, message boxes and comments, font size 10 is 6 pixels on Xubuntu
>>> and almost 7 pixels on Raspbian.
>>>
>>> I don't know if this issue is related to font size effects on Windows
>>> as described by Roman in another thread. In any case, consequences are
>>> similar: patches created on Xubuntu tend to look messy on Raspbian,
>>> sometimes with overlapping texts. With XFCE (Xubuntu's default desktop
>>> environment) installed on Raspbian the issue still persists. Custom
>>> dpi setting has no effect on Pd. What else might cause the difference
>>> in behavior on those systems?
>>>
>>> Katja
>>>
>>> _______________________________________________
>>> Pd-list at lists.iem.at mailing list
>>> UNSUBSCRIBE and account-management ->
>>> http://lists.puredata.info/listinfo/pd-list
>>>
>>>
>>>
>>> _______________________________________________
>>> Pd-list at lists.iem.at mailing list
>>> UNSUBSCRIBE and account-management ->
>>> http://lists.puredata.info/listinfo/pd-list
>>>
>>>
>>
>>
>
>
>
> _______________________________________________
> Pd-list at lists.iem.at mailing list
> UNSUBSCRIBE and account-management ->
> http://lists.puredata.info/listinfo/pd-list
>
>


  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20151008/3417594a/attachment-0001.html>


More information about the Pd-list mailing list