6.ÈùÆðú Ä¿´×

°¡.ÈùÆÃ

¿Ü°û¼± ÆùÆ®ÀÇ °¡Àå Å« ÀåÁ¡Àº È®´ë¿Í Ãà¼Ò°¡ ÀÚÀ¯·Ó´Ù´Â Á¡ÀÌ´Ù. ¹°·Ð ºñÆ®¸Ê ÆùÆ®µµ Á¦ÇÑÀûÀ̱â´Â ÇÏÁö¸¸ ¾î´À Á¤µµ È®´ë, Ãà¼Ò°¡ °¡´ÉÀº ÇÏ´Ù. ±×·¯³ª ·¡½ºÅÍ ¹æ½ÄÀÇ ºñÆ®¸ÊÀº È®´ë½Ã °è´Ü Çö»óÀÌ ³ªÅ¸³­´Ù´Â ¸é¿¡¼­ ¿Ü°û¼± ÆùÆ®¿¡ ºñÇØ ÁúÀûÀ¸·Î ¿­¼¼ÀÌ´Ù. ¿Ü°û¼± ÆùÆ®´Â °î¼±ÀÇ Á¤º¸°¡ º¤ÅÍ ¹æ½ÄÀÇ ÁÂÇ¥·Î ÀúÀåµÇ¾î ÀÖÀ¸¸ç È®´ë ¹èÀ²¸¸Å­ °î¼±À» ´Ù½Ã °è»êÇÏ¿© ±×¸®¹Ç·Î ¾ðÁ¦³ª ºÎµå·¯¿î ¸ð¾çÀ¸·Î Ãâ·ÂµÈ´Ù.

±×·¯³ª ¿Ü°û¼± ÆùÆ®µµ ¿ÏÀüÇÏÁö´Â ¾Ê¾Æ¼­ ¾à°£ÀÇ ¹®Á¦°¡ ÀÖ´Ù. È®´ë, Ãà¼Ò¶õ ¿ø·¡ÀÇ µðÀÚÀÎµÈ ¸ð¾ç¿¡ ÀÎÀ§ÀûÀÎ °¡°øÀ» ÇÏ´Â °ÍÀÌ´Ù º¸´Ï ¿øÄ¡¾Ê°Ô ºÎÀÚ¿¬½º·¯¿î ¸ð¾çÀÌ ¸¸µé¾îÁö±âµµ ÇÑ´Ù. È®´ëÇÒ ¶§µµ ¹®Á¦°¡ ÀÖ±â´Â ÇÏÁö¸¸ ƯÈ÷ Ãà¼ÒÇÒ ¶§ ¹®Á¦Á¡ÀÌ ´«¿¡ ¶ç°Ô µå·¯³­´Ù. ¾î¶² ¹®Á¦Á¡ÀÌ ÀÖ´ÂÁö Ãà¼ÒÇÒ ¶§ÀÇ Ãâ·Â °á°úµéÀ» °¡Á¤ÇØ º¸ÀÚ. ´ÙÀ½Àº ¾ËÆĺª H ¹®ÀÚ¸¦ ´Ü°èÀûÀ¸·Î Ãà¼ÒÇÑ ¿¹ÀÌ´Ù.

Ãà¼ÒÇÒ ¶§´Â Ãà¼Ò ¹èÀ²¿¡ µû¶ó ±Û¸®ÇÁ¿¡ ÀúÀåµÈ ÁÂÇ¥¸¦ °öÇÏ°í ³ª´©¾î Çȼ¿ ÁÂÇ¥¸¦ °áÁ¤Çϴµ¥ ÀÌ °úÁ¤¿¡¼­ ½Ç¼ö Àý»èÀÌ ¹ß»ýÇÑ´Ù. 100À» 2·Î ³ª´©¸é Á¤È®ÇÏ°Ô 50ÀÌ µÇÁö¸¸ 3À¸·Î ³ª´©¸é 33.3333ÀÌ µÇ¸ç À̶§ ¼Ò¼öÁ¡ ÀÌÇϸ¦ ¹ö¸®¸é 0.3333¸¸Å­ÀÇ ¿ÀÂ÷°¡ ¹ß»ýÇÏ´Â °ÍÀÌ´Ù. ¾Æ¹«¸® Á¤¹ÐÇÏ°Ô °è»êÀ» ÇÑ´Ù ÇÏ´õ¶óµµ ÃÖÁ¾ Ãâ·Â ÀåÄ¡°¡ ½Ç¼ö ´ÜÀ§ÀÇ ÁÂÇ¥¸¦ Ç¥ÇöÇÏÁö ¸øÇÏ´Â ·¡½ºÅÍ ÀåºñÀ̱⠶§¹®¿¡ ÀÌ ¿ÀÂ÷¸¦ ¾î¶»°Ô ÇÒ ¹æ¹ýÀº ¾ø´Ù.

