Previous Next Table of Contents

5. X ÇÁ·Î±×·¡¹Ö ±âÃÊ : ÆùÆ®

Xlib ¿Í ÇÔ²² ÇÏ´Â X ÇÁ·Î±×·¡¹ÖÀÌ Àç¹ÌÀÖÀ¸½Å°¡¿ä? Xlib Àº ¾ÆÁÖ Àú¼ö¼øÀÇ ÇÔ¼ö ¸ðÀ½ÀÔ´Ï´Ù. µû¶ó¼­ ÀÌ°Í ÀÚü¸¸À¸·Î´Â ÇÁ·Î±×·¥À» Â¥³»±â°¡ »ó´çÈ÷ Èûµì´Ï´Ù. ½ÇÁ¦ ¾îÇà °³¹ß¿¡ À־´Â ¹Ù·Î À§ »óÀ§ ¼öÁØÀÎ Toolkit ¼öÁØ¿¡¼­ ÀÌ·ç¾îÁöÁö¿ä. ¶Ç´Â ¸¹Àº »ç¶÷µéÀÌ »ç¿ëÇÏ°í ÀÖ´Â ½ÇÁúÀûÀΠǥÁØ ¸ðƼÇÁ(Motif)°¡ ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ Á¦°¡ °­Á¶ÇÏ°í ½ÍÀº °ÍÀº Toolkit°ú ¸ðƼÇÁ¸¸À¸·Î´Â ¾î¶² ÁÁÀº ÇÁ·Î±×·¥µµ ¸¸µé ¼ö°¡ ¾ø½À´Ï´Ù. Xlib °¡ Àú¼öÁØÀÌÁö¸¸ ±×°ÍÀº ´Ù½Ã ¸»ÇÏ¸é °­·ÂÇÏ´Ù´Â ¸»µµ µË´Ï´Ù. ÀÌ µÑÀÌ °áÇÕÇؾ߸¸ ¼º´ÉÁÁÀº ÇÁ·Î±×·¥ÀÌ ³ª¿Â´Ù°í È®½ÅÇÕ´Ï´Ù.

¾ÆÁ÷µµ ÇؾßÇÒ ¾ê±âµéÀÌ ¸¹Áö¸¸, ¾ÕÀ¸·Î ³²Àº °Íµé¿¡ ´ëÇؼ­ °£·«ÇÏ°Ô ¸»¾¸µå¸®°í ¿À´ÃÀÇ °­ÀǸ¦ ½ÃÀÛÇغ¼±î ÇÕ´Ï´Ù. ¿À´ÃÀÇ ÆùÆ® Ãâ·Â °­ÀÇ¿¡ ÀÌ¾î °¡Àå Áß¿äÇÏ´Ù°í »ý°¢µÇ´Â À̺¥Æ® 󸮹®Á¦ ( ¸¶¿ì½º À̺¥Æ®, Å°º¸µå À̺¥Æ® )°¡ ³²¾Æ ÀÖ½À´Ï´Ù. X À©µµÀÇ Ä÷¯ ½Ã½ºÅÛ¿¡ ´ëÇؼ­´Â Xt ( X Toolkit ) ÇÁ·Î±×·¡¹Ö¿¡ µé¾î°¡¼­ ¼³¸íµå¸®°Ú½À´Ï´Ù. ³Ê¹« ¿À·§µ¿¾È Xlib ÇÁ·Î±×·¡¹Ö¿¡ ¸Ó¹«¸£¸é Èï¹Ì¸¦ Àұ⠽±±â ¶§¹®ÀÔ´Ï´Ù.

5.1 ÆùÆ® Ãâ·Â¿¡ ´ëÇÏ¿© ...

¾î¶°ÇÑ ÅؽºÆ®(Text)¸¦ Ãâ·ÂÇϱâ À§Çؼ­´Â ´ÙÀ½°ú °°ÀÌ 3 °¡Áö °úÁ¤À» °ÅÃÄ¾ß ÇÕ´Ï´Ù.

  1. ¿ì¼± ¿øÇÏ´Â ÆùÆ®¸¦ °ñ¶ó¼­ ¼­¹ö´õ·¯ ±× ÆùÆ®¸¦ ÀûÀçÇ϶ó°í ¿äûÇÑ´Ù. ±×·¯¸é ¼­¹ö´Â ¿ª½Ã ÆùÆ®¿¡ ´ëÇÑ ID¸¸À» µ¹·ÁÁØ´Ù. ¸¸¾à ¿äûÇÑ ÆùÆ®°¡ ¾ø´Ù¸é ¿¡·¯°¡ ¹ß»ýÇÑ´Ù.
  2. ÆùÆ®µµ °á±¹¿£ "±×¸®´Â °Í"ÀÌ´Ù. µû¶ó¼­ ±×·¡ÇÈ ÄÁÅؽºÆ® GC°¡ ÀÌ¹Ì ÀÖ¾î¾ß ÇÑ´Ù. ÀÏ´Ü ¸¸µé¾î ³õÀº GC¿¡´Ù°¡ ÆùÆ® ID¸¦ ÁöÁ¤ÇØÁØ´Ù.
  3. ÀÌÁ¦´Â ÀûÀýÇÑ ÇÔ¼ö¸¦ ÅëÇؼ­ Ãâ·ÂÇÑ´Ù. ÀÌ ¶§ ¿ì¸®´Â 2¹ø °úÁ¤¿¡¼­ ÀÌ¹Ì ÆùÆ® ID Á¤º¸¸¦ Áö´Ï°í ÀÖ´Â GC ¸¸À» »ç¿ëÇÏ¸é µÈ´Ù. 1¹ÙÀÌÆ®°è ¶óƾ°è ¹®ÀÚ´Â XDrawString ÇÔ¼ö¸¦, ¿ì¸®³ª¶ó¿Í °°Àº 2¹ÙÀÌÆ®°è ¹®ÀÚ´Â XDrawString16 ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© Ãâ·ÂÇÑ´Ù.

  °£·«ÇÑ ÇÔ¼öÀÇ »ç¿ë µµÇ¥¸¦ ±×·Áº¸¸é,

 [1] XLoadFont() -->  [2] XSetFont()  -->  [3] XDrawString[16]()

