#action Blog Add Blog ##Blog {{{#!blog Karnes 2006-04-04T20:51:04 ÆíÁýÀû ÁÖ¼® Karnes : [ÀÛÀº³ª¹«] ´ÔÀÇ ''TeXbook'' Àбâ, 2006³â 3¿ù¿¡ ¾²½Å ±ÛµéÀÔ´Ï´Ù. }}} {{{#!blog ÀÛÀº³ª¹« 2006-03-31T01:05:13 \futurelet revisited '''207ÂÊ''': ¾Õ¿¡ \futureletÀ̶ó´Â Á¦¸ñÀ¸·Î ±ÛÀ» ¾´ ÀûÀÌ À־, À̹ø¿¡ "\futurelet ´Ù½Ãº¸±â" ·Î Á¦¸ñÀ» ºÙ¿´Áö¸¸, óÀ½ ±ÛÀº \futureletÀ» µµ´ëü ¾îµð¿¡ »ç¿ëÇØ¾ß ÇÏ´ÂÁö ÀÌÇØÇÏÁö ¸øÇÏ°Ú´Ù´Â ³ÌµÎ¸®¿´±â¶§¹®¿¡, »ç½ÇÀº Áö±ÝÀÌ ÁøÂ¥¶ó°í ÇÏ°Ú½À´Ï´Ù. :) TeXbook¿¡ ³ª¿Í ÀÖ´Â \futureletÀÌ »ç¿ëµÈ ¿¹Á¦´Â ¾ÆÁ÷ ÀÛÀº³ª¹«¿¡°Ô´Â ¹«¸®°¡ À־, Á» ´õ ÀÚ¼¼È÷ ¼³¸íµÇ°í, »ó´ëÀûÀ¸·Î ½¬¿î TeXbyTopic¿¡¼­ ¼³¸í°ú ±× ¿¹Á¦¸¦ °ñ¶óº¸¾Ò½À´Ï´Ù. ±×·¡¼­ À̹ø¸¸Àº TeXbook ÀбⰡ ¾Æ´Ï¶ó TeXbyTopic Àбâ·Î Çؾ߰ڽÀ´Ï´Ù. ´ÙÀ½ÀÇ \letÀ» ÀÌ¿ëÇÑ ¹®ÀåÀº ÀÌ¹Ì ¾Æ½Ã´Ù½ÃÇÇ, {{{ \let \}}} °¡ ÀÇ Àǹ̸¦ °®°Ô µÇ°í, ³²Àº °ÍÀ» ´Ù½Ã ½áº¸¸é, ´ÙÀ½°ú °°ÀÌ µË´Ï´Ù. {{{ \}}} Áï, À§¿¡¼­ ÀÌ »ç¶óÁø °ÍÀÌÁö¿ä. ÇÏÁö¸¸ \futureletÀº Á» ´Ù¸¨´Ï´Ù. À§¿¡¼­ \letÀ» \futureletÀ¸·Î ¹Ù²Ù¸é, ´ÙÀ½°ú °°ÀÌ µÇ´Âµ¥, {{{ \futurelet \}}} ÀÌ´Â ¿¡ ÀÌ ¾Æ´Ñ ÀÇ Àǹ̸¦ ºÎ¿©ÇÕ´Ï´Ù. (\expandafter ¿Í ¾à°£ ºñ½ÁÇÑ ¹º°¡°¡ ´À²¸Áý´Ï´Ù. :) ) ±×¸®°í³ª¼­, \letÀÇ °æ¿ì´Â ±× Àǹ̻ó ÀÌ »ç¶óÁø ¹Ý¸é, \futurelet¿¡¼­´Â °¡ »ç¶óÁöÁö ¾Ê½À´Ï´Ù. Áï, ¾Æ·¡¿Í °°ÀÌ µË´Ï´Ù. {{{ \}}} À§ »óÅ°¡ µÇ°í³ª¸é, Àº °¡ ¾î¶² ³à¼®ÀÎÁö ¾Ë°ÔµË´Ï´Ù. ±×·¡¼­ Àº ¿¡ µû¶ó¼­ ÇൿÀ» ÃëÇÏ¸é µË´Ï´Ù. ÀÌÁ¦ \futureletÀÇ Àǹ̰¡ È®½ÇÈ÷ ÀÌÇØ°¡ µË´Ï´Ù. À̳ðÀ» ¾îµð´Ù ¾²´À³Ä°¡ ¹®Á¦Àε¥... \futureletÀÌ ¾²ÀÌ´Â ´ëÇ¥ÀûÀÎ ¿¹°¡ ¹Ù·Î ¸ÅÅ©·ÎÀÇ ÆĶó¹ÌÅÍ°¡ ¿É¼Å³ÎÇÑ °æ¿ì¶ø´Ï´Ù. ±×·¸´Ù°í Çϴϱî, ±×·² °Íµµ °°Àºµ¥, ¾ÆÁ÷ È® ¿Í´êÁö ¾Ê½À´Ï´Ù. Á» ´õ »ìÆ캸°Ú½À´Ï´Ù. ´ÙÀ½°ú °°Àº ¸ÅÅ©·Î \ComÀÌ ÀÖ´Ù°í ÇսôÙ. {{{#!vim tex \Com{argument} ¶Ç´Â \Com[optional]{argument} \}}} \Com À̶ó´Â ¸í·É¾î¿¡ [optional] À̶ó´Â ÆĶó¹ÌÅÍ°¡ ÀÖÀ» ¼öµµ ÀÖ°í, ¾øÀ» ¼öµµ ÀÖ½À´Ï´Ù. Áï ¸» ±×´ë·Î ÆĶó¹ÌÅÍ°¡ ¿É¼ÇÀ̶ó´Â ¶æÀÌÁÒ. À§¿Í °°Àº \Com ¸ÅÅ©·Î¸¦ ÇØ°áÇϱâ À§Çؼ­ \futureletÀÌ ÁÖ·Î ¾²Àδٰí ÇÕ´Ï´Ù. ±×·³ \ComÀº ½ÇÁ¦·Î ¾î¶»°Ô Á¤ÀÇ µÉ±î¿ä? (ÀÌÁ¦ ¾ó¸¶ ¾È³²¾Ò½À´Ï´Ù.) {{{#!vim tex \def\Com{\futurelet\testchar\MaybeOptArgCom} \def\MaybeOptArgCom{\ifx[\testchar \let\next\OptArgCom \else \let\next\NoOptArgCom \fi \next} \def\OptArgCom[#1]#2{ ... } \def\NoOptArgCom#1{ ... } \}}} ¸ðµç °ÍÀÌ ºÐ¸íÇØÁö´Â ¼ø°£ÀÔ´Ï´Ù. :)) Á¤¸» ±â»Þ´Ï´Ù. (TeXbookµµ ¿ä·ÎÄÞ ¾Ë±â½±°Ô ¼³¸íÇØÁÖ¸é, ¾ó¸¶³ª ÁÁÀ»±î ÇÏ°í »ý°¢ÇØ º¾´Ï´Ù.) °á±¹ ¾Æ·¡ÀÇ ¹®ÀåÀº {{{ \Com[optional]{argument} \}}} À§ÀÇ \ComÀÇ Á¤ÀÇ´ë·Î¶ó¸é, {{{ \futurelet\testchar\MaybeOptArgCom[optional]{argument} \}}} ÀÌ µÇ´Âµ¥, \futureletÀÇ Á¤ÀÇ¿¡ µû¶ó \testchar´Â '['¸¦ °®°Ô µË´Ï´Ù. ±×·¡¼­ \MaybeOptArgComÀº ÀÌÁ¦ \testcharÀÌ ¾î¶² ³ðÀÎÁö ¾Ë°ÔµÇ¾î \testchar°¡ '['¶ó¸é \OptArgCom¸¦ ½ÇÇàÇϸéµÇ°í, ¾Æ´Ï¶ó¸é \NoOptArgCom ¸¦ Àü°³ÇÏ¸é ±×¸¸ÀÔ´Ï´Ù. ´ëÇѵ¶¸³¸¸¼¼! ÀÔ´Ï´Ù. :)) ---- ÁÁÀº ¼³¸í °¨»çÇÕ´Ï´Ù. Âü°í·Î LaTeX¿¡¼­´Â ´ÙÀ½°ú °°ÀÌ Ã³¸®ÇÕ´Ï´Ù. {{{ \newcommand\Com[2][\@empty]{% \ifx #1\@empty ... \else ... \fi } \}}} ±×·¸Áö¸¸ ÀÛÀº³ª¹«´Ô ´öºÐ¿¡ ǻó·¿ÀÇ Àǹ̸¦ È®½ÇÈ÷ ¾Ë¾ÒÀ¸´Ï ³Ê¹«³ª Å« ¼ÒµæÀÔ´Ï´Ù. -- [Progress] [[DateTime(2006-03-31T01:39:02)]] ---- even better!!! ±×·¸´Ù¸é, "LaTeX Àбâ"µµ ÇؾßÇÑ´Ü ¸»ÀԴϱî? ;) -- [ÀÛÀº³ª¹«] [[DateTime(2006-03-31T02:39:41)]] }}} {{{#!blog ÀÛÀº³ª¹« 2006-03-30T14:44:25 ½ÃÇàÂø¿À¶õ ÀÌ·± °Í (\smash, \vphantom) '''163ÂÊ, 178ÂÊ''': ¿À·£¸¸¿¡ ¼ö½Ä Á¶ÆÇ¿¡ µµÀüÇØ º¸¾Ò½À´Ï´Ù. ¸ñÇ¥´Â ´ÙÀ½ ¼ö½ÄÀÔ´Ï´Ù. $$\lim_{n\to\infty}x_n {\rm\ exists} \iff \mathop{\smash\limsup\vphantom\liminf}_{n\to\infty}x_n = \liminf_{n\to\infty}x_n$$ * '''½Ãµµ I''': ¸ÕÀú, ¼øÁøÇÏ°Ô ´«¿¡ º¸ÀÌ´Â ±×´ë·Î ¾Æ·¡¿Í °°ÀÌ ½ÃµµÇغ¸¾Ò½À´Ï´Ù. ¾Æ¹«·± ±â±³µµ ¾øÀÌ. {{{#!vim tex $$ \lim_{n\to\infty}x_n {\rm\ exists} \iff \limsup_{n\to\infty}x_n = \liminf_{n\to\infty}x_n $$ \}}} ±×·¨´õ´Ï, °á°ú ¿ª½Ã ¼øÁøÇÏ°Ô Å¸ÀÌÇÎ ÇÑ ±×´ë·Î º¸¿©ÁÝ´Ï´Ù. $$\lim_{n\to\infty}x_n {\rm\ exists} \iff \limsup_{n\to\infty}x_n = \liminf_{n\to\infty}x_n$$ »ç½Ç ±â´ëµµ ¾ÈÇß½À´Ï´Ù. :( $$n\to\infty$$ ÀÇ À§Ä¡°¡ ÀÏÁ¤ÇÏÁö ¾Ê°í ¼­·Î ´Ù¸¨´Ï´Ù. ƯÈ÷ limsup ¹Ø¿¡ ÀÖ´Â ³ðÀÌ ´Ù¸¥ µÑ º¸´Ù ´õ ¾Æ·¡·Î ³»·Á°¡ ÀÖ½À´Ï´Ù. ±×µµ ±×·² °ÍÀÌ ¾Æ¸¶ limsupÀÇ 'p'¶§¹®¿¡ ±×·± °Í °°½À´Ï´Ù. * '''½Ãµµ II''': ¹®ÀÚÀÇ ³ôÀÌ(height)¿Í ±íÀÌ(depth)°¡ ¼­·Î ´Þ¶ó¼­, À§ ¾Æ·¡·Î µé¾¦³¯¾¦ÇÏ´ø ·çÆ® ±âÈ£¸¦ \mathstrutÀ» »ç¿ëÇؼ­ ÇØ°áÇß´ø ±â¾ïÀÌ ÀÖ´ø ÅͶó, ¹Ù·Î À̰ű¸³ª ÇÏ°í ´ÙÀ½°ú °°ÀÌ ½ÃµµÇغýÀ´Ï´Ù. {{{#!vim tex $$ \mathop{\mathstrut\lim}_{n\to\infty}x_n {\rm\ exists} \iff \mathop{\mathstrut\limsup}_{n\to\infty}x_n = \mathop{\mathstrut\liminf}_{n\to\infty}x_n $$ \}}} °á°ú´Â ´ÙÀ½°ú °°¾Ò½À´Ï´Ù. $$\mathop{\mathstrut\lim}_{n\to\infty}x_n {\rm\ exists} \iff \mathop{\mathstrut\limsup}_{n\to\infty}x_n = \mathop{\mathstrut\liminf}_{n\to\infty}x_n$$ È¿°ú°¡ ÀÖ¾ú½À´Ï´Ù. $$n\to\infty$$ ÀÇ À§Ä¡°¡ ÀÏÁ¤ÇØÁ³½À´Ï´Ù. À¢ÀÏ·Î ÀÛÀº³ª¹«°¡ µÎ ¹ø¸¸¿¡ ÇØ°áÇϳª ½Í¾î¼­, ÀÚ¼¼È÷ º¸´Ï ¾Æ´Ï³ª ´Ù¸¦±î, $$n\to\infty$$ °¡ ÀÏÁ¤ÇØÁö±ä ÇßÁö¸¸, Á¤´äº¸´Ù ³Ê¹« ¾Æ·¡·Î ³»·Á°¬½À´Ï´Ù. Áï ÇÏÇâ ÆòÁØÈ­°¡ µÇ¾îÀÖ¾ú½À´Ï´Ù. ¿©±â±îÁö°¡ ÀÛÀº³ª¹«°¡ ¾Ë°í ÀÖ´Â Áö½ÄÀ¸·Î ÇÒ ¼ö ÀÖ´Â ÀüºÎ¿´½À´Ï´Ù. »ç½Ç À§ÀÇ ¼ö½Äµµ ±×·±´ë·Î º¸±â ÁÁ¾Ò½À´Ï´Ù. ¾î·µç ´äÀº ¾Æ´Ï¹Ç·Î, ÇØ°áÇϱâ À§Çؼ­ Ã¥À» ºÃ½À´Ï´Ù. ¿ª½Ã ÇØ´äÀº Ã¥¿¡ ÀÖ½À´Ï´Ù. 178ÂÊ¿¡ ´ÙÀ½°ú °°Àº ÇØ°á¹æ¹ýÀÌ Á¦½ÃµÇ¾î ÀÖ¾ú½À´Ï´Ù. \smash¿Í \vphantomÀ» Àß Á¶ÇÕÇؼ­ »ç¿ëÇϸé, ¿øÇÏ´Â ³ôÀÌ¿Í ±íÀÌ·ÎµÈ ¼ö½ÄÀ» ¸¸µé ¼ö ÀÖ´Ù´Â °ÍÀ̾ú½À´Ï´Ù. ¹Ù·Î ÀÌ°ÍÀÌÁÒ. limsup°ú liminfÀÇ ³ôÀÌ¿Í ±íÀ̸¦ Çϳª·Î ÅëÀÏÇÏ¸é ¹®Á¦°¡ ÇØ°áµÇ´Â °ÍÀ̾ú½À´Ï´Ù. ±×·¡¼­ limsupÀÇ ³ôÀÌ¿Í ±íÀ̸¦liminfÀÇ ±×°Íµé¿¡ ¸ÂÃß±â·Î Çß½À´Ï´Ù. liminf¸¦ limsup¿¡ ¸ÂÃâ±îµµ »ý°¢ÇغÃÁö¸¸, ±×·¯¸é lim, liminf µÎ °³¸¦ ¼ÕºÁ¾ß ÇϹǷΠ°üµ×½À´Ï´Ù. :) * '''½Ãµµ III''': ¹æ¹ýÀº ÀÏ´Ü limsupÀÇ ³ôÀÌ¿Í ±íÀ̸¦ ¹«½ÃÇؼ­ 0À¸·Î ¸¸µì´Ï´Ù. À̶§ »ç¿ëÇÏ´Â ¸í·É¾î°¡ ¹Ù·Î \smashÀÔ´Ï´Ù. ±×¸®°í ³ª¼­ liminf¿¡ ¸ÂÃä´Ï´Ù. ±×·¯±â À§Çؼ­´Â liminfÀÇ ³ôÀÌ¿Í ±íÀ̸¦ ¾Ë¾Æ¾ß Çϴµ¥, À̶§ »ç¿ëÇÏ´Â ¸í·É¾î°¡ ¹Ù·Î \vphantom{\liminf} ¿´½À´Ï´Ù. ±×·¡¼­ ÀÌ µÑÀ» °°ÀÌ »ç¿ëÇϸé, ¾Æ·¡¿Í °°ÀÌ µË´Ï´Ù. {{{#!vim tex \mathop{\smash\limsup\vphantom\liminf} \}}} ±×·¡¼­ ÃÖÁ¾ °á°ú´Â ´ÙÀ½°ú °°½À´Ï´Ù. {{{#!vim tex $$ \lim_{n\to\infty}x_n {\rm\ exists} \iff \mathop{\smash\limsup\vphantom\liminf}_{n\to\infty}x_n = \liminf_{n\to\infty}x_n $$ \}}} µåµð¾î ¼¼¹øÀÇ ½Ãµµ ³¡¿¡ ¿øÇÏ´ø °á°ú¸¦ ¾ò¾ú½À´Ï´Ù. ¼¼ ¹ø¸¸¿¡ ¼º°øÇϸé ÀßÇÑ °Í ¾Æ´Õ´Ï±î? :) $$\lim_{n\to\infty}x_n {\rm\ exists} \iff \mathop{\smash\limsup\vphantom\liminf}_{n\to\infty}x_n = \liminf_{n\to\infty}x_n$$ }}} {{{#!blog ÀÛÀº³ª¹« 2006-03-29T03:14:41 Tail recursion '''219ÂÊ''': ´ÙÀ½°ú °°Àº ¸ÅÅ©·Î Á¤ÀÇ°¡ ÀÖ´Ù°í ÇսôÙ. {{{ \def\foo{¾î¼±¸ Àú¼±¸ ... \bar ... Àú¼±¸ ¾î¼±¸} \}}} Áï ¸ÅÅ©·Î \fooÀÇ replacement text ¾È¿¡ ´Ù¸¥ ¸ÅÅ©·Î \bar°¡ ÀÖ´Â °æ¿ìÀÔ´Ï´Ù. ÀÌ °æ¿ì, ¾Æ¸¶µµ TeXÀº \foo ¸ÅÅ©·Î¸¦ Àü°³ÇÏ´Ù°¡ \bar ¸ÅÅ©·Î¸¦ ¸¸³ª´Â ¼ø°£ \bar ¸ÅÅ©·ÎÀÇ Àü°³¸¦ ¸¶Ä£ ´ÙÀ½, ³²¾Æ ÀÖ´Â \foo ¸ÅÅ©·Î¸¦ °è¼Ó Àü°³Çϱâ À§Çؼ­ \foo ¸ÅÅ©·ÎÀÇ replacement text ³»ÀÇ \bar ¸ÅÅ©·Î ´ÙÀ½ÀÇ ÅäÅ« À§Ä¡¸¦ ±â¾ïÇØ µÎ¾î¾ß ÇÒ °ÍÀÔ´Ï´Ù. ¸¸¾à¿¡ \bar ¸ÅÅ©·Î ¿ª½Ã ±×ÀÇ replacement text ¾È¿¡ ´Ù¸¥ ¸ÅÅ©·Î°¡ ÀÖ´Ù¸é, \foo ¿Í ¸¶Âù°¡Áö·Î ¸Þ¸ð¸®ÀÇ ¾îµò°¡¿¡ °è¼Ó Àü°³ÇÒ ÅäÅ«ÀÇ À§Ä¡¸¦ Àû¾îµÎ¾î¾ß ÇÒ °ÍÀÔ´Ï´Ù. ±×·±µ¥, ¹®Á¦´Â À§ÀÇ ¿¹¿¡¼­ \bar°¡ \fooÀÎ °æ¿ìÀÔ´Ï´Ù. Áï, ¾Æ·¡¿Í °°Àº °æ¿ìÀε¥, {{{ \def\foo{¾î¼±¸ Àú¼±¸ ... \foo ... Àú¼±¸ ¾î¼±¸} \}}} ÀÌ·¯ÇÑ °æ¿ì¸¦ recursion À̶ó°í ÇÕ´Ï´Ù. ¿ì¸®¸»·Î 'Àç±Í'¶ó°í ÇÕ´Ï´Ù. °£´ÜÈ÷ ¸»Çؼ­ ¾î¶² °ÍÀ» Á¤ÀÇÇϴµ¥, ±× Á¤ÀÇ¿¡ ¾î¶² °Í Áï ÀÚ±â ÀÚ½ÅÀÌ ÀÌ¿ëµÈ´Â °ÍÀÔ´Ï´Ù. ¿¹¸¦ µé¾î '''GNU''' ¸ðµÎ ¾Æ½ÃÁÒ? ÀÌ GNUÀÇ Á¤ÀÇ°¡ ''GNU is Not Unix''ÀÇ ¾àÀÚ¶ó°í ÇÕ´Ï´Ù. GNU¸¦ Á¤ÀÇÇϴµ¥ GNU°¡ »ç¿ëµÇ¾ú±â ¶§¹®¿¡ ÀÌ ¿ª½Ã recursion À̶ó°í ÇÒ ¼ö ÀÖ½À´Ï´Ù. (¿ÂÅë Àç±Í·Î ÀÌ·ç¾îÁø, Àç±Í°¡ »ý¸íÀÎ ÄÄÇ»ÅÍ ÇÁ·Î±×·¡¹Ö ¾ð¾î Lisp°ú ±× lispÀ¸·Î ¸ðµç °ÍÀ» ´Ù ÇÒ ¼ö ÀÖ´Â emacs, ±×¸®°í ÀÌ emacs¸¦ ¸¸µç ½ºÅ縸, ½ºÅ縸ÀÌ ±íÀÌ °ü¿©ÇÏ°í ÀÖ´Â GNU. ÀÌ ¸ðµÎ°¡ GNUÀÇ Àç±ÍÀû Á¤ÀǸ¦ °®°Ô µÈ °Í°ú ¹«°üÇÏÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù. :) Á¦ ÃßÃøÀÔ´Ï´Ù.) À§ÀÇ \foo¿Í °°Àº ¸ÅÅ©·Î¸¦ Àü°³ÇÒ¶§ ¸¶´Ù, TeXÀº replacement text ³»ÀÇ \foo ´ÙÀ½ÀÇ ÅäÅ« À§Ä¡¸¦ ±â¾ïÇϱ⠸޸𸮸¦ °è¼Ó »ç¿ëÇÒ °ÍÀÔ´Ï´Ù. ¾Æ¸¶µµ ÄÄÇ»ÅÍ ÇÁ·Î±×·¡¹Ö¿¡¼­ ÀÚÁÖ »ç¿ëµÇ´Â ½ºÅÃÀ̶ó´Â °ÍÀ» ÀÌ¿ëÇÒ °Í°°Àºµ¥, \foo°¡ Àü°³µÉ¶§¸¶´Ù ½ºÅÿ¡´Â \fooÀÇ ´ÙÀ½ ÅäÅ« À§Ä¡¸¦ ±â¾ïÇϱâ À§Çؼ­ ±× ¸Þ¸ð¸® ¹øÁö°¡ ¸¹ÀÌ ½×ÀÏ °ÍÀÔ´Ï´Ù. ½ºÅÃÀÇ Àǹ̸¦ ¸ô¶óµµ ±×Àú ÄÄÇ»ÅÍÀÇ ¸Þ¸ð¸®¸¦ ¸¹ÀÌ »ç¿ëÇÑ´Ù°í ÀÌÇØÇÏ¸é µÉ °ÍÀÔ´Ï´Ù. ÄÄÇ»ÅÍÀÇ ¸Þ¸ð¸® ¶ÇÇÑ ÄÄÇ»ÅÍÀÇ ÀÚ¿øÀÌ°í, ÄÄÇ»ÅÍ°¡ ÀÚ¿øÀ» ¸¹ÀÌ »ç¿ëÇÑ´Ù´Â Àǹ̴ ½Ã°£°ú ÀÚ¿ø Ãø¸é¿¡¼­ ±×¸® È¿À²ÀûÀÌÁö ¸øÇÕ´Ï´Ù. ÇÏÁö¸¸, °°Àº recursive ¸ÅÅ©·Î¶óµµ ´ÙÀ½°ú °°Àº °æ¿ì´Â ¾î¶³±î¿ä? {{{ \def\foo{¾î¼±¸ Àú¼±¸ ... \foo} \}}} À§ÀÇ Àç±Í¿Í ´Ù¸¥ Á¡Àº replacement text³»ÀÇ \foo ´ÙÀ½¿¡ ¾Æ¹«·± ÅäÅ«µµ ¾ø´Ù´Â Á¡ÀÔ´Ï´Ù. ÀÌ·¯ÇÑ Àç±ÍÀÇ ÀåÁ¡Àº TeXÀÌ \foo ´ÙÀ½ÀÇ À§Ä¡¸¦ ±â¾ïÇÒ ÇÊ¿ä°¡ ¾ø´Ù´Â Á¡ÀÔ´Ï´Ù. ¿Ö³ÄÇϸé \fooÀÇ Àü°³¸¦ ¸¶Ä¡°í ±× ´ÙÀ½À» °è¼Ó Àü°³Çϱâ À§Çؼ­ ±× À§Ä¡·Î ¿ÔÁö¸¸, Àü°³ÇÒ °ÍÀÌ ¾ø±â ¶§¹®ÀÔ´Ï´Ù. µû¶ó¼­ ÀÌ°æ¿ì´Â ½ºÅÿ¡ ´ÙÀ½¿¡ Àü°³ÇÒ ÅäÅ«ÀÇ À§Ä¡¸¦ ±â¾ïÇÒ ÇÊ¿äµµ ¾ø½À´Ï´Ù.!!! ÀÌ·¯ÇÑ °æ¿ì ó·³ Àç±Í È£ÃâÀÌ ¸Ç ¸¶Áö¸·¿¡ ÀÖ´Ù°í Çؼ­ "tail recursion" À̶ó°í ÇÕ´Ï´Ù. ¿ì¸®¸»·Î '²¿¸®Àç±Í'¶ó°íµµ ÇÕ´Ï´Ù. ÀÌÁ¦ TeXbook¿¡ ÀÌ tail recursionÀ» ¼³¸íÇϸ鼭 ÇÏ´Â ¸», {{| ..., and the memory does not fill up during a long loop. ... |}} À» ÀÌÇØÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ¶ÇÇÑ TeXbyTopic À̶ó´Â Ã¥ÀÇ 11.8.3 Tail recursion¿¡ ³ª¿ÍÀÖ´Â ´ÙÀ½°ú °°Àº ¸»µµ ½±°Ô ÀÌÇØÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. {{| In general this 'stack build-up' is a necessary evil, but it can be prevented if the nested macro call is the last token in the replacement text of the original macro. After the last token no further tokens need to be considered, so one might as well clear the top item from the input stack before a new one is put there. This is what TeX does. |}} ¾î·Æ°Ô¸¸ º¸ÀÌ´ø TeXbyTopic À̶ó´Â Ã¥ÀÌ ¸¸¸¸ÇØ º¸ÀÔ´Ï´Ù. ½Å³³´Ï´Ù. :) ÀÌÁ¦ ¾ÆÁÖ Àλó±íÀº ¸ÅÅ©·Î '''\loop ... \repeat'''¸¦ ÀÌÇØÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. {{{#!vim tex \def\loop#1\repeat{\def\body{#1}\iterate} \def\iterate{\body\let\next=\iterate\else\let\next=\relax\fi\next} \}}} TeXÀ» °øºÎÇϸ鼭 Àú ¸ÅÅ©·Î¸¦ º¸°í ÀÌÇØÇÏ´Â ¼ø°£Àº ¾ÆÁÖ °¨µ¿ÀûÀ̾ú½À´Ï´Ù. ¼öÇÐÀÚµéÀÌ ÈçÈ÷ ¸»ÇÏ´Â °Í ó·³ "¾Æ¸§´ä½À´Ï´Ù." ¸¶Áö¸·À¸·Î Àú~~~ ¾Æ·¡¿¡¼­ ¾ð±ÞÇÑ KnuthÀÇ ¾î·ÏÀ» ¸¶Áö¸·À¸·Î À̹ø µ¶ÈÄ°¨À» ¸¶Ä¡°Ú½À´Ï´Ù. :) À§ÀÇ ¼³¸í¿¡¼­ ó·³ recursionÀº ¸Å¿ì ¿¤·¹°­½ºÇÏ°í °£´ÜÇÏÁö¸¸ ÄÄÇ»ÅÍ ÀÔÀå¿¡¼­ º¸¸é ±×¸® È¿À²ÀûÀÌÁö ¸øÇÕ´Ï´Ù. ½ºÅÃÀ̶ó´Â ¸Þ¸ð¸®¸¦ »ç¿ëÇؾߵǰí, À§Ä¡¸¦ ÀúÀåÇؾߵǰí... ±×¸®°í ´ë°³ Àç±ÍÀûÀ¸·Î Á¤ÀÇµÈ ¹®Á¦´Â ¹Ýº¹Àû(iterate)À¸·Î ÇØ°áÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇÏÁö¸¸, ÇÁ·Î±×·¡¹ÖÀ» ÇÏ´Ùº¸¸é °¡²û recursionÀ» »ç¿ëÇÕ´Ï´Ù. ±× °£´Ü ¸í·áÇÔ¿¡ ¹ÝÇؼ­ ÀÌÁö¿ä. °°Àº ¸Æ¶ôÀ¸·Î Knuthµµ ¸»ÇßÁö¿ä? {{| "''... aesthetics are more important than efficiency''" |}} ---- ±ÛÀº Àç¹ÌÀÖ°Ô Àоú´Âµ¥ Àλó±íÀº ¸ÅÅ©·Î´Â ÀÌÇØ°¡ ¾ÈµÇ´Â ±º¿ä OTL -- [hermian] [[DateTime(2006-03-29T03:37:09)]] ---- ³ëÇöÁ¤ ¾Æ³ª¿î¼­°¡ ÀÌ·¸°Ô ¸»ÇßÀ» °ÍÀÔ´Ï´Ù. "[hermian]´Ô, °øºÎÇϼ¼¿ä" ;) -- [ÀÛÀº³ª¹«] [[DateTime(2006-03-29T05:13:19)]] ---- µµ¿òÀÌ µÉ±î Çؼ­... 1ºÎÅÍ 100±îÁö ÇÑÁÙ¾¿ Ãâ·ÂÇϱâ: {{{ \let\endgraph\par \count255=0 \loop \advance\count255 by1 \the\count255 \endgraph \ifnum\count255<100 \repeat \}}} -- DohyunKim [[DateTime(2006-03-29T05:48:52)]] ---- Àúµµ ¸î ÁÙ ±â¿©. ÀÌ ±â»çÀÇ ³»¿ë¿¡ ¾Ë¸Â°Ô... ^^ ;; {{{ \let\endgraph\par \newcount\n\newcount\i \def\scatterline#1{\n=#1 \i=0 \putline} \def\putline{% \ifnum\n>0 \else \multiply\n by-1 \fi \advance\i by1 \number\i \endgraph \ifnum\i<\n \let\next=\putline \else\let\next=\relax\fi\next} \scatterline{-100} I have scattered to \number\n line by line. \scatterline{10} \bye \}}} -- [Karnes] [[DateTime(2006-03-29T18:25:20)]] ---- "¿äÁîÀ½ °øºÎÇϼ¼¿ä"°¡ À¯ÇàÀΰ¡ º¸³×¿ä. ȸ»ç¿¡¼­µµ µè°í ¤Ì¤Ì. °æ¹®»çÀÇ "TeX ÀÔ¹®"À» »ò´Âµ¥ º¼¸¸Çϳ׿ä. ¾ðÁ¦ º¸·Á³ª... ¸Ç³¯ ȸ»çÀÏ¿¡ Âɵé·Á »ç´Â Àλý. ¿¡Çì¶ó~ ´ÙÀ½¿¡ KTUG¸ðÀÓÀÖÀ½ [ÀÛÀº³ª¹«]´Ô Çѹø ºË°í½Í³×¿ä ¤¾¤¾ -- [hermian] [[DateTime(2006-03-30T01:03:11)]] }}} {{{#!blog ÀÛÀº³ª¹« 2006-03-28T08:45:22 \count0 '''252ÂÊ''': ¸ÅÅ©·Î °øºÎ¸¦ ÇÏ´Ù°¡ Àç¹Ì»ï¾Æ 1ºÎÅÍ n±îÁö ÇÕÀ» ±¸ÇÏ´Â ¸ÅÅ©·Î¸¦ ÀÛ¼ºÇغ¸±â·Î ÇÏ°í, ´ÙÀ½°ú °°ÀÌ ÄÚµùÇß½À´Ï´Ù. {{{#!vim tex \newcount\n \def\sum#1{\n=#1 \count0=0 \addto} \def\addto{\ifnum\n>0 \advance\count0 by\n \advance\n by-1 \addto \else\number\count0\fi} \sum{10} \bye \}}} ±×·¨´õ´Ï, ¾ÆÁÖ Àç¹ÌÀÖ´Â °á°ú¸¦ ¾ò¾ú½À´Ï´Ù. {{{ This is TeX, Version 3.141592 (MiKTeX 2.4) (sum.tex [55] ) Output written on sum.dvi (1 page, 212 bytes). Transcript written on sum.log. \}}} À§ °á°ú¸¦ º¸¸é ÇÑÆäÀÌÁöÀÇ Ãâ·Â¹°¿¡ ±× ÆäÀÌÁö ¹øÈ£°¡ ±¸ÇÏ°íÀÚ ÇÏ´Â 10±îÁöÀÇ ÇÕÀÎ 55°¡ ³ª¿Ô½À´Ï´Ù. ÇÑ ÂÊÂ¥¸®¶ó¸é ÆäÀÌÁö ¹øÈ£°¡ 1ÀÌ ³ª¿Í¾ß ÇÒÅÙµ¥, 55°¡ ³ª¿Ô½À´Ï´Ù. :) ±×·¡¼­ Ã¥À» µÚÁ®º¸´Ï... {{| ... TeX makes '''\pageno''' an abbreviation for '''\count0''' ... |}} ¤¾¤¾¤¾; \count0 ÇԺηΠ»ç¿ëÇÏÁö ¸¶¼¼¿ä. ÆäÀÌÁö¹øÈ£°¡ ÀÌ»óÇϰԵ˴ϴÙ. ÇÏÁö¸¸ À§ÀÇ °æ¿ì´Â ±¸ÇÏ°íÀÚ ÇÏ´Â °á°ú¸¦ sum.dvi¸¦ º¸Áö ¾Ê°íµµ 55¶ó´Â °ÍÀ» ±Ý¹æ ¾Ë ¼ö ÀÖ¾ú½À´Ï´Ù. :) }}} {{{#!blog ÀÛÀº³ª¹« 2006-03-27T12:50:04 \begin°ú \end '''21ÂÊ''': '''¿¬½À¹®Á¦5.7''' ´ÙÀ½ ¹®ÀåÀº ¿Ã¹Ù¸¥ ¹®ÀåÀÌÁö¸¸, {{{ \beginthe{beguine}\beginthe{waltz}\endthe{waltz}\endthe{beguine} \}}} ´ÙÀ½ ¹®ÀåÀº Ʋ¸° °ÍÀ̶ó°í ÇÒ¶§, {{{ \beginthe{beguine}\beginthe{waltz}\endthe{beguine}\endthe{waltz} \}}} À§¿Í °°Àº ¿ªÇÒÀ» ÇÏ´Â ¸í·É¾î \beginthe¿Í \endthe¸¦ Á¤ÀÇÇ϶ó. {{{#!vim tex \def\beginthe#1{\begingroup\def\blockname{#1}} \def\endthe#1{\def\test{#1}% \ifx\test\blockname\endgroup \else\errmessage{You should have said \string\endthe{\blockname}}\fi} \}}} Âü ¾ÆÀ̵ð¾î°¡ ÁÁ½À´Ï´Ù. ¸ð¸£±ä ¸ô¶óµµ LaTeXÀÇ \begin{...}°ú \end{...}°¡ À§¿Í °°Àº ½ÄÀ¸·Î ±¸ÇöµÇÁö ¾Ê¾ÒÀ»±î¿ä? :) }}} {{{#!blog ÀÛÀº³ª¹« 2006-03-26T06:29:39 ÁÖÀÇ È¯±â '''201ÂÊ''': ¸ÅÅ©·Î ÀÛ¼º½Ã °¡²û ½Ç¼öÇϴµ¥, ´Ù½Ã´Â ±×·± ÀÏ ¾ø±â¸¦ ¹Ù¶ó¸ç Àû¾îº¾´Ï´Ù. :) {{| When you define a macro with simple parameters, as in these examples, you must be careful not to put blank spaces before the '{' that begins the replacement text. For example, '''\def\row #1 #2 {...}''' will not give the same result as '''\def\row#1#2{...}''', because the spaces after #1 and #2 tell TeX to look for arguments that are followed by spaces. (Arguments can be "delimited" in a fairly general way, as explained below.) But the space after \row is optional, as usual, because TeX always disregards spaces after control words. After you have said '''\def\row#1#2{...}''', you are allowed to put spaces between the arguments (e.g., '''\row x n'''), because TeX doesn't use single spaces as undelimited arguments. |}} }}} {{{#!blog ÀÛÀº³ª¹« 2006-03-25T06:14:27 expandafter(2): ½Ã°£Â÷ °ø°Ý '''213ÂÊ''': ¸í·É¾î \expandafter´Â ±²ÀåÈ÷ Àç¹ÌÀÖÀ¸¸é¼­µµ º¸±âº¸´Ù´Â ±×´ÙÁö ¾î·Á¿î ¸í·É¾î°¡ ¾Æ´Ï¾ú½À´Ï´Ù. ¹°·Ð TeXbook¿¡ ³ª¿ÍÀÖ´Â ¿¹Á¦´Â ½±Áö¸¸Àº ¾Ê¾Æ¼­ ÀÌ ¸í·É¾îÀÇ Àǹ̸¦ ¾Ë¾ÆÂ÷¸®±â ±×´ÙÁö ½±Áö¸¸Àº ¾Ê¾Ò´Âµ¥, ´ÙÇàÀÌ ¾ÆÁÖ ½±°í ÀûÀýÇÑ ¿¹Á¦¸¦ ã¾Ò½À´Ï´Ù. ¿¹Á¦ÀÇ Ãâó´Â "Getting TeXnical: Insights into TeX Macro Writing Techniques", TUGboat, Volume 11 (1990), No.3 ÀÔ´Ï´Ù. TeX ¸ÅÅ©·Î ÀÛ¼ºÇÏ´Â ±â±³(?)¸¦ ¼³¸íÇÏ´Â paperÀε¥, ¾à°£ ¾î·Á¿î ¸éÀÌ ÀÖÁö¸¸, ¸Å¿ì Àç¹ÌÀÖ½À´Ï´Ù. °ü½ÉÀÖ´Â ºÐÀº Çѹø Àо±â¸¦ ²À ±ÇÇÕ´Ï´Ù. ÀÌÇظ¦ µ½±âÀ§Çؼ­, ¹è±¸¿¡ ºñÀ¯¸¦ Çؼ­ ¸ÕÀú °³³äÀ» ¼³¸íÇϸé :) ¹è±¸¿¡ "½Ã°£Â÷ °ø°Ý" À̶ó´Â °ø°Ý ±â¼úÀÌ ÀÖÁÒ? ¼¼ÅÍ°¡ ¹è±¸ °øÀ» Å佺¸¦ ÇÏ¸é µÎ ¸íÀÇ °ø°Ý¼ö°¡ ±â´Ù¸®°í ÀÖ´Ù°¡, ù¹ø° °ø°Ý¼ö°¡ ¸¶Ä¡ ½ºÆÄÀÌÅ©¸¦ ÇÒ°Í Ã³·³ ÇÏ´Ù°¡ µÎ¹ø° °ø°Ý¼ö°¡ ½ÇÁ¦·Î ½ºÆÄÀÌÅ© °ø°ÝÀ» ÇÕ´Ï´Ù. \expandafter´Â ¹Ù·Î ÀÌ ¹è±¸ÀÇ "½Ã°£Â÷ Àü°³"¿¡ ÇØ´çÇÕ´Ï´Ù. \expandafter°¡ ¼¼ÅÍ¿¡ ÇØ´çÇÏ°í ±× µÚ¿¡ µû¶ó ³ª¿À´Â µÎ°³ÀÇ ¸í·É¾î(control sequence)°¡ µÎ ¸íÀÇ °ø°Ý¼ö¿¡ ÇØ´çÇÕ´Ï´Ù. \expandafter´Â ù¹ø° ³ª¿À´Â ¸ÅÅ©·Î¸¦ Àü°³½ÃÅ°´Â °ÍÀÌ ¾Æ´Ï¶ó µÎ¹ø° ³ª¿À´Â ¸ÅÅ©·Î¸¦ Àü°³ ½ÃÅ°°í, ±× Àü°³µÈ °á°ú¸¦ ù¹ø° ¸ÅÅ©·Î°¡ ÀÌ¿ëÇÕ´Ï´Ù. ¸Å¿ì Àç¹ÌÀÖ½À´Ï´Ù. ±×·³, ¾à¼Ó´ë·Î °£´ÜÇϸ鼭µµ ÀÌÇØÇϱ⠽¬¿î ¿¹¸¦ µé¾îº¸°Ú½À´Ï´Ù. {{{ \def\letters{xyz} \def\lookatletters#1#2#3{First arg=#1, Second arg=#2, Third arg=#3 } \}}} À§¿Í °°ÀÌ \lookatletter ¸ÅÅ©·Î°¡ Á¤ÀÇ µÇ¾î ÀÖÀ»¶§, {{{ \lookatletters\letters ? ! \}}} ´Â ¾î¶»°Ô Àü°³µÉ±î¿ä? \lookatletters ÀÇ Ã¹¹ø° ÀÎÀÚ°¡ \letterÀÌ°í µÎ¹ø° ÀÎÀÚ´Â ?, ¼¼¹ø° ÀÎÀÚ´Â ! Àε¥, \letter ¸ÅÅ©·Î´Â xyz·Î Àü°³ µÇ±â ¶§¹®¿¡ {{{ First arg=xyz, Second arg=?, Third arg=! \}}} °ú °°ÀÌ Àü°³µË´Ï´Ù. ÀÌ°ÍÀº ´©±¸³ª ¾Ë¼ö ÀÖ½À´Ï´Ù. ÀÌÁ¦ \expandafter¸¦ ÀÌ¿ëÇؼ­ ½Ã°£Â÷ °ø°Ý¿¡ µé¾î°©´Ï´Ù. {{{ \expandafter\lookatletters\letters ? ! \}}} ´Â ¾î¶»°Ô Àü°³µÉ±î¿ä? ¸ÕÀú \expandafter´Â \letters¸¦ ¸ÕÀú Àü°³ ½Ãŵ´Ï´Ù. ±×·¡¼­ À§ÀÇ ¹®ÀåÀº °á±¹ ´ÙÀ½°ú °°ÀÌ µË´Ï´Ù. {{{ \lookatletters xyz ? ! \}}} ±×·¡¼­ ÃÖÁ¾ °á°ú´Â {{{ First arg=x, Second arg=y, Third arg=z ? ! \}}} ÀÔ´Ï´Ù. Àç¹ÌÀÖÁÒ? ±×¸®°í ½±½À´Ï´Ù. }}} {{{#!blog ÀÛÀº³ª¹« 2006-03-23T02:39:43 \expandafter (1) '''213ÂÊ''': TeXbook¿¡ \expandafterÀÇ ¼³¸íÀº ¾Æ·¡ÀÇ ¼³¸íÀÌ ÀüºÎÀÔ´Ï´Ù. ¿¹Á¦µµ ¾ø½À´Ï´Ù. ÀúÀÚ°¡ ³Ê¹«µµ ¹«½ÉÇÏ°í ¹è·Á°¡ ¾ø½À´Ï´Ù. :( * '''\expandafter'''. TeX first reads the token that comes immediately after \expandafter, without expanding it; let's call this token ''t''. Then TEX reads the token that comes after ''t'' (and possibly more tokens, if that token has an argument), replacing it by its expansion. Finally TeX puts ''t'' back in front of that expansion. Àú·¸°Ô¸¸ ¼³¸íÇسõ°í, ¿¹Á¦µµ ¾Èµé¾î ³õ¸é, Àú °°Àº ÛíìÑÀº Àú°É ¹«½¼ ¼ö·Î ÀÌÇØÇմϱî. '¼³¸¶ ¿¹Á¦°¡ ¾øÀ»±î?' ÇÏ´Â Àǽɿ¡ À妽º¸¦ ã¾Æº¸´Ï °÷°÷¿¡ \expandafter°¡ »ç¿ëµÈ ¿¹Á¦°¡ ÀÖ¾ú½À´Ï´Ù. Á¦ÀÏ ¸ÕÀú ³ª¿À´Â ¿¹Á¦´Â 40ÂÊ¿¡ ÀÖ½À´Ï´Ù. ±×°ÍÀ» º» ¼ø°£, "\expandafter °°Àº ¾î·Á¿î(?) ¸í·É¾î°¡ 40ÂÊ¿¡ ³ª¿Í?" Çß½À´Ï´Ù. ¹°·Ð ¼³¸í ¾Õ¿¡´Â µÎ °³ÀÇ dangerous bend°¡ ¾î±è¾øÀÌ ºÙ¾îÀÖ¾ú½À´Ï´Ù. °øÆ÷ÀÇ ±âÈ£°¡ ¾Æ´Ò ¼ö ¾ø½À´Ï´Ù. {{{#!latex \font\manual=manfnt \manual\char127\manual\char127 \}}} ¹Ù·Î ÀÌ Á¡ÀÌ TeXbookÀÇ ¹¦¹ÌÀÎ°Í °°½À´Ï´Ù. ÀúÀڴ åÀ» ½á³ª°¡¸é¼­ ÇÑ ÁÖÁ¦¿¡ ´ëÇؼ­ ÃÖ´ëÇÑ ÀÚ¼¼È÷ ¼³¸íÀ» Çϴµ¥, ³­À̵µ¸¦ µÎ¾î "Áö±ÝÀº ¼³¸íÀ» À§Çؼ­ ´Ù¸¥ chapter¿¡¼­ ¹è¿ì°Ô µÉ ¾î·Á¿î °ÍÀ» ¾î¿ ¼ö ¾øÀÌ »ç¿ëÇϴµ¥, Áö±ÝÀº ºÁºÁ¾ß ¸ð¸¦ °ÍÀÌ´Ù. ³ªÁß¿¡ ³× ½Ç·ÂÀÌ µÇ°Çµç ´Ù½Ã ºÁ¶ó. ±×·³ ³» ¸»À» ÀÌÇØ ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù." ¶ó°í ¸»ÇÏ´Â °Í °°¾Ò½À´Ï´Ù. ´©°¡ ±×·¨´ø°¡¿ä? "¾Æ´Â ¸¸Å­¸¸ º¸ÀδÙ"°í. Ã¥ÀÇ Ãʹݺζó°í ÇÒ ¼ö ÀÖ´Â 40ÂÊ¿¡ ³ª¿Â ³»¿ëÀ» Ãʺ¸ÀÚ°¡ ÀÐÀ»¶§¿Í TeXnicianÀÌ ÀÐÀ»¶§¿Í´Â ´Ù¸£°ÚÁÒ. ¿ÀÈ÷·Á ÀúÀڴ ģÀýÇÏ°Ôµµ ³­À̵µ¸¦ µÎ¾î Ãʺ¸ÀÚ°¡ ±¦È÷ Àо ÁÂÀýÇϰųª È¥¶õ¿¡ ºüÁö´Â °ÍÀ» »çÀü¿¡ ¿¹¹æÇÏ´Â °Í °°½À´Ï´Ù. :) Ã¥ ±¸¼ºÀÌ º¼ ¼ö·Ï ¸¶À½¿¡ µì´Ï´Ù. ÇÑ ¹ø ÀÐ°í ¸» Ã¥Àº ºÐ¸íÈ÷ ¾Æ´Õ´Ï´Ù. À̾߱Ⱑ ´Ù¸¥ °÷À¸·Î ºüÁ³½À´Ï´Ù. ºüÁø ±è¿¡ ¿À´ÃÀº ¿©±â±îÁö. :) ¸¶À½À» °¡´Ùµë°í ´ÙÀ½¿¡ °°ÀÌ \expandafter¸¦ ÀÌÇØÇØ º¸µµ·Ï ÇսôÙ. TeXbook ÀÌ°÷ Àú°÷¿¡ ³ª¿ÍÀÖ´Â \expandafter ¿¹Á¦¸¦ Àß °øºÎÇÑ ´ÙÀ½¿¡ ºË°Ú½À´Ï´Ù. ;) }}} {{{#!blog ÀÛÀº³ª¹« 2006-03-22T07:29:04 ¸ÅÁ÷ ¸ð¸£Å¸¸£ [Glue] '''69~70ÂÊ''': [Glue]´Â ¿©·¯ boxµé ¼­·Î ºÙÀ̴µ¥ »ç¿ëÇÕ´Ï´Ù. ÇϳªÀÇ ÁÙ(line)¿¡ º¸¸é ´Ü¾îµé »çÀÌ¿¡ °£°ÝÀÌ ÀÖ½À´Ï´Ù. ÀÌ °£°ÝÀÌ ¹Ù·Î [Glue]ÀÔ´Ï´Ù. ÀÌ [Glue]´Â ½Å±âÇÏ°Ôµµ ÁÙ¾îµé°Å³ª ´Ã¾î³¯ ¼ö À־ ´Ü¾îµé »çÀÌÀÇ °£°Ý Áï [Glue]¸¦ Àß Á¶ÀýÇÏ¿© ÆäÀÌÁöÀÇ ¿À¸¥ÂÊ ¿©¹éÀÌ ÀÏÁ÷¼±À¸·Î º¸À̵µ·Ï ÇØÁÖÁÒ. TeXÀº ÀÛÀº ¿©·¯ °³ÀÇ ¹Ú½ºµé·Î ºÎÅÍ °¡·Î·ÎµÈ ÇÑÁÙÀÇ Ä¿´Ù¶õ ¹Ú½º¸¦ ¸¸µé ¶§, ±× ÀÛÀº ¹Ú½ºµé »çÀÌ¿¡ [Glue]¸¦ ³Ö¾î¼­ ÀûÀýÇÑ °£°ÝÀ» À¯ÁöÇϵµ·Ï ÇØÁÝ´Ï´Ù. ¹Ù·Î ÀÌ ¹æ¹ýÀÌ ¿©·¯ °³ÀÇ ´Ü¾î¸¦ °¡Áö°í ÇÑ ÁÙÀ» ¸¸µå´Â ¹æ¹ýÀÔ´Ï´Ù. [Glue]´Â ¼¼°¡Áö ¼Ó¼ºÀ» °¡Áö°í ÀÖ½À´Ï´Ù: ÁÖ¾îÁø °íÀ¯ÀÇ °£°Ý(natural space), ÆØâÁ¤µµ(stretchability), ¼öÃàÁ¤µµ(shrinkability) attachment:glue1.jpg À§ ±×¸²¿¡´Â ³× °³ÀÇ ¹Ú½º¿Í ¼¼ °³ÀÇ [Glue]°¡ ¾²¿´³×¿ä. ù¹ø° [Glue]´Â 9¸¸Å­ÀÇ °íÀ¯ °£°ÝÀ» °¡Áö°í ÀÖ°í, 3¸¸Å­ÀÇ ÆØ⼺, 1¸¸Å­ÀÇ ¼öÃ༺À» °¡Áö°í ÀÖ½À´Ï´Ù. µÎ¹ø°´Â 9¸¸Å­ÀÇ °£°Ý, 6¸¸Å­ÀÇ ÆØ⼺, 2¸¸Å­ÀÇ ¼öÃ༺À», ¸¶Áö¸· [Glue]´Â 12¸¸Å­ÀÇ °íÀ¯°£°ÝÀ» °¡Áö°í ÀÖ°í, ¼öÃ༺, ÆØ⼺Àº ¾ø½À´Ï´Ù. ÀÌ ¿¹¿¡¼­ ¹Ú½ºÀÇ ³Êºñ¿Í [Glue]ÀÇ ÃÑÇÕÀº 5+9+6+9+3+12+8=52ÀÔ´Ï´Ù. ÀÌ 52¸¦ °¡·Î·Î ±ä ¹Ú½ºÀÇ °íÀ¯ÀÇ ³Êºñ¶ó°í ÇÏ°í, À§¿Í °°Àº ¹Ú½ºµé°ú [Glue]µé·Î ¸¸µé ¼ö ÀÖ´Â °¡Àå º¸±â ÁÁÀº Á¶ÇÕÀÔ´Ï´Ù. °¡Àå º¸±â ÁÁ´Ù°í ÇÏ´Ï±î ¹¹ »ý°¢³ª´Â°Í ¾øÀ¸¼¼¿ä? ±×·¸ÁÒ. ¹Ù·Î badness°¡ 0À̶ó´Â ¼Ò¸®ÀÔ´Ï´Ù. :) ±×·±µ¥, À§ÀÇ ³× °³ÀÇ ¹Ú½º¿Í ¼¼ °³ÀÇ [Glue]·Î 58¸¸Å­ÀÇ ³ÊºñÀÇ ±ä ¹Ú½º¸¦ ¸¸µé·Á¸é ¾î¶»°Ô ÇØ¾ß ÇÒ±î¿ä? ÀÏ´Ü ÁÖ¹®Àº °íÀ¯ÀÇ ³Êºñº¸´Ù 6¸¸Å­ ±é´Ï´Ù. ¹Ú½º´Â ´Ã¾î³¯ ¼ö ÀÖ´Â °ÍÀÌ ¾Æ´Ï±â ¶§¹®¿¡ [Glue]¸¦ ´Ã¿©¾ß Çϴµ¥, ´ÙÇàÈ÷ ÁÖ¾îÁø [Glue]µéÀº ÆØ⼺ÀÌ Àֱ⶧¹®¿¡ [Glue]µéÀ» 6¸¸Å­ ´Ã¿©¼­ 58À» ¸ÂÃß¸é µË´Ï´Ù. ±×·³ ¾î¶² [Glue]¸¦ ¾ó¸¸Å­ ´ÃÀÌ¸é µÉ±î¿ä? ½±ÁÒ? ù¹ø° [Glue]´Â 3¸¸Å­, µÎ¹ø°´Â 6¸¸Å­, ´Ã¾î³¯ ¼ö ÀÖ°í, ¼¼¹ø°´Â ´Ã¾î³¯ ¼ö ¾øÀ¸´Ï±î ±× ºñÀ²ÀÌ 3:6:0 Áï 1:2:0À̳׿ä. µû¶ó¼­ 6À» 1:2:0À¸·Î ³ª´©¸é 2:4:0ÀÌ µÇ¹Ç·Î ù¹ø° [Glue]¸¦ 2¸¸Å­, µÎ¹ø° [Glue]¸¦ 4¸¸Å­ ´ÃÀÌ¸é ¾Æ·¡ ±×¸²Ã³·³ µË´Ï´Ù. attachment:glue2.jpg ³Êºñ°¡ 58ÀÌ µÇ¾úÀ»¶§ÀÇ badness´Â ¾ó¸¶Àϱî¿ä? Áö³­¹ø¿¡ badness¸¦ ¼³¸íÇÒ ¶§, ¾î¶² ÁÙÀÇ badness ±¸ÇÏ´Â ½ÄÀÌ min(100r^3,10000) À̶ó°í ÇÏ°í rÀº ¾î¶² ºñÀ²À̶ó°í¸¸ ÇÏ°í ÀÚ¼¼ÇÑ ¼³¸íÀº ÇÏÁö ¾Ê¾Ò´Âµ¥, Áö±ÝÀÌ ÁÁÀº ±âȸÀÎ°Í °°½À´Ï´Ù. rÀ» 'glue set ratio'¶ó°í ºÎ¸£¸ç, ¼öÃà(ÆØâ)¼ºÀÇ ÃÑÇÕºÐÀÇ ½ÇÁ¦ ¼öÃà(ÆØâ)[Glue]±æÀÌ À̹ǷΠbadness´Â 30(100x(6/9)^3=29.7) ÀÔ´Ï´Ù. }}} {{{#!blog ÀÛÀº³ª¹« 2006-03-22T00:39:10 \edef, \xdef, \noexpand '''215~216ÂÊ''': \xdef¸¦ ¸ÕÀú ½ÃÀÛÇÕ´Ï´Ù. ¿ØÁö À̸§¿¡¼­ °­·ÄÇÔÀ» ´À³¥ ¼ö ÀÖÁö ¾Ê³ª¿ä? xdef??? \xdef´Â \global\edef¿Í µ¿ÀÏÇÕ´Ï´Ù. \global\def¸¦ \gdef·Î ÇÏ´Â °ÍÀ» º¸¸é \xdefº¸´Ù´Â \gedef°¡ µÇ¾î¾ß ÇÒ°Í °°Àºµ¥, \xdef¶ó°í Çϳ׿ä. ¾Æ¸¶µµ expandedÀÇ x¿¡¼­ µû¿Ô³ªº¾´Ï´Ù. ¾î·µç, \globalÀÇ ¶æÀº ¾Ë°í ÀÖÀ¸´Ï, \edef¸¸ ¾Ë¸é \xdefµµ ÀÚµ¿ ÇØ°áµË´Ï´Ù. ±Û½ê¿ä... ÇÑ ¹øµµ ±×·± °æ¿ì¸¦ °æÇèÇØ º¸Áö ¸øÇؼ­ ±×·±µ¥, ÀúÀÚ°¡ ¸»Çϱ⸦ ¸ÅÅ©·Î¸¦ Á¤ÀÇÇÏ´Ùº¸¸é, \def°¡ ±×·¸µíÀÌ ´Ü¼øÈ÷ replacement text¸¦ ±ÛÀÚ ±×´ë·Î Ä«ÇÇÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó, ÇöÀç »óȲ¿¡ ¸ÂÃß¾î replacement text¿¡ µé¾îÀÖ´Â ¸ÅÅ©·Î¸¦ ±×´ë·Î ´Ù Àü°³½ÃÄÑ¾ß ÇÏ´Â °æ¿ì°¡ ÀÖ´Ù°í ÇÕ´Ï´Ù. (µµ´ëü ¾ðÁ¦?) ÀÌ·± °æ¿ì¿¡ »ç¿ëµÇ´Â ¸í·É¾î°¡ \edef, À̸§ÇÏ¾ß expanded definition ÀÔ´Ï´Ù. Çü½ÄÀº \def¿Í ¶È°°°í, Áï \def{replacement text} ¿Í °°Àº Çü½ÄÀÌÁö¸¸, ¾Õ¼­ ¸»ÇßµíÀÌ TeXÀº ¹«ÀÛÁ¤ replacement text¿¡ ÀÖ´Â ¸ðµç Àü°³ÇÒ ¼ö ÀÖ´Â ÅäÅ«µéÀ» Àü°³ÇÕ´Ï´Ù. ¿¹¸¦µé¸é ¾Æ·¡¿Í °°Àºµ¥, {{{#!vim tex \def\double#1{#1#1} \edef\a{\double{xy}} \edef\a{\double\a} \}}} ù¹ø° \edef´Â '\def\a{xyxy}'¿Í µ¿ÀÏÇÏ°í, µÎ¹ø°´Â '\def\a{xyxyxyxy}'¿Í µ¿ÀÏÇÕ´Ï´Ù. ÀÌ ¿Ü¿¡ ´Ù¸¥ ¸ðµç Á¾·ùÀÇ Àü°³µµ ¸¶Âù°¡Áö Àε¥, Á¶°Ç¹®ÀÌ »ç¿ëµÈ °ÍÀ» ¿¹·Îµé¸é, {{{#!vim tex \edef\b#1#2{\ifmmode#1\else#2\fi} \}}} TeXÀÌ À§ÀÇ \edef¿Í ¸¸³ª´Â ¼ø°£ ¼öÇÐ ¸ðµå¿¡ ÀÖ´Ù¸é, À§´Â '\def\b#1#2{#1}'°ú µ¿ÀÏÇÏ°í, ¾Æ´Ï¸é, '\def\b#1#2{#2}'°ú µ¿ÀÏÇÕ´Ï´Ù. ¾ðÁ¦ \edef¸¦ »ç¿ëÇÒÁö ¸ð¸£°ÚÀ¸³ª, ÀÏ´Ü ÀÌÇØ´Â µË´Ï´Ù. \edef³ª \xdef´Â replacement text¿¡ ´õÀÌ»ó Àü°³ÇÒ ÅäÅ«ÀÌ ³²¾ÆÀÖÁö ¾ÊÀ»¶§ ±îÁö ÁÙ±âÂ÷°Ô Àü°³¸¦ Çسª°¡´Âµ¥, ÀÌ¿¡ ¿¹¿Ü°¡ ÀÖÁÒ. ´Ã ÀÌ ³ðÀÇ ¿¹¿Ü°¡ ¹®Á¦ÀÔ´Ï´Ù. ¹®Á¦´Â ÀÌ·¸½À´Ï´Ù. Âü º°³­ »ç¶÷ÀÌ À־ ȤÀº º°³­ »óȲÀÌ µÇ¾î¼­ \edef¸¦ ÀÌ¿ëÇϸ鼭µµ replacement text¾È¿¡ ÀÖ´Â ¾î¶² ¸ÅÅ©·Î´Â Àü°³½ÃÅ°°í ½ÍÁö ¾Ê´Ù´Â °ÍÀÔ´Ï´Ù. À̶§ »ç¿ëÇÏ´Â °ÍÀÌ \noexpand ÀÔ´Ï´Ù. À̸§ ±×´ë·Î ÀÔ´Ï´Ù. ´ÙÀ½°ú °°Àº »óȲÀ» ¿¹¸¦ µé¾î º¾½Ã´Ù. ¸ÅÅ©·Î \a¸¦ Á¤ÀÇÇϴµ¥, \a´Â Àü°³µÈ \b, Àü°³µÇÁö ¾Ê´Â \c, Àü°³µÈ \d¶ó°í ÇÏ°í, \b¿Í \d´Â ÆĶó¹ÌÅÍ°¡ ¾ø´Â ´Ü¼øÇÑ ¸ÅÅ©·Î ¶ó°í ÇսôÙ. ±×·¯¸é \a´Â ¾Æ·¡¿Í °°Àº µÎ°¡Áö ¹æ¹ýÀ¸·Î Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù. {{{#!vim tex \edef\a{\b\noexpand\c\d} \toks0={\c} \edef\a{\b\the\toks0 \d} \}}} µÎ¹ø°´Â \the¿¡ ÀÇÇؼ­ ¸¸µé¾îÁö´Â ÅäÅ« ¿ª½Ã \edef ¾È¿¡¼­¶óµµ ´õÀÌ»ó Àü°³µÇÁö ¾Ê´Â´Ù°í ÇÕ´Ï´Ù. }}} {{{#!blog ÀÛÀº³ª¹« 2006-03-21T01:06:26 \let '''206~207ÂÊ''': TeX¿¡¼­ Æí¸®Çϸ鼭µµ Áß¿äÇÑ ¸í·É¾î ÁßÀÇ Çϳª°¡ ¹Ù·Î \letÀÔ´Ï´Ù. ÀÌ´Â plain.texÀ̳ª lplain.tex¿¡¼­ ½¢ÇÏ°Ô ¾²ÀÔ´Ï´Ù. \letÀº ´ÙÀ½°ú °°Àº Çü½ÄÀ» ÃëÇϴµ¥, \let\cs= ÀÌ´Â \cs¿¡ ÀÌ ÇöÀç °¡Áö°í ÀÖ´Â Àǹ̸¦ ºÎ¿©ÇÑ´Ù´Â ¶æÀÔ´Ï´Ù. Àç¹ÌÀÖ´Â Á¡Àº ÀÌ ´Ù¸¥ ¸í·É¾î(control sequence)ÅäÅ« À϶§ Àε¥, ÀÌ ¶§µµ ¸¶Âù°¡Áö·Î ±× ¸í·É¾î°¡ °¡Áö°í ÀÖ´Â ±â´É ±×´ë·Î¸¦ \cs¿¡°Ô ¹°·ÁÁÝ´Ï´Ù. ¿¹¸¦µé¾î, '\let\a=\def'¶ó°í ÇÏ°í, '\a\b...{...}'¶ó°í Çϸé, \a°¡ \defÀÇ ÀÇ¹Ì¿Í ±â´ÉÀ» ¹°·Á¹Þ¾Æ¼­, ¸ÅÅ©·Î \b¸¦ Á¤ÀÇÇÏ´Â °ÍÀÌ µË´Ï´Ù. ¶Ç, ¾Æ·¡ÀÇ Àǹ̴ \let\a=\b \let\b=\c \let\c=\a ¸í·É¾î \b¿Í \cÀÇ Àǹ̸¦ ¹Ù²Ù´Â °ÍÀÌ µË´Ï´Ù. ±×¸®°í, ´ÙÀ½°ú °°Àº ¹®ÀåÀº \outer\def\a#1.{#1:} \let\b=\a '\outer\def\b#1.{#1:} \let\a=\b'¿Í ¿ÏÀü µ¿ÀÏÇÕ´Ï´Ù. \let¿¡ »ç¿ëµÈ ÀÌ ´ÜÀÏ ¹®ÀÚ(single character)ÀÌ°í, ±× ¹®ÀÚ°¡ character code¿Í category codeÀÇ ½ÖÀ̶ó¸é, ¾î´À Á¤µµ±îÁö´Â ±× ¹®ÀÚ¿Í °°Àº ¿ªÇÒÀ» ÇÏÁö¸¸, ¾à°£ Â÷ÀÌÁ¡ÀÌ Àִٳ׿ä. ¿¹¸¦µé¾î, '\let\zero=0'¶ó¸é, \zero´Â ¼ýÀÚ 0ÀÇ Àǹ̸¦ °®Áö¸¸, 0ÀÌ ±×·¸µíÀÌ, \zero´Â ¼ýÀÚ »ó¼ö ¾È¿¡¼­´Â »ç¿ëµÉ ¼ö ¾ø½À´Ï´Ù. ¿Ö³ÄÇϸé, TeXÀº ¼ýÀÚ »ó¼ö¿¡ ¸ÅÅ©·Î°¡ ¾²¿´À» °æ¿ì, ±× ¸ÅÅ©·Î¸¦ Àü°³ÇÏ°í ³ª¸é ¸ÅÅ©·ÎµéÀÌ ¸ðµÎ ¼ýÀÚµé·Î ¹Ù²î¾î¾ß Çϴµ¥, \zero´Â ¸ÅÅ©·Î°¡ ¾Æ´Ï±â ¶§¹®¿¡ Àü°³°¡ µÇÁö¾ÊÀ¸¹Ç·Î, ¼ýÀÚ »ó¼ö¾È¿¡¼­´Â »ç¿ëµÉ ¼ö ¾ø´Ù°í ÇÕ´Ï´Ù. ¹«½¼ ¶æÀÎÁö ¾Ëµí ¸»µí ÇÏÁö¸¸, ÀúÀÚÀÇ ¸»´ë·Î¶ó¸é, ³ªÁß¿¡ ´Ù½Ã »ìÆ캼 ±âȸ°¡ Àִٳ׿ä. ¹Ï¾î¾ßÁÒ. Ã¥¿¡ ³ª¿À´Â ¹®Á¦ Çϳª¸¸ Ç®¾îº¾½Ã´Ù. * '''Q''': '\let\a=\b'¿Í '\def\a{\b}' µÑ »çÀÌÀÇ Â÷ÀÌÁ¡ÀÌ ÀÖ±â´Â Àִ°ǰ¡¿ä? ÀÖ´Ù¸é ¾î¶² Â÷ÀÌÁ¡ÀÌ ÀÖ³ª¿ä? * '''A''': Â÷ÀÌ°¡ À־ ¾ÆÁÖ ¸¹´Ù³×¿ä.(Yes indeed.) ù¹ø°ÀÇ °æ¿ìÀÇ \a´Â \letÀÌ ½ÇÇàµÇ´Â ½ÃÁ¡ÀÇ \bÀÇ Àǹ̸¦ ¹Þ°í, µÎ¹ø°ÀÇ °æ¿ìÀÇ \a´Â ¸ÅÅ©·Î À̹ǷΠ\a°¡ »ç¿ëµÉ ¶§¸¶´Ù Àü°³µÇ¾î \b·Î ¹Ù²ò´Ï´Ù. ±×·¡¼­ ±× ¶§ÀÇ \a´Â \a°¡ Àü°³µÇ´Â ½ÃÁ¡ÀÇ \bÀÇ Àǹ̸¦ °®½À´Ï´Ù. ---- Á¦°¡ º» ¿¹ Áß¿¡ Á¦ÀÏ ½¬¿ü´ø °ÍÀ» Çϳª ¿¹·Î µé¾îµÎ°Ú½À´Ï´Ù. ¼º½ÇÇÑ µ¶Àڷμ­ ^^ {{{ \let\endpara\par \def\newerpara{\par} \def\par{\endpara\vskip2pt\hrule\vskip2pt} \let\anotherpara\par There are a variety of ways to create commands. The one descriptoin given so far is to use def. \par There are a variety of ways to create commands. The one descriptoin given so far is to use def. \endpara There are a variety of ways to create commands. \let\par\endpara The one descriptoin given so far is to use def. \anotherpara There are a variety of ways to create commands. The one descriptoin given so far is to use def. \newerpara There are a variety of ways to create commands. The one descriptoin given so far is to use def. \bye \}}} -- [Karnes] [[DateTime(2006-03-23T00:24:55)]] ---- °¨»çÇÕ´Ï´Ù. ¸Ó¸®¿¡ ½ï½ïµé¾î¿É´Ï´Ù. ¾ÆÇÏ! Á¦°¡ ¾²°í ÀÖ´Â ±Û¿¡ ºÐ¸íÈ÷ Ʋ¸° ºÎºÐÀÌ ¸¹À» °ÍÀÔ´Ï´Ù. Ʋ¸° °÷Àº ¹Ù·Î Àâ¾Æ Áֽðí, Á¦ ¼³¸íÀÌ ºÎÁ·Çϴٰųª ¸ðÈ£ÇÏ´Ù ½ÍÀ¸½Ã¸é, À̹ø ó·³ °¡¸£Ä§À» Áֽñ⸦ ºÎŹµå¸³´Ï´Ù. "I hope to pick your brain about TeX." :) -- Anonymous [[DateTime(2006-03-23T02:58:19)]] }}} {{{#!blog ÀÛÀº³ª¹« 2006-03-20T07:56:22 \long, \outer, \global, \gdef Àú´Â TeX µðÀÚÀ̳ʳª TeXnicianÀÌ µÇ°íÀÚ ÇÏ´Â ¸¶À½Àº ´«²Å ¸¸Å­µµ ¾øÁö¸¸, °¡²û plain.tex, lplain.tex°ú °°Àº ºÁ¼­´Â ¾È µÉ ÆÄÀϵéÀ» ¿­¾îº¾´Ï´Ù. »ç½Ç Àú °°Àº TeX Ãʺ¸ÀÚµéÀº ±× °°Àº ÆÄÀϵéÀº ¿­¾î º¼ ÇÊ¿äµµ ¾ø°í, ¿­ ÀÌÀ¯µµ ¾øÁö¸¸, ±×Àú È£±â½É¿¡ ¿­¾îº¾´Ï´Ù. ÇÏÁö¸¸, °£´ÜÇÑ ¸í·É¾î(control sequence) Çϳª·Î ¿©·¯ ´Ù¾çÇÑ ±â´ÉÀ» ÇÏ´Â °ÍÀ» º¸¸é, ±× ¿ø¸®°¡ ±Ã±ÝÇØÁö´Â °Íµµ »ç½ÇÀÔ´Ï´Ù. ±×·¡¼­ ÇÑ ¹ø Àоî´Â º¸´Âµ¥... ¾î·Æ½À´Ï´Ù. ƯÈ÷, ¸ÅÅ©·Î Á¤ÀÇ ÇÒ¶§ ¾²ÀÌ´Â \def ¾Õ¿¡´Â ¹¹°¡ ±×¸®µµ ¸¹ÀÌ ºÙ´ÂÁö..., ¿¹¸¦µé¸é, \long, \global, \outer ´õ±¸³ª ¸ÅÅ©·Î Á¤ÀÇÇÒ¶§µµ \def ¿Ü¿¡ ¹¹°¡ ±×¸®µµ ¸¹ÀºÁö, \edef, \gdef, \xdef, \chardef, \csname, \let, ... ÀÌ ¿Ü¿¡µµ \expandafter, \noexpand ... ÂÁ. ±×·¡¼­ Çϳª¾¿ ¾Ë¾Æº¸±â·Î ±»°Ô ¸¾¸Ô¾ú½À´Ï´Ù. \def´Â ´ëÃæ ¾Æ´Ï±î... '''205~206ÂÊ''': \def¸¦ ÀÌ¿ëÇؼ­ ¸ÅÅ©·Î Á¤ÀǸ¦ ÇÒ¶§, ½Ç¼ö·Î °ýÈ£ '{'³ª '}'¸¦ »©¸Ô°Å³ª ´õÇؼ­, ¿©´Ý´Â °ýÈ£°¡ ¸ÅÄ¡°¡ ¾ÈµÉ °æ¿ì°¡ ÀÖ½À´Ï´Ù. ÀÌ °æ¿ì ±×·¯ÇÑ \def·Î Á¤ÀÇµÈ ¸í·É¾î¸¦ Àü°³ÇÒ ¶§, TeXÀÌ ÃæÁ÷Çؼ­ ¾ðÁ¦ ÀÌ ³ðÀÇ Á¤ÀÇ°¡ ¾îµð¼­ ³¡³ª´ÂÁö ¸ô¶ó¼­ °è¼Ó ó¸®ÇÑ´Ù¸é, ¾Æ¸¶µµ TeXÀº ÀÔ·Æ ÆÄÀÏÀÇ ³¡À» º¸°Å³ª ¾Æ´Ï¸é, ±× Àü¿¡ TeXÀÌ °è¼Ó ÀԷµǴ ÅäÅ«À» ¹Þ¾Æµé¿© ¸Þ¸ð¸®°¡ ºÎÁ·Çؼ­ ÄÄÇ»ÅÍ°¡ ¸ÔÅëÀÌ µÉÁöµµ ¸ð¸¨´Ï´Ù. :( ´Ü¼øÇÑ Å¸ÀÌÇÎ ¿¡·¯·Î ±×·¯ÇÑ »çűîÁö °¡¸é ¾ÈµÇÁÒ. ´ÜÁö '{'³ª '}' Çϳª »©¸ÔÀ» »ÓÀä. ´ÙÇàÈ÷ TeXÀº ±×´ÙÁö ÃæÁ÷ÇÑ ÆíÀÌ ¸øµÇ°í ¿©¿ì°°Àº ¸éÀÌ À־, ÀÌ·± °æ¿ì¿¡ ´ëºñÇؼ­ ³ª¸§´ë·ÎÀÇ ±ÔÄ¢À» °¡Áö°í ÀÖ½À´Ï´Ù. ±× ±ÔÄ¢Àº \defÀÇ argument¿¡´Â \par ÅäÅ«À» »ç¿ëÇÒ ¼ö ¾ø´Ù´Â °ÍÀÔ´Ï´Ù. ¸í½ÃÀûÀ¸·Î ¿©·¯ºÐÀÌ "³ª \par¸¦ arguement¿¡¼­µµ »ç¿ëÇÏ°ÚÀ¸´Ï, ±º¼Ò¸® ¸»°í Ç϶ó´Â´ë·Î Ç϶ó"¶ó°í ¸»ÇÏÁö ¾Ê´Â ÀÌ»ó ¸»ÀÔ´Ï´Ù. ±×·¡¼­ TeXÀº ¸ÅÅ©·Î¸¦ Àü°³ÇØ ³ª°¡´Ù°¡ \par¸¦ ¸¸³ª¸é, "runaway argument"¶ó°í ¸»ÇÏ°í, ÇÏ´ø ÀÏÀ» ±×¸¸µÓ´Ï´Ù. ¶È¶ÈÇÕ´Ï´Ù. :) ÇÏÁö¸¸, ¸ÅÅ©·Î¸¦ ¸¸µé´Ùº¸¸é, argement¿¡ \par ÅäÅ«À» »ç¿ëÇÒ ÀÏÀÌ ÀÖ´ä´Ï´Ù. ±× °æ¿ì ¾î¼³ª¿ä? ±×¶§ »ç¿ëÇÏ´Â °ÍÀÌ ¹Ù·Î \def¾Õ¿¡ ºÙ¿©ÁÖ´Â \longÀÔ´Ï´Ù. ¸¶Ä¡ TeXÇÑÅ× "³×°¡ ¾ÕÀ¸·Î Àü°³ÇÒ ¸í·É¾îÀÇ argument°¡ ±æ ¼öµµ ÀÖÀ¸´Ï±î, °ÔÀÇÄ¡ ¸»°í, ±×³ÉÇ϶ó"¶ó´Â ¶æÀÎ°Í °°½À´Ï´Ù. (ÀÌ°ÍÀ¸·Î Çϳª ÇØÄ¡¿ü½À´Ï´Ù. À§¿¡¼­ ¾ð±ÞÇÑ Á¤º¹ÇØ¾ß ÇÒ control sequence ¸ñ·Ï¿¡¼­ µÎ ÁÙ·Î ÂïÂï±×¾î \longÀº Áö¿ì¼¼¿ä. :) ) À§¿¡¼­ ¼³¸íÇÑ '\par-±ÝÁö ¹ýÄ¢' ¸¸À¸·Î´Â Á» ¸ðÀÚ¶õ °¨ÀÌ ÀÖ½À´Ï´Ù. ¿À·ÎÁö °è¼Ó Àü°³ÇØ ³ª°¡´Ù°¡ \parÀÌ ³ª¿Í¾ß¸¸ ¸ØÃß´Ï±î ¸»ÀÔ´Ï´Ù. ´õ »¡¸® TeXÀ¸·Î ÇÏ¿©±Ý "³Ê°¡ À߸øµÈ ¸í·É¾î¸¦ Àü°³ÇÏ°í ÀÖ´Ù"¶ó°í ¾Ë·ÁÁÖ¾î¾ß ÇÒ¶§°¡ ÀÖ½À´Ï´Ù. ÁÖ·Î TeXÀÌ ÇÏÀÌ ½ºÇǵå·Î ÅäÅ«µéÀ» ó¸®ÇØ¾ß ÇÏ´Â °æ¿ì°¡ ±× ¶§ÀÔ´Ï´Ù. ÀÌ °æ¿ì¿¡ TeXÀº \par°¡ ³ª¿Ã¶§ ±îÁöµµ ¸ø±â´Ù¸³´Ï´Ù. µû¶ó¼­ À߸øµÈ ¸í·É¾î´Â ¾Æ´ÏÁö¸¸, ºü¸¥ ½ºÇǵ带 ¿äÇÏ´Â °÷¿¡¼­´Â ÀÌ ¸í·É¾î¸¦ »ç¿ëÇÏÁö ¸»¶ó´Â Àǹ̷Π\long ó·³ \def ¾Õ¿¡ ºÙÀÌ´Â °ÍÀ¸·Î '\outer'°¡ ÀÖ½À´Ï´Ù. Áï ƯÁ¤ÇÑ »óȲ¿¡¼­ TeXÀÌ \outer°¡ ¾Õ¿¡ ºÙÀº ¸í·É¾î¸¦ Àü°³ÇÏ·Á ÇÑ´Ù¸é, TeXÀº Àü°³ÇØ º¸Áöµµ ¾Ê°í, ÇÏ´ø ÀÏÀ» ¸ØÃß°í ºÒÆòÀ» ÇØ´ð´Ï´Ù. ±×·¸´Ù¸é, TeXÀÌ ¸Å¿ì ºü¸£°Ô ó¸®ÇؾßÇÏ´Â °æ¿ì, Áï \outer°¡ ºÙÀº ¸í·É¾î°¡ ¾²ÀÌ¸é ¾ÈµÇ´Â °æ¿ì°¡ ¾î¶² °æ¿ì Àϱî¿ä? * argument ¾È¿¡¼­ * ¾î¶² ¸ÅÅ©·Î Á¤ÀÇÀÇ parameter text ¶Ç´Â replacement text ¾È¿¡¼­ * Ç¥³ª ¹è¿­ÇÒ¶§ »ç¿ëÇÏ´Â alignmentÀÇ preamble ¾È¿¡¼­ * Á¶°Ç¿¡ ÀÇÇؼ­ ½ÇÇàÀÌ ¾ÈµÉ ¼öµµ ÀÖ´Â Á¶°Ç¹®¿¡¼­ (if... then ... else...) ¸¸¾à À§¿Í °°Àº ȯ°æ¾È¿¡¼­ \outer°¡ ºÙÀº ¸í·É¾î¸¦ »ç¿ëÇÑ´Ù¸é TeXÀº "runaway" »óȲÀ̰ųª, "incomplete" Á¶°Ç¹®À̶ó°í ºÒÆòÇϸç, ÇÏ´ø ÀÏÀ» °üµÓ´Ï´Ù. ¸¶Áö¸· \globalÀÌ ³²¾Ò½À´Ï´Ù. ÄÄÇ»ÅÍ ÇÁ·Î±×·¡¹Ö °üÁ¡À¸·Î º¸¸é, Àü¿ªº¯¼ö ¼³Á¤ÇÏ´Â °ÍÀ̳׿ä. ƯÁ¤ ±×·ì ¾È¿¡¼­ Á¤ÀÇµÈ ¸ÅÅ©·Î´Â ±× ±×·ì¾È¿¡¼­¸¸ È¿·ÂÀÌ ÀÖ°í, ±× ±×·ì ¹Û¿¡¼­´Â ±× È¿·ÂÀ» Àдµ¥, ±×·ì ¹Û¿¡¼­µµ ±× Àǹ̸¦ À¯ÁöÇÏ·Á¸é \def ¾Õ¿¡ \global À̶ó°í ºÙ¿©ÁÖ¸é µË´Ï´Ù. ±×¸®°í \gdef´Â \global\def¿Í µ¿ÀÏÇÑ ÀǹÌÀÔ´Ï´Ù. Áö±Ý±îÁö ¾Ë¾Æº» \long, \outer, \globalÀº ¸ðµÎ \def ¾Õ¿¡ ºÙ´Â Á¢µÎ»ç °°Àºµ¥, ±× ¼ø¼­´Â ¾Æ¹«·¸°Ô³ª ¿Íµµ µÇ°í, ¶ÇÇÑ °°Àº Á¢µÎ»ç°¡ Çϳª ÀÌ»óÀÌ ¿Íµµ µË´Ï´Ù. ¿¹¸¦µé¾î, '''\long\outer\global\long\def''' À§ÀÇ ¼±¾ðÀº '''\outer\long\gdef'''¿Í °°Àº ÀǹÌÀÔ´Ï´Ù. }}} {{{#!blog ÀÛÀº³ª¹« 2006-03-19T00:30:28 demerits '''97~98ÂÊ''': ÀÌÁ¦ ¹®´Ü¿¡¼­ ÁÙµéÀ» ¸¸µé¾î³»´Â °úÁ¤À» ¾î´ÀÁ¤µµ Á¤¸®ÇÒ ¶§°¡ µÈ °Í °°½À´Ï´Ù. Áö³­ µÎ¹ø¿¡ °ÉÃļ­ ¾´ ³»¿ëÀ» Á¤¸®Çϸé, TeXÀº °¢ ÁÙÀÇ badness°¡ ÁÖ¾îÁø tolerance¸¦ ³ÑÁö ¾Êµµ·Ï Çϸ鼭 breakpoint¸¦ ¼³Á¤ÇÕ´Ï´Ù. ÀÌ °úÁ¤À» Á» ´õ ¼öÇÐÀûÀ¸·Î Ç¥ÇöÇϸé, °¢ ÁÙµéÀº ''demerit''¶ó´Â °ÍÀ» °¡Áö°í Àִµ¥, ''°¢ ÁÙµéÀÇ demeritsÀÇ ÇÕÀÌ ÃÖ¼Ò°¡ µÇµµ·Ï ÁÙµéÀ» ¸¸µì´Ï´Ù.'' demeritµéÀÇ ÃÑÇÕÀÌ ÃÖ¼Ò°¡ µÉ¶§, ±× ¹®´ÜÀÇ ÁÙµéÀÌ º¸±â ÁÁÀº°¡ º¾´Ï´Ù. ±×·¸´Ù¸é demerit°¡ ¹«¾ùÀ̳Ä?, Àúµµ ÀÌ·¯°í ½ÍÁö´Â ¾Ê½À´Ï´Ù¸¸, ¾î¿ ¼ö ¾øÀÌ ¼ö½ÄÀ» Á» ½á¾ß°Ú½À´Ï´Ù. °¢ ÁÙÀÇ demerit´Â ¾Æ·¡ÀÇ ¼ö½Ä°ú °°ÀÌ °è»êÇÕ´Ï´Ù. (TeX¿¡¼­ ¼ö½ÄÀ» Á¶ÆÇÇÏ´Â ÀÏÀº ¾ðÁ¦³ª Áñ°ÌÁÒ. :) ) attachment:demerit.jpg d´Â demerit, b´Â badness, p´Â penalty, ¸¶Áö¸·À¸·Î lÀº linepenalty¸¦ ³ªÅ¸³À´Ï´Ù. linepenalty´Â ¸»±×´ë·Î lineÀÌ °®´Â penaltyÀÔ´Ï´Ù. ±×·¡¼­ ÀÌ °ªÀ» Å©°ÔÇϸé, TeXÀ¸·Î ÇÏ¿©±Ý ¹®´Ü¿¡¼­ °¡´ÉÇÑÇÑ ÃÖ¼Ò °¹¼öÀÇ ÁÙµéÀ» ¸¸µé¾î ³»µµ·Ï Èûµé°Ô ÇÑ´ä´Ï´Ù. Plain TeX¿¡¼­ÀÇ linepenaltyÀÇ ±âº» °ªÀº 10ÀÔ´Ï´Ù. ¿¹¸¦µé¾î, ¾î¶² ÁÙÀÇ badness°¡ 20ÀÌ°í, breakpoint°¡ [Glue]¿¡¼­ ÀϾ´Ù¸é, penalty°¡ ¾ø´Â °ÍÀ̹ǷÎ, ±× ÁÙÀÇ demerit´Â À§ ½Ä¿¡ ÀÇÇؼ­ (10+20)^2=900ÀÌ µË´Ï´Ù. ÀÌ ¸»¿¡¼­ º¼¶§, penalty´Â ÁÙ¿¡ ±âº»ÀûÀ¸·Î ÁÖ¾îÁö´Â °ªÀÌ ¾Æ´Ñ, ¾î¶² µ¶¸³ÀûÀÎ °ªÀΰ¡ º¾´Ï´Ù.([Glue]¿¡ ´ëÇؼ­´Â ¾ðÁ¦ ¾ð±ÞÇÒ ³¯ÀÌ ÀÖÀ»°ÍÀÔ´Ï´Ù. ±× ³ðÀÌ ¾ÆÁÖ ÁýÂøÀÌ °­ÇÑ ³ðÀ̰ŵç¿ä.) ¸¶Áö¸·À¸·Î Knuth´Â ¿ì¸®µéÀÌ ¼öÇÐÀ» ½È¾îÇÏ´Â °ÍÀ» Àß ¾Ë¾Æ¼­ À§ ¼ö½ÄÀ» ¾Ë¾Æ µè±â ½¬¿î ¸»·Î ¼³¸íÀ» ÇÕ´Ï´Ù. Áï, óÀ½¿¡ ¾ð±ÞÇÑ ''°¢ ÁÙµéÀÇ demeritsÀÇ ÇÕÀÌ ÃÖ¼Ò°¡ µÇµµ·Ï ÁÙµéÀ» ¸¸µç´Ù''´Â Àǹ̴ basnessµé°ú penaltyµéÀÇ Á¦°öÀÇ ÇÕÀ» ÃÖ¼ÒÈ­ÇÏ´Â °Í°ú °°Àº ÀǹÌÀε¥, ÀÌ ¶æÀº ±× ¹®´ÜÀÇ ¸ðµç breakpointµé¿¡ °ÉÃļ­, ¾î¶² ÇÑ ÁÙÀÇ ÃÖ´ë badness ¶ÇÇÑ ÃÖ¼ÒÈ­ ÇÑ´Ù´Â ÀǹÌÀÔ´Ï´Ù. badness°¡ ÃÖ¼ÒÈ­ µÈ´Ù´Â °ÍÀº ±×¸¸Å­ ¿ì¸® ´«¿¡ º¸±â ÁÁ´Ù´Â °ÍÀ̴ϱî¿ä. ÀÌ»óÀ¸·Î ¹®´Ü¿¡¼­ ÁÙµéÀ» ¸¸µé¾î ³»´Â °úÁ¤À» »ìÆìºÃ½À´Ï´Ù. Á» ¾î·Á¿î ¸éµµ ÀÖ¾úÁö¸¸, Àç¹ÌÀÖ¾ú½À´Ï´Ù. TeXÀ» Á» ´õ ¾Ë°ÔµÇ¾î TeX°ú Á¡Á¡ Ä£ÇØÁ® °¡´Â ´À³¦ÀÔ´Ï´Ù. TeX! ¿ì¸® Á» ´õ Ä£ÇØÁý½Ã´Ù. :) "Åصµ¾ø´Â ¼Ò¸® ¸»¶ó°í?, ¾ÆÁ÷ ¸Ö¾ú´Ù±¸?" :( ---- ÀÌ °÷ À§Å°¿¡¼­´Â TeXÀ¸·Î ¼ö½Ä Á¶ÆÇÀÌ µÇ´Â °ÍÀ¸·Î ¾Ë°íÀִµ¥¿ä, ½ÇÁ¦·Îµµ ¸î¹ø »ç¿ëÇØ ºÃ°í¿ä. ±×·±µ¥, À§ ¼ö½ÄÀ» ½ÃµµÇß´õ´Ï, ¼ö½Ä Áß°£¿¡ ÀÌ»óÇÑ ##Blog°¡´Â °ÍÀÌ »ðÀԵǸ鼭, ¼ö½ÄÀÌ ¹Ú»ìÀÌ ³µ½À´Ï´Ù. "¹Ì¸®º¸±â"ÇÒ ¶§µµ ¼¼ÁÙÀÇ ¼ö½ÄÀ» °¨½Î´Â ¿ÞÂÊ °ýÈ£"{"°¡ ¾È³ª¿ÔÁö¸¸ ±×°ÍÀº ±×·±´ë·Î ÂüÀ»¸¸ÇÏ¿© (ÀúÀÇ \tolerance=3000 Âë µÇ³ªº¾´Ï´Ù. :) ) "ÀúÀå"À» ´­·¶´õ´Ï, ÀÌ»óÇÏ°Ô ³ª¿À´õ±º¿ä. ±×·¡¼­ ±×·¯°í ½ÍÁö´Â ¾Ê¾ÒÁö¸¸, ±×¸²À¸·Î ´ëüÇß½À´Ï´Ù. ¾Æ¸¶µµ Á¦°¡ LaTeX¿¡¼­´Â ¼ö½Ä Á¶ÆÇÀ» ÇØ º»ÀÏÀÌ ¾ø¾î¼­, ½Ç¼ö°¡ ÀÖ¾úÀ»Áöµµ ¸ð¸¨´Ï´Ù. :) -- Anonymous [[DateTime(2006-03-19T00:50:43)]] ---- Àú È¥ÀÚ ÅغÏÀ» ÀÐÀ» ¶§º¸´Ù ÈξÀ Àç¹ÌÀÖ½À´Ï´Ù. »ç½Ç Àú´Â ÀÌ Ã¥À» Æí½ÄÇß½À´Ï´Ù. ´ëÃæ µÑ·¯º¸°í À۳⿡¼­¾ß 16~19ÀåÀ» ÁýÁßÀûÀ¸·Î Àоú°Åµç¿ä. Àǹ̵µ ¸ð¸£´Â ä Àͼ÷Çß´ø °Íµé Á¶±Ý¾¿ ¿Í ´ê´Â °Í °°½À´Ï´Ù. ---badness, demerit µî. Âü, TeX¿¡¼­ ¼ö½ÄÀ» ÀÔ·ÂÇÏ´Â °ÍÀº ¾ðÁ¦³ª Áñ°Ì´Ù´Â °Í¿¡ °ø°¨ÇÕ´Ï´Ù. ^^ -- [Progress] [[DateTime(2006-03-20T04:39:13)]] }}} {{{#!blog ÀÛÀº³ª¹« 2006-03-18T16:33:08 badness and tolerance '''28~29, 96~97ÂÊ''': penalty ¼³¸í¿¡¼­ breakpointÀÇ ¼³Á¤Àº ¸¸µé¾îÁø ÁÙµéÀÌ ÃÖ´ëÇÑ ¿ì¸® ´«¿¡ º¸±âÁÁ°Ô ÇÏ´Â °÷À¸·Î ¼³Á¤µÈ´Ù°í Çß½À´Ï´Ù. ±×·¸´Ù¸é, ¾î¶² ÁÙµéÀÌ º¸±â ÁÁÀº °ÍÀϱî¿ä? ±×¸®°í ±× ±âÁØÀº ¹«¾ùÀϱî¿ä? TeXÀº ÀÌ¿¡ ´ëÇÑ ¼öÇÐÀû ±âÁØÀ¸·Î badness¶ó´Â °ÍÀ» µµÀÔÇß½À´Ï´Ù. °¢°¢ÀÇ ÁÙÀº badness¶ó´Â °ªÀ» °¡Áö°í ÀÖ½À´Ï´Ù. badness´Â ÁÖ¾îÁø ÁÙ¿¡¼­ ´Ü¾îµé »çÀÌÀÇ °£°ÝÀ» ¼öÄ¡È­ÇÑ °ªÀÔ´Ï´Ù. badness ±»ÀÌ ¿ì¸®¸»·Î ÇÏÀÚ¸é '³ª»ÝÁ¤µµ'Âë µÇ¹Ç·Î, ±× °ªÀÌ ÀÛÀ» ¼ö·Ï ÁÁÀº °ÍÀÌ°ÚÁö¿ä. ±×·¡¼­ ¾î¶² ÁÙÀÇ badness°¡ 0À϶§, ±× ÁÙÀÇ ´Ü¾îµé »çÀÌÀÇ °£°ÝÀÌ ¸Å¿ì ÀûÀýÇÏ¿© ¿ì¸® ´«¿¡ ÆÛÆåÆ®ÇÏ°Ô º¸ÀÔ´Ï´Ù. µû¶ó¼­ badness´Â 0°ú ¹«ÇÑ´ëÀÎ 10000 »çÀÌÀÇ °ªÀ» °®½À´Ï´Ù. badness¸¦ ±¸ÇÏ´Â ½ÄÀº ´ë·« min(100r^3, 10000)ÀÔ´Ï´Ù. ¿©±â¼­ rÀº ¾î¶² ºñÀ²(ratio)À» ³ªÅ¸³»´Âµ¥, ÀÚ¼¼ÇÑ ¼³¸íÀº »ý·«ÇÏ°Ú½À´Ï´Ù. (ÀÚ¼¼ÇÑ ¼ö½Äº¸´Ù´Â badnessÀÇ Àǹ̸¦ ÆľÇÇÏ´Â °ÍÀÌ ´õ Áß¿äÇÕ´Ï´Ù.) Plain TeX¿¡¼­´Â °¢ ÁÙÀÇ badness°¡ 200À» ³Ñ¾î¼­´Â ¾ÈµÇµµ·Ï Á¤ÇÏ°í ÀÖ½À´Ï´Ù. ÀÌ ¸»Àº Plain TeXÀº Àڱ⠱âÁØ¿¡¼­´Â badness°¡ 200À» ³ÑÀ¸¸é ±× ÁÙ¿¡¼­ ´Ü¾îµé »çÀÌÀÇ °£°ÝÀÌ ³Ê¹« Á¼°Å³ª, ³Ð¾î¼­ ¾È ¿¹»µº¸À̹ǷÎ, badness°¡ 200ÀÌ µÉ ¶§ ±îÁö´Â Âü¾ÆÁÙ ¼ö ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù. badness°¡ 200À» ³Ñ´Â ¼ø°£ Plain TeXÀº ±× ÁÙÀÇ ´Ü¾î »çÀÌÀÇ °£°ÝµéÀ» Â÷¸¶ ´«¶ß°í º¼ ¼ö ¾øÀ» Á¤µµ¿©¼­, ´õÀÌ»ó ÂüÁö ¸øÇÏ°í, ¸ø»ý±ä ÁÙÀ̶ó°í ºÒÆòÀ» ÇÕ´Ï´Ù. Plain TeXÀº "³ª´Â badness°¡ 200±îÁö ÂüÀ» ¼ö ÀÖ¾î."´Â Ç¥½Ã·Î \tolerance=200 À̶ó°í Á¤ÇÕ´Ï´Ù. primitive \toleranceÀÇ ¶æÀ» ¾Æ½Ã°ÚÁÒ? ÇÑ°¡Áö ´õ ¾Ë¾Æ µÎ¾î¾ß ÇÒ °ÍÀº ¿µ¾î¿¡´Â hyphenationÀ» ÀÌ¿ëÇؼ­ ¿µ¾î ´Ü¾î°¡ µÎ ÁÙ¿¡ °ÉÃÄ ³ª¿Ã °æ¿ì, ±× ´Ü¾î¸¦ ÂÉ°¶ ¼ö ÀÖ½À´Ï´Ù. Plain TeXÀº ÀÏ´Ü hyphenationÀ» ÀÌ¿ëÇÏÁö ¾Ê°í, ÁÙÀ» ¸¸µé ¼ö ÀÖ´ÂÁö ¸ÕÀú üũÇÕ´Ï´Ù. ÀÌó·³ ¸ÕÀú È®ÀÎ ÇÑ´Ù´Â Àǹ̿¡¼­ Á¢µÎ¾î 'pre'¸¦ »ç¿ëÇÏ¿©, À̶§ÀÇ badnessÀÇ °ªÀ» \pretolerance·Î ¼³Á¤ÇÕ´Ï´Ù. Plain TeXÀº \pretolerance=100À¸·Î Á¤ÇÕ´Ï´Ù. Áï, ¸ÕÀú badness 100À¸·Î Á¤ÇÏ°í ¿µ¾î ´Ü¾î¸¦ ÂÉ°³´Â ÀÏ ¾øÀÌ ÁÙµéÀ» ¸¸µé¼ö ÀÖ´ÂÁö üũÇÏ°í, ¾ÈµÈ´Ù¸é hyphenationÀ» ÀÌ¿ëÇϸ鼭 badness¸¦ 200À¸·Î ÇÏ°í ´Ù½Ã È®ÀÎÇÕ´Ï´Ù. ---- Àß º¸°í ÀÖ½À´Ï´Ù. ÁÁÀº ±Û °¨»çÇÕ´Ï´Ù. ^^ -- [Karnes] [[DateTime(2006-03-18T17:48:05)]] }}} {{{#!blog ÀÛÀº³ª¹« 2006-03-17T15:16:51 penalty '''96~97ÂÊ''': ¹®´Ü(paragraph)À» ÂÉ°³¾î ÁÙ(line)µéÀ» ¸¸µå´Â °úÁ¤¿¡´Â ¸Å¿ì Èï¹Ì·Ó°í, °úÇÐÀûÀÎ ¹æ¹ýÀÌ ¼û¾î ÀÖ½À´Ï´Ù. ±× ¹æ¹ýÀ» ÀÌÇØÇϱâ À§Çؼ­´Â ¸î°¡Áö °³³ä°ú ±× °³³ä¿¡ ÇØ´çÇÏ´Â ¿ë¾î¸¦ ¾Ë¾Æ¾ß ÇÕ´Ï´Ù. ¸ÕÀú ''penalty''¿¡ ´ëÇؼ­ ¾Ë¾Æº¸°Ú½À´Ï´Ù. ¹®´Ü¿¡¼­ ÁÙµéÀ» ¸¸µé±â À§Çؼ­ ÁٹٲÞÇÏ´Â ÁöÁ¡À» breakpoint¶ó°í ÇÕ´Ï´Ù. breakpoint¸¦ ¼±Á¤ÇÏ´Â ¹æ¹ýÀº ¹®´ÜÀ» ÁٹٲÞÇÏ¿© ¸¸µé¾îÁø ÁÙµéÀÌ ÃÖ´ëÇÑ ¿ì¸® ´«¿¡ º¸±â ÁÁÀº ÁöÁ¡À¸·Î ÇÏ´Â °ÍÀÔ´Ï´Ù. °¢ breakpointµéÀÇ È帵éÀº penalty¶ó°í ºÒ¸®´Â ¾î¶² °ªÀ» °¡Áö°í Àִµ¥, penalty´Â ±× ÁöÁ¡¿¡¼­ ÁٹٲÞÀ¸·Î Çؼ­ ¹ß»ýÇÏ´Â ¹ÌÇÐÀû ºñ¿ë(aesthetic cost)ÀÔ´Ï´Ù. ¿¹¸¦ µé¾î ¾î¶² breakpointÀÇ penalty°¡ 100À̶ó¸é(\penalty100), ±× ÁöÁ¡¿¡¼­ ÁٹٲÞÀ¸·Î ¹ß»ýÇÏ´Â ¹ÌÇÐÀû ºñ¿ëÀÌ 100¸¸Å­ µç´Ù´Â ¸»ÀÔ´Ï´Ù. Áï penalty°¡ Å©¸é Ŭ¼ö·Ï ºñ¿ëÀÌ ¸¹À̵é¹Ç·Î, ÁٹٲÞÀÌ ÀϾ È®·üÀÌ Àû¾î Áú°ÍÀÌ°í, penalty°¡ À۾Ƽ­ À½¼ö°¡ µÈ´Ù¸é, À½¼öÀÇ penalty´Â ¾ç¼öÀÇ bonus À̹ǷÎ, ±× ÁöÁ¡¿¡¼­´Â ÁٹٲÞÀÌ ¹ß»ýÇÒ È®·üÀÌ Å©°ÚÁö¿ä. TeX¿¡¼­ÀÇ 10000À̶ó´Â ¼ýÀÚ´Â ¹«ÇѴ븦 ¶æÇÕ´Ï´Ù. ±×·¡¼­ '\penalty10000'À̶ó´Â ¶æÀº ÁٹٲÞÀÇ ºñ¿ëÀÌ ¹«ÇÑ´ë·Î µé¾î°£´Ù´Â ¼Ò¸®À̹ǷÎ, Àý´ë·Î ÁٹٲÞÀÌ ÀϾÁö ¾Ê´Â´Ù´Â ¶æÀÔ´Ï´Ù. Áï \nobreak ÀÌÁö¿ä. Á¦°¡ ÀÌÇØÇÏ´Â penalty´Â ÀÌ·¸½À´Ï´Ù. }}} {{{#!blog ÀÛÀº³ª¹« 2006-03-14T14:34:10 hanging paragraph '''102ÂÊ''': '\hangindent=' ¿Í '\hangafter=' plain TeX¿¡¼­´Â ±²ÀåÈ÷ ¸¹ÀÌ »ç¿ëµÇ´Â control sequence µé ÀÔ´Ï´Ù. x¿Í nÀ» °¢°¢ \hangindent¿Í \hangafterÀÇ °ªÀ̶ó°í ÇÏ°í, h¸¦ \hsizeÀÇ °ªÀ̶ó°í ÇÏÀÚ. ±×¶§, n >= 0À̸é, hanging µé¿©¾²±â´Â ±Û ¹®´ÜÀÇ n+1, n+2, ... ¹ø° ÁÙ¿¡¼­ ³ªÅ¸³ª°í, n<0À̸é, 1, 2, ... |n| ¿¡¼­ ³ªÅ¸³³´Ï´Ù. Hanging µé¿©¾²±â¶õ °¢ ÁÙÀÇ ÆøÀÌ ÀϹÝÀûÀÎ ÆøÀÎ h°¡ ¾Æ´Ï¶ó h-|x| ÀÎ °ÍÀ» ¶æÇÕ´Ï´Ù; ¸¸ÀÏ x>=0À̸é, °¢ ÁÙµéÀº ¿ÞÂÊ¿¡¼­ µé¿©¾²±â°¡ µÇ°í, ±×·¸Áö ¾ÊÀ¸¸é ¿À¸¥ÂÊ µé¿©¾²±â°¡ µË´Ï´Ù. ¹«½¼ ¸»ÀÎÁö °¨ÀÌ ¿À½Ê´Ï±î? »óȲÀÌ ÀÌ·¯ÇÏ´Ï, Âü°í¼­°¡ ÇÊ¿äÇÏ°ÚÁö¿ä? {{{#!latex \hangindent=2cm \hangafter=-2 \noindent µ¿Çع°°ú ¹éµÎ»êÀÌ ¸¶¸£°í ´âµµ·Ï ÇÏ´À´ÔÀÌ º¸¿ìÇÏ»ç ¿ì¸®³ª¶ó ¸¸¼¼. ¹«±ÃÈ­ »ïõ¸® È­·Á°­»ê ´ëÇÑ»ç¶÷ ´ëÇÑÀ¸·Î ±æÀÌ º¸ÀüÇϼ¼. µ¿Çع°°ú ¹éµÎ»êÀÌ ¸¶¸£°í ´âµµ·Ï ÇÏ´À´ÔÀÌ º¸¿ìÇÏ»ç ¿ì¸®³ª¶ó ¸¸¼¼. ¹«±ÃÈ­ »ïõ¸® È­·Á°­»ê ´ëÇÑ»ç¶÷ ´ëÇÑÀ¸·Î ±æÀÌ º¸ÀüÇϼ¼. \}}} ´ÙÀ½°ú °°Àº ÀÔ·ÂÀ¸·Î À§ÀÇ °á°ú¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. {{{#!vim tex \hangindent=2cm \hangafter=-2 \noindent µ¿Çع°°ú ¹éµÎ»êÀÌ ¸¶¸£°í ´âµµ·Ï ÇÏ´À´ÔÀÌ º¸¿ìÇÏ»ç ¿ì¸®³ª¶ó ¸¸¼¼. ¹«±ÃÈ­ »ïõ¸® È­·Á°­»ê ´ëÇÑ»ç¶÷ ´ëÇÑÀ¸·Î ±æÀÌ º¸ÀüÇϼ¼. µ¿Çع°°ú ¹éµÎ»êÀÌ ¸¶¸£°í ´âµµ·Ï ÇÏ´À´ÔÀÌ º¸¿ìÇÏ»ç ¿ì¸®³ª¶ó ¸¸¼¼. ¹«±ÃÈ­ »ïõ¸® È­·Á°­»ê ´ëÇÑ»ç¶÷ ´ëÇÑÀ¸·Î ±æÀÌ º¸ÀüÇϼ¼. \}}} }}} {{{#!blog ÀÛÀº³ª¹« 2006-03-11T10:47:16 TeX logo Texture '''225ÂÊ''': TeX ·Î°í·Î µµ¹è¸¦ ÇÑ Àç¹ÌÀÖ´Â ÅؽºÃÄ(TeXture)°¡ ÀÖ½À´Ï´Ù. {{{#!latex $$\hbox to 4.5in{\cleaders \vbox to .5in{\cleaders\hbox{\TeX}\vfil}\hfil}$$ \}}} µµ¹èÇÏ´Â ¹æ¹ýÀº ¾Æ·¡¿Í °°½À´Ï´Ù. {{{#!vim tex $$\hbox to 4.5in{\cleaders \vbox to .5in{\cleaders\hbox{\TeX}\vfil}\hfil}$$ \}}} Âü °£´ÜÇÕ´Ï´Ù! ´Ü ÇÑ ÁÙÀÇ º®Áö·Î À§¿Í °°Àº ¸ÚÁø µµ¹è¸¦ ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ°ÍÀÌ TeXÀÇ ÈûÀÌ°í, ¿ì¸®µéÀÌ TeXÀ» »ç¿ëÇÏ´Â ÀÌÀ¯°¡ ¾Æ´Ñ°¡ ÇÕ´Ï´Ù. }}} {{{#!blog ÀÛÀº³ª¹« 2006-03-09T15:07:34 \rlap, \llap '''82ÂÊ''': If you understand boxes and glues, you're ready to learn the \rlap and \llap macros of plain TeX; these names are abbreviations for "right overlap" and "left overlap" Æò¼Ò¿¡ \rlap°ú \llap ¸ÅÅ©·Î¸¦ »ç¿ëÇϸ鼭 Âü Àç¹ÌÀÖ´Â ¸ÅÅ©·Î±¸³ª ÇÏ°í »ý°¢Çߴµ¥, ¸¶Ä§ ±×°Íµé¿¡ ´ëÇÑ ³»¿ëÀÌ Àֳ׿ä. \rlapÀ» ±¸ÇöÇϱâ À§Çؼ­ À§¿¡ ¼³¸íÇÑ Àǹ̿¡ Ãæ½ÇÈ÷ ÇÏ¿© Á¶±Ý¸¸ »ý°¢Çϸé, {{{#!vim tex \def\rlap#1{{\setbox0=\hbox{#1}\copy0\kern-\wd0}} \}}} À§¿Í °°Àº Á¤ÀǸ¦ ¾òÀ» ¼ö Àִµ¥, »ç½ÇÀº ÀÌ·± º¹ÀâÇÑ °è»êÀº ÇÊ¿ä ¾ø´Ù°í ÇÕ´Ï´Ù. {{{#!vim tex \def\rlap#1{\hbox to 0pt{#1\hss}} \}}} ¾Æ¸§´äÁö ¾Ê½À´Ï±î? À§ Á¤ÀǸ¦ º¸°í, Àá½Ã À½¹ÌÇÒ ½Ã°£À» °®´Â °Íµµ ±¦ÂúÀ» µí ÇÕ´Ï´Ù. ±×·¸´Ù¸é, \llapÀº ¾î¶»°Ô Á¤ÀÇ ÇÏ¸é µÉ±î¿ä? {{{#!vim tex \def\llap#1{\hbox to 0pt{\hss#1}} \}}} }}} {{{#!blog ÀÛÀº³ª¹« 2006-03-05T05:15:06 ¼ýÀÚ µÚ °ø¹é '''208ÂÊ''': "For best result, ''always put a blank space after numeric constant;''" \count ·¹Áö½ºÅÍ¿Í °°Àº ¼ýÀÚ »ó¼ö µÚ¿¡ ¹Ýµå½Ã °ø¹éÀ» Çϳª µÎ¶ó´Â °ÍÀε¥, {{{#!vim tex \def\statement{\ifnum\balance=0 \fullypaid \else\ifnum\balance>0 \overpaid \else\underpaid \fi \fi} \}}} À§ÀÇ ¿¹¿¡¼­ ù¹ø°ÁÙ 0°ú \fullypaid »çÀÌÀÇ °ø¹éÀÌ ¸Å¿ì Áß¿äÇÏ´Ù°í ÇÕ´Ï´Ù. ¸¸¾à {{{ ...=0\fullypaid... \}}} ó·³ ÇÑ´Ù¸é Àü°³µÇÁö ¾Ê¾Æµµ µÉ \fullypaid°¡ Àü°³µÇ±â ¶§¹®À̶ó³×¿ä. Áï °á°ú¿¡´Â Å« ¿µÇâÀ» ¹ÌÄ¡Áö ¾ÊÁö¸¸, ¾µµ¥ ¾ø´Â Àü°³¸¦ ÇϹǷΠ½ÇÇà½Ã°£ÀÌ ´À·ÁÁ®¼­ ºñÈ¿À²ÀûÀ̶ó°í ÇÕ´Ï´Ù. (°£È¤, ±¦ÇÑ Àü°³·Î ¿¡·¯°¡ ¹ß»ýÇϱ⵵ ÇÕ´Ï´Ù.) ¼ýÀÚ »ó¼ö µÚ¿¡ °ø¹éÀ» ³ÖÀ½À¸·Î TeXÀ¸·Î ÇÏ¿©±Ý ¿©±â±îÁö°¡ ¼ýÀÚ »ó¼ö¶ó°í È®½ÇÈ÷ ¸ø¹Ú¾ÆµÑ ¼ö ÀÖ½À´Ï´Ù. ¸¶Áö¸· KnuthÀÇ ¸»ÀÌ Àç¹ÌÀÖ½À´Ï´Ù. ÀÚ½ÅÀº µ¶ÀÚ¿¡°Ô ¹Ýµå½Ã ¼ýÀÚ »ó¼ö µÚ¿¡ °ø¹éÀ» ³ÖÀ¸¶ó°í Çϸ鼭, Á¤ÀÛ º»ÀÎÀº °¡²û °ø¹éÀ» ³ÖÁö ¾Ê´Â´ä´Ï´Ù. ±× ÀÌÀ¯ÀÎÁï "''because extra spaces do look funny in the file; aesthetics are more important than efficiency''" Knuth, ÀÌ ÇҾƹöÁö Àç¹ÌÀÖ´Â ºÐÀÓ¿¡ Ʋ¸²¾ø½À´Ï´Ù. :)) }}} {{{#!blog ÀÛÀº³ª¹« 2006-03-04T11:27:18 \futurelet '''207ÂÊ''': Á¦20Àå(Definitions)¸¦ °øºÎÇÏ´Ù°¡ ¿ä»óÇÑ cs¸¦ Çϳª ¹ß°ßÇß½À´Ï´Ù. \futurelet. µµ´ëü ÀÌ°ÍÀ» ¾îµð¿¡ »ç¿ëÇØ¾ß Àß »ç¿ëÇß´Ù°í ¼Ò¹®ÀÌ ³ª´ÂÁö ¸ð¸£°Ú½À´Ï´Ù. "¹Ì·¡\let"(?) µµ´ëü ÀÌ·± primitive¸¦ ¿Ö ¸¸µé¾úÀ»±î¿ä? 207ÂÊ Áß°£¿¡ ÀÌ csÀÇ ¼³¸íÀÌ Àִµ¥, "dangerous bend" ±âÈ£°¡ µÎ °³³ª ºÙ¾îÀÖ½À´Ï´Ù. {{{#!latex \font\manual=manfnt \manual\char127\manual\char127 \}}} ¾ðÁ¨°¡´Â ÀÌÇØÇÒ ³¯ÀÌ ¿À°ÚÁÒ. "\futurelet\cs"´Â "\let\cs="À̶û °°´Ù°í Çϴµ¥, ±×·¸´Ù¸é ¹®¹ýÀº ÀÌÇØ°¡ °¡´Âµ¥, Àǹ̰¡ ¿µ ¿Í´êÁö ¾Ê³×¿ä. ---- {{{\futurelet\cs\}}}´Â {{{\let\cs=\}}}¿Í µ¿ÀÏÇÕ´Ï´Ù. -- DohyunKim [[DateTime(2006-03-29T08:04:35)]] ---- ÁöÀûÇØ Áּż­ °¨»çÇÕ´Ï´Ù. Á¦°¡ Àú ±ÛÀ» ¾µ¶§, futureletÀ» ÀÌÇØÇÏÁö ¸øÇÏ±ä ¸øÇß³ªº¾´Ï´Ù. Ã¥ ³»¿ëÀ» ¿Å°Ü Àû´Â °Íµµ Ʋ·ÈÀ¸´Ï... :) °¨»çÇÕ´Ï´Ù. -- [ÀÛÀº³ª¹«] [[DateTime(2006-03-29T15:06:53)]] }}} {{{#!blog ÀÛÀº³ª¹« 2006-03-04T11:27:17 control sequence ±¸º° '''9~11ÂÊ''': PlainTeX¿¡´Â 900¿©°³ÀÇ ControlSequences(cs)°¡ ÀÖ´Ù°í ÇÕ´Ï´Ù. ±× Áß 300¿©°³´Â ''primitive''ÀÌ°í, ³ª¸ÓÁö 600¿©°³´Â macro¶ó°í ÇÕ´Ï´Ù. primitive´Â ´õÀÌ»ó Àü°³ ÇÏ ¼ö ¾ø´Â ÃÖ¼ÒÀÇ ½ÇÇà ´ÜÀ§ csÀÌ°í, macro´Â primitive ȤÀº ´Ù¸¥ ¸ÅÅ©·Î µé·Î ±¸¼ºµÈ cs¶ó³×¿ä. ±×·¸´Ù¸é, ÁÖ¾îÁø cs°¡ primitiveÀÎÁö macroÀÎÁö ¾î¶»°Ô ±¸ºÐÇÒ ¼ö ÀÖÀ»±î¿ä? Knuth´Â µÎ°¡Áö ±¸ºÐ ¹æ¹ýÀ» ±Í¶äÇØÁÝ´Ï´Ù. ù¹ø° ¹æ¹ýÀº ±× Ã¥ÀÇ À妽ºÁß cs¸¦ ³ª¿­ÇØ ³õÀº °÷À» º¸¸é '*'°¡ ºÙÀº cs°¡ Àִµ¥, ¹Ù·Î ±×°ÍµéÀÌ primitive¶ó°í Çϳ׿ä.(°¡Àå °£´ÜÇÑ ¹æ¹ýÀÌÁö¸¸ Ã¥ ±¸ÀÔ¿¡ µ·ÀÌ µç´Ù´Â ´ÜÁ¡ÀÌ ÀÖ½À´Ï´Ù.) µÎ¹ø° ¹æ¹ýÀÌ ±×·²µíÇѵ¥, \show¶ó´Â primitive·Î ÆǺ°ÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù. ¿¹¸¦µé¾î TeXÀ» ½ÇÇà½ÃÅ°°í \show\thinspace¶ó°í ÀÔ·ÂÇϸé \thinspace´Â macro¶ó´Â Ç¥½Ã¿Í ±×°ÍÀÇ Á¤ÀÇ°¡ ÁÖ·ç·è ³ª¿É´Ï´Ù. (Àç¹ÌÀÖ½À´Ï´Ù.) }}} ---- CategoryBlog