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

Patching Ubuntu Mono 0.86 (Ubntu 23.04) gives bad result #1302

Closed
3 tasks done
michalfita opened this issue Jun 16, 2023 · 11 comments
Closed
3 tasks done

Patching Ubuntu Mono 0.86 (Ubntu 23.04) gives bad result #1302

michalfita opened this issue Jun 16, 2023 · 11 comments

Comments

@michalfita
Copy link

🗹 Requirements

  • I have searched the issues for my issue and found nothing related and/or helpful
  • I have searched the FAQ for help
  • I have searched the Wiki for help

🎯 Subject of the issue

The problem is pretty basic, I used Docker version of the patcher, end up with lot of warning and errors, but resulting file is not what I expected. The existing Ubuntu Mono Nerd is based on 0.80 that scales differently. The default size on Ubuntu 23.04 is 13 pt, but I have to scale the one from this repo to 15 to have the same size, but letters are thicker.

After patching 0.86 on originally installed on my Ubuntu I end up with smaller letters, the same line height, but some hinting gone as well. Screenshots from Gnome Terminal. Unfortunately these screenshots from Wayland are much blurrier than real image on my 4K screen, however, the difference is still visible.

Experienced behavior:
Zrzut ekranu z 2023-06-16 17-45-29

Expected behavior:
Zrzut ekranu z 2023-06-16 17-45-00

Example symbols:
Applies to whole font in general.

Log:

Running with options:
 -c
Copyright (c) 2000-2023. See AUTHORS for Contributors.
 License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
 with many parts BSD <http://fontforge.org/license.html>. Please read LICENSE.
 Version: 20230101
 Based on sources from 2023-04-28 21:13 UTC-D.
WARNING:root:Source font is a variable open type font (VF), opening might fail...
DEBUG:UbuntuMono-Italic[wght].ttf:Naming mode 1
The following table(s) in the font have been ignored by FontForge
  Ignoring 'HVAR' horizontal metrics variations table
  Ignoring 'STAT' style attributes table
Hmm, this 'fvar' table has an unexpected size for an instance, I shan't parse it
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
The glyph named uni03BC is mapped to U+00B5.
But its name indicates it should be mapped to U+03BC.
The glyph named uni2150 is mapped to U+F506.
But its name indicates it should be mapped to U+2150.
The glyph named uni2151 is mapped to U+F50C.
But its name indicates it should be mapped to U+2151.
The glyph named uni0394 is mapped to U+2206.
But its name indicates it should be mapped to U+0394.
The glyph named fi is mapped to U+F001.
But its name indicates it should be mapped to U+FB01.
The glyph named fl is mapped to U+F002.
But its name indicates it should be mapped to U+FB02.
DEBUG:UbuntuMono-Italic[wght].ttf:Monospace check: Panose says "monospaced"; glyph-width-mono True
DEBUG:UbuntuMono-Italic[wght].ttf:Font has negative right side bearing in extended glyphs
DEBUG:UbuntuMono-Italic[wght].ttf:Final font cell dimensions 560 w x 1121 h
DEBUG:UbuntuMono-Italic[wght].ttf:44/160 box drawing glyphs will be replaced
Nerd Fonts Patcher v3.0.1 (4.4.0) (ff 20230101)
Adding 180 Glyphs from Seti-UI + Custom Set
╢████████████████████████████████████████╟ 100%
Adding 6 Glyphs from Heavy Angle Brackets Set
╢████████████████████████████████████████╟ 100%
Adding 160 Glyphs from Box Drawing Set
╢████████████████████████████████████████╟ 100%
Adding 198 Glyphs from Devicons Set
╢████████████████████████████████████████╟ 100%
Adding 3 Glyphs from Powerline Symbols Set
╢████████████████████████████████████████╟ 100%
Adding 4 Glyphs from Powerline Symbols Set
╢████████████████████████████████████████╟ 100%
Adding 1 Glyphs from Powerline Extra Symbols Set
╢████████████████████████████████████████╟ 100%
Adding 21 Glyphs from Powerline Extra Symbols Set
╢████████████████████████████████████████╟ 100%
Adding 1 Glyphs from Powerline Extra Symbols Set
╢████████████████████████████████████████╟ 100%
Adding 8 Glyphs from Powerline Extra Symbols Set
╢████████████████████████████████████████╟ 100%
Adding 1 Glyphs from Powerline Extra Symbols Set
╢████████████████████████████████████████╟ 100%
Adding 11 Glyphs from Pomicons Set
╢████████████████████████████████████████╟ 100%The following table(s) in the font have been ignored by FontForge
  Ignoring 'EPAR'
