Go to the first, previous, next, last section, table of contents.


Formatting Mistakes

¹®¼­ ³»¿ëÀÇ ½Ç ¼ö ÀÌ¿Ü¿¡, Texinfo¿¡¼­ ÇÒ ¼ö ÀÖ´Â µÎ°¡Áö Á¾·ùÀÇ ½Ç¼ö°¡ ÀÖ´Ù: @-¸í·ÉÀ» ¾µ ¶§ ½Ç¼öÇÑ °æ¿ì¿Í, ³ëµå¿Í ÀåÀÇ ±¸Á¶¿¡¼­ ½Ç¼öÇÑ °æ¿ìÀÌ´Ù.

emacs¿¡´Â @-¸í·É¾îÀÇ ½Ç¼ö¸¦ À§ÇÑ µÎ°¡Áö µµ±¸¿Í ±¸Á¶»óÀÇ ½Ç¼ö¸¦ °íÄ¡±â À§ÇÑ µÎ°¡Áö µµ±¸°¡ ÀÖ´Ù.

@-¸í·ÉÀÇ ¹®Á¦¸¦ ãÀ» ¶§, ¹®Á¦°¡ ÀϾ ¸®Àü(region)¿¡ ´ëÇؼ­ TeXÀ̳ª ¸®Àü(region) Æ÷¸ÅÆà ¸í·ÉÀ» ½ÇÇàÇÑ´Ù; ½ÇÁ¦·Î´Â, ÀÌ·± ¸í·ÉÀ» °¢ ¸®Àü(region)À» ¾µ ¶§¸¶´Ù °¢ ¸®Àü(region)¿¡ ´ëÇØ ½ÇÇàÇÒ ¼ö ÀÖ´Ù.

³ëµå³ª ÀåÀÇ ±¸Á¶ÀÇ ¹®Á¦¸¦ ãÀ» ¶§, C-c C-s (texinfo-show-structure)¿Í ÀÌ¿Í °ü·ÃµÈ occur ¸í·ÉÀ» ¾µ ¼ö ÀÖ°í, M-x Info-validate ¸í·ÉÀ» ¾µ ¼ö ÀÖ´Ù.

makeinfo ÇÁ·Î±×·¥Àº ¾Ö·¯¸¦ ã¾Æ³»°í ¾Ë·ÁÁÖ´Â ÀÏÀ» ¸Å¿ì ÀßÇØ ³½´Ù---texinfo-format-regionÀ̳ª texinfo-format-buffer º¸´Ù ´õ ÀßÇÑ´Ù. ¶Ç, ÀÚµ¿À¸·Î ³ëµå Æ÷ÀÎÅÍ¿Í ¸Þ´º¸¦ ¸¸µé°í ¾÷µ¥ÀÌÆ®ÇÏ´Â ¿©·¯°¡Áö ±â´ÉµéÀº Àΰ£ÀÌ ÀúÁö¸¦ ¼ö ÀÖ´Â ¸¹Àº À߸øÀ» ¾ø¾ÖÁØ´Ù.

ÇÒ ¼ö¸¸ ÀÖ´Ù¸é, Æ÷ÀÎÅÍ¿Í ¸Þ´º¸¦ ¸¸µå´Âµ¥ ¾÷µ¥ÀÌÆ® ¸í·ÉÀ» ¾²±â ¹Ù¶õ´Ù. ÀÌ ¸í·ÉµéÀº ¸¹Àº ¾Ö·¯¸¦ ¸·¾ÆÁØ´Ù. ±×¸®°í makeinfo¸¦ »ç¿ëÇؼ­ (¶Ç´Â ÀÌ ¸í·ÉÀ» Texinfo ¸ðµå¿¡¼­ »ç¿ëÇÏ´Â ¸í·ÉÀÎ makeinfo-region°ú makeinfo-buffer¸¦ »ç¿ëÇؼ­) ÆÄÀÏÀ» Æ÷¸ÅÆÃÇÏ°í ±× ¿ÜÀÇ ¾Ö·¯¸¦ ã¾Æ³»¶ó. ÀÌ°ÍÀÌ Teixnfo¿Í ÇÔ²² ÀÛ¾÷ÇÏ´Â °¡Àå ÁÁÀº ¹æ¹ýÀÌ´Ù. ÇÏÁö¸¸, makeinfo¸¦ »ç¿ëÇÏÁö ¸øÇϰųª, ¹®Á¦°¡ ¸Å¿ì ÇØ°áÇϱ⠾î·Æ´Ù¸é, ÀÌ ºÎ·Ï¿¡ ¼³¸íµÈ µµ±¸µéÀ» »ç¿ëÇÏ¸é µÈ´Ù.

