GithubHelp home page GithubHelp logo

Comments (2)

arrowtype avatar arrowtype commented on May 31, 2024

Process

I’m trying this in a branch, just so I can easily back out if it goes wrong.

  1. Remove stacked accents from font ... I think there were some pieces of data left over from copying in roboto glyphs, early on

  2. Use Glyph Construction to build the stacked accents:

# vietnamese stacked accents

?breveacutecomb = brevecomb + acutecomb@top

?brevegravecomb = brevecomb + gravecomb@top

?brevehookabovecomb = brevecomb + hookabovecmb@top

?brevetildecomb = brevecomb + tildecomb@top

?circumflexacutecomb = circumflexcomb + acutecomb@side

?circumflexgravecomb = circumflexcomb + gravecomb@side

?circumflexhookabovecomb = circumflexcomb + hookabovecmb@side

?circumflextildecomb = circumflexcomb + tildecomb@top


# other stacked accents

?ringacutecomb = ringcomb.A + acutecomb@top

?dieresismacroncomb = dieresiscomb + macroncomb@top

?tildemacroncomb = tildecomb + macroncomb@top

?dotmacroncomb = dotaccentcmb + macroncomb@top
  1. Add _top anchors to the new glyphs with a RoboFont script
f = CurrentFont()

for gname in f.selection:
    if "_top" not in [a.name for a in f[gname].anchors]:
        f[gname].appendAnchor("_top", (0, f.info.xHeight))
  1. Adjust positioning in stacked accents. Decompose them, to make it simpler (because their design is already settled ... in another family, I would try leaving them as components, and make sure they ran through a build filter to decompose as nested comps).

  2. Build stacked glyphs w/ Glyph Construction

Acircumflexacute = A + circumflexacutecomb @ top
acircumflexacute = a + circumflexacutecomb @ top
Acircumflexgrave = A + circumflexgravecomb @ top
acircumflexgrave = a + circumflexgravecomb @ top
Acircumflexhoi = A + circumflexhookabovecomb @ top
acircumflexhoi = a + circumflexhookabovecomb @ top
Ecircumflexacute = E + circumflexacutecomb @ top
ecircumflexacute = e + circumflexacutecomb @ top
Ecircumflexgrave = E + circumflexgravecomb @ top
ecircumflexgrave = e + circumflexgravecomb @ top
Ecircumflexhoi = E + circumflexhookabovecomb @ top
ecircumflexhoi = e + circumflexhookabovecomb @ top
Ocircumflexacute = O + circumflexacutecomb @ top
ocircumflexacute = o + circumflexacutecomb @ top
Ocircumflexgrave = O + circumflexgravecomb @ top
ocircumflexgrave = o + circumflexgravecomb @ top
Ocircumflexhoi = O + circumflexhookabovecomb @ top
ocircumflexhoi = o + circumflexhookabovecomb @ top

Acircumflextilde = A + circumflextildecomb @ top
acircumflextilde = a + circumflextildecomb @ top
Abreveacute = A + breveacutecomb @ top
abreveacute = a + breveacutecomb @ top
Abrevegrave = A + brevegravecomb @ top
abrevegrave = a + brevegravecomb @ top
Abrevehoi = A + brevehookabovecomb @ top
abrevehoi = a + brevehookabovecomb @ top
Abrevetilde = A + brevetildecomb @ top
abrevetilde = a + brevetildecomb @ top
Ecircumflextilde = E + circumflextildecomb @ top
ecircumflextilde = e + circumflextildecomb @ top
Ocircumflextilde = O + circumflextildecomb @ top
ocircumflextilde = o + circumflextildecomb @ top

# Non-Vietnamese Stacks

Aringacute  = A + ringacutecomb@ring # but maybe there should be a ringacutecomb.A connected at "top" instead?
aringacute  = a + ringacutecomb@top
Odieresismacron = O + dieresismacroncomb@top
odieresismacron = o + dieresismacroncomb@top
Otildemacron = O + tildemacroncomb@top
otildemacron = o + tildemacroncomb@top
Odotmacron = O + dotmacroncomb@top
odotmacron = o + dotmacroncomb@top

from shantell-sans.

arrowtype avatar arrowtype commented on May 31, 2024

After doing the above in the primary 4 sources, and without adjusting the build scripts at all, it builds! And it works quite well:

Screen.Recording.2022-05-07.at.5.06.27.PM.mov

from shantell-sans.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.