|
|
1.1 ! root 1: Info file texinfo, produced by texinfo-format-buffer -*-Text-*- ! 2: from file texinfo.texinfo ! 3: ! 4: ! 5: ! 6: Distribution ! 7: ************ ! 8: ! 9: Copyright (C) 1985 Richard M. Stallman. ! 10: ! 11: Permission is granted to make and distribute verbatim copies of ! 12: this manual provided the copyright notice and this permission notice ! 13: are preserved on all copies. ! 14: ! 15: Permission is granted to copy and distribute modified versions of this ! 16: manual under the conditions for verbatim copying, provided that the entire ! 17: resulting derived work is distributed under the terms of a permission ! 18: notice identical to this one. ! 19: ! 20: Permission is granted to copy and distribute translations of this manual ! 21: into another language, under the same conditions as for modified versions. ! 22: ! 23: ! 24: File: texinfo Node: top, Up: (DIR), Next: commands ! 25: ! 26: Texinfo Files ! 27: ************* ! 28: ! 29: Documentation for GNU utilities and libraries should be written in a format ! 30: called "texinfo". This format can be translated mechanically into either ! 31: printed manuals or on-line readable Info files. ! 32: ! 33: * Menu: ! 34: ! 35: * info:: What Info files do. ! 36: * commands:: What goes into a texinfo file. ! 37: * make-info:: Making a texinfo file into an Info file. ! 38: * manual:: Making a texinfo file into a printed manual. ! 39: ! 40: ! 41: File: texinfo Node: info, Prev: top, Up: top, Next: commands ! 42: ! 43: What Info Files Do ! 44: ================== ! 45: ! 46: An Info file is a file formatted so that the Info documentation reading ! 47: program can operate on it. Info files are divided into pieces called ! 48: "nodes", each of which contains the discussion of one topic. Each node ! 49: has a name, and contains both text for the user to read and pointers to ! 50: other nodes, which are identified by their names. Info displays one node ! 51: at a time, and provides commands with which the user can move to the other ! 52: nodes that the current node points to. ! 53: ! 54: Normally most of the nodes are arranged in a tree which branches down. ! 55: Each node may have any number of child nodes that describe subtopics of the ! 56: node's topic. The names of these child nodes, if any, are listed in a ! 57: "menu" within the parent node; this allows certain Info commands to ! 58: be used to move to one of the child nodes. Each child node records the ! 59: parent node name, as its `up' pointer. ! 60: ! 61: All the children of any one parent are linked together in a bidirectional ! 62: chain of `next' and `previous' pointers. Normally the order in this chain ! 63: is the same as the order of the children in the parent's menu. The last ! 64: child has no `next' pointer, and the first child normally has the parent as ! 65: its `previous' pointer (as well as its `up' pointer, of course). ! 66: ! 67: The root of the tree is the top node of the file, through which users ! 68: enter the file from the Info directory. By convention, this node is always ! 69: called `top'. This node normally contains just a brief summary of the ! 70: file's purpose, and a large menu through which the rest of the file is ! 71: reached. ! 72: ! 73: Structuring the nodes in a tree is a matter of convention, not a ! 74: requirement. In fact, the `up', `previous' and `next' pointers of a node ! 75: can point to any other nodes, and the menu can contain any other nodes. ! 76: The structure of nodes can be any directed graph. But it is usually more ! 77: comprehensible to the user to make it a tree. Info provides another kind ! 78: of pointer between nodes, called a reference, that can be sprinkled through ! 79: the text of a node. This is usually the best way to represent links that ! 80: do not fit the tree structure. ! 81: ! 82: Most often the nodes fall into a strict tree structure, and most often this ! 83: structure corresponds to the structure of chapters, sections, subsections, ! 84: and so on of a printed manual. But there are times when this is not right ! 85: for the material being discussed. Therefore, texinfo format uses separate ! 86: commands to specify the node structure of the Info file and the section ! 87: structure of the a printed manual. Also, texinfo requires menus to be ! 88: specified explicitly, rather than generating them automatically based on an ! 89: assumed tree structure. ! 90: ! 91: ! 92: File: texinfo Node: commands, Prev: info, Up: top, Next: make-info ! 93: ! 94: General Syntactic Conventions ! 95: ============================= ! 96: ! 97: Texinfo files contain a strictly limited set of constructs for a TeX ! 98: macro package quite different from plain TeX. The strict limits make it ! 99: possible for texinfo files to be understood also by the `texinfo' ! 100: program, which converts them into Info files. ! 101: ! 102: In order to be made into an Info file, a texinfo file must start with a ! 103: line that looks like ! 104: @setfilename INFO-FILE-NAME ! 105: which specifies the name of the Info file to be generated. In fact, there ! 106: can be other things in the file before this line, but they are ignored in ! 107: the generation of an Info file. The `@setfilename' line is ignored ! 108: when a printed manual is generated. ! 109: ! 110: All ASCII printing characters except `@', `{' and `}' can appear in body ! 111: text in a texinfo file and stand for themselves. `@' is the escape ! 112: character which introduces commands. `{' and `}' should be used only to ! 113: surround arguments to certain commands. `{' and `}' appearing anywhere ! 114: else will be treated by TeX as a grouping but treated by texinfo as ! 115: themselves; this inconsistency is undesirable, so don't let it occur. To ! 116: put one of these special characters into the document, put an `@' character ! 117: in front of it. ! 118: ! 119: It is customary in TeX to use doubled single-quote characters to begin ! 120: and end quotations. This convention should be followed in texinfo files. ! 121: ! 122: TeX ignores the line-breaks in the input text, except for blank lines, ! 123: which separate paragraphs. Texinfo generally preserves the line breaks ! 124: that are present in the input file. Therefore, you break the lines in the ! 125: texinfo file the way you want them to appear in the output Info file, and ! 126: let TeX take care of itself. ! 127: ! 128: ! 129: @-Command Syntax ! 130: ================ ! 131: ! 132: The character @ is used to start special texinfo commands. (It has the ! 133: same meaning that \ has in plain TeX.) Syntactically, there ! 134: are three classes of @-commands: ! 135: ! 136: 1. Non-alphabetic commands, @ followed by a punctuation character. ! 137: These commands are always part of the text within a paragraph, and ! 138: never take any argument. The two characters (@ and the other one) ! 139: are complete in themselves. ! 140: 2. Alphabetic commands used within a paragraph. These commands have @ ! 141: followed by a word, followed by an argument within braces. For ! 142: example, the command `@i' specifies italic font (for TeX ! 143: processing only); it is used as follows: `I do @i{not} want ! 144: to eat that.' ! 145: 3. Alphabetic commands used outside of paragraphs. Each such command ! 146: occupies an entire line. The line starts with @, followed by the ! 147: name of the command (a word). If no argument is needed, the word is ! 148: followed by the end of the line. If there is an argument, it is ! 149: separated from the command name by a space. ! 150: ! 151: Thus, the alphabetic commands fall into two classes that have different ! 152: argument syntax. You cannot tell which class a command falls in by the ! 153: appearance of its name, but you can tell by the command's meaning: if it ! 154: makes sense to use the command together with other words as part of a ! 155: paragraph, the command is in class 2 and must be followed by an argument in ! 156: braces; otherwise, it is in class 3 and uses the rest of the line as its ! 157: argument. ! 158: ! 159: The purpose of having different syntax for commands of classes 2 and 3 is ! 160: to make the texinfo file easier to read, and also to help the Emacs ! 161: paragraph and filling commands work properly. There is only one exception ! 162: to this rule: the command `@refill', which is always used at the end of a ! 163: paragraph immediately following the final period or other punctuation ! 164: character. `@refill' takes no argument. `@refill' never confuses the ! 165: Emacs paragraph commands because it cannot start at the beginning of a ! 166: line. ! 167: ! 168: ! 169: Within-Paragraph Commands ! 170: ========================= ! 171: ! 172: The @-commands used within a paragraph either generate a small amount of ! 173: text or modify the treatment of some text. ! 174: ! 175: ! 176: @@ ! 177: -- ! 178: ! 179: `@@' stands for a single @ in either printed or Info output. ! 180: ! 181: ! 182: @{ ! 183: -- ! 184: ! 185: `@{' stands for a single { in either printed or Info output. ! 186: ! 187: ! 188: @} ! 189: -- ! 190: ! 191: `@}' stands for a single } in either printed or Info output. ! 192: ! 193: ! 194: @: ! 195: -- ! 196: ! 197: `@:' is used after a character such as period or colon which ! 198: normally causes TeX to increase the width of the following whitespace, ! 199: to suppress that effect. For example, it can be used after periods that ! 200: end abbreviations and do not end sentences. `@:' has no effect ! 201: on the Info file output. ! 202: ! 203: It displays @code{Foo:}@: at that time. ! 204: ! 205: produces ! 206: ! 207: It displays `Foo:' at that time. ! 208: ! 209: Note that the meanings of `@:' and `@.' in texinfo are not compatible with ! 210: their meanings in Scribe; in fact, they are nearly the opposite. The ! 211: meanings in texinfo were designed to work well with the Emacs sentence ! 212: motion commands. ! 213: ! 214: ! 215: @. ! 216: -- ! 217: ! 218: `@.' stands for a period that really does end a sentence, useful when ! 219: TeX will assume by its heuristics that that is not so. This happens ! 220: when there is a single-capital-letter word at the end of a sentence: TeX ! 221: normally guesses that it is an abbreviation. ! 222: ! 223: In the Info file output, `@.' is equivalent to a simple `.'. ! 224: The texinfo program preserves the amount of space that you use, so put ! 225: two spaces after a period if you intend it to be the end of a sentence ! 226: (as well as using `@.', if necessary, for the printed manual's sake). ! 227: ! 228: Give it to X. Give it to X@. Give it to X@. ! 229: ! 230: produces ! 231: ! 232: Give it to X. Give it to X. Give it to X. ! 233: ! 234: ! 235: @* ! 236: -- ! 237: ! 238: `@*' forces a line break in the printed manual. It has no effect on ! 239: the Info file output, where line breaks follow those in the source file. ! 240: If you want a line break at a certain spot in both forms of output, break ! 241: the line there in the source file and put `@*' at the end of the ! 242: line. ! 243: ! 244: ! 245: @dots ! 246: ----- ! 247: ! 248: `@dots{}' generates an ellipsis: three periods in a row, or `...'. ! 249: Do not simply write three periods in the input file; that would work ok for ! 250: the Info file output, but would produce the wrong amount of space between ! 251: the periods in the printed manual. ! 252: ! 253: ! 254: @bullet ! 255: ------- ! 256: ! 257: `@bullet{}' generates a large round dot, or the closest possible ! 258: thing to one. ! 259: ! 260: ! 261: @TeX ! 262: ---- ! 263: ! 264: `@TeX{}' generates `TeX'. In a printed manual, this is a special ! 265: logo that is different from three ordinary letters. ! 266: ! 267: ! 268: @copyright ! 269: ---------- ! 270: ! 271: `@copyright{}' generates a `C' inside a circle. ! 272: ! 273: ! 274: @code ! 275: ----- ! 276: ! 277: `@code' is used to indicate text that is a literal example of input ! 278: to a program. The text follows, enclosed in braces. Any time you give a ! 279: sample of an expression in C, or of a command for the shell, or any such ! 280: thing, use `@code'. In the printed manual, it puts the argument in ! 281: bold face. In the Info file, it uses `...' quotation. Example: ! 282: ! 283: To compare two files, showing text inserted or removed, use @code{diff}. ! 284: ! 285: produces ! 286: ! 287: To compare two files, showing text inserted or removed, use `diff'. ! 288: ! 289: ! 290: @samp ! 291: ----- ! 292: ! 293: `@samp' is used to indicate text that is a literal example of a ! 294: sequence of characters in a file, string, pattern, etc. The text follows, ! 295: enclosed in braces. The argument appears within `...' quotation in ! 296: both the Info file and the printed manual; in addition, it is printed in ! 297: a fixed-width font. ! 298: ! 299: To match @samp{foo} at the end of the line, use the regexp @samp{foo$}. ! 300: ! 301: produces ! 302: ! 303: To match `foo' at the end of the line, use the regexp `foo$'. ! 304: ! 305: ! 306: @file ! 307: ----- ! 308: ! 309: `@file' is used to indicate text that is a file name. Currently ! 310: it is equivalent to `@samp' in its effects on the output. ! 311: ! 312: ! 313: @kbd ! 314: ---- ! 315: ! 316: `@kbd' is used much like `@code'. The difference is that `@kbd' is for ! 317: names of keys on the keyboard, or of characters you can type. It has the ! 318: same effect as `@code' in texinfo, but may produce a different font in a ! 319: printed manual. ! 320: ! 321: To give the @code{logout} command, type the characters @kbd{l o g o u t ! 322: @key{RET}}. ! 323: ! 324: produces ! 325: ! 326: To give the `logout' command, type the characters `l o g o u t ! 327: RET'. ! 328: ! 329: ! 330: @key ! 331: ---- ! 332: ! 333: `@key' is used to indicate text that is the name of a key on ! 334: the keyboard, as in ! 335: ! 336: @key{RET} ! 337: ! 338: Often, `@key' is used within the argument of a `@kbd' command, whenever the ! 339: sequence of characters to be typed includes one or more keys that are ! 340: described by name. ! 341: ! 342: The recommended names to use for keys are ! 343: ! 344: SPC ! 345: Space. ! 346: RET ! 347: Return. ! 348: LFD ! 349: Linefeed. ! 350: TAB ! 351: Tab. ! 352: BS ! 353: Backspace. ! 354: ESC ! 355: Escape. ! 356: DEL ! 357: Delete. ! 358: SFT ! 359: Shift. ! 360: CTL ! 361: Control. ! 362: META ! 363: Meta. ! 364: ! 365: ! 366: @ctrl ! 367: ----- ! 368: ! 369: `@ctrl' is used to describe an ASCII control character. The pattern ! 370: of usage is `@ctrl{CH}', where CH is an ASCII character whose ! 371: control-equivalent is wanted. ! 372: ! 373: In the Info file, this generates the specified control character, output ! 374: literally into the file. ! 375: ! 376: In a printed manual, this generates text to describe or identify that ! 377: control character: an uparrow followed by the character CH. ! 378: ! 379: ! 380: @var ! 381: ---- ! 382: ! 383: `@var' is used to indicate metasyntactic variables. Its effect in ! 384: the Info file is to upcase the argument; in the printed manual, to ! 385: italicize it. Example: ! 386: ! 387: To delete file @var{file}, type @code{rm @var{file}}. ! 388: ! 389: produces ! 390: ! 391: To delete file FILE, type `rm FILE'. ! 392: ! 393: ! 394: @dfn ! 395: ---- ! 396: ! 397: `@dfn' is used to identify the introductory or defining use of a ! 398: technical term. It generates italics in the printed manual, and double ! 399: quotation marks in the Info file. Example: ! 400: ! 401: Getting rid of a file is called @dfn{deleting} it. ! 402: ! 403: produces ! 404: ! 405: Getting rid of a file is called "deleting" it. ! 406: ! 407: ! 408: @i or @b or @t ! 409: -------------- ! 410: ! 411: These three commands specify font change in the printed manual and have no ! 412: effect in the Info file. `@i' requests italic font (actually, slanted font ! 413: is used by TeX), `@b' requests bold face, and `@t' requests the fixed-width ! 414: font used by `@kbd'. All three commands apply to an argument that follows, ! 415: surrounded by braces. ! 416: ! 417: ! 418: @w ! 419: -- ! 420: ! 421: In a printed manual, `@w{TEXT}' outputs TEXT and prohibits ! 422: line breaks within TEXT. `@w' has no effect on the Info file ! 423: output; it is the same as would result from just TEXT. ! 424: ! 425: ! 426: @refill ! 427: ------- ! 428: ! 429: If a paragraph contains sizeable @-constructs, it may look badly filled ! 430: once texinfo is through with it. ! 431: ! 432: Put `@refill' at the end of the paragraph to tell texinfo to refill the ! 433: paragraph after finishing all other processing on it. `@refill' has no ! 434: effect on TeX, which always fills everything that ought to be filled. ! 435: Example: ! 436: ! 437: To use @code{foo}, pass @samp{xx%$} and @var{flag} and type @kbd{x} ! 438: after running @code{make-foo}.@refill ! 439: ! 440: produces (in the Info file) ! 441: ! 442: To use `foo', pass `xx%$' and FLAG and type `x' after running `make-foo'. ! 443: ! 444: whereas without the `@refill' it would produce ! 445: ! 446: To use `foo', pass `xx%$' and FLAG and type `x' ! 447: after running `make-foo'. ! 448: ! 449: with the line broken at the same place as in the input. ! 450: ! 451: ! 452: Chapter Structuring Commands ! 453: ============================ ! 454: ! 455: The chapter structuring commands divide a document into a hierarchy of ! 456: chapters, sections, subsections and subsubsections. These commands ! 457: generate large headings in the middle of the text. ! 458: ! 459: In a printed manual, the table of contents is based on the information ! 460: specified by the chapter structuring commands. ! 461: ! 462: ! 463: @chapter ! 464: -------- ! 465: ! 466: `@chapter' identifies a chapter in the document. It is followed by a ! 467: single argument which is the rest of the line, as in ! 468: ! 469: @chapter Texinfo Files ! 470: ! 471: In TeX, it serves to create a chapter of the document, specifying the ! 472: chapter title. ! 473: ! 474: In the Info file, `@chapter' causes its argument to appear on a line by ! 475: itself, with a line of asterisks inserted underneath. Thus, the above ! 476: example produces the output ! 477: ! 478: Texinfo Files ! 479: ************* ! 480: ! 481: ! 482: @unnumbered, @appendix ! 483: ---------------------- ! 484: ! 485: These are equivalent to `@chapter' for Info file output. In a ! 486: printed manual, they generate chapters that are numbered differently in the ! 487: table of contents. `@unnumbered' chapters appear without chapter ! 488: numbers of any kind, and `@appendix' chapters are given a letter ! 489: instead of a number. ! 490: ! 491: ! 492: @section ! 493: -------- ! 494: ! 495: `@section' is like `@chapter' except that in TeX it makes a section rather ! 496: than a chapter. Sections go within chapters. In the Info file, `@chapter' ! 497: and `@section' differ only in that `@section' underlines with `='. ! 498: ! 499: ! 500: @unnumberedsec, @appendixsec ! 501: ---------------------------- ! 502: ! 503: Use these constructs for sections within chapters made by ! 504: `@unnumbered' or `@appendix'. ! 505: ! 506: ! 507: @subsection ! 508: ----------- ! 509: ! 510: Subsections are to sections as sections are to chapters. They are ! 511: underlined with `-'. ! 512: ! 513: ! 514: @unnumberedsubsec, @appendixsubsec ! 515: ---------------------------------- ! 516: ! 517: Use these constructs for subsections within sections within chapters made ! 518: by `@unnumbered' or `@appendix'. ! 519: ! 520: ! 521: @subsubsection ! 522: -------------- ! 523: ! 524: Subsubsections are to subsections as subsections are to sections. They are ! 525: underlined with periods. ! 526: ! 527: ! 528: Nodes and Cross References ! 529: ========================== ! 530: ! 531: "Nodes" are the points to which cross-references can refer. The ! 532: `@node' command is used to define them. Each node must be, also, a ! 533: chapter, section, subsection or subsubsection, and the `@node' ! 534: command must always be followed by a chapter structuring command (with no ! 535: blank line between them). ! 536: ! 537: In the Info file, nodes play a fundamental role. Each node has a name, ! 538: and other nodes can refer to it by that name. The `@node' command ! 539: specifies the name of the node that it defines, and also defines certain ! 540: references to other nodes. References to other nodes can also be defined ! 541: with `@menu' and the variants of `@xref'. ! 542: ! 543: In a printed manual, nodes are not a fundamental concept, but the ! 544: `@node' command still serves to define a cross-reference point ! 545: and the variants of `@xref' still serve to make references. ! 546: ! 547: ! 548: @node ! 549: ----- ! 550: ! 551: `@node' defines the beginning of a new node in the Info output file (*Note ! 552: info: (info)top.). It is followed by four arguments, separated by commas, ! 553: making up the rest of the line. For example, ! 554: ! 555: @node info, tex, commands, top ! 556: ! 557: defines a node named `info', whose `next' pointer is to node `tex', whose ! 558: `previous' pointer is to node `commands', and whose `up' pointer is to node ! 559: `top'. What this means is that texinfo changes `@node ARGS' into the ! 560: special text string necessary to separate Info nodes and to identify the ! 561: node that is starting and say what nodes it points to. ! 562: ! 563: The pointer names should be the names of nodes defined elsewhere. For this ! 564: example, nodes named `tex', `commands' and `top' should be defined ! 565: elsewhere in the file with other `@node' commands. It does not matter ! 566: whether they are before or after the node that refers to them. ! 567: ! 568: Normally, node A's `up' should point at the node whose menu mentions node ! 569: A. Node A's `next' should point at the node that follows A in that menu, ! 570: and node A's `previous' should point at the node that precedes A in that ! 571: menu. ! 572: ! 573: The top node of the file, named `top', should have as its parent the ! 574: name of a node in another file, where there is a menu that leads to this ! 575: file. Specify the file name in parentheses. If this file is to be ! 576: installed directly in the Info directory file, use `(dir)' as the ! 577: parent of the top node; this is short for `(dir)top', the node `top' ! 578: in the file `dir', which is the main menu of Info. ! 579: ! 580: In TeX, `@node' is nearly ignored. It generates no text. Its only ! 581: function is to identify the name to use for cross-references to the ! 582: following chapter or section which makes up the body of the node. (Cross ! 583: references are made with `@xref'.) ! 584: ! 585: `@node' should always be followed immediately by a ! 586: chapter-structuring command such as `@chapter', `@section', ! 587: `@subsection' or `@subsubsection'. ! 588: ! 589: ! 590: @menu ! 591: ----- ! 592: ! 593: Info file nodes can contain "menus" which point to other nodes. You must ! 594: type the menus in by hand, and surround them with lines containing `@menu' ! 595: and `@end menu'. The `@menu' line changes into `* Menu:', which indicates ! 596: the beginning of a menu to the Info program. The contents are unchanged by ! 597: texinfo, except for the processing of any other @ commands within. The ! 598: entire menu construct has no effect in the printed manual. ! 599: ! 600: @menu ! 601: * foo:: The node named foo tells you how to go fooing. ! 602: * sw: switches. Type @code{m sw} to see node @code{switches}. ! 603: which describes the switches available here. ! 604: @end menu ! 605: ! 606: produces ! 607: ! 608: * menu: ! 609: ! 610: * foo:: The node named foo tells you how to go fooing. ! 611: * sw: switches. Type `m sw' to see node `switches' ! 612: which describes the switches available here. ! 613: ! 614: In this example, the menu has two items. `foo' is both a menu item name ! 615: and the name of the node referred to by that item. `sw' is the other ! 616: menu item name, and it refers to the node named `switches'. Since no ! 617: file name is specified with `foo' or `switches', they must be the names ! 618: of other nodes in the same Info file. Nodes in other Info files can be ! 619: referred to by putting the file name in parentheses at the beginning of the ! 620: node name. ! 621: ! 622: ! 623: @xref ! 624: ----- ! 625: ! 626: `@xref' generates a cross-reference. In texinfo, it turns into ! 627: an Info cross-reference which the Info `f' command can use ! 628: to go directly to another node. In TeX, it turns into a sentence ! 629: of the form ! 630: ! 631: See section SECTION [TOPIC], page PAGE ! 632: ! 633: but does not generate a period to end it. ! 634: ! 635: `@xref' must refer to an Info node created by `@node', by the ! 636: node's name. If I were in less of a rush, I would have made a node in this ! 637: file for each texinfo command, and put in plenty of @xref's to ! 638: cross-reference them together. The big node named `commands' would ! 639: actually contain a menu naming the nodes for individual commands. ! 640: ! 641: `@xref' is followed by an argument inside braces, since it is used ! 642: within a paragraph; but actually the text inside the braces is treated as ! 643: several arguments, separated by commas. Whitespace after these commas is ! 644: ignored. The closing brace must be followed by a period or a comma, since ! 645: one of those two is required to terminate an Info cross-reference. This ! 646: period or comma will appear in the output, both Info file and printed ! 647: manual. ! 648: ! 649: The simplest form of `@xref' takes one argument, the name of another ! 650: node in the same Info file. Here we show the input text, followed after a ! 651: blank line by the output text for Info files and the output text for ! 652: printed manuals. ! 653: ! 654: @xref{foo}, for more info. ! 655: ! 656: *note foo::, for more info. ! 657: ! 658: See section NNN [foo], page PPP, for more info. ! 659: ! 660: With two arguments, the second one is used as the name of the Info ! 661: cross-reference, while the first argument is still the node that the ! 662: cross-reference points to: ! 663: ! 664: @xref{foo node, foo}, for more info. ! 665: ! 666: *note foo: foo node, for more info. ! 667: ! 668: See section NNN [foo node], page PPP, for more info. ! 669: ! 670: A third argument replaces the node name when it actually appears ! 671: in the TeX output. It should state the topic discussed by the ! 672: section being referenced. Use a third argument when the node ! 673: name is unsuitable because of syntax, grammar or diction. ! 674: ! 675: @xref{foo node, foo, using foo}, for more info. ! 676: ! 677: *note foo: foo node, for more info. ! 678: ! 679: See section NNN [using foo], page PPP, for more info. ! 680: ! 681: If a third argument is given and the second one is empty, ! 682: then the third argument serves both purposes: ! 683: ! 684: @xref{foo node, , using foo}, for more info. ! 685: ! 686: *note using foo: foo node, for more info. ! 687: ! 688: See section NNN [using foo], page PPP, for more info. ! 689: ! 690: A fourth argument specifies the name of the Info file in which ! 691: the referenced node is located, assuming it is not the one which ! 692: the reference appears in. `@xref' with only four arguments ! 693: is used when the reference is not within one Info file, but is ! 694: within a single printed manual---when multiple texinfo files are ! 695: incorporated into the same TeX run but make separate Info files. ! 696: ! 697: @xref{foo node, foo, using foo, myinfofile}, for more info. ! 698: ! 699: *note foo: (myinfofile) foo node, for more info. ! 700: ! 701: See section NNN [using foo], page PPP, for more info. ! 702: ! 703: A fifth argument is used when referencing another Info file ! 704: which is also part of another printed manual. It gives the ! 705: title of that manual. ! 706: ! 707: @xref{foo node, foo, using foo, myinfofile, Mymanual}, ! 708: for more info. ! 709: ! 710: *note foo: (myinfofile) foo node, for more info. ! 711: ! 712: See section NNN [using foo], page PPP ! 713: of Mymanual, for more info. ! 714: ! 715: ! 716: @pxref ! 717: ------ ! 718: ! 719: `@pxref' is nearly the same as `@xref'; it differs in only ! 720: two ways: ! 721: ! 722: 1. The output starts with lower case `see' rather than `See'. ! 723: 2. A period is generated automatically in the Info file output to end the ! 724: Info cross-reference. ! 725: ! 726: The purpose of `@pxref' is to be used inside parentheses as part of ! 727: another sentence. In the printed manual, no period is needed after the ! 728: cross reference text itself (within the parentheses), but a period is ! 729: needed there in the Info file because only thus can Info recognize the end ! 730: of the cross-reference. `@pxref' spares you the need to use complicated ! 731: methods to put a period into one form of the output and not the other. ! 732: ! 733: ! 734: @inforef ! 735: -------- ! 736: ! 737: `@inforef' is used for cross-references to Info files for which ! 738: there are no printed manuals. Even in a printed manual, `@inforef' ! 739: generates a reference directing the user to look in an Info file. The ! 740: syntax is `@inforef{NODE, NAME, FILE}'. ! 741: ! 742: @inforef{foo node, fooing, FOO}, to lose. ! 743: ! 744: *note fooing: (FOO) foo node, to lose. ! 745: ! 746: See Info file `FOO', node `foo node', to lose. ! 747: ! 748: ! 749: Insertions ! 750: ========== ! 751: ! 752: Insertions are blocks of text, consisting of one or more whole paragraphs ! 753: that are set off from the bulk of the text and treated differently. They ! 754: are usually indented, and often not filled. ! 755: ! 756: In texinfo, an insertion is always begun by an @-command on a line by ! 757: itself, and ended with an `@end' command. For example, an "example" ! 758: is a kind of insertion that is begun with `@example' and ended with ! 759: `@end example'. ! 760: ! 761: ! 762: @quotation ! 763: ---------- ! 764: ! 765: `@quotation' is used to indicate text that is excerpted from another ! 766: (real or hypothetical) printed work. The inside of a quotation is ! 767: processed normally except that ! 768: ! 769: 1. The margins are narrower. ! 770: 2. Paragraphs are not indented. ! 771: 3. Interline spacing and interparagraph spacing are reduced. ! 772: ! 773: Thus, the input ! 774: ! 775: @quotation ! 776: This is ! 777: a foo. ! 778: @end quotation ! 779: ! 780: produces in the printed manual ! 781: ! 782: This is a foo. ! 783: ! 784: and in the Info file ! 785: ! 786: This is ! 787: a foo. ! 788: ! 789: ! 790: @example ! 791: -------- ! 792: ! 793: `@example' is used to indicate an example that is not part of the ! 794: running text. In the printed manual, this is done by switching to ! 795: a fixed width font, turning off filling, and making extra spaces ! 796: and blank lines significant. In the Info file, an analogous result ! 797: is obtained by indenting each line with five extra spaces. ! 798: ! 799: `@example' should appear on a line by itself; this line will ! 800: disappear from the output. Mark the end of the example with a line ! 801: containing `@end example', which will likewise disappear. ! 802: Example: ! 803: ! 804: @example ! 805: mv foo bar ! 806: @end example ! 807: ! 808: produces ! 809: ! 810: mv foo bar ! 811: ! 812: Don't use tabs in lines of an example! ! 813: ! 814: ! 815: @display ! 816: -------- ! 817: ! 818: `@display' is just like `@example' except that, in the printed manual, ! 819: `@display' does not select the fixed-width font. In fact, it does not ! 820: specify the font at all, so that the text appears in the same font it would ! 821: have appeared in without the `@display'. ! 822: ! 823: ! 824: @itemize ! 825: -------- ! 826: ! 827: `@itemize' is used to produce sequences of indented paragraphs, with ! 828: a mark inside the left margin at the beginning of each. The rest of the ! 829: line that starts with `@itemize' should contain the character or ! 830: texinfo commands to generate such a mark. It should ultimately result in a ! 831: single character, or the indentation will come out wrong. You may use ! 832: the texinfo commands that are normally followed by `{}'; in fact, you ! 833: may omit the `{}' after the command if you use just one command ! 834: and nothing else. ! 835: ! 836: The text of the indented paragraphs themselves come after the `@itemize', ! 837: up to another line that says `@end @itemize'. ! 838: ! 839: Before each paragraph for which a mark in the margin is desired, place a ! 840: line that says just `@item'. ! 841: ! 842: Here is an example of the use of `@itemize', followed by the output ! 843: it produces. Note that `@bullet' produces a `*' in texinfo and ! 844: a round dot in TeX. ! 845: ! 846: @itemize @bullet ! 847: @item ! 848: Some text for foo. ! 849: @item ! 850: Some text ! 851: for bar. ! 852: @end itemize ! 853: ! 854: produces ! 855: ! 856: * Some text for foo. ! 857: * Some text ! 858: for bar. ! 859: ! 860: Texinfo indents the lines of the itemization by five additional columns, ! 861: but it does not fill them. If `@refill' is used, the paragraph is ! 862: filled to the narrowed width. ! 863: ! 864: ! 865: @enumerate ! 866: ---------- ! 867: ! 868: `@enumerate' is like `@itemize' except that the marks in the left margin ! 869: contain successive integers starting with 1. Do not put any argument on ! 870: the same line as `@enumerate'. ! 871: ! 872: @enumerate ! 873: @item ! 874: Some text for foo. ! 875: @item ! 876: Some text ! 877: for bar. ! 878: @end enumerate ! 879: ! 880: produces ! 881: ! 882: 1. Some text for foo. ! 883: 2. Some text ! 884: for bar. ! 885: ! 886: ! 887: @table ! 888: ------ ! 889: ! 890: `@table' is similar to `@itemize', but allows you to specify a ! 891: name or heading line for each item. ! 892: ! 893: You must follow each use of `@item' inside of `@table' with ! 894: text to serve as the heading line for that item. ! 895: ! 896: Also, `@table' itself must be followed by an argument that is a texinfo ! 897: command such as `@code', `@var', `@kbd' or `@asis'. This command will be ! 898: applied to the text of each item. `@asis' is a command that does nothing; ! 899: in that case, each item will come out exactly as it specifies. (Various ! 900: other command names might work in this context. Only commands that ! 901: normally take arguments in braces may be used, but here you use the command ! 902: name without an argument. `@item' supplies the arguments.) ! 903: ! 904: @table @samp ! 905: @item foo ! 906: This is the text for ! 907: @samp{foo}. ! 908: @item bar ! 909: Text for @samp{bar}. ! 910: @end table ! 911: ! 912: produces ! 913: ! 914: `foo' ! 915: This is the text for ! 916: `foo'. ! 917: `bar' ! 918: Text for `bar'. ! 919: ! 920: ! 921: @itemx ! 922: ------ ! 923: ! 924: `@itemx' is used inside a `@table' when you have two or more named items ! 925: for the same block of text. Use `@itemx' for all but the first of the ! 926: items. It works exactly like `@item' except that it does not generate ! 927: extra vertical space above the item text. Example: ! 928: ! 929: @table @code ! 930: @item upcase ! 931: @itemx downcase ! 932: These two functions accept a character or a string as argument, ! 933: and return the corresponding upper case (lower case) character ! 934: or string. ! 935: @end table ! 936: ! 937: produces ! 938: ! 939: `upcase' ! 940: `downcase' ! 941: These two functions accept a character or a string as argument, ! 942: and return the corresponding upper case (lower case) character ! 943: or string. ! 944: ! 945: ! 946: @noindent ! 947: --------- ! 948: ! 949: `@noindent' is not a kind of insertion, but it is normally used ! 950: following an insertion. ! 951: ! 952: If you have text following an `@example' or other similar "special ! 953: paragraph" that reads as a continuation of the text before the ! 954: `@example', it is good to prevent this text from being indented as a ! 955: new paragraph. To accomplish this, put `@noindent' on a line by ! 956: itself before the start of the text that should not be indented. ! 957: ! 958: To adjust the number of blank lines properly in the Info file output, ! 959: remember that the line containing `@noindent' does not generate a ! 960: blank line, and neither does the `@end example' line. ! 961: ! 962: In the texinfo source file for this documentation, each of the lines that ! 963: says `produces' is preceded by a line containing `@noindent'. ! 964: ! 965: ! 966: Other Paragraph-Separating Commands ! 967: =================================== ! 968: ! 969: ! 970: @setfilename ! 971: ------------ ! 972: ! 973: `@setfilename FILE' informs texinfo that the Info file being ! 974: produced is named FILE. This information is entered in every node ! 975: header. It also tells texinfo the name for the output file. ! 976: ! 977: ! 978: @comment ! 979: -------- ! 980: ! 981: A line starting with `@comment' or `@c' is ignored in both ! 982: printed and Info output. ! 983: ! 984: ! 985: @ignore ! 986: ------- ! 987: ! 988: A line saying `@ignore' causes everything up to the following ! 989: `@end ignore' to be ignored in both printed and Info output. ! 990: ! 991: ! 992: @br ! 993: --- ! 994: ! 995: In a printed manual, a line containing `@br' forces a paragraph ! 996: break; in the Info file output, it does nothing (not even a blank line ! 997: results from it). ! 998: ! 999: ! 1000: @sp ! 1001: --- ! 1002: ! 1003: A line containing `@sp N' generates N blank lines of space in either the ! 1004: printed manual or the Info file. ! 1005: ! 1006: ! 1007: @page ! 1008: ----- ! 1009: ! 1010: A line containing `@page' starts a new page in a printed manual. The ! 1011: line has no effect on Info files since they are not paginated. ! 1012: ! 1013: ! 1014: @group ! 1015: ------ ! 1016: ! 1017: A line containing `@group' begins an unsplittable vertical group, ! 1018: which must appear entirely on one page. The group is terminated by a line ! 1019: containing `@end group'. These two lines produce no output of their ! 1020: own, and in the Info file output they have no effect at all. ! 1021: ! 1022: ! 1023: @need ! 1024: ----- ! 1025: ! 1026: A line containing `@need N' starts a new page in a printed manual if fewer ! 1027: than N mils (thousandths of an inch) remain on the current page. The line ! 1028: has no effect on Info files since they are not paginated. ! 1029: ! 1030: ! 1031: @center ! 1032: ------- ! 1033: ! 1034: A line containing `@center TEXT' produces a line of output containing TEXT, ! 1035: centered between the margins. ! 1036: ! 1037: ! 1038: Conditionals ! 1039: ------------ ! 1040: ! 1041: You may not always be able to use the same text for TeX and texinfo. ! 1042: Use the conditional commands to specify which text is for TeX and which ! 1043: is for texinfo. ! 1044: ! 1045: `@ifinfo' begins text that should be ignored by TeX. It should appear on a ! 1046: line by itself. End the texinfo-only text with a line containing `@end ! 1047: ifinfo'. ! 1048: ! 1049: Likewise, `@iftex' and `@end iftex' lines delimit code that should be ! 1050: ignored by texinfo. ! 1051: ! 1052: ! 1053: Generating Indices ! 1054: ================== ! 1055: ! 1056: Texinfo files can generate indices automatically. Each index covers ! 1057: a certain kind of entry (functions, or variables, or concepts, etc.) ! 1058: and lists all of those entries in alphabetical order, together with ! 1059: information on how to find the discussion of each entry. In a printed ! 1060: manual, this information consists of page numbers. In an Info file, ! 1061: it consists of a menu item leading to the node in which the entry ! 1062: is discussed. ! 1063: ! 1064: ! 1065: Normally, six indices are provided for: ! 1066: ! 1067: * A "program index" listing names of programs and leading to the places ! 1068: where those programs are documented. ! 1069: ! 1070: * A "function index" listing functions (such as, entry points of ! 1071: libraries). ! 1072: ! 1073: * A "variables index" listing variables (such as, external variables of ! 1074: libraries). ! 1075: ! 1076: * A "data type index" listing data types (such as, structures defined in ! 1077: header files). ! 1078: ! 1079: * A "keystroke index" listing keyboard commands. ! 1080: ! 1081: * A "concept index" listing concepts that are discussed. ! 1082: ! 1083: Not every manual needs all of these. Two or more indices can be combined ! 1084: into one using the `@synindex' command as described below. ! 1085: ! 1086: ! 1087: Defining the Entries of an Index ! 1088: -------------------------------- ! 1089: ! 1090: The data to make an index comes from many individual commands scattered ! 1091: throughout the source file. Each command says to add one entry to a ! 1092: particular index, giving the current page number or node name as the ! 1093: reference. ! 1094: ! 1095: `@cindex CONCEPT' ! 1096: Make an entry in the concept index for CONCEPT, referring to the ! 1097: current page or node. ! 1098: `@findex FUNCTION' ! 1099: Make an entry in the function index for FUNCTION, referring to the ! 1100: current page or node. ! 1101: `@vindex VARIABLE' ! 1102: Make an entry in the variable index for VARIABLE, referring to the ! 1103: current page or node. ! 1104: `@pindex PROGRAM' ! 1105: Make an entry in the program index for PROGRAM, referring to the ! 1106: current page or node. ! 1107: `@kindex KEY' ! 1108: Make an entry in the key index for KEY, referring to the ! 1109: current page or node. ! 1110: `@tindex DATA TYPE' ! 1111: Make an entry in the data type index for DATA TYPE, referring to the ! 1112: current page or node. ! 1113: ! 1114: If the same name is indexed on several pages, all the pages are listed ! 1115: in the printed manual's index. However, only the first node referenced ! 1116: will appear in the index of an Info file. ! 1117: ! 1118: You are not actually required to use these indices for their canonical ! 1119: purposes. For example, you might wish to index some C preprocessor macros. ! 1120: You could put them in the function index along with actual functions, just ! 1121: by writing `@findex' commands for them; then, when you print the ! 1122: "function index", you could give it the title `Function and Macro Index' ! 1123: and all will be consistent for the reader. Or you could put the macros in ! 1124: with the data types by writing `@tindex' commands for them, and give ! 1125: that index a suitable title so the reader will understand. ! 1126: ! 1127: ! 1128: Combining Indices ! 1129: ----------------- ! 1130: ! 1131: Sometimes you will want to combine two disparate indices such as functions ! 1132: and variables, perhaps because you have few enough of one of them that ! 1133: a separate index for them would look silly. ! 1134: ! 1135: You could put variables into the function index by writing `@findex' ! 1136: commands for them instead of `@vindex' commands, and produce a ! 1137: consistent manual by printing the function index with the title `Function ! 1138: and Variable Index' and not printing the "variable index" at all; but this ! 1139: is not a robust procedure. It works only as long as your document is never ! 1140: included in part of or together with another document that is designed to ! 1141: have a separate variable index; if you did that, the variables from your ! 1142: document and those from the other would not end up together. ! 1143: ! 1144: What you should do instead when you want functions and variables in one ! 1145: index is to index the variables with `@vindex' as they should be, ! 1146: but in the overall file for the document use `@synindex' to redirect ! 1147: these `@vindex' commands to the function index. `@synindex' takes two ! 1148: arguments: the name of an index to redirect, and the name of an index to ! 1149: redirect it to. For this purpose, the indices are given two-letter names: ! 1150: ! 1151: `cp' ! 1152: the concept index. ! 1153: `vr' ! 1154: the variable index. ! 1155: `fn' ! 1156: the function index. ! 1157: `ky' ! 1158: the key index. ! 1159: `pg' ! 1160: the program index. ! 1161: `tp' ! 1162: the data type index. ! 1163: ! 1164: Thus, `@synindex vr fn' at the front of an overall manual file ! 1165: will cause all entries designated for the variable index to go to ! 1166: the function index as well. But the included files of this manual ! 1167: could be used in some other manual, that does not do `@synindex', ! 1168: and generate a separate variable index. ! 1169: ! 1170: If the texinfo file containing `@synindex' is also to be made into ! 1171: an Info file itself, you should use `@iftex' around the `@synindex' ! 1172: commands. ! 1173: ! 1174: ! 1175: Printing an Index ! 1176: ----------------- ! 1177: ! 1178: To print an index means to include it as part of a manual or Info file. ! 1179: This does not happen automatically just because you use `@cindex' or other ! 1180: index-entry generating commands in the input; those just cause the raw data ! 1181: for the index to be accumulated. To print an index, you must include ! 1182: special texinfo commands at the place in the document where you want the ! 1183: index to appear. Also, for the case of the printed manual, you must run a ! 1184: special program to sort the raw data to produce a sorted index file, which ! 1185: is what will actually be used to print the index. ! 1186: ! 1187: The texinfo command you need is `@printindex'. It takes the two-letter ! 1188: index name (see table above) as an argument without braces, and reads the ! 1189: corresponding sorted index file and formats it appropriately into an index. ! 1190: ! 1191: `@printindex' does not generate a chapter heading for the index. You ! 1192: should precede it with a suitable section or chapter command (usually ! 1193: `@unnumbered') to supply the chapter heading and put the index into the ! 1194: table of contents. And before that, you probably need a `@node' command. ! 1195: For example, ! 1196: ! 1197: @node Variables Index, Concept Index, Function Index, Top ! 1198: @unnumbered Variable Index ! 1199: ! 1200: @printindex vr ! 1201: ! 1202: @node Concept index,, Variables Index, Top ! 1203: @unnumbered Concept Index ! 1204: ! 1205: @printindex cp ! 1206: ! 1207: ! 1208: Sorting Indices ! 1209: --------------- ! 1210: ! 1211: In TeX, `@printindex' needs a sorted index file to work from. ! 1212: TeX does not know how to do sorting; this is one of the main ! 1213: deficiencies of TeX. You must invoke the program `texindex' to do ! 1214: so, giving it the names of the raw index files to be sorted as arguments. ! 1215: You do not have to run `texindex' on all of them; only the ones you ! 1216: are going to print. ! 1217: ! 1218: TeX outputs raw index files under names that obey a standard convention. ! 1219: These names are the name of your main input file to TeX, with everything ! 1220: after the first period thrown away, and the two letter names of indices ! 1221: added at the end. For example, the raw index output files for the input ! 1222: file `foo.texinfo' would be `foo.cp', `foo.vr', `foo.fn', `foo.tp', ! 1223: `foo.pg' and `foo.ky'. Those are exactly the arguments to give to ! 1224: `texindex'. ! 1225: ! 1226: For each file specified, `texindex' generates a sorted index file whose ! 1227: name is made by appending `s' to the input file name. The `@printindex' ! 1228: command knows to look for a file of that name. `texindex' does not alter ! 1229: the raw index output file. ! 1230: ! 1231: You need not run `texindex' after each TeX run. If you don't, the ! 1232: next TeX run will use whatever sorted index files happen to exist from ! 1233: the previous use of `texindex'. This is usually ok while you are ! 1234: debugging. ! 1235: ! 1236: ! 1237: File: texinfo Node: make-info, Prev: commands, Up: top, Next: manual ! 1238: ! 1239: Converting Texinfo Files into Info Files ! 1240: ======================================== ! 1241: ! 1242: Just visit a texinfo file and invoke ! 1243: ! 1244: `Meta-x texinfo-format-buffer' ! 1245: ! 1246: to convert it to an Info file. A new buffer is created and the Info file ! 1247: text is generated there. `C-x C-s' will save it under the name specified ! 1248: in the `@setfilename' command. ! 1249: ! 1250: If the file is large (more than 30 nodes) it is desirable to make a "tag ! 1251: table" for it. To do this, load the `info' library into Emacs with `M-x ! 1252: load RET info RET' and then do `M-x Info-tagify'. ! 1253: ! 1254: To check your node structure for errors, load Info and then do ! 1255: `M-x Info-validate'. ! 1256: ! 1257: ! 1258: File: texinfo Node: manual, Prev: make-info, Up: top ! 1259: ! 1260: Generating a Real Manual ! 1261: ======================== ! 1262: ! 1263: Most of the time a single printed manual will be made from several texinfo ! 1264: source files, each of which is made into a single Info file. Also, the ! 1265: real manual should have a table of contents. Several special commands are ! 1266: used for these purposes. ! 1267: ! 1268: Every texinfo file that is to be the top-level input to TeX must begin ! 1269: with a line that looks like ! 1270: ! 1271: \input texinfo @c -*-texinfo-*- ! 1272: ! 1273: This serves two functions. ! 1274: ! 1275: 1. When the file is processed by TeX, it loads the macros needed for ! 1276: processing a texinfo file. ! 1277: 2. When the file is edited in Emacs, it causes Texinfo Mode to be used. ! 1278: ! 1279: Every such texinfo file must end with a line saying ! 1280: ! 1281: @bye ! 1282: ! 1283: which terminates TeX processing and forces out unfinished pages. ! 1284: ! 1285: You might also want to include a line saying ! 1286: ! 1287: @setchapternewpage odd ! 1288: ! 1289: to cause each chapter to start on a fresh odd-numbered page. ! 1290: ! 1291: Here is an example of a texinfo file used to generate a manual from two ! 1292: other texinfo files, `foo.texinfo' and `bar.texinfo', each of which makes a ! 1293: separate Info file. The commands used in it are explained in the rest of ! 1294: this section. ! 1295: ! 1296: \input texinfo @c -*-texinfo-*- ! 1297: @settitle This Manual ! 1298: ! 1299: @c put entries intended for the data type index ! 1300: @c into the variable index instead. ! 1301: @synindex tp vr ! 1302: @setchapternewpage odd ! 1303: ! 1304: @titlepage ! 1305: @sp 10 ! 1306: @center @titlefont{This Manual} ! 1307: @sp 3 ! 1308: @center by ! 1309: @sp 3 ! 1310: @center @titlefont{Me} ! 1311: @end titlepage ! 1312: ! 1313: @c Include the files with the actual text ! 1314: @include foo.texinfo ! 1315: @include bar.texinfo ! 1316: ! 1317: @c Print the indices ! 1318: @unnumbered Function Index ! 1319: @printindex fn ! 1320: @unnumbered Variable and Data Type Index ! 1321: @printindex vr ! 1322: @unnumbered Program Index ! 1323: @printindex pg ! 1324: @unnumbered Concept Index ! 1325: @printindex cp ! 1326: ! 1327: @c Print the tables of contents ! 1328: @summarycontents ! 1329: @contents ! 1330: ! 1331: @c That's all ! 1332: @bye ! 1333: ! 1334: ! 1335: Title Page ! 1336: ---------- ! 1337: ! 1338: Start the material for the title page with `@titlepage' and follow it ! 1339: with `@end titlepage'. Both of these commands should stand alone on ! 1340: a line. They cause the title material to appear only in the printed ! 1341: manual, not in an info file. Also, the `@end titlepage' command ! 1342: starts a new page and turns on page numbering (generation of headings). ! 1343: ! 1344: The within-paragraph command `@titlefont' can be used to select a ! 1345: large font suitable for the title itself. ! 1346: ! 1347: ! 1348: Headings ! 1349: -------- ! 1350: ! 1351: Texinfo prints the manual title on every other page as a heading, and the ! 1352: current chapter title on the remaining pages. It knows the chapter title ! 1353: automatically, but you must tell it the manual title with `@settitle': ! 1354: ! 1355: @settitle TITLE ! 1356: ! 1357: on a line by itself causes TITLE to be used for the headings. ! 1358: ! 1359: The `@settitle' command should precede everything that generates ! 1360: actual output. ! 1361: ! 1362: Normally, headings start appearing after the `@end titlepage' command. ! 1363: (They are not wanted on the title page.) However, you can turn headings on ! 1364: and off explicitly with the `@headings' command: ! 1365: ! 1366: @headings on ! 1367: ! 1368: to start output of headings (starting with the page containing the command) ! 1369: or ! 1370: ! 1371: @headings off ! 1372: ! 1373: to stop output of headings (starting also with the current page). ! 1374: ! 1375: ! 1376: @include ! 1377: -------- ! 1378: ! 1379: A line of the form `@include FILENAME' is ignored when generating an ! 1380: Info file, but in a printed manual it causes the contents of the file ! 1381: FILENAME to be processed at that point. ! 1382: ! 1383: Normally, the file named FILENAME is made into a separate Info file. ! 1384: The file containing the `@include' may refer to the other Info file ! 1385: with Info cross-references or menus, since those fill the function of ! 1386: inclusion for the Info data base. ! 1387: ! 1388: Another technique is to have a special file, used only for making a ! 1389: comprehensive manual, containing nothing but the beginning, the end, and a ! 1390: bunch of `@include' commands. ! 1391: ! 1392: A file that is intended to be processed with `@include' should not ! 1393: start with `\input texinfo', as that has already been done by the ! 1394: outer file, and the character `\' has already been redefined to ! 1395: generate a backslash in the output. ! 1396: ! 1397: A file that is intended to be processed with `@include' should not ! 1398: end with `@bye', since that would terminate TeX processing immediately. ! 1399: ! 1400: ! 1401: Table of Contents ! 1402: ----------------- ! 1403: ! 1404: The commands `@chapter', `@section', etc., supply the information to make ! 1405: up a table of contents, but they do not cause an actual table to be output. ! 1406: To do this, you must use the commands `@contents' and `@summarycontents'. ! 1407: ! 1408: `@contents', which should be used on a line by itself, outputs (into a ! 1409: printed manual) a complete table of contents, based on the `@chapter' and ! 1410: other sectioning commands already seen. ! 1411: ! 1412: `@summarycontents' generates a summary table of contents that lists ! 1413: only the chapters (and appendixes and unnumbered chapters); sections, ! 1414: subsections and subsubsections are omitted. ! 1415: ! 1416: You can use either one of these commands, or both. Each one automatically ! 1417: generates a chapter-like heading at the top of the page. Tables of ! 1418: contents should be generated at the very end of the manual, just before the ! 1419: `@bye' command; they should follow any indices that are output, so ! 1420: that the indices will appear in the contents. ! 1421: ! 1422: INDICES... ! 1423: @summarycontents ! 1424: @contents ! 1425: @bye ! 1426: ! 1427: The commands `@contents' and `@summarycontents' are ignored when an ! 1428: Info file is being generated. ! 1429: ! 1430: ! 1431: Tag table: ! 1432: Node: manual41468 ! 1433: Node: make-info40775 ! 1434: Node: commands3940 ! 1435: Node: info1215 ! 1436: Node: top725 ! 1437: ! 1438: End tag table
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.