Comments (9)
from barlow.
I am thinking of a build step something like this, although it will be hard/impossible to script it all now that I think about it -- letters like Ø are going to become incompatible across masters once overlap is removed. This also assumes italic and roman masters will be compatible but I think that should be easy for Barlow
from barlow.
from barlow.
@davelab6 I would prefer not to remove the overlap, but I think the interior/negative rounding makes it difficult to avoid --
for example, this is the desired output for /H
but this is what happens to the outlines if I were to apply my rounding settings without removing the overlap
is there an advantage/loss from doing it? do GX binaries have components like Glyphs for reducing repetition/file size?
from barlow.
from barlow.
@davelab6 what am I looking at in Decovar exactly? there's so much going on in every file! it's also possible there's something you can see that I can't --- /sources/2-build/ implies there is maybe a /sources/1-something/ folder somewhere :)
Looking in RoboFont I see it's easy enough to handle some interior curves, but doesn't help any with things like crossbars-
from barlow.
or are you suggesting this? (upper right)
in which case: are the crazy half-outlines done manually? or is there some step to get there? I admittedly don't know much about the difference between TT and PS curves
from barlow.
Alright so I've scripted the first part of this as a Glyphs script. It decomposes letters in a way that transfers brace layers from components to the parent glyph first, cause otherwise you lose them when decomposing. And it only does it to [a-zA-Z] letters, not to diacritic marks etc. This is the first step in flattening the file for VF -- or for anything.
If I remove overlaps, then the layers become incompatible, so I think I still need to learn about the TrueType feature mentioned above -- still not sure what I'm looking for exactly.
#MenuTitle: Brace Layer Decompose
# -*- coding: utf-8 -*-
__doc__="""
Brace Layer Decompose
"""
import GlyphsApp, re, string
font = Glyphs.font
brace = re.compile("^{\s*\d+\s*,\s*\d+\s*}$")
letters = string.ascii_uppercase + string.ascii_lowercase
letter_clones = []
for glyph in font.glyphs:
if glyph.name in letters and len(glyph.name) == 1:
for i, layer in enumerate(glyph.layers):
for component in layer.components:
if glyph.layers[i].name == font.masters[0].name:
if component.componentName not in letters:
for component_layer in font.glyphs[component.componentName].layers:
if brace.match(component_layer.name):
newBraceLayer = GSLayer()
newBraceLayer.name = component_layer.name
font.glyphs[glyph.name].layers.append(newBraceLayer)
newBraceLayer.reinterpolate()
elif component.componentName in letters:
letter_clones.append([glyph,component.componentName])
for glyph, letter in letter_clones:
for layer in font.glyphs[letter].layers:
if brace.match(layer.name):
newBraceLayer = GSLayer()
newBraceLayer.name = layer.name
glyph.layers.append(newBraceLayer)
newBraceLayer.reinterpolate()
for glyph in font.glyphs:
for layer in glyph.layers:
layer.decomposeComponents()
from barlow.
@davelab6 Still wondering what you meant about TT curves above if you don't mind! To clarify, the problem is the "negative"/"interior" rounding in the counters... just not sure if it's possible to do it with VF while maintaining components. Could definitely flatten it entirely and take care of problem glyphs like Ø manually, but then the masters become lossy. The Glyphs suggestion is not making rounded variable fonts 😅! Maybe this is the kind of wizardry that exists in FontLab IV?
from barlow.
Related Issues (20)
- Issues regarding lack of overshoot, making rounded characters look smaller HOT 6
- improve vectors HOT 1
- Font Rendering Issue HOT 7
- Fix Schwa
- Manual hinting
- convert to quadratic? HOT 5
- Variable Font support, out of the box HOT 3
- Issue with allignment with tabular-nums in version 1.5 HOT 1
- Lowercase "i" looks like uppercase "i" in bold on linux HOT 6
- combining dot below HOT 1
- Asterisk operator HOT 2
- Unify Family Name & Edit Style Name HOT 3
- Add ẞ (U+1E9E) to Font HOT 2
- An essential letter is missing in the Spanish alphabet (letter "eñe") HOT 20
- Size discrepancy between 600 and 500 weights at 12px size (Webfont, WOFF2) HOT 1
- Different vertical line height between OTF and TTF formats HOT 3
- Incompatibility with pacific northwest coast indigenous characters HOT 2
- Middle dot problem with double el (Barlow Google Fonts) HOT 9
- Is this font still in development? HOT 4
- Capital I and lowercase l more distinguishable HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from barlow.