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