5.2 X À©µµ¿ìÀÇ ÆùÆ® ½Ã½ºÅÛÀ» ¾Ë¾Æº¾½Ã´Ù.

º»ÀÎÀº X À©µµ¿ì °ü¸®ÀÚ fvwm °­ÀǸ¦ Çϸ鼭 ÆùÆ®¼³Á¤ ºÎºÐ¿¡¼­ ¾ÆÁÖ °£·«ÇÏ°Ô X À©µµ¿ìÀÇ ÆùƮü°è, XLFD¶ó´Â ¸í¸í±ÔÄ¢¿¡ ´ëÇؼ­ ³íÇß´Ù. fvwm °­ÀÇ¿¡¼­´Â öÀúÇÏ°Ô À¯Àú(user) ÀÔÀå¿¡¼­ ½±°Ô ±â¼úÇÏ·Á°í ÇßÀ¸³ª, ÀÌÁ¦ ÇÁ·Î±×·¡¸Ó°¡ µÇ·Á°í ÇϽô ¿©·¯ºÐ¿¡°Ô´Â ´õ¿í ´õ Àü¹®ÀûÀÎ Áö½ÄÀÌ ÇÊ¿äÇϸ®¶ó º¾´Ï´Ù.

Åë»ó X À©µµ¿ìÀÇ ÆùÆ®´Â /usr/lib/X11/fonts ¿¡ ÀúÀåµÇ¾î ÀÖ½À´Ï´Ù. ±× ÇϺΠµð·ºÅ丮¸¦ º¸½Ã¸é 100dpi, 75dpi, Speedo, Type1, misc µîÀÇ µð·ºÅ丮¸¦ ãÀ¸½Ç ¼ö ÀÖÀ» °Ì´Ï´Ù. ±× µð·ºÅ丮¿¡ µé¾î°¡º¸½Ã¸é È­ÀϸíÀÌ .pcf.Z ·Î ³¡³ª´Â ¾öû³ª°Ô ¸¹Àº È­ÀϵéÀ» º¸½Ç ¼ö ÀÖ½À´Ï´Ù. Z ´Â compress·Î ¾ÐÃàµÇ¾úÀ½À» ³ªÅ¸³» ÁÖ´Â °ÍÀ¸·Î¼­ X À©µµ¿ì ½Ã½ºÅÛÀº ÆùÆ®¿¡ ´ëÇÑ ¾ÐÃàÀ» Áö¿øÇÕ´Ï´Ù. ¿©·¯ºÐµµ ¾Æ½Ã°ÚÁö¸¸, ÆùÆ®°¡ Â÷ÁöÇÏ´Â µð½ºÅ© ¿ë·®Àº ¾î¸Ó¾î¸¶ ÇÕ´Ï´Ù. ƯÈ÷ M$ À©µµ¿ì °è¿­¿¡¼­ ¾²ÀÌ´ø ¿Ï¼ºÇü ÀúÀå ¹æ½ÄÀÇ ÆùÆ®µéÀº È­ÀÏ Çϳª°¡ 1¸Þ°¡¸¦ ³Ñ¾î°¡´Â °ÍÀÌ Çã´ÙÇßÁö¿ä. ±ú²ýÇÑ ¹®¼­¿¡ ´ëÇÑ ¿å½ÉÀº ´Ù¾çÇÑ ÆùÆ®¿¡ ´ëÇÑ ¿ä±¸·Î À̾îÁ³±¸¿ä. ¾ÐÃà ÆùÆ®¿¡ ´ëÇÑ Áö¿øÀº Á¤¸»·Î ÇÊ¿äÇÑ °ÍÀÓÀ» ÀÌÇØÇÏ½Ç ¼ö ÀÖÀ» °Ì´Ï´Ù. ±× ´ÙÀ½ fonts.dir, fonts.alias¿Í °°Àº Áß¿äÇÑ È­ÀÏÀ» ¸¸³ª½Ç ¼ö ÀÖ½À´Ï´Ù.

fonts.dir

