¹®¼ ³»¿ëÀÇ ½Ç ¼ö ÀÌ¿Ü¿¡, 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
¸¦ »ç¿ëÇÏÁö ¸øÇϰųª, ¹®Á¦°¡ ¸Å¿ì
ÇØ°áÇϱ⠾î·Æ´Ù¸é, ÀÌ ºÎ·Ï¿¡ ¼³¸íµÈ µµ±¸µéÀ» »ç¿ëÇÏ¸é µÈ´Ù.
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'¿¡¼ ´Ù½Ã µ¹¾Æ¿Ã ¼ö ÀÖ´Ù.)
¶Ç, 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Àº ¾ðÁ¦³ª µµ¿òÀ» ÁÖÁö´Â ¸øÇÑ´Ù. ±×¸®°í ¶§·Î ¾îµð°¡ À߸øµÇ¾ú´ÂÁö ãÀ¸·Á¸é ¼È·ÏȨÁî¿Í °°¾Æ¾ß ÇÑ´Ù.
¾î¶² °æ¿ì¤§¤¤, ÀÌ¿Í °°Àº ¹®Á¦¸¦ ¸¸³ª¸é, ´ÙÀ½ ¼¼°¡ÁöÁß Çϳª¸¦ ÇÒ ¼ö ÀÖ´Ù.
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°ú ÀÛ¾÷ÇÏ´Â °ÍÀÌ´Ù.)
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 ÆÄÀÏÀÇ ±¸Á¶¸¦ »ó±âÇÒ ¼ö ÀÖ´Ù; ±×¸®°í À߸ø À̸§ºÙÀÎ ³ëµå°¡ Àְųª ÀýÀ» »©¸Ô¾ú´Ù¸é, ÀÌ ¸®½ºÆ®¸¦ º¸°í ±× À߸øÀ» °íÄ¥ ¼ö ÀÖ´Ù.
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.
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.
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.
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.
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.
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.