Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 10:33
    belluzj commented #2416
  • 10:19
    belluzj edited #2416
  • 10:19
    belluzj opened #2416
  • Sep 23 14:54
    simoncozens opened #2415
  • Sep 23 13:34
    anthrotype commented #2414
  • Sep 23 13:34
    anthrotype commented #2414
  • Sep 23 13:16
    ach4ndi opened #2414
  • Sep 23 12:36

    anthrotype on 4.27.1

    (compare)

  • Sep 23 12:36

    anthrotype on main

    Release 4.27.1 Bump version: 4.27.1 → 4.27.2.d… (compare)

  • Sep 23 12:35

    anthrotype on main

    Update changelog [skip ci] (compare)

  • Sep 23 11:45

    simoncozens on main

    Don’t complain about format 1 l… Merge pull request #2411 from s… (compare)

  • Sep 23 11:45
    simoncozens closed #2411
  • Sep 23 10:40
    ACCia commented #2388
  • Sep 23 09:56

    simoncozens on main

    Fix two problems when handling … Fix doctests Typo and 3 more (compare)

  • Sep 23 09:56
    simoncozens closed #2413
  • Sep 23 07:20
    simoncozens synchronize #2413
  • Sep 23 07:16
    simoncozens synchronize #2413
  • Sep 22 15:41
    simoncozens synchronize #2413
  • Sep 22 15:36
    behdad commented #1105
  • Sep 22 15:30
    simoncozens opened #2413
一丝
@yisibl
Not supporting <use> increases the font file size and also increases the development cost of open source tools. googlefonts/nanoemoji#266
n8willis
@n8willis
Does anyone have any recommendations for examples/docs/discussion for practical work on T1 fonts directly in FontTools?
(for context, this is me with working code for ttLib wanting to avoid the need to cycle type-1 fonts through makeotf solely to make them readable. On the plus side, all I do with them is read them; I don't need to build any type-1 binaries...)
n8willis
@n8willis
🥇
Cool; thanks!
Font stuff would sure be a lot easier without all the corner cases.
(I dunno if anyone else has noticed that.)
madigens
@madigens:matrix.org
[m]
we should rewrite fonts in rust
moyogo
@moyogo:matrix.org
[m]
fonts themselves, lol
anthrotype
@anthrotype:matrix.org
[m]
🚀
一丝
@yisibl
image.png
🚀🚀🚀
madigens
@madigens:matrix.org
[m]
yes, it's impressive! haven't had a chance to dig into it yet though
一丝
@yisibl
image.png
n8willis
@n8willis
I've been trying to add a Subsetter() to some code and it's raising a weird TypeError that I can't figure out the reason for....
specifically, it's in unicodes_missing, where it tries to log a missing unicode val, it's tripping up with TypeError: %X format: an integer is required, not str
I'm populating the Subsetter with a unicodes=[] list. That seems like pretty basic stuff, so I'm obviously not seeing what's wrong for some simple. Any clearer eyes out there?
n8willis
@n8willis
(Anyway, for anybody who stumbles across this late at night, the origin of the approach I used was this SO question, specifically mark2mark's answer: https://stackoverflow.com/questions/55009981/how-to-use-pyftsubset-of-fonttools-inside-of-the-python-environment-not-from-th )
passing a list of glyphs works as expected, but it seems like something different is necessary for the populate to get unicodes
anthrotype
@anthrotype:matrix.org
[m]
unicodes parameter wants a list of integers
instead of passing subset.populate(unicodes=["U+0041", "U+0042", ...]), you should pass instead the decimal integer value for those hexadecimal unicode codepoints
just strip the leading "U+" and pass the rest to int(..., 16)
hexadecimal is base 16 ;)
Cosimo Lupo
@anthrotype
something like subset.populate(unicodes=[int(u.lstrip("U+", 16) for u in ["U+0041", "U+0042", ...]])
n8willis
@n8willis
OK
should parse_unicodes() produce the right format?
because I also tried passing the ranges of interest through that & got the same error.
although those could be two separate issues
David Corbett
@dscorbett
How should I set sTypoAscender and sTypoDescender in a 1000-unit-per-em font such that ascenders of around 1000 units and descenders of around 1250 units do not overlap adjacent lines in HTML with the CSS declaration line-height: 1? The seemingly obvious solution of setting them to 1000 and -1250 does not work: the lines still overlap and the first line is too high within the containing box.
madigens
@madigens:matrix.org
[m]
my feeling is that the answer depends on the browser 😬
also remember the usetypometrics flag somewhere (head?)
accia
@ACCia
Why, use fontbuilder_ test.py test example generates font file, which is not a valid font in windows
n8willis
@n8willis
What's the fastest way to clip TTGlyphs? Like, just slice off everything above some Y val, and still have closed contours?
I'm looking at booleanOperations and skia-pathops, but most of the example code I find is from people working on defcon or glyphs-source objects, not operating directly on TTGlyphs...
madigens
@madigens:matrix.org
[m]
no idea but i think you can run bOps ops on ttglphs and if not, draw them into ufolib2 glyphs and bOps on that
anthrotype
@anthrotype:matrix.org
[m]
fontTools.ttLib.removeOverlaps
you can even call it as a script
From the console
fonttools ttLib.removeOverlaps --help
requires skia-pathops
n8willis
@n8willis
ok, so skPathFromGlyph looks doable ...
without roundtripping through glyphs, certainly
anthrotype
@anthrotype:matrix.org
[m]
you create a pathops.Path from a TTGlyph, then call intersection then convert back to TTGlyph, replacing original
You want to call the pathops.op() method with two Paths and PathOp.INTERSECTION operator
n8willis
@n8willis
yeah. I'll give it a try
thanks @anthrotype:matrix.org !