The glyph named asterisk is mapped to U+F069.
But its name indicates it should be mapped to U+002A.
The glyph named plus is mapped to U+F067.
But its name indicates it should be mapped to U+002B.
The glyph named question is mapped to U+F128.
But its name indicates it should be mapped to U+003F.
The glyph named minus is mapped to U+F068.
But its name indicates it should be mapped to U+2212.
The glyph named heart is mapped to U+F004.
But its name indicates it should be mapped to U+2665.
The glyph named home is mapped to U+F015.
But its name indicates it should be mapped to U+21B8.
The glyph named check is mapped to U+F046.
But its name indicates it should be mapped to U+2713.
The glyph named bell is mapped to U+F0A2.
But its name indicates it should be mapped to U+2407.
The glyph named lessequal is mapped to U+F500.
But its name indicates it should be mapped to U+2264.
The glyph named circle is mapped to U+F111.
But its name indicates it should be mapped to U+25CB.
The glyph named smile is mapped to U+F118.
But its name indicates it should be mapped to U+263A.
The glyph named frown is mapped to U+F119.
But its name indicates it should be mapped to U+2322.
The glyph named bullseye is mapped to U+F140.
But its name indicates it should be mapped to U+25CE.
The glyph named compass is mapped to U+F14E.
But its name indicates it should be mapped to U+263C.
The glyph named female is mapped to U+F182.
But its name indicates it should be mapped to U+2640.
The glyph named male is mapped to U+F183.
But its name indicates it should be mapped to U+2642.
The glyph named sun is mapped to U+F185.
But its name indicates it should be mapped to U+263C.
The glyph named venus is mapped to U+F221.
But its name indicates it should be mapped to U+2640.

Adding 679 Glyphs from Font Awesome Set
╢░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟ 1%DEBUG:UbuntuMono-Italic[wght].ttf:Found essential Glyph at F001. Skipping...
DEBUG:UbuntuMono-Italic[wght].ttf:Found essential Glyph at F002. Skipping...
╢████████████████████████████████████████╟ 100%The glyph named slash is mapped to U+E016.
But its name indicates it should be mapped to U+002F.
The glyph named pi is mapped to U+E02C.
But its name indicates it should be mapped to U+03C0.
The glyph named ring is mapped to U+E03D.
But its name indicates it should be mapped to U+02DA.
The glyph named infinity is mapped to U+E055.
But its name indicates it should be mapped to U+221E.
The glyph named equal is mapped to U+E079.
But its name indicates it should be mapped to U+003D.

Adding 170 Glyphs from Font Awesome Extension Set
╢████████████████████████████████████████╟ 100%
Adding 4 Glyphs from Power Symbols Set
╢████████████████████████████████████████╟ 100%
Adding 1 Glyphs from Power Symbols Set
╢████████████████████████████████████████╟ 100%The glyph named alpha is mapped to U+F002B.
But its name indicates it should be mapped to U+03B1.
The glyph named at is mapped to U+F0065.
But its name indicates it should be mapped to U+0040.
The glyph named backspace is mapped to U+F006E.
But its name indicates it should be mapped to U+2408.
The glyph named bell is mapped to U+F009A.
But its name indicates it should be mapped to U+2407.
The glyph named beta is mapped to U+F00A1.
But its name indicates it should be mapped to U+03B2.
The glyph named box is mapped to U+F00D4.
But its name indicates it should be mapped to U+25A1.
The glyph named check is mapped to U+F012C.
But its name indicates it should be mapped to U+2713.
The glyph named compass is mapped to U+F018B.
But its name indicates it should be mapped to U+263C.
The glyph named delete is mapped to U+F01B4.
But its name indicates it should be mapped to U+2421.
The glyph named delta is mapped to U+F01C2.
But its name indicates it should be mapped to U+03B4.
The glyph named earth is mapped to U+F01E7.
But its name indicates it should be mapped to U+2641.
The glyph named equal is mapped to U+F01FC.
But its name indicates it should be mapped to U+003D.
The glyph named heart is mapped to U+F02D1.
But its name indicates it should be mapped to U+2665.
The glyph named home is mapped to U+F02DC.
But its name indicates it should be mapped to U+21B8.
The glyph named image is mapped to U+F02E9.
But its name indicates it should be mapped to U+22B7.
The glyph named minus is mapped to U+F0374.
But its name indicates it should be mapped to U+2212.
The glyph named omega is mapped to U+F03C9.
But its name indicates it should be mapped to U+03C9.
The glyph named percent is mapped to U+F03F0.
But its name indicates it should be mapped to U+0025.
The glyph named pi is mapped to U+F03FF.
But its name indicates it should be mapped to U+03C0.
The glyph named plus is mapped to U+F0415.
But its name indicates it should be mapped to U+002B.
The glyph named sigma is mapped to U+F04A0.
But its name indicates it should be mapped to U+03C3.
The glyph named tie is mapped to U+F0519.
But its name indicates it should be mapped to U+2040.
The glyph named triangle is mapped to U+F0536.
But its name indicates it should be mapped to U+25B3.
The glyph named bullseye is mapped to U+F05DD.
But its name indicates it should be mapped to U+25CE.
The glyph named copyright is mapped to U+F05E6.
But its name indicates it should be mapped to U+00A9.
The glyph named lambda is mapped to U+F0627.
But its name indicates it should be mapped to U+03BB.
The glyph named asterisk is mapped to U+F06C4.
But its name indicates it should be mapped to U+002A.
The glyph named hook is mapped to U+F06E2.
But its name indicates it should be mapped to U+2440.
The glyph named infinity is mapped to U+F06E4.
But its name indicates it should be mapped to U+221E.
The glyph named prescription is mapped to U+F0706.
But its name indicates it should be mapped to U+211E.
The glyph named tilde is mapped to U+F0725.
But its name indicates it should be mapped to U+02DC.
The glyph named cancel is mapped to U+F073A.
But its name indicates it should be mapped to U+2418.
The glyph named square is mapped to U+F0764.
But its name indicates it should be mapped to U+25A1.
The glyph named null is mapped to U+F07E2.
But its name indicates it should be mapped to U+2400.
The glyph named pipe is mapped to U+F07E5.
But its name indicates it should be mapped to U+01C0.
The glyph named ring is mapped to U+F07EB.
But its name indicates it should be mapped to U+02DA.
The glyph named cross is mapped to U+F0953.
But its name indicates it should be mapped to U+2629.
The glyph named trademark is mapped to U+F0A78.
But its name indicates it should be mapped to U+2122.
The glyph named ampersand is mapped to U+F0A8D.
But its name indicates it should be mapped to U+0026.
The glyph named diamond is mapped to U+F0B8A.
But its name indicates it should be mapped to U+2666.
The glyph named bullet is mapped to U+F0CF3.
But its name indicates it should be mapped to U+2022.
The glyph named comma is mapped to U+F0E23.
But its name indicates it should be mapped to U+002C.
The glyph named rectangle is mapped to U+F0E5E.
But its name indicates it should be mapped to U+25AD.
The glyph named spade is mapped to U+F0E65.
But its name indicates it should be mapped to U+2660.
The glyph named epsilon is mapped to U+F10E0.
But its name indicates it should be mapped to U+03B5.
The glyph named gamma is mapped to U+F10EE.
But its name indicates it should be mapped to U+03B3.

