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