libertinus icon indicating copy to clipboard operation
libertinus copied to clipboard

Smallcaps too small?

Open yushiyangk opened this issue 3 years ago • 6 comments

In brief: could we please have a new, larger set of smallcaps, and rename the current set to be petitecaps instead?

When using smallcaps to typeset acronyms, the resulting glyphs seem to be the same height as all of the surrounding lowercase letters, which makes the acronym rather hard to spot in running text. In my opinion, this is also not very aesthetically pleasing.

Moreover, there are legibility reasons for acronyms to be more visually prominent than surrounding text. Acronyms are not normal words, and our brains do not automatically process their meaning like normal words; when reading quickly we might simply register it as a nonsense word if it is not clearly marked out. When acronyms are larger than surrounding text, we can immediately be aware when we encounter an acronym and slow down to process its individual letters more carefully.

Traditionally, I believe that smallcaps used for this purpose are smaller than regular capitals, but still noticeably larger than the x-height of lowercase letters. This allows the acronym to blend in better with running text, but still stand out as not a regular word.

I realise that this is somewhat contrary to the situation of using smallcaps to replace lowercase letters in display text, whereby we do want the smallcaps to have the same height as regular lowercase letters.

In more featureful fonts, I believe this is resolved by having two separate sets of "small" capitals: a set of larger smallcaps for replacing uppercase letters, and a smaller set of petitecaps for replacing lowercase letters. Would it be possible for Libertinus to do so as well at some point?

Thanks!

yushiyangk avatar Oct 21 '20 21:10 yushiyangk

A quick example of a few fonts that offer both, small-caps (+smcp) and petit-caps (+pcap).

smcp-vs-pcap

Don't quote me on this, but my understanding is that petit caps should be x-hight while small caps should be a bit larger, but I have no idea by how much. My impression is that Libertinus uses x-hight for small caps, which seems non standard, so I agree with @yushiyangk proposal.

RGB-es avatar Oct 21 '20 22:10 RGB-es

From what I know now, I agree. The current Small Caps are more properly what should have been called Petit Caps.

However fixing this isn't going to be easy. Besides being a lot of work, this will mark a significant breaking change for existing users. This will have to go into the bucket of things that I do plan to fix but will need to only land in a major version bump that will cause layout changes. There are a number of issues collecting in this category so at some point it will need to land, but I'm not in a hurry to do it. Probably what will happen is I start working on a development branch that keeps just the breaking changes isolated for a while and people that want to can use it from that. Eventually that will become the next major version number.

alerque avatar Oct 27 '20 08:10 alerque

@KrasnayaPloshchad noted in #78 that we might need distinct petite-caps.

Please note that most Latin letters also have “small capital” siblings with dedicated Unicode characters. Many of these code points already have glyphs assigned to them in Libertinus. (They are mostly used in linguistic and other scholarly contexts, which have limited typographic requirements.)

  • Basic Latin: ᴀ, ʙ, ᴄ, ᴅ, ᴇ, ꜰ, ɢ, ʜ, ɪ, ᴊ, ᴋ, ʟ, ᴍ, ɴ, ᴏ, ᴘ, ꞯ, ʀ, ꜱ, ᴛ, ᴜ, ᴠ, ᴡ, –, ʏ, ᴢ
  • Further Latin: ᴁ, ᴃ, ᴆ, ᴣ, ⱻ, ʛ, ᵻ, ᴌ, ꟺ, ᴎ, ɶ, ᴐ, ᴕ, ᴙ, ᴚ, ʁ, ꭆ, ꝶ, ᵾ
  • Greek: ᴦ, ᴧ, ᴨ, ᴩ, ᴪ, ꭥ

Crissov avatar Oct 27 '20 22:10 Crissov

@moyogo pointed out there are some separate design between the glyphs for smap feature and the glyphs for Unicode small capital letters in #180. I think we can found them out and reorganize them to make improvements for smcp feature, small capital letters (by copying glyph references from *.sc) and pcap feature.

KrasnayaPloshchad avatar Oct 28 '20 03:10 KrasnayaPloshchad

My impression is that Libertinus uses x-hight for small caps, which seems non standard, so I agree with @yushiyangk proposal.

You can quibble with the original designer's choice but this is inaccurate. If you look at the SFDs the lower case reference line is clearly at 429 while the smallcaps reference line is at 460. (Capitals are at 645.)

It's not a huge difference but also not all that far off from the Acaryia sample pictured above.

I personally would hesitate to override the designer on this, but regardless the current .sc figures cannot just be moved over into the Petit-cap space, as those do need to be the same height as the lower case letters and they aren't.

skef avatar Nov 10 '20 10:11 skef

To add:

it's likely that the majority of the petite caps could be made fairly easily -- I was considering doing that a while back. Most of the Small Caps:

  1. Have the same contour "structure", even if the start points differ
  2. Have the same, or very close to the same, serif sizes as the corresponding capitals.

This is an ideal arrangement for linear interpolation, or in the case of petite caps linear extrapolation: Just calculate the target height (based on the x-height plus or minus the overshoots of the small-cap. Then calculate the ratio of the height of the cap and smallcap and extrapolate. Then position based on the lower overshoot value and scale the start and advance by a close-to-1 fudge factor.

So obviously to the extent this is possible you could also interpolate larger small-caps. Again, one should be reluctant to override the designer's intent, but it's possible. There are a small number of glyphs that differ from their large counterparts that would need special treatment.

skef avatar Nov 10 '20 10:11 skef