home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / texinfo-3.7-bin.lha / info / texinfo.info-7 (.txt) < prev    next >
GNU Info File  |  1996-10-12  |  51KB  |  964 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: Abstract Objects,  Next: Data Types,  Prev: Typed Variables,  Up: Def Cmds in Detail
  21. Object-Oriented Programming
  22. ---------------------------
  23.   Here are the commands for formatting descriptions about abstract
  24. objects, such as are used in object-oriented programming.  A class is a
  25. defined type of abstract object.  An instance of a class is a
  26. particular object that has the type of the class.  An instance variable
  27. is a variable that belongs to the class but for which each instance has
  28. its own value.
  29.   In a definition, if the name of a class is truly a name defined in the
  30. programming system for a class, then you should write an `@code' around
  31. it.  Otherwise, it is printed in the usual text font.
  32. `@defcv CATEGORY CLASS NAME'
  33.      The `@defcv' command is the general definition command for
  34.      variables associated with classes in object-oriented programming.
  35.      The `@defcv' command is followed by three arguments: the category
  36.      of thing being defined, the class to which it belongs, and its
  37.      name.  Thus,
  38.           @defcv {Class Option} Window border-pattern
  39.           ...
  40.           @end defcv
  41.      illustrates how you would write the first line of a definition of
  42.      the `border-pattern' class option of the class `Window'.
  43.      The template is
  44.           @defcv CATEGORY CLASS NAME
  45.           ...
  46.           @end defcv
  47.      `@defcv' creates an entry in the index of variables.
  48. `@defivar CLASS NAME'
  49.      The `@defivar' command is the definition command for instance
  50.      variables in object-oriented programming.  `@defivar' is
  51.      equivalent to `@defcv {Instance Variable} ...'
  52.      The template is:
  53.           @defivar CLASS INSTANCE-VARIABLE-NAME
  54.           BODY-OF-DEFINITION
  55.           @end defivar
  56.      `@defivar' creates an entry in the index of variables.
  57. `@defop CATEGORY CLASS NAME ARGUMENTS...'
  58.      The `@defop' command is the general definition command for
  59.      entities that may resemble methods in object-oriented programming.
  60.      These entities take arguments, as functions do, but are associated
  61.      with particular classes of objects.
  62.      For example, some systems have constructs called "wrappers" that
  63.      are associated with classes as methods are, but that act more like
  64.      macros than like functions.  You could use `@defop Wrapper' to
  65.      describe one of these.
  66.      Sometimes it is useful to distinguish methods and "operations".
  67.      You can think of an operation as the specification for a method.
  68.      Thus, a window system might specify that all window classes have a
  69.      method named `expose'; we would say that this window system
  70.      defines an `expose' operation on windows in general.  Typically,
  71.      the operation has a name and also specifies the pattern of
  72.      arguments; all methods that implement the operation must accept
  73.      the same arguments, since applications that use the operation do
  74.      so without knowing which method will implement it.
  75.      Often it makes more sense to document operations than methods.  For
  76.      example, window application developers need to know about the
  77.      `expose' operation, but need not be concerned with whether a given
  78.      class of windows has its own method to implement this operation.
  79.      To describe this operation, you would write:
  80.           @defop Operation windows expose
  81.      The `@defop' command is written at the beginning of a line and is
  82.      followed on the same line by the overall name of the category of
  83.      operation, the name of the class of the operation, the name of the
  84.      operation, and its arguments, if any.
  85.      The template is:
  86.           @defop CATEGORY CLASS NAME ARGUMENTS...
  87.           BODY-OF-DEFINITION
  88.           @end defop
  89.      `@defop' creates an entry, such as ``expose' on `windows'', in the
  90.      index of functions.
  91. `@defmethod CLASS NAME ARGUMENTS...'
  92.      The `@defmethod' command is the definition command for methods in
  93.      object-oriented programming.  A method is a kind of function that
  94.      implements an operation for a particular class of objects and its
  95.      subclasses.  In the Lisp Machine, methods actually were functions,
  96.      but they were usually defined with `defmethod'.
  97.      `@defmethod' is equivalent to `@defop Method ...'.  The command is
  98.      written at the beginning of a line and is followed by the name of
  99.      the class of the method, the name of the method, and its
  100.      arguments, if any.
  101.      For example,
  102.           @defmethod `bar-class' bar-method argument
  103.           ...
  104.           @end defmethod
  105.      illustrates the definition for a method called `bar-method' of the
  106.      class `bar-class'.  The method takes an argument.
  107.      The template is:
  108.           @defmethod CLASS METHOD-NAME ARGUMENTS...
  109.           BODY-OF-DEFINITION
  110.           @end defmethod
  111.      `@defmethod' creates an entry, such as ``bar-method' on
  112.      `bar-class'', in the index of functions.
  113. File: texinfo.info,  Node: Data Types,  Prev: Abstract Objects,  Up: Def Cmds in Detail
  114. Data Types
  115. ----------
  116.   Here is the command for data types:
  117. `@deftp CATEGORY NAME ATTRIBUTES...'
  118.      The `@deftp' command is the generic definition command for data
  119.      types.  The command is written at the beginning of a line and is
  120.      followed on the same line by the category, by the name of the type
  121.      (which is a word like `int' or `float'), and then by names of
  122.      attributes of objects of that type.  Thus, you could use this
  123.      command for describing `int' or `float', in which case you could
  124.      use `data type' as the category.  (A data type is a category of
  125.      certain objects for purposes of deciding which operations can be
  126.      performed on them.)
  127.      In Lisp, for example,  "pair" names a particular data type, and an
  128.      object of that type has two slots called the CAR and the CDR.
  129.      Here is how you would write the first line of a definition of
  130.      `pair'.
  131.           @deftp {Data type} pair car cdr
  132.           ...
  133.           @end deftp
  134.      The template is:
  135.           @deftp CATEGORY NAME-OF-TYPE ATTRIBUTES...
  136.           BODY-OF-DEFINITION
  137.           @end deftp
  138.      `@deftp' creates an entry in the index of data types.
  139. File: texinfo.info,  Node: Def Cmd Conventions,  Next: Sample Function Definition,  Prev: Def Cmds in Detail,  Up: Definition Commands
  140. Conventions for Writing Definitions
  141. ===================================
  142.   When you write a definition using `@deffn', `@defun', or one of the
  143. other definition commands, please take care to use arguments that
  144. indicate the meaning, as with the COUNT argument to the `forward-word'
  145. function.  Also, if the name of an argument contains the name of a
  146. type, such as INTEGER, take care that the argument actually is of that
  147. type.
  148. File: texinfo.info,  Node: Sample Function Definition,  Prev: Def Cmd Conventions,  Up: Definition Commands
  149. A Sample Function Definition
  150. ============================
  151.   A function definition uses the `@defun' and `@end defun' commands.
  152. The name of the function follows immediately after the `@defun' command
  153. and it is followed, on the same line, by the parameter list.
  154.   Here is a definition from `The GNU Emacs Lisp Reference Manual'.
  155. (*Note Calling Functions: (elisp)Calling Functions.)
  156.       - Function: apply FUNCTION &rest ARGUMENTS
  157.           `apply' calls FUNCTION with ARGUMENTS, just like `funcall'
  158.           but with one difference: the last of ARGUMENTS is a list of
  159.           arguments to give to FUNCTION, rather than a single argument.
  160.           We also say that this list is "appended" to the other
  161.           arguments.
  162.           `apply' returns the result of calling FUNCTION.  As with
  163.           `funcall', FUNCTION must either be a Lisp function or a
  164.           primitive function; special forms and macros do not make
  165.           sense in `apply'.
  166.                (setq f 'list)
  167.                     => list
  168.                (apply f 'x 'y 'z)
  169.                error--> Wrong type argument: listp, z
  170.                (apply '+ 1 2 '(3 4))
  171.                     => 10
  172.                (apply '+ '(1 2 3 4))
  173.                     => 10
  174.                
  175.                (apply 'append '((a b c) nil (x y z) nil))
  176.                     => (a b c x y z)
  177.           An interesting example of using `apply' is found in the
  178.           description of `mapcar'.
  179.   In the Texinfo source file, this example looks like this:
  180.      @defun apply function &rest arguments
  181.      
  182.      @code{apply} calls @var{function} with
  183.      @var{arguments}, just like @code{funcall} but with one
  184.      difference: the last of @var{arguments} is a list of
  185.      arguments to give to @var{function}, rather than a single
  186.      argument.  We also say that this list is @dfn{appended}
  187.      to the other arguments.
  188.      
  189.      @code{apply} returns the result of calling
  190.      @var{function}.  As with @code{funcall},
  191.      @var{function} must either be a Lisp function or a
  192.      primitive function; special forms and macros do not make
  193.      sense in @code{apply}.
  194.      
  195.      @example
  196.      (setq f 'list)
  197.           @result{} list
  198.      (apply f 'x 'y 'z)
  199.      @error{} Wrong type argument: listp, z
  200.      (apply '+ 1 2 '(3 4))
  201.           @result{} 10
  202.      (apply '+ '(1 2 3 4))
  203.           @result{} 10
  204.      
  205.      (apply 'append '((a b c) nil (x y z) nil))
  206.           @result{} (a b c x y z)
  207.      @end example
  208.      
  209.      An interesting example of using @code{apply} is found
  210.      in the description of @code{mapcar}.@refill
  211.      @end defun
  212. In this manual, this function is listed in the Command and Variable
  213. Index under `apply'.
  214.   Ordinary variables and user options are described using a format like
  215. that for functions except that variables do not take arguments.
  216. File: texinfo.info,  Node: Footnotes,  Next: Conditionals,  Prev: Definition Commands,  Up: Top
  217. Footnotes
  218. *********
  219.   A "footnote" is for a reference that documents or elucidates the
  220. primary text.(1) (*note Footnotes-Footnotes::)
  221. * Menu:
  222. * Footnote Commands::           How to write a footnote in Texinfo.
  223. * Footnote Styles::             Controlling how footnotes appear in Info.
  224. File: texinfo.info,  Node: Footnotes-Footnotes,  Up: Footnotes
  225.   (1)  A footnote should complement or expand upon the primary text,
  226. but a reader should not need to read a footnote to understand the
  227. primary text.  For a thorough discussion of footnotes, see `The Chicago
  228. Manual of Style', which is published by the University of Chicago Press.
  229. File: texinfo.info,  Node: Footnote Commands,  Next: Footnote Styles,  Up: Footnotes
  230. Footnote Commands
  231. =================
  232.   In Texinfo, footnotes are created with the `@footnote' command.  This
  233. command is followed immediately by a left brace, then by the text of
  234. the footnote, and then by a terminating right brace.  The template is:
  235.      @footnote{TEXT}
  236.   Footnotes may be of any length, but are usually short.
  237.   For example, this clause is followed by a sample footnote(1) (*note
  238. Footnote Commands-Footnotes::); in the Texinfo source, it looks like
  239. this:
  240.      ...a sample footnote @footnote{Here is the sample
  241.      footnote.}; in the Texinfo source...
  242.   *Warning:* Don't use footnotes in the argument of the `@item' command
  243. for a `@table' table.  This doesn't work; because of limitations of
  244. TeX, there is no way to fix it.  To avoid the problem, move the
  245. footnote into the body text of the table.
  246.   In a printed manual or book, the reference mark for a footnote is a
  247. small, superscripted number; the text of the footnote appears at the
  248. bottom of the page, below a horizontal line.
  249.   In Info, the reference mark for a footnote is a pair of parentheses
  250. with the footnote number between them, like this: `(1)'.
  251. File: texinfo.info,  Node: Footnote Commands-Footnotes,  Up: Footnote Commands
  252.   (1)  Here is the sample footnote.
  253. File: texinfo.info,  Node: Footnote Styles,  Prev: Footnote Commands,  Up: Footnotes
  254. Footnote Styles
  255. ===============
  256.   Info has two footnote styles, which determine where the text of the
  257. footnote is located:
  258.    * In the `End' node style, all the footnotes for a single node are
  259.      placed at the end of that node.  The footnotes are separated from
  260.      the rest of the node by a line of dashes with the word `Footnotes'
  261.      within it.  Each footnote begins with an `(N)' reference mark.
  262.      Here is an example of a single footnote in the end of node style:
  263.            --------- Footnotes ---------
  264.           
  265.           (1)  Here is a sample footnote.
  266.    * In the `Separate' node style, all the footnotes for a single node
  267.      are placed in an automatically constructed node of their own.  In
  268.      this style, a "footnote reference" follows each `(N)' reference
  269.      mark in the body of the node.  The footnote reference is actually
  270.      a cross reference which you use to reach the footnote node.
  271.      The name of the node containing the footnotes is constructed by
  272.      appending `-Footnotes' to the name of the node that contains the
  273.      footnotes. (Consequently, the footnotes' node for the `Footnotes'
  274.      node is `Footnotes-Footnotes'!)  The footnotes' node has an `Up'
  275.      node pointer that leads back to its parent node.
  276.      Here is how the first footnote in this manual looks after being
  277.      formatted for Info in the separate node style:
  278.           File: texinfo.info  Node: Overview-Footnotes, Up: Overview
  279.           
  280.           (1) Note that the first syllable of "Texinfo" is
  281.           pronounced like "speck", not "hex". ...
  282.   A Texinfo file may be formatted into an Info file with either footnote
  283. style.
  284.   Use the `@footnotestyle' command to specify an Info file's footnote
  285. style.  Write this command at the beginning of a line followed by an
  286. argument, either `end' for the end node style or `separate' for the
  287. separate node style.
  288.   For example,
  289.      @footnotestyle end
  290.      @footnotestyle separate
  291.   Write an `@footnotestyle' command before or shortly after the
  292. end-of-header line at the beginning of a Texinfo file.  (If you include
  293. the `@footnotestyle' command between the start-of-header and
  294. end-of-header lines, the region formatting commands will format
  295. footnotes as specified.)
  296.   If you do not specify a footnote style, the formatting commands use
  297. their default style.  Currently, `texinfo-format-buffer' and
  298. `texinfo-format-region' use the `separate' style and `makeinfo' uses
  299. the `end' style.
  300.   This chapter contains two footnotes.
  301. File: texinfo.info,  Node: Conditionals,  Next: Format/Print Hardcopy,  Prev: Footnotes,  Up: Top
  302. Conditionally Visible Text
  303. **************************
  304.   Sometimes it is good to use different text for a printed manual and
  305. its corresponding Info file.  In this case, you can use the
  306. "conditional commands" to specify which text is for the printed manual
  307. and which is for the Info file.
  308. * Menu:
  309. * Conditional Commands::        How to specify text for Info or TeX.
  310. * Using Ordinary TeX Commands::  You can use any and all TeX commands.
  311. * set clear value::             How to designate which text to format (for
  312.                                   both Info and TeX); and how to set a
  313.                                   flag to a string that you can insert.
  314. File: texinfo.info,  Node: Conditional Commands,  Next: Using Ordinary TeX Commands,  Prev: Conditionals,  Up: Conditionals
  315. Using `@ifinfo' and `@iftex'
  316. ============================
  317.   `@ifinfo' begins segments of text that should be ignored by TeX when
  318. it typesets the printed manual.  The segment of text appears only in
  319. the Info file.  The `@ifinfo' command should appear on a line by
  320. itself;  end the Info-only text with a line containing `@end ifinfo' by
  321. itself.  At the beginning of a Texinfo file, the Info permissions are
  322. contained within a region marked by `@ifinfo' and `@end ifinfo'. (*Note
  323. Info Summary and Permissions::.)
  324.   The `@iftex' and `@end iftex' commands are similar to the `@ifinfo'
  325. and `@end ifinfo' commands, except that they specify text that will
  326. appear in the printed manual but not in the Info file.
  327.   For example,
  328.      @iftex
  329.      This text will appear only in the printed manual.
  330.      @end iftex
  331.      
  332.      @ifinfo
  333.      However, this text will appear only in Info.
  334.      @end ifinfo
  335. The preceding example produces the following line:
  336.   However, this text will appear only in Info.
  337. Note how you only see one of the two lines, depending on whether you
  338. are reading the Info version or the printed version of this manual.
  339.   The `@titlepage' command is a special variant of `@iftex' that is
  340. used for making the title and copyright pages of the printed manual.
  341. (*Note `@titlepage': titlepage.)
  342. File: texinfo.info,  Node: Using Ordinary TeX Commands,  Next: set clear value,  Prev: Conditional Commands,  Up: Conditionals
  343. Using Ordinary TeX Commands
  344. ===========================
  345.   Inside a region delineated by `@iftex' and `@end iftex', you can
  346. embed some PlainTeX commands.  Info will ignore these commands since
  347. they are only in that part of the file which is seen by TeX.  You can
  348. write the TeX commands as you would write them in a normal TeX file,
  349. except that you must replace the `\' used by TeX with an `@'.  For
  350. example, in the `@titlepage' section of a Texinfo file, you can use the
  351. TeX command `@vskip' to format the copyright page.  (The `@titlepage'
  352. command causes Info to ignore the region automatically, as it does with
  353. the `@iftex' command.)
  354.   However, many features of PlainTeX will not work, as they are
  355. overridden by features of Texinfo.
  356.   You can enter PlainTeX completely, and use `\' in the TeX commands,
  357. by delineating a region with the `@tex' and `@end tex' commands.  (The
  358. `@tex' command also causes Info to ignore the region, like the `@iftex'
  359. command.)
  360.   For example, here is a mathematical expression written in PlainTeX:
  361.      @tex
  362.      $$ \chi^2 = \sum_{i=1}^N
  363.                \left (y_i - (a + b x_i)
  364.                \over \sigma_i\right)^2 $$
  365.      @end tex
  366. The output of this example will appear only in a printed manual.  If
  367. you are reading this in Info, you will not see anything after this
  368. paragraph.
  369. File: texinfo.info,  Node: set clear value,  Prev: Using Ordinary TeX Commands,  Up: Conditionals
  370. `@set', `@clear', and `@value'
  371. ==============================
  372.   You can direct the Texinfo formatting commands to format or ignore
  373. parts of a Texinfo file with the `@set', `@clear', `@ifset', and
  374. `@ifclear' commands.
  375.   In addition, you can use the `@set FLAG' command to set the value of
  376. FLAG to a string of characters; and use `@value{FLAG}' to insert that
  377. string.  You can use `@set', for example, to set a date and use
  378. `@value' to insert the date in several places in the Texinfo file.
  379. * Menu:
  380. * ifset ifclear::               Format a region if a flag is set.
  381. * value::                       Replace a flag with a string.
  382. * value Example::               An easy way to update edition information.
  383. File: texinfo.info,  Node: ifset ifclear,  Next: value,  Prev: set clear value,  Up: set clear value
  384. `@ifset' and `@ifclear'
  385. -----------------------
  386.   When a FLAG is set, the Texinfo formatting commands format text
  387. between subsequent pairs of `@ifset FLAG' and `@end ifset' commands.
  388. When the FLAG is cleared, the Texinfo formatting commands do *not*
  389. format the text.
  390.   Use the `@set FLAG' command to turn on, or "set", a FLAG; a "flag"
  391. can be any single word.  The format for the command looks like this:
  392.      @set FLAG
  393.   Write the conditionally formatted text between `@ifset FLAG' and
  394. `@end ifset' commands, like this:
  395.      @ifset FLAG
  396.      CONDITIONAL-TEXT
  397.      @end ifset
  398.   For example, you can create one document that has two variants, such
  399. as a manual for a `large' and `small' model:
  400.      You can use this machine to dig up shrubs
  401.      without hurting them.
  402.      
  403.      @set large
  404.      
  405.      @ifset large
  406.      It can also dig up fully grown trees.
  407.      @end ifset
  408.      
  409.      Remember to replant promptly ...
  410. In the example, the formatting commands will format the text between
  411. `@ifset large' and `@end ifset' because the `large' flag is set.
  412.   Use the `@clear FLAG' command to turn off, or "clear", a flag.
  413. Clearing a flag is the opposite of setting a flag.  The command looks
  414. like this:
  415.      @clear FLAG
  416. Write the command on a line of its own.
  417.   When FLAG is cleared, the Texinfo formatting commands do *not* format
  418. the text between `@ifset FLAG' and `@end ifset'; that text is ignored
  419. and does not appear in either printed or Info output.
  420.   For example, if you clear the flag of the preceding example by writing
  421. an `@clear large' command after the `@set large' command (but before
  422. the conditional text), then the Texinfo formatting commands ignore the
  423. text between the `@ifset large' and `@end ifset' commands.  In the
  424. formatted output, that text does not appear; in both printed and Info
  425. output, you see only the lines that say, "You can use this machine to
  426. dig up shrubs without hurting them.  Remember to replant promptly ...".
  427.   If a flag is cleared with an `@clear FLAG' command, then the
  428. formatting commands format text between subsequent pairs of `@ifclear'
  429. and `@end ifclear' commands.  But if the flag is set with `@set FLAG',
  430. then the formatting commands do *not* format text between an `@ifclear'
  431. and an `@end ifclear' command; rather, they ignore that text.  An
  432. `@ifclear' command looks like this:
  433.      @ifclear FLAG
  434.   In brief, the commands are:
  435. `@set FLAG'
  436.      Tell the Texinfo formatting commands that FLAG is set.
  437. `@clear FLAG'
  438.      Tell the Texinfo formatting commands that FLAG is cleared.
  439. `@ifset FLAG'
  440.      If FLAG is set, tell the Texinfo formatting commands to format the
  441.      text up to the following `@end ifset' command.
  442.      If FLAG is cleared, tell the Texinfo formatting commands to ignore
  443.      text up to the following `@end ifset' command.
  444. `@ifclear FLAG'
  445.      If FLAG is set, tell the Texinfo formatting commands to ignore the
  446.      text up to the following `@end ifclear' command.
  447.      If FLAG is cleared, tell the Texinfo formatting commands to format
  448.      the text up to the following `@end ifclear' command.
  449. File: texinfo.info,  Node: value,  Next: value Example,  Prev: ifset ifclear,  Up: set clear value
  450. `@value'
  451. --------
  452.   You can use the `@set' command to specify a value for a flag, which
  453. is expanded by the `@value' command.  The value is a string a
  454. characters.
  455.   Write the `@set' command like this:
  456.      @set foo This is a string.
  457. This sets the value of `foo' to "This is a string."
  458.   The Texinfo formatters replace an `@value{FLAG}' command with the
  459. string to which FLAG is set.
  460.   Thus, when `foo' is set as shown above, the Texinfo formatters convert
  461.      @value{foo}
  462.      This is a string.
  463.   You can write an `@value' command within a paragraph; but you must
  464. write an `@set' command on a line of its own.
  465.   If you write the `@set' command like this:
  466.      @set foo
  467. without specifying a string, the value of `foo' is an empty string.
  468.   If you clear a previously set flag with an `@clear FLAG' command, a
  469. subsequent `@value{flag}' command is invalid and the string is replaced
  470. with an error message that says `{No value for "FLAG"}'.
  471.   For example, if you set `foo' as follows:
  472.      @set how-much very, very, very
  473. then the formatters transform
  474.      It is a @value{how-much} wet day.
  475.      It is a very, very, very wet day.
  476.   If you write
  477.      @clear how-much
  478. then the formatters transform
  479.      It is a @value{how-much} wet day.
  480.      It is a {No value for "how-much"} wet day.
  481. File: texinfo.info,  Node: value Example,  Prev: value,  Up: set clear value
  482. `@value' Example
  483. ----------------
  484.   You can use the `@value' command to limit the number of places you
  485. need to change when you record an update to a manual.  Here is how it
  486. is done in `The GNU Make Manual':
  487. Set the flags:
  488.      @set EDITION 0.35 Beta
  489.      @set VERSION 3.63 Beta
  490.      @set UPDATED 14 August 1992
  491.      @set UPDATE-MONTH August 1992
  492. Write text for the first `@ifinfo' section, for people reading the
  493. Texinfo file:
  494.      This is Edition @value{EDITION},
  495.      last updated @value{UPDATED},
  496.      of @cite{The GNU Make Manual},
  497.      for @code{make}, Version @value{VERSION}.
  498. Write text for the title page, for people reading the printed manual:
  499.      @title GNU Make
  500.      @subtitle A Program for Directing Recompilation
  501.      @subtitle Edition @value{EDITION}, ...
  502.      @subtitle @value{UPDATE-MONTH}
  503. (On a printed cover, a date listing the month and the year looks less
  504. fussy than a date listing the day as well as the month and year.)
  505. Write text for the Top node, for people reading the Info file:
  506.      This is Edition @value{EDITION}
  507.      of the @cite{GNU Make Manual},
  508.      last updated @value{UPDATED}
  509.      for @code{make} Version @value{VERSION}.
  510.   After you format the manual, the text in the first `@ifinfo' section
  511. looks like this:
  512.      This is Edition 0.35 Beta, last updated 14 August 1992,
  513.      of `The GNU Make Manual', for `make', Version 3.63 Beta.
  514.   When you update the manual, change only the values of the flags; you
  515. do not need to rewrite the three sections.
  516. File: texinfo.info,  Node: Format/Print Hardcopy,  Next: Create an Info File,  Prev: Conditionals,  Up: Top
  517. Format and Print Hardcopy
  518. *************************
  519.   There are three major shell commands for making a printed manual from
  520. a Texinfo file: one for converting the Texinfo file into a file that
  521. will be printed, a second for sorting indices, and a third for printing
  522. the formatted document.  When you use the shell commands, you can either
  523. work directly in the operating system shell or work within a shell
  524. inside GNU Emacs.
  525.   If you are using GNU Emacs, you can use commands provided by Texinfo
  526. mode instead of shell commands.  In addition to the three commands to
  527. format a file, sort the indices, and print the result, Texinfo mode
  528. offers key bindings for commands to recenter the output buffer, show the
  529. print queue, and delete a job from the print queue.
  530. * Menu:
  531. * Use TeX::                     Use TeX to format for hardcopy.
  532. * Format with tex/texindex::    How to format in a shell.
  533. * Format with texi2dvi::        A simpler way to use the shell.
  534. * Print with lpr::              How to print.
  535. * Within Emacs::                How to format and print from an Emacs shell.
  536. * Texinfo Mode Printing::       How to format and print in Texinfo mode.
  537. * Compile-Command::             How to print using Emacs's compile command.
  538. * Requirements Summary::        TeX formatting requirements summary.
  539. * Preparing for TeX::           What you need to do to use TeX.
  540. * Overfull hboxes::             What are and what to do with overfull hboxes.
  541. * smallbook::                   How to print small format books and manuals.
  542. * A4 Paper::                    How to print on European A4 paper.
  543. * Cropmarks and Magnification::  How to print marks to indicate the size
  544.                                 of pages and how to print scaled up output.
  545. File: texinfo.info,  Node: Use TeX,  Next: Format with tex/texindex,  Prev: Format/Print Hardcopy,  Up: Format/Print Hardcopy
  546. Use TeX
  547. =======
  548.   The typesetting program called TeX is used for formatting a Texinfo
  549. file.  TeX is a very powerful typesetting program and, if used right,
  550. does an exceptionally good job.  *Note How to Obtain TeX: Obtaining
  551. TeX, for information on how to obtain TeX.
  552.   The `makeinfo', `texinfo-format-region', and `texinfo-format-buffer'
  553. commands read the very same @-commands in the Texinfo file as does TeX,
  554. but process them differently to make an Info file; see *Note Create an
  555. Info File::.
  556. File: texinfo.info,  Node: Format with tex/texindex,  Next: Format with texi2dvi,  Prev: Use TeX,  Up: Format/Print Hardcopy
  557. Format using `tex' and `texindex'
  558. =================================
  559.   Format the Texinfo file with the shell command `tex' followed by the
  560. name of the Texinfo file.  This command produces a formatted DVI file
  561. as well as several auxiliary files containing indices, cross
  562. references, etc.  The DVI file (for "DeVice Independent" file) can be
  563. printed on a wide variety of printers.
  564.   The `tex' formatting command itself does not sort the indices; it
  565. writes an output file of unsorted index data.  This is a misfeature of
  566. TeX.  (The `texi2dvi' command automatically generates indices; see
  567. *Note Format using `texi2dvi': Format with texi2dvi.)  To generate a
  568. printed index after running the `tex' command, you first need a sorted
  569. index to work from.  The `texindex' command sorts indices.  (The source
  570. file `texindex.c' comes as part of the standard GNU distribution and is
  571. usually installed when Emacs is installed.)
  572.   The `tex' formatting command outputs unsorted index files under names
  573. that obey a standard convention.  These names are the name of your main
  574. input file to the `tex' formatting command, with everything after the
  575. first period thrown away, and the two letter names of indices added at
  576. the end.  For example, the raw index output files for the input file
  577. `foo.texinfo' would be `foo.cp', `foo.vr', `foo.fn', `foo.tp', `foo.pg'
  578. and `foo.ky'.  Those are exactly the arguments to give to `texindex'.
  579.   Or else, you can use `??' as "wild-cards" and give the command in
  580. this form:
  581.      texindex foo.??
  582. This command will run `texindex' on all the unsorted index files,
  583. including any that you have defined yourself using `@defindex' or
  584. `@defcodeindex'.  (You may execute `texindex foo.??' even if there are
  585. similarly named files with two letter extensions that are not index
  586. files, such as `foo.el'.  The `texindex' command reports but otherwise
  587. ignores such files.)
  588.   For each file specified, `texindex' generates a sorted index file
  589. whose name is made by appending `s' to the input file name.  The
  590. `@printindex' command knows to look for a file of that name.
  591. `texindex' does not alter the raw index output file.
  592.   After you have sorted the indices, you need to rerun the `tex'
  593. formatting command on the Texinfo file.  This regenerates a formatted
  594. DVI file with up-to-date index entries.(1) (*note Format with
  595. tex/texindex-Footnotes::)
  596.   To summarize, this is a three step process:
  597.   1. Run the `tex' formatting command on the Texinfo file.  This
  598.      generates the formatted DVI file as well as the raw index files
  599.      with two letter extensions.
  600.   2. Run the shell command `texindex' on the raw index files to sort
  601.      them.  This creates the corresponding sorted index files.
  602.   3. Rerun the `tex' formatting command on the Texinfo file.  This
  603.      regenerates a formatted DVI file with the index entries in the
  604.      correct order.  This second run also corrects the page numbers for
  605.      the cross references.  (The tables of contents are always correct.)
  606.   You need not run `texindex' each time after you run the `tex'
  607. formatting.  If you do not, on the next run, the `tex' formatting
  608. command will use whatever sorted index files happen to exist from the
  609. previous use of `texindex'.  This is usually OK while you are debugging.
  610. File: texinfo.info,  Node: Format with tex/texindex-Footnotes,  Up: Format with tex/texindex
  611.   (1)  If you use more than one index and have cross references to an
  612. index other than the first, you must run `tex' *three times* to get
  613. correct output: once to generate raw index data; again (after
  614. `texindex') to output the text of the indices and determine their true
  615. page numbers; and a third time to output correct page numbers in cross
  616. references to them.  However, cross references to indices are rare.
  617. File: texinfo.info,  Node: Format with texi2dvi,  Next: Print with lpr,  Prev: Format with tex/texindex,  Up: Format/Print Hardcopy
  618. Format using `texi2dvi'
  619. =======================
  620.   The `texi2dvi' command is a shell script that automatically runs both
  621. `tex' and `texindex' as needed to produce a DVI file with up-to-date,
  622. sorted indices.  It simplifies the `tex'--`texindex'--`tex' sequence
  623. described in the previous section.
  624.   The syntax for `texi2dvi' is like this (where `%' is the shell
  625. prompt):
  626.      % texi2dvi FILENAME...
  627. File: texinfo.info,  Node: Print with lpr,  Next: Within Emacs,  Prev: Format with texi2dvi,  Up: Format/Print Hardcopy
  628. Shell Print Using `lpr -d'
  629. ==========================
  630.   You can print a DVI file with the DVI print command.  The precise
  631. printing command to use depends on your system; `lpr -d' is common.
  632. The DVI print command may require a file name without any extension or
  633. with a `.dvi' extension.
  634.   The following commands, for example, sort the indices, format, and
  635. print the `Bison Manual' (where `%' is the shell prompt):
  636.      % tex bison.texinfo
  637.      % texindex bison.??
  638.      % tex bison.texinfo
  639.      % lpr -d bison.dvi
  640. (Remember that the shell commands may be different at your site; but
  641. these are commonly used versions.)
  642.   Using the `texi2dvi' shell script, you simply need type:
  643.      % texi2dvi bison.texinfo
  644.      % lpr -d bison.dvi
  645. File: texinfo.info,  Node: Within Emacs,  Next: Texinfo Mode Printing,  Prev: Print with lpr,  Up: Format/Print Hardcopy
  646. From an Emacs Shell ...
  647. =======================
  648.   You can give formatting and printing commands from a shell within GNU
  649. Emacs.  To create a shell within Emacs, type `M-x shell'.  In this
  650. shell, you can format and print the document.  *Note Format and Print
  651. Hardcopy: Format/Print Hardcopy, for details.
  652.   You can switch to and from the shell buffer while `tex' is running
  653. and do other editing.  If you are formatting a long document on a slow
  654. machine, this can be very convenient.
  655.   You can also use `texi2dvi' from an Emacs shell.  For example, here
  656. is how to use `texi2dvi' to format and print `Using and Porting GNU CC'
  657. from a shell within Emacs (where `%' is the shell prompt):
  658.      % texi2dvi gcc.texinfo
  659.      % lpr -d gcc.dvi
  660.   *Note Texinfo Mode Printing::, for more information about formatting
  661. and printing in Texinfo mode.
  662. File: texinfo.info,  Node: Texinfo Mode Printing,  Next: Compile-Command,  Prev: Within Emacs,  Up: Format/Print Hardcopy
  663. Formatting and Printing in Texinfo Mode
  664. =======================================
  665.   Texinfo mode provides several predefined key commands for TeX
  666. formatting and printing.  These include commands for sorting indices,
  667. looking at the printer queue, killing the formatting job, and
  668. recentering the display of the buffer in which the operations occur.
  669. `C-c C-t C-b'
  670. `M-x texinfo-tex-buffer'
  671.      Run `texi2dvi' on the current buffer.
  672. `C-c C-t C-r'
  673. `M-x texinfo-tex-region'
  674.      Run TeX on the current region.
  675. `C-c C-t C-i'
  676. `M-x texinfo-texindex'
  677.      Sort the indices of a Texinfo file formatted with
  678.      `texinfo-tex-region'.
  679. `C-c C-t C-p'
  680. `M-x texinfo-tex-print'
  681.      Print a DVI file that was made with `texinfo-tex-region' or
  682.      `texinfo-tex-buffer'.
  683. `C-c C-t C-q'
  684. `M-x tex-show-print-queue'
  685.      Show the print queue.
  686. `C-c C-t C-d'
  687. `M-x texinfo-delete-from-print-queue'
  688.      Delete a job from the print queue; you will be prompted for the job
  689.      number shown by a preceding `C-c C-t C-q' command
  690.      (`texinfo-show-tex-print-queue').
  691. `C-c C-t C-k'
  692. `M-x tex-kill-job'
  693.      Kill the currently running TeX job started by `texinfo-tex-region'
  694.      or `texinfo-tex-buffer', or any other process running in the
  695.      Texinfo shell buffer.
  696. `C-c C-t C-x'
  697. `M-x texinfo-quit-job'
  698.      Quit a TeX formatting job that has stopped because of an error by
  699.      sending an x to it.  When you do this, TeX preserves a record of
  700.      what it did in a `.log' file.
  701. `C-c C-t C-l'
  702. `M-x tex-recenter-output-buffer'
  703.      Redisplay the shell buffer in which the TeX printing and formatting
  704.      commands are run to show its most recent output.
  705.   Thus, the usual sequence of commands for formatting a buffer is as
  706. follows (with comments to the right):
  707.      C-c C-t C-b             Run `texi2dvi' on the buffer.
  708.      C-c C-t C-p             Print the DVI file.
  709.      C-c C-t C-q             Display the printer queue.
  710.   The Texinfo mode TeX formatting commands start a subshell in Emacs
  711. called the `*tex-shell*'.  The `texinfo-tex-command',
  712. `texinfo-texindex-command', and `tex-dvi-print-command' commands are
  713. all run in this shell.
  714.   You can watch the commands operate in the `*tex-shell*' buffer, and
  715. you can switch to and from and use the `*tex-shell*' buffer as you
  716. would any other shell buffer.
  717.   The formatting and print commands depend on the values of several
  718. variables.  The default values are:
  719.           Variable                              Default value
  720.      
  721.      texinfo-texi2dvi-command                  "texi2dvi"
  722.      texinfo-tex-command                       "tex"
  723.      texinfo-texindex-command                  "texindex"
  724.      texinfo-delete-from-print-queue-command   "lprm"
  725.      texinfo-tex-trailer                       "@bye"
  726.      tex-start-of-header                       "%**start"
  727.      tex-end-of-header                         "%**end"
  728.      tex-dvi-print-command                     "lpr -d"
  729.      tex-show-queue-command                    "lpq"
  730.   You can change the values of these variables with the `M-x
  731. edit-options' command (*note Editing Variable Values: (emacs)Edit
  732. Options.), with the `M-x set-variable' command (*note Examining and
  733. Setting Variables: (emacs)Examining.), or with your `.emacs'
  734. initialization file (*note Init File: (emacs)Init File.).
  735. File: texinfo.info,  Node: Compile-Command,  Next: Requirements Summary,  Prev: Texinfo Mode Printing,  Up: Format/Print Hardcopy
  736. Using the Local Variables List
  737. ==============================
  738.   Yet another way to apply the TeX formatting command to a Texinfo file
  739. is to put that command in a "local variables list" at the end of the
  740. Texinfo file.  You can then specify the `tex' or `texi2dvi' commands as
  741. a `compile-command' and have Emacs run it by typing `M-x compile'.
  742. This creates a special shell called the `*compilation*' buffer in which
  743. Emacs runs the compile command.  For example, at the end of the
  744. `gdb.texinfo' file, after the `@bye', you could put the following:
  745.      @c Local Variables:
  746.      @c compile-command: "texi2dvi gdb.texinfo"
  747.      @c End:
  748. This technique is most often used by programmers who also compile
  749. programs this way; see *Note Compilation: (emacs)Compilation.
  750. File: texinfo.info,  Node: Requirements Summary,  Next: Preparing for TeX,  Prev: Compile-Command,  Up: Format/Print Hardcopy
  751. TeX Formatting Requirements Summary
  752. ===================================
  753.   Every Texinfo file that is to be input to TeX must begin with a
  754. `\input' command and contain an `@settitle' command:
  755.      \input texinfo
  756.      @settitle NAME-OF-MANUAL
  757. The first command instructs TeX to load the macros it needs to process
  758. a Texinfo file and the second command specifies the title of printed
  759. manual.
  760.   Every Texinfo file must end with a line that terminates TeX
  761. processing and forces out unfinished pages:
  762.      @bye
  763.   Strictly speaking, these three lines are all a Texinfo file needs for
  764. TeX, besides the body.  (The `@setfilename' line is the only line that
  765. a Texinfo file needs for Info formatting.)
  766.   Usually, the file's first line contains an `@c -*-texinfo-*-' comment
  767. that causes Emacs to switch to Texinfo mode when you edit the file.  In
  768. addition, the beginning usually includes an `@setfilename' for Info
  769. formatting, an `@setchapternewpage' command, a title page, a copyright
  770. page, and permissions.  Besides an `@bye', the end of a file usually
  771. includes indices and a table of contents.
  772. For more information, see
  773. *Note `@setchapternewpage': setchapternewpage,
  774. *Note Page Headings: Headings,
  775. *Note Titlepage & Copyright Page::,
  776. *Note Printing Indices & Menus::, and
  777. *Note Contents::.
  778. File: texinfo.info,  Node: Preparing for TeX,  Next: Overfull hboxes,  Prev: Requirements Summary,  Up: Format/Print Hardcopy
  779. Preparing to Use TeX
  780. ====================
  781. TeX needs to know where to find the `texinfo.tex' file that you have
  782. told it to input with the `\input texinfo' command at the beginning of
  783. the first line.  The `texinfo.tex' file tells TeX how to handle
  784. @-commands.  (`texinfo.tex' is included in the standard GNU
  785. distributions.)
  786.   Usually, the `texinfo.tex' file is put in the default directory that
  787. contains TeX macros (the `/usr/lib/tex/macros' directory) when GNU
  788. Emacs or other GNU software is installed.  In this case, TeX will find
  789. the file and you do not need to do anything special.  Alternatively,
  790. you can put `texinfo.tex' in the directory in which the Texinfo source
  791. file is located, and TeX will find it there.
  792.   However, you may want to specify the location of the `\input' file
  793. yourself.  One way to do this is to write the complete path for the file
  794. after the `\input' command.  Another way is to set the `TEXINPUTS'
  795. environment variable in your `.cshrc' or `.profile' file.  The
  796. `TEXINPUTS' environment variable will tell TeX where to find the
  797. `texinfo.tex' file and any other file that you might want TeX to use.
  798.   Whether you use a `.cshrc' or `.profile' file depends on whether you
  799. use `csh', `sh', or `bash' for your shell command interpreter.  When
  800. you use `csh', it looks to the `.cshrc' file for initialization
  801. information, and when you use `sh' or `bash', it looks to the
  802. `.profile' file.
  803.   In a `.cshrc' file, you could use the following `csh' command
  804. sequence:
  805.      setenv TEXINPUTS .:/usr/me/mylib:/usr/lib/tex/macros
  806.   In a `.profile' file, you could use the following `sh' command
  807. sequence:
  808.      TEXINPUTS=.:/usr/me/mylib:/usr/lib/tex/macros
  809.      export TEXINPUTS
  810. This would cause TeX to look for `\input' file first in the current
  811. directory, indicated by the `.', then in a hypothetical user's
  812. `me/mylib' directory, and finally in the system library.
  813. File: texinfo.info,  Node: Overfull hboxes,  Next: smallbook,  Prev: Preparing for TeX,  Up: Format/Print Hardcopy
  814. Overfull "hboxes"
  815. =================
  816.   TeX is sometimes unable to typeset a line without extending it into
  817. the right margin.  This can occur when TeX comes upon what it
  818. interprets as a long word that it cannot hyphenate, such as an
  819. electronic mail network address or a very long title.  When this
  820. happens, TeX prints an error message like this:
  821.      Overfull \hbox (20.76302pt too wide)
  822. (In TeX, lines are in "horizontal boxes", hence the term, "hbox".  The
  823. backslash, `\', is the TeX equivalent of `@'.)
  824.   TeX also provides the line number in the Texinfo source file and the
  825. text of the offending line, which is marked at all the places that TeX
  826. knows how to hyphenate words.  *Note Catching Errors with TeX
  827. Formatting: Debugging with TeX, for more information about typesetting
  828. errors.
  829.   If the Texinfo file has an overfull hbox, you can rewrite the sentence
  830. so the overfull hbox does not occur, or you can decide to leave it.  A
  831. small excursion into the right margin often does not matter and may not
  832. even be noticeable.
  833.   However, unless told otherwise, TeX will print a large, ugly, black
  834. rectangle beside the line that contains the overful hbox.  This is so
  835. you will notice the location of the problem if you are correcting a
  836. draft.
  837.   To prevent such a monstrosity from marring your final printout, write
  838. the following in the beginning of the Texinfo file on a line of its own,
  839. before the `@titlepage' command:
  840.      @finalout
  841. File: texinfo.info,  Node: smallbook,  Next: A4 Paper,  Prev: Overfull hboxes,  Up: Format/Print Hardcopy
  842. Printing "Small" Books
  843. ======================
  844.   By default, TeX typesets pages for printing in an 8.5 by 11 inch
  845. format.  However, you can direct TeX to typeset a document in a 7 by
  846. 9.25 inch format that is suitable for bound books by inserting the
  847. following command on a line by itself at the beginning of the Texinfo
  848. file, before the title page:
  849.      @smallbook
  850. (Since regular sized books are often about 7 by 9.25 inches, this
  851. command might better have been called the `@regularbooksize' command,
  852. but it came to be called the `@smallbook' command by comparison to the
  853. 8.5 by 11 inch format.)
  854.   If you write the `@smallbook' command between the start-of-header and
  855. end-of-header lines, the Texinfo mode TeX region formatting command,
  856. `texinfo-tex-region', will format the region in "small" book size
  857. (*note Start of Header::.).
  858.   The Free Software Foundation distributes printed copies of `The GNU
  859. Emacs Manual' and other manuals in the "small" book size.  *Note
  860. `@smallexample' and `@smalllisp': smallexample & smalllisp, for
  861. information about commands that make it easier to produce examples for
  862. a smaller manual.
  863. File: texinfo.info,  Node: A4 Paper,  Next: Cropmarks and Magnification,  Prev: smallbook,  Up: Format/Print Hardcopy
  864. Printing on A4 Paper
  865. ====================
  866.   You can tell TeX to typeset a document for printing on European size
  867. A4 paper with the `@afourpaper' command.  Write the command on a line
  868. by itself between `@iftex' and `@end iftex' lines near the beginning of
  869. the Texinfo file, before the title page:
  870.   For example, this is how you would write the header for this manual:
  871.      \input texinfo    @c -*-texinfo-*-
  872.      @c %**start of header
  873.      @setfilename texinfo
  874.      @settitle Texinfo
  875.      @syncodeindex vr fn
  876.      @iftex
  877.      @afourpaper
  878.      @end iftex
  879.      @c %**end of header
  880. File: texinfo.info,  Node: Cropmarks and Magnification,  Prev: A4 Paper,  Up: Format/Print Hardcopy
  881. Cropmarks and Magnification
  882. ===========================
  883.   You can attempt to direct TeX to print cropmarks at the corners of
  884. pages with the `@cropmarks' command.  Write the `@cropmarks' command on
  885. a line by itself between `@iftex' and `@end iftex' lines near the
  886. beginning of the Texinfo file, before the title page, like this:
  887.      @iftex
  888.      @cropmarks
  889.      @end iftex
  890.   This command is mainly for printers that typeset several pages on one
  891. sheet of film; but you can attempt to use it to mark the corners of a
  892. book set to 7 by 9.25 inches with the `@smallbook' command.  (Printers
  893. will not produce cropmarks for regular sized output that is printed on
  894. regular sized paper.)  Since different printing machines work in
  895. different ways, you should explore the use of this command with a
  896. spirit of adventure.  You may have to redefine the command in the
  897. `texinfo.tex' definitions file.
  898.   You can attempt to direct TeX to typeset pages larger or smaller than
  899. usual with the `\mag' TeX command.  Everything that is typeset is
  900. scaled proportionally larger or smaller.  (`\mag' stands for
  901. "magnification".)  This is *not* a Texinfo @-command, but is a PlainTeX
  902. command that is prefixed with a backslash.  You have to write this
  903. command between `@tex' and `@end tex' (*note Using Ordinary TeX
  904. Commands: Using Ordinary TeX Commands.).
  905.   Follow the `\mag' command with an `=' and then a number that is 1000
  906. times the magnification you desire.  For example, to print pages at 1.2
  907. normal size, write the following near the beginning of the Texinfo
  908. file, before the title page:
  909.      @tex
  910.      \mag=1200
  911.      @end tex
  912.   With some printing technologies, you can print normal-sized copies
  913. that look better than usual by using a larger-than-normal master.
  914.   Depending on your system, `\mag' may not work or may work only at
  915. certain magnifications.  Be prepared to experiment.
  916. File: texinfo.info,  Node: Create an Info File,  Next: Install an Info File,  Prev: Format/Print Hardcopy,  Up: Top
  917. Creating an Info File
  918. *********************
  919.   `makeinfo' is a utility that converts a Texinfo file into an Info
  920. file; `texinfo-format-region' and `texinfo-format-buffer' are GNU Emacs
  921. functions that do the same.
  922.   A Texinfo file must possess an `@setfilename' line near its
  923. beginning, otherwise the Info formatting commands will fail.
  924.   For information on installing the Info file in the Info system, see
  925. *Note Install an Info File::.
  926. * Menu:
  927. * makeinfo advantages::         `makeinfo' provides better error checking.
  928. * Invoking makeinfo::           How to run `makeinfo' from a shell.
  929. * makeinfo options::            Specify fill-column and other options.
  930. * Pointer Validation::          How to check that pointers point somewhere.
  931. * makeinfo in Emacs::           How to run `makeinfo' from Emacs.
  932. * texinfo-format commands::     Two Info formatting commands written
  933.                                   in Emacs Lisp are an alternative
  934.                                   to `makeinfo'.
  935. * Batch Formatting::            How to format for Info in Emacs Batch mode.
  936. * Tag and Split Files::         How tagged and split files help Info
  937.                                   to run better.
  938. File: texinfo.info,  Node: makeinfo advantages,  Next: Invoking makeinfo,  Prev: Create an Info File,  Up: Create an Info File
  939. `makeinfo' Preferred
  940. ====================
  941.   The `makeinfo' utility creates an Info file from a Texinfo source
  942. file more quickly than either of the Emacs formatting commands and
  943. provides better error messages.  We recommend it.  `makeinfo' is a C
  944. program that is independent of Emacs.  You do not need to run Emacs to
  945. use `makeinfo', which means you can use `makeinfo' on machines that are
  946. too small to run Emacs. You can run `makeinfo' in any one of three
  947. ways: from an operating system shell, from a shell inside Emacs, or by
  948. typing a key command in Texinfo mode in Emacs.
  949.   The `texinfo-format-region' and the `texinfo-format-buffer' commands
  950. are useful if you cannot run `makeinfo'.  Also, in some circumstances,
  951. they format short regions or buffers more quickly than `makeinfo'.
  952. File: texinfo.info,  Node: Invoking makeinfo,  Next: makeinfo options,  Prev: makeinfo advantages,  Up: Create an Info File
  953. Running `makeinfo' from a Shell
  954. ===============================
  955.   To create an Info file from a Texinfo file, type `makeinfo' followed
  956. by the name of the Texinfo file.  Thus, to create the Info file for
  957. Bison, type the following at the shell prompt (where `%' is the prompt):
  958.      % makeinfo bison.texinfo
  959.   (You can run a shell inside Emacs by typing `M-x shell'.)
  960.   Sometimes you will want to specify options.  For example, if you wish
  961. to discover which version of `makeinfo' you are using, type:
  962.      % makeinfo --version
  963.   *Note makeinfo options::, for more information.
  964.