´õ ½É°¢ÇÑ ¹®Á¦´Â ¹®ÀÚÀÇ ÁøÇà Æøó·³ ¼ø¼­´ë·Î ´©ÀûµÇ´Â °ªÀº À§Ä¡¿¡ µû¶ó ¿ÀÂ÷ÀÇ ¹ß»ý ¿©ºÎ°¡ ´Þ¶óÁø´Ù. ¶È°°Àº ±ÛÀÚ¶óµµ ¶Ç´Â °°Àº ±ÛÀÚÀÇ ´Ù¸¥ ºÎºÐÀÌ¶óµµ ¾î´À À§Ä¡¿¡¼­ ½ÃÀÛÇϴ°¡¿¡ µû¶ó ½Ç¼ö Àý»èÀÌ ¹ß»ýÇÒ ¼öµµ ÀÖ°í ±×·¸Áö ¾ÊÀ» ¼öµµ ÀÖ´Ù. ÀÌ·± ÀÌÀ¯·Î Ãà¼Ò¸¦ ÇÏ´Ù º¸¸é H ¹®ÀÚÀÇ ¾çÂÊ ¼öÁ÷ ȹÀÇ ±½±â°¡ ´Ù¸£°Ô Ãâ·ÂµÉ ¼ö ÀÖ´Ù. µÎ ȹÀÇ ±½±â°¡ ¶È°°ÀÌ °è»êµÇ¾ú´õ¶óµµ Ãâ·Â ÁÂÇ¥¿Í ´õÇØ ¹Ý¿Ã¸²À» ÇÏ´Ù º¸¸é ¾î¶² °æ¿ì´Â 1ÀÌ µÇ°í ¾î¶² °æ¿ì´Â 2°¡ µÇ¾î ¹ö¸®´Â °ÍÀÌ´Ù. º¸´Ù½ÃÇÇ ±ÛÀÚ ¸ð¾çÀÌ ±²ÀåÈ÷ ±Ã»öÇØ º¸ÀδÙ. ´ÙÀ½Àº Á» ´õ ½É°¢ÇÑ °æ¿ì¸¦ º¸ÀÚ.

Çػ󵵰¡ ³·Àº ÀåºñÀÇ °æ¿ì Ãà¼Ò¸¦ ÇÏ´Ùº¸¸é ȹÀÌ »ç¶óÁö±âµµ ÇÑ´Ù. ¿µ¹® ¼Ò¹®ÀÚ mÀº ´Ù¸®°¡ ¼¼°³ÀÌ¸ç °¢ ´Ù¸® »çÀÌ¿¡ ¿©¹éÀÌ ÃÖ¼ÒÇÑ ÇÑ ÁÙ¾¿Àº µé¾î°¡¾ß ÇÑ´Ù. ÀÌ ¹®ÀÚ¸¦ Ç¥ÇöÇÏ·Á¸é ¿©¹éÀ» Á¦¿ÜÇÑ ±Û¸®ÇÁÀÇ ÆøÀÌ ÃÖ¼ÒÇÑ 5Çȼ¿Àº µÇ¾î¾ß Çϳª ±×º¸´Ù ÀÛ¾ÆÁö¸é ´Ù¸®°¡ ÇÕÃÄÁ® n ¹®ÀÚ¿Í ±¸º°µÇÁö ¾Ê´Â´Ù. ÀÌ ¹®Á¦´Â Ãâ·Â Ç°ÁúÀÌ ¿¹»Ú°í ¾È ¿¹»Ú°íÀÇ ¹®Á¦°¡ ¾Æ´Ï¶ó ¾Æ¿¹ ´Ù¸¥ ¹®ÀÚ°¡ µÇ¾î ¹ö¸®¹Ç·Î ±²ÀåÈ÷ ½É°¢ÇÏ´Ù.

¿µ¹®ÀÇ °æ¿ì´Â ±×·¡µµ ±ÛÀÚ ¸ð¾çÀÌ ´Ü¼øÇؼ­ ¿Ø¸¸Çؼ­´Â ÀÌ·± °æ¿ì°¡ µå¹°Áö¸¸ ÇѱÛÀÇ °æ¿ì´Â ±ÛÀÚ°¡ º¹ÀâÇؼ­ ²À ÇÊ¿äÇÑ È¹ÀÌ »ç¶óÁö´Â °æ¿ì°¡ ¸¹´Ù. ¿¹¸¦ µé¾î "Ȳ" °°Àº ±ÛÀÚ¸¦ 8 Çȼ¿ ÀÌÇÏ·Î Ãà¼ÒÇϸé ÀÛÀº ȹÀÌ »ç¶óÁ® "Ⱦ"ÀÌ µÉ ¼öµµ ÀÖ°í "Èö"ó·³ º¸À̱⵵ ÇÑ´Ù. "¤¿"ÀÇ °¡·ÎȹÀÌ ³Ê¹« ª¾Æ ¾Æ¿¹ »ç¶óÁ® ¹ö¸° °ÍÀÌ´Ù. ÇѱÛÀÌ ÀÌ Áö°æÀε¥ ÈξÀ ´õ º¹ÀâÇÑ ¹®ÀÚÀÎ ÇÑÀÚ´Â ¾î¶°ÇÒÁö ±»ÀÌ ¼³¸íÇÏÁö ¾Ê¾Æµµ ÁüÀÛÀÌ µÉ °ÍÀÌ´Ù.