Catching Errors with Info Formatting

Texinfo ÆÄÀÏÀÇ ÀϺθ¦ ¾´ ÈÄ¿¡, texinfo-format-regionÀ̳ª makeinfo-region ¸í·ÉÀ¸·Î ±× ¸®Àü(region)ÀÌ Á¦´ë·Î Æ÷¸ÅÆõǴÂÁö È®ÀÎÇÒ ¼ö ÀÖ´Ù.

ÇÏÁö¸¸, ¸¶Âù°¡Áö·Î ¾î¶² ÀÌÀ¯À̵ç makeinfo-region ¸í·ÉÀ» ¾µ ¼ö ¾ø¾î¼­ ÀÌ ÀýÀ» Àаí ÀÖ´Ù¸é; Áï, ÀÌ ÀýÀÇ ³ª¸ÓÁö´Â texinfo-format-regionÀ» ¾´´Ù°í °¡Á¤ÇÑ´Ù.

@-¸í·É¿¡ ½Ç¼ö¸¦ Çß´Ù¸é, texinfo-format-regionÀº ¾Ö·¯ ¹Ù·Î ´ÙÀ½ À§Ä¡¿¡¼­ 󸮸¦ ¸ØÃß°í ¾Ö·¯¸Þ¼¼Áö¸¦ Ãâ·ÂÇÒ °ÍÀÌ´Ù. ¹öÆÛÀÇ ¾îµð¿¡ ¾Ö·¯°¡ ÀÖ´ÂÁö º¸·Á¸é, `*Info Regino*'¹öÆÛ·Î À̵¿ÇÑ´Ù; Ä¿¼­´Â ¾Ö·¯ À§Ä¡ ¹Ù·Î ´ÙÀ½ ÁöÁ¡¿¡ ³õÀÌ°Ô µÉ °ÍÀÌ´Ù. ¶Ç, ¾Ö·¯°¡ ¹ß»ýÇÑ Àå¼Ò (Á¤È®È÷ ¸»Çؼ­, ¾Ö·¯¸¦ ãÀº Àå¼Ò)ÀÌÈÄ´Â Æ÷¸ÅÆõÇÁö ¾ÊÀ» °ÍÀÌ´Ù.

¿¹¸¦ µé¾î, ¿ì¿¬È÷ @end menu°¡ ¾Æ´Ï¶ó ±× µÚ¿¡ `s'¸¦ µ¡ºÙ¿©¼­ @end menus¶ó´Â ¸í·ÉÀ¸·Î ¸Þ´º¸¦ ³¡³½´Ù¸é. ´ÙÀ½°ú °°ÀÌ ¸»ÇÏ´Â ¾Ö·¯ ¸Þ¼¼Áö¸¦ º¸°Ô µÉ °ÍÀÌ´Ù.

@end menus is not handled by texinfo

Ä¿¼­´Â ¹öÆÛ¿¡¼­ ¾Ö·¯°¡ ¹ß»ýÇÑ À§Ä¡¿¡¼­ ¸ØÃß°í, ±× µÚ·Î´Â °¡Áö ¾ÊÀ» °ÍÀÌ´Ù. ±× ¹öÆÛ´Â ´ÙÀ½°ú °°ÀÌ º¸ÀÏ °ÍÀÌ´Ù:

---------- Buffer: *Info Region* ----------
* Menu:

* Using texinfo-show-structure::  How to use
                                  `texinfo-show-structure'
                                  to catch mistakes.
* Running Info-Validate::         How to check for
                                  unreferenced nodes.
@end menus
-!-
---------- Buffer: *Info Region* ----------

texinfo-format-region ¸í·ÉÀº Á¾Á¾ Á¶±Ý ÀÌ»óÇÑ ¾Ö·¯ ¸Þ¼¼Áö¸¦ ³½´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½ »óÈ£ ÂüÁ¶´Â Æ÷¸ÅÆÃÇÒ ¼ö ¾ø´Ù:

(@xref{Catching Mistakes, for more info.)

ÀÌ °æ¿ì¿¡, texinfo-format-regionÀº Áß°ýÈ£¸¦ ´ÝÁö ¾ÊÀº °ÍÀ» ã¾Æ³ÂÁö¸¸, `Unbalanced braces'¶ó°í ÇÏÁö ¾Ê°í `Unbalanced parentheses'¶ó´Â ¸Þ¼¼Áö¸¦ Ç¥½ÃÇÑ´Ù. ÀÌ°ÍÀº Æ÷¸ÅÆà ¸í·ÉÀÌ Áß°ýÈ£°¡ ¸ÂÁö ¾Ê´Â °ÍÀ» º¸Åë °ýÈ£°¡ ¸ÂÁö ¾ÊÀº °Í°ú °°ÀÌ Ã£¾Æ³»±â ¶§¹®ÀÌ´Ù.