Adding 6896 Glyphs from Material Set
╢████████████████████████████████████████╟ 100%The following table(s) in the font have been ignored by FontForge
  Ignoring 'webf'

Adding 228 Glyphs from Weather Icons Set
╢████████████████████████████████████████╟ 100%
Adding 48 Glyphs from Font Logos Set
╢████████████████████████████████████████╟ 100%The glyph named question is mapped to U+F02C.
But its name indicates it should be mapped to U+003F.
The glyph named check is mapped to U+F03A.
But its name indicates it should be mapped to U+2713.
The glyph named plus is mapped to U+F05D.
But its name indicates it should be mapped to U+002B.
The glyph named x is mapped to U+F081.
But its name indicates it should be mapped to U+0078.
The glyph named home is mapped to U+F08D.
But its name indicates it should be mapped to U+21B8.
The glyph named ellipsis is mapped to U+F09A.
But its name indicates it should be mapped to U+2026.
The glyph named bell is mapped to U+F0DE.
But its name indicates it should be mapped to U+2407.
The glyph named circle is mapped to U+F27D.
But its name indicates it should be mapped to U+25CB.
The glyph named diamond is mapped to U+F292.
But its name indicates it should be mapped to U+2666.
The glyph named image is mapped to U+F2B8.
But its name indicates it should be mapped to U+22B7.
The glyph named infinity is mapped to U+F2B9.
But its name indicates it should be mapped to U+221E.
The glyph named square is mapped to U+F2F0.
But its name indicates it should be mapped to U+25A1.
The glyph named sun is mapped to U+F2F5.
But its name indicates it should be mapped to U+263C.

Adding 169 Glyphs from Octicons Set
╢████████████████████████████████████████╟ 100%
Adding 1 Glyphs from Octicons Set
╢████████████████████████████████████████╟ 100%
Adding 1 Glyphs from Octicons Set
╢████████████████████████████████████████╟ 100%
Adding 139 Glyphs from Octicons Set
╢████████████████████████████████████████╟ 100%The glyph named bell is mapped to U+EAA2.
But its name indicates it should be mapped to U+2407.
The glyph named check is mapped to U+EAB2.
But its name indicates it should be mapped to U+2713.
The glyph named compass is mapped to U+EBD5.
But its name indicates it should be mapped to U+263C.
The glyph named ellipsis is mapped to U+EA7C.
But its name indicates it should be mapped to U+2026.
The glyph named heart is mapped to U+EB05.
But its name indicates it should be mapped to U+2665.
The glyph named home is mapped to U+EB06.
But its name indicates it should be mapped to U+21B8.
The glyph named newline is mapped to U+EBEA.
But its name indicates it should be mapped to U+2424.
The glyph named question is mapped to U+EB32.
But its name indicates it should be mapped to U+003F.

Adding 388 Glyphs from Codicons Set
╢████████████████████████████████████████╟ 100%DEBUG:UbuntuMono-Italic[wght].ttf:=====> Family (ID 1)      ok       (20 <=31): UbuntuMono Nerd Font
DEBUG:UbuntuMono-Italic[wght].ttf:=====> SubFamily (ID 2)   ok       ( 6 <=31): Italic
DEBUG:UbuntuMono-Italic[wght].ttf:=====> Fullname (ID 4)    ok       (27 <=63): UbuntuMono Nerd Font Italic
DEBUG:UbuntuMono-Italic[wght].ttf:=====> PSN (ID 6)         ok       (19 <=63): UbuntuMonoNF-Italic
DEBUG:UbuntuMono-Italic[wght].ttf:Tweaking 1/1
DEBUG:UbuntuMono-Italic[wght].ttf:Changing flags from 0xB to 0x3
DEBUG:UbuntuMono-Italic[wght].ttf:Changing lowestRecPPEM from 8 to 6
CRITICAL:UbuntuMono-Italic[wght].ttf:Source font is a variable open type font (VF) and the patch results will most likely not be what you want

