tonsky / FiraCode

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

New ligature: ―― (and more) #1495

Open Crocmagnon opened 1 year ago

Crocmagnon commented 1 year ago

Topgrade uses multiple characters to separate sections. It looks like a straight line in multiple fonts but not Fira Code.

See the PR where I tried to change these long dashes to "standard" ones for screenshot examples: https://github.com/topgrade-rs/topgrade/pull/279

Menlo and JetBrains mono both render ―― as a continuous line, so we could start at as low as two.

tonsky commented 1 year ago

Could be added, I think

cormullion commented 1 year ago

You could try using (U+2500), box drawing horizontal line glyph:

─────────────────────────────────

which joins nicely. This is already in Fira Code, and many other fonts, and is also sometimes drawn by terminals directly. You could even get fancy and use some of the other box drawing characters:

┌───── : a : ───────┬─────: b :──────┐
Crocmagnon commented 1 year ago

Thanks for the suggestion, I created https://github.com/topgrade-rs/topgrade/pull/282. I still think that this ligature could be added though :)

groverlynn commented 1 year ago

U+2015 () is a horizontal bar, a.k.a. quotation dash. It's a quotation mark, typically for quoting speeches. CJK typesetting sometimes uses two U+2015 (each as wide as one CJK ideograph character) as the long dash (comparable to the em dash in English). It is NOT a horizontal (table-drawing) line. Typically, fonts apply the same ligature for multiple horizontal bars as ligature for multiple em dashes. In other words, there are usually no gap between horizontal bars / em dashes, but there are breathing spaces (typically thin spaces) at both ends of a series of horizontal bars / em dashes.

To draw tables or separation lines, one should use U+2500 Box Drawing Light Horizontal () and other box drawing horizontals, which are all supposed to be vertically in the middle and spanning exactly 100% character width. More preferably, one could also use U+23AF Horizontal Line Extension (), which is supposed to be vertically at the median (not middle) and spanning 100%+ character width.