°¡²û texinfo-format-regionÀº À߸øÀ» ã¾Æ³»Áö ¸øÇÑ´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½°æ¿ì¿¡ Áß°ýÈ£¸¦ ³¡³»Áö ¾Ê¾Ò´Âµ¥ º¸Åë °ýÈ£¸¦ ³¡³»´Â °ÍÀ¸·Î ¾Ö·¯°¡ ¹ß»ýÇÏÁö ¾Ê´Â´Ù:

(@xref{Catching Mistakes), for more info.}

Æ÷¸ÅÆÃÀÇ °á°ú´Â ´ÙÀ½°ú °°´Ù:

(*Note for more info.: Catching Mistakes)

ÀÌ ¾Ö·¯¸¦ ã¾Æ³»´Â À¯ÀÏÇÑ ¹æ¹ýÀº ÀÌ ÂüÁ¶°¡ ´ÙÀ½°ú °°ÀÌ º¸¿©¾ß ÇÑ´Ù´Â °ÍÀ» ¾Æ´Â °ÍÀÌ´Ù:

(*Note Catching Mistakes::, for more info.)

¿ì¿¬È÷, Info¿¡¼­ ÀÌ ³ëµå¸¦ Àдٰ¡ fRETÀ»(Info-follow-reference) ´©¸¥´Ù¸é ´ÙÀ½°ú °°Àº ¾Ö·¯ ¸Þ¼¼Áö¸¦ º¸°Ô µÉ °ÍÀÌ´Ù:

No such node: "Catching Mistakes) The only way ...

ÀÌ Çö»óÀº ÀÌ¿Í°°Àº ¾Ö·¯°¡ ÀÖ´Â ¿¹¸¦ ÀÌ ³ëµåÀÇ Ã¹¹ø° »óÈ£ ÂüÁ¶·Î ÀÌÇØÇÏ°í, InfoÀÇ f¸í·ÉÀ» ŸÀÌÇÁÇÑ Á÷ÈÄ RETÀ» ´©¸£¸é, Info´Â ÂüÁ¶µÈ ³ëµå·Î °¡·Á°í ½ÃµµÇÒ °ÍÀÌ´Ù. ¸¸¾à f catch TAB RETÀ» ´©¸£¸é, Info´Â ³ëµåÀÇ À̸§À» ¿¹¿¡ ¾²¿© ÀÖ´Â °Íó·³ Á¤È®È÷ º¸ÃæÇؼ­ `Catching Mistakes' ³ëµå·Î µ¥·Á´Ù ÁÙ °ÍÀÌ´Ù. (¸¸¾à ÀÌ°ÍÀ» ½ÃµµÇÏ·Á°í ÇÑ´Ù¸é, l(Info-last)¸¦ ´­·¯ `Catching Mistakes'¿¡¼­ ´Ù½Ã µ¹¾Æ¿Ã ¼ö ÀÖ´Ù.)

Catching Errors with TeX Formatting

¶Ç, TeXÀ¸·Î ÆÄÀÏÀ» Æ÷¸ÅÆÃÇÒ ¶§¿¡µµ ½Ç¼ö¸¦ ã¾Æ³¾ ¼ö ÀÖ´Ù.

º¸Åë, texinfo-format-buffer (¶Ç´Â, ´õ ÁÁÀº ¹æ¹ýÀ¸·Î makeinfo-buffer)¸¦ °°Àº ÆÄÀÏ¿¡ ½ÇÇà½ÃŲ ÈÄ¿¡ TeXÀÇ ¹®Á¦¸¦ ÇØ°áÇÒ °ÍÀÌ´Ù. ¿Ö³ÄÇÏ¸é ¶§¶§·Î texinfo-format-buffer´Â TeXº¸´Ù ´õ ÀûÀº ¾Ö·¯ ¸Þ¼¼Áö¸¦ Ç¥½ÃÇϱ⠶§¹®ÀÌ´Ù. (See section Catching Errors with Info Formatting, for more information.)

