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

  1. This is Info file makeinfo.info, produced by Makeinfo-1.64 from the
  2. input file makeinfo.texi.
  3. This file is an extract from the `Texinfo' manual.
  4. It documents `makeinfo', a program that converts Texinfo files into
  5. Info files or in AmigaGuide
  6.  hypertext files.
  7. Copyright (C) 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
  8. Permission is granted to make and distribute verbatim copies of this
  9. manual provided the copyright notice and this permission notice are
  10. preserved on all copies.
  11. Permission is granted to copy and distribute modified versions of this
  12. manual under the conditions for verbatim copying, provided that the
  13. entire resulting derived work is distributed under the terms of a
  14. permission notice identical to this one.
  15. Permission is granted to copy and distribute translations of this manual
  16. into another language, under the above conditions for modified versions,
  17. except that this permission notice may be stated in a translation
  18. approved by the Free Software Foundation.
  19. File: makeinfo.info,  Node: Top,  Prev: (dir),  Up: (dir)
  20. What is `makeinfo'?
  21. *******************
  22. `makeinfo' is a program for converting "TeXinfo" files into "Info"
  23. files or "AmigaGuide
  24. " hypertext files.  TeXinfo is a documentation
  25. system that uses a single source file to produce both on-line
  26. information and printed output.
  27. You can read the on-line information using Info; type `info' to learn
  28. about Info.  *Note Texinfo: (texinfo)Top, to learn about the TeXinfo
  29. documentation system.
  30. * Menu:
  31. * Formatting Control::          Controlling the width of lines, paragraph
  32.                                 indentation, and other similar formatting.
  33. * Options::                     Command line options which control the
  34.                                 behaviour of Makeinfo.
  35. * Pointer Validation::          How Makeinfo can help you to track node
  36.                                 references through complex Texinfo files.
  37. * The Macro Facility::          Makeinfo allows the use of "macros".
  38. * Index::                       Index of Concepts.
  39. File: makeinfo.info,  Node: Formatting Control,  Next: Options,  Prev: Top,  Up: Top
  40. Controlling Paragraph Formats
  41. =============================
  42. Without any special options, `makeinfo' "fills" the paragraphs that it
  43. outputs to an Info file.  Filling is the process of breaking and
  44. connecting lines so that lines are the same length as or shorter than
  45. the number specified as the fill column.  Lines are broken between
  46. words.  With `makeinfo', you can control:
  47.    * The width of each paragraph (the "fill-column").
  48.    * The amount of indentation that the first line of each paragraph
  49.      receives (the "paragraph-indentation").
  50. File: makeinfo.info,  Node: Options,  Next: Pointer Validation,  Prev: Formatting Control,  Up: Top
  51. Command Line Options
  52. ====================
  53. The following command line options are available for `makeinfo'.
  54. `-D VAR'
  55.      Cause VAR to be defined.  This is equivalent to `@set VAR' in the
  56.      Texinfo file.
  57. `--error-limit LIMIT'
  58.      Set the maximum number of errors that `makeinfo' will report
  59.      before exiting (on the assumption that continuing would be
  60.      useless).  The default number of errors that can be reported before
  61.      `makeinfo' gives up is 100.
  62. `--fill-column WIDTH'
  63.      Specify the maximum number of columns in a line; this is the
  64.      right-hand edge of a line.  Paragraphs that are filled will be
  65.      filled to this width.  The default value for `fill-column' is 72.
  66. `--footnote-style STYLE'
  67.      Set the footnote style to STYLE, either `end' for the end node
  68.      style or `separate' for the separate node style.  The value set by
  69.      this option overrides the value set in a Texinfo file by an
  70.      `@footnotestyle' command.  When the footnote style is `separate',
  71.      `makeinfo' makes a new node containing the footnotes found in the
  72.      current node.  When the footnote style is `end', `makeinfo' places
  73.      the footnote references at the end of the current node.
  74. `-I DIR'
  75.      Add `dir' to the directory search list for finding files that are
  76.      included using the `@include' command.  By default, `makeinfo'
  77.      searches only the current directory.
  78. `--no-headers'
  79.      Do not include menus or node lines in the output.  This results in
  80.      an ASCII file that you cannot read in Info since it does not
  81.      contain the requisite nodes or menus; but you can print such a
  82.      file in a single, typewriter-like font and produce acceptable
  83.      output.
  84. `--no-split'
  85.      Suppress the splitting stage of `makeinfo'.  Normally, large
  86.      output files (where the size is greater than 70k bytes) are split
  87.      into smaller subfiles, each one approximately 50k bytes.  If you
  88.      specify `--no-split', `makeinfo' will not split up the output file.
  89. `--no-pointer-validate'
  90. `--no-validate'
  91.      Suppress the pointer-validation phase of `makeinfo'.  Normally,
  92.      after a Texinfo file is processed, some consistency checks are
  93.      made to ensure that cross references can be resolved, etc.  *Note
  94.      Pointer Validation::.
  95. `--no-warn'
  96.      Suppress the output of warning messages.  This does *not* suppress
  97.      the output of error messages, only warnings.  You might want this
  98.      if the file you are creating has examples of Texinfo cross
  99.      references within it, and the nodes that are referenced do not
  100.      actually exist.
  101. `--no-number-footnotes'
  102.      Supress automatic footnote numbering.  By default, `makeinfo'
  103.      numbers each footnote sequentially in a single node, resetting the
  104.      current footnote number to 1 at the start of each node.
  105. `--output FILE'
  106. `-o FILE'
  107.      Specify that the output should be directed to FILE and not to the
  108.      file name specified in the `@setfilename' command found in the
  109.      Texinfo source.  FILE can be the special token `-', which specifies
  110.      standard output.
  111. `--paragraph-indent INDENT'
  112.      Set the paragraph indentation style to INDENT.  The value set by
  113.      this option overrides the value set in a Texinfo file by an
  114.      `@paragraphindent' command.  The value of INDENT is interpreted as
  115.      follows:
  116.         * If the value of INDENT is `asis', do not change the existing
  117.           indentation at the starts of paragraphs.
  118.         * If the value of INDENT is zero, delete any existing
  119.           indentation.
  120.         * If the value of INDENT is greater than zero, indent each
  121.           paragraph by that number of spaces.
  122. `--reference-limit LIMIT'
  123.      Set the value of the number of references to a node that
  124.      `makeinfo' will make without reporting a warning.  If a node has
  125.      more than this number of references in it, `makeinfo' will make the
  126.      references but also report a warning.
  127. `-U VAR'
  128.      Cause VAR to be undefined.  This is equivalent to `@clear VAR' in
  129.      the Texinfo file.
  130. `--verbose'
  131.      Cause `makeinfo' to display messages saying what it is doing.
  132.      Normally, `makeinfo' only outputs messages if there are errors or
  133.      warnings.
  134. `--version'
  135.      Report the version number of this copy of `makeinfo'.
  136. `--amiga'
  137.      Converts a "TeXinfo" file to "AmigaGuide
  138. " V34 hypertext format.
  139. `--amiga-39'
  140.      Converts a "TeXinfo" file to "AmigaGuide
  141. " V39 hypertext format.
  142. `--amiga-40'
  143.      Converts a "TeXinfo" file to "AmigaGuide
  144. " V40 hypertext format.
  145. `--index-button-length NUMBER'
  146.      An index button will have a minimum length of NUMBER. The default
  147.      value for `index-button-length' is 40. (Only used if converting to
  148.      an "AmigaGuide
  149. " file).
  150. `--menu-button-length NUMBER'
  151.      A menu button will have a minimum length of NUMBER. The default
  152.      value for `menu-button-length' is 25. (Only used if converting to
  153.      an "AmigaGuide
  154. " file).
  155. `--help'
  156.      Show a summary of the commend line arguments to `makeinfo'.
  157. File: makeinfo.info,  Node: Pointer Validation,  Next: The Macro Facility,  Prev: Options,  Up: Top
  158. Pointer Validation
  159. ==================
  160. If you do not suppress pointer-validation (by using the
  161. `--no-pointer-validation' option), `makeinfo' will check the validity
  162. of the final Info file.  Mostly, this means ensuring that nodes you
  163. have referenced really exist.  Here is a complete list of what is
  164. checked:
  165.   1. If a `Next', `Previous', or `Up' node reference is a reference to a
  166.      node in the current file and is not an external reference such as
  167.      to `(dir)', then the referenced node must exist.
  168.   2. In every node, if the `Previous' node is different from the `Up'
  169.      node, then the `Previous' node must also be pointed to by a `Next'
  170.      node.
  171.   3. Every node except the `Top' node must have an `Up' pointer.
  172.   4. The node referenced by an `Up' pointer must contain a reference to
  173.      the current node in some manner other than through a `Next'
  174.      reference.  This includes menu entries and cross references.
  175.   5. If the `Next' reference of a node is not the same as the `Next'
  176.      reference of the `Up' reference, then the node referenced by the
  177.      `Next' pointer must have a `Previous' pointer that points back to
  178.      the current node.  This rule allows the last node in a section to
  179.      point to the first node of the next chapter.
  180. File: makeinfo.info,  Node: The Macro Facility,  Next: Index,  Prev: Pointer Validation,  Up: Top
  181. The Macro Facility
  182. ==================
  183. This chapter describes the new macro facility.
  184. A "macro"  is a command that you define in terms of other commands.  It
  185. doesn't exist as a TeXinfo command until you define it as part of the
  186. input file to `Makeinfo'.  Once the command exists, it behaves much as
  187. any other TeXinfo command.  Macros are a useful way to ease the details
  188. and tedium of writing a `correct' info file.  The following sections
  189. explain how to write and invoke macros.
  190. * Menu:
  191. * How to Use Macros in TeXinfo::
  192.                         How to use the macro facility.
  193. * Using Macros Recursively::
  194.                         How to write a macro which does (or doesn't) recurse.
  195. * Using TeXinfo Macros As Arguments::
  196.                         Passing a macro as an argument.
  197. File: makeinfo.info,  Node: How to Use Macros in TeXinfo,  Next: Using Macros Recursively,  Up: The Macro Facility
  198. How to Use Macros in TeXinfo
  199. ----------------------------
  200. Using macros in TeXinfo is easy.  First you define the macro.  After
  201. that, the macro command is available as a normal TeXinfo command.  Here
  202. is what a definition looks like:
  203.      @macro NAME{ARG1, ... ARGN}
  204.      TEXINFO COMMANDS...
  205.      @end macro
  206. The arguments that you specify that the macro takes are expanded with
  207. the actual parameters used when calling the macro if they are seen
  208. surrounded by backslashes.  For example, here is a definition of
  209. `@codeitem', a macro which can be used wherever `@item' can be used,
  210. but which surrounds its argument with `@code{...}'.
  211.      @macro codeitem{item}
  212.      @item @code{\item\}
  213.      @end macro
  214. When the macro is expanded, all of the text between the `@macro' and
  215. `@end macro' is inserted into the document at the expansion point, with
  216. the actual parameters substituted for the named parameters.  So, a call
  217. to the above macro might look like:
  218.      @codeitem{Foo}
  219. and `Makeinfo' would execute the following code:
  220.      @item @code{Foo}
  221. A special case is made for macros which only take a single argument, and
  222. which are invoked without any brace characters (i.e., `{'...`}')
  223. surrounding an argument; the rest of the line is supplied as is as the
  224. sole argument to the macro.  This special case allows one to redefine
  225. some standard TeXinfo commands without modifying the input file.  Along
  226. with the non-recursive action of macro invocation, one can easily
  227. redefine the sectioning commands to also provide index entries:
  228.      @macro chapter{name}
  229.      @chapter \name\
  230.      @findex \name\
  231.      @end macro
  232. Thus, the text:
  233.      @chapter strlen
  234. will expand to:
  235.      @chapter strlen
  236.      @findex strlen
  237. File: makeinfo.info,  Node: Using Macros Recursively,  Next: Using TeXinfo Macros As Arguments,  Prev: How to Use Macros in TeXinfo,  Up: The Macro Facility
  238. Using Macros Recursively
  239. ------------------------
  240. Normally, while a particular macro is executing, any call to that macro
  241. will be seen as a call to a builtin TeXinfo command.  This allows one
  242. to redefine a builtin TeXinfo command as a macro, and then use that
  243. command within the definition of the macro itself.  For example, one
  244. might wish to make sure that whereever a term was defined with
  245. `@dfn{...}', the location of the definition would appear in the concept
  246. index for the manual.  Here is a macro which redefines `@dfn' to do
  247. just that:
  248.      @macro dfn{text}
  249.      @dfn{\text\}
  250.      @cpindex \text\
  251.      @end macro
  252. Note that we used the builtin TeXinfo command `@dfn' within our
  253. overriding macro definition.
  254. This behaviour itself can be overridden for macro execution by writing a
  255. special "macro control command"  in the definition of the macro.  The
  256. command is considered special because it doesn't affect the output text
  257. directly, rather, it affects the way in which the macro is defined.  One
  258. such special command is `@allow-recursion'.
  259.      @macro silly{arg}
  260.      @allow-recursion
  261.      \arg\
  262.      @end macro
  263. Now `@silly' is a macro that can be used within a call to itself:
  264.      This text @silly{@silly{some text}} is ``some text''.
  265. File: makeinfo.info,  Node: Using TeXinfo Macros As Arguments,  Prev: Using Macros Recursively,  Up: The Macro Facility
  266. Using TeXinfo Macros As Arguments
  267. ---------------------------------
  268. * Menu:
  269. * macro:                                The Macro Facility.
  270. * macro control command:                Using Macros Recursively.
  271. * Pointer validation with makeinfo:     Pointer Validation.
  272. * Validation of pointers:               Pointer Validation.
  273. How to use TeXinfo macros as arguments to other TeXinfo macros.
  274. File: makeinfo.info,  Node: Index,  Prev: The Macro Facility,  Up: Top
  275. Index
  276. =====
  277. * Menu:
  278. * macro control command:                Using Macros Recursively.
  279. * Pointer validation with makeinfo:     Pointer Validation.
  280. * Validation of pointers:               Pointer Validation.
  281. Tag Table:
  282. Node: Top
  283. Node: Formatting Control
  284. Node: Options
  285. Node: Pointer Validation
  286. Node: The Macro Facility
  287. Node: How to Use Macros in TeXinfo
  288. 10011
  289. Node: Using Macros Recursively
  290. 11839
  291. Node: Using TeXinfo Macros As Arguments
  292. 13249
  293. Node: Index
  294. 13762
  295. End Tag Table
  296.