ÀÌ È­ÀÏÀº ÇöÀç µð·ºÅ丮¿¡ ¼³Ä¡µÇ¾î ÀÖ´Â ÆùÆ® È­ÀÏ¿¡ ´ëÇÑ XLFD Á¤º¸°¡ µé¾î ÀÖ½À´Ï´Ù. »õ·Î¿î ÆùÆ®¸¦ ¼³Ä¡ÇÏ°í ³ª¼­´Â mkfontdir ¸í·ÉÀ» ½á¼­ fonts.dir È­ÀÏÀ» °»½ÅÇÕ´Ï´Ù.

fonts.alias

XLFD ½ÄÀÇ ¸í¸í¹æ½ÄÀ¸·Î ÆùÆ® À̸§À» ½áÁشٴ °ÍÀº »ó´çÇÑ °í¿ªÀÌ ¾Æ´Ò ¼ö ¾ø½À´Ï´Ù. ±×·¡¼­ alias º°¸íÀ» »ç¿ëÇÕ´Ï´Ù. ¿¹¸¦ µé¾î¼­ ¿ì¸®°¡ °¡Àå ¸¹ÀÌ »ç¿ëÇÏ°í ÀÖ´Â fixed ¶ó´Â À̸§ÀÇ ÆùÆ®´Â °¢°¢ÀÇ ½Ã½ºÅÛ¸¶´Ù ½ÇÁ¦·Î´Â ´Ù¸¥ ÆùÆ®¸¦ ÁöĪÇÏ°í ÀÖÀ» ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ alias´Â ÆùÆ®À̸§À» ¿Ü¿ì±â ÁÁ°Ô »ç¿ëÀÚ°¡ Á¤ÀÇÇؼ­ ¾µ ¼ö ÀÖµµ·Ï ÇØÁشٴ ¸éµµ °¡Áö°í ÀÖ°í, ƯÁ¤ ÆùÆ®À̸§ÀÌ ¸ðµç ½Ã½ºÅÛ¿¡ Ç×»ó ÀÖ´Â °Íó·³ ÇÒ ¼öµµ Àִٴµ¥ ±× ÀÇÀÇ°¡ ÀÖ½À´Ï´Ù. ¹Ù·Î À§¿¡¼­ ¿¹¸¦ µç fixed¶ó´Â À̸§ÀÇ ÆùÆ®ÀÌ ÁÁÀº ¿¹ÀÔ´Ï´Ù. Âü°í·Î fixed ¶ó´Â ÆùÆ® alias °¡ ÁöÁ¤µÇ¾î ÀÖÁö ¾ÊÀ¸¸é ´ëºÎºÐÀÇ °æ¿ì X ÀÚü°¡ ¶ß´Ù°¡ ¸» °Ì´Ï´Ù. ÀÌ È­ÀÏÀº ÀÚµ¿À¸·Î »ý¼ºµÇ´Â °ÍÀÌ ¾Æ´Ï´Ï ²À ¹é¾÷À» ÇØµÎ°í ¼öÁ¤ÇϽñ⠹ٶø´Ï´Ù.

fonts.scale

¿©·¯ºÐÀÌ Speedo³ª Type1 µð·ºÅ丮·Î °¡º¸½Ã¸é fonts.scaleÀ̶ó´Â È­ÀÏÀ» ãÀ¸½Ç ¼ö ÀÖ½À´Ï´Ù. ÆùÆ® È­Àϸí°ú ±×¿¡ ´ëÇÑ XLFD ¹æ½ÄÀÇ Ç¥±â°¡ ¾º¿©Á® ÀÖ½À´Ï´Ù. ÀÌ µÎ °¡Áö Ư¼öÇÑ ÆùÆ®¿¡ ´ëÇؼ­´Â Á¶±Ý ÀÖ´Ù°¡ ¼³¸íµå¸®±â·Î ÇÕ´Ï´Ù. ´ëºÎºÐÀÇ °æ¿ì fonts.dir È­ÀÏ°ú ³»¿ëÀÌ °°À» °Ì´Ï´Ù.

5.3 X Logical Font Descriptio : XLFD ¿¡ ´ëÇÏ¿©

X À©µµ¿ì ½Ã½ºÅÛ¿¡¼­´Â ÆùÆ®°¡ °®°í ÀÖ´Â ¼ºÁúÀ» Áö½ÃÇϱâ À§ÇÏ¿© 14°³ÀÇ Çʵå·Î ÀÌ·ç¾îÁø ±â¼ú¹æ½ÄÀ» ¾¹´Ï´Ù. ¹Ù·Î ÀÌ°ÍÀ» XLFD¶ó°í ÇÏÁö¿ä. ´ÙÀ½°ú °°ÀÌ ÀÌ·ç¾îÁ® ÀÖ½À´Ï´Ù.

  -misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-1

14°³ÀÇ Çʵå´Â ¸ðµÎ - ¹®ÀÚ·Î ºÐ¸®µÇ¾î ÀÖ½À´Ï´Ù. °¢°¢ÀÇ Àǹ̿¡ ´ëÇؼ­ ¾Ë¾Æº¸µµ ·Ï ÇÒ±î¿ä?

Á¦ÀÛÀÚ Çʵå ( Foundry Field )