Done with Patch Sets, generating font...
CRITICAL: Source font is a variable open type font (VF) and the patch results will most likely not be what you want
   UbuntuMono Nerd Font Italic
   \===> '/out/UbuntuMonoNerdFont-Italic.ttf'
Copyright (c) 2000-2023. See AUTHORS for Contributors.
 License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
 with many parts BSD <http://fontforge.org/license.html>. Please read LICENSE.
 Version: 20230101
 Based on sources from 2023-04-28 21:13 UTC-D.
WARNING:root:Source font is a variable open type font (VF), opening might fail...
DEBUG:UbuntuMono[wght].ttf:Naming mode 1
The following table(s) in the font have been ignored by FontForge
  Ignoring 'HVAR' horizontal metrics variations table
  Ignoring 'STAT' style attributes table
Hmm, this 'fvar' table has an unexpected size for an instance, I shan't parse it
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
Bad device table
The glyph named uni03BC is mapped to U+00B5.
But its name indicates it should be mapped to U+03BC.
The glyph named uni2150 is mapped to U+F506.
But its name indicates it should be mapped to U+2150.
The glyph named uni2151 is mapped to U+F50C.
But its name indicates it should be mapped to U+2151.
The glyph named uni0394 is mapped to U+2206.
But its name indicates it should be mapped to U+0394.
The glyph named fi is mapped to U+F001.
But its name indicates it should be mapped to U+FB01.
The glyph named fl is mapped to U+F002.
But its name indicates it should be mapped to U+FB02.
DEBUG:UbuntuMono[wght].ttf:Monospace check: Panose says "monospaced"; glyph-width-mono True
DEBUG:UbuntuMono[wght].ttf:Extended glyphs wider bounding box than basic glyphs
DEBUG:UbuntuMono[wght].ttf:Final font cell dimensions 560 w x 1121 h
DEBUG:UbuntuMono[wght].ttf:44/160 box drawing glyphs will be replaced
Nerd Fonts Patcher v3.0.1 (4.4.0) (ff 20230101)
Adding 180 Glyphs from Seti-UI + Custom Set
╢████████████████████████████████████████╟ 100%
Adding 6 Glyphs from Heavy Angle Brackets Set
╢████████████████████████████████████████╟ 100%
Adding 160 Glyphs from Box Drawing Set
╢████████████████████████████████████████╟ 100%
Adding 198 Glyphs from Devicons Set
╢████████████████████████████████████████╟ 100%
Adding 3 Glyphs from Powerline Symbols Set
╢████████████████████████████████████████╟ 100%
Adding 4 Glyphs from Powerline Symbols Set
╢████████████████████████████████████████╟ 100%
Adding 1 Glyphs from Powerline Extra Symbols Set
╢████████████████████████████████████████╟ 100%
Adding 21 Glyphs from Powerline Extra Symbols Set
╢████████████████████████████████████████╟ 100%
Adding 1 Glyphs from Powerline Extra Symbols Set
╢████████████████████████████████████████╟ 100%
Adding 8 Glyphs from Powerline Extra Symbols Set
╢████████████████████████████████████████╟ 100%
Adding 1 Glyphs from Powerline Extra Symbols Set
╢████████████████████████████████████████╟ 100%
Adding 11 Glyphs from Pomicons Set
╢████████████████████████████████████████╟ 100%The following table(s) in the font have been ignored by FontForge
  Ignoring 'EPAR'
The glyph named asterisk is mapped to U+F069.
But its name indicates it should be mapped to U+002A.
The glyph named plus is mapped to U+F067.
But its name indicates it should be mapped to U+002B.
The glyph named question is mapped to U+F128.
But its name indicates it should be mapped to U+003F.
The glyph named minus is mapped to U+F068.
But its name indicates it should be mapped to U+2212.
The glyph named heart is mapped to U+F004.
But its name indicates it should be mapped to U+2665.
The glyph named home is mapped to U+F015.
But its name indicates it should be mapped to U+21B8.
The glyph named check is mapped to U+F046.
But its name indicates it should be mapped to U+2713.
The glyph named bell is mapped to U+F0A2.
But its name indicates it should be mapped to U+2407.
The glyph named lessequal is mapped to U+F500.
But its name indicates it should be mapped to U+2264.
The glyph named circle is mapped to U+F111.
But its name indicates it should be mapped to U+25CB.
The glyph named smile is mapped to U+F118.
But its name indicates it should be mapped to U+263A.
The glyph named frown is mapped to U+F119.
But its name indicates it should be mapped to U+2322.
The glyph named bullseye is mapped to U+F140.
But its name indicates it should be mapped to U+25CE.
The glyph named compass is mapped to U+F14E.
But its name indicates it should be mapped to U+263C.
The glyph named female is mapped to U+F182.
But its name indicates it should be mapped to U+2640.
The glyph named male is mapped to U+F183.
But its name indicates it should be mapped to U+2642.
The glyph named sun is mapped to U+F185.
But its name indicates it should be mapped to U+263C.
The glyph named venus is mapped to U+F221.
But its name indicates it should be mapped to U+2640.

