home *** CD-ROM | disk | FTP | other *** search
/ OpenStep 4.2 / Openstep-4.2-Intel-User.iso / usr / lib / emacs / info / texinfo-2 < prev    next >
Text File  |  1991-01-10  |  50KB  |  1,406 lines

  1. Info file ../info/texinfo, produced by Makeinfo, -*- Text -*- from
  2. input file texinfo.texinfo.
  3.  
  4. This file documents Texinfo, a documentation system that uses a
  5. single source file to produce both on-line help and a printed manual.
  6.  
  7. This is edition 1.1 of the Texinfo documentation, and is for the
  8. Texinfo that is distributed as part of Version 18 of GNU Emacs.
  9.  
  10. Copyright (C) 1988 Free Software Foundation, Inc.
  11.  
  12. Permission is granted to make and distribute verbatim copies of this
  13. manual provided the copyright notice and this permission notice are
  14. preserved on all copies.
  15.  
  16. Permission is granted to copy and distribute modified versions of
  17. this manual under the conditions for verbatim copying, provided that
  18. the entire resulting derived work is distributed under the terms of a
  19. permission notice identical to this one.
  20.  
  21. Permission is granted to copy and distribute translations of this
  22. manual into another language, under the above conditions for modified
  23. versions, except that this permission notice may be stated in a
  24. translation approved by the Foundation.
  25.  
  26.  
  27. 
  28. File: texinfo,  Node: Indices,  Prev: Contents,  Up: Ending a File
  29.  
  30. Creating Indices
  31. ================
  32.  
  33. Using Texinfo, you can generate printed indices and Info file menus
  34. without having to sort and collate entries manually.  Texinfo will do
  35. this for you automatically.  Each index covers a certain kind of
  36. entry (functions, or variables, or concepts, etc.) and lists all of
  37. those entries in alphabetical order, together with information on how
  38. to find the discussion of each entry.  In a printed manual, this
  39. information consists of page numbers.  In an Info file, it consists
  40. of a menu item leading to the first node referenced.
  41.  
  42. When you are making index entries, it is good practice to think of
  43. the different categories under which people may look for something. 
  44. Different people *do not* think of the same words when they look
  45. something up.  They think of different words.  A helpful index will
  46. have items indexed under all the different words that people may use.
  47. For example, someone might think it obvious that the two letter names
  48. for indices should be listed under "Indices, two letter names", since
  49. the word "Index" is the general concept.  But another reader may
  50. remember the specific concept of two letter names and search for the
  51. entry listed as "Two letter names for indices".  A good index will
  52. have both entries and will help both kinds of user.
  53.  
  54. Like typesetting, the construction of an index is a highly skilled,
  55. professional art, the subtleties of which are not appreciated until
  56. you have to do it yourself.
  57.  
  58. Normally, six indices are provided for:
  59.  
  60.    * A "program index" listing names of programs and leading to the
  61.      places where those programs are documented.
  62.  
  63.    * A "function index" listing functions (such as, entry points of
  64.      libraries).
  65.  
  66.    * A "variables index" listing variables (such as, external
  67.      variables of libraries).
  68.  
  69.    * A "data type index" listing data types (such as, structures
  70.      defined in header files).
  71.  
  72.    * A "keystroke index" listing keyboard commands.
  73.  
  74.    * A "concept index" listing concepts that are discussed.
  75.  
  76. Not every manual needs all of these.  This manual has two indices: a
  77. concept index and an @-command index (that uses the function index
  78. but is called a command index in the chapter heading).  Two or more
  79. indices can be combined into one using the `@synindex' command. 
  80. *Note Combining Indices::.
  81.  
  82. * Menu:
  83.  
  84. * Index Entries::    Defining the entries of an index
  85. * Combining Indices::
  86. * Printing Indices & Menus::
  87.  
  88.  
  89. 
  90. File: texinfo,  Node: Index Entries,  Next: Combining Indices,  Up: Indices
  91.  
  92. Defining the Entries of an Index
  93. --------------------------------
  94.  
  95. The data to make an index comes from many individual commands
  96. scattered throughout the Texinfo source file.  Each command says to
  97. add one entry to a particular index; after processing, it will give
  98. the current page number or node name as the reference.
  99.  
  100. `@cindex CONCEPT'
  101.      Make an entry in the concept index for CONCEPT, referring to the
  102.      current page or node.
  103.  
  104. `@findex FUNCTION'
  105.      Make an entry in the function index for FUNCTION, referring to
  106.      the current page or node.
  107.  
  108. `@vindex VARIABLE'
  109.      Make an entry in the variable index for VARIABLE, referring to
  110.      the current page or node.
  111.  
  112. `@pindex PROGRAM'
  113.      Make an entry in the program index for PROGRAM, referring to the
  114.      current page or node.
  115.  
  116. `@kindex KEY'
  117.      Make an entry in the key index for KEY, referring to the current
  118.      page or node.
  119.  
  120. `@tindex DATA TYPE'
  121.      Make an entry in the data type index for DATA TYPE, referring to
  122.      the current page or node.
  123.  
  124. If the same name is indexed on several pages, all the pages are
  125. listed in the printed manual's index.  However, *only* the *first*
  126. node referenced will appear in the index of an Info file.  This means
  127. that it is best to write indices in which each entry will refer to
  128. only one place in the Texinfo file.  Fortunately, this constraint is
  129. a feature rather than loss since it means that the index will be easy
  130. to use.  Otherwise, it can be easy to create an index which has many
  131. pages listed for an entry and you don't know which one you need.
  132.  
  133. You are not actually required to use indices for their canonical
  134. purposes.  For example, you might wish to index some C preprocessor
  135. macros.  You could put them in the function index along with actual
  136. functions, just by writing `@findex' commands for them; then, when
  137. you print the "function index", you could give it the title `Function
  138. and Macro Index' and all will be consistent for the reader.  Or you
  139. could put the macros in with the data types by writing `@tindex'
  140. commands for them, and give that index a suitable title so the reader
  141. will understand.
  142.  
  143.  
  144. 
  145. File: texinfo,  Node: Combining Indices,  Next: Printing Indices & Menus,  Prev: Index Entries,  Up: Indices
  146.  
  147. Combining Indices
  148. -----------------
  149.  
  150. Sometimes you will want to combine two disparate indices such as
  151. functions and variables, perhaps because you have few enough of one
  152. of them that a separate index for them would look silly.
  153.  
  154. You could put variables into the function index by writing `@findex'
  155. commands for them instead of `@vindex' commands, and produce a
  156. consistent manual by printing the function index with the title
  157. `Function and Variable Index' and not printing the `Variable Index'
  158. at all; but this is not a robust procedure.  It works only as long as
  159. your document is never included in part of or together with another
  160. document that is designed to have a separate variable index; if you
  161. did that, the variables from your document and those from the other
  162. would not end up together.
  163.  
  164. What you should do instead when you want functions and variables in
  165. one index is to index the variables with `@vindex' as they should be,
  166. but use the `@synindex' command to redirect these `@vindex' commands
  167. to the function index.  `@synindex' takes two arguments: the name of
  168. an index to redirect, and the name of an index to redirect it to. 
  169. For this purpose, the indices are given two-letter names:
  170.  
  171. `cp'
  172.      the concept index
  173.  
  174. `vr'
  175.      the variable index
  176.  
  177. `fn'
  178.      the function index
  179.  
  180. `ky'
  181.      the key index
  182.  
  183. `pg'
  184.      the program index
  185.  
  186. `tp'
  187.      the data type index
  188.  
  189. Thus, `@synindex vr fn' at the front of a Texinfo file will cause all
  190. entries designated for the variable index to go to the function index
  191. instead.
  192.  
  193.  
  194. 
  195. File: texinfo,  Node: Printing Indices & Menus,  Prev: Combining Indices,  Up: Indices
  196.  
  197. Printing an Index and Generating Menus
  198. --------------------------------------
  199.  
  200. To print an index means to include it as part of a manual or Info file.
  201. This does not happen automatically just because you use `@cindex' or
  202. other index-entry generating commands in the Texinfo file; those just
  203. cause the raw data for the index to be accumulated.  To print an
  204. index, you must include the `@printindex' command at the place in the
  205. document where you want the index to appear.  Also, for the case of
  206. the printed manual, you must run a program called `texindex' to sort
  207. the raw data to produce a sorted index file, which is what will
  208. actually be used to print the index.
  209.  
  210. The Texinfo command that is used to print indices is `@printindex'. 
  211. It takes the two-letter index name (*note Combining Indices::.) as an
  212. argument without braces, and reads the corresponding sorted index
  213. file and formats it appropriately into an index.
  214.  
  215. The two-letter index names are:
  216.  
  217. `cp'
  218.      the concept index.
  219.  
  220. `vr'
  221.      the variable index.
  222.  
  223. `fn'
  224.      the function index.
  225.  
  226. `ky'
  227.      the key index.
  228.  
  229. `pg'
  230.      the program index.
  231.  
  232. `tp'
  233.      the data type index.
  234.  
  235. `@printindex' does not generate a chapter heading for the index. 
  236. Consequently, you should precede the command with a suitable section
  237. or chapter command (usually `@unnumbered') to supply the chapter
  238. heading and put the index into the table of contents.  And before
  239. that, you will probably put a `@node' command.  For example,
  240.  
  241.      @node Variables Index, Concept Index, Function Index, Top
  242.      @comment    node-name,          next,       previous,  up
  243.      @unnumbered Variable Index
  244.      
  245.      @printindex vr
  246.      
  247.      @node     Concept Index,     , Variables Index, Top
  248.      @comment      node-name, next,        previous,  up
  249.      @unnumbered Concept Index
  250.      
  251.      @printindex cp
  252.      
  253.      @summarycontents
  254.      @contents
  255.      @bye
  256.  
  257. In TeX, `@printindex' needs a sorted index file to work from.  TeX
  258. does not know how to do sorting; this is one of the main deficiencies
  259. of TeX.  You must invoke the program `texindex' to do so, giving it
  260. the names of the raw index files to be sorted as arguments.  You do
  261. not have to run `texindex' on all of them; only the ones you are
  262. going to print.  (*Note Printing Hardcopy::, for more information.)
  263.  
  264.  
  265. 
  266. File: texinfo,  Node: Structuring,  Next: Quotations and Examples,  Prev: Ending a File,  Up: Top
  267.  
  268. Node and Chapter Structuring
  269. ****************************
  270.  
  271. The chapter structuring commands divide a document into a hierarchy
  272. of chapters, sections, subsections and subsubsections.  These
  273. commands generate large headings.
  274.  
  275. In a printed manual, the table of contents is based on the
  276. information specified by the chapter structuring commands.
  277.  
  278. Although the chapter structuring commands used for creating a printed
  279. document are entirely different from the node commands for
  280. structuring an Info file, you are likely to use the two kinds of
  281. command together since the single Texinfo file is usually designed to
  282. be read both as an Info file and as a printed manual.  The only time
  283. you are likely to use the chapter structuring commands without using
  284. the node structuring commands is if you are writing a document that
  285. will never be put into Info format, for example, a novel, a letter,
  286. an article or a memorandum.
  287.  
  288. It is unlikely that you will ever write a Texinfo file that is only
  289. intended as an on-line Info file and not as a printable document. 
  290. However, Texinfo is flexible enough so that you can do this if you
  291. wish.
  292.  
  293. Although a Texinfo file can be structured in a variety of ways, it is
  294. usually structured like a book with chapters, sections, subsections
  295. and the like.  This structure can also be visualized as a tree (or
  296. rather as an upside down tree) with the root at the top and each
  297. level corresponding to chapters or sections or whatnot.  In Info
  298. format, you reach the nodes on each level by using the the `Next' and
  299. `Previous' pointers in the node line.  For example, you go from one
  300. chapter to the next or previous chapter by using the the pointers to
  301. the next and previous chapters.  In Info, you go the level above by
  302. using an `Up' pointer and you go to the level below through a `Menu'.
  303. In the printed manual, cross references are indicated by page and
  304. section numbers; in the on-line file, cross references are specified
  305. by inline menu items.
  306.  
  307. Here is a diagram that shows a Texinfo file with three chapters; 
  308. each chapter has two sections.
  309.  
  310.                                       top
  311.                                        |
  312.                                        |
  313.                  ---------------------------------------------
  314.                 |                      |                      |
  315.                 |                      |                      |
  316.             Chapter 1              Chapter 2               Chapter 3
  317.                 |                      |                      |
  318.                 |                      |                      |
  319.            ----------             ----------              ----------          
  320.           |          |           |          |            |          |         
  321.       Sect. 1.1   Sect. 1.2   Sect. 2.1  Sect. 2.2    Sect. 3.1  Sect. 3.2     
  322.                                     
  323.  
  324. In this structure, the node for Chapter 2 looks like this:
  325.  
  326.      @node     Chapter 2,  Chapter 3, Chapter 1, top
  327.      @comment  node-name,  next,      previous,  up
  328.  
  329. To get to Sections 2.1 and 2.2, you need a menu inside of Chapter 2
  330. that says:
  331.  
  332.          @menu
  333.          * Sect. 2.1::    Description of this section.
  334.          * Sect. 2.2::  
  335.          @end menu
  336.  
  337. This menu is located inside Chapter 2, after the beginning of the
  338. chapter, just before Section 2.1.
  339.  
  340. Note that a menu entry has three parts: the menu item name, the name
  341. of the node and, optionally, a description of the item (in that
  342. order).  If the menu item name and the name of the node are the same,
  343. you can put two colons after the item name, as is shown in the
  344. example. (If the second part is different from the first, the first
  345. part is terminated by a colon and the second part terminated by a
  346. tab, newline, comma or period.) (*Note Menu::.)
  347.  
  348. The node for Sect. 2.1 will look like this:
  349.  
  350.          @node     Sect. 2.1, Sect. 2.2,         ,  Chapter 2
  351.          @comment  node-name, next,      previous,  up
  352.  
  353. This node does not have a `Previous' node.
  354.  
  355. Usually, an `@node' command and a chapter structuring command are
  356. used in sequence, along with indexing commands.  For example, the
  357. node for the chapter on ending a file looks like this:
  358.  
  359.      @node    Ending a File, Structuring, Beginning a File, Top
  360.      @comment node-name,     next,        previous,         up
  361.      @chapter Ending a Texinfo File
  362.      @cindex  Ending a Texinfo file
  363.      @cindex  Texinfo file ending
  364.      @cindex  File ending
  365.  
  366. The chapter structuring commands fall into four groups that have the
  367. characteristics of chapters, sections, subsections and subsubsections.
  368. The groups are:
  369.  
  370. `@chapter'
  371. `@unnumbered'
  372. `@appendix'
  373.      For chapters and chapter-like parts of a document.
  374.  
  375. `@section'
  376. `@unnumberedsec'
  377. `@appendixsec'
  378.      For sections and section-like parts of a document.
  379.  
  380. `@subsection'
  381. `@unnumberedsubsec'
  382. `@appendixsubsec'
  383.      For subsections and subsection-like parts of a document.
  384.  
  385. `@subsubsection'
  386. `@unnumberedsubsubsec'
  387. `@appendixsubsubsec'
  388.      For subsubsections and subsubsection-like parts of a document.
  389.  
  390. In the sections that follow, the chapter structuring commands are
  391. described first and then the `@node' and `@menu' commands.
  392.  
  393. * Menu:
  394.  
  395. * Chapter::        
  396. * Unnumbered and Appendix::
  397. * Section::
  398. * Subsection::
  399. * Subsubsection::
  400. * Node::
  401. * Menu::
  402.  
  403.  
  404. 
  405. File: texinfo,  Node: Chapter,  Next: Unnumbered and Appendix,  Up: Structuring
  406.  
  407. @chapter
  408. ========
  409.  
  410. `@chapter' identifies a chapter in the document.  It is followed by a
  411. single argument which is the rest of the line, as in
  412.  
  413.      @chapter Node and Chapter Structuring
  414.  
  415. In TeX, it creates a chapter in the document, specifying the chapter
  416. title.
  417.  
  418. In the Info file, `@chapter' causes its argument to appear on a line
  419. by itself, with a line of asterisks inserted underneath.  Thus, the
  420. above example produces the following output:
  421.  
  422.      Node and Chapter Structuring
  423.      ****************************
  424.  
  425.  
  426. 
  427. File: texinfo,  Node: Unnumbered and Appendix,  Next: Section,  Prev: Chapter,  Up: Structuring
  428.  
  429. @unnumbered, @appendix
  430. ======================
  431.  
  432. These commands are equivalent to `@chapter' for Info file output. 
  433. (*Note Chapter::.)  In a printed manual, they generate chapters that
  434. are numbered differently in the table of contents.  `@unnumbered'
  435. chapters appear without chapter numbers of any kind, and `@appendix'
  436. chapters are given a letter instead of a number.
  437.  
  438.  
  439. 
  440. File: texinfo,  Node: Section,  Next: Subsection,  Prev: Unnumbered and Appendix,  Up: Structuring
  441.  
  442. @section
  443. ========
  444.  
  445. `@section' is like `@chapter' except that in TeX it makes a section
  446. rather than a chapter.  (*Note Chapter::.)  Sections go within
  447. chapters.  In the Info file, `@chapter' and `@section' differ only in
  448. that `@section' underlines with `='.  For example,
  449.  
  450.      This is a section
  451.      =================
  452.  
  453. @unnumberedsec, @appendixsec
  454. ============================
  455.  
  456. Use these constructs for sections within chapters made by
  457. `@unnumbered' or `@appendix'. (*Note Section::.)
  458.  
  459.  
  460. 
  461. File: texinfo,  Node: Subsection,  Next: Subsubsection,  Prev: Section,  Up: Structuring
  462.  
  463. @subsection
  464. ===========
  465.  
  466. Subsections are to sections as sections are to chapters. (*Note
  467. Section::.) They are underlined with `-'.  For example,
  468.  
  469.      This is a subsection
  470.      --------------------
  471.  
  472. @unnumberedsubsec, @appendixsubsec
  473. ==================================
  474.  
  475. Use these constructs for subsections within sections within chapters
  476. made by `@unnumberedsec' or `@appendixsec'.  (*Note Subsection::.)
  477.  
  478.  
  479. 
  480. File: texinfo,  Node: Subsubsection,  Next: Node,  Prev: Subsection,  Up: Structuring
  481.  
  482. @subsubsection And Other Subsection Commands
  483. ============================================
  484.  
  485. Subsubsections are to subsections as subsections are to sections. 
  486. (*Note Subsection::.)  They are underlined with periods.  The
  487. equivalent commands for `@unnumberedsubsec' and `@appendixsubsec' are
  488. `@unnumberedsubsubsec' and `@appendixsubsubsec'.  For example,
  489.  
  490.      This is a subsubsection
  491.      .......................
  492.  
  493.  
  494. 
  495. File: texinfo,  Node: Node,  Next: Menu,  Prev: Subsubsection,  Up: Structuring
  496.  
  497. @node
  498. =====
  499.  
  500. `@node' defines the beginning of a new node in the Info output file
  501. (*note info: (info)Top.).  It is followed by four arguments,
  502. separated by commas, that make up the rest of the line.  Since it is
  503. often hard to remember the order in which are arguments are listed,
  504. `texinfo-mode' provides the `C-c C-c n' command
  505. (`texinfo-insert-@node') which automatically inserts a comment line
  506. listing the arguments.  For example,
  507.  
  508.      @node    Texinfo Mode, Beginning a File,  Overview, Top    
  509.      @comment node-name,    next,              previous, up
  510.  
  511. defines a node named `Texinfo Mode', whose `Next' pointer is to node
  512. `Beginning a File', whose `Previous' pointer is to node `Overview',
  513. and whose `Up' pointer is to node `Top'.  What this means is that
  514. Texinfo changes `@node ARGS' into the special text string necessary
  515. to separate Info nodes and to identify the node that is starting and
  516. say what nodes it points to.
  517.  
  518. The pointer names should be the names of nodes defined elsewhere. 
  519. For this example, nodes named `Beginning a File', `Overview' and
  520. `Top' should be defined elsewhere in the file with other `@node'
  521. commands.  It does not matter whether they are before or after the
  522. node that refers to them.
  523.  
  524. Normally, a node's `Up' pointer should point at the node whose menu
  525. mentions that node.  The node's `Next' pointer should point at the
  526. node that follows that node and its `Previous' pointer should point
  527. at the node that precedes it in that menu.
  528.  
  529. In TeX, `@node' is nearly ignored.  It generates no text.  Its only
  530. function is to identify the name to use for cross-references to the
  531. chapter or section which follows the `@node' command and which which
  532. makes up the body of the node.  (Cross references are made with
  533. `@xref'.  *Note Cross References::.)
  534.  
  535. `@node' should be followed immediately by a chapter-structuring
  536. command such as `@chapter', `@section', `@subsection' or
  537. `@subsubsection'.
  538.  
  539. The easiest way to write a node is to use the Texinfo mode keyboard
  540. command `C-c C-c n' to insert `@node' and a comment line listing the
  541. names of each of the pointers in their proper order.  This way you
  542. won't lose track of which arguments are for which pointers.  The
  543. template is especially useful if you are not familiar with Texinfo. 
  544. It is important to pick a suitable node name.  Generally, these begin
  545. with an uppercase letter as if the node name were a heading for a
  546. chapter or section.  Do not use any of the Texinfo @-commands in the
  547. name; these commands confuse Info.  The node name should be
  548. informative.  Unfortunately, long names will not fit onto the line,
  549. which can be awkward.  Sometimes it is better to use long but
  550. informative names rather than short ones.
  551.  
  552. Some people insert the names of the `Next', `Previous' and `Up'
  553. pointers at the same time they insert the node's own name.  This is
  554. because it is easier to keep track of the node structure as you
  555. create a document than it is to sort it out after you have dozens of
  556. nodes.  Others wait to insert the `Next', `Previous' and `Up'
  557. pointers until they have a nearly final version of the document. 
  558. This is because they expect to change the organization of the
  559. document while they write it and insert or delete sections and move
  560. them around.  The command `texinfo-show-structure' can be used to
  561. find the `Next', `Previous' and `Up' pointers of a node.  (See *Note
  562. Using texinfo-show-structure::.)
  563.  
  564. However you do it, it is best to name the node whenever you write the
  565. section so you can easily make cross references to the section.  A
  566. large number of cross references are an especially important feature
  567. of a good Info file.
  568.  
  569. After you have inserted the node-line, you should immediately write
  570. an @-command for the chapter or section and insert its name.  Next,
  571. (and this is important!), put in several index entries.  Usually, you
  572. will find at least two and often as many as four or five ways of
  573. referring to the node in the index.  Use them all.  This will make it
  574. much easier for people to find the node.
  575.  
  576. The top node of the file, named `Top', should have as its parent the
  577. name of a node in another file, where there is a menu that leads to
  578. this file.  Specify the file name in parentheses.  If the file is to
  579. be installed directly in the Info directory file, use `(dir)' as the
  580. parent of the top node; this is short for `(dir)top', the node `top'
  581. in the file `dir', which is the main menu of Info.  For example,
  582.  
  583.      @node    Top,       Overview, (dir),    (dir)
  584.      @comment node-name, next,     previous, up
  585.  
  586. For more information about installing an Info file in the `info'
  587. directory, *note Installing an Info File::.
  588.  
  589.  
  590. 
  591. File: texinfo,  Node: Menu,  Prev: Node,  Up: Structuring
  592.  
  593. @menu
  594. =====
  595.  
  596. Info file nodes can contain "menus" which point to other nodes.  You
  597. must type the menus in by hand, and surround them with lines
  598. containing `@menu' and `@end menu'.  In Info, the `@menu' line
  599. changes into `* Menu:', which indicates the beginning of a menu to
  600. the Info program.  Otherwise, the contents are unchanged by Texinfo,
  601. except for the processing of any other @-commands within.  The entire
  602. menu construct has no effect in the printed manual and will not
  603. appear there.
  604.  
  605. By convention, a menu is put at the end of a node.  This way, it is
  606. easy for someone using Info to find the menu, using the `M->'
  607. (`end-of-buffer') command.
  608.  
  609. In a menu, every line that begins with a `*' lists a single topic.  A
  610. line that does not start with a `*' will also appear in the menu and
  611. can be used as a comment.
  612.  
  613. A menu item has three parts:
  614.  
  615.   1. The menu item name.
  616.  
  617.   2. The name of the node.
  618.  
  619.   3. A description of the item.
  620.  
  621. Only the first part is required.  This part is the name of the
  622. topic--the name of the menu item that the user must give to the `m'
  623. command to select this topic when using Info.  The first part comes
  624. right after the asterisk and a space, and is followed by a colon,
  625. spaces and tabs, and then the name of the node which discusses that
  626. topic.  The name of the node is terminated by a tab, comma, newline
  627. or period.  If the node name and topic name are the same, rather than
  628. give the name twice, put two colons after the name instead.  For
  629. example, `* Name::'.  (You should do this whenever possible, since it
  630. reduces visual clutter in the menu).
  631.  
  632. If the second part is present, it may be terminated with a tab,
  633. comma, or newline; or with a period.
  634.  
  635. For example,
  636.  
  637.      @menu
  638.      A Section on Foo and Switches
  639.      * Foo::           The node named Foo tells you how to go fooing.
  640.      * Sw: Switches.   Type @code{m Sw} to see node @code{Switches}
  641.                        which describes the switches available here.
  642.      @end menu
  643.  
  644. produces
  645.  
  646.      * menu:
  647.      
  648.      A Section on Foo and Switches
  649.      * Foo::         The node named foo tells you how to go fooing.
  650.      * Sw: Switches. Type `m Sw' to see node `Switches'
  651.                      which describes the switches available here.
  652.  
  653.  In this example, the menu has two items.  `Foo' is both a menu item
  654. name and the name of the node referred to by that item.  `Sw' is the
  655. other menu item name, and it refers to the node named `Switches'. 
  656. Since no file name is specified with `Foo' or `Switches', they must
  657. be the names of other nodes in the same Info file.
  658.  
  659. Nodes in other Info files can be referred to by putting the file name
  660. in parentheses at the beginning of the node name. For example,
  661.  
  662.      @menu
  663.      * Outlining: (emacs) Outline Mode.  The major mode for editing outlines.
  664.      * Rebinding: (emacs) Rebinding.     How to redefine the meaning of a key.
  665.      @end menu
  666.  
  667. When this is done, the item has to have at least two parts: the first
  668. part is the menu item name and the second part is the name of the node.
  669.  
  670.  
  671. 
  672. File: texinfo,  Node: Quotations and Examples,  Next: Lists and Tables,  Prev: Structuring,  Up: Top
  673.  
  674. Making Quotations and Examples
  675. ******************************
  676.  
  677. Quotations and examples are blocks of text, consisting of one or more
  678. whole paragraphs that are set off from the bulk of the text and
  679. treated differently.  They are usually indented.
  680.  
  681. In Texinfo, an insertion is always begun by writing an @-command on a
  682. line by itself, and ended by writing an `@end' command that is also
  683. on a line by itself.  For instance, an "example" is a kind of
  684. insertion that is begun with `@example' and ended with `@end example'.
  685.  
  686. There are three commands for quotations and examples:
  687.  
  688. `@quotation'
  689.      Used to indicated text that is quoted.
  690.  
  691. `@example'
  692.      Used to illustrate code, commands and the like in a fixed width
  693.      font without filling.
  694.  
  695. `@display'
  696.      Used for illustrative text.
  697.  
  698. * Menu:
  699.  
  700. * Quotation::
  701. * Example::
  702. * Display::
  703.  
  704.  
  705. 
  706. File: texinfo,  Node: Quotation,  Next: Example,  Up: Quotations and Examples
  707.  
  708. @quotation
  709. ==========
  710.  
  711. `@quotation' is used to indicate text that is excerpted from another
  712. (real or hypothetical) printed work.  The inside of a quotation is
  713. processed normally except that
  714.  
  715.   1. The margins are narrower.
  716.  
  717.   2. Paragraphs are not indented.
  718.  
  719.   3. Interline spacing and interparagraph spacing are reduced.
  720.  
  721. Thus, the input
  722.  
  723.      @quotation
  724.      This is
  725.      a foo.
  726.      @end quotation
  727.  
  728. produces in the printed manual
  729.  
  730.           This is a foo.
  731.  
  732. and in the Info file
  733.  
  734.           This is
  735.           a foo.
  736.  
  737.  
  738. 
  739. File: texinfo,  Node: Example,  Next: Display,  Prev: Quotation,  Up: Quotations and Examples
  740.  
  741. @example
  742. ========
  743.  
  744. `@example' is used to indicate an example that is not part of the
  745. running text.  In the printed manual, this is done by switching to a
  746. fixed width font, turning off filling, and making extra spaces and
  747. blank lines significant.  In the Info file, an analogous result is
  748. obtained by indenting each line with five extra spaces.
  749.  
  750. `@example' should appear on a line by itself; this line will
  751. disappear from the output.  Mark the end of the example with a line
  752. containing `@end example', which will likewise disappear.  For example:
  753.  
  754.      @example
  755.      mv foo bar
  756.      @end example
  757.  
  758. produces
  759.  
  760.      mv foo bar
  761.  
  762. Since the lines containing `@example' and `@end example' will
  763. disappear, you will want to put a blank line before the `@example'
  764. and another blank line after the `@end example'.  (Remember that
  765. blank lines between the beginning `@example' and the ending `@end
  766. example' will appear in the output.)
  767.  
  768. Don't use tabs in lines of an example!  TeX has trouble with tabs: 
  769. it treats them like single spaces, and that is not what they look like.
  770.  
  771.  
  772. 
  773. File: texinfo,  Node: Display,  Prev: Example,  Up: Quotations and Examples
  774.  
  775. @display
  776. ========
  777.  
  778. `@display' is just like `@example' except that, in the printed
  779. manual, `@display' does not select the fixed-width font.  In fact, it
  780. does not specify the font at all, so that the text appears in the
  781. same font it would have appeared in without the `@display'.
  782.  
  783.  
  784. 
  785. File: texinfo,  Node: Lists and Tables,  Next: Cross References,  Prev: Quotations and Examples,  Up: Top
  786.  
  787. Making Lists and Tables
  788. ***********************
  789.  
  790. Texinfo has several ways of making lists and two-column tables. 
  791. Lists can be bulleted or numbered while two-column tables can
  792. highlight the items in the first column.
  793.  
  794. For example, this is an enumerated list:
  795.  
  796.   1. This is a numbered item.
  797.  
  798.   2. This is the second item in this list.
  799.  
  800.   3. This is the third item on this list.
  801.  
  802. Texinfo will automatically indent the text in lists or tables and
  803. number an enumerated list.  This last feature is useful if you are
  804. reordering the list, since you do not have to renumber it yourself.
  805.  
  806. Lists or tables are always begun by an @-command on a line by itself
  807. and ended with an `@end' command on a line by itself.  For example,
  808. an enumerated list begins with the command `@enumerate' and ends with
  809. the command `@end enumerate'; and an itemized list begins with the
  810. command `@itemize' and ends with the command `@end itemize'.
  811.  
  812. The elements of a list are begun with the `@item' command.
  813.  
  814. Here is an itemized list of the different kinds of table and lists:
  815.  
  816.    * Itemized lists with or without bullets.
  817.  
  818.    * Numbered lists.
  819.  
  820.    * two-column tables with highlighting.
  821.  
  822. * Menu:
  823.  
  824. * Itemize::
  825. * Enumerate::
  826. * Table::
  827.  
  828.  
  829. 
  830. File: texinfo,  Node: Itemize,  Next: Enumerate,  Up: Lists and Tables
  831.  
  832. @itemize
  833. ========
  834.  
  835. `@itemize' is used to produce sequences of indented paragraphs, with
  836. a mark inside the left margin at the beginning of each paragraph. 
  837. The rest of the line that starts with `@itemize' should contain the
  838. character or Texinfo commands to generate such a mark.  Usually, it
  839. is the @-command `@bullet'.  Whatever mark you choose, ultimately, it
  840. should result in a single character in the Texinfo file, or the
  841. indentation will come out wrong.  When you write the command, omit
  842. the `{}' after the command if you use just one command and nothing
  843. else.
  844.  
  845. The text of the indented paragraphs themselves come after the
  846. `@itemize', up to another line that says `@end itemize'.
  847.  
  848. Before each paragraph for which a mark in the margin is desired,
  849. place a line that says just `@item'.  Don't put any other text on
  850. this line.
  851.  
  852. Info indents the lines in an itemized list by five columns, but it
  853. does not fill them.  This can produce lines in the Info file that are
  854. too wide.  You can either write shorter lines in the Texinfo file by
  855. setting the fill column to five columns less than it is normally, or
  856. else you can tell Info to refill the paragraphs by adding the
  857. @-command `@refill' to the end of the paragraph. (*Note Refill::, for
  858. more information about the use of the `@refill' command.)
  859.  
  860. Usually, you should put a blank line before an `@item'.  This puts a
  861. blank like in the Info file.  Except when the entries are very brief,
  862. a blank line looks better.
  863.  
  864. Here is an example of the use of `@itemize', followed by the output
  865. it produces.  Note that `@bullet' produces a `*' in Texinfo and a
  866. round dot in TeX.
  867.  
  868.      @itemize @bullet
  869.      @item
  870.      Some text for foo.
  871.      
  872.      @item
  873.      Some text
  874.      for bar.
  875.      @end itemize
  876.  
  877. produces
  878.  
  879.         * Some text for foo.
  880.  
  881.         * Some text for bar.
  882.  
  883.  
  884. 
  885. File: texinfo,  Node: Enumerate,  Next: Table,  Prev: Itemize,  Up: Lists and Tables
  886.  
  887. @enumerate
  888. ==========
  889.  
  890. `@enumerate' is like `@itemize' except that the marks in the left
  891. margin contain successive integers starting with 1.  (*Note
  892. Itemize::.) Do not put any argument on the same line as `@enumerate'.
  893.  
  894.      @enumerate
  895.      @item
  896.      Some text for foo.
  897.      @item
  898.      Some text
  899.      for bar.
  900.      @end enumerate
  901.  
  902. produces
  903.  
  904.        1. Some text for foo.
  905.  
  906.        2. Some text for bar.
  907.  
  908. If you want, you can put a blank line between the entries in the list.
  909. This often makes it easier to read the Info file.  For example,
  910.  
  911.      @enumerate
  912.      @item
  913.      This is the first item.
  914.      
  915.      @item
  916.      This is the second item.
  917.      @end enumerate
  918.  
  919. Info indents the lines of the enumerated list by five columns, but it
  920. does not fill them.  As a result, the lines in the Info file may be
  921. too wide.  To prevent this, you can either write shorter lines in the
  922. Texinfo file file by setting the fill column to five columns less
  923. than it is normally, or else you can tell Info to refill the
  924. paragraphs by adding the @-command `@refill' to the end of the
  925. paragraph.  (*Note Refill::, for more information about the use of
  926. the `@refill' command.)
  927.  
  928.  
  929. 
  930. File: texinfo,  Node: Table,  Prev: Enumerate,  Up: Lists and Tables
  931.  
  932. @table
  933. ======
  934.  
  935. `@table' is similar to `@itemize', but allows you to specify a name
  936. or heading line for each item.  (*Note Itemize::.)  The command is
  937. used to produce two-column tables, and is especially useful for
  938. glossaries and explanatory exhibits.
  939.  
  940. You must follow each use of `@item' inside of `@table' with text to
  941. serve as the heading line for that item.  This text is put on the
  942. same line as the `@item' command.  Each heading line is put into the
  943. first column of the table and the supporting text, which you put on
  944. the line following the line beginning with `@item', goes into the
  945. second column.
  946.  
  947. Also, `@table' itself must be followed by an argument that is a
  948. Texinfo command such as `@code', `@var', `@kbd' or `@asis'.  Although
  949. these commands are usually followed by arguments in braces, in this
  950. case you use the command name without an argument.  (`@item' supplies
  951. the argument.)  This command will be applied to the text that goes
  952. into the first column of each item and determines how it will be
  953. highlighted.  For example, `@samp' will cause the text in the first
  954. column to be highlighted as if it were acted on by an `@samp' command.
  955.  
  956. `@asis' is a command that does nothing; in that case, each item will
  957. come out without highlighting, unless that particular piece of text
  958. contains @-commands for highlighting.
  959.  
  960. (Various other command names might work with `@table'.  However, only
  961. commands that normally take arguments in braces may be used.)
  962.  
  963. Usually, you should put a blank line before an `@item'.  This puts a
  964. blank like in the Info file.  Except when the entries are very brief,
  965. a blank line looks better.
  966.  
  967. The following table, for example, highlights the text in the first
  968. column as if each item were acted on by an `@samp' command:
  969.  
  970.      @table @samp
  971.      @item foo
  972.      This is the text for
  973.      @samp{foo}.
  974.      
  975.      @item bar
  976.      Text for @samp{bar}.
  977.      @end table
  978.  
  979. produces
  980.  
  981.     `foo'
  982.           This is the text for `foo'.
  983.  
  984.     `bar'
  985.           Text for `bar'.
  986.  
  987. Info indents the lines of text in the second column, but does not
  988. fill them.  As a result, the lines in the Info file may be too wide. 
  989. To prevent this, cause Info to refill the paragraphs after processing
  990. by adding the @-command `@refill' to the end of the paragraph. (*Note
  991. Refill::, for more information about the use of the `@refill' command.)
  992.  
  993. If you want to list two or more named items with a single block of
  994. text, use the `@itemx' command.
  995.  
  996. * Menu:
  997.  
  998. * Itemx::
  999.  
  1000.  
  1001. 
  1002. File: texinfo,  Node: Itemx,  Prev: Table,  Up: Table
  1003.  
  1004. @itemx
  1005. ------
  1006.  
  1007. `@itemx' is used inside a `@table' when you have two or more named
  1008. items for the same block of text.  Use `@itemx' for all but the first
  1009. of the items.  It works exactly like `@item' except that it does not
  1010. generate extra vertical space above the item text.  For example,
  1011.  
  1012.      @table @code
  1013.      @item upcase
  1014.      @itemx downcase
  1015.      These two functions accept a character or a string as argument,
  1016.      and return the corresponding upper case (lower case) character
  1017.      or string. @refill
  1018.      @end table
  1019.  
  1020. produces
  1021.  
  1022.     `upcase'
  1023.     `downcase'
  1024.           These two functions accept a character or a string as
  1025.           argument, and return the corresponding upper case (lower
  1026.           case) character or string.
  1027.  
  1028. A more complicated example of the use of `@itemx' comes from the
  1029. chapter on structuring commands.  Here is how the list showing how 
  1030. the chapter structuring commands fall into four groups was constructed.
  1031. (*Note Chapter Structuring Commands: Structuring.)
  1032.  
  1033.      @table @code
  1034.      @item  @@chapter
  1035.      @itemx @@unnumbered
  1036.      @itemx @@appendix
  1037.      For chapters and chapter-like parts of a document.
  1038.      
  1039.      @item  @@section
  1040.      @itemx @@unnumberedsec
  1041.      @itemx @@appendixsec
  1042.      For sections and section-like parts of a document.
  1043.      
  1044.      @item  @@subsection
  1045.      @itemx @@unnumberedsubsec
  1046.      @itemx @@appendixsubsec
  1047.      For subsections and subsection-like parts of a document.
  1048.      
  1049.      @item  @@subsubsection
  1050.      @itemx @@unnumberedsubsubsec
  1051.      @itemx @@appendixsubsubsec
  1052.      For subsubsections and similar parts of a document.
  1053.      @end table
  1054.  
  1055. and this is what the resulting table looks like:
  1056.  
  1057. `@chapter'
  1058. `@unnumbered'
  1059. `@appendix'
  1060.      For chapters and chapter-like parts of a document.
  1061.  
  1062. `@section'
  1063. `@unnumberedsec'
  1064. `@appendixsec'
  1065.      For sections and section-like parts of a document.
  1066.  
  1067. `@subsection'
  1068. `@unnumberedsubsec'
  1069. `@appendixsubsec'
  1070.      For subsections and subsection-like parts of a document.
  1071.  
  1072. `@subsubsection'
  1073. `@unnumberedsubsubsec'
  1074. `@appendixsubsubsec'
  1075.      For subsubsections and similar parts of a document.
  1076.  
  1077. Also, either column of a table can be empty.
  1078.  
  1079.  
  1080. 
  1081. File: texinfo,  Node: Cross References,  Next: Formatting Paragraphs,  Prev: Lists and Tables,  Up: Top
  1082.  
  1083. Making Cross References
  1084. ***********************
  1085.  
  1086. Cross references are used to refer the reader to other parts of the
  1087. same or different Texinfo files.  In Texinfo, "nodes" are the points
  1088. to which cross-references can refer.
  1089.  
  1090. In general, a document should be designed so that it can be read
  1091. sequentially.  People soon tire of flipping back and forth to find
  1092. information that should be presented to them as they need it. 
  1093. However, there will be information (often too detailed for whatever
  1094. the current context may be) that is related to whatever is presented
  1095. and to which reference should be made.  More important, in an on-line
  1096. help system or in a reference manual, readers do *not* read
  1097. everything in sequence from beginning to end.  Instead, they look up
  1098. what they need.  For this reason, such creations should contain many
  1099. cross references to help the reader find other information that he or
  1100. she may not have read.
  1101.  
  1102. Although nodes are not a fundamental concept in a printed manual,
  1103. they still serve to define a cross-reference point and the variants
  1104. of `@xref' still serve to make references.  Thus, if you are writing
  1105. a manual that will only be printed, and will not be used on-line, you
  1106. continue to use the `@node' command for when you make cross references.
  1107.  
  1108. There are several kinds of cross reference command.
  1109.  
  1110. `@xref'
  1111.      Used to start a sentence in the printed manual saying, `See ...' 
  1112.       or an entry in the Info file saying `*note ...'.
  1113.  
  1114. `@pxref'
  1115.      Used to make a reference that starts with a lowercase `see' 
  1116.       and is usually contained within parentheses.
  1117.  
  1118. `@inforef'
  1119.      Used to make a reference to an Info file for which there is no
  1120.      printed manual.
  1121.  
  1122. * Menu:
  1123.  
  1124. * Xref::
  1125. * Pxref::
  1126. * Inforef::
  1127.  
  1128.  
  1129. 
  1130. File: texinfo,  Node: Xref,  Next: Pxref,  Prev: Cross References,  Up: Cross References
  1131.  
  1132. @xref
  1133. =====
  1134.  
  1135. `@xref' generates a cross-reference.  In Texinfo, it turns into an
  1136. Info cross-reference which the Info `f' command can use to go
  1137. directly to another node.  In TeX, it turns into a sentence of the form
  1138.  
  1139.      See section SECTION [TOPIC], page PAGE
  1140.  
  1141. but does not generate a period to end it.
  1142.  
  1143. `@xref' must refer to an Info node created by `@node', by the node's
  1144. name.
  1145.  
  1146. `@xref' is followed by an argument inside braces; but actually the
  1147. text inside the braces is treated as several arguments, separated by
  1148. commas.  Whitespace after these commas is ignored.  A period or comma
  1149. *must* follow the closing brace of an `@xref'.  It is required to
  1150. terminate the cross reference.  This period or comma will appear in
  1151. the output, both in the Info file and in the printed manual.
  1152.  
  1153. The simplest form of `@xref' takes one argument, the name of another
  1154. node in the same Info file.  Here we show the input text, followed by
  1155. a blank line and then the output text for Info files and the output
  1156. text for printed manuals.
  1157.  
  1158.      @xref{node-name}, for more info.
  1159.      
  1160.      *note node-name::, for more info.
  1161.  
  1162.       See section NNN [node-name], page PPP, for more info.
  1163.  
  1164. With two arguments, the second one is used as the name of the Info
  1165. cross-reference, while the first argument is still the node that the
  1166. cross-reference points to:
  1167.  
  1168.      @xref{node-name, name-for-note}, for more info.
  1169.      
  1170.      *note name-for-note: node-name, for more info.
  1171.  
  1172.       See section NNN [node-name], page PPP, for more info.
  1173.  
  1174. A third argument replaces the node name when it actually appears in
  1175. the TeX output.  It should state the topic discussed by the section
  1176. being referenced.  Often, you will want to use initial uppercase
  1177. letters so it will be easier to read when the reference is printed. 
  1178. Use a third argument when the node name is unsuitable because of
  1179. syntax, grammar or diction.
  1180.  
  1181.      @xref{node-name, name-for-note, Topic Description}, for more info.
  1182.      
  1183.      *note name-for-note: node-name, for more info.
  1184.  
  1185.       See section NNN [Topic Description], page PPP, for more info.
  1186.  
  1187. If a third argument is given and the second one is empty, then the
  1188. third argument serves both purposes:
  1189.  
  1190.      @xref{node-name, , Topic Description}, for more info.
  1191.      
  1192.      *note Topic Description: node-name, for more info.
  1193.  
  1194.       See section NNN [Topic Description], page PPP, for more info.
  1195.  
  1196. A fourth argument specifies the name of the Info file in which the
  1197. referenced node is located, assuming it is not the one in which the
  1198. reference appears.  `@xref' with only four arguments is used when the
  1199. reference is not within one Info file, but is within a single printed
  1200. manual--when multiple Texinfo files are incorporated into the same
  1201. TeX run but make separate Info files.  (This is seldom the case and
  1202. usually you will use five arguments if you are making a reference
  1203. that is outside the current Info file.)
  1204.  
  1205.      @xref{node-name, name-for-note, Topic, info-file-name}, 
  1206.      for more info.
  1207.      
  1208.      *note name-for-note: (info-file-name) node-name, for more info.
  1209.  
  1210.       See section NNN [Topic], page PPP, for more info.
  1211.  
  1212. A fifth argument is used when you are making a reference to another
  1213. Info file which is also part of another printed manual.  Write the
  1214. title of the manual in this slot.  Since a different manual is made
  1215. during a different TeX run, the printed reference will not have a
  1216. page number.
  1217.  
  1218. Whenever you refer to another manual, use this version of `@xref'
  1219. with five arguments.
  1220.  
  1221.      @xref{node-name, name-for-note, Topic, info-file-name, A Printed Manual},
  1222.      for more info.
  1223.      
  1224.      *note name-for-note: (info-file-name) node-name, for more info.
  1225.  
  1226.       See section Topic of A Printed Manual, for more info.
  1227.  
  1228. The name of the printed manual will be typeset in italics.
  1229.  
  1230. Often, you will leave out the second argument when you use the long
  1231. version of `@xref'.  In this case, the third argument, the topic
  1232. description, will replace the node name:
  1233.  
  1234.      @xref{node-name, , Topic Description, info-file-name, A Printed Manual},
  1235.      for more info.
  1236.      
  1237.      *note Topic Description: (info-file-name) node-name, for more info.
  1238.  
  1239.       See section Topic Description of A Printed Manual, for more info.
  1240.  
  1241.  
  1242. 
  1243. File: texinfo,  Node: Pxref,  Next: Inforef,  Prev: Xref,  Up: Cross References
  1244.  
  1245. @pxref
  1246. ======
  1247.  
  1248. `@pxref' is nearly the same as `@xref'; it differs in only two ways:
  1249.  
  1250.   1. The output starts with lower case `see' rather than `See'.
  1251.  
  1252.   2. A period is generated automatically in the Info file output to
  1253.      end the Info cross-reference, but no period is generated for the
  1254.      printed manual.
  1255.  
  1256. The purpose of `@pxref' is to be used inside parentheses as part of
  1257. another sentence.  In the printed manual, no period is needed after
  1258. the cross reference text itself (within the parentheses), but a
  1259. period is needed after the cross reference text in the Info file
  1260. because only thus can Info recognize the end of the cross-reference. 
  1261. `@pxref' spares you the need to use complicated methods to put a
  1262. period into one form of the output and not the other.
  1263.  
  1264. `@pxref' can be used with up to five arguments just like `@xref'. 
  1265. (*Note Xref::.)
  1266.  
  1267.  
  1268. 
  1269. File: texinfo,  Node: Inforef,  Prev: Pxref,  Up: Cross References
  1270.  
  1271. @inforef
  1272. ========
  1273.  
  1274. `@inforef' is used for cross-references to Info files for which there
  1275. are no printed manuals.  Even in a printed manual, `@inforef'
  1276. generates a reference directing the user to look in an Info file. 
  1277. `@inforef' takes exactly three arguments.  The syntax is
  1278. `@inforef{NODE, NAME, FILE}'.
  1279.  
  1280.      @inforef{node-name, name-for-note, info-file-name}, for more information.
  1281.      
  1282.      *note name-for-note: (info-file-name) node-name, for more information.
  1283.  
  1284.       See Info file `info-file-name', node `node-name', for more
  1285.      information.
  1286.  
  1287.  
  1288. 
  1289. File: texinfo,  Node: Formatting Paragraphs,  Next: Marking Text,  Prev: Cross References,  Up: Top
  1290.  
  1291. Formatting Paragraphs
  1292. *********************
  1293.  
  1294. Usually, a Texinfo file will be processed both by TeX and by the `M-x
  1295. texinfo-format-buffer' command.  Consequently, you must make sure
  1296. that text will come out looking right both in the printed manual and
  1297. in the on-line help.
  1298.  
  1299. For example, unless told otherwise, `M-x texinfo-format-buffer' will
  1300. not refill a paragraph after processing it although TeX will.  This
  1301. means that a paragraph with numerous or large @-commands may not look
  1302. properly filled after processing by Info.  The @-commands are removed
  1303. from the text but the lines are not refilled so some are much shorter
  1304. than they were.  To cause the `M-x texinfo-format-buffer' command to
  1305. refill such a paragraph, put `@refill' at the end of the paragraph.
  1306.  
  1307. TeX may also format a document improperly.  For example, page breaks
  1308. may occur in the "wrong place"; to control this, text can be held
  1309. together by a group command that keeps the text within the group from
  1310. being split across two pages.
  1311.  
  1312. * Menu:
  1313.  
  1314. * Refilling & Noindent::      Refilling paragraphs & preventing indentation
  1315. * Breaks Blank-Lines Groups::  Line and paragraph breaks, blank lines, grouping
  1316.  
  1317.  
  1318. 
  1319. File: texinfo,  Node: Refilling & Noindent,  Next: Breaks Blank-Lines Groups,  Prev: Formatting Paragraphs,  Up: Formatting Paragraphs
  1320.  
  1321. Refilling Paragraphs and Preventing Indentation
  1322. ===============================================
  1323.  
  1324. The `@refill' and `@noindent' commands are used just after or just
  1325. before paragraphs which, after processing by either Info or TeX,
  1326. might look bad.  The `@refill' command refills a paragraph in the
  1327. Info file after all the other processing has been done.  In the
  1328. printed manual, the `@noindent' command prevents a piece of text that
  1329. is a continuation of the preceding paragraph from being indented as
  1330. if it were a new paragraph.
  1331.  
  1332. * Menu:
  1333.  
  1334. * Refill::    Refilling an info paragraph after other processing.
  1335. * Noindent::    Preventing paragraph indentation in continuation text.
  1336.  
  1337.  
  1338. 
  1339. File: texinfo,  Node: Refill,  Next: Noindent,  Prev: Refilling & Noindent,  Up: Refilling & Noindent
  1340.  
  1341. @refill
  1342. -------
  1343.  
  1344. If a paragraph contains sizable @-constructs, it may look badly
  1345. filled after `texinfo-format-buffer' is through with it.
  1346.  
  1347. Put `@refill' at the end of the paragraph to tell
  1348. `texinfo-format-buffer' to refill the paragraph after finishing all
  1349. other processing on it.  `@refill' has no effect on TeX, which always
  1350. fills everything that ought to be filled.  For example,
  1351.  
  1352.      To use @code{foo}, pass @samp{xx%$} and @var{flag} and type @kbd{x}
  1353.      after running @code{make-foo}.@refill
  1354.  
  1355. produces (in the Info file)
  1356.  
  1357.      To use `foo', pass `xx%$' and FLAG and type `x' after running `make-foo'.
  1358.  
  1359.  whereas without the `@refill' it would produce
  1360.  
  1361.      To use `foo', pass `xx%$' and FLAG and type `x'
  1362.      after running `make-foo'.
  1363.  
  1364.  with the line broken at the same place as in the Texinfo input file.
  1365.  
  1366. Do not put a space before `@refill'; otherwise the command might be
  1367. put at the beginning of the line when you refill the paragraph in the
  1368. Texinfo file with `M-q' (`fill-paragraph').  If this were to happen,
  1369. the `@refill' command might fail to work
  1370.  
  1371.  
  1372. 
  1373. File: texinfo,  Node: Noindent,  Prev: Refill,  Up: Refilling & Noindent
  1374.  
  1375. @noindent
  1376. ---------
  1377.  
  1378. If you have text following an `@example' or other similar "special
  1379. paragraph" that reads as a continuation of the text before the
  1380. `@example', it is good to prevent this text from being indented as a
  1381. new paragraph.  To accomplish this, put `@noindent' on a line by
  1382. itself before the start of the text that should not be indented. For
  1383. example,
  1384.  
  1385.      @example
  1386.      This is an example
  1387.      @end example
  1388.      
  1389.      @noindent
  1390.      This line will not be indented.
  1391.  
  1392.  produces
  1393.  
  1394.      This is an example
  1395.  
  1396. This line will not be indented.
  1397.  
  1398. To adjust the number of blank lines properly in the Info file output,
  1399. remember that the line containing `@noindent' does not generate a
  1400. blank line, and neither does the `@end example' line.
  1401.  
  1402. In the Texinfo source file for this documentation, each of the lines
  1403. that says `produces' is preceded by a line containing `@noindent'.
  1404.  
  1405.  
  1406.