º¸Åë ¸Ç ¾Õ¿¡ ¿À´Â ÀÌ Çʵå´Â * ¹®ÀÚ¸¦ ½á¼­ ¾î¶² °÷¿¡¼­ ¸¸µé¾ú´ÂÁö »ó°üÇÏÁö ¾Ê´Â °æ¿ì°¡ ¸¹½À´Ï´Ù. º¸Åë Adobe ȸ»ç°¡ ¸¸µç ÆùÆ®ÀÇ °æ¿ì¿¡´Â adobe¶ó´Â ¹®ÀÚ°¡ µé¾î°¡ ÀÖÁö¿ä. ÀÌ ¹Û¿¡µµ bitstream, b&h, schumacher, sun, kaist, hanyang, misc µîÀÇ ¹®ÀÚ¿­ÀÌ µé¾î°¡ ÀÖ´Â °ÍÀ» Á¾Á¾ º¸½Ç ¼ö ÀÖÀ» °Ì´Ï´Ù.

Æйи® Çʵå ( Family Field )

ÀÌ ³à¼®ÀÌ ±× ÆùÆ®ÀÇ ÀüüÀûÀÎ ¸ð¾çÀ» °áÁ¤ÇÕ´Ï´Ù. ¿ì¸®°¡ ¸¹ÀÌ µé¾îº» Helvetica, Times Roman, Courier µîµîÀÌ ±×°ÍÀÔ´Ï´Ù. ¿ì¸® ÆùÆ®ÀÎ °æ¿ì¿¡´Â myeongjo, gothic µîÀÌ ¹Ù·Î ±×°ÍÀÌÁÒ.

¹«°Ô Çʵå(?) ( Weight Field )

medium, bold, demibold µîÀÇ °ªÀ» °¡Áý´Ï´Ù. ¾î¶² ÀǹÌÀÎÁö ¾Æ½Ç °Ì´Ï´Ù.

°æ»çµµ Çʵå(?) ( Slant Field )

È°ÀÚÀÇ °æ»ç¿¡ ´ëÇÑ Áö½ÃÀÚÀÔ´Ï´Ù. r Àº ¿ì¸®°¡ ¾Ë°í ÀÖ´Â Á¤»óÀûÀÎ ·Î¸¸Ã¼, i´Â ÀÌÅŸ¯Ã¼¸¦ ¸»Çϸç, o ´Â ¹«¾ùÀϱî¿ä? Oblique ¶ó°í Çؼ­ À̰͵µ °æ»ç¹®ÀÚüÀε¥, ¹¹¶ó°í ¼³¸íµå·Á¾ß ÇÒÁö... ÀÌ°Í ¸»°íµµ ri, ro µîÀÇ °ªÀÌ Àִµ¥ °¢°¢ reverse italic, reverse oblique ÀÇ Àǹ̸¦ °®½À´Ï´Ù.

Æø Çʵå ( Setwidth Name Field )

º¸ÅëÀÇ °æ¿ì ¸ðµÎ normal·Î ¼³Á¤µÇ¾î ÀÖ½À´Ï´Ù. ÀÌ¿Ü¿¡ condensed, narrow µîÀÇ °ªÀ» °¡Áý´Ï´Ù.

ºÎ°¡Àû ½ºÅ¸ÀÏ Çʵå(?) ( Additional Style Field )

¼¼¸®ÇÁ(Serif)¿Í »ê¼¼¸®ÇÁ(Sans Serif)ÀÇ Â÷ÀÌ °°ÀÌ ºÎ°¡Àû ½ºÅ¸ÀÏÀÇ Â÷À̸¦ ³ªÅ¸³» ÁÖ´Â ÇʵåÀÔ´Ï´Ù. ¼¼¸®ÇÁ´Â º¸Åë ¿ì¸®°¡ º¸´Â ·Î¸¶ÀÚ È°Àڷμ­ I, M °ú °°Àº ±ÛÀÚ À§ ¾Æ·¡¿¡ ÀÖ´Â °¡´Ã°í ªÀº ¼±À» ¸»ÇÕ´Ï´Ù. ¹ºÁö °¨ÀÌ ¿À½Ê´Ï±î? I ÀÚ À§ ¾Æ·¡¿¡ ÀÖ´Â ¿·À¸·Î °¡´Â ¼± º¸À̽ÃÁÒ? ¿©·¯ºÐÀÌ ÇÑÅÒÀ» ¾²½Ã°í ¶ÇÇÑ ±âº» ÆùÆ® (-kaist-*-johab-* ...)¸¦ ¾²½Å´Ù¸é Áö±Ý ´çÀå È®ÀÎÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù. ¼¼¸®ÇÁ ¹®ÀÚ¶õ ¹Ù·Î ±×·¯ÇÑ Àå½ÄÀ» °®´Â ¹®ÀÚ¸¦ ¸»ÇÕ´Ï´Ù. »ê¼¼¸®ÇÁ´Â ±×·¯ÇÑ Àå½ÄÀÌ ¾ø´Â ¹®ÀÚ¸¦ ¸»ÇÕ´Ï´Ù. Sans ¶ó°í ÇÏ´Â °ÍÀÌ ¿µ¾î °í¾î·Î Without À̶ó´Â ÀǹÌÀ̱⠶§¹®ÀÔ´Ï´Ù. Sans Serif ¶Ç´Â Sanserif ¶ó°í ÇÕ´Ï´Ù. º¸Åë nil ÀÇ °ª, ¾Æ¹« °ªµµ ¾ø´Â °æ¿ì°¡ Çã´ÙÇÕ´Ï´Ù. ¿©·¯ºÐÀÌ ÆùÆ®¸íÀ» »ìÆ캸½Ã¸é Ç×»ó 6¹ø° Çʵ尡 ¾Æ¹« °ªµµ ¾øÀÌ -- ÀÌ·± ½ÄÀ¸·Î 󸮵Ǿî ÀÖ´Â °ÍÀ» º¸½Ç ¼ö ÀÖ½À´Ï´Ù.

