Annotation of 43BSD/contrib/emacs/info/texinfo, revision 1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.