Adding 679 Glyphs from Font Awesome Set
╢░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟ 0%DEBUG:UbuntuMono[wght].ttf:Found essential Glyph at F001. Skipping...
DEBUG:UbuntuMono[wght].ttf:Found essential Glyph at F002. Skipping...
╢████████████████████████████████████████╟ 100%The glyph named slash is mapped to U+E016.
But its name indicates it should be mapped to U+002F.
The glyph named pi is mapped to U+E02C.
But its name indicates it should be mapped to U+03C0.
The glyph named ring is mapped to U+E03D.
But its name indicates it should be mapped to U+02DA.
The glyph named infinity is mapped to U+E055.
But its name indicates it should be mapped to U+221E.
The glyph named equal is mapped to U+E079.
But its name indicates it should be mapped to U+003D.

Adding 170 Glyphs from Font Awesome Extension Set
╢████████████████████████████████████████╟ 100%
Adding 4 Glyphs from Power Symbols Set
╢████████████████████████████████████████╟ 100%
Adding 1 Glyphs from Power Symbols Set
╢████████████████████████████████████████╟ 100%The glyph named alpha is mapped to U+F002B.
But its name indicates it should be mapped to U+03B1.
The glyph named at is mapped to U+F0065.
But its name indicates it should be mapped to U+0040.
The glyph named backspace is mapped to U+F006E.
But its name indicates it should be mapped to U+2408.
The glyph named bell is mapped to U+F009A.
But its name indicates it should be mapped to U+2407.
The glyph named beta is mapped to U+F00A1.
But its name indicates it should be mapped to U+03B2.
The glyph named box is mapped to U+F00D4.
But its name indicates it should be mapped to U+25A1.
The glyph named check is mapped to U+F012C.
But its name indicates it should be mapped to U+2713.
The glyph named compass is mapped to U+F018B.
But its name indicates it should be mapped to U+263C.
The glyph named delete is mapped to U+F01B4.
But its name indicates it should be mapped to U+2421.
The glyph named delta is mapped to U+F01C2.
But its name indicates it should be mapped to U+03B4.
The glyph named earth is mapped to U+F01E7.
But its name indicates it should be mapped to U+2641.
The glyph named equal is mapped to U+F01FC.
But its name indicates it should be mapped to U+003D.
The glyph named heart is mapped to U+F02D1.
But its name indicates it should be mapped to U+2665.
The glyph named home is mapped to U+F02DC.
But its name indicates it should be mapped to U+21B8.
The glyph named image is mapped to U+F02E9.
But its name indicates it should be mapped to U+22B7.
The glyph named minus is mapped to U+F0374.
But its name indicates it should be mapped to U+2212.
The glyph named omega is mapped to U+F03C9.
But its name indicates it should be mapped to U+03C9.
The glyph named percent is mapped to U+F03F0.
But its name indicates it should be mapped to U+0025.
The glyph named pi is mapped to U+F03FF.
But its name indicates it should be mapped to U+03C0.
The glyph named plus is mapped to U+F0415.
But its name indicates it should be mapped to U+002B.
The glyph named sigma is mapped to U+F04A0.
But its name indicates it should be mapped to U+03C3.
The glyph named tie is mapped to U+F0519.
But its name indicates it should be mapped to U+2040.
The glyph named triangle is mapped to U+F0536.
But its name indicates it should be mapped to U+25B3.
The glyph named bullseye is mapped to U+F05DD.
But its name indicates it should be mapped to U+25CE.
The glyph named copyright is mapped to U+F05E6.
But its name indicates it should be mapped to U+00A9.
The glyph named lambda is mapped to U+F0627.
But its name indicates it should be mapped to U+03BB.
The glyph named asterisk is mapped to U+F06C4.
But its name indicates it should be mapped to U+002A.
The glyph named hook is mapped to U+F06E2.
But its name indicates it should be mapped to U+2440.
The glyph named infinity is mapped to U+F06E4.
But its name indicates it should be mapped to U+221E.
The glyph named prescription is mapped to U+F0706.
But its name indicates it should be mapped to U+211E.
The glyph named tilde is mapped to U+F0725.
But its name indicates it should be mapped to U+02DC.
The glyph named cancel is mapped to U+F073A.
But its name indicates it should be mapped to U+2418.
The glyph named square is mapped to U+F0764.
But its name indicates it should be mapped to U+25A1.
The glyph named null is mapped to U+F07E2.
But its name indicates it should be mapped to U+2400.
The glyph named pipe is mapped to U+F07E5.
But its name indicates it should be mapped to U+01C0.
The glyph named ring is mapped to U+F07EB.
But its name indicates it should be mapped to U+02DA.
The glyph named cross is mapped to U+F0953.
But its name indicates it should be mapped to U+2629.
The glyph named trademark is mapped to U+F0A78.
But its name indicates it should be mapped to U+2122.
The glyph named ampersand is mapped to U+F0A8D.
But its name indicates it should be mapped to U+0026.
The glyph named diamond is mapped to U+F0B8A.
But its name indicates it should be mapped to U+2666.
The glyph named bullet is mapped to U+F0CF3.
But its name indicates it should be mapped to U+2022.
The glyph named comma is mapped to U+F0E23.
But its name indicates it should be mapped to U+002C.
The glyph named rectangle is mapped to U+F0E5E.
But its name indicates it should be mapped to U+25AD.
The glyph named spade is mapped to U+F0E65.
But its name indicates it should be mapped to U+2660.
The glyph named epsilon is mapped to U+F10E0.
But its name indicates it should be mapped to U+03B5.
The glyph named gamma is mapped to U+F10EE.
But its name indicates it should be mapped to U+03B3.