È°ÀÚ Å©±â Çʵå ( Pixel Size Field )

¾ÆÁÖ ¸¹ÀÌ »ç¿ëÇÏ´Â Çʵå·Î¼­ È°ÀÚÀÇ Å©±â¸¦ ³ªÅ¸³»´Â ÇʵåÀÔ´Ï´Ù. ¿ì¸®°¡ °¡Àå ¸¹ÀÌ »ç¿ëÇÏ´Â ¿µ¿ªÀº ¾Æ¸¶µµ 10   20 »çÀÌ°¡ ¾Æ´Ò±î »ý°¢ÇÕ´Ï´Ù. Scalable ÆùÆ®¿¡´Â ÇØ´ç»çÇ×ÀÌ ¾ø½À´Ï´Ù. ÀÚÀ¯·Ó°Ô ÁöÁ¤ÇØ Áֽʽÿä. ±× ÀÌ¿ÜÀÇ ºñÆ®¸Ê ÆùÆ®µéÀº ƯÁ¤ Å©±âÀÇ È°Àڵ鸸ÀÌ Á¸ÀçÇÕ´Ï´Ù.

Çʵå ( Point Size Field )

´ÜµµÁ÷ÀÔÀûÀ¸·Î ¸ð¸¨´Ï´Ù! :)

X ¹æÇâ ÇØ»óµµ Çʵå ( X Resolution Field )
Y ¹æÇâ ÇØ»óµµ Çʵå ( Y Resolution Field )

°¢°¢ X, Y ¹æÇâÀÇ Çػ󵵸¦ ³ªÅ¸³À´Ï´Ù. ¿©·¯ºÐÀÌ 75 dpi, 100 dpi ÆùÆ®¸¦ ¼³Ä¡ ÇÏ¼Ì´Ù¸é ±× µð·ºÅ丮¿¡ °¡¼­ È®ÀÎÇغ¸½Ê½Ã¿ä. 75, 100 µîÀÇ ¼ýÀÚ°¡ ¾º¿©Á® ÀÖ½À´Ï´Ù. Scalable¿¡¼­´Â 0 ÀÔ´Ï´Ù.

°ø°£ Çʵå ( Space Field )

¿µ¹®ÀÚ¿¡¼­ È°ÀÚ I¿Í MÀ» »ý°¢ÇØ º¾½Ã´Ù. µÎ ¹®ÀÚÀÇ ÆøÀÌ ´Ù¸£ÁÒ? I Àڴ ȦÂßÇÑ ¹®ÀÚÀÌ°í M ÀÚ´Â ¶×¶×ÇÑ ¹®ÀÚÀε¥, ÄÄÇ»ÅÍ¿¡¼­´Â µÎ È°ÀÚ¸¦ ¶È°°Àº »ç°¢ÇüÀÇ ¿µ¿ª¿¡ ³Ö¾î »ý°¢ÇÏ´Â °æ¿ì°¡ ´ëºÎºÐÀÔ´Ï´Ù. ±×³É Ãâ·ÂÇϱâ ÆíÇϴϱî¿ä. ±×·¯ÇÑ ÀϹÝÀûÀÎ °æ¿ì¸¦ m , Monospace ¶ó°í Çϸç, I¿Í M ÀÚ¿Í °°ÀÌ Æø¿¡ µû¶ó °£°ÝÀ» Á¶È­·Ó°Ô Á¤·ÄÇØÁÖ´Â °ÍÀ» p , Proportional ºñ·Ê¹®ÀÚ¶ó°í ÇÕ´Ï´Ù. ÃâÆǹ° ±×¸®°í ¼öÁØ ³ôÀº ¿¡µðÅÍÀÇ °æ¿ì p È°ÀÚ¸¦ ¾²°ÚÁö¿ä? c ´Â m °ú µ¿ÀÏÇÑ ÀǹÌÀÔ´Ï´Ù. ¿ì¸®°¡ ¾²°íÀÚ ÇÏ´Â È°ÀÚ´Â ´ëºÎºÐ m ÀÔ´Ï´Ù. °è»êÀÌ °£ÆíÇϴϱî¿ä.

Æò±Õ Æø Çʵå ( Average Width Field )

