|
HotPDF의 GPOS pair-kerning, contextual kerning, vertical kerning, cursive-anchor, mark-positioning, mark-to-ligature query와 text output 중 이를 적용하는 ShapingFeatures flag를 문서화합니다
Delphi 구문
function HasGPOSKerning: Boolean;
function GetGPOSPairAdjustment(FirstGID, SecondGID: Word): Integer;
function GetGPOSPairAdjustment(FirstGID, SecondGID: Word; out AXPlacement, AYPlacement, AYAdvance: Integer): Integer;
function GetGPOSContextualKernRun(const GIDs: array of Word): TArray<Integer>;
function HasGPOSVerticalKern: Boolean;
function GetGPOSVerticalKern(FirstGID, SecondGID: Word): Integer;
function GetGPOSMarkOffset(BaseGID, MarkGID: Word; out DX, DY: Integer): Boolean;
function GetGPOSMarkMarkOffset(BaseMarkGID, AttachMarkGID: Word; out DX, DY: Integer): Boolean;
function HasGPOSCursive: Boolean;
function GetGPOSCursiveAnchors(GID: Word; out EntryX, EntryY, ExitX, ExitY: Integer; out HasEntry, HasExit: Boolean): Boolean;
function GetGPOSMarkToLigatureOffset(LigGID: Word; ComponentIndex: Integer; MarkGID: Word; out DX, DY: Integer): Boolean;
function GetGPOSLigatureComponentCount(LigGID: Word): Integer;
function ApplyMarkToLigatureShaping(const Wide: UnicodeString): UnicodeString;
Covered APIs
| API | 사용 참고 사항 |
HasGPOSKerning | Reports whether the registered Unicode font exposes GPOS kerning lookups |
GetGPOSPairAdjustment | Returns the signed advance adjustment for an ordered glyph pair and can also return placement-aware X/Y offsets through the overload |
GetGPOSContextualKernRun | Returns per-glyph contextual kern adjustments by resolving GPOS Type 7 and Type 8 positioning rules over a glyph run |
HasGPOSVerticalKern | Reports whether the registered Unicode font exposes vertical kerning or vertical proportional adjustment lookups |
GetGPOSVerticalKern | Returns signed vertical YAdvance adjustment from vkrn or vpal lookups for an ordered glyph pair |
GetGPOSMarkOffset | Returns Mark-to-Base placement offsets for attaching a mark glyph to a base glyph |
GetGPOSMarkMarkOffset | Returns Mark-to-Mark placement offsets for stacking one mark glyph on another |
HasGPOSCursive | Reports whether the registered Unicode font exposes GPOS cursive attachment lookups |
GetGPOSCursiveAnchors | Returns entry and exit cursive anchors for a glyph when the font supplies a cursive attachment rule |
GetGPOSMarkToLigatureOffset | Returns Mark-to-Ligature placement offsets for attaching a mark to a specific ligature component |
GetGPOSLigatureComponentCount | Returns the number of mark-attachment components recorded for a ligature glyph so callers can choose a valid ComponentIndex before calling GetGPOSMarkToLigatureOffset |
ApplyMarkToLigatureShaping | Records ligature component ownership so mark-to-ligature offsets can be applied during text emission |
sfKerning | Enables GPOS pair-kerning adjustments during left-to-right Unicode text emission |
sfMarkPositioning | Enables GPOS Mark-to-Base and Mark-to-Mark offsets for combining marks |
sfMarkToLigature | Enables GPOS Mark-to-Ligature offsets for marks attached to individual ligature components |
sfCursiveAttachment | Enables GPOS cursive entry/exit anchor alignment during Unicode text emission, including right-to-left Arabic runs shaped by sfArabicGSUB |
sfVerticalKerning | Enables GPOS vkrn and vpal vertical advance adjustment in the vertical text output path |
사용 참고 사항
Pair kerning은 1000-unit em에서 signed advance 및 placement adjustment를 반환합니다. Contextual kerning은 glyph run 전체에서 Type 7 및 Type 8 lookup을 resolve합니다. Mark positioning은 Mark-to-Base, Mark-to-Mark, Mark-to-Ligature anchor를 다룹니다. ApplyMarkToLigatureShaping은 sfMarkToLigature가 사용하는 run-level ligature component data를 준비합니다. Cursive attachment는 한 glyph의 exit anchor를 다음 glyph의 entry anchor에 align하며, 이 anchor를 가진 font-specific contextual glyph ID가 native Arabic GSUB shaping으로 생성된 뒤 가장 유용합니다. Emit path는 matching shaping flag가 enabled일 때만 이를 적용합니다
참조: ShapingFeatures OpenType GSUB Engine Automatic Shaping Pipeline
|