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

Tails for some italic cyrillic letters #972

Closed
pv4 opened this issue Apr 27, 2021 · 11 comments
Closed

Tails for some italic cyrillic letters #972

pv4 opened this issue Apr 27, 2021 · 11 comments

Comments

@pv4
Copy link

pv4 commented Apr 27, 2021

Hello!

I'd like italic style of some cyrillic letters to have right bottom tails (maybe using a new variant) as well as latin m/n/h do. So if anyone (like me) enables tailed variants of these letters then he would be able to make cyrillic more consistent with the latin.

I know these latin variants are not default for some reason (I don't know why) and I assume the tailed cyrillic letters wouldn't satisfy anyone for same reasons. But while iosevka has separate variants for the mentioned latin letters, introducing separate variants for cyrillic (or other "national") letters would be IMHO wasteful in terms of ptl code and cvXX namespace.

The FULL list of letters I ask about is presented on the image. At the top are the current variants, followed by latin n. At the bottom is the proposed change: the same letters with the tailed leg copied from the latin n (using gimp editor).

If you don't even consider implementing the variants, feel free to just close the issue. Otherwise I can write more details here to justify the proposed change and explain why I think this would be a nice feature (if you want me to).

image

@pv4 pv4 changed the title Tails for some cyrillic letters Tails for some italic cyrillic letters Apr 27, 2021
@be5invis
Copy link
Owner

Are there use cases of such curly tails in existing monospace / programming fonts?
You know what, I only have 10 standard cv## tags left, so allowing a letter to support variants will need some justification.

@efermi
Copy link

efermi commented Apr 29, 2021

These tails are called serifs and they do appear in the Slab version of the font. Isn't it possible to reuse them?

@be5invis
Copy link
Owner

@efermi The problem is not reusing geometry, but OT feature tags. There are only 99 tags available and I have already used 89 of them.

@efermi
Copy link

efermi commented Apr 29, 2021

What I had in mind is more of a workaround, wouldn't it be possible to create a separate build plan for italics with serifs enabled?

@pv4
Copy link
Author

pv4 commented Apr 30, 2021

Just for you information: I'm currently working on the detailed justification, it's still in progress.

What relates to cv## tags, I see a few possible variants to solve the issue. First of all, I am personally AGAINST giving each cyrillic letter a separate cv## tag. According to https://typeof.net/Iosevka/ Iosevka covers 4753 characters and giving each of them a separate cv## tag is just a waste. I fully agree with @be5invis that each cv## tag MUST have a justification. But in this issue I don't expect new cv's to appear as well as no cv## exists for e.g. cyrillic-de.

As for me, the best solution is to create "private" variants like those for cyrl-yeri and cyrl-ef so that a person who builds an Iosevka variant can choose between them, while built font files don't have an ability to switch between them dynamically (at run time). Why not?

Another way is to create a cv## tag with prime something like italic-tails and variants straight/tailed/serifed and apply it BOTH for the letters specified in this issue and latin h/m/n (and probably a/d/u/whatever). It seems very unlikely for me that someone will choose n = *tailed and m != *tailed/h != *tailed. Though this way would be incompatible with the current variant set for these latin letters.

@efermi These tails are NOT serifs. Serifs are square while the tails are rounded.

@be5invis If this information is enough for you to decide on creating such variants, please, let me know so that I don't spend time creating the detailed justification.

@be5invis
Copy link
Owner

@pv4 My idea is that all variants should be accessible through OT. If there's a strong justification of tailed Cyrillic, I will add them (I can re-enable non-standard tags). It will be much better if you could provide existing programming fonts having these styles.

@pv4
Copy link
Author

pv4 commented Apr 30, 2021

I can re-enable non-standard tags

BTW how many non-standard tags are available?

@be5invis
Copy link
Owner

@pv4 Non-standard tags are four capital letters, so it is unlimited.

@pv4
Copy link
Author

pv4 commented May 3, 2021

Are there use cases of such curly tails in existing monospace / programming fonts?

This was a challenge for me. Not many monospace/programming fonts have italic variant. Even those that do, actually have an italic that is just slanted regular with same letter shapes. Moreover, I'm not aware of many monospace/programming fonts that support cyrillic because the primary language for programming is "us english".

The font examples I found are presented at the end since they are NOT the primary justification IMHO.

THE PRIMARY JUSTIFICATION

The primary reason I created this issue is Iosevka look CONSISTENCY in italic variants.

I like that Iosevka has a separate italic style and I'd like to have it looking as different from the upright one as possible without breaking "Iosevka visual style". For that purpose I use mnh=*tailed for italic build. Here is what I have in sans-italic and slab-italic:
image

The following image shows inconsistencies between "tailness" of different characters in sans variant. No inconsistencies in latin, but there are ones in cyrillic: some letters have tails while some don't. I understand why ишпт have tails: their shapes depend on the shapes of unm, and they are fine. You may see below in this comment that it's correct for лнчыя to have right-bottom tails as well.
image

The same is true for slab variant: some cyrillic letters have tails (иптш) while some have slabs in similar situations (лнчыя).
image

The look is consistent if using m=normal, nh=straight.
image

THE FONTS

Iosevka is NOT AN AVERAGE monospace/programming font.

Many of monospace/programming fonts only have latin support and a single upright variant. Unlike them, Iosevka has separate upright/italic/slab/slab-italic shapes that makes it usable in areas other than "terminal font" and "programming font".

I use Iosevka as a default font in Firefox and turn off "Allow pages to choose their own fonts" switch so on my machines ALL sites use Iosevka. And existance of different weights, upright/italic and sans/slab variants is the key feature of Iosevka for me. I've also seen a user here, in one of Iosevka issues who uses it as a default font on a smartphone interface.

As a result, denying to create a variant just because other monospace/programming fonts don't support it is IMHO not Iosevka way. Iosevka already has beautiful вгдф italic variants that differ from the upright ones.

Here are the examples having (nearly) what I'd like to see in Iosevka. The phrase used is "ночные ширятся поля".

  1. Computer Modert Typewriter Text Italic [https://www.1001fonts.com/cmu-font.html].

image
Green are what I ask for. Red (che, ч) is what I think would be better NOT to implement to keep the variant Iosevka-like.

The variants for лнчя have more long tails than ы, but also note that in this font ш and и have different tails as well although in Iosevka they are inherited from latin u and have same-length tails. Also unlike the image presented, in Iosevka ши have NO top-left "tails" so ч should not have one as well.

As a result in Iosevka нчлыя should have same-length tails and have no top-left "tails".
image

  1. Victor mono [Downloaded from https://draculatheme.com/blog/best-free-fonts-for-programming].

This one has top-left "tails" for чши as well, and a cursive form of л (similar to greek uppercase lambda) used when hand-writing. I'm not sure it worth implementing this shape of л but the tail would be nice.
image

  1. okolaks RegularItalic, not monospace/programming [https://www.1001fonts.com/okolaks-font.html]

This one only has н with a tail. The remaining letters are just slanted upright.
image

  1. PT Serif Italic (not monospace/programming) [https://www.1001fonts.com/pt-serif-font.html]

As with other presented fonts, many letters have top-left "tail". "Tails" here look much like Iosevka slab italic variant but they are still tails. The "slab" variant of PT Serif Italic is presented on the second image.
image
image

  1. Cursive letter look as learned at school
    This proves that it's ok for the requested cyrillic letters to have tails.
    image

@pv4
Copy link
Author

pv4 commented May 3, 2021

I updated the previous comment a few times. Sorry :)

@pv4
Copy link
Author

pv4 commented May 5, 2021

Awesome! Thank you!

image

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

3 participants