¹°·Ð Çػ󵵰¡ ³·¾Æ ±ÛÀÚÀÇ °¡µ¶¼ºÀÌ ¶³¾îÁö´Â °ÍÀº ¾î¿ ¼ö ¾ø´Â ¹®Á¦ÀÌ´Ù. ±ú¾Ë¸¸ÇÑ Å©±â·Î Ãà¼ÒÇØ ³õ°íµµ ±× ±ÛÀÚ°¡ Á¦´ë·Î º¸À̱⸦ ¹Ù¶ö ¼ö´Â ¾ø´Ù. ÇÏÁö¸¸ ÀÎÀ§ÀûÀÎ Á¶ÀÛÀ» ÅëÇØ Ãâ·ÂµÇ´Â ¿Ü°û¼± ÆùÆ®´Â Çػ󵵰¡ Àû´çÇصµ ÀÌ·± °æ¿ì°¡ »ý°¢º¸´Ù ºó¹øÈ÷ ¹ß»ýÇÑ´Ù´Â °ÍÀÌ ¹®Á¦´Ù. Çػ󵵰¡ ³·À» °æ¿ì ±ÛÀÚÀÇ Æ¯Á¤ ºÎÀ§¸¦ ´Ù¼Ò °úÁ¤Çؼ­¶óµµ Æǵ¶ °¡´ÉÇÏ°Ô Ãâ·ÂÇØ¾ß Çϸç Çػ󵵰¡ ÃæºÐÇÒ °æ¿ì¶óµµ ÃÖ´ëÇÑ ±ÕÇüÀ» ¸ÂÃß¾î ¿¹»Ú°Ô Ãâ·ÂÇϱâ À§ÇØ ÃÖ¼±À» ´ÙÇØ¾ß ÇÑ´Ù.

ÃÖÁ¾ ±ÛÀÚÀÇ Ãâ·Â ¸ð¾çÀ» ´Ùµë±â À§Çؼ­´Â ±Û¸®ÇÁÀÇ °î¼± Á¤º¸ ¿Ü¿¡µµ Ãß°¡ÀûÀÎ Á¤º¸°¡ ÇÊ¿äÇѵ¥ ÀÌ Á¤º¸¸¦ ÈùÆ®(Hint)¶ó°í ÇÑ´Ù. ¿Ü°û¼± ÆùÆ®´Â ¼öÇÐÀû °úÁ¤À» °ÅÃÄ ¸¸µé¾îÁø ±Û¸®ÇÁ¿¡ ÈùÆ® Á¤º¸¸¦ Àû¿ëÇÏ¿© ÃÖÁ¾ÀûÀ¸·Î Çѹø ´õ °¡´ÙµëÀ½À¸·Î½á Á» ´õ º¸±â ÁÁ°í °¡µ¶¼ºÀÌ ³ôÀº ¸ð¾çÀ¸·Î °¡°øÇÑ´Ù. ÈùÆ® Á¤º¸ÀÇ ¿¹¸¦ µéÀÚ¸é "HÀÇ µÎ ȹÀº Å©±â°¡ °°¾Æ¾ß ÇÑ´Ù" ¶óµç°¡ "mÀÇ ´Ù¸® ¼ÂÀº ¸ðµÎ º¸¿©¾ß ÇÑ´Ù", "¾Æ¹«¸® À۾Ƶµ ÀÌ È¹Àº »ý·«Çؼ­´Â ¾ÈµÈ´Ù" ´Â ½ÄÀ¸·Î µÇ¾î ÀÖÀ» °Í´Ù. ¹°·Ð ¿ä·¸°Ô ¸»·Î µÇ¾î ÀÖÀ» ¸®´Â ¾ø°í ¾ÐÃàµÈ ÇüÅ·ΠºÎȣȭµÇ¾î ÀÖ´Ù.

ÈùÆÃ(¶Ç´Â ±×¸®µå ÇÍÆÃÀ̶ó°íµµ ÇÑ´Ù)Àº ÈùÆ® Á¤º¸¸¦ ÂüÁ¶ÇÏ¿© ±Û²Ã¿¡ ÀÎÀ§ÀûÀÎ º¯ÇüÀ» °¡ÇÏ´Â µ¿ÀÛÀÌ´Ù. ÆùÆ® Æ÷¸Ëº°·Î ÈùÆ® Á¤º¸¸¦ ±¸¼ºÇÏ´Â ¹æ¹ý°ú Àû¿ëÇÏ´Â ¹æ¹ýÀÌ ´Ù¸¥µ¥ Å©°Ô ´ÙÀ½°ú °°Àº ¹æ½ÄÀ¸·Î ºÐ·ùÇÒ ¼ö ÀÖ´Ù.

 

¡á ¸í½ÃÀû ÈùÆà : ÈùÆÃÀ» ¼öÇàÇÏ´Â ÇÁ·Î±×·¥À» ÆùÆ®¿¡ ³»ÀåÇÏ´Â ¹æ½ÄÀÌ´Ù. ÆùÆ®´Â Ç÷§Æû µ¶¸³ÀûÀ̾î¾ß ÇϹǷΠÀÌ ÇÁ·Î±×·¥Àº °¡»ó ¸Ó½Å ±â¹ÝÀÇ op ÄÚµå·Î µÇ¾î ÀÖ´Ù. ÆùÆ® µå¶óÀ̹ö´Â ¸Å ±Û¸®ÇÁ¸¦ Ãâ·ÂÇÒ ¶§¸¶´Ù op Äڵ带 ¼öÇàÇÏ¿© ¸ð¾çÀ» ´Ùµë´Â´Ù. À©µµ¿ìÁîÀÇ Æ®·ç ŸÀÔ ÆùÆ®°¡ ÀÌ ¹æ½ÄÀ¸·Î µÇ¾î ÀÖ´Ù.

