Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

More open “5”, “c” and “e” #1287

Open
3 tasks done
twhb opened this issue Feb 3, 2022 · 24 comments
Open
3 tasks done

More open “5”, “c” and “e” #1287

twhb opened this issue Feb 3, 2022 · 24 comments

Comments

@twhb
Copy link

twhb commented Feb 3, 2022

Having the bottom left of the “5” curl less upward makes it more distinct from a “6”, especially at small sizes, while still being recognizable. Similarly, having “c” a bit less closed makes it more distinct from “o” while still being recognizable. A more open variant is already available for “g” (and appreciated), and a somewhat similarly edited variant for “t”.

Comparison of 5 and c between Iosevka, DejaVu Sans Mono and Fira Code


  • The requested variant shape does not go too far away from Iosevka's design.
  • The requested variant does not conflict with any characters in Unicode that Iosevka currently supports.
  • At least two monospace/programming fonts, created by different designers, supported the requested variant. Provide images below.
@be5invis
Copy link
Owner

be5invis commented Feb 3, 2022

Mimicking humanist sans-serif is considered out of scope.

@twhb
Copy link
Author

twhb commented Feb 3, 2022

I’m not 100% clear on what it means for a font to be humanist, but here are a few that seem to me not to be, and also aren’t on Wikipedia’s list of humanist fonts.

Comparison of 5 and c in Iosevka, Courier New, Inconsolata, and Source Code Pro

@AndydeCleyre
Copy link

Iosevka Term Custom

@github-actions
Copy link

github-actions bot commented May 9, 2022

This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 15 days.

@github-actions github-actions bot added the stale label May 9, 2022
@susinodan
Copy link

Built Iosevka with [.widths.normal] "shape = 610", and [.metric-override] "cap", "ascender", "xHeight" and "parenSize" scaled down by 0.90 (10% shorter glyph size) to make glyph size close to Source Code Pro. Font size 12 for example:
изображение

And, yeah, in this case I would agree with @twhb - more open "c" would be good, but not as open, as @twhb pictured. Just a little bit. MsPaint "simulation":
изображение

@github-actions github-actions bot removed the stale label May 21, 2022
@github-actions
Copy link

This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 15 days.

@github-actions github-actions bot added the stale label Jul 21, 2022
@AndydeCleyre
Copy link

I'm still interested in a more open c.

@github-actions github-actions bot removed the stale label Jul 22, 2022
@unbadfish
Copy link

I support more open 5 and c
👍

@AndydeCleyre
Copy link

Some as yet unmentioned monospaced fonts with way more open c: Ubuntu, Victor, Overpass

image

I don't think Ubuntu Mono's c looks very good though.

@be5invis be5invis added this to the Backlog milestone Aug 15, 2022
@be5invis
Copy link
Owner

be5invis commented Aug 15, 2022

My concern: Having a more open aperture (or, "separation between strokes") is a feature of humanist sans-serif.
In general, Iosevka's geometric style is still Neo-Grotesque (and somehow having DIN features, like vertical lines at the sides of O), therefore introducing such a variant may look inconsistent with other letters & variants.

@susinodan
Copy link

But if it worsens the readability of glyphs... Perhaps there is a compromise solution? What criteria are used to define the size of the separation? Just wonder.

@AndydeCleyre
Copy link

I don't know if this carries any weight, but some fonts considered neo-grotesque but with especially open cs nonetheless:

@cousteaulecommandant
Copy link

OCR-B is also considered neo-grotesque and it has an aggressively open 5:
OCR-B
The tail doesn't even curl up at all, but almost the opposite -- it is almost pointing down, like it wants to avoid looking like a 6 at all costs. I like it a lot.

I think the problem with Iosevka here is that it attempts to make the curved corners in the loop of the 5 almost symmetric (left side being a mirror of the right side), which results in an excessively closed angle where the curve touches the vertical stroke on the left, and a tail that curls up too much.
On the other hand, the lowercase "r" does a great job with its hook, which is asymmetric (right side has a sharper curvature than the left side) but doesn't clash with the overall font aesthetics. (I think the hook of the "r" dips down just the right amount, while the "c" dips down / curls up too much.)

@Logo121
Copy link
Contributor

Logo121 commented Sep 6, 2023

Did a little experiment on using completely flat hooks on either end, kinda copying FairfaxHD and a few other pixel-based fonts

I suppose it would be a compromise between staying geometric and having an open aperture, though the results looks kinda meh:
image

