tonsky / FiraCode

Free monospaced font with programming ligatures
SIL Open Font License 1.1
77.27k stars 3.1k forks source link

Ligatures for #( and #{ are very difficult to read #1184

Open gilbertohasnofb opened 3 years ago

gilbertohasnofb commented 3 years ago

I am working on a Python project whose documentation often include LilyPond code, which contains Scheme-like syntax. The ligatures for #( and #{ are very difficult to read. See red arrows below (green arrow shows that #} behaves fine):

image

Is this the intended output?

RubenVerg commented 3 years ago

It is, and as a frequent LilyPond author I can read those just fine. that's my opinion

Get Outlook for Androidhttps://aka.ms/ghei36


From: Gilberto Agostinho notifications@github.com Sent: Saturday, January 16, 2021 9:59:28 PM To: tonsky/FiraCode FiraCode@noreply.github.com Cc: Subscribed subscribed@noreply.github.com Subject: [tonsky/FiraCode] Ligatures for #( and #{ are very difficult to read (#1184)

I am working on a Python project whose documentation often include LilyPond code, which contains Scheme-like syntax. The ligatures for #( and #{ are very difficult to read. See red arrows below (green arrow shows that #} behaves fine):

[image]https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fuser-images.githubusercontent.com%2F5700795%2F104822832-5fe49f80-583d-11eb-80cf-e3925ae40d2a.png&data=04%7C01%7C%7Cf5fe91c99d1f43dee5b208d8ba619e9d%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637464275717765615%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=3w8AGhxeFYoKNaHGKpHj0SSw8OKIq2N8R%2BWxaDic8Qg%3D&reserved=0

Is this the intended output?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHubhttps://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftonsky%2FFiraCode%2Fissues%2F1184&data=04%7C01%7C%7Cf5fe91c99d1f43dee5b208d8ba619e9d%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637464275717775611%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=85RHldNEWHNQl5tXso2mDWfJeC5JQ2nfFtAxFWeBFHU%3D&reserved=0, or unsubscribehttps://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAMRJI3ALJPKGT4Y73SI5PNTS2H43BANCNFSM4WFROG3A&data=04%7C01%7C%7Cf5fe91c99d1f43dee5b208d8ba619e9d%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637464275717775611%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=6pmhPeCnMe5g6xcRDHAMs3Qem8FBC1Aj%2BMkYEzQiJO8%3D&reserved=0.

gilbertohasnofb commented 3 years ago

If that is by design, then what is the purpose of it? Most ligatures in FiraCode seem to be implemented either forimproved readability (e.g. ++, .., :=, ||, etc.) or for displaying complex combinations of characters (e.g. ->, !=, <=, >=, /=, etc.), making the meaning of these combinations clearer. I can of course read FiraCode's #{ and #(, but the readability is, for me at least, substantially poorer than with most other typefaces. At a small font size (such as in my screenshot above), the readability is quite poor. The combination #{ is particularly problematic, since the part that sticks out at the middle of the curly bracket is just 2 pixels long and is surrounded by the two extended horizontal lines from the hash sign. When I look at the image below, I need to squint my eyes and it takes me a second to figure out which is which.

image

tonsky commented 3 years ago

I agree that this might be hard to read. I am not very proud of these particular ligatures. I am not opposed to removing #{ at least.

They were initially added for Clojure, with the idea to show that these two symbols produce a single logical unit, thus it’s drawn as a single symbol

RubenVerg commented 3 years ago

( has rounded borders, #{ looks more like a rounded square. They're clear as-is. Then, I'm not opposing against a stylistic set to disable them, but I feel like they're easily discernable


From: Gilberto Agostinho notifications@github.com Sent: Sunday, January 17, 2021, 4:09 PM To: tonsky/FiraCode Cc: Ruben Vergani; Comment Subject: Re: [tonsky/FiraCode] Ligatures for #( and #{ are very difficult to read (#1184)

If that is by design, then what is the purpose of it? Most ligatures in FiraCode seem to be implemented either forimproved readability (e.g. ++, .., :=, ||, etc.) or for displaying complex combinations of characters (e.g. ->, !=, <=, >=, /=, etc.), making the meaning of these combinations clearer. I can of course read FiraCode's #{ and #(, but the readability is, for me at least, substantially poorer than with most other typefaces. At a small font size (such as in my screenshot above), the readability is quite poor. The combination #{ is particularly problematic, since the part that sticks out at the middle of the curly bracket is just 2 pixels long and is surrounded by the two extended horizontal lines from the hash sign. When I look at the image below, I need to squint my eyes and it takes me a second to figure out which is which.

[image]https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fuser-images.githubusercontent.com%2F5700795%2F104847047-bdc4c600-58d5-11eb-8ae5-23c11de0c3df.png&data=04%7C01%7C%7C3b7bdac4ea824a6379b408d8baf9eadb%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637464929829171007%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=uiNiJThAEG8%2BpiIYzD%2BzyVfWASFHpM2qcdDExTHJNpI%3D&reserved=0

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftonsky%2FFiraCode%2Fissues%2F1184%23issuecomment-761827619&data=04%7C01%7C%7C3b7bdac4ea824a6379b408d8baf9eadb%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637464929829171007%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=7ieWA8hllAfitny%2FdAzhiwZNCWkL3w%2Fk1MyIaRt9zcI%3D&reserved=0, or unsubscribehttps://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAMRJI3HCT5LZATHJJRZIYMTS2L4TLANCNFSM4WFROG3A&data=04%7C01%7C%7C3b7bdac4ea824a6379b408d8baf9eadb%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637464929829181003%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=s75BCXUNc6WT%2Fa7qpnvAF%2FUUT3WKaomA8FXr3XRrMSE%3D&reserved=0.

gilbertohasnofb commented 3 years ago

@tonsky Thanks for the reply and for the awesome project. I completely understand the reasoning behind these, it's just unfortunate they are so difficult to read at a typical font size.

I am not opposed to removing #{ at least.

Personally, I would remove it from both for consistency. My 2 cents.

RubenVerg commented 3 years ago

I'm kinda on the opposite route, add support for #} as well

Not sure how it'd look, tho