13.07.2013 Views

Hagen - Pragma ADE

Hagen - Pragma ADE

Hagen - Pragma ADE

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

esult We thrive U+57:W [kern] U+65:e [glue] U+74:t<br />

[kern] U+68:h U+72:r U+69:i U+76:v [kern] U+65:e<br />

5.2.9 Pairwise positioning<br />

This variant of positioning involved the first, second or both glyphs of a glyph pair. The<br />

specification can influence the horizontal and vertical positions we well as the widths of<br />

the positioned glyphs.<br />

We need an example here.<br />

5.2.10 Mark positioning<br />

Marks are (often) small symbols that represent accents (in latin) or vowels (in arabic)<br />

that get attached to base glyphs. In the input stream they come after the character<br />

that they apply to. Many fonts come with precomposed latin characters which means<br />

that an à in the input is mapped directly onto its corresponding shape. When the input<br />

contains an a followed by a ̀ input normalization will normally turn this into an à.<br />

But, when this doesn’t happen, the font machinery has to make sure that the mark gets<br />

positioned right onto the base character. In traditional Type1 fonts that more or less<br />

happened automatically by overlaying the shapes. In OpenType (single) positioning is<br />

used to place the mark right.<br />

\showotfcomposition{dejavu-serif*default at 24pt}{}{à a\utfchar{"0300} à}<br />

\showotfcomposition{cambria*default at 24pt}{}{à a\utfchar{"0300} à}<br />

\showotfcomposition{lmroman10regular*default at 24pt}{}{à a\utfchar{"0300} à}<br />

\showotfcomposition{lucidabrightot*default at 24pt}{}{à a\utfchar{"0300} à}<br />

\showotfcomposition{texgyrepagellaregular*default at 24pt}{}{à a\utfchar{"0300} à}<br />

Of course a font can contain logic that replaces a sequence of base and mark into precomposed<br />

characters with the right Unicode entry.<br />

font 79: DejaVuSerif.ttf @ 24.0pt<br />

features analyze=yes, curs=yes, devanagari=yes, extrafeatures=yes,<br />

kern=yes, liga=yes, mark=yes, mkmk=yes, mode=node, script=dflt,<br />

tlig=yes, trep=yes<br />

step 1 à à à U+E0:à [glue] U+61:a U+300:̀ [glue] U+E0:à<br />

feature 'mark', lookup 'mb_l_1_s', anchor Anchor-1, bound 1,<br />

anchoring mark U+00300 (gravecomb) to basechar U+00061 (a) =><br />

(12.66797pt,0pt)<br />

result à à à U+E0:à [glue] U+61:a U+300:̀ [glue] U+E0:à<br />

71<br />

Features

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!