Having a flat top but a curled bottom makes the shape look more like a G, while the others look sorta fine in Heavy but gradually looking out-of-place in the thinner weights (especially Classical + Flat).

The Flat+Flat combination looks like it would go along with variants like #1269, but it also feels like a completely different style at that point.

I'll just leave this here for visualization/reference; I don't strongly recommend these takes.

@cousteaulecommandant
Copy link

Flat+flat might look better wit a larger curvature radius on the other side, but that might make the c not fit in the style of other characters.
Any chance of making the c opening slightly more open, not even changing the shape, just "shaving" a few pixels off each side?

@cousteaulecommandant
Copy link

Like this:
ccccccc

I just copy-pasted a bunch of Iosevka cs on an image editor and erased one pixel at a time.
0 is the original; too closed in my opinion.
-1 removes one pixel from each end (keeping the ends horizontal).
-2 removes a second pixel, and so on.
(1 px = 1/30 of the character width, at the font size I used.)

I think something between -1 and -2 (or maybe even up to -3) provides more readability than the original (it "looks more like a c", or that was my impression), without clashing too much with the overall font style.

@Logo121
Copy link
Contributor

Logo121 commented Sep 6, 2023

afaik (and to answer @susinodan's question) c hooks are controlled by the parameter Hook (y-depth of normal-sized hook shapes), if you know how to build with metric overrides, you can try shrinking that to see if it works. No guarantee that other things won't break though

Here's what happens if I replace it with SHook (depth of hooks in s, etc):
image

Which does look more open, but not without its own issue:
image
This might be the same problem shared by some Epsilon-like glyphs though. idk.

@cousteaulecommandant
Copy link

Issue aside, I think it looks much better that way! What do others think?
Also, does this apply to 5 as well? (I'm particularly interested in that one and not as much in the c, because I think 5 kinda looks like a 6 if you're not paying attention)

@Logo121
Copy link
Contributor

Logo121 commented Sep 10, 2023

Hook affects the bottom hook of 5. The upper one is controlled by AHook instead.

Here's how it looks like if I only change Hook:
image

@vladkryv
Copy link

vladkryv commented Mar 28, 2024

The same as c probably applies to the letter e, which is even more closed (especially bold)
current_e

By the way, if mirror the current e, there will be a +- more open version of c.
e_to_c

@dimhatz
Copy link

dimhatz commented May 15, 2024

Just to add my 2 cents.

As mentioned by @vladkryv, the legibility of e (and also of s IMHO) is much more problematic than c or 5. Especially on bold, smaller font sizes, lower resolution screens, due to the shape itself. e almost looks like a short θ (theta) on a low-res screen.

A more open e and s would be excellent, for those of us with less than perfect screens / eyesight.

P.S. Thank you very much @be5invis (and contributors) for this amazing font!

@be5invis be5invis changed the title More open “5” and “c” More open “5”, “c” and “e” Oct 6, 2024
@be5invis
Copy link
Owner

be5invis commented Oct 6, 2024

There might be two sub-variants:

  • Simply increasing aperture. I suggest leveraging metric overrides to allow users to build this.
  • Completely remove the hooks, make the ends flat.

May need to be careful about the GID impact -- we have over 40K glyphs now again.

@vladkryv
Copy link

vladkryv commented Oct 7, 2024

@be5invis thank you for your work. I'd like to ask a couple of clarifying questions about the proposed sub-variants:

  1. Would these metric overrides affect only the characters e, c, and 5, or would they be applied to all glyphs in the font?

  2. Regarding completely removing the hooks:

    • The e appears without a hook in many typefaces, so that seems normal
    • However, I'm not sure how the 5 would look, and especially the c, without hooks...

@Logo121
Copy link
Contributor

Logo121 commented Oct 8, 2024

  1. Would these metric overrides affect only the characters e, c, and 5, or would they be applied to all glyphs in the font?

It will affect other glyphs (unless something is changed), like 2369 for example. Like I mentioned in my previous comment, no guarantee that other things won't break, but maybe you can raise an issue if something did. (We can't really make sure that all param changes work properly either because they are not really constrained)

  1. Regarding completely removing the hooks:

    • The e appears without a hook in many typefaces, so that seems normal
    • However, I'm not sure how the 5 would look, and especially the c, without hooks...

See this for a very rough demonstration for c (probably needs refinement)

But otherwise, here are some other fonts without hooks as reference:
Pasted image 20231112045308
FairfaxHD (the one i tried to replicate): image

Pasted image 20231111133720
image
(this one removes ALL hooks)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

9 participants