liberationfonts / liberation-fonts

The Liberation(tm) Fonts is a font family which aims at metric compatibility with Arial, Times New Roman, and Courier New.
Other
433 stars 21 forks source link

Consider adding More weights (other than The Base two) #18

Open cssobral2013 opened 5 years ago

madig commented 5 years ago

FWIW, the point of the Liberation fonts is to be metrically compatible to Arial/Times New Roman/Courier New and those only have the standard 4 styles (regular, bold, italic, bold italic). Going further may be better done in a new family like "Liberation Neue" and would need more preparatory work like clean, ideally interpolatable sources.

cssobral2013 commented 5 years ago

I got an idea: why not interpolate using existing fonts?

madig commented 5 years ago

Possible, however:

  1. Outlines, composites and anchors must be compatible for this to work (same contour starting points, same amount and order of contours, points, and components, same anchors). This can be done with manual work, but then the hinting code must be adapted as well, because it works on point indices. Without a solid regression testing suite, this is a lot of fun.
  2. Interpolation gives good results only when interpolating between existing masters, extrapolations (i.e. a black weight from a regular and a bold) go bad quickly.
cssobral2013 commented 4 years ago

@madig - Unfortunately, however, interpolating from existing weights would mean the fonts would had only 4 weights/matching italics at maximum.

cssobral2013 commented 4 years ago

@madig - However, there's already a try on expanding Liberation Sans. UnB Pro: http://www.marca.unb.br/fontesunb.php However, that font has several bugs, has no italics on Light and Black weights, and is based on old 1.0 version, but it has many things you can take as base from.

madig commented 3 years ago

It seems someone at Google Fonts funded or acquired a variable font version of Arimo, which shares the same heritage with Liberation Sans: https://fonts.google.com/specimen/Arimo?vfonly=true