KTUGFaq

KTUG FAQ

"\long, \outer, \global, \gdef"¿¡ ´ñ±Û ´õÇϱâ

·Î±×ÀÎ:
ºñ¹Ð¹øÈ£:
°¡ÀÔ
"Perl is executable line noise, Python is executable pseudo-code."
FrontPage › LittleTree/ReadingTeXbook/2006-03
Mar 20, 2006
\long, \outer, \global, \gdef
Submitted by ÀÛÀº³ª¹« @ 03-20 [04:56 pm]

Àú´Â 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¿Í °°Àº ÀǹÌÀÔ´Ï´Ù.
À̸§:

¼­¸íÇÏÁö ¾Ê±â