5 ms·
This, like many fonts, fails to handle vertical arrows: | ^ v | Note that the raised appearance of `^` exists for compatibility with typewriters tha
by o11c 11mo ago
This, like many fonts, fails to handle vertical arrows:
| ^
v |
Note that the raised appearance of `^` exists for compatibility with typewriters that use the backspace key to use it as a circumflex accent over lowercase letters. This is doubly obsolete today (we have real combined characters and can use them on uppercase). This is one of those cases where the name originally used for the character in various standards is in conflict with the way people actually have come to use it.
The bottom of the independent caret should be lower, roughly symmetrical to the letter `v` (this is not traditionally a goal). The top should still reach the height of a capital letter, but the bottom should descend into the lowercase letter area - for many fonts, perhaps to the level of the horizontal part of a lowercase `e` (is there a typographical term for this?)? For fonts where the x-height is half of the cap-height, there might be no overlap with the lowercase letter, though it still doesn't need to worry about leaving space.
The bottom of the caret is, however, higher than the mathematical "and" sign ∧, which rests on the baseline (and usually does not reach full height) or the Greek capital lambda `Λ` which is full height.
- munchler 11mo agoYour point about the caret is interesting, but I'm a bit dubious about using them for vertical arrows. I don't think it would be practical to type this combination in one go, since the two symbols would be on two separate lines. For the upward arrow, are you suggesting caret-return-space-space-space-...-vertical bar? Are there any programming languages that use vertical arrows? Do they appear on one line or two?
- o11c 11mo ago> Are there any programming languages that use vertical arrows? Do they appear on one line or two? Befunge (1993; many later languages were inspired by it) uses just the ASCII arrowheads. The arrow tail is more likely to exist in doc comments.
- leephillips 11mo agoAPL
- _piud 11mo agoi don't think that qualifies. because the alignment issue is about multi-line alignment of upward arrows. APL usage is clearly meant to be covered by some single Unicode glyph.
- leephillips 11mo agoAh, yes, I see now. I can’t imagine using a programming language where I had to compose symbols vertically. I don’t know if any such infernal language exists, and I don’t understand why o11c thinks it matters.
- _piud 11mo agothanks for pointing it out. as i mention below in a comment, there are bound to be many combinations which don't align (especially vertical ones). i would ideally tell you to invoke a feature request but i am not sure this esoteric combination could even be detected in a contextual alternate rule (which Myna doesn't support anyways for now). beside if i may say so in my defense, the comparison is a bit unfair as a V (a full letter) is being compared to a caret (almost a superscript symbol). i have broken many typographical conventions but it won't make sense to break programmatic convention of the caret operator just for the alignment of the vertical arrows.
- pessimizer 11mo ago> won't make sense to break programmatic convention of the caret operator I don't know why the elevated position of the caret is sacred, other than to use as an accent mark. It could cause confusion with the ∧ (AND).
- tln 11mo agoAre you trying to get a ligature that crosses lines? You could maybe try U+2303 (⌃) for the up arrowhead, but why not just use U+2191 (↑) for the standard arrow? The crossbar height of lowercase letters is not a common typographical reference point...
- o11c 11mo agoI don't care about ligatures, just symmetry.
- michaelcampbell 11mo agoThat's fine I guess. Some audiophiles don't care about music, just sound.
- imiric 11mo agoI don't see such a niche use case as a design failure. By your logic, the lowercase "v" should extend even higher to meet the pipe. The caret has conventionally been higher for a long time, and IMO would look out of place making it the inverse "v". If you want arrows, just use U+2191 and U+2193.
- sevg 11mo ago> the way people actually have come to use it I have never seen anyone use it as part of an up arrow spread across two lines in the way that you’re suggesting. So I don’t really understand your point. Ok it’s not symmetrical, but I don’t buy your argument that it _should_ be (or that it’s a reasonable complaint to make about a font).
- normie3000 11mo ago> I have never seen anyone use it as part of an up arrow spread across two lines in the way that you’re suggesting. You've never heard of "caret and stick"?
- Culonavirus 11mo agoTotally. Ultra niche edge case nonsense.
- pessimizer 11mo agoRust compiler error output certainly uses a lot of vertical arrows. But it also highlights the fact that the caret is often used to highlight characters on the line above, and if it were lower it would be worse at doing that. I do hate this asymmetry when I'm trying to do an ASCII flowchart of some sort. But I'd also like to add that calling it an unreasonable complaint sounds a little hysterical. It's just a complaint. It's also a clear one, and of obvious use.
- Avshalom 11mo agoCome to APL we have ↑↓
- Aurornis 11mo ago> Note that the raised appearance of `^` exists for compatibility with typewriters that use the backspace key to use it as a circumflex accent over lowercase letters. This is doubly obsolete today The origins don’t really matter at this point. That’s what the character looks like and it’s what everyone expects. Your use case is extremely niche. Making a font choice for that specific double-line situation would alienate everyone else who just wants the ^ to look like a ^. Like others suggested, just use the Unicode arrows if you want arrows. Let the ^ be a classic ^. It’s really disappointing when I find a new font that seems interesting until I encounter one weird design choice that makes it surprising to read. Fonts should be boring, typical, and follow what your brain expects to see, not trying to erase decades of typography norms and start something new for one common character.
- eviks 11mo ago> Fonts should be boring, typical, and follow what your brain expects to see So you're ok with permanent confusion of 0 vs O because "boring/expected" doesn't add a dot for zero? > erase decades of typography norms and This is not (such) a (n absolute) thing, there are different contradictory norms that persist for decades, just like in and artistic (though not only) field, so at a practical level this offers no guidance for any specific decision, you'd have to actually consider it in that specific case to see whether it makes sense
- Aurornis 11mo ago> So you're ok with permanent confusion of 0 vs O because "boring/expected" doesn't add a dot for zero? 0 and O are not actually confusing in any of the fonts I use. As I’m typing this comment without any custom font changes, the 0 has a slash through it. In other fonts I use there’s an option to add a dot. These are all normal and common. Redrawing the ^ character to not be elevated would be unexpected. > This is not (such) a (n absolute) thing, there are different contradictory norms that persist for decades, Fonts are expected to show common characters as those character, not something different to satisfy a singular edge case at the expense of every common use case. If someone wants vertical arrows they should use Unicode vertical arrows, not try to force everyone looking for a ^ character to see something unusual.
- eviks 11mo agoDoesn't raised appearance also exist for compatibility with math exponentiation? Do still not obsolete
- rbanffy 11mo agoThose symbols were never intended to be used as arrows. Every modern programming language today can use Unicode at least in comments, and there are extensive groups of characters for box and arrow drawings.
- procaryote 11mo agoNot a solution to your issue but as my main use of arrows is in documentation I've just mapped ↓ ↑ → ← to a covenient place on my keyboard. It's pretty at least It allows comments to indicate the thing they're talking about ↑ Or logical → implications