Qwerasd 00d1e34957 Fallback Font Size Adjustment (#7840)
This PR changes `font.Collection` to automagically adjust the sizes of
added fonts so that their metrics (specifically their ex height, or
their ideograph character width if they have one) match the primary
font. This is like
[`font-size-adjust`](https://developer.mozilla.org/en-US/docs/Web/CSS/font-size-adjust)
from CSS.

This is a big win for users who use mixed writing systems and rely
heavily on fallback fonts. For example, in #7774 it's pointed out that
CJK characters are not very well harmonized with existing Latin glyphs,
well:
|Before (`main`)|After (this PR)|
|-|-|
|<img width="326" alt="image"
src="https://github.com/user-attachments/assets/c11d372d-ec69-426d-b008-1f56a7430f23"
/>|<img width="326" alt="image"
src="https://github.com/user-attachments/assets/efcb56ea-0572-481a-b632-a0b5cd170fa9"
/>|

This also improves our handling of the horizontal alignment of fallback
glyphs. It's not an ideal solution; it only works for glyphs narrower
than the cell width because it messes with ligatures if we include
glyphs wider than the cell width; and most things would look better if
the center were proportionally remapped based on the ratio from the
glyph advance to the cell width, but that messes with glyphs designed to
align vertically so it can't be done, instead the original advance width
is centered in the cell width.
2025-07-06 23:01:55 -06:00
..
2025-05-21 10:20:09 -07:00
2025-05-26 21:50:14 -06:00
2025-07-06 12:56:43 -07:00
2025-01-18 22:47:18 +09:00
2025-05-21 10:20:09 -07:00
2025-07-06 12:56:43 -07:00
2025-07-04 14:12:18 -07:00
2025-05-26 21:50:14 -06:00
2025-06-27 09:12:20 -07:00
2025-07-04 14:12:18 -07:00
2025-03-11 14:39:04 -07:00
2025-07-06 12:56:43 -07:00
2025-03-11 14:53:30 -07:00
2025-07-04 14:12:18 -07:00
2024-08-16 14:35:10 -07:00
2022-08-18 11:42:32 -07:00
2025-06-21 14:11:50 -07:00
2025-05-09 10:01:05 -07:00
2024-08-16 10:36:10 -07:00