±ÛÀÚ ±×´ë·Î ÀÔ´Ï´Ù. Æò±ÕÀ̶ó°í ÇÑ ÀÌÀ¯´Â À§¿¡¼­ ¸»¾¸µå¸®´Â °Í¿¡ ÀÇÇÏ¸é ½±°Ô ÀÌÇØÇÏ½Ç ¼ö ÀÖÀ» °Ì´Ï´Ù. Çѱۿ¡´Â Àû¿ë»çÇ× ¾ø´Â °Í °°½À´Ï´Ù.

µî·Ï Çʵå ( Registry Field )

µî·Ï ÇʵåÀÔ´Ï´Ù. ¿©±â¿¡ µé¾î°¡´Â °ª ¸î °¡Áö¸¦ ¼Ò°³ÇÔÀ¸·Î½á ¼³¸íÀ» ´ë½Å ÇÏ°Ú½À´Ï´Ù. adobe, dec, iso646.1991, ¿ì¸®°¡ ¾ÆÁÖ ÀÚÁÖ º¸´Â iso8859, johab, johabs, ksc5601.1987 µîÀÌ ±×°ÍÀÔ´Ï´Ù. Áï ¹®ÀÚ ¼¼Æ®¸¦ ÀǹÌÇÏ´Â °Í °°ÁÒ? johab(s)Àº Á¶ÇÕÇü ¹æ½ÄÀÇ ÀÚ¼Ò ÆùÆ®À̸ç, ksc5601.1987Àº ¿Ï¼ºÇü ¹æ½ÄÀÇ ±ÛÀÚ ÆùÆ®ÀÔ´Ï´Ù. ÀϹÝÀûÀÎ ¿µ¹®ÀÚ´Â iso8859ÀÔ´Ï´Ù.

ÀÎÄÚµù Çʵå ( Encoding Field )

ÈÞ, ¸¶Áö¸· ÇʵåÀ̱º¿ä. 0, 1, 8, irv µîÀÇ °ªµéÀÌ µé¾î°¡ ÀÖ½À´Ï´Ù. Àß ¸ð¸£´Â ÇʵåÀÔ´Ï´Ù. 13¹ø° Çʵå¿Í ¿¬°üÇÏ¿© »ý°¢ÇϽøé ÁÁ½À´Ï´Ù. º¸Åë iso8859-1, ksc5601.1987-0, iso646.1991-irv °ú °°Àº ²ôÆ®¸Ó¸® ±ÛÀÚµéÀ» º¸½Ç ¼ö ÀÖ½À´Ï´Ù.

5.4 ¿µ¹® ÅؽºÆ® Ãâ·Â ¿¬½À

Ãâ·Â ¿¹¸¦ »ìÆ캸±â·Î ÇսôÙ.

 #include <stdio.h>
 #include <X11/Xlib.h>
 #include <X11/Xutil.h>

 int main()
 {
        Display         *dpy;
        Window          w;
        Font            f;
        GC              gc;
        XSetWindowAttributes xswa;

        xswa.override_redirect = True;
        dpy = XOpenDisplay ( NULL);
        w   = XCreateSimpleWindow( dpy, RootWindow( dpy, 0 ), 50, 50,
                                        400, 300, 5, BlackPixel( dpy, 0 ),
                                                WhitePixel( dpy, 0 ) );
        XChangeWindowAttributes ( dpy, w, CWOverrideRedirect, &xswa );

        XMapWindow ( dpy, w );

        /* ----------------- ¿©±â¼­ºÎÅÍ°¡ º»°ÝÀûÀ¸·Î Áß¿äÇÑ ºÎºÐ ----- */
        gc = XCreateGC( dpy, w, 0L, ( XGCValues * ) NULL );     /* [1] */
        f  = XLoadFont( dpy, "fixed" );                         /* [2] */
        XSetFont ( dpy, gc, f );                                /* [3] */

        /* ÆùÆ® µî·ÏÀÌ µÈ GC ¸¦ °¡Áö°í Àü°æ»öÀ¸·Î ¹®ÀÚ¿­ Ãâ·Â */
        XDrawString( dpy, w, gc, 100, 130, 
                        "Hello, Linuxers! Never Seen :)", 16 ); /* [4] */ 
        /* ----------------------------------------------------------- */

        XFlush( dpy );
        getchar();

        /* µÞó¸® */
        XUnloadFont( dpy, f );
        XFreeGC( dpy, gc );
        XDestroyWindow( dpy, w );
        XCloseDisplay( dpy );
 }

ÄÄÆÄÀÏ ¹æ¹ýÀº

     gcc -o drawstring drawstring.c -L/usr/X11/lib -lX11

¼Ò½º ¿¹Á¦°¡ Á» ÁÁÁö ¾Ê´õ¶óµµ ÀÌÇØÇϽñ⠹ٶø´Ï´Ù. :) ÀÌ¹Ì Àü¿¡ ¼³¸íµå¸° ºÎºÐÀº »©°í º»°ÝÀûÀ¸·Î ´Ù¸¥ ºÎºÐ¸¸ ¼³¸íµå¸®°Ú½À´Ï´Ù.

