[PD] Font size on Windows and Linux

Matt Barber brbrofsvl at gmail.com
Sat Oct 3 18:43:58 CEST 2015


There was a problem in extended some years ago when tcl/tk 8.5 broke a lot
of font stuff by trying to do too much automatically, which caused some
cross-platform trouble. I ended up having to make a wrapper for linux that
momentarily changed the screen DPI, since 8.5 would use that to size fonts,
and would get it wrong. I have no clue what happens now, but maybe this
will be helpful:

http://markmail.org/message/ssygglbvuz6mdkjz

On Sat, Oct 3, 2015 at 12:20 PM, Jonathan Wilkes via Pd-list <
pd-list at lists.iem.at> wrote:

> > This becomes more than an aesthetic problem-- for example, if you try to
> move the cursor,Pd moves it based on Miller's font metrics, not the users.
>
> Actually, I'm not at all certain if its the Pd font metrics.  It may be
> that the font engine uses different
> inter-line spacing, or that tcl/tk reports the wrong metric, or something
> else.  The point is that if your
> message box is 400 pixels high and the text that fills it is only 380
> pixels high, Pd calculates cursor
> position based on the _box_ size.  As you add more lines to the box that
> discrepancy grows until
> it becomes nearly impossible to move the cursor or select text accurately.
>
> -Jonathan
>
>
>
> On Saturday, October 3, 2015 12:12 PM, Jonathan Wilkes via Pd-list <
> pd-list at lists.iem.at> wrote:
>
>
> What font are you using?
>
> I have to admit that after looking at Pd's font system, I have no idea how
> it's supposed to
> work.  There are two hardcoded collections of font metrics-- one in
> font_fixed_metrics in that
> tcl file, and another in s_main.c called sys_fontlist.  It looks like the
> one in the tcl file is used as
> a point of reference against which tcl/tk can measure the font on the
> user's system.  But then
> when you sent those metrics off to Pd, it takes them and compares them
> _again_, this time
> against the sys_fontlist min/max x/y values.  That seems unnecessarily
> complex and prone
> to error.
>
> And I use "hardcoded" loosely-- for all the "pixel exact" talk wrt
> Pd-extended, you would think
> that the sys_fontlist in s_main.c would never change.  Those numbers
> determine the max size
> of msg/obj boxes; if you increase the maximum height/width there, then
> someone's perfectly
> arranged patch in 0.39 could have overlapping objects in 0.46.  But
> they've been changed
> slightly over the years, so I don't think I'm the only one who doesn't
> understand the system.
>
> Additionally, Pd-extended standardized the default font on each platform
> to be DejaVu Sans Mono.
> I could be wrong, but I think Miller uses a different font.  The main
> place this becomes a problem
> is with multi-line message boxes.  Typically, you end up with a bunch of
> extra space at the bottom
> of the box.  (And tcl/tk doesn't let you control the spaces between lines
> of text so there's no way
> to fix it.)  This becomes more than an aesthetic problem-- for example, if
> you try to move the cursor,
> Pd moves it based on Miller's font metrics, not the users.  This means
> that for large message boxes,
> when a Pd-extended user tries to select a line of text it will select the
> text a line or two above that.
>
> At the moment, I've got DejaVu Sans Mono perfectly size to fit Miller's
> sys_fontlist in the GUI
> port.  One of the side effects is that the characters of the font itself
> are noticeably larger than
> they are in Pd-Vanilla.  For example, [get] in my port will touch the top
> of the outlet with the bottom
> of the "g" character.  I've found that making the xlets light gray is a
> decent compromise, and that
> things are generally more readable.  (I'm also not using bold typeface.)
>
> I was also going to try Droid Sans Mono Dotted because I read that it
> covers CJK characters.
> But in my tests it looks like DejaVu does as well, so I haven't done that.
>
> -Jonathan
>
>
> On Saturday, October 3, 2015 2:24 AM, Roman Haefeli <reduzent at gmail.com>
> wrote:
>
>
> Only after having access to more Windows virtual machines, I realize
> this is an issue only on _one_ Windows machine (unfortunately, the one I
> did the most of the testing with).
>
> Sorry for the noise (that caused no reaction anyway).
>
> Roman
>
> On Don, 2015-09-10 at 14:43 +0200, Roman Haefeli wrote:
> > Hi all
> >
> > It's old news, but deken makes Pd-vanilla _the_ target platform and I do
> > care about portability:
> >
> >  Font sizes in canvasses are different between Linux and Windows.
> >
> > Some patches created on Linux break on Windows because symbol boxes are
> > overlapping the GOP area and are not visible anymore.
> >
> > From the list of available sizes in the 'Edit'->'Font' menu, only a few
> > sizes are actually affected. The sizes 8, 10 and 12 are one pixel per
> > character wider on Windows than on Linux. The sizes 16, 24 and 36 are
> > OK.
> >
> > Now the question is what is the correct way to fix that, I mean on what
> > platform should it be changed? I'd say it should be changed on Windows,
> > because I can't imagine that shrinking boxes would break any patches,
> > while widening boxes might do.
> >
> > Pd-extended already dealt with the issue and apparently found a fix.
> > What would speak against incorporating that fix into Pd?
> >
> > Roman
> >
>
> _______________________________________________
> 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/20151003/ea094d4d/attachment.html>


More information about the Pd-list mailing list