Hinting

http://fontforge.sourceforge.net/hinting.html

¸ñÂ÷

1 OpenType Outline (Type2 or Type 1 etc.)
1.1 Stem
1.2 Hint Mask (Hint Substitution Points)
1.3 Counter Control hints
2 TrueType Outline

1 OpenType Outline (Type2 or Type 1 etc.)

1.1 Stem

Type1±Û²ÃÀÇ °¡Àå ±âº»ÀûÀÎ ÈùÆÃ
  • Point¸¦ ±âÁØÀ¸·Î ÇÏÁö ¾Ê´Â´Ù. (quadraticÀÌ´ø qubicÀÌ´ø »ó°ü ¾øÀ½)
  • VStem, HStem DStemÀÌ ÀÖ´Ù.
  • °¢°¢ÀÇ StemÀº µÎ°³ÀÇ Á¡ ȤÀº ±âÁØÀ̵Ǵ Á¡°ú ÆøÀ¸·Î Á¤ÀǵȴÙ.
  • StemÀº Point°¡ Àְųª ¾ø°Å³ª »ó°ü ¾øÀÌ Á¤ÀÇÇÒ ¼ö ÀÖ´Ù.

1.2 Hint Mask (Hint Substitution Points)

  • Point¸¦ ±âÁØÀ¸·Î ÇÑ´Ù.
If a glyph has conflicting hints then the first point in the glyph (the first point on the first contour) MUST have a hintmask attached to it. If it does not, the FontForge will automatically figure substitution points when it generates the font. Other points are not required (but may) have a hintmask.

1.3 Counter Control hints

  • Point¸¦ ±âÁØÀ¸·Î ÇÑ´Ù.
from http://www.adobe.com/devnet/font/pdfs/5015.Type1_Supp.pdf

The Counter Control hint mechanism controls counter spaces in a glyph.
A counter may be defined as an area of white space which is delimited by a pair of horizontal or vertical stems. This mechanism is designed to aid in the
rendering of fonts containing complex glyph shapes by ensuring that the size and proportions of all counters in a glyph are rendered as accurately as possible. For example, if multiple counters are exactly the same measurement in width or height, the Counter Control mechanism will make them the same number of pixels, providing there are a sufficient number of pixels available. Similarly, if the width of two counters in the original design are, for example, in the ratio of 3:5, the interpreter attempts to preserve this proportion, based on the constraints of the glyph¡¯s width.

....

For fonts with complex glyphs, it is very important to include Counter
Control hints; failure to do so can result in performance and quality
degradation.

2 TrueType Outline

  • Type1/Type2ÀÇ StemÈùÆÃÀÇ °æ¿ì´Â Æ÷ÀÎÆ®¸¦ ±âÁØÀ¸·Î ÇÏÁö ¾Ê´Â´Ù. Hint mask, CounterµîÀº Æ÷ÀÎÆ®¸¦ ±âÁØÀ¸·Î ÇÑ´Ù.
  • Æ®·çŸÀÔÀÇ Grid fittingÈùÆÃÀÇ °æ¿ì´Â Æ÷ÀÎÆ®¸¦ ±âÁØÀ¸·Î ÇÑ´Ù.
  • µû¶ó¼­, Type1 À±°û¼±À» Æ®·çŸÀÔÀÇ quadratic splineÀ¸·Î º¯È¯À» °¡Çϸé Á¡ ±â¹Ý ÈùÆÃÀÎ Hint mask, Counter Á¤º¸´Â Àоî¹ö¸®°Ô µÈ´Ù.

FontForgeÀÇ ¼³¸í¼­¸¦ Àß Àо¸é TrueType AutoInstr()´Â AutoHint() ȤÀº Á÷Á¢ ÈùÆÃÇÑ ±âº»ÀûÀÎ ÈùÆÃÁ¤º¸(Stem, Counter etc.)¸¦ ¹ÙÅÁÀ¸·Î Æ®·çŸÀÔ ÀνºÆ®·°¼ÇÀ» Áý¾î³Ö´Â´Ù°í ÇÑ´Ù.

Áï FontForge·Î ÆíÁýÇÑ SFDÇü½ÄÀÇ bezierÆ÷¸Ë¿¡ Type1¿¡¼­ ¾²´Â ¹æ½ÄÀÇ ÈùÆÃÀ» ±Ù°Å·ÎÇؼ­ Æ®·çŸÀÔ ÀνºÆ®·°¼ÇÀ» ÀÚµ¿À¸·Î ³Ö¾îÁشٴ °ÍÀÌ´Ù.

Æ®·çŸÀÔ ±Û²ÃÀÇ ÈùÆÃÀνºÆ®·°¼ÇÀº glyphÀÇ °¢°¢ Æ÷ÀÎÆ®¸¦ ±âÁØÀ¸·Î grid fittingÀ» ÇÏ°Ô µÈ´Ù. ´Ù½Ã¸»Çϸé, ±Û²ÃÀÇ À±°û¼±¿¡ ¼öÁ¤À» °¡ÇÏ°Ô µÇ¸é ±âÁ¸ÀÇ Æ®·çŸÀÔ ÈùÆà ÀνºÆ®·°¼ÇÀº ¾µ¸ð°¡ ¾ø¾îÁö°Ô µÉ °¡´É¼ºÀÌ ³ô¾ÆÁø´Ù´Â ¸». ´õ¿ì±â Type1±Û²ÃÀ» TrueTypeÀ¸·Î º¯ÇüÀ» °¡ÇÑ´Ù°í ÇßÀ» ¶§, ±âÁ¸ Type1 ÀÚÇü¿¡ º¯°æÀÌ °¡ÇØÁö¸é bezier -> spline º¯È¯À¸·Î ¾ò¾îÁö´Â Æ®·çŸÀÔ À±°û¼±ÀÇ Æ÷ÀÎÆ®µéµµ ´ç¿¬È÷ º¯ÇüÀÌ µÈ´Ù. Ȥ ¾Ö½á Áý¾î³ÖÀº Æ®·çŸÀÔ ÀνºÆ®·°¼ÇÀÌ ¹«¿ëÁö¹°ÀÌ µÇ¾î¹ö¸®´Â °Í.

±×·¯³ª Àß ¸¸µé¾îÁø Type1ÀÇ ÈùÆÃÀº AutoInstr() ¸í·ÉÀ» ÅëÇØ ±¦ÂúÀº ¼öÁØÀÇ ÀÚµ¿ Æ®·çŸÀÔ ÈùÆÃÀνºÆ®·°¼ÇÀ» ¾òÀ» ¼ö ÀÖÀ» °ÍÀ¸·Î »ý°¢µÈ´Ù. -- WkPark 2008-05-21 20:59:23
Retrieved from http://faq.ktug.org/faq/Hinting
last modified 2008-05-23 18:31:46