|
185 | 185 |
|
186 | 186 |
|
187 | 187 | <div class="row num"> |
188 | | - <label class="name" for="kerning">kerning <span class="unit">×</span></label> |
| 188 | + <span class="name"><label for="kerning">kerning <span class="unit">×</span></label><span |
| 189 | + class="explain"> |
| 190 | + <button type="button" class="info" aria-label="What kerning does" |
| 191 | + aria-describedby="kerning-tip">?</button> |
| 192 | + <span class="tip" id="kerning-tip" role="tooltip"> |
| 193 | + How hard particular pairs of letters are pulled together. A font |
| 194 | + carries a table of them, so that the A and the V in "AV" tuck under |
| 195 | + each other instead of leaving a hole, and the build reads that table |
| 196 | + and writes the answers into the file. |
| 197 | + <br><br> |
| 198 | + This is a factor and not a switch, because the useful setting is |
| 199 | + often part of the way. 1 is the amount the designer drew, 0 leaves |
| 200 | + the pairs alone, and 0.5 keeps the shape of their decisions at half |
| 201 | + the amount. A face kerned for print often over-tightens on a screen |
| 202 | + this size, where the device stores each adjustment in sixteenths of |
| 203 | + a pixel and one of those is already a good fraction of a stem. |
| 204 | + <br><br> |
| 205 | + Turning it down makes the file smaller as well. The pairs are scaled |
| 206 | + before they are grouped, so pairs that flatten into each other are |
| 207 | + then grouped together, and those that round away to nothing are |
| 208 | + dropped. A style with more kerning entries than the reader will load |
| 209 | + is refused outright, and turning this down is one of the two ways |
| 210 | + out. Narrower coverage is the other. |
| 211 | + </span> |
| 212 | + </span></span> |
189 | 213 | <input type="range" data-slider-for="kerning" min="0" max="2" step="0.05" value="1" tabindex="-1" aria-hidden="true"> |
190 | 214 | <span class="stepper"> |
191 | 215 | <button type="button" class="step mono" data-for="kerning" data-dir="-1" aria-label="decrease kerning">−</button> |
|
260 | 284 | <br><br> |
261 | 285 | <strong>normal</strong> runs the font's own hinting instructions |
262 | 286 | where it carries them, and lets FreeType work it out where it does |
263 | | - not. <strong>light</strong> fits vertically only, which keeps the |
264 | | - shapes the designer drew and lets the widths fall where they may. |
| 287 | + not. <strong>light</strong> snaps to the grid vertically only, which |
| 288 | + keeps the horizontal shapes and the spacing the designer drew. |
265 | 289 | <strong>none</strong> fits nothing. <strong>auto</strong> has |
266 | 290 | FreeType fit the font whatever instructions it carries, and is worth |
267 | 291 | trying on a face that looks muddy at small sizes. |
|
314 | 338 | <strong>none</strong> hinting, is fitted by FreeType's own |
315 | 339 | auto-hinter instead. The row greys itself in those cases and says |
316 | 340 | which one it is. |
| 341 | + <br><br> |
| 342 | + One case it does not grey: with <strong>mono rasterizing</strong> |
| 343 | + on, FreeType drops back to this older engine's behaviour of its |
| 344 | + own accord, so the switch changes nothing either way. |
317 | 345 | </span> |
318 | 346 | </span></span> |
319 | 347 | <input id="grayscale_hinting" name="grayscale_hinting" type="checkbox"> |
|
332 | 360 | <span class="tip" id="mono-tip" role="tooltip"> |
333 | 361 | Builds the font with no greys in it at all. Every pixel comes out |
334 | 362 | paper or ink, chosen by FreeType's dropout control, a rule that |
335 | | - keeps a stroke too thin to land on a pixel from disappearing |
336 | | - altogether. Nothing measures coverage and cuts it at the |
| 363 | + turns a pixel on where a stroke would otherwise break up or vanish |
| 364 | + between two of them. Nothing measures coverage and cuts it at the |
337 | 365 | thresholds. |
338 | 366 | <br><br> |
339 | 367 | Worth trying for a reader with <strong>anti-aliasing</strong> off. |
|
345 | 373 | It belongs to the font and not to the page: one built this way |
346 | 374 | draws in two levels whatever the reader's anti-aliasing is set to. |
347 | 375 | <strong>gamma</strong> and <strong>thresholds</strong> have no |
348 | | - coverage left to work on while it is on, so both grey out. Fitting |
349 | | - to whole pixels also moves some advance widths, so lines break in |
350 | | - slightly different places. |
| 376 | + coverage left to work on while it is on, so both grey out. The |
| 377 | + outline is fitted differently as well, so some advance widths land |
| 378 | + on other whole pixels and the text sets to slightly different |
| 379 | + lines. |
351 | 380 | </span> |
352 | 381 | </span></span> |
353 | 382 | <input id="mono" name="mono" type="checkbox"> |
|
380 | 409 | can still come out unchanged, its stems falling where the curve |
381 | 410 | rounds to nothing, and <strong>weight</strong> is the control that |
382 | 411 | will move it. |
| 412 | + <br><br> |
| 413 | + FreeType means this for a screen that blends in linear light, |
| 414 | + which this one does not: it has four levels and nothing between |
| 415 | + them. Its own documentation warns that the result is heavy and |
| 416 | + fuzzy elsewhere. Judge it on the page rather than leaving it on. |
383 | 417 | </span> |
384 | 418 | </span></span> |
385 | 419 | <input id="stem_darkening" name="stem_darkening" type="checkbox"> |
|
0 commit comments