ÀÚ, ÆùÆ®µµ °á±¹Àº Á¡À» Âï¾î¼­ â¿¡´Ù ±×¸®´Â °ÍÀ̹ǷΠGC ¸¦ ÇÊ¿ä·Î ÇÕ´Ï´Ù. ¿ì¼±Àº GC ¸¦ Çϳª ¸¸µé¾î¾ß°ÚÁÒ?

  gc = XCreateGC( dpy, w, 0L, ( XGCValues* ) NULL );

±×¸®°í À§¿¡¼­ °­Á¶Çß´ø ÆùÆ® ÀûÀç¿Í »ç¿ëÀÇ Áß°£ °úÁ¤À» ¸Ó¸® ¼Ó¿¡ ¶°¿Ã¸®½Ê½Ã¿ä.

ÆùÆ® ÀûÀç ( Font Loading )

 ÇÔ¼ö ¿øÇü :

 Font XLoadFont( Display *dpy, char *font_name );

font_name ¹®ÀÚ¿­Àº ¹Ù·Î À§¿¡¼­ ±æ°Ô ¼³¸íµå·È´ø XLFD ½ÄÀÇ ¿ÏÀüÇÑ ÆùÆ®À̸§ ¶Ç´Â ÆùÆ® º°¸í(alias)¸¦ ÁöÁ¤ÇØÁÖ½Ã¸é µË´Ï´Ù. ¼º°øÇϸé Font Çü º¯¼ö¸¦ ¹ÝȯÇÕ´Ï´Ù. ½ÇÆÐÇÏ¸é ¹°·Ð NULL ÀÌ°ÚÁö¿ä?

À§¿¡¼­´Â fixed ¶ó´Â º°¸íÀ» °¡Áø X À©µµ¿ìÀÇ °¡Àå ±âº»ÀûÀÎ ÆùÆ®¸¦ »ç¿ëÇÏ¿´½À´Ï´Ù. ±× ÆùÆ®°¡ ÁöÁ¤µÇ¾î ÀÖÁö ¾Ê´Ù¸é X À©µµ¿ì ÀÚü°¡ ¾Æ¸¶ ½ÃÀÛÇÏÁö ¾Ê¾ÒÀ»°ÍÀÔ´Ï´Ù. ¿©·¯ºÐÀÌ ¾Æ½Ã´Â ÆùÆ® À̸§ ¶Ç´Â Á÷Á¢ /usr/X11/lib/fonts µð·ºÅ丮¿¡ °¡¼Å¼­ °¢ µð·ºÅ丮ÀÇ fonts.dir ¿¡ ³ª¿ÍÀÖ´Â °ÍµéÀ» ½ÃÇèÇغ¸½Ã±â ¹Ù¶ø´Ï´Ù.

ÇÑ ¹ø ¸ÚÁø ¾Æµµºñ»çÀÇ ÆùÆ®¸¦ »ç¿ëÇغ¼±î¿ä? ±×·³ fixed ¶ó°í ¾²½Å ºÎºÐÀ» ¹Ù²ã º¸½Ê½Ã¿ä.

  -adobe-courier-medium-o-normal--25-180-100-100-m-150-iso8859-1

±×¸®°í ´Ù½Ã ÄÄÆÄÀÏ...

±×·±µ¥ ¸¸¾à¿¡ ¿©·¯ºÐ²²¼­ ÁöÁ¤ÇØÁֽŠÆùÆ®¸¦ X ¼­¹ö( Á¤È®È÷´Â ÆùÆ®¿¡ °üÇÏ¿©´Â X ÆùÆ® ¼­¹ö xfs ÀÇ ´ã´ç )°¡ ãÁö ¸øÇÒ ¶§, ¶Ç´Â Áö¿øÇÏÁö ¾Ê´Â °æ¿ì ¿¡·¯°¡ ¹ß»ýÇϸç Font Çü ¹Ýȯ°ª¿¡ ¾î¶² °ªÀÌ ¿Ã Áö´Â Á¤È®È÷ ¸ð¸¨´Ï´Ù.

±×¸®°í stderr ¿¡ ´ÙÀ½°ú °°Àº ¸Þ¼¼Áö°¡ Ãâ·ÂµË´Ï´Ù.

X Error of failed request: BadName(named color or font does not exist)
  Major opcode of failed request:  45 (X_OpenFont)
  Serial number of failed request:  9
  Current serial number in output stream:  15

ÆùÆ® ÀûÀç¿Í °üÇÑ ÇÑ ½ÇÁ¦ ÇÁ·Î±×·¡¹Ö¿¡¼­ XLoadFont ÇÔ¼ö¸¦ ¾²Áö´Â ¾Ê´Â °Í °°½À´Ï´Ù. ´ë½Å XLoadQueryFont ¶ó°í ÇÏ´Â ÇÔ¼ö¸¦ »ç¿ëÇÏÁö¿ä. :) ÀÚ... ±×·±µ¥ ¿ä°Ç ¿©·¯ºÐ²² °úÁ¦·Î ³²°Ü¾ß ÇÏ°Ú±º¿ä. ¹Ù·Î ´ÙÀ½¿¡ ¼³¸íÀ» µå¸®°Ú½À´Ï´Ù. °úÁ¦´Â XLoadQueryFont, ÀÌ¿Í °ü·ÃÇÑ XFontStruct ÀÇ ±¸Á¶ Á¶»çÀÔ´Ï´Ù. ¸ÇÆäÀÌÁö¿¡ ³Ê¹«µµ Á¤È®È÷ ³ª¿Í ÀÖÀ¸´Ï±ñ °ÆÁ¤ÇÏÁö ¸¶½Ã±â ¹Ù¶ø´Ï´Ù.