Adding 6896 Glyphs from Material Set
╢████████████████████████████████████████╟ 100%The following table(s) in the font have been ignored by FontForge
  Ignoring 'webf'

Adding 228 Glyphs from Weather Icons Set
╢████████████████████████████████████████╟ 100%
Adding 48 Glyphs from Font Logos Set
╢████████████████████████████████████████╟ 100%The glyph named question is mapped to U+F02C.
But its name indicates it should be mapped to U+003F.
The glyph named check is mapped to U+F03A.
But its name indicates it should be mapped to U+2713.
The glyph named plus is mapped to U+F05D.
But its name indicates it should be mapped to U+002B.
The glyph named x is mapped to U+F081.
But its name indicates it should be mapped to U+0078.
The glyph named home is mapped to U+F08D.
But its name indicates it should be mapped to U+21B8.
The glyph named ellipsis is mapped to U+F09A.
But its name indicates it should be mapped to U+2026.
The glyph named bell is mapped to U+F0DE.
But its name indicates it should be mapped to U+2407.
The glyph named circle is mapped to U+F27D.
But its name indicates it should be mapped to U+25CB.
The glyph named diamond is mapped to U+F292.
But its name indicates it should be mapped to U+2666.
The glyph named image is mapped to U+F2B8.
But its name indicates it should be mapped to U+22B7.
The glyph named infinity is mapped to U+F2B9.
But its name indicates it should be mapped to U+221E.
The glyph named square is mapped to U+F2F0.
But its name indicates it should be mapped to U+25A1.
The glyph named sun is mapped to U+F2F5.
But its name indicates it should be mapped to U+263C.

Adding 169 Glyphs from Octicons Set
╢████████████████████████████████████████╟ 100%
Adding 1 Glyphs from Octicons Set
╢████████████████████████████████████████╟ 100%
Adding 1 Glyphs from Octicons Set
╢████████████████████████████████████████╟ 100%
Adding 139 Glyphs from Octicons Set
╢████████████████████████████████████████╟ 100%The glyph named bell is mapped to U+EAA2.
But its name indicates it should be mapped to U+2407.
The glyph named check is mapped to U+EAB2.
But its name indicates it should be mapped to U+2713.
The glyph named compass is mapped to U+EBD5.
But its name indicates it should be mapped to U+263C.
The glyph named ellipsis is mapped to U+EA7C.
But its name indicates it should be mapped to U+2026.
The glyph named heart is mapped to U+EB05.
But its name indicates it should be mapped to U+2665.
The glyph named home is mapped to U+EB06.
But its name indicates it should be mapped to U+21B8.
The glyph named newline is mapped to U+EBEA.
But its name indicates it should be mapped to U+2424.
The glyph named question is mapped to U+EB32.
But its name indicates it should be mapped to U+003F.

Adding 388 Glyphs from Codicons Set
╢████████████████████████████████████████╟ 100%DEBUG:UbuntuMono[wght].ttf:=====> Family (ID 1)      ok       (20 <=31): UbuntuMono Nerd Font
DEBUG:UbuntuMono[wght].ttf:=====> SubFamily (ID 2)   ok       ( 7 <=31): Regular
DEBUG:UbuntuMono[wght].ttf:=====> Fullname (ID 4)    ok       (20 <=63): UbuntuMono Nerd Font
DEBUG:UbuntuMono[wght].ttf:=====> PSN (ID 6)         ok       (20 <=63): UbuntuMonoNF-Regular
DEBUG:UbuntuMono[wght].ttf:Tweaking 1/1
DEBUG:UbuntuMono[wght].ttf:Changing flags from 0xB to 0x3
DEBUG:UbuntuMono[wght].ttf:Changing lowestRecPPEM from 8 to 6
CRITICAL:UbuntuMono[wght].ttf:Source font is a variable open type font (VF) and the patch results will most likely not be what you want

Done with Patch Sets, generating font...
CRITICAL: Source font is a variable open type font (VF) and the patch results will most likely not be what you want
   UbuntuMono Nerd Font
   \===> '/out/UbuntuMonoNerdFont-Regular.ttf'

