XFree86 4.0.1¿¡ Æ÷ÇÔµÈ XtermÀº ÇöÀç °íÁ¤ ¹®ÀÚ ÆøÀ» °¡Áö¸ç ¿ÞÂÊ¿¡¼ ¿À¸¥ÂÊ ¹æÇâÀ¸·Î ½á¾ßÇÏ´Â ISO 10646-1ÀÇ ·¹º§ 1¸¸À» Áö¿øÇÑ´Ù. ´Ù½Ã ¸»ÇÏ ¸é, Å͹̳ÎÀÇ ÀÇ¹Ì ¿¬°á ü°è(terminal semantic)°¡ ÀÌÁ¦ UTF-8À» µðÄÚµùÇÒ ¼ö ÀÖ°í 16ºñÆ® ¹®ÀÚ¿¡ ¾×¼¼½º ÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» Á¦¿ÜÇϸé, Å͹̳ÎÀÇ ÀÇ ¹Ì ¿¬°á ü°è´Â ISO 8859-1ÀÇ °æ¿ì¿Í ±âº»ÀûÀ¸·Î °°´Ù.
°¡Àå ÃÖ½ÅÀÇ xterm °³¹ß ¹öÀüÀº ÀÌ¿¡ µÎ °¡Áö »õ·Î¿î ÇÔ¼öµé( Robert Brady°¡ Á¦°ø)À» Ãß°¡ÇÑ´Ù.
¼±ÅÃµÈ ÀÏ¹Ý ¹®ÀÚ°¡ X
×Y
Çȼ¿ Å©±â¸¦ °®´Â´Ù¸é
, xtermÀº ÀÌÁ¦ ºÎ°¡ÀûÀÎ 2X
×Y
Çȼ¿ Å©±âÀÇ Æù
Æ®¸¦ ·ÎµåÇÏ·Á°í ½ÃµµÇÒ °ÍÀÌ´Ù(AVERAGE_WIDTH
¼Ó¼ºÀÇ µÎ ¹è
°ªÀ» °®´Â´Ù´Â Á¡À» Á¦¿ÜÇϸé XLFD¿Í °°´Ù).
Unicode Technical Report #11¿¡ µû¸£¸é
East Asian Wide(W) ȤÀº East Asian FullWidth(F)ÀÇ Æø
Ư¼º(Width property)À» °®´Â ¸ðµç À¯´ÏÄÚµå ¹®ÀÚµéÀ» ³ªÅ¸³»±â À§Çؼ xte
rmÀº ÀÌ·¯ÇÑ ÆùÆ®¸¦ »ç¿ëÇÒ °ÍÀÌ´Ù.
½ºÆäÀ̽º°¡ ¾ø°Å³ª(nonspacing) µÑ·¯½Î°í ÀÖ´Â(enclosing) °áÇÕ ¹®ÀÚµé( ¿¹¸¦ µé¸é, À¯´ÏÄÚµå µ¥ÀÌÅͺ£À̽º¾È¿¡ ÀϹÝÀûÀÎ Ä«Å×°í¸® ÄÚµå Mn À̳ª Me¸¦ °¡Áö°í ÀÖ´Â ¹®ÀÚµé) ¶ÇÇÑ ÇöÀç »ç¿ë °¡´ÉÇϸç À̰ÍÀº ±âº» -¹®ÀÚ glyph(base-character glyph)À» µÎ °³ÀÇ °áÇÕ ¹®ÀÚ glyph±îÁö ´ÜÁö °ãÃľ²¹Ç·Î½á(³í¸® ¿¬»êÀÚ OR-ing) ±¸ÇöÇÒ ¼ö ÀÖ´Ù. À̰ÍÀº ±âº» ¶óÀÎ ¾Æ·¡ ¿¡ ¾×¼¾Æ®¸¦ ¹Þ¾ÆµéÀÏ ¼ö ÀÖ°Ô Çϰí, ÀÛÀº ¹®ÀÚ À§¿¡ ¾×¼¾Æ®¸¦ ¹Þ¾ÆµéÀÏ ¼ö ÀÖ°Ô ÇÑ´Ù. ¿¹¸¦ µé¸é °ãÃľ²±â¿Í ÇÔ²² »ç¿ëÇϱâ À§Çؼ Ưº°È÷ ¼³°èµÈ Å ±¹ ÆùÆ®¿¡ ´ëÇØ¼µµ ¶ÇÇÑ Àß µ¿ÀÛÇÑ´Ù. ±×·¯³ª Ưº°È÷ "°íÁ¤µÇ°í" Áý´ÜÈµÈ ÆùÆ®¿Í °°Àº ¾î¶² ÆùÆ® ¾È¿¡¼ ۰¡ Å« ¹®ÀÚ À§¿¡ ¾×¼¾Æ®¸¦ °áÇÕÇÏ´Â °ÍÀº ¿ÏÀüÈ÷ ¸¸Á·½º·´Áö ¾ÊÀ» Áöµµ ¸ð¸¥´Ù. ±×·¯¹Ç·Î ¹Ì¸® ¸¸µé¾îÁø(precompose d) ¹®ÀÚµéÀ» »ç¿ë °¡´ÉÇÑ °æ¿ì¿¡´Â ±×°ÍÀÌ ´õ ³ªÀº °á°ú¸¦ ³ºÀ» °ÍÀÌ´Ù.
ÅØ½ºÆ® ¸ðµå ¾ÖÇø®ÄÉÀÌ¼Ç ÇÁ·Î±×·¡¸ÓµéÀÌ ÁÖÀÇÇØ¾ß ÇÒ Á¡:
xtermÀÇ Ãâ·ÂÀº ÇÑÁßÀϾî±ÇÀÇ ÇÑÀÚ¿Í °áÇÕ ¹®ÀÚ¸¦ À§ÇÑ Áö¿øÀ¸·Î½á º¸´Ù ´Â ºñ·Ê ¹®ÀÚó·³ ¹ÝÀÀÇÒ °ÍÀÌ´Ù. ¿Ö³ÄÇÏ¸é ¶óƾ/±×¸®½º/۸± µîÀÇ ¹®ÀÚ´Â ÇϳªÀÇ ¼¼·Î¿ À§Ä¡¸¦ ÇÊ¿ä·Î ÇÏ´Â ¹Ý¸é, ÇÑÁßÀϾî±ÇÀÇ ÇÑÀÚ´Â 2°³ÀÇ ¹®ÀÚ ¸¦ ÇÊ¿ä·Î ÇÏ¸ç °áÇÕ ¹®ÀÚ´Â Çϳªµµ ÇÊ¿ä·Î ÇÏÁö ¾Ê±â ¶§¹®ÀÌ´Ù.
¿ÀÇ ¼Ò½º ±×·ìÀÇ ´ÜÀÏ À¯´Ð½º »ç¾çÀº ÇϳªÀÇ ¹®ÀÚ°¡ ¾ó¸¶³ª ¸¹Àº ¼¼·Î¿À» Â÷ÁöÇϰí ÀÖ ´ÂÁö¸¦ ¾ÖÇø®ÄÉÀ̼ÇÀÌ Å×½ºÆ® ÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â µÎ °³ÀÇ C ÇÔ¼ö wcwidth()¿Í wcswidth() ¸¦ ¸í½ÃÇϰí ÀÖ´Ù.
#include <wchar.h> int wcwidth(wchar_t wc); int wcswidth(const wchar_t *pwcs, size_t n);
Markus Kuhn ÀÌ ºñ »ó¿ë(free)À¸·Î ¹èÆ÷ÇÏ´Â wcwidth() ÇÔ¼ö´Â C ¶óÀ̺귯¸®°¡ ¾ÆÁ÷ ÀûÇÕÇÑ ÇÔ¼ö¸¦ Á¦°øÇÏÁö ¾Ê´Â Ç÷§ÆûÀÇ ¾ÖÇø®ÄÉÀ̼ǿ¡ ÀÇÇØ »ç¿ëµÉ ¼ö ÀÖ ´Ù.
xtermÀº ¾ÕÀ¸·Î ´Ù°¡¿Ã ¹Ì·¡¿¡ ´õ¿í º¹ÀâÇÑ ¿ÏÀüÇÑ À¯´ÏÄÚµå ·»´õ¸µ ¿£ Áø¿¡¼ ´ç½ÅÀÌ ±â´ëÇÒ Áöµµ ¸ð¸¦ ´ÙÀ½ÀÇ ±â´ÉµéÀ» ¾Æ¸¶µµ Áö¿øÇÏÁö ¾ÊÀ» °Í ÀÌ´Ù.
±×·¯¹Ç·Î À¯Å¾î¿Í ¾Æ¶ø¾î »ç¿ëÀÚµéÀº À¯Å¾î¿Í ¾Æ¶ø ¹®ÀÚ¿À» Å͹̳ηΠº¸³»±â Àü¿¡ ¹®ÀÚ¿ÀÇ ¹æÇâÀ» ¹ÝÀü½ÃŰ°í ¿ÞÂÊÀ» ä¿ì´Â ¾ÖÇø®ÄÉÀÌ¼Ç ÇÁ ·Î±×·¥À» »ç¿ëÇØ¾ß¸¸ ÇÑ´Ù. ´Ù½Ã ¸»ÇØ, ¾ç¹æÇâ ÇÁ·Î¼¼½ÌÀº xterm¿¡ ÀÇÇØ¼ °¡ ¾Æ´Ï¶ó ¾ÖÇø®ÄÉÀ̼ǿ¡ ÀÇÇØ¼ ÀÌ·ç¾îÁ®¾ß¸¸ ÇÑ´Ù. À¯ÅÂ¾î ¹× ¾Æ¶ø¾î¿Í °ü·ÃµÈ »óȲÀº ¹Ì¸® ¸¸µé¾îÁø glyph°ú ÇÁ¸®Á¨Å×ÀÌ¼Ç ¾ç½ÄÀÇ À¯È¿¼º¿¡ ÀÖ¾î ¼ Àû¾îµµ ISO 8859 ÀÌÈÄ °³¼±µÇ°í ÀÖ´Ù. Áö±ÝÀ¸·Î½á´Â ¾ç¹æÇâ Áö¿øÀÌ Á¤¸» ·Î xterm¿¡ ³»ÀåµÉ °ÍÀÎÁö À̰ÍÀÌ ¾ó¸¶³ª Á¤È®ÇÏ°Ô ÀÛµ¿ÇÒ °ÍÀÎÁö ¸íÈ®ÇÏÁö ¾Ê´Ù. ISO 6429 = ECMA-48°ú À¯´ÏÄÚµå bidi ¾Ë°í¸®Áò ¸ðµÎ ´ë¾ÈÀûÀÎ ½ÃÀÛ Æ÷ÀÎÆ®(starting point) ¸¦ Á¦°øÇÑ´Ù. E CMA Technical Report TR/53À» º¸µµ·Ï Ç϶ó.
¸¸¾à ´ç½ÅÀÌ ¾ÖÇø®ÄÉÀ̼ǿ¡¼ ¾ç¹æÇâ ÅØ½ºÆ® Ãâ·ÂÀ» Áö¿øÇÒ °èȹÀ̶ó¸é , À¯´ÏÄÚµå Bidi ¾Ë°í¸®ÁòÀ» ºñ »ó¿ë(free)À¸·Î ±¸ÇöÇÑ Dov GrobgeldÀÇ FriBidi ȤÀº Mark LeisherÀÇ PretBidi ¾Ë°í¸®ÁòÀ» º¸¶ó.
ÃÖ±Ù¿¡ ºñ·Ï Robert B rady°¡ bidi Áö¿øÀ» À§ÇÑ ¸î¸î Ãʱ⠽ÇÇèÀûÀÎ ÆÐÄ¡¸¦ ¹ßÇ¥Çϱä ÇßÁö¸¸ xtermÀº ÇöÀç ¾Æ¶ø¾î, ÇÑ±Û ÀÚ¸ð ¹× Àεµ ÅØ½ºÆ® Æ÷¸ËÆÃ ¾Ë°í¸®ÁòÀ» Áö¿øÇÏ Áö ¾Ê´Â´Ù. VT100 ¾Ö¹Ä·¹ÀÌÅÍ¿¡¼ ÀÌ·¯ÇÑ °ÍµéÀ» Áö¿øÇÏ´Â °ÍÀÌ ¾Ë¸ÂÀºÁö > ȤÀº ¹Ù¶÷Á÷ÇÑÁö ¿©ÀüÈ÷ ºÒ¸íÈ®ÇÏ´Ù. ¾ÖÇø®ÄÉÀ̼ǵéÀº ¾Æ¶ø¾î¿Í ÇѱÛÀ» Æ÷ ¸ËÇÏ´Â ¾Ë°í¸®ÁòÀ» ½±°Ô ¾ÖÇø®ÄÉÀÌ¼Ç ½º½º·Î Àû¿ëÇÒ ¼ö ÀÖ´Ù. ¿Ö³ÄÇϸé xt ermÀÌ ¾ÖÇø®ÄÉÀ̼ÇÀ¸·Î ÇÏ¿©±Ý ¸ðµç ÇÊ¿äÇÑ ÇÁ¸®Á¨Å×ÀÌ¼Ç ¾ç½ÄÀ» Ãâ·ÂÇÏ´Â °ÍÀ» Çã¿ëÇϱ⠶§¹®ÀÌ´Ù. Àεµ ¼Ã¼¿¡ °üÇØ¼ X ÆùÆ® ¸ÞÄ«´ÏÁòÀº ÇʼöÀûÀÎ ¿¬°á¼±(ligature)À» ´ëüÇÒ ¶Ç ´Ù¸¥ ÇüÅÂÀÇ ¿¬°á¼±À» À§ÇÑ ÀÎÄÚµùÀ» Áö±Ý> À¸·Î½á´Â ÀüÇô Áö¿øÇÏÁö ¾Ê°í ÀÖ´Ù. ±×·¡¼ Á¦°øÇÒ¸¸ ÇÑ xtermÀÌ ÀüÇô ¾ø´Ù . Àεµ¾î Ãâ·ÂÀÌ ÇÊ¿äÇÑ ¾ÖÇø®ÄÉÀ̼ÇÀº xterm°ú °°Àº VT100 ¿¡¹Ä·¹ÀÌÅÍ ´ë ½Å¿¡ Pango¿Í °°Àº ÀûÀýÇÑ À¯´ÏÄÚµå X11 ·»´õ¸µ ¶óÀ̺귯¸®¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ´õ¿í ÁÁ´Ù.