home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / texinfo-3.7-bin.lha / info / texinfo.info-1 (.txt) < prev    next >
GNU Info File  |  1996-10-12  |  51KB  |  882 lines

  1. This is Info file texinfo.info, produced by Makeinfo-1.64 from the
  2. input file /ade-src/fsf/texinfo/texinfo.texi.
  3.   This file documents Texinfo, a documentation system that uses a single
  4. source file to produce both on-line information and a printed manual.
  5.   Copyright (C) 1988, 1990, 1991, 1992, 1993, 1995 Free Software
  6. Foundation, Inc.
  7.   This is the second edition of the Texinfo documentation,
  8. and is consistent with version 2 of `texinfo.tex'.
  9.   Permission is granted to make and distribute verbatim copies of this
  10. manual provided the copyright notice and this permission notice are
  11. preserved on all copies.
  12.   Permission is granted to copy and distribute modified versions of this
  13. manual under the conditions for verbatim copying, provided that the
  14. entire resulting derived work is distributed under the terms of a
  15. permission notice identical to this one.
  16.   Permission is granted to copy and distribute translations of this
  17. manual into another language, under the above conditions for modified
  18. versions, except that this permission notice may be stated in a
  19. translation approved by the Free Software Foundation.
  20. File: texinfo.info,  Node: Top,  Next: Copying,  Prev: (dir),  Up: (dir)
  21. Texinfo
  22. *******
  23.   Texinfo is a documentation system that uses a single source file to
  24. produce both on-line information and printed output.
  25.   The first part of this master menu lists the major nodes in this Info
  26. document, including the @-command and concept indices.  The rest of the
  27. menu lists all the lower level nodes in the document.
  28.   This is Edition 2.21 of the Texinfo documentation, 7 June 1995, for
  29. Texinfo Version Three.
  30. * Menu:
  31. * Copying::                     Your rights.
  32. * Overview::                    Texinfo in brief.
  33. * Texinfo Mode::                How to use Texinfo mode.
  34. * Beginning a File::            What is at the beginning of a Texinfo file?
  35. * Ending a File::               What is at the end of a Texinfo file?
  36. * Structuring::                 How to create chapters, sections, subsections,
  37.                                   appendices, and other parts.
  38. * Nodes::                       How to write nodes.
  39. * Menus::                       How to write menus.
  40. * Cross References::            How to write cross references.
  41. * Marking Text::                How to mark words and phrases as code,
  42.                                   keyboard input, meta-syntactic
  43.                                   variables, and the like.
  44. * Quotations and Examples::     How to write quotations, examples, etc.
  45. * Lists and Tables::            How to write lists and tables.
  46. * Indices::                     How to create indices.
  47. * Insertions::                  How to insert @-signs, braces, etc.
  48. * Glyphs::                      How to indicate results of evaluation,
  49.                                   expansion of macros, errors, etc.
  50. * Breaks::                      How to force and prevent line and page breaks.
  51. * Definition Commands::         How to describe functions and the like
  52.                                   in a uniform manner.
  53. * Footnotes::                   How to write footnotes.
  54. * Conditionals::                How to specify text for either TeX or Info.
  55. * Format/Print Hardcopy::       How to convert a Texinfo file to a file
  56.                                   for printing and how to print that file.
  57. * Create an Info File::         Convert a Texinfo file into an Info file.
  58. * Install an Info File::        Make an Info file accessible to users.
  59. * Command List::                All the Texinfo @-commands.
  60. * Tips::                        Hints on how to write a Texinfo document.
  61. * Sample Texinfo File::         A sample Texinfo file to look at.
  62. * Sample Permissions::          Tell readers they have the right to copy
  63.                                   and distribute.
  64. * Include Files::               How to incorporate other Texinfo files.
  65. * Headings::                    How to write page headings and footings.
  66. * Catching Mistakes::           How to find formatting mistakes.
  67. * Refilling Paragraphs::        All about paragraph refilling.
  68. * Command Syntax::              A description of @-Command syntax.
  69. * Obtaining TeX::               How to Obtain TeX.
  70. * New Features::                Texinfo second edition features.
  71. * Command and Variable Index::  A menu containing commands and variables.
  72. * Concept Index::               A menu covering many topics.
  73.  -- The Detailed Node Listing --
  74. Overview of Texinfo
  75. * Using Texinfo::               Create a conventional printed book
  76.                                   or an Info file.
  77. * Info Files::                  What is an Info file?
  78. * Printed Books::               Characteristics of a printed book or manual.
  79. * Formatting Commands::         @-commands are used for formatting.
  80. * Conventions::                 General rules for writing a Texinfo file.
  81. * Comments::                    How to write comments and mark regions that
  82.                                   the formatting commands will ignore.
  83. * Minimum::                     What a Texinfo file must have.
  84. * Six Parts::                   Usually, a Texinfo file has six parts.
  85. * Short Sample::                A short sample Texinfo file.
  86. * Acknowledgements::
  87. Using Texinfo Mode
  88. * Texinfo Mode Overview::       How Texinfo mode can help you.
  89. * Emacs Editing::               Texinfo mode adds to GNU Emacs' general
  90.                                   purpose editing features.
  91. * Inserting::                   How to insert frequently used @-commands.
  92. * Showing the Structure::       How to show the structure of a file.
  93. * Updating Nodes and Menus::    How to update or create new nodes and menus.
  94. * Info Formatting::             How to format for Info.
  95. * Printing::                    How to format and print part or all of a file.
  96. * Texinfo Mode Summary::        Summary of all the Texinfo mode commands.
  97. Updating Nodes and Menus
  98. * Updating Commands::           Five major updating commands.
  99. * Updating Requirements::       How to structure a Texinfo file for
  100.                                   using the updating command.
  101. * Other Updating Commands::     How to indent descriptions, insert
  102.                                   missing nodes lines, and update
  103.                                   nodes in sequence.
  104. Beginning a Texinfo File
  105. * Four Parts::                  Four parts begin a Texinfo file.
  106. * Sample Beginning::            Here is a sample beginning for a Texinfo file.
  107. * Header::                      The very beginning of a Texinfo file.
  108. * Info Summary and Permissions::  Summary and copying permissions for Info.
  109. * Titlepage & Copyright Page::  Creating the title and copyright pages.
  110. * The Top Node::                Creating the `Top' node and master menu.
  111. * Software Copying Permissions::  Ensure that you and others continue to
  112.                                   have the right to use and share software.
  113. The Texinfo File Header
  114. * First Line::                  The first line of a Texinfo file.
  115. * Start of Header::             Formatting a region requires this.
  116. * setfilename::                 Tell Info the name of the Info file.
  117. * settitle::                    Create a title for the printed work.
  118. * setchapternewpage::           Start chapters on right-hand pages.
  119. * paragraphindent::             An option to specify paragraph indentation.
  120. * End of Header::               Formatting a region requires this.
  121. The Title and Copyright Pages
  122. * titlepage::                   Create a title for the printed document.
  123. * titlefont center sp::         The `@titlefont', `@center',
  124.                                   and `@sp' commands.
  125. * title subtitle author::       The `@title', `@subtitle',
  126.                                   and `@author' commands.
  127. * Copyright & Permissions::     How to write the copyright notice and
  128.                                   include copying permissions.
  129. * end titlepage::               Turn on page headings after the title and
  130.                                   copyright pages.
  131. * headings on off::             An option for turning headings on and off
  132.                                   and double or single sided printing.
  133. The `Top' Node and Master Menu
  134. * Title of Top Node::           Sketch what the file is about.
  135. * Master Menu Parts::           A master menu has three or more parts.
  136. Ending a Texinfo File
  137. * Printing Indices & Menus::    How to print an index in hardcopy and
  138.                                   generate index menus in Info.
  139. * Contents::                    How to create a table of contents.
  140. * File End::                    How to mark the end of a file.
  141. Chapter Structuring
  142. * Tree Structuring::            A manual is like an upside down tree ...
  143. * Structuring Command Types::   How to divide a manual into parts.
  144. * makeinfo top::                The `@top' command, part of the `Top' node.
  145. * chapter::
  146. * unnumbered & appendix::
  147. * majorheading & chapheading::
  148. * section::
  149. * unnumberedsec appendixsec heading::
  150. * subsection::
  151. * unnumberedsubsec appendixsubsec subheading::
  152. * subsubsection::               Commands for the lowest level sections.
  153. * Raise/lower sections::        How to change commands' hierarchical level.
  154. Nodes
  155. * Two Paths::                   Different commands to structure
  156.                                   Info output and printed output.
  157. * Node Menu Illustration::      A diagram, and sample nodes and menus.
  158. * node::                        How to write a node, in detail.
  159. * makeinfo Pointer Creation::   How to create node pointers with `makeinfo'.
  160. The `@node' Command
  161. * Node Names::                  How to choose node and pointer names.
  162. * Writing a Node::              How to write an `@node' line.
  163. * Node Line Tips::              Keep names short.
  164. * Node Line Requirements::      Keep names unique, without @-commands.
  165. * First Node::                  How to write a `Top' node.
  166. * makeinfo top command::        How to use the `@top' command.
  167. * Top Node Summary::            Write a brief description for readers.
  168. Menus
  169. * Menu Location::               Put a menu in a short node.
  170. * Writing a Menu::              What is a menu?
  171. * Menu Parts::                  A menu entry has three parts.
  172. * Less Cluttered Menu Entry::   Two part menu entry.
  173. * Menu Example::                Two and three part menu entries.
  174. * Other Info Files::            How to refer to a different Info file.
  175. Cross References
  176. * References::                  What cross references are for.
  177. * Cross Reference Commands::    A summary of the different commands.
  178. * Cross Reference Parts::       A cross reference has several parts.
  179. * xref::                        Begin a reference with `See' ...
  180. * Top Node Naming::             How to refer to the beginning of another file.
  181. * ref::                         A reference for the last part of a sentence.
  182. * pxref::                       How to write a parenthetical cross reference.
  183. * inforef::                     How to refer to an Info-only file.
  184. `@xref'
  185. * Reference Syntax::            What a reference looks like and requires.
  186. * One Argument::                `@xref' with one argument.
  187. * Two Arguments::               `@xref' with two arguments.
  188. * Three Arguments::             `@xref' with three arguments.
  189. * Four and Five Arguments::     `@xref' with four and five arguments.
  190. Marking Words and Phrases
  191. * Indicating::                  How to indicate definitions, files, etc.
  192. * Emphasis::                    How to emphasize text.
  193. Indicating Definitions, Commands, etc.
  194. * Useful Highlighting::         Highlighting provides useful information.
  195. * code::                        How to indicate code.
  196. * kbd::                         How to show keyboard input.
  197. * key::                         How to specify keys.
  198. * samp::                        How to show a literal sequence of characters.
  199. * var::                         How to indicate a metasyntactic variable.
  200. * file::                        How to indicate the name of a file.
  201. * dfn::                         How to specify a definition.
  202. * cite::                        How to refer to a book that is not in Info.
  203. Emphasizing Text
  204. * emph & strong::               How to emphasize text in Texinfo.
  205. * Smallcaps::                   How to use the small caps font.
  206. * Fonts::                       Various font commands for printed output.
  207. * Customized Highlighting::     How to define highlighting commands.
  208. Quotations and Examples
  209. * Block Enclosing Commands::    Use different constructs for
  210.                                   different purposes.
  211. * quotation::                   How to write a quotation.
  212. * example::                     How to write an example in a fixed-width font.
  213. * noindent::                    How to prevent paragraph indentation.
  214. * Lisp Example::                How to illustrate Lisp code.
  215. * smallexample & smalllisp::    Forms for the `@smallbook' option.
  216. * display::                     How to write an example in the current font.
  217. * format::                      How to write an example that does not narrow
  218.                                   the margins.
  219. * exdent::                      How to undo the indentation of a line.
  220. * flushleft & flushright::      How to push text flushleft or flushright.
  221. * cartouche::                   How to draw cartouches around examples.
  222. Making Lists and Tables
  223. * Introducing Lists::           Texinfo formats lists for you.
  224. * itemize::                     How to construct a simple list.
  225. * enumerate::                   How to construct a numbered list.
  226. * Two-column Tables::           How to construct a two-column table.
  227. Making a Two-column Table
  228. * table::                       How to construct a two-column table.
  229. * ftable vtable::               How to construct a two-column table
  230.                                   with automatic indexing.
  231. * itemx::                       How to put more entries in the first column.
  232. Creating Indices
  233. * Index Entries::               Choose different words for index entries.
  234. * Predefined Indices::          Use different indices for different kinds
  235.                                   of entry.
  236. * Indexing Commands::           How to make an index entry.
  237. * Combining Indices::           How to combine indices.
  238. * New Indices::                 How to define your own indices.
  239. Combining Indices
  240. * syncodeindex::                How to merge two indices, using `@code'
  241.                                   font for the merged-from index.
  242. * synindex::                    How to merge two indices, using the
  243.                                   default font of the merged-to index.
  244. Special Insertions
  245. * Braces Atsigns Periods::      How to insert braces, `@' and periods.
  246. * dmn::                         How to format a dimension.
  247. * Dots Bullets::                How to insert dots and bullets.
  248. * TeX and copyright::           How to insert the TeX logo
  249.                                   and the copyright symbol.
  250. * minus::                       How to insert a minus sign.
  251. * math::                        How to format a mathematical expression.
  252. Inserting `@', Braces, and Periods
  253. * Inserting An Atsign::
  254. * Inserting Braces::            How to insert `{' and `}'
  255. * Controlling Spacing::         How to insert the right amount of space
  256.                                   after punctuation within a sentence.
  257. Inserting Ellipsis, Dots, and Bullets
  258. * dots::                        How to insert dots ...
  259. * bullet::                      How to insert a bullet.
  260. Inserting TeX and the Copyright Symbol
  261. * tex::                         How to insert the TeX logo.
  262. * copyright symbol::            How to use `@copyright'{}.
  263. Glyphs for Examples
  264. * Glyphs Summary::
  265. * result::                      How to show the result of expression.
  266. * expansion::                   How to indicate an expansion.
  267. * Print Glyph::                 How to indicate printed output.
  268. * Error Glyph::                 How to indicate an error message.
  269. * Equivalence::                 How to indicate equivalence.
  270. * Point Glyph::                 How to indicate the location of point.
  271. Making and Preventing Breaks
  272. * Break Commands::              Cause and prevent splits.
  273. * Line Breaks::                 How to force a single line to use two lines.
  274. * w::                           How to prevent unwanted line breaks.
  275. * sp::                          How to insert blank lines.
  276. * page::                        How to force the start of a new page.
  277. * group::                       How to prevent unwanted page breaks.
  278. * need::                        Another way to prevent unwanted page breaks.
  279. Definition Commands
  280. * Def Cmd Template::            How to structure a description using a
  281.                                   definition command.
  282. * Optional Arguments::          How to handle optional and repeated arguments.
  283. * deffnx::                      How to group two or more `first' lines.
  284. * Def Cmds in Detail::          All the definition commands.
  285. * Def Cmd Conventions::         Conventions for writing definitions.
  286. * Sample Function Definition::
  287. The Definition Commands
  288. * Functions Commands::          Commands for functions and similar entities.
  289. * Variables Commands::          Commands for variables and similar entities.
  290. * Typed Functions::             Commands for functions in typed languages.
  291. * Typed Variables::             Commands for variables in typed languages.
  292. * Abstract Objects::            Commands for object-oriented programming.
  293. * Data Types::                  The definition command for data types.
  294. Footnotes
  295. * Footnote Commands::           How to write a footnote in Texinfo.
  296. * Footnote Styles::             Controlling how footnotes appear in Info.
  297. Conditionally Visible Text
  298. * Conditional Commands::        How to specify text for Info or TeX.
  299. * Using Ordinary TeX Commands::  You can use any and all TeX commands.
  300. * set clear value::             How to designate which text to format (for
  301.                                   both Info and TeX); and how to set a
  302.                                   flag to a string that you can insert.
  303. `@set', `@clear', and `@value'
  304. * ifset ifclear::               Format a region if a flag is set.
  305. * value::                       Replace a flag with a string.
  306. * value Example::               An easy way to update edition information.
  307. Format and Print Hardcopy
  308. * Use TeX::                     Use TeX to format for hardcopy.
  309. * Format with tex/texindex::    How to format in a shell.
  310. * Format with texi2dvi::        A simpler way to use the shell.
  311. * Print with lpr::              How to print.
  312. * Within Emacs::                How to format and print from an Emacs shell.
  313. * Texinfo Mode Printing::       How to format and print in Texinfo mode.
  314. * Compile-Command::             How to print using Emacs's compile command.
  315. * Requirements Summary::        TeX formatting requirements summary.
  316. * Preparing for TeX::           What you need to do to use TeX.
  317. * Overfull hboxes::             What are and what to do with overfull hboxes.
  318. * smallbook::                   How to print small format books and manuals.
  319. * A4 Paper::                    How to print on European A4 paper.
  320. * Cropmarks and Magnification::  How to print marks to indicate the size
  321.                                 of pages and how to print scaled up output.
  322. Creating an Info File
  323. * makeinfo advantages::         `makeinfo' provides better error checking.
  324. * Invoking makeinfo::           How to run `makeinfo' from a shell.
  325. * makeinfo options::            Specify fill-column and other options.
  326. * Pointer Validation::          How to check that pointers point somewhere.
  327. * makeinfo in Emacs::           How to run `makeinfo' from Emacs.
  328. * texinfo-format commands::     Two Info formatting commands written
  329.                                   in Emacs Lisp are an alternative
  330.                                   to `makeinfo'.
  331. * Batch Formatting::            How to format for Info in Emacs Batch mode.
  332. * Tag and Split Files::         How tagged and split files help Info
  333.                                   to run better.
  334. Installing an Info File
  335. * Directory file::              The top level menu for all Info files.
  336. * New Info File::               Listing a new info file.
  337. * Other Info Directories::      How to specify Info files that are
  338.                                   located in other directories.
  339. Sample Permissions
  340. * Inserting Permissions::       How to put permissions in your document.
  341. * ifinfo Permissions::          Sample `ifinfo' copying permissions.
  342. * Titlepage Permissions::       Sample Titlepage copying permissions.
  343. Include Files
  344. * Using Include Files::         How to use the `@include' command.
  345. * texinfo-multiple-files-update::  How to create and update nodes and
  346.                                   menus when using included files.
  347. * Include File Requirements::   What `texinfo-multiple-files-update' expects.
  348. * Sample Include File::         A sample outer file with included files
  349.                                   within it; and a sample included file.
  350. * Include Files Evolution::     How use of the `@include' command
  351.                                   has changed over time.
  352. Page Headings
  353. * Headings Introduced::         Conventions for using page headings.
  354. * Heading Format::              Standard page heading formats.
  355. * Heading Choice::              How to specify the type of page heading.
  356. * Custom Headings::             How to create your own headings and footings.
  357. Formatting Mistakes
  358. * makeinfo preferred::          `makeinfo' finds errors.
  359. * Debugging with Info::         How to catch errors with Info formatting.
  360. * Debugging with TeX::          How to catch errors with TeX formatting.
  361. * Using texinfo-show-structure::  How to use `texinfo-show-structure'.
  362. * Using occur::                 How to list all lines containing a pattern.
  363. * Running Info-Validate::       How to find badly referenced nodes.
  364. Finding Badly Referenced Nodes
  365. * Using Info-validate::         How to run `Info-validate'.
  366. * Unsplit::                     How to create an unsplit file.
  367. * Tagifying::                   How to tagify a file.
  368. * Splitting::                   How to split a file manually.
  369. Second Edition Features
  370. * New Texinfo Mode Commands::   The updating commands are especially useful.
  371. * New Commands::                Many newly described @-commands.
  372. File: texinfo.info,  Node: Copying,  Next: Overview,  Prev: Top,  Up: Top
  373. Texinfo Copying Conditions
  374. **************************
  375.   The programs currently being distributed that relate to Texinfo
  376. include portions of GNU Emacs, plus other separate programs (including
  377. `makeinfo', `info', `texindex', and `texinfo.tex').  These programs are
  378. "free"; this means that everyone is free to use them and free to
  379. redistribute them on a free basis.  The Texinfo-related programs are
  380. not in the public domain; they are copyrighted and there are
  381. restrictions on their distribution, but these restrictions are designed
  382. to permit everything that a good cooperating citizen would want to do.
  383. What is not allowed is to try to prevent others from further sharing
  384. any version of these programs that they might get from you.
  385.   Specifically, we want to make sure that you have the right to give
  386. away copies of the programs that relate to Texinfo, that you receive
  387. source code or else can get it if you want it, that you can change these
  388. programs or use pieces of them in new free programs, and that you know
  389. you can do these things.
  390.   To make sure that everyone has such rights, we have to forbid you to
  391. deprive anyone else of these rights.  For example, if you distribute
  392. copies of the Texinfo related programs, you must give the recipients all
  393. the rights that you have.  You must make sure that they, too, receive or
  394. can get the source code.  And you must tell them their rights.
  395.   Also, for our own protection, we must make certain that everyone finds
  396. out that there is no warranty for the programs that relate to Texinfo.
  397. If these programs are modified by someone else and passed on, we want
  398. their recipients to know that what they have is not what we distributed,
  399. so that any problems introduced by others will not reflect on our
  400. reputation.
  401.   The precise conditions of the licenses for the programs currently
  402. being distributed that relate to Texinfo are found in the General Public
  403. Licenses that accompany them.
  404. File: texinfo.info,  Node: Overview,  Next: Texinfo Mode,  Prev: Copying,  Up: Top
  405. Overview of Texinfo
  406. *******************
  407.   "Texinfo"(1) (*note Overview-Footnotes::) is a documentation system
  408. that uses a single source file to produce both on-line information and
  409. printed output.  This means that instead of writing two different
  410. documents, one for the on-line help or other on-line information and
  411. the other for a typeset manual or other printed work, you need write
  412. only one document.  When the work is revised, you need revise only one
  413. document.  (You can read the on-line information, known as an "Info
  414. file", with an Info documentation-reading program.)
  415. * Menu:
  416. * Using Texinfo::               Create a conventional printed book
  417.                                   or an Info file.
  418. * Info Files::                  What is an Info file?
  419. * Printed Books::               Characteristics of a printed book or manual.
  420. * Formatting Commands::         @-commands are used for formatting.
  421. * Conventions::                 General rules for writing a Texinfo file.
  422. * Comments::                    How to write comments and mark regions that
  423.                                   the formatting commands will ignore.
  424. * Minimum::                     What a Texinfo file must have.
  425. * Six Parts::                   Usually, a Texinfo file has six parts.
  426. * Short Sample::                A short sample Texinfo file.
  427. * Acknowledgements::
  428. File: texinfo.info,  Node: Overview-Footnotes,  Up: Overview
  429.   (1)  Note that the first syllable of "Texinfo" is pronounced like
  430. "speck", not "hex".  This odd pronunciation is derived from, but is not
  431. the same as, the pronunciation of TeX.  In the word TeX, the `X' is
  432. actually the Greek letter "chi" rather than the English letter "ex".
  433. Pronounce TeX as if the `X' were the last sound in the name `Bach'; but
  434. pronounce Texinfo as if the `x' were a `k'.  Spell "Texinfo" with a
  435. capital "T" and write the other letters in lower case.
  436. File: texinfo.info,  Node: Using Texinfo,  Next: Info Files,  Prev: Overview,  Up: Overview
  437. Using Texinfo
  438. =============
  439.   Using Texinfo, you can create a printed document with the normal
  440. features of a book, including chapters, sections, cross references, and
  441. indices.  From the same Texinfo source file, you can create a
  442. menu-driven, on-line Info file with nodes, menus, cross references, and
  443. indices.  You can, if you wish, make the chapters and sections of the
  444. printed document correspond to the nodes of the on-line information;
  445. and you use the same cross references and indices for both the Info
  446. file and the printed work.  `The GNU Emacs Manual' is a good example of
  447. a Texinfo file, as is this manual.
  448.   To make a printed document, you process a Texinfo source file with the
  449. TeX typesetting program.  This creates a DVI file that you can typeset
  450. and print as a book or report.  (Note that the Texinfo language is
  451. completely different from TeX's usual language, PlainTeX, which Texinfo
  452. replaces.)  If you do not have TeX, but do have `troff' or `nroff', you
  453. can use the `texi2roff' program instead.
  454.   To make an Info file, you process a Texinfo source file with the
  455. `makeinfo' utility or Emacs's `texinfo-format-buffer' command; this
  456. creates an Info file that you can install on-line.
  457.   TeX and `texi2roff' work with many types of printer; similarly, Info
  458. works with almost every type of computer terminal.  This power makes
  459. Texinfo a general purpose system, but brings with it a constraint,
  460. which is that a Texinfo file may contain only the customary
  461. "typewriter" characters (letters, numbers, spaces, and punctuation
  462. marks) but no special graphics.
  463.   A Texinfo file is a plain ASCII file containing text and "@-commands"
  464. (words preceded by an `@') that tell the typesetting and formatting
  465. programs what to do.  You may edit a Texinfo file with any text editor;
  466. but it is especially convenient to use GNU Emacs since that editor has
  467. a special mode, called Texinfo mode, that provides various
  468. Texinfo-related features.  (*Note Texinfo Mode::.)
  469.   Before writing a Texinfo source file, you should become familiar with
  470. the Info documentation reading program and learn about nodes, menus,
  471. cross references, and the rest.  (*note info: (info)Top, for more
  472. information.)
  473.   You can use Texinfo to create both on-line help and printed manuals;
  474. moreover, Texinfo is freely redistributable.  For these reasons, Texinfo
  475. is the format in which documentation for GNU utilities and libraries is
  476. written.
  477. File: texinfo.info,  Node: Info Files,  Next: Printed Books,  Prev: Using Texinfo,  Up: Overview
  478. Info files
  479. ==========
  480.   An Info file is a Texinfo file formatted so that the Info
  481. documentation reading program can operate on it.  (`makeinfo' and
  482. `texinfo-format-buffer' are two commands that convert a Texinfo file
  483. into an Info file.)
  484.   Info files are divided into pieces called "nodes", each of which
  485. contains the discussion of one topic.  Each node has a name, and
  486. contains both text for the user to read and pointers to other nodes,
  487. which are identified by their names.  The Info program displays one node
  488. at a time, and provides commands with which the user can move to other
  489. related nodes.
  490.   *note info: (info)Top, for more information about using Info.
  491.   Each node of an Info file may have any number of child nodes that
  492. describe subtopics of the node's topic.  The names of child nodes are
  493. listed in a "menu" within the parent node; this allows you to use
  494. certain Info commands to move to one of the child nodes.  Generally, an
  495. Info file is organized like a book.  If a node is at the logical level
  496. of a chapter, its child nodes are at the level of sections; likewise,
  497. the child nodes of sections are at the level of subsections.
  498.   All the children of any one parent are linked together in a
  499. bidirectional chain of `Next' and `Previous' pointers.  The `Next'
  500. pointer provides a link to the next section, and the `Previous' pointer
  501. provides a link to the previous section.  This means that all the nodes
  502. that are at the level of sections within a chapter are linked together.
  503. Normally the order in this chain is the same as the order of the
  504. children in the parent's menu.  Each child node records the parent node
  505. name as its `Up' pointer.  The last child has no `Next' pointer, and the
  506. first child has the parent both as its `Previous' and as its `Up'
  507. pointer.(1) (*note Info Files-Footnotes::)
  508.   The book-like structuring of an Info file into nodes that correspond
  509. to chapters, sections, and the like is a matter of convention, not a
  510. requirement.  The `Up', `Previous', and `Next' pointers of a node can
  511. point to any other nodes, and a menu can contain any other nodes.
  512. Thus, the node structure can be any directed graph.  But it is usually
  513. more comprehensible to follow a structure that corresponds to the
  514. structure of chapters and sections in a printed book or report.
  515.   In addition to menus and to `Next', `Previous', and `Up' pointers,
  516. Info provides pointers of another kind, called references, that can be
  517. sprinkled throughout the text.  This is usually the best way to
  518. represent links that do not fit a hierarchical structure.
  519.   Usually, you will design a document so that its nodes match the
  520. structure of chapters and sections in the printed output.  But there
  521. are times when this is not right for the material being discussed.
  522. Therefore, Texinfo uses separate commands to specify the node structure
  523. for the Info file and the section structure for the printed output.
  524.   Generally, you enter an Info file through a node that by convention is
  525. called `Top'.  This node normally contains just a brief summary of the
  526. file's purpose, and a large menu through which the rest of the file is
  527. reached.  From this node, you can either traverse the file
  528. systematically by going from node to node, or you can go to a specific
  529. node listed in the main menu, or you can search the index menus and
  530. then go directly to the node that has the information you want.
  531.   If you want to read through an Info file in sequence, as if it were a
  532. printed manual, you can get the whole file with the advanced Info
  533. command `g* RET'.  (*note Advanced Info commands: (info)Expert.)
  534.   The `dir' file in the `info' directory serves as the departure point
  535. for the whole Info system.  From it, you can reach the `Top' nodes of
  536. each of the documents in a complete Info system.
  537. File: texinfo.info,  Node: Info Files-Footnotes,  Up: Info Files
  538.   (1)  In some documents, the first child has no `Previous' pointer.
  539. Occasionally, the last child has the node name of the next following
  540. higher level node as its `Next' pointer.
  541. File: texinfo.info,  Node: Printed Books,  Next: Formatting Commands,  Prev: Info Files,  Up: Overview
  542. Printed Books
  543. =============
  544.   A Texinfo file can be formatted and typeset as a printed book or
  545. manual.  To do this, you need TeX, a powerful, sophisticated typesetting
  546. program written by Donald Knuth.(1) (*note Printed Books-Footnotes::)
  547.   A Texinfo-based book is similar to any other typeset, printed work: it
  548. can have a title page, copyright page, table of contents, and preface,
  549. as well as chapters, numbered or unnumbered sections and subsections,
  550. page headers, cross references, footnotes, and indices.
  551.   You can use Texinfo to write a book without ever having the intention
  552. of converting it into on-line information.  You can use Texinfo for
  553. writing a printed novel, and even to write a printed memo, although
  554. this latter application is not recommended since electronic mail is so
  555. much easier.
  556.   TeX is a general purpose typesetting program.  Texinfo provides a
  557. file called `texinfo.tex' that contains information (definitions or
  558. "macros") that TeX uses when it typesets a Texinfo file.
  559. (`texinfo.tex' tells TeX how to convert the Texinfo @-commands to TeX
  560. commands, which TeX can then process to create the typeset document.)
  561. `texinfo.tex' contains the specifications for printing a document.
  562.   Most often, documents are printed on 8.5 inch by 11 inch pages (216mm
  563. by 280mm; this is the default size), but you can also print for 7 inch
  564. by 9.25 inch pages (178mm by 235mm; the `@smallbook' size) or on
  565. European A4 size paper (`@afourpaper').  (*Note Printing "Small" Books:
  566. smallbook.  Also, see *Note Printing on A4 Paper: A4 Paper.)
  567.   By changing the parameters in `texinfo.tex', you can change the size
  568. of the printed document.  In addition, you can change the style in
  569. which the printed document is formatted; for example, you can change the
  570. sizes and fonts used, the amount of indentation for each paragraph, the
  571. degree to which words are hyphenated, and the like.  By changing the
  572. specifications, you can make a book look dignified, old and serious, or
  573. light-hearted, young and cheery.
  574.   TeX is freely distributable.  It is written in a dialect of Pascal
  575. called WEB and can be compiled either in Pascal or (by using a
  576. conversion program that comes with the TeX distribution) in C.  (*Note
  577. TeX Mode: (emacs)TeX Mode, for information about TeX.)
  578.   TeX is very powerful and has a great many features.  Because a
  579. Texinfo file must be able to present information both on a
  580. character-only terminal in Info form and in a typeset book, the
  581. formatting commands that Texinfo supports are necessarily limited.
  582.   *Note How to Obtain TeX: Obtaining TeX.
  583. File: texinfo.info,  Node: Printed Books-Footnotes,  Up: Printed Books
  584.   (1)  You can also use the `texi2roff' program if you do not have TeX;
  585. since Texinfo is designed for use with TeX, `texi2roff' is not
  586. described here.  `texi2roff' is part of the standard GNU distribution.
  587. File: texinfo.info,  Node: Formatting Commands,  Next: Conventions,  Prev: Printed Books,  Up: Overview
  588. @-commands
  589. ==========
  590.   In a Texinfo file, the commands that tell TeX how to typeset the
  591. printed manual and tell `makeinfo' and `texinfo-format-buffer' how to
  592. create an Info file are preceded by `@'; they are called "@-commands".
  593. For example, `@node' is the command to indicate a node and `@chapter'
  594. is the command to indicate the start of a chapter.
  595.      *Please note:* All the @-commands, with the exception of the
  596.      `@TeX{}' command, must be written entirely in lower case.
  597.   The Texinfo @-commands are a strictly limited set of constructs.  The
  598. strict limits make it possible for Texinfo files to be understood both
  599. by TeX and by the code that converts them into Info files.  You can
  600. display Info files on any terminal that displays alphabetic and numeric
  601. characters.  Similarly, you can print the output generated by TeX on a
  602. wide variety of printers.
  603.   Depending on what they do or what arguments(1) (*note Formatting
  604. Commands-Footnotes::) they take, you need to write @-commands on lines
  605. of their own or as part of sentences:
  606.    * Write a command such as `@noindent' at the beginning of a line as
  607.      the only text on the line.  (`@noindent' prevents the beginning of
  608.      the next line from being indented as the beginning of a paragraph.)
  609.    * Write a command such as `@chapter' at the beginning of a line
  610.      followed by the command's arguments, in this case the chapter
  611.      title, on the rest of the line.  (`@chapter' creates chapter
  612.      titles.)
  613.    * Write a command such as `@dots{}' wherever you wish but usually
  614.      within a sentence. (`@dots{}' creates dots ...)
  615.    * Write a command such as `@code{SAMPLE-CODE}' wherever you wish
  616.      (but usually within a sentence) with its argument, SAMPLE-CODE in
  617.      this example, between the braces.  (`@code' marks text as being
  618.      code.)
  619.    * Write a command such as `@example' at the beginning of a line of
  620.      its own; write the body-text on following lines; and write the
  621.      matching `@end' command, `@end example' in this case, at the
  622.      beginning of a line of its own after the body-text. (`@example'
  623.      ... `@end example' indents and typesets body-text as an example.)
  624. As a general rule, a command requires braces if it mingles among other
  625. text; but it does not need braces if it starts a line of its own.  The
  626. non-alphabetic commands, such as `@:', are exceptions to the rule; they
  627. do not need braces.
  628.   As you gain experience with Texinfo, you will rapidly learn how to
  629. write the different commands: the different ways to write commands make
  630. it easier to write and read Texinfo files than if all commands followed
  631. exactly the same syntax.  (For details about @-command syntax, see
  632. *Note @-Command Syntax: Command Syntax.)
  633. File: texinfo.info,  Node: Formatting Commands-Footnotes,  Up: Formatting Commands
  634.   (1)  The word "argument" comes from the way it is used in mathematics
  635. and does not refer to a disputation between two people; it refers to the
  636. information presented to the command.  According to the `Oxford English
  637. Dictionary', the word derives from the Latin for "to make clear,
  638. prove"; thus it came to mean `the evidence offered as proof', which is
  639. to say, `the information offered', which led to its mathematical
  640. meaning.  In its other thread of derivation, the word came to mean `to
  641. assert in a manner against which others may make counter assertions',
  642. which led to the meaning of `argument' as a disputation.
  643. File: texinfo.info,  Node: Conventions,  Next: Comments,  Prev: Formatting Commands,  Up: Overview
  644. General Syntactic Conventions
  645. =============================
  646.   All ASCII printing characters except `@', `{' and `}' can appear in a
  647. Texinfo file and stand for themselves.  `@' is the escape character
  648. which introduces commands.  `{' and `}' should be used only to surround
  649. arguments to certain commands.  To put one of these special characters
  650. into the document, put an `@' character in front of it, like this:
  651. `@@', `@{', and `@}'.
  652.   It is customary in TeX to use doubled single-quote characters to
  653. begin and end quotations: ` ` and ' ' (but without a space between the
  654. two single-quote characters).  This convention should be followed in
  655. Texinfo files.  TeX converts doubled single-quote characters to left-
  656. and right-hand doubled quotation marks and Info converts doubled
  657. single-quote characters to ASCII double-quotes: ` ` and ' ' to " .
  658.   Use three hyphens in a row, `---', for a dash--like this.  In TeX, a
  659. single or even a double hyphen produces a printed dash that is shorter
  660. than the usual typeset dash. Info reduces three hyphens to two for
  661. display on the screen.
  662.   To prevent a paragraph from being indented in the printed manual, put
  663. the command `@noindent' on a line by itself before the paragraph.
  664.   If you mark off a region of the Texinfo file with the `@iftex' and
  665. `@end iftex' commands, that region will appear only in the printed
  666. copy; in that region, you can use certain commands borrowed from
  667. PlainTeX that you cannot use in Info.  Likewise, if you mark off a
  668. region with the `@ifinfo' and `@end ifinfo' commands, that region will
  669. appear only in the Info file; in that region, you can use Info commands
  670. that you cannot use in TeX.  (*Note Conditionals::.)
  671.      *Caution:* Do not use tabs in a Texinfo file!  TeX uses
  672.      variable-width fonts, which means that it cannot predefine a tab
  673.      to work in all circumstances.  Consequently, TeX treats tabs like
  674.      single spaces, and that is not what they look like.
  675.      To avoid this problem, Texinfo mode causes GNU Emacs to insert
  676.      multiple spaces when you press the TAB key.
  677.      Also, you can run `untabify' in Emacs to convert tabs in a region
  678.      to multiple spaces.
  679. File: texinfo.info,  Node: Comments,  Next: Minimum,  Prev: Conventions,  Up: Overview
  680. Comments
  681. ========
  682.   You can write comments in a Texinfo file that will not appear in
  683. either the Info file or the printed manual by using the `@comment'
  684. command (which may be abbreviated to `@c').  Such comments are for the
  685. person who reads the Texinfo file.  All the text on a line that follows
  686. either `@comment' or `@c' is a comment; the rest of the line does not
  687. appear in either the Info file or the printed manual. (Often, you can
  688. write the `@comment' or `@c' in the middle of a line, and only the text
  689. that follows after the `@comment' or `@c' command does not appear; but
  690. some commands, such as `@settitle' and `@setfilename', work on a whole
  691. line.  You cannot use `@comment' or `@c' in a line beginning with such
  692. a command.)
  693.   You can write long stretches of text that will not appear in either
  694. the Info file or the printed manual by using the `@ignore' and `@end
  695. ignore' commands.  Write each of these commands on a line of its own,
  696. starting each command at the beginning of the line.  Text between these
  697. two commands does not appear in the processed output.  You can use
  698. `@ignore' and `@end ignore' for writing comments.  Often, `@ignore' and
  699. `@end ignore' is used to enclose a part of the copying permissions that
  700. applies to the Texinfo source file of a document, but not to the Info
  701. or printed version of the document.
  702. File: texinfo.info,  Node: Minimum,  Next: Six Parts,  Prev: Comments,  Up: Overview
  703. What a Texinfo File Must Have
  704. =============================
  705.   By convention, the names of Texinfo files end with one of the
  706. extensions `.texinfo', `.texi', or `.tex'.  The longer extension is
  707. preferred since it describes more clearly to a human reader the nature
  708. of the file.  The shorter extensions are for operating systems that
  709. cannot handle long file names.
  710.   In order to be made into a printed manual and an Info file, a Texinfo
  711. file *must* begin with lines like this:
  712.      \input texinfo
  713.      @setfilename INFO-FILE-NAME
  714.      @settitle NAME-OF-MANUAL
  715. The contents of the file follow this beginning, and then you *must* end
  716. a Texinfo file with a line like this:
  717.      @bye
  718. The `\input texinfo' line tells TeX to use the `texinfo.tex' file,
  719. which tells TeX how to translate the Texinfo @-commands into TeX
  720. typesetting commands.  (Note the use of the backslash, `\'; this is
  721. correct for TeX.)  The `@setfilename' line provides a name for the Info
  722. file and the `@settitle' line specifies a title for the page headers (or
  723. footers) of the printed manual.
  724.   The `@bye' line at the end of the file on a line of its own tells the
  725. formatters that the file is ended and to stop formatting.
  726.   Usually, you will not use quite such a spare format, but will include
  727. mode setting and start-of-header and end-of-header lines at the
  728. beginning of a Texinfo file, like this:
  729.      \input texinfo   @c -*-texinfo-*-
  730.      @c %**start of header
  731.      @setfilename INFO-FILE-NAME
  732.      @settitle NAME-OF-MANUAL
  733.      @c %**end of header
  734. In the first line, `-*-texinfo-*-' causes Emacs to switch into Texinfo
  735. mode when you edit the file.
  736.   The `@c' lines which surround the `@setfilename' and `@settitle'
  737. lines are optional, but you need them in order to run TeX or Info on
  738. just part of the file.  (*Note Start of Header::, for more information.)
  739.   Furthermore, you will usually provide a Texinfo file with a title
  740. page, indices, and the like.  But the minimum, which can be useful for
  741. short documents, is just the three lines at the beginning and the one
  742. line at the end.
  743. File: texinfo.info,  Node: Six Parts,  Next: Short Sample,  Prev: Minimum,  Up: Overview
  744. Six Parts of a Texinfo File
  745. ===========================
  746.   Generally, a Texinfo file contains more than the minimal beginning
  747. and end--it usually contains six parts:
  748. 1. Header
  749.      The "Header" names the file, tells TeX which definitions' file to
  750.      use, and performs other "housekeeping" tasks.
  751. 2. Summary Description and Copyright
  752.      The "Summary Description and Copyright" segment describes the
  753.      document and contains the copyright notice and copying permissions
  754.      for the Info file.  The segment must be enclosed between `@ifinfo'
  755.      and `@end ifinfo' commands so that the formatters place it only in
  756.      the Info file.
  757. 3. Title and Copyright
  758.      The "Title and Copyright" segment contains the title and copyright
  759.      pages and copying permissions for the printed manual.  The segment
  760.      must be enclosed between `@titlepage' and `@end titlepage'
  761.      commands.  The title and copyright page appear only in the printed
  762.      manual.
  763. 4. `Top' Node and Master Menu
  764.      The "Master Menu" contains a complete menu of all the nodes in the
  765.      whole Info file.  It appears only in the Info file, in the `Top'
  766.      node.
  767. 5. Body
  768.      The "Body" of the document may be structured like a traditional
  769.      book or encyclopedia or it may be free form.
  770. 6. End
  771.      The "End" contains commands for printing indices and generating
  772.      the table of contents, and the `@bye' command on a line of its own.
  773. File: texinfo.info,  Node: Short Sample,  Next: Acknowledgements,  Prev: Six Parts,  Up: Overview
  774. A Short Sample Texinfo File
  775. ===========================
  776.   Here is a complete but very short Texinfo file, in 6 parts.  The first
  777. three parts of the file, from `\input texinfo' through to `@end
  778. titlepage', look more intimidating than they are.  Most of the material
  779. is standard boilerplate; when you write a manual, simply insert the
  780. names for your own manual in this segment. (*Note Beginning a File::.)
  781. In the following, the sample text is *indented*; comments on it are
  782. not.  The complete file, without any comments, is shown in *Note Sample
  783. Texinfo File::.
  784. Part 1: Header
  785. --------------
  786. The header does not appear in either the Info file or the
  787. printed output.  It sets various parameters, including the
  788. name of the Info file and the title used in the header.
  789.      \input texinfo   @c -*-texinfo-*-
  790.      @c %**start of header
  791.      @setfilename sample.info
  792.      @settitle Sample Document
  793.      @c %**end of header
  794.      
  795.      @setchapternewpage odd
  796. Part 2: Summary Description and Copyright
  797. -----------------------------------------
  798. The summary description and copyright segment does not
  799. appear in the printed document.
  800.      @ifinfo
  801.      This is a short example of a complete Texinfo file.
  802.      
  803.      Copyright @copyright{} 1990 Free Software Foundation, Inc.
  804.      @end ifinfo
  805. Part 3: Titlepage and Copyright
  806. -------------------------------
  807. The titlepage segment does not appear in the Info file.
  808.      @titlepage
  809.      @sp 10
  810.      @comment The title is printed in a large font.
  811.      @center @titlefont{Sample Title}
  812.      
  813.      @c The following two commands start the copyright page.
  814.      @page
  815.      @vskip 0pt plus 1filll
  816.      Copyright @copyright{} 1990 Free Software Foundation, Inc.
  817.      @end titlepage
  818. Part 4: `Top' Node and Master Menu
  819. ----------------------------------
  820. The `Top' node contains the master menu for the Info file.
  821. Since a printed manual uses a table of contents rather than
  822. a menu, the master menu appears only in the Info file.
  823.      @node    Top,       First Chapter, (dir),    (dir)
  824.      @comment node-name, next,          previous, up
  825.      @menu
  826.      * First Chapter::    The first chapter is the
  827.                           only chapter in this sample.
  828.      * Concept Index::    This index has two entries.
  829.      @end menu
  830. Part 5:  The Body of the Document
  831. ---------------------------------
  832. The body segment contains all the text of the document, but not the
  833. indices or table of contents.  This example illustrates a node and a
  834. chapter containing an enumerated list.
  835.      @node    First Chapter, Concept Index, Top,      Top
  836.      @comment node-name,     next,          previous, up
  837.      @chapter First Chapter
  838.      @cindex Sample index entry
  839.      
  840.      This is the contents of the first chapter.
  841.      @cindex Another sample index entry
  842.      
  843.      Here is a numbered list.
  844.      
  845.      @enumerate
  846.      @item
  847.      This is the first item.
  848.      
  849.      @item
  850.      This is the second item.
  851.      @end enumerate
  852.      
  853.      The @code{makeinfo} and @code{texinfo-format-buffer}
  854.      commands transform a Texinfo file such as this into
  855.      an Info file; and @TeX{} typesets it for a printed
  856.      manual.
  857. Part 6: The End of the Document
  858. -------------------------------
  859. The end segment contains commands both for generating an index in a node
  860. and unnumbered chapter of its own and for generating the table of
  861. contents; and it contains the `@bye' command that marks the end of the
  862. document.
  863.      @node    Concept Index,    ,  First Chapter, Top
  864.      @comment node-name,    next,  previous,      up
  865.      @unnumbered Concept Index
  866.      
  867.      @printindex cp
  868.      
  869.      @contents
  870.      @bye
  871. The Results
  872. -----------
  873.   Here is what the contents of the first chapter of the sample look
  874. like:
  875.      This is the contents of the first chapter.
  876.      Here is a numbered list.
  877.        1. This is the first item.
  878.        2. This is the second item.
  879.      The `makeinfo' and `texinfo-format-buffer' commands transform a
  880.      Texinfo file such as this into an Info file; and TeX typesets it
  881.      for a printed manual.
  882.