alerque / libertinus

The Libertinus font family
SIL Open Font License 1.1
1.01k stars 57 forks source link

Port best non standard Graphite features from Linux Libertine G fork #184

Closed gyuris closed 6 years ago

gyuris commented 6 years ago

As end user I think there are some very useful feature in Linux Libertine G font, which will be nice to port here as OpenType features. I know that Graphite is more flexible technology, so my question is: Is it possible to implement these features in OpenType so useful as in Linux Libertine G (with ssXX or with some other feature)?

I think the most useful features are these, see in documentation:

  1. dbls: Replace latin capital letters with double-stroke glyphs. It is simple and useful for headings or initials. linux libertine g graphite dbls
  2. circ: Replace normal numbers with other number glyps. It is very useful for automatic numbering or in legal texts. In Linux Libertine G there are 4 variant to replace normal arabic numerals (1-20 or double circled to 10). I think we can extend this to replace roman numerals with real latin numeral glyphs (1-12) too. linux libertine g graphite circ

Currently we have nalt in Libertinus, but it is not useful. Why to replace U2474 (1 with paranthesis) to U2460 (1 circled)?

We have some many good glyphs in Libertinus font, we just need to invoke them. So, is it possible with OpenType?

kenmcd commented 6 years ago

I am going to work on this today. I found another font which used nalt to replace 0-9, A-Z, a-z with circled versions (e.g. ① etc.). That is just a straight single replacement. So I am going to plug that into Libertinus Serif Regular today.

The other sequences which have numbers above 0-9 will require replacing multiple characters like is done for ligatures and fractions. For example these three characters (1) could be mapped to ⑴ (U2474). And that way (12) could be mapped to ⑫, or ⑿, or ⓬, or Ⅻ, or ⅻ. Those will probably be best as Stylistic Sets. Thoughts?

khaledhosny commented 6 years ago

dbls: Replace latin capital letters with double-stroke glyphs. It is simple and useful for headings or initials.

I don’t think I want this, these are math glyphs and are spaced for math in Libertinus, so won’t work for text without duplicating the glyphs and spacing them differently. Also, I’m trying to have consistent features across all the fonts, so these will have to be done for all the fonts not just the regular serif.

Currently we have nalt in Libertinus, but it is not useful. Why to replace U2474 (1 with paranthesis) to U2460 (1 circled)?

Good question, and replacing encoded glyphs with other encoded glyphs is rather pointless indeed. But this is true for replacing (1) with since one can always just input the circled character directly. Fonts are not input methods, and should not be used for that. My suggestion is to drop the nalt feature entirely and just input the circled characters directly when needed.

kenmcd commented 6 years ago

Already added all the nalt characters for 0-9, A-Z, a-z. Works fine. The characters are actually named 0.nalt, A.nalt, a.nalt, etc. Appears that is what they are for.

The whole point of OpenType user features is to make it easier to access the thousands of characters. Why not just type nothing but character codes all the time? That's a stupid argument.

Was in the middle of adding the other sets, when I saw this. If you have no interest in adding useful features I will just drop this.

khaledhosny commented 6 years ago

The characters are actually named 0.nalt, A.nalt, a.nalt, etc.

Glyph names do not really matter, what matter is whether they directly map to characters (AKA encoded) or not.

The whole point of OpenType user features is to make it easier to access the thousands of characters.

No, that is not even one of its purposes. Furthermore, OpenType operates on glyphs not characters. If one wants a given character, the only canonical way to get it is to input the said character. Mapping other characters to ASCII though OpenType is at best a hack, and one that I strongly prefer not to have.

I appreciate your any anyone else’s contribution, sincerity and I do not wish to upset anyone. But there is a lot of bugs and misfeatures in these fonts right now and I’m trying, with everyone’s help, to clean this up.

kenmcd commented 6 years ago

I know the difference between a character and a glyph. But that is irrelevant. Typical LibreOffice-style focus on nonsense.

Clearly it is a waste of time trying to add enhanced features to these fonts. I guess those idiots at Adobe, FontFont, and Linotype just do not understand the technical aspects. At least their clueless users in the graphic design industries get some great features/mistakes to help them do their daily work.

I give. You win. Off to do something productive.

gyuris commented 6 years ago

@khaledhosny, I understood your point.

khaledhosny commented 6 years ago

@kenmcd Thanks for your interest, though. Fortunately you can still fork the fonts and do the changes you need.

kenmcd commented 6 years ago

Yes, I thought of that last night. Was just going to drop Libertinus from the docs in-progress, but realized I can fork and rename it. So I do not have to waste all that work. And users will get more usable OpenType features and good documentation on how to use them.

KrasnayaPloshchad commented 6 years ago

dbls: Replace latin capital letters with double-stroke glyphs. It is simple and useful for headings or initials.

You can get them via converting text in Unicode Text Styler.