How/where is font hinting performed in libreoffice?

Caolán McNamara caolan.mcnamara at collabora.com
Sun Nov 12 15:15:38 UTC 2023


On Sun, 2023-11-12 at 14:28 +0100, Frank Steiner wrote:
> Hi,
> 
> could someone working on the font code at least give a statement why
> CAIRO_HINT_STYLE_MEDIUM/FULL is forced  to SLIGHT if
> bSubpixelPositioning is true? Why aren't user allowed to use
> MEDIUM/FULL style anymore?

Slight/Light hinting should end up only allowing vertical axis tweaks
to the glyphs for readability at small font sizes, while the others
allow horizontal axis changes.

So in Medium/Full you typically end up with proportionally wider glyphs
at small font sizes than you get at large font sizes. Screens are lower
DPI than paper so in documents the font shown on screen is a smaller
font size than the font size that is used to measure and position the
text.

Measuring and positioning with the true font size and then rendering
with a smaller size with horizontal-axis hinting enabled typically
gives you wider text than the space available to put it into, and you
then need some sort of bodge to fit the text in, like:
https://wiki.openoffice.org/wiki/Writer/WYSIWYG

That then doesn't give stable positions for text so they change
relatively depending on zoom or when the contents of the text change as
you type. aka "dancing characters" or "wiggling text"

This presentation has some examples (animated, use presentation-mode on
slide 3)
https://events.documentfoundation.org/media/libreoffice-conference-2022/submissions/B87ZBP/resources/LibreOfficeCon-2022-ResolutionI_2TieDK1.odp


More information about the LibreOffice mailing list