🔧 Your Setup

  • Which font are you using (e.g. Anonymice Powerline Nerd Font Complete.ttf)?
    • Ubuntu Mono from Ubuntu 23.04 installation
  • Where did you get the file from (download link, self patched, source downloaded from link...)
    • /usr/share/fonts/truetype/ubuntu/UbuntuMono\[wght\].ttf
  • Which terminal emulator are you using (e.g. iterm2, urxvt, gnome, konsole)?
    • Gnome Terminal
  • Are you using OS X, Linux or Windows? And which specific version or distribution?
    • Ubuntu 23.04

★ Screenshots (Optional)

@Finii
Copy link
Collaborator

Finii commented Jun 18, 2023

Relevant messages are these:

  • WARNING:root:Source font is a variable open type font (VF), opening might fail...
  • CRITICAL: Source font is a variable open type font (VF) and the patch results will most likely not be what you want

The font-patcher is at the moment based on fontforge and that can not really work on variable fonts.
Sometimes the results are somehow usable, that is why it goes through the process and creates something instead of just telling you it can't do it.

The hints are broken because VF hints can usually not work in static fonts.
You should patch the static font version.

I'm astonished that there should be a newer version of Ubuntu Mono, because I just checked the latest font version on release v3.0.x.

Just re-checked:

image

image

image

You see, the Ubuntu Mono in the 0.83 release is just 0.80, the same we have in the release package.
If Canonical updated the Ubuntu Mono font to 0.86 they should publish it?
Even the font sources they publish is 0.83.

Anyhow, try using the static version of Ubuntu Mono 0.86.

@Finii Finii closed this as not planned Won't fix, can't repro, duplicate, stale Jun 18, 2023
@Finii
Copy link
Collaborator

Finii commented Jun 18, 2023

What we could do is generating the static instances from the VF font file and use ttfautohint to create new hints (might or might not be similar to the VF hints; we had a nightmare with that and Caskadia Code.

As I can find no information on 0.86, can not even download it separately from 23.04, the question is if this warranted.

If you have any official information on 0.86, please add it here. Font redistributors like Google Fonts also still has 0.83 with Mono being 0.80.

It is not much work to open the VF in (for example, because I mainly use that) Glyphs3 and generating the statics, but the devil is in the details. I would rather use an official static font version.

@michalfita
Copy link
Author

@Finii this is the version reported by font-manager the font itself enclosed.
image
I can't speak for Canonical (nor Google), why newer version isn't published on their websites. Someone probably neglected this after Ubuntu 23.04 was released.

Can you explain what static means in this context? And how to normally obtain such version? Am I correctly understand if I have two VF files symlinked, the "system" does the rendering based on some defaults for Regular, Italic and so on?

Font config 71-ubuntulegacy..conf:

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<selectfont>
    <rejectfont>
        <glob>/usr/share/fonts/truetype/ubuntu/Ubuntu-B.ttf</glob>
        <glob>/usr/share/fonts/truetype/ubuntu/Ubuntu-BI.ttf</glob>
        <glob>/usr/share/fonts/truetype/ubuntu/Ubuntu-C.ttf</glob>
        <glob>/usr/share/fonts/truetype/ubuntu/Ubuntu-L.ttf</glob>
        <glob>/usr/share/fonts/truetype/ubuntu/Ubuntu-LI.ttf</glob>
        <glob>/usr/share/fonts/truetype/ubuntu/Ubuntu-M.ttf</glob>
        <glob>/usr/share/fonts/truetype/ubuntu/Ubuntu-MI.ttf</glob>
        <glob>/usr/share/fonts/truetype/ubuntu/Ubuntu-R.ttf</glob>
        <glob>/usr/share/fonts/truetype/ubuntu/Ubuntu-RI.ttf</glob>
        <glob>/usr/share/fonts/truetype/ubuntu/Ubuntu-Th.ttf</glob>
        <glob>/usr/share/fonts/truetype/ubuntu/UbuntuMono-B.ttf</glob>
        <glob>/usr/share/fonts/truetype/ubuntu/UbuntuMono-BI.ttf</glob>
        <glob>/usr/share/fonts/truetype/ubuntu/UbuntuMono-R.ttf</glob>
        <glob>/usr/share/fonts/truetype/ubuntu/UbuntuMono-RI.ttf</glob>
    </rejectfont>
</selectfont>

The font I have on my system seem to be only these two TrueTypes, with other variants symlinked to these two files.

Archive (w/symlinks): ubuntu-mono.tar.gz

@Finii
Copy link
Collaborator

Finii commented Jun 19, 2023

A bit of font history...

There have been different and evolving ways to describe the look of the glyphs. One popular way with the advent of Postscript was the Postscript-Fonts. With these each glyph is defined by an outline that consists of splines. These are nowadays encountered in OpenType-CFF fonts (otf). The Truetype fonts have then been developed, that use a different kind of splines; nowadays OpenType-TTF (ttf).
If you want related but different fonts, like Condended or Bold, you need a separate font file for that.

People loved font families with lots of choices, but you were always limited by the amount of font files you need.
This is the advent of variable fonts. They do not come in Light, Regular, and Bold anymore but you can say 'I want thei weight of it to be somewhere between Bold and ExtraBold, more to the Bold side': They have an 'axis of weight' that can be selected by the font-user and the font-renderer on the system calculates the actual outlines from a reference outline and your axis number.

Meanwhile there are fonts that have lots and lots of axis, like for example https://v-fonts.com/fonts/roboto-flex. Follow the link and try the sliders. This is all just one (1) small font file and some formulas.

That is a variable font. Which axis they have is usually in the name with square brackets, so UbuntuMono[wght].ttf means there is one axis that adjusts the weight. This font has all weights in it from Light to Black.
There is also UbuntuMono-Italic[wght].ttf, which has the Italic glyphs. But in fact they could have even combined these two font files into one UbuntuMono[wght][slnt].ttf that has two axis, the weight and the slant.

Anyhow, this is all 'new' stuff. Fontforge is not really able to work with fonts that have variable axis; instead old style fonts that are static (have no variables) are needed. Fontforge is a rather old program, and its invention predates variable fonts. Retrofitting variable font handling is something I guess surpasses the maintainers time and energy.

If you design a font nowadays that shall have different weights you design it as variable font. For the poor people that can not use these font files you then usually instantiate some static fonts with selected combination of axis values.
For example Cascadia Code is primarily a variable font, but in the release you also find static versions for typical situations.

As I said, of course we could easily instantiate these fonts from UbuntuMono's variable font file, BUT
The problem is the hints. The outlines are different for variable and static fonts, and as hints 'transmogrify' the outlines for small font rendering, they will not work anymore and new hints have to be created. Fine if this is done by a program like ttfautohint, but good fonts often have manually hinted glyphs, and THAT can not be preserved. One would need to manually hint the static fonts to achieve same rendering.

The only real way to go for font-patchers future is to use some more modern font tool than fontforge. While that is of course possible, that will take a lot of time for the Nerd Font developers, and has not even started yet.

So, this should shed some light on

  • Why Nerd Fonts' font-patcher can not process Variable Fonts
  • Why we also can not simply make static fonts from the variable ones

P.S. If you read my comment until here, thank you! I could generate the static UbuntuMono 0.86 files for you, that you can then self-patch. Depending on the autohinter that can work out or look ugly. It probably will look different. But you can try if you like it. Just tell me you like to do it - but do not complain about the looks 😬

@michalfita
Copy link
Author

Thanks for prompt response @Finii. I know the history, but my interest in computer graphics dropped significantly short before variable fonts went into mainstream. I've used some variable OTFs with InDesign in the past... but that's were my knowledge of the topic ends.

Is it possible to generate statics focusing on size 13 to get accurate hinting for that size? They I can try patching myself. If I'm not happy I'll drop the idea of using them. I'm rare breed that actually like new lighter Ubuntu fonts...

Thank you.

@Finii
Copy link
Collaborator

Finii commented Jun 19, 2023

Here the static versions: Ubuntu_static.tar.gz
Please report any progress ;)

