|
|
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: Top, Next: License, Prev: (dir), Up: (dir)
29:
30: * Menu:
31:
32: * License:: Licensing information.
33: * Overview:: What is Texinfo?
34: * Texinfo Mode:: Special features in GNU Emacs.
35: * Beginning a File:: What to put at the beginning of a Texinfo file.
36: * Ending a File:: What to put at the end of a Texinfo file.
37: * Structuring:: How to make nodes and chapters.
38: * Quotations and Examples:: How to insert quotations and examples.
39: * Lists and Tables:: How to make lists and tables.
40: * Cross References:: How to make cross references.
41: * Formatting Paragraphs:: How to format paragraphs.
42: * Marking Text:: How to mark code, definitions, variables etc.
43: * Conditionals:: Putting text in only Info or the printed work.
44: * Printing Hardcopy:: How to print a hardcopy of the manual.
45: * Creating an Info File:: How to create an on-line Info file.
46: * Catching Mistakes:: How to find problems.
47:
48: Indices, nodes containing large menus
49:
50: * Command Index:: An item for each @-command.
51: * Concept Index:: An item for each concept.
52:
53: A detailed node listing
54:
55: Overview
56: * Info File:: Characteristics of the Info file.
57: * Printed Manual:: Characteristics of the printed manual.
58: * Conventions:: General syntactic conventions.
59: * Short Sample:: A short sample Texinfo file.
60:
61: Using Texinfo Mode
62: * Info on a Region:: Formatting a region for Info.
63: * Showing the Structure:: Showing the structure of a file.
64: * Inserting:: Inserting frequently used commands.
65:
66: Beginning a Texinfo File.
67: * First Line:: The first line of a Texinfo file.
68: * Start-of-Header:: Identifying the start of the header.
69: * Setfilename:: Specifying the name of the Info file.
70: * Settitle:: Specifying the title used by the headings.
71: * Setchapternewpage:: Starting chapters on odd numbered pages.
72: * Titlepage:: The title and copyright page.
73: * Center:: Centering a line.
74: * Copyright & Printed Permissions:: Ensuring free distributability.
75: * Top Node:: The master menu.
76: * License and Distribution:: Your are free to copy and distribute this.
77:
78: Ending a Texinfo File
79: * Contents:: Generating tables of contents.
80: * Indices:: Generating indices.
81: * Index Entries:: Defining the entries of an index.
82: * Combining Indices:: Putting two or more indices together.
83: * Printing Indices & Menus:: Printing an index and generating menus.
84:
85: Node and Chapter Structuring
86: * Chapter:: Creating a chapter.
87: * Unnumbered and Appendix:: Chapter-like parts.
88: * Section:: Creating sections
89: * Subsection:: Creating subsections.
90: * Subsubsection:: Creating subsubsections.
91:
92: * Node:: Creating nodes.
93: * Menu:: Creating menus.
94:
95:
96: Making quotations and examples
97: * Quotation:: Inserting long quotations.
98: * Example:: Inserting examples of code and the like.
99: * Display:: Inserting displayed text.
100:
101: Making lists and two column tables
102: * Itemize:: Creating itemized lists.
103: * Enumerate:: Creating enumerated lists.
104: * Table:: Creating two column tables.
105: * Itemx:: Putting an extra item in the
106: first column of a table.
107:
108: Making Cross References
109: * Xref:: Making a regular cross reference.
110: * Pxref:: Making a parenthetical cross reference.
111: * Inforef:: Making a cross reference to an Info file.
112:
113:
114: Formatting Paragraphs
115: * Refilling & Noindent:: Refilling paragraphs
116: and preventing indentation
117: * Refill:: Using the `@refill' command.
118: * Noindent:: Using the `@noindent' command.
119:
120:
121: Breaks, Blank Lines and Groups
122: * Line Breaks:: Inserting line breaks in TeX.
123: * Sp:: Inserting blank lines.
124: * Br:: Inserting paragraph breaks.
125: * W:: Preventing line breaks.
126: * Page:: Starting new pages.
127: * Group:: Holding text together on one page.
128: * Need:: Keeping text together.
129:
130: Marking Text Within a Paragraph
131: * Code:: A literal example of a piece of a program.
132: * Samp:: A literal example of a sequence of characters.
133: * File:: The name of a file.
134: * Kbd:: The names of keys or else characters you type.
135: * Key:: The conventional name for a key on a keyboard.
136: * Ctrl:: Indicates the ASCII control character.
137: * Var:: A variable.
138: * Dfn:: The introductory or defining use of a term.
139: * Cite:: The name of a book.
140:
141: Inserting Braces, `@' and Periods
142: * Braces Atsigns Periods:: Inserting braces, `@' and periods.
143: * Dots Bullets Tex:: Inserting dots, bullets and the TeX logo
144: * Emphasis:: Emphasizing text.
145:
146: Emphasizing Text
147: * Emph and Strong:: Emphasizing text.
148: * Fonts:: Selecting italic, bold or typewriter fonts.
149:
150: Creating an Info File
151: * Installing an Info File:: Putting the Info file in the
152: `info' directory.
153:
154: Catching Mistakes
155: * Debugging with Info:: Catching errors with info formatting.
156: * Using the Emacs Lisp Debugger:: Using the Emacs Lisp Debugger
157: * Debugging with Tex:: Catching errors with TeX formatting.
158: * Using texinfo-show-structure:: Using `texinfo-show-structure'
159: to catch mistakes.
160: * Using Occur:: Using `occur' to catch mistakes.
161: * Running Info-Validate:: Checking for unreferenced nodes.
162:
163: Finding badly referenced nodes
164: * Info-Validating a Large File:: Running `Info-validate'
165: on a large file.
166: * Splitting:: Splitting a file manually.
167:
168: Appendices
169: * Command Syntax:: Details about the syntax.
170: * Include Files:: Making one printed file out of
171: several Info files.
172: * TeX Input:: Where TeX finds its `\input' file.
173: * Sample Permissions:: You may copy GNU Software.
174: * Ifinfo Permissions:: What to put in the `ifinfo' section.
175: * Titlepage Permissions:: What to put in the `@titlepage' section.
176:
177:
178:
179: File: texinfo, Node: License, Next: Overview, Prev: Top, Up: Top
180:
181: Licensing Information
182: *********************
183:
184: The programs currently being distributed that relate to Texinfo
185: include two portions of GNU Emacs, plus two other separate programs
186: (`texindex' and `texinfo.tex'). These programs are "free"; this
187: means that everyone is free to use them and free to redistribute them
188: on a free basis. The Texinfo related programs are not in the public
189: domain; they are copyrighted and there are restrictions on their
190: distribution, but these restrictions are designed to permit
191: everything that a good cooperating citizen would want to do. What is
192: not allowed is to try to prevent others from further sharing any
193: version of these programs that they might get from you.
194:
195: Specifically, we want to make sure that you have the right to give
196: away copies of the programs that relate to Texinfo, that you receive
197: source code or else can get it if you want it, that you can change
198: these programs or use pieces of them in new free programs, and that
199: you know you can do these things.
200:
201: To make sure that everyone has such rights, we have to forbid you to
202: deprive anyone else of these rights. For example, if you distribute
203: copies of the Texinfo related programs, you must give the recipients
204: all the rights that you have. You must make sure that they, too,
205: receive or can get the source code. And you must tell them their
206: rights.
207:
208: Also, for our own protection, we must make certain that everyone
209: finds out that there is no warranty for the programs that relate to
210: Texinfo. If these programs are modified by someone else and passed
211: on, we want their recipients to know that what they have is not what
212: we distributed, so that any problems introduced by others will not
213: reflect on our reputation.
214:
215: The precise conditions of the licenses for the programs currently
216: being distributed that relate to Texinfo are found in the General
217: Public Licenses that accompany them. The programs that are part of
218: GNU Emacs are covered by the GNU Emacs copying terms (*note :
219: (emacs)License.), and other programs are covered by licenses that are
220: contained in their source files.
221:
222:
223:
224: File: texinfo, Node: Overview, Next: Texinfo Mode, Prev: License, Up: Top
225:
226: Overview of Texinfo
227: *******************
228:
229: Texinfo is a documentation system that uses a single source file for
230: both on-line help and a printed manual. This means that instead of
231: writing two different documents, one for the on-line help and the
232: other for the printed manual, only one document needs to be written.
233: When the system is revised, only one file has to be revised.
234:
235: Using Texinfo, you can create a document with the normal features of
236: a book such as chapters, sections, cross references and indices. The
237: chapters and sections of the printed manual can be made to correspond
238: to the nodes of the on-line help. The cross references and indices
239: can be used in both the on-line help and in the printed document.
240: Indices are generated semi-automatically. The ``GNU Emacs Manual''
241: is a good example of a Texinfo file.
242:
243: To make the printed manual, the Texinfo source file is processed by
244: the TeX typesetting program; the resulting DVI file can be typeset
245: and printed as a book. To make the on-line help, the Texinfo source
246: file is by processed the `M-x texinfo-format-buffer' command; the
247: resulting Info file is installed in the `info' directory.
248:
249: Since the Texinfo source file is used for a dual task--to create both
250: the on-line help and the printed manual--it must be written in a
251: special format that uses @-commands (words preceded by an `@') to
252: indicate chapters, sections, nodes, examples, index entries and the
253: like.
254:
255: Before writing a Texinfo source file, you should be familiar with the
256: on-line Info documentation reading program. (*note info: (info)Info,
257: for more information.) If you are writing a document that will be
258: both on-line and printed, you will need both Info and TeX.
259:
260: To make an Info file, you use the `M-x texinfo-format-buffer' command
261: in GNU Emacs.
262:
263: To make a printed manual, you need to use TeX, a powerful,
264: sophisticated typesetting program written by Donald Knuth. TeX is
265: freely distributable. It is written in a dialect of Pascal called WEB
266: and can be compiled either in Pascal or (by using a conversion
267: program that comes with the TeX distribution) in C. (For information
268: about getting TeX, *note : (emacs)TeX Mode.)
269:
270: When TeX processes a Texinfo source file, TeX makes use of a macro
271: definitions file called `texinfo.tex' that comes with the GNU Emacs
272: distribution in the `emacs/man' sources directory. (The first line
273: of every Texinfo file has a command that says `\input texinfo'; this
274: tells TeX to use the `texinfo.tex' file.)
275:
276: If the `texinfo.tex' file has not already been copied to the
277: directory which contains the other TeX macro definition files when
278: Emacs was installed, you will probably want to copy it to that
279: directory. Usually, this is the `/usr/lib/tex/macros' directory.
280: For more information, *note @TeX{} Input Initialization: TeX Input.
281:
282: Documentation for GNU utilities and libraries should be written in
283: Texinfo format.
284:
285: * Menu:
286:
287: * Info File:: Characteristics of the Info file.
288: * Printed Manual:: Characteristics of the Printed Manual.
289: * Conventions:: General Syntactic Conventions.
290: * Short Sample:: A short sample Texinfo file.
291:
292:
293:
294: File: texinfo, Node: Info File, Next: Printed Manual, Up: Overview
295:
296: Characteristics of the Info file
297: ================================
298:
299: A Texinfo file can be transformed into a printed manual and an
300: on-line Info file.
301:
302: An on-line Info file is a file formatted so that the Info
303: documentation reading program can operate on it. Info files are
304: divided into pieces called "nodes", each of which contains the
305: discussion of one topic. Each node has a name, and contains both
306: text for the user to read and pointers to other nodes, which are
307: identified by their names. The Info program displays one node at a
308: time, and provides commands with which the user can move to the other
309: nodes to which the current node points.
310:
311: *note info: (info)Info, for more information about using Info.
312:
313: Normally, most of the nodes are arranged in a tree which branches down.
314: Each node may have any number of child nodes that describe subtopics
315: of the node's topic. The names of these child nodes, if any, are
316: listed in a "menu" within the parent node; this allows certain Info
317: commands to be used to move to one of the child nodes. Each child
318: node records the parent node name, as its `Up' pointer. Thus, if a
319: node were at the logical level of a `chapter', its child nodes would
320: be `sections'; likewise, the child nodes of a section would be
321: subsections.
322:
323: The root of the tree is the top node of the file, through which users
324: enter the file from the Info directory. By convention, this node is
325: always called `Top'. This node normally contains just a brief
326: summary of the file's purpose, and a large menu through which the
327: rest of the file is reached.
328:
329: Generally you enter the Info file from the top; then you can either
330: traverse the file systematically by going from node to node or you
331: can search large menus that correspond to indices and go directly to
332: the node that has the information you want.
333:
334: If you want to read through an Info file in sequence, as if it were a
335: printed manual, you can get the whole file with the advanced Info
336: command `g *'. (*note info: (info)Expert.)
337:
338: All the children of any one parent are linked together in a
339: bidirectional chain of `Next' and `Previous' pointers. This means
340: that all the nodes that are logically parallel to sections within a
341: chapter are all linked together. Normally the order in this chain is
342: the same as the order of the children in the parent's menu. The last
343: child has no `Next' pointer, and the first child normally has the
344: parent as its `Previous' pointer (as well as its `Up' pointer, of
345: course).
346:
347: Structuring the nodes in a tree is a matter of convention, not a
348: requirement. In fact, the `Up', `Previous' and `Next' pointers of a
349: node can point to any other nodes, and the menu can contain any other
350: nodes. The structure of nodes can be any directed graph. But it is
351: usually more comprehensible to make it a tree. Info provides another
352: kind of pointer between nodes, called a reference, that can be
353: sprinkled through the text of a node. This is usually the best way
354: to represent links that do not fit the tree structure.
355:
356: Most often the nodes fall into a strict tree structure that
357: corresponds to the structure of chapters and sections in the printed
358: manual. But there are times when this is not right for the material
359: being discussed. Therefore, Texinfo uses separate commands to
360: specify the node structure of the Info file and the section structure
361: of the printed manual. Also, Texinfo requires that you specify menus
362: explicitly, rather than generate them automatically based on an
363: assumed tree structure.
364:
365:
366:
367: File: texinfo, Node: Printed Manual, Next: Conventions, Prev: Info File, Up: Top
368:
369: Characteristics of the Printed Manual
370: =====================================
371:
372: A Texinfo file can be formatted and typeset as a printed manual. The
373: printed manual will be the same as any other book; it will have a
374: title page, copyright page, table of contents, and preface as you
375: would expect, as well as chapters, numbered or unnumbered sections
376: and subsections, not to mention page headers, cross references and
377: indices.
378:
379: Texinfo can be used for writing a book without ever having the
380: intention of converting it into on-line help. Texinfo can be used
381: for writing a novel; and it can even be used to write a memo,
382: although this application is not recommended since electronic mail is
383: so much easier.
384:
385: Texinfo uses the formatting language called TeX for typesetting. A
386: file called `texinfo.tex' contains information (definitions or
387: "macros") that TeX uses when it typesets a Texinfo file. (The macros
388: tell TeX how to convert the Texinfo @-commands to TeX commands which
389: TeX can then process to create the typeset document.) `texinfo.tex'
390: contains the specifications for printing a document, either with 7
391: inch by 9.25 inch pages or with 8.5 inch by 11 inch pages. (This is
392: 178 mm by 235 mm or else 216 mm by 280 mm.) Also, by changing the
393: parameters in `texinfo.tex' you can easily change the size of the
394: printed document. In addition, you can readily change the style in
395: which the printed document is formatted; for example, you can change
396: the sizes and fonts used, the amount of indentation for each
397: paragraph, the degree to which words are hyphenated, and the like.
398: By changing the specifications, you can make a book look dignified,
399: old and serious, or light-hearted, young and cheery.
400:
401: TeX is very powerful and has a great many features. Because a
402: Texinfo file must be able to present information both on a
403: character-only terminal in Info form and in a typeset book, the
404: commands that Texinfo supports are necessarily limited.
405:
406:
407:
408: File: texinfo, Node: Conventions, Next: Short Sample, Prev: Printed Manual, Up: Overview
409:
410: General Syntactic Conventions
411: =============================
412:
413: Texinfo files contain a strictly limited set of constructs. The
414: strict limits make it possible for Texinfo files to be understood
415: both by TeX and by the code which converts them into Info files.
416:
417: All ASCII printing characters except `@', `{' and `}' can appear in
418: body text in a Texinfo file and stand for themselves. `@' is the
419: escape character which introduces commands. `{' and `}' should be
420: used only to surround arguments to certain commands. `{' and `}'
421: appearing anywhere else will be treated by TeX as a grouping but
422: treated by the code that produces an Info file as themselves; this
423: inconsistency is undesirable, so don't let it occur. To put one of
424: these special characters into the document, put an `@' character in
425: front of it. For example, you would insert `@@', `@{', and `@}'.
426:
427: It is customary in TeX to use doubled single-quote characters to
428: begin and end quotations, ```' like these `'''. This convention
429: should be followed in Texinfo files. Also, three hyphens in a row,
430: `--', are used for a dash--like this. In TeX, a single or even a
431: double hyphen produces a dash that is shorter than you want.
432:
433: TeX ignores the line-breaks in the input text, except for blank
434: lines, which separate paragraphs. Info generally preserves the line
435: breaks that are present in the input file. Therefore, break the
436: lines in the Texinfo file the way you want them to appear in the
437: output Info file, and let TeX take care of itself.
438:
439: Since Info does not normally refill paragraphs when it processes
440: them, a line with @-commands in it will sometimes look bad after Info
441: has run on it. To cause Info to refill the paragraph after finishing
442: with the other processing, you need to put the command `@refill' at
443: the end of the paragraph. (*Note Refilling paragraphs and Preventing
444: indentation: Refilling & Noindent.)
445:
446: To prevent a paragraph from being indented in the printed manual, put
447: the command `@noindent' on a line by itself before the start of the
448: text that should not be indented.
449:
450: If you mark off a region of the Texinfo file with the `@iftex' and
451: `@end iftex' commands so that the region will appear only in the
452: printed copy, you can use TeX commands that cannot be used in the
453: Info file.
454:
455: In order to be made into a printed manual, a Texinfo file *must*
456: begin with lines that looks like
457:
458: \input texinfo @c -*-texinfo-*-
459: @setfilename INFO-FILE-NAME
460: @settitle NAME OF MANUAL
461:
462: The `\input texinfo' line tells TeX to use the `texinfo.tex' file.
463: This line is usually followed by a start-of-header line (not shown
464: here) and then by the `@setfilename INFO-FILE-NAME' and `@settitle
465: NAME OF MANUAL' lines. These two lines are needed to provide a name
466: for the Info file and to specify the name used on the left-hand page
467: headers of the printed manual.
468:
469: The two lines that contain the `@setfilename' and `@settitle'
470: commands usually are sandwiched between the start-of-header line and
471: the end-of-header line. (*Note Start-of-Header::, for more
472: information.) The start-of-header and end-of-header lines are needed
473: if you are going to run TeX or Info on just part of a file.
474:
475:
476:
477: File: texinfo, Node: Short Sample, Prev: Conventions, Up: Overview
478:
479: A Short Sample Texinfo File
480: ===========================
481:
482: A Texinfo file looks like the following, which is a complete but very
483: short Texinfo file. The `@comment' command introduces comments that
484: will not appear in either the Info file or the printed manual; they
485: are for the person who reads the Texinfo file.
486:
487: The first part of the file, from `\input texinfo' through to `@end
488: titlepage', looks more intimidating than it is. Most of the material
489: is standard boilerplate; when you write a manual, you just put in the
490: name of your own manual in this section.
491:
492: All the commands that tell TeX how to typeset the printed manual and
493: tell `texinfo-format-buffer' how to create an Info file are preceded
494: by `@'; thus, `@node' indicates a node and `@chapter' indicates the
495: start of a chapter.
496:
497: \input texinfo @c -*-texinfo-*-
498: @setfilename name-of-texinfo-file
499: @settitle Name of Manual
500: @setchapternewpage odd
501:
502: @ifinfo
503: @comment The following line inserts the copyright notice
504: @comment into the Info file.
505: Copyright @copyright{} 1988 Free Software Foundation, Inc.
506: @end ifinfo
507:
508: @comment The titlepage section does not appear in the Info file.
509: @titlepage
510: @sp 10
511: @comment The title is printed in a large font.
512: @center @titlefont{Sample Title}
513:
514: @comment The following two commands start the copyright page
515: @comment for the printed manual. This will not appear in the Info file.
516: @page
517: @vskip 0pt plus 1filll
518: Copyright @copyright{} year copyright-owner
519: @end titlepage
520:
521: @comment The Top node contains the master menu for the Info file.
522: @comment This appears only in the Info file, not the printed manual.
523:
524: @node Top, First Chapter, (dir), (dir)
525: @comment node-name, next, previous, up
526:
527: @menu
528: * First Chapter:: The first chapter is the
529: only chapter in this sample.
530: @end menu
531:
532: @node First Chapter, , Top, Top
533: @comment node-name, next, previous, up
534: @chapter First Chapter
535: @cindex Reference to First Chapter
536:
537: This is the contents of the first chapter.
538:
539: Here is a numbered list.
540:
541: @enumerate
542: @item
543: This is the first item.
544:
545: @item
546: This is the second item.
547: @end enumerate
548:
549: The @kbd{M-x texinfo-format-buffer} command transforms a Texinfo file
550: like this into an Info file; and @TeX{} typesets it for a printed
551: manual.
552:
553: @node Concept Index, , Previous Node, Top
554: @comment node-name, next, previous, up
555: @unnumbered Concept Index
556:
557: @printindex cp
558:
559: @contents
560: @bye
561:
562: Here is what the contents of the first chapter of the sample look like:
563:
564: This is the contents of the first chapter.
565:
566: Here is a numbered list.
567:
568: 1. This is the first item.
569:
570: 2. This is the second item.
571:
572: The `M-x texinfo-format-buffer' command transforms a Texinfo
573: file like this into an Info file; and TeX typesets it for a
574: printed manual.
575:
576:
577:
578: File: texinfo, Node: Texinfo Mode, Next: Beginning a File, Prev: Overview, Up: Top
579:
580: Using Texinfo Mode
581: ******************
582:
583: In GNU Emacs, Texinfo mode is a major mode for editing Texinfo files.
584: This means that Emacs has commands and features especially designed
585: for working with Texinfo files. Like all other Emacs features, you
586: can customize or enhance these as you wish. In particular, the
587: keybindings are very easy to change. The keybindings described here
588: are the default or standard ones.
589:
590: The major features of Texinfo mode are:
591:
592: * Paragraph filling control.
593:
594: * A command to show the structure of the file.
595:
596: * Pre-defined keystroke commands to insert commonly used strings
597: of text.
598:
599: * Formatting a part of a file for Info, rather than the whole file.
600:
601: In general, in Texinfo mode, the GNU Emacs editing commands are like
602: those in text-mode. The major difference is that the paragraph
603: separation variable and syntax table are set up so expression
604: commands skip Texinfo bracket groups. This means, for example, that
605: the `M-q' (`fill-paragraph') command will refill a paragraph but not
606: the @-command on a line adjacent to it.
607:
608: By convention, the Texinfo file name shall end with the extension
609: `.texinfo' so that Emacs knows to use Texinfo mode for editing it.
610:
611: * Menu:
612:
613: * Info on a Region:: Formatting part of a file for Info.
614: * Showing the Structure:: Showing the structure of a file.
615: * Inserting:: Inserting frequently used commands.
616:
617:
618:
619: File: texinfo, Node: Info on a Region, Next: Showing the Structure, Prev: Texinfo Mode, Up: Texinfo Mode
620:
621: Formatting a Region for Info
622: ============================
623:
624: To see what part of a Texinfo file will look like after it has been
625: transformed into an Info file, use the command `C-c C-f'
626: (`texinfo-format-region'). This command formats the current region
627: of the Texinfo file for Info and writes it to a temporary buffer
628: called `*Info Region*'.
629:
630: For `texinfo-format-region' to work, the file *must* include a line
631: that has `@setfilename' in its header.
632:
633: The command is:
634:
635: `C-c C-f'
636: texinfo-format-region
637:
638:
639:
640: File: texinfo, Node: Showing the Structure, Next: Inserting, Prev: Info on a Region, Up: Texinfo Mode
641:
642: Showing the Structure of a File
643: ===============================
644:
645: You can show the structure of a Texinfo file by using the `C-c C-s'
646: command (`texinfo-show-structure'). This command shows the structure
647: of a Texinfo file by listing the lines with the @-commands for
648: `@node', `@chapter', `@section' and the like. These lines are
649: displayed in another window called the `*Occur*' window. In that
650: window, you can position the cursor over one of the lines and use the
651: `C-c C-c' command (`occur-mode-goto-occurrence'), to jump to the
652: corresponding spot in the Texinfo file.
653:
654: The two commands are:
655:
656: `C-c C-s'
657: texinfo-show-structure
658:
659: `C-c C-c'
660: occur-mode-goto-occurrence
661:
662: Often, when you are working on a manual, you will be interested only
663: in the structure of the current chapter. In this case, you can mark
664: off the region of the buffer that you are interested in with the `C-x
665: n' (`narrow-to-region') command and `texinfo-show-structure' will
666: work on only that region. (To see the whole buffer again, use `C-x
667: w' (`widen').)
668:
669:
670:
671: File: texinfo, Node: Inserting, Prev: Showing the Structure, Up: Texinfo Mode
672:
673: Inserting Frequently Used Commands
674: ==================================
675:
676: Texinfo mode provides commands that insert various frequently used
677: @-commands into the buffer. You can use these commands to save
678: keystrokes. And you can insert balanced curly braces with the `M-{'
679: command, (`texinfo-insert-braces') and later use the `M-}' command
680: (`up-list') to move forward past the closing brace.
681:
682: The special commands are invoked by typing `C-c' twice and then the
683: first letter of the @-command.
684:
685: `C-c C-c c'
686: texinfo-insert-@code
687:
688: `C-c C-c d'
689: texinfo-insert-@dfn
690:
691: `C-c C-c e'
692: texinfo-insert-@end
693:
694: `C-c C-c i'
695: texinfo-insert-@item
696:
697: `C-c C-c n'
698: texinfo-insert-@node
699:
700: `C-c C-c s'
701: texinfo-insert-@samp
702:
703: `C-c C-c v'
704: texinfo-insert-@var
705:
706: `M-{'
707: texinfo-insert-braces
708:
709: `M-}'
710: up-list
711:
712: This list was generated by analyzing the frequency with which
713: commands were used in the ``GNU Emacs Manual'' and the ``GDB
714: Manual''. If you wish to add your own insert commands, you can bind
715: a keyboard macro to a key, use abbreviations or extend the code in
716: `texinfo.el'.
717:
718:
719:
720: File: texinfo, Node: Beginning a File, Next: Ending a File, Prev: Texinfo Mode, Up: Top
721:
722: Beginning a Texinfo File
723: ************************
724:
725: Various pieces of information have to be provided to Texinfo at the
726: beginning of a Texinfo file, such as the name of the file, the title
727: of the document and the like. Generally, the beginning of a Texinfo
728: file has four parts:
729:
730: 1. The header, marked by start-of-header and end-of-header lines,
731: that includes the commands for naming the Texinfo file and
732: telling TeX what definitions' file to use when processing the
733: file.
734:
735: 2. A section, marked by the `@ifinfo' and `@end ifinfo' commands,
736: that contains a short statement of what the file is about, the
737: copyright notice and copying permissions. This section appears
738: only in the Info file.
739:
740: 3. A section, marked by the `@titlepage' and `@end titlepage'
741: commands, that contains the title page, the copyright page and
742: copying permissions. This section appears only in the printed
743: manual.
744:
745: 4. The `Top' node that contains an extensive menu for the whole
746: Info file. The contents of this node only appear in the Info
747: file.
748:
749: If the Texinfo file has a section containing licensing information
750: and a warranty disclaimer, that section usually follows the `Top'
751: node. The licensing section will be followed by a preface or else by
752: the first chapter of the manual.
753:
754: Since the copyright notice and the copying permissions are in
755: sections that appear only in the Info file or only in the printed
756: manual, this information has to be repeated twice.
757:
758: The following sample shows what is needed.
759:
760: \input texinfo @c -*-texinfo-*-
761: @comment %**start of header (This is for running Texinfo on a region.)
762: @setfilename name-of-texinfo-file
763: @settitle Name of Manual
764: @setchapternewpage odd
765: @comment %**end of header (This is for running Texinfo on a region.)
766:
767: @ifinfo
768: This file documents ...
769:
770: Copyright @copyright{} year copyright-owner
771:
772: Permission is granted to ...
773: @end ifinfo
774:
775: @titlepage
776: @sp 10
777: @center @titlefont{Name of Manual When Printed}
778: @sp 2
779: @center Subtitle, If Any
780: @sp 2
781: @center Author
782:
783: @comment The following two commands start the copyright page.
784: @page
785: @vskip 0pt plus 1filll
786: Copyright @copyright{} year copyright-owner
787:
788: Published by ...
789:
790: Permission is granted to ...
791: @end titlepage
792:
793:
794: @node Top, Overview, (dir), (dir)
795:
796: @menu
797: * First Chapter:: The first chapter is usually an overview.
798: * Second Chapter:: ...
799: <many more menu items here>
800: @end menu
801:
802: @node First Chapter, Second Chapter, top, top
803: @comment node-name, next, previous, up
804: @chapter First Chapter
805: @cindex Reference to First Chapter
806:
807: * Menu:
808:
809: * Header:: Necessary first lines.
810: * Permissions for Info:: Copyright notice and copying permissions.
811: * Titlepage & Copyright Page:: Printed title and copyright pages.
812: * Top Node:: The top node and master menu.
813: * License and Distribution:: The importance of the license.
814:
815:
816:
817: File: texinfo, Node: Header, Next: Permissions for Info, Prev: Beginning a File, Up: Beginning a File
818:
819: The Texinfo File Header
820: =======================
821:
822: Texinfo files start with at least three lines that provide Info and
823: TeX with necessary information. If you want to run TeX on just a
824: part of the Texinfo File, you also have to mark these heading lines
825: with start-of-header and end-of-header lines.
826:
827: * Menu:
828:
829: * First Line:: The first line of a Texinfo file.
830: * Start-of-Header:: Identifying the start of the header.
831: * Setfilename:: Specifying the name of the Info file.
832: * Settitle:: Specifying the title used by the headings.
833: * Setchapternewpage:: Starting chapters on odd numbered pages.
834: * End-of-Header:: Identifying the end of the header.
835:
836:
837:
838: File: texinfo, Node: First Line, Next: Start-of-Header, Prev: Header, Up: Header
839:
840: The First Line of a Texinfo File
841: --------------------------------
842:
843: Every Texinfo file that is to be the top-level input to TeX must
844: begin with a line that looks like this:
845:
846: \input texinfo @c -*-texinfo-*-
847:
848: The line serves two functions:
849:
850: 1. When the file is processed by TeX, it loads the macros needed
851: for processing a Texinfo file. These are in a file called
852: `texinfo.tex' which is usually located in the
853: `/usr/lib/tex/macros' directory.
854:
855: 2. When the file is edited in GNU Emacs, it causes Texinfo mode to
856: be used.
857:
858: The `\input texinfo' line should be followed by the start-of-header
859: line. This makes it possible for the command for running TeX on a
860: part of the Texinfo file (`texinfo-hardcopy-region') to operate. The
861: reason for this is that the `texinfo-hardcopy-region' command will
862: look on the line preceding the start-of-header line for the `\input
863: texinfo' line.
864:
865:
866:
867: File: texinfo, Node: Start-of-Header, Next: Setfilename, Prev: First Line, Up: Header
868:
869: `start-of-header'
870: -----------------
871:
872: The start-of-header line should immediately follow the first line of
873: the Texinfo file.
874:
875: The `texinfo-hardcopy-region' command will look at the line preceding
876: the start-of-header line to find the `\input texinfo' line.
877:
878: Usually, the start-of-header line looks like this:
879:
880: @comment %**start of header (This is for running Texinfo on a region.)
881:
882: The reason for the odd string of characters (`%**') is so that the
883: `texinfo-hardcopy-region' command does not accidently find something
884: that it shouldn't when it is looking for the header.
885:
886: In the default configuration, the phrase `(This is for running
887: Texinfo on a region.)' is not needed and is just included to make it
888: easier for someone reading the Texinfo file.
889:
890: The start-of-header line and the end-of-header line are Texinfo mode
891: variables that you can change.
892:
893:
894:
895: File: texinfo, Node: Setfilename, Next: Settitle, Prev: Start-of-Header, Up: Header
896:
897: @setfilename
898: ------------
899:
900: In order to be made into an Info file, a Texinfo file must contain a
901: line that looks like this:
902:
903: @setfilename INFO-FILE-NAME
904:
905: This line specifies the name of the Info file to be generated. In
906: fact, there can be other things in the file before this line, but
907: they are ignored in the generation of an Info file. The
908: `@setfilename' line is ignored when a printed manual is generated.
909:
910:
911:
912: File: texinfo, Node: Settitle, Next: Setchapternewpage, Prev: Setfilename, Up: Header
913:
914: @settitle
915: ---------
916:
917: In order to be made into a printed manual file, a Texinfo file must
918: contain a line that specifies the title of the manual. Texinfo uses
919: this information during printing to put the title on every other page
920: as a heading; Texinfo puts the current chapter title on the other
921: pages. Texinfo can find the name of the chapter title from the
922: information provided by the `@chapter' command, but you must tell it
923: the manual title with `@settitle':
924:
925: @settitle TITLE
926:
927: This command, on a line by itself, causes TITLE to be used for the
928: headings. Usually, you will use the same words for the title on the
929: title page and for the title specified by this command for the
930: headings, but the two could be different. For example, the title on
931: the title page may be longer than the title specified by the
932: `settitle' command.
933:
934: The `@settitle' command should precede everything that generates
935: actual output.
936:
937:
938:
939: File: texinfo, Node: Setchapternewpage, Next: End-of-Header, Prev: Settitle, Up: Header
940:
941: @setchapternewpage
942: ------------------
943:
944: Conventionally, chapters start on the page on the right hand side of
945: a book; and the right hand page has an odd number. To make sure that
946: Texinfo does this, you can use the command `@setchapternewpage'. For
947: example, to cause each chapter to start on a fresh odd-numbered page:
948:
949: @setchapternewpage odd
950:
951: Page numbering is turned on by the `@end titlepage' command, so the
952: `@setchapternewpage' should come before it. Although it can occur
953: anywhere in the beginning of the file, it is most convenient to put
954: it in this location.
955:
956:
957:
958: File: texinfo, Node: End-of-Header, Prev: Setchapternewpage, Up: Header
959:
960: `end-of-header'
961: ---------------
962:
963: The end-of-header line should follow the line containing the
964: `@setchapternewpage' command.
965:
966: Usually, the end-of-header line looks like this:
967:
968: @comment %**end of header (This is for running Texinfo on a region.)
969:
970: In the default configuration, the phrase `(This is for running
971: Texinfo on a region.)' is not needed and is just included to make it
972: easier for someone reading the Texinfo file.
973:
974: The reason for the odd string of characters (`%**') is so that the
975: `texinfo-hardcopy-region' command does not accidently find something
976: that it shouldn't when it is looking for the header.
977:
978: The start-of-header line and the end-of-header line are Texinfo mode
979: variables that you can change.
980:
981:
982:
983: File: texinfo, Node: Permissions for Info, Next: Titlepage & Copyright Page, Prev: Header, Up: Beginning a File
984:
985: Copying Permissions for Info
986: ============================
987:
988: Since the title page and the copyright page appear only in the
989: printed copy of the manual, the same information has to inserted in a
990: section that appears only in the Info file. This section usually
991: contains a brief description of the contents of the Info file, a
992: copyright notice and copying permissions.
993:
994: The copyright notice should read:
995:
996: Copyright YEAR COPYRIGHT-OWNER
997:
998: and be put on a line by itself.
999:
1000: Standard text for the copyright permissions is contained in the
1001: appendix. *Note Ifinfo Permissions::, for the complete text.
1002:
1003:
1004:
1005: File: texinfo, Node: Titlepage & Copyright Page, Next: Top Node, Prev: Permissions for Info, Up: Beginning a File
1006:
1007: The Title and Copyright Pages
1008: =============================
1009:
1010: The title and copyright pages appear in the printed manual, but not
1011: in the Info file. Because of this, it is possible to use a couple of
1012: slightly obscure TeX typesetting commands that could not be used in
1013: an Info file. In addition, this part of the beginning of a Texinfo
1014: file contains the text of the copying permissions that will appear in
1015: the printed manual.
1016:
1017: * Menu:
1018:
1019: * Titlepage:: Creating a title page for the printed manual.
1020: * Center:: Centering a line.
1021: * Copyright & Printed Permissions:: Inserting the copyright notice
1022: and printed permissions.
1023:
1024:
1025:
1026: File: texinfo, Node: Titlepage, Next: Center, Prev: Setchapternewpage, Up: Titlepage & Copyright Page
1027:
1028: @titlepage
1029: ----------
1030:
1031: Start the material for the title page and following copyright page
1032: with `@titlepage' on a line by itself and end it with `@end
1033: titlepage' on a line by itself. The title page and copyright page
1034: material appears only in the printed manual, not in the Info file.
1035:
1036: Also, the `@end titlepage' command starts a new page and turns on
1037: page numbering (generation of headings). Therefore, all the material
1038: that you want to appear on unnumbered pages should be put between the
1039: `@titlepage' and `@end titlepage' commands. By using the `@page'
1040: command you can force a page break within the region delineated by
1041: the `@titlepage' and `@end titlepage' commands and create more than
1042: one unnumbered page. This is how the copyright page is produced.
1043:
1044: To select a large font suitable for the title itself, you can use the
1045: command `@titlefont'. For example:
1046:
1047: @center @titlefont{Texinfo}
1048:
1049: Also, you can use `@sp' commands to adjust vertical spacing. For
1050: example:
1051:
1052: @sp 2
1053:
1054: In the sample, the spacing was chosen to fit an 8 1/2 by 11 inch
1055: manual.
1056:
1057:
1058:
1059: File: texinfo, Node: Center, Next: Titlepage, Prev: Copyright & Printed Permissions, Up: Titlepage & Copyright Page
1060:
1061: @center
1062: -------
1063:
1064: A line containing `@center TEXT' produces a line of output containing
1065: TEXT, centered between the margins.
1066:
1067:
1068:
1069: File: texinfo, Node: Copyright & Printed Permissions, Next: Center, Up: Titlepage & Copyright Page
1070:
1071: The Copyright Page and Printed Permissions
1072: ------------------------------------------
1073:
1074: By international treaty, the copyright notice for a book should
1075: either be on the title page or on the back of the title page. Other
1076: locations in a book are not official and do not provide copyright
1077: protection. The copyright notice should include the year followed by
1078: the name of the person or organization who has the copyright.
1079:
1080: When the copyright notice is on the back of the title page, the page
1081: is not numbered. Therefore, in Texinfo, the information on the
1082: copyright page should be within the region delineated by the
1083: `@titlepage' and `@end titlepage' commands.
1084:
1085: To cause a page break, the `@page' command is used. In the sample,
1086: the `@page' command is followed by the somewhat mysterious line that
1087: reads: `@vskip 0pt plus 1filll'. This is a line that uses TeX
1088: commands to push the copyright notice and the other text on the
1089: copyright page towards the bottom of the page. The `@vskip' command
1090: means to skip lines and put in white space. The `0pt plus 1filll'
1091: means to put in zero points of mandatory white space, and as much
1092: optional white space as needed. Note the use of three `l's in the
1093: word `filll'; this is the correct use in TeX.
1094:
1095: The `@copyright{}' command generates a `c' inside a circle. The
1096: copyright notice itself has the following legally defined sequence:
1097:
1098: Copyright (C) YEAR COPYRIGHT-OWNER
1099:
1100: It is customary to put information on how to get a manual after the
1101: copyright notice (the address of the Free Software Foundation, for
1102: example) and the permissions.
1103:
1104: Note that the permissions have to be repeated here as well as in the
1105: `ifinfo' section that immediately follows the header since this
1106: section appears only in the printed manual and the `ifinfo' section
1107: appears only in the Info file.
1108:
1109: Standard text for the permissions appears in the appendix. *Note
1110: Sample Permissions::.
1111:
1112:
1113:
1114: File: texinfo, Node: Top Node, Next: License and Distribution, Prev: Titlepage & Copyright Page, Up: Beginning a File
1115:
1116: The Top Node and Master Menu
1117: ============================
1118:
1119: The `Top' node contains an extensive, master menu for the whole Info
1120: file. The contents of this node appear only in the Info file.
1121: Nothing in this node should appear in the printed file. Since a node
1122: line by itself and a menu by itself are not printed, the contents of
1123: this node do not have to be within a region delineated by `@ifinfo'
1124: and `@end ifinfo' commands. However, any text within the node should
1125: be marked off in that manner. You may want to put a short summary
1126: before the master menu inside a region delineated by `@ifinfo' and
1127: `@end ifinfo' commands. Usually, the `Previous' and `Up' nodes refer
1128: to the top level directory of the whole Info system, with pointers to
1129: `(dir)'.
1130:
1131: Generally, the top menu is divided into parts.
1132:
1133: * The first part contains the major nodes in the Texinfo file: the
1134: nodes for the chapters, chapter-like sections and the major
1135: appendices.
1136:
1137: * The second part contains entries for the indices. In an Info
1138: file, it is very useful to have indices here at the beginning of
1139: the file in the top node rather than at the end, as in a printed
1140: book.
1141:
1142: * The third and subsequent parts contain a listing of the other,
1143: lower level nodes, often ordered by chapter. This way, an
1144: inquirer can go directly to a particular node if he or she is
1145: searching for specific information. (These nodes are not
1146: required; use them if you think they are a convenience.)
1147:
1148: Each section in the menu can be introduced a descriptive line. So
1149: long as the line does not begin with an asterisk, it will not be
1150: treated as a menu item. (*Note Making Menus: Menu, for more
1151: information.)
1152:
1153: For example, the Top node of this manual looks like this (but with
1154: many more entries):
1155:
1156: @node Top, Overview, (dir), (dir)
1157:
1158: @menu
1159: * Overview:: What is Texinfo?
1160: * Texinfo Mode:: Special features in GNU Emacs.
1161: ...
1162:
1163: Indices, nodes containing large menus
1164:
1165: * Command Index:: An item for each @-command.
1166: * Concept Index:: An item for each concept.
1167:
1168: A detailed node listing
1169:
1170: Overview
1171: * Info File:: Characteristics of the Info file.
1172: * Printed Manual:: Characteristics of the printed manual.
1173:
1174: Using Texinfo Mode
1175: * Info on a Region:: Formatting a region for Info.
1176: * Showing the Structure:: Showing the structure of a file.
1177: ...
1178: ...
1179:
1180:
1181:
1182: File: texinfo, Node: License and Distribution, Prev: Top Node, Up: Beginning a File
1183:
1184: Licensing and Distribution Information
1185: ======================================
1186:
1187: If the Texinfo file has a section containing the ``General Public
1188: License'' and the distribution information and a warranty disclaimer,
1189: this section usually follows the `Top' node. The licensing and
1190: distribution information and the disclaimer are followed by a preface
1191: or else by the first chapter of the manual.
1192:
1193: The licensing agreement is very important to Project GNU
1194: documentation and software. Without it, you may find that you can no
1195: longer get the software or its documentation. This sounds
1196: paradoxical, but the state of the world is such that documentation
1197: and software that does not have a ``restrictive'' license to make
1198: them freely distributable may be lost to the public. This has
1199: happened.
1200:
1201: For a good example of the text that could be used for the
1202: Distribution, General Public License and NO WARRANTY sections of your
1203: document, see the latest version of the ``GNU Emacs Manual''.
1204:
1205: Although a preface is not a required part of a Texinfo file, it is
1206: very helpful. Ideally, it should state clearly and concisely what
1207: the file is about and who would be interested in reading it. In
1208: general, the preface would follow the licensing and distribution
1209: information, although sometimes people put it earlier in the
1210: document. Usually, a preface is put in an `@unnumbered' section.
1211: (*Note Unnumbered and Appendix::.)
1212:
1213:
1214:
1215: File: texinfo, Node: Ending a File, Next: Structuring, Prev: Beginning a File, Up: Top
1216:
1217: Ending a Texinfo File
1218: *********************
1219:
1220: The end of a Texinfo file should include the indices, the commands to
1221: generate detailed and summary tables of contents and the @-command
1222: that tells TeX that it has reached the end of the file.
1223:
1224: For example, a Texinfo file might be ended as follows:
1225:
1226: @node Concept Index, , Previous Node, Top
1227: @comment node-name, next, previous, up
1228: @unnumbered Concept Index
1229:
1230: @printindex cp
1231:
1232: @contents
1233: @bye
1234:
1235: The `@bye' command should be on a line by itself and every Texinfo
1236: file must end with such a line. This command terminates TeX
1237: processing and forces out unfinished pages.
1238:
1239: * Menu:
1240:
1241: * Contents:: Generating a table of contents
1242: * Indices:: Generating, sorting and printing indices
1243:
1244:
1245:
1246: File: texinfo, Node: Contents, Next: Indices, Up: Ending a File
1247:
1248: Generating a Table of Contents
1249: ==============================
1250:
1251: The commands `@chapter', `@section', etc., supply the information to
1252: make up a table of contents, but they do not cause an actual table to
1253: be generated. To do this, you must use the commands `@contents' and
1254: `@summarycontents'.
1255:
1256: `@contents'
1257: The table of contents command outputs (into a printed manual) a
1258: complete table of contents, based on the `@chapter',
1259: `@unnumbered' and other sectioning commands. This command
1260: should be used on a line by itself.
1261:
1262: `@summarycontents'
1263: The summary contents command generates a summary table of
1264: contents that lists only the chapters (and appendices and
1265: unnumbered chapters); sections, subsections and subsubsections
1266: are omitted. This command should be used on a line by itself.
1267: Only large manuals need a summary table of contents.
1268:
1269: You can use either one of these commands, or both. Each command
1270: automatically generates a chapter-like heading at the top of the page.
1271: Tables of contents should be generated at the very end of the manual,
1272: just before the `@bye' command; the tables of contents commands
1273: should follow any indices that are output, so that the indices will
1274: appear in the contents.
1275:
1276: INDICES...
1277: @summarycontents
1278: @contents
1279: @bye
1280:
1281: The commands `@contents' and `@summarycontents' are ignored when an
1282: Info file is being generated.
1283:
1284:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.