¡á ¾Ï½ÃÀû ÈùÆà : °¢ ±Û¸®ÇÁ¿¡ ÈùÆ® Á¤º¸¸¦ ³»ÀåÇÑ´Ù. Äڵ尡 ¾Æ´Ñ µ¥ÀÌÅ͸¸ ÀúÀåµÇ¹Ç·Î ÈξÀ ´õ ´Ü¼øÇÏ°í Å©±â°¡ ÀÛ´Ù. ÀÌ Á¤º¸´Â ÆùÆ®¸¦ ±×¸®´Â µå¶óÀ̹ö¿¡ ÀÇÇØ Çؼ®µÇ¾î ±Û¸®ÇÁ¿¡ Àû¿ëµÈ´Ù. Type1 ÆùÆ®°¡ ÀÌ ¹æ½ÄÀ¸·Î µÇ¾î ÀÖ´Ù.

¡á ÀÚµ¿ ÈùÆà : ±Û¸®ÇÁ¿¡ ¾î¶°ÇÑ ÈùÆ® Á¤º¸µµ Æ÷ÇÔµÇÁö ¾Ê´Â´Ù. ±Û¸®ÇÁ¸¦ »ç¿ëÇÏ´Â ÇÁ·Î±×·¥ÀÌ ÃßÃøÀ» ÅëÇØ ÈùÆ®¸¦ »ý¼ºÇس»°í Àû¿ëÇÑ´Ù. »ó½ÄÀûÀÎ ¼öÁØ¿¡¼­ ÈùÆÃÀ» ÇÏ´Â ¹æ½ÄÀÌ´Ù. ÆùÆ®´Â °¡º­¿öÁöÁö¸¸ ´ë½Å ·£´õ·¯ÀÇ ºÎ´ãÀÌ Áõ°¡ÇÑ´Ù.

 

°¢ ¹æ½ÄÀº °¢ÀÚ Àå´ÜÁ¡ÀÌ ÀÖ´Ù.

 

 

¼Óµµ

Å©±â

Ç°Áú

ÀÏ°ü¼º

¸í½ÃÀû

´À¸®´Ù

Å©´Ù

°¡Àå ¿ì¼öÇÏ´Ù

ÀÏ°üµÇ´Ù

¾Ï½ÃÀû

ºü¸£´Ù

ÀÛ´Ù

¿ì¼öÇÏ´Ù

·£´õ·¯¿¡ Á¿ìµÊ

ÀÚµ¿

·£´õ·¯¿¡ Á¿ìµÊ

°¡Àå ÀÛ´Ù

³·´Ù.

·£´õ·¯¿¡ Á¿ìµÊ

 

¸í½ÃÀû ÈùÆÃÀº ´À¸®Áö¸¸ Ç°ÁúÀÌ ¿ì¼öÇÏ°í ¾Ï½ÃÀû ÈùÆÃÀº ºü¸£Áö¸¸ Ç°ÁúÀÌ Á¶±Ý ¶³¾îÁø´Ù. Ç°ÁúÀ̳ª ¼Óµµ ¿Ü¿¡µµ ÀÏ°ü¼º ¿©ºÎµµ Áß¿äÇÑ Â÷ÀÌÁ¡ÀÌ´Ù. ¸í½ÃÀû ÈùÆÃÀº ÈùÆà ¾Ë°í¸®ÁòÀÌ ÆùÆ®¿¡ ³»ÀåµÇ¾î ÀÖÀ¸¹Ç·Î ¾îµð¿¡¼­ Ãâ·ÂÇϳª Ç×»ó µ¿ÀÏÇÑ ¸ð¾çÀ¸·Î Ãâ·ÂµÈ´Ù. ±×·¯³ª ¾Ï½ÃÀû ÈùÆÃÀº ÈùÆ® Á¤º¸¸¦ Çؼ®ÇÏ¿© Àû¿ëÇÏ´Â ·£´õ·¯¿¡ µû¶ó ¸ð¾çÀÌ ´Þ¶óÁú ¼öµµ ÀÖ´Ù. ºñ·Ï ¹Ì¼¼ÇÑ Â÷ÀÌ°ÚÁö¸¸ ¶È°°Àº ¹®¼­¸¦ À©µµ¿ìÁî¿¡¼­ Ãâ·ÂÇßÀ» ¶§¿Í ¸ÅŲÅä½Ã¿¡¼­ Ãâ·ÂÇßÀ» ¶§ °á°ú°¡ ´Þ¶óÁø´Ù¸é ÀÌ ¶Ç´Â ¹«½Ã¸øÇÒ ´ÜÁ¡À̶ó°í ÇÒ ¼ö ÀÖ´Ù.