What I did... (fixed the 0326 glyph manually)

Screenshot 2023-06-19 at 13 12 20 Screenshot 2023-06-19 at 13 14 03 Screenshot 2023-06-19 at 13 15 41

@michalfita
Copy link
Author

OK, I've run patching... and the result is absolutely weird, @Finii:
image
The base size of 13 points seem to match the original, but some of standard glyphs are made superscript. The bold variant is still wrong size...
patched-ubuntu-mono-static-0.86.tar.gz

@Finii
Copy link
Collaborator

Finii commented Jul 7, 2023

The names in your patched fonts look good.
All fonts have the same cell size.

I see the same with your fonts:

image

Probably some references get broken; this can prevented by giving --careful.
Unfortunately I have no time to check out further atm.

@Finii Finii reopened this Jul 7, 2023
@Finii
Copy link
Collaborator

Finii commented Jul 17, 2023

I'm not 100% sure why this happens, but you can fix this in this way:

  1. Put the config.json file from further down into some directory
  2. Let font-patcher remove the mark-to-mark superscript ligature via e.g.

font-patcher -c --removeligs --configfile ...path/to/config.json UbuntuMono-Regular.ttf

Contents of the config.json file:

[Subtables]
    ligatures: [
        "'mkmk' Mark to Mark lookup 28 subtable",
        "'mkmk' Mark to Mark lookup 27 subtable",
        "'mkmk' Mark to Mark lookup 26 subtable",
        "'mkmk' Mark to Mark lookup 25 subtable" ]

Edit: I believe you can let 25 and 26 in the fonts, just 27 and 28 need to be removed; you need to check the patched fonts. 25 targets i and 26 some Cyrillic glyphs.

@Finii Finii closed this as completed Jul 17, 2023
@michalfita
Copy link
Author

michalfita commented Aug 29, 2023

Nope. Still o and a in the font.

+

INFO: Removing ligatures from configfile `Subtables` section
ERROR: Failed to remove subtable: 'mkmk' Mark to Mark lookup 26 subtable
ERROR: Failed to remove subtable: 'mkmk' Mark to Mark lookup 25 subtable

Copy link
Contributor

github-actions bot commented Mar 4, 2024

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 Mar 4, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants