source-foundry / Hack

A typeface designed for source code
http://sourcefoundry.org/hack/
Other
16.39k stars 613 forks source link

CYRILLIC CAPITAL LETTER ZE is way to similar to 3 #422

Open ghost opened 6 years ago

ghost commented 6 years ago

A lot of domestic typefaces make the upper part of 3 be a straight line not a curve, thus making things easily distinguishable. monofur does that too (even though it has old style figures and the problem is less acute)

jdw1996 commented 6 years ago

Just for reference, there was a discussion about this issue in Iosevka last year, and putting a flat top on the numeral three was the best solution come up with there as well.

ghost commented 6 years ago

Joseph Winters notifications@github.com writes:

Just for reference, there was a discussion about this issue in Iosevka last year, and putting a flat top on the numeral three was the best solution come up with there as well.

Thanks. The thread was very informative.

-- mailto:moosotc@gmail.com

chrissimpkins commented 6 years ago

Mind posting some screenshots of the typefaces that you feel distinguish these glyphs well? What is your use case here? Are you using the fonts in source code or elsewhere? If in source, are you mixing Cyrillic in the source or is this something that you are using in string literals/comments?

ghost commented 6 years ago

Chris Simpkins notifications@github.com writes:

Mind posting some screenshots of the typefaces that you feel distinguish these glyphs well? What is your use case here? Are you using the fonts in source code or elsewhere? If in source, are you mixing Cyrillic in the source or is this something that you are using in string literals/comments?

pt mono and monofur distinguish them well

https://www.fontsquirrel.com/fonts/pt-mono https://www.dafont.com/monofur.font

It appears that monoid has alternatives[1] mechanism for 3 https://www.fontsquirrel.com/fonts/monoid

[1] Not a typographer so my knowledge of the proper nomenclature is limited, sorry.

-- mailto:moosotc@gmail.com

ghost commented 6 years ago

Chris Simpkins notifications@github.com writes:

Mind posting some screenshots of the typefaces that you feel distinguish these glyphs well? What is your use case here? Are you using the fonts in source code or elsewhere? If in source, are you mixing Cyrillic in the source or is this something that you are using in string literals/comments?

Forgot about use case, there are times when I browse the web in a terminal with links [1]. On few occasions milliseconds or even seconds were spent on trying to diffirentiate what I've just read (S9 З3 are the most glaring examples). Almost no monospaced font is immune to S9, PT Mono adds what can almost be qualifed as serifs to S and it helps some, monofur has old style figures which also helps.

As far as I can tell all Vera Mono derivatives suffer fom S9 - it's very hard to tell at a glance if you are looking at S or 5 (the reverse is not true for MOST faces.

Along with PT Mono and monofur S9 situation is better with:

unifont née misc fixed anonymous pro cmu typewriter text regular latin modern mono nimbus mono

[1] http://links.twibright.com/download.php

-- mailto:moosotc@gmail.com

chrissimpkins commented 6 years ago

Thanks for the additional information. Can you let me know what size you are using to view the glyphs and what platform you are on?

chrissimpkins commented 6 years ago

Also see https://github.com/source-foundry/Hack/issues/423#issuecomment-374595385. You posted in that thread that you are using v2.019 builds. Let's get you current so that we can confirm that this is an issue with the changes that occurred as of v3.x releases.

ghost commented 6 years ago

Chris Simpkins notifications@github.com writes:

Thanks for the additional information. Can you let me know what size you are using to view the glyphs and what platform you are on?

