-
-
Notifications
You must be signed in to change notification settings - Fork 637
Description
Right off the bat, let me apologize for using any incorrect terms, I have very limited knowledge of typography. Suffice it to say, I am talking about the little horizontal line extending from the middle to the left.
For the longest time I felt that something was wrong with the lowercase i
but I could not put my finger on it. But I think I sort of figured out what has been bothering me. As the i
was essentially created by removing the left part of the slab from the original glyph, it lost its balance. It feels a bit narrow and often feels very disconnected from the preceding letter. For comparison, here is the current contour of i
overlaid with l
:
This is less of a problem in very low sizes, but once we get to larger sizes (for example, I use 19px, which is 13pt on my 2k monitor; on 4k). I believe extending this upper part a little further to the left makes a big, though very subtle, difference.
I don't really know how to property edit .ufo files (couldn't find any software I could use that worked), but I hacked (pun intended) the source file directly, borrowing the coordinates from l
. Here's the results:
This is on Linux/Wayland/Foot terminal.
I haven't done careful comparison in lower sizes; I wanted to see what you think first before committing too much work into it.
Here is the change I applied:
diff --git a/source/Hack-Regular.ufo/glyphs/i.glif b/source/Hack-Regular.ufo/glyphs/i.glif
index dbbe950bc..27601f5d1 100644
--- a/source/Hack-Regular.ufo/glyphs/i.glif
+++ b/source/Hack-Regular.ufo/glyphs/i.glif
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<glyph name="i" format="2">
- <advance width="1233"/>
+ <advance width="1271"/>
<unicode hex="0069"/>
<outline>
<contour>
@@ -27,8 +27,8 @@
<point x="513" y="140.281"/>
<point x="513" y="398" type="curve" smooth="yes"/>
<point x="513" y="976" type="line"/>
- <point x="268" y="976" type="line"/>
- <point x="268" y="1120" type="line"/>
+ <point x="180" y="976" type="line"/>
+ <point x="180" y="1120" type="line"/>
<point x="697" y="1120" type="line"/>
<point x="697" y="398" type="line" smooth="yes"/>
<point x="697" y="235.65"/>
BTW, when I build it with this change, some applications work ok (like my terminal) and some seem to fall back to bold font (like my browser). Is there something I am missing here, am I doing it wrong? Clearing font cache fixed this.