Mercurial > hg > xemacs-beta
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 |