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

CaskaydiaCove Nerd Font -- "Arrow" Ligature #1609

Closed
jesusvelezx opened this issue Apr 13, 2024 · 13 comments · Fixed by #1613
Closed

CaskaydiaCove Nerd Font -- "Arrow" Ligature #1609

jesusvelezx opened this issue Apr 13, 2024 · 13 comments · Fixed by #1613

Comments

@jesusvelezx
Copy link

jesusvelezx commented Apr 13, 2024

Hello! I want to report a problem with the "Caskaydiacove Nerd Font" ligatures, specifically in regular and semibold type. When creating an arrow with - and > = -> signs it looks strange, as if they are not of the same thickness.

I attach some screenshots.

IDE: PyCharm Professional
Font: Caskaydiacove Nerd Font Mono -- Regular & SemiBold
Reserved Font Name: Cascadia Code
Version: 2111.01

Psdt:
-- The first image is Regular type.
-- Second image is SemiBold type

Issue2
Issue1
image

Thanks!!

@jesusvelezx jesusvelezx changed the title Caskaydiacove Nerd Font -- Ligadure Issue -- Caskaydiacove Nerd Font -- Ligadure Apr 13, 2024
@jesusvelezx jesusvelezx changed the title Issue -- Caskaydiacove Nerd Font -- Ligadure Caskaydiacove Nerd Font -- Ligadure Apr 13, 2024
@Finii Finii changed the title Caskaydiacove Nerd Font -- Ligadure CaskaydiaCove Nerd Font -- Ligature Apr 18, 2024
@Finii
Copy link
Collaborator

Finii commented Apr 18, 2024

Lig looks ok in writer

image

The ligature uses these glyphs:

image

The point coordinates are exactly the same, but the hinting might be different.

Ah, yes, here

image

Which OS are you on?

@Finii Finii changed the title CaskaydiaCove Nerd Font -- Ligature CaskaydiaCove Nerd Font -- "Arrow" Ligature Apr 18, 2024
@Finii
Copy link
Collaborator

Finii commented Apr 18, 2024

This is a subset (duplicate) of

@Finii
Copy link
Collaborator

Finii commented Apr 18, 2024

The 'original' hints are from VTT.

I did find a solution that we possibly can automate that make the hints compatible:

image

Although the code change is simple that would involve some more restructuring of the configs. 🤔

Finii added a commit that referenced this issue Apr 18, 2024
[why]
Some Caskaydia Cove glyphs that are used in ligatures (to create endless
arrows for example) show uneven line thickness on some platforms.

The reason is the not-matching hinting of glyphs that are places next
to each other and so minuscule differences are quite visible.

Note that the 'original' hinting is generated by VTT on the static
Cascadia Code instances, which upstream just have ttfautohint hints that
are different from the hints in the variable fonts and people complained
that the look is different.

[how]
Add a new field to the config.json file that holds regexes of glyph
names for glyphs that should be re-hinted by fontforge on patching time.

In principle we could also implement that as an additional pre-step that
needs to be manually done after running VTT on the static font files.

I'm not sure which is better.

Note that fontforge generates a lot of debug output because the hinting
is not ideal - the global tables are kept and probably less compatible
to fontforge's own hinting... But the results are good.

Fixes: #1291
Fixes: #1609

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
Finii added a commit that referenced this issue Apr 18, 2024
[why]
Some Caskaydia Cove glyphs that are used in ligatures (to create endless
arrows for example) show uneven line thickness on some platforms.

The reason is the not-matching hinting of glyphs that are places next
to each other and so minuscule differences are quite visible.

Note that the 'original' hinting is generated by VTT on the static
Cascadia Code instances, which upstream just have ttfautohint hints that
are different from the hints in the variable fonts and people complained
that the look is different.

[how]
Add a new field to the config.json file that holds regexes of glyph
names for glyphs that should be re-hinted by fontforge on patching time.

In principle we could also implement that as an additional pre-step that
needs to be manually done after running VTT on the static font files.

I'm not sure which is better.

Note that fontforge generates a lot of debug output because the hinting
is not ideal - the global tables are kept and probably less compatible
to fontforge's own hinting... But the results are good.

Fixes: #1291
Fixes: #1609

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
@jesusvelezx
Copy link
Author

Lig se ve bien enwriter

imagen

La ligadura utiliza estos glifos:

imagen

Las coordenadas de los puntos son exactamente las mismas, pero las sugerencias pueden ser diferentes.

Ah, si, aquí.

imagen

¿En qué sistema operativo estás?

I am using Windows 11
So there is a problem, isn't there?
Or, is it a problem with the IDE I'm using?

@Finii
Copy link
Collaborator

Finii commented Apr 19, 2024

There is a problem.
And I implemented something that should fix it (see above PR #1613).

I need someone who sees it (I can not see the problem in my one Windows box, but I can only connect to it via RDP, and I believe hinting problems are not visible then, and the only other Windows box I can sometimes use is the Gaming Laptop of one of my children 😬 ).
So I need someone who sees it to try out the fonts after the change. If you would do it (i.e. remove all Caskaydia Cove, reboot, install the new ones, try out, ...) I can put them here... ?


Edit: Adding translations :-)

  • Hay un error, gracias por informar
  • Implementé una solución. Pero no puedo ver el problema, por lo que no puedo ver si la solución funciona.
  • ¿Quieres probar la nueva fuente, puedo subirla aquí en un comentario?

@jesusvelezx
Copy link
Author

Of course I can do it myself, I have no problem!

Finii added a commit that referenced this issue Apr 20, 2024
[why]
Some Caskaydia Cove glyphs that are used in ligatures (to create endless
arrows for example) show uneven line thickness on some platforms.

The reason is the not-matching hinting of glyphs that are places next
to each other and so minuscule differences are quite visible.

