comparison man/texinfo.texi @ 430:a5df635868b2 r21-2-23

Import from CVS: tag r21-2-23
author cvs
date Mon, 13 Aug 2007 11:29:08 +0200
parents 3ecd8885ac67
children 1ccc32a20af4
comparison
equal deleted inserted replaced
429:8305706cbb93 430:a5df635868b2
1 \input texinfo.tex @c -*-texinfo-*- 1 \input texinfo.tex @c -*-texinfo-*-
2 @c $Id: texinfo.texi,v 1.8.2.3 1999/11/17 23:28:29 martinb Exp $ 2 @c $Id: texinfo.texi,v 1.8.2.4 1999/12/05 19:02:24 martinb Exp $
3 @c %**start of header 3 @c %**start of header
4 4
5 @c All text is ignored before the setfilename. 5 @c All text is ignored before the setfilename.
6 @setfilename ../info/texinfo.info 6 @setfilename ../info/texinfo.info
7 7 @settitle Texinfo @value{edition}
8 @set UPDATED 28 September 1999 8
9 @set EDITION 4.0 9 @c Edition number is now the same as the Texinfo distribution version number.
10 @set VERSION 4.0 10 @set edition 3.12
11 @settitle Texinfo @value{VERSION} 11 @set update-month February 1998
12 @set update-date 27 @value{update-month}
12 13
13 @c Define a new index for options. 14 @c Define a new index for options.
14 @defcodeindex op 15 @defcodeindex op
15 @c Put everything except function (command, in this case) names in one 16 @c Put everything except function (command, in this case) names in one
16 @c index (arbitrarily chosen to be the concept index). 17 @c index (arbitrarily chosen to be the concept index).
19 @syncodeindex pg cp 20 @syncodeindex pg cp
20 21
21 @footnotestyle separate 22 @footnotestyle separate
22 @paragraphindent 2 23 @paragraphindent 2
23 @finalout 24 @finalout
24
25 @comment %**end of header 25 @comment %**end of header
26
27 @c Before release, run C-u C-c C-u C-a (texinfo-all-menus-update with a
28 @c prefix arg). This updates the node pointers, which texinfmt.el needs.
26 29
27 @dircategory Texinfo documentation system 30 @dircategory Texinfo documentation system
28 @direntry 31 @direntry
29 * Texinfo: (texinfo). The GNU documentation format. 32 * Texinfo: (texinfo). The GNU documentation format.
30 * install-info: (texinfo)Invoking install-info. Update info/dir entries. 33 * install-info: (texinfo)Invoking install-info. Updating info/dir entries.
31 * texi2dvi: (texinfo)Format with texi2dvi. Print Texinfo documents. 34 * texi2dvi: (texinfo)Format with texi2dvi. Printing Texinfo documentation.
32 * texindex: (texinfo)Format with tex/texindex. Sort Texinfo index files. 35 * texindex: (texinfo)Format with tex/texindex. Sorting Texinfo index files.
33 * makeinfo: (texinfo)makeinfo Preferred. Translate Texinfo source. 36 * makeinfo: (texinfo)makeinfo Preferred. Translate Texinfo source.
34 @end direntry 37 @end direntry
35
36 @c Before release, run C-u C-c C-u C-a (texinfo-all-menus-update with a
37 @c prefix arg). This updates the node pointers, which texinfmt.el needs.
38 38
39 @c Set smallbook if printing in smallbook format so the example of the 39 @c Set smallbook if printing in smallbook format so the example of the
40 @c smallbook font is actually written using smallbook; in bigbook, a kludge 40 @c smallbook font is actually written using smallbook; in bigbook, a kludge
41 @c is used for TeX output. Do this through the -t option to texi2dvi, 41 @c is used for TeX output. Do this through the -t option to texi2dvi,
42 @c so this same source can be used for other paper sizes as well. 42 @c so this same source can be used for other paper sizes as well.
43 @c smallbook 43 @c smallbook
44 @c set smallbook 44 @c set smallbook
45 @c @@clear smallbook 45 @c @@clear smallbook
46 46
47 @c If you like blank pages. Can add through texi2dvi -t.
48 @c setchapternewpage odd
49
50 @c Currently undocumented command, 5 December 1993: 47 @c Currently undocumented command, 5 December 1993:
51 @c nwnode (Same as node, but no warnings; for `makeinfo'.) 48 @c nwnode (Same as node, but no warnings; for `makeinfo'.)
52 49
53 @ifinfo 50 @ifinfo
54 This file documents Texinfo, a documentation system that can produce 51 This file documents Texinfo, a documentation system that can produce
55 both online information and a printed manual from a single source file. 52 both on-line information and a printed manual from a single source file.
56 53
57 Copyright (C) 1988, 90, 91, 92, 93, 95, 96, 97, 98, 99 54 Copyright (C) 1988, 90, 91, 92, 93, 95, 96, 97, 98
58 Free Software Foundation, Inc. 55 Free Software Foundation, Inc.
59 56
60 This edition is for Texinfo version @value{VERSION}, @value{UPDATED}. 57 This edition is for Texinfo version @value{edition}.
61 58
62 Permission is granted to make and distribute verbatim copies of 59 Permission is granted to make and distribute verbatim copies of
63 this manual provided the copyright notice and this permission notice 60 this manual provided the copyright notice and this permission notice
64 are preserved on all copies. 61 are preserved on all copies.
65 62
79 into another language, under the above conditions for modified versions, 76 into another language, under the above conditions for modified versions,
80 except that this permission notice may be stated in a translation approved 77 except that this permission notice may be stated in a translation approved
81 by the Free Software Foundation. 78 by the Free Software Foundation.
82 @end ifinfo 79 @end ifinfo
83 80
81 @setchapternewpage odd
84 82
85 @shorttitlepage Texinfo 83 @shorttitlepage Texinfo
86 84
87 @titlepage 85 @titlepage
88 @c use the new format for titles 86 @c use the new format for titles
89 @title Texinfo 87 @title Texinfo
90 @subtitle The GNU Documentation Format 88 @subtitle The GNU Documentation Format
91 @subtitle for Texinfo version @value{VERSION}, @value{UPDATED} 89 @subtitle for Texinfo version @value{edition}
92 90 @subtitle @value{update-month}
93 @author Robert J. Chassell 91
94 @author Richard M. Stallman 92 @author Robert J.@: Chassell
93 @author Richard M.@: Stallman
95 94
96 @c Include the Distribution inside the titlepage so 95 @c Include the Distribution inside the titlepage so
97 @c that headings are turned off. 96 @c that headings are turned off.
98 97
99 @page 98 @page
100 @vskip 0pt plus 1filll 99 @vskip 0pt plus 1filll
101 Copyright @copyright{} 1988, 90, 91, 92, 93, 95, 96, 97, 98, 99 100 Copyright @copyright{} 1988, 90, 91, 92, 93, 95, 96, 97, 98
102 Free Software Foundation, Inc. 101 Free Software Foundation, Inc.
103
104 This manual is for Texinfo version @value{VERSION}, @value{UPDATED}.
105 102
106 Published by the Free Software Foundation @* 103 Published by the Free Software Foundation @*
107 59 Temple Place Suite 330 @* 104 59 Temple Place Suite 330 @*
108 Boston, MA 02111-1307 @* 105 Boston, MA 02111-1307 @*
109 USA @* 106 USA @*
110 ISBN 1-882114-67-1 @c for version 4.0, September 1999. 107 ISBN 1-882114-65-5
111 @c ISBN 1-882114-65-5 @c for version 3.12, March 1998.
112 @c ISBN 1-882114-63-9 is for edition 2.20 of 28 February 1995 108 @c ISBN 1-882114-63-9 is for edition 2.20 of 28 February 1995
113 @c ISBN 1-882114-64-7 is for edition 2.24 of November 1996. 109 @c ISBN 1-882114-64-7 is for edition 2.24 of November 1996.
114 110
115 Permission is granted to make and distribute verbatim copies of 111 Permission is granted to make and distribute verbatim copies of
116 this manual provided the copyright notice and this permission notice 112 this manual provided the copyright notice and this permission notice
127 by the Free Software Foundation. 123 by the Free Software Foundation.
128 @sp 2 124 @sp 2
129 Cover art by Etienne Suvasa. 125 Cover art by Etienne Suvasa.
130 @end titlepage 126 @end titlepage
131 127
132 @summarycontents 128 @ifinfo
133 @contents 129 @node Top, Copying, (dir), (dir)
134
135 @ifnottex
136 @node Top
137 @top Texinfo 130 @top Texinfo
138 131
139 Texinfo is a documentation system that uses a single source file to 132 Texinfo is a documentation system that uses a single source file to
140 produce both online information and printed output. 133 produce both on-line information and printed output.@refill
141 134
142 The first part of this master menu lists the major nodes in this Info 135 The first part of this master menu lists the major nodes in this Info
143 document, including the @@-command and concept indices. The rest of 136 document, including the @@-command and concept indices. The rest of
144 the menu lists all the lower level nodes in the document. 137 the menu lists all the lower level nodes in the document.@refill
145 138
146 This is Edition @value{VERSION} of the Texinfo manual, updated @value{UPDATED}. 139 This is Edition @value{edition} of the Texinfo documentation,
147 @end ifnottex 140 @w{@value{update-date}}.
141 @end ifinfo
142
143 @c Here is a spare copy of the chapter menu entry descriptions,
144 @c in case they are accidently deleted
145 @ignore
146 Your rights.
147 Texinfo in brief.
148 How to use Texinfo mode.
149 What is at the beginning of a Texinfo file?
150 What is at the end of a Texinfo file?
151 How to create chapters, sections, subsections,
152 appendices, and other parts.
153 How to provide structure for a document.
154 How to write nodes.
155 How to write menus.
156 How to write cross references.
157 How to mark words and phrases as code,
158 keyboard input, meta-syntactic
159 variables, and the like.
160 How to write quotations, examples, etc.
161 How to write lists and tables.
162 How to create indices.
163 How to insert @@-signs, braces, etc.
164 How to indicate results of evaluation,
165 expansion of macros, errors, etc.
166 How to force and prevent line and page breaks.
167 How to describe functions and the like in a uniform manner.
168 How to write footnotes.
169 How to specify text for either @TeX{} or Info.
170 How to print hardcopy.
171 How to create an Info file.
172 How to install an Info file
173 A list of all the Texinfo @@-commands.
174 Hints on how to write a Texinfo document.
175 A sample Texinfo file to look at.
176 Tell readers they have the right to copy
177 and distribute.
178 How to incorporate other Texinfo files.
179 How to write page headings and footings.
180 How to find formatting mistakes.
181 All about paragraph refilling.
182 A description of @@-Command syntax.
183 Texinfo second edition features.
184 A menu containing commands and variables.
185 A menu covering many topics.
186 @end ignore
148 187
149 @menu 188 @menu
150 * Copying:: Your rights. 189 * Copying:: Your rights.
151 * Overview:: Texinfo in brief. 190 * Overview:: Texinfo in brief.
152 * Texinfo Mode:: How to use Texinfo mode. 191 * Texinfo Mode:: How to use Texinfo mode.
165 * Indices:: How to create indices. 204 * Indices:: How to create indices.
166 * Insertions:: How to insert @@-signs, braces, etc. 205 * Insertions:: How to insert @@-signs, braces, etc.
167 * Breaks:: How to force and prevent line and page breaks. 206 * Breaks:: How to force and prevent line and page breaks.
168 * Definition Commands:: How to describe functions and the like 207 * Definition Commands:: How to describe functions and the like
169 in a uniform manner. 208 in a uniform manner.
209 * Footnotes:: How to write footnotes.
170 * Conditionals:: How to specify text for either @TeX{} or Info. 210 * Conditionals:: How to specify text for either @TeX{} or Info.
171 * Internationalization:: 211 * Macros:: Defining new Texinfo commands.
172 * Defining New Texinfo Commands:: 212 * Format/Print Hardcopy:: How to convert a Texinfo file to a file
173 * Hardcopy:: How to convert a Texinfo file to a file
174 for printing and how to print that file. 213 for printing and how to print that file.
175 * Creating and Installing Info Files:: 214 * Create an Info File:: Convert a Texinfo file into an Info file.
215 * Install an Info File:: Make an Info file accessible to users.
176 * Command List:: All the Texinfo @@-commands. 216 * Command List:: All the Texinfo @@-commands.
177 * Tips:: Hints on how to write a Texinfo document. 217 * Tips:: Hints on how to write a Texinfo document.
178 * Sample Texinfo File:: A sample Texinfo file to look at. 218 * Sample Texinfo File:: A sample Texinfo file to look at.
179 * Sample Permissions:: Tell readers they have the right to copy 219 * Sample Permissions:: Tell readers they have the right to copy
180 and distribute. 220 and distribute.
191 231
192 --- The Detailed Node Listing --- 232 --- The Detailed Node Listing ---
193 233
194 Overview of Texinfo 234 Overview of Texinfo
195 235
196 * Reporting Bugs:: Submitting effective bug reports. 236 * Using Texinfo:: Create a conventional printed book
197 * Using Texinfo:: Create printed or online output. 237 or an Info file.
198 * Info Files:: What is an Info file? 238 * Info Files:: What is an Info file?
199 * Printed Books:: Characteristics of a printed book or manual. 239 * Printed Books:: Characteristics of a printed book or manual.
200 * Formatting Commands:: @@-commands are used for formatting. 240 * Formatting Commands:: @@-commands are used for formatting.
201 * Conventions:: General rules for writing a Texinfo file. 241 * Conventions:: General rules for writing a Texinfo file.
202 * Comments:: Writing comments and ignored text in general. 242 * Comments:: How to write comments and mark regions that
243 the formatting commands will ignore.
203 * Minimum:: What a Texinfo file must have. 244 * Minimum:: What a Texinfo file must have.
204 * Six Parts:: Usually, a Texinfo file has six parts. 245 * Six Parts:: Usually, a Texinfo file has six parts.
205 * Short Sample:: A short sample Texinfo file. 246 * Short Sample:: A short sample Texinfo file.
206 * Acknowledgements and History:: Contributors and genesis. 247 * Acknowledgements::
207 248
208 Using Texinfo Mode 249 Using Texinfo Mode
209 250
210 * Texinfo Mode Overview:: How Texinfo mode can help you. 251 * Texinfo Mode Overview:: How Texinfo mode can help you.
211 * Emacs Editing:: Texinfo mode adds to GNU Emacs' general 252 * Emacs Editing:: Texinfo mode adds to GNU Emacs' general
242 * First Line:: The first line of a Texinfo file. 283 * First Line:: The first line of a Texinfo file.
243 * Start of Header:: Formatting a region requires this. 284 * Start of Header:: Formatting a region requires this.
244 * setfilename:: Tell Info the name of the Info file. 285 * setfilename:: Tell Info the name of the Info file.
245 * settitle:: Create a title for the printed work. 286 * settitle:: Create a title for the printed work.
246 * setchapternewpage:: Start chapters on right-hand pages. 287 * setchapternewpage:: Start chapters on right-hand pages.
247 * paragraphindent:: Specify paragraph indentation. 288 * paragraphindent:: An option to specify paragraph indentation.
248 * exampleindent:: Specify environment indentation.
249 * End of Header:: Formatting a region requires this. 289 * End of Header:: Formatting a region requires this.
250 290
251 The Title and Copyright Pages 291 The Title and Copyright Pages
252 292
253 * titlepage:: Create a title for the printed document. 293 * titlepage:: Create a title for the printed document.
292 Nodes 332 Nodes
293 333
294 * Two Paths:: Different commands to structure 334 * Two Paths:: Different commands to structure
295 Info output and printed output. 335 Info output and printed output.
296 * Node Menu Illustration:: A diagram, and sample nodes and menus. 336 * Node Menu Illustration:: A diagram, and sample nodes and menus.
297 * node:: Creating nodes, in detail. 337 * node:: How to write a node, in detail.
298 * makeinfo Pointer Creation:: Letting makeinfo determine node pointers. 338 * makeinfo Pointer Creation:: How to create node pointers with @code{makeinfo}.
299 * anchor:: Defining arbitrary cross-reference targets.
300 339
301 The @code{@@node} Command 340 The @code{@@node} Command
302 341
303 * Node Names:: How to choose node and pointer names. 342 * Node Names:: How to choose node and pointer names.
304 * Writing a Node:: How to write an @code{@@node} line. 343 * Writing a Node:: How to write an @code{@@node} line.
343 * Emphasis:: How to emphasize text. 382 * Emphasis:: How to emphasize text.
344 383
345 Indicating Definitions, Commands, etc. 384 Indicating Definitions, Commands, etc.
346 385
347 * Useful Highlighting:: Highlighting provides useful information. 386 * Useful Highlighting:: Highlighting provides useful information.
348 * code:: Indicating program code. 387 * code:: How to indicate code.
349 * kbd:: Showing keyboard input. 388 * kbd:: How to show keyboard input.
350 * key:: Specifying keys. 389 * key:: How to specify keys.
351 * samp:: Showing a literal sequence of characters. 390 * samp:: How to show a literal sequence of characters.
352 * var:: Indicating metasyntactic variables. 391 * var:: How to indicate a metasyntactic variable.
353 * env:: Indicating environment variables. 392 * file:: How to indicate the name of a file.
354 * file:: Indicating file names. 393 * dfn:: How to specify a definition.
355 * command:: Indicating command names. 394 * cite:: How to refer to a book that is not in Info.
356 * option:: Indicating option names. 395 * url:: How to indicate a world wide web reference.
357 * dfn:: Specifying definitions. 396 * email:: How to indicate an electronic mail address.
358 * cite:: Referring to books not in the Info system.
359 * acronym:: Indicating acronyms.
360 * url:: Indicating a World Wide Web reference.
361 * email:: Indicating an electronic mail address.
362 397
363 Emphasizing Text 398 Emphasizing Text
364 399
365 * emph & strong:: How to emphasize text in Texinfo. 400 * emph & strong:: How to emphasize text in Texinfo.
366 * Smallcaps:: How to use the small caps font. 401 * Smallcaps:: How to use the small caps font.
367 * Fonts:: Various font commands for printed output. 402 * Fonts:: Various font commands for printed output.
403 * Customized Highlighting:: How to define highlighting commands.
368 404
369 Quotations and Examples 405 Quotations and Examples
370 406
371 * Block Enclosing Commands:: Use different constructs for 407 * Block Enclosing Commands:: Use different constructs for
372 different purposes. 408 different purposes.
373 * quotation:: How to write a quotation. 409 * quotation:: How to write a quotation.
374 * example:: How to write an example in a fixed-width font. 410 * example:: How to write an example in a fixed-width font.
375 * noindent:: How to prevent paragraph indentation. 411 * noindent:: How to prevent paragraph indentation.
376 * lisp:: How to illustrate Lisp code. 412 * Lisp Example:: How to illustrate Lisp code.
377 * small:: Forms for @code{@@smallbook}. 413 * smallexample & smalllisp:: Forms for the @code{@@smallbook} option.
378 * display:: How to write an example in the current font. 414 * display:: How to write an example in the current font.
379 * format:: How to write an example that does not narrow 415 * format:: How to write an example that does not narrow
380 the margins. 416 the margins.
381 * exdent:: How to undo the indentation of a line. 417 * exdent:: How to undo the indentation of a line.
382 * flushleft & flushright:: How to push text flushleft or flushright. 418 * flushleft & flushright:: How to push text flushleft or flushright.
399 Multi-column Tables 435 Multi-column Tables
400 436
401 * Multitable Column Widths:: Defining multitable column widths. 437 * Multitable Column Widths:: Defining multitable column widths.
402 * Multitable Rows:: Defining multitable rows, with examples. 438 * Multitable Rows:: Defining multitable rows, with examples.
403 439
404 Indices 440 Creating Indices
405 441
406 * Index Entries:: Choose different words for index entries. 442 * Index Entries:: Choose different words for index entries.
407 * Predefined Indices:: Use different indices for different kinds 443 * Predefined Indices:: Use different indices for different kinds
408 of entry. 444 of entry.
409 * Indexing Commands:: How to make an index entry. 445 * Indexing Commands:: How to make an index entry.
429 * pounds:: How to insert the pounds currency symbol. 465 * pounds:: How to insert the pounds currency symbol.
430 * minus:: How to insert a minus sign. 466 * minus:: How to insert a minus sign.
431 * math:: How to format a mathematical expression. 467 * math:: How to format a mathematical expression.
432 * Glyphs:: How to indicate results of evaluation, 468 * Glyphs:: How to indicate results of evaluation,
433 expansion of macros, errors, etc. 469 expansion of macros, errors, etc.
434 * Footnotes:: How to include footnotes.
435 * Images:: How to include graphics. 470 * Images:: How to include graphics.
436 471
437 Inserting @@ and Braces 472 Inserting @@ and Braces
438 473
439 * Inserting An Atsign:: How to insert @samp{@@}. 474 * Inserting An Atsign:: How to insert @samp{@@}.
466 * Equivalence:: How to indicate equivalence. 501 * Equivalence:: How to indicate equivalence.
467 * Point Glyph:: How to indicate the location of point. 502 * Point Glyph:: How to indicate the location of point.
468 503
469 Glyphs Summary 504 Glyphs Summary
470 505
471 * result:: 506 * result::
472 * expansion:: 507 * expansion::
473 * Print Glyph:: 508 * Print Glyph::
474 * Error Glyph:: 509 * Error Glyph::
475 * Equivalence:: 510 * Equivalence::
476 * Point Glyph:: 511 * Point Glyph::
477
478 Footnotes
479
480 * Footnote Commands:: How to write a footnote in Texinfo.
481 * Footnote Styles:: Controlling how footnotes appear in Info.
482 512
483 Making and Preventing Breaks 513 Making and Preventing Breaks
484 514
485 * Break Commands:: Cause and prevent splits. 515 * Break Commands:: Cause and prevent splits.
486 * Line Breaks:: How to force a single line to use two lines. 516 * Line Breaks:: How to force a single line to use two lines.
508 * Typed Functions:: Commands for functions in typed languages. 538 * Typed Functions:: Commands for functions in typed languages.
509 * Typed Variables:: Commands for variables in typed languages. 539 * Typed Variables:: Commands for variables in typed languages.
510 * Abstract Objects:: Commands for object-oriented programming. 540 * Abstract Objects:: Commands for object-oriented programming.
511 * Data Types:: The definition command for data types. 541 * Data Types:: The definition command for data types.
512 542
543 Footnotes
544
545 * Footnote Commands:: How to write a footnote in Texinfo.
546 * Footnote Styles:: Controlling how footnotes appear in Info.
547
513 Conditionally Visible Text 548 Conditionally Visible Text
514 549
515 * Conditional Commands:: Specifying text for HTML, Info, or @TeX{}. 550 * Conditional Commands:: Specifying text for HTML, Info, or @TeX{}.
516 * Conditional Not Commands:: Specifying text for not HTML, Info, or @TeX{}. 551 * Conditional Not Commands:: Specifying text for not HTML, Info, or @TeX{}.
517 * Raw Formatter Commands:: Using raw @TeX{} or HTML commands. 552 * Raw Formatter Commands:: Using raw @TeX{} or HTML commands.
520 flag to a string that you can insert. 555 flag to a string that you can insert.
521 556
522 @code{@@set}, @code{@@clear}, and @code{@@value} 557 @code{@@set}, @code{@@clear}, and @code{@@value}
523 558
524 * ifset ifclear:: Format a region if a flag is set. 559 * ifset ifclear:: Format a region if a flag is set.
525 * set value:: Expand a flag variable to a string. 560 * value:: Replace a flag with a string.
526 * value Example:: An easy way to update edition information. 561 * value Example:: An easy way to update edition information.
527 562
528 Internationalization 563 Macros: Defining New Texinfo Commands
529 564
530 * documentlanguage:: Declaring the current language. 565 * Defining Macros:: Both defining and undefining new commands.
531 * documentencoding:: Declaring the input encoding.
532
533 Defining New Texinfo Commands
534
535 * Defining Macros:: Defining and undefining new commands.
536 * Invoking Macros:: Using a macro, once you've defined it. 566 * Invoking Macros:: Using a macro, once you've defined it.
537 * Macro Details:: Beyond basic macro usage. 567
538 * alias:: Command aliases. 568 Format and Print Hardcopy
539 * definfoenclose:: Customized highlighting.
540
541 Formatting and Printing Hardcopy
542 569
543 * Use TeX:: Use @TeX{} to format for hardcopy. 570 * Use TeX:: Use @TeX{} to format for hardcopy.
544 * Format with tex/texindex:: How to format with explicit shell commands. 571 * Format with tex/texindex:: How to format in a shell.
545 * Format with texi2dvi:: A simpler way to format. 572 * Format with texi2dvi:: A simpler way to use the shell.
546 * Print with lpr:: How to print. 573 * Print with lpr:: How to print.
547 * Within Emacs:: How to format and print from an Emacs shell. 574 * Within Emacs:: How to format and print from an Emacs shell.
548 * Texinfo Mode Printing:: How to format and print in Texinfo mode. 575 * Texinfo Mode Printing:: How to format and print in Texinfo mode.
549 * Compile-Command:: How to print using Emacs's compile command. 576 * Compile-Command:: How to print using Emacs's compile command.
550 * Requirements Summary:: @TeX{} formatting requirements summary. 577 * Requirements Summary:: @TeX{} formatting requirements summary.
551 * Preparing for TeX:: What to do before you use @TeX{}. 578 * Preparing for TeX:: What you need to do to use @TeX{}.
552 * Overfull hboxes:: What are and what to do with overfull hboxes. 579 * Overfull hboxes:: What are and what to do with overfull hboxes.
553 * smallbook:: How to print small format books and manuals. 580 * smallbook:: How to print small format books and manuals.
554 * A4 Paper:: How to print on European A4 paper. 581 * A4 Paper:: How to print on European A4 paper.
555 * pagesizes:: How to print with customized page sizes.
556 * Cropmarks and Magnification:: How to print marks to indicate the size 582 * Cropmarks and Magnification:: How to print marks to indicate the size
557 of pages and how to print scaled up output. 583 of pages and how to print scaled up output.
558 * PDF Output:: Portable Document Format output.
559
560 Creating and Installing Info Files
561
562 * Creating an Info File::
563 * Install an Info File::
564 584
565 Creating an Info File 585 Creating an Info File
566 586
567 * makeinfo advantages:: @code{makeinfo} provides better error checking. 587 * makeinfo advantages:: @code{makeinfo} provides better error checking.
568 * Invoking makeinfo:: How to run @code{makeinfo} from a shell. 588 * Invoking makeinfo:: How to run @code{makeinfo} from a shell.
573 in Emacs Lisp are an alternative 593 in Emacs Lisp are an alternative
574 to @code{makeinfo}. 594 to @code{makeinfo}.
575 * Batch Formatting:: How to format for Info in Emacs Batch mode. 595 * Batch Formatting:: How to format for Info in Emacs Batch mode.
576 * Tag and Split Files:: How tagged and split files help Info 596 * Tag and Split Files:: How tagged and split files help Info
577 to run better. 597 to run better.
578 * makeinfo html:: Generating HTML output.
579 598
580 Installing an Info File 599 Installing an Info File
581 600
582 * Directory File:: The top level menu for all Info files. 601 * Directory file:: The top level menu for all Info files.
583 * New Info File:: Listing a new info file. 602 * New Info File:: Listing a new info file.
584 * Other Info Directories:: How to specify Info files that are 603 * Other Info Directories:: How to specify Info files that are
585 located in other directories. 604 located in other directories.
586 * Installing Dir Entries:: How to specify what menu entry to add 605 * Installing Dir Entries:: How to specify what menu entry to add
587 to the Info directory. 606 to the Info directory.
624 643
625 * Using Info-validate:: How to run @code{Info-validate}. 644 * Using Info-validate:: How to run @code{Info-validate}.
626 * Unsplit:: How to create an unsplit file. 645 * Unsplit:: How to create an unsplit file.
627 * Tagifying:: How to tagify a file. 646 * Tagifying:: How to tagify a file.
628 * Splitting:: How to split a file manually. 647 * Splitting:: How to split a file manually.
648
649 How to Obtain @TeX{}
650
651 @c * New Texinfo Mode Commands:: The updating commands are especially useful.
652 @c * New Commands:: Many newly described @@-commands.
629 @end detailmenu 653 @end detailmenu
630 @end menu 654 @end menu
631 655
632 @c Reward readers for getting to the end of the menu :). 656 @node Copying, Overview, Top, Top
633 @c Contributed by Arnold Robbins. 657 @comment node-name, next, previous, up
634 @quotation
635 Documentation is like sex: when it is good, it is very, very good; and
636 when it is bad, it is better than nothing.
637 ---Dick Brandon
638 @end quotation
639
640
641 @node Copying
642 @unnumbered Texinfo Copying Conditions 658 @unnumbered Texinfo Copying Conditions
643 @cindex Copying conditions 659 @cindex Copying conditions
644 @cindex Conditions for copying Texinfo 660 @cindex Conditions for copying Texinfo
645 661
646 The programs currently being distributed that relate to Texinfo include 662 The programs currently being distributed that relate to Texinfo include
672 If these programs are modified by someone else and passed on, we want 688 If these programs are modified by someone else and passed on, we want
673 their recipients to know that what they have is not what we distributed, 689 their recipients to know that what they have is not what we distributed,
674 so that any problems introduced by others will not reflect on our 690 so that any problems introduced by others will not reflect on our
675 reputation.@refill 691 reputation.@refill
676 692
677 The precise conditions of the licenses for the programs currently 693 The precise conditions of the licenses for the programs currently
678 being distributed that relate to Texinfo are found in the General Public 694 being distributed that relate to Texinfo are found in the General Public
679 Licenses that accompany them. 695 Licenses that accompany them.@refill
680 696
681 697 @node Overview, Texinfo Mode, Copying, Top
682 @node Overview 698 @comment node-name, next, previous, up
683 @chapter Overview of Texinfo 699 @chapter Overview of Texinfo
684 @cindex Overview of Texinfo 700 @cindex Overview of Texinfo
685 @cindex Texinfo overview 701 @cindex Texinfo overview
686 702
687 @dfn{Texinfo}@footnote{The first syllable of ``Texinfo'' is pronounced 703 @dfn{Texinfo}@footnote{Note that the first syllable of ``Texinfo'' is
688 like ``speck'', not ``hex''. This odd pronunciation is derived from, 704 pronounced like ``speck'', not ``hex''. This odd pronunciation is
689 but is not the same as, the pronunciation of @TeX{}. In the word 705 derived from, but is not the same as, the pronunciation of @TeX{}. In
690 @TeX{}, the @samp{X} is actually the Greek letter ``chi'' rather than 706 the word @TeX{}, the @samp{X} is actually the Greek letter ``chi''
691 the English letter ``ex''. Pronounce @TeX{} as if the @samp{X} were the 707 rather than the English letter ``ex''. Pronounce @TeX{} as if the
692 last sound in the name `Bach'; but pronounce Texinfo as if the @samp{x} 708 @samp{X} were the last sound in the name `Bach'; but pronounce Texinfo
693 were a `k'. Spell ``Texinfo'' with a capital ``T'' and the other 709 as if the @samp{x} were a `k'. Spell ``Texinfo'' with a capital ``T''
694 letters in lower case.} is a documentation system that uses a single 710 and write the other letters in lower case.}
695 source file to produce both online information and printed output. This 711 is a documentation system that uses a single source file to produce both
696 means that instead of writing two different documents, one for the 712 on-line information and printed output. This means that instead of
697 online information and the other for a printed work, you need write only 713 writing two different documents, one for the on-line help or other on-line
698 one document. Therefore, when the work is revised, you need revise only 714 information and the other for a typeset manual or other printed work, you
699 that one document. 715 need write only one document. When the work is revised, you need revise
716 only one document. (You can read the on-line information, known as an
717 @dfn{Info file}, with an Info documentation-reading program.)@refill
700 718
701 @menu 719 @menu
702 * Reporting Bugs:: Submitting effective bug reports. 720 * Using Texinfo:: Create a conventional printed book
703 * Using Texinfo:: Create printed or online output. 721 or an Info file.
704 * Info Files:: What is an Info file? 722 * Info Files:: What is an Info file?
705 * Printed Books:: Characteristics of a printed book or manual. 723 * Printed Books:: Characteristics of a printed book or manual.
706 * Formatting Commands:: @@-commands are used for formatting. 724 * Formatting Commands:: @@-commands are used for formatting.
707 * Conventions:: General rules for writing a Texinfo file. 725 * Conventions:: General rules for writing a Texinfo file.
708 * Comments:: Writing comments and ignored text in general. 726 * Comments:: How to write comments and mark regions that
727 the formatting commands will ignore.
709 * Minimum:: What a Texinfo file must have. 728 * Minimum:: What a Texinfo file must have.
710 * Six Parts:: Usually, a Texinfo file has six parts. 729 * Six Parts:: Usually, a Texinfo file has six parts.
711 * Short Sample:: A short sample Texinfo file. 730 * Short Sample:: A short sample Texinfo file.
712 * Acknowledgements and History:: Contributors and genesis. 731 * Acknowledgements::
713 @end menu 732 @end menu
714 733
715 734 @node Using Texinfo, Info Files, Overview, Overview
716 @node Reporting Bugs 735 @ifinfo
717 @section Reporting Bugs 736 @heading Using Texinfo
718 737 @end ifinfo
719 @cindex Bugs, reporting
720 @cindex Suggestions for Texinfo, making
721 @cindex Reporting bugs
722 We welcome bug reports or suggestions for the Texinfo system, both
723 programs and documentation. Please email them to
724 @email{bug-texinfo@@gnu.org}. You can get the latest version of Texinfo
725 from @uref{ftp://ftp.gnu.org/gnu/texinfo/} and its mirrors worldwide.
726
727 @cindex Checklist for bug reports
728 For bug reports, please include enough information for the maintainers
729 to reproduce the problem. Generally speaking, that means:
730
731 @itemize @bullet
732 @item the version number of Texinfo and the program(s) or manual(s) involved.
733 @item hardware, operating system, and compiler versions.
734 @item any unusual options you gave to @command{configure}.
735 @item the contents of any input files necessary to reproduce the bug.
736 @item a description of the problem and samples of any erroneous output.
737 @item anything else that you think would be helpful.
738 @end itemize
739
740 When in doubt whether something is needed or not, include it. It's
741 better to include too much than to leave out something important.
742
743 Patches are most welcome; if possible, please make them with
744 @samp{@w{diff -c}} (@pxref{Top,, Overview, diffutils, Comparing and
745 Merging Files}) and include @file{ChangeLog} entries (@pxref{Change
746 Log,,, emacs, The GNU Emacs Manual}).
747
748 When sending email, please do not encode or split the messages in any
749 way if possible; it's much easier to deal with one plain text message,
750 however large, than many small ones.
751 @uref{ftp://ftp.gnu.org/gnu/sharutils/, GNU shar} is a convenient way of
752 packaging multiple and/or binary files for email.
753
754
755 @node Using Texinfo
756 @section Using Texinfo
757
758 @cindex Using Texinfo in general
759 @cindex Texinfo, introduction to
760 @cindex Introduction to Texinfo
761 738
762 Using Texinfo, you can create a printed document with the normal 739 Using Texinfo, you can create a printed document with the normal
763 features of a book, including chapters, sections, cross references, and 740 features of a book, including chapters, sections, cross references,
764 indices. From the same Texinfo source file, you can create a 741 and indices. From the same Texinfo source file, you can create a
765 menu-driven, online Info file with nodes, menus, cross references, and 742 menu-driven, on-line Info file with nodes, menus, cross references,
766 indices. You can also create from that same source file an HTML output 743 and indices. You can, if you wish, make the chapters and sections of
767 file suitable for use with a web browser. @cite{The GNU Emacs Manual} 744 the printed document correspond to the nodes of the on-line
768 is a good example of a Texinfo file, as is this manual. 745 information; and you use the same cross references and indices for
746 both the Info file and the printed work. @cite{The GNU
747 Emacs Manual} is a good example of a Texinfo file, as is this manual.@refill
769 748
770 To make a printed document, you process a Texinfo source file with the 749 To make a printed document, you process a Texinfo source file with the
771 @TeX{} typesetting program (but the Texinfo language is very different 750 @TeX{} typesetting program. This creates a DVI file that you can
772 from @TeX{}'s usual language, plain @TeX{}). This creates a DVI file 751 typeset and print as a book or report. (Note that the Texinfo language
773 that you can typeset and print as a book or report (@pxref{Hardcopy}). 752 is completely different from @TeX{}'s usual language, plain @TeX{}.) If
774 753 you do not have @TeX{}, but do have @code{troff} or @code{nroff}, you
775 @pindex makeinfo 754 can use the @code{texi2roff} program instead.@refill
776 To output an Info file, process your Texinfo source with the 755
777 @code{makeinfo} utility or Emacs's @code{texinfo-format-buffer} command. 756 To make an Info file, you process a Texinfo source file with the
778 You can install the result in your Info tree (@pxref{Install an Info 757 @code{makeinfo} utility or Emacs's @code{texinfo-format-buffer} command;
779 File}). 758 this creates an Info file that you can install on-line.@refill
780 759
781 To output an HTML file, process your Texinfo source with @code{makeinfo} 760 @TeX{} and @code{texi2roff} work with many types of printers; similarly,
782 using the @samp{--html} option. You can (for example) install the 761 Info works with almost every type of computer terminal. This power
783 result on your web site. 762 makes Texinfo a general purpose system, but brings with it a constraint,
784 763 which is that a Texinfo file may contain only the customary
785 @cindex Output formats, supporting more 764 ``typewriter'' characters (letters, numbers, spaces, and punctuation
786 @cindex Docbook output format 765 marks) but no special graphics.@refill
787 @cindex SGML-tools output format 766
788 If you are a programmer and would like to contribute to the GNU project 767 A Texinfo file is a plain @sc{ascii} file containing text and
789 by implementing additional output formats for Texinfo, that would be
790 excellent. But please do not write a separate translator texi2foo for
791 your favorite format foo! That is the hard way to do the job, and makes
792 extra work in subsequent maintenance, since the Texinfo language is
793 continually being enhanced and updated. Instead, the best approach is
794 modify @code{makeinfo} to generate the new format, as it does now for
795 Info and HTML.
796
797 @TeX{} works with virtually all printers; Info works with virtually all
798 computer terminals; the HTML output works with virtually all web
799 browsers. Thus Texinfo can be used by almost any computer user.
800
801 @cindex Source file
802 A Texinfo source file is a plain @sc{ascii} file containing text and
803 @dfn{@@-commands} (words preceded by an @samp{@@}) that tell the 768 @dfn{@@-commands} (words preceded by an @samp{@@}) that tell the
804 typesetting and formatting programs what to do. You may edit a Texinfo 769 typesetting and formatting programs what to do. You may edit a
805 file with any text editor; but it is especially convenient to use GNU 770 Texinfo file with any text editor; but it is especially convenient to
806 Emacs since that editor has a special mode, called Texinfo mode, that 771 use GNU Emacs since that editor has a special mode, called Texinfo
807 provides various Texinfo-related features. (@xref{Texinfo Mode}.) 772 mode, that provides various Texinfo-related features. (@xref{Texinfo
808 773 Mode}.)@refill
809 Before writing a Texinfo source file, you should learn about nodes, 774
810 menus, cross references, and the rest, for example by reading this 775 Before writing a Texinfo source file, you should become familiar with
811 manual. 776 the Info documentation reading program and learn about nodes,
812 777 menus, cross references, and the rest. (@inforef{Top, info, info},
813 You can use Texinfo to create both online help and printed manuals; 778 for more information.)@refill
779
780 You can use Texinfo to create both on-line help and printed manuals;
814 moreover, Texinfo is freely redistributable. For these reasons, Texinfo 781 moreover, Texinfo is freely redistributable. For these reasons, Texinfo
815 is the official documentation format of the GNU project. More 782 is the format in which documentation for GNU utilities and libraries is
816 information is available at the @uref{http://www.gnu.org/doc/, GNU 783 written.@refill
817 documentation web page}. 784
818 785 @node Info Files, Printed Books, Using Texinfo, Overview
819 @cindex Man page output, not supported 786 @comment node-name, next, previous, up
820 From time to time, proposals are made to generate traditional Unix man
821 pages from Texinfo source. This is not likely to ever be supported,
822 because man pages have a very strict conventional format. Merely
823 enhancing @command{makeinfo} to output troff format would be
824 insufficient. Generating a good man page therefore requires a
825 completely different source than the typical Texinfo applications of
826 generating a good user manual or a good reference manual. This makes
827 generating man pages incompatible with the Texinfo design goal of not
828 having to document the same information in different ways for different
829 output formats. You might as well just write the man page directly.
830
831 @pindex help2man
832 @cindex O'Dea, Brendan
833 If you wish to support man pages, the program @command{help2man} may be
834 useful; it generates a traditional man page from the @samp{--help}
835 output of a program. In fact, this is currently used to generate man
836 pages for the Texinfo programs themselves. It is free software written
837 by Brendan O'Dea, available from
838 @uref{http://www.ozemail.com.au/~bod/help2man.tar.gz}.
839
840
841 @node Info Files
842 @section Info files 787 @section Info files
843 @cindex Info files 788 @cindex Info files
844 789
845 An Info file is a Texinfo file formatted so that the Info documentation 790 An Info file is a Texinfo file formatted so that the Info documentation
846 reading program can operate on it. (@code{makeinfo} 791 reading program can operate on it. (@code{makeinfo}
923 @c /usr/local/lib/info 868 @c /usr/local/lib/info
924 The @file{dir} file in the @file{info} directory serves as the 869 The @file{dir} file in the @file{info} directory serves as the
925 departure point for the whole Info system. From it, you can reach the 870 departure point for the whole Info system. From it, you can reach the
926 `Top' nodes of each of the documents in a complete Info system.@refill 871 `Top' nodes of each of the documents in a complete Info system.@refill
927 872
928 @cindex URI syntax for Info 873 @node Printed Books, Formatting Commands, Info Files, Overview
929 If you wish to refer to an Info file in a URI, you can use the 874 @comment node-name, next, previous, up
930 (unofficial) syntax exemplified in the following. This works with
931 Emacs/W3, for example:
932 @example
933 info:///usr/info/emacs#Dissociated%20Press
934 info:emacs#Dissociated%20Press
935 info://localhost/usr/info/emacs#Dissociated%20Press
936 @end example
937
938 The @command{info} program itself does not follow URI's of any kind.
939
940
941 @node Printed Books
942 @section Printed Books 875 @section Printed Books
943 @cindex Printed book and manual characteristics 876 @cindex Printed book and manual characteristics
944 @cindex Manual characteristics, printed 877 @cindex Manual characteristics, printed
945 @cindex Book characteristics, printed 878 @cindex Book characteristics, printed
946 @cindex Texinfo printed book characteristics 879 @cindex Texinfo printed book characteristics
948 881
949 @cindex Knuth, Donald 882 @cindex Knuth, Donald
950 A Texinfo file can be formatted and typeset as a printed book or manual. 883 A Texinfo file can be formatted and typeset as a printed book or manual.
951 To do this, you need @TeX{}, a powerful, sophisticated typesetting 884 To do this, you need @TeX{}, a powerful, sophisticated typesetting
952 program written by Donald Knuth.@footnote{You can also use the 885 program written by Donald Knuth.@footnote{You can also use the
953 @pindex texi2roff@r{, unsupported software} 886 @code{texi2roff} program if you do not have @TeX{}; since Texinfo is
954 @uref{ftp://tug.org/texi2roff.tar.gz, @code{texi2roff}} program if you 887 designed for use with @TeX{}, @code{texi2roff} is not described here.
955 do not have @TeX{}; since Texinfo is designed for use with @TeX{}, 888 @code{texi2roff} is not part of the standard GNU distribution.}
956 @code{texi2roff} is not described here. @code{texi2roff} is not part of
957 the standard GNU distribution and is not maintained or up-to-date with
958 all the Texinfo features described in this manual.}
959 889
960 A Texinfo-based book is similar to any other typeset, printed work: it 890 A Texinfo-based book is similar to any other typeset, printed work: it
961 can have a title page, copyright page, table of contents, and preface, 891 can have a title page, copyright page, table of contents, and preface,
962 as well as chapters, numbered or unnumbered sections and subsections, 892 as well as chapters, numbered or unnumbered sections and subsections,
963 page headers, cross references, footnotes, and indices.@refill 893 page headers, cross references, footnotes, and indices.@refill
964 894
965 You can use Texinfo to write a book without ever having the intention 895 You can use Texinfo to write a book without ever having the intention
966 of converting it into online information. You can use Texinfo for 896 of converting it into on-line information. You can use Texinfo for
967 writing a printed novel, and even to write a printed memo, although 897 writing a printed novel, and even to write a printed memo, although
968 this latter application is not recommended since electronic mail is so 898 this latter application is not recommended since electronic mail is so
969 much easier.@refill 899 much easier.@refill
970 900
971 @TeX{} is a general purpose typesetting program. Texinfo provides a 901 @TeX{} is a general purpose typesetting program. Texinfo provides a
972 file @file{texinfo.tex} that contains information (definitions or 902 file called @file{texinfo.tex} that contains information (definitions or
973 @dfn{macros}) that @TeX{} uses when it typesets a Texinfo file. 903 @dfn{macros}) that @TeX{} uses when it typesets a Texinfo file.
974 (@file{texinfo.tex} tells @TeX{} how to convert the Texinfo @@-commands 904 (@file{texinfo.tex} tells @TeX{} how to convert the Texinfo @@-commands
975 to @TeX{} commands, which @TeX{} can then process to create the typeset 905 to @TeX{} commands, which @TeX{} can then process to create the typeset
976 document.) @file{texinfo.tex} contains the specifications for printing 906 document.) @file{texinfo.tex} contains the specifications for printing
977 a document. You can get the latest version of @file{texinfo.tex} from 907 a document.@refill
978 @uref{ftp://ftp.gnu.org/gnu/texinfo.tex}.
979 908
980 Most often, documents are printed on 8.5 inch by 11 inch 909 Most often, documents are printed on 8.5 inch by 11 inch
981 pages (216@dmn{mm} by 280@dmn{mm}; this is the default size), but you 910 pages (216@dmn{mm} by 280@dmn{mm}; this is the default size), but you
982 can also print for 7 inch by 9.25 inch pages (178@dmn{mm} by 911 can also print for 7 inch by 9.25 inch pages (178@dmn{mm} by
983 235@dmn{mm}; the @code{@@smallbook} size) or on European A4 size paper 912 235@dmn{mm}; the @code{@@smallbook} size) or on European A4 size paper
993 light-hearted, young and cheery.@refill 922 light-hearted, young and cheery.@refill
994 923
995 @TeX{} is freely distributable. It is written in a superset of Pascal 924 @TeX{} is freely distributable. It is written in a superset of Pascal
996 called WEB and can be compiled either in Pascal or (by using a 925 called WEB and can be compiled either in Pascal or (by using a
997 conversion program that comes with the @TeX{} distribution) in C. 926 conversion program that comes with the @TeX{} distribution) in C.
998 (@xref{TeX Mode, ,@TeX{} Mode, emacs, The GNU Emacs Manual}, for information 927 (@xref{TeX Mode, ,@TeX{} Mode, xemacs, XEmacs User's Manual}, for information
999 about @TeX{}.)@refill 928 about @TeX{}.)@refill
1000 929
1001 @TeX{} is very powerful and has a great many features. Because a 930 @TeX{} is very powerful and has a great many features. Because a
1002 Texinfo file must be able to present information both on a 931 Texinfo file must be able to present information both on a
1003 character-only terminal in Info form and in a typeset book, the 932 character-only terminal in Info form and in a typeset book, the
1004 formatting commands that Texinfo supports are necessarily 933 formatting commands that Texinfo supports are necessarily
1005 limited.@refill 934 limited.@refill
1006 935
1007 To get a copy of @TeX{}, see 936 @xref{Obtaining TeX, , How to Obtain @TeX{}}.
1008 @ref{Obtaining TeX, , How to Obtain @TeX{}}.
1009 937
1010 938
1011 @node Formatting Commands, Conventions, Printed Books, Overview 939 @node Formatting Commands, Conventions, Printed Books, Overview
1012 @comment node-name, next, previous, up 940 @comment node-name, next, previous, up
1013 @section @@-commands 941 @section @@-commands
1033 display Info files on any terminal that displays alphabetic and 961 display Info files on any terminal that displays alphabetic and
1034 numeric characters. Similarly, you can print the output generated by 962 numeric characters. Similarly, you can print the output generated by
1035 @TeX{} on a wide variety of printers.@refill 963 @TeX{} on a wide variety of printers.@refill
1036 964
1037 Depending on what they do or what arguments@footnote{The word 965 Depending on what they do or what arguments@footnote{The word
1038 @dfn{argument} comes from the way it is used in mathematics and does not 966 @dfn{argument} comes from the way it is used in mathematics and does
1039 refer to a dispute between two people; it refers to the information 967 not refer to a disputation between two people; it refers to the
1040 presented to the command. According to the @cite{Oxford English 968 information presented to the command. According to the @cite{Oxford
1041 Dictionary}, the word derives from the Latin for @dfn{to make clear, 969 English Dictionary}, the word derives from the Latin for @dfn{to make
1042 prove}; thus it came to mean `the evidence offered as proof', which is 970 clear, prove}; thus it came to mean `the evidence offered as proof',
1043 to say, `the information offered', which led to its mathematical 971 which is to say, `the information offered', which led to its
1044 meaning. In its other thread of derivation, the word came to mean `to 972 mathematical meaning. In its other thread of derivation, the word
1045 assert in a manner against which others may make counter assertions', 973 came to mean `to assert in a manner against which others may make
1046 which led to the meaning of `argument' as a dispute.} they take, you 974 counter assertions', which led to the meaning of `argument' as a
1047 need to write @@-commands on lines of their own or as part of 975 disputation.} they take, you need to write @@-commands on lines of
1048 sentences: 976 their own or as part of sentences:@refill
1049 977
1050 @itemize @bullet 978 @itemize @bullet
1051 @item 979 @item
1052 Write a command such as @code{@@noindent} at the beginning of a line as 980 Write a command such as @code{@@noindent} at the beginning of a line as
1053 the only text on the line. (@code{@@noindent} prevents the beginning of 981 the only text on the line. (@code{@@noindent} prevents the beginning of
1068 wish (but usually within a sentence) with its argument, 996 wish (but usually within a sentence) with its argument,
1069 @var{sample-code} in this example, between the braces. (@code{@@code} 997 @var{sample-code} in this example, between the braces. (@code{@@code}
1070 marks text as being code.)@refill 998 marks text as being code.)@refill
1071 999
1072 @item 1000 @item
1073 Write a command such as @code{@@example} on a line of its own; write the 1001 Write a command such as @code{@@example} at the beginning of a line of
1074 body-text on following lines; and write the matching @code{@@end} 1002 its own; write the body-text on following lines; and write the matching
1075 command, @code{@@end example} in this case, at the on a line of its own 1003 @code{@@end} command, @code{@@end example} in this case, at the
1076 after the body-text. (@code{@@example} @dots{} @code{@@end example} 1004 beginning of a line of its own after the body-text. (@code{@@example}
1077 indents and typesets body-text as an example.) It's usually ok to 1005 @dots{} @code{@@end example} indents and typesets body-text as an
1078 indent environment commands like this, but in complicated and 1006 example.)@refill
1079 hard-to-define circumstances the extra spaces cause extra space to
1080 appear in the output, so beware.
1081 @end itemize 1007 @end itemize
1082 1008
1083 @noindent 1009 @noindent
1084 @cindex Braces, when to use 1010 @cindex Braces, when to use
1085 As a general rule, a command requires braces if it mingles among other 1011 As a general rule, a command requires braces if it mingles among other
1098 @section General Syntactic Conventions 1024 @section General Syntactic Conventions
1099 @cindex General syntactic conventions 1025 @cindex General syntactic conventions
1100 @cindex Syntactic conventions 1026 @cindex Syntactic conventions
1101 @cindex Conventions, syntactic 1027 @cindex Conventions, syntactic
1102 1028
1103 This section describes the general conventions used in all Texinfo documents.
1104
1105 @itemize @bullet
1106 @item
1107 All printable @sc{ascii} characters except @samp{@@}, @samp{@{} and 1029 All printable @sc{ascii} characters except @samp{@@}, @samp{@{} and
1108 @samp{@}} can appear in a Texinfo file and stand for themselves. 1030 @samp{@}} can appear in a Texinfo file and stand for themselves.
1109 @samp{@@} is the escape character which introduces commands. 1031 @samp{@@} is the escape character which introduces commands.
1110 @samp{@{} and @samp{@}} should be used only to surround arguments to 1032 @samp{@{} and @samp{@}} should be used only to surround arguments to
1111 certain commands. To put one of these special characters into the 1033 certain commands. To put one of these special characters into the
1112 document, put an @samp{@@} character in front of it, like this: 1034 document, put an @samp{@@} character in front of it, like this:
1113 @samp{@@@@}, @samp{@@@{}, and @samp{@@@}}.@refill 1035 @samp{@@@@}, @samp{@@@{}, and @samp{@@@}}.@refill
1114 1036
1115 @item
1116 @ifinfo 1037 @ifinfo
1117 It is customary in @TeX{} to use doubled single-quote characters to 1038 It is customary in @TeX{} to use doubled single-quote characters to
1118 begin and end quotations: ` ` and ' ' (but without a space between the 1039 begin and end quotations: ` ` and ' ' (but without a space between the
1119 two single-quote characters). This convention should be followed in 1040 two single-quote characters). This convention should be followed in
1120 Texinfo files. @TeX{} converts doubled single-quote characters to 1041 Texinfo files. @TeX{} converts doubled single-quote characters to
1121 left- and right-hand doubled quotation marks and Info converts doubled 1042 left- and right-hand doubled quotation marks and Info converts doubled
1122 single-quote characters to @sc{ascii} double-quotes: ` ` and ' ' to " .@refill 1043 single-quote characters to @sc{ascii} double-quotes: ` ` and ' ' to " .@refill
1123 @end ifinfo 1044 @end ifinfo
1124 @iftex 1045 @iftex
1125 It is customary in @TeX{} to use doubled single-quote characters to 1046 It is customary in @TeX{} to use doubled single-quote characters to
1126 begin and end quotations: @w{@t{ `` }} and @w{@t{ '' }}. This 1047 begin and end quotations: @w{@tt{ `` }} and @w{@tt{ '' }}. This
1127 convention should be followed in Texinfo files. @TeX{} converts 1048 convention should be followed in Texinfo files. @TeX{} converts
1128 doubled single-quote characters to left- and right-hand doubled 1049 doubled single-quote characters to left- and right-hand doubled
1129 quotation marks, ``like this'', and Info converts doubled single-quote 1050 quotation marks, ``like this'', and Info converts doubled single-quote
1130 characters to @sc{ascii} double-quotes: @w{@t{ `` }} and 1051 characters to @sc{ascii} double-quotes: @w{@tt{ `` }} and
1131 @w{@t{ '' }} to @w{@t{ " }}.@refill 1052 @w{@tt{ '' }} to @w{@tt{ " }}.@refill
1132 @end iftex 1053 @end iftex
1133 1054
1134 @item
1135 Use three hyphens in a row, @samp{---}, for a dash---like this. In 1055 Use three hyphens in a row, @samp{---}, for a dash---like this. In
1136 @TeX{}, a single or double hyphen produces a printed dash that is 1056 @TeX{}, a single or double hyphen produces a printed dash that is
1137 shorter than the usual typeset dash. Info reduces three hyphens to two 1057 shorter than the usual typeset dash. Info reduces three hyphens to two
1138 for display on the screen. 1058 for display on the screen.
1139 1059
1140 @item
1141 To prevent a paragraph from being indented in the printed manual, put 1060 To prevent a paragraph from being indented in the printed manual, put
1142 the command @code{@@noindent} on a line by itself before the 1061 the command @code{@@noindent} on a line by itself before the
1143 paragraph.@refill 1062 paragraph.@refill
1144 1063
1145 @item
1146 If you mark off a region of the Texinfo file with the @code{@@iftex} 1064 If you mark off a region of the Texinfo file with the @code{@@iftex}
1147 and @w{@code{@@end iftex}} commands, that region will appear only in 1065 and @w{@code{@@end iftex}} commands, that region will appear only in
1148 the printed copy; in that region, you can use certain commands 1066 the printed copy; in that region, you can use certain commands
1149 borrowed from plain @TeX{} that you cannot use in Info. Likewise, if 1067 borrowed from plain @TeX{} that you cannot use in Info. Likewise, if
1150 you mark off a region with the @code{@@ifinfo} and @code{@@end ifinfo} 1068 you mark off a region with the @code{@@ifinfo} and @code{@@end ifinfo}
1151 commands, that region will appear only in the Info file; in that 1069 commands, that region will appear only in the Info file; in that
1152 region, you can use Info commands that you cannot use in @TeX{}. 1070 region, you can use Info commands that you cannot use in @TeX{}.
1153 Similarly for @code{@@ifhtml @dots{} @@end ifhtml}, 1071 Similarly for @code{@@ifhtml @dots{} @@end ifhtml},
1154 @code{@@ifnothtml @dots{} @@end ifnothtml}, 1072 @code{@@ifnothtml @dots{} @@end ifnothtml},
1155 @code{@@ifnotinfo @dots{} @@end ifnotinfo}, 1073 @code{@@ifnotinfo @dots{} @@end ifnotinfo},
1156 @code{@@ifnottex @dots{} @@end ifnottex}. 1074 @code{@@ifnottex @dots{} @@end ifnottex},
1157 @xref{Conditionals}. 1075 @xref{Conditionals}.
1158 @end itemize
1159 1076
1160 @cindex Tabs; don't use! 1077 @cindex Tabs; don't use!
1161 @quotation 1078 @quotation
1162 @strong{Caution:} Do not use tabs in a Texinfo file! @TeX{} uses 1079 @strong{Caution:} Do not use tabs in a Texinfo file! @TeX{} uses
1163 variable-width fonts, which means that it cannot predefine a tab to work 1080 variable-width fonts, which means that it cannot predefine a tab to work
1171 spaces when you press the @key{TAB} key.@refill 1088 spaces when you press the @key{TAB} key.@refill
1172 1089
1173 @noindent 1090 @noindent
1174 Also, you can run @code{untabify} in Emacs to convert tabs in a region 1091 Also, you can run @code{untabify} in Emacs to convert tabs in a region
1175 to multiple spaces.@refill 1092 to multiple spaces.@refill
1093
1094 @noindent
1095 Don't use tabs.
1176 @end quotation 1096 @end quotation
1177 1097
1178 @node Comments, Minimum, Conventions, Overview 1098 @node Comments, Minimum, Conventions, Overview
1179 @comment node-name, next, previous, up 1099 @comment node-name, next, previous, up
1180 @section Comments 1100 @section Comments
1181 1101
1182 You can write comments in a Texinfo file that will not appear in 1102 You can write comments in a Texinfo file that will not appear in
1183 either the Info file or the printed manual by using the 1103 either the Info file or the printed manual by using the
1184 @code{@@comment} command (which may be abbreviated to @code{@@c}). 1104 @code{@@comment} command (which may be abbreviated to @code{@@c}).
1185 Such comments are for the person who revises the Texinfo file. All the 1105 Such comments are for the person who reads the Texinfo file. All the
1186 text on a line that follows either @code{@@comment} or @code{@@c} is a 1106 text on a line that follows either @code{@@comment} or @code{@@c} is a
1187 comment; the rest of the line does not appear in either the Info file 1107 comment; the rest of the line does not appear in either the Info file
1188 or the printed manual. (Often, you can write the @code{@@comment} or 1108 or the printed manual. (Often, you can write the @code{@@comment} or
1189 @code{@@c} in the middle of a line, and only the text that follows after 1109 @code{@@c} in the middle of a line, and only the text that follows after
1190 the @code{@@comment} or @code{@@c} command does not appear; but some 1110 the @code{@@comment} or @code{@@c} command does not appear; but some
1226 @cindex Must have in Texinfo file 1146 @cindex Must have in Texinfo file
1227 @cindex Required in Texinfo file 1147 @cindex Required in Texinfo file
1228 @cindex Texinfo file minimum 1148 @cindex Texinfo file minimum
1229 1149
1230 By convention, the names of Texinfo files end with one of the 1150 By convention, the names of Texinfo files end with one of the
1231 extensions @file{.texinfo}, @file{.texi}, @file{.txi}, or @file{.tex}. 1151 extensions @file{.texinfo}, @file{.texi}, or @file{.tex}. The longer
1232 The longer extension is preferred since it describes more clearly to a 1152 extension is preferred since it describes more clearly to a human
1233 human reader the nature of the file. The shorter extensions are for 1153 reader the nature of the file. The shorter extensions are for
1234 operating systems that cannot handle long file names.@refill 1154 operating systems that cannot handle long file names.@refill
1235 1155
1236 In order to be made into a printed manual and an Info file, a Texinfo 1156 In order to be made into a printed manual and an Info file, a Texinfo
1237 file @strong{must} begin with lines like this:@refill 1157 file @strong{must} begin with lines like this:@refill
1238 1158
1330 The @dfn{End} contains commands for printing indices and generating 1250 The @dfn{End} contains commands for printing indices and generating
1331 the table of contents, and the @code{@@bye} command on a line of its 1251 the table of contents, and the @code{@@bye} command on a line of its
1332 own.@refill 1252 own.@refill
1333 @end table 1253 @end table
1334 1254
1335 @node Short Sample 1255 @node Short Sample, Acknowledgements, Six Parts, Overview
1256 @comment node-name, next, previous, up
1336 @section A Short Sample Texinfo File 1257 @section A Short Sample Texinfo File
1337 @cindex Sample Texinfo file 1258 @cindex Sample Texinfo file
1338 1259
1339 Here is a complete but very short Texinfo file, in six parts. The first 1260 Here is a complete but very short Texinfo file, in six parts. The first
1340 three parts of the file, from @samp{\input texinfo} through to 1261 three parts of the file, from @samp{\input texinfo} through to
1341 @samp{@@end titlepage}, look more intimidating than they are. Most of 1262 @samp{@@end titlepage}, look more intimidating than they are. Most of
1342 the material is standard boilerplate; when you write a manual, simply 1263 the material is standard boilerplate; when you write a manual, simply
1343 insert the names for your own manual in this segment. (@xref{Beginning a 1264 insert the names for your own manual in this segment. (@xref{Beginning a
1344 File}.)@refill 1265 File}.)@refill
1345 1266
1267 @noindent
1346 In the following, the sample text is @emph{indented}; comments on it are 1268 In the following, the sample text is @emph{indented}; comments on it are
1347 not. The complete file, without any comments, is shown in 1269 not. The complete file, without any comments, is shown in
1348 @ref{Sample Texinfo File}. 1270 @ref{Sample Texinfo File}.
1349 1271
1350 @subheading Part 1: Header 1272 @subheading Part 1: Header
1358 @group 1280 @group
1359 \input texinfo @@c -*-texinfo-*- 1281 \input texinfo @@c -*-texinfo-*-
1360 @@c %**start of header 1282 @@c %**start of header
1361 @@setfilename sample.info 1283 @@setfilename sample.info
1362 @@settitle Sample Document 1284 @@settitle Sample Document
1285 @@c %**end of header
1286
1363 @@setchapternewpage odd 1287 @@setchapternewpage odd
1364 @@c %**end of header
1365 @end group 1288 @end group
1366 @end example 1289 @end example
1367 1290
1368 @subheading Part 2: Summary Description and Copyright 1291 @subheading Part 2: Summary Description and Copyright
1369 1292
1468 @end example 1391 @end example
1469 1392
1470 @subheading Part 6: The End of the Document 1393 @subheading Part 6: The End of the Document
1471 1394
1472 @noindent 1395 @noindent
1473 The end segment contains commands for generating an index in a node and 1396 The end segment contains commands both for generating an index in a node
1474 unnumbered chapter of its own, (usually) for generating the table of 1397 and unnumbered chapter of its own and for generating the table of
1475 contents, and the @code{@@bye} command that marks the end of the 1398 contents; and it contains the @code{@@bye} command that marks the end of
1476 document.@refill 1399 the document.@refill
1477 1400
1478 @example 1401 @example
1479 @group 1402 @group
1480 @@node Concept Index, , First Chapter, Top 1403 @@node Concept Index, , First Chapter, Top
1404 @@comment node-name, next, previous, up
1481 @@unnumbered Concept Index 1405 @@unnumbered Concept Index
1482 @end group 1406 @end group
1483 1407
1484 @group 1408 @group
1485 @@printindex cp 1409 @@printindex cp
1512 commands transform a Texinfo file such as this into 1436 commands transform a Texinfo file such as this into
1513 an Info file; and @TeX{} typesets it for a printed 1437 an Info file; and @TeX{} typesets it for a printed
1514 manual. 1438 manual.
1515 @end quotation 1439 @end quotation
1516 1440
1517 1441 @node Acknowledgements, , Short Sample, Overview
1518 @node Acknowledgements and History 1442 @comment node-name, next, previous, up
1519 @section Acknowledgements and History 1443 @section Acknowledgements
1520 1444
1521 @cindex Stallman, Richard M. 1445 @cindex Stallman, Richard M.
1522 @cindex Chassell, Robert J. 1446 @cindex Chassell, Robert J.
1523 @cindex Berry, Karl 1447 @cindex Berry, Karl
1524 Richard M.@: Stallman invented the Texinfo format, wrote the initial 1448 Richard M.@: Stallman wrote Edition 1.0 of this manual. @w{Robert J.@:
1525 processors, and created Edition 1.0 of this manual. @w{Robert J.@: 1449 Chassell} revised and extended it, starting with Edition 1.1. Karl
1526 Chassell} greatly revised and extended the manual, starting with Edition 1450 Berry made updates for the Texinfo 3.8 and subsequent releases, starting
1527 1.1. Brian Fox was responsible for the standalone Texinfo distribution 1451 with Edition 2.22.
1528 until version 3.8, and wrote the standalone @command{makeinfo} and
1529 @command{info}. Karl Berry has made the updates since Texinfo 3.8 and
1530 subsequent releases, starting with Edition 2.22 of the manual.
1531 1452
1532 @cindex Pinard, Fran@,{c}ois 1453 @cindex Pinard, Fran@,{c}ois
1533 @cindex Zuhn, David D. 1454 @cindex Zuhn, David D.
1534 @cindex Weisshaus, Melissa 1455 @cindex Weisshaus, Melissa
1535 @cindex Zaretskii, Eli
1536 @cindex Schwab, Andreas
1537 @cindex Weinberg, Zack
1538 Our thanks go out to all who helped improve this work, particularly to 1456 Our thanks go out to all who helped improve this work, particularly to
1539 Fran@,{c}ois Pinard and @w{David D.@: Zuhn}, who tirelessly recorded and 1457 Fran@,{c}ois Pinard and @w{David D.@: Zuhn}, who tirelessly recorded and
1540 reported mistakes and obscurities; our special thanks go to Melissa 1458 reported mistakes and obscurities; our special thanks go to Melissa
1541 Weisshaus for her frequent and often tedious reviews of nearly similar 1459 Weisshaus for her frequent and often tedious reviews of nearly similar
1542 editions. The indefatigable Eli Zaretskii and Andreas Schwab have 1460 editions. Our mistakes are our own.
1543 provided patches beyond counting. Zack Weinberg did the impossible by 1461
1544 implementing the macro syntax in @file{texinfo.tex}. Dozens of others 1462 Please send suggestions and corrections to:
1545 have contributed patches and suggestions, they are gratefully 1463
1546 acknowledged in the @file{ChangeLog} file. Our mistakes are our own. 1464 @example
1547 1465 @group
1548 @cindex Scribe 1466 @r{Internet address:}
1549 @cindex Reid, Brian 1467 bug-texinfo@@gnu.org
1550 @cindex History of Texinfo 1468 @end group
1551 A bit of history: in the 1970's at CMU, Brian Reid developed a program 1469 @end example
1552 and format named Scribe to mark up documents for printing. It used the 1470
1553 @code{@@} character to introduce commands as Texinfo does and strived to 1471 @noindent
1554 describe document contents rather than formatting. 1472 Please include the manual's edition number and update date in your messages.
1555 1473
1556 @cindex Bolio 1474 @node Texinfo Mode, Beginning a File, Overview, Top
1557 @cindex Bo@TeX{} 1475 @comment node-name, next, previous, up
1558 Meanwhile, people at MIT developed another, not too dissimilar format
1559 called Bolio. This then was converted to using @TeX{} as its typesetting
1560 language: Bo@TeX{}.
1561
1562 Bo@TeX{} could only be used as a markup language for documents to be
1563 printed, not for online documents. Richard Stallman (RMS) worked on
1564 both Bolio and Bo@TeX{}. He also developed a nifty on-line help format
1565 called Info, and then combined Bo@TeX{} and Info to create Texinfo, a
1566 mark up language for text that is intended to be read both on line and
1567 as printed hard copy.
1568
1569
1570
1571 @node Texinfo Mode
1572 @chapter Using Texinfo Mode 1476 @chapter Using Texinfo Mode
1573 @cindex Texinfo mode 1477 @cindex Texinfo mode
1574 @cindex Mode, using Texinfo 1478 @cindex Mode, using Texinfo
1575 @cindex GNU Emacs 1479 @cindex GNU Emacs
1576 @cindex Emacs 1480 @cindex Emacs
1603 @ifinfo 1507 @ifinfo
1604 @heading Texinfo Mode Overview 1508 @heading Texinfo Mode Overview
1605 @end ifinfo 1509 @end ifinfo
1606 1510
1607 Texinfo mode provides special features for working with Texinfo 1511 Texinfo mode provides special features for working with Texinfo
1608 files. 1512 files:@refill
1609 You can:@refill
1610 1513
1611 @itemize @bullet 1514 @itemize @bullet
1612 @item 1515 @item
1613 Insert frequently used @@-commands. @refill 1516 Insert frequently used @@-commands. @refill
1614 1517
1656 a regular expression matching the commands for chapters and their 1559 a regular expression matching the commands for chapters and their
1657 equivalents, such as appendices. With this value for the page 1560 equivalents, such as appendices. With this value for the page
1658 delimiter, you can jump from chapter title to chapter title with the 1561 delimiter, you can jump from chapter title to chapter title with the
1659 @kbd{C-x ]} (@code{forward-page}) and @kbd{C-x [} 1562 @kbd{C-x ]} (@code{forward-page}) and @kbd{C-x [}
1660 (@code{backward-page}) commands and narrow to a chapter with the 1563 (@code{backward-page}) commands and narrow to a chapter with the
1661 @kbd{C-x p} (@code{narrow-to-page}) command. (@xref{Pages, , ,emacs, 1564 @kbd{C-x p} (@code{narrow-to-page}) command. (@xref{Pages, , , xemacs,
1662 The GNU Emacs Manual}, for details about the page commands.)@refill 1565 XEmacs User's Manual}, for details about the page commands.)@refill
1663 1566
1664 You may name a Texinfo file however you wish, but the convention is to 1567 You may name a Texinfo file however you wish, but the convention is to
1665 end a Texinfo file name with one of the extensions 1568 end a Texinfo file name with one of the three extensions
1666 @file{.texinfo}, @file{.texi}, @file{.txi}, or @file{.tex}. A longer 1569 @file{.texinfo}, @file{.texi}, or @file{.tex}. A longer extension is
1667 extension is preferred, since it is explicit, but a shorter extension 1570 preferred, since it is explicit, but a shorter extension may be
1668 may be necessary for operating systems that limit the length of file 1571 necessary for operating systems that limit the length of file names.
1669 names. GNU Emacs automatically enters Texinfo mode when you visit a 1572 GNU Emacs automatically enters Texinfo mode when you visit a file with
1670 file with a @file{.texinfo}, @file{.texi} or @file{.txi} 1573 a @file{.texinfo} or @file{.texi}
1671 extension. Also, Emacs switches to Texinfo mode 1574 extension. Also, Emacs switches to Texinfo mode
1672 when you visit a 1575 when you visit a
1673 file that has @samp{-*-texinfo-*-} in its first line. If ever you are 1576 file that has @samp{-*-texinfo-*-} in its first line. If ever you are
1674 in another mode and wish to switch to Texinfo mode, type @code{M-x 1577 in another mode and wish to switch to Texinfo mode, type @code{M-x
1675 texinfo-mode}.@refill 1578 texinfo-mode}.@refill
1857 cursor in the @file{*Occur*} buffer.@refill 1760 cursor in the @file{*Occur*} buffer.@refill
1858 @end table 1761 @end table
1859 1762
1860 If you call @code{texinfo-show-structure} with a prefix argument by 1763 If you call @code{texinfo-show-structure} with a prefix argument by
1861 typing @w{@kbd{C-u C-c C-s}}, it will list not only those lines with the 1764 typing @w{@kbd{C-u C-c C-s}}, it will list not only those lines with the
1862 @@-commands for @code{@@chapter}, @code{@@section}, and the like, but 1765 @@-commands for @code{@@chapter}, @code{@@section}, and the like,
1863 also the @code{@@node} lines. You can use @code{texinfo-show-structure} 1766 but also the @code{@@node} lines. (This is how the
1864 with a prefix argument to check whether the `Next', `Previous', and `Up' 1767 @code{texinfo-show-structure} command worked without an argument in
1865 pointers of an @code{@@node} line are correct. 1768 the first version of Texinfo. It was changed because @code{@@node}
1769 lines clutter up the @samp{*Occur*} buffer and are usually not
1770 needed.) You can use @code{texinfo-show-structure} with a prefix
1771 argument to check whether the `Next', `Previous', and `Up' pointers of
1772 an @code{@@node} line are correct.@refill
1866 1773
1867 Often, when you are working on a manual, you will be interested only 1774 Often, when you are working on a manual, you will be interested only
1868 in the structure of the current chapter. In this case, you can mark 1775 in the structure of the current chapter. In this case, you can mark
1869 off the region of the buffer that you are interested in by using the 1776 off the region of the buffer that you are interested in by using the
1870 @kbd{C-x n n} (@code{narrow-to-region}) command and 1777 @kbd{C-x n n} (@code{narrow-to-region}) command and
1871 @code{texinfo-show-structure} will work on only that region. To see 1778 @code{texinfo-show-structure} will work on only that region. To see
1872 the whole buffer again, use @w{@kbd{C-x n w}} (@code{widen}). 1779 the whole buffer again, use @w{@kbd{C-x n w}} (@code{widen}).
1873 (@xref{Narrowing, , , emacs, The GNU Emacs Manual}, for more 1780 (@xref{Narrowing, , , xemacs, XEmacs User's Manual}, for more
1874 information about the narrowing commands.)@refill 1781 information about the narrowing commands.)@refill
1875 1782
1876 @vindex page-delimiter 1783 @vindex page-delimiter
1877 @cindex Page delimiter in Texinfo mode 1784 @cindex Page delimiter in Texinfo mode
1878 In addition to providing the @code{texinfo-show-structure} command, 1785 In addition to providing the @code{texinfo-show-structure} command,
1879 Texinfo mode sets the value of the page delimiter variable to match 1786 Texinfo mode sets the value of the page delimiter variable to match
1880 the chapter-level @@-commands. This enables you to use the @kbd{C-x 1787 the chapter-level @@-commands. This enables you to use the @kbd{C-x
1881 ]} (@code{forward-page}) and @kbd{C-x [} (@code{backward-page}) 1788 ]} (@code{forward-page}) and @kbd{C-x [} (@code{backward-page})
1882 commands to move forward and backward by chapter, and to use the 1789 commands to move forward and backward by chapter, and to use the
1883 @kbd{C-x p} (@code{narrow-to-page}) command to narrow to a chapter. 1790 @kbd{C-x p} (@code{narrow-to-page}) command to narrow to a chapter.
1884 @xref{Pages, , , emacs, The GNU Emacs Manual}, for more information 1791 @xref{Pages, , , xemacs, XEmacs User's Manual}, for more information
1885 about the page commands.@refill 1792 about the page commands.@refill
1886 1793
1887 @node Updating Nodes and Menus, Info Formatting, Showing the Structure, Texinfo Mode 1794 @node Updating Nodes and Menus, Info Formatting, Showing the Structure, Texinfo Mode
1888 @comment node-name, next, previous, up 1795 @comment node-name, next, previous, up
1889 @section Updating Nodes and Menus 1796 @section Updating Nodes and Menus
1914 @node Updating Commands, Updating Requirements, Updating Nodes and Menus, Updating Nodes and Menus 1821 @node Updating Commands, Updating Requirements, Updating Nodes and Menus, Updating Nodes and Menus
1915 @ifinfo 1822 @ifinfo
1916 @subheading The Updating Commands 1823 @subheading The Updating Commands
1917 @end ifinfo 1824 @end ifinfo
1918 1825
1919 You can use the updating commands to:@refill 1826 You can use the updating commands@refill
1920 1827
1921 @itemize @bullet 1828 @itemize @bullet
1922 @item 1829 @item
1923 insert or update the `Next', `Previous', and `Up' pointers of a 1830 to insert or update the `Next', `Previous', and `Up' pointers of a
1924 node,@refill 1831 node,@refill
1925 1832
1926 @item 1833 @item
1927 insert or update the menu for a section, and@refill 1834 to insert or update the menu for a section, and@refill
1928 1835
1929 @item 1836 @item
1930 create a master menu for a Texinfo source file.@refill 1837 to create a master menu for a Texinfo source file.@refill
1931 @end itemize 1838 @end itemize
1932 1839
1933 You can also use the commands to update all the nodes and menus in a 1840 You can also use the commands to update all the nodes and menus in a
1934 region or in a whole Texinfo file.@refill 1841 region or in a whole Texinfo file.@refill
1935 1842
1947 the @code{@@node} line and the structuring command line; and you may 1854 the @code{@@node} line and the structuring command line; and you may
1948 interpose only an @code{@@comment} line or an @code{@@ifinfo} line. 1855 interpose only an @code{@@comment} line or an @code{@@ifinfo} line.
1949 1856
1950 Commands which work on a whole buffer require that the `Top' node be 1857 Commands which work on a whole buffer require that the `Top' node be
1951 followed by a node with an @code{@@chapter} or equivalent-level command. 1858 followed by a node with an @code{@@chapter} or equivalent-level command.
1952 The menu updating commands will not create a main or master menu for a 1859 Note that the menu updating commands will not create a main or master
1953 Texinfo file that has only @code{@@chapter}-level nodes! The menu 1860 menu for a Texinfo file that has only @code{@@chapter}-level nodes! The
1954 updating commands only create menus @emph{within} nodes for lower level 1861 menu updating commands only create menus @emph{within} nodes for lower level
1955 nodes. To create a menu of chapters, you must provide a `Top' 1862 nodes. To create a menu of chapters, you must provide a `Top'
1956 node. 1863 node.@refill
1957 1864
1958 The menu updating commands remove menu entries that refer to other Info 1865 The menu updating commands remove menu entries that refer to other Info
1959 files since they do not refer to nodes within the current buffer. This 1866 files since they do not refer to nodes within the current buffer. This
1960 is a deficiency. Rather than use menu entries, you can use cross 1867 is a deficiency. Rather than use menu entries, you can use cross
1961 references to refer to other Info files. None of the updating commands 1868 references to refer to other Info files. None of the updating commands
1997 @noindent 1904 @noindent
1998 This updates all the nodes and menus completely and all at once.@refill 1905 This updates all the nodes and menus completely and all at once.@refill
1999 @end table 1906 @end table
2000 1907
2001 The other major updating commands do smaller jobs and are designed for 1908 The other major updating commands do smaller jobs and are designed for
2002 the person who updates nodes and menus as he or she writes a Texinfo 1909 the person who updates nodes and menus as he or she writes a Texinfo
2003 file.@refill 1910 file.@refill
2004 1911
2005 @need 1000 1912 @need 1000
2006 The commands are:@refill 1913 The commands are:@refill
2007 1914
2066 1973
2067 The @code{texinfo-column-for-description} variable specifies the 1974 The @code{texinfo-column-for-description} variable specifies the
2068 column to which menu descriptions are indented. By default, the value 1975 column to which menu descriptions are indented. By default, the value
2069 is 32 although it is often useful to reduce it to as low as 24. You 1976 is 32 although it is often useful to reduce it to as low as 24. You
2070 can set the variable with the @kbd{M-x edit-options} command 1977 can set the variable with the @kbd{M-x edit-options} command
2071 (@pxref{Edit Options, , Editing Variable Values, emacs, The GNU Emacs 1978 (@pxref{Edit Options, , Editing Variable Values, xemacs, XEmacs User's
2072 Manual}) or with the @kbd{M-x set-variable} command (@pxref{Examining, 1979 Manual}) or with the @kbd{M-x set-variable} command (@pxref{Examining, ,
2073 , Examining and Setting Variables, emacs, The GNU Emacs 1980 Examining and Setting Variables, xemacs, XEmacs User's Manual}).@refill
2074 Manual}).@refill
2075 1981
2076 Also, the @code{texinfo-indent-menu-description} command may be used to 1982 Also, the @code{texinfo-indent-menu-description} command may be used to
2077 indent existing menu descriptions to a specified column. Finally, if 1983 indent existing menu descriptions to a specified column. Finally, if
2078 you wish, you can use the @code{texinfo-insert-node-lines} command to 1984 you wish, you can use the @code{texinfo-insert-node-lines} command to
2079 insert missing @code{@@node} lines into a file. (@xref{Other Updating 1985 insert missing @code{@@node} lines into a file. (@xref{Other Updating
2122 @noindent 2028 @noindent
2123 In this example, `Comments' is the name of both the node and the 2029 In this example, `Comments' is the name of both the node and the
2124 section. The next node is called `Minimum' and the previous node is 2030 section. The next node is called `Minimum' and the previous node is
2125 called `Conventions'. The `Comments' section is within the `Overview' 2031 called `Conventions'. The `Comments' section is within the `Overview'
2126 node, which is specified by the `Up' pointer. (Instead of an 2032 node, which is specified by the `Up' pointer. (Instead of an
2127 @code{@@comment} line, you may also write an @code{@@ifinfo} line.)@refill 2033 @code{@@comment} line, you can write an @code{@@ifinfo} line.)@refill
2128 2034
2129 If a file has a `Top' node, it must be called @samp{top} or @samp{Top} 2035 If a file has a `Top' node, it must be called @samp{top} or @samp{Top}
2130 and be the first node in the file.@refill 2036 and be the first node in the file.@refill
2131 2037
2132 The menu updating commands create a menu of sections within a chapter, 2038 The menu updating commands create a menu of sections within a chapter,
2133 a menu of subsections within a section, and so on. This means that 2039 a menu of subsections within a section, and so on. This means that
2134 you must have a `Top' node if you want a menu of chapters.@refill 2040 you must have a `Top' node if you want a menu of chapters.@refill
2135 2041
2136 Incidentally, the @code{makeinfo} command will create an Info file for a 2042 Incidentally, the @code{makeinfo} command will create an Info file for
2137 hierarchically organized Texinfo file that lacks `Next', `Previous' and 2043 a hierarchically organized Texinfo file that lacks `Next', `Previous'
2138 `Up' pointers. Thus, if you can be sure that your Texinfo file will be 2044 and `Up' pointers. Thus, if you can be sure that your Texinfo file
2139 formatted with @code{makeinfo}, you have no need for the update node 2045 will be formatted with @code{makeinfo}, you have no need for the
2140 commands. (@xref{Creating an Info File}, for more information about 2046 `update node' commands. (@xref{Create an Info File, , Creating an
2141 @code{makeinfo}.) However, both @code{makeinfo} and the 2047 Info File}, for more information about @code{makeinfo}.) However,
2142 @code{texinfo-format-@dots{}} commands require that you insert menus in 2048 both @code{makeinfo} and the @code{texinfo-format-@dots{}} commands
2143 the file. 2049 require that you insert menus in the file.@refill
2144 2050
2145 @node Other Updating Commands, , Updating Requirements, Updating Nodes and Menus 2051 @node Other Updating Commands, , Updating Requirements, Updating Nodes and Menus
2146 @comment node-name, next, previous, up 2052 @comment node-name, next, previous, up
2147 @subsection Other Updating Commands 2053 @subsection Other Updating Commands
2148 2054
2169 2075
2170 @example 2076 @example
2171 C-x h C-u M-x texinfo-insert-node-lines 2077 C-x h C-u M-x texinfo-insert-node-lines
2172 @end example 2078 @end example
2173 2079
2174 This command inserts titles as node names in @code{@@node} lines; the 2080 (Note that this command inserts titles as node names in @code{@@node}
2175 @code{texinfo-start-menu-description} command (@pxref{Inserting, 2081 lines; the @code{texinfo-start-menu-description} command
2176 Inserting Frequently Used Commands}) inserts titles as descriptions in 2082 (@pxref{Inserting, Inserting Frequently Used Commands}) inserts titles
2177 menu entries, a different action. However, in both cases, you need to 2083 as descriptions in menu entries, a different action. However, in both
2178 edit the inserted text. 2084 cases, you need to edit the inserted text.)@refill
2179 2085
2180 @item M-x texinfo-multiple-files-update 2086 @item M-x texinfo-multiple-files-update
2181 @findex texinfo-multiple-files-update @r{(in brief)} 2087 @findex texinfo-multiple-files-update @r{(in brief)}
2182 Update nodes and menus in a document built from several separate files. 2088 Update nodes and menus in a document built from several separate files.
2183 With @kbd{C-u} as a prefix argument, create and insert a master menu in 2089 With @kbd{C-u} as a prefix argument, create and insert a master menu in
2273 @end example 2179 @end example
2274 2180
2275 For @TeX{} or the Info formatting commands to work, the file @emph{must} 2181 For @TeX{} or the Info formatting commands to work, the file @emph{must}
2276 include a line that has @code{@@setfilename} in its header.@refill 2182 include a line that has @code{@@setfilename} in its header.@refill
2277 2183
2278 @xref{Creating an Info File}, for details about Info formatting.@refill 2184 @xref{Create an Info File}, for details about Info formatting.@refill
2279 2185
2280 @node Printing, Texinfo Mode Summary, Info Formatting, Texinfo Mode 2186 @node Printing, Texinfo Mode Summary, Info Formatting, Texinfo Mode
2281 @comment node-name, next, previous, up 2187 @comment node-name, next, previous, up
2282 @section Formatting and Printing 2188 @section Formatting and Printing
2283 @cindex Formatting for printing 2189 @cindex Formatting for printing
2336 include an @code{@@settitle} line. The file must end with @code{@@bye} 2242 include an @code{@@settitle} line. The file must end with @code{@@bye}
2337 on a line by itself. (When you use @code{texinfo-tex-region}, you must 2243 on a line by itself. (When you use @code{texinfo-tex-region}, you must
2338 surround the @code{@@settitle} line with start-of-header and 2244 surround the @code{@@settitle} line with start-of-header and
2339 end-of-header lines.)@refill 2245 end-of-header lines.)@refill
2340 2246
2341 @xref{Hardcopy}, for a description of the other @TeX{} related 2247 @xref{Format/Print Hardcopy}, for a description of the other @TeX{} related
2342 commands, such as @code{tex-show-print-queue}.@refill 2248 commands, such as @code{tex-show-print-queue}.@refill
2343 2249
2344 @node Texinfo Mode Summary, , Printing, Texinfo Mode 2250 @node Texinfo Mode Summary, , Printing, Texinfo Mode
2345 @comment node-name, next, previous, up 2251 @comment node-name, next, previous, up
2346 @section Texinfo Mode Summary 2252 @section Texinfo Mode Summary
2388 @subheading The Master Update Command 2294 @subheading The Master Update Command
2389 2295
2390 The @code{texinfo-master-menu} command creates a master menu; and can 2296 The @code{texinfo-master-menu} command creates a master menu; and can
2391 be used to update every node and menu in a file as well.@refill 2297 be used to update every node and menu in a file as well.@refill
2392 2298
2393 @c Probably should use @tables in this section.
2394 @example 2299 @example
2395 @group 2300 @group
2396 C-c C-u m 2301 C-c C-u m
2397 M-x texinfo-master-menu 2302 M-x texinfo-master-menu
2398 @r{Create or update a master menu.} 2303 @r{Create or update a master menu.}
2490 C-c C-t C-l @r{Recenter the output buffer.} 2395 C-c C-t C-l @r{Recenter the output buffer.}
2491 @end example 2396 @end example
2492 2397
2493 @subheading Other Updating Commands 2398 @subheading Other Updating Commands
2494 2399
2495 The remaining updating commands do not have standard keybindings because 2400 The `other updating commands' do not have standard keybindings because
2496 they are rarely used. 2401 they are rarely used.
2497 2402
2498 @example 2403 @example
2499 @group 2404 @group
2500 M-x texinfo-insert-node-lines 2405 M-x texinfo-insert-node-lines
2701 * First Line:: The first line of a Texinfo file. 2606 * First Line:: The first line of a Texinfo file.
2702 * Start of Header:: Formatting a region requires this. 2607 * Start of Header:: Formatting a region requires this.
2703 * setfilename:: Tell Info the name of the Info file. 2608 * setfilename:: Tell Info the name of the Info file.
2704 * settitle:: Create a title for the printed work. 2609 * settitle:: Create a title for the printed work.
2705 * setchapternewpage:: Start chapters on right-hand pages. 2610 * setchapternewpage:: Start chapters on right-hand pages.
2706 * paragraphindent:: Specify paragraph indentation. 2611 * paragraphindent:: An option to specify paragraph indentation.
2707 * exampleindent:: Specify environment indentation.
2708 * End of Header:: Formatting a region requires this. 2612 * End of Header:: Formatting a region requires this.
2709 @end menu 2613 @end menu
2710 2614
2711 2615 @node First Line, Start of Header, Header, Header
2712 @node First Line 2616 @comment node-name, next, previous, up
2713 @subsection The First Line of a Texinfo File 2617 @subsection The First Line of a Texinfo File
2714 @cindex First line of a Texinfo file 2618 @cindex First line of a Texinfo file
2715 @cindex Beginning line of a Texinfo file 2619 @cindex Beginning line of a Texinfo file
2716 @cindex Header of a Texinfo file 2620 @cindex Header of a Texinfo file
2717 2621
2762 @end example 2666 @end example
2763 2667
2764 The odd string of characters, @samp{%**}, is to ensure that no other 2668 The odd string of characters, @samp{%**}, is to ensure that no other
2765 comment is accidentally taken for a start-of-header line.@refill 2669 comment is accidentally taken for a start-of-header line.@refill
2766 2670
2767 @node setfilename 2671 @node setfilename, settitle, Start of Header, Header
2672 @comment node-name, next, previous, up
2768 @subsection @code{@@setfilename} 2673 @subsection @code{@@setfilename}
2769 @cindex Info file requires @code{@@setfilename} 2674 @cindex Info file requires @code{@@setfilename}
2770 @findex setfilename 2675 @findex setfilename
2771 2676
2772 In order to serve as the primary input file for either @code{makeinfo} 2677 In order to serve as the primary input file for either @code{makeinfo}
2780 follow it on the same line by the Info file name. Do not write anything 2685 follow it on the same line by the Info file name. Do not write anything
2781 else on the line; anything on the line after the command is considered 2686 else on the line; anything on the line after the command is considered
2782 part of the file name, including what would otherwise be a 2687 part of the file name, including what would otherwise be a
2783 comment. 2688 comment.
2784 2689
2785 The @code{@@setfilename} line specifies the name of the output file to 2690 The @code{@@setfilename} line specifies the name of the Info file to be
2786 be generated. This name should be different from the name of the 2691 generated. This name should be different from the name of the Texinfo
2787 Texinfo file. There are two conventions for choosing the name: you can 2692 file. There are two conventions for choosing the name: you can either
2788 either remove the extension (such as @samp{.texi}) from the input file 2693 remove the @samp{.texi} extension from the input file name, or replace
2789 name, or replace it with the @samp{.info} extension. When producing 2694 it with the @samp{.info} extension.
2790 HTML output, @code{makeinfo} will replace any extension with
2791 @samp{html}, or add @samp{.html} if the given name has no extension.
2792 2695
2793 Some operating systems cannot handle long file names. You can run into 2696 Some operating systems cannot handle long file names. You can run into
2794 a problem even when the file name you specify is itself short enough. 2697 a problem even when the file name you specify is itself short enough.
2795 This occurs because the Info formatters split a long Info file into 2698 This occurs because the Info formatters split a long Info file into
2796 short indirect subfiles, and name them by appending @samp{-1}, 2699 short indirect subfiles, and name them by appending @samp{-1},
2797 @samp{-2}, @dots{}, @samp{-10}, @samp{-11}, and so on, to the original 2700 @samp{-2}, @dots{}, @samp{-10}, @samp{-11}, and so on, to the original
2798 file name. (@xref{Tag and Split Files, , Tag Files and Split Files}.) 2701 file name. (@xref{Tag and Split Files, , Tag Files and Split Files}.)
2799 The subfile name @file{texinfo.info-10}, for example, is too long for 2702 The subfile name @file{texinfo.info-10}, for example, is too long for
2800 some systems; so the Info file name for this document is @file{texinfo} 2703 some systems; so the Info file name for this document is @file{texinfo}
2801 rather than @file{texinfo.info}. When @code{makeinfo} is running on 2704 rather than @file{texinfo.info}.
2802 operating systems such as MS-DOS which impose grave limits on file
2803 names, it will sometimes remove some characters from the original file
2804 name to leave enough space for the subfile suffix, thus producing files
2805 named @file{texin-10}, @file{gcc.i12}, etc.
2806 2705
2807 @cindex Ignored before @code{@@setfilename} 2706 @cindex Ignored before @code{@@setfilename}
2808 @cindex @samp{\input} source line ignored
2809 The Info formatting commands ignore everything written before the 2707 The Info formatting commands ignore everything written before the
2810 @code{@@setfilename} line, which is why the very first line of 2708 @code{@@setfilename} line, which is why the very first line of
2811 the file (the @code{\input} line) does not show up in the output. 2709 the file (the @code{\input} line) does not show up in the output.
2812 2710
2813 @pindex texinfo.cnf 2711 @pindex texinfo.cnf
2814 The @code{@@setfilename} line produces no output when you typeset a 2712 The @code{@@setfilename} line produces no output when you typeset a
2815 manual with @TeX{}, but it is nevertheless essential: it opens the 2713 manual with @TeX{}, but it nevertheless is essential: it opens the
2816 index, cross-reference, and other auxiliary files used by Texinfo, and 2714 index, cross-reference, and other auxiliary files used by Texinfo, and
2817 also reads @file{texinfo.cnf} if that file is present on your system 2715 also reads @file{texinfo.cnf} if that file is present on your system
2818 (@pxref{Preparing for TeX,, Preparing for @TeX{}}). 2716 (@pxref{Preparing for TeX,, Preparing to Use @TeX{}}).
2819 2717
2820 2718
2821 @node settitle, setchapternewpage, setfilename, Header 2719 @node settitle, setchapternewpage, setfilename, Header
2822 @comment node-name, next, previous, up 2720 @comment node-name, next, previous, up
2823 @subsection @code{@@settitle} 2721 @subsection @code{@@settitle}
2865 2763
2866 You may, if you wish, create your own, customized headings and 2764 You may, if you wish, create your own, customized headings and
2867 footings. @xref{Headings, , Page Headings}, for a detailed discussion 2765 footings. @xref{Headings, , Page Headings}, for a detailed discussion
2868 of this process.@refill 2766 of this process.@refill
2869 2767
2870 2768 @node setchapternewpage, paragraphindent, settitle, Header
2871 @node setchapternewpage 2769 @comment node-name, next, previous, up
2872 @subsection @code{@@setchapternewpage} 2770 @subsection @code{@@setchapternewpage}
2873 @cindex Starting chapters 2771 @cindex Starting chapters
2874 @cindex Pages, starting odd 2772 @cindex Pages, starting odd
2875 @findex setchapternewpage 2773 @findex setchapternewpage
2876 2774
2877 In an officially bound book, text is usually printed on both sides of 2775 In a book or a manual, text is usually printed on both sides of the
2878 the paper, chapters start on right-hand pages, and right-hand pages have 2776 paper, chapters start on right-hand pages, and right-hand pages have
2879 odd numbers. But in short reports, text often is printed only on one 2777 odd numbers. But in short reports, text often is printed only on one
2880 side of the paper. Also in short reports, chapters sometimes do not 2778 side of the paper. Also in short reports, chapters sometimes do not
2881 start on new pages, but are printed on the same page as the end of the 2779 start on new pages, but are printed on the same page as the end of the
2882 preceding chapter, after a small amount of vertical whitespace.@refill 2780 preceding chapter, after a small amount of vertical whitespace.@refill
2883 2781
2884 You can use the @code{@@setchapternewpage} command with various 2782 You can use the @code{@@setchapternewpage} command with various
2885 arguments to specify how @TeX{} should start chapters and whether it 2783 arguments to specify how @TeX{} should start chapters and whether it
2886 should format headers for printing on one or both sides of the paper 2784 should typeset pages for printing on one or both sides of the paper
2887 (single-sided or double-sided printing).@refill 2785 (single-sided or double-sided printing).@refill
2888 2786
2889 Write the @code{@@setchapternewpage} command at the beginning of a 2787 Write the @code{@@setchapternewpage} command at the beginning of a
2890 line followed by its argument.@refill 2788 line followed by its argument.@refill
2891 2789
2898 2796
2899 You can specify one of three alternatives with the 2797 You can specify one of three alternatives with the
2900 @code{@@setchapternewpage} command:@refill 2798 @code{@@setchapternewpage} command:@refill
2901 2799
2902 @table @asis 2800 @table @asis
2903 2801 @ignore
2802 @item No @code{@@setchapternewpage} command
2803 If the Texinfo file does not contain an @code{@@setchapternewpage}
2804 command before the @code{@@titlepage} command, @TeX{} automatically
2805 begins chapters on new pages and prints headings in the standard
2806 format for single-sided printing. This is the conventional format for
2807 single-sided printing.@refill
2808
2809 The result is exactly the same as when you write
2810 @code{@@setchapternewpage on}.@refill
2811 @end ignore
2904 @item @code{@@setchapternewpage off} 2812 @item @code{@@setchapternewpage off}
2905 Cause @TeX{} to typeset a new chapter on the same page as the last 2813 Cause @TeX{} to typeset a new chapter on the same page as the last
2906 chapter, after skipping some vertical whitespace. Also, cause @TeX{} to 2814 chapter, after skipping some vertical whitespace. Also, cause @TeX{} to
2907 format page headers for single-sided printing. (You can override the 2815 format page headers for single-sided printing. (You can override the
2908 headers format with the @code{@@headings double} command; see 2816 headers format with the @code{@@headings double} command; see
2909 @ref{headings on off, , The @code{@@headings} Command}.)@refill 2817 @ref{headings on off, , The @code{@@headings} Command}.)@refill
2910 2818
2911 @item @code{@@setchapternewpage on} 2819 @item @code{@@setchapternewpage on}
2912 Cause @TeX{} to start new chapters on new pages and to format page 2820 Cause @TeX{} to start new chapters on new pages and to typeset page
2913 headers for single-sided printing. This is the form most often 2821 headers for single-sided printing. This is the form most often
2914 used for short reports or personal printing. 2822 used for short reports.@refill
2915 2823
2916 This alternative is the default.@refill 2824 This alternative is the default.@refill
2917 2825
2918 @item @code{@@setchapternewpage odd} 2826 @item @code{@@setchapternewpage odd}
2919 Cause @TeX{} to start new chapters on new, odd-numbered pages 2827 Cause @TeX{} to start new chapters on new, odd-numbered pages
2920 (right-handed pages) and to typeset for double-sided printing. This is 2828 (right-handed pages) and to typeset for double-sided printing. This is
2921 the form most often used for books and manuals.@refill 2829 the form most often used for books and manuals.@refill
2922 @end table 2830 @end table
2923 2831
2832 @noindent
2924 Texinfo does not have an @code{@@setchapternewpage even} command.@refill 2833 Texinfo does not have an @code{@@setchapternewpage even} command.@refill
2925 2834
2926 You can countermand or modify the effect on headers of an 2835 @noindent
2927 @code{@@setchapternewpage} command with an @code{@@headings} command. 2836 (You can countermand or modify an @code{@@setchapternewpage} command
2928 @xref{headings on off, , The @code{@@headings} Command}.@refill 2837 with an @code{@@headings} command. @xref{headings on off, , The
2838 @code{@@headings} Command}.)@refill
2929 2839
2930 At the beginning of a manual or book, pages are not numbered---for 2840 At the beginning of a manual or book, pages are not numbered---for
2931 example, the title and copyright pages of a book are not numbered. 2841 example, the title and copyright pages of a book are not numbered.
2932 By convention, table of contents pages are numbered with roman 2842 By convention, table of contents pages are numbered with roman
2933 numerals and not in sequence with the rest of the document.@refill 2843 numerals and not in sequence with the rest of the document.@refill
2934 2844
2935 Since an Info file does not have pages, the @code{@@setchapternewpage} 2845 Since an Info file does not have pages, the @code{@@setchapternewpage}
2936 command has no effect on it.@refill 2846 command has no effect on it.@refill
2937 2847
2938 We recommend not including any @code{@@setchapternewpage} command in 2848 Usually, you do not write an @code{@@setchapternewpage} command for
2939 your manual sources at all, since the desired output is not intrinsic to 2849 single-sided printing, but accept the default which is to typeset for
2940 the document. Instead, if you don't want the default option (no blank 2850 single-sided printing and to start new chapters on new pages. Usually,
2941 pages, same headers on all pages) use the @option{--texinfo} option to 2851 you write an @code{@@setchapternewpage odd} command for double-sided
2942 @command{texi2dvi} to specify the output you want. 2852 printing.@refill
2943 2853
2944 2854 @node paragraphindent, End of Header, setchapternewpage, Header
2945 2855 @comment node-name, next, previous, up
2946 @node paragraphindent
2947 @subsection Paragraph Indenting 2856 @subsection Paragraph Indenting
2948 @cindex Indenting paragraphs 2857 @cindex Indenting paragraphs
2949 @cindex Paragraph indentation 2858 @cindex Paragraph indentation
2950 @findex paragraphindent 2859 @findex paragraphindent
2951 2860
2952 The Texinfo processors may insert whitespace at the beginning of the 2861 The Info formatting commands may insert spaces at the beginning of the
2953 first line of each paragraph, thereby indenting that paragraph. You can 2862 first line of each paragraph, thereby indenting that paragraph. You
2954 use the @code{@@paragraphindent} command to specify this indentation. 2863 can use the @code{@@paragraphindent} command to specify the
2955 Write an @code{@@paragraphindent} command at the beginning of a line 2864 indentation. Write an @code{@@paragraphindent} command at the
2956 followed by either @samp{asis} or a number: 2865 beginning of a line followed by either @samp{asis} or a number. The
2866 template is:@refill
2957 2867
2958 @example 2868 @example
2959 @@paragraphindent @var{indent} 2869 @@paragraphindent @var{indent}
2960 @end example 2870 @end example
2961 2871
2962 The indentation is according to the value of @var{indent}: 2872 The Info formatting commands indent according to the value of
2963 2873 @var{indent}:@refill
2964 @table @asis 2874
2965 @item @code{asis} 2875 @itemize @bullet
2966 Do not change the existing indentation (not implemented in @TeX{}). 2876 @item
2967 2877 If the value of @var{indent} is @samp{asis}, the Info formatting
2968 @item 0 2878 commands do not change the existing indentation.@refill
2969 Omit all indentation. 2879
2970 2880 @item
2971 @item @var{n} 2881 If the value of @var{indent} is zero, the Info formatting commands delete
2972 Indent by @var{n} space characters in Info output, by @var{n} ems in 2882 existing indentation.@refill
2973 @TeX{}. 2883
2974 2884 @item
2975 @end table 2885 If the value of @var{indent} is greater than zero, the Info formatting
2976 2886 commands indent the paragraph by that number of spaces.@refill
2977 The default value of @var{indent} is @samp{asis}. 2887 @end itemize
2978 @code{@@paragraphindent} is ignored for HTML output. 2888
2889 The default value of @var{indent} is @samp{asis}.@refill
2979 2890
2980 Write the @code{@@paragraphindent} command before or shortly after the 2891 Write the @code{@@paragraphindent} command before or shortly after the
2981 end-of-header line at the beginning of a Texinfo file. (If you write 2892 end-of-header line at the beginning of a Texinfo file. (If you write
2982 the command between the start-of-header and end-of-header lines, the 2893 the command between the start-of-header and end-of-header lines, the
2983 region formatting commands indent paragraphs as specified.) 2894 region formatting commands indent paragraphs as specified.)@refill
2984 2895
2985 A peculiarity of the @code{texinfo-format-buffer} and 2896 A peculiarity of the @code{texinfo-format-buffer} and
2986 @code{texinfo-format-region} commands is that they do not indent (nor 2897 @code{texinfo-format-region} commands is that they do not indent (nor
2987 fill) paragraphs that contain @code{@@w} or @code{@@*} commands. 2898 fill) paragraphs that contain @code{@@w} or @code{@@*} commands.
2988 @xref{Refilling Paragraphs}, for further information. 2899 @xref{Refilling Paragraphs}, for a detailed description of what goes
2989 2900 on.@refill
2990 2901
2991 @node exampleindent 2902 @node End of Header, , paragraphindent, Header
2992 @subsection @code{@@exampleindent}: Environment Indenting 2903 @comment node-name, next, previous, up
2993 @cindex Indenting environments
2994 @cindex Environment indentation
2995 @cindex Example indentation
2996 @findex exampleindent
2997
2998 The Texinfo processors indent each line of @code{@@example} and similar
2999 environments. You can use the @code{@@exampleindent} command to specify
3000 this indentation. Write an @code{@@exampleindent} command at the
3001 beginning of a line followed by either @samp{asis} or a number:
3002
3003 @example
3004 @@exampleindent @var{indent}
3005 @end example
3006
3007 The indentation is according to the value of @var{indent}:
3008
3009 @table @asis
3010 @item @code{asis}
3011 Do not change the existing indentation (not implemented in @TeX{}).
3012
3013 @item 0
3014 Omit all indentation.
3015
3016 @item @var{n}
3017 Indent environments by @var{n} space characters in Info output, by
3018 @var{n} ems in @TeX{}.
3019
3020 @end table
3021
3022 The default value of @var{indent} is 5. @code{@@exampleindent} is
3023 ignored for HTML output.
3024
3025 Write the @code{@@exampleindent} command before or shortly after the
3026 end-of-header line at the beginning of a Texinfo file. (If you write
3027 the command between the start-of-header and end-of-header lines, the
3028 region formatting commands indent examples as specified.)
3029
3030
3031 @node End of Header
3032 @subsection End of Header 2904 @subsection End of Header
3033 @cindex End of header line 2905 @cindex End of header line
3034 2906
3035 Follow the header lines with an @w{end-of-header} line. 2907 Follow the header lines with an @w{end-of-header} line.
3036 An end-of-header line looks like this:@refill 2908 An end-of-header line looks like this:@refill
3056 2928
3057 @iftex 2929 @iftex
3058 @xref{Start of Header}. 2930 @xref{Start of Header}.
3059 @end iftex 2931 @end iftex
3060 2932
3061 2933 @node Info Summary and Permissions, Titlepage & Copyright Page, Header, Beginning a File
3062 @node Info Summary and Permissions 2934 @comment node-name, next, previous, up
3063 @section Summary and Copying Permissions for Info 2935 @section Summary and Copying Permissions for Info
3064 2936
3065 The title page and the copyright page appear only in the printed copy of 2937 The title page and the copyright page appear only in the printed copy of
3066 the manual; therefore, the same information must be inserted in a 2938 the manual; therefore, the same information must be inserted in a
3067 section that appears only in the Info file. This section usually 2939 section that appears only in the Info file. This section usually
3084 The permissions text appears in an Info file @emph{before} the first 2956 The permissions text appears in an Info file @emph{before} the first
3085 node. This mean that a reader does @emph{not} see this text when 2957 node. This mean that a reader does @emph{not} see this text when
3086 reading the file using Info, except when using the advanced Info command 2958 reading the file using Info, except when using the advanced Info command
3087 @kbd{g *}. 2959 @kbd{g *}.
3088 2960
3089 2961 @node Titlepage & Copyright Page, The Top Node, Info Summary and Permissions, Beginning a File
3090 @node Titlepage & Copyright Page 2962 @comment node-name, next, previous, up
3091 @section The Title and Copyright Pages 2963 @section The Title and Copyright Pages
3092 2964
3093 A manual's name and author are usually printed on a title page. 2965 A manual's name and author are usually printed on a title page.
3094 Sometimes copyright information is printed on the title page as well; 2966 Sometimes copyright information is printed on the title page as well;
3095 more often, copyright information is printed on the back of the title 2967 more often, copyright information is printed on the back of the title
3098 The title and copyright pages appear in the printed manual, but not in the 2970 The title and copyright pages appear in the printed manual, but not in the
3099 Info file. Because of this, it is possible to use several slightly 2971 Info file. Because of this, it is possible to use several slightly
3100 obscure @TeX{} typesetting commands that cannot be used in an Info file. 2972 obscure @TeX{} typesetting commands that cannot be used in an Info file.
3101 In addition, this part of the beginning of a Texinfo file contains the text 2973 In addition, this part of the beginning of a Texinfo file contains the text
3102 of the copying permissions that will appear in the printed manual.@refill 2974 of the copying permissions that will appear in the printed manual.@refill
3103
3104 @cindex Titlepage, for plain text
3105 You may wish to include titlepage-like information for plain text
3106 output. Simply place any such leading material between @code{@@ifinfo}
3107 and @code{@@end ifinfo}; @command{makeinfo} includes this in its plain
3108 text output. It will not show up in the Info readers.
3109 2975
3110 @xref{Titlepage Permissions, , Titlepage Copying Permissions}, for the 2976 @xref{Titlepage Permissions, , Titlepage Copying Permissions}, for the
3111 standard text for the copyright permissions.@refill 2977 standard text for the copyright permissions.@refill
3112 2978
3113 @menu 2979 @menu
3122 copyright pages. 2988 copyright pages.
3123 * headings on off:: An option for turning headings on and off 2989 * headings on off:: An option for turning headings on and off
3124 and double or single sided printing. 2990 and double or single sided printing.
3125 @end menu 2991 @end menu
3126 2992
3127
3128 @node titlepage, titlefont center sp, Titlepage & Copyright Page, Titlepage & Copyright Page 2993 @node titlepage, titlefont center sp, Titlepage & Copyright Page, Titlepage & Copyright Page
3129 @comment node-name, next, previous, up 2994 @comment node-name, next, previous, up
3130 @subsection @code{@@titlepage} 2995 @subsection @code{@@titlepage}
3131 @cindex Title page 2996 @cindex Title page
3132 @findex titlepage 2997 @findex titlepage
3135 with @code{@@titlepage} on a line by itself and end it with 3000 with @code{@@titlepage} on a line by itself and end it with
3136 @code{@@end titlepage} on a line by itself.@refill 3001 @code{@@end titlepage} on a line by itself.@refill
3137 3002
3138 The @code{@@end titlepage} command starts a new page and turns on page 3003 The @code{@@end titlepage} command starts a new page and turns on page
3139 numbering. (@xref{Headings, , Page Headings}, for details about how to 3004 numbering. (@xref{Headings, , Page Headings}, for details about how to
3140 generate page headings.) All the material that you want to appear on 3005 generate page headings.) All the material that you want to
3141 unnumbered pages should be put between the @code{@@titlepage} and 3006 appear on unnumbered pages should be put between the
3142 @code{@@end titlepage} commands. You can force the table of contents to 3007 @code{@@titlepage} and @code{@@end titlepage} commands. By using the
3143 appear there with the @code{@@setcontentsaftertitlepage} command 3008 @code{@@page} command you can force a page break within the region
3144 (@pxref{Contents}). 3009 delineated by the @code{@@titlepage} and @code{@@end titlepage}
3145 3010 commands and thereby create more than one unnumbered page. This is
3146 @findex page@r{, within @code{@@titlepage}} 3011 how the copyright page is produced. (The @code{@@titlepage} command
3147 By using the @code{@@page} command you can force a page break within the 3012 might perhaps have been better named the
3148 region delineated by the @code{@@titlepage} and @code{@@end titlepage} 3013 @code{@@titleandadditionalpages} command, but that would have been
3149 commands and thereby create more than one unnumbered page. This is how 3014 rather long!)@refill
3150 the copyright page is produced. (The @code{@@titlepage} command might 3015
3151 perhaps have been better named the @code{@@titleandadditionalpages} 3016 @c !!! append refill to footnote when makeinfo can handle it.
3152 command, but that would have been rather long!)
3153
3154 When you write a manual about a computer program, you should write the 3017 When you write a manual about a computer program, you should write the
3155 version of the program to which the manual applies on the title page. 3018 version of the program to which the manual applies on the title
3156 If the manual changes more frequently than the program or is independent 3019 page. If the manual changes more frequently than the program or is
3157 of it, you should also include an edition number@footnote{We have found 3020 independent of it, you should also include an edition
3158 that it is helpful to refer to versions of manuals as `editions' and 3021 number@footnote{We have found that it is helpful to refer to versions
3159 versions of programs as `versions'; otherwise, we find we are liable to 3022 of manuals as `editions' and versions of programs as `versions';
3160 confuse each other in conversation by referring to both the 3023 otherwise, we find we are liable to confuse each other in conversation
3161 documentation and the software with the same words.} for the manual. 3024 by referring to both the documentation and the software with the same
3162 This helps readers keep track of which manual is for which version of 3025 words.} for the manual. This helps readers keep track of which manual
3163 the program. (The `Top' node should also contain this information; see 3026 is for which version of the program. (The `Top' node
3164 @ref{makeinfo top, , @code{@@top}}.) 3027 should also contain this information; see @ref{makeinfo top, ,
3028 @code{@@top}}.)@refill
3165 3029
3166 Texinfo provides two main methods for creating a title page. One method 3030 Texinfo provides two main methods for creating a title page. One method
3167 uses the @code{@@titlefont}, @code{@@sp}, and @code{@@center} commands 3031 uses the @code{@@titlefont}, @code{@@sp}, and @code{@@center} commands
3168 to generate a title page in which the words on the page are 3032 to generate a title page in which the words on the page are
3169 centered. 3033 centered.@refill
3170 3034
3171 The second method uses the @code{@@title}, @code{@@subtitle}, and 3035 The second method uses the @code{@@title}, @code{@@subtitle}, and
3172 @code{@@author} commands to create a title page with black rules under 3036 @code{@@author} commands to create a title page with black rules under
3173 the title and author lines and the subtitle text set flush to the 3037 the title and author lines and the subtitle text set flush to the
3174 right hand side of the page. With this method, you do not specify any 3038 right hand side of the page. With this method, you do not specify any
3175 of the actual formatting of the title page. You specify the text 3039 of the actual formatting of the title page. You specify the text
3176 you want, and Texinfo does the formatting. 3040 you want, and Texinfo does the formatting. You may use either
3177 3041 method.@refill
3178 You may use either method, or you may combine them; see the examples in
3179 the sections below.
3180 3042
3181 @findex shorttitlepage 3043 @findex shorttitlepage
3182 @cindex Bastard title page 3044 For extremely simple applications, Texinfo also provides a command
3183 @cindex Title page, bastard 3045 @code{@@shorttitlepage} which takes a single argument as the title.
3184 For extremely simple applications, and for the bastard title page in 3046 The argument is typeset on a page by itself and followed by a blank
3185 traditional book front matter, Texinfo also provides a command 3047 page.
3186 @code{@@shorttitlepage} which takes a single argument as the title. The 3048
3187 argument is typeset on a page by itself and followed by a blank page. 3049
3188 3050 @node titlefont center sp, title subtitle author, titlepage, Titlepage & Copyright Page
3189 3051 @comment node-name, next, previous, up
3190 @node titlefont center sp
3191 @subsection @code{@@titlefont}, @code{@@center}, and @code{@@sp} 3052 @subsection @code{@@titlefont}, @code{@@center}, and @code{@@sp}
3192 @findex titlefont 3053 @findex titlefont
3193 @findex center 3054 @findex center
3194 @findex sp @r{(titlepage line spacing)} 3055 @findex sp @r{(titlepage line spacing)}
3195 3056
3196 You can use the @code{@@titlefont}, @code{@@sp}, and @code{@@center} 3057 You can use the @code{@@titlefont}, @code{@@sp}, and @code{@@center}
3197 commands to create a title page for a printed document. (This is the 3058 commands to create a title page for a printed document. (This is the
3198 first of the two methods for creating a title page in Texinfo.)@refill 3059 first of the two methods for creating a title page in Texinfo.)@refill
3199 3060
3200 Use the @code{@@titlefont} command to select a large font suitable for 3061 Use the @code{@@titlefont} command to select a large font suitable for
3201 the title itself. You can use @code{@@titlefont} more than once if you 3062 the title itself.@refill
3202 have an especially long title.
3203 3063
3204 @need 700 3064 @need 700
3205 For example: 3065 For example:
3206 3066
3207 @example 3067 @example
3244 @dots{} 3104 @dots{}
3245 @@end titlepage 3105 @@end titlepage
3246 @end group 3106 @end group
3247 @end example 3107 @end example
3248 3108
3249 The spacing of the example fits an 8.5 by 11 inch manual.@refill 3109 The spacing of the example fits an 8 1/2 by 11 inch manual.@refill
3250 3110
3251 3111 @node title subtitle author, Copyright & Permissions, titlefont center sp, Titlepage & Copyright Page
3252 @node title subtitle author 3112 @comment node-name, next, previous, up
3253 @subsection @code{@@title}, @code{@@subtitle}, and @code{@@author} 3113 @subsection @code{@@title}, @code{@@subtitle}, and @code{@@author}
3254 @findex title 3114 @findex title
3255 @findex subtitle 3115 @findex subtitle
3256 @findex author 3116 @findex author
3257 3117
3258 You can use the @code{@@title}, @code{@@subtitle}, and @code{@@author} 3118 You can use the @code{@@title}, @code{@@subtitle}, and @code{@@author}
3259 commands to create a title page in which the vertical and horizontal 3119 commands to create a title page in which the vertical and horizontal
3260 spacing is done for you automatically. This contrasts with the method 3120 spacing is done for you automatically. This contrasts with the method
3261 described in the previous section, in which the @code{@@sp} command is 3121 described in
3262 needed to adjust vertical spacing. 3122 the previous section, in which the @code{@@sp} command is needed to
3123 adjust vertical spacing.@refill
3263 3124
3264 Write the @code{@@title}, @code{@@subtitle}, or @code{@@author} 3125 Write the @code{@@title}, @code{@@subtitle}, or @code{@@author}
3265 commands at the beginning of a line followed by the title, subtitle, 3126 commands at the beginning of a line followed by the title, subtitle,
3266 or author.@refill 3127 or author.@refill
3267 3128
3268 The @code{@@title} command produces a line in which the title is set 3129 The @code{@@title} command produces a line in which the title is set
3269 flush to the left-hand side of the page in a larger than normal font. 3130 flush to the left-hand side of the page in a larger than normal font.
3270 The title is underlined with a black rule. Only a single line is 3131 The title is underlined with a black rule.@refill
3271 allowed; the @code{@@*} command may not be used to break the title into
3272 two lines. To handle very long titles, you may find it profitable to
3273 use both @code{@@title} and @code{@@titlefont}; see the final example in
3274 this section.
3275 3132
3276 The @code{@@subtitle} command sets subtitles in a normal-sized font 3133 The @code{@@subtitle} command sets subtitles in a normal-sized font
3277 flush to the right-hand side of the page.@refill 3134 flush to the right-hand side of the page.@refill
3278 3135
3279 The @code{@@author} command sets the names of the author or authors in 3136 The @code{@@author} command sets the names of the author or authors in
3319 @dots{} 3176 @dots{}
3320 @@end titlepage 3177 @@end titlepage
3321 @end group 3178 @end group
3322 @end example 3179 @end example
3323 3180
3324 You may also combine the @code{@@titlefont} method described in the 3181 @ifinfo
3325 previous section and @code{@@title} method described in this one. This 3182 @noindent
3326 may be useful if you have a very long title. Here is a real-life example: 3183 Contrast this form with the form of a title page written using the
3327 3184 @code{@@sp}, @code{@@center}, and @code{@@titlefont} commands:@refill
3328 @example 3185
3329 @group 3186 @example
3330 @@titlepage 3187 @@titlepage
3331 @@titlefont@{GNU Software@} 3188 @@sp 10
3189 @@center @@titlefont@{Name of Manual When Printed@}
3190 @@sp 2
3191 @@center Subtitle, If Any
3332 @@sp 1 3192 @@sp 1
3333 @@title for MS-Windows and MS-DOS 3193 @@center Second subtitle
3334 @@subtitle Edition @@value@{edition@} for Release @@value@{cd-edition@} 3194 @@sp 2
3335 @@author by Daniel Hagerty, Melissa Weisshaus 3195 @@center Author
3336 @@author and Eli Zaretskii 3196 @@page
3337 @end group 3197 @dots{}
3338 @end example 3198 @@end titlepage
3339 3199 @end example
3340 @noindent 3200 @end ifinfo
3341 (The use of @code{@@value} here is explained in @ref{value 3201
3342 Example,,@code{@@value} Example}.) 3202 @node Copyright & Permissions, end titlepage, title subtitle author, Titlepage & Copyright Page
3343 3203 @comment node-name, next, previous, up
3344
3345 @node Copyright & Permissions
3346 @subsection Copyright Page and Permissions 3204 @subsection Copyright Page and Permissions
3347 @cindex Copyright page 3205 @cindex Copyright page
3348 @cindex Printed permissions 3206 @cindex Printed permissions
3349 @cindex Permissions, printed 3207 @cindex Permissions, printed
3350 3208
3387 @example 3245 @example
3388 Copyright @copyright{} @var{year} @var{copyright-owner} 3246 Copyright @copyright{} @var{year} @var{copyright-owner}
3389 @end example 3247 @end example
3390 3248
3391 It is customary to put information on how to get a manual after the 3249 It is customary to put information on how to get a manual after the
3392 copyright notice, followed by the copying permissions for the manual. 3250 copyright notice, followed by the copying permissions for the
3393 3251 manual.@refill
3394 Permissions must be given here as well as in the summary segment within 3252
3395 @code{@@ifinfo} and @code{@@end ifinfo} that immediately follows the 3253 Note that permissions must be given here as well as in the summary
3396 header since this text appears only in the printed manual and the 3254 segment within @code{@@ifinfo} and @code{@@end ifinfo} that
3397 @samp{ifinfo} text appears only in the Info file. 3255 immediately follows the header since this text appears only in the
3256 printed manual and the @samp{ifinfo} text appears only in the Info
3257 file.@refill
3398 3258
3399 @xref{Sample Permissions}, for the standard text.@refill 3259 @xref{Sample Permissions}, for the standard text.@refill
3400 3260
3401 3261 @node end titlepage, headings on off, Copyright & Permissions, Titlepage & Copyright Page
3402 @node end titlepage 3262 @comment node-name, next, previous, up
3403 @subsection Heading Generation 3263 @subsection Heading Generation
3404 @findex end titlepage 3264 @findex end titlepage
3405 @cindex Headings, page, begin to appear 3265 @cindex Headings, page, begin to appear
3406 @cindex Titlepage end starts headings 3266 @cindex Titlepage end starts headings
3407 @cindex End titlepage starts headings 3267 @cindex End titlepage starts headings
3464 @item @@headings single 3324 @item @@headings single
3465 Turn on page headings appropriate for single-sided printing. 3325 Turn on page headings appropriate for single-sided printing.
3466 @refill 3326 @refill
3467 3327
3468 @item @@headings double 3328 @item @@headings double
3469 @itemx @@headings on
3470 Turn on page headings appropriate for double-sided printing. The two 3329 Turn on page headings appropriate for double-sided printing. The two
3471 commands, @code{@@headings on} and @code{@@headings double}, are 3330 commands, @code{@@headings on} and @code{@@headings double}, are
3472 synonymous.@refill 3331 synonymous.@refill
3473 3332
3474 @item @@headings singleafter 3333 @item @@headings singleafter
3503 headings.@refill 3362 headings.@refill
3504 3363
3505 You can also specify your own style of page heading and footing. 3364 You can also specify your own style of page heading and footing.
3506 @xref{Headings, , Page Headings}, for more information.@refill 3365 @xref{Headings, , Page Headings}, for more information.@refill
3507 3366
3508 3367 @node The Top Node, Software Copying Permissions, Titlepage & Copyright Page, Beginning a File
3509 @node The Top Node 3368 @comment node-name, next, previous, up
3510 @section The `Top' Node and Master Menu 3369 @section The `Top' Node and Master Menu
3511 @cindex @samp{@r{Top}} node 3370 @cindex @samp{@r{Top}} node
3512 @cindex Master menu 3371 @cindex Master menu
3513 @cindex Node, `Top' 3372 @cindex Node, `Top'
3514 3373
3531 @menu 3390 @menu
3532 * Title of Top Node:: Sketch what the file is about. 3391 * Title of Top Node:: Sketch what the file is about.
3533 * Master Menu Parts:: A master menu has three or more parts. 3392 * Master Menu Parts:: A master menu has three or more parts.
3534 @end menu 3393 @end menu
3535 3394
3536 3395 @node Title of Top Node, Master Menu Parts, The Top Node, The Top Node
3537 @node Title of Top Node 3396 @ifinfo
3538 @subsection `Top' Node Title 3397 @subheading `Top' Node Title
3398 @end ifinfo
3539 3399
3540 Sometimes, you will want to place an @code{@@top} sectioning command 3400 Sometimes, you will want to place an @code{@@top} sectioning command
3541 line containing the title of the document immediately after the 3401 line containing the title of the document immediately after the
3542 @code{@@node Top} line (@pxref{makeinfo top command, , The @code{@@top} 3402 @code{@@node Top} line (@pxref{makeinfo top command, , The @code{@@top}
3543 Sectioning Command}, for more information).@refill 3403 Sectioning Command}, for more information).@refill
3549 @example 3409 @example
3550 @group 3410 @group
3551 @dots{} 3411 @dots{}
3552 @@end titlepage 3412 @@end titlepage
3553 3413
3554 @@ifnottex 3414 @@ifinfo
3555 @@node Top, Copying, , (dir) 3415 @@node Top, Copying, , (dir)
3556 @@top Texinfo 3416 @@top Texinfo
3557 3417
3558 Texinfo is a documentation system@dots{} 3418 Texinfo is a documentation system@dots{}
3559 @end group 3419 @end group
3560 3420
3561 @group 3421 @group
3562 This is edition@dots{} 3422 This is edition@dots{}
3563 @dots{} 3423 @dots{}
3564 @@end ifnottex 3424 @@end ifinfo
3565 @end group 3425 @end group
3566 3426
3567 @group 3427 @group
3568 @@menu 3428 @@menu
3569 * Copying:: Texinfo is freely 3429 * Copying:: Texinfo is freely
3696 @cindex Ending a Texinfo file 3556 @cindex Ending a Texinfo file
3697 @cindex Texinfo file ending 3557 @cindex Texinfo file ending
3698 @cindex File ending 3558 @cindex File ending
3699 @findex bye 3559 @findex bye
3700 3560
3701 The end of a Texinfo file should include commands to create indices and 3561 The end of a Texinfo file should include the commands that create
3702 (usually) to generate detailed and summary tables of contents. And it 3562 indices and generate detailed and summary tables of contents.
3703 must include the @code{@@bye} command that marks the last line processed 3563 And it must include the @code{@@bye} command that marks the last line
3704 by @TeX{}.@refill 3564 processed by @TeX{}.@refill
3705 3565
3706 @need 700 3566 @need 700
3707 For example: 3567 For example:
3708 3568
3709 @example 3569 @example
3739 Texinfo file; those just cause the raw data for the index to be 3599 Texinfo file; those just cause the raw data for the index to be
3740 accumulated. To generate an index, you must include the 3600 accumulated. To generate an index, you must include the
3741 @code{@@printindex} command at the place in the document where you 3601 @code{@@printindex} command at the place in the document where you
3742 want the index to appear. Also, as part of the process of creating a 3602 want the index to appear. Also, as part of the process of creating a
3743 printed manual, you must run a program called @code{texindex} 3603 printed manual, you must run a program called @code{texindex}
3744 (@pxref{Hardcopy}) to sort the raw data to produce a sorted 3604 (@pxref{Format/Print Hardcopy}) to sort the raw data to produce a sorted
3745 index file. The sorted index file is what is actually used to 3605 index file. The sorted index file is what is actually used to
3746 print the index.@refill 3606 print the index.@refill
3747 3607
3748 Texinfo offers six different types of predefined index: the concept 3608 Texinfo offers six different types of predefined index: the concept
3749 index, the function index, the variables index, the keystroke index, the 3609 index, the function index, the variables index, the keystroke index, the
3799 @@comment node-name, next, previous, up 3659 @@comment node-name, next, previous, up
3800 @@unnumbered Concept Index 3660 @@unnumbered Concept Index
3801 3661
3802 @@printindex cp 3662 @@printindex cp
3803 @end group 3663 @end group
3664
3665 @group
3666 @@summarycontents
3667 @@contents
3668 @@bye
3669 @end group
3804 @end smallexample 3670 @end smallexample
3805 3671
3806 @noindent 3672 @noindent
3807 Readers often prefer that the concept index come last in a book, 3673 (Readers often prefer that the concept index come last in a book,
3808 since that makes it easiest to find. Having just one index helps 3674 since that makes it easiest to find.)@refill
3809 readers also, since then they have only one place to look 3675
3810 (@pxref{synindex}). 3676 @ignore
3811 3677 @c TeX can do sorting, just not conveniently enough to handle sorting
3812 3678 @c Texinfo indexes. --karl, 5may97.
3813 @node Contents 3679 In @TeX{}, the @code{@@printindex} command needs a sorted index file
3680 to work from. @TeX{} does not know how to do sorting; this is a
3681 deficiency. @TeX{} writes output files of raw index data; use the
3682 @code{texindex} program to convert these files to sorted index files.
3683 (@xref{Format/Print Hardcopy}, for more information.)@refill
3684 @end ignore
3685
3686
3687 @node Contents, File End, Printing Indices & Menus, Ending a File
3688 @comment node-name, next, previous, up
3814 @section Generating a Table of Contents 3689 @section Generating a Table of Contents
3815 @cindex Table of contents 3690 @cindex Table of contents
3816 @cindex Contents, Table of 3691 @cindex Contents, Table of
3817 @cindex Short table of contents
3818 @findex contents 3692 @findex contents
3819 @findex summarycontents 3693 @findex summarycontents
3820 @findex shortcontents 3694 @findex shortcontents
3821 3695
3822 The @code{@@chapter}, @code{@@section}, and other structuring commands 3696 The @code{@@chapter}, @code{@@section}, and other structuring commands
3823 supply the information to make up a table of contents, but they do not 3697 supply the information to make up a table of contents, but they do not
3824 cause an actual table to appear in the manual. To do this, you must use 3698 cause an actual table to appear in the manual. To do this, you must
3825 the @code{@@contents} and/or @code{@@summarycontents} command(s). 3699 use the @code{@@contents} and @code{@@summarycontents}
3700 commands:@refill
3826 3701
3827 @table @code 3702 @table @code
3828 @item @@contents 3703 @item @@contents
3829 Generate a table of contents in a printed manual, including all 3704 Generate a table of contents in a printed manual, including all
3830 chapters, sections, subsections, etc., as well as appendices and 3705 chapters, sections, subsections, etc., as well as appendices and
3831 unnumbered chapters. (Headings generated by the @code{@@heading} 3706 unnumbered chapters. (Headings generated by the @code{@@heading}
3832 series of commands do not appear in the table of contents.) 3707 series of commands do not appear in the table of contents.) The
3708 @code{@@contents} command should be written on a line by
3709 itself.@refill
3833 3710
3834 @item @@shortcontents 3711 @item @@shortcontents
3835 @itemx @@summarycontents 3712 @itemx @@summarycontents
3836 (@code{@@summarycontents} is a synonym for @code{@@shortcontents}; the 3713 (@code{@@summarycontents} is a synonym for @code{@@shortcontents}; the
3837 two commands are exactly the same.)@refill 3714 two commands are exactly the same.)@refill
3839 Generate a short or summary table of contents that lists only the 3716 Generate a short or summary table of contents that lists only the
3840 chapters (and appendices and unnumbered chapters). Omit sections, subsections 3717 chapters (and appendices and unnumbered chapters). Omit sections, subsections
3841 and subsubsections. Only a long manual needs a short table 3718 and subsubsections. Only a long manual needs a short table
3842 of contents in addition to the full table of contents.@refill 3719 of contents in addition to the full table of contents.@refill
3843 3720
3721 Write the @code{@@shortcontents} command on a line by itself right
3722 @emph{before} the @code{@@contents} command.@refill
3844 @end table 3723 @end table
3845 3724
3846 Both contents commands should be written on a line by themselves. 3725 The table of contents commands automatically generate a chapter-like
3847 The contents commands automatically generate a chapter-like heading at 3726 heading at the top of the first table of contents page. Write the table
3848 the top of the first table of contents page, so don't include any 3727 of contents commands at the very end of a Texinfo file, just before the
3849 sectioning command such as @code{@@unnumbered} before them. 3728 @code{@@bye} command, following any index sections---anything in the
3729 Texinfo file after the table of contents commands will be omitted from
3730 the table of contents.@refill
3731
3732 When you print a manual with a table of contents, the table of
3733 contents are printed last and numbered with roman numerals. You need
3734 to place those pages in their proper place, after the title page,
3735 yourself. (This is the only collating you need to do for a printed
3736 manual. The table of contents is printed last because it is generated
3737 after the rest of the manual is typeset.)@refill
3738
3739 @need 700
3740 Here is an example of where to write table of contents commands:@refill
3741
3742 @example
3743 @group
3744 @var{indices}@dots{}
3745 @@shortcontents
3746 @@contents
3747 @@bye
3748 @end group
3749 @end example
3850 3750
3851 Since an Info file uses menus instead of tables of contents, the Info 3751 Since an Info file uses menus instead of tables of contents, the Info
3852 formatting commands ignore the contents commands. But the contents are 3752 formatting commands ignore the @code{@@contents} and
3853 included in plain text output (generated by @code{makeinfo --no-headers}). 3753 @code{@@shortcontents} commands.@refill
3854 3754
3855 The contents commands can be placed either at the very end of the file, 3755 @node File End, , Contents, Ending a File
3856 after any indices (see the previous section) and just before the 3756 @comment node-name, next, previous, up
3857 @code{@@bye} (see the next section), or near the beginning of the file,
3858 after the @code{@@end titlepage} (@pxref{titlepage}). The advantage to
3859 the former is that then the contents output is always up to date,
3860 because it reflects the processing just done. The advantage to the
3861 latter is that the contents are printed in the proper place, thus you do
3862 not need to rearrange the DVI file with @command{dviselect} or shuffle
3863 paper. However, contents commands at the beginning of the document are
3864 ignored when outputting to standard output.
3865
3866 @findex setcontentsaftertitlepage
3867 @findex setshortcontentsaftertitlepage
3868 @cindex Contents, after title page
3869 @cindex Table of contents, after title page
3870 As an author, you can put the contents commands wherever you prefer.
3871 But if you are a user simply printing a manual, you may wish to print
3872 the contents after the title page even if the author put the contents
3873 commands at the end of the document (as is the case in most existing
3874 Texinfo documents). You can do this by specifying
3875 @code{@@setcontentsaftertitlepage} and/or
3876 @code{@@setshortcontentsaftertitlepage}. The first prints only the main
3877 contents after the @code{@@end titlepage}; the second prints both the
3878 short contents and the main contents. In either case, any subsequent
3879 @code{@@contents} or @code{@@shortcontents} is ignored (unless no
3880 @code{@@end titlepage} is ever encountered).
3881
3882 You need to include the @code{@@set@dots{}contentsaftertitlepage}
3883 commands early in the document (just after @code{@@setfilename}, for
3884 example). Or, if you're using @command{texi2dvi} (@pxref{Format with
3885 texi2dvi}), you can use its @option{--texinfo} option to specify this
3886 without altering the source file at all. For example:
3887 @example
3888 texi2dvi --texinfo=@@setshortcontentsaftertitlepage foo.texi
3889 @end example
3890
3891
3892 @node File End
3893 @section @code{@@bye} File Ending 3757 @section @code{@@bye} File Ending
3894 @findex bye 3758 @findex bye
3895 3759
3896 An @code{@@bye} command terminates @TeX{} or Info formatting. None of 3760 An @code{@@bye} command terminates @TeX{} or Info formatting. None of
3897 the formatting commands see any of the file following @code{@@bye}. 3761 the formatting commands see any of the file following @code{@@bye}.
3902 manual; it is as if text after @code{@@bye} were within @code{@@ignore} 3766 manual; it is as if text after @code{@@bye} were within @code{@@ignore}
3903 @dots{} @code{@@end ignore}. Also, you may follow the @code{@@bye} line 3767 @dots{} @code{@@end ignore}. Also, you may follow the @code{@@bye} line
3904 with a local variables list. @xref{Compile-Command, , Using Local 3768 with a local variables list. @xref{Compile-Command, , Using Local
3905 Variables and the Compile Command}, for more information.@refill 3769 Variables and the Compile Command}, for more information.@refill
3906 3770
3907 3771 @node Structuring, Nodes, Ending a File, Top
3908 @node Structuring 3772 @comment node-name, next, previous, up
3909 @chapter Chapter Structuring 3773 @chapter Chapter Structuring
3910 @cindex Chapter structuring 3774 @cindex Chapter structuring
3911 @cindex Structuring of chapters 3775 @cindex Structuring of chapters
3912 3776
3913 The @dfn{chapter structuring} commands divide a document into a hierarchy of 3777 The @dfn{chapter structuring} commands divide a document into a hierarchy of
3942 * unnumberedsubsec appendixsubsec subheading:: 3806 * unnumberedsubsec appendixsubsec subheading::
3943 * subsubsection:: Commands for the lowest level sections. 3807 * subsubsection:: Commands for the lowest level sections.
3944 * Raise/lower sections:: How to change commands' hierarchical level. 3808 * Raise/lower sections:: How to change commands' hierarchical level.
3945 @end menu 3809 @end menu
3946 3810
3947 3811 @node Tree Structuring, Structuring Command Types, Structuring, Structuring
3948 @node Tree Structuring 3812 @comment node-name, next, previous, up
3949 @section Tree Structure of Sections 3813 @section Tree Structure of Sections
3950 @cindex Tree structuring 3814 @cindex Tree structuring
3951 3815
3952 A Texinfo file is usually structured like a book with chapters, 3816 A Texinfo file is usually structured like a book with chapters,
3953 sections, subsections, and the like. This structure can be visualized 3817 sections, subsections, and the like. This structure can be visualized
3986 3850
3987 The chapter structuring commands are described in the sections that 3851 The chapter structuring commands are described in the sections that
3988 follow; the @code{@@node} and @code{@@menu} commands are described in 3852 follow; the @code{@@node} and @code{@@menu} commands are described in
3989 following chapters. (@xref{Nodes}, and see @ref{Menus}.)@refill 3853 following chapters. (@xref{Nodes}, and see @ref{Menus}.)@refill
3990 3854
3991 3855 @node Structuring Command Types, makeinfo top, Tree Structuring, Structuring
3992 @node Structuring Command Types 3856 @comment node-name, next, previous, up
3993 @section Structuring Command Types 3857 @section Types of Structuring Commands
3994 3858
3995 The chapter structuring commands fall into four groups or series, each 3859 The chapter structuring commands fall into four groups or series, each
3996 of which contains structuring commands corresponding to the 3860 of which contains structuring commands corresponding to the
3997 hierarchical levels of chapters, sections, subsections, and 3861 hierarchical levels of chapters, sections, subsections, and
3998 subsubsections.@refill 3862 subsubsections.@refill
4033 @code{@@chapter}, @code{@@unnumbered}, and @code{@@appendix} commands 3897 @code{@@chapter}, @code{@@unnumbered}, and @code{@@appendix} commands
4034 start new pages in the printed manual; the @code{@@heading} commands 3898 start new pages in the printed manual; the @code{@@heading} commands
4035 do not.@refill 3899 do not.@refill
4036 @end itemize 3900 @end itemize
4037 3901
3902 @need 1000
4038 Here are the four groups of chapter structuring commands:@refill 3903 Here are the four groups of chapter structuring commands:@refill
4039 3904
4040 @multitable @columnfractions .19 .30 .29 .22 3905 @c Slightly different formatting for regular sized books and smallbooks.
4041 3906 @ifset smallbook
4042 @item @tab @tab @tab No new page 3907 @sp 1
4043 @item Numbered @tab Unnumbered @tab Lettered and numbered 3908 @tex
4044 @tab Unnumbered 3909 {\let\rm=\indrm \let\tt=\indtt
4045 @item In contents @tab In contents @tab In contents @tab Not in contents 3910 \halign{\hskip\itemindent#\hfil& \hskip.5em#\hfil& \hskip.5em#\hfil&
4046 @item @tab @code{@@top} @tab 3911 \hskip.5em#\hfil\cr
4047 @tab @code{@@majorheading} 3912
4048 @item @code{@@chapter} @tab @code{@@unnumbered} @tab @code{@@appendix} 3913 & & & \rm No new pages\cr
4049 @tab @code{@@chapheading} 3914 \rm Numbered& \rm Unnumbered& \rm Lettered and numbered& \rm Unnumbered\cr
4050 @item @code{@@section} @tab @code{@@unnumberedsec} @tab @code{@@appendixsec} 3915 \rm In contents& \rm In contents& \rm In contents& \rm Not in contents\cr
4051 @tab @code{@@heading} 3916
4052 @item @code{@@subsection} @tab @code{@@unnumberedsubsec} @tab @code{@@appendixsubsec} 3917 & & & \cr
4053 @tab @code{@@subheading} 3918 & \tt @@top& & \tt @@majorheading\cr
4054 @item @code{@@subsubsection} @tab @code{@@unnumberedsubsubsec} @tab @code{@@appendixsubsubsec} 3919 \tt @@chapter& \tt @@unnumbered& \tt @@appendix& \tt @@chapheading\cr
4055 @tab @code{@@subsubheading} 3920 \tt @@section& \tt @@unnumberedsec& \tt @@appendixsec& \tt @@heading\cr
4056 @end multitable 3921 \tt @@subsection&\tt @@unnumberedsubsec&\tt @@appendixsubsec&
4057 3922 \tt @@subheading\cr
4058 3923 \tt @@subsubsection& \tt @@unnumberedsubsubsec& \tt @@appendixsubsubsec&
4059 @node makeinfo top 3924 \tt @@subsubheading\cr}}
3925 @end tex
3926 @end ifset
3927 @ifclear smallbook
3928 @sp 1
3929 @tex
3930 \vbox{
3931 \halign{\hskip\itemindent\hskip.5em#\hfil& \hskip.5em#\hfil&
3932 \hskip.5em#\hfil& \hskip.5em #\hfil\cr
3933
3934 & & & \cr
3935 & & & \rm No new pages\cr
3936 \rm Numbered& \rm Unnumbered& \rm Lettered and numbered& \rm Unnumbered\cr
3937 \rm In contents& \rm In contents& \rm In contents& \rm Not in contents\cr
3938
3939 & & & \cr
3940 & \tt @@top& & \tt @@majorheading\cr
3941 \tt @@chapter& \tt @@unnumbered& \tt @@appendix& \tt @@chapheading\cr
3942 \tt @@section& \tt @@unnumberedsec& \tt @@appendixsec& \tt @@heading\cr
3943 \tt @@subsection&\tt @@unnumberedsubsec&\tt @@appendixsubsec&
3944 \tt @@subheading\cr
3945 \tt @@subsubsection& \tt @@unnumberedsubsubsec& \tt @@appendixsubsubsec&
3946 \tt @@subsubheading\cr}}
3947 @end tex
3948 @end ifclear
3949 @ifinfo
3950 @example
3951 @group
3952 @r{No new pages}
3953 @r{Numbered} @r{Unnumbered} @r{Lettered and numbered} @r{Unnumbered}
3954 @r{In contents} @r{In contents} @r{In contents} @r{Not in contents}
3955
3956 @@top @@majorheading
3957 @@chapter @@unnumbered @@appendix @@chapheading
3958 @@section @@unnumberedsec @@appendixsec @@heading
3959 @@subsection @@unnumberedsubsec @@appendixsubsec @@subheading
3960 @@subsubsection @@unnumberedsubsubsec @@appendixsubsubsec @@subsubheading
3961 @end group
3962 @end example
3963 @end ifinfo
3964
3965 @c Cannot line up columns properly inside of an example because of roman
3966 @c proportional fonts.
3967 @ignore
3968 @ifset smallbook
3969 @iftex
3970 @smallexample
3971 @group
3972 @r{No new pages}
3973 @r{Numbered} @r{Unnumbered} @r{Lettered and numbered} @r{Unnumbered}
3974 @r{In contents} @r{In contents} @r{In contents} @r{Not in contents}
3975
3976 @@top @@majorheading
3977 @@chapter @@unnumbered @@appendix @@chapheading
3978 @@section @@unnumberedsec @@appendixsec @@heading
3979 @@subsection @@unnumberedsubsec @@appendixsubsec @@subheading
3980 @@subsubsection @@unnumberedsubsubsec @@appendixsubsubsec @@subsubheading
3981 @end group
3982 @end smallexample
3983 @end iftex
3984 @end ifset
3985 @ifclear smallbook
3986 @iftex
3987 @smallexample
3988 @group
3989 @r{No new pages}
3990 @r{Numbered} @r{Unnumbered} @r{Lettered and numbered} @r{Unnumbered}
3991 @r{In contents} @r{In contents} @r{In contents} @r{Not in contents}
3992
3993 @@top @@majorheading
3994 @@chapter @@unnumbered @@appendix @@chapheading
3995 @@section @@unnumberedsec @@appendixsec @@heading
3996 @@subsection @@unnumberedsubsec @@appendixsubsec @@subheading
3997 @@subsubsection @@unnumberedsubsubsec @@appendixsubsubsec @@subsubheading
3998 @end group
3999 @end smallexample
4000 @end iftex
4001 @end ignore
4002
4003 @node makeinfo top, chapter, Structuring Command Types, Structuring
4004 @comment node-name, next, previous, up
4060 @section @code{@@top} 4005 @section @code{@@top}
4061 4006
4062 The @code{@@top} command is a special sectioning command that you use 4007 The @code{@@top} command is a special sectioning command that you use
4063 only after an @samp{@@node Top} line at the beginning of a Texinfo file. 4008 only after an @samp{@@node Top} line at the beginning of a Texinfo file.
4064 The @code{@@top} command tells the @code{makeinfo} formatter which node 4009 The @code{@@top} command tells the @code{makeinfo} formatter
4065 is the `Top' node, so it can use it as the root of the node tree if your 4010 which node is the `Top'
4066 manual uses implicit pointers. It has the same typesetting effect as 4011 node. It has the same typesetting effect as @code{@@unnumbered}
4067 @code{@@unnumbered} (@pxref{unnumbered & appendix, , @code{@@unnumbered} 4012 (@pxref{unnumbered & appendix, , @code{@@unnumbered}, @code{@@appendix}}).
4068 and @code{@@appendix}}). For detailed information, see @ref{makeinfo 4013 For detailed information, see
4069 top command, , The @code{@@top} Command}. 4014 @ref{makeinfo top command, , The @code{@@top} Command}.@refill
4070
4071 The @code{@@top} node and its menu (if any) is conventionally wrapped in
4072 an @code{@@ifnottex} conditional so that it will appear only in Info and
4073 HTML output, not @TeX{}.
4074
4075 4015
4076 @node chapter, unnumbered & appendix, makeinfo top, Structuring 4016 @node chapter, unnumbered & appendix, makeinfo top, Structuring
4077 @comment node-name, next, previous, up 4017 @comment node-name, next, previous, up
4078 @section @code{@@chapter} 4018 @section @code{@@chapter}
4079 @findex chapter 4019 @findex chapter
4107 to @code{@@unnumbered}, but centers its argument in the printed output. 4047 to @code{@@unnumbered}, but centers its argument in the printed output.
4108 This kind of stylistic choice is not usually offered by Texinfo. 4048 This kind of stylistic choice is not usually offered by Texinfo.
4109 @c but the Hacker's Dictionary wanted it ... 4049 @c but the Hacker's Dictionary wanted it ...
4110 4050
4111 4051
4112 @node unnumbered & appendix 4052 @node unnumbered & appendix, majorheading & chapheading, chapter, Structuring
4113 @section @code{@@unnumbered} and @code{@@appendix} 4053 @comment node-name, next, previous, up
4054 @section @code{@@unnumbered}, @code{@@appendix}
4114 @findex unnumbered 4055 @findex unnumbered
4115 @findex appendix 4056 @findex appendix
4116 4057
4117 Use the @code{@@unnumbered} command to create a chapter that appears 4058 Use the @code{@@unnumbered} command to create a chapter that appears
4118 in a printed manual without chapter numbers of any kind. Use the 4059 in a printed manual without chapter numbers of any kind. Use the
4403 4344
4404 An attempt to raise above `chapters' reproduces chapter commands; an 4345 An attempt to raise above `chapters' reproduces chapter commands; an
4405 attempt to lower below `subsubsections' reproduces subsubsection 4346 attempt to lower below `subsubsections' reproduces subsubsection
4406 commands. 4347 commands.
4407 4348
4408 @node Nodes 4349 @node Nodes, Menus, Structuring, Top
4350 @comment node-name, next, previous, up
4409 @chapter Nodes 4351 @chapter Nodes
4410 4352
4411 @dfn{Nodes} are the primary segments of a Texinfo file. They do not 4353 @dfn{Nodes} are the primary segments of a Texinfo file. They do not
4412 themselves impose a hierarchical or any other kind of structure on a file. 4354 themselves impose a hierarchic or any other kind of structure on a file.
4413 Nodes contain @dfn{node pointers} that name other nodes, and can contain 4355 Nodes contain @dfn{node pointers} that name other nodes, and can contain
4414 @dfn{menus} which are lists of nodes. In Info, the movement commands 4356 @dfn{menus} which are lists of nodes. In Info, the movement commands
4415 can carry you to a pointed-to node or to a node listed in a menu. Node 4357 can carry you to a pointed-to node or to a node listed in a menu. Node
4416 pointers and menus provide structure for Info files just as chapters, 4358 pointers and menus provide structure for Info files just as chapters,
4417 sections, subsections, and the like, provide structure for printed 4359 sections, subsections, and the like, provide structure for printed
4419 4361
4420 @menu 4362 @menu
4421 * Two Paths:: Different commands to structure 4363 * Two Paths:: Different commands to structure
4422 Info output and printed output. 4364 Info output and printed output.
4423 * Node Menu Illustration:: A diagram, and sample nodes and menus. 4365 * Node Menu Illustration:: A diagram, and sample nodes and menus.
4424 * node:: Creating nodes, in detail. 4366 * node:: How to write a node, in detail.
4425 * makeinfo Pointer Creation:: Letting makeinfo determine node pointers. 4367 * makeinfo Pointer Creation:: How to create node pointers with @code{makeinfo}.
4426 * anchor:: Defining arbitrary cross-reference targets.
4427 @end menu 4368 @end menu
4428 4369
4429 4370 @node Two Paths, Node Menu Illustration, Nodes, Nodes
4430 @node Two Paths 4371 @ifinfo
4431 @section Two Paths 4372 @heading Two Paths
4373 @end ifinfo
4432 4374
4433 The node and menu commands and the chapter structuring commands are 4375 The node and menu commands and the chapter structuring commands are
4434 technically independent of each other: 4376 independent of each other:
4435 4377
4436 @itemize @bullet 4378 @itemize @bullet
4437 @item 4379 @item
4438 In Info, node and menu commands provide structure. The chapter 4380 In Info, node and menu commands provide structure. The chapter
4439 structuring commands generate headings with different kinds of 4381 structuring commands generate headings with different kinds of
4446 information for cross references; they do nothing else.@refill 4388 information for cross references; they do nothing else.@refill
4447 @end itemize 4389 @end itemize
4448 4390
4449 You can use node pointers and menus to structure an Info file any way 4391 You can use node pointers and menus to structure an Info file any way
4450 you want; and you can write a Texinfo file so that its Info output has a 4392 you want; and you can write a Texinfo file so that its Info output has a
4451 different structure than its printed output. However, virtually all 4393 different structure than its printed output. However, most Texinfo
4452 Texinfo files are written such that the structure for the Info output 4394 files are written such that the structure for the Info output
4453 corresponds to the structure for the printed output. It is neither 4395 corresponds to the structure for the printed output. It is not
4454 convenient nor understandable to the reader to do otherwise.@refill 4396 convenient to do otherwise.@refill
4455 4397
4456 Generally, printed output is structured in a tree-like hierarchy in 4398 Generally, printed output is structured in a tree-like hierarchy in
4457 which the chapters are the major limbs from which the sections branch 4399 which the chapters are the major limbs from which the sections branch
4458 out. Similarly, node pointers and menus are organized to create a 4400 out. Similarly, node pointers and menus are organized to create a
4459 matching structure in the Info output.@refill 4401 matching structure in the Info output.@refill
4460 4402
4461 4403 @node Node Menu Illustration, node, Two Paths, Nodes
4462 @node Node Menu Illustration 4404 @comment node-name, next, previous, up
4463 @section Node and Menu Illustration 4405 @section Node and Menu Illustration
4464 4406
4465 Here is a copy of the diagram shown earlier that illustrates a Texinfo 4407 Here is a copy of the diagram shown earlier that illustrates a Texinfo
4466 file with three chapters, each of which contains two sections.@refill 4408 file with three chapters, each of which contains two sections.@refill
4467 4409
4468 The ``root'' is at the top of the diagram and the ``leaves'' are at the 4410 Note that the ``root'' is at the top of the diagram and the ``leaves''
4469 bottom. This is how such a diagram is drawn conventionally; it 4411 are at the bottom. This is how such a diagram is drawn conventionally;
4470 illustrates an upside-down tree. For this reason, the root node is 4412 it illustrates an upside-down tree. For this reason, the root node is
4471 called the `Top' node, and `Up' node pointers carry you closer to the 4413 called the `Top' node, and `Up' node pointers carry you closer to the
4472 root.@refill 4414 root.@refill
4473 4415
4474 @example 4416 @example
4475 @group 4417 @group
4481 | | | 4423 | | |
4482 -------- -------- -------- 4424 -------- -------- --------
4483 | | | | | | 4425 | | | | | |
4484 Section Section Section Section Section Section 4426 Section Section Section Section Section Section
4485 1.1 1.2 2.1 2.2 3.1 3.2 4427 1.1 1.2 2.1 2.2 3.1 3.2
4486 @end group 4428
4487 @end example 4429 @end group
4488 4430 @end example
4489 The fully-written command to start Chapter 2 would be this: 4431
4490 4432 Write the beginning of the node for Chapter 2 like this:@refill
4491 @example 4433
4492 @group 4434 @example
4493 @@node Chapter 2, Chapter 3, Chapter 1, Top 4435 @group
4436 @@node Chapter 2, Chapter 3, Chapter 1, top
4494 @@comment node-name, next, previous, up 4437 @@comment node-name, next, previous, up
4495 @end group 4438 @end group
4496 @end example 4439 @end example
4497 4440
4498 @noindent 4441 @noindent
4499 This @code{@@node} line says that the name of this node is ``Chapter 4442 This @code{@@node} line says that the name of this node is ``Chapter 2'', the
4500 2'', the name of the `Next' node is ``Chapter 3'', the name of the 4443 name of the `Next' node is ``Chapter 3'', the name of the `Previous'
4501 `Previous' node is ``Chapter 1'', and the name of the `Up' node is 4444 node is ``Chapter 1'', and the name of the `Up' node is ``Top''.
4502 ``Top''. You can omit writing out these node names if your document is
4503 hierarchically organized (@pxref{makeinfo Pointer Creation}), but the
4504 pointer relationships still obtain.
4505 4445
4506 @quotation 4446 @quotation
4507 @strong{Please Note:} `Next' refers to the next node at the same 4447 @strong{Please Note:} `Next' refers to the next node at the same
4508 hierarchical level in the manual, not necessarily to the next node 4448 hierarchical level in the manual, not necessarily to the next node
4509 within the Texinfo file. In the Texinfo file, the subsequent node may 4449 within the Texinfo file. In the Texinfo file, the subsequent node may
4510 be at a lower level---a section-level node most often follows a 4450 be at a lower level---a section-level node may follow a chapter-level
4511 chapter-level node, for example. `Next' and `Previous' refer to nodes 4451 node, and a subsection-level node may follow a section-level node.
4512 at the @emph{same} hierarchical level. (The `Top' node contains the 4452 `Next' and `Previous' refer to nodes at the @emph{same} hierarchical
4513 exception to this rule. Since the `Top' node is the only node at that 4453 level. (The `Top' node contains the exception to this rule. Since the
4514 level, `Next' refers to the first following node, which is almost always 4454 `Top' node is the only node at that level, `Next' refers to the first
4515 a chapter or chapter-level node.)@refill 4455 following node, which is almost always a chapter or chapter-level
4456 node.)@refill
4516 @end quotation 4457 @end quotation
4517 4458
4518 To go to Sections 2.1 and 2.2 using Info, you need a menu inside Chapter 4459 To go to Sections 2.1 and 2.2 using Info, you need a menu inside Chapter
4519 2. (@xref{Menus}.) You would write the menu just 4460 2. (@xref{Menus}.) You would write the menu just
4520 before the beginning of Section 2.1, like this:@refill 4461 before the beginning of Section 2.1, like this:@refill
4563 @@cindex Texinfo file ending 4504 @@cindex Texinfo file ending
4564 @@cindex File ending 4505 @@cindex File ending
4565 @end group 4506 @end group
4566 @end example 4507 @end example
4567 4508
4568 4509 @node node, makeinfo Pointer Creation, Node Menu Illustration, Nodes
4569 @node node 4510 @comment node-name, next, previous, up
4570 @section The @code{@@node} Command 4511 @section The @code{@@node} Command
4571 4512
4572 @cindex Node, defined 4513 @cindex Node, defined
4573 @findex node
4574
4575 A @dfn{node} is a segment of text that begins at an @code{@@node} 4514 A @dfn{node} is a segment of text that begins at an @code{@@node}
4576 command and continues until the next @code{@@node} command. The 4515 command and continues until the next @code{@@node} command. The
4577 definition of node is different from that for chapter or section. A 4516 definition of node is different from that for chapter or section. A
4578 chapter may contain sections and a section may contain subsections; 4517 chapter may contain sections and a section may contain subsections;
4579 but a node cannot contain subnodes; the text of a node continues only 4518 but a node cannot contain subnodes; the text of a node continues only
4584 contain any number of nodes. Indeed, a chapter usually contains 4523 contain any number of nodes. Indeed, a chapter usually contains
4585 several nodes, one for each section, subsection, and 4524 several nodes, one for each section, subsection, and
4586 subsubsection.@refill 4525 subsubsection.@refill
4587 4526
4588 To create a node, write an @code{@@node} command at the beginning of a 4527 To create a node, write an @code{@@node} command at the beginning of a
4589 line, and follow it with up to four arguments, separated by commas, on 4528 line, and follow it with four arguments, separated by commas, on the
4590 the rest of the same line. The first argument is required; it is the 4529 rest of the same line. These arguments are the name of the node, and
4591 name of this node. The subsequent arguments are the names of the 4530 the names of the `Next', `Previous', and `Up' pointers, in that order.
4592 `Next', `Previous', and `Up' pointers, in that order, and may be omitted 4531 You may insert spaces before each pointer if you wish; the spaces are
4593 if your Texinfo document is hierarchically organized (@pxref{makeinfo 4532 ignored. You must write the name of the node, and the names of the
4594 Pointer Creation}). 4533 `Next', `Previous', and `Up' pointers, all on the same line. Otherwise,
4595
4596 You may insert spaces before each name if you wish; the spaces are
4597 ignored. You must write the name of the node and the names of the
4598 `Next', `Previous', and `Up' pointers all on the same line. Otherwise,
4599 the formatters fail. (@inforef{Top, info, info}, for more information 4534 the formatters fail. (@inforef{Top, info, info}, for more information
4600 about nodes in Info.) 4535 about nodes in Info.)@refill
4601 4536
4602 Usually, you write one of the chapter-structuring command lines 4537 Usually, you write one of the chapter-structuring command lines
4603 immediately after an @code{@@node} line---for example, an 4538 immediately after an @code{@@node} line---for example, an
4604 @code{@@section} or @code{@@subsection} line. (@xref{Structuring 4539 @code{@@section} or @code{@@subsection} line. (@xref{Structuring
4605 Command Types}.) 4540 Command Types, , Types of Structuring Commands}.)@refill
4606 4541
4607 @quotation 4542 @quotation
4608 @strong{Please note:} The GNU Emacs Texinfo mode updating commands work 4543 @strong{Please note:} The GNU Emacs Texinfo mode updating commands work
4609 only with Texinfo files in which @code{@@node} lines are followed by chapter 4544 only with Texinfo files in which @code{@@node} lines are followed by chapter
4610 structuring lines. @xref{Updating Requirements}.@refill 4545 structuring lines. @xref{Updating Requirements}.@refill
4612 4547
4613 @TeX{} uses @code{@@node} lines to identify the names to use for cross 4548 @TeX{} uses @code{@@node} lines to identify the names to use for cross
4614 references. For this reason, you must write @code{@@node} lines in a 4549 references. For this reason, you must write @code{@@node} lines in a
4615 Texinfo file that you intend to format for printing, even if you do not 4550 Texinfo file that you intend to format for printing, even if you do not
4616 intend to format it for Info. (Cross references, such as the one at the 4551 intend to format it for Info. (Cross references, such as the one at the
4617 end of this sentence, are made with @code{@@xref} and related commands; 4552 end of this sentence, are made with @code{@@xref} and its related
4618 see @ref{Cross References}.)@refill 4553 commands; see @ref{Cross References}.)@refill
4619 4554
4620 @menu 4555 @menu
4621 * Node Names:: How to choose node and pointer names. 4556 * Node Names:: How to choose node and pointer names.
4622 * Writing a Node:: How to write an @code{@@node} line. 4557 * Writing a Node:: How to write an @code{@@node} line.
4623 * Node Line Tips:: Keep names short. 4558 * Node Line Tips:: Keep names short.
4625 * First Node:: How to write a `Top' node. 4560 * First Node:: How to write a `Top' node.
4626 * makeinfo top command:: How to use the @code{@@top} command. 4561 * makeinfo top command:: How to use the @code{@@top} command.
4627 * Top Node Summary:: Write a brief description for readers. 4562 * Top Node Summary:: Write a brief description for readers.
4628 @end menu 4563 @end menu
4629 4564
4630 4565 @node Node Names, Writing a Node, node, node
4631 @node Node Names 4566 @ifinfo
4632 @subsection Choosing Node and Pointer Names 4567 @subheading Choosing Node and Pointer Names
4633 4568 @end ifinfo
4634 @cindex Node names, choosing 4569
4635 The name of a node identifies the node. The pointers enable 4570 The name of a node identifies the node. The pointers enable
4636 you to reach other nodes and consist of the names of those nodes.@refill 4571 you to reach other nodes and consist of the names of those nodes.@refill
4637 4572
4638 Normally, a node's `Up' pointer contains the name of the node whose menu 4573 Normally, a node's `Up' pointer contains the name of the node whose menu
4639 mentions that node. The node's `Next' pointer contains the name of the 4574 mentions that node. The node's `Next' pointer contains the name of the
4649 The `Top' node itself contains the main or master menu for the manual. 4584 The `Top' node itself contains the main or master menu for the manual.
4650 Also, it is helpful to include a brief description of the manual in the 4585 Also, it is helpful to include a brief description of the manual in the
4651 `Top' node. @xref{First Node}, for information on how to write the 4586 `Top' node. @xref{First Node}, for information on how to write the
4652 first node of a Texinfo file.@refill 4587 first node of a Texinfo file.@refill
4653 4588
4654 Even when you explicitly specify all pointers, that does not mean you 4589 @node Writing a Node, Node Line Tips, Node Names, node
4655 can write the nodes in the Texinfo source file in an arbitrary order! 4590 @comment node-name, next, previous, up
4656 Because @TeX{} processes the file sequentially, irrespective of node
4657 pointers, you must write the nodes in the order you wish them to appear
4658 in the printed output.
4659
4660
4661 @node Writing a Node
4662 @subsection How to Write an @code{@@node} Line 4591 @subsection How to Write an @code{@@node} Line
4663 @cindex Writing an @code{@@node} line 4592 @cindex Writing an @code{@@node} line
4664 @cindex @code{@@node} line writing 4593 @cindex @code{@@node} line writing
4665 @cindex Node line writing 4594 @cindex Node line writing
4666 4595
4684 @samp{@@node} and a comment line listing the names of the pointers in 4613 @samp{@@node} and a comment line listing the names of the pointers in
4685 their proper order. The comment line helps you keep track of which 4614 their proper order. The comment line helps you keep track of which
4686 arguments are for which pointers. This comment line is especially useful 4615 arguments are for which pointers. This comment line is especially useful
4687 if you are not familiar with Texinfo.@refill 4616 if you are not familiar with Texinfo.@refill
4688 4617
4689 The template for a fully-written-out node line with `Next', `Previous', 4618 The template for a node line with `Next', `Previous', and `Up' pointers
4690 and `Up' pointers looks like this:@refill 4619 looks like this:@refill
4691 4620
4692 @example 4621 @example
4693 @@node @var{node-name}, @var{next}, @var{previous}, @var{up} 4622 @@node @var{node-name}, @var{next}, @var{previous}, @var{up}
4694 @end example 4623 @end example
4695 4624
4696 If you wish, you can ignore @code{@@node} lines altogether in your first 4625 If you wish, you can ignore @code{@@node} lines altogether in your first
4697 draft and then use the @code{texinfo-insert-node-lines} command to 4626 draft and then use the @code{texinfo-insert-node-lines} command to
4698 create @code{@@node} lines for you. However, we do not recommend this 4627 create @code{@@node} lines for you. However, we do not
4699 practice. It is better to name the node itself at the same time that 4628 recommend this practice. It is better to name the node itself
4700 you write a segment so you can easily make cross references. A large 4629 at the same time that you
4701 number of cross references are an especially important feature of a good 4630 write a segment so you can easily make cross references. A large number
4702 Info file. 4631 of cross references are an especially important feature of a good Info
4632 file.@refill
4703 4633
4704 After you have inserted an @code{@@node} line, you should immediately 4634 After you have inserted an @code{@@node} line, you should immediately
4705 write an @@-command for the chapter or section and insert its name. 4635 write an @@-command for the chapter or section and insert its name.
4706 Next (and this is important!), put in several index entries. Usually, 4636 Next (and this is important!), put in several index entries. Usually,
4707 you will find at least two and often as many as four or five ways of 4637 you will find at least two and often as many as four or five ways of
4708 referring to the node in the index. Use them all. This will make it 4638 referring to the node in the index. Use them all. This will make it
4709 much easier for people to find the node. 4639 much easier for people to find the node.@refill
4710 4640
4711 4641 @node Node Line Tips, Node Line Requirements, Writing a Node, node
4712 @node Node Line Tips 4642 @comment node-name, next, previous, up
4713 @subsection @code{@@node} Line Tips 4643 @subsection @code{@@node} Line Tips
4714 4644
4715 Here are three suggestions: 4645 Here are three suggestions:
4716 4646
4717 @itemize @bullet 4647 @itemize @bullet
4731 By convention, node names are capitalized just as they would be for 4661 By convention, node names are capitalized just as they would be for
4732 section or chapter titles---initial and significant words are 4662 section or chapter titles---initial and significant words are
4733 capitalized; others are not.@refill 4663 capitalized; others are not.@refill
4734 @end itemize 4664 @end itemize
4735 4665
4736
4737 @node Node Line Requirements, First Node, Node Line Tips, node 4666 @node Node Line Requirements, First Node, Node Line Tips, node
4667 @comment node-name, next, previous, up
4738 @subsection @code{@@node} Line Requirements 4668 @subsection @code{@@node} Line Requirements
4739 4669
4740 @cindex Node line requirements 4670 @cindex Node line requirements
4741 Here are several requirements for @code{@@node} lines: 4671 Here are several requirements for @code{@@node} lines:
4742 4672
4743 @itemize @bullet 4673 @itemize @bullet
4744 @cindex Unique nodename requirement 4674 @cindex Unique nodename requirement
4745 @cindex Node name must be unique 4675 @cindex Nodename must be unique
4746 @item 4676 @item
4747 All the node names for a single Info file must be unique.@refill 4677 All the node names for a single Info file must be unique.@refill
4748 4678
4749 Duplicates confuse the Info movement commands. This means, for 4679 Duplicates confuse the Info movement commands. This means, for
4750 example, that if you end every chapter with a summary, you must name 4680 example, that if you end every chapter with a summary, you must name
4756 4686
4757 @item 4687 @item
4758 A pointer name must be the name of a node.@refill 4688 A pointer name must be the name of a node.@refill
4759 4689
4760 The node to which a pointer points may come before or after the 4690 The node to which a pointer points may come before or after the
4761 node containing the pointer. 4691 node containing the pointer.@refill
4762 4692
4763 @cindex @@-commands in nodename 4693 @cindex @@-command in nodename
4764 @cindex Node name, should not contain @@-commands 4694 @cindex Nodename, cannot contain
4765 @item 4695 @item
4766 @w{@@-commands} used in node names generally confuse Info, so you should 4696 You cannot use any of the Texinfo @@-commands in a node name;
4767 avoid them. For a few rare cases when this is useful, Texinfo has 4697 @w{@@-commands} confuse Info.@refill
4768 limited support for using @w{@@-commands} in node names; see
4769 @ref{Pointer Validation}.
4770 4698
4771 @need 750 4699 @need 750
4772 Thus, the beginning of the section called @code{@@chapter} looks like 4700 Thus, the beginning of the section called @code{@@chapter} looks like
4773 this:@refill 4701 this:@refill
4774 4702
4779 @@section @@code@{@@@@chapter@} 4707 @@section @@code@{@@@@chapter@}
4780 @@findex chapter 4708 @@findex chapter
4781 @end group 4709 @end group
4782 @end smallexample 4710 @end smallexample
4783 4711
4712 @cindex Comma in nodename
4713 @cindex Apostrophe in nodename
4784 @item 4714 @item
4785 @cindex Apostrophe in nodename 4715 You cannot use commas or apostrophes within a node name; these
4786 @cindex Colon in nodename 4716 confuse @TeX{} or the Info formatters.@refill
4787 @cindex Comma in nodename
4788 @cindex Period in nodename
4789 @cindex Characters, invalid in node name
4790 @cindex Invalid characters in node names
4791 Unfortunately, you cannot use periods, commas, colons or apostrophes
4792 within a node name; these confuse @TeX{} or the Info formatters.@refill
4793 4717
4794 @need 700 4718 @need 700
4795 For example, the following is a section title: 4719 For example, the following is a section title:
4796 4720
4797 @smallexample 4721 @smallexample
4906 frequently than the program or is independent of it, you should also 4830 frequently than the program or is independent of it, you should also
4907 include an edition number for the manual. (The title page should also 4831 include an edition number for the manual. (The title page should also
4908 contain this information: see @ref{titlepage, , 4832 contain this information: see @ref{titlepage, ,
4909 @code{@@titlepage}}.)@refill 4833 @code{@@titlepage}}.)@refill
4910 4834
4911 @node makeinfo Pointer Creation 4835 @node makeinfo Pointer Creation, , node, Nodes
4912 @section Creating Pointers with @code{makeinfo} 4836 @section Creating Pointers with @code{makeinfo}
4913 @cindex Creating pointers with @code{makeinfo} 4837 @cindex Creating pointers with @code{makeinfo}
4914 @cindex Pointer creation with @code{makeinfo} 4838 @cindex Pointer creation with @code{makeinfo}
4915 @cindex Automatic pointer creation with @code{makeinfo} 4839 @cindex Automatic pointer creation with @code{makeinfo}
4916 4840
4917 The @code{makeinfo} program has a feature for automatically defining 4841 The @code{makeinfo} program has a feature for automatically creating
4918 node pointers for a hierarchically organized file. 4842 node pointers for a hierarchically organized file that lacks
4843 them.@refill
4919 4844
4920 When you take advantage of this feature, you do not need to write the 4845 When you take advantage of this feature, you do not need to write the
4921 `Next', `Previous', and `Up' pointers after the name of a node. 4846 `Next', `Previous', and `Up' pointers after the name of a node.
4922 However, you must write a sectioning command, such as @code{@@chapter} 4847 However, you must write a sectioning command, such as @code{@@chapter}
4923 or @code{@@section}, on the line immediately following each truncated 4848 or @code{@@section}, on the line immediately following each truncated
4924 @code{@@node} line (except that comment lines may intervene). 4849 @code{@@node} line. You cannot write a comment line after a node
4925 4850 line; the section line must follow it immediately.@refill
4926 In addition, you must follow the `Top' @code{@@node} line with a line 4851
4927 beginning with @code{@@top} to mark the `Top' node in the 4852 In addition, you must follow the `Top' @code{@@node} line with a line beginning
4928 file. @xref{makeinfo top, , @code{@@top}}. 4853 with @code{@@top} to mark the `Top' node in the file. @xref{makeinfo
4854 top, , @code{@@top}}.
4929 4855
4930 Finally, you must write the name of each node (except for the `Top' 4856 Finally, you must write the name of each node (except for the `Top'
4931 node) in a menu that is one or more hierarchical levels above the 4857 node) in a menu that is one or more hierarchical levels above the
4932 node's hierarchical level. 4858 node's hierarchical level.@refill
4933 4859
4934 This node pointer insertion feature in @code{makeinfo} relieves you from 4860 This node pointer insertion feature in @code{makeinfo} is an
4935 the need to update menus and pointers manually or with Texinfo mode 4861 alternative to the menu and pointer creation and update commands in
4936 commands. (@xref{Updating Nodes and Menus}.) 4862 Texinfo mode. (@xref{Updating Nodes and Menus}.) It is especially
4937 4863 helpful to people who do not use GNU Emacs for writing Texinfo
4938 4864 documents.@refill
4939 @node anchor 4865
4940 @section @code{@@anchor}: Defining Arbitrary Cross-reference Targets 4866 @node Menus, Cross References, Nodes, Top
4941 4867 @comment node-name, next, previous, up
4942 @findex anchor
4943 @cindex Anchors
4944 @cindex Cross-reference targets, arbitrary
4945 @cindex Targets for cross-references, arbitrary
4946
4947 An @dfn{anchor} is a position in your document, labeled so that
4948 cross-references can refer to it, just as they can to nodes. You create
4949 an anchor with the @code{@@anchor} command, and give the label as a
4950 normal brace-delimited argument. For example:
4951
4952 @example
4953 This marks the @@anchor@{x-spot@}spot.
4954 @dots{}
4955 @@xref@{x-spot,,the spot@}.
4956 @end example
4957
4958 @noindent produces:
4959
4960 @example
4961 This marks the spot.
4962 @dots{}
4963 See [the spot], page 1.
4964 @end example
4965
4966 As you can see, the @code{@@anchor} command itself produces no output.
4967 This example defines an anchor `x-spot' just before the word `spot'.
4968 You can refer to it later with an @code{@@xref} or other cross-reference
4969 command, as shown. @xref{Cross References}, for details on the
4970 cross-reference commands.
4971
4972 It is best to put @code{@@anchor} commands just before the position you
4973 wish to refer to; that way, the reader's eye is led on to the correct
4974 text when they jump to the anchor. You can put the @code{@@anchor}
4975 command on a line by itself if that helps readability of the source.
4976 Spaces are always ignored after @code{@@anchor}.
4977
4978 Anchor names and node names may not conflict. Anchors and nodes are
4979 given similar treatment in some ways; for example, the @code{goto-node}
4980 command in standalone Info takes either an anchor name or a node name as
4981 an argument. (@xref{goto-node,,,info-stnd,GNU Info}.)
4982
4983
4984 @node Menus
4985 @chapter Menus 4868 @chapter Menus
4986 @cindex Menus 4869 @cindex Menus
4987 @findex menu 4870 @findex menu
4988 4871
4989 @dfn{Menus} contain pointers to subordinate nodes.@footnote{Menus can 4872 @dfn{Menus} contain pointers to subordinate
4990 carry you to any node, regardless of the hierarchical structure; even to 4873 nodes.@footnote{Menus can carry you to any node, regardless
4991 nodes in a different Info file. However, the GNU Emacs Texinfo mode 4874 of the hierarchical structure; even to nodes in a different
4992 updating commands work only to create menus of subordinate nodes. 4875 Info file. However, the GNU Emacs Texinfo mode updating
4993 Conventionally, cross references are used to refer to other nodes.} In 4876 commands work only to create menus of subordinate nodes.
4994 Info, you use menus to go to such nodes. Menus have no effect in 4877 Conventionally, cross references are used to refer to other
4995 printed manuals and do not appear in them. 4878 nodes.} In Info, you use menus to go to such nodes. Menus
4879 have no effect in printed manuals and do not appear in
4880 them.@refill
4996 4881
4997 By convention, a menu is put at the end of a node since a reader who 4882 By convention, a menu is put at the end of a node since a reader who
4998 uses the menu may not see text that follows it. Furthermore, a node 4883 uses the menu may not see text that follows it.@refill
4999 that has a menu should not contain much text. If you have a lot of text 4884
5000 and a menu, move most of the text into a new subnode---all but a few 4885 @ifinfo
5001 lines. Otherwise, a reader with a terminal that displays only a few 4886 A node that has a menu should @emph{not} contain much text. If you
5002 lines may miss the menu and its associated text. As a practical matter, 4887 have a lot of text and a menu, move most of the text into a new
5003 you should locate a menu within 20 lines of the beginning of the 4888 subnode---all but a few lines.@refill
5004 node. 4889 @end ifinfo
4890 @iftex
4891 @emph{A node that has a menu should not contain much text.} If you
4892 have a lot of text and a menu, move most of the text into a new
4893 subnode---all but a few lines. Otherwise, a reader with a terminal
4894 that displays only a few lines may miss the menu and its associated
4895 text. As a practical matter, you should locate a menu within 20 lines
4896 of the beginning of the node.@refill
4897 @end iftex
5005 4898
5006 @menu 4899 @menu
5007 * Menu Location:: Put a menu in a short node. 4900 * Menu Location:: Put a menu in a short node.
5008 * Writing a Menu:: What is a menu? 4901 * Writing a Menu:: What is a menu?
5009 * Menu Parts:: A menu entry has three parts. 4902 * Menu Parts:: A menu entry has three parts.
5010 * Less Cluttered Menu Entry:: Two part menu entry. 4903 * Less Cluttered Menu Entry:: Two part menu entry.
5011 * Menu Example:: Two and three part menu entries. 4904 * Menu Example:: Two and three part menu entries.
5012 * Other Info Files:: How to refer to a different Info file. 4905 * Other Info Files:: How to refer to a different Info file.
5013 @end menu 4906 @end menu
5014 4907
5015
5016 @node Menu Location, Writing a Menu, Menus, Menus 4908 @node Menu Location, Writing a Menu, Menus, Menus
5017 @ifinfo 4909 @ifinfo
5018 @heading Menus Need Short Nodes 4910 @heading Menus Need Short Nodes
5019 @end ifinfo 4911 @end ifinfo
5020 @cindex Menu location 4912 @cindex Menu location
5021 @cindex Location of menus 4913 @cindex Location of menus
5022 @cindex Nodes for menus are short 4914 @cindex Nodes for menus are short
5023 @cindex Short nodes for menus 4915 @cindex Short nodes for menus
4916
4917 @ifinfo
4918 A reader can easily see a menu that is close to the beginning of the
4919 node. The node should be short. As a practical matter, you should
4920 locate a menu within 20 lines of the beginning of the node.
4921 Otherwise, a reader with a terminal that displays only a few lines may
4922 miss the menu and its associated text.@refill
4923 @end ifinfo
5024 4924
5025 The short text before a menu may look awkward in a printed manual. To 4925 The short text before a menu may look awkward in a printed manual. To
5026 avoid this, you can write a menu near the beginning of its node and 4926 avoid this, you can write a menu near the beginning of its node and
5027 follow the menu by an @code{@@node} line, and then an @code{@@heading} 4927 follow the menu by an @code{@@node} line, and then an @code{@@heading}
5028 line located within @code{@@ifinfo} and @code{@@end ifinfo}. This way, 4928 line located within @code{@@ifinfo} and @code{@@end ifinfo}. This way,
5051 @end group 4951 @end group
5052 @end example 4952 @end example
5053 4953
5054 The Texinfo file for this document contains more than a dozen 4954 The Texinfo file for this document contains more than a dozen
5055 examples of this procedure. One is at the beginning of this chapter; 4955 examples of this procedure. One is at the beginning of this chapter;
5056 another is at the beginning of @ref{Cross References}. @refill 4956 another is at the beginning of the ``Cross References'' chapter.@refill
5057
5058 4957
5059 @node Writing a Menu, Menu Parts, Menu Location, Menus 4958 @node Writing a Menu, Menu Parts, Menu Location, Menus
5060 @section Writing a Menu 4959 @section Writing a Menu
5061 @cindex Writing a menu 4960 @cindex Writing a menu
5062 @cindex Menu writing 4961 @cindex Menu writing
5078 several files at once. 4977 several files at once.
5079 @@end menu 4978 @@end menu
5080 @end group 4979 @end group
5081 @end example 4980 @end example
5082 4981
5083 In a menu, every line that begins with an @w{@samp{* }} is a @dfn{menu 4982 In a menu, every line that begins with an @w{@samp{* }} is a
5084 entry}. (Note the space after the asterisk.) A line that does not 4983 @dfn{menu entry}. (Note the space after the asterisk.) A
5085 start with an @w{@samp{* }} may also appear in a menu. Such a line is 4984 line that does not start with an @w{@samp{* }} may also
5086 not a menu entry but is a menu comment line that appears in the Info 4985 appear in a menu. Such a line is not a menu entry but is a
5087 file. In the example above, the line @samp{Larger Units of Text} is a 4986 menu comment line that appears in the Info file. In
5088 menu comment line; the two lines starting with @w{@samp{* }} are menu 4987 the example above, the line @samp{Larger Units of Text} is a
5089 @cindex Spaces, in menus 4988 menu comment line; the two lines starting with @w{@samp{* }}
5090 entries. Space characters in a menu are preserved as-is; this allows 4989 are menu entries.
5091 you to format the menu as you wish.
5092
5093 4990
5094 @node Menu Parts, Less Cluttered Menu Entry, Writing a Menu, Menus 4991 @node Menu Parts, Less Cluttered Menu Entry, Writing a Menu, Menus
5095 @section The Parts of a Menu 4992 @section The Parts of a Menu
5096 @cindex Parts of a menu 4993 @cindex Parts of a menu
5097 @cindex Menu parts 4994 @cindex Menu parts
5296 @noindent 5193 @noindent
5297 (The @file{dir} top level directory for the Info system is an Info file, 5194 (The @file{dir} top level directory for the Info system is an Info file,
5298 not a Texinfo file, but a menu entry looks the same in both types of 5195 not a Texinfo file, but a menu entry looks the same in both types of
5299 file.)@refill 5196 file.)@refill
5300 5197
5301 The GNU Emacs Texinfo mode menu updating commands only work with nodes 5198 Note that the GNU Emacs Texinfo mode menu updating commands only work
5302 within the current buffer, so you cannot use them to create menus that 5199 with nodes within the current buffer, so you cannot use them to create
5303 refer to other files. You must write such menus by hand. 5200 menus that refer to other files. You must write such menus by hand.@refill
5304 5201
5305 5202 @node Cross References, Marking Text, Menus, Top
5306 @node Cross References 5203 @comment node-name, next, previous, up
5307 @chapter Cross References 5204 @chapter Cross References
5308 @cindex Making cross references 5205 @cindex Making cross references
5309 @cindex Cross references 5206 @cindex Cross references
5310 @cindex References 5207 @cindex References
5311 5208
5312 @dfn{Cross references} are used to refer the reader to other parts of the 5209 @dfn{Cross references} are used to refer the reader to other parts of the
5313 same or different Texinfo files. In Texinfo, nodes and anchors are the 5210 same or different Texinfo files. In Texinfo, nodes are the
5314 places to which cross references can refer. 5211 places to which cross references can refer.@refill
5315 5212
5316 @menu 5213 @menu
5317 * References:: What cross references are for. 5214 * References:: What cross references are for.
5318 * Cross Reference Commands:: A summary of the different commands. 5215 * Cross Reference Commands:: A summary of the different commands.
5319 * Cross Reference Parts:: A cross reference has several parts. 5216 * Cross Reference Parts:: A cross reference has several parts.
5335 to find information that should be presented to them as they need 5232 to find information that should be presented to them as they need
5336 it.@refill 5233 it.@refill
5337 5234
5338 However, in any document, some information will be too detailed for 5235 However, in any document, some information will be too detailed for
5339 the current context, or incidental to it; use cross references to 5236 the current context, or incidental to it; use cross references to
5340 provide access to such information. Also, an online help system or a 5237 provide access to such information. Also, an on-line help system or a
5341 reference manual is not like a novel; few read such documents in 5238 reference manual is not like a novel; few read such documents in
5342 sequence from beginning to end. Instead, people look up what they 5239 sequence from beginning to end. Instead, people look up what they
5343 need. For this reason, such creations should contain many cross 5240 need. For this reason, such creations should contain many cross
5344 references to help readers find other information that they may not 5241 references to help readers find other information that they may not
5345 have read.@refill 5242 have read.@refill
5350 5247
5351 In Info, a cross reference results in an entry that you can follow using 5248 In Info, a cross reference results in an entry that you can follow using
5352 the Info @samp{f} command. (@inforef{Help-Adv, Some advanced Info 5249 the Info @samp{f} command. (@inforef{Help-Adv, Some advanced Info
5353 commands, info}.)@refill 5250 commands, info}.)@refill
5354 5251
5355 The various cross reference commands use nodes (or anchors, 5252 The various cross reference commands use nodes to define cross
5356 @pxref{anchor,,@code{@@anchor}}) to define cross reference locations. 5253 reference locations. This is evident in Info, in which a cross
5357 This is evident in Info, in which a cross reference takes you to the 5254 reference takes you to the specified node. @TeX{} also uses nodes to
5358 specified location. @TeX{} also uses nodes to define cross reference 5255 define cross reference locations, but the action is less obvious. When
5359 locations, but the action is less obvious. When @TeX{} generates a DVI 5256 @TeX{} generates a DVI file, it records nodes' page numbers and
5360 file, it records each node's page number and uses the page numbers in making 5257 uses the page numbers in making references. Thus, if you are writing
5361 references. Thus, if you are writing a manual that will only be 5258 a manual that will only be printed, and will not be used on-line, you
5362 printed, and will not be used online, you must nonetheless write 5259 must nonetheless write @code{@@node} lines to name the places to which
5363 @code{@@node} lines to name the places to which you make cross 5260 you make cross references.@refill
5364 references.@refill
5365 5261
5366 @need 800 5262 @need 800
5367 @node Cross Reference Commands, Cross Reference Parts, References, Cross References 5263 @node Cross Reference Commands, Cross Reference Parts, References, Cross References
5368 @comment node-name, next, previous, up 5264 @comment node-name, next, previous, up
5369 @section Different Cross Reference Commands 5265 @section Different Cross Reference Commands
5460 5356
5461 The five possible arguments for a cross reference are:@refill 5357 The five possible arguments for a cross reference are:@refill
5462 5358
5463 @enumerate 5359 @enumerate
5464 @item 5360 @item
5465 The node or anchor name (required). This is the location to which the 5361 The node name (required). This is the node to which the
5466 cross reference takes you. In a printed document, the location of the 5362 cross reference takes you. In a printed document, the location of the
5467 node provides the page reference only for references within the same 5363 node provides the page reference only for references within the same
5468 document.@refill 5364 document.@refill
5469 5365
5470 @item 5366 @item
5550 @end example 5446 @end example
5551 5447
5552 @noindent 5448 @noindent
5553 In @TeX{}, a cross reference looks like this: 5449 In @TeX{}, a cross reference looks like this:
5554 5450
5555 @quotation 5451 @example
5556 See Section @var{section-number} [@var{node-name}], page @var{page}. 5452 See Section @var{section-number} [@var{node-name}], page @var{page}.
5557 @end quotation 5453 @end example
5558 5454
5559 @noindent 5455 @noindent
5560 or like this 5456 or like this
5561 5457
5562 @quotation 5458 @example
5563 See Section @var{section-number} [@var{title-or-topic}], page @var{page}. 5459 See Section @var{section-number} [@var{title-or-topic}], page @var{page}.
5564 @end quotation 5460 @end example
5565 5461
5566 The @code{@@xref} command does not generate a period or comma to end 5462 The @code{@@xref} command does not generate a period or comma to end
5567 the cross reference in either the Info file or the printed output. 5463 the cross reference in either the Info file or the printed output.
5568 You must write that period or comma yourself; otherwise, Info will not 5464 You must write that period or comma yourself; otherwise, Info will not
5569 recognize the end of the reference. (The @code{@@pxref} command works 5465 recognize the end of the reference. (The @code{@@pxref} command works
5637 5533
5638 @example 5534 @example
5639 *Note Tropical Storms::, for more info. 5535 *Note Tropical Storms::, for more info.
5640 @end example 5536 @end example
5641 5537
5642 @noindent
5643 and
5644
5645 @quotation 5538 @quotation
5646 See Section 3.1 [Tropical Storms], page 24, for more info. 5539 See Section 3.1 [Tropical Storms], page 24, for more info.
5647 @end quotation 5540 @end quotation
5648 5541
5649 @noindent 5542 @noindent
5687 See Section 5.2 [Electrical Effects], page 57. 5580 See Section 5.2 [Electrical Effects], page 57.
5688 @end quotation 5581 @end quotation
5689 5582
5690 @noindent 5583 @noindent
5691 (Note that in the preceding example the closing brace is followed by a 5584 (Note that in the preceding example the closing brace is followed by a
5692 period; and that the node name is printed, not the cross reference name.) 5585 period; and that the node name is printed, not the cross reference name.)@refill
5693 5586
5694 You can write a clause after the cross reference, like this:@refill 5587 You can write a clause after the cross reference, like this:@refill
5695 5588
5696 @example 5589 @example
5697 @@xref@{Electrical Effects, Lightning@}, for more info. 5590 @@xref@{Electrical Effects, Lightning@}, for more info.
5729 cross references into arguments according to the commas; a comma 5622 cross references into arguments according to the commas; a comma
5730 within a title or other section will divide it into two arguments. In 5623 within a title or other section will divide it into two arguments. In
5731 a reference, you need to write a title such as ``Clouds, Mist, and 5624 a reference, you need to write a title such as ``Clouds, Mist, and
5732 Fog'' without the commas.@refill 5625 Fog'' without the commas.@refill
5733 5626
5734 Also, remember to write a comma or period after the closing brace of an 5627 Also, remember to write a comma or period after the closing brace of a
5735 @code{@@xref} to terminate the cross reference. In the following 5628 @code{@@xref} to terminate the cross reference. In the following
5736 examples, a clause follows a terminating comma.@refill 5629 examples, a clause follows a terminating comma.@refill
5737 5630
5738 5631
5739 @need 750 5632 @need 750
5979 5872
5980 @need 700 5873 @need 700
5981 @noindent 5874 @noindent
5982 For example, 5875 For example,
5983 5876
5984 @cindex Hurricanes
5985 @example 5877 @example
5986 For more information, see @@ref@{Hurricanes@}. 5878 For more information, see @@ref@{Hurricanes@}.
5987 @end example 5879 @end example
5988 5880
5989 @noindent 5881 @noindent
5990 produces 5882 produces
5991 5883
5992 @example 5884 @example
5993 For more information, see *Note Hurricanes::. 5885 For more information, see *Note Hurricanes.
5994 @end example 5886 @end example
5995 5887
5996 @noindent 5888 @noindent
5997 and 5889 and
5998 5890
6007 5899
6008 @need 800 5900 @need 800
6009 @noindent 5901 @noindent
6010 For example, 5902 For example,
6011 5903
6012 @cindex Sea surges
6013 @example 5904 @example
6014 @group 5905 @group
6015 Sea surges are described in @@ref@{Hurricanes@}. 5906 Sea surges are described in @@ref@{Hurricanes@}.
6016 @end group 5907 @end group
6017 @end example 5908 @end example
6031 @example 5922 @example
6032 Sea surges are described in *Note Hurricanes::. 5923 Sea surges are described in *Note Hurricanes::.
6033 @end example 5924 @end example
6034 5925
6035 @quotation 5926 @quotation
6036 @strong{Caution:} You @emph{must} write a period, comma, or right 5927 @strong{Caution:} You @emph{must} write a period or comma immediately
6037 parenthesis immediately after an @code{@@ref} command with two or more 5928 after an @code{@@ref} command with two or more arguments. Otherwise,
6038 arguments. Otherwise, Info will not find the end of the cross reference 5929 Info will not find the end of the cross reference entry and its
6039 entry and its attempt to follow the cross reference will fail. As a 5930 attempt to follow the cross reference will fail. As a general rule,
6040 general rule, you should write a period or comma after every 5931 you should write a period or comma after every @code{@@ref} command.
6041 @code{@@ref} command. This looks best in both the printed and the Info 5932 This looks best in both the printed and the Info output.@refill
6042 output.@refill
6043 @end quotation 5933 @end quotation
6044 5934
6045 @node pxref, inforef, ref, Cross References 5935 @node pxref, inforef, ref, Cross References
6046 @comment node-name, next, previous, up 5936 @comment node-name, next, previous, up
6047 @section @code{@@pxref} 5937 @section @code{@@pxref}
6082 5972
6083 @noindent 5973 @noindent
6084 With one argument, a parenthetical cross reference looks like 5974 With one argument, a parenthetical cross reference looks like
6085 this:@refill 5975 this:@refill
6086 5976
6087 @cindex Flooding
6088 @example 5977 @example
6089 @dots{} storms cause flooding (@@pxref@{Hurricanes@}) @dots{} 5978 @dots{} storms cause flooding (@@pxref@{Hurricanes@}) @dots{}
6090 @end example 5979 @end example
6091 5980
6092 @need 800 5981 @need 800
6238 The converse of @code{@@inforef} is @code{@@cite}, which is used to 6127 The converse of @code{@@inforef} is @code{@@cite}, which is used to
6239 refer to printed works for which no Info form exists. @xref{cite, , 6128 refer to printed works for which no Info form exists. @xref{cite, ,
6240 @code{@@cite}}.@refill 6129 @code{@@cite}}.@refill
6241 6130
6242 6131
6243 @node uref 6132 @node uref, , inforef, Cross References
6244 @section @code{@@uref@{@var{url}[, @var{text}][, @var{replacement}]@}} 6133 @section @code{@@uref@{@var{url}[, @var{displayed-text}]@}}
6245 @findex uref 6134 @findex uref
6246 @cindex Uniform resource locator, referring to 6135 @cindex Uniform resource locator, referring to
6247 @cindex URL, referring to 6136 @cindex URL, referring to
6248 6137
6249 @cindex @code{href}, producing HTML 6138 @code{@@uref} produces a reference to a uniform resource locator (URL).
6250 @code{@@uref} produces a reference to a uniform resource locator (url). 6139 It takes one mandatory argument, the URL, and one optional argument, the
6251 It takes one mandatory argument, the url, and two optional arguments 6140 text to display (the default is the URL itself). In HTML output,
6252 which control the text that is displayed. In HTML output, @code{@@uref} 6141 @code{@@uref} produces a link you can follow. For example:
6253 produces a link you can follow. 6142
6254 6143 @example
6255 The second argument, if specified, is the text to display (the default 6144 The official GNU ftp site is
6256 is the url itself); in Info and DVI output, but not in HTML output, the 6145 @@uref@{ftp://ftp.gnu.ai.mit.edu/pub/gnu@}
6257 url is also output. 6146 @end example
6258 6147
6259 @cindex Man page, reference to 6148 @noindent
6260 The third argument, on the other hand, if specified is also the text to 6149 produces (in text):
6261 display, but the url is @emph{not} output in any format. This is useful
6262 when the text is already sufficiently referential, as in a man page. If
6263 the third argument is given, the second argument is ignored.
6264
6265 The simple one argument form, where the url is both the target and the
6266 text of the link:
6267
6268 @example
6269 The official GNU ftp site is @@uref@{ftp://ftp.gnu.org/gnu@}.
6270 @end example
6271
6272 @noindent produces:
6273 @display 6150 @display
6274 The official GNU ftp site is @uref{ftp://ftp.gnu.org/gnu}. 6151 The official GNU ftp site is
6152 @uref{ftp://ftp.gnu.ai.mit.edu/pub/gnu}
6275 @end display 6153 @end display
6276 6154
6277 6155 @noindent
6278 An example of the two-argument form: 6156 whereas
6279 @example 6157 @example
6280 The official @@uref@{ftp://ftp.gnu.org/gnu, GNU ftp site@} holds 6158 The official
6281 programs and texts. 6159 @@uref@{ftp://ftp.gnu.ai.mit.edu/pub/gnu,
6282 @end example 6160 GNU ftp site@} holds programs and texts.
6283 6161 @end example
6284 @noindent produces: 6162
6163 @noindent
6164 produces (in text):
6285 @display 6165 @display
6286 The official @uref{ftp://ftp.gnu.org/gnu, GNU ftp site} holds 6166 The official @uref{ftp://ftp.gnu.ai.mit.edu/pub/gnu, GNU ftp site} holds
6287 programs and texts. 6167 programs and texts.
6288 @end display 6168 @end display
6289 6169
6290 @noindent that is, the Info output is this: 6170 @noindent
6291 @example 6171 and (in HTML):
6292 The official GNU ftp site (ftp://ftp.gnu.org/gnu) holds 6172 @example
6293 programs and texts. 6173 The official <A HREF="ftp://ftp.gnu.ai.mit.edu/pub/gnu">GNU ftp
6294 @end example 6174 site</A> holds programs and texts.
6295 6175 @end example
6296 @noindent and the HTML output is this: 6176
6297 @example 6177 To merely indicate a URL, use @code{@@url} (@pxref{url, @code{@@url}}).
6298 The official <a href="ftp://ftp.gnu.org/gnu">GNU ftp site</a> holds 6178
6299 programs and texts. 6179
6300 @end example 6180 @node Marking Text, Quotations and Examples, Cross References, Top
6301 6181 @comment node-name, next, previous, up
6302
6303 An example of the three-argument form:
6304 @example
6305 The @@uref@{http://example.org/man.cgi/1/ls,,ls(1)@} program @dots{}
6306 @end example
6307
6308 @noindent produces:
6309 @display
6310 The @uref{http://example.org/man.cgi/1/ls,,ls(1)} program @dots{}
6311 @end display
6312
6313 @noindent but with HTML:
6314 @example
6315 The <a href="http://example.org/man.cgi/1/ls">ls(1)</a> program @dots{}
6316 @end example
6317
6318 To merely indicate a url without creating a link people can follow, use
6319 @code{@@url} (@pxref{url, @code{@@url}}).
6320
6321
6322 Some people prefer to display url's in the unambiguous format:
6323
6324 @display
6325 <URL:http://@var{host}/@var{path}>
6326 @end display
6327
6328 @noindent
6329 @cindex <URL: convention, not used
6330 You can use this form in the input file if you wish. We feel it's not
6331 necessary to clutter up the output with the extra @samp{<URL:} and
6332 @samp{>}, since any software that tries to detect url's in text already
6333 has to detect them without the @samp{<URL:} to be useful.
6334
6335
6336 @node Marking Text
6337 @chapter Marking Words and Phrases 6182 @chapter Marking Words and Phrases
6338 @cindex Paragraph, marking text within 6183 @cindex Paragraph, marking text within
6339 @cindex Marking words and phrases 6184 @cindex Marking words and phrases
6340 @cindex Words and phrases, marking them 6185 @cindex Words and phrases, marking them
6341 @cindex Marking text within a paragraph 6186 @cindex Marking text within a paragraph
6342 @cindex Text, marking up
6343 6187
6344 In Texinfo, you can mark words and phrases in a variety of ways. 6188 In Texinfo, you can mark words and phrases in a variety of ways.
6345 The Texinfo formatters use this information to determine how to 6189 The Texinfo formatters use this information to determine how to
6346 highlight the text. 6190 highlight the text.
6347 You can specify, for example, whether a word or phrase is a 6191 You can specify, for example, whether a word or phrase is a
6348 defining occurrence, a metasyntactic variable, or a symbol used in a 6192 defining occurrence, a metasyntactic variable, or a symbol used in a
6349 program. Also, you can emphasize text, in several different ways. 6193 program. Also, you can emphasize text.@refill
6350 6194
6351 @menu 6195 @menu
6352 * Indicating:: How to indicate definitions, files, etc. 6196 * Indicating:: How to indicate definitions, files, etc.
6353 * Emphasis:: How to emphasize text. 6197 * Emphasis:: How to emphasize text.
6354 @end menu 6198 @end menu
6369 6213
6370 For example, in a printed manual, 6214 For example, in a printed manual,
6371 code is usually illustrated in a typewriter font; 6215 code is usually illustrated in a typewriter font;
6372 @code{@@code} tells @TeX{} to typeset this text in this font. But it 6216 @code{@@code} tells @TeX{} to typeset this text in this font. But it
6373 would be easy to change the way @TeX{} highlights code to use another 6217 would be easy to change the way @TeX{} highlights code to use another
6374 font, and this change would not affect how keystroke examples are 6218 font, and this change would not effect how keystroke examples are
6375 highlighted. If straight typesetting commands were used in the body 6219 highlighted. If straight typesetting commands were used in the body
6376 of the file and you wanted to make a change, you would need to check 6220 of the file and you wanted to make a change, you would need to check
6377 every single occurrence to make sure that you were changing code and 6221 every single occurrence to make sure that you were changing code and
6378 not something else that should not be changed.@refill 6222 not something else that should not be changed.@refill
6379 6223
6380 @menu 6224 @menu
6381 * Useful Highlighting:: Highlighting provides useful information. 6225 * Useful Highlighting:: Highlighting provides useful information.
6382 * code:: Indicating program code. 6226 * code:: How to indicate code.
6383 * kbd:: Showing keyboard input. 6227 * kbd:: How to show keyboard input.
6384 * key:: Specifying keys. 6228 * key:: How to specify keys.
6385 * samp:: Showing a literal sequence of characters. 6229 * samp:: How to show a literal sequence of characters.
6386 * var:: Indicating metasyntactic variables. 6230 * var:: How to indicate a metasyntactic variable.
6387 * env:: Indicating environment variables. 6231 * file:: How to indicate the name of a file.
6388 * file:: Indicating file names. 6232 * dfn:: How to specify a definition.
6389 * command:: Indicating command names. 6233 * cite:: How to refer to a book that is not in Info.
6390 * option:: Indicating option names. 6234 * url:: How to indicate a world wide web reference.
6391 * dfn:: Specifying definitions. 6235 * email:: How to indicate an electronic mail address.
6392 * cite:: Referring to books not in the Info system.
6393 * acronym:: Indicating acronyms.
6394 * url:: Indicating a World Wide Web reference.
6395 * email:: Indicating an electronic mail address.
6396 @end menu 6236 @end menu
6397
6398 6237
6399 @node Useful Highlighting, code, Indicating, Indicating 6238 @node Useful Highlighting, code, Indicating, Indicating
6400 @ifinfo 6239 @ifinfo
6401 @subheading Highlighting Commands are Useful 6240 @subheading Highlighting Commands are Useful
6402 @end ifinfo 6241 @end ifinfo
6403 6242
6404 The highlighting commands can be used to extract useful information 6243 The highlighting commands can be used to generate useful information
6405 from the file, such as lists of functions or file names. It is 6244 from the file, such as lists of functions or file names. It is
6406 possible, for example, to write a program in Emacs Lisp (or a keyboard 6245 possible, for example, to write a program in Emacs Lisp (or a keyboard
6407 macro) to insert an index entry after every paragraph that contains 6246 macro) to insert an index entry after every paragraph that contains
6408 words or phrases marked by a specified command. You could do this to 6247 words or phrases marked by a specified command. You could do this to
6409 construct an index of functions if you had not already made the 6248 construct an index of functions if you had not already made the
6425 Indicate text that is a literal example of a sequence of characters.@refill 6264 Indicate text that is a literal example of a sequence of characters.@refill
6426 6265
6427 @item @@var@{@var{metasyntactic-variable}@} 6266 @item @@var@{@var{metasyntactic-variable}@}
6428 Indicate a metasyntactic variable.@refill 6267 Indicate a metasyntactic variable.@refill
6429 6268
6430 @item @@env@{@var{environment-variable}@} 6269 @item @@url@{@var{uniform-resource-locator}@}
6431 Indicate an environment variable.@refill 6270 Indicate a uniform resource locator for the World Wide Web.
6432 6271
6433 @item @@file@{@var{file-name}@} 6272 @item @@file@{@var{file-name}@}
6434 Indicate the name of a file.@refill 6273 Indicate the name of a file.@refill
6435 6274
6436 @item @@command@{@var{command-name}@} 6275 @item @@email@{@var{email-address}[, @var{displayed-text}]@}
6437 Indicate the name of a command.@refill 6276 Indicate an electronic mail address.
6438
6439 @item @@option@{@var{option}@}
6440 Indicate a command-line option.@refill
6441 6277
6442 @item @@dfn@{@var{term}@} 6278 @item @@dfn@{@var{term}@}
6443 Indicate the introductory or defining use of a term.@refill 6279 Indicate the introductory or defining use of a term.@refill
6444 6280
6445 @item @@cite@{@var{reference}@} 6281 @item @@cite@{@var{reference}@}
6446 Indicate the name of a book.@refill 6282 Indicate the name of a book.@refill
6447
6448 @item @@acronym@{@var{acronym}@}
6449 Indicate an acronym.@refill
6450
6451 @item @@url@{@var{uniform-resource-locator}@}
6452 Indicate a uniform resource locator for the World Wide Web.
6453
6454 @item @@email@{@var{email-address}[, @var{displayed-text}]@}
6455 Indicate an electronic mail address.
6456 6283
6457 @ignore 6284 @ignore
6458 @item @@ctrl@{@var{ctrl-char}@} 6285 @item @@ctrl@{@var{ctrl-char}@}
6459 Use for an @sc{ascii} control character.@refill 6286 Use for an @sc{ascii} control character.@refill
6460 @end ignore 6287 @end ignore
6461 @end table 6288 @end table
6462 6289
6463 6290 @node code, kbd, Useful Highlighting, Indicating
6464 @node code 6291 @comment node-name, next, previous, up
6465 @subsection @code{@@code}@{@var{sample-code}@} 6292 @subsection @code{@@code}@{@var{sample-code}@}
6466 @findex code 6293 @findex code
6467 6294
6468 @cindex Syntactic tokens, indicating
6469 Use the @code{@@code} command to indicate text that is a piece of a 6295 Use the @code{@@code} command to indicate text that is a piece of a
6470 program and which consists of entire syntactic tokens. Enclose the 6296 program and which consists of entire syntactic tokens. Enclose the
6471 text in braces. 6297 text in braces.@refill
6472 6298
6473 @cindex Expressions in a program, indicating
6474 @cindex Keywords, indicating
6475 @cindex Reserved words, indicating
6476 Thus, you should use @code{@@code} for an expression in a program, for 6299 Thus, you should use @code{@@code} for an expression in a program, for
6477 the name of a variable or function used in a program, or for a 6300 the name of a variable or function used in a program, or for a
6478 keyword in a programming language. 6301 keyword. Also, you should use @code{@@code} for the name of a
6479 6302 program, such as @code{diff}, that is a name used in the machine. (You
6480 Use @code{@@code} for command names in languages that resemble 6303 should write the name of a program in the ordinary text font if you
6481 programming languages, such as Texinfo. For example, @code{@@code} and 6304 regard it as a new English word, such as `Emacs' or `Bison'.)@refill
6482 @code{@@samp} are produced by writing @samp{@@code@{@@@@code@}} and 6305
6483 @samp{@@code@{@@@@samp@}} in the Texinfo source, respectively. 6306 Use @code{@@code} for environment variables such as @code{TEXINPUTS},
6484 6307 and other variables.@refill
6485 @cindex Case, not altering in @code{@@code} 6308
6309 Use @code{@@code} for command names in command languages that
6310 resemble programming languages, such as Texinfo or the shell.
6311 For example, @code{@@code} and @code{@@samp} are produced by writing
6312 @samp{@@code@{@@@@code@}} and @samp{@@code@{@@@@samp@}} in the Texinfo
6313 source, respectively.@refill
6314
6315 Note, however, that you should not use @code{@@code} for shell options
6316 such as @samp{-c} when such options stand alone. (Use @code{@@samp}.)
6317 Also, an entire shell command often looks better if written using
6318 @code{@@samp} rather than @code{@@code}. In this case, the rule is to
6319 choose the more pleasing format.@refill
6320
6486 It is incorrect to alter the case of a word inside an @code{@@code} 6321 It is incorrect to alter the case of a word inside an @code{@@code}
6487 command when it appears at the beginning of a sentence. Most computer 6322 command when it appears at the beginning of a sentence. Most computer
6488 languages are case sensitive. In C, for example, @code{Printf} is 6323 languages are case sensitive. In C, for example, @code{Printf} is
6489 different from the identifier @code{printf}, and most likely is a 6324 different from the identifier @code{printf}, and most likely is a
6490 misspelling of it. Even in languages which are not case sensitive, it 6325 misspelling of it. Even in languages which are not case sensitive, it
6491 is confusing to a human reader to see identifiers spelled in different 6326 is confusing to a human reader to see identifiers spelled in different
6492 ways. Pick one spelling and always use that. If you do not want to 6327 ways. Pick one spelling and always use that. If you do not want to
6493 start a sentence with a command name written all in lower case, you 6328 start a sentence with a command written all in lower case, you should
6494 should rearrange the sentence. 6329 rearrange the sentence.@refill
6330
6331 Do not use the @code{@@code} command for a string of characters shorter
6332 than a syntactic token. If you are writing about @samp{TEXINPU}, which
6333 is just a part of the name for the @code{TEXINPUTS} environment
6334 variable, you should use @code{@@samp}.@refill
6335
6336 In particular, you should not use the @code{@@code} command when writing
6337 about the characters used in a token; do not, for example, use
6338 @code{@@code} when you are explaining what letters or printable symbols
6339 can be used in the names of functions. (Use @code{@@samp}.) Also, you
6340 should not use @code{@@code} to mark text that is considered input to
6341 programs unless the input is written in a language that is like a
6342 programming language. For example, you should not use @code{@@code} for
6343 the keystroke commands of GNU Emacs (use @code{@@kbd} instead) although
6344 you may use @code{@@code} for the names of the Emacs Lisp functions that
6345 the keystroke commands invoke.@refill
6495 6346
6496 In the printed manual, @code{@@code} causes @TeX{} to typeset the 6347 In the printed manual, @code{@@code} causes @TeX{} to typeset the
6497 argument in a typewriter face. In the Info file, it causes the Info 6348 argument in a typewriter face. In the Info file, it causes the Info
6498 formatting commands to use single quotation marks around the text. 6349 formatting commands to use single quotation marks around the text.
6499 6350
6500 @need 700 6351 @need 700
6501 For example, 6352 For example,
6502 6353
6503 @example 6354 @example
6504 The function returns @@code@{nil@}. 6355 Use @@code@{diff@} to compare two files.
6505 @end example 6356 @end example
6506 6357
6507 @noindent 6358 @noindent
6508 produces this in the printed manual: 6359 produces this in the printed manual:@refill
6509 6360
6510 @quotation 6361 @quotation
6511 The function returns @code{nil}. 6362 Use @code{diff} to compare two files.
6512 @end quotation 6363 @end quotation
6513
6514 @iftex 6364 @iftex
6515 @noindent 6365
6516 and this in the Info file: 6366 @noindent
6517 @example 6367 and this in the Info file:@refill
6518 The function returns `nil'. 6368
6369 @example
6370 Use `diff' to compare two files.
6519 @end example 6371 @end example
6520 @end iftex 6372 @end iftex
6521 6373
6522 Here are some cases for which it is preferable not to use @code{@@code}: 6374
6523 6375 @node kbd, key, code, Indicating
6524 @itemize @bullet
6525 @item
6526 For shell command names such as @command{ls} (use @code{@@command}).
6527
6528 @item
6529 For shell options such as @samp{-c} when such options stand alone (use
6530 @code{@@option}).
6531
6532 @item
6533 Also, an entire shell command often looks better if written using
6534 @code{@@samp} rather than @code{@@code}. In this case, the rule is to
6535 choose the more pleasing format.
6536
6537 @item
6538 For environment variable such as @env{TEXINPUTS} (use @code{@@env}).
6539
6540 @item
6541 For a string of characters shorter than a syntactic token. For example,
6542 if you are writing about @samp{goto-ch}, which is just a part of the
6543 name for the @code{goto-char} Emacs Lisp function, you should use
6544 @code{@@samp}.
6545
6546 @item
6547 In general, when writing about the characters used in a token; for
6548 example, do not use @code{@@code} when you are explaining what letters
6549 or printable symbols can be used in the names of functions. (Use
6550 @code{@@samp}.) Also, you should not use @code{@@code} to mark text
6551 that is considered input to programs unless the input is written in a
6552 language that is like a programming language. For example, you should
6553 not use @code{@@code} for the keystroke commands of GNU Emacs (use
6554 @code{@@kbd} instead) although you may use @code{@@code} for the names
6555 of the Emacs Lisp functions that the keystroke commands invoke.
6556
6557 @end itemize
6558
6559 Since @code{@@command}, @code{@@option}, and @code{@@env} were
6560 introduced relatively recently, it is acceptable to use @code{@@code} or
6561 @code{@@samp} for command names, options, and environment variables.
6562 The new commands allow you to express the markup more precisely, but
6563 there is no real harm in using the older commands, and of course the
6564 long-standing manuals do so.
6565
6566
6567 @node kbd
6568 @subsection @code{@@kbd}@{@var{keyboard-characters}@} 6376 @subsection @code{@@kbd}@{@var{keyboard-characters}@}
6569 @findex kbd 6377 @findex kbd
6570 @cindex Keyboard input 6378 @cindex keyboard input
6571 6379
6572 Use the @code{@@kbd} command for characters of input to be typed by 6380 Use the @code{@@kbd} command for characters of input to be typed by
6573 users. For example, to refer to the characters @kbd{M-a}, 6381 users. For example, to refer to the characters @kbd{M-a},
6574 write@refill 6382 write@refill
6575 6383
6604 @item code 6412 @item code
6605 Always use the same font for @code{@@kbd} as @code{@@code}. 6413 Always use the same font for @code{@@kbd} as @code{@@code}.
6606 @item example 6414 @item example
6607 Use the distinguishing font for @code{@@kbd} only in @code{@@example} 6415 Use the distinguishing font for @code{@@kbd} only in @code{@@example}
6608 and similar environments. 6416 and similar environments.
6609 @item distinct 6417 @item example
6610 (the default) Always use the distinguishing font for @code{@@kbd}. 6418 (the default) Always use the distinguishing font for @code{@@kbd}.
6611 @end table 6419 @end table
6612 6420
6613 You can embed another @@-command inside the braces of an @code{@@kbd} 6421 You can embed another @@-command inside the braces of an @code{@@kbd}
6614 command. Here, for example, is the way to describe a command that 6422 command. Here, for example, is the way to describe a command that
6738 @samp{foo$}.@refill 6546 @samp{foo$}.@refill
6739 @end quotation 6547 @end quotation
6740 6548
6741 Any time you are referring to single characters, you should use 6549 Any time you are referring to single characters, you should use
6742 @code{@@samp} unless @code{@@kbd} or @code{@@key} is more appropriate. 6550 @code{@@samp} unless @code{@@kbd} or @code{@@key} is more appropriate.
6743 Also, you may use @code{@@samp} for entire statements in C and for entire 6551 Use @code{@@samp} for the names of command-line options (except in an
6552 @code{@@table}, where @code{@@code} seems to read more easily). Also,
6553 you may use @code{@@samp} for entire statements in C and for entire
6744 shell commands---in this case, @code{@@samp} often looks better than 6554 shell commands---in this case, @code{@@samp} often looks better than
6745 @code{@@code}. Basically, @code{@@samp} is a catchall for whatever is 6555 @code{@@code}. Basically, @code{@@samp} is a catchall for whatever is
6746 not covered by @code{@@code}, @code{@@kbd}, or @code{@@key}.@refill 6556 not covered by @code{@@code}, @code{@@kbd}, or @code{@@key}.@refill
6747 6557
6748 Only include punctuation marks within braces if they are part of the 6558 Only include punctuation marks within braces if they are part of the
6766 In English, the vowels are @samp{a}, @samp{e}, 6576 In English, the vowels are @samp{a}, @samp{e},
6767 @samp{i}, @samp{o}, @samp{u}, and sometimes 6577 @samp{i}, @samp{o}, @samp{u}, and sometimes
6768 @samp{y}. 6578 @samp{y}.
6769 @end quotation 6579 @end quotation
6770 6580
6771 6581 @node var, file, samp, Indicating
6772 @node var 6582 @comment node-name, next, previous, up
6773 @subsection @code{@@var}@{@var{metasyntactic-variable}@} 6583 @subsection @code{@@var}@{@var{metasyntactic-variable}@}
6774 @findex var 6584 @findex var
6775 6585
6776 Use the @code{@@var} command to indicate metasyntactic variables. A 6586 Use the @code{@@var} command to indicate metasyntactic variables. A
6777 @dfn{metasyntactic variable} is something that stands for another piece of 6587 @dfn{metasyntactic variable} is something that stands for another piece of
6779 documentation of a function to describe the arguments that are passed 6589 documentation of a function to describe the arguments that are passed
6780 to that function.@refill 6590 to that function.@refill
6781 6591
6782 Do not use @code{@@var} for the names of particular variables in 6592 Do not use @code{@@var} for the names of particular variables in
6783 programming languages. These are specific names from a program, so 6593 programming languages. These are specific names from a program, so
6784 @code{@@code} is correct for them (@pxref{code}). For example, the 6594 @code{@@code} is correct for them. For example, the Emacs Lisp variable
6785 Emacs Lisp variable @code{texinfo-tex-command} is not a metasyntactic 6595 @code{texinfo-tex-command} is not a metasyntactic variable; it is
6786 variable; it is properly formatted using @code{@@code}. 6596 properly formatted using @code{@@code}.@refill
6787 6597
6788 Do not use @code{@@var} for environment variables either; @code{@@env} 6598 The effect of @code{@@var} in the Info file is to change the case of
6789 is correct for them (see the next section). 6599 the argument to all upper case; in the printed manual, to italicize it.
6790
6791 The effect of @code{@@var} in the Info file is to change the case of the
6792 argument to all upper case. In the printed manual and HTML output, the
6793 argument is printed in slanted type.
6794 6600
6795 @need 700 6601 @need 700
6796 For example, 6602 For example,
6797 6603
6798 @example 6604 @example
6799 To delete file @@var@{filename@}, 6605 To delete file @@var@{filename@},
6800 type @@samp@{rm @@var@{filename@}@}. 6606 type @@code@{rm @@var@{filename@}@}.
6801 @end example 6607 @end example
6802 6608
6803 @noindent 6609 @noindent
6804 produces 6610 produces
6805 6611
6806 @quotation 6612 @quotation
6807 To delete file @var{filename}, type @samp{rm @var{filename}}. 6613 To delete file @var{filename}, type @code{rm @var{filename}}.
6808 @end quotation 6614 @end quotation
6809 6615
6810 @noindent 6616 @noindent
6811 (Note that @code{@@var} may appear inside @code{@@code}, 6617 (Note that @code{@@var} may appear inside @code{@@code},
6812 @code{@@samp}, @code{@@file}, etc.)@refill 6618 @code{@@samp}, @code{@@file}, etc.)@refill
6842 @dots{}, type rm <filename> 6648 @dots{}, type rm <filename>
6843 @end example 6649 @end example
6844 6650
6845 @noindent 6651 @noindent
6846 However, that is not the style that Texinfo uses. (You can, of 6652 However, that is not the style that Texinfo uses. (You can, of
6847 course, modify the sources to @file{texinfo.tex} and the Info formatting commands 6653 course, modify the sources to @TeX{} and the Info formatting commands
6848 to output the @code{<@dots{}>} format if you wish.)@refill 6654 to output the @code{<@dots{}>} format if you wish.)@refill
6849 6655
6850 6656 @node file, dfn, var, Indicating
6851 @node env 6657 @comment node-name, next, previous, up
6852 @subsection @code{@@env}@{@var{environment-variable}@}
6853 @findex env
6854
6855 Use the @code{@@env} command to indicate environment variables, as used
6856 by many operating systems, including GNU. Do not use it for
6857 metasyntactic variables; use @code{@@var} instead (see the previous
6858 section).
6859
6860 @code{@@env} is equivalent to @code{@@code} in its effects.
6861 For example:
6862
6863 @example
6864 The @@env@{PATH@} environment variable sets the search path for commands.
6865 @end example
6866 @noindent produces
6867 @quotation
6868 The @env{PATH} environment variable sets the search path for commands.
6869 @end quotation
6870
6871
6872 @node file
6873 @subsection @code{@@file}@{@var{file-name}@} 6658 @subsection @code{@@file}@{@var{file-name}@}
6874 @findex file 6659 @findex file
6875 6660
6876 Use the @code{@@file} command to indicate text that is the name of a 6661 Use the @code{@@file} command to indicate text that is the name of a
6877 file, buffer, or directory, or is the name of a node in Info. You can 6662 file, buffer, or directory, or is the name of a node in Info. You can
6892 @quotation 6677 @quotation
6893 The @file{.el} files are in 6678 The @file{.el} files are in
6894 the @file{/usr/local/emacs/lisp} directory. 6679 the @file{/usr/local/emacs/lisp} directory.
6895 @end quotation 6680 @end quotation
6896 6681
6897 6682 @node dfn, cite, file, Indicating
6898 @node command
6899 @subsection @code{@@command}@{@var{command-name}@}
6900 @findex command
6901 @cindex Command names, indicating
6902 @cindex Program names, indicating
6903
6904 Use the @code{@@command} command to indicate command names, such as
6905 @command{ls} or @command{cc}.
6906
6907 @code{@@command} is equivalent to @code{@@code} in its effects.
6908 For example:
6909
6910 @example
6911 The command @@command@{ls@} lists directory contents.
6912 @end example
6913 @noindent produces
6914 @quotation
6915 The command @command{ls} lists directory contents.
6916 @end quotation
6917
6918 You should write the name of a program in the ordinary text font, rather
6919 than using @code{@@command}, if you regard it as a new English word,
6920 such as `Emacs' or `Bison'.
6921
6922 When writing an entire shell command invocation, as in @samp{ls -l},
6923 you should use either @code{@@samp} or @code{@@code} at your discretion.
6924
6925
6926 @node option
6927 @subsection @code{@@option}@{@var{option-name}@}
6928 @findex option
6929
6930 Use the @code{@@option} command to indicate a command-line option; for
6931 example, @option{-l} or @option{--version} or
6932 @option{--output=@var{filename}}.
6933
6934 @code{@@option} is equivalent to @code{@@samp} in its effects.
6935 For example:
6936
6937 @example
6938 The option @@option@{-l@} produces a long listing.
6939 @end example
6940 @noindent produces
6941 @quotation
6942 The option @option{-l} produces a long listing.
6943 @end quotation
6944
6945 In tables, putting options inside @code{@@code} produces a
6946 more pleasing effect.
6947
6948 @node dfn
6949 @comment node-name, next, previous, up 6683 @comment node-name, next, previous, up
6950 @subsection @code{@@dfn}@{@var{term}@} 6684 @subsection @code{@@dfn}@{@var{term}@}
6951 @findex dfn 6685 @findex dfn
6952 6686
6953 Use the @code{@@dfn} command to identify the introductory or defining 6687 Use the @code{@@dfn} command to identify the introductory or defining
6972 As a general rule, a sentence containing the defining occurrence of a 6706 As a general rule, a sentence containing the defining occurrence of a
6973 term should be a definition of the term. The sentence does not need 6707 term should be a definition of the term. The sentence does not need
6974 to say explicitly that it is a definition, but it should contain the 6708 to say explicitly that it is a definition, but it should contain the
6975 information of a definition---it should make the meaning clear. 6709 information of a definition---it should make the meaning clear.
6976 6710
6977 @node cite 6711 @node cite, url, dfn, Indicating
6712 @comment node-name, next, previous, up
6978 @subsection @code{@@cite}@{@var{reference}@} 6713 @subsection @code{@@cite}@{@var{reference}@}
6979 @findex cite 6714 @findex cite
6980 6715
6981 Use the @code{@@cite} command for the name of a book that lacks a 6716 Use the @code{@@cite} command for the name of a book that lacks a
6982 companion Info file. The command produces italics in the printed 6717 companion Info file. The command produces italics in the printed
6983 manual, and quotation marks in the Info file. 6718 manual, and quotation marks in the Info file.@refill
6984 6719
6985 If a book is written in Texinfo, it is better to use a cross reference 6720 (If a book is written in Texinfo, it is better to use a cross reference
6986 command since a reader can easily follow such a reference in Info. 6721 command since a reader can easily follow such a reference in Info.
6987 @xref{xref, , @code{@@xref}}. 6722 @xref{xref, , @code{@@xref}}.)@refill
6988
6989 6723
6990 @ignore 6724 @ignore
6991 @c node ctrl, , cite, Indicating 6725 @c node ctrl, , cite, Indicating
6992 @comment node-name, next, previous, up 6726 @comment node-name, next, previous, up
6993 @c subsection @code{@@ctrl}@{@var{ctrl-char}@} 6727 @c subsection @code{@@ctrl}@{@var{ctrl-char}@}
7035 identify that control character: an uparrow followed by the character 6769 identify that control character: an uparrow followed by the character
7036 @var{ch}.@refill 6770 @var{ch}.@refill
7037 @end ignore 6771 @end ignore
7038 6772
7039 6773
7040 @node acronym 6774 @node url, email, cite, Indicating
7041 @subsection @code{@@acronym}@{@var{acronym}@}
7042 @findex acronym
7043
7044 @cindex NASA, as acronym
7045 @cindex F.B.I., as acronym
7046 @cindex Abbreviations, tagging
7047 @cindex Acronyms, tagging
7048 Use the @code{@@acronym} command for abbreviations written in all
7049 capital letters, such as `@acronym{NASA}'. The abbreviation is given as
7050 the single argument in braces, as in @samp{@@acronym@{NASA@}}. As
7051 a matter of style, or for particular abbreviations, you may prefer to
7052 use periods, as in @samp{@@acronym@{F.B.I.@}}.
7053
7054 In @TeX{} and HTML, the argument is printed in a slightly smaller font
7055 size. In Info or plain text output, this command changes nothing.
7056
7057
7058 @node url
7059 @subsection @code{@@url}@{@var{uniform-resource-locator}@} 6775 @subsection @code{@@url}@{@var{uniform-resource-locator}@}
7060 @findex url 6776 @findex url
7061 @cindex Uniform resource locator, indicating 6777 @cindex Uniform resource locator, indicating
7062 @cindex URL, indicating 6778 @cindex URL, indicating
7063 6779
7064 Use the @code{@@url} command to indicate a uniform resource locator on 6780 Use the @code{@@url} to indicate a uniform resource locator on the World
7065 the World Wide Web. This is analogous to @code{@@file}, @code{@@var}, 6781 Wide Web. This is analogous to @code{@@file}, @code{@@var}, etc., and
7066 etc., and is purely for markup purposes. It does not produce a link you 6782 is purely for markup purposes. It does not produce a link you can
7067 can follow in HTML output (use the @code{@@uref} command for that, 6783 follow in HTML output (the @code{@@uref} command does, @pxref{uref,,
7068 @pxref{uref,, @code{@@uref}}). It is useful for url's which do 6784 @code{@@uref}}). It is useful for example URL's which do not actually
7069 not actually exist. For example: 6785 exist. For example:
7070 6786
7071 @c Two lines because one is too long for smallbook format. 6787 @c Two lines because one is too long for smallbook format.
7072 @example 6788 @example
7073 For example, the url might be @@url@{http://example.org/path@}. 6789 For example, the url might be
7074 @end example 6790 @@url@{http://host.domain.org/path@}.
7075 6791 @end example
7076 @noindent which produces: 6792
7077 6793
7078 @display 6794 @node email, , url, Indicating
7079 For example, the url might be @url{http://example.org/path}.
7080 @end display
7081
7082
7083 @node email
7084 @subsection @code{@@email}@{@var{email-address}[, @var{displayed-text}]@} 6795 @subsection @code{@@email}@{@var{email-address}[, @var{displayed-text}]@}
7085 @findex email 6796 @findex email
7086 6797
7087 Use the @code{@@email} command to indicate an electronic mail address. 6798 Use the @code{@@email} command to indicate an electronic mail address.
7088 It takes one mandatory argument, the address, and one optional argument, the 6799 It takes one mandatory argument, the address, and one optional argument, the
7096 6807
7097 @example 6808 @example
7098 Send bug reports to @@email@{bug-texinfo@@@@gnu.org@}. 6809 Send bug reports to @@email@{bug-texinfo@@@@gnu.org@}.
7099 Send suggestions to the @@email@{bug-texinfo@@@@gnu.org, same place@}. 6810 Send suggestions to the @@email@{bug-texinfo@@@@gnu.org, same place@}.
7100 @end example 6811 @end example
7101 @noindent produces 6812 @noindent
7102 @display 6813 produces
6814 @example
7103 Send bug reports to @email{bug-texinfo@@gnu.org}. 6815 Send bug reports to @email{bug-texinfo@@gnu.org}.
7104 Send suggestions to the @email{bug-texinfo@@gnu.org, same place}. 6816 Send suggestions to the @email{bug-texinfo@@gnu.org, same place}.
7105 @end display 6817 @end example
7106 6818
7107 6819
7108 @node Emphasis, , Indicating, Marking Text 6820 @node Emphasis, , Indicating, Marking Text
7109 @comment node-name, next, previous, up 6821 @comment node-name, next, previous, up
7110 @section Emphasizing Text 6822 @section Emphasizing Text
7114 what category the words belong to; an example is the @code{@@code} command. 6826 what category the words belong to; an example is the @code{@@code} command.
7115 Most often, this is the best way to mark words. 6827 Most often, this is the best way to mark words.
7116 However, sometimes you will want to emphasize text without indicating a 6828 However, sometimes you will want to emphasize text without indicating a
7117 category. Texinfo has two commands to do this. Also, Texinfo has 6829 category. Texinfo has two commands to do this. Also, Texinfo has
7118 several commands that specify the font in which @TeX{} will typeset 6830 several commands that specify the font in which @TeX{} will typeset
7119 text. These commands have no effect on Info and only one of them, 6831 text. These commands have no affect on Info and only one of them,
7120 the @code{@@r} command, has any regular use.@refill 6832 the @code{@@r} command, has any regular use.@refill
7121 6833
7122 @menu 6834 @menu
7123 * emph & strong:: How to emphasize text in Texinfo. 6835 * emph & strong:: How to emphasize text in Texinfo.
7124 * Smallcaps:: How to use the small caps font. 6836 * Smallcaps:: How to use the small caps font.
7125 * Fonts:: Various font commands for printed output. 6837 * Fonts:: Various font commands for printed output.
6838 * Customized Highlighting:: How to define highlighting commands.
7126 @end menu 6839 @end menu
7127 6840
7128 @node emph & strong 6841 @node emph & strong, Smallcaps, Emphasis, Emphasis
6842 @comment node-name, next, previous, up
7129 @subsection @code{@@emph}@{@var{text}@} and @code{@@strong}@{@var{text}@} 6843 @subsection @code{@@emph}@{@var{text}@} and @code{@@strong}@{@var{text}@}
7130 @cindex Emphasizing text, font for 6844 @cindex Emphasizing text, font for
7131 @findex emph 6845 @findex emph
7132 @findex strong 6846 @findex strong
7133 6847
7134 The @code{@@emph} and @code{@@strong} commands are for emphasis; 6848 The @code{@@emph} and @code{@@strong} commands are for emphasis;
7135 @code{@@strong} is stronger. In printed output, @code{@@emph} produces 6849 @code{@@strong} is stronger. In printed output, @code{@@emph}
7136 @emph{italics} and @code{@@strong} produces @strong{bold}. 6850 produces @emph{italics} and @code{@@strong} produces
6851 @strong{bold}.@refill
7137 6852
7138 @need 800 6853 @need 800
7139 For example, 6854 For example,
7140 6855
7141 @example 6856 @example
7150 @iftex 6865 @iftex
7151 @noindent 6866 @noindent
7152 produces the following in printed output: 6867 produces the following in printed output:
7153 6868
7154 @quotation 6869 @quotation
7155 @strong{Caution}: @samp{rm * .[^.]*} removes @emph{all} 6870 @strong{Caution}: @code{rm * .[^.]*} removes @emph{all}
7156 files in the directory. 6871 files in the directory.
7157 @end quotation 6872 @end quotation
7158 6873
7159 @noindent 6874 @noindent
7160 and the following in Info: 6875 and the following in Info:
7163 @noindent 6878 @noindent
7164 produces: 6879 produces:
7165 @end ifinfo 6880 @end ifinfo
7166 6881
7167 @example 6882 @example
7168 *Caution*: `rm * .[^.]*' removes _all_ 6883 *Caution*: `rm * .[^.]*' removes *all*
7169 files in the directory. 6884 files in the directory.
7170 @end example 6885 @end example
7171 6886
7172 The @code{@@strong} command is seldom used except to mark what is, in 6887 The @code{@@strong} command is seldom used except to mark what is, in
7173 effect, a typographical element, such as the word `Caution' in the 6888 effect, a typographical element, such as the word `Caution' in the
7174 preceding example. 6889 preceding example.
7175 6890
7176 In the Info output, @code{@@emph} surrounds the text with underscores 6891 In the Info file, both @code{@@emph} and @code{@@strong} put asterisks
7177 (@samp{_}), and @code{@@strong} puts asterisks around the text. 6892 around the text.@refill
7178 6893
7179 @quotation 6894 @quotation
7180 @strong{Caution:} Do not use @code{@@strong} with the word @samp{Note}; 6895 @strong{Caution:} Do not use @code{@@emph} or @code{@@strong} with the
7181 Info will mistake the combination for a cross reference. Use a phrase 6896 word @samp{Note}; Info will mistake the combination for a cross
7182 such as @strong{Please note} or @strong{Caution} instead. 6897 reference. Use a phrase such as @strong{Please note} or
6898 @strong{Caution} instead.@refill
7183 @end quotation 6899 @end quotation
7184 6900
7185 6901 @node Smallcaps, Fonts, emph & strong, Emphasis
7186 @node Smallcaps
7187 @subsection @code{@@sc}@{@var{text}@}: The Small Caps Font 6902 @subsection @code{@@sc}@{@var{text}@}: The Small Caps Font
7188 @cindex Small caps font 6903 @cindex Small caps font
7189 @findex sc @r{(small caps font)} 6904 @findex sc @r{(small caps font)}
7190 6905
7191 Use the @samp{@@sc} command to set text in the printed and the HTML 6906 @iftex
7192 output in @sc{a small caps font} and set text in the Info file in upper 6907 Use the @samp{@@sc} command to set text in the printed output in @sc{a
7193 case letters. Write the text you want to be in small caps (where 6908 small caps font} and set text in the Info file in upper case letters.@refill
7194 possible) between braces in lower case, like this: 6909 @end iftex
6910 @ifinfo
6911 Use the @samp{@@sc} command to set text in the printed output in a
6912 small caps font and set text in the Info file in upper case letters.@refill
6913 @end ifinfo
6914
6915 Write the text between braces in lower case, like this:@refill
7195 6916
7196 @example 6917 @example
7197 The @@sc@{acm@} and @@sc@{ieee@} are technical societies. 6918 The @@sc@{acm@} and @@sc@{ieee@} are technical societies.
7198 @end example 6919 @end example
7199 6920
7204 The @sc{acm} and @sc{ieee} are technical societies. 6925 The @sc{acm} and @sc{ieee} are technical societies.
7205 @end display 6926 @end display
7206 6927
7207 @TeX{} typesets the small caps font in a manner that prevents the 6928 @TeX{} typesets the small caps font in a manner that prevents the
7208 letters from `jumping out at you on the page'. This makes small caps 6929 letters from `jumping out at you on the page'. This makes small caps
7209 text easier to read than text in all upper case---but it's usually 6930 text easier to read than text in all upper case. The Info formatting
7210 better to use regular mixed case anyway. The Info formatting commands 6931 commands set all small caps text in upper case.@refill
7211 set all small caps text in upper case. In HTML, the text is upper-cased 6932
7212 and a smaller font is used to render it. 6933 @ifinfo
7213 6934 If the text between the braces of an @code{@@sc} command is upper case,
7214 If the text between the braces of an @code{@@sc} command is uppercase, 6935 @TeX{} typesets in full-size capitals. Use full-size capitals
7215 @TeX{} typesets in FULL-SIZE CAPITALS. Use full-size capitals 6936 sparingly.@refill
7216 sparingly, if ever, and since it's redundant to mark all-uppercase text 6937 @end ifinfo
7217 with @code{@@sc}, @command{makeinfo} warns about such usage. 6938 @iftex
6939 If the text between the braces of an @code{@@sc} command is upper case,
6940 @TeX{} typesets in @sc{FULL-SIZE CAPITALS}. Use full-size capitals
6941 sparingly.@refill
6942 @end iftex
7218 6943
7219 You may also use the small caps font for a jargon word such as 6944 You may also use the small caps font for a jargon word such as
7220 @sc{ato} (a @sc{nasa} word meaning `abort to orbit'). 6945 @sc{ato} (a @sc{nasa} word meaning `abort to orbit').@refill
7221 6946
7222 There are subtleties to using the small caps font with a jargon word 6947 There are subtleties to using the small caps font with a jargon word
7223 such as @sc{cdr}, a word used in Lisp programming. In this case, you 6948 such as @sc{cdr}, a word used in Lisp programming. In this case, you
7224 should use the small caps font when the word refers to the second and 6949 should use the small caps font when the word refers to the second and
7225 subsequent elements of a list (the @sc{cdr} of the list), but you 6950 subsequent elements of a list (the @sc{cdr} of the list), but you
7226 should use @samp{@@code} when the word refers to the Lisp function of 6951 should use @samp{@@code} when the word refers to the Lisp function of
7227 the same spelling. 6952 the same spelling.@refill
7228 6953
7229 6954 @node Fonts, Customized Highlighting, Smallcaps, Emphasis
7230 @node Fonts 6955 @comment node-name, next, previous, up
7231 @subsection Fonts for Printing, Not Info 6956 @subsection Fonts for Printing, Not Info
7232 @cindex Fonts for printing, not for Info 6957 @cindex Fonts for printing, not for Info
7233 @findex i @r{(italic font)} 6958 @findex i @r{(italic font)}
7234 @findex b @r{(bold font)} 6959 @findex b @r{(bold font)}
7235 @findex t @r{(typewriter font)} 6960 @findex t @r{(typewriter font)}
7269 6994
7270 If possible, you should avoid using the other three font commands. If 6995 If possible, you should avoid using the other three font commands. If
7271 you need to use one, it probably indicates a gap in the Texinfo 6996 you need to use one, it probably indicates a gap in the Texinfo
7272 language.@refill 6997 language.@refill
7273 6998
7274 @node Quotations and Examples 6999 @node Customized Highlighting, , Fonts, Emphasis
7000 @comment node-name, next, previous, up
7001 @subsection Customized Highlighting
7002 @cindex Highlighting, customized
7003 @cindex Customized highlighting
7004
7005 @c I think this whole section is obsolete with the advent of macros
7006 @c --karl, 15sep96.
7007 You can use regular @TeX{} commands inside of @code{@@iftex} @dots{}
7008 @code{@@end iftex} to create your own customized highlighting commands
7009 for Texinfo. The easiest way to do this is to equate your customized
7010 commands with pre-existing commands, such as those for italics. Such
7011 new commands work only with @TeX{}.@refill
7012
7013 @findex definfoenclose
7014 @cindex Enclosure command for Info
7015 You can use the @code{@@definfoenclose} command inside of
7016 @code{@@ifinfo} @dots{} @code{@@end ifinfo} to define commands for Info
7017 with the same names as new commands for @TeX{}.
7018 @code{@@definfoenclose} creates new commands for Info that mark text by
7019 enclosing it in strings that precede and follow the text.
7020 @footnote{Currently, @code{@@definfoenclose} works only with
7021 @code{texinfo-format-buffer} and @code{texinfo-format-region}, not with
7022 @code{makeinfo}.}@refill
7023
7024 Here is how to create a new @@-command called @code{@@phoo} that causes
7025 @TeX{} to typeset its argument in italics and causes Info to display the
7026 argument between @samp{//} and @samp{\\}.@refill
7027
7028 @need 1300
7029 For @TeX{}, write the following to equate the @code{@@phoo} command with
7030 the existing @code{@@i} italics command:@refill
7031
7032 @example
7033 @group
7034 @@iftex
7035 @@global@@let@@phoo=@@i
7036 @@end iftex
7037 @end group
7038 @end example
7039
7040 @noindent
7041 This defines @code{@@phoo} as a command that causes @TeX{} to typeset
7042 the argument to @code{@@phoo} in italics. @code{@@global@@let} tells
7043 @TeX{} to equate the next argument with the argument that follows the
7044 equals sign.
7045
7046 @need 1300
7047 For Info, write the following to tell the Info formatters to enclose the
7048 argument between @samp{//} and @samp{\\}:
7049
7050 @example
7051 @group
7052 @@ifinfo
7053 @@definfoenclose phoo, //, \\
7054 @@end ifinfo
7055 @end group
7056 @end example
7057
7058 @noindent
7059 Write the @code{@@definfoenclose} command on a line and follow it with
7060 three arguments separated by commas (commas are used as separators in an
7061 @code{@@node} line in the same way).@refill
7062
7063 @itemize @bullet
7064 @item
7065 The first argument to @code{@@definfoenclose} is the @@-command name
7066 @strong{without} the @samp{@@};
7067
7068 @item
7069 the second argument is the Info start delimiter string; and,
7070
7071 @item
7072 the third argument is the Info end delimiter string.
7073 @end itemize
7074
7075 @noindent
7076 The latter two arguments enclose the highlighted text in the Info file.
7077 A delimiter string may contain spaces. Neither the start nor end
7078 delimiter is required. However, if you do not provide a start
7079 delimiter, you must follow the command name with two commas in a row;
7080 otherwise, the Info formatting commands will misinterpret the end
7081 delimiter string as a start delimiter string.@refill
7082
7083 After you have defined @code{@@phoo} both for @TeX{} and for Info, you
7084 can then write @code{@@phoo@{bar@}} to see @samp{//bar\\}
7085 in Info and see
7086 @ifinfo
7087 @samp{bar} in italics in printed output.
7088 @end ifinfo
7089 @iftex
7090 @i{bar} in italics in printed output.
7091 @end iftex
7092
7093 Note that each definition applies to its own formatter: one for @TeX{},
7094 the other for Info.
7095
7096 @need 1200
7097 Here is another example:
7098
7099 @example
7100 @group
7101 @@ifinfo
7102 @@definfoenclose headword, , :
7103 @@end ifinfo
7104 @@iftex
7105 @@global@@let@@headword=@@b
7106 @@end iftex
7107 @end group
7108 @end example
7109
7110 @noindent
7111 This defines @code{@@headword} as an Info formatting command that
7112 inserts nothing before and a colon after the argument and as a @TeX{}
7113 formatting command to typeset its argument in bold.
7114
7115 @node Quotations and Examples, Lists and Tables, Marking Text, Top
7116 @comment node-name, next, previous, up
7275 @chapter Quotations and Examples 7117 @chapter Quotations and Examples
7276 7118
7277 Quotations and examples are blocks of text consisting of one or more 7119 Quotations and examples are blocks of text consisting of one or more
7278 whole paragraphs that are set off from the bulk of the text and 7120 whole paragraphs that are set off from the bulk of the text and
7279 treated differently. They are usually indented.@refill 7121 treated differently. They are usually indented.@refill
7291 * Block Enclosing Commands:: Use different constructs for 7133 * Block Enclosing Commands:: Use different constructs for
7292 different purposes. 7134 different purposes.
7293 * quotation:: How to write a quotation. 7135 * quotation:: How to write a quotation.
7294 * example:: How to write an example in a fixed-width font. 7136 * example:: How to write an example in a fixed-width font.
7295 * noindent:: How to prevent paragraph indentation. 7137 * noindent:: How to prevent paragraph indentation.
7296 * lisp:: How to illustrate Lisp code. 7138 * Lisp Example:: How to illustrate Lisp code.
7297 * small:: Forms for @code{@@smallbook}. 7139 * smallexample & smalllisp:: Forms for the @code{@@smallbook} option.
7298 * display:: How to write an example in the current font. 7140 * display:: How to write an example in the current font.
7299 * format:: How to write an example that does not narrow 7141 * format:: How to write an example that does not narrow
7300 the margins. 7142 the margins.
7301 * exdent:: How to undo the indentation of a line. 7143 * exdent:: How to undo the indentation of a line.
7302 * flushleft & flushright:: How to push text flushleft or flushright. 7144 * flushleft & flushright:: How to push text flushleft or flushright.
7303 * cartouche:: How to draw cartouches around examples. 7145 * cartouche:: How to draw cartouches around examples.
7304 @end menu 7146 @end menu
7305 7147
7306 @node Block Enclosing Commands 7148 @node Block Enclosing Commands, quotation, Quotations and Examples, Quotations and Examples
7307 @section Block Enclosing Commands 7149 @section The Block Enclosing Commands
7308 7150
7309 Here are commands for quotations and examples, explained further in the 7151 Here are commands for quotations and examples:@refill
7310 following sections:
7311 7152
7312 @table @code 7153 @table @code
7313 @item @@quotation 7154 @item @@quotation
7314 Indicate text that is quoted. The text is filled, indented, and 7155 Indicate text that is quoted. The text is filled, indented, and
7315 printed in a roman font by default.@refill 7156 printed in a roman font by default.@refill
7316 7157
7317 @item @@example 7158 @item @@example
7318 Illustrate code, commands, and the like. The text is printed 7159 Illustrate code, commands, and the like. The text is printed
7319 in a fixed-width font, and indented but not filled.@refill 7160 in a fixed-width font, and indented but not filled.@refill
7320 7161
7162 @item @@lisp
7163 Illustrate Lisp code. The text is printed in a fixed-width font,
7164 and indented but not filled.@refill
7165
7321 @item @@smallexample 7166 @item @@smallexample
7322 Same as @code{@@example}, except that in @TeX{} this command typesets 7167 Illustrate code, commands, and the like. Similar to
7323 text in a smaller font for the @code{@@smallbook} format than for the 7168 @code{@@example}, except that in @TeX{} this command typesets text in
7324 default 8.5 by 11 inch format. 7169 a smaller font for the smaller @code{@@smallbook} format than for the
7325 7170 8.5 by 11 inch format.@refill
7326 @item @@lisp
7327 Like @code{@@example}, but specifically for illustrating Lisp code. The
7328 text is printed in a fixed-width font, and indented but not filled.
7329 7171
7330 @item @@smalllisp 7172 @item @@smalllisp
7331 Is to @code{@@lisp} as @code{@@smallexample} is to @code{@@example}. 7173 Illustrate Lisp code. Similar to @code{@@lisp}, except that
7174 in @TeX{} this command typesets text in a smaller font for the smaller
7175 @code{@@smallbook} format than for the 8.5 by 11 inch format.@refill
7332 7176
7333 @item @@display 7177 @item @@display
7334 Display illustrative text. The text is indented but not filled, and 7178 Display illustrative text. The text is indented but not filled, and
7335 no font is selected (so, by default, the font is roman).@refill 7179 no font is specified (so, by default, the font is roman).@refill
7336
7337 @item @@smalldisplay
7338 Is to @code{@@display} as @code{@@smallexample} is to @code{@@example}.
7339 7180
7340 @item @@format 7181 @item @@format
7341 Like @code{@@display} (the text is not filled and no font is selected), 7182 Print illustrative text. The text is not indented and not filled
7342 but the text is not indented. 7183 and no font is specified (so, by default, the font is roman).@refill
7343
7344 @item @@smallformat
7345 Is to @code{@@format} as @code{@@smallexample} is to @code{@@example}.
7346 @end table 7184 @end table
7347 7185
7348 The @code{@@exdent} command is used within the above constructs to 7186 The @code{@@exdent} command is used within the above constructs to
7349 undo the indentation of a line. 7187 undo the indentation of a line.
7350 7188
7355 constructs to prevent the following text from being indented as a new 7193 constructs to prevent the following text from being indented as a new
7356 paragraph.@refill 7194 paragraph.@refill
7357 7195
7358 You can use the @code{@@cartouche} command within one of the above 7196 You can use the @code{@@cartouche} command within one of the above
7359 constructs to highlight the example or quotation by drawing a box with 7197 constructs to highlight the example or quotation by drawing a box with
7360 rounded corners around it. @xref{cartouche, , Drawing Cartouches Around 7198 rounded corners around it. (The @code{@@cartouche} command affects
7361 Examples}. 7199 only the printed manual; it has no effect in the Info file; see
7362 7200 @ref{cartouche, , Drawing Cartouches Around Examples}.)@refill
7363 7201
7364 @node quotation 7202 @node quotation, example, Block Enclosing Commands, Quotations and Examples
7203 @comment node-name, next, previous, up
7365 @section @code{@@quotation} 7204 @section @code{@@quotation}
7366 @cindex Quotations 7205 @cindex Quotations
7367 @findex quotation 7206 @findex quotation
7368 7207
7369 The text of a quotation is processed normally except that: 7208 The text of a quotation is
7209 processed normally except that:@refill
7370 7210
7371 @itemize @bullet 7211 @itemize @bullet
7372 @item 7212 @item
7373 the margins are closer to the center of the page, so the whole of the 7213 the margins are closer to the center of the page, so the whole of the
7374 quotation is indented;@refill 7214 quotation is indented;@refill
7406 7246
7407 @quotation 7247 @quotation
7408 This is a foo. 7248 This is a foo.
7409 @end quotation 7249 @end quotation
7410 7250
7411 7251 @node example, noindent, quotation, Quotations and Examples
7412 @node example 7252 @comment node-name, next, previous, up
7413 @section @code{@@example} 7253 @section @code{@@example}
7414 @cindex Examples, formatting them 7254 @cindex Examples, formatting them
7415 @cindex Formatting examples 7255 @cindex Formatting examples
7416 @findex example 7256 @findex example
7417 7257
7433 obtained by indenting each line with five spaces. 7273 obtained by indenting each line with five spaces.
7434 @end group 7274 @end group
7435 @end example 7275 @end example
7436 7276
7437 Write an @code{@@example} command at the beginning of a line by itself. 7277 Write an @code{@@example} command at the beginning of a line by itself.
7438 Mark the end of the example 7278 This line will disappear from the output. Mark the end of the example
7439 with an @code{@@end example} command, also written at the beginning of a 7279 with an @code{@@end example} command, also written at the beginning of a
7440 line by itself.@refill 7280 line by itself. The @code{@@end example} will disappear from the
7281 output.@refill
7441 7282
7442 @need 700 7283 @need 700
7443 For example, 7284 For example,
7444 7285
7445 @example 7286 @example
7453 7294
7454 @example 7295 @example
7455 mv foo bar 7296 mv foo bar
7456 @end example 7297 @end example
7457 7298
7458 The lines containing @code{@@example} and @code{@@end example} 7299 Since the lines containing @code{@@example} and @code{@@end example}
7459 will disappear from the output. 7300 will disappear, you should put a blank line before the
7460 To make the output look good, 7301 @code{@@example} and another blank line after the @code{@@end
7461 you should put a blank line before the 7302 example}. (Remember that blank lines between the beginning
7462 @code{@@example} and another blank line after the @code{@@end example}.
7463 Note that blank lines inside the beginning
7464 @code{@@example} and the ending @code{@@end example} will appear in 7303 @code{@@example} and the ending @code{@@end example} will appear in
7465 the output.@refill 7304 the output.)@refill
7466 7305
7467 @quotation 7306 @quotation
7468 @strong{Caution:} Do not use tabs in the lines of an example (or anywhere 7307 @strong{Caution:} Do not use tabs in the lines of an example (or anywhere
7469 else in Texinfo, for that matter)! @TeX{} treats tabs as single 7308 else in Texinfo, for that matter)! @TeX{} treats tabs as single
7470 spaces, and that is not what they look like. This is a problem with 7309 spaces, and that is not what they look like. This is a problem with
7471 @TeX{}. (If necessary, in Emacs, you can use @kbd{M-x untabify} to 7310 @TeX{}. (If necessary, in Emacs, you can use @kbd{M-x untabify} to
7472 convert tabs in a region to multiple spaces.)@refill 7311 convert tabs in a region to multiple spaces.)@refill
7473 @end quotation 7312 @end quotation
7474 7313
7475 Examples are often, logically speaking, ``in the middle'' of a 7314 Examples are often, logically speaking, ``in the middle'' of a
7476 paragraph, and the text that continues after an example should not be 7315 paragraph, and the text continues after an example should not be
7477 indented. The @code{@@noindent} command prevents a piece of text from 7316 indented. The @code{@@noindent} command prevents a piece of text from
7478 being indented as if it were a new paragraph. 7317 being indented as if it were a new paragraph.
7479 @ifinfo 7318 @ifinfo
7480 (@xref{noindent}.) 7319 (@xref{noindent}.)
7481 @end ifinfo 7320 @end ifinfo
7482 7321
7483 (The @code{@@code} command is used for examples of code that are 7322 (The @code{@@code} command is used for examples of code that are
7484 embedded within sentences, not set off from preceding and following 7323 embedded within sentences, not set off from preceding and following
7485 text. @xref{code, , @code{@@code}}.) 7324 text. @xref{code, , @code{@@code}}.)
7486 7325
7487 7326 @node noindent, Lisp Example, example, Quotations and Examples
7488 @node noindent 7327 @comment node-name, next, previous, up
7489 @section @code{@@noindent} 7328 @section @code{@@noindent}
7490 @findex noindent 7329 @findex noindent
7491 7330
7492 An example or other inclusion can break a paragraph into segments. 7331 An example or other inclusion can break a paragraph into segments.
7493 Ordinarily, the formatters indent text that follows an example as a new 7332 Ordinarily, the formatters indent text that follows an example as a new
7540 7379
7541 Do not put braces after an @code{@@noindent} command; they are not 7380 Do not put braces after an @code{@@noindent} command; they are not
7542 necessary, since @code{@@noindent} is a command used outside of 7381 necessary, since @code{@@noindent} is a command used outside of
7543 paragraphs (@pxref{Command Syntax}).@refill 7382 paragraphs (@pxref{Command Syntax}).@refill
7544 7383
7545 7384 @node Lisp Example, smallexample & smalllisp, noindent, Quotations and Examples
7546 @node lisp 7385 @comment node-name, next, previous, up
7547 @section @code{@@lisp} 7386 @section @code{@@lisp}
7387 @cindex Lisp example
7548 @findex lisp 7388 @findex lisp
7549 @cindex Lisp example
7550 7389
7551 The @code{@@lisp} command is used for Lisp code. It is synonymous 7390 The @code{@@lisp} command is used for Lisp code. It is synonymous
7552 with the @code{@@example} command. 7391 with the @code{@@example} command.
7553 7392
7554 @lisp 7393 @lisp
7559 Use @code{@@lisp} instead of @code{@@example} to preserve information 7398 Use @code{@@lisp} instead of @code{@@example} to preserve information
7560 regarding the nature of the example. This is useful, for example, if 7399 regarding the nature of the example. This is useful, for example, if
7561 you write a function that evaluates only and all the Lisp code in a 7400 you write a function that evaluates only and all the Lisp code in a
7562 Texinfo file. Then you can use the Texinfo file as a Lisp 7401 Texinfo file. Then you can use the Texinfo file as a Lisp
7563 library.@footnote{It would be straightforward to extend Texinfo to work 7402 library.@footnote{It would be straightforward to extend Texinfo to work
7564 in a similar fashion for C, Fortran, or other languages.} 7403 in a similar fashion for C, Fortran, or other languages.}@refill
7565 7404
7566 Mark the end of @code{@@lisp} with @code{@@end lisp} on a line by 7405 Mark the end of @code{@@lisp} with @code{@@end lisp} on a line by
7567 itself.@refill 7406 itself.@refill
7568 7407
7569 7408 @node smallexample & smalllisp, display, Lisp Example, Quotations and Examples
7570 @node small 7409 @comment node-name, next, previous, up
7571 @section @code{@@small@dots{}} Block Commands 7410 @section @code{@@smallexample} and @code{@@smalllisp}
7572 @cindex Small book example 7411 @cindex Small book example
7573 @cindex Example for a small book 7412 @cindex Example for a small book
7574 @cindex Lisp example for a small book 7413 @cindex Lisp example for a small book
7575 @findex smalldisplay
7576 @findex smallexample 7414 @findex smallexample
7577 @findex smallformat
7578 @findex smalllisp 7415 @findex smalllisp
7579 7416
7580 In addition to the regular @code{@@example} and @code{@@lisp} commands, 7417 In addition to the regular @code{@@example} and @code{@@lisp} commands,
7581 Texinfo has ``small'' example-style commands. These are 7418 Texinfo has two other ``example-style'' commands. These are the
7582 @code{@@smalldisplay}, @code{@@smallexample}, @code{@@smallformat}, and 7419 @code{@@smallexample} and @code{@@smalllisp} commands. Both these
7583 @code{@@smalllisp}. All of these commands are designed for use with the 7420 commands are designed for use with the @code{@@smallbook} command that
7584 @code{@@smallbook} command (which causes @TeX{} to format a printed book for 7421 causes @TeX{} to produce a printed manual in a 7 by 9.25 inch format
7585 a 7 by 9.25 inch trim size rather than the default 8.5 by 11 inch size). 7422 rather than the regular 8.5 by 11 inch format.@refill
7586 7423
7587 In @TeX{}, the @code{@@small@dots{}} commands typeset text in a smaller 7424 In @TeX{}, the @code{@@smallexample} and @code{@@smalllisp} commands
7588 font for the smaller @code{@@smallbook} format than for the 8.5 by 11 7425 typeset text in a smaller font for the smaller @code{@@smallbook}
7589 inch format. Consequently, many examples containing long lines fit in a 7426 format than for the 8.5 by 11 inch format. Consequently, many examples
7590 narrower, @code{@@smallbook} page without needing to be shortened. Both 7427 containing long lines fit in a narrower, @code{@@smallbook} page
7591 commands typeset in the normal font size when you format for the 8.5 by 7428 without needing to be shortened. Both commands typeset in the normal
7592 11 inch size. Indeed, in this situation, the @code{@@small@dots{}} 7429 font size when you format for the 8.5 by 11 inch size; indeed,
7593 commands are equivalent to their non-small versions. 7430 in this situation, the @code{@@smallexample} and @code{@@smalllisp}
7594 7431 commands are defined to be the @code{@@example} and @code{@@lisp}
7595 In Info, the @code{@@small@dots{}} commands are also equivalent to their 7432 commands.@refill
7596 non-small companion commands. 7433
7597 7434 In Info, the @code{@@smallexample} and @code{@@smalllisp} commands are
7598 Mark the end of an @code{@@small@dots{}} block with a corresponding 7435 equivalent to the @code{@@example} and @code{@@lisp} commands, and work
7599 @code{@@end small@dots{}}. For example, pair @code{@@smallexample} with 7436 exactly the same.@refill
7600 @code{@@end smallexample}. 7437
7438 Mark the end of @code{@@smallexample} or @code{@@smalllisp} with
7439 @code{@@end smallexample} or @code{@@end smalllisp},
7440 respectively.@refill
7601 7441
7602 @iftex 7442 @iftex
7603 Here is an example written in the small font used by the 7443 Here is an example written in the small font used by the
7604 @code{@@smallexample} and @code{@@smalllisp} commands: 7444 @code{@@smallexample} and @code{@@smalllisp} commands:
7605 7445
7606 @ifclear smallbook 7446 @ifclear smallbook
7607 @display 7447 @display
7608 @tex 7448 @tex
7609 % Remove extra vskip; this is a kludge to counter the effect of display 7449 % Remove extra vskip; this is a kludge to counter the effect of display
7610 \vskip-3\baselineskip 7450 \vskip-3\baselineskip
7611 {\smalltt
7612 \dots{} to make sure that you have the freedom to
7613 distribute copies of free software (and charge for
7614 this service if you wish), that you receive source
7615 code or can get it if you want it, that you can
7616 change the software or use pieces of it in new free
7617 programs; and that you know you can do these things.}
7618 @end tex 7451 @end tex
7619 @end display 7452 @end display
7620 @end ifclear 7453 @end ifclear
7621 @end iftex 7454 @end iftex
7622 @ifset smallbook 7455 @ifset smallbook
7636 this text appears in its normal size; but in a 7 by 9.25 inch manual, 7469 this text appears in its normal size; but in a 7 by 9.25 inch manual,
7637 this text appears in a smaller font. 7470 this text appears in a smaller font.
7638 @end smallexample 7471 @end smallexample
7639 @end ifinfo 7472 @end ifinfo
7640 7473
7641 The @code{@@small@dots{}} commands make it easier to prepare smaller 7474 The @code{@@smallexample} and @code{@@smalllisp} commands make it
7642 format manuals without forcing you to edit examples by hand to fit them 7475 easier to prepare smaller format manuals without forcing you to edit
7643 onto narrower pages.@refill 7476 examples by hand to fit them onto narrower pages.@refill
7644 7477
7645 As a general rule, a printed document looks better if you use only one 7478 As a general rule, a printed document looks better if you write all the
7646 of (for example) @code{@@example} or in @code{@@smallexample} 7479 examples in a chapter consistently in @code{@@example} or in
7647 consistently within a chapter. Only occasionally should you mix the two 7480 @code{@@smallexample}. Only occasionally should you mix the two
7648 formats. 7481 formats.@refill
7649 7482
7650 @xref{smallbook, , Printing ``Small'' Books}, for more information 7483 @xref{smallbook, , Printing ``Small'' Books}, for more information
7651 about the @code{@@smallbook} command.@refill 7484 about the @code{@@smallbook} command.@refill
7652 7485
7653 7486 @node display, format, smallexample & smalllisp, Quotations and Examples
7654 @node display 7487 @comment node-name, next, previous, up
7655 @section @code{@@display} and @code{@@smalldisplay} 7488 @section @code{@@display}
7656 @cindex Display formatting 7489 @cindex Display formatting
7657 @findex display 7490 @findex display
7658 7491
7659 The @code{@@display} command begins a kind of example. It is like the 7492 The @code{@@display} command begins a kind of example. It is like the
7660 @code{@@example} command 7493 @code{@@example} command
7668 This is an example of text written between an @code{@@display} command 7501 This is an example of text written between an @code{@@display} command
7669 and an @code{@@end display} command. The @code{@@display} command 7502 and an @code{@@end display} command. The @code{@@display} command
7670 indents the text, but does not fill it. 7503 indents the text, but does not fill it.
7671 @end display 7504 @end display
7672 7505
7673 @findex smalldisplay 7506 @node format, exdent, display, Quotations and Examples
7674 Texinfo also provides a command @code{@@smalldisplay}, which is like 7507 @comment node-name, next, previous, up
7675 @code{@@display} but uses a smaller font in @code{@@smallbook} format. 7508 @section @code{@@format}
7676 @xref{small}.
7677
7678
7679 @node format
7680 @section @code{@@format} and @code{@@smallformat}
7681 @findex format 7509 @findex format
7682 7510
7683 The @code{@@format} command is similar to @code{@@example} except 7511 The @code{@@format} command is similar to @code{@@example} except
7684 that, in the printed manual, @code{@@format} does not select the 7512 that, in the printed manual, @code{@@format} does not select the
7685 fixed-width font and does not narrow the margins.@refill 7513 fixed-width font and does not narrow the margins.@refill
7689 and an @code{@@end format} command. As you can see 7517 and an @code{@@end format} command. As you can see
7690 from this example, 7518 from this example,
7691 the @code{@@format} command does not fill the text. 7519 the @code{@@format} command does not fill the text.
7692 @end format 7520 @end format
7693 7521
7694 @findex smallformat 7522 @node exdent, flushleft & flushright, format, Quotations and Examples
7695 Texinfo also provides a command @code{@@smallformat}, which is like
7696 @code{@@format} but uses a smaller font in @code{@@smallbook} format.
7697 @xref{small}.
7698
7699
7700
7701 @node exdent
7702 @section @code{@@exdent}: Undoing a Line's Indentation 7523 @section @code{@@exdent}: Undoing a Line's Indentation
7703 @cindex Indentation undoing 7524 @cindex Indentation undoing
7704 @findex exdent 7525 @findex exdent
7705 7526
7706 The @code{@@exdent} command removes any indentation a line might have. 7527 The @code{@@exdent} command removes any indentation a line might have.
7806 rounded corners around its contents. You can use this command to 7627 rounded corners around its contents. You can use this command to
7807 further highlight an example or quotation. For instance, you could 7628 further highlight an example or quotation. For instance, you could
7808 write a manual in which one type of example is surrounded by a cartouche 7629 write a manual in which one type of example is surrounded by a cartouche
7809 for emphasis.@refill 7630 for emphasis.@refill
7810 7631
7811 @code{@@cartouche} affects only the printed manual; it has no effect in 7632 The @code{@@cartouche} command affects only the printed manual; it has
7812 other output files. 7633 no effect in the Info file.@refill
7813 7634
7814 @need 1500 7635 @need 1500
7815 For example, 7636 For example,
7816 7637
7817 @example 7638 @example
7859 * enumerate:: How to construct a numbered list. 7680 * enumerate:: How to construct a numbered list.
7860 * Two-column Tables:: How to construct a two-column table. 7681 * Two-column Tables:: How to construct a two-column table.
7861 * Multi-column Tables:: How to construct generalized tables. 7682 * Multi-column Tables:: How to construct generalized tables.
7862 @end menu 7683 @end menu
7863 7684
7685 @ifinfo
7864 @node Introducing Lists, itemize, Lists and Tables, Lists and Tables 7686 @node Introducing Lists, itemize, Lists and Tables, Lists and Tables
7865 @ifinfo
7866 @heading Introducing Lists 7687 @heading Introducing Lists
7867 @end ifinfo 7688 @end ifinfo
7868 7689
7869 Texinfo automatically indents the text in lists or tables, and numbers 7690 Texinfo automatically indents the text in lists or tables, and numbers
7870 an enumerated list. This last feature is useful if you modify the 7691 an enumerated list. This last feature is useful if you modify the
7929 Enumerated lists, using numbers or letters. 7750 Enumerated lists, using numbers or letters.
7930 7751
7931 @item @@table 7752 @item @@table
7932 @itemx @@ftable 7753 @itemx @@ftable
7933 @itemx @@vtable 7754 @itemx @@vtable
7934 Two-column tables, optionally with indexing. 7755 Two-column tables with indexing.
7935 @end table 7756 @end table
7936 7757
7937 7758 @node itemize, enumerate, Introducing Lists, Lists and Tables
7938 @node itemize 7759 @comment node-name, next, previous, up
7939 @section @code{@@itemize}: Making an Itemized List 7760 @section Making an Itemized List
7940 @cindex Itemization 7761 @cindex Itemization
7941 @findex itemize 7762 @findex itemize
7942 7763
7943 The @code{@@itemize} command produces sequences of indented 7764 The @code{@@itemize} command produces sequences of indented
7944 paragraphs, with a bullet or other mark inside the left margin 7765 paragraphs, with a bullet or other mark inside the left margin
7945 at the beginning of each paragraph for which such a mark is desired.@refill 7766 at the beginning of each paragraph for which such a mark is desired.@refill
7946 7767
7947 @cindex @code{@@w}, for blank items
7948 Begin an itemized list by writing @code{@@itemize} at the beginning of 7768 Begin an itemized list by writing @code{@@itemize} at the beginning of
7949 a line. Follow the command, on the same line, with a character or a 7769 a line. Follow the command, on the same line, with a character or a
7950 Texinfo command that generates a mark. Usually, you will write 7770 Texinfo command that generates a mark. Usually, you will write
7951 @code{@@bullet} after @code{@@itemize}, but you can use 7771 @code{@@bullet} after @code{@@itemize}, but you can use
7952 @code{@@minus}, or any command or character that results in a single 7772 @code{@@minus}, or any character or any special symbol that results in
7953 character in the Info file. If you don't want any mark at all, use 7773 a single character in the Info file. (When you write @code{@@bullet}
7954 @code{@@w}. (When you write the mark command such as 7774 or @code{@@minus} after an @code{@@itemize} command, you may omit the
7955 @code{@@bullet} after an @code{@@itemize} command, you may omit the 7775 @samp{@{@}}.)@refill
7956 @samp{@{@}}.) If you don't specify a mark command, the default is
7957 @code{@@bullet}.
7958 7776
7959 Write the text of the indented paragraphs themselves after the 7777 Write the text of the indented paragraphs themselves after the
7960 @code{@@itemize}, up to another line that says @code{@@end 7778 @code{@@itemize}, up to another line that says @code{@@end
7961 itemize}.@refill 7779 itemize}.@refill
7962 7780
7781 Before each paragraph for which a mark in the margin is desired, write
7782 a line that says just @code{@@item}. Do not write any other text on this
7783 line.@refill
7963 @findex item 7784 @findex item
7964 Before each paragraph for which a mark in the margin is desired, write a
7965 line that says just @code{@@item}. It is ok to have text following the
7966 @code{@@item}.
7967 7785
7968 Usually, you should put a blank line before an @code{@@item}. This 7786 Usually, you should put a blank line before an @code{@@item}. This
7969 puts a blank line in the Info file. (@TeX{} inserts the proper 7787 puts a blank line in the Info file. (@TeX{} inserts the proper
7970 interline whitespace in either case.) Except when the entries are 7788 interline whitespace in either case.) Except when the entries are
7971 very brief, these blank lines make the list look better.@refill 7789 very brief, these blank lines make the list look better.@refill
7972 7790
7973 Here is an example of the use of @code{@@itemize}, followed by the 7791 Here is an example of the use of @code{@@itemize}, followed by the
7974 output it produces. @code{@@bullet} produces an @samp{*} in Info and a 7792 output it produces. Note that @code{@@bullet} produces an @samp{*} in
7975 round dot in @TeX{}. 7793 Info and a round dot in @TeX{}.@refill
7976 7794
7977 @example 7795 @example
7978 @group 7796 @group
7979 @@itemize @@bullet 7797 @@itemize @@bullet
7980 @@item 7798 @@item
8043 @item 7861 @item
8044 Second outer item. 7862 Second outer item.
8045 @end itemize 7863 @end itemize
8046 @end quotation 7864 @end quotation
8047 7865
8048 7866 @node enumerate, Two-column Tables, itemize, Lists and Tables
8049 @node enumerate 7867 @comment node-name, next, previous, up
8050 @section @code{@@enumerate}: Making a Numbered or Lettered List 7868 @section Making a Numbered or Lettered List
8051 @cindex Enumeration 7869 @cindex Enumeration
8052 @findex enumerate 7870 @findex enumerate
8053 7871
8054 @code{@@enumerate} is like @code{@@itemize} (@pxref{itemize,, 7872 @code{@@enumerate} is like @code{@@itemize} (@pxref{itemize,,
8055 @code{@@itemize}}), except that the labels on the items are 7873 @code{@@itemize}}), except that the labels on the items are
8059 command does not require an argument, but accepts either a number or a 7877 command does not require an argument, but accepts either a number or a
8060 letter as an option. Without an argument, @code{@@enumerate} starts the 7878 letter as an option. Without an argument, @code{@@enumerate} starts the
8061 list with the number @samp{1}. With a numeric argument, such as 7879 list with the number @samp{1}. With a numeric argument, such as
8062 @samp{3}, the command starts the list with that number. With an upper 7880 @samp{3}, the command starts the list with that number. With an upper
8063 or lower case letter, such as @samp{a} or @samp{A}, the command starts 7881 or lower case letter, such as @samp{a} or @samp{A}, the command starts
8064 the list with that letter. 7882 the list with that letter.@refill
8065 7883
8066 Write the text of the enumerated list in the same way you write an 7884 Write the text of the enumerated list in the same way you write an
8067 itemized list: put @code{@@item} on a line of its own before the start 7885 itemized list: put @code{@@item} on a line of its own before the start
8068 of each paragraph that you want enumerated. Do not write any other text 7886 of each paragraph that you want enumerated. Do not write any other text
8069 on the line beginning with @code{@@item}. 7887 on the line beginning with @code{@@item}.@refill
8070 7888
8071 You should put a blank line between entries in the list. 7889 You should put a blank line between entries in the list.
8072 This generally makes it easier to read the Info file. 7890 This generally makes it easier to read the Info file.@refill
8073 7891
8074 @need 1500 7892 @need 1500
8075 Here is an example of @code{@@enumerate} without an argument: 7893 Here is an example of @code{@@enumerate} without an argument:@refill
8076 7894
8077 @example 7895 @example
8078 @group 7896 @group
8079 @@enumerate 7897 @@enumerate
8080 @@item 7898 @@item
8177 * table:: How to construct a two-column table. 7995 * table:: How to construct a two-column table.
8178 * ftable vtable:: Automatic indexing for two-column tables. 7996 * ftable vtable:: Automatic indexing for two-column tables.
8179 * itemx:: How to put more entries in the first column. 7997 * itemx:: How to put more entries in the first column.
8180 @end menu 7998 @end menu
8181 7999
8000 @ifinfo
8182 @node table, ftable vtable, Two-column Tables, Two-column Tables 8001 @node table, ftable vtable, Two-column Tables, Two-column Tables
8183 @ifinfo
8184 @subheading Using the @code{@@table} Command 8002 @subheading Using the @code{@@table} Command
8185 8003
8186 Use the @code{@@table} command to produce two-column tables.@refill 8004 Use the @code{@@table} command to produce two-column tables.@refill
8187 @end ifinfo 8005 @end ifinfo
8188 8006
8207 8025
8208 (The @code{@@table} command may work with other commands besides those 8026 (The @code{@@table} command may work with other commands besides those
8209 listed here. However, you can only use commands that normally take 8027 listed here. However, you can only use commands that normally take
8210 arguments in braces.)@refill 8028 arguments in braces.)@refill
8211 8029
8212 @findex item
8213 Begin each table entry with an @code{@@item} command at the beginning 8030 Begin each table entry with an @code{@@item} command at the beginning
8214 of a line. Write the first column text on the same line as the 8031 of a line. Write the first column text on the same line as the
8215 @code{@@item} command. Write the second column text on the line 8032 @code{@@item} command. Write the second column text on the line
8216 following the @code{@@item} line and on subsequent lines. (You do not 8033 following the @code{@@item} line and on subsequent lines. (You do not
8217 need to type anything for an empty second column entry.) You may 8034 need to type anything for an empty second column entry.) You may
8218 write as many lines of supporting text as you wish, even several 8035 write as many lines of supporting text as you wish, even several
8219 paragraphs. But only text on the same line as the @code{@@item} will 8036 paragraphs. But only text on the same line as the @code{@@item} will
8220 be placed in the first column, including any footnote. 8037 be placed in the first column.@refill
8038 @findex item
8221 8039
8222 Normally, you should put a blank line before an @code{@@item} line. 8040 Normally, you should put a blank line before an @code{@@item} line.
8223 This puts a blank like in the Info file. Except when the entries are 8041 This puts a blank like in the Info file. Except when the entries are
8224 very brief, a blank line looks better.@refill 8042 very brief, a blank line looks better.@refill
8225 8043
8253 8071
8254 If you want to list two or more named items with a single block of 8072 If you want to list two or more named items with a single block of
8255 text, use the @code{@@itemx} command. (@xref{itemx, , 8073 text, use the @code{@@itemx} command. (@xref{itemx, ,
8256 @code{@@itemx}}.)@refill 8074 @code{@@itemx}}.)@refill
8257 8075
8258 8076 @node ftable vtable, itemx, table, Two-column Tables
8259 @node ftable vtable 8077 @comment node-name, next, previous, up
8260 @subsection @code{@@ftable} and @code{@@vtable} 8078 @subsection @code{@@ftable} and @code{@@vtable}
8261 @cindex Tables with indexes 8079 @cindex Tables with indexes
8262 @cindex Indexing table entries automatically 8080 @cindex Indexing table entries automatically
8263 @findex ftable 8081 @findex ftable
8264 @findex vtable 8082 @findex vtable
8268 each of the items in the first column of the table into the index of 8086 each of the items in the first column of the table into the index of
8269 functions and @code{@@vtable} automatically enters each of the items in 8087 functions and @code{@@vtable} automatically enters each of the items in
8270 the first column of the table into the index of variables. This 8088 the first column of the table into the index of variables. This
8271 simplifies the task of creating indices. Only the items on the same 8089 simplifies the task of creating indices. Only the items on the same
8272 line as the @code{@@item} commands are indexed, and they are indexed in 8090 line as the @code{@@item} commands are indexed, and they are indexed in
8273 exactly the form that they appear on that line. @xref{Indices}, 8091 exactly the form that they appear on that line. @xref{Indices, ,
8274 for more information about indices.@refill 8092 Creating Indices}, for more information about indices.@refill
8275 8093
8276 Begin a two-column table using @code{@@ftable} or @code{@@vtable} by 8094 Begin a two-column table using @code{@@ftable} or @code{@@vtable} by
8277 writing the @@-command at the beginning of a line, followed on the same 8095 writing the @@-command at the beginning of a line, followed on the same
8278 line by an argument that is a Texinfo command such as @code{@@code}, 8096 line by an argument that is a Texinfo command such as @code{@@code},
8279 exactly as you would for an @code{@@table} command; and end the table 8097 exactly as you would for an @code{@@table} command; and end the table
8280 with an @code{@@end ftable} or @code{@@end vtable} command on a line by 8098 with an @code{@@end ftable} or @code{@@end vtable} command on a line by
8281 itself. 8099 itself.
8282 8100
8283 See the example for @code{@@table} in the previous section. 8101 See the example for @code{@@table} in the previous section.
8284 8102
8285 @node itemx 8103 @node itemx, , ftable vtable, Two-column Tables
8104 @comment node-name, next, previous, up
8286 @subsection @code{@@itemx} 8105 @subsection @code{@@itemx}
8287 @cindex Two named items for @code{@@table} 8106 @cindex Two named items for @code{@@table}
8288 @findex itemx 8107 @findex itemx
8289 8108
8290 Use the @code{@@itemx} command inside a table when you have two or more 8109 Use the @code{@@itemx} command inside a table when you have two or more
8292 line of its own. Use @code{@@itemx} for all but the first entry; 8111 line of its own. Use @code{@@itemx} for all but the first entry;
8293 @code{@@itemx} should always follow an @code{@@item} command. The 8112 @code{@@itemx} should always follow an @code{@@item} command. The
8294 @code{@@itemx} command works exactly like @code{@@item} except that it 8113 @code{@@itemx} command works exactly like @code{@@item} except that it
8295 does not generate extra vertical space above the first column text. 8114 does not generate extra vertical space above the first column text.
8296 8115
8116 @need 1000
8297 For example, 8117 For example,
8298 8118
8299 @example 8119 @example
8300 @group 8120 @group
8301 @@table @@code 8121 @@table @@code
8340 @menu 8160 @menu
8341 * Multitable Column Widths:: Defining multitable column widths. 8161 * Multitable Column Widths:: Defining multitable column widths.
8342 * Multitable Rows:: Defining multitable rows, with examples. 8162 * Multitable Rows:: Defining multitable rows, with examples.
8343 @end menu 8163 @end menu
8344 8164
8345 @node Multitable Column Widths 8165 @node Multitable Column Widths, Multitable Rows, Multi-column Tables, Multi-column Tables
8346 @subsection Multitable Column Widths 8166 @subsection Multitable Column Widths
8347 @cindex Multitable column widths 8167 @cindex Multitable column widths
8348 @cindex Column widths, defining for multitables 8168 @cindex Column widths, defining for multitables
8349 @cindex Widths, defining multitable column 8169 @cindex Widths, defining multitable column
8350 8170
8363 8183
8364 @example 8184 @example
8365 @@multitable @@columnfractions .33 .33 .33 8185 @@multitable @@columnfractions .33 .33 .33
8366 @end example 8186 @end example
8367 8187
8368 @noindent The fractions need not add up exactly to 1.0, as these do 8188 @noindent
8189 The fractions need not add up exactly to 1.0, as these do
8369 not. This allows you to produce tables that do not need the full line 8190 not. This allows you to produce tables that do not need the full line
8370 length. You can use a leading zero if you wish. 8191 length.
8371 8192
8372 @item 8193 @item
8373 @cindex Prototype row, column widths defined by 8194 @cindex Prototype row, column widths defined by
8374 To specify a prototype row, write the longest entry for each column 8195 To specify a prototype row, write the longest entry for each column
8375 enclosed in braces after the @code{@@multitable} command. For example: 8196 enclosed in braces after the @code{@@multitable} command. For example:
8395 @subsection Multitable Rows 8216 @subsection Multitable Rows
8396 @cindex Multitable rows 8217 @cindex Multitable rows
8397 @cindex Rows, of a multitable 8218 @cindex Rows, of a multitable
8398 8219
8399 @findex item 8220 @findex item
8400 @findex tab 8221 @cindex tab
8401 After the @code{@@multitable} command defining the column widths (see 8222 After the @code{@@multitable} command defining the column widths (see
8402 the previous section), you begin each row in the body of a multitable 8223 the previous section), you begin each row in the body of a multitable
8403 with @code{@@item}, and separate the column entries with @code{@@tab}. 8224 with @code{@@item}, and separate the column entries with @code{@@tab}.
8404 Line breaks are not special within the table body, and you may break 8225 Line breaks are not special within the table body, and you may break
8405 input lines in your source file as necessary. 8226 input lines in your source file as necessary.
8406 8227
8407 Here is a complete example of a multi-column table (the text is from 8228 Here is a complete example of a multi-column table (the text is from
8408 @cite{The GNU Emacs Manual}, @pxref{Split Window,, Splitting Windows, 8229 @cite{The GNU Emacs Manual}, @pxref{Split Window,, Splitting Windows,
8409 emacs, The GNU Emacs Manual}): 8230 xemacs, XEmacs User's Manual}):
8410 8231
8411 @example 8232 @example
8412 @@multitable @@columnfractions .15 .45 .4 8233 @@multitable @@columnfractions .15 .45 .4
8413 @@item Key @@tab Command @@tab Description 8234 @@item Key @@tab Command @@tab Description
8414 @@item C-x 2 8235 @@item C-x 2
8424 @@tab In the mode line or scroll bar of a window, 8245 @@tab In the mode line or scroll bar of a window,
8425 split that window. 8246 split that window.
8426 @@end multitable 8247 @@end multitable
8427 @end example 8248 @end example
8428 8249
8429 @noindent produces: 8250 @noindent
8251 produces:
8430 8252
8431 @multitable @columnfractions .15 .45 .4 8253 @multitable @columnfractions .15 .45 .4
8432 @item Key @tab Command @tab Description 8254 @item Key @tab Command @tab Description
8433 @item C-x 2 8255 @item C-x 2
8434 @tab @code{split-window-vertically} 8256 @tab @code{split-window-vertically}
8445 @end multitable 8267 @end multitable
8446 8268
8447 8269
8448 @node Indices, Insertions, Lists and Tables, Top 8270 @node Indices, Insertions, Lists and Tables, Top
8449 @comment node-name, next, previous, up 8271 @comment node-name, next, previous, up
8450 @chapter Indices 8272 @chapter Creating Indices
8451 @cindex Indices 8273 @cindex Indices
8274 @cindex Creating indices
8452 8275
8453 Using Texinfo, you can generate indices without having to sort and 8276 Using Texinfo, you can generate indices without having to sort and
8454 collate entries manually. In an index, the entries are listed in 8277 collate entries manually. In an index, the entries are listed in
8455 alphabetical order, together with information on how to find the 8278 alphabetical order, together with information on how to find the
8456 discussion of each entry. In a printed manual, this information 8279 discussion of each entry. In a printed manual, this information
8582 case-sensitive name such as a C or Lisp function name or a shell 8405 case-sensitive name such as a C or Lisp function name or a shell
8583 command; that would be a spelling error. 8406 command; that would be a spelling error.
8584 8407
8585 Whichever case convention you use, please use it consistently! 8408 Whichever case convention you use, please use it consistently!
8586 8409
8410 @ignore
8411 Concept index entries consist of English text. The usual convention
8412 is to capitalize the first word of each such index entry, unless that
8413 word is the name of a function, variable, or other such entity that
8414 should not be capitalized. However, if your concept index entries are
8415 consistently short (one or two words each) it may look better for each
8416 regular entry to start with a lower case letter, aside from proper
8417 names and acronyms that always call for upper case letters. Whichever
8418 convention you adapt, please be consistent!
8419 @end ignore
8420
8587 Entries in indices other than the concept index are symbol names in 8421 Entries in indices other than the concept index are symbol names in
8588 programming languages, or program names; these names are usually 8422 programming languages, or program names; these names are usually
8589 case-sensitive, so use upper and lower case as required for them. 8423 case-sensitive, so use upper and lower case as required for them.
8590 8424
8591 By default, entries for a concept index are printed in a small roman 8425 By default, entries for a concept index are printed in a small roman
8626 Make an entry in the data type index for @var{data type}.@refill 8460 Make an entry in the data type index for @var{data type}.@refill
8627 @end table 8461 @end table
8628 8462
8629 @quotation 8463 @quotation
8630 @strong{Caution:} Do not use a colon in an index entry. In Info, a 8464 @strong{Caution:} Do not use a colon in an index entry. In Info, a
8631 colon separates the menu entry name from the node name, so a colon in 8465 colon separates the menu entry name from the node name. An extra
8632 the entry itself confuses Info. @xref{Menu Parts, , The Parts of a 8466 colon confuses Info.
8633 Menu}, for more information about the structure of a menu entry. 8467 @xref{Menu Parts, , The Parts of a Menu},
8468 for more information about the structure of a menu entry.@refill
8634 @end quotation 8469 @end quotation
8470
8471 If you write several identical index entries in different places in a
8472 Texinfo file, the index in the printed manual will list all the pages to
8473 which those entries refer. However, the index in the Info file will
8474 list @strong{only} the node that references the @strong{first} of those
8475 index entries. Therefore, it is best to write indices in which each
8476 entry refers to only one place in the Texinfo file. Fortunately, this
8477 constraint is a feature rather than a loss since it means that the index
8478 will be easy to use. Otherwise, you could create an index that lists
8479 several pages for one entry and your reader would not know to which page
8480 to turn. If you have two identical entries for one topic, change the
8481 topics slightly, or qualify them to indicate the difference.@refill
8635 8482
8636 You are not actually required to use the predefined indices for their 8483 You are not actually required to use the predefined indices for their
8637 canonical purposes. For example, suppose you wish to index some C 8484 canonical purposes. For example, suppose you wish to index some C
8638 preprocessor macros. You could put them in the function index along 8485 preprocessor macros. You could put them in the function index along
8639 with actual functions, just by writing @code{@@findex} commands for 8486 with actual functions, just by writing @code{@@findex} commands for
8822 8669
8823 You should define new indices within or right after the end-of-header 8670 You should define new indices within or right after the end-of-header
8824 line of a Texinfo file, before any @code{@@synindex} or 8671 line of a Texinfo file, before any @code{@@synindex} or
8825 @code{@@syncodeindex} commands (@pxref{Header}).@refill 8672 @code{@@syncodeindex} commands (@pxref{Header}).@refill
8826 8673
8827 @node Insertions 8674 @node Insertions, Breaks, Indices, Top
8675 @comment node-name, next, previous, up
8828 @chapter Special Insertions 8676 @chapter Special Insertions
8829 @cindex Inserting special characters and symbols 8677 @cindex Inserting special characters and symbols
8830 @cindex Special insertions 8678 @cindex Special insertions
8831 8679
8832 Texinfo provides several commands for inserting characters that have 8680 Texinfo provides several commands for inserting characters that have
8835 8683
8836 @iftex 8684 @iftex
8837 These are: 8685 These are:
8838 8686
8839 @itemize @bullet 8687 @itemize @bullet
8840 @item Braces and @samp{@@}. 8688 @item Braces, @samp{@@} and periods.
8841 @item Whitespace within and around a sentence. 8689 @item Whitespace within and around a sentence.
8842 @item Accents. 8690 @item Accents.
8843 @item Dots and bullets. 8691 @item Dots and bullets.
8844 @item The @TeX{} logo and the copyright symbol. 8692 @item The @TeX{} logo and the copyright symbol.
8845 @item The pounds currency symbol.
8846 @item The minus sign.
8847 @item Mathematical expressions. 8693 @item Mathematical expressions.
8848 @item Glyphs for evaluation, macros, errors, etc.
8849 @item Footnotes.
8850 @item Images.
8851 @end itemize 8694 @end itemize
8852 @end iftex 8695 @end iftex
8853 8696
8854 @menu 8697 @menu
8855 * Braces Atsigns:: How to insert braces, @samp{@@}. 8698 * Braces Atsigns:: How to insert braces, @samp{@@}.
8862 * pounds:: How to insert the pounds currency symbol. 8705 * pounds:: How to insert the pounds currency symbol.
8863 * minus:: How to insert a minus sign. 8706 * minus:: How to insert a minus sign.
8864 * math:: How to format a mathematical expression. 8707 * math:: How to format a mathematical expression.
8865 * Glyphs:: How to indicate results of evaluation, 8708 * Glyphs:: How to indicate results of evaluation,
8866 expansion of macros, errors, etc. 8709 expansion of macros, errors, etc.
8867 * Footnotes:: How to include footnotes.
8868 * Images:: How to include graphics. 8710 * Images:: How to include graphics.
8869 @end menu 8711 @end menu
8870 8712
8871 8713
8872 @node Braces Atsigns, Inserting Space, Insertions, Insertions 8714 @node Braces Atsigns, Inserting Space, Insertions, Insertions
8896 @code{@@@@} stands for a single @samp{@@} in either printed or Info 8738 @code{@@@@} stands for a single @samp{@@} in either printed or Info
8897 output. 8739 output.
8898 8740
8899 Do not put braces after an @code{@@@@} command. 8741 Do not put braces after an @code{@@@@} command.
8900 8742
8901 8743 @node Inserting Braces, , Inserting An Atsign, Braces Atsigns
8902 @node Inserting Braces
8903 @subsection Inserting @samp{@{} and @samp{@}}with @@@{ and @@@} 8744 @subsection Inserting @samp{@{} and @samp{@}}with @@@{ and @@@}
8904 @findex @{ @r{(single @samp{@{})} 8745 @findex @{ @r{(single @samp{@{})}
8905 @findex @} @r{(single @samp{@}})} 8746 @findex @} @r{(single @samp{@}})}
8906 8747
8907 @code{@@@{} stands for a single @samp{@{} in either printed or Info 8748 @code{@@@{} stands for a single @samp{@{} in either printed or Info
8912 8753
8913 Do not put braces after either an @code{@@@{} or an @code{@@@}} 8754 Do not put braces after either an @code{@@@{} or an @code{@@@}}
8914 command. 8755 command.
8915 8756
8916 8757
8917 @node Inserting Space 8758 @node Inserting Space, Inserting Accents, Braces Atsigns, Insertions
8918 @section Inserting Space 8759 @section Inserting Space
8919 8760
8920 @cindex Inserting space 8761 @cindex Inserting space
8921 @cindex Spacing, inserting 8762 @cindex Spacing, inserting
8763 @cindex Whitespace, inserting
8922 The following sections describe commands that control spacing of various 8764 The following sections describe commands that control spacing of various
8923 kinds within and after sentences. 8765 kinds within and after sentences.
8924 8766
8925 @menu 8767 @menu
8926 * Not Ending a Sentence:: Sometimes a . doesn't end a sentence. 8768 * Not Ending a Sentence:: Sometimes a . doesn't end a sentence.
8927 * Ending a Sentence:: Sometimes it does. 8769 * Ending a Sentence:: Sometimes it does.
8928 * Multiple Spaces:: Inserting multiple spaces. 8770 * Multiple Spaces:: Inserting multiple spaces.
8929 * dmn:: How to format a dimension. 8771 * dmn:: How to format a dimension.
8930 @end menu 8772 @end menu
8931 8773
8932 8774 @node Not Ending a Sentence, Ending a Sentence, Inserting Space, Inserting Space
8933 @node Not Ending a Sentence
8934 @subsection Not Ending a Sentence 8775 @subsection Not Ending a Sentence
8935 8776
8936 @cindex Not ending a sentence 8777 @cindex Not ending a sentence
8937 @cindex Sentence non-ending punctuation 8778 @cindex Sentence non-ending punctuation
8938 @cindex Periods, inserting 8779 @cindex Periods, inserting
8939 Depending on whether a period or exclamation point or question mark is 8780 Depending on whether a period or exclamation point or question mark is
8940 inside or at the end of a sentence, less or more space is inserted after 8781 inside or at the end of a sentence, less or more space is inserted after
8941 a period in a typeset manual. Since it is not always possible 8782 a period in a typeset manual. Since it is not always possible for
8942 to determine when a period ends a sentence and when it is used 8783 Texinfo to determine when a period ends a sentence and when it is used
8943 in an abbreviation, special commands are needed in some circumstances. 8784 in an abbreviation, special commands are needed in some circumstances.
8944 Usually, Texinfo can guess how to handle periods, so you do not need to 8785 (Usually, Texinfo can guess how to handle periods, so you do not need to
8945 use the special commands; you just enter a period as you would if you 8786 use the special commands; you just enter a period as you would if you
8946 were using a typewriter, which means you put two spaces after the 8787 were using a typewriter, which means you put two spaces after the
8947 period, question mark, or exclamation mark that ends a sentence. 8788 period, question mark, or exclamation mark that ends a sentence.)
8948 8789
8949 @findex : @r{(suppress widening)} 8790 @findex : @r{(suppress widening)}
8950 Use the @code{@@:}@: command after a period, question mark, 8791 Use the @code{@@:}@: command after a period, question mark,
8951 exclamation mark, or colon that should not be followed by extra space. 8792 exclamation mark, or colon that should not be followed by extra space.
8952 For example, use @code{@@:}@: after periods that end abbreviations 8793 For example, use @code{@@:}@: after periods that end abbreviations
8953 which are not at the ends of sentences. 8794 which are not at the ends of sentences.
8954 8795
8796 @need 700
8955 For example, 8797 For example,
8956 8798
8957 @example 8799 @example
8958 The s.o.p.@@: has three parts @dots{} 8800 The s.o.p.@@: has three parts @dots{}
8959 The s.o.p. has three parts @dots{} 8801 The s.o.p. has three parts @dots{}
9020 In the Info file output, @code{@@.}@: is equivalent to a simple 8862 In the Info file output, @code{@@.}@: is equivalent to a simple
9021 @samp{.}; likewise for @code{@@!}@: and @code{@@?}@:. 8863 @samp{.}; likewise for @code{@@!}@: and @code{@@?}@:.
9022 8864
9023 The meanings of @code{@@:} and @code{@@.}@: in Texinfo are designed to 8865 The meanings of @code{@@:} and @code{@@.}@: in Texinfo are designed to
9024 work well with the Emacs sentence motion commands (@pxref{Sentences,,, 8866 work well with the Emacs sentence motion commands (@pxref{Sentences,,,
9025 emacs, The GNU Emacs Manual}). 8867 xemacs, XEmacs User's Manual}). This made it necessary for them to be
8868 incompatible with some other formatting systems that use @@-commands.
9026 8869
9027 Do not put braces after any of these commands. 8870 Do not put braces after any of these commands.
9028 8871
9029 8872
9030 @node Multiple Spaces, dmn, Ending a Sentence, Inserting Space 8873 @node Multiple Spaces, dmn, Ending a Sentence, Inserting Space
9031 @subsection Multiple Spaces 8874 @subsection Multiple Spaces
9032 8875
9033 @cindex Multiple spaces 8876 @cindex Multiple spaces
9034 @cindex Whitespace, inserting 8877 @cindex Whitespace, inserting
9035 @cindex Space, inserting horizontal
9036 @findex (space) 8878 @findex (space)
9037 @findex (tab) 8879 @findex (tab)
9038 @findex (newline) 8880 @findex (newline)
9039 8881
9040 Ordinarily, @TeX{} collapses multiple whitespace characters (space, tab, 8882 Ordinarily, @TeX{} collapses multiple whitespace characters (space, tab,
9058 @example 8900 @example
9059 Spacey@@ @@ @@ @@ 8901 Spacey@@ @@ @@ @@
9060 example. 8902 example.
9061 @end example 8903 @end example
9062 8904
9063 @noindent produces 8905 @noindent
8906 produces
9064 8907
9065 @example 8908 @example
9066 Spacey@ @ @ @ 8909 Spacey@ @ @ @
9067 example. 8910 example.
9068 @end example 8911 @end example
9071 @code{@@multitable} (@pxref{Multi-column Tables}). 8914 @code{@@multitable} (@pxref{Multi-column Tables}).
9072 8915
9073 Do not follow any of these commands with braces. 8916 Do not follow any of these commands with braces.
9074 8917
9075 8918
9076 @node dmn 8919 @node dmn, , Multiple Spaces, Inserting Space
9077 @subsection @code{@@dmn}@{@var{dimension}@}: Format a Dimension 8920 @subsection @code{@@dmn}@{@var{dimension}@}: Format a Dimension
9078 @cindex Thin space between number, dimension 8921 @cindex Thin space between number, dimension
9079 @cindex Dimension formatting 8922 @cindex Dimension formatting
9080 @cindex Format a dimension 8923 @cindex Format a dimension
9081 @findex dmn 8924 @findex dmn
9083 At times, you may want to write @samp{12@dmn{pt}} or 8926 At times, you may want to write @samp{12@dmn{pt}} or
9084 @samp{8.5@dmn{in}} with little or no space between the number and the 8927 @samp{8.5@dmn{in}} with little or no space between the number and the
9085 abbreviation for the dimension. You can use the @code{@@dmn} command 8928 abbreviation for the dimension. You can use the @code{@@dmn} command
9086 to do this. On seeing the command, @TeX{} inserts just enough space 8929 to do this. On seeing the command, @TeX{} inserts just enough space
9087 for proper typesetting; the Info formatting commands insert no space 8930 for proper typesetting; the Info formatting commands insert no space
9088 at all, since the Info file does not require it. 8931 at all, since the Info file does not require it.@refill
9089 8932
9090 To use the @code{@@dmn} command, write the number and then follow it 8933 To use the @code{@@dmn} command, write the number and then follow it
9091 immediately, with no intervening space, by @code{@@dmn}, and then by 8934 immediately, with no intervening space, by @code{@@dmn}, and then by
9092 the dimension within braces. For example, 8935 the dimension within braces. For example,
9093 8936
9106 or @w{@samp{8.27 inches}} to @samp{8.27@@dmn@{in@}} in the Texinfo file. 8949 or @w{@samp{8.27 inches}} to @samp{8.27@@dmn@{in@}} in the Texinfo file.
9107 In these cases, however, the formatters may insert a line break between 8950 In these cases, however, the formatters may insert a line break between
9108 the number and the dimension, so use @code{@@w} (@pxref{w}). Also, if 8951 the number and the dimension, so use @code{@@w} (@pxref{w}). Also, if
9109 you write a period after an abbreviation within a sentence, you should 8952 you write a period after an abbreviation within a sentence, you should
9110 write @samp{@@:} after the period to prevent @TeX{} from inserting extra 8953 write @samp{@@:} after the period to prevent @TeX{} from inserting extra
9111 whitespace, as shown here. @xref{Not Ending a Sentence}. 8954 whitespace, as shown here. @xref{Inserting Space}.
9112 8955
9113 8956
9114 @node Inserting Accents 8957 @node Inserting Accents, Dots Bullets, Inserting Space, Insertions
9115 @section Inserting Accents 8958 @section Inserting Accents
9116 8959
9117 @cindex Inserting accents 8960 @cindex Inserting accents
9118 @cindex Accents, inserting 8961 @cindex Accents, inserting
9119 @cindex Floating accents, inserting 8962 @cindex Floating accents, inserting
9140 @findex , 8983 @findex ,
9141 @cindex Cedilla accent 8984 @cindex Cedilla accent
9142 @findex dotaccent 8985 @findex dotaccent
9143 @cindex Dot accent 8986 @cindex Dot accent
9144 @findex H 8987 @findex H
9145 @cindex Hungarian umlaut accent 8988 @cindex Hungariam umlaut accent
9146 @findex ringaccent 8989 @findex ringaccent
9147 @cindex Ring accent 8990 @cindex Ring accent
9148 @findex tieaccent 8991 @findex tieaccent
9149 @cindex Tie-after accent 8992 @cindex Tie-after accent
9150 @findex u 8993 @findex u
9208 @findex ss 9051 @findex ss
9209 @cindex @ss{} 9052 @cindex @ss{}
9210 @cindex Es-zet 9053 @cindex Es-zet
9211 @cindex Sharp S 9054 @cindex Sharp S
9212 @cindex German S 9055 @cindex German S
9213 @multitable {x@@questiondown@{@} } {oe,OE} {es-zet or sharp S} 9056 @multitable {@@questiondown@{@}} {oe,OE} {es-zet or sharp S}
9214 @item @t{@@exclamdown@{@}} @tab @exclamdown{} @tab upside-down ! 9057 @item @t{@@exclamdown@{@}} @tab @exclamdown{} @tab upside-down !
9215 @item @t{@@questiondown@{@}} @tab @questiondown{} @tab upside-down ? 9058 @item @t{@@questiondown@{@}} @tab @questiondown{} @tab upside-down ?
9216 @item @t{@@aa@{@},@@AA@{@}} @tab @aa{},@AA{} @tab a,A with circle 9059 @item @t{@@aa@{@},@@AA@{@}} @tab @aa{},@AA{} @tab A,a with circle
9217 @item @t{@@ae@{@},@@AE@{@}} @tab @ae{},@AE{} @tab ae,AE ligatures 9060 @item @t{@@ae@{@},@@AE@{@}} @tab @ae{},@AE{} @tab ae,AE ligatures
9218 @item @t{@@dotless@{i@}} @tab @dotless{i} @tab dotless i 9061 @item @t{@@dotless@{i@}} @tab @dotless{i} @tab dotless i
9219 @item @t{@@dotless@{j@}} @tab @dotless{j} @tab dotless j 9062 @item @t{@@dotless@{j@}} @tab @dotless{j} @tab dotless j
9220 @item @t{@@l@{@},@@L@{@}} @tab @l{},@L{} @tab suppressed-L,l 9063 @item @t{@@l@{@},@@L@{@}} @tab @l{},@L{} @tab suppressed-L,l
9221 @item @t{@@o@{@},@@O@{@}} @tab @o{},@O{} @tab O,o with slash 9064 @item @t{@@o@{@},@@O@{@}} @tab @o{},@O{} @tab O,o with slash
9222 @item @t{@@oe@{@},@@OE@{@}} @tab @oe{},@OE{} @tab oe,OE ligatures 9065 @item @t{@@oe@{@},@@OE@{@}} @tab @oe{},@OE{} @tab OE,oe ligatures
9223 @item @t{@@ss@{@}} @tab @ss{} @tab es-zet or sharp S 9066 @item @t{@@ss@{@}} @tab @ss{} @tab es-zet or sharp S
9224 @end multitable 9067 @end multitable
9225 9068
9226 9069
9227 @node Dots Bullets 9070 @node Dots Bullets, TeX and copyright, Inserting Accents, Insertions
9228 @section Inserting Ellipsis and Bullets 9071 @section Inserting Ellipsis, Dots, and Bullets
9229 @cindex Dots, inserting 9072 @cindex Dots, inserting
9230 @cindex Bullets, inserting 9073 @cindex Bullets, inserting
9231 @cindex Ellipsis, inserting 9074 @cindex Ellipsis, inserting
9232 @cindex Inserting ellipsis 9075 @cindex Inserting ellipsis
9233 @cindex Inserting dots 9076 @cindex Inserting dots
9247 * dots:: How to insert dots @dots{} 9090 * dots:: How to insert dots @dots{}
9248 * bullet:: How to insert a bullet. 9091 * bullet:: How to insert a bullet.
9249 @end menu 9092 @end menu
9250 9093
9251 9094
9252 @node dots 9095 @node dots, bullet, Dots Bullets, Dots Bullets
9253 @subsection @code{@@dots}@{@} (@dots{}) and @code{@@enddots}@{@} (@enddots{}) 9096 @subsection @code{@@dots}@{@} (@dots{})
9254 @findex dots 9097 @findex dots
9255 @findex enddots
9256 @cindex Inserting dots 9098 @cindex Inserting dots
9257 @cindex Dots, inserting 9099 @cindex Dots, inserting
9258 9100
9259 Use the @code{@@dots@{@}} command to generate an ellipsis, which is 9101 Use the @code{@@dots@{@}} command to generate an ellipsis, which is
9260 three dots in a row, appropriately spaced, like this: `@dots{}'. Do 9102 three dots in a row, appropriately spaced, like this: `@dots{}'. Do
9272 In printed output, the three periods in a row are closer together than 9114 In printed output, the three periods in a row are closer together than
9273 the dots in the ellipsis. 9115 the dots in the ellipsis.
9274 @end iftex 9116 @end iftex
9275 9117
9276 9118
9277 @node bullet 9119 @node bullet, , dots, Dots Bullets
9278 @subsection @code{@@bullet}@{@} (@bullet{}) 9120 @subsection @code{@@bullet}@{@} (@bullet{})
9279 @findex bullet 9121 @findex bullet
9280 9122
9281 Use the @code{@@bullet@{@}} command to generate a large round dot, or 9123 Use the @code{@@bullet@{@}} command to generate a large round dot, or
9282 the closest possible thing to one. In Info, an asterisk is used.@refill 9124 the closest possible thing to one. In Info, an asterisk is used.@refill
9301 * tex:: How to insert the @TeX{} logo. 9143 * tex:: How to insert the @TeX{} logo.
9302 * copyright symbol:: How to use @code{@@copyright}@{@}. 9144 * copyright symbol:: How to use @code{@@copyright}@{@}.
9303 @end menu 9145 @end menu
9304 9146
9305 9147
9306 @node tex 9148 @node tex, copyright symbol, TeX and copyright, TeX and copyright
9307 @subsection @code{@@TeX}@{@} (@TeX{}) 9149 @subsection @code{@@TeX}@{@} (@TeX{})
9308 @findex tex (command) 9150 @findex tex (command)
9309 9151
9310 Use the @code{@@TeX@{@}} command to generate `@TeX{}'. In a printed 9152 Use the @code{@@TeX@{@}} command to generate `@TeX{}'. In a printed
9311 manual, this is a special logo that is different from three ordinary 9153 manual, this is a special logo that is different from three ordinary
9312 letters. In Info, it just looks like @samp{TeX}. The 9154 letters. In Info, it just looks like @samp{TeX}. The
9313 @code{@@TeX@{@}} command is unique among Texinfo commands in that the 9155 @code{@@TeX@{@}} command is unique among Texinfo commands in that the
9314 @samp{T} and the @samp{X} are in upper case.@refill 9156 @kbd{T} and the @kbd{X} are in upper case.@refill
9315 9157
9316 9158
9317 @node copyright symbol 9159 @node copyright symbol, , tex, TeX and copyright
9318 @subsection @code{@@copyright}@{@} (@copyright{}) 9160 @subsection @code{@@copyright}@{@} (@copyright{})
9319 @findex copyright 9161 @findex copyright
9320 9162
9321 Use the @code{@@copyright@{@}} command to generate `@copyright{}'. In 9163 Use the @code{@@copyright@{@}} command to generate `@copyright{}'. In
9322 a printed manual, this is a @samp{c} inside a circle, and in Info, 9164 a printed manual, this is a @samp{c} inside a circle, and in Info,
9323 this is @samp{(C)}.@refill 9165 this is @samp{(C)}.@refill
9324 9166
9325 9167
9326 @node pounds, minus, TeX and copyright, Insertions 9168 @node pounds, minus, TeX and copyright, Insertions
9327 @section @code{@@pounds}@{@} (@pounds{}): Pounds Sterling 9169 @section @code{@@pounds@{@}} (@pounds{}): Pounds Sterling
9328 @findex pounds 9170 @findex pounds
9329 9171
9330 Use the @code{@@pounds@{@}} command to generate `@pounds{}'. In a 9172 Use the @code{@@pounds@{@}} command to generate `@pounds{}'. In a
9331 printed manual, this is the symbol for the currency pounds sterling. 9173 printed manual, this is the symbol for the currency pounds sterling.
9332 In Info, it is a @samp{#}. Other currency symbols are unfortunately not 9174 In Info, it is a @samp{#}. Other currency symbols are unfortunately not
9362 an itemized list, you do not need to type the braces 9204 an itemized list, you do not need to type the braces
9363 (@pxref{itemize, , @code{@@itemize}}.) 9205 (@pxref{itemize, , @code{@@itemize}}.)
9364 9206
9365 9207
9366 @node math, Glyphs, minus, Insertions 9208 @node math, Glyphs, minus, Insertions
9367 @section @code{@@math}: Inserting Mathematical Expressions 9209 @section @code{@@math} - Inserting Mathematical Expressions
9368 @findex math 9210 @findex math
9369 @cindex Mathematical expressions 9211 @cindex Mathematical expressions
9370 9212
9371 You can write a short mathematical expression with the @code{@@math} 9213 You can write a short mathematical expression with the @code{@@math}
9372 command. Write the mathematical expression between braces, like this: 9214 command. Write the mathematical expression between braces, like this:
9402 (@pxref{Raw Formatter Commands}). When you use @TeX{} directly, 9244 (@pxref{Raw Formatter Commands}). When you use @TeX{} directly,
9403 remember to write the mathematical expression between one or two 9245 remember to write the mathematical expression between one or two
9404 @samp{$} (dollar-signs) as appropriate. 9246 @samp{$} (dollar-signs) as appropriate.
9405 9247
9406 9248
9407 @node Glyphs 9249 @node Glyphs, Images, math, Insertions
9408 @section Glyphs for Examples 9250 @section Glyphs for Examples
9409 @cindex Glyphs 9251 @cindex Glyphs
9410 9252
9411 In Texinfo, code is often illustrated in examples that are delimited 9253 In Texinfo, code is often illustrated in examples that are delimited
9412 by @code{@@example} and @code{@@end example}, or by @code{@@lisp} and 9254 by @code{@@example} and @code{@@end example}, or by @code{@@lisp} and
9459 @code{@@point@{@}} shows the location of point.@refill 9301 @code{@@point@{@}} shows the location of point.@refill
9460 @end table 9302 @end table
9461 9303
9462 9304
9463 @menu 9305 @menu
9464 * result:: 9306 * result::
9465 * expansion:: 9307 * expansion::
9466 * Print Glyph:: 9308 * Print Glyph::
9467 * Error Glyph:: 9309 * Error Glyph::
9468 * Equivalence:: 9310 * Equivalence::
9469 * Point Glyph:: 9311 * Point Glyph::
9470 @end menu 9312 @end menu
9471 9313
9472 @node result, expansion, Glyphs Summary, Glyphs 9314 @node result, expansion, Glyphs Summary, Glyphs
9473 @subsection @code{@@result@{@}} (@result{}): Indicating Evaluation 9315 @subsection @code{@@result@{@}} (@result{}): Indicating Evaluation
9474 @cindex Result of an expression 9316 @cindex Result of an expression
9475 @cindex Indicating evaluation 9317 @cindex Indicating evaluation
9476 @cindex Evaluation glyph 9318 @cindex Evaluation glyph
9477 @cindex Value of an expression, indicating 9319 @cindex Value of an expression, indicating
9478 @findex result
9479 9320
9480 Use the @code{@@result@{@}} command to indicate the result of 9321 Use the @code{@@result@{@}} command to indicate the result of
9481 evaluating an expression.@refill 9322 evaluating an expression.@refill
9482 9323
9483 @iftex 9324 @iftex
9501 9342
9502 9343
9503 @node expansion, Print Glyph, result, Glyphs 9344 @node expansion, Print Glyph, result, Glyphs
9504 @subsection @code{@@expansion@{@}} (@expansion{}): Indicating an Expansion 9345 @subsection @code{@@expansion@{@}} (@expansion{}): Indicating an Expansion
9505 @cindex Expansion, indicating it 9346 @cindex Expansion, indicating it
9506 @findex expansion
9507 9347
9508 When an expression is a macro call, it expands into a new expression. 9348 When an expression is a macro call, it expands into a new expression.
9509 You can indicate the result of the expansion with the 9349 You can indicate the result of the expansion with the
9510 @code{@@expansion@{@}} command.@refill 9350 @code{@@expansion@{@}} command.@refill
9511 9351
9557 9397
9558 9398
9559 @node Print Glyph, Error Glyph, expansion, Glyphs 9399 @node Print Glyph, Error Glyph, expansion, Glyphs
9560 @subsection @code{@@print@{@}} (@print{}): Indicating Printed Output 9400 @subsection @code{@@print@{@}} (@print{}): Indicating Printed Output
9561 @cindex Printed output, indicating it 9401 @cindex Printed output, indicating it
9562 @findex print
9563 9402
9564 Sometimes an expression will print output during its execution. You 9403 Sometimes an expression will print output during its execution. You
9565 can indicate the printed output with the @code{@@print@{@}} command.@refill 9404 can indicate the printed output with the @code{@@print@{@}} command.@refill
9566 9405
9567 @iftex 9406 @iftex
9603 9442
9604 9443
9605 @node Error Glyph, Equivalence, Print Glyph, Glyphs 9444 @node Error Glyph, Equivalence, Print Glyph, Glyphs
9606 @subsection @code{@@error@{@}} (@error{}): Indicating an Error Message 9445 @subsection @code{@@error@{@}} (@error{}): Indicating an Error Message
9607 @cindex Error message, indicating it 9446 @cindex Error message, indicating it
9608 @findex error
9609 9447
9610 A piece of code may cause an error when you evaluate it. You can 9448 A piece of code may cause an error when you evaluate it. You can
9611 designate the error message with the @code{@@error@{@}} command.@refill 9449 designate the error message with the @code{@@error@{@}} command.@refill
9612 9450
9613 @iftex 9451 @iftex
9649 9487
9650 9488
9651 @node Equivalence, Point Glyph, Error Glyph, Glyphs 9489 @node Equivalence, Point Glyph, Error Glyph, Glyphs
9652 @subsection @code{@@equiv@{@}} (@equiv{}): Indicating Equivalence 9490 @subsection @code{@@equiv@{@}} (@equiv{}): Indicating Equivalence
9653 @cindex Equivalence, indicating it 9491 @cindex Equivalence, indicating it
9654 @findex equiv
9655 9492
9656 Sometimes two expressions produce identical results. You can indicate the 9493 Sometimes two expressions produce identical results. You can indicate the
9657 exact equivalence of two forms with the @code{@@equiv@{@}} command.@refill 9494 exact equivalence of two forms with the @code{@@equiv@{@}} command.@refill
9658 9495
9659 @iftex 9496 @iftex
9683 @noindent 9520 @noindent
9684 This indicates that evaluating @code{(make-sparse-keymap)} produces 9521 This indicates that evaluating @code{(make-sparse-keymap)} produces
9685 identical results to evaluating @code{(list 'keymap)}. 9522 identical results to evaluating @code{(list 'keymap)}.
9686 9523
9687 9524
9688 @node Point Glyph 9525 @node Point Glyph, , Equivalence, Glyphs
9689 @subsection @code{@@point@{@}} (@point{}): Indicating Point in a Buffer 9526 @subsection @code{@@point@{@}} (@point{}): Indicating Point in a Buffer
9690 @cindex Point, indicating in a buffer 9527 @cindex Point, indicating it in a buffer
9691 @findex point
9692 9528
9693 Sometimes you need to show an example of text in an Emacs buffer. In 9529 Sometimes you need to show an example of text in an Emacs buffer. In
9694 such examples, the convention is to include the entire contents of the 9530 such examples, the convention is to include the entire contents of the
9695 buffer in question between two lines of dashes containing the buffer 9531 buffer in question between two lines of dashes containing the buffer
9696 name.@refill 9532 name.@refill
9747 ---------- Buffer: foo ---------- 9583 ---------- Buffer: foo ----------
9748 @@end example 9584 @@end example
9749 @end example 9585 @end example
9750 9586
9751 9587
9752 @node Footnotes
9753 @section Footnotes
9754 @cindex Footnotes
9755 @findex footnote
9756
9757 A @dfn{footnote} is for a reference that documents or elucidates the
9758 primary text.@footnote{A footnote should complement or expand upon
9759 the primary text, but a reader should not need to read a footnote to
9760 understand the primary text. For a thorough discussion of footnotes,
9761 see @cite{The Chicago Manual of Style}, which is published by the
9762 University of Chicago Press.}@refill
9763
9764 @menu
9765 * Footnote Commands:: How to write a footnote in Texinfo.
9766 * Footnote Styles:: Controlling how footnotes appear in Info.
9767 @end menu
9768
9769 @node Footnote Commands
9770 @subsection Footnote Commands
9771
9772 In Texinfo, footnotes are created with the @code{@@footnote} command.
9773 This command is followed immediately by a left brace, then by the text
9774 of the footnote, and then by a terminating right brace. Footnotes may
9775 be of any length (they will be broken across pages if necessary), but
9776 are usually short. The template is:
9777
9778 @example
9779 ordinary text@@footnote@{@var{text of footnote}@}
9780 @end example
9781
9782 As shown here, the @code{@@footnote} command should come right after the
9783 text being footnoted, with no intervening space; otherwise, the footnote
9784 marker might end up starting a line.
9785
9786 For example, this clause is followed by a sample footnote@footnote{Here
9787 is the sample footnote.}; in the Texinfo source, it looks like
9788 this:@refill
9789
9790 @example
9791 @dots{}a sample footnote@@footnote@{Here is the sample
9792 footnote.@}; in the Texinfo source@dots{}
9793 @end example
9794
9795 In a printed manual or book, the reference mark for a footnote is a
9796 small, superscripted number; the text of the footnote appears at the
9797 bottom of the page, below a horizontal line.@refill
9798
9799 In Info, the reference mark for a footnote is a pair of parentheses
9800 with the footnote number between them, like this: @samp{(1)}. The
9801 reference mark is followed by a cross-reference link to the footnote's
9802 text.
9803
9804 In the HTML output, footnote references are marked with a small,
9805 superscripted number which is rendered as a hypertext link to the
9806 footnote text.
9807
9808 By the way, footnotes in the argument of an @code{@@item} command for a
9809 @code{@@table} must be on the same line as the @code{@@item}
9810 (as usual). @xref{Two-column Tables}.
9811
9812
9813 @node Footnote Styles
9814 @subsection Footnote Styles
9815
9816 Info has two footnote styles, which determine where the text of the
9817 footnote is located:@refill
9818
9819 @itemize @bullet
9820 @cindex @samp{@r{End}} node footnote style
9821 @item
9822 In the `End' node style, all the footnotes for a single node
9823 are placed at the end of that node. The footnotes are separated from
9824 the rest of the node by a line of dashes with the word
9825 @samp{Footnotes} within it. Each footnote begins with an
9826 @samp{(@var{n})} reference mark.@refill
9827
9828 @need 700
9829 @noindent
9830 Here is an example of a single footnote in the end of node style:@refill
9831
9832 @example
9833 @group
9834 --------- Footnotes ---------
9835
9836 (1) Here is a sample footnote.
9837 @end group
9838 @end example
9839
9840 @cindex @samp{@r{Separate}} footnote style
9841 @item
9842 In the `Separate' node style, all the footnotes for a single
9843 node are placed in an automatically constructed node of
9844 their own. In this style, a ``footnote reference'' follows
9845 each @samp{(@var{n})} reference mark in the body of the
9846 node. The footnote reference is actually a cross reference
9847 which you use to reach the footnote node.@refill
9848
9849 The name of the node with the footnotes is constructed
9850 by appending @w{@samp{-Footnotes}} to the name of the node
9851 that contains the footnotes. (Consequently, the footnotes'
9852 node for the @file{Footnotes} node is
9853 @w{@file{Footnotes-Footnotes}}!) The footnotes' node has an
9854 `Up' node pointer that leads back to its parent node.@refill
9855
9856 @noindent
9857 Here is how the first footnote in this manual looks after being
9858 formatted for Info in the separate node style:@refill
9859
9860 @smallexample
9861 @group
9862 File: texinfo.info Node: Overview-Footnotes, Up: Overview
9863
9864 (1) The first syllable of "Texinfo" is pronounced like "speck", not
9865 "hex". @dots{}
9866 @end group
9867 @end smallexample
9868 @end itemize
9869
9870 A Texinfo file may be formatted into an Info file with either footnote
9871 style.@refill
9872
9873 @findex footnotestyle
9874 Use the @code{@@footnotestyle} command to specify an Info file's
9875 footnote style. Write this command at the beginning of a line followed
9876 by an argument, either @samp{end} for the end node style or
9877 @samp{separate} for the separate node style.
9878
9879 @need 700
9880 For example,
9881
9882 @example
9883 @@footnotestyle end
9884 @end example
9885 @noindent
9886 or
9887 @example
9888 @@footnotestyle separate
9889 @end example
9890
9891 Write an @code{@@footnotestyle} command before or shortly after the
9892 end-of-header line at the beginning of a Texinfo file. (If you
9893 include the @code{@@footnotestyle} command between the start-of-header
9894 and end-of-header lines, the region formatting commands will format
9895 footnotes as specified.)@refill
9896
9897 If you do not specify a footnote style, the formatting commands use
9898 their default style. Currently, @code{texinfo-format-buffer} and
9899 @code{texinfo-format-region} use the `separate' style and
9900 @code{makeinfo} uses the `end' style.@refill
9901
9902 @c !!! note: makeinfo's --footnote-style option overrides footnotestyle
9903 @ignore
9904 If you use @code{makeinfo} to create the Info file, the
9905 @samp{--footnote-style} option determines which style is used,
9906 @samp{end} for the end of node style or @samp{separate} for the
9907 separate node style. Thus, to format the Texinfo manual in the
9908 separate node style, you would use the following shell command:@refill
9909
9910 @example
9911 makeinfo --footnote-style=separate texinfo.texi
9912 @end example
9913
9914 @noindent
9915 To format the Texinfo manual in the end of node style, you would
9916 type:@refill
9917
9918 @example
9919 makeinfo --footnote-style=end texinfo.texi
9920 @end example
9921 @end ignore
9922 @ignore
9923 If you use @code{texinfo-format-buffer} or
9924 @code{texinfo-format-region} to create the Info file, the value of the
9925 @code{texinfo-footnote-style} variable controls the footnote style.
9926 It can be either @samp{"separate"} for the separate node style or
9927 @samp{"end"} for the end of node style. (You can change the value of
9928 this variable with the @kbd{M-x edit-options} command (@pxref{Edit
9929 Options, , Editing Variable Values, emacs, The GNU Emacs Manual}), or
9930 with the @kbd{M-x set-variable} command (@pxref{Examining, , Examining
9931 and Setting Variables, emacs, The GNU Emacs Manual}).@refill
9932
9933 The @code{texinfo-footnote-style} variable also controls the style if
9934 you use the @kbd{M-x makeinfo-region} or @kbd{M-x makeinfo-buffer}
9935 command in Emacs.@refill
9936 @end ignore
9937 @ifinfo
9938 This chapter contains two footnotes.@refill
9939 @end ifinfo
9940
9941
9942 @c this should be described with figures when we have them 9588 @c this should be described with figures when we have them
9943 @c perhaps in the quotation/example chapter. 9589 @c perhaps in the quotation/example chapter.
9944 @node Images 9590 @node Images, , Glyphs, Insertions
9945 @section Inserting Images 9591 @section Inserting Images
9946 9592
9947 @cindex Images, inserting 9593 @cindex Images, inserting
9948 @cindex Pictures, inserting 9594 @cindex Pictures, inserting
9949 @findex image 9595 @findex image
9950 9596
9951 You can insert an image given in an external file with the 9597 You can insert an image in an external file with the @code{@@image}
9952 @code{@@image} command: 9598 command:
9953 9599
9954 @example 9600 @example
9955 @@image@{@var{filename}, @r{[}@var{width}@r{]}, @r{[}@var{height}@r{]}@} 9601 @@image@{@var{filename}, @r{[}@var{width}@r{]}, @r{[}@var{height}@r{]}@}
9956 @end example 9602 @end example
9957 9603
9958 @cindex Formats for images 9604 @cindex Formats for images
9959 @cindex Image formats 9605 @cindex Image formats
9960 The @var{filename} argument is mandatory, and must not have an 9606 The @var{filename} argument is mandatory, and must not have an
9961 extension, because the different processors support different formats: 9607 extension, because the different processors support different formats:
9962 @itemize @bullet
9963 @item
9964 @TeX{} reads the file @file{@var{filename}.eps} (Encapsulated PostScript 9608 @TeX{} reads the file @file{@var{filename}.eps} (Encapsulated PostScript
9965 format). 9609 format); @code{makeinfo} uses @file{@var{filename}.txt} verbatim for
9966 @item 9610 Info output (more or less as if it was an @code{@@example}). HTML
9967 @pindex pdftex@r{, and images} 9611 output requires @file{@var{filename}.jpg}.
9968 PDF@TeX{} reads @file{@var{filename}.pdf} (Adobe's Portable Document Format).
9969 @item
9970 @code{makeinfo} uses @file{@var{filename}.txt} verbatim for
9971 Info output (more or less as if it was an @code{@@example}).
9972 @item
9973 @cindex GIF, unsupported due to patents
9974 @cindex PNG image format
9975 @cindex JPEG image format
9976 @code{makeinfo} producing HTML output tries @file{@var{filename}.png};
9977 if that does not exist, it tries @file{@var{filename}.jpg}. If that
9978 does not exist either, it complains. (We cannot support GIF format due
9979 to patents.)
9980 @end itemize
9981 9612
9982 @cindex Width of images 9613 @cindex Width of images
9983 @cindex Height of images 9614 @cindex Height of images
9984 @cindex Aspect ratio of images 9615 @cindex Aspect ratio of images
9985 @cindex Distorting images 9616 @cindex Distorting images
9986 The optional @var{width} and @var{height} arguments specify the size to 9617 The optional @var{width} and @var{height} arguments specify the size to
9987 scale the image to (they are ignored for Info output). If neither is 9618 scale the image to (they are ignored for Info output). If they are both
9988 specified, the image is presented in its natural size (given in the 9619 specified, the image is presented in its natural size (given in the
9989 file); if only one is specified, the other is scaled proportionately; 9620 file); if only one is specified, the other is scaled proportionately;
9990 and if both are specified, both are respected, thus possibly distorting 9621 and if both are specified, both are respected, thus possibly distorting
9991 the original image by changing its aspect ratio. 9622 the original image by changing its aspect ratio.
9992 9623
10032 @@image@{ridt,,1in@} 9663 @@image@{ridt,,1in@}
10033 @end example 9664 @end example
10034 9665
10035 @pindex epsf.tex 9666 @pindex epsf.tex
10036 For @code{@@image} to work with @TeX{}, the file @file{epsf.tex} must be 9667 For @code{@@image} to work with @TeX{}, the file @file{epsf.tex} must be
10037 installed somewhere that @TeX{} can find it. (The standard location is 9668 installed somewhere that @TeX{} can find it. This file is included in
10038 @file{@var{texmf}/tex/generic/dvips/epsf.tex}, where @var{texmf} is a 9669 the Texinfo distribution and is available from
10039 root of your @TeX{} directory tree.) This file is included in the 9670 @uref{ftp://ftp.tug.org/tex/epsf.tex}.
10040 Texinfo distribution and is available from 9671
10041 @uref{ftp://tug.org/tex/epsf.tex}. 9672
10042 9673 @node Breaks, Definition Commands, Insertions, Top
10043 @code{@@image} can be used within a line as well as for displayed
10044 figures. Therefore, if you intend it to be displayed, be sure to leave
10045 a blank line before the command, or the output will run into the
10046 preceding text.
10047
10048
10049 @node Breaks
10050 @chapter Making and Preventing Breaks 9674 @chapter Making and Preventing Breaks
10051 @cindex Making line and page breaks 9675 @cindex Making line and page breaks
10052 @cindex Preventing line and page breaks 9676 @cindex Preventing line and page breaks
10053 9677
10054 Usually, a Texinfo file is processed both by @TeX{} and by one of the 9678 Usually, a Texinfo file is processed both by @TeX{} and by one of the
10074 * page:: How to force the start of a new page. 9698 * page:: How to force the start of a new page.
10075 * group:: How to prevent unwanted page breaks. 9699 * group:: How to prevent unwanted page breaks.
10076 * need:: Another way to prevent unwanted page breaks. 9700 * need:: Another way to prevent unwanted page breaks.
10077 @end menu 9701 @end menu
10078 9702
9703 @ifinfo
10079 @node Break Commands, Line Breaks, Breaks, Breaks 9704 @node Break Commands, Line Breaks, Breaks, Breaks
10080 @ifinfo 9705 @heading The Break Commands
10081 @heading Break Commands
10082 @end ifinfo 9706 @end ifinfo
9707 @iftex
9708 @sp 1
9709 @end iftex
10083 9710
10084 The break commands create or allow line and paragraph breaks:@refill 9711 The break commands create or allow line and paragraph breaks:@refill
10085 9712
10086 @table @code 9713 @table @code
10087 @item @@* 9714 @item @@*
10204 Tell @TeX{} how to hyphenate @var{hy-phen-a-ted words}. As shown, you 9831 Tell @TeX{} how to hyphenate @var{hy-phen-a-ted words}. As shown, you
10205 put a @samp{-} at each hyphenation point. For example: 9832 put a @samp{-} at each hyphenation point. For example:
10206 @example 9833 @example
10207 @@hyphenation@{man-u-script man-u-scripts@} 9834 @@hyphenation@{man-u-script man-u-scripts@}
10208 @end example 9835 @end example
10209 @noindent @TeX{} only uses the specified hyphenation points when the 9836 @noindent
9837 @TeX{} only uses the specified hyphenation points when the
10210 words match exactly, so give all necessary variants. 9838 words match exactly, so give all necessary variants.
10211 @end table 9839 @end table
10212 9840
10213 Info output is not hyphenated, so these commands have no effect there. 9841 Info output is not hyphenated, so these commands have no effect there.
10214 9842
10215 @node w 9843 @node w, sp, - and hyphenation, Breaks
9844 @comment node-name, next, previous, up
10216 @section @code{@@w}@{@var{text}@}: Prevent Line Breaks 9845 @section @code{@@w}@{@var{text}@}: Prevent Line Breaks
10217 @findex w @r{(prevent line break)} 9846 @findex w @r{(prevent line break)}
10218 @cindex Line breaks, preventing 9847 @cindex Line breaks, preventing
10219 @cindex Hyphenation, preventing 9848 @cindex Hyphenation, preventing
10220 9849
10221 @code{@@w@{@var{text}@}} outputs @var{text} and prohibits line breaks 9850 @code{@@w@{@var{text}@}} outputs @var{text} and prohibits line breaks
10222 within @var{text}.@refill 9851 within @var{text}.@refill
10223 9852
10224 You can use the @code{@@w} command to prevent @TeX{} from automatically 9853 You can use the @code{@@w} command to prevent @TeX{} from automatically
10225 hyphenating a long name or phrase that happens to fall near the end of a 9854 hyphenating a long name or phrase that happens to fall near the end of a
10226 line. For example: 9855 line.@refill
10227 9856
10228 @example 9857 @example
10229 You can copy GNU software from @@w@{@@samp@{ftp.gnu.org@}@}. 9858 You can copy GNU software from @@w@{@@samp@{ftp.gnu.ai.mit.edu@}@}.
10230 @end example 9859 @end example
10231 9860
10232 @noindent 9861 @noindent
10233 produces 9862 produces
10234 9863
10235 @quotation 9864 @quotation
10236 You can copy GNU software from @w{@samp{ftp.gnu.org}}. 9865 You can copy GNU software from @w{@samp{ftp.gnu.ai.mit.edu}}.
10237 @end quotation 9866 @end quotation
10238 9867
10239 @cindex Non-breakable space 9868 @quotation
10240 @cindex Unbreakable space 9869 @strong{Caution:} Do not write an @code{@@refill} command at the end
10241 @cindex Tied space 9870 of a paragraph containing an @code{@@w} command; it will cause the
10242 You can also use @code{@@w} to produce a non-breakable space: 9871 paragraph to be refilled and may thereby negate the effect of the
10243 9872 @code{@@w} command.@refill
10244 @example 9873 @end quotation
10245 None of the formatters will break at this@@w@{ @}space. 9874
10246 @end example 9875 @node sp, page, w, Breaks
10247 9876 @comment node-name, next, previous, up
10248
10249 @node sp
10250 @section @code{@@sp} @var{n}: Insert Blank Lines 9877 @section @code{@@sp} @var{n}: Insert Blank Lines
10251 @findex sp @r{(line spacing)} 9878 @findex sp @r{(line spacing)}
10252 @cindex Space, inserting vertical 9879 @cindex Spaces (blank lines)
10253 @cindex Blank lines 9880 @cindex Blank lines
10254 @cindex Line spacing 9881 @cindex Line spacing
10255 9882
10256 A line beginning with and containing only @code{@@sp @var{n}} 9883 A line beginning with and containing only @code{@@sp @var{n}}
10257 generates @var{n} blank lines of space in both the printed manual and 9884 generates @var{n} blank lines of space in both the printed manual and
10258 the Info file. @code{@@sp} also forces a paragraph break. For 9885 the Info file. @code{@@sp} also forces a paragraph break. For
10259 example, 9886 example,@refill
10260 9887
10261 @example 9888 @example
10262 @@sp 2 9889 @@sp 2
10263 @end example 9890 @end example
10264 9891
10400 @end example 10027 @end example
10401 10028
10402 The @code{@@need} command is useful for preventing orphans (single 10029 The @code{@@need} command is useful for preventing orphans (single
10403 lines at the bottoms of printed pages).@refill 10030 lines at the bottoms of printed pages).@refill
10404 10031
10405 10032 @node Definition Commands, Footnotes, Breaks, Top
10406 @node Definition Commands
10407 @chapter Definition Commands 10033 @chapter Definition Commands
10408 @cindex Definition commands 10034 @cindex Definition commands
10409 10035
10410 The @code{@@deffn} command and the other @dfn{definition commands} 10036 The @code{@@deffn} command and the other @dfn{definition commands}
10411 enable you to describe functions, variables, macros, commands, user 10037 enable you to describe functions, variables, macros, commands, user
10660 @deffn {Interactive Command} isearch-forward 10286 @deffn {Interactive Command} isearch-forward
10661 @deffnx {Interactive Command} isearch-backward 10287 @deffnx {Interactive Command} isearch-backward
10662 These two search commands are similar except @dots{} 10288 These two search commands are similar except @dots{}
10663 @end deffn 10289 @end deffn
10664 10290
10665 Each definition command has an `x' form: @code{@@defunx}, 10291 Each of the other definition commands has an `x' form: @code{@@defunx},
10666 @code{@@defvrx}, @code{@@deftypefunx}, etc. 10292 @code{@@defvrx}, @code{@@deftypefunx}, etc.
10667 10293
10668 The `x' forms work just like @code{@@itemx}; see @ref{itemx, , @code{@@itemx}}. 10294 The `x' forms work just like @code{@@itemx}; see @ref{itemx, , @code{@@itemx}}.
10669 10295
10670 @node Def Cmds in Detail, Def Cmd Conventions, deffnx, Definition Commands 10296 @node Def Cmds in Detail, Def Cmd Conventions, deffnx, Definition Commands
10788 10414
10789 @findex defspec 10415 @findex defspec
10790 @item @@defspec @var{name} @var{arguments}@dots{} 10416 @item @@defspec @var{name} @var{arguments}@dots{}
10791 The @code{@@defspec} command is the definition command for special 10417 The @code{@@defspec} command is the definition command for special
10792 forms. (In Lisp, a special form is an entity much like a function, 10418 forms. (In Lisp, a special form is an entity much like a function,
10793 @pxref{Special Forms,,, elisp, GNU Emacs Lisp Reference Manual}.) 10419 @pxref{Special Forms,,, lispref, XEmacs Lisp Reference Manual}.)
10794 @code{@@defspec} is equivalent to @samp{@@deffn @{Special Form@} 10420 @code{@@defspec} is equivalent to @samp{@@deffn @{Special Form@}
10795 @dots{}} and works like @code{@@defun}.@refill 10421 @dots{}} and works like @code{@@defun}.@refill
10796 @end table 10422 @end table
10797 10423
10798 @node Variables Commands, Typed Functions, Functions Commands, Def Cmds in Detail 10424 @node Variables Commands, Typed Functions, Functions Commands, Def Cmds in Detail
10807 The @code{@@defvr} command is a general definition command for 10433 The @code{@@defvr} command is a general definition command for
10808 something like a variable---an entity that records a value. You must 10434 something like a variable---an entity that records a value. You must
10809 choose a term to describe the category of entity being defined; for 10435 choose a term to describe the category of entity being defined; for
10810 example, ``Variable'' could be used if the entity is a variable. 10436 example, ``Variable'' could be used if the entity is a variable.
10811 Write the @code{@@defvr} command at the beginning of a line and 10437 Write the @code{@@defvr} command at the beginning of a line and
10812 follow it on the same line by the category of the entity and the 10438 followed it on the same line by the category of the entity and the
10813 name of the entity. 10439 name of the entity.@refill
10814 10440
10815 Capitalize the category name like a title. If the name of the category 10441 Capitalize the category name like a title. If the name of the category
10816 contains spaces, as in the name ``User Option'', enclose it in braces. 10442 contains spaces, as in the name ``User Option'', enclose it in braces.
10817 Otherwise, the second word will be mistaken for the name of the entity. 10443 Otherwise, the second word will be mistaken for the name of the entity.
10818 For example, 10444 For example,
10875 @findex defopt 10501 @findex defopt
10876 @item @@defopt @var{name} 10502 @item @@defopt @var{name}
10877 @cindex User options, marking 10503 @cindex User options, marking
10878 The @code{@@defopt} command is the definition command for @dfn{user 10504 The @code{@@defopt} command is the definition command for @dfn{user
10879 options}, i.e., variables intended for users to change according to 10505 options}, i.e., variables intended for users to change according to
10880 taste; Emacs has many such (@pxref{Variables,,, emacs, The GNU Emacs 10506 taste; Emacs has many such (@pxref{Variables,,, xemacs, XEmacs User's
10881 Manual}). @code{@@defopt} is equivalent to @samp{@@defvr @{User 10507 Manual}). @code{@@defopt} is equivalent to @samp{@@defvr @{User
10882 Option@} @dots{}} and works like @code{@@defvar}.@refill 10508 Option@} @dots{}} and works like @code{@@defvar}.@refill
10883 @end table 10509 @end table
10884 10510
10885 10511
11171 10797
11172 @code{@@deftypevar} creates an entry in the index of variables for 10798 @code{@@deftypevar} creates an entry in the index of variables for
11173 @var{name}.@refill 10799 @var{name}.@refill
11174 @end table 10800 @end table
11175 10801
11176 @node Abstract Objects 10802 @node Abstract Objects, Data Types, Typed Variables, Def Cmds in Detail
11177 @subsection Object-Oriented Programming 10803 @subsection Object-Oriented Programming
11178 10804
11179 Here are the commands for formatting descriptions about abstract 10805 Here are the commands for formatting descriptions about abstract
11180 objects, such as are used in object-oriented programming. A class is 10806 objects, such as are used in object-oriented programming. A class is
11181 a defined type of abstract object. An instance of a class is a 10807 a defined type of abstract object. An instance of a class is a
11206 10832
11207 @noindent 10833 @noindent
11208 illustrates how you would write the first line of a definition of the 10834 illustrates how you would write the first line of a definition of the
11209 @code{border-pattern} class option of the class @code{Window}.@refill 10835 @code{border-pattern} class option of the class @code{Window}.@refill
11210 10836
11211 The template is: 10837 The template is
10838
11212 @example 10839 @example
11213 @group 10840 @group
11214 @@defcv @var{category} @var{class} @var{name} 10841 @@defcv @var{category} @var{class} @var{name}
11215 @dots{} 10842 @dots{}
11216 @@end defcv 10843 @@end defcv
11224 The @code{@@defivar} command is the definition command for instance 10851 The @code{@@defivar} command is the definition command for instance
11225 variables in object-oriented programming. @code{@@defivar} is 10852 variables in object-oriented programming. @code{@@defivar} is
11226 equivalent to @samp{@@defcv @{Instance Variable@} @dots{}}@refill 10853 equivalent to @samp{@@defcv @{Instance Variable@} @dots{}}@refill
11227 10854
11228 The template is: 10855 The template is:
10856
11229 @example 10857 @example
11230 @group 10858 @group
11231 @@defivar @var{class} @var{instance-variable-name} 10859 @@defivar @var{class} @var{instance-variable-name}
11232 @var{body-of-definition} 10860 @var{body-of-definition}
11233 @@end defivar 10861 @@end defivar
11234 @end group 10862 @end group
11235 @end example 10863 @end example
11236 10864
11237 @code{@@defivar} creates an entry in the index of variables. 10865 @code{@@defivar} creates an entry in the index of variables.
11238
11239 @findex deftypeivar
11240 @item @@deftypeivar @var{class} @var{data-type} @var{name}
11241 The @code{@@deftypeivar} command is the definition command for typed
11242 instance variables in object-oriented programming. It is similar to
11243 @code{@@defivar} with the addition of the @var{data-type} parameter to
11244 specify the type of the instance variable. @code{@@deftypeivar} creates an
11245 entry in the index of variables.
11246 10866
11247 @findex defop 10867 @findex defop
11248 @item @@defop @var{category} @var{class} @var{name} @var{arguments}@dots{} 10868 @item @@defop @var{category} @var{class} @var{name} @var{arguments}@dots{}
11249 The @code{@@defop} command is the general definition command for 10869 The @code{@@defop} command is the general definition command for
11250 entities that may resemble methods in object-oriented programming. 10870 entities that may resemble methods in object-oriented programming.
11251 These entities take arguments, as functions do, but are associated with 10871 These entities take arguments, as functions do, but are associated
11252 particular classes of objects.@refill 10872 with particular classes of objects.@refill
11253 10873
11254 For example, some systems have constructs called @dfn{wrappers} that 10874 For example, some systems have constructs called @dfn{wrappers} that
11255 are associated with classes as methods are, but that act more like 10875 are associated with classes as methods are, but that act more like
11256 macros than like functions. You could use @code{@@defop Wrapper} to 10876 macros than like functions. You could use @code{@@defop Wrapper} to
11257 describe one of these.@refill 10877 describe one of these.@refill
11279 The @code{@@defop} command is written at the beginning of a line and 10899 The @code{@@defop} command is written at the beginning of a line and
11280 is followed on the same line by the overall name of the category of 10900 is followed on the same line by the overall name of the category of
11281 operation, the name of the class of the operation, the name of the 10901 operation, the name of the class of the operation, the name of the
11282 operation, and its arguments, if any.@refill 10902 operation, and its arguments, if any.@refill
11283 10903
10904 @need 800
10905 @noindent
11284 The template is: 10906 The template is:
10907
11285 @example 10908 @example
11286 @group 10909 @group
11287 @@defop @var{category} @var{class} @var{name} @var{arguments}@dots{} 10910 @@defop @var{category} @var{class} @var{name} @var{arguments}@dots{}
11288 @var{body-of-definition} 10911 @var{body-of-definition}
11289 @@end defop 10912 @@end defop
11290 @end group 10913 @end group
11291 @end example 10914 @end example
11292 10915
11293 @code{@@defop} creates an entry, such as `@code{expose} on 10916 @code{@@defop} creates an entry, such as `@code{expose} on
11294 @code{windows}', in the index of functions.@refill 10917 @code{windows}', in the index of functions.@refill
11295
11296 @findex deftypeop
11297 @item @@deftypeop @var{category} @var{class} @var{data-type} @var{name} @var{arguments}@dots{}
11298 The @code{@@deftypeop} command is the definition command for typed
11299 operations in object-oriented programming. It is similar to
11300 @code{@@defop} with the addition of the @var{data-type} parameter to
11301 specify the return type of the method. @code{@@deftypeop} creates an
11302 entry in the index of functions.
11303 10918
11304 @item @@defmethod @var{class} @var{name} @var{arguments}@dots{} 10919 @item @@defmethod @var{class} @var{name} @var{arguments}@dots{}
11305 @findex defmethod 10920 @findex defmethod
11306 The @code{@@defmethod} command is the definition command for methods 10921 The @code{@@defmethod} command is the definition command for methods
11307 in object-oriented programming. A method is a kind of function that 10922 in object-oriented programming. A method is a kind of function that
11308 implements an operation for a particular class of objects and its 10923 implements an operation for a particular class of objects and its
11309 subclasses. 10924 subclasses. In the Lisp Machine, methods actually were functions, but
11310 @ignore
11311 @c ADR: Who cares?!?
11312 @c KB: Oh, I don't know, I think this info is crucial!
11313 In the Lisp Machine, methods actually were functions, but
11314 they were usually defined with @code{defmethod}. 10925 they were usually defined with @code{defmethod}.
11315 @end ignore
11316 10926
11317 @code{@@defmethod} is equivalent to @samp{@@defop Method @dots{}}. 10927 @code{@@defmethod} is equivalent to @samp{@@defop Method @dots{}}.
11318 The command is written at the beginning of a line and is followed by 10928 The command is written at the beginning of a line and is followed by
11319 the name of the class of the method, the name of the method, and its 10929 the name of the class of the method, the name of the method, and its
11320 arguments, if any.@refill 10930 arguments, if any.@refill
11321 10931
11322 @noindent 10932 @need 800
11323 For example: 10933 @noindent
10934 For example,
10935
11324 @example 10936 @example
11325 @group 10937 @group
11326 @@defmethod @code{bar-class} bar-method argument 10938 @@defmethod @code{bar-class} bar-method argument
11327 @dots{} 10939 @dots{}
11328 @@end defmethod 10940 @@end defmethod
11343 @end group 10955 @end group
11344 @end example 10956 @end example
11345 10957
11346 @code{@@defmethod} creates an entry, such as `@code{bar-method} on 10958 @code{@@defmethod} creates an entry, such as `@code{bar-method} on
11347 @code{bar-class}', in the index of functions.@refill 10959 @code{bar-class}', in the index of functions.@refill
11348
11349 10960
11350 @item @@deftypemethod @var{class} @var{data-type} @var{name} @var{arguments}@dots{} 10961 @item @@deftypemethod @var{class} @var{data-type} @var{name} @var{arguments}@dots{}
11351 @findex defmethod 10962 @findex defmethod
11352 The @code{@@deftypemethod} command is the definition command for methods 10963 The @code{@@deftypemethod} command is the definition command for methods
11353 in object-oriented typed languages, such as C++ and Java. It is similar 10964 in object-oriented typed languages, such as C++ and Java. It is similar
11355 @var{data-type} parameter to specify the return type of the method. 10966 @var{data-type} parameter to specify the return type of the method.
11356 10967
11357 @end table 10968 @end table
11358 10969
11359 10970
11360 @node Data Types 10971 @node Data Types, , Abstract Objects, Def Cmds in Detail
11361 @subsection Data Types 10972 @subsection Data Types
11362 10973
11363 Here is the command for data types:@refill 10974 Here is the command for data types:@refill
11364 10975
11365 @table @code 10976 @table @code
11424 A function definition uses the @code{@@defun} and @code{@@end defun} 11035 A function definition uses the @code{@@defun} and @code{@@end defun}
11425 commands. The name of the function follows immediately after the 11036 commands. The name of the function follows immediately after the
11426 @code{@@defun} command and it is followed, on the same line, by the 11037 @code{@@defun} command and it is followed, on the same line, by the
11427 parameter list.@refill 11038 parameter list.@refill
11428 11039
11429 Here is a definition from @ref{Calling Functions,,, elisp, The GNU Emacs 11040 Here is a definition from @ref{Calling Functions,,, lispref, XEmacs Lisp
11430 Lisp Reference Manual}. 11041 Reference Manual}.
11431 11042
11432 @quotation 11043 @quotation
11433 @defun apply function &rest arguments 11044 @defun apply function &rest arguments
11434 @code{apply} calls @var{function} with @var{arguments}, just 11045 @code{apply} calls @var{function} with @var{arguments}, just
11435 like @code{funcall} but with one difference: the last of 11046 like @code{funcall} but with one difference: the last of
11465 In the Texinfo source file, this example looks like this: 11076 In the Texinfo source file, this example looks like this:
11466 11077
11467 @example 11078 @example
11468 @group 11079 @group
11469 @@defun apply function &rest arguments 11080 @@defun apply function &rest arguments
11081
11470 @@code@{apply@} calls @@var@{function@} with 11082 @@code@{apply@} calls @@var@{function@} with
11471 @@var@{arguments@}, just like @@code@{funcall@} but with one 11083 @@var@{arguments@}, just like @@code@{funcall@} but with one
11472 difference: the last of @@var@{arguments@} is a list of 11084 difference: the last of @@var@{arguments@} is a list of
11473 arguments to give to @@var@{function@}, rather than a single 11085 arguments to give to @@var@{function@}, rather than a single
11474 argument. We also say that this list is @@dfn@{appended@} 11086 argument. We also say that this list is @@dfn@{appended@}
11499 @@end example 11111 @@end example
11500 @end group 11112 @end group
11501 11113
11502 @group 11114 @group
11503 An interesting example of using @@code@{apply@} is found 11115 An interesting example of using @@code@{apply@} is found
11504 in the description of @@code@{mapcar@}. 11116 in the description of @@code@{mapcar@}.@@refill
11505 @@end defun 11117 @@end defun
11506 @end group 11118 @end group
11507 @end example 11119 @end example
11508 11120
11509 @noindent 11121 @noindent
11512 11124
11513 Ordinary variables and user options are described using a format like 11125 Ordinary variables and user options are described using a format like
11514 that for functions except that variables do not take arguments. 11126 that for functions except that variables do not take arguments.
11515 11127
11516 11128
11517 @node Conditionals 11129 @node Footnotes, Conditionals, Definition Commands, Top
11130 @chapter Footnotes
11131 @cindex Footnotes
11132 @findex footnote
11133
11134 A @dfn{footnote} is for a reference that documents or elucidates the
11135 primary text.@footnote{A footnote should complement or expand upon
11136 the primary text, but a reader should not need to read a footnote to
11137 understand the primary text. For a thorough discussion of footnotes,
11138 see @cite{The Chicago Manual of Style}, which is published by the
11139 University of Chicago Press.}@refill
11140
11141 @menu
11142 * Footnote Commands:: How to write a footnote in Texinfo.
11143 * Footnote Styles:: Controlling how footnotes appear in Info.
11144 @end menu
11145
11146 @node Footnote Commands, Footnote Styles, Footnotes, Footnotes
11147 @section Footnote Commands
11148
11149 In Texinfo, footnotes are created with the @code{@@footnote} command.
11150 This command is followed immediately by a left brace, then by the text
11151 of the footnote, and then by a terminating right brace. Footnotes may
11152 be of any length (they will be broken across pages if necessary), but
11153 are usually short. The template is:
11154
11155 @example
11156 ordinary text@@footnote@{@var{text of footnote}@}
11157 @end example
11158
11159 As shown here, the @code{@@footnote} command should come right after the
11160 text being footnoted, with no intervening space; otherwise, the
11161 formatters the footnote mark might end up starting up a line.
11162
11163 For example, this clause is followed by a sample
11164 footnote@footnote{Here is the sample footnote.}; in the Texinfo
11165 source, it looks like this:@refill
11166
11167 @example
11168 @dots{}a sample footnote@@footnote@{Here is the sample
11169 footnote.@}; in the Texinfo source@dots{}
11170 @end example
11171
11172 @strong{Warning:} Don't use footnotes in the argument of the
11173 @code{@@item} command for a @code{@@table} table. This doesn't work, and
11174 because of limitations of @TeX{}, there is no way to fix it. You must
11175 put the footnote into the body text of the table.
11176
11177 In a printed manual or book, the reference mark for a footnote is a
11178 small, superscripted number; the text of the footnote appears at the
11179 bottom of the page, below a horizontal line.@refill
11180
11181 In Info, the reference mark for a footnote is a pair of parentheses
11182 with the footnote number between them, like this: @samp{(1)}.@refill
11183
11184
11185 @node Footnote Styles, , Footnote Commands, Footnotes
11186 @section Footnote Styles
11187
11188 Info has two footnote styles, which determine where the text of the
11189 footnote is located:@refill
11190
11191 @itemize @bullet
11192 @cindex @samp{@r{End}} node footnote style
11193 @item
11194 In the `End' node style, all the footnotes for a single node
11195 are placed at the end of that node. The footnotes are separated from
11196 the rest of the node by a line of dashes with the word
11197 @samp{Footnotes} within it. Each footnote begins with an
11198 @samp{(@var{n})} reference mark.@refill
11199
11200 @need 700
11201 @noindent
11202 Here is an example of a single footnote in the end of node style:@refill
11203
11204 @example
11205 @group
11206 --------- Footnotes ---------
11207
11208 (1) Here is a sample footnote.
11209 @end group
11210 @end example
11211
11212 @cindex @samp{@r{Separate}} footnote style
11213 @item
11214 In the `Separate' node style, all the footnotes for a single
11215 node are placed in an automatically constructed node of
11216 their own. In this style, a ``footnote reference'' follows
11217 each @samp{(@var{n})} reference mark in the body of the
11218 node. The footnote reference is actually a cross reference
11219 which you use to reach the footnote node.@refill
11220
11221 The name of the node containing the footnotes is constructed
11222 by appending @w{@samp{-Footnotes}} to the name of the node
11223 that contains the footnotes. (Consequently, the footnotes'
11224 node for the @file{Footnotes} node is
11225 @w{@file{Footnotes-Footnotes}}!) The footnotes' node has an
11226 `Up' node pointer that leads back to its parent node.@refill
11227
11228 @noindent
11229 Here is how the first footnote in this manual looks after being
11230 formatted for Info in the separate node style:@refill
11231
11232 @smallexample
11233 @group
11234 File: texinfo.info Node: Overview-Footnotes, Up: Overview
11235
11236 (1) Note that the first syllable of "Texinfo" is
11237 pronounced like "speck", not "hex". @dots{}
11238 @end group
11239 @end smallexample
11240 @end itemize
11241
11242 A Texinfo file may be formatted into an Info file with either footnote
11243 style.@refill
11244
11245 @findex footnotestyle
11246 Use the @code{@@footnotestyle} command to specify an Info file's
11247 footnote style. Write this command at the beginning of a line followed
11248 by an argument, either @samp{end} for the end node style or
11249 @samp{separate} for the separate node style.
11250
11251 @need 700
11252 For example,
11253
11254 @example
11255 @@footnotestyle end
11256 @end example
11257 @noindent
11258 or
11259 @example
11260 @@footnotestyle separate
11261 @end example
11262
11263 Write an @code{@@footnotestyle} command before or shortly after the
11264 end-of-header line at the beginning of a Texinfo file. (If you
11265 include the @code{@@footnotestyle} command between the start-of-header
11266 and end-of-header lines, the region formatting commands will format
11267 footnotes as specified.)@refill
11268
11269 If you do not specify a footnote style, the formatting commands use
11270 their default style. Currently, @code{texinfo-format-buffer} and
11271 @code{texinfo-format-region} use the `separate' style and
11272 @code{makeinfo} uses the `end' style.@refill
11273
11274 @c !!! note: makeinfo's --footnote-style option overrides footnotestyle
11275 @ignore
11276 If you use @code{makeinfo} to create the Info file, the
11277 @samp{--footnote-style} option determines which style is used,
11278 @samp{end} for the end of node style or @samp{separate} for the
11279 separate node style. Thus, to format the Texinfo manual in the
11280 separate node style, you would use the following shell command:@refill
11281
11282 @example
11283 makeinfo --footnote-style=separate texinfo.texi
11284 @end example
11285
11286 @noindent
11287 To format the Texinfo manual in the end of node style, you would
11288 type:@refill
11289
11290 @example
11291 makeinfo --footnote-style=end texinfo.texi
11292 @end example
11293 @end ignore
11294 @ignore
11295 If you use @code{texinfo-format-buffer} or
11296 @code{texinfo-format-region} to create the Info file, the value of the
11297 @code{texinfo-footnote-style} variable controls the footnote style.
11298 It can be either @samp{"separate"} for the separate node style or
11299 @samp{"end"} for the end of node style. (You can change the value of
11300 this variable with the @kbd{M-x edit-options} command (@pxref{Edit
11301 Options, , Editing Variable Values, xemacs, XEmacs User's Manual}), or
11302 with the @kbd{M-x set-variable} command (@pxref{Examining, , Examining
11303 and Setting Variables, xemacs, XEmacs User's Manual}).@refill
11304
11305 The @code{texinfo-footnote-style} variable also controls the style if
11306 you use the @kbd{M-x makeinfo-region} or @kbd{M-x makeinfo-buffer}
11307 command in Emacs.@refill
11308 @end ignore
11309 This chapter contains two footnotes.@refill
11310
11311
11312 @node Conditionals, Macros, Footnotes, Top
11313 @comment node-name, next, previous, up
11518 @chapter Conditionally Visible Text 11314 @chapter Conditionally Visible Text
11519 @cindex Conditionally visible text 11315 @cindex Conditionally visible text
11520 @cindex Text, conditionally visible 11316 @cindex Text, conditionally visible
11521 @cindex Visibility of conditional text 11317 @cindex Visibility of conditional text
11522 @cindex If text conditionally visible 11318 @cindex If text conditionally visible
11523 11319
11524 Sometimes it is good to use different text for different output formats. 11320 Sometimes it is good to use different text for a printed manual and
11525 For example, you can use the @dfn{conditional commands} to specify 11321 its corresponding Info file. In this case, you can use the
11526 different text for the printed manual and the Info output. 11322 @dfn{conditional commands} to specify which text is for the printed manual
11527 11323 and which is for the Info file.@refill
11528 Conditional commands may not be nested.
11529
11530 The conditional commands comprise the following categories.
11531
11532 @itemize @bullet
11533 @item Commands for HTML, Info, or @TeX{}.
11534 @item Commands for not HTML, Info, or @TeX{}.
11535 @item Raw @TeX{} or HTML commands.
11536 @item
11537 Substituting text for all formats, and testing if a flag is set or clear.
11538 @end itemize
11539 11324
11540 @menu 11325 @menu
11541 * Conditional Commands:: Specifying text for HTML, Info, or @TeX{}. 11326 * Conditional Commands:: Specifying text for HTML, Info, or @TeX{}.
11542 * Conditional Not Commands:: Specifying text for not HTML, Info, or @TeX{}. 11327 * Conditional Not Commands:: Specifying text for not HTML, Info, or @TeX{}.
11543 * Raw Formatter Commands:: Using raw @TeX{} or HTML commands. 11328 * Raw Formatter Commands:: Using raw @TeX{} or HTML commands.
11544 * set clear value:: Designating which text to format (for 11329 * set clear value:: Designating which text to format (for
11545 all output formats); and how to set a 11330 all output formats); and how to set a
11546 flag to a string that you can insert. 11331 flag to a string that you can insert.
11547 @end menu 11332 @end menu
11548 11333
11549 11334 @node Conditional Commands, Conditional Not Commands, Conditionals, Conditionals
11550 @node Conditional Commands 11335 @ifinfo
11551 @section Conditional Commands 11336 @heading Conditional Commands
11337 @end ifinfo
11552 11338
11553 @findex ifinfo 11339 @findex ifinfo
11554 @code{@@ifinfo} begins segments of text that should be ignored by @TeX{} 11340 @code{@@ifinfo} begins segments of text that should be ignored
11555 when it typesets the printed manual. The segment of text appears only 11341 by @TeX{} when it
11556 in the Info file. The @code{@@ifinfo} command should appear on a line 11342 typesets the printed manual. The segment of text appears only
11557 by itself; end the Info-only text with a line containing @code{@@end 11343 in the Info file.
11558 ifinfo} by itself. At the beginning of a Texinfo file, the Info 11344 The @code{@@ifinfo} command should appear on a line by itself; end
11559 permissions are contained within a region marked by @code{@@ifinfo} and 11345 the Info-only text with a line containing @code{@@end ifinfo} by
11560 @code{@@end ifinfo}. (@xref{Info Summary and Permissions}.) 11346 itself. At the beginning of a Texinfo file, the Info permissions are
11347 contained within a region marked by @code{@@ifinfo} and @code{@@end
11348 ifinfo}. (@xref{Info Summary and Permissions}.)@refill
11561 11349
11562 @findex iftex 11350 @findex iftex
11563 @findex ifhtml 11351 @findex ifhtml
11564 The @code{@@iftex} and @code{@@end iftex} commands are similar to the 11352 The @code{@@iftex} and @code{@@end iftex} commands are similar to the
11565 @code{@@ifinfo} and @code{@@end ifinfo} commands, except that they 11353 @code{@@ifinfo} and @code{@@end ifinfo} commands, except that they
11574 This text will appear only in the printed manual. 11362 This text will appear only in the printed manual.
11575 @@end iftex 11363 @@end iftex
11576 @@ifinfo 11364 @@ifinfo
11577 However, this text will appear only in Info. 11365 However, this text will appear only in Info.
11578 @@end ifinfo 11366 @@end ifinfo
11579 @@ifhtml
11580 And this text will only appear in HTML.
11581 @@end ifhtml
11582 @end example 11367 @end example
11583 11368
11584 @noindent 11369 @noindent
11585 The preceding example produces the following line: 11370 The preceding example produces the following line:
11586 @iftex 11371 @iftex
11587 This text will appear only in the printed manual. 11372 This text will appear only in the printed manual.
11588 @end iftex 11373 @end iftex
11589 @ifinfo 11374 @ifinfo
11590 However, this text will appear only in Info. 11375 However, this text will appear only in Info.
11591 @end ifinfo 11376 @end ifinfo
11592 @ifhtml 11377
11593 And this text will only appear in HTML. 11378 @noindent
11594 @end ifhtml 11379 Note how you only see one of the two lines, depending on whether you
11595 11380 are reading the Info version or the printed version of this
11596 @noindent 11381 manual.@refill
11597 Notice that you only see one of the input lines, depending on which 11382
11598 version of the manual you are reading. 11383 The @code{@@titlepage} command is a special variant of @code{@@iftex} that
11599 11384 is used for making the title and copyright pages of the printed
11600 11385 manual. (@xref{titlepage, , @code{@@titlepage}}.) @refill
11601 @node Conditional Not Commands 11386
11387
11388 @node Conditional Not Commands, Raw Formatter Commands, Conditional Commands, Conditionals
11602 @section Conditional Not Commands 11389 @section Conditional Not Commands
11603 @findex ifnothtml 11390 @findex ifnothtml
11604 @findex ifnotinfo 11391 @findex ifnotinfo
11605 @findex ifnottex 11392 @findex ifnottex
11606 11393
11617 11404
11618 If the output file is not being made for the given format, the region is 11405 If the output file is not being made for the given format, the region is
11619 included. Otherwise, it is ignored. 11406 included. Otherwise, it is ignored.
11620 11407
11621 The regions delimited by these commands are ordinary Texinfo source as 11408 The regions delimited by these commands are ordinary Texinfo source as
11622 with @code{@@iftex}, not raw formatter source as with @code{@@tex} 11409 with @code{@@iftex}, not raw formatter source as with @code{@@tex}.
11623 (@pxref{Raw Formatter Commands}).
11624 11410
11625 11411
11626 @node Raw Formatter Commands, set clear value, Conditional Not Commands, Conditionals 11412 @node Raw Formatter Commands, set clear value, Conditional Not Commands, Conditionals
11627 @section Raw Formatter Commands 11413 @section Raw Formatter Commands
11628 @cindex @TeX{} commands, using ordinary 11414 @cindex @TeX{} commands, using ordinary
11650 11436
11651 @findex tex 11437 @findex tex
11652 You can enter plain @TeX{} completely, and use @samp{\} in the @TeX{} 11438 You can enter plain @TeX{} completely, and use @samp{\} in the @TeX{}
11653 commands, by delineating a region with the @code{@@tex} and @code{@@end 11439 commands, by delineating a region with the @code{@@tex} and @code{@@end
11654 tex} commands. (The @code{@@tex} command also causes Info to ignore the 11440 tex} commands. (The @code{@@tex} command also causes Info to ignore the
11655 region, like the @code{@@iftex} command.) The sole exception is that the 11441 region, like the @code{@@iftex} command.) The sole exception is that
11656 @code{@@} character still introduces a command, so that @code{@@end tex} 11442 @code{@@} chracter still introduces a command, so that @code{@@end tex}
11657 can be recognized properly. 11443 can be recognized properly.
11658 11444
11659 @cindex Mathematical expressions 11445 @cindex Mathematical expressions
11660 For example, here is a mathematical expression written in 11446 For example, here is a mathematical expression written in
11661 plain @TeX{}: 11447 plain @TeX{}:
11685 11471
11686 @findex ifhtml 11472 @findex ifhtml
11687 @findex html 11473 @findex html
11688 Analogously, you can use @code{@@ifhtml @dots{} @@end ifhtml} to delimit 11474 Analogously, you can use @code{@@ifhtml @dots{} @@end ifhtml} to delimit
11689 a region to be included in HTML output only, and @code{@@html @dots{} 11475 a region to be included in HTML output only, and @code{@@html @dots{}
11690 @@end html} for a region of raw HTML (again, except that @code{@@} is 11476 @@end ifhtml} for a region of raw HTML (again, except that @code{@@} is
11691 still the escape character, so the @code{@@end} command can be 11477 still the escape character, so the @code{@@end} command can be
11692 recognized.) 11478 recognized.)
11693 11479
11694 11480
11695 @node set clear value 11481 @node set clear value, , Raw Formatter Commands, Conditionals
11482 @comment node-name, next, previous, up
11696 @section @code{@@set}, @code{@@clear}, and @code{@@value} 11483 @section @code{@@set}, @code{@@clear}, and @code{@@value}
11697 11484
11698 You can direct the Texinfo formatting commands to format or ignore parts 11485 You can direct the Texinfo formatting commands to format or ignore parts
11699 of a Texinfo file with the @code{@@set}, @code{@@clear}, @code{@@ifset}, 11486 of a Texinfo file with the @code{@@set}, @code{@@clear}, @code{@@ifset},
11700 and @code{@@ifclear} commands.@refill 11487 and @code{@@ifclear} commands.@refill
11705 @code{@@set}, for example, to set a date and use @code{@@value} to 11492 @code{@@set}, for example, to set a date and use @code{@@value} to
11706 insert the date in several places in the Texinfo file.@refill 11493 insert the date in several places in the Texinfo file.@refill
11707 11494
11708 @menu 11495 @menu
11709 * ifset ifclear:: Format a region if a flag is set. 11496 * ifset ifclear:: Format a region if a flag is set.
11710 * set value:: Expand a flag variable to a string. 11497 * value:: Replace a flag with a string.
11711 * value Example:: An easy way to update edition information. 11498 * value Example:: An easy way to update edition information.
11712 @end menu 11499 @end menu
11713 11500
11714 11501
11715 @node ifset ifclear 11502 @node ifset ifclear, value, set clear value, set clear value
11716 @subsection @code{@@ifset} and @code{@@ifclear} 11503 @subsection @code{@@ifset} and @code{@@ifclear}
11717 11504
11718 @findex ifset 11505 @findex ifset
11719 When a @var{flag} is set, the Texinfo formatting commands format text 11506 When a @var{flag} is set, the Texinfo formatting commands format text
11720 between subsequent pairs of @code{@@ifset @var{flag}} and @code{@@end 11507 between subsequent pairs of @code{@@ifset @var{flag}} and @code{@@end
11721 ifset} commands. When the @var{flag} is cleared, the Texinfo formatting 11508 ifset} commands. When the @var{flag} is cleared, the Texinfo formatting
11722 commands do @emph{not} format the text. 11509 commands do @emph{not} format the text.
11723 11510
11724 Use the @code{@@set @var{flag}} command to turn on, or @dfn{set}, a 11511 Use the @code{@@set @var{flag}} command to turn on, or @dfn{set}, a
11725 @var{flag}; a @dfn{flag} name can be any single word, containing 11512 @var{flag}; a @dfn{flag} can be any single word. The format for the
11726 letters, numerals, hyphens, or underscores. 11513 command looks like this:@refill
11727
11728 The format for the command looks like this:@refill
11729 @findex set 11514 @findex set
11730 11515
11731 @example 11516 @example
11732 @@set @var{flag} 11517 @@set @var{flag}
11733 @end example 11518 @end example
11827 If @var{flag} is cleared, tell the Texinfo formatting commands to 11612 If @var{flag} is cleared, tell the Texinfo formatting commands to
11828 format the text up to the following @code{@@end ifclear} 11613 format the text up to the following @code{@@end ifclear}
11829 command.@refill 11614 command.@refill
11830 @end table 11615 @end table
11831 11616
11832 11617 @node value, value Example, ifset ifclear, set clear value
11833 @node set value 11618 @subsection @code{@@value}
11834 @subsection @code{@@set} and @code{@@value}
11835 @findex value 11619 @findex value
11836 11620
11837 You can use the @code{@@set} command to specify a value for a flag, 11621 You can use the @code{@@set} command to specify a value for a flag,
11838 which is expanded by the @code{@@value} command. A flag is an 11622 which is expanded by the @code{@@value} command. The value is a string
11839 identifier; for best results, use only letters and numerals in a flag 11623 a characters.
11840 name, not @samp{-} or @samp{_}---they will work in some contexts, but
11841 not all, due to limitations in @TeX{}. The value is just a string of
11842 characters, the remainder of the input line.
11843 11624
11844 Write the @code{@@set} command like this: 11625 Write the @code{@@set} command like this:
11845 11626
11846 @example 11627 @example
11847 @@set foo This is a string. 11628 @@set foo This is a string.
11848 @end example 11629 @end example
11849 11630
11850 @noindent 11631 @noindent
11851 This sets the value of the flag @code{foo} to ``This is a string.''. 11632 This sets the value of @code{foo} to ``This is a string.''
11852 11633
11853 The Texinfo formatters then replace an @code{@@value@{@var{flag}@}} 11634 The Texinfo formatters replace an @code{@@value@{@var{flag}@}} command with
11854 command with the string to which @var{flag} is set. Thus, when 11635 the string to which @var{flag} is set.@refill
11855 @code{foo} is set as shown above, the Texinfo formatters convert 11636
11637 Thus, when @code{foo} is set as shown above, the Texinfo formatters convert
11856 11638
11857 @example 11639 @example
11858 @group 11640 @group
11859 @@value@{foo@} 11641 @@value@{foo@}
11860 @exdent @r{to} 11642 @exdent @r{to}
11872 @end example 11654 @end example
11873 11655
11874 @noindent 11656 @noindent
11875 without specifying a string, the value of @code{foo} is an empty string. 11657 without specifying a string, the value of @code{foo} is an empty string.
11876 11658
11877 If you clear a previously set flag with @code{@@clear @var{flag}}, a 11659 If you clear a previously set flag with an @code{@@clear @var{flag}}
11878 subsequent @code{@@value@{flag@}} command is invalid and the string is 11660 command, a subsequent @code{@@value@{flag@}} command is invalid and the
11879 replaced with an error message that says @samp{@{No value for 11661 string is replaced with an error message that says @samp{@{No value for
11880 "@var{flag}"@}}. 11662 "@var{flag}"@}}.
11881 11663
11882 For example, if you set @code{foo} as follows:@refill 11664 For example, if you set @code{foo} as follows:@refill
11883 11665
11884 @example 11666 @example
11911 @exdent @r{into} 11693 @exdent @r{into}
11912 It is a @{No value for "how-much"@} wet day. 11694 It is a @{No value for "how-much"@} wet day.
11913 @end group 11695 @end group
11914 @end example 11696 @end example
11915 11697
11916 11698 @node value Example, , value, set clear value
11917 @node value Example
11918 @subsection @code{@@value} Example 11699 @subsection @code{@@value} Example
11919 11700
11920 You can use the @code{@@value} command to limit the number of places you 11701 You can use the @code{@@value} command to limit the number of places you
11921 need to change when you record an update to a manual. Here is how it is 11702 need to change when you record an update to a manual.
11922 done in @cite{The GNU Make Manual}: 11703 Here is how it is done in @cite{The GNU Make Manual}:
11923 11704
11924 @enumerate 11705 @need 1000
11925 @item 11706 @noindent
11926 Set the flags: 11707 Set the flags:
11927 11708
11928 @example 11709 @example
11929 @group 11710 @group
11930 @@set EDITION 0.35 Beta 11711 @@set EDITION 0.35 Beta
11932 @@set UPDATED 14 August 1992 11713 @@set UPDATED 14 August 1992
11933 @@set UPDATE-MONTH August 1992 11714 @@set UPDATE-MONTH August 1992
11934 @end group 11715 @end group
11935 @end example 11716 @end example
11936 11717
11937 @item 11718 @need 750
11719 @noindent
11938 Write text for the first @code{@@ifinfo} section, for people reading the 11720 Write text for the first @code{@@ifinfo} section, for people reading the
11939 Texinfo file: 11721 Texinfo file:
11940 11722
11941 @example 11723 @example
11942 @group 11724 @group
11943 This is Edition @@value@{EDITION@}, 11725 This is Edition @@value@{EDITION@},
11944 last updated @@value@{UPDATED@}, 11726 last updated @@value@{UPDATED@},
11945 of @@cite@{The GNU Make Manual@}, 11727 of @@cite@{The GNU Make Manual@},
11946 for @@code@{make@}, version @@value@{VERSION@}. 11728 for @@code@{make@}, Version @@value@{VERSION@}.
11947 @end group 11729 @end group
11948 @end example 11730 @end example
11949 11731
11950 @item 11732 @need 1000
11733 @noindent
11951 Write text for the title page, for people reading the printed manual: 11734 Write text for the title page, for people reading the printed manual:
11952 @c List only the month and the year since that looks less fussy on a 11735 @c List only the month and the year since that looks less fussy on a
11953 @c printed cover than a date that lists the day as well. 11736 @c printed cover than a date that lists the day as well.
11954 11737
11955 @example 11738 @example
11963 11746
11964 @noindent 11747 @noindent
11965 (On a printed cover, a date listing the month and the year looks less 11748 (On a printed cover, a date listing the month and the year looks less
11966 fussy than a date listing the day as well as the month and year.) 11749 fussy than a date listing the day as well as the month and year.)
11967 11750
11968 @item 11751 @need 750
11752 @noindent
11969 Write text for the Top node, for people reading the Info file: 11753 Write text for the Top node, for people reading the Info file:
11970 11754
11971 @example 11755 @example
11972 @group 11756 @group
11973 This is Edition @@value@{EDITION@} 11757 This is Edition @@value@{EDITION@}
11975 last updated @@value@{UPDATED@} 11759 last updated @@value@{UPDATED@}
11976 for @@code@{make@} Version @@value@{VERSION@}. 11760 for @@code@{make@} Version @@value@{VERSION@}.
11977 @end group 11761 @end group
11978 @end example 11762 @end example
11979 11763
11764 @need 950
11980 After you format the manual, the text in the first @code{@@ifinfo} 11765 After you format the manual, the text in the first @code{@@ifinfo}
11981 section looks like this: 11766 section looks like this:
11982 11767
11983 @example 11768 @example
11984 @group 11769 @group
11985 This is Edition 0.35 Beta, last updated 14 August 1992, 11770 This is Edition 0.35 Beta, last updated 14 August 1992,
11986 of `The GNU Make Manual', for `make', Version 3.63 Beta. 11771 of `The GNU Make Manual', for `make', Version 3.63 Beta.
11987 @end group 11772 @end group
11988 @end example 11773 @end example
11989 @end enumerate
11990 11774
11991 When you update the manual, change only the values of the flags; you do 11775 When you update the manual, change only the values of the flags; you do
11992 not need to edit the three sections. 11776 not need to rewrite the three sections.
11993 11777
11994 11778
11995 @node Internationalization 11779 @node Macros, Format/Print Hardcopy, Conditionals, Top
11996 @chapter Internationalization 11780 @chapter Macros: Defining New Texinfo Commands
11997
11998 @cindex Internationalization
11999 Texinfo has some support for writing in languages other than English,
12000 although this area still needs considerable work.
12001
12002 For a list of the various accented and special characters Texinfo
12003 supports, see @ref{Inserting Accents}.
12004
12005 @menu
12006 * documentlanguage:: Declaring the current language.
12007 * documentencoding:: Declaring the input encoding.
12008 @end menu
12009
12010
12011 @node documentlanguage
12012 @section @code{@@documentlanguage @var{cc}}: Set the Document Language
12013
12014 @findex documentlanguage
12015 @cindex Language, declaring
12016 @cindex Document language, declaring
12017
12018 The @code{@@documentlanguage} command declares the current document
12019 language. Write it on a line by itself, with a two-letter ISO-639
12020 language code following (list is included below). If you have a
12021 multilingual document, the intent is to be able to use this command
12022 multiple times, to declare each language change. If the command is not
12023 used at all, the default is @code{en} for English.
12024
12025 @cindex @file{txi-@var{cc}.tex}
12026 At present, this command is ignored in Info and HTML output. For
12027 @TeX{}, it causes the file @file{txi-@var{cc}.tex} to be read (if it
12028 exists). Such a file appropriately redefines the various English words
12029 used in @TeX{} output, such as `Chapter', `See', and so on.
12030
12031 @cindex Hyphenation patterns, language-dependent
12032 It would be good if this command also changed @TeX{}'s ideas of the
12033 current hyphenation patterns (via the @TeX{} primitive
12034 @code{\language}), but this is unfortunately not currently implemented.
12035
12036 @cindex ISO 639 codes
12037 @cindex Language codes
12038 @cindex African languages
12039 Here is the list of valid language codes. This list comes from
12040 @uref{http://www.iro.umontreal.ca/contrib/po/iso-639, the free
12041 translation project}. In the future we may wish to allow the 3-letter
12042 POV codes described at @uref{http://www.sil.org/ethnologue/#contents}.
12043 This will be necessary to support African languages.
12044
12045 @multitable @columnfractions .06 .27 .06 .27 .06 .27
12046 @item
12047 @code{aa} @tab Afar @tab
12048 @code{ab} @tab Abkhazian @tab
12049 @code{af} @tab Afrikaans
12050 @item
12051 @code{am} @tab Amharic @tab
12052 @code{ar} @tab Arabic @tab
12053 @code{as} @tab Assamese
12054 @item
12055 @code{ay} @tab Aymara @tab
12056 @code{az} @tab Azerbaijani @tab
12057 @code{ba} @tab Bashkir
12058 @item
12059 @code{be} @tab Byelorussian @tab
12060 @code{bg} @tab Bulgarian @tab
12061 @code{bh} @tab Bihari
12062 @item
12063 @code{bi} @tab Bislama @tab
12064 @code{bn} @tab Bengali; Bangla @tab
12065 @code{bo} @tab Tibetan
12066 @item
12067 @code{br} @tab Breton @tab
12068 @code{ca} @tab Catalan @tab
12069 @code{co} @tab Corsican
12070 @item
12071 @code{cs} @tab Czech @tab
12072 @code{cy} @tab Welsh @tab
12073 @code{da} @tab Danish
12074 @item
12075 @code{de} @tab German @tab
12076 @code{dz} @tab Bhutani @tab
12077 @code{el} @tab Greek
12078 @item
12079 @code{en} @tab English @tab
12080 @code{eo} @tab Esperanto @tab
12081 @code{es} @tab Spanish
12082 @item
12083 @code{et} @tab Estonian @tab
12084 @code{eu} @tab Basque @tab
12085 @code{fa} @tab Persian
12086 @item
12087 @code{fi} @tab Finnish @tab
12088 @code{fj} @tab Fiji @tab
12089 @code{fo} @tab Faroese
12090 @item
12091 @code{fr} @tab French @tab
12092 @code{fy} @tab Frisian @tab
12093 @code{ga} @tab Irish
12094 @item
12095 @code{gd} @tab Scots Gaelic @tab
12096 @code{gl} @tab Galician @tab
12097 @code{gn} @tab Guarani
12098 @item
12099 @code{gu} @tab Gujarati @tab
12100 @code{ha} @tab Hausa @tab
12101 @code{he} @tab Hebrew
12102 @item
12103 @code{hi} @tab Hindi @tab
12104 @code{hr} @tab Croatian @tab
12105 @code{hu} @tab Hungarian
12106 @item
12107 @code{hy} @tab Armenian @tab
12108 @code{ia} @tab Interlingua @tab
12109 @code{id} @tab Indonesian
12110 @item
12111 @code{ie} @tab Interlingue @tab
12112 @code{ik} @tab Inupiak @tab
12113 @code{is} @tab Icelandic
12114 @item
12115 @code{it} @tab Italian @tab
12116 @code{iu} @tab Inuktitut @tab
12117 @code{ja} @tab Japanese
12118 @item
12119 @code{jw} @tab Javanese @tab
12120 @code{ka} @tab Georgian @tab
12121 @code{kk} @tab Kazakh
12122 @item
12123 @code{kl} @tab Greenlandic @tab
12124 @code{km} @tab Cambodian @tab
12125 @code{kn} @tab Kannada
12126 @item
12127 @code{ks} @tab Kashmiri @tab
12128 @code{ko} @tab Korean @tab
12129 @code{ku} @tab Kurdish
12130 @item
12131 @code{ky} @tab Kirghiz @tab
12132 @code{la} @tab Latin @tab
12133 @code{ln} @tab Lingala
12134 @item
12135 @code{lt} @tab Lithuanian @tab
12136 @code{lo} @tab Laothian @tab
12137 @code{lv} @tab Latvian, Lettish
12138 @item
12139 @code{mg} @tab Malagasy @tab
12140 @code{mi} @tab Maori @tab
12141 @code{mk} @tab Macedonian
12142 @item
12143 @code{ml} @tab Malayalam @tab
12144 @code{mn} @tab Mongolian @tab
12145 @code{mo} @tab Moldavian
12146 @item
12147 @code{mr} @tab Marathi @tab
12148 @code{ms} @tab Malay @tab
12149 @code{mt} @tab Maltese
12150 @item
12151 @code{my} @tab Burmese @tab
12152 @code{na} @tab Nauru @tab
12153 @code{ne} @tab Nepali
12154 @item
12155 @code{nl} @tab Dutch @tab
12156 @code{no} @tab Norwegian @tab
12157 @code{oc} @tab Occitan
12158 @item
12159 @code{om} @tab (Afan) Oromo @tab
12160 @code{or} @tab Oriya @tab
12161 @code{pa} @tab Punjabi
12162 @item
12163 @code{pl} @tab Polish @tab
12164 @code{ps} @tab Pashto, Pushto @tab
12165 @code{pt} @tab Portuguese
12166 @item
12167 @code{qu} @tab Quechua @tab
12168 @code{rm} @tab Rhaeto-Romance @tab
12169 @code{rn} @tab Kirundi
12170 @item
12171 @code{ro} @tab Romanian @tab
12172 @code{ru} @tab Russian @tab
12173 @code{rw} @tab Kinyarwanda
12174 @item
12175 @code{sa} @tab Sanskrit @tab
12176 @code{sd} @tab Sindhi @tab
12177 @code{sg} @tab Sangro
12178 @item
12179 @code{sh} @tab Serbo-Croatian @tab
12180 @code{si} @tab Sinhalese @tab
12181 @code{sk} @tab Slovak
12182 @item
12183 @code{sl} @tab Slovenian @tab
12184 @code{sm} @tab Samoan @tab
12185 @code{sn} @tab Shona
12186 @item
12187 @code{so} @tab Somali @tab
12188 @code{sq} @tab Albanian @tab
12189 @code{sr} @tab Serbian
12190 @item
12191 @code{ss} @tab Siswati @tab
12192 @code{st} @tab Sesotho @tab
12193 @code{su} @tab Sundanese
12194 @item
12195 @code{sv} @tab Swedish @tab
12196 @code{sw} @tab Swahili @tab
12197 @code{ta} @tab Tamil
12198 @item
12199 @code{te} @tab Telugu @tab
12200 @code{tg} @tab Tajik @tab
12201 @code{th} @tab Thai
12202 @item
12203 @code{ti} @tab Tigrinya @tab
12204 @code{tk} @tab Turkmen @tab
12205 @code{tl} @tab Tagalog
12206 @item
12207 @code{tn} @tab Setswana @tab
12208 @code{to} @tab Tonga @tab
12209 @code{tr} @tab Turkish
12210 @item
12211 @code{ts} @tab Tsonga @tab
12212 @code{tt} @tab Tatar @tab
12213 @code{tw} @tab Twi
12214 @item
12215 @code{ug} @tab Uighur @tab
12216 @code{uk} @tab Ukrainian @tab
12217 @code{ur} @tab Urdu
12218 @item
12219 @code{uz} @tab Uzbek @tab
12220 @code{vi} @tab Vietnamese @tab
12221 @code{vo} @tab Volapuk
12222 @item
12223 @code{wo} @tab Wolof @tab
12224 @code{xh} @tab Xhosa @tab
12225 @code{yi} @tab Yiddish
12226 @item
12227 @code{yo} @tab Yoruba @tab
12228 @code{za} @tab Zhuang @tab
12229 @code{zh} @tab Chinese
12230 @item
12231 @code{zu} @tab Zulu
12232 @end multitable
12233
12234
12235 @node documentencoding
12236 @section @code{@@documentencoding @var{enc}}: Set Input Encoding
12237
12238 @findex documentencoding
12239 @cindex Encoding, declaring
12240 @cindex Input encoding, declaring
12241 @cindex Document input encoding
12242
12243 The @code{@@documentencoding} command declares the input document
12244 encoding. Write it on a line by itself, with a valid encoding
12245 specification following, such as @samp{ISO-8859-1}.
12246
12247 @cindex http-equiv, and charset
12248 @cindex meta HTML tag, and charset
12249 At present, this is used only in HTML output from @code{makeinfo}. If a
12250 document encoding @var{enc} is specified, it is used in the
12251 @samp{<meta>} tag is included in the @samp{<head>} of the output:
12252
12253 @example
12254 <meta http-equiv="Content-Type" content="text/html; charset=@var{enc}">
12255 @end example
12256
12257
12258 @node Defining New Texinfo Commands
12259 @chapter Defining New Texinfo Commands
12260 @cindex Macros 11781 @cindex Macros
12261 @cindex Defining new Texinfo commands 11782 @cindex Defining new Texinfo commands
12262 @cindex New Texinfo commands, defining 11783 @cindex New Texinfo commands, defining
12263 @cindex Texinfo commands, defining new 11784 @cindex Texinfo commands, defining new
12264 @cindex User-defined Texinfo commands 11785 @cindex User-defined Texinfo commands
12265 11786
12266 Texinfo provides several ways to define new commands:
12267
12268 @itemize @bullet
12269 @item
12270 A Texinfo @dfn{macro} allows you to define a new Texinfo command as any 11787 A Texinfo @dfn{macro} allows you to define a new Texinfo command as any
12271 sequence of text and/or existing commands (including other macros). The 11788 sequence of text and/or existing commands (including other macros). The
12272 macro can have any number of @dfn{parameters}---text you supply each 11789 macro can have any number of @dfn{parameters}---text you supply each
12273 time you use the macro. 11790 time you use the macro. (This has nothing to do with the
12274 11791 @code{@@defmac} command, which is for documenting macros in the subject
12275 Incidentally, these macros have nothing to do with the @code{@@defmac} 11792 of the manual; @pxref{Def Cmd Template}.)
12276 command, which is for documenting macros in the subject of the manual
12277 (@pxref{Def Cmd Template}).
12278
12279 @item
12280 @samp{@@alias} is a convenient way to define a new name for an existing
12281 command.
12282
12283 @item
12284 @samp{@@definfoenclose} allows you to define new commands with
12285 customized output in the Info file.
12286
12287 @end itemize
12288 11793
12289 @menu 11794 @menu
12290 * Defining Macros:: Defining and undefining new commands. 11795 * Defining Macros:: Both defining and undefining new commands.
12291 * Invoking Macros:: Using a macro, once you've defined it. 11796 * Invoking Macros:: Using a macro, once you've defined it.
12292 * Macro Details:: Beyond basic macro usage.
12293 * alias:: Command aliases.
12294 * definfoenclose:: Customized highlighting.
12295 @end menu 11797 @end menu
12296 11798
12297 11799
12298 @node Defining Macros 11800 @node Defining Macros, Invoking Macros, Macros, Macros
12299 @section Defining Macros 11801 @section Defining Macros
12300 @cindex Defining macros 11802 @cindex Defining macros
12301 @cindex Macro definitions 11803 @cindex Macro definitions
12302 @cindex Definitions, a.k.a.@: macros
12303 11804
12304 @findex macro 11805 @findex macro
12305 You use the Texinfo @code{@@macro} command to define a macro, like this: 11806 You use the Texinfo @code{@@macro} command to define a macro. For example:
12306 11807
12307 @example 11808 @example
12308 @@macro @var{macroname}@{@var{param1}, @var{param2}, @dots{}@} 11809 @@macro @var{macro-name}@{@var{param1}, @var{param2}, @dots{}@}
12309 @var{text} @dots{} \@var{param1}\ @dots{} 11810 @var{text} @dots{} \@var{param1}\ @dots{}
12310 @@end macro 11811 @@end macro
12311 @end example 11812 @end example
12312 11813
12313 The @dfn{parameters} @var{param1}, @var{param2}, @dots{} correspond to 11814 The @dfn{parameters} @var{param1}, @var{param2}, @dots{} correspond to
12314 arguments supplied when the macro is subsequently used in the document 11815 arguments supplied when the macro is subsequently used in the document
12315 (described in the next section). 11816 (see the next section).
12316
12317 For a macro to work with @TeX{}, @var{macroname} must consist entirely
12318 of letters: no digits, hyphens, underscores, or other special characters.
12319 11817
12320 If a macro needs no parameters, you can define it either with an empty 11818 If a macro needs no parameters, you can define it either with an empty
12321 list (@samp{@@macro foo @{@}}) or with no braces at all (@samp{@@macro 11819 list (@samp{@@macro foo @{@}}) or with no braces at all (@samp{@@macro
12322 foo}). 11820 foo}).
12323 11821
12324 @cindex Body of a macro 11822 @cindex Body of a macro
12325 @cindex Mutually recursive macros 11823 @cindex Mutually recursive macros
12326 @cindex Recursion, mutual 11824 @cindex Recursion, mutual
12327 The definition or @dfn{body} of the macro can contain most Texinfo 11825 The definition or @dfn{body} of the macro can contain any Texinfo
12328 commands, including previously-defined macros. Not-yet-defined macro 11826 commands, including previously-defined macros. (It is not possible to
12329 invocations are not allowed; thus, it is not possible to have mutually 11827 have mutually recursive Texinfo macros.) In the body, instances of a
12330 recursive Texinfo macros. Also, a macro definition that defines another 11828 parameter name surrounded by backslashes, as in @samp{\@var{param1}\} in
12331 macro does not work in @TeX{} due to limitations in the design of 11829 the example above, are replaced by the corresponding argument from the
12332 @code{@@macro}. 11830 macro invocation.
12333
12334 @cindex Parameters to macros
12335 In the macro body, instances of a parameter name surrounded by
12336 backslashes, as in @samp{\@var{param1}\} in the example above, are
12337 replaced by the corresponding argument from the macro invocation. You
12338 can use parameter names any number of times in the body, including zero.
12339
12340 @cindex Backslash in macros
12341 To get a single @samp{\} in the macro expansion, use @samp{\\}. Any
12342 other use of @samp{\} in the body yields a warning.
12343
12344 @cindex Spaces in macros
12345 @cindex Whitespace in macros
12346 The newlines after the @code{@@macro} line and before the @code{@@end
12347 macro} line are ignored, that is, not included in the macro body. All
12348 other whitespace is treated according to the usual Texinfo rules.
12349
12350 @cindex Recursive macro invocations
12351 @findex rmacro
12352 To allow a macro to be used recursively, that is, in an argument to a
12353 call to itself, you must define it with @samp{@@rmacro}, like this:
12354
12355 @example
12356 @@rmacro rmac
12357 a\arg\b
12358 @@end rmacro
12359 @dots{}
12360 @@rmac@{1@@rmac@{text@}2@}
12361 @end example
12362
12363 This produces the output `a1atextb2b'. With @samp{@@macro} instead of
12364 @samp{@@rmacro}, an error message is given.
12365 11831
12366 @findex unmacro 11832 @findex unmacro
12367 @cindex Macros, undefining 11833 @cindex Macros, undefining
12368 @cindex Undefining macros 11834 @cindex Undefining macros
12369 You can undefine a macro @var{foo} with @code{@@unmacro @var{foo}}. 11835 You can undefine a macro @var{foo} with @code{@@unmacro @var{foo}}.
12373 @example 11839 @example
12374 @@unmacro foo 11840 @@unmacro foo
12375 @end example 11841 @end example
12376 11842
12377 11843
12378 @node Invoking Macros 11844 @node Invoking Macros, , Defining Macros, Macros
12379 @section Invoking Macros 11845 @section Invoking Macros
12380 @cindex Invoking macros 11846 @cindex Invoking macros
12381 @cindex Expanding macros
12382 @cindex Running macros
12383 @cindex Macro invocation 11847 @cindex Macro invocation
12384 11848
12385 After a macro is defined (see the previous section), you can use 11849 After a macro is defined (see the previous section), you can use
12386 (@dfn{invoke}) it in your document like this: 11850 (@dfn{invoke}) it in your document like this:
12387 11851
12388 @example 11852 @example
12389 @@@var{macroname} @{@var{arg1}, @var{arg2}, @dots{}@} 11853 @@@var{macro-name} @{@var{arg1}, @var{arg2}, @dots{}@}
12390 @end example 11854 @end example
12391 11855
12392 @noindent and the result will be just as if you typed the body of 11856 @noindent
12393 @var{macroname} at that spot. For example: 11857 and the result will be just as if you typed the body of
11858 @var{macro-name} at that spot. For example:
12394 11859
12395 @example 11860 @example
12396 @@macro foo @{p, q@} 11861 @@macro foo @{p, q@}
12397 Together: \p\ & \q\. 11862 Together: \p\ & \q\.
12398 @@end macro 11863 @@end macro
12399 @@foo@{a, b@} 11864 @@foo@{a, b@}
12400 @end example 11865 @end example
12401 11866
12402 @noindent produces: 11867 @noindent
11868 produces:
12403 11869
12404 @display 11870 @display
12405 Together: a & b. 11871 Together: a & b.
12406 @end display 11872 @end display
12407 11873
12408 @cindex Backslash, and macros 11874 @cindex Backslash, and macros
12409 Thus, the arguments and parameters are separated by commas and delimited 11875 Thus, the arguments and parameters are separated by commas and delimited
12410 by braces; any whitespace after (but not before) a comma is ignored. 11876 by braces; any whitespace after (but not before) a comma is ignored. To
12411 The braces are required in the invocation (but not the definition), even 11877 insert a comma, brace, or backslash in an argument, prepend a backslash,
12412 when the macro takes no arguments, consistent with all other Texinfo 11878 as in
12413 commands. For example: 11879
12414 11880 @example
12415 @example 11881 @@@var{macro-name} @{\\\@{\@}\,@}
12416 @@macro argless @{@}
12417 No arguments here.
12418 @@end macro
12419 @@argless@{@}
12420 @end example
12421
12422 @noindent produces:
12423
12424 @display
12425 No arguments here.
12426 @end display
12427
12428 To insert a comma, brace, or backslash in an argument, prepend a
12429 backslash, as in
12430
12431 @example
12432 @@@var{macname} @{\\\@{\@}\,@}
12433 @end example 11882 @end example
12434 11883
12435 @noindent 11884 @noindent
12436 which will pass the (almost certainly error-producing) argument 11885 which will pass the (almost certainly error-producing) argument
12437 @samp{\@{@},} to @var{macname}. 11886 @samp{\@{@},} to @var{macro-name}.
12438 11887
12439 If the macro is defined to take a single argument, and is invoked 11888 If the macro is defined to take a single argument, and is invoked
12440 without any braces, the entire rest of the line after the macro name is 11889 without any braces, the entire rest of the line after the macro name is
12441 supplied as the argument. For example: 11890 supplied as the argument. For example:
12442 11891
12443 @example 11892 @example
12444 @@macro bar @{p@} 11893 @@macro bar @{p@}
12445 Twice: \p\ & \p\. 11894 Twice: \p\, \p\.
12446 @@end macro 11895 @@end macro
12447 @@bar aah 11896 @@bar aah
12448 @end example 11897 @end example
12449 11898
12450 @noindent produces: 11899 @noindent
12451 11900 produces:
12452 @c Sorry for cheating, but let's not require macros to process the manual. 11901
12453 @display 11902 @display
12454 Twice: aah & aah. 11903 Twice: aah, aah.
12455 @end display 11904 @end display
12456 11905
12457 If the macro is defined to take a single argument, and is invoked with 11906
12458 braces, the braced text is passed as the argument, regardless of 11907 @node Format/Print Hardcopy, Create an Info File, Macros, Top
12459 commas. For example: 11908 @comment node-name, next, previous, up
12460 11909 @chapter Format and Print Hardcopy
12461 @example
12462 @@macro bar @{p@}
12463 Twice: \p\ & \p\.
12464 @@end macro
12465 @@bar@{a,b@}
12466 @end example
12467
12468 @noindent produces:
12469
12470 @display
12471 Twice: a,b & a,b.
12472 @end display
12473
12474
12475 @node Macro Details
12476 @section Macro Details
12477 @cindex Macro details
12478 @cindex Details of macro usage
12479
12480 Due to unavoidable disparities in the @TeX{} and @command{makeinfo}
12481 implementations, Texinfo macros have the following limitations.
12482
12483 @itemize @bullet
12484 @item
12485 All macros are expanded inside at least one @TeX{} group. This means
12486 that @set and other such commands will have no effect inside a macro.
12487
12488 @item
12489 Macros containing a command which must be on a line by itself, such as a
12490 conditional, cannot be invoked in the middle of a line.
12491
12492 @item
12493 The @TeX{} implementation cannot construct macros that define macros in
12494 the natural way. To do this, you must use conditionals and raw @TeX{}.
12495 For example:
12496
12497 @example
12498 @@ifinfo
12499 @@macro ctor @{name, arg@}
12500 @@macro \name\
12501 something involving \arg\ somehow
12502 @@end macro
12503 @@end macro
12504 @@end ifinfo
12505 @@tex
12506 \gdef\ctor#1@{\ctorx#1,@}
12507 \gdef\ctorx#1,#2,@{\def#1@{something involving #2 somehow@}@}
12508 @@end tex
12509 @end example
12510
12511 @item
12512 It is best to avoid comments inside macro definitions.
12513
12514 @end itemize
12515
12516
12517 @node alias
12518 @section @samp{@@alias @var{new}=@var{existing}}
12519 @cindex Aliases, command
12520 @cindex Command aliases
12521 @findex alias
12522
12523 The @samp{@@alias} command defines a new command to be just like an
12524 existing one. This is useful for defining additional markup names, thus
12525 preserving semantic information in the input even though the output
12526 result may be the same.
12527
12528 Write the @samp{@@alias} command on a line by itself, followed by the
12529 new command name, an equals sign, and the existing command name.
12530 Whitespace around the equals sign is ignored. Thus:
12531 @example
12532 @@alias @var{new} = @var{existing}
12533 @end example
12534
12535 For example, if your document contains citations for both books and
12536 some other media (movies, for example), you might like to define a
12537 macro @code{@@moviecite@{@}} that does the same thing as an ordinary
12538 @code{@@cite@{@}} but conveys the extra semantic information as well.
12539 You'd do this as follows:
12540
12541 @example
12542 @@alias moviecite = cite
12543 @end example
12544
12545 Macros do not always have the same effect due to vagaries of argument
12546 parsing. Also, aliases are much simpler to define than macros. So the
12547 command is not redundant. (It was also heavily used in the Jargon File!)
12548
12549 Aliases must not be recursive, directly or indirectly.
12550
12551 @node definfoenclose
12552 @section @samp{definfoenclose}: Customized Highlighting
12553 @cindex Highlighting, customized
12554 @cindex Customized highlighting
12555 @findex definfoenclose
12556
12557 A @code{@@definfoenclose} command may be used to define a highlighting
12558 command for Info, but not for TeX. A command defined using
12559 @code{@@definfoenclose} marks text by enclosing it in strings that
12560 precede and follow the text. You can use this to get closer control of
12561 your Info output.
12562
12563 Presumably, if you define a command with @code{@@definfoenclose} for Info,
12564 you will create a corresponding command for @TeX{}, either in
12565 @file{texinfo.tex}, @file{texinfo.cnf}, or within an @samp{@@iftex} in
12566 your document.
12567
12568 Write a @code{@@definfoenclose} command on a line and follow it with
12569 three arguments separated by commas. The first argument to
12570 @code{@@definfoenclose} is the @@-command name (without the @code{@@});
12571 the second argument is the Info start delimiter string; and the third
12572 argument is the Info end delimiter string. The latter two arguments
12573 enclose the highlighted text in the Info file. A delimiter string may
12574 contain spaces. Neither the start nor end delimiter is required. If
12575 you do not want a start delimiter but do want an end delimiter, you must
12576 follow the command name with two commas in a row; otherwise, the Info
12577 formatting commands will naturally misinterpret the end delimiter string
12578 you intended as the start delimiter string.
12579
12580 If you do a @code{@@definfoenclose} on the name of a pre-defined macro
12581 (such as @code{@@emph}, @code{@@strong}, @code{@@t}, or @code{@@i}), the
12582 enclosure definition will override the built-in definition.
12583
12584 An enclosure command defined this way takes one argument in braces; this
12585 is intended for new markup commands (@pxref{Marking Text}).
12586
12587 @findex phoo
12588 For example, you can write:
12589
12590 @example
12591 @@definfoenclose phoo,//,\\
12592 @end example
12593
12594 @noindent
12595 near the beginning of a Texinfo file to define @code{@@phoo} as an Info
12596 formatting command that inserts `//' before and `\\' after the argument
12597 to @code{@@phoo}. You can then write @code{@@phoo@{bar@}} wherever you
12598 want `//bar\\' highlighted in Info.
12599
12600 Also, for TeX formatting, you could write
12601
12602 @example
12603 @@iftex
12604 @@global@@let@@phoo=@@i
12605 @@end iftex
12606 @end example
12607
12608 @noindent
12609 to define @code{@@phoo} as a command that causes TeX to typeset the
12610 argument to @code{@@phoo} in italics.
12611
12612 Note that each definition applies to its own formatter: one for TeX,
12613 the other for @code{texinfo-format-buffer} or
12614 @code{texinfo-format-region}. The @code{@@definfoenclose} command need
12615 not be within @samp{@@ifinfo}, but the raw @TeX{} commands do need to be
12616 in @samp{@@iftex}.
12617
12618 @findex headword
12619 Here is another example: write
12620
12621 @example
12622 @@definfoenclose headword, , :
12623 @end example
12624
12625 @noindent
12626 near the beginning of the file, to define @code{@@headword} as an Info
12627 formatting command that inserts nothing before and a colon after the
12628 argument to @code{@@headword}.
12629
12630 @samp{@@definfoenclose} definitions must not be recursive, directly or
12631 indirectly.
12632
12633
12634 @node Hardcopy
12635 @chapter Formatting and Printing Hardcopy
12636 @cindex Format and print hardcopy 11910 @cindex Format and print hardcopy
12637 @cindex Printing hardcopy
12638 @cindex Hardcopy, printing it 11911 @cindex Hardcopy, printing it
12639 @cindex Making a printed manual 11912 @cindex Making a printed manual
12640 @cindex Sorting indices 11913 @cindex Sorting indices
12641 @cindex Indices, sorting 11914 @cindex Indices, sorting
12642 @cindex @TeX{} index sorting 11915 @cindex @TeX{} index sorting
12645 There are three major shell commands for making a printed manual from a 11918 There are three major shell commands for making a printed manual from a
12646 Texinfo file: one for converting the Texinfo file into a file that will be 11919 Texinfo file: one for converting the Texinfo file into a file that will be
12647 printed, a second for sorting indices, and a third for printing the 11920 printed, a second for sorting indices, and a third for printing the
12648 formatted document. When you use the shell commands, you can either 11921 formatted document. When you use the shell commands, you can either
12649 work directly in the operating system shell or work within a shell 11922 work directly in the operating system shell or work within a shell
12650 inside GNU Emacs. 11923 inside GNU Emacs.@refill
12651 11924
12652 If you are using GNU Emacs, you can use commands provided by Texinfo 11925 If you are using GNU Emacs, you can use commands provided by Texinfo
12653 mode instead of shell commands. In addition to the three commands to 11926 mode instead of shell commands. In addition to the three commands to
12654 format a file, sort the indices, and print the result, Texinfo mode 11927 format a file, sort the indices, and print the result, Texinfo mode
12655 offers key bindings for commands to recenter the output buffer, show the 11928 offers key bindings for commands to recenter the output buffer, show the
12656 print queue, and delete a job from the print queue. 11929 print queue, and delete a job from the print queue.@refill
12657 11930
12658 @menu 11931 @menu
12659 * Use TeX:: Use @TeX{} to format for hardcopy. 11932 * Use TeX:: Use @TeX{} to format for hardcopy.
12660 * Format with tex/texindex:: How to format with explicit shell commands. 11933 * Format with tex/texindex:: How to format in a shell.
12661 * Format with texi2dvi:: A simpler way to format. 11934 * Format with texi2dvi:: A simpler way to use the shell.
12662 * Print with lpr:: How to print. 11935 * Print with lpr:: How to print.
12663 * Within Emacs:: How to format and print from an Emacs shell. 11936 * Within Emacs:: How to format and print from an Emacs shell.
12664 * Texinfo Mode Printing:: How to format and print in Texinfo mode. 11937 * Texinfo Mode Printing:: How to format and print in Texinfo mode.
12665 * Compile-Command:: How to print using Emacs's compile command. 11938 * Compile-Command:: How to print using Emacs's compile command.
12666 * Requirements Summary:: @TeX{} formatting requirements summary. 11939 * Requirements Summary:: @TeX{} formatting requirements summary.
12667 * Preparing for TeX:: What to do before you use @TeX{}. 11940 * Preparing for TeX:: What you need to do to use @TeX{}.
12668 * Overfull hboxes:: What are and what to do with overfull hboxes. 11941 * Overfull hboxes:: What are and what to do with overfull hboxes.
12669 * smallbook:: How to print small format books and manuals. 11942 * smallbook:: How to print small format books and manuals.
12670 * A4 Paper:: How to print on European A4 paper. 11943 * A4 Paper:: How to print on European A4 paper.
12671 * pagesizes:: How to print with customized page sizes.
12672 * Cropmarks and Magnification:: How to print marks to indicate the size 11944 * Cropmarks and Magnification:: How to print marks to indicate the size
12673 of pages and how to print scaled up output. 11945 of pages and how to print scaled up output.
12674 * PDF Output:: Portable Document Format output.
12675 @end menu 11946 @end menu
12676 11947
12677 @node Use TeX 11948 @node Use TeX, Format with tex/texindex, Format/Print Hardcopy, Format/Print Hardcopy
12678 @section Use @TeX{} 11949 @ifinfo
11950 @heading Use @TeX{}
11951 @end ifinfo
12679 11952
12680 The typesetting program called @TeX{} is used for formatting a Texinfo 11953 The typesetting program called @TeX{} is used for formatting a Texinfo
12681 file. @TeX{} is a very powerful typesetting program and, if used correctly, 11954 file. @TeX{} is a very powerful typesetting program and, if used right,
12682 does an exceptionally good job. (@xref{Obtaining TeX, , How to Obtain 11955 does an exceptionally good job. (@xref{Obtaining TeX, , How to Obtain
12683 @TeX{}}, for information on how to obtain @TeX{}.) 11956 @TeX{}}, for information on how to obtain @TeX{}.)
12684 11957
12685 The @code{makeinfo}, @code{texinfo-format-region}, and 11958 The @code{makeinfo}, @code{texinfo-format-region}, and
12686 @code{texinfo-format-buffer} commands read the very same @@-commands 11959 @code{texinfo-format-buffer} commands read the very same @@-commands
12687 in the Texinfo file as does @TeX{}, but process them differently to 11960 in the Texinfo file as does @TeX{}, but process them differently to
12688 make an Info file (@pxref{Creating an Info File}). 11961 make an Info file; see @ref{Create an Info File}.@refill
12689 11962
12690 11963 @node Format with tex/texindex, Format with texi2dvi, Use TeX, Format/Print Hardcopy
12691 @node Format with tex/texindex 11964 @comment node-name, next, previous, up
12692 @section Format with @code{tex} and @code{texindex} 11965 @section Format using @code{tex} and @code{texindex}
12693 @cindex Shell formatting with @code{tex} and @code{texindex} 11966 @cindex Shell formatting with @code{tex} and @code{texindex}
12694 @cindex Formatting with @code{tex} and @code{texindex} 11967 @cindex Formatting with @code{tex} and @code{texindex}
12695 @cindex DVI file 11968 @cindex DVI file
12696 11969
12697 Format the Texinfo file with the shell command @code{tex} followed by 11970 Format the Texinfo file with the shell command @code{tex} followed by
12699 11972
12700 @example 11973 @example
12701 tex foo.texi 11974 tex foo.texi
12702 @end example 11975 @end example
12703 11976
12704 @noindent @TeX{} will produce a @dfn{DVI file} as well as several auxiliary 11977 @noindent
11978 @TeX{} will produce a @dfn{DVI file} as well as several auxiliary
12705 files containing information for indices, cross references, etc. The 11979 files containing information for indices, cross references, etc. The
12706 DVI file (for @dfn{DeVice Independent} file) can be printed on virtually 11980 DVI file (for @dfn{DeVice Independent} file) can be printed on virtually
12707 any device (see the following sections). 11981 any printe (see the following sections).
12708 11982
12709 @pindex texindex 11983 @pindex texindex
12710 The @code{tex} formatting command itself does not sort the indices; it 11984 The @code{tex} formatting command itself does not sort the indices; it
12711 writes an output file of unsorted index data. (The @code{texi2dvi} 11985 writes an output file of unsorted index data. (The @code{texi2dvi}
12712 command automatically generates indices; @pxref{Format with texi2dvi,, 11986 command automatically generates indices; see @ref{Format with texi2dvi,,
12713 Format with @code{texi2dvi}}.) To generate a printed index after 11987 Format using @code{texi2dvi}}.) To generate a printed index after
12714 running the @code{tex} command, you first need a sorted index to work 11988 running the @code{tex} command, you first need a sorted index to work
12715 from. The @code{texindex} command sorts indices. (The source file 11989 from. The @code{texindex} command sorts indices. (The source file
12716 @file{texindex.c} comes as part of the standard Texinfo distribution, 11990 @file{texindex.c} comes as part of the standard Texinfo distribution,
12717 among other places.)@refill 11991 among other places.)@refill
12718 11992
12719 @cindex Names of index files 11993 @cindex Names of index files
12720 @cindex Index file names
12721 The @code{tex} formatting command outputs unsorted index files under 11994 The @code{tex} formatting command outputs unsorted index files under
12722 names that obey a standard convention: the name of your main input file 11995 names that obey a standard convention: the name of your main input file
12723 with any @samp{.tex} (or similar, @pxref{tex invocation,,, web2c, 11996 with any @samp{.tex} (or similar, @pxref{tex invocation,,, web2c,
12724 Web2c}) extension removed, followed by the two letter names of indices. 11997 Web2c}) extension removed, followed by the two letter names of indices.
12725 For example, the raw index output files for the input file 11998 For example, the raw index output files for the input file
12726 @file{foo.texinfo} would be @file{foo.cp}, @file{foo.vr}, @file{foo.fn}, 11999 @file{foo.texinfo} would be @file{foo.cp}, @file{foo.vr}, @file{foo.fn},
12727 @file{foo.tp}, @file{foo.pg} and @file{foo.ky}. Those are exactly the 12000 @file{foo.tp}, @file{foo.pg} and @file{foo.ky}. Those are exactly the
12728 arguments to give to @code{texindex}. 12001 arguments to give to @code{texindex}.@refill
12729 12002
12730 @need 1000 12003 @need 1000
12731 @cindex Wildcards 12004 @cindex Wildcards
12732 @cindex Globbing 12005 @cindex Globbing
12733 Instead of specifying all the unsorted index file names explicitly, you 12006 Instead of specifying all the unsorted index file names explicitly, you
12734 can use @samp{??} as shell wildcards and give the command in this 12007 can use @samp{??} as shell wildcards and give the command in this
12735 form: 12008 form:@refill
12736 12009
12737 @example 12010 @example
12738 texindex foo.?? 12011 texindex foo.??
12739 @end example 12012 @end example
12740 12013
12742 This command will run @code{texindex} on all the unsorted index files, 12015 This command will run @code{texindex} on all the unsorted index files,
12743 including any that you have defined yourself using @code{@@defindex} 12016 including any that you have defined yourself using @code{@@defindex}
12744 or @code{@@defcodeindex}. (You may execute @samp{texindex foo.??} 12017 or @code{@@defcodeindex}. (You may execute @samp{texindex foo.??}
12745 even if there are similarly named files with two letter extensions 12018 even if there are similarly named files with two letter extensions
12746 that are not index files, such as @samp{foo.el}. The @code{texindex} 12019 that are not index files, such as @samp{foo.el}. The @code{texindex}
12747 command reports but otherwise ignores such files.) 12020 command reports but otherwise ignores such files.)@refill
12748 12021
12749 For each file specified, @code{texindex} generates a sorted index file 12022 For each file specified, @code{texindex} generates a sorted index file
12750 whose name is made by appending @samp{s} to the input file name. The 12023 whose name is made by appending @samp{s} to the input file name. The
12751 @code{@@printindex} command looks for a file with that name 12024 @code{@@printindex} command knows to look for a file of that name
12752 (@pxref{Printing Indices & Menus}). @code{texindex} does not alter the 12025 (@pxref{Printing Indices & Menus}). @code{texindex} does not alter the
12753 raw index output file. 12026 raw index output file.@refill
12754 12027
12755 After you have sorted the indices, you need to rerun the @code{tex} 12028 After you have sorted the indices, you need to rerun the @code{tex}
12756 formatting command on the Texinfo file. This regenerates the DVI file, 12029 formatting command on the Texinfo file. This regenerates the DVI file,
12757 this time with up-to-date index entries. 12030 this time with up-to-date index entries.
12758 12031
12759 Finally, you may need to run @code{tex} one more time, to get the page 12032 Finally, you may need to run @code{tex} one more time, to get the page
12760 numbers in the cross-references correct. 12033 numbers in the cross-references correct.
12761 12034
12762 To summarize, this is a five step process: 12035 To summarize, this is a four step process:
12763 12036
12764 @enumerate 12037 @enumerate
12765 @item 12038 @item
12766 Run @code{tex} on your Texinfo file. This generates a DVI file (with 12039 Run @code{tex} on your Texinfo file. This generates a DVI file (with
12767 undefined cross-references and no indices), and the raw index files 12040 undefined cross-references and no indices), and the raw index files
12775 Run @code{tex} again on your Texinfo file. This regenerates the DVI 12048 Run @code{tex} again on your Texinfo file. This regenerates the DVI
12776 file, this time with indices and defined cross-references, but with page 12049 file, this time with indices and defined cross-references, but with page
12777 numbers for the cross-references from last time, generally incorrect. 12050 numbers for the cross-references from last time, generally incorrect.
12778 12051
12779 @item 12052 @item
12780 Sort the indices again, with @code{texindex}.
12781
12782 @item
12783 Run @code{tex} one last time. This time the correct page numbers are 12053 Run @code{tex} one last time. This time the correct page numbers are
12784 written for the cross-references. 12054 written for the cross-references.
12785 @end enumerate 12055 @end enumerate
12786 12056
12787 @pindex texi2dvi 12057 @pindex texi2dvi
12788 Alternatively, it's a one-step process: run @code{texi2dvi} 12058 Alternatively, it's a one-step process: run @code{texi2dvi}.
12789 (@pxref{Format with texi2dvi}).
12790 12059
12791 You need not run @code{texindex} each time after you run @code{tex}. If 12060 You need not run @code{texindex} each time after you run @code{tex}. If
12792 you do not, on the next run, the @code{tex} formatting command will use 12061 you do not, on the next run, the @code{tex} formatting command will use
12793 whatever sorted index files happen to exist from the previous use of 12062 whatever sorted index files happen to exist from the previous use of
12794 @code{texindex}. This is usually ok while you are debugging. 12063 @code{texindex}. This is usually ok while you are
12795 12064 debugging.@refill
12796 @cindex Auxiliary files, avoiding 12065
12797 @findex novalidate 12066
12798 @cindex Pointer validation, suppressing 12067 @node Format with texi2dvi, Print with lpr, Format with tex/texindex, Format/Print Hardcopy
12799 @cindex Chapters, formatting one at a time 12068 @comment node-name, next, previous, up
12800 Sometimes you may wish to print a document while you know it is 12069 @section Format using @code{texi2dvi}
12801 incomplete, or to print just one chapter of a document. In that case,
12802 the usual auxiliary files that @TeX{} creates and warnings @TeX{} gives
12803 when cross-references are not satisfied are just nuisances. You can
12804 avoid them with the @code{@@novalidate} command, which you must give
12805 @emph{before} the @code{@@setfilename} command
12806 (@pxref{setfilename,,@code{@@setfilename}}). Thus, the beginning of
12807 your file would look approximately like this:
12808
12809 @example
12810 \input texinfo
12811 @@novalidate
12812 @@setfilename myfile.info
12813 @dots{}
12814 @end example
12815
12816 @noindent @code{@@novalidate} also turns off validation in
12817 @code{makeinfo}, just like its @code{--no-validate} option
12818 (@pxref{Pointer Validation}).
12819
12820
12821 @node Format with texi2dvi
12822 @section Format with @code{texi2dvi}
12823 @pindex texi2dvi @r{(shell script)} 12070 @pindex texi2dvi @r{(shell script)}
12824 12071
12825 The @code{texi2dvi} command automatically runs both @code{tex} and 12072 The @code{texi2dvi} command automatically runs both @code{tex} and
12826 @code{texindex} as many times as necessary to produce a DVI file with 12073 @code{texindex} as many times as necessary to produce a DVI file with
12827 sorted indices and all cross-references resolved. It simplifies the 12074 up-to-date, sorted indices. It simplifies the
12828 @code{tex}---@code{texindex}---@code{tex}---@code{tex} sequence 12075 @code{tex}---@code{texindex}---@code{tex} sequence described in the
12829 described in the previous section. 12076 previous section.
12830 12077
12831 To run @code{texi2dvi} on an input file @file{foo.texi}, do this (where 12078 The syntax for @code{texi2dvi} is like this (where @samp{prompt$} is your
12832 @samp{prompt$ } is your shell prompt): 12079 shell prompt):@refill
12833 12080
12834 @example 12081 @example
12835 prompt$ @kbd{texi2dvi foo.texi} 12082 prompt$ @kbd{texi2dvi @var{filename}@dots{}}
12836 @end example 12083 @end example
12837 12084
12838 As shown in this example, the input filenames to @code{texi2dvi} must 12085 For a list of options, run @samp{texi2dvi --help}.
12839 include any extension (@samp{.texi}, @samp{.texinfo}, etc.). Under 12086
12840 MS-DOS and perhaps in other circumstances, you may need to run @samp{sh 12087
12841 texi2dvi foo.texi} instead of relying on the operating system to invoke 12088 @node Print with lpr, Within Emacs, Format with texi2dvi, Format/Print Hardcopy
12842 the shell on the @samp{texi2dvi} script. 12089 @comment node-name, next, previous, up
12843
12844 Perhaps the most useful option to @code{texi2dvi} is
12845 @samp{--texinfo=@var{cmd}}. This inserts @var{cmd} on a line by itself
12846 after the @code{@@setfilename} in a temporary copy of the input file
12847 before running @TeX{}. With this, you can specify different printing
12848 formats, such as @code{@@smallbook} (@pxref{smallbook}),
12849 @code{@@afourpaper} (@pxref{A4 Paper}), or @code{@@pageparams}
12850 (@pxref{pagesizes}), without actually changing the document source.
12851 (You can also do this on a site-wide basis with @file{texinfo.cnf};
12852 @pxref{Preparing for TeX,,Preparing for @TeX{}}).
12853
12854 For a list of other options, run @samp{texi2dvi --help}.
12855
12856
12857 @node Print with lpr, Within Emacs, Format with texi2dvi, Hardcopy
12858 @section Shell Print Using @code{lpr -d} 12090 @section Shell Print Using @code{lpr -d}
12859 @pindex lpr @r{(DVI print command)} 12091 @pindex lpr @r{(DVI print command)}
12860 12092
12861 The precise command to print a DVI file depends on your system 12093 The precise command to print a DVI file depends on your system
12862 installation, but @samp{lpr -d} is common. The command may require the 12094 installation, but @samp{lpr -d} is common. The command may require the
12863 DVI file name without any extension or with a @samp{.dvi} 12095 DVI file name without any extension or with a @samp{.dvi}
12864 extension. (If it is @samp{lpr}, you must include the @samp{.dvi}.) 12096 extension. (If it is @samp{lpr}, you must include the @samp{.dvi}.)
12865 12097
12866 For example, the following commands, will (perhaps) suffice to sort the 12098 The following commands, for example, will (probably) suffice to sort the
12867 indices, format, and print the @cite{Bison Manual}: 12099 indices, format, and print the @cite{Bison Manual}:
12868 12100
12869 @example 12101 @example
12870 @group 12102 @group
12871 tex bison.texinfo 12103 tex bison.texinfo
12887 texi2dvi bison.texinfo 12119 texi2dvi bison.texinfo
12888 lpr -d bison.dvi 12120 lpr -d bison.dvi
12889 @end group 12121 @end group
12890 @end example 12122 @end example
12891 12123
12892 @cindex Shell printing, on MS-DOS/MS-Windows 12124 @node Within Emacs, Texinfo Mode Printing, Print with lpr, Format/Print Hardcopy
12893 @cindex Printing DVI files, on MS-DOS/MS-Windows 12125 @comment node-name, next, previous, up
12894 @pindex lpr@r{-d, replacements on MS-DOS/MS-Windows}
12895 @code{lpr} is a standard program on Unix systems, but it is usually
12896 absent on MS-DOS/MS-Windows. Some network packages come with a
12897 program named @code{lpr}, but these are usually limited to sending files
12898 to a print server over the network, and generally don't support the
12899 @samp{-d} option. If you are unfortunate enough to work on one of these
12900 systems, you have several alternative ways of printing DVI files:
12901
12902 @itemize @bullet{}
12903 @item Find and install a Unix-like @code{lpr} program, or its clone.
12904 If you can do that, you will be able to print DVI files just like
12905 described above.
12906
12907 @item Send the DVI files to a network printer queue for DVI files.
12908 Some network printers have special queues for printing DVI files. You
12909 should be able to set up your network software to send files to that
12910 queue. In some cases, the version of @code{lpr} which comes with your
12911 network software will have a special option to send a file to specific
12912 queues, like this:
12913
12914 @example
12915 lpr -Qdvi -hprint.server.domain bison.dvi
12916 @end example
12917
12918 @item Convert the DVI file to a Postscript or PCL file and send it to your
12919 local printer. @xref{dvips invocation,,, dvips, Dvips}, and the man
12920 pages for @code{dvilj}, for detailed description of these tools. Once
12921 the DVI file is converted to the format your local printer understands
12922 directly, just send it to the appropriate port, usually @samp{PRN}.
12923 @end itemize
12924
12925
12926 @node Within Emacs
12927 @section From an Emacs Shell 12126 @section From an Emacs Shell
12928 @cindex Print, format from Emacs shell 12127 @cindex Print, format from Emacs shell
12929 @cindex Format, print from Emacs shell 12128 @cindex Format, print from Emacs shell
12930 @cindex Shell, format, print from 12129 @cindex Shell, format, print from
12931 @cindex Emacs shell, format, print from 12130 @cindex Emacs shell, format, print from
12932 @cindex GNU Emacs shell, format, print from 12131 @cindex GNU Emacs shell, format, print from
12933 12132
12934 You can give formatting and printing commands from a shell within GNU 12133 You can give formatting and printing commands from a shell within GNU
12935 Emacs. To create a shell within Emacs, type @kbd{M-x shell}. In this 12134 Emacs. To create a shell within Emacs, type @kbd{M-x shell}. In this
12936 shell, you can format and print the document. @xref{Hardcopy, , Format 12135 shell, you can format and print the document. @xref{Format/Print
12937 and Print Hardcopy}, for details. 12136 Hardcopy, , Format and Print Hardcopy}, for details.@refill
12938 12137
12939 You can switch to and from the shell buffer while @code{tex} is 12138 You can switch to and from the shell buffer while @code{tex} is
12940 running and do other editing. If you are formatting a long document 12139 running and do other editing. If you are formatting a long document
12941 on a slow machine, this can be very convenient.@refill 12140 on a slow machine, this can be very convenient.@refill
12942 12141
12954 12153
12955 @xref{Texinfo Mode Printing}, for more information about formatting 12154 @xref{Texinfo Mode Printing}, for more information about formatting
12956 and printing in Texinfo mode.@refill 12155 and printing in Texinfo mode.@refill
12957 @end ifinfo 12156 @end ifinfo
12958 12157
12959 12158 @node Texinfo Mode Printing, Compile-Command, Within Emacs, Format/Print Hardcopy
12960 @node Texinfo Mode Printing, Compile-Command, Within Emacs, Hardcopy
12961 @section Formatting and Printing in Texinfo Mode 12159 @section Formatting and Printing in Texinfo Mode
12962 @cindex Region printing in Texinfo mode 12160 @cindex Region printing in Texinfo mode
12963 @cindex Format and print in Texinfo mode 12161 @cindex Format and print in Texinfo mode
12964 @cindex Print and format in Texinfo mode 12162 @cindex Print and format in Texinfo mode
12965 12163
12998 number shown by a preceding @kbd{C-c C-t C-q} command 12196 number shown by a preceding @kbd{C-c C-t C-q} command
12999 (@code{texinfo-show-tex-print-queue}).@refill 12197 (@code{texinfo-show-tex-print-queue}).@refill
13000 12198
13001 @item C-c C-t C-k 12199 @item C-c C-t C-k
13002 @itemx M-x tex-kill-job 12200 @itemx M-x tex-kill-job
13003 Kill the currently running @TeX{} job started by either 12201 Kill the currently running @TeX{} job started by
13004 @code{texinfo-tex-region} or @code{texinfo-tex-buffer}, or any other 12202 @code{texinfo-tex-region} or @code{texinfo-tex-buffer}, or any other
13005 process running in the Texinfo shell buffer.@refill 12203 process running in the Texinfo shell buffer.@refill
13006 12204
13007 @item C-c C-t C-x 12205 @item C-c C-t C-x
13008 @itemx M-x texinfo-quit-job 12206 @itemx M-x texinfo-quit-job
13057 @end group 12255 @end group
13058 @end example 12256 @end example
13059 12257
13060 You can change the values of these variables with the @kbd{M-x 12258 You can change the values of these variables with the @kbd{M-x
13061 edit-options} command (@pxref{Edit Options, , Editing Variable Values, 12259 edit-options} command (@pxref{Edit Options, , Editing Variable Values,
13062 emacs, The GNU Emacs Manual}), with the @kbd{M-x set-variable} command 12260 xemacs, XEmacs User's Manual}), with the @kbd{M-x set-variable} command
13063 (@pxref{Examining, , Examining and Setting Variables, emacs, The GNU 12261 (@pxref{Examining, , Examining and Setting Variables, xemacs, XEmacs
13064 Emacs Manual}), or with your @file{.emacs} initialization file 12262 User's Manual}), or with your @file{.emacs} initialization file
13065 (@pxref{Init File, , , emacs, The GNU Emacs Manual}).@refill 12263 (@pxref{Init File, , , xemacs, XEmacs User's Manual}).@refill
13066 12264
13067 @cindex Customize Emacs package 12265 @node Compile-Command, Requirements Summary, Texinfo Mode Printing, Format/Print Hardcopy
13068 @findex Development/Docs/Texinfo Customize group 12266 @comment node-name, next, previous, up
13069 Beginning with version 20, GNU Emacs offers a user-friendly interface,
13070 called @dfn{Customize}, for changing values of user-definable variables.
13071 @xref{Easy Customization, , Easy Customization Interface, emacs, The GNU
13072 Emacs Manual}, for more details about this. The Texinfo variables can
13073 be found in the @samp{Development/Docs/Texinfo} group, once you invoke
13074 the @kbd{M-x customize} command.
13075
13076
13077 @node Compile-Command, Requirements Summary, Texinfo Mode Printing, Hardcopy
13078 @section Using the Local Variables List 12267 @section Using the Local Variables List
13079 @cindex Local variables 12268 @cindex Local variables
13080 @cindex Compile command for formatting 12269 @cindex Compile command for formatting
13081 @cindex Format with the compile command 12270 @cindex Format with the compile command
13082 12271
13097 @end group 12286 @end group
13098 @end example 12287 @end example
13099 12288
13100 @noindent 12289 @noindent
13101 This technique is most often used by programmers who also compile programs 12290 This technique is most often used by programmers who also compile programs
13102 this way; see @ref{Compilation, , , emacs, The GNU Emacs Manual}.@refill 12291 this way; see @ref{Compilation, , , xemacs, XEmacs User's Manual}.@refill
13103 12292
13104 12293
13105 @node Requirements Summary 12294 @node Requirements Summary, Preparing for TeX, Compile-Command, Format/Print Hardcopy
12295 @comment node-name, next, previous, up
13106 @section @TeX{} Formatting Requirements Summary 12296 @section @TeX{} Formatting Requirements Summary
13107 @cindex Requirements for formatting 12297 @cindex Requirements for formatting
13108 @cindex Minimal requirements for formatting 12298 @cindex Minimal requirements for formatting
13109 @cindex Formatting requirements 12299 @cindex Formatting requirements
13110 12300
13111 Every Texinfo file that is to be input to @TeX{} must begin with a 12301 Every Texinfo file that is to be input to @TeX{} must begin with a
13112 @code{\input} command and must contain an @code{@@setfilename} command: 12302 @code{\input} command and must contain an @code{@@setfilename} command:
13113 12303
13114 @example 12304 @example
13115 \input texinfo 12305 \input texinfo
13116 @@setfilename @var{arg-not-used-by-@TeX{}} 12306 @@setfilename @var{arg-not-used-by-@@TeX@{@}}
13117 @end example 12307 @end example
13118 12308
13119 @noindent 12309 @noindent
13120 The first command instructs @TeX{} to load the macros it needs to 12310 The first command instructs @TeX{} to load the macros it needs to
13121 process a Texinfo file and the second command opens auxiliary files. 12311 process a Texinfo file and the second command opens auxiliary files.
13126 @example 12316 @example
13127 @@bye 12317 @@bye
13128 @end example 12318 @end example
13129 12319
13130 Strictly speaking, these lines are all a Texinfo file needs to be 12320 Strictly speaking, these lines are all a Texinfo file needs to be
13131 processed successfully by @TeX{}. 12321 processed successfully by @TeX{}.
13132 12322
13133 Usually, however, the beginning includes an @code{@@settitle} command to 12323 Usually, however, the beginning includes an @code{@@settitle} command to
13134 define the title of the printed manual, an @code{@@setchapternewpage} 12324 define the title of the printed manual, an @code{@@setchapternewpage}
13135 command, a title page, a copyright page, and permissions. Besides an 12325 command, a title page, a copyright page, and permissions. Besides an
13136 @code{@@bye}, the end of a file usually includes indices and a table of 12326 @code{@@bye}, the end of a file usually includes indices and a table of
13137 contents. (And of course most manuals contain a body of text as well.) 12327 contents. (And of course most manuals contain a body of text as well.)
13138 12328
13139 For more information, see: 12329 @iftex
13140 @itemize @bullet 12330 For more information, see
13141 @item @ref{settitle, , @code{@@settitle}} 12331 @ref{settitle, , @code{@@settitle}},
13142 @item @ref{setchapternewpage, , @code{@@setchapternewpage}} 12332 @ref{setchapternewpage, , @code{@@setchapternewpage}},
13143 @item @ref{Headings, ,Page Headings} 12333 @ref{Headings, ,Page Headings},
13144 @item @ref{Titlepage & Copyright Page} 12334 @ref{Titlepage & Copyright Page},
13145 @item @ref{Printing Indices & Menus} 12335 @ref{Printing Indices & Menus}, and
13146 @item @ref{Contents} 12336 @ref{Contents}.
13147 @end itemize 12337 @end iftex
13148 12338 @noindent
13149 12339 @ifinfo
13150 @node Preparing for TeX 12340 For more information, see@*
13151 @section Preparing for @TeX{} 12341 @ref{settitle, , @code{@@settitle}},@*
13152 @cindex Preparing for @TeX{} 12342 @ref{setchapternewpage, , @code{@@setchapternewpage}},@*
12343 @ref{Headings, ,Page Headings},@*
12344 @ref{Titlepage & Copyright Page},@*
12345 @ref{Printing Indices & Menus}, and@*
12346 @ref{Contents}.
12347 @end ifinfo
12348
12349
12350 @node Preparing for TeX, Overfull hboxes, Requirements Summary, Format/Print Hardcopy
12351 @comment node-name, next, previous, up
12352 @section Preparing to Use @TeX{}
12353 @cindex Preparing to use @TeX{}
13153 @cindex @TeX{} input initialization 12354 @cindex @TeX{} input initialization
13154 @cindex @code{TEXINPUTS} environment variable 12355 @cindex @code{TEXINPUTS} environment variable
13155 @vindex TEXINPUTS 12356 @vindex TEXINPUTS
13156 @cindex @b{.profile} initialization file 12357 @cindex @b{.profile} initialization file
13157 @cindex @b{.cshrc} initialization file 12358 @cindex @b{.cshrc} initialization file
13180 12381
13181 @pindex texinfo.cnf @r{installation} 12382 @pindex texinfo.cnf @r{installation}
13182 @cindex Customizing of @TeX{} for Texinfo 12383 @cindex Customizing of @TeX{} for Texinfo
13183 @cindex Site-wide Texinfo configuration file 12384 @cindex Site-wide Texinfo configuration file
13184 Optionally, you may create an additional @file{texinfo.cnf}, and install 12385 Optionally, you may create an additional @file{texinfo.cnf}, and install
13185 it as well. This file is read by @TeX{} when the @code{@@setfilename} 12386 it as well. This file is read by @TeX{} at the @code{@@setfilename}
13186 command is executed (@pxref{setfilename,, @code{@@setfilename}}). You can put any 12387 command (@pxref{setfilename,, @code{@@setfilename}}). You can put any
13187 commands you like there, according to local site-wide conventions. They 12388 commands you like there according to local site-wide conventions, and
13188 will be read by @TeX{} when processing any Texinfo document. For 12389 they will be read by @TeX{} when processing any Texinfo document. For
13189 example, if @file{texinfo.cnf} contains the line @samp{@@afourpaper} 12390 example, if @file{texinfo.cnf} contains the a single line
13190 (@pxref{A4 Paper}), then all Texinfo documents will be processed with 12391 @samp{@@afourpaper} (@pxref{A4 Paper}), then all Texinfo documents will
13191 that page size in effect. If you have nothing to put in 12392 be processed with that page size in effect. If you have nothing to put
13192 @file{texinfo.cnf}, you do not need to create it. 12393 in @file{texinfo.cnf}, you do not need to create it.
13193 12394
13194 @vindex TEXINPUTS 12395 @vindex TEXINPUTS
13195 If neither of the above locations for these system files suffice for 12396 If neither of the above locations for these system files suffice for
13196 you, you can specify the directories explicitly. For 12397 you, you can specify the directories explicitly. For
13197 @file{texinfo.tex}, you can do this by writing the complete path for the 12398 @file{texinfo.tex}, you can do this by writing the complete path for the
13222 TEXINPUTS=.:/home/me/mylib:/usr/lib/tex/macros 12423 TEXINPUTS=.:/home/me/mylib:/usr/lib/tex/macros
13223 export TEXINPUTS 12424 export TEXINPUTS
13224 @end group 12425 @end group
13225 @end example 12426 @end example
13226 12427
13227 On MS-DOS/MS-Windows, you would say it like this@footnote{Note the use 12428 @noindent
13228 of the @samp{;} character, instead of @samp{:}, as directory separator 12429 This would cause @TeX{} to look for @file{\input} file first in the current
13229 on these systems.}: 12430 directory, indicated by the @samp{.}, then in a hypothetical user's
13230 12431 @file{me/mylib} directory, and finally in a system directory.
13231 @example 12432
13232 @group 12433
13233 set TEXINPUTS=.;d:/home/me/mylib;c:/usr/lib/tex/macros 12434 @node Overfull hboxes, smallbook, Preparing for TeX, Format/Print Hardcopy
13234 @end group 12435 @comment node-name, next, previous, up
13235 @end example
13236
13237 @noindent
13238 It is customary for DOS/Windows users to put such commands in the
13239 @file{autoexec.bat} file, or in the Windows Registry.@refill
13240
13241 @noindent
13242 These settings would cause @TeX{} to look for @file{\input} file first
13243 in the current directory, indicated by the @samp{.}, then in a
13244 hypothetical user's @file{me/mylib} directory, and finally in a system
13245 directory @file{/usr/lib/tex/macros}.
13246
13247 @cindex Dumping a .fmt file
13248 @cindex Format file, dumping
13249 Finally, you may wish to dump a @file{.fmt} file (@pxref{Memory dumps,,,
13250 web2c, Web2c}) so that @TeX{} can load Texinfo faster. (The
13251 disadvantage is that then updating @file{texinfo.tex} requires
13252 redumping.) You can do this by running this command, assuming
13253 @file{epsf.tex} is findable by @TeX{}:
13254
13255 @example
13256 initex texinfo @@dump
13257 @end example
13258
13259 (@code{@@dump} is a @TeX{} primitive.) You'll then need to move
13260 @file{texinfo.fmt} to wherever your @code{.fmt} files are found;
13261 typically this will be in the subdirectory @file{web2c} of your @TeX{}
13262 installation, for example, @file{/usr/local/share/tex/web2c}.
13263
13264
13265 @node Overfull hboxes
13266 @section Overfull ``hboxes'' 12436 @section Overfull ``hboxes''
13267 @cindex Overfull @samp{hboxes} 12437 @cindex Overfull @samp{hboxes}
13268 @cindex @samp{hboxes}, overfull 12438 @cindex @samp{hboxes}, overfull
13269 @cindex Final output 12439 @cindex Final output
13270 12440
13271 @TeX{} is sometimes unable to typeset a line without extending it into 12441 @TeX{} is sometimes unable to typeset a line without extending it into
13272 the right margin. This can occur when @TeX{} comes upon what it 12442 the right margin. This can occur when @TeX{} comes upon what it
13273 interprets as a long word that it cannot hyphenate, such as an 12443 interprets as a long word that it cannot hyphenate, such as an
13274 electronic mail network address or a very long title. When this 12444 electronic mail network address or a very long title. When this
13275 happens, @TeX{} prints an error message like this: 12445 happens, @TeX{} prints an error message like this:@refill
13276 12446
13277 @example 12447 @example
13278 Overfull @@hbox (20.76302pt too wide) 12448 Overfull \hbox (20.76302pt too wide)
13279 @end example 12449 @end example
13280 12450
13281 @findex hbox
13282 @noindent 12451 @noindent
13283 (In @TeX{}, lines are in ``horizontal boxes'', hence the term, ``hbox''. 12452 (In @TeX{}, lines are in ``horizontal boxes'', hence the term, ``hbox''.
13284 @samp{@@hbox} is a @TeX{} primitive not needed in the Texinfo language.) 12453 The backslash, @samp{\}, is the @TeX{} equivalent of @samp{@@}.)@refill
13285 12454
13286 @TeX{} also provides the line number in the Texinfo source file and 12455 @TeX{} also provides the line number in the Texinfo source file and
13287 the text of the offending line, which is marked at all the places that 12456 the text of the offending line, which is marked at all the places that
13288 @TeX{} considered hyphenation. 12457 @TeX{} knows how to hyphenate words.
13289 @xref{Debugging with TeX, , Catching Errors with @TeX{} Formatting}, 12458 @xref{Debugging with TeX, , Catching Errors with @TeX{} Formatting},
13290 for more information about typesetting errors. 12459 for more information about typesetting errors.@refill
13291 12460
13292 If the Texinfo file has an overfull hbox, you can rewrite the sentence 12461 If the Texinfo file has an overfull hbox, you can rewrite the sentence
13293 so the overfull hbox does not occur, or you can decide to leave it. A 12462 so the overfull hbox does not occur, or you can decide to leave it. A
13294 small excursion into the right margin often does not matter and may not 12463 small excursion into the right margin often does not matter and may not
13295 even be noticeable. 12464 even be noticeable.@refill
13296
13297 If you have many overfull boxes and/or an antipathy to rewriting, you
13298 can coerce @TeX{} into greatly increasing the allowable interword
13299 spacing, thus (if you're lucky) avoiding many of the bad line breaks,
13300 like this:
13301
13302 @findex \emergencystretch
13303 @example
13304 @@tex
13305 \global\emergencystretch = .9\hsize
13306 @@end tex
13307 @end example
13308
13309 @noindent
13310 (You can adjust the fraction as needed.) This huge value for
13311 @code{\emergencystretch} cannot be the default, since then the typeset
13312 output would generally be of noticeably lower quality. The default
13313 value is @samp{.15\hsize}. @code{\hsize} is the @TeX{} dimension
13314 containing the current line width.
13315 12465
13316 @cindex Black rectangle in hardcopy 12466 @cindex Black rectangle in hardcopy
13317 @cindex Rectangle, black in hardcopy 12467 @cindex Rectangle, ugly, black in hardcopy
13318 @cindex Box, ugly black in hardcopy 12468 However, unless told otherwise, @TeX{} will print a large, ugly, black
13319 @cindex Ugly black rectangles in hardcopy 12469 rectangle beside the line that contains the overfull hbox. This is so
13320 For what overfull boxes you have, however, @TeX{} will print a large, 12470 you will notice the location of the problem if you are correcting a
13321 ugly, black rectangle beside the line that contains the overfull hbox 12471 draft.@refill
13322 unless told otherwise. This is so you will notice the location of the 12472
13323 problem if you are correcting a draft. 12473 @need 1000
13324
13325 @findex finalout 12474 @findex finalout
13326 To prevent such a monstrosity from marring your final printout, write 12475 To prevent such a monstrosity from marring your final printout, write
13327 the following in the beginning of the Texinfo file on a line of its own, 12476 the following in the beginning of the Texinfo file on a line of its own,
13328 before the @code{@@titlepage} command: 12477 before the @code{@@titlepage} command:@refill
13329 12478
13330 @example 12479 @example
13331 @@finalout 12480 @@finalout
13332 @end example 12481 @end example
13333 12482
13334 12483 @node smallbook, A4 Paper, Overfull hboxes, Format/Print Hardcopy
13335 @node smallbook 12484 @comment node-name, next, previous, up
13336 @section Printing ``Small'' Books 12485 @section Printing ``Small'' Books
13337 @findex smallbook 12486 @findex smallbook
13338 @cindex Small book size 12487 @cindex Small book size
13339 @cindex Book, printing small 12488 @cindex Book, printing small
13340 @cindex Page sizes for books 12489 @cindex Page sizes for books
13349 @example 12498 @example
13350 @@smallbook 12499 @@smallbook
13351 @end example 12500 @end example
13352 12501
13353 @noindent 12502 @noindent
13354 (Since many books are about 7 by 9.25 inches, this command might better 12503 (Since regular sized books are often about 7 by 9.25 inches, this
13355 have been called the @code{@@regularbooksize} command, but it came to be 12504 command might better have been called the @code{@@regularbooksize}
13356 called the @code{@@smallbook} command by comparison to the 8.5 by 11 inch format.) 12505 command, but it came to be called the @code{@@smallbook} command by
12506 comparison to the 8.5 by 11 inch format.)@refill
13357 12507
13358 If you write the @code{@@smallbook} command between the 12508 If you write the @code{@@smallbook} command between the
13359 start-of-header and end-of-header lines, the Texinfo mode @TeX{} 12509 start-of-header and end-of-header lines, the Texinfo mode @TeX{}
13360 region formatting command, @code{texinfo-tex-region}, will format the 12510 region formatting command, @code{texinfo-tex-region}, will format the
13361 region in ``small'' book size (@pxref{Start of Header}).@refill 12511 region in ``small'' book size (@pxref{Start of Header}).@refill
13362 12512
13363 @xref{small}, for information about 12513 The Free Software Foundation distributes printed copies of @cite{The GNU
13364 commands that make it easier to produce examples for a smaller manual. 12514 Emacs Manual} and other manuals in the ``small'' book size.
13365 12515 @xref{smallexample & smalllisp, , @code{@@smallexample} and
13366 @xref{Format with texi2dvi}, and @ref{Preparing for TeX,,Preparing for 12516 @code{@@smalllisp}}, for information about commands that make it easier
13367 @TeX{}}, for other ways to format with @code{@@smallbook} that do not 12517 to produce examples for a smaller manual.@refill
13368 require changing the source file. 12518
13369 12519 Alternatively, to avoid embedding this physical paper size in your
13370 12520 document, use @code{texi2dvi} to format your document (@pxref{Format
13371 @node A4 Paper 12521 with texi2dvi}), and supply @samp{-t @@smallbook} as an argument. Then
12522 other people do not have to change the document source file to format it
12523 differently.
12524
12525
12526 @node A4 Paper, Cropmarks and Magnification, smallbook, Format/Print Hardcopy
12527 @comment node-name, next, previous, up
13372 @section Printing on A4 Paper 12528 @section Printing on A4 Paper
13373 @cindex A4 paper, printing on 12529 @cindex A4 paper, printing on
13374 @cindex Paper size, European A4 12530 @cindex Paper size, European A4
13375 @cindex European A4 paper 12531 @cindex European A4 paper
13376 @findex afourpaper 12532 @findex afourpaper
13377 12533
13378 You can tell @TeX{} to format a document for printing on European size 12534 You can tell @TeX{} to typeset a document for printing on European size
13379 A4 paper with the @code{@@afourpaper} command. Write the command on a 12535 A4 paper with the @code{@@afourpaper} command. Write the command on a
13380 line by itself near the beginning of the Texinfo file, before the title 12536 line by itself between @code{@@iftex} and @code{@@end iftex} lines near
13381 page. For example, this is how you would write the header for this 12537 the beginning of the Texinfo file, before the title page:@refill
13382 manual: 12538
12539 For example, this is how you would write the header for this manual:@refill
13383 12540
13384 @example 12541 @example
13385 @group 12542 @group
13386 \input texinfo @@c -*-texinfo-*- 12543 \input texinfo @@c -*-texinfo-*-
13387 @@c %**start of header 12544 @@c %**start of header
13388 @@setfilename texinfo 12545 @@setfilename texinfo
13389 @@settitle Texinfo 12546 @@settitle Texinfo
12547 @@syncodeindex vr fn
12548 @@iftex
13390 @@afourpaper 12549 @@afourpaper
12550 @@end iftex
13391 @@c %**end of header 12551 @@c %**end of header
13392 @end group 12552 @end group
13393 @end example 12553 @end example
13394 12554
13395 @xref{Format with texi2dvi}, and @ref{Preparing for TeX,,Preparing for 12555 Alternatively, to avoid embedding this physical paper size in your
13396 @TeX{}}, for other ways to format with @code{@@afourpaper} that do not 12556 document, use @code{texi2dvi} to format your document (@pxref{Format
13397 require changing the source file. 12557 with texi2dvi}), and supply @samp{-t @@afourpaper} as an argument. Then
13398 12558 other people do not have to change the document source file to format it
13399 @findex afourlatex 12559 differently.
13400 You may or may not prefer the formatting that results from the command 12560
13401 @code{@@afourlatex}. There's also @code{@@afourwide} for A4 paper in 12561 @pindex texinfo.cnf
13402 wide format. 12562 Another alternative: put the @code{@@afourpaper} command in the file
13403 12563 @file{texinfo.cnf} that @TeX{} will read. (No need for @code{@@iftex}
13404 12564 there.) This will automatically typeset all the Texinfo documents at
13405 @node pagesizes 12565 your site with that paper size in effect.
13406 @section @code{@@pagesizes} [@var{width}][, @var{height}]: Custom page sizes 12566
13407 @findex pagesizes 12567
13408 @cindex Custom page sizes 12568 @node Cropmarks and Magnification, , A4 Paper, Format/Print Hardcopy
13409 @cindex Page sizes, customized 12569 @comment node-name, next, previous, up
13410 @cindex Text width and height
13411 @cindex Width of text area
13412 @cindex Height of text area
13413 @cindex Depth of text area
13414
13415 You can explicitly specify the height and (optionally) width of the main
13416 text area on the page with the @code{@@pagesizes} command. Write this
13417 on a line by itself near the beginning of the Texinfo file, before the
13418 title page. The height comes first, then the width if desired,
13419 separated by a comma. Examples:
13420
13421 @example
13422 @@pagesizes 200mm,150mm @c for b5 paper
13423 @end example
13424 @noindent and
13425 @example
13426 @@pagesizes 11.5in @c for legal paper
13427 @end example
13428
13429 @cindex B5 paper, printing on
13430 @cindex Legal paper, printing on
13431 This would be reasonable for printing on B5-size paper. To emphasize,
13432 this command specifies the size of the @emph{text area}, not the size of
13433 the paper (which is 250@dmn{mm} by 177@dmn{mm} for B5, 14@dmn{in} by
13434 8.5@dmn{in} for legal).
13435
13436 @cindex Margins on page, not controllable
13437 To make more elaborate changes, such as changing any of the page
13438 margins, you must define a new command in @file{texinfo.tex} (or
13439 @file{texinfo.cnf}, @pxref{Preparing for TeX,,Preparing for @TeX{}}).
13440
13441 @xref{Format with texi2dvi}, and @ref{Preparing for TeX,,Preparing for
13442 @TeX{}}, for other ways to specify @code{@@pagesizes} that do not
13443 require changing the source file.
13444
13445 @code{@@pagesizes} is ignored by @code{makeinfo}.
13446
13447
13448 @node Cropmarks and Magnification
13449 @section Cropmarks and Magnification 12570 @section Cropmarks and Magnification
12571
13450 @findex cropmarks 12572 @findex cropmarks
13451 @cindex Cropmarks for printing 12573 @cindex Cropmarks for printing
13452 @cindex Printing cropmarks 12574 @cindex Printing cropmarks
13453 You can (attempt to) direct @TeX{} to print cropmarks at the corners of 12575 You can attempt to direct @TeX{} to print cropmarks at the corners of
13454 pages with the @code{@@cropmarks} command. Write the @code{@@cropmarks} 12576 pages with the @code{@@cropmarks} command. Write the @code{@@cropmarks}
13455 command on a line by itself between @code{@@iftex} and @code{@@end 12577 command on a line by itself between @code{@@iftex} and @code{@@end
13456 iftex} lines near the beginning of the Texinfo file, before the title 12578 iftex} lines near the beginning of the Texinfo file, before the title
13457 page, like this:@refill 12579 page, like this:@refill
13458 12580
13468 sheet of film; but you can attempt to use it to mark the corners of a 12590 sheet of film; but you can attempt to use it to mark the corners of a
13469 book set to 7 by 9.25 inches with the @code{@@smallbook} command. 12591 book set to 7 by 9.25 inches with the @code{@@smallbook} command.
13470 (Printers will not produce cropmarks for regular sized output that is 12592 (Printers will not produce cropmarks for regular sized output that is
13471 printed on regular sized paper.) Since different printing machines work 12593 printed on regular sized paper.) Since different printing machines work
13472 in different ways, you should explore the use of this command with a 12594 in different ways, you should explore the use of this command with a
13473 spirit of adventure. You may have to redefine the command in 12595 spirit of adventure. You may have to redefine the command in the
13474 @file{texinfo.tex}. 12596 @file{texinfo.tex} definitions file.@refill
13475 12597
13476 @findex mag @r{(@TeX{} command)} 12598 @findex mag @r{(@TeX{} command)}
13477 @cindex Magnified printing 12599 @cindex Magnified printing
13478 @cindex Larger or smaller pages 12600 @cindex Larger or smaller pages
13479 You can attempt to direct @TeX{} to typeset pages larger or smaller than 12601 You can attempt to direct @TeX{} to typeset pages larger or smaller than
13485 (@pxref{Raw Formatter Commands}). 12607 (@pxref{Raw Formatter Commands}).
13486 12608
13487 Follow the @code{\mag} command with an @samp{=} and then a number that 12609 Follow the @code{\mag} command with an @samp{=} and then a number that
13488 is 1000 times the magnification you desire. For example, to print pages 12610 is 1000 times the magnification you desire. For example, to print pages
13489 at 1.2 normal size, write the following near the beginning of the 12611 at 1.2 normal size, write the following near the beginning of the
13490 Texinfo file, before the title page: 12612 Texinfo file, before the title page:@refill
13491 12613
13492 @example 12614 @example
13493 @group 12615 @group
13494 @@tex 12616 @@tex
13495 \mag=1200 12617 \mag=1200
13496 @@end tex 12618 @@end tex
13497 @end group 12619 @end group
13498 @end example 12620 @end example
13499 12621
13500 With some printing technologies, you can print normal-sized copies that 12622 With some printing technologies, you can print normal-sized copies that
13501 look better than usual by giving a larger-than-normal master to your 12623 look better than usual by using a larger-than-normal master.@refill
13502 print shop. They do the reduction, thus effectively increasing the 12624
13503 resolution. 12625 Depending on your system, @code{\mag} may not work or may work only at
13504 12626 certain magnifications. Be prepared to experiment.@refill
13505 Depending on your system, DVI files prepared with a 12627
13506 nonstandard-@code{\mag} may not print or may print only with certain 12628 @node Create an Info File, Install an Info File, Format/Print Hardcopy, Top
13507 magnifications. Be prepared to experiment. 12629 @comment node-name, next, previous, up
13508 12630 @chapter Creating an Info File
13509
13510 @node PDF Output
13511 @section PDF Output
13512 @cindex PDF output
13513
13514 @pindex pdftex
13515 You can generate a PDF output file from Texinfo source by using the
13516 @command{pdftex} program to process your file instead of plain
13517 @command{tex}. Just run @samp{pdftex foo.texi} instead of @samp{tex
13518 foo.texi}, or give the @samp{--pdf} option to @command{texi2dvi}.
13519
13520 PDF stands for Portable Document Format, and was invented by Adobe
13521 Systems. The
13522 @uref{http://www.adobe.com/prodindex/acrobat/adobepdf.html, file format
13523 definition} is freely available, as is a
13524 @uref{http://www.foolabs.com/xpdf/, free viewer} for the X window
13525 system. Since PDF is a binary format, there is no @samp{@@ifpdf} or
13526 @samp{@@pdf} command by analogy with the other output formats.
13527
13528 Despite the `portable' in the name, PDF files are nowhere near as
13529 portable in practice as the plain ASCII formats (Info, HTML) Texinfo
13530 also supports (portability relative to DVI is arguable). They also tend
13531 to be much larger and do not support the bitmap fonts used by @TeX{} (by
13532 default) very well. Nevertheless, a PDF file does preserve an actual
13533 printed document on a screen as faithfully as possible, unlike HTML,
13534 say, so have their place.
13535
13536 PDF support in Texinfo is fairly rudimentary.
13537
13538
13539 @node Creating and Installing Info Files
13540 @chapter Creating and Installing Info Files
13541
13542 This chapter describes how to create and install info files. @xref{Info
13543 Files}, for general information about the file format itself.
13544
13545
13546 @menu
13547 * Creating an Info File::
13548 * Install an Info File::
13549 @end menu
13550
13551 @node Creating an Info File
13552 @section Creating an Info File
13553 @cindex Creating an Info file 12631 @cindex Creating an Info file
13554 @cindex Info, creating an online file 12632 @cindex Info, creating an on-line file
13555 @cindex Formatting a file for Info 12633 @cindex Formatting a file for Info
13556 12634
13557 @code{makeinfo} is a program that converts a Texinfo file into an Info 12635 @code{makeinfo} is a utility that converts a Texinfo file into an Info
13558 file, HTML file, or plain text. @code{texinfo-format-region} and 12636 file; @code{texinfo-format-region} and @code{texinfo-format-buffer} are
13559 @code{texinfo-format-buffer} are GNU Emacs functions that convert 12637 GNU Emacs functions that do the same.@refill
13560 Texinfo to Info. 12638
13561 12639 A Texinfo file must contain an @code{@@setfilename} line near its
13562 For information on installing the Info file in the Info system, 12640 beginning, otherwise the Info formatting commands will fail.
13563 @pxref{Install an Info File}. 12641
12642 For information on installing the Info file in the Info system, see
12643 @ref{Install an Info File}.@refill
13564 12644
13565 @menu 12645 @menu
13566 * makeinfo advantages:: @code{makeinfo} provides better error checking. 12646 * makeinfo advantages:: @code{makeinfo} provides better error checking.
13567 * Invoking makeinfo:: How to run @code{makeinfo} from a shell. 12647 * Invoking makeinfo:: How to run @code{makeinfo} from a shell.
13568 * makeinfo options:: Specify fill-column and other options. 12648 * makeinfo options:: Specify fill-column and other options.
13572 in Emacs Lisp are an alternative 12652 in Emacs Lisp are an alternative
13573 to @code{makeinfo}. 12653 to @code{makeinfo}.
13574 * Batch Formatting:: How to format for Info in Emacs Batch mode. 12654 * Batch Formatting:: How to format for Info in Emacs Batch mode.
13575 * Tag and Split Files:: How tagged and split files help Info 12655 * Tag and Split Files:: How tagged and split files help Info
13576 to run better. 12656 to run better.
13577 * makeinfo html:: Generating HTML output.
13578 @end menu 12657 @end menu
13579 12658
13580 12659 @node makeinfo advantages, Invoking makeinfo, Create an Info File, Create an Info File
13581 @node makeinfo advantages 12660 @ifinfo
13582 @subsection @code{makeinfo} Preferred 12661 @heading @code{makeinfo} Preferred
12662 @end ifinfo
13583 12663
13584 The @code{makeinfo} utility creates an Info file from a Texinfo source 12664 The @code{makeinfo} utility creates an Info file from a Texinfo source
13585 file more quickly than either of the Emacs formatting commands and 12665 file more quickly than either of the Emacs formatting commands and
13586 provides better error messages. We recommend it. @code{makeinfo} is a 12666 provides better error messages. We recommend it. @code{makeinfo} is a
13587 C program that is independent of Emacs. You do not need to run Emacs to 12667 C program that is independent of Emacs. You do not need to run Emacs to
13588 use @code{makeinfo}, which means you can use @code{makeinfo} on machines 12668 use @code{makeinfo}, which means you can use @code{makeinfo} on machines
13589 that are too small to run Emacs. You can run @code{makeinfo} in any one 12669 that are too small to run Emacs. You can run @code{makeinfo} in
13590 of three ways: from an operating system shell, from a shell inside 12670 any one of three ways: from an operating system shell, from a shell
13591 Emacs, or by typing the @kbd{C-c C-m C-r} or the @kbd{C-c C-m C-b} 12671 inside Emacs, or by typing a key command in Texinfo mode in Emacs.
13592 command in Texinfo mode in Emacs.
13593 @refill 12672 @refill
13594 12673
13595 The @code{texinfo-format-region} and the @code{texinfo-format-buffer} 12674 The @code{texinfo-format-region} and the @code{texinfo-format-buffer}
13596 commands are useful if you cannot run @code{makeinfo}. Also, in some 12675 commands are useful if you cannot run @code{makeinfo}. Also, in some
13597 circumstances, they format short regions or buffers more quickly than 12676 circumstances, they format short regions or buffers more quickly than
13598 @code{makeinfo}.@refill 12677 @code{makeinfo}.@refill
13599 12678
13600 @node Invoking makeinfo 12679 @node Invoking makeinfo, makeinfo options, makeinfo advantages, Create an Info File
13601 @subsection Running @code{makeinfo} from a Shell 12680 @section Running @code{makeinfo} from a Shell
13602 12681
13603 To create an Info file from a Texinfo file, type @code{makeinfo} 12682 To create an Info file from a Texinfo file, type @code{makeinfo}
13604 followed by the name of the Texinfo file. Thus, to create the Info 12683 followed by the name of the Texinfo file. Thus, to create the Info
13605 file for Bison, type the following to the shell: 12684 file for Bison, type the following to the shell:
12685 is the prompt):@refill
13606 12686
13607 @example 12687 @example
13608 makeinfo bison.texinfo 12688 makeinfo bison.texinfo
13609 @end example 12689 @end example
13610 12690
13621 12701
13622 @xref{makeinfo options}, for more information. 12702 @xref{makeinfo options}, for more information.
13623 @end ifinfo 12703 @end ifinfo
13624 12704
13625 12705
13626 @node makeinfo options 12706 @node makeinfo options, Pointer Validation, Invoking makeinfo, Create an Info File
13627 @comment node-name, next, previous, up 12707 @comment node-name, next, previous, up
13628 @subsection Options for @code{makeinfo} 12708 @section Options for @code{makeinfo}
13629 @cindex @code{makeinfo} options 12709 @cindex @code{makeinfo} options
13630 @cindex Options for @code{makeinfo} 12710 @cindex Options for @code{makeinfo}
13631 12711
13632 The @code{makeinfo} command takes a number of options. Most often, 12712 The @code{makeinfo} command takes a number of options. Most often,
13633 options are used to set the value of the fill column and specify the 12713 options are used to set the value of the fill column and specify the
13660 @item -D @var{var} 12740 @item -D @var{var}
13661 @opindex -D @var{var} 12741 @opindex -D @var{var}
13662 Cause the variable @var{var} to be defined. This is equivalent to 12742 Cause the variable @var{var} to be defined. This is equivalent to
13663 @code{@@set @var{var}} in the Texinfo file (@pxref{set clear value}). 12743 @code{@@set @var{var}} in the Texinfo file (@pxref{set clear value}).
13664 12744
13665 @item --commands-in-node-names
13666 @opindex --commands-in-node-names
13667 Allow @code{@@}-commands in node names. This is not recommended, as it
13668 can probably never be implemented in @TeX{}. It also makes
13669 @code{makeinfo} much slower. Also, this option is ignored when
13670 @samp{--no-validate} is used. @xref{Pointer Validation}, for more
13671 details.
13672
13673 @item --error-limit=@var{limit} 12745 @item --error-limit=@var{limit}
13674 @itemx -e @var{limit}
13675 @opindex --error-limit=@var{limit} 12746 @opindex --error-limit=@var{limit}
13676 @opindex -e @var{limit}
13677 Set the maximum number of errors that @code{makeinfo} will report 12747 Set the maximum number of errors that @code{makeinfo} will report
13678 before exiting (on the assumption that continuing would be useless); 12748 before exiting (on the assumption that continuing would be useless);
13679 default 100. 12749 default 100.
13680 12750
12751 @need 150
13681 @item --fill-column=@var{width} 12752 @item --fill-column=@var{width}
13682 @itemx -f @var{width}
13683 @opindex --fill-column=@var{width} 12753 @opindex --fill-column=@var{width}
13684 @opindex -f @var{width}
13685 Specify the maximum number of columns in a line; this is the right-hand 12754 Specify the maximum number of columns in a line; this is the right-hand
13686 edge of a line. Paragraphs that are filled will be filled to this 12755 edge of a line. Paragraphs that are filled will be filled to this
13687 width. (Filling is the process of breaking up and connecting lines so 12756 width. (Filling is the process of breaking up and connecting lines so
13688 that lines are the same length as or shorter than the number specified 12757 that lines are the same length as or shorter than the number specified
13689 as the fill column. Lines are broken between words.) The default value 12758 as the fill column. Lines are broken between words.) The default value
13690 is 72. Ignored with @samp{--html}. 12759 is 72.
13691 12760
13692 @item --footnote-style=@var{style} 12761 @item --footnote-style=@var{style}
13693 @itemx -s @var{style}
13694 @opindex --footnote-style=@var{style} 12762 @opindex --footnote-style=@var{style}
13695 @opindex -s @var{style}
13696 Set the footnote style to @var{style}, either @samp{end} for the end 12763 Set the footnote style to @var{style}, either @samp{end} for the end
13697 node style (the default) or @samp{separate} for the separate node style. 12764 node style (the default) or @samp{separate} for the separate node style.
13698 The value set by this option overrides the value set in a Texinfo file 12765 The value set by this option overrides the value set in a Texinfo file
13699 by an @code{@@footnotestyle} command (@pxref{Footnotes}). When the 12766 by an @code{@@footnotestyle} command (@pxref{Footnotes}). When the
13700 footnote style is @samp{separate}, @code{makeinfo} makes a new node 12767 footnote style is @samp{separate}, @code{makeinfo} makes a new node
13701 containing the footnotes found in the current node. When the footnote 12768 containing the footnotes found in the current node. When the footnote
13702 style is @samp{end}, @code{makeinfo} places the footnote references at 12769 style is @samp{end}, @code{makeinfo} places the footnote references at
13703 the end of the current node. Ignored with @samp{--html}. 12770 the end of the current node.
13704 12771
13705 @item --force 12772 @item --force
13706 @itemx -F
13707 @opindex --force 12773 @opindex --force
13708 @opindex -F
13709 Ordinarily, if the input file has errors, the output files are not 12774 Ordinarily, if the input file has errors, the output files are not
13710 created. With this option, they are preserved. 12775 created. With this option, they are preserved.
13711 12776
13712 @item --help 12777 @item --help
13713 @itemx -h
13714 @opindex --help 12778 @opindex --help
13715 @opindex -h
13716 Print a usage message listing all available options, then exit successfully. 12779 Print a usage message listing all available options, then exit successfully.
13717
13718 @item --html
13719 Generate HTML output rather than Info. @xref{makeinfo html}.
13720 12780
13721 @item -I @var{dir} 12781 @item -I @var{dir}
13722 @opindex -I @var{dir} 12782 @opindex -I @var{dir}
13723 Append @var{dir} to the directory search list for finding files that 12783 Add @code{dir} to the directory search list for finding files that are
13724 are included using the @code{@@include} command. By default, 12784 included using the @code{@@include} command. By default,
13725 @code{makeinfo} searches only the current directory. If @var{dir} is 12785 @code{makeinfo} searches only the current directory.
13726 not given, the current directory @file{.} is appended. Note that
13727 @var{dir} can actually be a list of several directories separated by the
13728 usual path separator character (@samp{:} on Unix, @samp{;} on
13729 MS-DOS/MS-Windows).
13730
13731 @item --macro-expand=@var{file}
13732 @itemx -E @var{file}
13733 Output the Texinfo source with all the macros expanded to the named
13734 file. Normally, the results of macro expansion are used internally by
13735 @code{makeinfo} and then discarded. This option is used by
13736 @command{texi2dvi} if you are using an old version of @file{texinfo.tex}
13737 that does not support @code{@@macro}.
13738 12786
13739 @item --no-headers 12787 @item --no-headers
13740 @opindex --no-headers 12788 @opindex --no-headers
13741 @cindex Plain text output 12789 Do not include menus or node lines in the output. This results in an
13742 @cindex ASCII text output 12790 @sc{ascii} file that you cannot read in Info since it does not contain
13743 @cindex Generating plain text files 12791 the requisite nodes or menus. It is primarily useful to extract certain
13744 @cindex @file{INSTALL} file, generating 12792 pieces of a manual into separate files to be included in a distribution,
13745 For Info output, do not include menus or node lines in the output and 12793 such as @file{INSTALL} files.
13746 write to standard output (unless @option{--output} is specified). This
13747 results in an @sc{ascii} file that you cannot read in Info since it does
13748 not contain the requisite nodes or menus. It is primarily useful to
13749 extract certain pieces of a manual into separate files to be included in
13750 a distribution, such as @file{INSTALL} files.
13751
13752 @cindex Navigation links, omitting
13753 For HTML output, if @samp{--no-split} is also specified, do not include a
13754 navigation links at the top of each node. @xref{makeinfo html}.
13755 12794
13756 @item --no-split 12795 @item --no-split
13757 @opindex --no-split 12796 @opindex --no-split
13758 @cindex Splitting of output files
13759 @cindex Output file splitting
13760 Suppress the splitting stage of @code{makeinfo}. By default, large 12797 Suppress the splitting stage of @code{makeinfo}. By default, large
13761 output files (where the size is greater than 70k bytes) are split into 12798 output files (where the size is greater than 70k bytes) are split into
13762 smaller subfiles. For Info output, each one is approximately 50k bytes. 12799 smaller subfiles, each one approximately 50k bytes.
13763 For HTML output, each file contains one node (@pxref{makeinfo html}).
13764 12800
13765 @item --no-pointer-validate 12801 @item --no-pointer-validate
13766 @itemx --no-validate 12802 @itemx --no-validate
13767 @opindex --no-pointer-validate 12803 @opindex --no-pointer-validate
13768 @opindex --no-validate 12804 @opindex --no-validate
13769 @cindex Pointer validation, suppressing 12805 Suppress the pointer-validation phase of @code{makeinfo}. Normally,
13770 Suppress the pointer-validation phase of @code{makeinfo}. This can also 12806 after a Texinfo file is processed, some consistency checks are made to
13771 be done with the @code{@@novalidate} command (@pxref{Use TeX,,Use 12807 ensure that cross references can be resolved, etc.
13772 @TeX{}}). Normally, after a Texinfo file is processed, some consistency 12808 @xref{Pointer Validation}.@refill
13773 checks are made to ensure that cross references can be resolved, etc.
13774 @xref{Pointer Validation}.
13775 12809
13776 @item --no-warn 12810 @item --no-warn
13777 @opindex --no-warn 12811 @opindex --no-warn
13778 Suppress warning messages (but @emph{not} error messages). You might 12812 Suppress warning messages (but @emph{not} error messages). You might
13779 want this if the file you are creating has examples of Texinfo cross 12813 want this if the file you are creating has examples of Texinfo cross
13780 references within it, and the nodes that are referenced do not actually 12814 references within it, and the nodes that are referenced do not actually
13781 exist. 12815 exist.
13782
13783 @item --number-sections
13784 @opindex --number-sections
13785 Output chapter, section, and appendix numbers as in printed manuals.
13786 12816
13787 @item --no-number-footnotes 12817 @item --no-number-footnotes
13788 @opindex --no-number-footnotes 12818 @opindex --no-number-footnotes
13789 Suppress automatic footnote numbering. By default, @code{makeinfo} 12819 Suppress automatic footnote numbering. By default, @code{makeinfo}
13790 numbers each footnote sequentially in a single node, resetting the 12820 numbers each footnote sequentially in a single node, resetting the
13795 @opindex --output=@var{file} 12825 @opindex --output=@var{file}
13796 @opindex -o @var{file} 12826 @opindex -o @var{file}
13797 Specify that the output should be directed to @var{file} and not to the 12827 Specify that the output should be directed to @var{file} and not to the
13798 file name specified in the @code{@@setfilename} command found in the 12828 file name specified in the @code{@@setfilename} command found in the
13799 Texinfo source (@pxref{setfilename}). If @var{file} is @samp{-}, output 12829 Texinfo source (@pxref{setfilename}). If @var{file} is @samp{-}, output
13800 goes to standard output and @samp{--no-split} is implied. For split 12830 goes to standard output and @samp{--no-split} is implied.
13801 HTML output, @var{file} is the name of the output file for the top node
13802 (@pxref{makeinfo html}).
13803 12831
13804 @item -P @var{dir} 12832 @item -P @var{dir}
13805 @opindex -P @var{dir} 12833 @opindex -P @var{dir}
13806 Prepend @var{dir} to the directory search list for @code{@@include}. 12834 Prepend @code{dir} to the directory search list for @code{@@include}.
13807 If @var{dir} is not given, the current directory @file{.} is prepended.
13808 See @samp{-I} for more details. 12835 See @samp{-I} for more details.
13809 12836
13810 @item --paragraph-indent=@var{indent} 12837 @item --paragraph-indent=@var{indent}
13811 @itemx -p @var{indent}
13812 @opindex --paragraph-indent=@var{indent} 12838 @opindex --paragraph-indent=@var{indent}
13813 @opindex -p @var{indent}
13814 Set the paragraph indentation style to @var{indent}. The value set by 12839 Set the paragraph indentation style to @var{indent}. The value set by
13815 this option overrides the value set in a Texinfo file by an 12840 this option overrides the value set in a Texinfo file by an
13816 @code{@@paragraphindent} command (@pxref{paragraphindent}). The value 12841 @code{@@paragraphindent} command (@pxref{paragraphindent}). The value
13817 of @var{indent} is interpreted as follows: 12842 of @var{indent} is interpreted as follows:
13818 12843
13822 12847
13823 @item @samp{0} or @samp{none} 12848 @item @samp{0} or @samp{none}
13824 Delete any existing indentation. 12849 Delete any existing indentation.
13825 12850
13826 @item @var{num} 12851 @item @var{num}
13827 Indent each paragraph by @var{num} spaces. 12852 Indent each paragraph by that number of spaces.
13828 @end table 12853 @end table
13829 12854
13830 @item --reference-limit=@var{limit} 12855 @item --reference-limit=@var{limit}
13831 @itemx -r @var{limit}
13832 @opindex --reference-limit=@var{limit} 12856 @opindex --reference-limit=@var{limit}
13833 @opindex -r @var{limit}
13834 Set the value of the number of references to a node that 12857 Set the value of the number of references to a node that
13835 @code{makeinfo} will make without reporting a warning. If a node has more 12858 @code{makeinfo} will make without reporting a warning. If a node has more
13836 than this number of references in it, @code{makeinfo} will make the 12859 than this number of references in it, @code{makeinfo} will make the
13837 references but also report a warning. The default is 1000. 12860 references but also report a warning. The default is 1000.
13838 12861
13845 Cause @code{makeinfo} to display messages saying what it is doing. 12868 Cause @code{makeinfo} to display messages saying what it is doing.
13846 Normally, @code{makeinfo} only outputs messages if there are errors or 12869 Normally, @code{makeinfo} only outputs messages if there are errors or
13847 warnings. 12870 warnings.
13848 12871
13849 @item --version 12872 @item --version
13850 @itemx -V
13851 @opindex --version 12873 @opindex --version
13852 @opindex -V
13853 Print the version number, then exit successfully. 12874 Print the version number, then exit successfully.
13854 12875
13855 @end table 12876 @end table
13856 12877
13857 12878
13858 @node Pointer Validation 12879 @node Pointer Validation, makeinfo in Emacs, makeinfo options, Create an Info File
13859 @subsection Pointer Validation 12880 @section Pointer Validation
13860 @cindex Pointer validation with @code{makeinfo} 12881 @cindex Pointer validation with @code{makeinfo}
13861 @cindex Validation of pointers 12882 @cindex Validation of pointers
13862 12883
13863 If you do not suppress pointer validation with the @samp{--no-validate} 12884 If you do not suppress pointer-validation, @code{makeinfo} will check
13864 option or the @code{@@novalidate} command in the source file (@pxref{Use 12885 the validity of the final Info file. Mostly, this means ensuring that
13865 TeX,,Use @TeX{}}), @code{makeinfo} will check the validity of the final 12886 nodes you have referenced really exist. Here is a complete list of what
13866 Info file. Mostly, this means ensuring that nodes you have referenced 12887 is checked:@refill
13867 really exist. Here is a complete list of what is checked:
13868 12888
13869 @enumerate 12889 @enumerate
13870 @item 12890 @item
13871 If a `Next', `Previous', or `Up' node reference is a reference to a 12891 If a `Next', `Previous', or `Up' node reference is a reference to a
13872 node in the current file and is not an external reference such as to 12892 node in the current file and is not an external reference such as to
13873 @file{(dir)}, then the referenced node must exist.@refill 12893 @file{(dir)}, then the referenced node must exist.@refill
13874 12894
13875 @item 12895 @item
13876 In every node, if the `Previous' node is different from the `Up' node, 12896 In every node, if the `Previous' node is different from the `Up' node,
13877 then the node pointed to by the `Previous' field must have a `Next' 12897 then the `Previous' node must also be pointed to by a `Next' node.@refill
13878 field which points back to this node.@refill
13879 12898
13880 @item 12899 @item
13881 Every node except the `Top' node must have an `Up' pointer.@refill 12900 Every node except the `Top' node must have an `Up' pointer.@refill
13882 12901
13883 @item 12902 @item
13884 The node referenced by an `Up' pointer must itself reference the current 12903 The node referenced by an `Up' pointer must contain a reference to the
13885 node through a menu item, unless the node referenced by `Up' 12904 current node in some manner other than through a `Next' reference.
13886 has the form `(@var{file})'. 12905 This includes menu entries and cross references.@refill
13887 12906
13888 @item 12907 @item
13889 If the `Next' reference of a node is not the same as the `Next' reference 12908 If the `Next' reference of a node is not the same as the `Next' reference
13890 of the `Up' reference, then the node referenced by the `Next' pointer 12909 of the `Up' reference, then the node referenced by the `Next' pointer
13891 must have a `Previous' pointer that points back to the current node. 12910 must have a `Previous' pointer that points back to the current node.
13892 This rule allows the last node in a section to point to the first node 12911 This rule allows the last node in a section to point to the first node
13893 of the next chapter.@refill 12912 of the next chapter.@refill
13894
13895 @item
13896 Every node except `Top' should be referenced by at least one other node,
13897 either via the `Previous' or `Next' links, or via a menu or a
13898 cross-reference.@refill
13899 @end enumerate 12913 @end enumerate
13900 12914
13901 @cindex @@-commands in @@node, limited support 12915 @node makeinfo in Emacs, texinfo-format commands, Pointer Validation, Create an Info File
13902 Some Texinfo documents might fail during the validation phase because 12916 @section Running @code{makeinfo} inside Emacs
13903 they use commands like @code{@@value} and @code{@@definfoenclose} in
13904 node definitions and cross-references inconsistently. Consider the
13905 following example:
13906
13907 @example
13908 @group
13909 @@set nodename Node 1
13910
13911 @@node @@value@{nodename@}, Node 2, Top, Top
13912
13913 This is node 1.
13914
13915 @@node Node 2, , Node 1, Top
13916
13917 This is node 2.
13918 @end group
13919 @end example
13920
13921 @noindent
13922 Here, the node ``Node 1'' was referenced both verbatim and through
13923 @code{@@value}.
13924
13925 By default, @code{makeinfo} fails such cases, because node names are not
13926 fully expanded until they are written to the output file. You should
13927 always try to reference nodes consistently; e.g., in the above example,
13928 the second @code{@@node} line should have also used @code{@@value}.
13929 However, if, for some reason, you @emph{must} reference node names
13930 inconsistently, and @code{makeinfo} fails to validate the file, you can
13931 use the @samp{--commands-in-node-names} option to force @code{makeinfo}
13932 to perform the expensive expansion of all node names it finds in the
13933 document. This might considerably slow down the program, though;
13934 twofold increase in conversion time was measured for large documents
13935 such as the Jargon file.
13936
13937 @cindex @@value in @@node lines
13938 The support for @code{@@}-commands in @code{@@node} directives is not
13939 general enough to be freely used. For example, if the example above
13940 redefined @code{nodename} somewhere in the document, @code{makeinfo}
13941 will fail to convert it, even if invoked with the
13942 @samp{--commands-in-node-names} option.
13943
13944 @samp{--commands-in-node-names} has no effect if the @samp{--no-validate}
13945 option is given.
13946
13947
13948 @node makeinfo in Emacs
13949 @subsection Running @code{makeinfo} inside Emacs
13950 @cindex Running @code{makeinfo} in Emacs 12917 @cindex Running @code{makeinfo} in Emacs
13951 @cindex @code{makeinfo} inside Emacs 12918 @cindex @code{makeinfo} inside Emacs
13952 @cindex Shell, running @code{makeinfo} in 12919 @cindex Shell, running @code{makeinfo} in
13953 12920
13954 You can run @code{makeinfo} in GNU Emacs Texinfo mode by using either the 12921 You can run @code{makeinfo} in GNU Emacs Texinfo mode by using either the
13984 @findex next-error 12951 @findex next-error
13985 You can parse the error messages by typing @kbd{C-x `} 12952 You can parse the error messages by typing @kbd{C-x `}
13986 (@code{next-error}). This causes Emacs to go to and position the 12953 (@code{next-error}). This causes Emacs to go to and position the
13987 cursor on the line in the Texinfo source that @code{makeinfo} thinks 12954 cursor on the line in the Texinfo source that @code{makeinfo} thinks
13988 caused the error. @xref{Compilation, , Running @code{make} or 12955 caused the error. @xref{Compilation, , Running @code{make} or
13989 Compilers Generally, emacs, The GNU Emacs Manual}, for more 12956 Compilers Generally, xemacs, XEmacs User's Manual}, for more
13990 information about using the @code{next-error} command.@refill 12957 information about using the @code{next-error} command.@refill
13991 12958
13992 In addition, you can kill the shell in which the @code{makeinfo} 12959 In addition, you can kill the shell in which the @code{makeinfo}
13993 command is running or make the shell buffer display its most recent 12960 command is running or make the shell buffer display its most recent
13994 output.@refill 12961 output.@refill
13995 12962
13996 @table @kbd 12963 @table @kbd
13997 @item C-c C-m C-k 12964 @item C-c C-m C-k
13998 @itemx M-x makeinfo-kill-job 12965 @itemx M-x makeinfo-kill-job
13999 @findex makeinfo-kill-job 12966 @findex makeinfo-kill-job
14000 Kill the current running @code{makeinfo} job 12967 Kill the current running @code{makeinfo} job created by
14001 (from @code{makeinfo-region} or @code{makeinfo-buffer}).@refill 12968 @code{makeinfo-region} or @code{makeinfo-buffer}.@refill
14002 12969
14003 @item C-c C-m C-l 12970 @item C-c C-m C-l
14004 @itemx M-x makeinfo-recenter-output-buffer 12971 @itemx M-x makeinfo-recenter-output-buffer
14005 @findex makeinfo-recenter-output-buffer 12972 @findex makeinfo-recenter-output-buffer
14006 Redisplay the @code{makeinfo} shell buffer to display its most recent 12973 Redisplay the @code{makeinfo} shell buffer to display its most recent
14029 12996
14030 @c If you write these three cross references using xref, you see 12997 @c If you write these three cross references using xref, you see
14031 @c three references to the same named manual, which looks strange. 12998 @c three references to the same named manual, which looks strange.
14032 @iftex 12999 @iftex
14033 For more information, see @ref{makeinfo options, , Options for 13000 For more information, see @ref{makeinfo options, , Options for
14034 @code{makeinfo}}, as well as ``Editing Variable Values,'' ``Examining 13001 @code{makeinfo}}, as well as ``Editing Variable Values,''``Examining and
14035 and Setting Variables,'' and ``Init File'' in @cite{The GNU Emacs 13002 Setting Variables,'' and ``Init File'' in the @cite{The GNU Emacs
14036 Manual}. 13003 Manual}.
14037 @end iftex 13004 @end iftex
14038 @noindent 13005 @noindent
14039 @ifinfo 13006 @ifinfo
14040 For more information, see@* 13007 For more information, see@*
14041 @ref{Edit Options, , Editing Variable Values, emacs, The GNU Emacs Manual},@* 13008 @ref{Edit Options, , Editing Variable Values, xemacs, XEmacs User's Manual},@*
14042 @ref{Examining, , Examining and Setting Variables, emacs, The GNU Emacs Manual},@* 13009 @ref{Examining, , Examining and Setting Variables, xemacs, XEmacs User's Manual},@*
14043 @ref{Init File, , , emacs, The GNU Emacs Manual}, and@* 13010 @ref{Init File, , , xemacs, XEmacs User's Manual}, and@*
14044 @ref{makeinfo options, , Options for @code{makeinfo}}. 13011 @ref{makeinfo options, , Options for @code{makeinfo}}.
14045 @end ifinfo 13012 @end ifinfo
14046 13013
14047 @node texinfo-format commands 13014 @node texinfo-format commands, Batch Formatting, makeinfo in Emacs, Create an Info File
14048 @comment node-name, next, previous, up 13015 @comment node-name, next, previous, up
14049 @subsection The @code{texinfo-format@dots{}} Commands 13016 @section The @code{texinfo-format@dots{}} Commands
14050 @findex texinfo-format-region 13017 @findex texinfo-format-region
14051 @findex texinfo-format-buffer 13018 @findex texinfo-format-buffer
14052 13019
14053 In GNU Emacs in Texinfo mode, you can format part or all of a Texinfo 13020 In GNU Emacs in Texinfo mode, you can format part or all of a Texinfo
14054 file with the @code{texinfo-format-region} command. This formats the 13021 file with the @code{texinfo-format-region} command. This formats the
14079 provide you with further help in finding formatting errors. These 13046 provide you with further help in finding formatting errors. These
14080 procedures are described in an appendix; see @ref{Catching Mistakes}. 13047 procedures are described in an appendix; see @ref{Catching Mistakes}.
14081 However, the @code{makeinfo} program is often faster and 13048 However, the @code{makeinfo} program is often faster and
14082 provides better error checking (@pxref{makeinfo in Emacs}).@refill 13049 provides better error checking (@pxref{makeinfo in Emacs}).@refill
14083 13050
14084 @node Batch Formatting 13051 @node Batch Formatting, Tag and Split Files, texinfo-format commands, Create an Info File
14085 @comment node-name, next, previous, up 13052 @comment node-name, next, previous, up
14086 @subsection Batch Formatting 13053 @section Batch Formatting
14087 @cindex Batch formatting for Info 13054 @cindex Batch formatting for Info
14088 @cindex Info batch formatting 13055 @cindex Info batch formatting
14089 13056
14090 You can format Texinfo files for Info using @code{batch-texinfo-format} 13057 You can format Texinfo files for Info using @code{batch-texinfo-format}
14091 and Emacs Batch mode. You can run Emacs in Batch mode from any shell, 13058 and Emacs Batch mode. You can run Emacs in Batch mode from any shell,
14092 including a shell inside of Emacs. (@xref{Command Switches, , Command 13059 including a shell inside of Emacs. (@xref{Command Switches, , Command
14093 Line Switches and Arguments, emacs, The GNU Emacs Manual}.)@refill 13060 Line Switches and Arguments, xemacs, XEmacs User's Manual}.)@refill
14094 13061
14095 Here is a shell command to format all the files that end in 13062 Here is a shell command to format all the files that end in
14096 @file{.texinfo} in the current directory: 13063 @file{.texinfo} in the current directory:
14097 13064
14098 @example 13065 @example
14111 mode, you create a new Emacs process. This frees your current Emacs, so 13078 mode, you create a new Emacs process. This frees your current Emacs, so
14112 you can continue working in it. (When you run 13079 you can continue working in it. (When you run
14113 @code{texinfo-format-region} or @code{texinfo-format-buffer}, you cannot 13080 @code{texinfo-format-region} or @code{texinfo-format-buffer}, you cannot
14114 use that Emacs for anything else until the command finishes.)@refill 13081 use that Emacs for anything else until the command finishes.)@refill
14115 13082
14116 @node Tag and Split Files 13083 @node Tag and Split Files, , Batch Formatting, Create an Info File
14117 @comment node-name, next, previous, up 13084 @comment node-name, next, previous, up
14118 @subsection Tag Files and Split Files 13085 @section Tag Files and Split Files
14119 @cindex Making a tag table automatically 13086 @cindex Making a tag table automatically
14120 @cindex Tag table, making automatically 13087 @cindex Tag table, making automatically
14121 13088
14122 If a Texinfo file has more than 30,000 bytes, 13089 If a Texinfo file has more than 30,000 bytes,
14123 @code{texinfo-format-buffer} automatically creates a tag table 13090 @code{texinfo-format-buffer} automatically creates a tag table
14129 In addition, if the Texinfo file contains more than about 70,000 13096 In addition, if the Texinfo file contains more than about 70,000
14130 bytes, @code{texinfo-format-buffer} and @code{makeinfo} split the 13097 bytes, @code{texinfo-format-buffer} and @code{makeinfo} split the
14131 large Info file into shorter @dfn{indirect} subfiles of about 50,000 13098 large Info file into shorter @dfn{indirect} subfiles of about 50,000
14132 bytes each. Big files are split into smaller files so that Emacs does 13099 bytes each. Big files are split into smaller files so that Emacs does
14133 not need to make a large buffer to hold the whole of a large Info 13100 not need to make a large buffer to hold the whole of a large Info
14134 file; instead, Emacs allocates just enough memory for the small, split-off 13101 file; instead, Emacs allocates just enough memory for the small, split
14135 file that is needed at the time. This way, Emacs avoids wasting 13102 off file that is needed at the time. This way, Emacs avoids wasting
14136 memory when you run Info. (Before splitting was implemented, Info 13103 memory when you run Info. (Before splitting was implemented, Info
14137 files were always kept short and @dfn{include files} were designed as 13104 files were always kept short and @dfn{include files} were designed as
14138 a way to create a single, large printed manual out of the smaller Info 13105 a way to create a single, large printed manual out of the smaller Info
14139 files. @xref{Include Files}, for more information. Include files are 13106 files. @xref{Include Files}, for more information. Include files are
14140 still used for very large documents, such as @cite{The Emacs Lisp 13107 still used for very large documents, such as @cite{The XEmacs Lisp
14141 Reference Manual}, in which each chapter is a separate file.)@refill 13108 Reference Manual}, in which each chapter is a separate file.)@refill
14142 13109
14143 When a file is split, Info itself makes use of a shortened version of 13110 When a file is split, Info itself makes use of a shortened version of
14144 the original file that contains just the tag table and references to 13111 the original file that contains just the tag table and references to
14145 the files that were split off. The split-off files are called 13112 the files that were split off. The split off files are called
14146 @dfn{indirect} files.@refill 13113 @dfn{indirect} files.@refill
14147 13114
14148 The split-off files have names that are created by appending @w{@samp{-1}}, 13115 The split off files have names that are created by appending @w{@samp{-1}},
14149 @w{@samp{-2}}, @w{@samp{-3}} and so on to the file name specified by the 13116 @w{@samp{-2}}, @w{@samp{-3}} and so on to the file name specified by the
14150 @code{@@setfilename} command. The shortened version of the original file 13117 @code{@@setfilename} command. The shortened version of the original file
14151 continues to have the name specified by @code{@@setfilename}.@refill 13118 continues to have the name specified by @code{@@setfilename}.@refill
14152 13119
14153 At one stage in writing this document, for example, the Info file was saved 13120 At one stage in writing this document, for example, the Info file was saved
14154 as the file @file{test-texinfo} and that file looked like this:@refill 13121 as @file{test-texinfo} and that file looked like this:@refill
14155 13122
14156 @example 13123 @example
14157 @group 13124 @group
14158 Info file: test-texinfo, -*-Text-*- 13125 Info file: test-texinfo, -*-Text-*-
14159 produced by texinfo-format-buffer 13126 produced by texinfo-format-buffer
14179 @end group 13146 @end group
14180 @end example 13147 @end example
14181 13148
14182 @noindent 13149 @noindent
14183 (But @file{test-texinfo} had far more nodes than are shown here.) Each of 13150 (But @file{test-texinfo} had far more nodes than are shown here.) Each of
14184 the split-off, indirect files, @file{test-texinfo-1}, 13151 the split off, indirect files, @file{test-texinfo-1},
14185 @file{test-texinfo-2}, and @file{test-texinfo-3}, is listed in this file 13152 @file{test-texinfo-2}, and @file{test-texinfo-3}, is listed in this file
14186 after the line that says @samp{Indirect:}. The tag table is listed after 13153 after the line that says @samp{Indirect:}. The tag table is listed after
14187 the line that says @samp{Tag table:}. @refill 13154 the line that says @samp{Tag table:}. @refill
14188 13155
14189 In the list of indirect files, the number following the file name 13156 In the list of indirect files, the number following the file name
14190 records the cumulative number of bytes in the preceding indirect files, 13157 records the cumulative number of bytes in the preceding indirect files,
14191 not counting the file list itself, the tag table, or the permissions 13158 not counting the file list itself, the tag table, or the permissions
14192 text in each file. In the tag table, the number following the node name 13159 text in each file. In the tag table, the number following the node name
14193 records the location of the beginning of the node, in bytes from the 13160 records the location of the beginning of the node, in bytes from the
14194 beginning of the (unsplit) output. 13161 beginning.@refill
14195 13162
14196 If you are using @code{texinfo-format-buffer} to create Info files, 13163 If you are using @code{texinfo-format-buffer} to create Info files,
14197 you may want to run the @code{Info-validate} command. (The 13164 you may want to run the @code{Info-validate} command. (The
14198 @code{makeinfo} command does such a good job on its own, you do not 13165 @code{makeinfo} command does such a good job on its own, you do not
14199 need @code{Info-validate}.) However, you cannot run the @kbd{M-x 13166 need @code{Info-validate}.) However, you cannot run the @kbd{M-x
14201 information on how to prevent files from being split and how to 13168 information on how to prevent files from being split and how to
14202 validate the structure of the nodes, see @ref{Using 13169 validate the structure of the nodes, see @ref{Using
14203 Info-validate}.@refill 13170 Info-validate}.@refill
14204 13171
14205 13172
14206 @node makeinfo html 13173 @node Install an Info File, Command List, Create an Info File, Top
14207 @subsection Generating HTML 13174 @comment node-name, next, previous, up
14208 @cindex HTML 13175 @chapter Installing an Info File
14209
14210 As an alternative to the normal Info format output you can use the
14211 @samp{--html} option to generate output in HTML format, for installation
14212 on a web site (for example). In this release, HTML output from
14213 @code{makeinfo} is monolithic, splitting the output by chapter or node
14214 is not supported. We hope to implement this feature soon.
14215
14216 The HTML output file is named according to @code{@@setfilename}, but
14217 with any @samp{.info} extension replaced with @samp{.html}.
14218
14219 Texinfo input marked up with the @code{@@ifhtml} command will produce
14220 output only with the @samp{--html} option supplied. Input marked up
14221 with the @code{@@html} is passed literally to the output (suppressing
14222 the normal escaping of input @samp{<}, @samp{>} and @samp{&} characters
14223 which have special significance in HTML).
14224
14225 The @samp{--footnote-style} option is currently ignored for HTML output;
14226 footnotes are hyperlinked at the end of the output file.
14227
14228 The HTML generated is mostly standard (i.e., HTML 2.0, RFC1866). The
14229 exception is that HTML 3.2 tables are generated from the
14230 @code{@@multitable} command, but tagged to degrade as well as possible
14231 in browsers without table support. Please report output from an
14232 error-free run of @code{makeinfo} which violates the HTML 3.2 DTD as a
14233 bug.
14234
14235 Navigation bars are inserted at the start of nodes, similarly to Info
14236 output. The @samp{--no-headers} option will suppress this if used with
14237 @samp{--no-split}. Header @code{<link>} elements in split output can
14238 support info-like navigation with browsers like Lynx and @w{Emacs W3}
14239 which implement this @w{HTML 1.0} feature. You still won't normally get
14240 the multi-file regexp and index search facilities provided by Info
14241 readers. Otherwise, hyperlinks are generated from Texinfo commands
14242 where appropriate. @samp{@@xref} commands to other documents are
14243 generated assuming the other document is available in HTML form too, and
14244 @samp{.html} is appended to the @samp{@@xref} Info file name. This
14245 presumably will often not work.
14246
14247
14248 @node Install an Info File
14249 @section Installing an Info File
14250 @cindex Installing an Info file 13176 @cindex Installing an Info file
14251 @cindex Info file installation 13177 @cindex Info file installation
14252 @cindex @file{dir} directory for Info installation 13178 @cindex @file{dir} directory for Info installation
14253 13179
14254 Info files are usually kept in the @file{info} directory. You can read 13180 Info files are usually kept in the @file{info} directory. You can read
14255 Info files using the standalone Info program or the Info reader built 13181 Info files using the standalone Info program or the Info reader built
14256 into Emacs. (@inforef{Top, info, info}, for an introduction to Info.) 13182 into Emacs. (@inforef{Top, info, info}, for an introduction to Info.)
14257 13183
14258 @menu 13184 @menu
14259 * Directory File:: The top level menu for all Info files. 13185 * Directory file:: The top level menu for all Info files.
14260 * New Info File:: Listing a new info file. 13186 * New Info File:: Listing a new info file.
14261 * Other Info Directories:: How to specify Info files that are 13187 * Other Info Directories:: How to specify Info files that are
14262 located in other directories. 13188 located in other directories.
14263 * Installing Dir Entries:: How to specify what menu entry to add 13189 * Installing Dir Entries:: How to specify what menu entry to add
14264 to the Info directory. 13190 to the Info directory.
14265 * Invoking install-info:: @code{install-info} options. 13191 * Invoking install-info:: @code{install-info} options.
14266 @end menu 13192 @end menu
14267 13193
14268 13194 @node Directory file, New Info File, Install an Info File, Install an Info File
14269 @node Directory File 13195 @ifinfo
14270 @subsection The Directory File @file{dir} 13196 @heading The @file{dir} File
13197 @end ifinfo
14271 13198
14272 For Info to work, the @file{info} directory must contain a file that 13199 For Info to work, the @file{info} directory must contain a file that
14273 serves as a top level directory for the Info system. By convention, 13200 serves as a top level directory for the Info system. By convention,
14274 this file is called @file{dir}. (You can find the location of this file 13201 this file is called @file{dir}. (You can find the location of this file
14275 within Emacs by typing @kbd{C-h i} to enter Info and then typing 13202 within Emacs by typing @kbd{C-h i} to enter Info and then typing
14280 this:@refill 13207 this:@refill
14281 13208
14282 @example 13209 @example
14283 @group 13210 @group
14284 * Menu: 13211 * Menu:
13212
14285 * Info: (info). Documentation browsing system. 13213 * Info: (info). Documentation browsing system.
14286 * Emacs: (emacs). The extensible, self-documenting 13214 * Emacs: (emacs). The extensible, self-documenting
14287 text editor. 13215 text editor.
14288 * Texinfo: (texinfo). With one source file, make 13216 * Texinfo: (texinfo). With one source file, make
14289 either a printed manual using 13217 either a printed manual using
14309 @example 13237 @example
14310 File: emacs Node: Top, Up: (DIR), Next: Distrib 13238 File: emacs Node: Top, Up: (DIR), Next: Distrib
14311 @end example 13239 @end example
14312 13240
14313 @noindent 13241 @noindent
14314 In this case, the @file{dir} file name is written in upper case 13242 (Note that in this case, the @file{dir} file name is written in upper
14315 letters---it can be written in either upper or lower case. This is not 13243 case letters---it can be written in either upper or lower case. Info
14316 true in general, it is a special case for @file{dir}. 13244 has a feature that it will change the case of the file name to lower
14317 13245 case if it cannot find the name as written.)@refill
14318 13246 @c !!! Can any file name be written in upper or lower case,
14319 @node New Info File 13247 @c or is dir a special case?
14320 @subsection Listing a New Info File 13248 @c Yes, apparently so, at least with Gillespie's Info. --rjc 24mar92
13249
13250
13251 @node New Info File, Other Info Directories, Directory file, Install an Info File
13252 @section Listing a New Info File
14321 @cindex Adding a new info file 13253 @cindex Adding a new info file
14322 @cindex Listing a new info file 13254 @cindex Listing a new info file
14323 @cindex New info file, listing it in @file{dir} file 13255 @cindex New info file, listing it in @file{dir} file
14324 @cindex Info file, listing a new 13256 @cindex Info file, listing new one
14325 @cindex @file{dir} file listing 13257 @cindex @file{dir} file listing
14326 13258
14327 To add a new Info file to your system, you must write a menu entry to 13259 To add a new Info file to your system, you must write a menu entry to
14328 add to the menu in the @file{dir} file in the @file{info} directory. 13260 add to the menu in the @file{dir} file in the @file{info} directory.
14329 For example, if you were adding documentation for GDB, you would write 13261 For example, if you were adding documentation for GDB, you would write
14339 followed by a period. The third part is the description. 13271 followed by a period. The third part is the description.
14340 13272
14341 The name of an Info file often has a @file{.info} extension. Thus, the 13273 The name of an Info file often has a @file{.info} extension. Thus, the
14342 Info file for GDB might be called either @file{gdb} or @file{gdb.info}. 13274 Info file for GDB might be called either @file{gdb} or @file{gdb.info}.
14343 The Info reader programs automatically try the file name both with and 13275 The Info reader programs automatically try the file name both with and
14344 without @file{.info}@footnote{On MS-DOS/MS-Windows systems, Info will 13276 without @file{.info}; so it is better to avoid clutter and not to write
14345 try the @file{.inf} extension as well.}; so it is better to avoid 13277 @samp{.info} explicitly in the menu entry. For example, the GDB menu
14346 clutter and not to write @samp{.info} explicitly in the menu entry. For 13278 entry should use just @samp{gdb} for the file name, not @samp{gdb.info}.
14347 example, the GDB menu entry should use just @samp{gdb} for the file 13279
14348 name, not @samp{gdb.info}. 13280
14349 13281 @node Other Info Directories, Installing Dir Entries, New Info File, Install an Info File
14350 13282 @comment node-name, next, previous, up
14351 @node Other Info Directories 13283 @section Info Files in Other Directories
14352 @subsection Info Files in Other Directories
14353 @cindex Installing Info in another directory 13284 @cindex Installing Info in another directory
14354 @cindex Info installed in another directory 13285 @cindex Info installed in another directory
14355 @cindex Another Info directory 13286 @cindex Another Info directory
14356 @cindex @file{dir} files and Info directories
14357 13287
14358 If an Info file is not in the @file{info} directory, there are three 13288 If an Info file is not in the @file{info} directory, there are three
14359 ways to specify its location:@refill 13289 ways to specify its location:@refill
14360 13290
14361 @enumerate 13291 @itemize @bullet
14362 @item 13292 @item
14363 Write the pathname in the @file{dir} file as the second part of the menu. 13293 Write the pathname in the @file{dir} file as the second part of the
13294 menu.@refill
14364 13295
14365 @item 13296 @item
14366 If you are using Emacs, list the name of the file in a second @file{dir} 13297 If you are using Emacs, list the name of the file in a second @file{dir}
14367 file, in its directory; and then add the name of that directory to the 13298 file, in its directory; and then add the name of that directory to the
14368 @code{Info-directory-list} variable in your personal or site 13299 @code{Info-directory-list} variable in your personal or site
14369 initialization file. 13300 initialization file.
14370 13301
14371 This variable tells Emacs where to look for @file{dir} files (the files 13302 This tells Emacs where to look for @file{dir} files. Emacs merges the
14372 must be named @file{dir}). Emacs merges the files named @file{dir} from 13303 files named @file{dir} from each of the listed directories. (In Emacs
14373 each of the listed directories. (In Emacs version 18, you can set the 13304 version 18, you can set the @code{Info-directory} variable to the name
14374 @code{Info-directory} variable to the name of only one 13305 of only one directory.)@refill
14375 directory.)@refill
14376 13306
14377 @item 13307 @item
14378 Specify the Info directory name in the @code{INFOPATH} environment 13308 Specify the Info directory name in the @code{INFOPATH} environment
14379 variable in your @file{.profile} or @file{.cshrc} initialization file. 13309 variable in your @file{.profile} or @file{.cshrc} initialization file.
14380 (Only you and others who set this environment variable will be able to 13310 (Only you and others who set this environment variable will be able to
14381 find Info files whose location is specified this way.) 13311 find Info files whose location is specified this way.)@refill
14382 @end enumerate 13312 @end itemize
14383 13313
14384 For example, to reach a test file in the @file{/home/bob/info} 13314 For example, to reach a test file in the @file{/home/bob/manuals}
14385 directory, you could add an entry like this to the menu in the 13315 directory, you could add an entry like this to the menu in the
14386 standard @file{dir} file:@refill 13316 @file{dir} file:@refill
14387 13317
14388 @example 13318 @example
14389 * Test: (/home/bob/info/info-test). Bob's own test file. 13319 * Test: (/home/bob/manuals/info-test). Bob's own test file.
14390 @end example 13320 @end example
14391 13321
14392 @noindent 13322 @noindent
14393 In this case, the absolute file name of the @file{info-test} file is 13323 In this case, the absolute file name of the @file{info-test} file is
14394 written as the second part of the menu entry.@refill 13324 written as the second part of the menu entry.@refill
14395 13325
13326 @vindex Info-directory-list
14396 Alternatively, you could write the following in your @file{.emacs} 13327 Alternatively, you could write the following in your @file{.emacs}
14397 file:@refill 13328 file:@refill
14398 13329
14399 @vindex Info-directory-list 13330 @example
14400 @example 13331 @group
14401 @group
14402 (require 'info)
14403 (setq Info-directory-list 13332 (setq Info-directory-list
14404 (cons (expand-file-name "/home/bob/info") Info-directory-list)) 13333 '("/home/bob/manuals"
14405 @end group 13334 "/usr/local/info"))
14406 @end example 13335 @end group
14407 13336 @end example
13337
13338 @c reworded to avoid overfill hbox
14408 This tells Emacs to merge the @file{dir} file from the 13339 This tells Emacs to merge the @file{dir} file from the
14409 @file{/home/bob/info} directory with the system @file{dir} file. Info 13340 @file{/home/bob/manuals} directory with the @file{dir} file from the
14410 will list the @file{/home/bob/info/info-test} file as a menu entry in 13341 @file{/usr/local/info} directory. Info will list the
14411 the @file{/home/bob/info/dir} file. Emacs does the merging only 13342 @file{/home/bob/manuals/info-test} file as a menu entry in the
14412 when @kbd{M-x info} is first run, so if you want to set 13343 @file{/home/bob/manuals/dir} file.@refill
14413 @code{Info-directory-list} in an Emacs session where you've already run
14414 @code{info}, you must @code{(setq Info-dir-contents nil)} to force Emacs
14415 to recompose the @file{dir} file.
14416 13344
14417 @vindex INFOPATH 13345 @vindex INFOPATH
14418 Finally, you can tell Info where to look by setting the @code{INFOPATH} 13346 Finally, you can tell Info where to look by setting the @code{INFOPATH}
14419 environment variable in your shell startup file, such as @file{.cshrc}, 13347 environment variable in your @file{.cshrc} or @file{.profile} file. If
14420 @file{.profile} or @file{autoexec.bat}. If you use a Bourne-compatible 13348 you use a Bourne-compatible shell such as @code{sh} or @code{bash} for
14421 shell such as @code{sh} or @code{bash} for your shell command 13349 your shell command interpreter, you set the @code{INFOPATH} environment
14422 interpreter, you set the @code{INFOPATH} environment variable in the 13350 variable in the @file{.profile} initialization file; but if you use
14423 @file{.profile} initialization file; but if you use @code{csh} or 13351 @code{csh} or @code{tcsh}, you must set the variable in the
14424 @code{tcsh}, you set the variable in the @file{.cshrc} initialization 13352 @file{.cshrc} initialization file. The two types of shells use
14425 file. On MS-DOS/MS-Windows systems, you must set @code{INFOPATH} in 13353 different syntax.
14426 your @file{autoexec.bat} file or in the Registry. Each type of shell
14427 uses a different syntax.
14428 13354
14429 @itemize @bullet 13355 @itemize @bullet
14430 @item 13356 @item
14431 In a @file{.cshrc} file, you could set the @code{INFOPATH} 13357 In a @file{.cshrc} file, you could set the @code{INFOPATH}
14432 variable as follows:@refill 13358 variable as follows:@refill
14433 13359
14434 @smallexample 13360 @smallexample
14435 setenv INFOPATH .:~/info:/usr/local/emacs/info 13361 setenv INFOPATH .:~/manuals:/usr/local/emacs/info
14436 @end smallexample 13362 @end smallexample
14437 13363
14438 @item 13364 @item
14439 In a @file{.profile} file, you would achieve the same effect by 13365 In a @file{.profile} file, you would achieve the same effect by
14440 writing:@refill 13366 writing:@refill
14441 13367
14442 @smallexample 13368 @smallexample
14443 INFOPATH=.:$HOME/info:/usr/local/emacs/info 13369 INFOPATH=.:$HOME/manuals:/usr/local/emacs/info
14444 export INFOPATH 13370 export INFOPATH
14445 @end smallexample 13371 @end smallexample
14446
14447 @item
14448 @pindex autoexec.bat
14449 In a @file{autoexec.bat} file, you write this command@footnote{Note the
14450 use of @samp{;} as the directory separator, and a different syntax for
14451 using values of other environment variables.}:
14452
14453 @smallexample
14454 set INFOPATH=.;%HOME%/info;c:/usr/local/emacs/info
14455 @end smallexample
14456 @end itemize 13372 @end itemize
14457 13373
14458 @noindent 13374 @noindent
14459 The @samp{.} indicates the current directory as usual. Emacs uses the 13375 The @samp{.} indicates the current directory as usual. Emacs uses the
14460 @code{INFOPATH} environment variable to initialize the value of Emacs's 13376 @code{INFOPATH} environment variable to initialize the value of Emacs's
14461 own @code{Info-directory-list} variable. The stand-alone Info reader 13377 own @code{Info-directory-list} variable.
14462 merges any files named @file{dir} in any directory listed in the 13378
14463 @env{INFOPATH} variable into a single menu presented to you in the node 13379 @cindex colon @r{last in @code{INFOPATH}}
14464 called @samp{(dir)Top}. 13380 However you set @code{INFOPATH}, if its last character is a colon, this
14465
14466 @cindex @samp{:} @r{last in @env{INFOPATH}}
14467 However you set @env{INFOPATH}, if its last character is a
14468 colon@footnote{On MS-DOS/MS-Windows systems, use semi-colon instead.}, this
14469 is replaced by the default (compiled-in) path. This gives you a way to 13381 is replaced by the default (compiled-in) path. This gives you a way to
14470 augment the default path with new directories without having to list all 13382 augment the default path with new directories without having to list all
14471 the standard places. For example (using @code{sh} syntax): 13383 the standard places. For example (using @code{sh} syntax:
14472 13384
14473 @example 13385 @example
14474 INFOPATH=/local/info: 13386 INFOPATH=/local/info:
14475 export INFOPATH 13387 export INFOPATH
14476 @end example 13388 @end example
14477 13389
14478 @noindent 13390 @noindent
14479 will search @file{/local/info} first, then the standard directories. 13391 will search @file{/local/info} first, then the standard directories.
14480 Leading or doubled colons are not treated specially. 13392 Leading or doubled colons are not treated specially.
14481 13393
14482 @cindex @file{dir} file, creating your own
14483 When you create your own @file{dir} file for use with
14484 @code{Info-directory-list} or @env{INFOPATH}, it's easiest to start by
14485 copying an existing @file{dir} file and replace all the text after the
14486 @samp{* Menu:} with your desired entries. That way, the punctuation and
14487 special CTRL-_ characters that Info needs will be present.
14488
14489 13394
14490 @node Installing Dir Entries, Invoking install-info, Other Info Directories, Install an Info File 13395 @node Installing Dir Entries, Invoking install-info, Other Info Directories, Install an Info File
14491 @subsection Installing Info Directory Files 13396 @section Installing Info Directory Files
14492 13397
14493 When you install an Info file onto your system, you can use the program 13398 When you install an Info file onto your system, you can use the program
14494 @code{install-info} to update the Info directory file @file{dir}. 13399 @code{install-info} to update the Info directory file @file{dir}.
14495 Normally the makefile for the package runs @code{install-info}, just 13400 Normally the makefile for the package runs @code{install-info}, just
14496 after copying the Info file into its proper installed location. 13401 after copying the Info file into its proper installed location.
14497 13402
14498 @findex dircategory 13403 @findex dircategory
14499 @findex direntry 13404 @findex direntry
14500 In order for the Info file to work with @code{install-info}, you should 13405 In order for the Info file to work with @code{install-info}, you should
14501 use the commands @code{@@dircategory} and 13406 use the commands @code{@@dircategory} and @code{@@direntry} in the
14502 @code{@@direntry}@dots{}@code{@@end direntry} in the Texinfo source 13407 Texinfo source file. Use @code{@@direntry} to specify the menu entry to
14503 file. Use @code{@@direntry} to specify the menu entries to add to the 13408 add to the Info directory file, and use @code{@@dircategory} to specify
14504 Info directory file, and use @code{@@dircategory} to specify which part 13409 which part of the Info directory to put it in. Here is how these
14505 of the Info directory to put it in. Here is how these commands are used 13410 commands are used in this manual:
14506 in this manual:
14507 13411
14508 @smallexample 13412 @smallexample
14509 @@dircategory Texinfo documentation system 13413 @@dircategory Texinfo documentation system
14510 @@direntry 13414 @@direntry
14511 * Texinfo: (texinfo). The GNU documentation format. 13415 * Texinfo: (texinfo). The GNU documentation format.
14533 the beginning of the Texinfo input, before the first @code{@@node} 13437 the beginning of the Texinfo input, before the first @code{@@node}
14534 command. If you use them later on in the input, @code{install-info} 13438 command. If you use them later on in the input, @code{install-info}
14535 will not notice them. 13439 will not notice them.
14536 13440
14537 If you use @code{@@dircategory} more than once in the Texinfo source, 13441 If you use @code{@@dircategory} more than once in the Texinfo source,
14538 each usage specifies the `current' category; any subsequent 13442 each usage specifies one category; the new menu entry is added to the
14539 @code{@@direntry} commands will add to that category. 13443 Info directory file in each of the categories you specify. If you use
14540 13444 @code{@@direntry} more than once, each usage specifies one menu entry;
14541 Here are some recommended @code{@@dircategory} categories: `GNU 13445 each of these menu entries is added to the directory in each of the
14542 packages', `GNU programming tools', `GNU programming documentation', 13446 specified categories.
14543 `GNU Emacs Lisp', `GNU libraries', `Linux', `TeX', `Individual 13447
14544 utilities'. The idea is to include the `invoking' node for every 13448
14545 program installed by a package under `Individual utilities', and an 13449 @node Invoking install-info, , Installing Dir Entries, Install an Info File
14546 entry for the manual as a whole in the appropriate other category. 13450 @section Invoking install-info
14547
14548
14549 @node Invoking install-info
14550 @subsection Invoking install-info
14551 13451
14552 @pindex install-info 13452 @pindex install-info
14553 13453
14554 @code{install-info} inserts menu entries from an Info file into the 13454 @code{install-info} inserts menu entries from an Info file into the
14555 top-level @file{dir} file in the Info system (see the previous sections 13455 top-level @file{dir} file in the Info system (see the previous sections
14556 for an explanation of how the @file{dir} file works). It's most often 13456 for an explanation of how the @file{dir} file works). It's most often
14557 run as part of software installation, or when constructing a @file{dir} file 13457 run as part of software installation, or when constructing a dir file
14558 for all manuals on a system. Synopsis: 13458 for all manuals on a system. Synopsis:
14559 13459
14560 @example 13460 @example
14561 install-info [@var{option}]@dots{} [@var{info-file} [@var{dir-file}]] 13461 install-info [@var{option}]@dots{} [@var{info-file} [@var{dir-file}]]
14562 @end example 13462 @end example
14563 13463
14564 If @var{info-file} or @var{dir-file} are not specified, the options 13464 If @var{info-file} or @var{dir-file} are not specified, the various
14565 (described below) that define them must be. There are no compile-time 13465 options (described below) that define them must be. There are no
14566 defaults, and standard input is never used. @code{install-info} can 13466 compile-time defaults, and standard input is never used.
14567 read only one Info file and write only one @file{dir} file per invocation. 13467 @code{install-info} can read only one info file and write only one dir
13468 file per invocation.
14568 13469
14569 @cindex @file{dir}, created by @code{install-info} 13470 @cindex @file{dir}, created by @code{install-info}
14570 If @var{dir-file} (however specified) does not exist, 13471 If @var{dir-file} (however specified) does not exist,
14571 @code{install-info} creates it if possible (with no entries). 13472 @code{install-info} creates it if possible (with no entries).
14572
14573 @cindex Compressed files, reading
14574 @cindex Dir files, compressed
14575 If any input file is compressed with @code{gzip} (@pxref{Invoking
14576 gzip,,,gzip, Gzip}), @code{install-info} automatically uncompresses it
14577 for reading. And if @var{dir-file} is compressed, @code{install-info}
14578 also automatically leaves it compressed after writing any changes.
14579 If @var{dir-file} itself does not exist, @code{install-info} tries to
14580 open @file{@var{dir-file}.gz}.
14581 13473
14582 Options: 13474 Options:
14583 13475
14584 @table @code 13476 @table @code
14585 @item --delete 13477 @item --delete
14587 Delete the entries in @var{info-file} from @var{dir-file}. The file 13479 Delete the entries in @var{info-file} from @var{dir-file}. The file
14588 name in the entry in @var{dir-file} must be @var{info-file} (except for 13480 name in the entry in @var{dir-file} must be @var{info-file} (except for
14589 an optional @samp{.info} in either one). Don't insert any new entries. 13481 an optional @samp{.info} in either one). Don't insert any new entries.
14590 13482
14591 @item --dir-file=@var{name} 13483 @item --dir-file=@var{name}
14592 @itemx -d @var{name}
14593 @opindex --dir-file=@var{name} 13484 @opindex --dir-file=@var{name}
14594 @opindex -d @var{name}
14595 Specify file name of the Info directory file. This is equivalent to 13485 Specify file name of the Info directory file. This is equivalent to
14596 using the @var{dir-file} argument. 13486 using the @var{dir-file} argument.
14597 13487
14598 @item --entry=@var{text} 13488 @item --entry=@var{text}
14599 @itemx -e @var{text}
14600 @opindex --entry=@var{text} 13489 @opindex --entry=@var{text}
14601 @opindex -e @var{text}
14602 Insert @var{text} as an Info directory entry; @var{text} should have the 13490 Insert @var{text} as an Info directory entry; @var{text} should have the
14603 form of an Info menu item line plus zero or more extra lines starting 13491 form of an Info menu item line plus zero or more extra lines starting
14604 with whitespace. If you specify more than one entry, they are all 13492 with whitespace. If you specify more than one entry, they are all
14605 added. If you don't specify any entries, they are determined from 13493 added. If you don't specify any entries, they are determined from
14606 information in the Info file itself. 13494 information in the Info file itself.
14607 13495
14608 @item --help 13496 @item --help
14609 @itemx -h
14610 @opindex --help 13497 @opindex --help
14611 @opindex -h
14612 Display a usage message listing basic usage and all available options, 13498 Display a usage message listing basic usage and all available options,
14613 then exit successfully. 13499 then exit successfully.
14614 13500
14615 @item --info-file=@var{file} 13501 @item --info-file=@var{file}
14616 @itemx -i @var{file}
14617 @opindex --info-file=@var{file} 13502 @opindex --info-file=@var{file}
14618 @opindex -i @var{file}
14619 Specify Info file to install in the directory. 13503 Specify Info file to install in the directory.
14620 Equivalent to using the @var{info-file} argument. 13504 This is equivalent to using the @var{info-file} argument.
14621 13505
14622 @item --info-dir=@var{dir} 13506 @item --info-dir=@var{dir}
14623 @itemx -D @var{dir}
14624 @opindex --info-dir=@var{dir} 13507 @opindex --info-dir=@var{dir}
14625 @opindex -D @var{dir}
14626 Specify the directory where @file{dir} resides.
14627 Equivalent to @samp{--dir-file=@var{dir}/dir}. 13508 Equivalent to @samp{--dir-file=@var{dir}/dir}.
14628 13509
14629 @item --item=@var{text} 13510 @item --item=@var{text}
14630 @opindex --item=@var{text} 13511 @opindex --item=@var{text}
14631 Same as @samp{--entry=@var{text}}. An Info directory entry is actually 13512 Same as @samp{--entry=@var{text}}. An Info directory entry is actually
14634 @item --quiet 13515 @item --quiet
14635 @opindex --quiet 13516 @opindex --quiet
14636 Suppress warnings. 13517 Suppress warnings.
14637 13518
14638 @item --remove 13519 @item --remove
14639 @itemx -r
14640 @opindex --remove 13520 @opindex --remove
14641 @opindex -r
14642 Same as @samp{--delete}. 13521 Same as @samp{--delete}.
14643 13522
14644 @item --section=@var{sec} 13523 @item --section=@var{sec}
14645 @itemx -s @var{sec}
14646 @opindex --section=@var{sec} 13524 @opindex --section=@var{sec}
14647 @opindex -s @var{sec}
14648 Put this file's entries in section @var{sec} of the directory. If you 13525 Put this file's entries in section @var{sec} of the directory. If you
14649 specify more than one section, all the entries are added in each of the 13526 specify more than one section, all the entries are added in each of the
14650 sections. If you don't specify any sections, they are determined from 13527 sections. If you don't specify any sections, they are determined from
14651 information in the Info file itself. 13528 information in the Info file itself.
14652 13529
14653 @item --version 13530 @item --version
14654 @itemx -V
14655 @opindex --version 13531 @opindex --version
14656 @opindex -V
14657 @cindex version number, finding 13532 @cindex version number, finding
14658 Display version information and exit successfully. 13533 Display version information and exit successfully.
14659 13534
14660 @end table 13535 @end table
14661 13536
14662 13537
14663 @node Command List 13538 @node Command List, Tips, Install an Info File, Top
14664 @appendix @@-Command List 13539 @appendix @@-Command List
14665 @cindex Alphabetical @@-command list 13540 @cindex Alphabetical @@-command list
14666 @cindex List of @@-commands 13541 @cindex List of @@-commands
14667 @cindex @@-command list 13542 @cindex @@-command list
14668 @cindex Reference to @@-commands
14669 13543
14670 Here is an alphabetical list of the @@-commands in Texinfo. Square 13544 Here is an alphabetical list of the @@-commands in Texinfo. Square
14671 brackets, @t{[}@w{ }@t{]}, indicate optional arguments; an ellipsis, 13545 brackets, @t{[}@w{ }@t{]}, indicate optional arguments; an ellipsis,
14672 @samp{@dots{}}, indicates repeated text. 13546 @samp{@dots{}}, indicates repeated text.@refill
14673 13547
14674 @sp 1 13548 @sp 1
14675 @table @code 13549 @table @code
14676 @item @@@var{whitespace} 13550 @item @@@var{whitespace}
14677 An @code{@@} followed by a space, tab, or newline produces a normal, 13551 An @code{@@} followed by a space, tab, or newline produces a normal,
14704 @item @@: 13578 @item @@:
14705 Indicate to @TeX{} that an immediately preceding period, question 13579 Indicate to @TeX{} that an immediately preceding period, question
14706 mark, exclamation mark, or colon does not end a sentence. Prevent 13580 mark, exclamation mark, or colon does not end a sentence. Prevent
14707 @TeX{} from inserting extra whitespace as it does at the end of a 13581 @TeX{} from inserting extra whitespace as it does at the end of a
14708 sentence. The command has no effect on the Info file output. 13582 sentence. The command has no effect on the Info file output.
14709 @xref{Not Ending a Sentence}. 13583 @xref{Not Ending a Sentence}.@refill
14710 13584
14711 @item @@= 13585 @item @@=
14712 Generate a macron (bar) accent over the next character, as in @=o. 13586 Generate a macro (bar) accent over the next character, as in @=o.
14713 @xref{Inserting Accents}. 13587 @xref{Inserting Accents}.
14714 13588
14715 @item @@? 13589 @item @@?
14716 Generate a question mark that really does end a sentence (usually after 13590 Generate a question mark that really does end a sentence (usually after
14717 an end-of-sentence capital letter). @xref{Ending a Sentence}. 13591 an end-of-sentence capital letter). @xref{Ending a Sentence}.
14732 13606
14733 @item @@@} 13607 @item @@@}
14734 Stands for a right-hand brace, @samp{@}}.@* 13608 Stands for a right-hand brace, @samp{@}}.@*
14735 @xref{Braces Atsigns, , Inserting @@ and braces}. 13609 @xref{Braces Atsigns, , Inserting @@ and braces}.
14736 13610
14737 @item @@~ 13611 @item @@=
14738 Generate a tilde accent over the next character, as in @~N. 13612 Generate a tilde accent over the next character, as in @~N.
14739 @xref{Inserting Accents}. 13613 @xref{Inserting Accents}.
14740 13614
14741 @item @@AA@{@} 13615 @item @@AA@{@}
14742 @itemx @@aa@{@} 13616 @itemx @@aa@{@}
14743 Generate the uppercase and lowercase Scandinavian A-ring letters, 13617 Generate the uppercase and lowercase Scandinavian A-ring letters,
14744 respectively: @AA{}, @aa{}. @xref{Inserting Accents}. 13618 respectively: @AA{}, @aa{}. @xref{Inserting Accents}.
14745 13619
14746 @item @@acronym@{@var{abbrev}@}
14747 Tag @var{abbrev} as an acronym, that is, an abbreviation written in all
14748 capital letters, such as `NASA'. @xref{acronym,, @code{acronym}}.
14749
14750 @item @@AE@{@} 13620 @item @@AE@{@}
14751 @itemx @@ae@{@} 13621 @itemx @@ae@{@}
14752 Generate the uppercase and lowercase AE ligatures, respectively: 13622 Generate the uppercase and lowercase AE ligatures, respectively:
14753 @AE{}, @ae{}. @xref{Inserting Accents}. 13623 @AE{}, @ae{}. @xref{Inserting Accents}.
14754 13624
14755 @item @@afourlatex 13625 @item @@afourpaper
14756 @itemx @@afourpaper 13626 Change page dimensions for the A4 paper size.
14757 @itemx @@afourwide 13627 Only allowed inside @code{@@iftex} @dots{} @code{@@end iftex}.
14758 Change page dimensions for the A4 paper size. @xref{A4 Paper}. 13628 @xref{A4 Paper}.
14759
14760 @item @@alias @var{new}=@var{existing}
14761 Make the command @samp{@@@var{new}} an alias for the existing command
14762 @samp{@@@var{existing}}. @xref{alias}.
14763
14764 @item @@anchor@{@var{name}@}
14765 Define @var{name} as the current location for use as a cross-reference
14766 target. @xref{anchor,, @code{@@anchor}}.
14767 13629
14768 @item @@appendix @var{title} 13630 @item @@appendix @var{title}
14769 Begin an appendix. The title appears in the table 13631 Begin an appendix. The title appears in the table
14770 of contents of a printed manual. In Info, the title is 13632 of contents of a printed manual. In Info, the title is
14771 underlined with asterisks. @xref{unnumbered & appendix, , The 13633 underlined with asterisks. @xref{unnumbered & appendix, , The
14865 13727
14866 @item @@code@{@var{sample-code}@} 13728 @item @@code@{@var{sample-code}@}
14867 Highlight text that is an expression, a syntactically complete token 13729 Highlight text that is an expression, a syntactically complete token
14868 of a program, or a program name. @xref{code, , @code{@@code}}.@refill 13730 of a program, or a program name. @xref{code, , @code{@@code}}.@refill
14869 13731
14870 @item @@command@{@var{command-name}@}
14871 Indicate a command name, such as @command{ls}.
14872 @xref{command,, @code{@@command}}.
14873
14874 @item @@comment @var{comment} 13732 @item @@comment @var{comment}
14875 Begin a comment in Texinfo. The rest of the line does not appear in 13733 Begin a comment in Texinfo. The rest of the line does not appear in
14876 either the Info file or the printed manual. A synonym for @code{@@c}. 13734 either the Info file or the printed manual. A synonym for @code{@@c}.
14877 @xref{Comments}. 13735 @xref{Comments, , Comments}.@refill
14878 13736
14879 @item @@contents 13737 @item @@contents
14880 Print a complete table of contents. Has no effect in Info, which uses 13738 Print a complete table of contents. Has no effect in Info, which uses
14881 menus instead. @xref{Contents, , Generating a Table of 13739 menus instead. @xref{Contents, , Generating a Table of
14882 Contents}.@refill 13740 Contents}.@refill
14912 13770
14913 @item @@defindex @var{index-name} 13771 @item @@defindex @var{index-name}
14914 Define a new index and its indexing command. Print entries in a roman 13772 Define a new index and its indexing command. Print entries in a roman
14915 font. @xref{New Indices, , Defining New Indices}.@refill 13773 font. @xref{New Indices, , Defining New Indices}.@refill
14916 13774
14917 @item @@definfoenclose @var{newcmd}, @var{before}, @var{after}, 13775 @c Unused so far as I can see and unsupported by makeinfo -- karl, 15sep96.
14918 Create new @@-command @var{newcmd} for Info that marks text by enclosing 13776 @item @@definfoenclose @var{new-command}, @var{before}, @var{after},
14919 it in strings that precede and follow the text. @xref{definfoenclose}. 13777 Create new @@-command for Info that marks text by enclosing it in
13778 strings that precede and follow the text. Write definition inside of
13779 @code{@@ifinfo} @dots{} @code{@@end ifinfo}. @xref{Customized
13780 Highlighting}.@refill
14920 13781
14921 @item @@defivar @var{class} @var{instance-variable-name} 13782 @item @@defivar @var{class} @var{instance-variable-name}
14922 @itemx @@defivarx @var{class} @var{instance-variable-name} 13783 @itemx @@defivarx @var{class} @var{instance-variable-name}
14923 This command formats a description for an instance variable in 13784 This command formats a description for an instance variable in
14924 object-oriented programming. The command is equivalent to @samp{@@defcv 13785 object-oriented programming. The command is equivalent to @samp{@@defcv
14925 @{Instance Variable@} @dots{}}. @xref{Definition Commands}, and 13786 @{Instance Variable@} @dots{}}. @xref{Definition Commands}, and
14926 @ref{deffnx,, Def Cmds in Detail}. 13787 @ref{deffnx,, Def Cmds in Detail}.
14927 13788
14928 @item @@defmac @var{macroname} @var{arguments}@dots{} 13789 @item @@defmac @var{macro-name} @var{arguments}@dots{}
14929 @itemx @@defmacx @var{macroname} @var{arguments}@dots{} 13790 @itemx @@defmacx @var{macro-name} @var{arguments}@dots{}
14930 Format a description for a macro. The command is equivalent to 13791 Format a description for a macro. The command is equivalent to
14931 @samp{@@deffn Macro @dots{}}. @xref{Definition Commands}, and 13792 @samp{@@deffn Macro @dots{}}. @xref{Definition Commands}, and
14932 @ref{deffnx,, Def Cmds in Detail}. 13793 @ref{deffnx,, Def Cmds in Detail}.
14933 13794
14934 @item @@defmethod @var{class} @var{method-name} @var{arguments}@dots{} 13795 @item @@defmethod @var{class} @var{method-name} @var{arguments}@dots{}
14943 @itemx @@defopx @var{category} @var{class} @var{name} @var{arguments}@dots{} 13804 @itemx @@defopx @var{category} @var{class} @var{name} @var{arguments}@dots{}
14944 Format a description for an operation in object-oriented programming. 13805 Format a description for an operation in object-oriented programming.
14945 @code{@@defop} takes as arguments the overall name of the category of 13806 @code{@@defop} takes as arguments the overall name of the category of
14946 operation, the name of the class of the operation, the name of the 13807 operation, the name of the class of the operation, the name of the
14947 operation, and its arguments, if any. @xref{Definition 13808 operation, and its arguments, if any. @xref{Definition
14948 Commands}, and @ref{Abstract Objects}. 13809 Commands}, and @ref{deffnx,, Def Cmds in Detail}.
14949 13810
14950 @item @@defopt @var{option-name} 13811 @item @@defopt @var{option-name}
14951 @itemx @@defoptx @var{option-name} 13812 @itemx @@defoptx @var{option-name}
14952 Format a description for a user option. The command is equivalent to 13813 Format a description for a user option. The command is equivalent to
14953 @samp{@@defvr @{User Option@} @dots{}}. @xref{Definition Commands}, and 13814 @samp{@@defvr @{User Option@} @dots{}}. @xref{Definition Commands}, and
14962 @item @@deftp @var{category} @var{name-of-type} @var{attributes}@dots{} 13823 @item @@deftp @var{category} @var{name-of-type} @var{attributes}@dots{}
14963 @itemx @@deftpx @var{category} @var{name-of-type} @var{attributes}@dots{} 13824 @itemx @@deftpx @var{category} @var{name-of-type} @var{attributes}@dots{}
14964 Format a description for a data type. @code{@@deftp} takes as arguments 13825 Format a description for a data type. @code{@@deftp} takes as arguments
14965 the category, the name of the type (which is a word like @samp{int} or 13826 the category, the name of the type (which is a word like @samp{int} or
14966 @samp{float}), and then the names of attributes of objects of that type. 13827 @samp{float}), and then the names of attributes of objects of that type.
14967 @xref{Definition Commands}, and @ref{Data Types}. 13828 @xref{Definition Commands}, and @ref{deffnx,, Def Cmds in Detail}.
14968 13829
14969 @item @@deftypefn @var{classification} @var{data-type} @var{name} @var{arguments}@dots{} 13830 @item @@deftypefn @var{classification} @var{data-type} @var{name} @var{arguments}@dots{}
14970 @itemx @@deftypefnx @var{classification} @var{data-type} @var{name} @var{arguments}@dots{} 13831 @itemx @@deftypefnx @var{classification} @var{data-type} @var{name} @var{arguments}@dots{}
14971 Format a description for a function or similar entity that may take 13832 Format a description for a function or similar entity that may take
14972 arguments and that is typed. @code{@@deftypefn} takes as arguments the 13833 arguments and that is typed. @code{@@deftypefn} takes as arguments the
14976 13837
14977 @item @@deftypefun @var{data-type} @var{function-name} @var{arguments}@dots{} 13838 @item @@deftypefun @var{data-type} @var{function-name} @var{arguments}@dots{}
14978 @itemx @@deftypefunx @var{data-type} @var{function-name} @var{arguments}@dots{} 13839 @itemx @@deftypefunx @var{data-type} @var{function-name} @var{arguments}@dots{}
14979 Format a description for a function in a typed language. 13840 Format a description for a function in a typed language.
14980 The command is equivalent to @samp{@@deftypefn Function @dots{}}. 13841 The command is equivalent to @samp{@@deftypefn Function @dots{}}.
14981 @xref{Definition Commands}, and @ref{deffnx,, Def Cmds in Detail}. 13842 @xref{Definition Commands},
14982 13843 and @ref{deffnx,, Def Cmds in Detail}.
14983 @item @@deftypeivar @var{class} @var{data-type} @var{variable-name}
14984 @itemx @@deftypeivarx @var{class} @var{data-type} @var{variable-name}
14985 Format a description for a typed instance variable in object-oriented
14986 programming. @xref{Definition Commands}, and @ref{Abstract Objects}.
14987 13844
14988 @item @@deftypemethod @var{class} @var{data-type} @var{method-name} @var{arguments}@dots{} 13845 @item @@deftypemethod @var{class} @var{data-type} @var{method-name} @var{arguments}@dots{}
14989 @itemx @@deftypemethodx @var{class} @var{data-type} @var{method-name} @var{arguments}@dots{} 13846 @itemx @@deftypemethodx @var{class} @var{data-type} @var{method-name} @var{arguments}@dots{}
14990 Format a description for a typed method in object-oriented programming. 13847 Format a description for a typed method in object-oriented programming.
13848 Takes as arguments the name of the class of the method, the return type
13849 of the method, the name of the method, and its arguments, if any.
14991 @xref{Definition Commands}, and @ref{deffnx,, Def Cmds in Detail}. 13850 @xref{Definition Commands}, and @ref{deffnx,, Def Cmds in Detail}.
14992
14993 @item @@deftypeop @var{category} @var{class} @var{data-type} @var{name} @var{arguments}@dots{}
14994 @itemx @@deftypeopx @var{category} @var{class} @var{data-type} @var{name} @var{arguments}@dots{}
14995 Format a description for a typed operation in object-oriented programming.
14996 @xref{Definition Commands}, and @ref{Abstract Objects}.
14997
14998 @item @@deftypevar @var{data-type} @var{variable-name}
14999 @itemx @@deftypevarx @var{data-type} @var{variable-name}
15000 Format a description for a variable in a typed language. The command is
15001 equivalent to @samp{@@deftypevr Variable @dots{}}. @xref{Definition
15002 Commands}, and @ref{deffnx,, Def Cmds in Detail}.
15003 13851
15004 @item @@deftypevr @var{classification} @var{data-type} @var{name} 13852 @item @@deftypevr @var{classification} @var{data-type} @var{name}
15005 @itemx @@deftypevrx @var{classification} @var{data-type} @var{name} 13853 @itemx @@deftypevrx @var{classification} @var{data-type} @var{name}
15006 Format a description for something like a variable in a typed 13854 Format a description for something like a variable in a typed
15007 language---an entity that records a value. Takes as arguments the 13855 language---an entity that records a value. Takes as arguments the
15008 classification of entity being described, the type, and the name of the 13856 classification of entity being described, the type, and the name of the
15009 entity. @xref{Definition Commands}, and @ref{deffnx,, Def Cmds in 13857 entity. @xref{Definition Commands}, and @ref{deffnx,, Def Cmds in
15010 Detail}. 13858 Detail}.
15011 13859
13860 @item @@deftypevar @var{data-type} @var{variable-name}
13861 @itemx @@deftypevarx @var{data-type} @var{variable-name}
13862 Format a description for a variable in a typed language. The command is
13863 equivalent to @samp{@@deftypevr Variable @dots{}}. @xref{Definition
13864 Commands}, and @ref{deffnx,, Def Cmds in Detail}.
13865
15012 @item @@defun @var{function-name} @var{arguments}@dots{} 13866 @item @@defun @var{function-name} @var{arguments}@dots{}
15013 @itemx @@defunx @var{function-name} @var{arguments}@dots{} 13867 @itemx @@defunx @var{function-name} @var{arguments}@dots{}
15014 Format a description for functions. The command is equivalent to 13868 Format a description for functions. The command is equivalent to
15015 @samp{@@deffn Function @dots{}}. @xref{Definition Commands}, and 13869 @samp{@@deffn Function @dots{}}. @xref{Definition Commands}, and
15016 @ref{deffnx,, Def Cmds in Detail}. 13870 @ref{deffnx,, Def Cmds in Detail}.
15026 Format a description for any kind of variable. @code{@@defvr} takes 13880 Format a description for any kind of variable. @code{@@defvr} takes
15027 as arguments the category of the entity and the name of the entity. 13881 as arguments the category of the entity and the name of the entity.
15028 @xref{Definition Commands}, 13882 @xref{Definition Commands},
15029 and @ref{deffnx,, Def Cmds in Detail}. 13883 and @ref{deffnx,, Def Cmds in Detail}.
15030 13884
15031 @item @@detailmenu 13885 @item @@detailmenu@{@}
15032 Avoid @code{makeinfo} confusion stemming from the detailed node listing 13886 Avoid @code{makeinfo} confusion stemming from the detailed node listing
15033 in a master menu. @xref{Master Menu Parts}. 13887 in a master menu. @xref{Master Menu Parts}.
15034 13888
15035 @item @@dfn@{@var{term}@} 13889 @item @@dfn@{@var{term}@}
15036 Highlight the introductory or defining use of a term. 13890 Highlight the introductory or defining use of a term.
15039 @item @@dircategory @var{dirpart} 13893 @item @@dircategory @var{dirpart}
15040 Specify a part of the Info directory menu where this file's entry should 13894 Specify a part of the Info directory menu where this file's entry should
15041 go. @xref{Installing Dir Entries}. 13895 go. @xref{Installing Dir Entries}.
15042 13896
15043 @item @@direntry 13897 @item @@direntry
15044 Begin the Info directory menu entry for this file. Pair with 13898 Begin the Info directory menu entry for this file.
15045 @code{@@end direntry}. @xref{Installing Dir Entries}. 13899 @xref{Installing Dir Entries}.
15046 13900
13901 @need 100
15047 @item @@display 13902 @item @@display
15048 Begin a kind of example. Like @code{@@example} (indent text, do not 13903 Begin a kind of example. Indent text, do not fill, do not select a
15049 fill), but do not select a new font. Pair with @code{@@end display}. 13904 new font. Pair with @code{@@end display}. @xref{display, ,
15050 @xref{display, , @code{@@display}}. 13905 @code{@@display}}.@refill
15051 13906
15052 @item @@dmn@{@var{dimension}@} 13907 @item @@dmn@{@var{dimension}@}
15053 Format a unit of measure, as in 12@dmn{pt}. Causes @TeX{} to insert a 13908 Format a unit of measure, as in 12@dmn{pt}. Causes @TeX{} to insert a
15054 thin space before @var{dimension}. No effect in Info. 13909 thin space before @var{dimension}. No effect in Info.
15055 @xref{dmn, , @code{@@dmn}}. 13910 @xref{dmn, , @code{@@dmn}}.@refill
15056
15057 @item @@documentencoding @var{enc}
15058 Declare the input encoding as @var{enc}.
15059 @xref{documentencoding,, @code{@@documentencoding}}.
15060
15061 @item @@documentlanguage @var{CC}
15062 Declare the document language as the two-character ISO-639 abbreviation
15063 @var{CC}. @xref{documentlanguage,, @code{@@documentlanguage}}.
15064 13911
15065 @item @@dotaccent@{@var{c}@} 13912 @item @@dotaccent@{@var{c}@}
15066 Generate a dot accent over the character @var{c}, as in @dotaccent{o}. 13913 Generate a dot accent over the character @var{c}, as in @dotaccent{oo}.
15067 @xref{Inserting Accents}. 13914 @xref{Inserting Accents}.
15068 13915
15069 @item @@dots@{@} 13916 @item @@dots@{@}
15070 Insert an ellipsis: @samp{@dots{}}. 13917 Insert an ellipsis: @samp{@dots{}}.
15071 @xref{dots, , @code{@@dots}}.@refill 13918 @xref{dots, , @code{@@dots@{@}}}.@refill
15072 13919
15073 @item @@email@{@var{address}[, @var{displayed-text}]@} 13920 @item @@email@{@var{address}[, @var{displayed-text}]@}
15074 Indicate an electronic mail address. 13921 Indicate an electronic mail address.
15075 @xref{email, , @code{@@email}}. 13922 @xref{email, , @code{@@email}}.@refill
15076 13923
13924 @need 100
15077 @item @@emph@{@var{text}@} 13925 @item @@emph@{@var{text}@}
15078 Highlight @var{text}; text is displayed in @emph{italics} in printed 13926 Highlight @var{text}; text is displayed in @emph{italics} in printed
15079 output, and surrounded by asterisks in Info. @xref{Emphasis, , 13927 output, and surrounded by asterisks in Info. @xref{Emphasis, ,
15080 Emphasizing Text}. 13928 Emphasizing Text}.
15081 13929
15082 @item @@end @var{environment} 13930 @item @@end @var{environment}
15083 Ends @var{environment}, as in @samp{@@end example}. @xref{Formatting 13931 Ends @var{environment}, as in @samp{@@end example}. @xref{Formatting
15084 Commands,,@@-commands}. 13932 Commands,,@@-commands}.
15085 13933
15086 @item @@env@{@var{environment-variable}@}
15087 Indicate an environment variable name, such as @env{PATH}.
15088 @xref{env,, @code{@@env}}.
15089
15090 @item @@enddots@{@} 13934 @item @@enddots@{@}
15091 Generate an end-of-sentence of ellipsis, like this @enddots{} 13935 Generate an end-of-sentence of ellipsis, like this @enddots{}
15092 @xref{dots,,@code{@@dots@{@}}}. 13936 @xref{dots,,@code{@@dots@{@}}}.
15093 13937
13938 @need 100
15094 @item @@enumerate [@var{number-or-letter}] 13939 @item @@enumerate [@var{number-or-letter}]
15095 Begin a numbered list, using @code{@@item} for each entry. 13940 Begin a numbered list, using @code{@@item} for each entry.
15096 Optionally, start list with @var{number-or-letter}. Pair with 13941 Optionally, start list with @var{number-or-letter}. Pair with
15097 @code{@@end enumerate}. @xref{enumerate, , 13942 @code{@@end enumerate}. @xref{enumerate, ,
15098 @code{@@enumerate}}.@refill 13943 @code{@@enumerate}}.@refill
15099 13944
13945 @need 100
15100 @item @@equiv@{@} 13946 @item @@equiv@{@}
15101 Indicate to the reader the exact equivalence of two forms with a 13947 Indicate to the reader the exact equivalence of two forms with a
15102 glyph: @samp{@equiv{}}. @xref{Equivalence}.@refill 13948 glyph: @samp{@equiv{}}. @xref{Equivalence}.@refill
15103 13949
15104 @item @@error@{@} 13950 @item @@error@{@}
15119 @item @@example 13965 @item @@example
15120 Begin an example. Indent text, do not fill, and select fixed-width font. 13966 Begin an example. Indent text, do not fill, and select fixed-width font.
15121 Pair with @code{@@end example}. @xref{example, , 13967 Pair with @code{@@end example}. @xref{example, ,
15122 @code{@@example}}.@refill 13968 @code{@@example}}.@refill
15123 13969
15124 @item @@exampleindent @var{indent}
15125 Indent example-like environments by @var{indent} number of spaces
15126 (perhaps 0). @xref{exampleindent,, Paragraph Indenting}.
15127
15128 @item @@exclamdown@{@} 13970 @item @@exclamdown@{@}
15129 Produce an upside-down exclamation point. @xref{Inserting Accents}. 13971 Produce an upside-down exclamation point. @xref{Inserting Accents}.
15130 13972
15131 @item @@exdent @var{line-of-text} 13973 @item @@exdent @var{line-of-text}
15132 Remove any indentation a line might have. @xref{exdent, , 13974 Remove any indentation a line might have. @xref{exdent, ,
15143 13985
15144 @item @@finalout 13986 @item @@finalout
15145 Prevent @TeX{} from printing large black warning rectangles beside 13987 Prevent @TeX{} from printing large black warning rectangles beside
15146 over-wide lines. @xref{Overfull hboxes}.@refill 13988 over-wide lines. @xref{Overfull hboxes}.@refill
15147 13989
13990 @need 100
15148 @item @@findex @var{entry} 13991 @item @@findex @var{entry}
15149 Add @var{entry} to the index of functions. @xref{Index Entries, , 13992 Add @var{entry} to the index of functions. @xref{Index Entries, ,
15150 Defining the Entries of an Index}.@refill 13993 Defining the Entries of an Index}.@refill
15151 13994
13995 @need 200
15152 @item @@flushleft 13996 @item @@flushleft
15153 @itemx @@flushright 13997 @itemx @@flushright
15154 Left justify every line but leave the right end ragged. 13998 Left justify every line but leave the right end ragged.
15155 Leave font as is. Pair with @code{@@end flushleft}. 13999 Leave font as is. Pair with @code{@@end flushleft}.
15156 @code{@@flushright} analogous. 14000 @code{@@flushright} analogous.
15157 @xref{flushleft & flushright, , @code{@@flushleft} and 14001 @xref{flushleft & flushright, , @code{@@flushleft} and
15158 @code{@@flushright}}.@refill 14002 @code{@@flushright}}.@refill
15159 14003
14004 @need 200
15160 @item @@footnote@{@var{text-of-footnote}@} 14005 @item @@footnote@{@var{text-of-footnote}@}
15161 Enter a footnote. Footnote text is printed at the bottom of the page 14006 Enter a footnote. Footnote text is printed at the bottom of the page
15162 by @TeX{}; Info may format in either `End' node or `Separate' node style. 14007 by @TeX{}; Info may format in either `End' node or `Separate' node style.
15163 @xref{Footnotes}.@refill 14008 @xref{Footnotes}.@refill
15164 14009
15166 Specify an Info file's footnote style, either @samp{end} for the end 14011 Specify an Info file's footnote style, either @samp{end} for the end
15167 node style or @samp{separate} for the separate node style. 14012 node style or @samp{separate} for the separate node style.
15168 @xref{Footnotes}.@refill 14013 @xref{Footnotes}.@refill
15169 14014
15170 @item @@format 14015 @item @@format
15171 Begin a kind of example. Like @code{@@display}, but do not narrow the 14016 Begin a kind of example. Like @code{@@example} or @code{@@display},
15172 margins. Pair with @code{@@end format}. @xref{example,, 14017 but do not narrow the margins and do not select the fixed-width font.
15173 @code{@@example}}. 14018 Pair with @code{@@end format}. @xref{example, ,
14019 @code{@@example}}.@refill
15174 14020
15175 @item @@ftable @var{formatting-command} 14021 @item @@ftable @var{formatting-command}
15176 Begin a two-column table, using @code{@@item} for each entry. 14022 Begin a two-column table, using @code{@@item} for each entry.
15177 Automatically enter each of the items in the first column into the 14023 Automatically enter each of the items in the first column into the
15178 index of functions. Pair with @code{@@end ftable}. The same as 14024 index of functions. Pair with @code{@@end ftable}. The same as
15311 @c @TeX{}. Write definition inside of @code{@@iftex} @dots{} @code{@@end 14157 @c @TeX{}. Write definition inside of @code{@@iftex} @dots{} @code{@@end
15312 @c iftex}. @xref{Customized Highlighting}.@refill 14158 @c iftex}. @xref{Customized Highlighting}.@refill
15313 14159
15314 @item @@lisp 14160 @item @@lisp
15315 Begin an example of Lisp code. Indent text, do not fill, and select 14161 Begin an example of Lisp code. Indent text, do not fill, and select
15316 fixed-width font. Pair with @code{@@end lisp}. @xref{lisp, , @code{@@lisp}}. 14162 fixed-width font. Pair with @code{@@end lisp}. @xref{Lisp Example, ,
14163 @code{@@lisp}}.@refill
15317 14164
15318 @item @@lowersections 14165 @item @@lowersections
15319 Change subsequent chapters to sections, sections to subsections, and so 14166 Change subsequent chapters to sections, sections to subsections, and so
15320 on. @xref{Raise/lower sections, , @code{@@raisesections} and 14167 on. @xref{Raise/lower sections, , @code{@@raisesections} and
15321 @code{@@lowersections}}.@refill 14168 @code{@@lowersections}}.@refill
15322 14169
15323 @item @@macro @var{macroname} @{@var{params}@} 14170 @item @@macro @var{macro-name} @{@var{params}@}
15324 Define a new Texinfo command @code{@@@var{macroname}@{@var{params}@}}. 14171 Define a new Texinfo command @code{@@@var{macro-name}@{@var{params}@}}.
15325 Only supported by @code{makeinfo} and @code{texi2dvi}. @xref{Defining 14172 Only supported by @code{makeinfo} and @code{texi2dvi}. @xref{Defining
15326 Macros}. 14173 Macros}.
15327 14174
15328 @item @@majorheading @var{title} 14175 @item @@majorheading @var{title}
15329 Print a chapter-like heading in the text, but not in the table of 14176 Print a chapter-like heading in the text, but not in the table of
15332 heading line is underlined with asterisks. @xref{majorheading & 14179 heading line is underlined with asterisks. @xref{majorheading &
15333 chapheading, , @code{@@majorheading} and @code{@@chapheading}}.@refill 14180 chapheading, , @code{@@majorheading} and @code{@@chapheading}}.@refill
15334 14181
15335 @item @@math@{@var{mathematical-expression}@} 14182 @item @@math@{@var{mathematical-expression}@}
15336 Format a mathematical expression. 14183 Format a mathematical expression.
15337 @xref{math, , @code{@@math}: Inserting Mathematical Expressions}. 14184 @xref{math, , @code{@@math} - Inserting Mathematical Expressions}.
15338 14185
15339 @item @@menu 14186 @item @@menu
15340 Mark the beginning of a menu of nodes in Info. No effect in a printed 14187 Mark the beginning of a menu of nodes in Info. No effect in a printed
15341 manual. Pair with @code{@@end menu}. @xref{Menus}.@refill 14188 manual. Pair with @code{@@end menu}. @xref{Menus}.@refill
15342 14189
15357 references for @TeX{}. @xref{node, , @code{@@node}}.@refill 14204 references for @TeX{}. @xref{node, , @code{@@node}}.@refill
15358 14205
15359 @item @@noindent 14206 @item @@noindent
15360 Prevent text from being indented as if it were a new paragraph. 14207 Prevent text from being indented as if it were a new paragraph.
15361 @xref{noindent, , @code{@@noindent}}.@refill 14208 @xref{noindent, , @code{@@noindent}}.@refill
15362
15363 @item @@novalidate
15364 Suppress validation of node references, omit creation of auxiliary files
15365 with @TeX{}. Use before @code{@@setfilename}. @xref{Pointer Validation}.
15366 14209
15367 @item @@O@{@} 14210 @item @@O@{@}
15368 @itemx @@o@{@} 14211 @itemx @@o@{@}
15369 Generate the uppercase and lowercase O-with-slash letters, respectively: 14212 Generate the uppercase and lowercase O-with-slash letters, respectively:
15370 @O{}, @o{}. 14213 @O{}, @o{}.
15378 @item @@OE@{@} 14221 @item @@OE@{@}
15379 @itemx @@oe@{@} 14222 @itemx @@oe@{@}
15380 Generate the uppercase and lowercase OE ligatures, respectively: 14223 Generate the uppercase and lowercase OE ligatures, respectively:
15381 @OE{}, @oe{}. @xref{Inserting Accents}. 14224 @OE{}, @oe{}. @xref{Inserting Accents}.
15382 14225
15383 @item @@option@{@var{option-name}@}
15384 Indicate a command-line option, such as @option{-l} or @option{--help}.
15385 @xref{option,, @code{@@option}}.
15386
15387 @item @@page 14226 @item @@page
15388 Start a new page in a printed manual. No effect in Info. 14227 Start a new page in a printed manual. No effect in Info.
15389 @xref{page, , @code{@@page}}.@refill 14228 @xref{page, , @code{@@page}}.@refill
15390 14229
15391 @item @@pagesizes [@var{width}][, @var{height}]
15392 Change page dimensions. @xref{pagesizes}.
15393
15394 @item @@paragraphindent @var{indent} 14230 @item @@paragraphindent @var{indent}
15395 Indent paragraphs by @var{indent} number of spaces (perhaps 0); preserve 14231 Indent paragraphs by @var{indent} number of spaces; delete indentation
15396 source file indentation if @var{indent} is @code{asis}. 14232 if the value of @var{indent} is 0; and do not change indentation if
15397 @xref{paragraphindent,, Paragraph Indenting}. 14233 @var{indent} is @code{asis}. @xref{paragraphindent, , Paragraph
14234 Indenting}.@refill
15398 14235
15399 @item @@pindex @var{entry} 14236 @item @@pindex @var{entry}
15400 Add @var{entry} to the index of programs. @xref{Index Entries, , Defining 14237 Add @var{entry} to the index of programs. @xref{Index Entries, , Defining
15401 the Entries of an Index}.@refill 14238 the Entries of an Index}.@refill
15402 14239
15432 Narrow the margins to indicate text that is quoted from another real 14269 Narrow the margins to indicate text that is quoted from another real
15433 or imaginary work. Write command on a line of its own. Pair with 14270 or imaginary work. Write command on a line of its own. Pair with
15434 @code{@@end quotation}. @xref{quotation, , 14271 @code{@@end quotation}. @xref{quotation, ,
15435 @code{@@quotation}}.@refill 14272 @code{@@quotation}}.@refill
15436 14273
14274 @need 100
15437 @item @@r@{@var{text}@} 14275 @item @@r@{@var{text}@}
15438 Print @var{text} in @r{roman} font. No effect in Info. 14276 Print @var{text} in @r{roman} font. No effect in Info.
15439 @xref{Fonts}.@refill 14277 @xref{Fonts}.@refill
15440 14278
15441 @item @@raisesections 14279 @item @@raisesections
15442 Change subsequent sections to chapters, subsections to sections, and so 14280 Change subsequent sections to chapters, subsections to sections, and so
15443 on. @xref{Raise/lower sections, , @code{@@raisesections} and 14281 on. @xref{Raise/lower sections, , @code{@@raisesections} and
15444 @code{@@lowersections}}.@refill 14282 @code{@@lowersections}}.@refill
15445 14283
14284 @need 300
15446 @item @@ref@{@var{node-name}, [@var{entry}], [@var{topic-or-title}], [@var{info-file}], [@var{manual}]@} 14285 @item @@ref@{@var{node-name}, [@var{entry}], [@var{topic-or-title}], [@var{info-file}], [@var{manual}]@}
15447 Make a reference. In a printed manual, the reference does not start 14286 Make a reference. In a printed manual, the reference does not start
15448 with a `See'. Follow command with a punctuation mark. Only the first 14287 with a `See'. Follow command with a punctuation mark. Only the first
15449 argument is mandatory. @xref{ref, , @code{@@ref}}.@refill 14288 argument is mandatory. @xref{ref, , @code{@@ref}}.@refill
15450 14289
14290 @need 300
15451 @item @@refill 14291 @item @@refill
15452 In Info, refill and indent the paragraph after all the other processing 14292 In Info, refill and indent the paragraph after all the other processing
15453 has been done. No effect on @TeX{}, which always refills. This command 14293 has been done. No effect on @TeX{}, which always refills. This command
15454 is no longer needed, since all formatters now automatically refill. 14294 is no longer needed, since all formatters now automatically refill.
15455 @xref{Refilling Paragraphs}.@refill 14295 @xref{Refilling Paragraphs}.@refill
15456 14296
14297 @need 300
15457 @item @@result@{@} 14298 @item @@result@{@}
15458 Indicate the result of an expression to the reader with a special 14299 Indicate the result of an expression to the reader with a special
15459 glyph: @samp{@result{}}. @xref{result, , @code{@@result}}.@refill 14300 glyph: @samp{@result{}}. @xref{result, , @code{@@result}}.@refill
15460 14301
15461 @item @@ringaccent@{@var{c}@} 14302 @item @@ringaccent@{@var{c}@}
15481 @item @@set @var{flag} [@var{string}] 14322 @item @@set @var{flag} [@var{string}]
15482 Make @var{flag} active, causing the Texinfo formatting commands to 14323 Make @var{flag} active, causing the Texinfo formatting commands to
15483 format text between subsequent pairs of @code{@@ifset @var{flag}} and 14324 format text between subsequent pairs of @code{@@ifset @var{flag}} and
15484 @code{@@end ifset} commands. Optionally, set value of @var{flag} to 14325 @code{@@end ifset} commands. Optionally, set value of @var{flag} to
15485 @var{string}. 14326 @var{string}.
15486 @xref{set clear value, , @code{@@set} @code{@@clear} @code{@@value}}. 14327 @xref{set clear value, , @code{@@set} @code{@@clear} @code{@@value}}.@refill
15487 14328
15488 @item @@setchapternewpage @var{on-off-odd} 14329 @item @@setchapternewpage @var{on-off-odd}
15489 Specify whether chapters start on new pages, and if so, whether on 14330 Specify whether chapters start on new pages, and if so, whether on
15490 odd-numbered (right-hand) new pages. @xref{setchapternewpage, , 14331 odd-numbered (right-hand) new pages. @xref{setchapternewpage, ,
15491 @code{@@setchapternewpage}}. 14332 @code{@@setchapternewpage}}.@refill
15492
15493 @item @@setcontentsaftertitlepage
15494 Put the table of contents after the @samp{@@end titlepage} even if the
15495 @code{@@contents} command is not there. @xref{Contents}.
15496 14333
15497 @item @@setfilename @var{info-file-name} 14334 @item @@setfilename @var{info-file-name}
15498 Provide a name to be used by the Info file. This command is essential 14335 Provide a name to be used by the Info file. This command is essential
15499 for @TeX{} formatting as well, even though it produces no output. 14336 for @TeX{} formatting as well, even though it produces no output.
15500 @xref{setfilename, , @code{@@setfilename}}. 14337 @xref{setfilename, , @code{@@setfilename}}.@refill
15501
15502 @item @@setshortcontentsaftertitlepage
15503 Place the short table of contents after the @samp{@@end titlepage}
15504 command even if the @code{@@shortcontents} command is not there.
15505 @xref{Contents}.
15506 14338
15507 @item @@settitle @var{title} 14339 @item @@settitle @var{title}
15508 Provide a title for page headers in a printed manual. 14340 Provide a title for page headers in a printed manual.
15509 @xref{settitle, , @code{@@settitle}}.@refill 14341 @xref{settitle, , @code{@@settitle}}.@refill
15510 14342
15512 Print a short table of contents. Not relevant to Info, which uses 14344 Print a short table of contents. Not relevant to Info, which uses
15513 menus rather than tables of contents. A synonym for 14345 menus rather than tables of contents. A synonym for
15514 @code{@@summarycontents}. @xref{Contents, , Generating a Table of 14346 @code{@@summarycontents}. @xref{Contents, , Generating a Table of
15515 Contents}.@refill 14347 Contents}.@refill
15516 14348
15517 @item @@shorttitlepage @var{title} 14349 @item @@shorttitlepage@{@var{title}@}
15518 Generate a minimal title page. @xref{titlepage,,@code{@@titlepage}}. 14350 Generate a minimal title page. @xref{titlepage,,@code{@@titlepage}}.
15519 14351
14352 @need 400
15520 @item @@smallbook 14353 @item @@smallbook
15521 Cause @TeX{} to produce a printed manual in a 7 by 9.25 inch format 14354 Cause @TeX{} to produce a printed manual in a 7 by 9.25 inch format
15522 rather than the regular 8.5 by 11 inch format. @xref{smallbook, , 14355 rather than the regular 8.5 by 11 inch format. @xref{smallbook, ,
15523 Printing Small Books}. Also, see @ref{small}. 14356 Printing Small Books}. Also, see @ref{smallexample & smalllisp, ,
15524 14357 @code{@@smallexample} and @code{@@smalllisp}}.@refill
15525 @item @@smalldisplay 14358
15526 Begin a kind of example. Like @code{@@smallexample} (indent text, no 14359 @need 400
15527 filling), but do not select the fixed-width font. In @code{@@smallbook}
15528 format, print text in a smaller font than with @code{@@display}. Pair
15529 with @code{@@end smalldisplay}. @xref{small}.
15530
15531 @item @@smallexample 14360 @item @@smallexample
15532 Indent text to indicate an example. Do not fill, select fixed-width 14361 Indent text to indicate an example. Do not fill, select fixed-width
15533 font. In @code{@@smallbook} format, print text in a smaller font than 14362 font. In @code{@@smallbook} format, print text in a smaller font than
15534 with @code{@@example}. Pair with @code{@@end smallexample}. 14363 with @code{@@example}. Pair with @code{@@end smallexample}.
15535 @xref{small}. 14364 @xref{smallexample & smalllisp, , @code{@@smallexample} and
15536 14365 @code{@@smalllisp}}.@refill
15537 @item @@smallformat 14366
15538 Begin a kind of example. Like @code{@@smalldisplay}, but do not narrow 14367 @need 400
15539 the margins and do not select the fixed-width font.
15540 In @code{@@smallbook} format, print text in a smaller font than
15541 with @code{@@format}. Pair with @code{@@end smallformat}.
15542 @xref{small}.
15543
15544 @item @@smalllisp 14368 @item @@smalllisp
15545 Begin an example of Lisp code. Indent text, do not fill, select 14369 Begin an example of Lisp code. Indent text, do not fill, select
15546 fixed-width font. In @code{@@smallbook} format, print text in a 14370 fixed-width font. In @code{@@smallbook} format, print text in a
15547 smaller font. Pair with @code{@@end smalllisp}. @xref{small}. 14371 smaller font. Pair with @code{@@end smalllisp}. @xref{smallexample &
15548 14372 smalllisp, , @code{@@smallexample} and @code{@@smalllisp}}.@refill
14373
14374 @need 700
15549 @item @@sp @var{n} 14375 @item @@sp @var{n}
15550 Skip @var{n} blank lines. @xref{sp, , @code{@@sp}}.@refill 14376 Skip @var{n} blank lines. @xref{sp, , @code{@@sp}}.@refill
15551 14377
15552 @item @@ss@{@} 14378 @item @@ss@{@}
15553 Generate the German sharp-S es-zet letter, @ss{}. @xref{Inserting Accents}. 14379 Generate the German sharp-S es-zet letter, @ss{}. @xref{Inserting Accents}.
15554 14380
15555 @item @@strong @{@var{text}@} 14381 @need 700
14382 @item @@strong @var{text}
15556 Emphasize @var{text} by typesetting it in a @strong{bold} font for the 14383 Emphasize @var{text} by typesetting it in a @strong{bold} font for the
15557 printed manual and by surrounding it with asterisks for Info. 14384 printed manual and by surrounding it with asterisks for Info.
15558 @xref{emph & strong, , Emphasizing Text}.@refill 14385 @xref{emph & strong, , Emphasizing Text}.@refill
15559 14386
15560 @item @@subheading @var{title} 14387 @item @@subheading @var{title}
15592 Print a short table of contents. Not relevant to Info, which uses 14419 Print a short table of contents. Not relevant to Info, which uses
15593 menus rather than tables of contents. A synonym for 14420 menus rather than tables of contents. A synonym for
15594 @code{@@shortcontents}. @xref{Contents, , Generating a Table of 14421 @code{@@shortcontents}. @xref{Contents, , Generating a Table of
15595 Contents}.@refill 14422 Contents}.@refill
15596 14423
14424 @need 300
15597 @item @@syncodeindex @var{from-index} @var{into-index} 14425 @item @@syncodeindex @var{from-index} @var{into-index}
15598 Merge the index named in the first argument into the index named in 14426 Merge the index named in the first argument into the index named in
15599 the second argument, printing the entries from the first index in 14427 the second argument, printing the entries from the first index in
15600 @code{@@code} font. @xref{Combining Indices}.@refill 14428 @code{@@code} font. @xref{Combining Indices}.@refill
15601 14429
14430 @need 300
15602 @item @@synindex @var{from-index} @var{into-index} 14431 @item @@synindex @var{from-index} @var{into-index}
15603 Merge the index named in the first argument into the index named in 14432 Merge the index named in the first argument into the index named in
15604 the second argument. Do not change the font of @var{from-index} 14433 the second argument. Do not change the font of @var{from-index}
15605 entries. @xref{Combining Indices}.@refill 14434 entries. @xref{Combining Indices}.@refill
15606 14435
14436 @need 100
15607 @item @@t@{@var{text}@} 14437 @item @@t@{@var{text}@}
15608 Print @var{text} in a @t{fixed-width}, typewriter-like font. 14438 Print @var{text} in a @t{fixed-width}, typewriter-like font.
15609 No effect in Info. @xref{Fonts}.@refill 14439 No effect in Info. @xref{Fonts}.@refill
15610 14440
15611 @item @@tab 14441 @item @@tab
15612 Separate columns in a multitable. @xref{Multitable Rows}. 14442 Separate columns in a multitable. @xref{Multitable Rows}.
15613 14443
14444 @need 400
15614 @item @@table @var{formatting-command} 14445 @item @@table @var{formatting-command}
15615 Begin a two-column table, using @code{@@item} for each entry. Write 14446 Begin a two-column table, using @code{@@item} for each entry. Write
15616 each first column entry on the same line as @code{@@item}. First 14447 each first column entry on the same line as @code{@@item}. First
15617 column entries are printed in the font resulting from 14448 column entries are printed in the font resulting from
15618 @var{formatting-command}. Pair with @code{@@end table}. 14449 @var{formatting-command}. Pair with @code{@@end table}.
15652 page in a larger than normal font and underline it with a black rule. 14483 page in a larger than normal font and underline it with a black rule.
15653 Not relevant to Info, which does not have title pages. @xref{title 14484 Not relevant to Info, which does not have title pages. @xref{title
15654 subtitle author, , The @code{@@title} @code{@@subtitle} and 14485 subtitle author, , The @code{@@title} @code{@@subtitle} and
15655 @code{@@author} Commands}.@refill 14486 @code{@@author} Commands}.@refill
15656 14487
14488 @need 400
15657 @item @@titlefont@{@var{text}@} 14489 @item @@titlefont@{@var{text}@}
15658 In a printed manual, print @var{text} in a larger than normal font. 14490 In a printed manual, print @var{text} in a larger than normal font.
15659 Not relevant to Info, which does not have title pages. 14491 Not relevant to Info, which does not have title pages.
15660 @xref{titlefont center sp, , The @code{@@titlefont} @code{@@center} 14492 @xref{titlefont center sp, , The @code{@@titlefont} @code{@@center}
15661 and @code{@@sp} Commands}.@refill 14493 and @code{@@sp} Commands}.@refill
15662 14494
14495 @need 300
15663 @item @@titlepage 14496 @item @@titlepage
15664 Indicate to Texinfo the beginning of the title page. Write command on 14497 Indicate to Texinfo the beginning of the title page. Write command on
15665 a line of its own. Pair with @code{@@end titlepage}. Nothing between 14498 a line of its own. Pair with @code{@@end titlepage}. Nothing between
15666 @code{@@titlepage} and @code{@@end titlepage} appears in Info. 14499 @code{@@titlepage} and @code{@@end titlepage} appears in Info.
15667 @xref{titlepage, , @code{@@titlepage}}.@refill 14500 @xref{titlepage, , @code{@@titlepage}}.@refill
15668 14501
14502 @need 150
15669 @item @@today@{@} 14503 @item @@today@{@}
15670 Insert the current date, in `1 Jan 1900' style. @xref{Custom 14504 Insert the current date, in `1 Jan 1900' style. @xref{Custom
15671 Headings, , How to Make Your Own Headings}.@refill 14505 Headings, , How to Make Your Own Headings}.@refill
15672 14506
15673 @item @@top @var{title} 14507 @item @@top @var{title}
15713 In a printed manual, begin an unnumbered subsubsection within a 14547 In a printed manual, begin an unnumbered subsubsection within a
15714 chapter. The title appears in the table of contents of a printed 14548 chapter. The title appears in the table of contents of a printed
15715 manual. In Info, the title is underlined with periods. 14549 manual. In Info, the title is underlined with periods.
15716 @xref{subsubsection, , The `subsub' Commands}.@refill 14550 @xref{subsubsection, , The `subsub' Commands}.@refill
15717 14551
15718 @item @@uref@{@var{url}[, @var{displayed-text}][, @var{replacement}@} 14552 @item @@uref@{@var{url}[, @var{displayed-text}@}
15719 Define a cross reference to an external uniform resource locator for the 14553 Define a cross reference to an external uniform resource locator for the
15720 World Wide Web. @xref{uref, , @code{@@uref}}.@refill 14554 World Wide Web. @xref{url, , @code{@@url}}.@refill
15721 14555
15722 @item @@url@{@var{url}@} 14556 @item @@url@{@var{url}@}
15723 Indicate text that is a uniform resource locator for the World Wide 14557 Indicate text that is a uniform resource locator for the World Wide
15724 Web. @xref{url, , @code{@@url}}.@refill 14558 Web. @xref{url, , @code{@@url}}.@refill
15725 14559
15735 @item @@var@{@var{metasyntactic-variable}@} 14569 @item @@var@{@var{metasyntactic-variable}@}
15736 Highlight a metasyntactic variable, which is something that stands for 14570 Highlight a metasyntactic variable, which is something that stands for
15737 another piece of text. @xref{var, , Indicating Metasyntactic 14571 another piece of text. @xref{var, , Indicating Metasyntactic
15738 Variables}.@refill 14572 Variables}.@refill
15739 14573
14574 @need 400
15740 @item @@vindex @var{entry} 14575 @item @@vindex @var{entry}
15741 Add @var{entry} to the index of variables. @xref{Index Entries, , 14576 Add @var{entry} to the index of variables. @xref{Index Entries, ,
15742 Defining the Entries of an Index}.@refill 14577 Defining the Entries of an Index}.@refill
15743 14578
14579 @need 400
15744 @item @@vskip @var{amount} 14580 @item @@vskip @var{amount}
15745 In a printed manual, insert whitespace so as to push text on the 14581 In a printed manual, insert whitespace so as to push text on the
15746 remainder of the page towards the bottom of the page. Used in 14582 remainder of the page towards the bottom of the page. Used in
15747 formatting the copyright page with the argument @samp{0pt plus 14583 formatting the copyright page with the argument @samp{0pt plus
15748 1filll}. (Note spelling of @samp{filll}.) @code{@@vskip} may be used 14584 1filll}. (Note spelling of @samp{filll}.) @code{@@vskip} may be used
15749 only in contexts ignored for Info. @xref{Copyright & Permissions, , 14585 only in contexts ignored for Info. @xref{Copyright & Permissions, ,
15750 The Copyright Page and Printed Permissions}.@refill 14586 The Copyright Page and Printed Permissions}.@refill
15751 14587
14588 @need 400
15752 @item @@vtable @var{formatting-command} 14589 @item @@vtable @var{formatting-command}
15753 Begin a two-column table, using @code{@@item} for each entry. 14590 Begin a two-column table, using @code{@@item} for each entry.
15754 Automatically enter each of the items in the first column into the 14591 Automatically enter each of the items in the first column into the
15755 index of variables. Pair with @code{@@end vtable}. The same as 14592 index of variables. Pair with @code{@@end vtable}. The same as
15756 @code{@@table}, except for indexing. @xref{ftable vtable, , 14593 @code{@@table}, except for indexing. @xref{ftable vtable, ,
15757 @code{@@ftable} and @code{@@vtable}}.@refill 14594 @code{@@ftable} and @code{@@vtable}}.@refill
15758 14595
14596 @need 400
15759 @item @@w@{@var{text}@} 14597 @item @@w@{@var{text}@}
15760 Prevent @var{text} from being split across two lines. Do not end a 14598 Prevent @var{text} from being split across two lines. Do not end a
15761 paragraph that uses @code{@@w} with an @code{@@refill} command. 14599 paragraph that uses @code{@@w} with an @code{@@refill} command.
15762 @xref{w, , @code{@@w}}.@refill 14600 @xref{w, , @code{@@w}}.@refill
15763 14601
14602 @need 400
15764 @item @@xref@{@var{node-name}, [@var{entry}], [@var{topic-or-title}], [@var{info-file}], [@var{manual}]@} 14603 @item @@xref@{@var{node-name}, [@var{entry}], [@var{topic-or-title}], [@var{info-file}], [@var{manual}]@}
15765 Make a reference that starts with `See' in a printed manual. Follow 14604 Make a reference that starts with `See' in a printed manual. Follow
15766 command with a punctuation mark. Only the first argument is 14605 command with a punctuation mark. Only the first argument is
15767 mandatory. @xref{xref, , @code{@@xref}}.@refill 14606 mandatory. @xref{xref, , @code{@@xref}}.@refill
15768 @end table 14607 @end table
15769 14608
15770 14609
15771 @node Tips 14610 @node Tips, Sample Texinfo File, Command List, Top
15772 @appendix Tips and Hints 14611 @appendix Tips and Hints
15773 14612
15774 Here are some tips for writing Texinfo documentation:@refill 14613 Here are some tips for writing Texinfo documentation:@refill
15775 14614
15776 @cindex Tips 14615 @cindex Tips
15829 Lisp. 14668 Lisp.
15830 14669
15831 @item 14670 @item
15832 Write the indexing commands that refer to a whole section immediately 14671 Write the indexing commands that refer to a whole section immediately
15833 after the section command, and write the indexing commands that refer to 14672 after the section command, and write the indexing commands that refer to
15834 a paragraph before that paragraph. 14673 the paragraph before the paragraph.
15835 14674
14675 @need 1000
15836 In the example that follows, a blank line comes after the index 14676 In the example that follows, a blank line comes after the index
15837 entry for ``Leaping'': 14677 entry for ``Leaping'':
15838 14678
15839 @example 14679 @example
15840 @group 14680 @group
16208 @code{@@bye}; it is as if the text were within @code{@@ignore} @dots{} 15048 @code{@@bye}; it is as if the text were within @code{@@ignore} @dots{}
16209 @code{@@end ignore}. 15049 @code{@@end ignore}.
16210 @end itemize 15050 @end itemize
16211 15051
16212 15052
16213 @node Sample Texinfo File 15053 @node Sample Texinfo File, Sample Permissions, Tips, Top
16214 @appendix A Sample Texinfo File 15054 @appendix A Sample Texinfo File
16215 @cindex Sample Texinfo file, no comments 15055 @cindex Sample Texinfo file, no comments
16216 15056
16217 Here is a complete, short sample Texinfo file, without any commentary. 15057 Here is a complete, short sample Texinfo file, without any commentary.
16218 You can see this file, with comments, in the first chapter. 15058 You can see this file, with comments, in the first chapter.
16286 @@contents 15126 @@contents
16287 @@bye 15127 @@bye
16288 @end example 15128 @end example
16289 15129
16290 15130
16291 @node Sample Permissions 15131 @node Sample Permissions, Include Files, Sample Texinfo File, Top
16292 @appendix Sample Permissions 15132 @appendix Sample Permissions
16293 @cindex Permissions 15133 @cindex Permissions
16294 @cindex Sample permissions
16295 @cindex Copying permissions 15134 @cindex Copying permissions
16296 15135
16297 Texinfo files should contain sections that tell the readers that they 15136 Texinfo files should contain sections that tell the readers that they
16298 have the right to copy and distribute the Texinfo file, the Info file, 15137 have the right to copy and distribute the Texinfo file, the Info file,
16299 and the printed manual.@refill 15138 and the printed manual.@refill
16300 15139
16301 Also, if you are writing a manual about software, you should explain 15140 Also, if you are writing a manual about software, you should explain
16302 that the software is free and either include the GNU General Public 15141 that the software is free and either include the GNU General Public
16303 License (GPL) or provide a reference to it. @xref{Distrib, , 15142 License (GPL) or provide a reference to it. @xref{Distrib, ,
16304 Distribution, emacs, The GNU Emacs Manual}, for an example of the text 15143 Distribution, xemacs, XEmacs User's Manual}, for an example of the text
16305 that could be used in the software ``Distribution'', ``General Public 15144 that could be used in the software ``Distribution'', ``General Public
16306 License'', and ``NO WARRANTY'' sections of a document. @xref{Copying, 15145 License'', and ``NO WARRANTY'' sections of a document. @xref{Copying,
16307 , Texinfo Copying Conditions}, for an example of a brief explanation 15146 , Texinfo Copying Conditions}, for an example of a brief explanation
16308 of how the copying conditions provide you with rights. @refill 15147 of how the copying conditions provide you with rights. @refill
16309 15148
16313 * Titlepage Permissions:: Sample Titlepage copying permissions. 15152 * Titlepage Permissions:: Sample Titlepage copying permissions.
16314 @end menu 15153 @end menu
16315 15154
16316 @node Inserting Permissions, ifinfo Permissions, Sample Permissions, Sample Permissions 15155 @node Inserting Permissions, ifinfo Permissions, Sample Permissions, Sample Permissions
16317 @ifinfo 15156 @ifinfo
16318 @section Inserting Permissions 15157 @appendixsec Inserting Permissions
16319 @end ifinfo 15158 @end ifinfo
16320 15159
16321 In a Texinfo file, the first @code{@@ifinfo} section usually begins 15160 In a Texinfo file, the first @code{@@ifinfo} section usually begins
16322 with a line that says what the file documents. This is what a person 15161 with a line that says what the file documents. This is what a person
16323 reading the unprocessed Texinfo file or using the advanced Info 15162 reading the unprocessed Texinfo file or using the advanced Info
16347 15186
16348 To make it simple to insert a permission notice into each section of 15187 To make it simple to insert a permission notice into each section of
16349 the Texinfo file, sample permission notices for each section are 15188 the Texinfo file, sample permission notices for each section are
16350 reproduced in full below.@refill 15189 reproduced in full below.@refill
16351 15190
16352 You may need to specify the correct name of a section mentioned in the 15191 Note that you may need to specify the correct name of a section
16353 permission notice. For example, in @cite{The GDB Manual}, the name of 15192 mentioned in the permission notice. For example, in @cite{The GDB
16354 the section referring to the General Public License is called the ``GDB 15193 Manual}, the name of the section referring to the General Public
16355 General Public License'', but in the sample shown below, that section is 15194 License is called the ``GDB General Public License'', but in the
16356 referred to generically as the ``GNU General Public License''. If the 15195 sample shown below, that section is referred to generically as the
16357 Texinfo file does not carry a copy of the General Public License, leave 15196 ``GNU General Public License''. If the Texinfo file does not carry a
16358 out the reference to it, but be sure to include the rest of the 15197 copy of the General Public License, leave out the reference to it, but
16359 sentence. 15198 be sure to include the rest of the sentence.@refill
16360 15199
16361 @node ifinfo Permissions, Titlepage Permissions, Inserting Permissions, Sample Permissions 15200 @node ifinfo Permissions, Titlepage Permissions, Inserting Permissions, Sample Permissions
16362 @comment node-name, next, previous, up 15201 @comment node-name, next, previous, up
16363 @section @samp{ifinfo} Copying Permissions 15202 @appendixsec @samp{ifinfo} Copying Permissions
16364 @cindex @samp{ifinfo} permissions 15203 @cindex @samp{ifinfo} permissions
16365 15204
16366 In the @code{@@ifinfo} section of a Texinfo file, the standard Free 15205 In the @code{@@ifinfo} section of a Texinfo file, the standard Free
16367 Software Foundation permission notice reads as follows:@refill 15206 Software Foundation permission notice reads as follows:@refill
16368 15207
16369 @example 15208 @example
16370 This file documents @dots{} 15209 This file documents @dots{}
16371 15210
16372 Copyright 1999 Free Software Foundation, Inc. 15211 Copyright 1998 Free Software Foundation, Inc.
16373 15212
16374 Permission is granted to make and distribute verbatim 15213 Permission is granted to make and distribute verbatim
16375 copies of this manual provided the copyright notice and 15214 copies of this manual provided the copyright notice and
16376 this permission notice are preserved on all copies. 15215 this permission notice are preserved on all copies.
16377 15216
16399 translation approved by the Free Software Foundation. 15238 translation approved by the Free Software Foundation.
16400 @end example 15239 @end example
16401 15240
16402 @node Titlepage Permissions, , ifinfo Permissions, Sample Permissions 15241 @node Titlepage Permissions, , ifinfo Permissions, Sample Permissions
16403 @comment node-name, next, previous, up 15242 @comment node-name, next, previous, up
16404 @section Titlepage Copying Permissions 15243 @appendixsec Titlepage Copying Permissions
16405 @cindex Titlepage permissions 15244 @cindex Titlepage permissions
16406 15245
16407 In the @code{@@titlepage} section of a Texinfo file, the standard Free 15246 In the @code{@@titlepage} section of a Texinfo file, the standard Free
16408 Software Foundation copying permission notice follows the copyright 15247 Software Foundation copying permission notice follows the copyright
16409 notice and publishing information. The standard phrasing is as 15248 notice and publishing information. The standard phrasing is as
16429 except that this permission notice may be stated in a 15268 except that this permission notice may be stated in a
16430 translation approved by the Free Software Foundation. 15269 translation approved by the Free Software Foundation.
16431 @end example 15270 @end example
16432 15271
16433 15272
16434 @node Include Files 15273 @node Include Files, Headings, Sample Permissions, Top
16435 @appendix Include Files 15274 @appendix Include Files
16436 @cindex Include files 15275 @cindex Include files
16437 15276
16438 When @TeX{} or an Info formatting command sees an @code{@@include} 15277 When @TeX{} or an Info formatting command sees an @code{@@include}
16439 command in a Texinfo file, it processes the contents of the file named 15278 command in a Texinfo file, it processes the contents of the file named
16454 * Include Files Evolution:: How use of the @code{@@include} command 15293 * Include Files Evolution:: How use of the @code{@@include} command
16455 has changed over time. 15294 has changed over time.
16456 @end menu 15295 @end menu
16457 15296
16458 @node Using Include Files, texinfo-multiple-files-update, Include Files, Include Files 15297 @node Using Include Files, texinfo-multiple-files-update, Include Files, Include Files
16459 @section How to Use Include Files 15298 @appendixsec How to Use Include Files
16460 @findex include 15299 @findex include
16461 15300
16462 To include another file within a Texinfo file, write the 15301 To include another file within a Texinfo file, write the
16463 @code{@@include} command at the beginning of a line and follow it on 15302 @code{@@include} command at the beginning of a line and follow it on
16464 the same line by the name of a file to be included. For 15303 the same line by the name of a file to be included. For
16495 `Previous', and `Up' pointers by hand, or you must use the GNU Emacs 15334 `Previous', and `Up' pointers by hand, or you must use the GNU Emacs
16496 Texinfo mode command, @code{texinfo-multiple-files-update}, that is 15335 Texinfo mode command, @code{texinfo-multiple-files-update}, that is
16497 designed for @code{@@include} files.@refill 15336 designed for @code{@@include} files.@refill
16498 15337
16499 @node texinfo-multiple-files-update, Include File Requirements, Using Include Files, Include Files 15338 @node texinfo-multiple-files-update, Include File Requirements, Using Include Files, Include Files
16500 @section @code{texinfo-multiple-files-update} 15339 @appendixsec @code{texinfo-multiple-files-update}
16501 @findex texinfo-multiple-files-update 15340 @findex texinfo-multiple-files-update
16502 15341
16503 GNU Emacs Texinfo mode provides the @code{texinfo-multiple-files-update} 15342 GNU Emacs Texinfo mode provides the @code{texinfo-multiple-files-update}
16504 command. This command creates or updates `Next', `Previous', and `Up' 15343 command. This command creates or updates `Next', `Previous', and `Up'
16505 pointers of included files as well as those in the outer or overall 15344 pointers of included files as well as those in the outer or overall
16571 with a numeric prefix argument, such as @kbd{C-u 8}, the command 15410 with a numeric prefix argument, such as @kbd{C-u 8}, the command
16572 updates @strong{every} pointer and menu in @strong{all} the files and then inserts a 15411 updates @strong{every} pointer and menu in @strong{all} the files and then inserts a
16573 master menu.@refill 15412 master menu.@refill
16574 15413
16575 @node Include File Requirements, Sample Include File, texinfo-multiple-files-update, Include Files 15414 @node Include File Requirements, Sample Include File, texinfo-multiple-files-update, Include Files
16576 @section Include File Requirements 15415 @appendixsec Include File Requirements
16577 @cindex Include file requirements 15416 @cindex Include file requirements
16578 @cindex Requirements for include files 15417 @cindex Requirements for include files
16579 15418
16580 If you plan to use the @code{texinfo-multiple-files-update} command, 15419 If you plan to use the @code{texinfo-multiple-files-update} command,
16581 the outer Texinfo file that lists included files within it should 15420 the outer Texinfo file that lists included files within it should
16597 should @emph{not} contain any nodes besides the single `Top' node. The 15436 should @emph{not} contain any nodes besides the single `Top' node. The
16598 @code{texinfo-multiple-files-update} command will not process 15437 @code{texinfo-multiple-files-update} command will not process
16599 them.@refill 15438 them.@refill
16600 15439
16601 @node Sample Include File, Include Files Evolution, Include File Requirements, Include Files 15440 @node Sample Include File, Include Files Evolution, Include File Requirements, Include Files
16602 @section Sample File with @code{@@include} 15441 @appendixsec Sample File with @code{@@include}
16603 @cindex Sample @code{@@include} file 15442 @cindex Sample @code{@@include} file
16604 @cindex Include file sample 15443 @cindex Include file sample
16605 @cindex @code{@@include} file sample 15444 @cindex @code{@@include} file sample
16606 15445
16607 Here is an example of a complete outer Texinfo file with @code{@@include} files 15446 Here is an example of a complete outer Texinfo file with @code{@@include} files
16627 @end group 15466 @end group
16628 15467
16629 @group 15468 @group
16630 @@page 15469 @@page
16631 @@vskip 0pt plus 1filll 15470 @@vskip 0pt plus 1filll
16632 Copyright @@copyright@{@} 1999 Free Software Foundation, Inc. 15471 Copyright @@copyright@{@} 1998 Free Software Foundation, Inc.
16633 @@end titlepage 15472 @@end titlepage
16634 @end group 15473 @end group
16635 15474
16636 @group 15475 @group
16637 @@ifinfo 15476 @@ifinfo
16668 15507
16669 The full contents of @file{concept-index.texinfo} might be as simple as this: 15508 The full contents of @file{concept-index.texinfo} might be as simple as this:
16670 15509
16671 @example 15510 @example
16672 @group 15511 @group
16673 @@node Concept Index 15512 @@node Concept Index, , Second, Top
16674 @@unnumbered Concept Index 15513 @@unnumbered Concept Index
16675 15514
16676 @@printindex cp 15515 @@printindex cp
16677 @end group 15516 @end group
16678 @end example 15517 @end example
16679 15518
16680 The outer Texinfo source file for @cite{The GNU Emacs Lisp Reference 15519 The outer Texinfo source file for @cite{The XEmacs Lisp Reference
16681 Manual} is named @file{elisp.texi}. This outer file contains a master 15520 Manual} is named @file{elisp.texi}. This outer file contains a master
16682 menu with 417 entries and a list of 41 @code{@@include} 15521 menu with 417 entries and a list of 41 @code{@@include}
16683 files.@refill 15522 files.@refill
16684 15523
16685 @node Include Files Evolution, , Sample Include File, Include Files 15524 @node Include Files Evolution, , Sample Include File, Include Files
16686 @comment node-name, next, previous, up 15525 @comment node-name, next, previous, up
16687 @section Evolution of Include Files 15526 @appendixsec Evolution of Include Files
16688 15527
16689 When Info was first created, it was customary to create many small 15528 When Info was first created, it was customary to create many small
16690 Info files on one subject. Each Info file was formatted from its own 15529 Info files on one subject. Each Info file was formatted from its own
16691 Texinfo source file. This custom meant that Emacs did not need to 15530 Texinfo source file. This custom meant that Emacs did not need to
16692 make a large buffer to hold the whole of a large Info file when 15531 make a large buffer to hold the whole of a large Info file when
16710 15549
16711 However, because large Info files are now split automatically, it is 15550 However, because large Info files are now split automatically, it is
16712 no longer necessary to keep them small.@refill 15551 no longer necessary to keep them small.@refill
16713 15552
16714 Nowadays, multiple Texinfo files are used mostly for large documents, 15553 Nowadays, multiple Texinfo files are used mostly for large documents,
16715 such as @cite{The GNU Emacs Lisp Reference Manual}, and for projects 15554 such as @cite{The XEmacs Lisp Reference Manual}, and for projects
16716 in which several different people write different sections of a 15555 in which several different people write different sections of a
16717 document simultaneously.@refill 15556 document simultaneously.@refill
16718 15557
16719 In addition, the Info formatting commands have been extended to work 15558 In addition, the Info formatting commands have been extended to work
16720 with the @code{@@include} command so as to create a single large Info 15559 with the @code{@@include} command so as to create a single large Info
16721 file that is split into smaller files if necessary. This means that 15560 file that is split into smaller files if necessary. This means that
16722 you can write menus and cross references without naming the different 15561 you can write menus and cross references without naming the different
16723 Texinfo files.@refill 15562 Texinfo files.@refill
16724 15563
16725 15564
16726 @node Headings 15565 @node Headings, Catching Mistakes, Include Files, Top
16727 @appendix Page Headings 15566 @appendix Page Headings
16728 @cindex Headings 15567 @cindex Headings
16729 @cindex Footings 15568 @cindex Footings
16730 @cindex Page numbering 15569 @cindex Page numbering
16731 @cindex Page headings 15570 @cindex Page headings
16780 flushleft; text for the middle part is centered; and, text for the 15619 flushleft; text for the middle part is centered; and, text for the
16781 right part is set flushright.@refill 15620 right part is set flushright.@refill
16782 15621
16783 @node Heading Format, Heading Choice, Headings Introduced, Headings 15622 @node Heading Format, Heading Choice, Headings Introduced, Headings
16784 @comment node-name, next, previous, up 15623 @comment node-name, next, previous, up
16785 @section Standard Heading Formats 15624 @appendixsec Standard Heading Formats
16786 15625
16787 Texinfo provides two standard heading formats, one for manuals printed 15626 Texinfo provides two standard heading formats, one for manuals printed
16788 on one side of each sheet of paper, and the other for manuals printed 15627 on one side of each sheet of paper, and the other for manuals printed
16789 on both sides of the paper. 15628 on both sides of the paper.
16790 15629
16849 and a colon. This makes it easier to keep track of where you are in the 15688 and a colon. This makes it easier to keep track of where you are in the
16850 manual.@refill 15689 manual.@refill
16851 15690
16852 @node Heading Choice, Custom Headings, Heading Format, Headings 15691 @node Heading Choice, Custom Headings, Heading Format, Headings
16853 @comment node-name, next, previous, up 15692 @comment node-name, next, previous, up
16854 @section Specifying the Type of Heading 15693 @appendixsec Specifying the Type of Heading
16855 15694
16856 @TeX{} does not begin to generate page headings for a standard Texinfo 15695 @TeX{} does not begin to generate page headings for a standard Texinfo
16857 file until it reaches the @code{@@end titlepage} command. Thus, the 15696 file until it reaches the @code{@@end titlepage} command. Thus, the
16858 title and copyright pages are not numbered. The @code{@@end 15697 title and copyright pages are not numbered. The @code{@@end
16859 titlepage} command causes @TeX{} to begin to generate page headings 15698 titlepage} command causes @TeX{} to begin to generate page headings
16886 @noindent 15725 @noindent
16887 Texinfo lacks an @code{@@setchapternewpage even} command.@refill 15726 Texinfo lacks an @code{@@setchapternewpage even} command.@refill
16888 15727
16889 @node Custom Headings, , Heading Choice, Headings 15728 @node Custom Headings, , Heading Choice, Headings
16890 @comment node-name, next, previous, up 15729 @comment node-name, next, previous, up
16891 @section How to Make Your Own Headings 15730 @appendixsec How to Make Your Own Headings
16892 15731
16893 You can use the standard headings provided with Texinfo or specify 15732 You can use the standard headings provided with Texinfo or specify
16894 your own. By default, Texinfo has no footers, so if you specify them, 15733 your own. By default, Texinfo has no footers, so if you specify them,
16895 the available page size for the main text will be slightly reduced. 15734 the available page size for the main text will be slightly reduced.
16896 15735
15736 @c Following paragraph is verbose to prevent overfull hboxes.
16897 Texinfo provides six commands for specifying headings and 15737 Texinfo provides six commands for specifying headings and
16898 footings: 15738 footings. The @code{@@everyheading} command and
16899 @itemize @bullet 15739 @code{@@everyfooting} command generate page headers and footers
16900 @item 15740 that are the same for both even- and odd-numbered pages.
16901 @code{@@everyheading} @code{@@everyfooting} generate page headers and 15741 The @code{@@evenheading} command and @code{@@evenfooting}
16902 footers that are the same for both even- and odd-numbered pages. 15742 command generate headers and footers for even-numbered
16903 @item 15743 (left-hand) pages; and the @code{@@oddheading} command and
16904 @code{@@evenheading} and @code{@@evenfooting} command generate headers 15744 @code{@@oddfooting} command generate headers and footers for
16905 and footers for even-numbered (left-hand) pages. 15745 odd-numbered (right-hand) pages.@refill
16906 @item
16907 @code{@@oddheading} and @code{@@oddfooting} generate headers and footers
16908 for odd-numbered (right-hand) pages.
16909 @end itemize
16910 15746
16911 Write custom heading specifications in the Texinfo file immediately 15747 Write custom heading specifications in the Texinfo file immediately
16912 after the @code{@@end titlepage} command. Enclose your specifications 15748 after the @code{@@end titlepage} command. Enclose your specifications
16913 between @code{@@iftex} and @code{@@end iftex} commands since the 15749 between @code{@@iftex} and @code{@@end iftex} commands since the
16914 @code{texinfo-format-buffer} command may not recognize them. Also, 15750 @code{texinfo-format-buffer} command may not recognize them. Also,
17036 15872
17037 Beware of overlong titles: they may overlap another part of the 15873 Beware of overlong titles: they may overlap another part of the
17038 header or footer and blot it out.@refill 15874 header or footer and blot it out.@refill
17039 15875
17040 15876
17041 @node Catching Mistakes 15877 @node Catching Mistakes, Refilling Paragraphs, Headings, Top
17042 @appendix Formatting Mistakes 15878 @appendix Formatting Mistakes
17043 @cindex Structure, catching mistakes in 15879 @cindex Structure, catching mistakes in
17044 @cindex Nodes, catching mistakes 15880 @cindex Nodes, catching mistakes
17045 @cindex Catching mistakes 15881 @cindex Catching mistakes
17046 @cindex Correcting mistakes 15882 @cindex Correcting mistakes
17092 cannot use @code{makeinfo}, or your problem is very puzzling, then you 15928 cannot use @code{makeinfo}, or your problem is very puzzling, then you
17093 may want to use the tools described in this appendix.@refill 15929 may want to use the tools described in this appendix.@refill
17094 15930
17095 @node Debugging with Info, Debugging with TeX, makeinfo Preferred, Catching Mistakes 15931 @node Debugging with Info, Debugging with TeX, makeinfo Preferred, Catching Mistakes
17096 @comment node-name, next, previous, up 15932 @comment node-name, next, previous, up
17097 @section Catching Errors with Info Formatting 15933 @appendixsec Catching Errors with Info Formatting
17098 @cindex Catching errors with Info formatting 15934 @cindex Catching errors with Info formatting
17099 @cindex Debugging with Info formatting 15935 @cindex Debugging with Info formatting
17100 15936
17101 After you have written part of a Texinfo file, you can use the 15937 After you have written part of a Texinfo file, you can use the
17102 @code{texinfo-format-region} or the @code{makeinfo-region} command to 15938 @code{texinfo-format-region} or the @code{makeinfo-region} command to
17273 @code{texinfo-format-xref} and @code{texinfo-format-parse-args}. 16109 @code{texinfo-format-xref} and @code{texinfo-format-parse-args}.
17274 Inside the function @code{texinfo-format-parse-args}, the function 16110 Inside the function @code{texinfo-format-parse-args}, the function
17275 @code{re-search-forward} was called; it was this function that could 16111 @code{re-search-forward} was called; it was this function that could
17276 not find the missing right-hand brace.@refill 16112 not find the missing right-hand brace.@refill
17277 16113
17278 @xref{Lisp Debug, , Debugging Emacs Lisp, emacs, The GNU Emacs 16114 @xref{Lisp Debug, , Debugging Emacs Lisp, xemacs, XEmacs User's Manual},
17279 Manual}, for more information.@refill 16115 for more information.@refill
17280 @end ignore 16116 @end ignore
17281 16117
17282 @node Debugging with TeX, Using texinfo-show-structure, Debugging with Info, Catching Mistakes 16118 @node Debugging with TeX, Using texinfo-show-structure, Debugging with Info, Catching Mistakes
17283 @comment node-name, next, previous, up 16119 @comment node-name, next, previous, up
17284 @section Catching Errors with @TeX{} Formatting 16120 @appendixsec Catching Errors with @TeX{} Formatting
17285 @cindex Catching errors with @TeX{} formatting 16121 @cindex Catching errors with @TeX{} formatting
17286 @cindex Debugging with @TeX{} formatting 16122 @cindex Debugging with @TeX{} formatting
17287 16123
17288 You can also catch mistakes when you format a file with @TeX{}.@refill 16124 You can also catch mistakes when you format a file with @TeX{}.@refill
17289 16125
17361 @item 16197 @item
17362 You can tell @TeX{} to stop this run by typing @kbd{x @key{RET}} 16198 You can tell @TeX{} to stop this run by typing @kbd{x @key{RET}}
17363 at the @samp{?} prompt.@refill 16199 at the @samp{?} prompt.@refill
17364 @end enumerate 16200 @end enumerate
17365 16201
17366 If you are running @TeX{} inside Emacs, you need to switch to the shell 16202 Please note that if you are running @TeX{} inside Emacs, you need to
17367 buffer and line at which @TeX{} offers the @samp{?} prompt. 16203 switch to the shell buffer and line at which @TeX{} offers the @samp{?}
16204 prompt.@refill
17368 16205
17369 Sometimes @TeX{} will format a file without producing error messages even 16206 Sometimes @TeX{} will format a file without producing error messages even
17370 though there is a problem. This usually occurs if a command is not ended 16207 though there is a problem. This usually occurs if a command is not ended
17371 but @TeX{} is able to continue processing anyhow. For example, if you fail 16208 but @TeX{} is able to continue processing anyhow. For example, if you fail
17372 to end an itemized list with the @code{@@end itemize} command, @TeX{} will 16209 to end an itemized list with the @code{@@end itemize} command, @TeX{} will
17408 instead of @samp{@@}; and in this circumstance, you are working 16245 instead of @samp{@@}; and in this circumstance, you are working
17409 directly with @TeX{}, not with Texinfo.)@refill 16246 directly with @TeX{}, not with Texinfo.)@refill
17410 16247
17411 @node Using texinfo-show-structure, Using occur, Debugging with TeX, Catching Mistakes 16248 @node Using texinfo-show-structure, Using occur, Debugging with TeX, Catching Mistakes
17412 @comment node-name, next, previous, up 16249 @comment node-name, next, previous, up
17413 @section Using @code{texinfo-show-structure} 16250 @appendixsec Using @code{texinfo-show-structure}
17414 @cindex Showing the structure of a file 16251 @cindex Showing the structure of a file
17415 @findex texinfo-show-structure 16252 @findex texinfo-show-structure
17416 16253
17417 It is not always easy to keep track of the nodes, chapters, sections, and 16254 It is not always easy to keep track of the nodes, chapters, sections, and
17418 subsections of a Texinfo file. This is especially true if you are revising 16255 subsections of a Texinfo file. This is especially true if you are revising
17452 with the @code{@@section}, @code{@@subheading}, and @code{@@subsection} 16289 with the @code{@@section}, @code{@@subheading}, and @code{@@subsection}
17453 commands respectively. If you move your cursor into the @samp{*Occur*} 16290 commands respectively. If you move your cursor into the @samp{*Occur*}
17454 window, you can position the cursor over one of the lines and use the 16291 window, you can position the cursor over one of the lines and use the
17455 @kbd{C-c C-c} command (@code{occur-mode-goto-occurrence}), to jump to 16292 @kbd{C-c C-c} command (@code{occur-mode-goto-occurrence}), to jump to
17456 the corresponding spot in the Texinfo file. @xref{Other Repeating 16293 the corresponding spot in the Texinfo file. @xref{Other Repeating
17457 Search, , Using Occur, emacs, The GNU Emacs Manual}, for more 16294 Search, , Using Occur, xemacs, XEmacs User's Manual}, for more
17458 information about @code{occur-mode-goto-occurrence}.@refill 16295 information about @code{occur-mode-goto-occurrence}.@refill
17459 16296
17460 The first line in the @samp{*Occur*} window describes the @dfn{regular 16297 The first line in the @samp{*Occur*} window describes the @dfn{regular
17461 expression} specified by @var{texinfo-heading-pattern}. This regular 16298 expression} specified by @var{texinfo-heading-pattern}. This regular
17462 expression is the pattern that @code{texinfo-show-structure} looks for. 16299 expression is the pattern that @code{texinfo-show-structure} looks for.
17463 @xref{Regexps, , Using Regular Expressions, emacs, The GNU Emacs Manual}, 16300 @xref{Regexps, , Using Regular Expressions, xemacs, XEmacs User's Manual},
17464 for more information.@refill 16301 for more information.@refill
17465 16302
17466 When you invoke the @code{texinfo-show-structure} command, Emacs will 16303 When you invoke the @code{texinfo-show-structure} command, Emacs will
17467 display the structure of the whole buffer. If you want to see the 16304 display the structure of the whole buffer. If you want to see the
17468 structure of just a part of the buffer, of one chapter, for example, 16305 structure of just a part of the buffer, of one chapter, for example,
17469 use the @kbd{C-x n n} (@code{narrow-to-region}) command to mark the 16306 use the @kbd{C-x n n} (@code{narrow-to-region}) command to mark the
17470 region. (@xref{Narrowing, , , emacs, The GNU Emacs Manual}.) This is 16307 region. (@xref{Narrowing, , , xemacs, XEmacs User's Manual}.) This is
17471 how the example used above was generated. (To see the whole buffer 16308 how the example used above was generated. (To see the whole buffer
17472 again, use @kbd{C-x n w} (@code{widen}).)@refill 16309 again, use @kbd{C-x n w} (@code{widen}).)@refill
17473 16310
17474 If you call @code{texinfo-show-structure} with a prefix argument by 16311 If you call @code{texinfo-show-structure} with a prefix argument by
17475 typing @w{@kbd{C-u C-c C-s}}, it will list lines beginning with 16312 typing @w{@kbd{C-u C-c C-s}}, it will list lines beginning with
17480 the list in the @samp{*Occur*} window; and if you have mis-named a node 16317 the list in the @samp{*Occur*} window; and if you have mis-named a node
17481 or left out a section, you can correct the mistake.@refill 16318 or left out a section, you can correct the mistake.@refill
17482 16319
17483 @node Using occur, Running Info-Validate, Using texinfo-show-structure, Catching Mistakes 16320 @node Using occur, Running Info-Validate, Using texinfo-show-structure, Catching Mistakes
17484 @comment node-name, next, previous, up 16321 @comment node-name, next, previous, up
17485 @section Using @code{occur} 16322 @appendixsec Using @code{occur}
17486 @cindex Occurrences, listing with @code{@@occur} 16323 @cindex Occurrences, listing with @code{@@occur}
17487 @findex occur 16324 @findex occur
17488 16325
17489 Sometimes the @code{texinfo-show-structure} command produces too much 16326 Sometimes the @code{texinfo-show-structure} command produces too much
17490 information. Perhaps you want to remind yourself of the overall structure 16327 information. Perhaps you want to remind yourself of the overall structure
17497 @end example 16334 @end example
17498 16335
17499 @noindent 16336 @noindent
17500 and then, when prompted, type a @dfn{regexp}, a regular expression for 16337 and then, when prompted, type a @dfn{regexp}, a regular expression for
17501 the pattern you want to match. (@xref{Regexps, , Regular Expressions, 16338 the pattern you want to match. (@xref{Regexps, , Regular Expressions,
17502 emacs, The GNU Emacs Manual}.) The @code{occur} command works from 16339 xemacs, XEmacs User's Manual}.) The @code{occur} command works from the
17503 the current location of the cursor in the buffer to the end of the 16340 current location of the cursor in the buffer to the end of the buffer.
17504 buffer. If you want to run @code{occur} on the whole buffer, place 16341 If you want to run @code{occur} on the whole buffer, place the cursor at
17505 the cursor at the beginning of the buffer.@refill 16342 the beginning of the buffer.@refill
17506 16343
17507 For example, to see all the lines that contain the word 16344 For example, to see all the lines that contain the word
17508 @samp{@@chapter} in them, just type @samp{@@chapter}. This will 16345 @samp{@@chapter} in them, just type @samp{@@chapter}. This will
17509 produce a list of the chapters. It will also list all the sentences 16346 produce a list of the chapters. It will also list all the sentences
17510 with @samp{@@chapter} in the middle of the line.@refill 16347 with @samp{@@chapter} in the middle of the line.@refill
17515 or phrase, end the last word with a @samp{$}; for example, 16352 or phrase, end the last word with a @samp{$}; for example,
17516 @samp{catching mistakes$}. This can be helpful when you want to see 16353 @samp{catching mistakes$}. This can be helpful when you want to see
17517 all the nodes that are part of the same chapter or section and 16354 all the nodes that are part of the same chapter or section and
17518 therefore have the same `Up' pointer.@refill 16355 therefore have the same `Up' pointer.@refill
17519 16356
17520 @xref{Other Repeating Search, , Using Occur, emacs , The GNU Emacs Manual}, 16357 @xref{Other Repeating Search, , Using Occur, xemacs, XEmacs User's Manual},
17521 for more information.@refill 16358 for more information.@refill
17522 16359
17523 @node Running Info-Validate, , Using occur, Catching Mistakes 16360 @node Running Info-Validate, , Using occur, Catching Mistakes
17524 @comment node-name, next, previous, up 16361 @comment node-name, next, previous, up
17525 @section Finding Badly Referenced Nodes 16362 @appendixsec Finding Badly Referenced Nodes
17526 @findex Info-validate 16363 @findex Info-validate
17527 @cindex Nodes, checking for badly referenced 16364 @cindex Nodes, checking for badly referenced
17528 @cindex Checking for badly referenced nodes 16365 @cindex Checking for badly referenced nodes
17529 @cindex Looking for badly referenced nodes 16366 @cindex Looking for badly referenced nodes
17530 @cindex Finding badly referenced nodes 16367 @cindex Finding badly referenced nodes
17549 * Tagifying:: How to tagify a file. 16386 * Tagifying:: How to tagify a file.
17550 * Splitting:: How to split a file manually. 16387 * Splitting:: How to split a file manually.
17551 @end menu 16388 @end menu
17552 16389
17553 @node Using Info-validate, Unsplit, Running Info-Validate, Running Info-Validate 16390 @node Using Info-validate, Unsplit, Running Info-Validate, Running Info-Validate
17554 @subsection Running @code{Info-validate} 16391 @appendixsubsec Running @code{Info-validate}
17555 @cindex Running @code{Info-validate} 16392 @cindex Running @code{Info-validate}
17556 @cindex Info validating a large file 16393 @cindex Info validating a large file
17557 @cindex Validating a large file 16394 @cindex Validating a large file
17558 16395
17559 To use @code{Info-validate}, visit the Info file you wish to check and 16396 To use @code{Info-validate}, visit the Info file you wish to check and
17562 @example 16399 @example
17563 M-x Info-validate 16400 M-x Info-validate
17564 @end example 16401 @end example
17565 16402
17566 @noindent 16403 @noindent
17567 Note that the @code{Info-validate} command requires an upper case 16404 (Note that the @code{Info-validate} command requires an upper case
17568 `I'. You may also need to create a tag table before running 16405 `I'. You may also need to create a tag table before running
17569 @code{Info-validate}. @xref{Tagifying}. 16406 @code{Info-validate}. @xref{Tagifying}.)@refill
17570 16407
17571 If your file is valid, you will receive a message that says ``File appears 16408 If your file is valid, you will receive a message that says ``File appears
17572 valid''. However, if you have a pointer that does not point to a node, 16409 valid''. However, if you have a pointer that does not point to a node,
17573 error messages will be displayed in a buffer called @samp{*problems in 16410 error messages will be displayed in a buffer called @samp{*problems in
17574 info file*}.@refill 16411 info file*}.@refill
17598 `Previous' (in the node where the `Next' points) which points back.@refill 16435 `Previous' (in the node where the `Next' points) which points back.@refill
17599 16436
17600 @code{Info-validate} also checks that all menu entries and cross references 16437 @code{Info-validate} also checks that all menu entries and cross references
17601 point to actual nodes.@refill 16438 point to actual nodes.@refill
17602 16439
17603 @code{Info-validate} requires a tag table and does not work with files 16440 Note that @code{Info-validate} requires a tag table and does not work
17604 that have been split. (The @code{texinfo-format-buffer} command 16441 with files that have been split. (The @code{texinfo-format-buffer}
17605 automatically splits large files.) In order to use @code{Info-validate} 16442 command automatically splits large files.) In order to use
17606 on a large file, you must run @code{texinfo-format-buffer} with an 16443 @code{Info-validate} on a large file, you must run
17607 argument so that it does not split the Info file; and you must create a 16444 @code{texinfo-format-buffer} with an argument so that it does not split
17608 tag table for the unsplit file. 16445 the Info file; and you must create a tag table for the unsplit
16446 file.@refill
17609 16447
17610 @node Unsplit, Tagifying, Using Info-validate, Running Info-Validate 16448 @node Unsplit, Tagifying, Using Info-validate, Running Info-Validate
17611 @comment node-name, next, previous, up 16449 @comment node-name, next, previous, up
17612 @subsection Creating an Unsplit File 16450 @appendixsubsec Creating an Unsplit File
17613 @cindex Creating an unsplit file 16451 @cindex Creating an unsplit file
17614 @cindex Unsplit file creation 16452 @cindex Unsplit file creation
17615 16453
17616 You can run @code{Info-validate} only on a single Info file that has a 16454 You can run @code{Info-validate} only on a single Info file that has a
17617 tag table. The command will not work on the indirect subfiles that 16455 tag table. The command will not work on the indirect subfiles that
17644 a tag table for it. @refill 16482 a tag table for it. @refill
17645 @cindex Making a tag table manually 16483 @cindex Making a tag table manually
17646 @cindex Tag table, making manually 16484 @cindex Tag table, making manually
17647 16485
17648 @node Tagifying, Splitting, Unsplit, Running Info-Validate 16486 @node Tagifying, Splitting, Unsplit, Running Info-Validate
17649 @subsection Tagifying a File 16487 @appendixsubsec Tagifying a File
17650 16488
17651 After creating an unsplit Info file, you must create a tag table for 16489 After creating an unsplit Info file, you must create a tag table for
17652 it. Visit the Info file you wish to tagify and type:@refill 16490 it. Visit the Info file you wish to tagify and type:@refill
17653 16491
17654 @example 16492 @example
17682 tag table and split the file automatically, or you can make the tag 16520 tag table and split the file automatically, or you can make the tag
17683 table and split the file manually.@refill 16521 table and split the file manually.@refill
17684 16522
17685 @node Splitting, , Tagifying, Running Info-Validate 16523 @node Splitting, , Tagifying, Running Info-Validate
17686 @comment node-name, next, previous, up 16524 @comment node-name, next, previous, up
17687 @subsection Splitting a File Manually 16525 @appendixsubsec Splitting a File Manually
17688 @cindex Splitting an Info file manually 16526 @cindex Splitting an Info file manually
17689 @cindex Info file, splitting manually 16527 @cindex Info file, splitting manually
17690 16528
17691 You should split a large file or else let the 16529 You should split a large file or else let the
17692 @code{texinfo-format-buffer} or @code{makeinfo-buffer} command do it 16530 @code{texinfo-format-buffer} or @code{makeinfo-buffer} command do it
17693 for you automatically. (Generally you will let one of the formatting 16531 for you automatically. (Generally you will let one of the formatting
17694 commands do this job for you. @xref{Creating an Info File}.)@refill 16532 commands do this job for you. @xref{Create an Info File}.)@refill
17695 16533
17696 The split-off files are called the indirect subfiles.@refill 16534 The split-off files are called the indirect subfiles.@refill
17697 16535
17698 Info files are split to save memory. With smaller files, Emacs does not 16536 Info files are split to save memory. With smaller files, Emacs does not
17699 have make such a large buffer to hold the information.@refill 16537 have make such a large buffer to hold the information.@refill
17732 16570
17733 The primary file still functions as an Info file, but it contains just 16571 The primary file still functions as an Info file, but it contains just
17734 the tag table and a directory of subfiles.@refill 16572 the tag table and a directory of subfiles.@refill
17735 16573
17736 16574
17737 @node Refilling Paragraphs 16575 @node Refilling Paragraphs, Command Syntax, Catching Mistakes, Top
17738 @appendix Refilling Paragraphs 16576 @appendix Refilling Paragraphs
17739 @cindex Refilling paragraphs 16577 @cindex Refilling paragraphs
17740 @cindex Filling paragraphs 16578 @cindex Filling paragraphs
17741 @cindex Paragraphs, filling
17742 @findex refill 16579 @findex refill
17743 16580
17744 The @code{@@refill} command refills and, optionally, indents the first 16581 The @code{@@refill} command refills and, optionally, indents the first
17745 line of a paragraph.@footnote{Perhaps the command should have been 16582 line of a paragraph.@footnote{Perhaps the command should have been
17746 called the @code{@@refillandindent} command, but @code{@@refill} is 16583 called the @code{@@refillandindent} command, but @code{@@refill} is
17772 paragraph that should be filled. They do not append @code{@@refill} to 16609 paragraph that should be filled. They do not append @code{@@refill} to
17773 the ends of paragraphs that contain @code{@@*} or @w{@code{@@w@{ @dots{}@}}} 16610 the ends of paragraphs that contain @code{@@*} or @w{@code{@@w@{ @dots{}@}}}
17774 and therefore do not refill or indent them.@refill 16611 and therefore do not refill or indent them.@refill
17775 16612
17776 16613
17777 @node Command Syntax 16614 @node Command Syntax, Obtaining TeX, Refilling Paragraphs, Top
16615 @comment node-name, next, previous, up
17778 @appendix @@-Command Syntax 16616 @appendix @@-Command Syntax
17779 @cindex @@-command syntax 16617 @cindex @@-command syntax
17780 @cindex Syntax, of @@-commands
17781 @cindex Command syntax
17782 16618
17783 The character @samp{@@} is used to start special Texinfo commands. 16619 The character @samp{@@} is used to start special Texinfo commands.
17784 (It has the same meaning that @samp{\} has in plain @TeX{}.) Texinfo 16620 (It has the same meaning that @samp{\} has in plain @TeX{}.) Texinfo
17785 has four types of @@-command:@refill 16621 has four types of @@-command:@refill
17786 16622
17837 does @emph{not} require braces. @code{@@refill} never confuses the 16673 does @emph{not} require braces. @code{@@refill} never confuses the
17838 Emacs paragraph commands because it cannot appear at the beginning of 16674 Emacs paragraph commands because it cannot appear at the beginning of
17839 a line.@refill 16675 a line.@refill
17840 16676
17841 16677
17842 @node Obtaining TeX 16678 @node Obtaining TeX, Command and Variable Index, Command Syntax, Top
17843 @appendix How to Obtain @TeX{} 16679 @appendix How to Obtain @TeX{}
17844 @cindex Obtaining @TeX{} 16680 @cindex Obtaining @TeX{}
17845 @cindex @TeX{}, how to obtain 16681 @cindex @TeX{}, how to obtain
17846 16682
17847 @c !!! Here is information about obtaining TeX. Update it whenever. 16683 @c !!! Here is information about obtaining TeX. Update it whenever.
17860 @uref{ftp://tug.org/tex/unixtex.ftp} 16696 @uref{ftp://tug.org/tex/unixtex.ftp}
17861 @uref{http://tug.org/unixtex.ftp} 16697 @uref{http://tug.org/unixtex.ftp}
17862 @end example 16698 @end example
17863 16699
17864 The Free Software Foundation provides a core distribution on its Source 16700 The Free Software Foundation provides a core distribution on its Source
17865 Code CD-ROM suitable for printing Texinfo manuals. To order it, contact: 16701 Code CD-ROM suitable for printing Texinfo manuals; the University of
17866 16702 Washington maintains and supports a tape distribution; the @TeX{} Users
16703 Group co-sponsors a complete CD-ROM @TeX{} distribution.
16704
16705 @itemize @bullet
16706
16707 @item
16708 For the FSF Source Code CD-ROM, please contact:
16709
16710 @iftex
17867 @display 16711 @display
17868 @group 16712 @group
17869 Free Software Foundation, Inc. 16713 Free Software Foundation, Inc.
17870 59 Temple Place Suite 330 16714 59 Temple Place Suite 330
17871 Boston, MA @ @ 02111-1307 16715 Boston, MA @ @ 02111-1307
17876 @w{ } @w{ } @w{ } 0031-13-2473 (KDD) 16720 @w{ } @w{ } @w{ } 0031-13-2473 (KDD)
17877 @w{ } @w{ } @w{ } 0066-3382-0158 (IDC) 16721 @w{ } @w{ } @w{ } 0066-3382-0158 (IDC)
17878 Electronic mail: @code{gnu@@gnu.org} 16722 Electronic mail: @code{gnu@@gnu.org}
17879 @end group 16723 @end group
17880 @end display 16724 @end display
16725 @end iftex
16726 @ifinfo
16727 @display
16728 @group
16729 Free Software Foundation, Inc.
16730 59 Temple Place Suite 330
16731 Boston, MA @w{ } 02111-1307
16732 USA
16733
16734 Telephone: @w{+1-617-542-5942}
16735 Fax: (including Japan) @w{+1-617-542-2652}
16736 Free Dial Fax (in Japan):
16737 @w{ } @w{ } @w{ } 0031-13-2473 (KDD)
16738 @w{ } @w{ } @w{ } 0066-3382-0158 (IDC)
16739 Electronic mail: @code{gnu@@gnu.org}
16740 @end group
16741 @end display
16742 @end ifinfo
16743
16744 @item
16745 To order a complete distribution on CD-ROM, please see
16746 @uref{http://tug.org/tex-live.html}. (This distribution is also
16747 available by FTP; see the URL's above.)
16748
16749 @item
16750 To order a full distribution from the University of Washington on either
16751 a 1/4@dmn{in} 4-track QIC-24 cartridge or a 4@dmn{mm} DAT cartridge,
16752 send $210 to:
16753
16754 @display
16755 @group
16756 Pierre A. MacKay
16757 Denny Hall, Mail Stop DH-10
16758 University of Washington
16759 Seattle, WA @w{ } 98195
16760 USA
16761 Telephone: +1-206-543-2268
16762 Electronic mail: @code{mackay@@cs.washington.edu}
16763 @end group
16764 @end display
16765
16766 @noindent
16767 Please make checks payable to the University of Washington.
16768 Checks must be in U.S.@: dollars, drawn on a U.S.@: bank. Overseas
16769 sites: please add to the base cost, if desired, $20.00 for shipment via
16770 air parcel post, or $30.00 for shipment via courier.
16771
16772 @end itemize
17881 16773
17882 Many other @TeX{} distributions are available; see 16774 Many other @TeX{} distributions are available; see
17883 @uref{http://tug.org/}. 16775 @uref{http://tug.org/}.
17884 16776
17885 16777
17886 @c These are no longer ``new'', and the explanations 16778 @c These are no longer ``new'', and the explanations
17887 @c are all given elsewhere anyway, I think. --karl, 25apr97. 16779 @c are all given elsewhere anyway, I think. --karl, 25apr97.
17888 @c So ignore the entire appendix. 16780 @ignore (the entire appendix)
17889 @ignore
17890 @c node New Features, Command and Variable Index, Obtaining TeX, Top 16781 @c node New Features, Command and Variable Index, Obtaining TeX, Top
17891 @c appendix Second Edition Features 16782 @c appendix Second Edition Features
17892 16783
17893 @tex 16784 @tex
17894 % Widen the space for the first column so three control-character 16785 % Widen the space for the first column so three control-character
17902 @@-commands. This edition is more than twice the length of the first 16793 @@-commands. This edition is more than twice the length of the first
17903 edition.@refill 16794 edition.@refill
17904 16795
17905 Here is a brief description of the new commands.@refill 16796 Here is a brief description of the new commands.@refill
17906 16797
17907 @c menu 16798 @menu
17908 * New Texinfo Mode Commands:: The updating commands are especially useful. 16799 * New Texinfo Mode Commands:: The updating commands are especially useful.
17909 * New Commands:: Many newly described @@-commands. 16800 * New Commands:: Many newly described @@-commands.
17910 @c end menu 16801 @end menu
17911 16802
17912 @c node New Texinfo Mode Commands, New Commands, Obtaining TeX, Obtaining TeX 16803 @c node New Texinfo Mode Commands, New Commands, Obtaining TeX, Obtaining TeX
17913 @c appendixsec New Texinfo Mode Commands 16804 @c appendixsec New Texinfo Mode Commands
17914 16805
17915 Texinfo mode provides commands and features especially designed for 16806 Texinfo mode provides commands and features especially designed for
18093 16984
18094 @item M-x texinfo-sequential-node-update 16985 @item M-x texinfo-sequential-node-update
18095 Insert node pointers in strict sequence. 16986 Insert node pointers in strict sequence.
18096 @end table 16987 @end table
18097 16988
18098 @c no.de New Commands, , New Texinfo Mode Commands, Obtaining TeX 16989 @c node New Commands, , New Texinfo Mode Commands, Obtaining TeX
18099 @c appendix.sec New Texinfo @@-Commands 16990 @c appendixsec New Texinfo @@-Commands
18100 16991
18101 The second edition of the Texinfo manual describes more than 50 16992 The second edition of the Texinfo manual describes more than 50
18102 commands that were not described in the first edition. A third or so 16993 commands that were not described in the first edition. A third or so
18103 of these commands existed in Texinfo but were not documented in the 16994 of these commands existed in Texinfo but were not documented in the
18104 manual; the others are new. Here is a listing, with brief 16995 manual; the others are new. Here is a listing, with brief
18309 see @ref{Customized Highlighting},@* 17200 see @ref{Customized Highlighting},@*
18310 see @ref{Overfull hboxes},@* 17201 see @ref{Overfull hboxes},@*
18311 see @ref{Footnotes},@* 17202 see @ref{Footnotes},@*
18312 see @ref{dmn, , Format a Dimension},@* 17203 see @ref{dmn, , Format a Dimension},@*
18313 see @ref{Raise/lower sections, , @code{@@raisesections} and @code{@@lowersections}},@* 17204 see @ref{Raise/lower sections, , @code{@@raisesections} and @code{@@lowersections}},@*
18314 see @ref{math, , @code{@@math}: Inserting Mathematical Expressions}.@* 17205 see @ref{math, , @code{@@math} - Inserting Mathematical Expressions}.@*
18315 see @ref{minus, , Inserting a Minus Sign},@* 17206 see @ref{minus, , Inserting a Minus Sign},@*
18316 see @ref{paragraphindent, , Paragraph Indenting},@* 17207 see @ref{paragraphindent, , Paragraph Indenting},@*
18317 see @ref{Cross Reference Commands},@* 17208 see @ref{Cross Reference Commands},@*
18318 see @ref{title subtitle author, , @code{@@title} @code{@@subtitle} and @code{@@author}}, and@* 17209 see @ref{title subtitle author, , @code{@@title} @code{@@subtitle} and @code{@@author}}, and@*
18319 see @ref{Custom Headings, , How to Make Your Own Headings}. 17210 see @ref{Custom Headings, , How to Make Your Own Headings}.
18371 % Switch width of first column of tables back to default value 17262 % Switch width of first column of tables back to default value
18372 \global\tableindent=.8in 17263 \global\tableindent=.8in
18373 @end tex 17264 @end tex
18374 @end ignore 17265 @end ignore
18375 17266
18376 17267 @node Command and Variable Index, Concept Index, Obtaining TeX, Top
18377 @node Command and Variable Index 17268 @comment node-name, next, previous, up
18378 @unnumbered Command and Variable Index 17269 @unnumbered Command and Variable Index
18379 17270
18380 This is an alphabetical list of all the @@-commands, assorted Emacs Lisp 17271 This is an alphabetical list of all the @@-commands, assorted Emacs Lisp
18381 functions, and several variables. To make the list easier to use, the 17272 functions, and several variables. To make the list easier to use, the
18382 commands are listed without their preceding @samp{@@}.@refill 17273 commands are listed without their preceding @samp{@@}.@refill
18383 17274
18384 @printindex fn 17275 @printindex fn
18385 17276
18386 17277
18387 @node Concept Index 17278 @node Concept Index, , Command and Variable Index, Top
18388 @unnumbered Concept Index 17279 @unnumbered Concept Index
18389 17280
18390 @printindex cp 17281 @printindex cp
18391 17282
18392 17283
17284 @summarycontents
17285 @contents
18393 @bye 17286 @bye