I'm on linux. And the best answer to the first question i can come up with is - i don't know, there are so many variables here... I use custom fontconfig configuration (link to the way i do thing was sent previously), i also had to add `xrandr --dpi 152x152' to my .xinitrc to sctually match the physical characteristics of my monitor, etc etc...

Maybe it would be better if you could describe what environment would be ideal so that i can see if it's reproducible there... (Start terminal with particular set of options, run emacs and set frame font to this or that, visit a web page, pango-view ...) I just can't find any reasonable defintion of "size", sorry :(

FWIW my configuration is at: https://github.com/moosotc/snippets

-- mailto:moosotc@gmail.com

chrissimpkins commented 6 years ago

Mind opening any text editor on your Linux distro (Sublime Text, Atom, LibreOffice Writer etc) with your current settings, define Hack as the display typeface, and view a sample of these glyphs across text sizes 8 - 14. These are our target design ranges and where we will work on optimizations. You will be able to modify the font settings in the suggested text editors to do this. When we talk about improvements in shapes for a typeface, we are discussing different shapes on the screen at every text size because there is a constraint on the number of pixels that can be displayed to you. This leads to significant problems with differentiation of shapes at smaller text sizes because there is not much to work with for similar shapes. Sometimes when you address that issue, you create an undesired appearance at larger text sizes. We need to know what sizes are affected in order to determine whether design changes alone address it or whether we need to drill down into the instruction sets that push pixels here and there at specific sizes.

Don't modify your system settings. It is possible that you are causing a problem in our fonts with custom settings, but that is helpful information for us. I can verify against default fontconfig settings for some distros on my development VM's once I have a better understanding of the issue.

chrissimpkins commented 6 years ago

But update those fonts before you do any of this! Let's work in current build of Hack :)

ghost commented 6 years ago

Chris Simpkins notifications@github.com writes:

Mind opening any text editor on your Linux distro (Sublime Text, Atom, LibreOffice Writer etc) with your current settings, define Hack as the display typeface, and view a sample of these glyphs across text sizes 8 - 14. These are our target design ranges and where we will work on optimizations. You will be able to modify the font settings in the suggested text editors to do this. When we talk about improvements in shapes for a typeface, we are discussing different shapes on the screen at every text size because there is a constraint on the number of pixels that can be displayed to you. This leads to significant problems with differentiation of shapes at smaller text sizes because there is not much to work with for similar shapes. Sometimes when you address that issue, you create an undesired appearance at larger text sizes. We need to know what sizes are affected in order to determine whether design changes alone address it or whether we need to drill down into the instruction sets that push pixels here and there at specific sizes.

Sorry don't have any of those, following reproduces the problem though: $ pango-view --font='hack 15' --text='asxaxЁЖЗxasxas'

ZHE really stands out there.

Don't modify your system settings. It is possible that you are causing a problem in our fonts with custom settings, but that is helpful information for us. I can verify against default fontconfig settings for some distros on my development VM's once I have a better understanding of the issue.

My custom settings are there to be reproducible, the settings are: disable hinting disable rgba provide some metric aliases do not rely on distribution "defaults"

-- mailto:moosotc@gmail.com

ghost commented 6 years ago

Chris Simpkins notifications@github.com writes:

But update those fonts before you do any of this! Let's work in current build of Hack :)

Sure :)

Screenshots of windows created by: $ pango-view --font='hack 16' --text='asxaxЁЖЗxasxas'

-- mailto:moosotc@gmail.com

ghost commented 6 years ago

Chris Simpkins notifications@github.com writes:

But update those fonts before you do any of this! Let's work in current build of Hack :)

https://boblycat.org/~malc/hack-issue.html When using chromium i can easily see the issues with hack: S5, ЁЖЗ, 3З

(Kerning section is just my testing template, most of the entries kern fine with Hack)

-- mailto:moosotc@gmail.com

chrissimpkins commented 6 years ago

Thanks for the additional data. On the list to review.

ghost commented 6 years ago

Came across this issue on packaging today:

omega

pkolchanov commented 6 years ago

As Chris mentioned, flat top three now part of the alt-hack repository.
ze3

chrissimpkins commented 6 years ago

@moosotc If you have a chance to build sets with the new design that Pavel pushed to the alt-hack repository, I would be very interested to hear your thoughts about whether this addresses your issue here.

See https://github.com/source-foundry/Hack/issues/422#issuecomment-396470801 for additional information and link. Build documentation is available on the alt-hack repository README. Happy to help if you have any issues with this.

ghost commented 6 years ago

Chris Simpkins notifications@github.com writes:

@moosotc If you have a chance to build sets with the new design that Pavel pushed to the alt-hack repository, I would be very interested to hear your thoughts about whether this addresses your issue here.

See https://github.com/source-foundry/Hack/issues/422#issuecomment-396470801 for additional information and link. Build documentation is available on the alt-hack repository README. Happy to help if you have any issues with this.

The build instructions are not for the faint of heart, i.e. not me. I'd gladly build things if given exact - step by step instructions of what to do ("follow the instructions at git://.../..." is not enough, too many chances of getting some minute detail wrong and screwing up the result)

-- mailto:moosotc@gmail.com

chrissimpkins commented 6 years ago

@moosotc Ah, OK. No problem. I've given thought to automation of the alternate builds in the form of a GUI application or simple to execute script. Perhaps that would be a worthwhile move. Time...

ghost commented 6 years ago

Chris Simpkins notifications@github.com writes:

@moosotc Ah, ok. No problem. I've given thought to automation of the alternate builds in the form of a GUI application or simple to execute script. Perhaps that would be a worthwhile move. Time...

FWIW not a fan of GUIs, script would be perfect.

https://www.youtube.com/watch?v=RMxRDTfzgpU

-- mailto:moosotc@gmail.com

chrissimpkins commented 6 years ago

Here is a build at commit https://github.com/source-foundry/Hack/pull/427/commits/c1c7c6261fb9832ccf78ceab6ad8e6a2fe40e62e with the alternate numeral three designs that were contributed to the alt-hack repo by @Ledokol. These also include his contribution of the ruble glyph and extension of the Cyrillic set te glyph (U+0442) horizontal stroke that will be part of the upcoming Hack v4.000 release. This does not include all planned changes that will be in the 4.000 release of Hack, but we are nearly there so it gets you pretty darn close. It does include all planned changes to the Cyrillic sets.

The font family was renamed to HackCy and these fonts are versioned as v1.000; DEV. This is a custom build just for you and users of the Cyrillic sets who are affected by this problem quite simply because the Hack project ❤️ you :)

Enjoy! If you need web fonts you can build them off of these files using a service like Font Squirrel. CSS files can be based off of the CSS files in the build directory of this repository.

HackCy-1.000.tar.gz

chrissimpkins commented 6 years ago

FWIW not a fan of GUIs, script would be perfect.

Will be in touch when time opens up to work on this.

chrissimpkins commented 6 years ago

BTW you can use https://github.com/chrissimpkins/fontname.py if you would like to name the files in https://github.com/source-foundry/Hack/issues/422#issuecomment-398887413 to a different family name.

ghost commented 6 years ago

Chris Simpkins notifications@github.com writes:

Here is a build at commit https://github.com/source-foundry/Hack/pull/427/commits/c1c7c6261fb9832ccf78ceab6ad8e6a2fe40e62e with the alternate numeral three designs that were contributed to the alt-hack repo by @Ledokol. These also include his contribution of the ruble glyph that will be part of the upcoming Hack v4.000 release. This does not include all planned changes that will be included in the 4.000 release of Hack, but we are nearly there so it gets you pretty darn close.

The font family was renamed to HackCy and these fonts are versioned as v1.000; DEV. This is a custom build just for you and users of the Cyrillic sets who are affected by this problem quite simply because the Hack project ❤️ you :)

Enjoy :) If you need web fonts you can build them off of these files using a service like Font Squirrel. CSS files can be based off of the CSS files in the build directory of this repository.

HackCy-1.000.tar.gz

Thanks!

Tried it. Like the result. To me HackCy 1.000 looks very similar to the Iosevka[1] variant[2] i've settled on a while ago.

3 vs З is solved as far as i'm concerend (luckily i don't really read much abkhazian otherwise CYRILLIC CAPITAL LETTER ABKHASIAN DZE would have annoyed the hell out of me)

(Ze aside heftiness of Zhe (both cases) remains)

My testing process is described in this video [3]

[1] https://be5invis.github.io/Iosevka/ [2] https://github.com/moosotc/snippets/blob/master/bin/configure/iosevka [3] https://www.youtube.com/watch?v=LhMRAjX95k0

P.S. Why is heart followed by a varinat-selector 16?

-- mailto:moosotc@gmail.com

chrissimpkins commented 6 years ago

Issue report for Zhe still open. If someone doesn't get to it first I will address it down the road.

I do not know what a varinat-selctor 16 is. It was rendered with the Github markdown :heart:

ghost commented 6 years ago

Chris Simpkins notifications@github.com writes:

Issue report for Zhe still open. If someone doesn't get to it first I will address it down the road.

I do not know what a varinat-selctor 16 is. It was rendered with the Github markdown :heart:

To quote unicode codecharts:

Variation selectors These are combining characters; in conjunction with the preceding character they indicate a predetermined choice of variant glyph. FE00 � VARIATION SELECTOR-1 • these are abbreviated VS1, and so on FE01 � VARIATION SELECTOR-2 [..snip..] VARIATION SELECTOR-14 Emoji-specific variation selectors For documentation about use of these with emoji, see UTS

51, Unicode Emoji.

FE0E � VARIATION SELECTOR-15 = text variation selector FE0F � VARIATION SELECTOR-16 = emoji variation selector

-- mailto:moosotc@gmail.com

ghost commented 6 years ago

Chris Simpkins notifications@github.com writes:

Issue report for Zhe still open. If someone doesn't get to it first I will address it down the road.

I do not know what a varinat-selctor 16 is. It was rendered with the Github markdown :heart:

Oh. I just read (and replied) to this issue report via e-mail and my MUA showed me a heart followed by a VS16 generic substitution (guess m17n that Emacs and by extension this MUA (Gnus) uses does not handle emoji selector gracefuly)

FWIW https://boblycat.org/~malc/scratch/vs16.png is what i've got.

-- mailto:moosotc@gmail.com