¿¹¸¦ µé¾î, TeXÀÌ ÆÄÀÏ ÀϺΰ¡ ´ÙÀ½°ú °°Àº ¾î¶² Texinfo ÆÄÀÏ¿¡ ´ëÇØ ½ÇÇàµÇ¾ú´Ù°í ÇÏÀÚ:

---------- Buffer: texinfo.texi ----------
name of the Texinfo file as an extension.  The
@samp{??} are `wildcards' that cause the shell to
substitute all the raw index files.  (@xref{sorting
indices, for more information about sorting
indices.)@refill
---------- Buffer: texinfo.texi ----------

(À§ÀÇ »óÈ£ ÂüÁ¶´Â Áß°ýÈ£¸¦ ´ÝÁö ¾Ê¾Ò´Ù.) TeXÀº ½ÇÇàÀ» ¸ØÃß°í, ´ÙÀ½°ú °°ÀÌ Ãâ·ÂÇÑ´Ù:

---------- Buffer: *tex-shell* ----------
Runaway argument?
{sorting indices, for more information about sorting
indices.) @refill @ETC.
! Paragraph ended before @xref was complete.
<to be read again>
                   @par
l.27

?
---------- Buffer: *tex-shell* ----------

ÀÌ °æ¿ì¿¡, TeXÀº Á¤È®ÇÏ°í ÀÌÇØÇÒ ¼ö ÀÖ´Â ¾Ö·¯ ¸Þ¼¼Áö¸¦ ³½´Ù:

Paragraph ended before @xref was complete.

`@par'´Â Texinfo¿Í´Â ÀüÇô °ü°è°¡ ¾ø´Â TeX ³»ºÎ ¸í·É¾îÀÌ´Ù. `1.27'Àº ÀÌ TexinfoÀÇ 27¹ø° ÁÙ¿¡¼­ ¹®Á¦¸¦ ¹ß°ßÇß´Ù´Â ¶æÀÌ´Ù. `?'´Â ÀÌ·¯ÇÑ »óȲ¿¡¼­ TeXÀÌ »ç¿ëÇÏ´Â ÇÁ·ÒÇÁÆ®ÀÌ´Ù.

ºÒÇàÈ÷µµ, TeXÀº ¾ðÁ¦³ª µµ¿òÀ» ÁÖÁö´Â ¸øÇÑ´Ù. ±×¸®°í ¶§·Î ¾îµð°¡ À߸øµÇ¾ú´ÂÁö ãÀ¸·Á¸é ¼È·ÏȨÁî¿Í °°¾Æ¾ß ÇÑ´Ù.

¾î¶² °æ¿ì¤§¤¤, ÀÌ¿Í °°Àº ¹®Á¦¸¦ ¸¸³ª¸é, ´ÙÀ½ ¼¼°¡ÁöÁß Çϳª¸¦ ÇÒ ¼ö ÀÖ´Ù.

  1. `?' ÇÁ·ÒÇÁÆ®¿¡ ´ëÇØ RET¸¦ ´­·¯ TeXÀÌ ½ÇÇàÀ» °è¼ÓÇÏ°í, ÀÌ ¾Ö·¯¸¦ ¹«½ÃÇϵµ·Ï ÇÑ´Ù.
  2. `?' ÇÁ·ÒÇÁÆ®¿¡ ´ëÇØ r RETÀ» ´­·¯ °¡´ÉÇÑÇÑ ¸ðµç ¾Ö·¯¸¦ ¹«½ÃÇÏ°í ½ÇÇàÀ» °è¼ÓÇϵµ·Ï ÇÑ´Ù. ¾î¶² °æ¿ì¿¡´Â ÀÌ°ÍÀÌ ÃÖ¼±ÀÌ´Ù. ÇÏÁö¸¸, Á¶½ÉÇϱ⠹ٶõ´Ù: ÇÑ°³ÀÇ ¾Ö·¯´Â ±× °á°ú°¡ ÆÄÀÏÀÇ ³ª¸ÓÁö ºÎºÐ¿¡°Ô±îÁö ¿µÇâÀ» ¹ÌÃÄ °è¼ÓÇؼ­ ¾Ö·¯ ¸Þ¼¼Áö¸¦ ¸¸µé¾î ³»´Â ¼öµµ ÀÖ´Ù. TeX¿¡¼­ ±×·± ¾Ö·¯ ¸Þ¼¼ÁöÀÇ »çÅ°¡ ³ªÁö ¾Êµµ·Ï ÇÏ·Á¸é, C-c¸¦ ´©¸¥´Ù. (ȤÀº Emacs³»¿¡¼­ ¼ÐÀ» ½ÇÇàÇÑ´Ù¸é C-c C-cÀ» ´©¸¥´Ù.)
  3. `?' ÇÁ·ÒÇÁÆ®¿¡ ´ëÇØ x RETÀ» ´­·¯ TeXÀÌ ½ÇÇàÀ» Áß´ÜÇϵµ·Ï ÇÑ´Ù.