ÆùÆ®¸¦ GC ¿¡ µî·Ï

 ÇÔ¼ö ¿øÇü :

 XSetFont( Display *dpy, GC gc, Font font );

ÆùÆ® ID °ªÀ» GC Á¤º¸¿¡ ¼ö·ÏÇϵµ·Ï ¿äûÇÕ´Ï´Ù. ÀÌ·¸°Ô ÇÔÀ¸·Î½á ¾ÕÀ¸·Î Ãâ·ÂµÇ´Â ÅؽºÆ®´Â GC ¿¡ ÁöÁ¤µÇ¾î ÀÖ´Â Àü°æ»öÀ¸·Î Ç¥½ÃµÇ°Ô µË´Ï´Ù.

±×·¯°í º¸´Ï GC ¶ó°í ÇÏ´Â °ÍÀº ±×·¡ÇÈ¿¡ °üÇÑ ¸ðµç Á¤º¸¸¦ Áö´Ï°í ÀÖ´Â ³à¼®À̶ó°í ÇÒ ¼ö°¡ Àֳ׿ä. ´Ù½Ã ÇÑ ¹ø ±â¾ïÇսôÙ! X À©µµ¿ì ±×·¡ÇÈ¿¡ À־ Áß¿äÇÑ ¿ä GC ¸¦.... :)

½ÇÁ¦ ÅؽºÆ® Ãâ·Â

 ÇÔ¼ö ¿øÇü :

 XDrawString(display, d, gc, x, y, string, length)
              Display *display;
              Drawable d;
              GC gc;
              int x, y;
              char *string;
              int length;

Drawable Àº Window Çü º¯¼ö³ª Pixmap Çü º¯¼öÀ» ¸»ÇÏÁÒ? ÀÚ, ⠾ȿ¡¼­ÀÇ ÁÂÇ¥°ªÀ» ÁÖ½Ã°í ¹®ÀÚ¿­ string À» ³Ñ°Ü ÁÝ´Ï´Ù. ±×¸®°í ¸¶Áö¸·À¸·Î ÀØÁö ¸¶¼Å¾ß ÇÒ°ÍÀº ¹®ÀÚ¿­ÀÇ ±æÀÌ°¡ ¾ó¸¶ÀÎÁö¸¦ length ¿¡ ÀúÀåÇؼ­ ³Ö¾îÁÖ¼Å¾ß µÈ´Ù´Â »ç½ÇÀÔ´Ï´Ù.

¿©·¯ºÐ, À§ ¿¹Á¦ ÇÁ·Î±×·¥ ¼Ò½º¿Í ½ÇÇàÅ°½Å È­¸é¿¡ Ãâ·ÂµÈ °á°ú¿¡¼­ ¹º°¡ ÀÌ»óÇÑ Á¡À» ¹ß°ßÇÏÁö ¾ÊÀ¸¼Ì½À´Ï±î? :>>

¿¹. ±×·¸½À´Ï´Ù. "Hello, Linuxers! Never Seen :)" ¶ó°í ¹®ÀÚ¿­À» ÁÖ±ä ÇßÁö¸¸ µÞºÎºÐ Áï, 'Never Seen :)' À̶ó°í ÇÏ´Â ºÎºÐÀº ½ÇÁ¦ Ãâ·ÂÀÌ µÇÁú ¾Ê½À´Ï´Ù.

µÞó¸®

¼¼»ó¸¸»ç ½ÃÀÛµµ Áß¿äÇÏ°í °úÁ¤µµ Áß¿äÇÏÁö¸¸ À¯Á¾ÀÇ ¹Ì¸¦ °ÅµÎ´Â °Íµµ Áß¿äÇÏ´Ù°í »ý°¢ÇÕ´Ï´Ù. /* µÞó¸® */¶ó°í ÁÖ¼®À» ´Ü ºÎºÐ¿¡¼­´Â XUnloadFont() À» »ç¿ëÇÏ°í ÀÖ½À´Ï´Ù. ±× µÚÀÇ ¸ðµç °úÁ¤µµ ¸¶Âù°¡ÁöÀÌÁö¸¸ ÇÁ·Î±×·¥ Á¾·á ÈÄ ÀÚµ¿À¸·Î ÀÌ·ç¾îÁö´Â °úÁ¤À̱ä ÇÕ´Ï´Ù. ÇÏÁö¸¸, ¿©·¯ºÐ²²¼­ ¹º°¡ »ó¿ë ÇÁ·Î±×·¥À̳ª ¹º°¡ ±×·²µíÇÑ ÇÁ·Î±×·¥À» ¸¸µå½Ã·Á°í ÇÏ½Å´Ù¸é ²À µÞ󸮸¦ ÀßÇØÁֽʽÿä.


Previous Next Table of Contents