¿î¿µÃ¼Á¦ÀÇ °í¼öÁØ Ãâ·Â ÇÔ¼ö³ª FreeType °°Àº Àú¼öÁØ ¶óÀ̺귯¸®³ª ¸ðµÎ ÈùÆ® Á¤º¸¸¦ ¾Ë¾Æ¼­ »ç¿ëÇϵµ·Ï µÇ¾î ÀÖÀ¸¹Ç·Î ÈùÆÿ¡ ´ëÇØ Æ¯º°È÷ ½Å°æÀ» ¾µ ÇÊ¿ä´Â ¾ø´Ù. FreeTypeÀº Æ®·ç ŸÀÔ ¹ÙÀÌÆ® Äڵ忡 ´ëÇÑ ÀÎÅÍÇÁ¸®ÅͱîÁö ³»ÀåÇÏ°í ÀÖ¾î ¿ì¼öÇÏ°íµµ ÀÏ°üµÈ °á°ú¸¦ ¸¸µé¾î ³½´Ù. »Ó¸¸ ¾Æ´Ï¶ó ÈùÆ® Á¤º¸°¡ ¾ø´Â ÆùÆ®¸¦ À§ÇØ ÀÚµ¿È­µÈ ¿ÀÅä ÈùÆ® ±â´É±îÁö Á¦°øµÈ´Ù.

ÈùÆÃÀº ±²ÀåÈ÷ º¹ÀâÇÏ°í ¾î·Á¿î ±â¼úÀÌÁö¸¸ ´ÙÇàÈ÷ ÈùÆÿ¡ ´ëÇؼ­´Â °³¹ßÀÚ°¡ ÀÌ·¡¶ó Àú·¡¶ó ÇÒ ÇÊ¿ä°¡ °ÅÀÇ ¾ø´Â ¼ÀÀÌ´Ù. ´Ù¸¸ ¾ÆÁÖ Æ¯¼öÇÑ °æ¿ì¸¦ À§ÇØ FreeTypeÀº ±Û¸®ÇÁ¸¦ ·ÎµåÇÒ ¶§ FT_LOAD_NO_HINTING, FT_LOAD_NO_AUTOHINT µîÀÇ Ç÷¡±×·Î ÈùÆÃÀÇ Àû¿ë ¿©ºÎ³ª ¹æ½Ä¿¡ ´ëÇØ °³ÀÔÇÒ ¼ö ÀÖ´Â ÀåÄ¡¸¦ Á¦°øÇÑ´Ù. ÀÌ Ç÷¡±×µéµµ ³ª¸§´ë·Î ½Ç¿ëÀûÀ¸·Î ¾µ ¶§°¡ ÀÖ°ÚÁö¸¸ ¼ÖÁ÷È÷ ¿Ø¸¸Çؼ­´Â ¾µ ÀÏÀÌ ¾ø´Ù.

³ª.Ä¿´×

Ä¿´×(Kerning)À̶õ ¿¬¼ÓµÇ´Â µÎ ±ÛÀÚÀÇ °£°ÝÀ» º¸±â ÁÁ°Ô Àç¹èÄ¡ÇÏ´Â ±â¼úÀÌ´Ù. Á¤»ç°¢ÇüÀÇ Çѱۿ¡¼­´Â ÀÌ·± ±â¹ýÀÌ ±»ÀÌ ÇÊ¿äÄ¡ ¾Ê¾Æ ¾Õ ±ÛÀÚÀÇ Æø¸¸Å­ À̵¿ÇÑ ÈÄ ´ÙÀ½ ±ÛÀÚ¸¦ Ãâ·ÂÇϱ⸸ ÇÏ¸é µÈ´Ù. ±×·¯³ª ¸ð¾çÀÌ Á» ´õ ÀÚÀ¯ ºÐ¹æÇÑ ¾ËÆĺª°ú ±âÈ£µéÀº ´Ü¼øÈ÷ Æø¸¸Å­ °£°ÝÀ» ¶ç¿ì±â¸¸ Çؼ­´Â ¾î»öÇÑ ¸ð¾çÀÌ ³ª¿Â´Ù. ÀϹÝÀûÀÎ ¿öµå ÇÁ·Î¼¼¼­µéÀº ¸ðµÎ Ä¿´×À» Áö¿øÇϹǷΠ¿öµå¸¦ ¿­¾î¼­ Ä¿´×ÀÌ ¾î¶² ±â¼úÀÎÁö üÇèÇØ º¸ÀÚ.

BRAVO¶ó´Â ¹®ÀÚ¿­À» µÎ ¹ø Ãâ·ÂÇߴµ¥ À§ÂÊÀº Ä¿´×À» Àû¿ëÇÏÁö ¾Ê°í ´Ü¼øÈ÷ ±ÛÀÚÀÇ Æø¸¸Å­ ¶ç¿ö°¡¸ç ¹®ÀÚµéÀ» ÂïÀº °ÍÀÌ´Ù. B¿Í R »çÀÌÀÇ °£°ÝÀ̳ª R°ú AÀÇ °£°ÝÀº ´«¿¡ °Å½½¸®Áö ¾ÊÁö¸¸ A¿Í VÀÇ °£°ÝÀº ´Ù¸¥ ±ÛÀڵ鿡 ºñÇØ »ó´çÈ÷ ¹ú¾îÁøµíÇÑ ´À³¦ÀÌ µç´Ù. À°¾ÈÀ¸·Î Àß °üÂûÇØ º¸¸é AÀÇ ¹ß°¡¶ô°ú VÀÇ ¾î±ú ÁÂÇ¥°¡ °ÅÀÇ ÀÏÄ¡ÇØ ½ÉÇÏ°Ô ¸¹ÀÌ ¹ú¾îÁø °ÍÀº ¾Æ´Ï´Ù. ÇÏÁö¸¸ µÎ ±ÛÀÚÀÇ Á¿쿡 »ï°¢ÇüÀÇ ¿©¹éµéÀÌ ÇÕÃÄÁ®¼­ ¹º°¡ ÇãÀüÇÑ °ø°£ÀÌ ´À²¸Áö´Â °ÍÀÌ´Ù.

A¿Í Vó·³ ¿Ü¾ç»ó ¹ú¾îÁ® º¸ÀÏ ¼ö ÀÖ´Â ±Û¸®ÇÁ Á¶ÇÕ¿¡ ´ëÇؼ­´Â ÀÏÁ¤ Á¤µµ °£°ÝÀ» ÁÙÀÏ ÇÊ¿ä°¡ Àִµ¥ ÀÌ Á¤º¸¸¦ Ä¿´×À̶ó°í ÇÑ´Ù. ÀÚ¿¬½º·´°Ô Ãâ·ÂÇصµ °á°ú°¡ ¸¸Á·½º·´Áö ¸øÇϱ⠶§¹®¿¡ ÀÎÀ§ÀûÀ¸·Î °£°ÝÀ» ´õ ÁÙ¿© ÃÖ´ëÇÑ º¸±â ÁÁ°Ô ¸¸µå´Â °ÍÀÌ´Ù. ¾Æ·¡ÂÊÀº Ä¿´×À» Àû¿ëÇÑ °ÍÀε¥ A¿Í V°¡ ½ÇÁ¦ ¹®ÀÚÆøº¸´Ù Á¶±Ý ´õ ÀÛ°Ô Æò°¡µÇ¾î °¡±õ°Ô ºÙ¾î ÀÖÀ¸¸ç ÀüüÀûÀ¸·Î ¹®ÀÚÀÇ °£°ÝµéÀÌ ±ÕÀÏÇÑ °Íó·³ º¸ÀδÙ. ¾ö¹ÐÇÏ°Ô µûÁöÀÚ¸é V°¡ AÀÇ ¿µ¿ªÀ» ħ¹üÇßÁö¸¸ ¾î·°Å³ª »ç¶÷ ´«¿¡´Â ÀÌ°Ô ´õ ÁÁ¾Æ º¸ÀδÙ. ¿öµå ÇÁ·Î¼¼¼­µéÀº µðÆúÆ®·Î Ä¿´×À» Àû¿ëÇϵµ·Ï µÇ¾î ÀÖ´Ù.

Á» ´õ ¿¹»Û Ãâ·ÂÀ» À§ÇØ ÆäÀ̽º´Â Ä¿´× Á¤º¸¸¦ Æ÷ÇÔÇÏÁö¸¸ ¸ðµç ÆùÆ®°¡ ´Ù Ä¿´× Á¤º¸¸¦ Á¦°øÇÏ´Â °ÍÀº ¾Æ´Ï¹Ç·Î ÆäÀ̽º¿¡ Ä¿´× Á¤º¸°¡ ÀÖ´ÂÁö¸¦ ¸ÕÀú Á¡°ËÇØ¾ß ÇÑ´Ù. faceÀÇ Ç÷¡±×¸¦ Àоî FT_FACE_FLAG_KERNING ºñÆ®°¡ ¼³Á¤µÇ¾î ÀÖ´ÂÁö¸¦ È®ÀÎÇØ º¸¸é µÈ´Ù. ÀÌ Ç÷¡±×¸¦ È®ÀÎÇÏ´Â ¸ÅÅ©·Î°¡ Á¤ÀǵǾî ÀÖÀ¸¹Ç·Î ¸ÅÅ©·Î¸¸ È£ÃâÇØ º¸¸é Ä¿´×°ªÀÇ Á¸Àç ¿©ºÎ¸¦ ½±°Ô ÆľÇÇÒ ¼ö ÀÖ´Ù.

 

#define FT_HAS_KERNING( face ) ( face->face_flags & FT_FACE_FLAG_KERNING )

 

Æ®·ç ŸÀÔÀÇ °æ¿ì Ä¿´×ÀÌ ÆäÀ̽º¿¡ Æ÷ÇԵǾî ÀÖÁö¸¸ Type1ÀÇ °æ¿ì´Â ÆäÀ̽º ÆÄÀÏ°ú´Â º°µµÀÇ ÆÄÀÏ¿¡ Ä¿´× Á¤º¸°¡ ¹èÆ÷µÇ¹Ç·Î º°µµ·Î ÆÄÀÏÀ» Àо ÆäÀ̽º¿¡ ÷ºÎÇØ¾ß ÇÑ´Ù. ´ÙÇàÈ÷ FreeType ¶óÀ̺귯¸®´Â Ä¿´× Á¤º¸ÀÇ À§Ä¡¿¡ »ó°ü¾øÀÌ ¿øÇÏ´Â µÎ ¹®ÀÚ¿¡ ´ëÇØ Ä¿´×°ªÀ» ±¸ÇÏ´Â ÇÔ¼ö¸¦ Á¦°øÇÑ´Ù.

 

FT_EXPORT( FT_Error ) FT_Get_Kerning( FT_Face face, FT_UInt left_glyph, FT_UInt right_glyph, FT_UInt kern_mode, FT_Vector *akerning );

 

ÆäÀ̽º °´Ã¼¿Í ÁÂ¿ì µÎ ¹®ÀÚÀÇ À妽º¸¦ Àü´ÞÇÏ¸é µÎ ¹®ÀÚ »çÀÌÀÇ Ä¿´×°ªÀÌ ¸®ÅϵȴÙ. Ä¿´× ¸ðµå´Â Ä¿´×°ªÀ» ¾î¶² ½ÄÀ¸·Î ¸®ÅÏÇÒ °ÍÀΰ¡¸¦ ÁöÁ¤Çϴµ¥ FT_KERNING_DEFAULT·Î ÁöÁ¤ÇÏ¸é ½ºÄÉÀϸµ°ú ÈùÆÃÀ» Àû¿ëÇÑ ÈÄ ¹Ý¿Ã¸²±îÁö ÇÑ Ä¿´×°ªÀÌ 26.6 Æ÷¸ËÀ¸·Î ¸®ÅϵȴÙ. ´ë°³ÀÇ °æ¿ì ½ºÄÉÀϸµ°ú ÈùÆÃÀ» ÇÑ ÈÄÀÇ Ä¿´×À» Àû¿ëÇϹǷΠÀÌ ¸ðµå·Î Ä¿´×°ªÀ» ÀÐÀ¸¸é ÃæºÐÇÏ´Ù. ±×·¯³ª ´Ù¸¥ ÀÌÀ¯·Î ½ºÄÉÀϸµ ÀÌÀüÀÇ Ä¿´×°ªÀ̳ª ÈùÆÃÀ» ÇϱâÀüÀÇ Ä¿´×°ªÀÌ ÇÊ¿äÇÏ¸é ´Ù¸¥ ¸ðµå¸¦ ÁöÁ¤ÇÏ¸é µÈ´Ù.

¸®ÅÏµÈ Ä¿´×°ªÀº ¾çÂÊ ¹®ÀÚ¸¦ ´õ °¡±õ°Ô ºÙÀÌ´Â ¿ªÇÒÀ» ÇϹǷΠ´ë°³ÀÇ °æ¿ì´Â À½¼öÀÏ °ÍÀÌ´Ù. ÀÌ °ªÀ» ÆæÀÇ ÇöÀç À§Ä¡¿¡¼­ ´õÇϸ¸ ÇÏ¸é µÈ´Ù. À½¼ö¸¦ ´õÇßÀ¸¹Ç·Î Ææ À§Ä¡°¡ ¿ÞÂÊÀ¸·Î »ì¦Äô À̵¿ÇÏ¿© µÎ ¹®ÀÚÀÇ °£°ÝÀÌ Á¼ÇôÁø´Ù. ´ÙÀ½ ¿¹Á¦´Â ¹®ÀÚ¿­À» µÎ ¹ø Ãâ·ÂÇÏµÇ Ä¿´× Àû¿ë ¿©ºÎ¸¦ ´Þ¸®Çß´Ù.

 

¿¹ Á¦ : Kerning

void DrawGlyph(HDC hdc,int bx, int by, FT_Face face)

{

     int x, y;

     int Color;

     int width, height;

     width=face->glyph->bitmap.width;

     height=face->glyph->bitmap.rows;

 

     for (y=0;y<height;y++) {

          for (x=0;x<width;x++) {

              Color=255-face->glyph->bitmap.buffer[y*width+x];

              if (Color != 255) {

                   SetPixelV(hdc,bx+face->glyph->bitmap_left+x,

                        by-face->glyph->bitmap_top+y,RGB(Color,Color,Color));

              }

          }

     }

}

 

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)

{

     HDC hdc;

     PAINTSTRUCT ps;

     FT_Face face;

     static TCHAR str[]=TEXT("AV T.Test");

     int idx;

     int penx,peny;

     unsigned left=0,right=0;

     FT_Vector kerning;

 

     switch (iMessage) {

     case WM_CREATE:

          hWndMain=hWnd;

          return 0;

     case WM_PAINT:

          hdc=BeginPaint(hWnd, &ps);

 

          FT_New_Face(library,"c:\\windows\\fonts\\times.ttf",0,&face);

          FT_Set_Char_Size(face, 128 * 64, 0,

              GetDeviceCaps(hdc,LOGPIXELSX), GetDeviceCaps(hdc,LOGPIXELSY));

 

          // Ä¿´× ¹ÌÀû¿ë

          penx=0 * 64;

          peny=150 * 64;

          for (idx=0;idx<lstrlen(str);idx++) {

              FT_Load_Char(face,str[idx],FT_LOAD_RENDER | FT_LOAD_NO_BITMAP);

              DrawGlyph(hdc,(penx >> 6), (peny >> 6), face);

              penx += face->glyph->advance.x;

              peny += face->glyph->advance.y;

          }

 

          // Ä¿´× Àû¿ë

          if (FT_HAS_KERNING(face)) {

              penx=0 * 64;

              peny=300 * 64;

              for (idx=0;idx<lstrlen(str);idx++) {

                   right = FT_Get_Char_Index(face,str[idx]);

                   if (left != 0) {

                        FT_Get_Kerning(face,left,right,FT_KERNING_DEFAULT,&kerning);

                        penx += kerning.x;;

                   }

                   FT_Load_Glyph(face,right,FT_LOAD_DEFAULT | FT_LOAD_NO_BITMAP);

                   FT_Render_Glyph(face->glyph, FT_RENDER_MODE_NORMAL);

                   DrawGlyph(hdc,(penx >> 6), (peny >> 6), face);

                   penx += face->glyph->advance.x;

                   peny += face->glyph->advance.y;

                   left=right;

              }

          }

 

          FT_Done_Face(face);

          EndPaint(hWnd, &ps);

          return 0;

     case WM_DESTROY:

          PostQuitMessage(0);

          return 0;

     }

     return(DefWindowProc(hWnd,iMessage,wParam,lParam));

}

 

´Ü¼øÇÑ ¹®ÀÚ¿­ Ãâ·Â ÄÚµåÀÌµÇ Ä¿´×À» Àû¿ëÇÒ ¶§´Â ÁÂ¿ì ¹®ÀÚÀÇ À妽º¸¦ ÀúÀåÇØ µÎ¾ú´Ù°¡ Á¶»çµÈ Ä¿´×°ª¸¸Å­ ÆæÀÇ x ÁÂÇ¥¿¡ ´õÇÏ´Â Äڵ尡 Ãß°¡µÇ¾î ÀÖ´Ù. ½ÇÇà °á°ú´Â ´ÙÀ½°ú °°´Ù.

Ä¿´× ¿©ºÎ¿¡ µû¶ó A¿Í VÀÇ °£°ÝÀÌ Æ²·ÁÁö¸ç T¿Í ¸¶Ä§Ç¥ÀÇ °£°Ýµµ ´Ù¸£´Ù. ¸¶Ä§Ç¥´Â ¾Õ ±ÛÀÚ ¹Ù·Î ´ÙÀ½¿¡ Âï¾î¾ß ÇÏÁö¸¸ T³ª F ó·³ ¿À¸¥ÂÊ ¾Æ·¡°¡ ¿òÇ« µé¾î°£ ±ÛÀÚÀÏ ¶§´Â Á¶±Ý ¿ÞÂÊ¿¡ Âï´Â °ÍÀÌ ´õ º¸±â¿¡ ÁÁ´Ù. Ä¿´×À» Àû¿ëÇϸé ÀüüÀûÀ¸·Î ¹®ÀÚ¿­ÀÇ ±æÀÌ°¡ ª¾ÆÁø´Ù.

Âü°í·Î GDIÀÇ TextOutÀ̳ª GDI+ÀÇ DrawStringÀº ÈùÆðú ¾ÈƼ ¾Ë¸®¾Æ½ÌÀº ÀÚµ¿À¸·Î ¼öÇàÇÏÁö¸¸ Ä¿´×Àº ó¸®ÇÏÁö ¾Ê´Â´Ù. °í¼öÁØÀÇ ÇÔ¼ö·Î´Â Ä¿´×À» ¹Ù·Î ó¸®ÇÒ ¼ö ¾øÀ¸¸ç Àú¼öÁØ ÇÔ¼ö¸¦ Á÷Á¢ È£ÃâÇϰųª ¾Æ´Ï¸é °³º° ¹®ÀÚ¸¦ Çϳª¾¿ µû·Î Ãâ·ÂÇÏ´Â ¹æ¹ýÀ» »ç¿ëÇØ¾ß ÇÑ´Ù. ¿î¿µÃ¼Á¦ ¼öÁØ¿¡¼­´Â Ä¿´×ÀÌ ÇÊ¿äÇÑ ¹®ÀÚµéÀÇ ¸ñ·ÏÀ» ±¸ÇØÁÖ´Â Á¤µµÀÇ ¼­ºñ½º(GetKerningPairs)¸¸ Á¦°øÇÑ´Ù.

 

ÀÌ»óÀ¸·Î FreeType ¶óÀ̺귯¸®¿¡ ´ëÇÑ °­Á¸¦ ¸¶Ä£´Ù. ªÀº ½Ã°£¿¡ °æȲ¾øÀÌ ¾´ °­ÁÂÀÌÁö¸¸ FreeTypeÀÇ ÁÖ¿ä ±â´ÉÀº °ÅÀÇ ´Ù ¼Ò°³ÇÑ °Í °°¾Æ ³ª¸§´ë·Î ¸¸Á·½º·´´Ù. ¹º°¡ »õ·Î¿î °ÍÀ» °øºÎÇÑ´Ù´Â °ÍÀº ¾ðÁ¦³ª Áñ°Å¿î ÀÏÀÌÁö¸¸ ½ÀµæÇÑ Áö½ÄÀ» ±Û·Î Á¤¸®ÇÏ´Â °ÍÀº °áÄÚ ½±Áö°¡ ¾Ê´Ù. Ç×»ó ½Ã°£ÀÌ ÃæºÐÄ¡ ¾Ê´Ù´Â Á¡ÀÌ ¾ÈŸ±î¿ï µû¸§ÀÌ´Ù.