Emacs¿¡¼­ TeXÀ» ½ÇÇàÇÏ°í ÀÖ´Ù¸é ±â¾ïÇϱ⠹ٶõ´Ù. ¼Ð ¹öÆÛ¿¡ µé¾î °£ ´ÙÀ½ TeXÀÌ `?' ÇÁ·ÒÇÁÆ®¸¦ Ç¥½ÃÇÏ´Â ÁÙ¿¡ Æ÷ÀÎÆ®¸¦ À§Ä¡ÇØ¾ß ÇÑ´Ù.

°¡²û TeXÀº ¹®Á¦°¡ Àִµ¥µµ ºÒ±¸ÇÏ°í ¾Ö·¯ ¸Þ¼¼Áö¸¦ ³»Áö ¾Ê°í ÆÄÀÏÀ» Æ÷¸ÅÆÃÇÏ´Â °æ¿ì°¡ ÀÖ´Ù. ÀÌ·± °æ¿ì´Â º¸Åë ¾î¶² ¸í·ÉÀÌ ³¡³ªÁö ¾Ê¾Ò´Âµ¥ ¾î·µç TeXÀÌ Ã³¸®¸¦ °è¼Ó ÇÒ ¼ö ÀÖ´Â °æ¿ì¿¡ ÀϾ´Ù. ¿¹¸¦ µé¾î, ¸¸¾à ¹øÈ£ ¾ø´Â ¸®½ºÆ®¸¦ ³¡³»´Â @end itemize ¸í·ÉÀ» ¾²Áö ¾Ê¾Ò´Ù¸é, TeXÀº DVI ÆÄÀÏÀ» ¾µ °ÍÀÌ°í ±×°É ÀμâÇÒ ¼ö ÀÖ´Ù. TeXÀÌ Ç¥½ÃÇÒ ¼ö ÀÖ´Â À¯ÀÏÇÑ ¸Þ¼¼Áö´Â ´ÙÀ½°ú °°ÀÌ Á» ½Åºñ½º·¯¿î ÄÚ¸àÆ®ÀÌ´Ù:

(@end occurred inside a group at level 1)

ÇÏÁö¸¸, DVI ÆÄÀÏÀ» ÀμâÇÒ ¼ö ÀÖ´Ù¸é ¹øÈ£ ¾ø´Â ¸®½ºÆ® ÀÌÈÄÀÇ ÆÄÀÏÀÌ ÀüºÎ ±× ¸®½ºÆ®ÀÇ ÀϺκÐÀÎ °Íó·³ µé¿© ¾²±â µÇ¾î ÀÖ´Ù´Â °ÍÀÀ¤© ¾Ë¾Æ³¾ °ÍÀÌ´Ù. À§ÀÇ ¾Ö·¯ ¸Þ¼¼Áö´Â @end ¸í·ÉÀÌ ÆÄÀÏÀÇ ¾îµò°¡¿¡ ³ªÅ¸³ª±â¸¦ ±â´ëÇÑ´Ù°í ¸»ÇÏ´Â ¹æ¹ýÀÌ´Ù; ÇÏÁö¸¸, TeXÀº ¾îµð¿¡ ÀÌ ¸í·ÉÀÌ ÇÊ¿äÇÑÁö´Â ¾ËÁö ¸øÇÑ´Ù.

°¡Àå ã±â ¾î·Æ±â·Î ¾Ç¸í³ôÀº ¶Ç ÇѳªÀÇ ¾Ö·¯´Â @end group ¸í·ÉÀÌ ¾ø´Â °æ¿ìÀÌ´Ù. ¸¸¾à ÀÌÇØÇÒ ¼ö ¾ø´Â ¾Ö·¯¿¡ ¸Â´Ú¶ß¸°´Ù¸é ¸ÕÀú @end group ¸í·ÉÀ» »©¸Ô¾ú´ÂÁö ¾Ë¾Æº¸¶ó.

¸¸¾à Texinfo ÆÄÀÏ¿¡ Çì´õ ÁÙÀÌ ¾ø´Ù¸é, TeXÀº ½ÃÀÛÇÒ ¶§ ½ÇÇàÀ» ¸ØÃß°í, ´ÙÀ½°ú °°ÀÌ Ãâ·ÂÇÒ °ÍÀÌ´Ù. `*'´Â TeXÀÌ ÀÔ·ÂÀ» ±â´Ù¸°´Ù´Â ¶æÀÌ´Ù.

This is TeX, Version 3.14159 (Web2c 7.0)
(test.texinfo [1])
*

ÀÌ °æ¿ì¿¡, ±×³É \end RETÀ» º°Ç¥ ´ÙÀ½¿¡ ŸÀÌÇÁÇÑ´Ù. ±×¸®°í Texinfo ÆÄÀÏ¿¡¼­ Çì´õ ¶óÀÎÀ» ¾²°í TeX ¸í·ÉÀ» ´Ù½Ã ½ÇÇàÇÑ´Ù. (¹é½½·¡½¬, `\'¸¦ ¾´´Ù´Â °Í¿¡ À¯ÀÇÇ϶ó. TeXÀº `@' ´ë½Å¿¡ `\'¸¦ »ç¿ëÇÑ´Ù; ±×¸®°í ÀÌ·± »óȲ¿¡¼­´Â, Texinfo°¡ ¾Æ´Ï¶ó Á÷Á¢ TeX°ú ÀÛ¾÷ÇÏ´Â °ÍÀÌ´Ù.)

Using texinfo-show-structure

Texinfo ÆÄÀÏÀÇ ³ëµå, Àå, Àý, ±×¸®°í ¾Æ·¡ÀýµéÀ» ã´Â °ÍÀº ½¬¿î Àϸ¸Àº ¾Æ´Ï´Ù. ƯÈ÷ ´Ù¸¥ »ç¶÷ÀÌ ¾´ Texinfo ÆÄÀÏÀ» °»½ÅÇϰųª Ãß°¡ÇÒ ¶§ ´õ¿í ±×·¸´Ù.

GNU EmacsÀÇ Texinfo ¸ðµå¿¡¼­, texinfo-show-structure ¸í·ÉÀº ¹®¼­ÀÇ ±¸Á¶¸¦ ÁöÁ¤ÇÏ´Â @-¸í·Éµé·Î ½ÃÀÛÇÏ´Â ¸ðµç ÁÙÀ» ¿­°ÅÇÑ´Ù: ±× ¸í·ÉµéÀº @chapter, @section, @appendix µîÀÌ´Ù. ÀÌ ¸í·É¿¡ ÀÎÀÚ¸¦ ÁÖ¸é(ÀÎÅÍ·¢Æ¼ºê ¸í·ÉÀ̶ó¸é C-u¸¦ ¾Õ¿¡ ºÙ´Â ÀÎÀÚ·Î ¾´´Ù), ÀÌ ¸í·ÉÀº @node ÁÙ±îÁö º¸¿©ÁØ´Ù. texinfo-show-structure ¸í·ÉÀº Texinfo ¸ðµå¿¡¼­ ±âº»ÀûÀ¸·Î C-c C-s·Î ½ÇÇàÇÒ ¼ö ÀÖ´Ù.

`*Occur*' ¹öÆÛ¶ó´Â ¹öÆÛ¿¡ ÀÌ ÁÙµéÀÌ ±× °èÃþ ´Ü°è¿¡ µû¶ó µé¿©¾²±â µÇ¾î Ç¥½ÃµÈ´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½Àº ÀÌ ¸Å´º¾ó¿¡ ´ëÇØ texinfo-show-structure¸¦ ½ÇÇàÇÑ °á°úÀÌ´Ù.

 Lines matching "^@\\(chapter \\|sect\\|subs\\|subh\\|
 unnum\\|major\\|chapheading \\|heading \\|appendix\\)"
 in buffer texinfo.texi.
 ...
 4177:@chapter Nodes
 4198:    @heading Two Paths
 4231:    @section Node and Menu Illustration
 4337:    @section The @code{@@node} Command
 4393:        @subheading Choosing Node and Pointer Names
 4417:        @subsection How to Write an @code{@@node} Line
 4469:        @subsection @code{@@node} Line Tips
 ...

ÀÌ°ÍÀº `texinfo.texi' ÆÄÀÏÀÇ 4337, 4393, 4417¹ø° ÁÙÀÌ °¢°¢ @section, @subheading, ±×¸®°í @subsectionÀ¸·Î ½ÃÀÛÇÑ´Ù´Â °ÍÀ» ¶æÇÑ´Ù. ¸¸¾à Ä¿¼­¸¦ `*Occur*' À©µµ¿ì¿¡ ¿Å±â¸é, Ä¿¼­¸¦ ÀÌ ÁÙµé Áß Çϳª¿¡ ¿Ã·Á ³õÀº ´ÙÀ½ C-c C-c ¸í·ÉÀ» ½ÇÇàÇÏ¿© (occur-mode-goto-occurrence), ÀÌ Texinfo ÆÄÀÏÀÇ ÇØ´çµÇ´Â ÁöÁ¡À¸·Î À̵¿ÇÒ ¼ö ÀÖ´Ù. occur-mode-goto-occurrence¿¡ ´ëÇÑ ´õ ¸¹Àº Á¤º¸´Â See section `Using Occur' in The GNU Emacs Manual.

`*Occur*' À©µµ¿ìÀÇ Ã¹¹ø° ÁÙÀº texinfo-heading-patternÀ¸·Î ÁöÁ¤ÇÏ´Â regular expressionÀÌ ÀûÇô ÀÖ´Ù. ÀÌ regular expressionÀº texinfo-show-structure°¡ ã´Â ÆÐÅÏÀÌ´Ù. ´õ ÀÚ¼¼ÇÑ Á¤º¸´Â See section `Using Regular Expressions' in The GNU Emacs Manual.

texinfo-show-structure ¸í·ÉÀ» ½ÇÇàÇÒ ¶§, Emacs´Â Àüü ¹öÆÛÀÇ ±¸Á¶¸¦ Ç¥½ÃÇÒ °ÍÀÌ´Ù. ¸¸¾à ¹öÆÛÀÇ ÀϺÎÀÇ ±¸Á¶¸¸À» º¸°í ½Í´Ù¸é, ¿¹¸¦ µé¾î ÇÑ°³ ÀåÀÇ ±¸Á¶¸¸À» º¸°í ½Í´Ù¸é C-x n n (narrow-to-region) ¸í·ÉÀ¸·Î ¸®ÀüÀ» Ç¥½ÃÇÑ´Ù. (See section `Narrowing' in The GNU Emacs Manual.) ÀÌ·± ¹æ¹ýÀ¸·Î À§ÀÇ ¿¹°¡ ¸¸µé¾î Áø °ÍÀÌ´Ù. (´Ù½Ã Àüü ¹öÆÛ¸¦ º¸·Á¸é, C-x n w (widen.)À» »ç¿ëÇÑ´Ù.)

¸¸¾à C-u C-c C-s¿Í °°ÀÌ Å¸ÀÌÇÁÇÏ¿© ¾Õ¿¡ ÀÎÀÚ¸¦ ºÙ¿© texinfo-show-structure¸¦ ½ÇÇàÇϸé, @chapter, @section°ú °°Àº @-Ç¥½Ã ¸í·ÉÀ¸·Î ½ÃÀÛÇÏ´Â ÁÙ°ú ¸¶Âù°¡Áö·Î @node·Î ½ÃÀÛÇÏ´Â ÁÙµµ ¿­°ÅÇÒ °ÍÀÌ´Ù.

`*Occur*' À©µµ¿ìÀÇ ¸®½ºÆ®¸¦ º¸°í, Texinfo ÆÄÀÏÀÇ ±¸Á¶¸¦ »ó±âÇÒ ¼ö ÀÖ´Ù; ±×¸®°í À߸ø À̸§ºÙÀÎ ³ëµå°¡ Àְųª ÀýÀ» »©¸Ô¾ú´Ù¸é, ÀÌ ¸®½ºÆ®¸¦ º¸°í ±× À߸øÀ» °íÄ¥ ¼ö ÀÖ´Ù.

Tagifying a File

After creating an unsplit Info file, you must create a tag table for it. Visit the Info file you wish to tagify and type:

M-x Info-tagify

(Note the upper case `I' in Info-tagify.) This creates an Info file with a tag table that you can validate.

The third step is to validate the Info file:

M-x Info-validate

(Note the upper case `I' in Info-validate.) In brief, the steps are:

C-u M-x texinfo-format-buffer
M-x Info-tagify
M-x Info-validate

After you have validated the node structure, you can rerun texinfo-format-buffer in the normal way so it will construct a tag table and split the file automatically, or you can make the tag table and split the file manually.

Using occur

Sometimes the texinfo-show-structure command produces too much information. Perhaps you want to remind yourself of the overall structure of a Texinfo file, and are overwhelmed by the detailed list produced by texinfo-show-structure. In this case, you can use the occur command directly. To do this, type

M-x occur

and then, when prompted, type a regexp, a regular expression for the pattern you want to match. (See section `Regular Expressions' in The GNU Emacs Manual.) The occur command works from the current location of the cursor in the buffer to the end of the buffer. If you want to run occur on the whole buffer, place the cursor at the beginning of the buffer.

For example, to see all the lines that contain the word `@chapter' in them, just type `@chapter'. This will produce a list of the chapters. It will also list all the sentences with `@chapter' in the middle of the line.

If you want to see only those lines that start with the word `@chapter', type `^@chapter' when prompted by occur. If you want to see all the lines that end with a word or phrase, end the last word with a `$'; for example, `catching mistakes$'. This can be helpful when you want to see all the nodes that are part of the same chapter or section and therefore have the same `Up' pointer.

See section `Using Occur' in The GNU Emacs Manual, for more information.

Finding Badly Referenced Nodes

You can use the Info-validate command to check whether any of the `Next', `Previous', `Up' or other node pointers fail to point to a node. This command checks that every node pointer points to an existing node. The Info-validate command works only on Info files, not on Texinfo files.

The makeinfo program validates pointers automatically, so you do not need to use the Info-validate command if you are using makeinfo. You only may need to use Info-validate if you are unable to run makeinfo and instead must create an Info file using texinfo-format-region or texinfo-format-buffer, or if you write an Info file from scratch.

Running Info-validate

To use Info-validate, visit the Info file you wish to check and type:

M-x Info-validate

(Note that the Info-validate command requires an upper case `I'. You may also need to create a tag table before running Info-validate. See section Tagifying a File.)

If your file is valid, you will receive a message that says "File appears valid". However, if you have a pointer that does not point to a node, error messages will be displayed in a buffer called `*problems in info file*'.

For example, Info-validate was run on a test file that contained only the first node of this manual. One of the messages said:

In node "Overview", invalid Next: Texinfo Mode

This meant that the node called `Overview' had a `Next' pointer that did not point to anything (which was true in this case, since the test file had only one node in it).

Now suppose we add a node named `Texinfo Mode' to our test case but we do not specify a `Previous' for this node. Then we will get the following error message:

In node "Texinfo Mode", should have Previous: Overview

This is because every `Next' pointer should be matched by a `Previous' (in the node where the `Next' points) which points back.

Info-validate also checks that all menu entries and cross references point to actual nodes.

Note that Info-validate requires a tag table and does not work with files that have been split. (The texinfo-format-buffer command automatically splits large files.) In order to use Info-validate on a large file, you must run texinfo-format-buffer with an argument so that it does not split the Info file; and you must create a tag table for the unsplit file.

Creating an Unsplit File

You can run Info-validate only on a single Info file that has a tag table. The command will not work on the indirect subfiles that are generated when a master file is split. If you have a large file (longer than 70,000 bytes or so), you need to run the texinfo-format-buffer or makeinfo-buffer command in such a way that it does not create indirect subfiles. You will also need to create a tag table for the Info file. After you have done this, you can run Info-validate and look for badly referenced nodes.

The first step is to create an unsplit Info file. To prevent texinfo-format-buffer from splitting a Texinfo file into smaller Info files, give a prefix to the M-x texinfo-format-buffer command:

C-u M-x texinfo-format-buffer

or else

C-u C-c C-e C-b

When you do this, Texinfo will not split the file and will not create a tag table for it.

Splitting a File Manually

You should split a large file or else let the texinfo-format-buffer or makeinfo-buffer command do it for you automatically. (Generally you will let one of the formatting commands do this job for you. See section Creating an Info File.)

The split-off files are called the indirect subfiles.

Info files are split to save memory. With smaller files, Emacs does not have make such a large buffer to hold the information.

If an Info file has more than 30 nodes, you should also make a tag table for it. See section Running Info-validate, for information about creating a tag table. (Again, tag tables are usually created automatically by the formatting command; you only need to create a tag table yourself if you are doing the job manually. Most likely, you will do this for a large, unsplit file on which you have run Info-validate.)

Visit the Info file you wish to tagify and split and type the two commands:

M-x Info-tagify
M-x Info-split

(Note that the `I' in `Info' is upper case.)

When you use the Info-split command, the buffer is modified into a (small) Info file which lists the indirect subfiles. This file should be saved in place of the original visited file. The indirect subfiles are written in the same directory the original file is in, with names generated by appending `-' and a number to the original file name.

The primary file still functions as an Info file, but it contains just the tag table and a directory of subfiles.


Go to the first, previous, next, last section, table of contents.