Note that the 'original' hinting is generated by VTT on the static
Cascadia Code instances, which upstream just have ttfautohint hints that
are different from the hints in the variable fonts and people complained
that the look is different.

[how]
Add a new field to the config.cfg file that holds regexes of glyph
names for glyphs that should be re-hinted by fontforge on patching time.

In principle we could also implement that as an additional pre-step that
needs to be manually done after running VTT on the static font files.

I'm not sure which is better.

Note that fontforge generates a lot of debug output because the hinting
is not ideal - the global tables are kept and probably less compatible
to fontforge's own hinting... But the results are good.

Fixes: #1291
Fixes: #1609

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
@Finii
Copy link
Collaborator

Finii commented Apr 20, 2024

Here the Regular font with hopefully fixed arrows.
Reports appreciated.

CaskaydiaCove_arrows.zip

@jesusvelezx
Copy link
Author

I just tested it and it works great. But still the semibold and bold have the same problem :(
I'm sorry, I just noticed it.

@Finii
Copy link
Collaborator

Finii commented Apr 20, 2024

That is expected ;-) Only Regular is fixed in the zip file.

Do you need them? I can just upload which you need. Nerd Font Mono and the Regular, Bold, SemiBold and the Italic ones?

@jesusvelezx
Copy link
Author

If it is possible to have all the fonts for me it would be great :)

@Finii
Copy link
Collaborator

Finii commented Apr 21, 2024

Here a more complete set of patched fonts. The problem is that Github does not allow big archives in comments and also does not allow better archives than zip 🙄

CascadiaCode_subset_arrow.zip

And here is a complete set of all fonts. To circumvent the Github shortcomings, this is an xz archive in a zip archive.

  • Unpack the zip -> you get a xz
  • Unpack the xz -> you get the fonts

You need some tool like 7-zip to unpack the xz.

Contents of the small subset:

$ unzip -v CascadiaCode_subset_arrow.zip
Archive:  CascadiaCode_subset_arrow.zip
 Length   Method    Size  Cmpr    Date    Time   CRC-32   Name
--------  ------  ------- ---- ---------- ----- --------  ----
 2581408  Defl:X  1339185  48% 2024-04-20 15:34 84663779  CaskaydiaCoveNerdFont-Regular.ttf
 2343208  Defl:X  1343516  43% 2024-04-20 15:36 1186f749  CaskaydiaCoveNerdFontMono-Italic.ttf
 2431548  Defl:X  1273497  48% 2024-04-20 15:36 0721c02f  CaskaydiaCoveNerdFont-Italic.ttf
 2490588  Defl:X  1407445  44% 2024-04-20 15:35 0000040e  CaskaydiaCoveNerdFontMono-Regular.ttf
 2492292  Defl:X  1408228  44% 2024-04-20 15:40 7a83b739  CaskaydiaCoveNerdFontMono-Bold.ttf
 2583112  Defl:X  1338882  48% 2024-04-20 15:39 4cd58b28  CaskaydiaCoveNerdFont-Bold.ttf
 2432792  Defl:X  1275467  48% 2024-04-20 15:38 23d381fd  CaskaydiaCoveNerdFont-BoldItalic.ttf
 2344452  Defl:X  1345810  43% 2024-04-20 15:38 08270cfd  CaskaydiaCoveNerdFontMono-BoldItalic.ttf
 2432336  Defl:X  1276373  48% 2024-04-20 15:50 431176fe  CaskaydiaCoveNerdFont-SemiBoldItalic.ttf
 2582516  Defl:X  1340144  48% 2024-04-20 15:49 5fa68881  CaskaydiaCoveNerdFont-SemiBold.ttf
 2491700  Defl:X  1409260  44% 2024-04-20 15:49 d95f73ae  CaskaydiaCoveNerdFontMono-SemiBold.ttf
 2343996  Defl:X  1346586  43% 2024-04-20 15:51 f8c5e7db  CaskaydiaCoveNerdFontMono-SemiBoldItalic.ttf
    4395  Defl:X     1939  56% 2024-04-20 15:52 1044e40d  LICENSE
    3467  Defl:X     1634  53% 2024-04-21 08:35 ca894118  README.md
--------          -------  ---                            -------
29557810         16107966  46%                            14 files

Downloads

CascadiaCode_subset_arrow.zip (12 fonts, 16 MB)

CascadiaCode.tar.xz.zip (36 fonts, 3 MB)

@jesusvelezx
Copy link
Author

Oh man you are awesome! Thank you for the support!!

Finii added a commit that referenced this issue Apr 22, 2024
[why]
Some Caskaydia Cove glyphs that are used in ligatures (to create endless
arrows for example) show uneven line thickness on some platforms.

The reason is the not-matching hinting of glyphs that are places next
to each other and so minuscule differences are quite visible.

Note that the 'original' hinting is generated by VTT on the static
Cascadia Code instances, which upstream just have ttfautohint hints that
are different from the hints in the variable fonts and people complained
that the look is different.

[how]
Add a new field to the config.cfg file that holds regexes of glyph
names for glyphs that should be re-hinted by fontforge on patching time.

In principle we could also implement that as an additional pre-step that
needs to be manually done after running VTT on the static font files.

I'm not sure which is better.

Note that fontforge generates a lot of debug output because the hinting
is not ideal - the global tables are kept and probably less compatible
to fontforge's own hinting... But the results are good.

Fixes: #1291
Fixes: #1609

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
Copy link
Contributor

This issue has been automatically locked since there has not been any recent activity (i.e. last half year) after it was closed. It helps our maintainers focus on the active issues. If you have found a problem that seems similar, please open a new issue, complete the issue template with all the details necessary to reproduce, and mention this issue as reference.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Oct 21, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants