XEmacs 21.4.22.
[chise/xemacs-chise.git-] / info / texinfo.info-2
1 This is ../info/texinfo.info, produced by makeinfo version 4.8 from
2 texinfo.texi.
3
4 INFO-DIR-SECTION Texinfo documentation system
5 START-INFO-DIR-ENTRY
6 * Texinfo: (texinfo).           The GNU documentation format.
7 * install-info: (texinfo)Invoking install-info. Updating info/dir entries.
8 * texi2dvi: (texinfo)Format with texi2dvi.      Printing Texinfo documentation.
9 * texindex: (texinfo)Format with tex/texindex.  Sorting Texinfo index files.
10 * makeinfo: (texinfo)makeinfo Preferred.        Translate Texinfo source.
11 END-INFO-DIR-ENTRY
12
13   This file documents Texinfo, a documentation system that can produce
14 both on-line information and a printed manual from a single source file.
15
16   Copyright (C) 1988, 90, 91, 92, 93, 95, 96, 97, 98 Free Software
17 Foundation, Inc.
18
19   This edition is for Texinfo version 3.12.
20
21   Permission is granted to make and distribute verbatim copies of this
22 manual provided the copyright notice and this permission notice are
23 preserved on all copies.
24
25   Permission is granted to copy and distribute modified versions of this
26 manual under the conditions for verbatim copying, provided that the
27 entire resulting derived work is distributed under the terms of a
28 permission notice identical to this one.
29
30   Permission is granted to copy and distribute translations of this
31 manual into another language, under the above conditions for modified
32 versions, except that this permission notice may be stated in a
33 translation approved by the Free Software Foundation.
34
35 \1f
36 File: texinfo.info,  Node: Def Cmd Template,  Next: Optional Arguments,  Prev: Definition Commands,  Up: Definition Commands
37
38 15.1 The Template for a Definition
39 ==================================
40
41 The `@deffn' command is used for definitions of entities that resemble
42 functions.  To write a definition using the `@deffn' command, write the
43 `@deffn' command at the beginning of a line and follow it on the same
44 line by the category of the entity, the name of the entity itself, and
45 its arguments (if any).  Then write the body of the definition on
46 succeeding lines.  (You may embed examples in the body.)  Finally, end
47 the definition with an `@end deffn' command written on a line of its
48 own.  (The other definition commands follow the same format.)
49
50   The template for a definition looks like this:
51
52      @deffn CATEGORY NAME ARGUMENTS...
53      BODY-OF-DEFINITION
54      @end deffn
55
56 For example,
57
58      @deffn Command forward-word count
59      This command moves point forward @var{count} words
60      (or backward if @var{count} is negative). ...
61      @end deffn
62
63 produces
64
65       -- Command: forward-word count
66           This function moves point forward COUNT words (or backward if
67           COUNT is negative). ...
68
69   Capitalize the category name like a title.  If the name of the
70 category contains spaces, as in the phrase `Interactive Command', write
71 braces around it.  For example:
72
73      @deffn {Interactive Command} isearch-forward
74      ...
75      @end deffn
76
77 Otherwise, the second word will be mistaken for the name of the entity.
78
79   Some of the definition commands are more general than others.  The
80 `@deffn' command, for example, is the general definition command for
81 functions and the like--for entities that may take arguments.  When you
82 use this command, you specify the category to which the entity belongs.
83 The `@deffn' command possesses three predefined, specialized
84 variations, `@defun', `@defmac', and `@defspec', that specify the
85 category for you: "Function", "Macro", and "Special Form" respectively.
86 (In Lisp, a special form is an entity much like a function.)  The
87 `@defvr' command also is accompanied by several predefined, specialized
88 variations for describing particular kinds of variables.
89
90   The template for a specialized definition, such as `@defun', is
91 similar to the template for a generalized definition, except that you
92 do not need to specify the category:
93
94      @defun NAME ARGUMENTS...
95      BODY-OF-DEFINITION
96      @end defun
97
98 Thus,
99
100      @defun buffer-end flag
101      This function returns @code{(point-min)} if @var{flag}
102      is less than 1, @code{(point-max)} otherwise.
103      ...
104      @end defun
105
106 produces
107
108       -- Function: buffer-end flag
109           This function returns `(point-min)' if FLAG is less than 1,
110           `(point-max)' otherwise.  ...
111
112 *Note Sample Function Definition: Sample Function Definition, for a
113 more detailed example of a function definition, including the use of
114 `@example' inside the definition.
115
116   The other specialized commands work like `@defun'.
117
118 \1f
119 File: texinfo.info,  Node: Optional Arguments,  Next: deffnx,  Prev: Def Cmd Template,  Up: Definition Commands
120
121 15.2 Optional and Repeated Arguments
122 ====================================
123
124 Some entities take optional or repeated arguments, which may be
125 specified by a distinctive glyph that uses square brackets and
126 ellipses.  For example, a special form often breaks its argument list
127 into separate arguments in more complicated ways than a straightforward
128 function.
129
130   An argument enclosed within square brackets is optional.  Thus,
131 [OPTIONAL-ARG] means that OPTIONAL-ARG is optional.  An argument
132 followed by an ellipsis is optional and may be repeated more than once.
133 Thus, REPEATED-ARGS... stands for zero or more arguments.  Parentheses
134 are used when several arguments are grouped into additional levels of
135 list structure in Lisp.
136
137   Here is the `@defspec' line of an example of an imaginary special
138 form:
139
140       -- Special Form: foobar (VAR [FROM TO [INC]]) BODY...
141
142 In this example, the arguments FROM and TO are optional, but must both
143 be present or both absent.  If they are present, INC may optionally be
144 specified as well.  These arguments are grouped with the argument VAR
145 into a list, to distinguish them from BODY, which includes all
146 remaining elements of the form.
147
148   In a Texinfo source file, this `@defspec' line is written like this
149 (except it would not be split over two lines, as it is in this example).
150
151      @defspec foobar (@var{var} [@var{from} @var{to}
152           [@var{inc}]]) @var{body}@dots{}
153
154 The function is listed in the Command and Variable Index under `foobar'.
155
156 \1f
157 File: texinfo.info,  Node: deffnx,  Next: Def Cmds in Detail,  Prev: Optional Arguments,  Up: Definition Commands
158
159 15.3 Two or More `First' Lines
160 ==============================
161
162 To create two or more `first' or header lines for a definition, follow
163 the first `@deffn' line by a line beginning with `@deffnx'.  The
164 `@deffnx' command works exactly like `@deffn' except that it does not
165 generate extra vertical white space between it and the preceding line.
166
167   For example,
168
169      @deffn {Interactive Command} isearch-forward
170      @deffnx {Interactive Command} isearch-backward
171      These two search commands are similar except ...
172      @end deffn
173
174 produces
175
176  -- Interactive Command: isearch-forward
177  -- Interactive Command: isearch-backward
178      These two search commands are similar except ...
179
180   Each of the other definition commands has an `x' form: `@defunx',
181 `@defvrx', `@deftypefunx', etc.
182
183   The `x' forms work just like `@itemx'; see *Note `@itemx': itemx.
184
185 \1f
186 File: texinfo.info,  Node: Def Cmds in Detail,  Next: Def Cmd Conventions,  Prev: deffnx,  Up: Definition Commands
187
188 15.4 The Definition Commands
189 ============================
190
191 Texinfo provides more than a dozen definition commands, all of which
192 are described in this section.
193
194   The definition commands automatically enter the name of the entity in
195 the appropriate index: for example, `@deffn', `@defun', and `@defmac'
196 enter function names in the index of functions; `@defvr' and `@defvar'
197 enter variable names in the index of variables.
198
199   Although the examples that follow mostly illustrate Lisp, the commands
200 can be used for other programming languages.
201
202 * Menu:
203
204 * Functions Commands::          Commands for functions and similar entities.
205 * Variables Commands::          Commands for variables and similar entities.
206 * Typed Functions::             Commands for functions in typed languages.
207 * Typed Variables::             Commands for variables in typed languages.
208 * Abstract Objects::            Commands for object-oriented programming.
209 * Data Types::                  The definition command for data types.
210
211 \1f
212 File: texinfo.info,  Node: Functions Commands,  Next: Variables Commands,  Prev: Def Cmds in Detail,  Up: Def Cmds in Detail
213
214 15.4.1 Functions and Similar Entities
215 -------------------------------------
216
217 This section describes the commands for describing functions and similar
218 entities:
219
220 `@deffn CATEGORY NAME ARGUMENTS...'
221      The `@deffn' command is the general definition command for
222      functions, interactive commands, and similar entities that may take
223      arguments.  You must choose a term to describe the category of
224      entity being defined; for example, "Function" could be used if the
225      entity is a function.  The `@deffn' command is written at the
226      beginning of a line and is followed on the same line by the
227      category of entity being described, the name of this particular
228      entity, and its arguments, if any.  Terminate the definition with
229      `@end deffn' on a line of its own.
230
231      For example, here is a definition:
232
233           @deffn Command forward-char nchars
234           Move point forward @var{nchars} characters.
235           @end deffn
236
237      This shows a rather terse definition for a "command" named
238      `forward-char' with one argument, NCHARS.
239
240      `@deffn' prints argument names such as NCHARS in italics or upper
241      case, as if `@var' had been used, because we think of these names
242      as metasyntactic variables--they stand for the actual argument
243      values.  Within the text of the description, write an argument name
244      explicitly with `@var' to refer to the value of the argument.  In
245      the example above, we used `@var{nchars}' in this way.
246
247      The template for `@deffn' is:
248
249           @deffn CATEGORY NAME ARGUMENTS...
250           BODY-OF-DEFINITION
251           @end deffn
252
253 `@defun NAME ARGUMENTS...'
254      The `@defun' command is the definition command for functions.
255      `@defun' is equivalent to `@deffn Function ...'.
256
257      For example,
258
259           @defun set symbol new-value
260           Change the value of the symbol @var{symbol}
261           to @var{new-value}.
262           @end defun
263
264      shows a rather terse definition for a function `set' whose
265      arguments are SYMBOL and NEW-VALUE.  The argument names on the
266      `@defun' line automatically appear in italics or upper case as if
267      they were enclosed in `@var'.  Terminate the definition with `@end
268      defun' on a line of its own.
269
270      The template is:
271
272           @defun FUNCTION-NAME ARGUMENTS...
273           BODY-OF-DEFINITION
274           @end defun
275
276      `@defun' creates an entry in the index of functions.
277
278 `@defmac NAME ARGUMENTS...'
279      The `@defmac' command is the definition command for macros.
280      `@defmac' is equivalent to `@deffn Macro ...' and works like
281      `@defun'.
282
283 `@defspec NAME ARGUMENTS...'
284      The `@defspec' command is the definition command for special
285      forms.  (In Lisp, a special form is an entity much like a function,
286      *note Special Forms: (lispref)Special Forms.)  `@defspec' is
287      equivalent to `@deffn {Special Form} ...' and works like `@defun'.
288
289 \1f
290 File: texinfo.info,  Node: Variables Commands,  Next: Typed Functions,  Prev: Functions Commands,  Up: Def Cmds in Detail
291
292 15.4.2 Variables and Similar Entities
293 -------------------------------------
294
295 Here are the commands for defining variables and similar entities:
296
297 `@defvr CATEGORY NAME'
298      The `@defvr' command is a general definition command for something
299      like a variable--an entity that records a value.  You must choose
300      a term to describe the category of entity being defined; for
301      example, "Variable" could be used if the entity is a variable.
302      Write the `@defvr' command at the beginning of a line and followed
303      it on the same line by the category of the entity and the name of
304      the entity.
305
306      Capitalize the category name like a title.  If the name of the
307      category contains spaces, as in the name "User Option", enclose it
308      in braces.  Otherwise, the second word will be mistaken for the
309      name of the entity.  For example,
310
311           @defvr {User Option} fill-column
312           This buffer-local variable specifies
313           the maximum width of filled lines.
314           ...
315           @end defvr
316
317      Terminate the definition with `@end defvr' on a line of its own.
318
319      The template is:
320
321           @defvr CATEGORY NAME
322           BODY-OF-DEFINITION
323           @end defvr
324
325      `@defvr' creates an entry in the index of variables for NAME.
326
327 `@defvar NAME'
328      The `@defvar' command is the definition command for variables.
329      `@defvar' is equivalent to `@defvr Variable ...'.
330
331      For example:
332
333           @defvar kill-ring
334           ...
335           @end defvar
336
337      The template is:
338
339           @defvar NAME
340           BODY-OF-DEFINITION
341           @end defvar
342
343      `@defvar' creates an entry in the index of variables for NAME.
344
345 `@defopt NAME'
346      The `@defopt' command is the definition command for "user
347      options", i.e., variables intended for users to change according to
348      taste; Emacs has many such (*note Variables: (xemacs)Variables.).
349      `@defopt' is equivalent to `@defvr {User Option} ...' and works
350      like `@defvar'.
351
352 \1f
353 File: texinfo.info,  Node: Typed Functions,  Next: Typed Variables,  Prev: Variables Commands,  Up: Def Cmds in Detail
354
355 15.4.3 Functions in Typed Languages
356 -----------------------------------
357
358 The `@deftypefn' command and its variations are for describing
359 functions in languages in which you must declare types of variables and
360 functions, such as C and C++.
361
362 `@deftypefn CATEGORY DATA-TYPE NAME ARGUMENTS...'
363      The `@deftypefn' command is the general definition command for
364      functions and similar entities that may take arguments and that are
365      typed.  The `@deftypefn' command is written at the beginning of a
366      line and is followed on the same line by the category of entity
367      being described, the type of the returned value, the name of this
368      particular entity, and its arguments, if any.
369
370      For example,
371
372           @deftypefn {Library Function} int foobar
373              (int @var{foo}, float @var{bar})
374           ...
375           @end deftypefn
376
377      (where the text before the "...", shown above as two lines, would
378      actually be a single line in a real Texinfo file) produces the
379      following in Info:
380
381           -- Library Function: int foobar (int FOO, float BAR)
382           ...
383
384      This means that `foobar' is a "library function" that returns an
385      `int', and its arguments are FOO (an `int') and BAR (a `float').
386
387      The argument names that you write in `@deftypefn' are not subject
388      to an implicit `@var'--since the actual names of the arguments in
389      `@deftypefn' are typically scattered among data type names and
390      keywords, Texinfo cannot find them without help.  Instead, you
391      must write `@var' explicitly around the argument names.  In the
392      example above, the argument names are `foo' and `bar'.
393
394      The template for `@deftypefn' is:
395
396           @deftypefn CATEGORY DATA-TYPE NAME ARGUMENTS ...
397           BODY-OF-DESCRIPTION
398           @end deftypefn
399
400      Note that if the CATEGORY or DATA TYPE is more than one word then
401      it must be enclosed in braces to make it a single argument.
402
403      If you are describing a procedure in a language that has packages,
404      such as Ada, you might consider using `@deftypefn' in a manner
405      somewhat contrary to the convention described in the preceding
406      paragraphs.
407
408      For example:
409
410           @deftypefn stacks private push
411                   (@var{s}:in out stack;
412                   @var{n}:in integer)
413           ...
414           @end deftypefn
415
416      (The `@deftypefn' arguments are shown split into three lines, but
417      would be a single line in a real Texinfo file.)
418
419      In this instance, the procedure is classified as belonging to the
420      package `stacks' rather than classified as a `procedure' and its
421      data type is described as `private'.  (The name of the procedure
422      is `push', and its arguments are S and N.)
423
424      `@deftypefn' creates an entry in the index of functions for NAME.
425
426 `@deftypefun DATA-TYPE NAME ARGUMENTS...'
427      The `@deftypefun' command is the specialized definition command
428      for functions in typed languages.  The command is equivalent to
429      `@deftypefn Function ...'.
430
431      Thus,
432
433           @deftypefun int foobar (int @var{foo}, float @var{bar})
434           ...
435           @end deftypefun
436
437      produces the following in Info:
438
439           -- Function: int foobar (int FOO, float BAR)
440           ...
441
442      The template is:
443
444           @deftypefun TYPE NAME ARGUMENTS...
445           BODY-OF-DESCRIPTION
446           @end deftypefun
447
448      `@deftypefun' creates an entry in the index of functions for NAME.
449
450
451 \1f
452 File: texinfo.info,  Node: Typed Variables,  Next: Abstract Objects,  Prev: Typed Functions,  Up: Def Cmds in Detail
453
454 15.4.4 Variables in Typed Languages
455 -----------------------------------
456
457 Variables in typed languages are handled in a manner similar to
458 functions in typed languages.  *Note Typed Functions::.  The general
459 definition command `@deftypevr' corresponds to `@deftypefn' and the
460 specialized definition command `@deftypevar' corresponds to
461 `@deftypefun'.
462
463 `@deftypevr CATEGORY DATA-TYPE NAME'
464      The `@deftypevr' command is the general definition command for
465      something like a variable in a typed language--an entity that
466      records a value.  You must choose a term to describe the category
467      of the entity being defined; for example, "Variable" could be used
468      if the entity is a variable.
469
470      The `@deftypevr' command is written at the beginning of a line and
471      is followed on the same line by the category of the entity being
472      described, the data type, and the name of this particular entity.
473
474      For example:
475
476           @deftypevr {Global Flag} int enable
477           ...
478           @end deftypevr
479
480      produces the following in Info:
481
482           -- Global Flag: int enable
483           ...
484
485      The template is:
486
487           @deftypevr CATEGORY DATA-TYPE NAME
488           BODY-OF-DESCRIPTION
489           @end deftypevr
490
491      `@deftypevr' creates an entry in the index of variables for NAME.
492
493 `@deftypevar DATA-TYPE NAME'
494      The `@deftypevar' command is the specialized definition command
495      for variables in typed languages.  `@deftypevar' is equivalent to
496      `@deftypevr Variable ...'.
497
498      For example:
499
500           @deftypevar int fubar
501           ...
502           @end deftypevar
503
504      produces the following in Info:
505
506           -- Variable: int fubar
507           ...
508
509      The template is:
510
511           @deftypevar DATA-TYPE NAME
512           BODY-OF-DESCRIPTION
513           @end deftypevar
514
515      `@deftypevar' creates an entry in the index of variables for NAME.
516
517 \1f
518 File: texinfo.info,  Node: Abstract Objects,  Next: Data Types,  Prev: Typed Variables,  Up: Def Cmds in Detail
519
520 15.4.5 Object-Oriented Programming
521 ----------------------------------
522
523 Here are the commands for formatting descriptions about abstract
524 objects, such as are used in object-oriented programming.  A class is a
525 defined type of abstract object.  An instance of a class is a
526 particular object that has the type of the class.  An instance variable
527 is a variable that belongs to the class but for which each instance has
528 its own value.
529
530   In a definition, if the name of a class is truly a name defined in the
531 programming system for a class, then you should write an `@code' around
532 it.  Otherwise, it is printed in the usual text font.
533
534 `@defcv CATEGORY CLASS NAME'
535      The `@defcv' command is the general definition command for
536      variables associated with classes in object-oriented programming.
537      The `@defcv' command is followed by three arguments: the category
538      of thing being defined, the class to which it belongs, and its
539      name.  Thus,
540
541           @defcv {Class Option} Window border-pattern
542           ...
543           @end defcv
544
545      illustrates how you would write the first line of a definition of
546      the `border-pattern' class option of the class `Window'.
547
548      The template is
549
550           @defcv CATEGORY CLASS NAME
551           ...
552           @end defcv
553
554      `@defcv' creates an entry in the index of variables.
555
556 `@defivar CLASS NAME'
557      The `@defivar' command is the definition command for instance
558      variables in object-oriented programming.  `@defivar' is
559      equivalent to `@defcv {Instance Variable} ...'
560
561      The template is:
562
563           @defivar CLASS INSTANCE-VARIABLE-NAME
564           BODY-OF-DEFINITION
565           @end defivar
566
567      `@defivar' creates an entry in the index of variables.
568
569 `@defop CATEGORY CLASS NAME ARGUMENTS...'
570      The `@defop' command is the general definition command for
571      entities that may resemble methods in object-oriented programming.
572      These entities take arguments, as functions do, but are associated
573      with particular classes of objects.
574
575      For example, some systems have constructs called "wrappers" that
576      are associated with classes as methods are, but that act more like
577      macros than like functions.  You could use `@defop Wrapper' to
578      describe one of these.
579
580      Sometimes it is useful to distinguish methods and "operations".
581      You can think of an operation as the specification for a method.
582      Thus, a window system might specify that all window classes have a
583      method named `expose'; we would say that this window system
584      defines an `expose' operation on windows in general.  Typically,
585      the operation has a name and also specifies the pattern of
586      arguments; all methods that implement the operation must accept
587      the same arguments, since applications that use the operation do
588      so without knowing which method will implement it.
589
590      Often it makes more sense to document operations than methods.  For
591      example, window application developers need to know about the
592      `expose' operation, but need not be concerned with whether a given
593      class of windows has its own method to implement this operation.
594      To describe this operation, you would write:
595
596           @defop Operation windows expose
597
598      The `@defop' command is written at the beginning of a line and is
599      followed on the same line by the overall name of the category of
600      operation, the name of the class of the operation, the name of the
601      operation, and its arguments, if any.
602
603      The template is:
604
605           @defop CATEGORY CLASS NAME ARGUMENTS...
606           BODY-OF-DEFINITION
607           @end defop
608
609      `@defop' creates an entry, such as ``expose' on `windows'', in the
610      index of functions.
611
612 `@defmethod CLASS NAME ARGUMENTS...'
613      The `@defmethod' command is the definition command for methods in
614      object-oriented programming.  A method is a kind of function that
615      implements an operation for a particular class of objects and its
616      subclasses.  In the Lisp Machine, methods actually were functions,
617      but they were usually defined with `defmethod'.
618
619      `@defmethod' is equivalent to `@defop Method ...'.  The command is
620      written at the beginning of a line and is followed by the name of
621      the class of the method, the name of the method, and its
622      arguments, if any.
623
624      For example,
625
626           @defmethod `bar-class' bar-method argument
627           ...
628           @end defmethod
629
630      illustrates the definition for a method called `bar-method' of the
631      class `bar-class'.  The method takes an argument.
632
633      The template is:
634
635           @defmethod CLASS METHOD-NAME ARGUMENTS...
636           BODY-OF-DEFINITION
637           @end defmethod
638
639      `@defmethod' creates an entry, such as ``bar-method' on
640      `bar-class'', in the index of functions.
641
642 `@deftypemethod CLASS DATA-TYPE NAME ARGUMENTS...'
643      The `@deftypemethod' command is the definition command for methods
644      in object-oriented typed languages, such as C++ and Java.  It is
645      similar to the `@defmethod' command with the addition of the
646      DATA-TYPE parameter to specify the return type of the method.
647
648
649 \1f
650 File: texinfo.info,  Node: Data Types,  Prev: Abstract Objects,  Up: Def Cmds in Detail
651
652 15.4.6 Data Types
653 -----------------
654
655 Here is the command for data types:
656
657 `@deftp CATEGORY NAME ATTRIBUTES...'
658      The `@deftp' command is the generic definition command for data
659      types.  The command is written at the beginning of a line and is
660      followed on the same line by the category, by the name of the type
661      (which is a word like `int' or `float'), and then by names of
662      attributes of objects of that type.  Thus, you could use this
663      command for describing `int' or `float', in which case you could
664      use `data type' as the category.  (A data type is a category of
665      certain objects for purposes of deciding which operations can be
666      performed on them.)
667
668      In Lisp, for example,  "pair" names a particular data type, and an
669      object of that type has two slots called the CAR and the CDR.
670      Here is how you would write the first line of a definition of
671      `pair'.
672
673           @deftp {Data type} pair car cdr
674           ...
675           @end deftp
676
677      The template is:
678
679           @deftp CATEGORY NAME-OF-TYPE ATTRIBUTES...
680           BODY-OF-DEFINITION
681           @end deftp
682
683      `@deftp' creates an entry in the index of data types.
684
685 \1f
686 File: texinfo.info,  Node: Def Cmd Conventions,  Next: Sample Function Definition,  Prev: Def Cmds in Detail,  Up: Definition Commands
687
688 15.5 Conventions for Writing Definitions
689 ========================================
690
691 When you write a definition using `@deffn', `@defun', or one of the
692 other definition commands, please take care to use arguments that
693 indicate the meaning, as with the COUNT argument to the `forward-word'
694 function.  Also, if the name of an argument contains the name of a
695 type, such as INTEGER, take care that the argument actually is of that
696 type.
697
698 \1f
699 File: texinfo.info,  Node: Sample Function Definition,  Prev: Def Cmd Conventions,  Up: Definition Commands
700
701 15.6 A Sample Function Definition
702 =================================
703
704 A function definition uses the `@defun' and `@end defun' commands.  The
705 name of the function follows immediately after the `@defun' command and
706 it is followed, on the same line, by the parameter list.
707
708   Here is a definition from *Note Calling Functions: (lispref)Calling
709 Functions.
710
711       -- Function: apply function &rest arguments
712           `apply' calls FUNCTION with ARGUMENTS, just like `funcall'
713           but with one difference: the last of ARGUMENTS is a list of
714           arguments to give to FUNCTION, rather than a single argument.
715           We also say that this list is "appended" to the other
716           arguments.
717
718           `apply' returns the result of calling FUNCTION.  As with
719           `funcall', FUNCTION must either be a Lisp function or a
720           primitive function; special forms and macros do not make
721           sense in `apply'.
722
723                (setq f 'list)
724                     => list
725                (apply f 'x 'y 'z)
726                error--> Wrong type argument: listp, z
727                (apply '+ 1 2 '(3 4))
728                     => 10
729                (apply '+ '(1 2 3 4))
730                     => 10
731
732                (apply 'append '((a b c) nil (x y z) nil))
733                     => (a b c x y z)
734
735           An interesting example of using `apply' is found in the
736           description of `mapcar'.
737
738   In the Texinfo source file, this example looks like this:
739
740      @defun apply function &rest arguments
741
742      @code{apply} calls @var{function} with
743      @var{arguments}, just like @code{funcall} but with one
744      difference: the last of @var{arguments} is a list of
745      arguments to give to @var{function}, rather than a single
746      argument.  We also say that this list is @dfn{appended}
747      to the other arguments.
748
749      @code{apply} returns the result of calling
750      @var{function}.  As with @code{funcall},
751      @var{function} must either be a Lisp function or a
752      primitive function; special forms and macros do not make
753      sense in @code{apply}.
754
755      @example
756      (setq f 'list)
757           @result{} list
758      (apply f 'x 'y 'z)
759      @error{} Wrong type argument: listp, z
760      (apply '+ 1 2 '(3 4))
761           @result{} 10
762      (apply '+ '(1 2 3 4))
763           @result{} 10
764
765      (apply 'append '((a b c) nil (x y z) nil))
766           @result{} (a b c x y z)
767      @end example
768
769      An interesting example of using @code{apply} is found
770      in the description of @code{mapcar}.@refill
771      @end defun
772
773 In this manual, this function is listed in the Command and Variable
774 Index under `apply'.
775
776   Ordinary variables and user options are described using a format like
777 that for functions except that variables do not take arguments.
778
779 \1f
780 File: texinfo.info,  Node: Footnotes,  Next: Conditionals,  Prev: Definition Commands,  Up: Top
781
782 16 Footnotes
783 ************
784
785 A "footnote" is for a reference that documents or elucidates the
786 primary text.(1) (*note Footnotes-Footnote-1::)
787
788 * Menu:
789
790 * Footnote Commands::           How to write a footnote in Texinfo.
791 * Footnote Styles::             Controlling how footnotes appear in Info.
792
793 \1f
794 File: texinfo.info,  Node: Footnotes-Footnotes,  Up: Footnotes
795
796   (1) A footnote should complement or expand upon the primary text, but
797 a reader should not need to read a footnote to understand the primary
798 text.  For a thorough discussion of footnotes, see `The Chicago Manual
799 of Style', which is published by the University of Chicago Press.
800
801 \1f
802 File: texinfo.info,  Node: Footnote Commands,  Next: Footnote Styles,  Prev: Footnotes,  Up: Footnotes
803
804 16.1 Footnote Commands
805 ======================
806
807 In Texinfo, footnotes are created with the `@footnote' command.  This
808 command is followed immediately by a left brace, then by the text of
809 the footnote, and then by a terminating right brace.  Footnotes may be
810 of any length (they will be broken across pages if necessary), but are
811 usually short.  The template is:
812
813      ordinary text@footnote{TEXT OF FOOTNOTE}
814
815   As shown here, the `@footnote' command should come right after the
816 text being footnoted, with no intervening space; otherwise, the
817 formatters the footnote mark might end up starting up a line.
818
819   For example, this clause is followed by a sample footnote(1) (*note
820 Footnote Commands-Footnote-1::); in the Texinfo source, it looks like
821 this:
822
823      ...a sample footnote@footnote{Here is the sample
824      footnote.}; in the Texinfo source...
825
826   *Warning:* Don't use footnotes in the argument of the `@item' command
827 for a `@table' table.  This doesn't work, and because of limitations of
828 TeX, there is no way to fix it.  You must put the footnote into the
829 body text of the table.
830
831   In a printed manual or book, the reference mark for a footnote is a
832 small, superscripted number; the text of the footnote appears at the
833 bottom of the page, below a horizontal line.
834
835   In Info, the reference mark for a footnote is a pair of parentheses
836 with the footnote number between them, like this: `(1)'.
837
838 \1f
839 File: texinfo.info,  Node: Footnote Commands-Footnotes,  Up: Footnote Commands
840
841   (1) Here is the sample footnote.
842
843 \1f
844 File: texinfo.info,  Node: Footnote Styles,  Prev: Footnote Commands,  Up: Footnotes
845
846 16.2 Footnote Styles
847 ====================
848
849 Info has two footnote styles, which determine where the text of the
850 footnote is located:
851
852    * In the `End' node style, all the footnotes for a single node are
853      placed at the end of that node.  The footnotes are separated from
854      the rest of the node by a line of dashes with the word `Footnotes'
855      within it.  Each footnote begins with an `(N)' reference mark.
856
857      Here is an example of a single footnote in the end of node style:
858
859            --------- Footnotes ---------
860
861           (1)  Here is a sample footnote.
862
863    * In the `Separate' node style, all the footnotes for a single node
864      are placed in an automatically constructed node of their own.  In
865      this style, a "footnote reference" follows each `(N)' reference
866      mark in the body of the node.  The footnote reference is actually
867      a cross reference which you use to reach the footnote node.
868
869      The name of the node containing the footnotes is constructed by
870      appending `-Footnotes' to the name of the node that contains the
871      footnotes. (Consequently, the footnotes' node for the `Footnotes'
872      node is `Footnotes-Footnotes'!)  The footnotes' node has an `Up'
873      node pointer that leads back to its parent node.
874
875      Here is how the first footnote in this manual looks after being
876      formatted for Info in the separate node style:
877
878           File: texinfo.info  Node: Overview-Footnotes, Up: Overview
879
880           (1) Note that the first syllable of "Texinfo" is
881           pronounced like "speck", not "hex". ...
882
883   A Texinfo file may be formatted into an Info file with either footnote
884 style.
885
886   Use the `@footnotestyle' command to specify an Info file's footnote
887 style.  Write this command at the beginning of a line followed by an
888 argument, either `end' for the end node style or `separate' for the
889 separate node style.
890
891   For example,
892
893      @footnotestyle end
894   or
895      @footnotestyle separate
896
897   Write an `@footnotestyle' command before or shortly after the
898 end-of-header line at the beginning of a Texinfo file.  (If you include
899 the `@footnotestyle' command between the start-of-header and
900 end-of-header lines, the region formatting commands will format
901 footnotes as specified.)
902
903   If you do not specify a footnote style, the formatting commands use
904 their default style.  Currently, `texinfo-format-buffer' and
905 `texinfo-format-region' use the `separate' style and `makeinfo' uses
906 the `end' style.
907
908   This chapter contains two footnotes.
909
910 \1f
911 File: texinfo.info,  Node: Conditionals,  Next: Macros,  Prev: Footnotes,  Up: Top
912
913 17 Conditionally Visible Text
914 *****************************
915
916 Sometimes it is good to use different text for a printed manual and its
917 corresponding Info file.  In this case, you can use the "conditional
918 commands" to specify which text is for the printed manual and which is
919 for the Info file.
920
921 * Menu:
922
923 * Conditional Commands::        Specifying text for HTML, Info, or TeX.
924 * Conditional Not Commands::    Specifying text for not HTML, Info, or TeX.
925 * Raw Formatter Commands::      Using raw TeX or HTML commands.
926 * set clear value::             Designating which text to format (for
927                                   all output formats); and how to set a
928                                   flag to a string that you can insert.
929
930 \1f
931 File: texinfo.info,  Node: Conditional Commands,  Next: Conditional Not Commands,  Prev: Conditionals,  Up: Conditionals
932
933 Conditional Commands
934 ====================
935
936   `@ifinfo' begins segments of text that should be ignored by TeX when
937 it typesets the printed manual.  The segment of text appears only in
938 the Info file.  The `@ifinfo' command should appear on a line by
939 itself;  end the Info-only text with a line containing `@end ifinfo' by
940 itself.  At the beginning of a Texinfo file, the Info permissions are
941 contained within a region marked by `@ifinfo' and `@end ifinfo'. (*Note
942 Info Summary and Permissions::.)
943
944   The `@iftex' and `@end iftex' commands are similar to the `@ifinfo'
945 and `@end ifinfo' commands, except that they specify text that will
946 appear in the printed manual but not in the Info file.  Likewise for
947 `@ifhtml' and `@end ifhtml', which specify text to appear only in HTML
948 output.
949
950   For example,
951
952      @iftex
953      This text will appear only in the printed manual.
954      @end iftex
955      @ifinfo
956      However, this text will appear only in Info.
957      @end ifinfo
958
959 The preceding example produces the following line: However, this text
960 will appear only in Info.
961
962 Note how you only see one of the two lines, depending on whether you
963 are reading the Info version or the printed version of this manual.
964
965   The `@titlepage' command is a special variant of `@iftex' that is
966 used for making the title and copyright pages of the printed manual.
967 (*Note `@titlepage': titlepage.)
968
969 \1f
970 File: texinfo.info,  Node: Conditional Not Commands,  Next: Raw Formatter Commands,  Prev: Conditional Commands,  Up: Conditionals
971
972 17.1 Conditional Not Commands
973 =============================
974
975 You can specify text to be included in any output format _other_ than
976 some given one with the `@ifnot...' commands:
977      @ifnothtml ... @end ifnothtml
978      @ifnotinfo ... @end ifnotinfo
979      @ifnottex ... @end ifnottex
980   (The `@ifnot...' command and the `@end' command must actually appear
981 on lines by themselves.)
982
983   If the output file is not being made for the given format, the region
984 is included.  Otherwise, it is ignored.
985
986   The regions delimited by these commands are ordinary Texinfo source as
987 with `@iftex', not raw formatter source as with `@tex'.
988
989 \1f
990 File: texinfo.info,  Node: Raw Formatter Commands,  Next: set clear value,  Prev: Conditional Not Commands,  Up: Conditionals
991
992 17.2 Raw Formatter Commands
993 ===========================
994
995 Inside a region delineated by `@iftex' and `@end iftex', you can embed
996 some raw TeX commands.  Info will ignore these commands since they are
997 only in that part of the file which is seen by TeX.  You can write the
998 TeX commands as you would write them in a normal TeX file, except that
999 you must replace the `\' used by TeX with an `@'.  For example, in the
1000 `@titlepage' section of a Texinfo file, you can use the TeX command
1001 `@vskip' to format the copyright page.  (The `@titlepage' command
1002 causes Info to ignore the region automatically, as it does with the
1003 `@iftex' command.)
1004
1005   However, many features of plain TeX will not work, as they are
1006 overridden by Texinfo features.
1007
1008   You can enter plain TeX completely, and use `\' in the TeX commands,
1009 by delineating a region with the `@tex' and `@end tex' commands.  (The
1010 `@tex' command also causes Info to ignore the region, like the `@iftex'
1011 command.)  The sole exception is that `@' chracter still introduces a
1012 command, so that `@end tex' can be recognized properly.
1013
1014   For example, here is a mathematical expression written in plain TeX:
1015
1016      @tex
1017      $$ \chi^2 = \sum_{i=1}^N
1018                \left (y_i - (a + b x_i)
1019                \over \sigma_i\right)^2 $$
1020      @end tex
1021
1022 The output of this example will appear only in a printed manual.  If
1023 you are reading this in Info, you will not see the equation that appears
1024 in the printed manual.
1025
1026   Analogously, you can use `@ifhtml ... @end ifhtml' to delimit a
1027 region to be included in HTML output only, and `@html ...  @end ifhtml'
1028 for a region of raw HTML (again, except that `@' is still the escape
1029 character, so the `@end' command can be recognized.)
1030
1031 \1f
1032 File: texinfo.info,  Node: set clear value,  Prev: Raw Formatter Commands,  Up: Conditionals
1033
1034 17.3 `@set', `@clear', and `@value'
1035 ===================================
1036
1037 You can direct the Texinfo formatting commands to format or ignore parts
1038 of a Texinfo file with the `@set', `@clear', `@ifset', and `@ifclear'
1039 commands.
1040
1041   In addition, you can use the `@set FLAG' command to set the value of
1042 FLAG to a string of characters; and use `@value{FLAG}' to insert that
1043 string.  You can use `@set', for example, to set a date and use
1044 `@value' to insert the date in several places in the Texinfo file.
1045
1046 * Menu:
1047
1048 * ifset ifclear::               Format a region if a flag is set.
1049 * value::                       Replace a flag with a string.
1050 * value Example::               An easy way to update edition information.
1051
1052 \1f
1053 File: texinfo.info,  Node: ifset ifclear,  Next: value,  Prev: set clear value,  Up: set clear value
1054
1055 17.3.1 `@ifset' and `@ifclear'
1056 ------------------------------
1057
1058 When a FLAG is set, the Texinfo formatting commands format text between
1059 subsequent pairs of `@ifset FLAG' and `@end ifset' commands.  When the
1060 FLAG is cleared, the Texinfo formatting commands do _not_ format the
1061 text.
1062
1063   Use the `@set FLAG' command to turn on, or "set", a FLAG; a "flag"
1064 can be any single word.  The format for the command looks like this: 
1065
1066      @set FLAG
1067
1068   Write the conditionally formatted text between `@ifset FLAG' and
1069 `@end ifset' commands, like this:
1070
1071      @ifset FLAG
1072      CONDITIONAL-TEXT
1073      @end ifset
1074
1075   For example, you can create one document that has two variants, such
1076 as a manual for a `large' and `small' model:
1077
1078      You can use this machine to dig up shrubs
1079      without hurting them.
1080
1081      @set large
1082
1083      @ifset large
1084      It can also dig up fully grown trees.
1085      @end ifset
1086
1087      Remember to replant promptly ...
1088
1089 In the example, the formatting commands will format the text between
1090 `@ifset large' and `@end ifset' because the `large' flag is set.
1091
1092   Use the `@clear FLAG' command to turn off, or "clear", a flag.
1093 Clearing a flag is the opposite of setting a flag.  The command looks
1094 like this:
1095
1096      @clear FLAG
1097
1098 Write the command on a line of its own.
1099
1100   When FLAG is cleared, the Texinfo formatting commands do _not_ format
1101 the text between `@ifset FLAG' and `@end ifset'; that text is ignored
1102 and does not appear in either printed or Info output.
1103
1104   For example, if you clear the flag of the preceding example by writing
1105 an `@clear large' command after the `@set large' command (but before
1106 the conditional text), then the Texinfo formatting commands ignore the
1107 text between the `@ifset large' and `@end ifset' commands.  In the
1108 formatted output, that text does not appear; in both printed and Info
1109 output, you see only the lines that say, "You can use this machine to
1110 dig up shrubs without hurting them.  Remember to replant promptly ...".
1111
1112   If a flag is cleared with an `@clear FLAG' command, then the
1113 formatting commands format text between subsequent pairs of `@ifclear'
1114 and `@end ifclear' commands.  But if the flag is set with `@set FLAG',
1115 then the formatting commands do _not_ format text between an `@ifclear'
1116 and an `@end ifclear' command; rather, they ignore that text.  An
1117 `@ifclear' command looks like this:
1118
1119      @ifclear FLAG
1120
1121   In brief, the commands are:
1122
1123 `@set FLAG'
1124      Tell the Texinfo formatting commands that FLAG is set.
1125
1126 `@clear FLAG'
1127      Tell the Texinfo formatting commands that FLAG is cleared.
1128
1129 `@ifset FLAG'
1130      If FLAG is set, tell the Texinfo formatting commands to format the
1131      text up to the following `@end ifset' command.
1132
1133      If FLAG is cleared, tell the Texinfo formatting commands to ignore
1134      text up to the following `@end ifset' command.
1135
1136 `@ifclear FLAG'
1137      If FLAG is set, tell the Texinfo formatting commands to ignore the
1138      text up to the following `@end ifclear' command.
1139
1140      If FLAG is cleared, tell the Texinfo formatting commands to format
1141      the text up to the following `@end ifclear' command.
1142
1143 \1f
1144 File: texinfo.info,  Node: value,  Next: value Example,  Prev: ifset ifclear,  Up: set clear value
1145
1146 17.3.2 `@value'
1147 ---------------
1148
1149 You can use the `@set' command to specify a value for a flag, which is
1150 expanded by the `@value' command.  The value is a string a characters.
1151
1152   Write the `@set' command like this:
1153
1154      @set foo This is a string.
1155
1156 This sets the value of `foo' to "This is a string."
1157
1158   The Texinfo formatters replace an `@value{FLAG}' command with the
1159 string to which FLAG is set.
1160
1161   Thus, when `foo' is set as shown above, the Texinfo formatters convert
1162
1163      @value{foo}
1164 to
1165      This is a string.
1166
1167   You can write an `@value' command within a paragraph; but you must
1168 write an `@set' command on a line of its own.
1169
1170   If you write the `@set' command like this:
1171
1172      @set foo
1173
1174 without specifying a string, the value of `foo' is an empty string.
1175
1176   If you clear a previously set flag with an `@clear FLAG' command, a
1177 subsequent `@value{flag}' command is invalid and the string is replaced
1178 with an error message that says `{No value for "FLAG"}'.
1179
1180   For example, if you set `foo' as follows:
1181
1182      @set how-much very, very, very
1183
1184 then the formatters transform
1185
1186      It is a @value{how-much} wet day.
1187 into
1188      It is a very, very, very wet day.
1189
1190   If you write
1191
1192      @clear how-much
1193
1194 then the formatters transform
1195
1196      It is a @value{how-much} wet day.
1197 into
1198      It is a {No value for "how-much"} wet day.
1199
1200 \1f
1201 File: texinfo.info,  Node: value Example,  Prev: value,  Up: set clear value
1202
1203 17.3.3 `@value' Example
1204 -----------------------
1205
1206 You can use the `@value' command to limit the number of places you need
1207 to change when you record an update to a manual.  Here is how it is
1208 done in `The GNU Make Manual':
1209
1210 Set the flags:
1211
1212      @set EDITION 0.35 Beta
1213      @set VERSION 3.63 Beta
1214      @set UPDATED 14 August 1992
1215      @set UPDATE-MONTH August 1992
1216
1217 Write text for the first `@ifinfo' section, for people reading the
1218 Texinfo file:
1219
1220      This is Edition @value{EDITION},
1221      last updated @value{UPDATED},
1222      of @cite{The GNU Make Manual},
1223      for @code{make}, Version @value{VERSION}.
1224
1225 Write text for the title page, for people reading the printed manual:
1226
1227      @title GNU Make
1228      @subtitle A Program for Directing Recompilation
1229      @subtitle Edition @value{EDITION}, ...
1230      @subtitle @value{UPDATE-MONTH}
1231
1232 (On a printed cover, a date listing the month and the year looks less
1233 fussy than a date listing the day as well as the month and year.)
1234
1235 Write text for the Top node, for people reading the Info file:
1236
1237      This is Edition @value{EDITION}
1238      of the @cite{GNU Make Manual},
1239      last updated @value{UPDATED}
1240      for @code{make} Version @value{VERSION}.
1241
1242   After you format the manual, the text in the first `@ifinfo' section
1243 looks like this:
1244
1245      This is Edition 0.35 Beta, last updated 14 August 1992,
1246      of `The GNU Make Manual', for `make', Version 3.63 Beta.
1247
1248   When you update the manual, change only the values of the flags; you
1249 do not need to rewrite the three sections.
1250
1251 \1f
1252 File: texinfo.info,  Node: Macros,  Next: Format/Print Hardcopy,  Prev: Conditionals,  Up: Top
1253
1254 18 Macros: Defining New Texinfo Commands
1255 ****************************************
1256
1257 A Texinfo "macro" allows you to define a new Texinfo command as any
1258 sequence of text and/or existing commands (including other macros).  The
1259 macro can have any number of "parameters"--text you supply each time
1260 you use the macro.  (This has nothing to do with the `@defmac' command,
1261 which is for documenting macros in the subject of the manual; *note Def
1262 Cmd Template::.)
1263
1264 * Menu:
1265
1266 * Defining Macros::             Both defining and undefining new commands.
1267 * Invoking Macros::             Using a macro, once you've defined it.
1268
1269 \1f
1270 File: texinfo.info,  Node: Defining Macros,  Next: Invoking Macros,  Prev: Macros,  Up: Macros
1271
1272 18.1 Defining Macros
1273 ====================
1274
1275 You use the Texinfo `@macro' command to define a macro.  For example:
1276
1277      @macro MACRO-NAME{PARAM1, PARAM2, ...}
1278      TEXT ... \PARAM1\ ...
1279      @end macro
1280
1281   The "parameters" PARAM1, PARAM2, ... correspond to arguments supplied
1282 when the macro is subsequently used in the document (see the next
1283 section).
1284
1285   If a macro needs no parameters, you can define it either with an empty
1286 list (`@macro foo {}') or with no braces at all (`@macro foo').
1287
1288   The definition or "body" of the macro can contain any Texinfo
1289 commands, including previously-defined macros.  (It is not possible to
1290 have mutually recursive Texinfo macros.)  In the body, instances of a
1291 parameter name surrounded by backslashes, as in `\PARAM1\' in the
1292 example above, are replaced by the corresponding argument from the
1293 macro invocation.
1294
1295   You can undefine a macro FOO with `@unmacro FOO'.  It is not an error
1296 to undefine a macro that is already undefined.  For example:
1297
1298      @unmacro foo
1299
1300 \1f
1301 File: texinfo.info,  Node: Invoking Macros,  Prev: Defining Macros,  Up: Macros
1302
1303 18.2 Invoking Macros
1304 ====================
1305
1306 After a macro is defined (see the previous section), you can use
1307 ("invoke") it in your document like this:
1308
1309      @MACRO-NAME {ARG1, ARG2, ...}
1310
1311 and the result will be just as if you typed the body of MACRO-NAME at
1312 that spot.  For example:
1313
1314      @macro foo {p, q}
1315      Together: \p\ & \q\.
1316      @end macro
1317      @foo{a, b}
1318
1319 produces:
1320
1321      Together: a & b.
1322
1323   Thus, the arguments and parameters are separated by commas and
1324 delimited by braces; any whitespace after (but not before) a comma is
1325 ignored.  To insert a comma, brace, or backslash in an argument,
1326 prepend a backslash, as in
1327
1328      @MACRO-NAME {\\\{\}\,}
1329
1330 which will pass the (almost certainly error-producing) argument `\{},'
1331 to MACRO-NAME.
1332
1333   If the macro is defined to take a single argument, and is invoked
1334 without any braces, the entire rest of the line after the macro name is
1335 supplied as the argument.  For example:
1336
1337      @macro bar {p}
1338      Twice: \p\, \p\.
1339      @end macro
1340      @bar aah
1341
1342 produces:
1343
1344      Twice: aah, aah.
1345
1346 \1f
1347 File: texinfo.info,  Node: Format/Print Hardcopy,  Next: Create an Info File,  Prev: Macros,  Up: Top
1348
1349 19 Format and Print Hardcopy
1350 ****************************
1351
1352 There are three major shell commands for making a printed manual from a
1353 Texinfo file: one for converting the Texinfo file into a file that will
1354 be printed, a second for sorting indices, and a third for printing the
1355 formatted document.  When you use the shell commands, you can either
1356 work directly in the operating system shell or work within a shell
1357 inside GNU Emacs.
1358
1359   If you are using GNU Emacs, you can use commands provided by Texinfo
1360 mode instead of shell commands.  In addition to the three commands to
1361 format a file, sort the indices, and print the result, Texinfo mode
1362 offers key bindings for commands to recenter the output buffer, show the
1363 print queue, and delete a job from the print queue.
1364
1365 * Menu:
1366
1367 * Use TeX::                     Use TeX to format for hardcopy.
1368 * Format with tex/texindex::    How to format in a shell.
1369 * Format with texi2dvi::        A simpler way to use the shell.
1370 * Print with lpr::              How to print.
1371 * Within Emacs::                How to format and print from an Emacs shell.
1372 * Texinfo Mode Printing::       How to format and print in Texinfo mode.
1373 * Compile-Command::             How to print using Emacs's compile command.
1374 * Requirements Summary::        TeX formatting requirements summary.
1375 * Preparing for TeX::           What you need to do to use TeX.
1376 * Overfull hboxes::             What are and what to do with overfull hboxes.
1377 * smallbook::                   How to print small format books and manuals.
1378 * A4 Paper::                    How to print on European A4 paper.
1379 * Cropmarks and Magnification::  How to print marks to indicate the size
1380                                 of pages and how to print scaled up output.
1381
1382 \1f
1383 File: texinfo.info,  Node: Use TeX,  Next: Format with tex/texindex,  Prev: Format/Print Hardcopy,  Up: Format/Print Hardcopy
1384
1385 Use TeX
1386 =======
1387
1388   The typesetting program called TeX is used for formatting a Texinfo
1389 file.  TeX is a very powerful typesetting program and, if used right,
1390 does an exceptionally good job.  (*Note How to Obtain TeX: Obtaining
1391 TeX, for information on how to obtain TeX.)
1392
1393   The `makeinfo', `texinfo-format-region', and `texinfo-format-buffer'
1394 commands read the very same @-commands in the Texinfo file as does TeX,
1395 but process them differently to make an Info file; see *Note Create an
1396 Info File::.
1397
1398 \1f
1399 File: texinfo.info,  Node: Format with tex/texindex,  Next: Format with texi2dvi,  Prev: Use TeX,  Up: Format/Print Hardcopy
1400
1401 19.1 Format using `tex' and `texindex'
1402 ======================================
1403
1404 Format the Texinfo file with the shell command `tex' followed by the
1405 name of the Texinfo file.  For example:
1406
1407      tex foo.texi
1408
1409 TeX will produce a "DVI file" as well as several auxiliary files
1410 containing information for indices, cross references, etc.  The DVI
1411 file (for "DeVice Independent" file) can be printed on virtually any
1412 printe (see the following sections).
1413
1414   The `tex' formatting command itself does not sort the indices; it
1415 writes an output file of unsorted index data.  (The `texi2dvi' command
1416 automatically generates indices; see *Note Format using `texi2dvi':
1417 Format with texi2dvi.)  To generate a printed index after running the
1418 `tex' command, you first need a sorted index to work from.  The
1419 `texindex' command sorts indices.  (The source file `texindex.c' comes
1420 as part of the standard Texinfo distribution, among other places.)
1421
1422   The `tex' formatting command outputs unsorted index files under names
1423 that obey a standard convention: the name of your main input file with
1424 any `.tex' (or similar, *note tex invocation: (web2c)tex invocation.)
1425 extension removed, followed by the two letter names of indices.  For
1426 example, the raw index output files for the input file `foo.texinfo'
1427 would be `foo.cp', `foo.vr', `foo.fn', `foo.tp', `foo.pg' and `foo.ky'.
1428 Those are exactly the arguments to give to `texindex'.
1429
1430   Instead of specifying all the unsorted index file names explicitly,
1431 you can use `??' as shell wildcards and give the command in this form:
1432
1433      texindex foo.??
1434
1435 This command will run `texindex' on all the unsorted index files,
1436 including any that you have defined yourself using `@defindex' or
1437 `@defcodeindex'.  (You may execute `texindex foo.??' even if there are
1438 similarly named files with two letter extensions that are not index
1439 files, such as `foo.el'.  The `texindex' command reports but otherwise
1440 ignores such files.)
1441
1442   For each file specified, `texindex' generates a sorted index file
1443 whose name is made by appending `s' to the input file name.  The
1444 `@printindex' command knows to look for a file of that name (*note
1445 Printing Indices & Menus::).  `texindex' does not alter the raw index
1446 output file.
1447
1448   After you have sorted the indices, you need to rerun the `tex'
1449 formatting command on the Texinfo file.  This regenerates the DVI file,
1450 this time with up-to-date index entries.
1451
1452   Finally, you may need to run `tex' one more time, to get the page
1453 numbers in the cross-references correct.
1454
1455   To summarize, this is a four step process:
1456
1457   1. Run `tex' on your Texinfo file.  This generates a DVI file (with
1458      undefined cross-references and no indices), and the raw index files
1459      (with two letter extensions).
1460
1461   2. Run `texindex' on the raw index files.  This creates the
1462      corresponding sorted index files (with three letter extensions).
1463
1464   3. Run `tex' again on your Texinfo file.  This regenerates the DVI
1465      file, this time with indices and defined cross-references, but
1466      with page numbers for the cross-references from last time,
1467      generally incorrect.
1468
1469   4. Run `tex' one last time.  This time the correct page numbers are
1470      written for the cross-references.
1471
1472   Alternatively, it's a one-step process: run `texi2dvi'.
1473
1474   You need not run `texindex' each time after you run `tex'.  If you do
1475 not, on the next run, the `tex' formatting command will use whatever
1476 sorted index files happen to exist from the previous use of `texindex'.
1477 This is usually ok while you are debugging.
1478
1479 \1f
1480 File: texinfo.info,  Node: Format with texi2dvi,  Next: Print with lpr,  Prev: Format with tex/texindex,  Up: Format/Print Hardcopy
1481
1482 19.2 Format using `texi2dvi'
1483 ============================
1484
1485 The `texi2dvi' command automatically runs both `tex' and `texindex' as
1486 many times as necessary to produce a DVI file with up-to-date, sorted
1487 indices.  It simplifies the `tex'--`texindex'--`tex' sequence described
1488 in the previous section.
1489
1490   The syntax for `texi2dvi' is like this (where `prompt$' is your shell
1491 prompt):
1492
1493      prompt$ texi2dvi FILENAME...
1494
1495   For a list of options, run `texi2dvi --help'.
1496
1497 \1f
1498 File: texinfo.info,  Node: Print with lpr,  Next: Within Emacs,  Prev: Format with texi2dvi,  Up: Format/Print Hardcopy
1499
1500 19.3 Shell Print Using `lpr -d'
1501 ===============================
1502
1503 The precise command to print a DVI file depends on your system
1504 installation, but `lpr -d' is common.  The command may require the DVI
1505 file name without any extension or with a `.dvi' extension.  (If it is
1506 `lpr', you must include the `.dvi'.)
1507
1508   The following commands, for example, will (probably) suffice to sort
1509 the indices, format, and print the `Bison Manual':
1510
1511      tex bison.texinfo
1512      texindex bison.??
1513      tex bison.texinfo
1514      lpr -d bison.dvi
1515
1516 (Remember that the shell commands may be different at your site; but
1517 these are commonly used versions.)
1518
1519   Using the `texi2dvi' shell script, you simply need type:
1520
1521      texi2dvi bison.texinfo
1522      lpr -d bison.dvi
1523
1524 \1f
1525 File: texinfo.info,  Node: Within Emacs,  Next: Texinfo Mode Printing,  Prev: Print with lpr,  Up: Format/Print Hardcopy
1526
1527 19.4 From an Emacs Shell
1528 ========================
1529
1530 You can give formatting and printing commands from a shell within GNU
1531 Emacs.  To create a shell within Emacs, type `M-x shell'.  In this
1532 shell, you can format and print the document.  *Note Format and Print
1533 Hardcopy: Format/Print Hardcopy, for details.
1534
1535   You can switch to and from the shell buffer while `tex' is running
1536 and do other editing.  If you are formatting a long document on a slow
1537 machine, this can be very convenient.
1538
1539   You can also use `texi2dvi' from an Emacs shell.  For example, here
1540 is how to use `texi2dvi' to format and print `Using and Porting GNU CC'
1541 from a shell within Emacs:
1542
1543      texi2dvi gcc.texinfo
1544      lpr -d gcc.dvi
1545
1546   *Note Texinfo Mode Printing::, for more information about formatting
1547 and printing in Texinfo mode.
1548
1549 \1f
1550 File: texinfo.info,  Node: Texinfo Mode Printing,  Next: Compile-Command,  Prev: Within Emacs,  Up: Format/Print Hardcopy
1551
1552 19.5 Formatting and Printing in Texinfo Mode
1553 ============================================
1554
1555 Texinfo mode provides several predefined key commands for TeX
1556 formatting and printing.  These include commands for sorting indices,
1557 looking at the printer queue, killing the formatting job, and
1558 recentering the display of the buffer in which the operations occur.
1559
1560 `C-c C-t C-b'
1561 `M-x texinfo-tex-buffer'
1562      Run `texi2dvi' on the current buffer.
1563
1564 `C-c C-t C-r'
1565 `M-x texinfo-tex-region'
1566      Run TeX on the current region.
1567
1568 `C-c C-t C-i'
1569 `M-x texinfo-texindex'
1570      Sort the indices of a Texinfo file formatted with
1571      `texinfo-tex-region'.
1572
1573 `C-c C-t C-p'
1574 `M-x texinfo-tex-print'
1575      Print a DVI file that was made with `texinfo-tex-region' or
1576      `texinfo-tex-buffer'.
1577
1578 `C-c C-t C-q'
1579 `M-x tex-show-print-queue'
1580      Show the print queue.
1581
1582 `C-c C-t C-d'
1583 `M-x texinfo-delete-from-print-queue'
1584      Delete a job from the print queue; you will be prompted for the job
1585      number shown by a preceding `C-c C-t C-q' command
1586      (`texinfo-show-tex-print-queue').
1587
1588 `C-c C-t C-k'
1589 `M-x tex-kill-job'
1590      Kill the currently running TeX job started by `texinfo-tex-region'
1591      or `texinfo-tex-buffer', or any other process running in the
1592      Texinfo shell buffer.
1593
1594 `C-c C-t C-x'
1595 `M-x texinfo-quit-job'
1596      Quit a TeX formatting job that has stopped because of an error by
1597      sending an <x> to it.  When you do this, TeX preserves a record of
1598      what it did in a `.log' file.
1599
1600 `C-c C-t C-l'
1601 `M-x tex-recenter-output-buffer'
1602      Redisplay the shell buffer in which the TeX printing and formatting
1603      commands are run to show its most recent output.
1604
1605   Thus, the usual sequence of commands for formatting a buffer is as
1606 follows (with comments to the right):
1607
1608      C-c C-t C-b             Run `texi2dvi' on the buffer.
1609      C-c C-t C-p             Print the DVI file.
1610      C-c C-t C-q             Display the printer queue.
1611
1612   The Texinfo mode TeX formatting commands start a subshell in Emacs
1613 called the `*tex-shell*'.  The `texinfo-tex-command',
1614 `texinfo-texindex-command', and `tex-dvi-print-command' commands are
1615 all run in this shell.
1616
1617   You can watch the commands operate in the `*tex-shell*' buffer, and
1618 you can switch to and from and use the `*tex-shell*' buffer as you
1619 would any other shell buffer.
1620
1621   The formatting and print commands depend on the values of several
1622 variables.  The default values are:
1623
1624           Variable                              Default value
1625
1626      texinfo-texi2dvi-command                  "texi2dvi"
1627      texinfo-tex-command                       "tex"
1628      texinfo-texindex-command                  "texindex"
1629      texinfo-delete-from-print-queue-command   "lprm"
1630      texinfo-tex-trailer                       "@bye"
1631      tex-start-of-header                       "%**start"
1632      tex-end-of-header                         "%**end"
1633      tex-dvi-print-command                     "lpr -d"
1634      tex-show-queue-command                    "lpq"
1635
1636   You can change the values of these variables with the `M-x
1637 edit-options' command (*note Editing Variable Values: (xemacs)Edit
1638 Options.), with the `M-x set-variable' command (*note Examining and
1639 Setting Variables: (xemacs)Examining.), or with your `.emacs'
1640 initialization file (*note Init File: (xemacs)Init File.).
1641
1642 \1f
1643 File: texinfo.info,  Node: Compile-Command,  Next: Requirements Summary,  Prev: Texinfo Mode Printing,  Up: Format/Print Hardcopy
1644
1645 19.6 Using the Local Variables List
1646 ===================================
1647
1648 Yet another way to apply the TeX formatting command to a Texinfo file
1649 is to put that command in a "local variables list" at the end of the
1650 Texinfo file.  You can then specify the `tex' or `texi2dvi' commands as
1651 a `compile-command' and have Emacs run it by typing `M-x compile'.
1652 This creates a special shell called the `*compilation*' buffer in which
1653 Emacs runs the compile command.  For example, at the end of the
1654 `gdb.texinfo' file, after the `@bye', you could put the following:
1655
1656      Local Variables:
1657      compile-command: "texi2dvi gdb.texinfo"
1658      End:
1659
1660 This technique is most often used by programmers who also compile
1661 programs this way; see *Note Compilation: (xemacs)Compilation.
1662
1663 \1f
1664 File: texinfo.info,  Node: Requirements Summary,  Next: Preparing for TeX,  Prev: Compile-Command,  Up: Format/Print Hardcopy
1665
1666 19.7 TeX Formatting Requirements Summary
1667 ========================================
1668
1669 Every Texinfo file that is to be input to TeX must begin with a
1670 `\input' command and must contain an `@setfilename' command:
1671
1672      \input texinfo
1673      @setfilename ARG-NOT-USED-BY-@TEX{}
1674
1675 The first command instructs TeX to load the macros it needs to process
1676 a Texinfo file and the second command opens auxiliary files.
1677
1678   Every Texinfo file must end with a line that terminates TeX's
1679 processing and forces out unfinished pages:
1680
1681      @bye
1682
1683   Strictly speaking, these lines are all a Texinfo file needs to be
1684 processed successfully by TeX.
1685
1686   Usually, however, the beginning includes an `@settitle' command to
1687 define the title of the printed manual, an `@setchapternewpage'
1688 command, a title page, a copyright page, and permissions.  Besides an
1689 `@bye', the end of a file usually includes indices and a table of
1690 contents.  (And of course most manuals contain a body of text as well.)
1691
1692 For more information, see
1693 *Note `@settitle': settitle,
1694 *Note `@setchapternewpage': setchapternewpage,
1695 *Note Page Headings: Headings,
1696 *Note Titlepage & Copyright Page::,
1697 *Note Printing Indices & Menus::, and
1698 *Note Contents::.
1699
1700 \1f
1701 File: texinfo.info,  Node: Preparing for TeX,  Next: Overfull hboxes,  Prev: Requirements Summary,  Up: Format/Print Hardcopy
1702
1703 19.8 Preparing to Use TeX
1704 =========================
1705
1706 TeX needs to know where to find the `texinfo.tex' file that you have
1707 told it to input with the `\input texinfo' command at the beginning of
1708 the first line.  The `texinfo.tex' file tells TeX how to handle
1709 @-commands; it is included in all standard GNU distributions.
1710
1711   Usually, the `texinfo.tex' file is put under the default directory
1712 that contains TeX macros
1713 (`/usr/local/share/texmf/tex/texinfo/texinfo.tex' by default) when GNU
1714 Emacs or other GNU software is installed.  In this case, TeX will find
1715 the file and you do not need to do anything special.  Alternatively,
1716 you can put `texinfo.tex' in the current directory when you run TeX,
1717 and TeX will find it there.
1718
1719   Also, you should install `epsf.tex' in the same place as
1720 `texinfo.tex', if it is not already installed from another
1721 distribution.  This file is needed to support the `@image' command
1722 (*note Images::).
1723
1724   Optionally, you may create an additional `texinfo.cnf', and install
1725 it as well.  This file is read by TeX at the `@setfilename' command
1726 (*note `@setfilename': setfilename.).  You can put any commands you
1727 like there according to local site-wide conventions, and they will be
1728 read by TeX when processing any Texinfo document.  For example, if
1729 `texinfo.cnf' contains the a single line `@afourpaper' (*note A4
1730 Paper::), then all Texinfo documents will be processed with that page
1731 size in effect.  If you have nothing to put in `texinfo.cnf', you do
1732 not need to create it.
1733
1734   If neither of the above locations for these system files suffice for
1735 you, you can specify the directories explicitly.  For `texinfo.tex',
1736 you can do this by writing the complete path for the file after the
1737 `\input' command.  Another way, that works for both `texinfo.tex' and
1738 `texinfo.cnf' (and any other file TeX might read), is to set the
1739 `TEXINPUTS' environment variable in your `.cshrc' or `.profile' file.
1740
1741   Which you use of `.cshrc' or `.profile' depends on whether you use a
1742 Bourne shell-compatible (`sh', `bash', `ksh', ...) or C
1743 shell-compatible (`csh', `tcsh') command interpreter.  The latter read
1744 the `.cshrc' file for initialization information, and the former read
1745 `.profile'.
1746
1747   In a `.cshrc' file, you could use the following `csh' command
1748 sequence:
1749
1750      setenv TEXINPUTS .:/home/me/mylib:/usr/lib/tex/macros
1751
1752   In a `.profile' file, you could use the following `sh' command
1753 sequence:
1754
1755      TEXINPUTS=.:/home/me/mylib:/usr/lib/tex/macros
1756      export TEXINPUTS
1757
1758 This would cause TeX to look for `\input' file first in the current
1759 directory, indicated by the `.', then in a hypothetical user's
1760 `me/mylib' directory, and finally in a system directory.
1761
1762 \1f
1763 File: texinfo.info,  Node: Overfull hboxes,  Next: smallbook,  Prev: Preparing for TeX,  Up: Format/Print Hardcopy
1764
1765 19.9 Overfull "hboxes"
1766 ======================
1767
1768 TeX is sometimes unable to typeset a line without extending it into the
1769 right margin.  This can occur when TeX comes upon what it interprets as
1770 a long word that it cannot hyphenate, such as an electronic mail
1771 network address or a very long title.  When this happens, TeX prints an
1772 error message like this:
1773
1774      Overfull \hbox (20.76302pt too wide)
1775
1776 (In TeX, lines are in "horizontal boxes", hence the term, "hbox".  The
1777 backslash, `\', is the TeX equivalent of `@'.)
1778
1779   TeX also provides the line number in the Texinfo source file and the
1780 text of the offending line, which is marked at all the places that TeX
1781 knows how to hyphenate words.  *Note Catching Errors with TeX
1782 Formatting: Debugging with TeX, for more information about typesetting
1783 errors.
1784
1785   If the Texinfo file has an overfull hbox, you can rewrite the sentence
1786 so the overfull hbox does not occur, or you can decide to leave it.  A
1787 small excursion into the right margin often does not matter and may not
1788 even be noticeable.
1789
1790   However, unless told otherwise, TeX will print a large, ugly, black
1791 rectangle beside the line that contains the overfull hbox.  This is so
1792 you will notice the location of the problem if you are correcting a
1793 draft.
1794
1795   To prevent such a monstrosity from marring your final printout, write
1796 the following in the beginning of the Texinfo file on a line of its own,
1797 before the `@titlepage' command:
1798
1799      @finalout
1800
1801 \1f
1802 File: texinfo.info,  Node: smallbook,  Next: A4 Paper,  Prev: Overfull hboxes,  Up: Format/Print Hardcopy
1803
1804 19.10 Printing "Small" Books
1805 ============================
1806
1807 By default, TeX typesets pages for printing in an 8.5 by 11 inch
1808 format.  However, you can direct TeX to typeset a document in a 7 by
1809 9.25 inch format that is suitable for bound books by inserting the
1810 following command on a line by itself at the beginning of the Texinfo
1811 file, before the title page:
1812
1813      @smallbook
1814
1815 (Since regular sized books are often about 7 by 9.25 inches, this
1816 command might better have been called the `@regularbooksize' command,
1817 but it came to be called the `@smallbook' command by comparison to the
1818 8.5 by 11 inch format.)
1819
1820   If you write the `@smallbook' command between the start-of-header and
1821 end-of-header lines, the Texinfo mode TeX region formatting command,
1822 `texinfo-tex-region', will format the region in "small" book size
1823 (*note Start of Header::).
1824
1825   The Free Software Foundation distributes printed copies of `The GNU
1826 Emacs Manual' and other manuals in the "small" book size.  *Note
1827 `@smallexample' and `@smalllisp': smallexample & smalllisp, for
1828 information about commands that make it easier to produce examples for
1829 a smaller manual.
1830
1831   Alternatively, to avoid embedding this physical paper size in your
1832 document, use `texi2dvi' to format your document (*note Format with
1833 texi2dvi::), and supply `-t @smallbook' as an argument.  Then other
1834 people do not have to change the document source file to format it
1835 differently.
1836
1837 \1f
1838 File: texinfo.info,  Node: A4 Paper,  Next: Cropmarks and Magnification,  Prev: smallbook,  Up: Format/Print Hardcopy
1839
1840 19.11 Printing on A4 Paper
1841 ==========================
1842
1843 You can tell TeX to typeset a document for printing on European size A4
1844 paper with the `@afourpaper' command.  Write the command on a line by
1845 itself between `@iftex' and `@end iftex' lines near the beginning of
1846 the Texinfo file, before the title page:
1847
1848   For example, this is how you would write the header for this manual:
1849
1850      \input texinfo    @c -*-texinfo-*-
1851      @c %**start of header
1852      @setfilename texinfo
1853      @settitle Texinfo
1854      @syncodeindex vr fn
1855      @iftex
1856      @afourpaper
1857      @end iftex
1858      @c %**end of header
1859
1860   Alternatively, to avoid embedding this physical paper size in your
1861 document, use `texi2dvi' to format your document (*note Format with
1862 texi2dvi::), and supply `-t @afourpaper' as an argument.  Then other
1863 people do not have to change the document source file to format it
1864 differently.
1865
1866   Another alternative: put the `@afourpaper' command in the file
1867 `texinfo.cnf' that TeX will read.  (No need for `@iftex' there.)  This
1868 will automatically typeset all the Texinfo documents at your site with
1869 that paper size in effect.
1870
1871 \1f
1872 File: texinfo.info,  Node: Cropmarks and Magnification,  Prev: A4 Paper,  Up: Format/Print Hardcopy
1873
1874 19.12 Cropmarks and Magnification
1875 =================================
1876
1877 You can attempt to direct TeX to print cropmarks at the corners of
1878 pages with the `@cropmarks' command.  Write the `@cropmarks' command on
1879 a line by itself between `@iftex' and `@end iftex' lines near the
1880 beginning of the Texinfo file, before the title page, like this:
1881
1882      @iftex
1883      @cropmarks
1884      @end iftex
1885
1886   This command is mainly for printers that typeset several pages on one
1887 sheet of film; but you can attempt to use it to mark the corners of a
1888 book set to 7 by 9.25 inches with the `@smallbook' command.  (Printers
1889 will not produce cropmarks for regular sized output that is printed on
1890 regular sized paper.)  Since different printing machines work in
1891 different ways, you should explore the use of this command with a
1892 spirit of adventure.  You may have to redefine the command in the
1893 `texinfo.tex' definitions file.
1894
1895   You can attempt to direct TeX to typeset pages larger or smaller than
1896 usual with the `\mag' TeX command.  Everything that is typeset is
1897 scaled proportionally larger or smaller.  (`\mag' stands for
1898 "magnification".)  This is _not_ a Texinfo @-command, but is a plain
1899 TeX command that is prefixed with a backslash.  You have to write this
1900 command between `@tex' and `@end tex' (*note Raw Formatter Commands::).
1901
1902   Follow the `\mag' command with an `=' and then a number that is 1000
1903 times the magnification you desire.  For example, to print pages at 1.2
1904 normal size, write the following near the beginning of the Texinfo
1905 file, before the title page:
1906
1907      @tex
1908      \mag=1200
1909      @end tex
1910
1911   With some printing technologies, you can print normal-sized copies
1912 that look better than usual by using a larger-than-normal master.
1913
1914   Depending on your system, `\mag' may not work or may work only at
1915 certain magnifications.  Be prepared to experiment.
1916
1917 \1f
1918 File: texinfo.info,  Node: Create an Info File,  Next: Install an Info File,  Prev: Format/Print Hardcopy,  Up: Top
1919
1920 20 Creating an Info File
1921 ************************
1922
1923 `makeinfo' is a utility that converts a Texinfo file into an Info file;
1924 `texinfo-format-region' and `texinfo-format-buffer' are GNU Emacs
1925 functions that do the same.
1926
1927   A Texinfo file must contain an `@setfilename' line near its
1928 beginning, otherwise the Info formatting commands will fail.
1929
1930   For information on installing the Info file in the Info system, see
1931 *Note Install an Info File::.
1932
1933 * Menu:
1934
1935 * makeinfo advantages::         `makeinfo' provides better error checking.
1936 * Invoking makeinfo::           How to run `makeinfo' from a shell.
1937 * makeinfo options::            Specify fill-column and other options.
1938 * Pointer Validation::          How to check that pointers point somewhere.
1939 * makeinfo in Emacs::           How to run `makeinfo' from Emacs.
1940 * texinfo-format commands::     Two Info formatting commands written
1941                                   in Emacs Lisp are an alternative
1942                                   to `makeinfo'.
1943 * Batch Formatting::            How to format for Info in Emacs Batch mode.
1944 * Tag and Split Files::         How tagged and split files help Info
1945                                   to run better.
1946
1947 \1f
1948 File: texinfo.info,  Node: makeinfo advantages,  Next: Invoking makeinfo,  Prev: Create an Info File,  Up: Create an Info File
1949
1950 `makeinfo' Preferred
1951 ====================
1952
1953   The `makeinfo' utility creates an Info file from a Texinfo source
1954 file more quickly than either of the Emacs formatting commands and
1955 provides better error messages.  We recommend it.  `makeinfo' is a C
1956 program that is independent of Emacs.  You do not need to run Emacs to
1957 use `makeinfo', which means you can use `makeinfo' on machines that are
1958 too small to run Emacs. You can run `makeinfo' in any one of three
1959 ways: from an operating system shell, from a shell inside Emacs, or by
1960 typing a key command in Texinfo mode in Emacs.
1961
1962   The `texinfo-format-region' and the `texinfo-format-buffer' commands
1963 are useful if you cannot run `makeinfo'.  Also, in some circumstances,
1964 they format short regions or buffers more quickly than `makeinfo'.
1965
1966 \1f
1967 File: texinfo.info,  Node: Invoking makeinfo,  Next: makeinfo options,  Prev: makeinfo advantages,  Up: Create an Info File
1968
1969 20.1 Running `makeinfo' from a Shell
1970 ====================================
1971
1972 To create an Info file from a Texinfo file, type `makeinfo' followed by
1973 the name of the Texinfo file.  Thus, to create the Info file for Bison,
1974 type the following to the shell: is the prompt):
1975
1976      makeinfo bison.texinfo
1977
1978   (You can run a shell inside Emacs by typing `M-x shell'.)
1979
1980   Sometimes you will want to specify options.  For example, if you wish
1981 to discover which version of `makeinfo' you are using, type:
1982
1983      makeinfo --version
1984
1985   *Note makeinfo options::, for more information.
1986
1987 \1f
1988 File: texinfo.info,  Node: makeinfo options,  Next: Pointer Validation,  Prev: Invoking makeinfo,  Up: Create an Info File
1989
1990 20.2 Options for `makeinfo'
1991 ===========================
1992
1993 The `makeinfo' command takes a number of options.  Most often, options
1994 are used to set the value of the fill column and specify the footnote
1995 style.  Each command line option is a word preceded by `--' or a letter
1996 preceded by `-'.  You can use abbreviations for the long option names
1997 as long as they are unique.
1998
1999   For example, you could use the following shell command to create an
2000 Info file for `bison.texinfo' in which each line is filled to only 68
2001 columns:
2002
2003      makeinfo --fill-column=68 bison.texinfo
2004
2005   You can write two or more options in sequence, like this:
2006
2007      makeinfo --no-split --fill-column=70 ...
2008
2009 This would keep the Info file together as one possibly very long file
2010 and would also set the fill column to 70.
2011
2012   The options are:
2013
2014 `-D VAR'
2015      Cause the variable VAR to be defined.  This is equivalent to `@set
2016      VAR' in the Texinfo file (*note set clear value::).
2017
2018 `--error-limit=LIMIT'
2019      Set the maximum number of errors that `makeinfo' will report
2020      before exiting (on the assumption that continuing would be
2021      useless); default 100.
2022
2023 `--fill-column=WIDTH'
2024      Specify the maximum number of columns in a line; this is the
2025      right-hand edge of a line.  Paragraphs that are filled will be
2026      filled to this width.  (Filling is the process of breaking up and
2027      connecting lines so that lines are the same length as or shorter
2028      than the number specified as the fill column.  Lines are broken
2029      between words.) The default value is 72.
2030
2031 `--footnote-style=STYLE'
2032      Set the footnote style to STYLE, either `end' for the end node
2033      style (the default) or `separate' for the separate node style.
2034      The value set by this option overrides the value set in a Texinfo
2035      file by an `@footnotestyle' command (*note Footnotes::).  When the
2036      footnote style is `separate', `makeinfo' makes a new node
2037      containing the footnotes found in the current node.  When the
2038      footnote style is `end', `makeinfo' places the footnote references
2039      at the end of the current node.
2040
2041 `--force'
2042      Ordinarily, if the input file has errors, the output files are not
2043      created.  With this option, they are preserved.
2044
2045 `--help'
2046      Print a usage message listing all available options, then exit
2047      successfully.
2048
2049 `-I DIR'
2050      Add `dir' to the directory search list for finding files that are
2051      included using the `@include' command.  By default, `makeinfo'
2052      searches only the current directory.
2053
2054 `--no-headers'
2055      Do not include menus or node lines in the output.  This results in
2056      an ASCII file that you cannot read in Info since it does not
2057      contain the requisite nodes or menus. It is primarily useful to
2058      extract certain pieces of a manual into separate files to be
2059      included in a distribution, such as `INSTALL' files.
2060
2061 `--no-split'
2062      Suppress the splitting stage of `makeinfo'.  By default, large
2063      output files (where the size is greater than 70k bytes) are split
2064      into smaller subfiles, each one approximately 50k bytes.
2065
2066 `--no-pointer-validate'
2067 `--no-validate'
2068      Suppress the pointer-validation phase of `makeinfo'.  Normally,
2069      after a Texinfo file is processed, some consistency checks are
2070      made to ensure that cross references can be resolved, etc.  *Note
2071      Pointer Validation::.
2072
2073 `--no-warn'
2074      Suppress warning messages (but _not_ error messages).  You might
2075      want this if the file you are creating has examples of Texinfo
2076      cross references within it, and the nodes that are referenced do
2077      not actually exist.
2078
2079 `--no-number-footnotes'
2080      Suppress automatic footnote numbering.  By default, `makeinfo'
2081      numbers each footnote sequentially in a single node, resetting the
2082      current footnote number to 1 at the start of each node.
2083
2084 `--output=FILE'
2085 `-o FILE'
2086      Specify that the output should be directed to FILE and not to the
2087      file name specified in the `@setfilename' command found in the
2088      Texinfo source (*note setfilename::).  If FILE is `-', output goes
2089      to standard output and `--no-split' is implied.
2090
2091 `-P DIR'
2092      Prepend `dir' to the directory search list for `@include'.  See
2093      `-I' for more details.
2094
2095 `--paragraph-indent=INDENT'
2096      Set the paragraph indentation style to INDENT.  The value set by
2097      this option overrides the value set in a Texinfo file by an
2098      `@paragraphindent' command (*note paragraphindent::).  The value
2099      of INDENT is interpreted as follows:
2100
2101     `asis'
2102           Preserve any existing indentation at the starts of paragraphs.
2103
2104     `0' or `none'
2105           Delete any existing indentation.
2106
2107     NUM
2108           Indent each paragraph by that number of spaces.
2109
2110 `--reference-limit=LIMIT'
2111      Set the value of the number of references to a node that
2112      `makeinfo' will make without reporting a warning.  If a node has
2113      more than this number of references in it, `makeinfo' will make the
2114      references but also report a warning.  The default is 1000.
2115
2116 `-U VAR'
2117      Cause VAR to be undefined.  This is equivalent to `@clear VAR' in
2118      the Texinfo file (*note set clear value::).
2119
2120 `--verbose'
2121      Cause `makeinfo' to display messages saying what it is doing.
2122      Normally, `makeinfo' only outputs messages if there are errors or
2123      warnings.
2124
2125 `--version'
2126      Print the version number, then exit successfully.
2127
2128
2129 \1f
2130 File: texinfo.info,  Node: Pointer Validation,  Next: makeinfo in Emacs,  Prev: makeinfo options,  Up: Create an Info File
2131
2132 20.3 Pointer Validation
2133 =======================
2134
2135 If you do not suppress pointer-validation, `makeinfo' will check the
2136 validity of the final Info file.  Mostly, this means ensuring that
2137 nodes you have referenced really exist.  Here is a complete list of what
2138 is checked:
2139
2140   1. If a `Next', `Previous', or `Up' node reference is a reference to a
2141      node in the current file and is not an external reference such as
2142      to `(dir)', then the referenced node must exist.
2143
2144   2. In every node, if the `Previous' node is different from the `Up'
2145      node, then the `Previous' node must also be pointed to by a `Next'
2146      node.
2147
2148   3. Every node except the `Top' node must have an `Up' pointer.
2149
2150   4. The node referenced by an `Up' pointer must contain a reference to
2151      the current node in some manner other than through a `Next'
2152      reference.  This includes menu entries and cross references.
2153
2154   5. If the `Next' reference of a node is not the same as the `Next'
2155      reference of the `Up' reference, then the node referenced by the
2156      `Next' pointer must have a `Previous' pointer that points back to
2157      the current node.  This rule allows the last node in a section to
2158      point to the first node of the next chapter.
2159
2160 \1f
2161 File: texinfo.info,  Node: makeinfo in Emacs,  Next: texinfo-format commands,  Prev: Pointer Validation,  Up: Create an Info File
2162
2163 20.4 Running `makeinfo' inside Emacs
2164 ====================================
2165
2166 You can run `makeinfo' in GNU Emacs Texinfo mode by using either the
2167 `makeinfo-region' or the `makeinfo-buffer' commands.  In Texinfo mode,
2168 the commands are bound to `C-c C-m C-r' and `C-c C-m C-b' by default.
2169
2170 `C-c C-m C-r'
2171 `M-x makeinfo-region'
2172      Format the current region for Info.  
2173
2174 `C-c C-m C-b'
2175 `M-x makeinfo-buffer'
2176      Format the current buffer for Info.  
2177
2178   When you invoke either `makeinfo-region' or `makeinfo-buffer', Emacs
2179 prompts for a file name, offering the name of the visited file as the
2180 default.  You can edit the default file name in the minibuffer if you
2181 wish, before pressing <RET> to start the `makeinfo' process.
2182
2183   The Emacs `makeinfo-region' and `makeinfo-buffer' commands run the
2184 `makeinfo' program in a temporary shell buffer.  If `makeinfo' finds
2185 any errors, Emacs displays the error messages in the temporary buffer.
2186
2187   You can parse the error messages by typing `C-x `' (`next-error').
2188 This causes Emacs to go to and position the cursor on the line in the
2189 Texinfo source that `makeinfo' thinks caused the error.  *Note Running
2190 `make' or Compilers Generally: (xemacs)Compilation, for more
2191 information about using the `next-error' command.
2192
2193   In addition, you can kill the shell in which the `makeinfo' command
2194 is running or make the shell buffer display its most recent output.
2195
2196 `C-c C-m C-k'
2197 `M-x makeinfo-kill-job'
2198      Kill the current running `makeinfo' job created by
2199      `makeinfo-region' or `makeinfo-buffer'.
2200
2201 `C-c C-m C-l'
2202 `M-x makeinfo-recenter-output-buffer'
2203      Redisplay the `makeinfo' shell buffer to display its most recent
2204      output.
2205
2206 (Note that the parallel commands for killing and recentering a TeX job
2207 are `C-c C-t C-k' and `C-c C-t C-l'.  *Note Texinfo Mode Printing::.)
2208
2209   You can specify options for `makeinfo' by setting the
2210 `makeinfo-options' variable with either the `M-x edit-options' or the
2211 `M-x set-variable' command, or by setting the variable in your `.emacs'
2212 initialization file.
2213
2214   For example, you could write the following in your `.emacs' file:
2215
2216      (setq makeinfo-options
2217            "--paragraph-indent=0 --no-split
2218             --fill-column=70 --verbose")
2219
2220 For more information, see
2221 *Note Editing Variable Values: (xemacs)Edit Options,
2222 *Note Examining and Setting Variables: (xemacs)Examining,
2223 *Note Init File: (xemacs)Init File, and
2224 *Note Options for `makeinfo': makeinfo options.
2225
2226 \1f
2227 File: texinfo.info,  Node: texinfo-format commands,  Next: Batch Formatting,  Prev: makeinfo in Emacs,  Up: Create an Info File
2228
2229 20.5 The `texinfo-format...' Commands
2230 =====================================
2231
2232 In GNU Emacs in Texinfo mode, you can format part or all of a Texinfo
2233 file with the `texinfo-format-region' command.  This formats the
2234 current region and displays the formatted text in a temporary buffer
2235 called `*Info Region*'.
2236
2237   Similarly, you can format a buffer with the `texinfo-format-buffer'
2238 command.  This command creates a new buffer and generates the Info file
2239 in it.  Typing `C-x C-s' will save the Info file under the name
2240 specified by the `@setfilename' line which must be near the beginning
2241 of the Texinfo file.
2242
2243 `C-c C-e C-r'
2244 ``texinfo-format-region''
2245      Format the current region for Info.  
2246
2247 `C-c C-e C-b'
2248 ``texinfo-format-buffer''
2249      Format the current buffer for Info.  
2250
2251   The `texinfo-format-region' and `texinfo-format-buffer' commands
2252 provide you with some error checking, and other functions can provide
2253 you with further help in finding formatting errors.  These procedures
2254 are described in an appendix; see *Note Catching Mistakes::.  However,
2255 the `makeinfo' program is often faster and provides better error
2256 checking (*note makeinfo in Emacs::).
2257
2258 \1f
2259 File: texinfo.info,  Node: Batch Formatting,  Next: Tag and Split Files,  Prev: texinfo-format commands,  Up: Create an Info File
2260
2261 20.6 Batch Formatting
2262 =====================
2263
2264 You can format Texinfo files for Info using `batch-texinfo-format' and
2265 Emacs Batch mode.  You can run Emacs in Batch mode from any shell,
2266 including a shell inside of Emacs.  (*Note Command Line Switches and
2267 Arguments: (xemacs)Command Switches.)
2268
2269   Here is a shell command to format all the files that end in
2270 `.texinfo' in the current directory:
2271
2272      emacs -batch -funcall batch-texinfo-format *.texinfo
2273
2274 Emacs processes all the files listed on the command line, even if an
2275 error occurs while attempting to format some of them.
2276
2277   Run `batch-texinfo-format' only with Emacs in Batch mode as shown; it
2278 is not interactive.  It kills the Batch mode Emacs on completion.
2279
2280   `batch-texinfo-format' is convenient if you lack `makeinfo' and want
2281 to format several Texinfo files at once.  When you use Batch mode, you
2282 create a new Emacs process.  This frees your current Emacs, so you can
2283 continue working in it.  (When you run `texinfo-format-region' or
2284 `texinfo-format-buffer', you cannot use that Emacs for anything else
2285 until the command finishes.)
2286
2287 \1f
2288 File: texinfo.info,  Node: Tag and Split Files,  Prev: Batch Formatting,  Up: Create an Info File
2289
2290 20.7 Tag Files and Split Files
2291 ==============================
2292
2293 If a Texinfo file has more than 30,000 bytes, `texinfo-format-buffer'
2294 automatically creates a tag table for its Info file;  `makeinfo' always
2295 creates a tag table.  With a "tag table", Info can jump to new nodes
2296 more quickly than it can otherwise.
2297
2298   In addition, if the Texinfo file contains more than about 70,000
2299 bytes, `texinfo-format-buffer' and `makeinfo' split the large Info file
2300 into shorter "indirect" subfiles of about 50,000 bytes each.  Big files
2301 are split into smaller files so that Emacs does not need to make a
2302 large buffer to hold the whole of a large Info file; instead, Emacs
2303 allocates just enough memory for the small, split off file that is
2304 needed at the time.  This way, Emacs avoids wasting memory when you run
2305 Info.  (Before splitting was implemented, Info files were always kept
2306 short and "include files" were designed as a way to create a single,
2307 large printed manual out of the smaller Info files.  *Note Include
2308 Files::, for more information.  Include files are still used for very
2309 large documents, such as `The XEmacs Lisp Reference Manual', in which
2310 each chapter is a separate file.)
2311
2312   When a file is split, Info itself makes use of a shortened version of
2313 the original file that contains just the tag table and references to
2314 the files that were split off.  The split off files are called
2315 "indirect" files.
2316
2317   The split off files have names that are created by appending `-1',
2318 `-2', `-3' and so on to the file name specified by the `@setfilename'
2319 command.  The shortened version of the original file continues to have
2320 the name specified by `@setfilename'.
2321
2322   At one stage in writing this document, for example, the Info file was
2323 saved as `test-texinfo' and that file looked like this:
2324
2325      Info file: test-texinfo,    -*-Text-*-
2326      produced by texinfo-format-buffer
2327      from file: new-texinfo-manual.texinfo
2328
2329      ^_
2330      Indirect:
2331      test-texinfo-1: 102
2332      test-texinfo-2: 50422
2333      test-texinfo-3: 101300
2334      ^_^L
2335      Tag table:
2336      (Indirect)
2337      Node: overview^?104
2338      Node: info file^?1271
2339      Node: printed manual^?4853
2340      Node: conventions^?6855
2341      ...
2342
2343 (But `test-texinfo' had far more nodes than are shown here.)  Each of
2344 the split off, indirect files, `test-texinfo-1', `test-texinfo-2', and
2345 `test-texinfo-3', is listed in this file after the line that says
2346 `Indirect:'.  The tag table is listed after the line that says `Tag
2347 table:'.
2348
2349   In the list of indirect files, the number following the file name
2350 records the cumulative number of bytes in the preceding indirect files,
2351 not counting the file list itself, the tag table, or the permissions
2352 text in each file.  In the tag table, the number following the node name
2353 records the location of the beginning of the node, in bytes from the
2354 beginning.
2355
2356   If you are using `texinfo-format-buffer' to create Info files, you
2357 may want to run the `Info-validate' command.  (The `makeinfo' command
2358 does such a good job on its own, you do not need `Info-validate'.)
2359 However, you cannot run the `M-x Info-validate' node-checking command
2360 on indirect files.  For information on how to prevent files from being
2361 split and how to validate the structure of the nodes, see *Note Using
2362 Info-validate::.
2363
2364 \1f
2365 File: texinfo.info,  Node: Install an Info File,  Next: Command List,  Prev: Create an Info File,  Up: Top
2366
2367 21 Installing an Info File
2368 **************************
2369
2370 Info files are usually kept in the `info' directory.  You can read Info
2371 files using the standalone Info program or the Info reader built into
2372 Emacs.  (*note info: (info)Top, for an introduction to Info.)
2373
2374 * Menu:
2375
2376 * Directory file::              The top level menu for all Info files.
2377 * New Info File::               Listing a new info file.
2378 * Other Info Directories::      How to specify Info files that are
2379                                   located in other directories.
2380 * Installing Dir Entries::      How to specify what menu entry to add
2381                                   to the Info directory.
2382 * Invoking install-info::       `install-info' options.
2383
2384 \1f
2385 File: texinfo.info,  Node: Directory file,  Next: New Info File,  Prev: Install an Info File,  Up: Install an Info File
2386
2387 The `dir' File
2388 ==============
2389
2390   For Info to work, the `info' directory must contain a file that
2391 serves as a top level directory for the Info system.  By convention,
2392 this file is called `dir'.  (You can find the location of this file
2393 within Emacs by typing `C-h i' to enter Info and then typing `C-x C-f'
2394 to see the pathname to the `info' directory.)
2395
2396   The `dir' file is itself an Info file.  It contains the top level
2397 menu for all the Info files in the system.  The menu looks like this:
2398
2399      * Menu:
2400
2401      * Info:    (info).     Documentation browsing system.
2402      * Emacs:   (emacs).    The extensible, self-documenting
2403                             text editor.
2404      * Texinfo: (texinfo).  With one source file, make
2405                             either a printed manual using
2406                             TeX or an Info file.
2407      ...
2408
2409   Each of these menu entries points to the `Top' node of the Info file
2410 that is named in parentheses.  (The menu entry does not need to specify
2411 the `Top' node, since Info goes to the `Top' node if no node name is
2412 mentioned.  *Note Nodes in Other Info Files: Other Info Files.)
2413
2414   Thus, the `Info' entry points to the `Top' node of the `info' file
2415 and the `Emacs' entry points to the `Top' node of the `emacs' file.
2416
2417   In each of the Info files, the `Up' pointer of the `Top' node refers
2418 back to the `dir' file.  For example, the line for the `Top' node of
2419 the Emacs manual looks like this in Info:
2420
2421      File: emacs  Node: Top, Up: (DIR), Next: Distrib
2422
2423 (Note that in this case, the `dir' file name is written in upper case
2424 letters--it can be written in either upper or lower case.  Info has a
2425 feature that it will change the case of the file name to lower case if
2426 it cannot find the name as written.)
2427
2428 \1f
2429 File: texinfo.info,  Node: New Info File,  Next: Other Info Directories,  Prev: Directory file,  Up: Install an Info File
2430
2431 21.1 Listing a New Info File
2432 ============================
2433
2434 To add a new Info file to your system, you must write a menu entry to
2435 add to the menu in the `dir' file in the `info' directory.  For
2436 example, if you were adding documentation for GDB, you would write the
2437 following new entry:
2438
2439      * GDB: (gdb).           The source-level C debugger.
2440
2441 The first part of the menu entry is the menu entry name, followed by a
2442 colon.  The second part is the name of the Info file, in parentheses,
2443 followed by a period.  The third part is the description.
2444
2445   The name of an Info file often has a `.info' extension.  Thus, the
2446 Info file for GDB might be called either `gdb' or `gdb.info'.  The Info
2447 reader programs automatically try the file name both with and without
2448 `.info'; so it is better to avoid clutter and not to write `.info'
2449 explicitly in the menu entry.  For example, the GDB menu entry should
2450 use just `gdb' for the file name, not `gdb.info'.
2451
2452 \1f
2453 File: texinfo.info,  Node: Other Info Directories,  Next: Installing Dir Entries,  Prev: New Info File,  Up: Install an Info File
2454
2455 21.2 Info Files in Other Directories
2456 ====================================
2457
2458 If an Info file is not in the `info' directory, there are three ways to
2459 specify its location:
2460
2461    * Write the pathname in the `dir' file as the second part of the
2462      menu.
2463
2464    * If you are using Emacs, list the name of the file in a second `dir'
2465      file, in its directory; and then add the name of that directory to
2466      the `Info-directory-list' variable in your personal or site
2467      initialization file.
2468
2469      This tells Emacs where to look for `dir' files.  Emacs merges the
2470      files named `dir' from each of the listed directories.  (In Emacs
2471      version 18, you can set the `Info-directory' variable to the name
2472      of only one directory.)
2473
2474    * Specify the Info directory name in the `INFOPATH' environment
2475      variable in your `.profile' or `.cshrc' initialization file.
2476      (Only you and others who set this environment variable will be
2477      able to find Info files whose location is specified this way.)
2478
2479   For example, to reach a test file in the `/home/bob/manuals'
2480 directory, you could add an entry like this to the menu in the `dir'
2481 file:
2482
2483      * Test: (/home/bob/manuals/info-test).  Bob's own test file.
2484
2485 In this case, the absolute file name of the `info-test' file is written
2486 as the second part of the menu entry.
2487
2488   Alternatively, you could write the following in your `.emacs' file:
2489
2490      (setq Info-directory-list
2491            '("/home/bob/manuals"
2492              "/usr/local/info"))
2493
2494   This tells Emacs to merge the `dir' file from the `/home/bob/manuals'
2495 directory with the `dir' file from the `/usr/local/info' directory.
2496 Info will list the `/home/bob/manuals/info-test' file as a menu entry
2497 in the `/home/bob/manuals/dir' file.
2498
2499   Finally, you can tell Info where to look by setting the `INFOPATH'
2500 environment variable in your `.cshrc' or `.profile' file.  If you use a
2501 Bourne-compatible shell such as `sh' or `bash' for your shell command
2502 interpreter, you set the `INFOPATH' environment variable in the
2503 `.profile' initialization file; but if you use `csh' or `tcsh', you
2504 must set the variable in the `.cshrc' initialization file.  The two
2505 types of shells use different syntax.
2506
2507    * In a `.cshrc' file, you could set the `INFOPATH' variable as
2508      follows:
2509
2510           setenv INFOPATH .:~/manuals:/usr/local/emacs/info
2511
2512    * In a `.profile' file, you would achieve the same effect by writing:
2513
2514           INFOPATH=.:$HOME/manuals:/usr/local/emacs/info
2515           export INFOPATH
2516
2517 The `.' indicates the current directory as usual.  Emacs uses the
2518 `INFOPATH' environment variable to initialize the value of Emacs's own
2519 `Info-directory-list' variable.
2520
2521   However you set `INFOPATH', if its last character is a colon, this is
2522 replaced by the default (compiled-in) path.  This gives you a way to
2523 augment the default path with new directories without having to list all
2524 the standard places.  For example (using `sh' syntax:
2525
2526      INFOPATH=/local/info:
2527      export INFOPATH
2528
2529 will search `/local/info' first, then the standard directories.
2530 Leading or doubled colons are not treated specially.
2531
2532 \1f
2533 File: texinfo.info,  Node: Installing Dir Entries,  Next: Invoking install-info,  Prev: Other Info Directories,  Up: Install an Info File
2534
2535 21.3 Installing Info Directory Files
2536 ====================================
2537
2538 When you install an Info file onto your system, you can use the program
2539 `install-info' to update the Info directory file `dir'.  Normally the
2540 makefile for the package runs `install-info', just after copying the
2541 Info file into its proper installed location.
2542
2543   In order for the Info file to work with `install-info', you should
2544 use the commands `@dircategory' and `@direntry' in the Texinfo source
2545 file.  Use `@direntry' to specify the menu entry to add to the Info
2546 directory file, and use `@dircategory' to specify which part of the
2547 Info directory to put it in.  Here is how these commands are used in
2548 this manual:
2549
2550      @dircategory Texinfo documentation system
2551      @direntry
2552      * Texinfo: (texinfo).           The GNU documentation format.
2553      * install-info: (texinfo)Invoking install-info. ...
2554      ...
2555      @end direntry
2556
2557   Here's what this produces in the Info file:
2558
2559      INFO-DIR-SECTION Texinfo documentation system
2560      START-INFO-DIR-ENTRY
2561      * Texinfo: (texinfo).           The GNU documentation format.
2562      * install-info: (texinfo)Invoking install-info. ...
2563      ...
2564      END-INFO-DIR-ENTRY
2565
2566 The `install-info' program sees these lines in the Info file, and that
2567 is how it knows what to do.
2568
2569   Always use the `@direntry' and `@dircategory' commands near the
2570 beginning of the Texinfo input, before the first `@node' command.  If
2571 you use them later on in the input, `install-info' will not notice them.
2572
2573   If you use `@dircategory' more than once in the Texinfo source, each
2574 usage specifies one category; the new menu entry is added to the Info
2575 directory file in each of the categories you specify.  If you use
2576 `@direntry' more than once, each usage specifies one menu entry; each
2577 of these menu entries is added to the directory in each of the
2578 specified categories.
2579
2580 \1f
2581 File: texinfo.info,  Node: Invoking install-info,  Prev: Installing Dir Entries,  Up: Install an Info File
2582
2583 21.4 Invoking install-info
2584 ==========================
2585
2586 `install-info' inserts menu entries from an Info file into the
2587 top-level `dir' file in the Info system (see the previous sections for
2588 an explanation of how the `dir' file works).  It's most often run as
2589 part of software installation, or when constructing a dir file for all
2590 manuals on a system.  Synopsis:
2591
2592      install-info [OPTION]... [INFO-FILE [DIR-FILE]]
2593
2594   If INFO-FILE or DIR-FILE are not specified, the various options
2595 (described below) that define them must be.  There are no compile-time
2596 defaults, and standard input is never used.  `install-info' can read
2597 only one info file and write only one dir file per invocation.
2598
2599   If DIR-FILE (however specified) does not exist, `install-info'
2600 creates it if possible (with no entries).
2601
2602   Options:
2603
2604 `--delete'
2605      Delete the entries in INFO-FILE from DIR-FILE.  The file name in
2606      the entry in DIR-FILE must be INFO-FILE (except for an optional
2607      `.info' in either one).  Don't insert any new entries.
2608
2609 `--dir-file=NAME'
2610      Specify file name of the Info directory file.  This is equivalent
2611      to using the DIR-FILE argument.
2612
2613 `--entry=TEXT'
2614      Insert TEXT as an Info directory entry; TEXT should have the form
2615      of an Info menu item line plus zero or more extra lines starting
2616      with whitespace.  If you specify more than one entry, they are all
2617      added.  If you don't specify any entries, they are determined from
2618      information in the Info file itself.
2619
2620 `--help'
2621      Display a usage message listing basic usage and all available
2622      options, then exit successfully.
2623
2624 `--info-file=FILE'
2625      Specify Info file to install in the directory.  This is equivalent
2626      to using the INFO-FILE argument.
2627
2628 `--info-dir=DIR'
2629      Equivalent to `--dir-file=DIR/dir'.
2630
2631 `--item=TEXT'
2632      Same as `--entry=TEXT'.  An Info directory entry is actually a
2633      menu item.
2634
2635 `--quiet'
2636      Suppress warnings.
2637
2638 `--remove'
2639      Same as `--delete'.
2640
2641 `--section=SEC'
2642      Put this file's entries in section SEC of the directory.  If you
2643      specify more than one section, all the entries are added in each
2644      of the sections.  If you don't specify any sections, they are
2645      determined from information in the Info file itself.
2646
2647 `--version'
2648      Display version information and exit successfully.
2649
2650
2651 \1f
2652 File: texinfo.info,  Node: Command List,  Next: Tips,  Prev: Install an Info File,  Up: Top
2653
2654 Appendix A @-Command List
2655 *************************
2656
2657 Here is an alphabetical list of the @-commands in Texinfo.  Square
2658 brackets, [ ], indicate optional arguments; an ellipsis, `...',
2659 indicates repeated text.
2660
2661
2662 `@WHITESPACE'
2663      An `@' followed by a space, tab, or newline produces a normal,
2664      stretchable, interword space.  *Note Multiple Spaces::.
2665
2666 `@!'
2667      Generate an exclamation point that really does end a sentence
2668      (usually after an end-of-sentence capital letter).  *Note Ending a
2669      Sentence::.
2670
2671 `@"'
2672 `@''
2673      Generate an umlaut or acute accent, respectively, over the next
2674      character, as in o" and o'.  *Note Inserting Accents::.
2675
2676 `@*'
2677      Force a line break. Do not end a paragraph that uses `@*' with an
2678      `@refill' command.  *Note Line Breaks::.
2679
2680 `@,{C}'
2681      Generate a cedilla accent under C, as in c,.  *Note Inserting
2682      Accents::.
2683
2684 `@-'
2685      Insert a discretionary hyphenation point.  *Note - and
2686      hyphenation::.
2687
2688 `@.'
2689      Produce a period that really does end a sentence (usually after an
2690      end-of-sentence capital letter).  *Note Ending a Sentence::.
2691
2692 `@:'
2693      Indicate to TeX that an immediately preceding period, question
2694      mark, exclamation mark, or colon does not end a sentence.  Prevent
2695      TeX from inserting extra whitespace as it does at the end of a
2696      sentence.  The command has no effect on the Info file output.
2697      *Note Not Ending a Sentence::.
2698
2699 `@='
2700      Generate a macro (bar) accent over the next character, as in o=.
2701      *Note Inserting Accents::.
2702
2703 `@?'
2704      Generate a question mark that really does end a sentence (usually
2705      after an end-of-sentence capital letter).  *Note Ending a
2706      Sentence::.
2707
2708 `@@'
2709      Stands for an at sign, `@'.  *Note Inserting @ and braces: Braces
2710      Atsigns.
2711
2712 `@^'
2713 `@`'
2714      Generate a circumflex (hat) or grave accent, respectively, over
2715      the next character, as in o^.  *Note Inserting Accents::.
2716
2717 `@{'
2718      Stands for a left brace, `{'.  *Note Inserting @ and braces:
2719      Braces Atsigns.
2720
2721 `@}'
2722      Stands for a right-hand brace, `}'.
2723      *Note Inserting @ and braces: Braces Atsigns.
2724
2725 `@='
2726      Generate a tilde accent over the next character, as in N~.  *Note
2727      Inserting Accents::.
2728
2729 `@AA{}'
2730 `@aa{}'
2731      Generate the uppercase and lowercase Scandinavian A-ring letters,
2732      respectively: AA, aa.  *Note Inserting Accents::.
2733
2734 `@AE{}'
2735 `@ae{}'
2736      Generate the uppercase and lowercase AE ligatures, respectively:
2737      AE, ae.  *Note Inserting Accents::.
2738
2739 `@afourpaper'
2740      Change page dimensions for the A4 paper size.  Only allowed inside
2741      `@iftex' ... `@end iftex'.  *Note A4 Paper::.
2742
2743 `@appendix TITLE'
2744      Begin an appendix.  The title appears in the table of contents of
2745      a printed manual.  In Info, the title is underlined with
2746      asterisks.  *Note The `@unnumbered' and `@appendix' Commands:
2747      unnumbered & appendix.
2748
2749 `@appendixsec TITLE'
2750 `@appendixsection TITLE'
2751      Begin an appendix section within an appendix.  The section title
2752      appears in the table of contents of a printed manual.  In Info,
2753      the title is underlined with equal signs.  `@appendixsection' is a
2754      longer spelling of the `@appendixsec' command.  *Note Section
2755      Commands: unnumberedsec appendixsec heading.
2756
2757 `@appendixsubsec TITLE'
2758      Begin an appendix subsection within an appendix.  The title appears
2759      in the table of contents of a printed manual.  In Info, the title
2760      is underlined with hyphens.  *Note Subsection Commands:
2761      unnumberedsubsec appendixsubsec subheading.
2762
2763 `@appendixsubsubsec TITLE'
2764      Begin an appendix subsubsection within an appendix subsection.  The
2765      title appears in the table of contents of a printed manual.  In
2766      Info, the title is underlined with periods.  *Note The `subsub'
2767      Commands: subsubsection.
2768
2769 `@asis'
2770      Used following `@table', `@ftable', and `@vtable' to print the
2771      table's first column without highlighting ("as is").  *Note Making
2772      a Two-column Table: Two-column Tables.
2773
2774 `@author AUTHOR'
2775      Typeset AUTHOR flushleft and underline it.  *Note The `@title' and
2776      `@author' Commands: title subtitle author.
2777
2778 `@b{TEXT}'
2779      Print TEXT in bold font.  No effect in Info.  *Note Fonts::.
2780
2781 `@bullet{}'
2782      Generate a large round dot, or the closest possible thing to one.
2783      *Note `@bullet': bullet.
2784
2785 `@bye'
2786      Stop formatting a file.  The formatters do not see the contents of
2787      a file following an `@bye' command.  *Note Ending a File::.
2788
2789 `@c COMMENT'
2790      Begin a comment in Texinfo.  The rest of the line does not appear
2791      in either the Info file or the printed manual.  A synonym for
2792      `@comment'.  *Note Comments: Comments.
2793
2794 `@cartouche'
2795      Highlight an example or quotation by drawing a box with rounded
2796      corners around it.  Pair with `@end cartouche'.  No effect in
2797      Info.  *Note Drawing Cartouches Around Examples: cartouche.)
2798
2799 `@center LINE-OF-TEXT'
2800      Center the line of text following the command.  *Note `@center':
2801      titlefont center sp.
2802
2803 `@centerchap LINE-OF-TEXT'
2804      Like `@chapter', but centers the chapter title.  *Note `@chapter':
2805      chapter.
2806
2807 `@chapheading TITLE'
2808      Print a chapter-like heading in the text, but not in the table of
2809      contents of a printed manual.  In Info, the title is underlined
2810      with asterisks.  *Note `@majorheading' and `@chapheading':
2811      majorheading & chapheading.
2812
2813 `@chapter TITLE'
2814      Begin a chapter.  The chapter title appears in the table of
2815      contents of a printed manual.  In Info, the title is underlined
2816      with asterisks.  *Note `@chapter': chapter.
2817
2818 `@cindex ENTRY'
2819      Add ENTRY to the index of concepts.  *Note Defining the Entries of
2820      an Index: Index Entries.
2821
2822 `@cite{REFERENCE}'
2823      Highlight the name of a book or other reference that lacks a
2824      companion Info file.  *Note `@cite': cite.
2825
2826 `@clear FLAG'
2827      Unset FLAG, preventing the Texinfo formatting commands from
2828      formatting text between subsequent pairs of `@ifset FLAG' and
2829      `@end ifset' commands, and preventing `@value{FLAG}' from
2830      expanding to the value to which FLAG is set.  *Note `@set'
2831      `@clear' `@value': set clear value.
2832
2833 `@code{SAMPLE-CODE}'
2834      Highlight text that is an expression, a syntactically complete
2835      token of a program, or a program name.  *Note `@code': code.
2836
2837 `@comment COMMENT'
2838      Begin a comment in Texinfo.  The rest of the line does not appear
2839      in either the Info file or the printed manual.  A synonym for `@c'.
2840      *Note Comments: Comments.
2841
2842 `@contents'
2843      Print a complete table of contents.  Has no effect in Info, which
2844      uses menus instead.  *Note Generating a Table of Contents:
2845      Contents.
2846
2847 `@copyright{}'
2848      Generate a copyright symbol.  *Note `@copyright': copyright symbol.
2849
2850 `@defcodeindex INDEX-NAME'
2851      Define a new index and its indexing command.  Print entries in an
2852      `@code' font.  *Note Defining New Indices: New Indices.
2853
2854 `@defcv CATEGORY CLASS NAME'
2855 `@defcvx CATEGORY CLASS NAME'
2856      Format a description for a variable associated with a class in
2857      object-oriented programming.  Takes three arguments: the category
2858      of thing being defined, the class to which it belongs, and its
2859      name.  *Note Definition Commands::, and *Note Def Cmds in Detail:
2860      deffnx.
2861
2862 `@deffn CATEGORY NAME ARGUMENTS...'
2863 `@deffnx CATEGORY NAME ARGUMENTS...'
2864      Format a description for a function, interactive command, or
2865      similar entity that may take arguments.  `@deffn' takes as
2866      arguments the category of entity being described, the name of this
2867      particular entity, and its arguments, if any.  *Note Definition
2868      Commands::.
2869
2870 `@defindex INDEX-NAME'
2871      Define a new index and its indexing command.  Print entries in a
2872      roman font.  *Note Defining New Indices: New Indices.
2873
2874 `@definfoenclose NEW-COMMAND, BEFORE, AFTER,'
2875      Create new @-command for Info that marks text by enclosing it in
2876      strings that precede and follow the text.  Write definition inside
2877      of `@ifinfo' ... `@end ifinfo'. *Note Customized Highlighting::.
2878
2879 `@defivar CLASS INSTANCE-VARIABLE-NAME'
2880 `@defivarx CLASS INSTANCE-VARIABLE-NAME'
2881      This command formats a description for an instance variable in
2882      object-oriented programming.  The command is equivalent to `@defcv
2883      {Instance Variable} ...'.  *Note Definition Commands::, and *Note
2884      Def Cmds in Detail: deffnx.
2885
2886 `@defmac MACRO-NAME ARGUMENTS...'
2887 `@defmacx MACRO-NAME ARGUMENTS...'
2888      Format a description for a macro.  The command is equivalent to
2889      `@deffn Macro ...'.  *Note Definition Commands::, and *Note Def
2890      Cmds in Detail: deffnx.
2891
2892 `@defmethod CLASS METHOD-NAME ARGUMENTS...'
2893 `@defmethodx CLASS METHOD-NAME ARGUMENTS...'
2894      Format a description for a method in object-oriented programming.
2895      The command is equivalent to `@defop Method ...'.  Takes as
2896      arguments the name of the class of the method, the name of the
2897      method, and its arguments, if any.  *Note Definition Commands::,
2898      and *Note Def Cmds in Detail: deffnx.
2899
2900 `@defop CATEGORY CLASS NAME ARGUMENTS...'
2901 `@defopx CATEGORY CLASS NAME ARGUMENTS...'
2902      Format a description for an operation in object-oriented
2903      programming.  `@defop' takes as arguments the overall name of the
2904      category of operation, the name of the class of the operation, the
2905      name of the operation, and its arguments, if any.  *Note
2906      Definition Commands::, and *Note Def Cmds in Detail: deffnx.
2907
2908 `@defopt OPTION-NAME'
2909 `@defoptx OPTION-NAME'
2910      Format a description for a user option.  The command is equivalent
2911      to `@defvr {User Option} ...'.  *Note Definition Commands::, and
2912      *Note Def Cmds in Detail: deffnx.
2913
2914 `@defspec SPECIAL-FORM-NAME ARGUMENTS...'
2915 `@defspecx SPECIAL-FORM-NAME ARGUMENTS...'
2916      Format a description for a special form.  The command is
2917      equivalent to `@deffn {Special Form} ...'.  *Note Definition
2918      Commands::, and *Note Def Cmds in Detail: deffnx.
2919
2920 `@deftp CATEGORY NAME-OF-TYPE ATTRIBUTES...'
2921 `@deftpx CATEGORY NAME-OF-TYPE ATTRIBUTES...'
2922      Format a description for a data type.  `@deftp' takes as arguments
2923      the category, the name of the type (which is a word like `int' or
2924      `float'), and then the names of attributes of objects of that type.
2925      *Note Definition Commands::, and *Note Def Cmds in Detail: deffnx.
2926
2927 `@deftypefn CLASSIFICATION DATA-TYPE NAME ARGUMENTS...'
2928 `@deftypefnx CLASSIFICATION DATA-TYPE NAME ARGUMENTS...'
2929      Format a description for a function or similar entity that may take
2930      arguments and that is typed.  `@deftypefn' takes as arguments the
2931      classification of entity being described, the type, the name of the
2932      entity, and its arguments, if any.  *Note Definition Commands::,
2933      and *Note Def Cmds in Detail: deffnx.
2934
2935 `@deftypefun DATA-TYPE FUNCTION-NAME ARGUMENTS...'
2936 `@deftypefunx DATA-TYPE FUNCTION-NAME ARGUMENTS...'
2937      Format a description for a function in a typed language.  The
2938      command is equivalent to `@deftypefn Function ...'.  *Note
2939      Definition Commands::, and *Note Def Cmds in Detail: deffnx.
2940
2941 `@deftypemethod CLASS DATA-TYPE METHOD-NAME ARGUMENTS...'
2942 `@deftypemethodx CLASS DATA-TYPE METHOD-NAME ARGUMENTS...'
2943      Format a description for a typed method in object-oriented
2944      programming.  Takes as arguments the name of the class of the
2945      method, the return type of the method, the name of the method, and
2946      its arguments, if any.  *Note Definition Commands::, and *Note Def
2947      Cmds in Detail: deffnx.
2948
2949 `@deftypevr CLASSIFICATION DATA-TYPE NAME'
2950 `@deftypevrx CLASSIFICATION DATA-TYPE NAME'
2951      Format a description for something like a variable in a typed
2952      language--an entity that records a value.  Takes as arguments the
2953      classification of entity being described, the type, and the name
2954      of the entity.  *Note Definition Commands::, and *Note Def Cmds in
2955      Detail: deffnx.
2956
2957 `@deftypevar DATA-TYPE VARIABLE-NAME'
2958 `@deftypevarx DATA-TYPE VARIABLE-NAME'
2959      Format a description for a variable in a typed language.  The
2960      command is equivalent to `@deftypevr Variable ...'.  *Note
2961      Definition Commands::, and *Note Def Cmds in Detail: deffnx.
2962
2963 `@defun FUNCTION-NAME ARGUMENTS...'
2964 `@defunx FUNCTION-NAME ARGUMENTS...'
2965      Format a description for functions.  The command is equivalent to
2966      `@deffn Function ...'.  *Note Definition Commands::, and *Note Def
2967      Cmds in Detail: deffnx.
2968
2969 `@defvar VARIABLE-NAME'
2970 `@defvarx VARIABLE-NAME'
2971      Format a description for variables.  The command is equivalent to
2972      `@defvr Variable ...'.  *Note Definition Commands::, and *Note Def
2973      Cmds in Detail: deffnx.
2974
2975 `@defvr CATEGORY NAME'
2976 `@defvrx CATEGORY NAME'
2977      Format a description for any kind of variable.  `@defvr' takes as
2978      arguments the category of the entity and the name of the entity.
2979      *Note Definition Commands::, and *Note Def Cmds in Detail: deffnx.
2980
2981 `@detailmenu{}'
2982      Avoid `makeinfo' confusion stemming from the detailed node listing
2983      in a master menu.  *Note Master Menu Parts::.
2984
2985 `@dfn{TERM}'
2986      Highlight the introductory or defining use of a term.  *Note
2987      `@dfn': dfn.
2988
2989 `@dircategory DIRPART'
2990      Specify a part of the Info directory menu where this file's entry
2991      should go.  *Note Installing Dir Entries::.
2992
2993 `@direntry'
2994      Begin the Info directory menu entry for this file.  *Note
2995      Installing Dir Entries::.
2996
2997 `@display'
2998      Begin a kind of example.  Indent text, do not fill, do not select a
2999      new font.  Pair with `@end display'.  *Note `@display': display.
3000
3001 `@dmn{DIMENSION}'
3002      Format a unit of measure, as in 12pt.  Causes TeX to insert a thin
3003      space before DIMENSION.  No effect in Info.  *Note `@dmn': dmn.
3004
3005 `@dotaccent{C}'
3006      Generate a dot accent over the character C, as in oo..  *Note
3007      Inserting Accents::.
3008
3009 `@dots{}'
3010      Insert an ellipsis: `...'.  *Note `@dots{}': dots.
3011
3012 `@email{ADDRESS[, DISPLAYED-TEXT]}'
3013      Indicate an electronic mail address.  *Note `@email': email.
3014
3015 `@emph{TEXT}'
3016      Highlight TEXT; text is displayed in _italics_ in printed output,
3017      and surrounded by asterisks in Info.  *Note Emphasizing Text:
3018      Emphasis.
3019
3020 `@end ENVIRONMENT'
3021      Ends ENVIRONMENT, as in `@end example'.  *Note @-commands:
3022      Formatting Commands.
3023
3024 `@enddots{}'
3025      Generate an end-of-sentence of ellipsis, like this ....  *Note
3026      `@dots{}': dots.
3027
3028 `@enumerate [NUMBER-OR-LETTER]'
3029      Begin a numbered list, using `@item' for each entry.  Optionally,
3030      start list with NUMBER-OR-LETTER.  Pair with `@end enumerate'.
3031      *Note `@enumerate': enumerate.
3032
3033 `@equiv{}'
3034      Indicate to the reader the exact equivalence of two forms with a
3035      glyph: `=='.  *Note Equivalence::.
3036
3037 `@error{}'
3038      Indicate to the reader with a glyph that the following text is an
3039      error message: `error-->'.  *Note Error Glyph::.
3040
3041 `@evenfooting [LEFT] @| [CENTER] @| [RIGHT]'
3042 `@evenheading [LEFT] @| [CENTER] @| [RIGHT]'
3043      Specify page footings resp. headings for even-numbered (left-hand)
3044      pages.  Only allowed inside `@iftex'.  *Note How to Make Your Own
3045      Headings: Custom Headings.
3046
3047 `@everyfooting [LEFT] @| [CENTER] @| [RIGHT]'
3048 `@everyheading [LEFT] @| [CENTER] @| [RIGHT]'
3049      Specify page footings resp. headings for every page.  Not relevant
3050      to Info.  *Note How to Make Your Own Headings: Custom Headings.
3051
3052 `@example'
3053      Begin an example.  Indent text, do not fill, and select
3054      fixed-width font.  Pair with `@end example'.  *Note `@example':
3055      example.
3056
3057 `@exclamdown{}'
3058      Produce an upside-down exclamation point.  *Note Inserting
3059      Accents::.
3060
3061 `@exdent LINE-OF-TEXT'
3062      Remove any indentation a line might have.  *Note Undoing the
3063      Indentation of a Line: exdent.
3064
3065 `@expansion{}'
3066      Indicate the result of a macro expansion to the reader with a
3067      special glyph: `==>'.  *Note ==> Indicating an Expansion:
3068      expansion.
3069
3070 `@file{FILENAME}'
3071      Highlight the name of a file, buffer, node, or directory.  *Note
3072      `@file': file.
3073
3074 `@finalout'
3075      Prevent TeX from printing large black warning rectangles beside
3076      over-wide lines.  *Note Overfull hboxes::.
3077
3078 `@findex ENTRY'
3079      Add ENTRY to the index of functions.  *Note Defining the Entries
3080      of an Index: Index Entries.
3081
3082 `@flushleft'
3083 `@flushright'
3084      Left justify every line but leave the right end ragged.  Leave
3085      font as is.  Pair with `@end flushleft'.  `@flushright' analogous.
3086      *Note `@flushleft' and `@flushright': flushleft & flushright.
3087
3088 `@footnote{TEXT-OF-FOOTNOTE}'
3089      Enter a footnote.  Footnote text is printed at the bottom of the
3090      page by TeX; Info may format in either `End' node or `Separate'
3091      node style.  *Note Footnotes::.
3092
3093 `@footnotestyle STYLE'
3094      Specify an Info file's footnote style, either `end' for the end
3095      node style or `separate' for the separate node style.  *Note
3096      Footnotes::.
3097
3098 `@format'
3099      Begin a kind of example.  Like `@example' or `@display', but do
3100      not narrow the margins and do not select the fixed-width font.
3101      Pair with `@end format'.  *Note `@example': example.
3102
3103 `@ftable FORMATTING-COMMAND'
3104      Begin a two-column table, using `@item' for each entry.
3105      Automatically enter each of the items in the first column into the
3106      index of functions.  Pair with `@end ftable'.  The same as
3107      `@table', except for indexing.  *Note `@ftable' and `@vtable':
3108      ftable vtable.
3109
3110 `@group'
3111      Hold text together that must appear on one printed page.  Pair with
3112      `@end group'.  Not relevant to Info.  *Note `@group': group.
3113
3114 `@H{C}'
3115      Generate the long Hungarian umlaut accent over C, as in o''.
3116
3117 `@heading TITLE'
3118      Print an unnumbered section-like heading in the text, but not in
3119      the table of contents of a printed manual.  In Info, the title is
3120      underlined with equal signs.  *Note Section Commands:
3121      unnumberedsec appendixsec heading.
3122
3123 `@headings ON-OFF-SINGLE-DOUBLE'
3124      Turn page headings on or off, and/or specify single-sided or
3125      double-sided page headings for printing.  *Note The `@headings'
3126      Command: headings on off.
3127
3128 `@html'
3129      Enter HTML completely.  Pair with `@end html'.  *Note Raw
3130      Formatter Commands::.
3131
3132 `@hyphenation{HY-PHEN-A-TED WORDS}'
3133      Explicitly define hyphenation points.  *Note `@-' and
3134      `@hyphenation': - and hyphenation.
3135
3136 `@i{TEXT}'
3137      Print TEXT in italic font.  No effect in Info.  *Note Fonts::.
3138
3139 `@ifclear FLAG'
3140      If FLAG is cleared, the Texinfo formatting commands format text
3141      between `@ifclear FLAG' and the following `@end ifclear' command.
3142      *Note `@set' `@clear' `@value': set clear value.
3143
3144 `@ifhtml'
3145 `@ifinfo'
3146      Begin a stretch of text that will be ignored by TeX when it
3147      typesets the printed manual.  The text appears only in the HTML
3148      resp. Info file.  Pair with `@end ifhtml' resp. `@end ifinfo'.
3149      *Note Conditionals::.
3150
3151 `@ifnothtml'
3152 `@ifnotinfo'
3153 `@ifnottex'
3154      Begin a stretch of text that will be ignored in one output format
3155      but not the others.  The text appears only in the format not
3156      specified.  Pair with `@end ifnothtml' resp. `@end ifnotinfo' resp.
3157      `@end ifnotinfo'.  *Note Conditionals::.
3158
3159 `@ifset FLAG'
3160      If FLAG is set, the Texinfo formatting commands format text
3161      between `@ifset FLAG' and the following `@end ifset' command.
3162      *Note `@set' `@clear' `@value': set clear value.
3163
3164 `@iftex'
3165      Begin a stretch of text that will not appear in the Info file, but
3166      will be processed only by TeX.  Pair with `@end iftex'.  *Note
3167      Conditionally Visible Text: Conditionals.
3168
3169 `@ignore'
3170      Begin a stretch of text that will not appear in either the Info
3171      file or the printed output.  Pair with `@end ignore'.  *Note
3172      Comments and Ignored Text: Comments.
3173
3174 `@image{FILENAME, [WIDTH], [HEIGHT]}'
3175      Include graphics image in external FILENAME scaled to the given
3176      WIDTH and/or HEIGHT.  *Note Images::.
3177
3178 `@include FILENAME'
3179      Incorporate the contents of the file FILENAME into the Info file
3180      or printed document.  *Note Include Files::.
3181
3182 `@inforef{NODE-NAME, [ENTRY-NAME], INFO-FILE-NAME}'
3183      Make a cross reference to an Info file for which there is no
3184      printed manual.  *Note Cross references using `@inforef': inforef.
3185
3186 `\input MACRO-DEFINITIONS-FILE'
3187      Use the specified macro definitions file.  This command is used
3188      only in the first line of a Texinfo file to cause TeX to make use
3189      of the `texinfo' macro definitions file.  The backslash in `\input'
3190      is used instead of an `@' because TeX does not recognize `@' until
3191      after it has read the definitions file.  *Note The Texinfo File
3192      Header: Header.
3193
3194 `@item'
3195      Indicate the beginning of a marked paragraph for `@itemize' and
3196      `@enumerate'; indicate the beginning of the text of a first column
3197      entry for `@table', `@ftable', and `@vtable'.  *Note Lists and
3198      Tables::.
3199
3200 `@itemize  MARK-GENERATING-CHARACTER-OR-COMMAND'
3201      Produce a sequence of indented paragraphs, with a mark inside the
3202      left margin at the beginning of each paragraph.  Pair with `@end
3203      itemize'.  *Note `@itemize': itemize.
3204
3205 `@itemx'
3206      Like `@item' but do not generate extra vertical space above the
3207      item text.  *Note `@itemx': itemx.
3208
3209 `@kbd{KEYBOARD-CHARACTERS}'
3210      Indicate text that is characters of input to be typed by users.
3211      *Note `@kbd': kbd.
3212
3213 `@kbdinputstyle STYLE'
3214      Specify when `@kbd' should use a font distinct from `@code'.
3215      *Note `@kbd': kbd.
3216
3217 `@key{KEY-NAME}'
3218      Indicate a name for a key on a keyboard.  *Note `@key': key.
3219
3220 `@kindex ENTRY'
3221      Add ENTRY to the index of keys.  *Note Defining the Entries of an
3222      Index: Index Entries.
3223
3224 `@L{}'
3225 `@l{}'
3226      Generate the uppercase and lowercase Polish suppressed-L letters,
3227      respectively: /L, /l.
3228
3229 `@lisp'
3230      Begin an example of Lisp code.  Indent text, do not fill, and
3231      select fixed-width font.  Pair with `@end lisp'.  *Note `@lisp':
3232      Lisp Example.
3233
3234 `@lowersections'
3235      Change subsequent chapters to sections, sections to subsections,
3236      and so on. *Note `@raisesections' and `@lowersections':
3237      Raise/lower sections.
3238
3239 `@macro MACRO-NAME {PARAMS}'
3240      Define a new Texinfo command `@MACRO-NAME{PARAMS}'.  Only
3241      supported by `makeinfo' and `texi2dvi'.  *Note Defining Macros::.
3242
3243 `@majorheading TITLE'
3244      Print a chapter-like heading in the text, but not in the table of
3245      contents of a printed manual.  Generate more vertical whitespace
3246      before the heading than the `@chapheading' command.  In Info, the
3247      chapter heading line is underlined with asterisks.  *Note
3248      `@majorheading' and `@chapheading': majorheading & chapheading.
3249
3250 `@math{MATHEMATICAL-EXPRESSION}'
3251      Format a mathematical expression.  *Note `@math' - Inserting
3252      Mathematical Expressions: math.
3253
3254 `@menu'
3255      Mark the beginning of a menu of nodes in Info.  No effect in a
3256      printed manual.  Pair with `@end menu'.  *Note Menus::.
3257
3258 `@minus{}'
3259      Generate a minus sign, `-'.  *Note `@minus': minus.
3260
3261 `@multitable COLUMN-WIDTH-SPEC'
3262      Begin a multi-column table.  Pair with `@end multitable'.  *Note
3263      Multitable Column Widths::.
3264
3265 `@need N'
3266      Start a new page in a printed manual if fewer than N mils
3267      (thousandths of an inch) remain on the current page.  *Note
3268      `@need': need.
3269
3270 `@node NAME, NEXT, PREVIOUS, UP'
3271      Define the beginning of a new node in Info, and serve as a locator
3272      for references for TeX.  *Note `@node': node.
3273
3274 `@noindent'
3275      Prevent text from being indented as if it were a new paragraph.
3276      *Note `@noindent': noindent.
3277
3278 `@O{}'
3279 `@o{}'
3280      Generate the uppercase and lowercase O-with-slash letters,
3281      respectively: /O, /o.
3282
3283 `@oddfooting [LEFT] @| [CENTER] @| [RIGHT]'
3284 `@oddheading [LEFT] @| [CENTER] @| [RIGHT]'
3285      Specify page footings resp. headings for odd-numbered (right-hand)
3286      pages.  Only allowed inside `@iftex'.  *Note How to Make Your Own
3287      Headings: Custom Headings.
3288
3289 `@OE{}'
3290 `@oe{}'
3291      Generate the uppercase and lowercase OE ligatures, respectively:
3292      OE, oe.  *Note Inserting Accents::.
3293
3294 `@page'
3295      Start a new page in a printed manual.  No effect in Info.  *Note
3296      `@page': page.
3297
3298 `@paragraphindent INDENT'
3299      Indent paragraphs by INDENT number of spaces; delete indentation
3300      if the value of INDENT is 0; and do not change indentation if
3301      INDENT is `asis'. *Note Paragraph Indenting: paragraphindent.
3302
3303 `@pindex ENTRY'
3304      Add ENTRY to the index of programs.  *Note Defining the Entries of
3305      an Index: Index Entries.
3306
3307 `@point{}'
3308      Indicate the position of point in a buffer to the reader with a
3309      glyph: `-!-'.  *Note Indicating Point in a Buffer: Point Glyph.
3310
3311 `@pounds{}'
3312      Generate the pounds sterling currency sign.  *Note `@pounds{}':
3313      pounds.
3314
3315 `@print{}'
3316      Indicate printed output to the reader with a glyph: `-|'.  *Note
3317      Print Glyph::.
3318
3319 `@printindex INDEX-NAME'
3320      Print an alphabetized two-column index in a printed manual or
3321      generate an alphabetized menu of index entries for Info.  *Note
3322      Printing Indices & Menus::.
3323
3324 `@pxref{NODE-NAME, [ENTRY], [TOPIC-OR-TITLE], [INFO-FILE], [MANUAL]}'
3325      Make a reference that starts with a lower case `see' in a printed
3326      manual.  Use within parentheses only.  Do not follow command with a
3327      punctuation mark--the Info formatting commands automatically insert
3328      terminating punctuation as needed.  Only the first argument is
3329      mandatory.  *Note `@pxref': pxref.
3330
3331 `@questiondown{}'
3332      Generate an upside-down question mark.  *Note Inserting Accents::.
3333
3334 `@quotation'
3335      Narrow the margins to indicate text that is quoted from another
3336      real or imaginary work.  Write command on a line of its own.  Pair
3337      with `@end quotation'.  *Note `@quotation': quotation.
3338
3339 `@r{TEXT}'
3340      Print TEXT in roman font.  No effect in Info.  *Note Fonts::.
3341
3342 `@raisesections'
3343      Change subsequent sections to chapters, subsections to sections,
3344      and so on.  *Note `@raisesections' and `@lowersections':
3345      Raise/lower sections.
3346
3347 `@ref{NODE-NAME, [ENTRY], [TOPIC-OR-TITLE], [INFO-FILE], [MANUAL]}'
3348      Make a reference.  In a printed manual, the reference does not
3349      start with a `See'.  Follow command with a punctuation mark.  Only
3350      the first argument is mandatory.  *Note `@ref': ref.
3351
3352 `@refill'
3353      In Info, refill and indent the paragraph after all the other
3354      processing has been done.  No effect on TeX, which always refills.
3355      This command is no longer needed, since all formatters now
3356      automatically refill.  *Note Refilling Paragraphs::.
3357
3358 `@result{}'
3359      Indicate the result of an expression to the reader with a special
3360      glyph: `=>'.  *Note `@result': result.
3361
3362 `@ringaccent{C}'
3363      Generate a ring accent over the next character, as in o*.  *Note
3364      Inserting Accents::.
3365
3366 `@samp{TEXT}'
3367      Highlight TEXT that is a literal example of a sequence of
3368      characters.  Used for single characters, for statements, and often
3369      for entire shell commands.  *Note `@samp': samp.
3370
3371 `@sc{TEXT}'
3372      Set TEXT in a printed output in THE SMALL CAPS FONT and set text
3373      in the Info file in uppercase letters.  *Note Smallcaps::.
3374
3375 `@section TITLE'
3376      Begin a section within a chapter.  In a printed manual, the section
3377      title is numbered and appears in the table of contents.  In Info,
3378      the title is underlined with equal signs.  *Note `@section':
3379      section.
3380
3381 `@set FLAG [STRING]'
3382      Make FLAG active, causing the Texinfo formatting commands to
3383      format text between subsequent pairs of `@ifset FLAG' and `@end
3384      ifset' commands.  Optionally, set value of FLAG to STRING.  *Note
3385      `@set' `@clear' `@value': set clear value.
3386
3387 `@setchapternewpage ON-OFF-ODD'
3388      Specify whether chapters start on new pages, and if so, whether on
3389      odd-numbered (right-hand) new pages.  *Note `@setchapternewpage':
3390      setchapternewpage.
3391
3392 `@setfilename INFO-FILE-NAME'
3393      Provide a name to be used by the Info file.  This command is
3394      essential for TeX formatting as well, even though it produces no
3395      output.  *Note `@setfilename': setfilename.
3396
3397 `@settitle TITLE'
3398      Provide a title for page headers in a printed manual.  *Note
3399      `@settitle': settitle.
3400
3401 `@shortcontents'
3402      Print a short table of contents.  Not relevant to Info, which uses
3403      menus rather than tables of contents.  A synonym for
3404      `@summarycontents'.  *Note Generating a Table of Contents:
3405      Contents.
3406
3407 `@shorttitlepage{TITLE}'
3408      Generate a minimal title page.  *Note `@titlepage': titlepage.
3409
3410 `@smallbook'
3411      Cause TeX to produce a printed manual in a 7 by 9.25 inch format
3412      rather than the regular 8.5 by 11 inch format.  *Note Printing
3413      Small Books: smallbook.  Also, see *Note `@smallexample' and
3414      `@smalllisp': smallexample & smalllisp.
3415
3416 `@smallexample'
3417      Indent text to indicate an example.  Do not fill, select
3418      fixed-width font.  In `@smallbook' format, print text in a smaller
3419      font than with `@example'.  Pair with `@end smallexample'.  *Note
3420      `@smallexample' and `@smalllisp': smallexample & smalllisp.
3421
3422 `@smalllisp'
3423      Begin an example of Lisp code.  Indent text, do not fill, select
3424      fixed-width font.  In `@smallbook' format, print text in a smaller
3425      font.  Pair with `@end smalllisp'.  *Note `@smallexample' and
3426      `@smalllisp': smallexample & smalllisp.
3427
3428 `@sp N'
3429      Skip N blank lines.  *Note `@sp': sp.
3430
3431 `@ss{}'
3432      Generate the German sharp-S es-zet letter, ss.  *Note Inserting
3433      Accents::.
3434
3435 `@strong TEXT'
3436      Emphasize TEXT by typesetting it in a *bold* font for the printed
3437      manual and by surrounding it with asterisks for Info.  *Note
3438      Emphasizing Text: emph & strong.
3439
3440 `@subheading TITLE'
3441      Print an unnumbered subsection-like heading in the text, but not in
3442      the table of contents of a printed manual.  In Info, the title is
3443      underlined with hyphens.  *Note `@unnumberedsubsec'
3444      `@appendixsubsec' `@subheading': unnumberedsubsec appendixsubsec
3445      subheading.
3446
3447 `@subsection TITLE'
3448      Begin a subsection within a section.  In a printed manual, the
3449      subsection title is numbered and appears in the table of contents.
3450      In Info, the title is underlined with hyphens.  *Note
3451      `@subsection': subsection.
3452
3453 `@subsubheading TITLE'
3454      Print an unnumbered subsubsection-like heading in the text, but
3455      not in the table of contents of a printed manual.  In Info, the
3456      title is underlined with periods.  *Note The `subsub' Commands:
3457      subsubsection.
3458
3459 `@subsubsection TITLE'
3460      Begin a subsubsection within a subsection.  In a printed manual,
3461      the subsubsection title is numbered and appears in the table of
3462      contents.  In Info, the title is underlined with periods.  *Note
3463      The `subsub' Commands: subsubsection.
3464
3465 `@subtitle TITLE'
3466      In a printed manual, set a subtitle in a normal sized font flush to
3467      the right-hand side of the page.  Not relevant to Info, which does
3468      not have title pages.  *Note `@title' `@subtitle' and `@author'
3469      Commands: title subtitle author.
3470
3471 `@summarycontents'
3472      Print a short table of contents.  Not relevant to Info, which uses
3473      menus rather than tables of contents.  A synonym for
3474      `@shortcontents'.  *Note Generating a Table of Contents: Contents.
3475
3476 `@syncodeindex FROM-INDEX INTO-INDEX'
3477      Merge the index named in the first argument into the index named in
3478      the second argument, printing the entries from the first index in
3479      `@code' font.  *Note Combining Indices::.
3480
3481 `@synindex FROM-INDEX INTO-INDEX'
3482      Merge the index named in the first argument into the index named in
3483      the second argument.  Do not change the font of FROM-INDEX
3484      entries.  *Note Combining Indices::.
3485
3486 `@t{TEXT}'
3487      Print TEXT in a fixed-width, typewriter-like font.  No effect in
3488      Info.  *Note Fonts::.
3489
3490 `@tab'
3491      Separate columns in a multitable.  *Note Multitable Rows::.
3492
3493 `@table FORMATTING-COMMAND'
3494      Begin a two-column table, using `@item' for each entry.  Write
3495      each first column entry on the same line as `@item'.  First column
3496      entries are printed in the font resulting from FORMATTING-COMMAND.
3497      Pair with `@end table'.  *Note Making a Two-column Table:
3498      Two-column Tables.  Also see *Note `@ftable' and `@vtable': ftable
3499      vtable, and *Note `@itemx': itemx.
3500
3501 `@TeX{}'
3502      Insert the logo TeX.  *Note Inserting TeX and (C): TeX and
3503      copyright.
3504
3505 `@tex'
3506      Enter TeX completely.  Pair with `@end tex'.  *Note Raw Formatter
3507      Commands::.
3508
3509 `@thischapter'
3510 `@thischaptername'
3511 `@thisfile'
3512 `@thispage'
3513 `@thistitle'
3514      Only allowed in a heading or footing.  Stands for the number and
3515      name of the current chapter (in the format `Chapter 1: Title'),
3516      the chapter name only, the filename, the current page number, and
3517      the title of the document, respectively.  *Note How to Make Your
3518      Own Headings: Custom Headings.
3519
3520 `@tieaccent{CC}'
3521      Generate a tie-after accent over the next two characters CC, as in
3522      `oo['.  *Note Inserting Accents::.
3523
3524 `@tindex ENTRY'
3525      Add ENTRY to the index of data types.  *Note Defining the Entries
3526      of an Index: Index Entries.
3527
3528 `@title TITLE'
3529      In a printed manual, set a title flush to the left-hand side of the
3530      page in a larger than normal font and underline it with a black
3531      rule.  Not relevant to Info, which does not have title pages.
3532      *Note The `@title' `@subtitle' and `@author' Commands: title
3533      subtitle author.
3534
3535 `@titlefont{TEXT}'
3536      In a printed manual, print TEXT in a larger than normal font.  Not
3537      relevant to Info, which does not have title pages.  *Note The
3538      `@titlefont' `@center' and `@sp' Commands: titlefont center sp.
3539
3540 `@titlepage'
3541      Indicate to Texinfo the beginning of the title page.  Write
3542      command on a line of its own.  Pair with `@end titlepage'.
3543      Nothing between `@titlepage' and `@end titlepage' appears in Info.
3544      *Note `@titlepage': titlepage.
3545
3546 `@today{}'
3547      Insert the current date, in `1 Jan 1900' style.  *Note How to Make
3548      Your Own Headings: Custom Headings.
3549
3550 `@top TITLE'
3551      In a Texinfo file to be formatted with `makeinfo', identify the
3552      topmost `@node' line in the file, which must be written on the line
3553      immediately preceding the `@top' command.  Used for `makeinfo''s
3554      node pointer insertion feature.  The title is underlined with
3555      asterisks.  Both the `@node' line and the `@top' line normally
3556      should be enclosed by `@ifinfo' and `@end ifinfo'.  In TeX and
3557      `texinfo-format-buffer', the `@top' command is merely a synonym
3558      for `@unnumbered'.  *Note Creating Pointers with `makeinfo':
3559      makeinfo Pointer Creation.
3560
3561 `@u{C}'
3562 `@ubaraccent{C}'
3563 `@udotaccent{C}'
3564      Generate a breve, underbar, or underdot accent, respectively, over
3565      or under the character C, as in o(, o_, .o.  *Note Inserting
3566      Accents::.
3567
3568 `@unnumbered TITLE'
3569      In a printed manual, begin a chapter that appears without chapter
3570      numbers of any kind.  The title appears in the table of contents
3571      of a printed manual.  In Info, the title is underlined with
3572      asterisks.  *Note `@unnumbered' and `@appendix': unnumbered &
3573      appendix.
3574
3575 `@unnumberedsec TITLE'
3576      In a printed manual, begin a section that appears without section
3577      numbers of any kind.  The title appears in the table of contents
3578      of a printed manual.  In Info, the title is underlined with equal
3579      signs.  *Note Section Commands: unnumberedsec appendixsec heading.
3580
3581 `@unnumberedsubsec TITLE'
3582      In a printed manual, begin an unnumbered subsection within a
3583      chapter.  The title appears in the table of contents of a printed
3584      manual.  In Info, the title is underlined with hyphens.  *Note
3585      `@unnumberedsubsec' `@appendixsubsec' `@subheading':
3586      unnumberedsubsec appendixsubsec subheading.
3587
3588 `@unnumberedsubsubsec TITLE'
3589      In a printed manual, begin an unnumbered subsubsection within a
3590      chapter.  The title appears in the table of contents of a printed
3591      manual.  In Info, the title is underlined with periods.  *Note The
3592      `subsub' Commands: subsubsection.
3593
3594 `@uref{URL[, DISPLAYED-TEXT}'
3595      Define a cross reference to an external uniform resource locator
3596      for the World Wide Web.  *Note `@url': url.
3597
3598 `@url{URL}'
3599      Indicate text that is a uniform resource locator for the World Wide
3600      Web.  *Note `@url': url.
3601
3602 `@v{C}'
3603      Generate check accent over the character C, as in o<.  *Note
3604      Inserting Accents::.
3605
3606 `@value{FLAG}'
3607      Replace FLAG with the value to which it is set by `@set FLAG'.
3608      *Note `@set' `@clear' `@value': set clear value.
3609
3610 `@var{METASYNTACTIC-VARIABLE}'
3611      Highlight a metasyntactic variable, which is something that stands
3612      for another piece of text.  *Note Indicating Metasyntactic
3613      Variables: var.
3614
3615 `@vindex ENTRY'
3616      Add ENTRY to the index of variables.  *Note Defining the Entries
3617      of an Index: Index Entries.
3618
3619 `@vskip AMOUNT'
3620      In a printed manual, insert whitespace so as to push text on the
3621      remainder of the page towards the bottom of the page.  Used in
3622      formatting the copyright page with the argument `0pt plus 1filll'.
3623      (Note spelling of `filll'.)  `@vskip' may be used only in
3624      contexts ignored for Info.  *Note The Copyright Page and Printed
3625      Permissions: Copyright & Permissions.
3626
3627 `@vtable FORMATTING-COMMAND'
3628      Begin a two-column table, using `@item' for each entry.
3629      Automatically enter each of the items in the first column into the
3630      index of variables.  Pair with `@end vtable'.  The same as
3631      `@table', except for indexing.  *Note `@ftable' and `@vtable':
3632      ftable vtable.
3633
3634 `@w{TEXT}'
3635      Prevent TEXT from being split across two lines.  Do not end a
3636      paragraph that uses `@w' with an `@refill' command.  *Note `@w': w.
3637
3638 `@xref{NODE-NAME, [ENTRY], [TOPIC-OR-TITLE], [INFO-FILE], [MANUAL]}'
3639      Make a reference that starts with `See' in a printed manual.
3640      Follow command with a punctuation mark.  Only the first argument is
3641      mandatory.  *Note `@xref': xref.
3642
3643 \1f
3644 File: texinfo.info,  Node: Tips,  Next: Sample Texinfo File,  Prev: Command List,  Up: Top
3645
3646 Appendix B Tips and Hints
3647 *************************
3648
3649 Here are some tips for writing Texinfo documentation:
3650
3651    * Write in the present tense, not in the past or the future.
3652
3653    * Write actively!  For example, write "We recommend that ..." rather
3654      than "It is recommended that ...".
3655
3656    * Use 70 or 72 as your fill column.  Longer lines are hard to read.
3657
3658    * Include a copyright notice and copying permissions.
3659
3660 Index, Index, Index!
3661 ....................
3662
3663 Write many index entries, in different ways.  Readers like indices;
3664 they are helpful and convenient.
3665
3666   Although it is easiest to write index entries as you write the body of
3667 the text, some people prefer to write entries afterwards.  In either
3668 case, write an entry before the paragraph to which it applies.  This
3669 way, an index entry points to the first page of a paragraph that is
3670 split across pages.
3671
3672   Here are more hints we have found valuable:
3673
3674    * Write each index entry differently, so each entry refers to a
3675      different place in the document.
3676
3677    * Write index entries only where a topic is discussed significantly.
3678      For example, it is not useful to index "debugging information" in
3679      a chapter on reporting bugs.  Someone who wants to know about
3680      debugging information will certainly not find it in that chapter.
3681
3682    * Consistently capitalize the first word of every concept index
3683      entry, or else consistently use lower case.  Terse entries often
3684      call for lower case; longer entries for capitalization.  Whichever
3685      case convention you use, please use one or the other consistently!
3686      Mixing the two styles looks bad.
3687
3688    * Always capitalize or use upper case for those words in an index for
3689      which this is proper, such as names of countries or acronyms.
3690      Always use the appropriate case for case-sensitive names, such as
3691      those in C or Lisp.
3692
3693    * Write the indexing commands that refer to a whole section
3694      immediately after the section command, and write the indexing
3695      commands that refer to the paragraph before the paragraph.
3696
3697      In the example that follows, a blank line comes after the index
3698      entry for "Leaping":
3699
3700           @section The Dog and the Fox
3701           @cindex Jumping, in general
3702           @cindex Leaping
3703
3704           @cindex Dog, lazy, jumped over
3705           @cindex Lazy dog jumped over
3706           @cindex Fox, jumps over dog
3707           @cindex Quick fox jumps over dog
3708           The quick brown fox jumps over the lazy dog.
3709
3710      (Note that the example shows entries for the same concept that are
3711      written in different ways--`Lazy dog', and `Dog, lazy'--so readers
3712      can look up the concept in different ways.)
3713
3714 Blank Lines
3715 ...........
3716
3717    * Insert a blank line between a sectioning command and the first
3718      following sentence or paragraph, or between the indexing commands
3719      associated with the sectioning command and the first following
3720      sentence or paragraph, as shown in the tip on indexing.
3721      Otherwise, a formatter may fold title and paragraph together.
3722
3723    * Always insert a blank line before an `@table' command and after an
3724      `@end table' command; but never insert a blank line after an
3725      `@table' command or before an `@end table' command.
3726
3727      For example,
3728
3729           Types of fox:
3730
3731           @table @samp
3732           @item Quick
3733           Jump over lazy dogs.
3734
3735           @item Brown
3736           Also jump over lazy dogs.
3737           @end table
3738           @noindent
3739           On the other hand, ...
3740
3741      Insert blank lines before and after `@itemize' ... `@end itemize'
3742      and `@enumerate' ... `@end enumerate' in the same way.
3743
3744 Complete Phrases
3745 ................
3746
3747 Complete phrases are easier to read than ...
3748
3749    * Write entries in an itemized list as complete sentences; or at
3750      least, as complete phrases.  Incomplete expressions ... awkward
3751      ... like this.
3752
3753    * Write the prefatory sentence or phrase for a multi-item list or
3754      table as a complete expression.  Do not write "You can set:";
3755      instead, write "You can set these variables:".  The former
3756      expression sounds cut off.
3757
3758 Editions, Dates and Versions
3759 ............................
3760
3761 Write the edition and version numbers and date in three places in every
3762 manual:
3763
3764   1. In the first `@ifinfo' section, for people reading the Texinfo
3765      file.
3766
3767   2. In the `@titlepage' section, for people reading the printed manual.
3768
3769   3. In the `Top' node, for people reading the Info file.
3770
3771 Also, it helps to write a note before the first `@ifinfo' section to
3772 explain what you are doing.
3773
3774 For example:
3775
3776      @c ===> NOTE! <==
3777      @c Specify the edition and version numbers and date
3778      @c in *three* places:
3779      @c   1. First ifinfo section  2. title page  3. top node
3780      @c To find the locations, search for !!set
3781
3782      @ifinfo
3783      @c !!set edition, date, version
3784      This is Edition 4.03, January 1992,
3785      of the @cite{GDB Manual} for GDB Version 4.3.
3786      ...
3787
3788 --or use `@set' and `@value' (*note `@value' Example: value Example.).
3789
3790 Definition Commands
3791 ...................
3792
3793 Definition commands are `@deffn', `@defun', `@defmac', and the like,
3794 and enable you to write descriptions in a uniform format.
3795
3796    * Write just one definition command for each entity you define with a
3797      definition command.  The automatic indexing feature creates an
3798      index entry that leads the reader to the definition.
3799
3800    * Use `@table' ... `@end table' in an appendix that contains a
3801      summary of functions, not `@deffn' or other definition commands.
3802
3803 Capitalization
3804 ..............
3805
3806    * Capitalize "Texinfo"; it is a name.  Do not write the `x' or `i'
3807      in upper case.
3808
3809    * Capitalize "Info"; it is a name.
3810
3811    * Write TeX using the `@TeX{}' command.  Note the uppercase `T' and
3812      `X'.  This command causes the formatters to typeset the name
3813      according to the wishes of Donald Knuth, who wrote TeX.
3814
3815 Spaces
3816 ......
3817
3818 Do not use spaces to format a Texinfo file, except inside of `@example'
3819 ... `@end example' and similar commands.
3820
3821   For example, TeX fills the following:
3822
3823          @kbd{C-x v}
3824          @kbd{M-x vc-next-action}
3825             Perform the next logical operation
3826             on the version-controlled file
3827             corresponding to the current buffer.
3828
3829 so it looks like this:
3830
3831      `C-x v' `M-x vc-next-action' Perform the next logical operation on
3832      the version-controlled file corresponding to the current buffer.
3833
3834 In this case, the text should be formatted with `@table', `@item', and
3835 `@itemx', to create a table.
3836
3837 @code, @samp, @var, and `---'
3838 .............................
3839
3840    * Use `@code' around Lisp symbols, including command names.  For
3841      example,
3842
3843           The main function is @code{vc-next-action}, ...
3844
3845    * Avoid putting letters such as `s' immediately after an `@code'.
3846      Such letters look bad.
3847
3848    * Use `@var' around meta-variables.  Do not write angle brackets
3849      around them.
3850
3851    * Use three hyphens in a row, `---', to indicate a long dash.  TeX
3852      typesets these as a long dash and the Info formatters reduce three
3853      hyphens to two.
3854
3855 Periods Outside of Quotes
3856 .........................
3857
3858 Place periods and other punctuation marks _outside_ of quotations,
3859 unless the punctuation is part of the quotation.  This practice goes
3860 against publishing conventions in the United States, but enables the
3861 reader to distinguish between the contents of the quotation and the
3862 whole passage.
3863
3864   For example, you should write the following sentence with the period
3865 outside the end quotation marks:
3866
3867      Evidently, `au' is an abbreviation for ``author''.
3868
3869 since `au' does _not_ serve as an abbreviation for `author.' (with a
3870 period following the word).
3871
3872 Introducing New Terms
3873 .....................
3874
3875    * Introduce new terms so that a reader who does not know them can
3876      understand them from context; or write a definition for the term.
3877
3878      For example, in the following, the terms "check in", "register" and
3879      "delta" are all appearing for the first time; the example sentence
3880      should be rewritten so they are understandable.
3881
3882           The major function assists you in checking in a file to your
3883           version control system and registering successive sets of
3884           changes to it as deltas.
3885
3886    * Use the `@dfn' command around a word being introduced, to indicate
3887      that the reader should not expect to know the meaning already, and
3888      should expect to learn the meaning from this passage.
3889
3890 @pxref
3891 ......
3892
3893 Absolutely never use `@pxref' except in the special context for which
3894 it is designed: inside parentheses, with the closing parenthesis
3895 following immediately after the closing brace.  One formatter
3896 automatically inserts closing punctuation and the other does not.  This
3897 means that the output looks right both in printed output and in an Info
3898 file, but only when the command is used inside parentheses.
3899
3900 Invoking from a Shell
3901 .....................
3902
3903 You can invoke programs such as Emacs, GCC, and `gawk' from a shell.
3904 The documentation for each program should contain a section that
3905 describes this.  Unfortunately, if the node names and titles for these
3906 sections are all different, readers find it hard to search for the
3907 section.
3908
3909   Name such sections with a phrase beginning with the word
3910 `Invoking ...', as in `Invoking Emacs'; this way users can find the
3911 section easily.
3912
3913 ANSI C Syntax
3914 .............
3915
3916 When you use `@example' to describe a C function's calling conventions,
3917 use the ANSI C syntax, like this:
3918
3919      void dld_init (char *@var{path});
3920
3921 And in the subsequent discussion, refer to the argument values by
3922 writing the same argument names, again highlighted with `@var'.
3923
3924   Avoid the obsolete style that looks like this:
3925
3926      #include <dld.h>
3927
3928      dld_init (path)
3929      char *path;
3930
3931   Also, it is best to avoid writing `#include' above the declaration
3932 just to indicate that the function is declared in a header file.  The
3933 practice may give the misimpression that the `#include' belongs near
3934 the declaration of the function.  Either state explicitly which header
3935 file holds the declaration or, better yet, name the header file used
3936 for a group of functions at the beginning of the section that describes
3937 the functions.
3938
3939 Bad Examples
3940 ............
3941
3942 Here are several examples of bad writing to avoid:
3943
3944   In this example, say, " ... you must `@dfn'{check in} the new
3945 version."  That flows better.
3946
3947      When you are done editing the file, you must perform a
3948      `@dfn'{check in}.
3949
3950   In the following example, say, "... makes a unified interface such as
3951 VC mode possible."
3952
3953      SCCS, RCS and other version-control systems all perform similar
3954      functions in broadly similar ways (it is this resemblance which
3955      makes a unified control mode like this possible).
3956
3957   And in this example, you should specify what `it' refers to:
3958
3959      If you are working with other people, it assists in coordinating
3960      everyone's changes so they do not step on each other.
3961
3962 And Finally ...
3963 ...............
3964
3965    * Pronounce TeX as if the `X' were a Greek `chi', as the last sound
3966      in the name `Bach'.  But pronounce Texinfo as in `speck':
3967      "teckinfo".
3968
3969    * Write notes for yourself at the very end of a Texinfo file after
3970      the `@bye'.  None of the formatters process text after the `@bye';
3971      it is as if the text were within `@ignore' ...  `@end ignore'.
3972
3973 \1f
3974 File: texinfo.info,  Node: Sample Texinfo File,  Next: Sample Permissions,  Prev: Tips,  Up: Top
3975
3976 Appendix C A Sample Texinfo File
3977 ********************************
3978
3979 Here is a complete, short sample Texinfo file, without any commentary.
3980 You can see this file, with comments, in the first chapter.  *Note A
3981 Short Sample Texinfo File: Short Sample.
3982
3983
3984      \input texinfo   @c -*-texinfo-*-
3985      @c %**start of header
3986      @setfilename sample.info
3987      @settitle Sample Document
3988      @c %**end of header
3989
3990      @setchapternewpage odd
3991
3992      @ifinfo
3993      This is a short example of a complete Texinfo file.
3994
3995      Copyright 1990 Free Software Foundation, Inc.
3996      @end ifinfo
3997
3998      @titlepage
3999      @sp 10
4000      @comment The title is printed in a large font.
4001      @center @titlefont{Sample Title}
4002
4003      @c The following two commands start the copyright page.
4004      @page
4005      @vskip 0pt plus 1filll
4006      Copyright @copyright{} 1990 Free Software Foundation, Inc.
4007      @end titlepage
4008
4009      @node    Top,       First Chapter,         , (dir)
4010      @comment node-name, next,          previous, up
4011
4012      @menu
4013      * First Chapter::    The first chapter is the
4014                           only chapter in this sample.
4015      * Concept Index::    This index has two entries.
4016      @end menu
4017
4018      @node    First Chapter, Concept Index, Top,      Top
4019      @comment node-name,     next,          previous, up
4020      @chapter First Chapter
4021      @cindex Sample index entry
4022
4023      This is the contents of the first chapter.
4024      @cindex Another sample index entry
4025
4026      Here is a numbered list.
4027
4028      @enumerate
4029      @item
4030      This is the first item.
4031
4032      @item
4033      This is the second item.
4034      @end enumerate
4035
4036      The @code{makeinfo} and @code{texinfo-format-buffer}
4037      commands transform a Texinfo file such as this into
4038      an Info file; and @TeX{} typesets it for a printed
4039      manual.
4040
4041      @node    Concept Index,    ,  First Chapter, Top
4042      @comment node-name,    next,  previous,      up
4043      @unnumbered Concept Index
4044
4045      @printindex cp
4046
4047      @contents
4048      @bye
4049
4050 \1f
4051 File: texinfo.info,  Node: Sample Permissions,  Next: Include Files,  Prev: Sample Texinfo File,  Up: Top
4052
4053 Appendix D Sample Permissions
4054 *****************************
4055
4056 Texinfo files should contain sections that tell the readers that they
4057 have the right to copy and distribute the Texinfo file, the Info file,
4058 and the printed manual.
4059
4060   Also, if you are writing a manual about software, you should explain
4061 that the software is free and either include the GNU General Public
4062 License (GPL) or provide a reference to it.  *Note Distribution:
4063 (xemacs)Distrib, for an example of the text that could be used in the
4064 software "Distribution", "General Public License", and "NO WARRANTY"
4065 sections of a document.  *Note Texinfo Copying Conditions: Copying, for
4066 an example of a brief explanation of how the copying conditions provide
4067 you with rights.
4068
4069 * Menu:
4070
4071 * Inserting Permissions::       How to put permissions in your document.
4072 * ifinfo Permissions::          Sample `ifinfo' copying permissions.
4073 * Titlepage Permissions::       Sample Titlepage copying permissions.
4074
4075 \1f
4076 File: texinfo.info,  Node: Inserting Permissions,  Next: ifinfo Permissions,  Prev: Sample Permissions,  Up: Sample Permissions
4077
4078 D.1 Inserting Permissions
4079 =========================
4080
4081   In a Texinfo file, the first `@ifinfo' section usually begins with a
4082 line that says what the file documents.  This is what a person reading
4083 the unprocessed Texinfo file or using the advanced Info command `g *'
4084 sees first.  *note Advanced Info commands: (info)Expert, for more
4085 information. (A reader using the regular Info commands usually starts
4086 reading at the first node and skips this first section, which is not in
4087 a node.)
4088
4089   In the `@ifinfo' section, the summary sentence is followed by a
4090 copyright notice and then by the copying permission notice.  One of the
4091 copying permission paragraphs is enclosed in `@ignore' and `@end
4092 ignore' commands.  This paragraph states that the Texinfo file can be
4093 processed through TeX and printed, provided the printed manual carries
4094 the proper copying permission notice.  This paragraph is not made part
4095 of the Info file since it is not relevant to the Info file; but it is a
4096 mandatory part of the Texinfo file since it permits people to process
4097 the Texinfo file in TeX and print the results.
4098
4099   In the printed manual, the Free Software Foundation copying permission
4100 notice follows the copyright notice and publishing information and is
4101 located within the region delineated by the `@titlepage' and `@end
4102 titlepage' commands.  The copying permission notice is exactly the same
4103 as the notice in the `@ifinfo' section except that the paragraph
4104 enclosed in `@ignore' and `@end ignore' commands is not part of the
4105 notice.
4106
4107   To make it simple to insert a permission notice into each section of
4108 the Texinfo file, sample permission notices for each section are
4109 reproduced in full below.
4110
4111   Note that you may need to specify the correct name of a section
4112 mentioned in the permission notice.  For example, in `The GDB Manual',
4113 the name of the section referring to the General Public License is
4114 called the "GDB General Public License", but in the sample shown below,
4115 that section is referred to generically as the "GNU General Public
4116 License".  If the Texinfo file does not carry a copy of the General
4117 Public License, leave out the reference to it, but be sure to include
4118 the rest of the sentence.
4119
4120 \1f
4121 File: texinfo.info,  Node: ifinfo Permissions,  Next: Titlepage Permissions,  Prev: Inserting Permissions,  Up: Sample Permissions
4122
4123 D.2 `ifinfo' Copying Permissions
4124 ================================
4125
4126 In the `@ifinfo' section of a Texinfo file, the standard Free Software
4127 Foundation permission notice reads as follows:
4128
4129      This file documents ...
4130
4131      Copyright 1998 Free Software Foundation, Inc.
4132
4133      Permission is granted to make and distribute verbatim
4134      copies of this manual provided the copyright notice and
4135      this permission notice are preserved on all copies.
4136
4137      @ignore
4138      Permission is granted to process this file through TeX
4139      and print the results, provided the printed document
4140      carries a copying permission notice identical to this
4141      one except for the removal of this paragraph (this
4142      paragraph not being relevant to the printed manual).
4143
4144      @end ignore
4145      Permission is granted to copy and distribute modified
4146      versions of this manual under the conditions for
4147      verbatim copying, provided also that the sections
4148      entitled ``Copying'' and ``GNU General Public License''
4149      are included exactly as in the original, and provided
4150      that the entire resulting derived work is distributed
4151      under the terms of a permission notice identical to this
4152      one.
4153
4154      Permission is granted to copy and distribute
4155      translations of this manual into another language,
4156      under the above conditions for modified versions,
4157      except that this permission notice may be stated in a
4158      translation approved by the Free Software Foundation.
4159
4160 \1f
4161 File: texinfo.info,  Node: Titlepage Permissions,  Prev: ifinfo Permissions,  Up: Sample Permissions
4162
4163 D.3 Titlepage Copying Permissions
4164 =================================
4165
4166 In the `@titlepage' section of a Texinfo file, the standard Free
4167 Software Foundation copying permission notice follows the copyright
4168 notice and publishing information.  The standard phrasing is as follows:
4169
4170      Permission is granted to make and distribute verbatim
4171      copies of this manual provided the copyright notice and
4172      this permission notice are preserved on all copies.
4173
4174      Permission is granted to copy and distribute modified
4175      versions of this manual under the conditions for
4176      verbatim copying, provided also that the sections
4177      entitled ``Copying'' and ``GNU General Public License''
4178      are included exactly as in the original, and provided
4179      that the entire resulting derived work is distributed
4180      under the terms of a permission notice identical to this
4181      one.
4182
4183      Permission is granted to copy and distribute
4184      translations of this manual into another language,
4185      under the above conditions for modified versions,
4186      except that this permission notice may be stated in a
4187      translation approved by the Free Software Foundation.
4188
4189 \1f
4190 File: texinfo.info,  Node: Include Files,  Next: Headings,  Prev: Sample Permissions,  Up: Top
4191
4192 Appendix E Include Files
4193 ************************
4194
4195 When TeX or an Info formatting command sees an `@include' command in a
4196 Texinfo file, it processes the contents of the file named by the
4197 command and incorporates them into the DVI or Info file being created.
4198 Index entries from the included file are incorporated into the indices
4199 of the output file.
4200
4201   Include files let you keep a single large document as a collection of
4202 conveniently small parts.
4203
4204 * Menu:
4205
4206 * Using Include Files::         How to use the `@include' command.
4207 * texinfo-multiple-files-update::  How to create and update nodes and
4208                                   menus when using included files.
4209 * Include File Requirements::   What `texinfo-multiple-files-update' expects.
4210 * Sample Include File::         A sample outer file with included files
4211                                   within it; and a sample included file.
4212 * Include Files Evolution::     How use of the `@include' command
4213                                   has changed over time.
4214
4215 \1f
4216 File: texinfo.info,  Node: Using Include Files,  Next: texinfo-multiple-files-update,  Prev: Include Files,  Up: Include Files
4217
4218 E.1 How to Use Include Files
4219 ============================
4220
4221 To include another file within a Texinfo file, write the `@include'
4222 command at the beginning of a line and follow it on the same line by
4223 the name of a file to be included.  For example:
4224
4225      @include buffers.texi
4226
4227   An included file should simply be a segment of text that you expect to
4228 be included as is into the overall or "outer" Texinfo file; it should
4229 not contain the standard beginning and end parts of a Texinfo file.  In
4230 particular, you should not start an included file with a line saying
4231 `\input texinfo'; if you do, that phrase is inserted into the output
4232 file as is.  Likewise, you should not end an included file with an
4233 `@bye' command; nothing after `@bye' is formatted.
4234
4235   In the past, you were required to write an `@setfilename' line at the
4236 beginning of an included file, but no longer.  Now, it does not matter
4237 whether you write such a line.  If an `@setfilename' line exists in an
4238 included file, it is ignored.
4239
4240   Conventionally, an included file begins with an `@node' line that is
4241 followed by an `@chapter' line.  Each included file is one chapter.
4242 This makes it easy to use the regular node and menu creating and
4243 updating commands to create the node pointers and menus within the
4244 included file.  However, the simple Emacs node and menu creating and
4245 updating commands do not work with multiple Texinfo files.  Thus you
4246 cannot use these commands to fill in the `Next', `Previous', and `Up'
4247 pointers of the `@node' line that begins the included file.  Also, you
4248 cannot use the regular commands to create a master menu for the whole
4249 file.  Either you must insert the menus and the `Next', `Previous', and
4250 `Up' pointers by hand, or you must use the GNU Emacs Texinfo mode
4251 command, `texinfo-multiple-files-update', that is designed for
4252 `@include' files.
4253
4254 \1f
4255 File: texinfo.info,  Node: texinfo-multiple-files-update,  Next: Include File Requirements,  Prev: Using Include Files,  Up: Include Files
4256
4257 E.2 `texinfo-multiple-files-update'
4258 ===================================
4259
4260 GNU Emacs Texinfo mode provides the `texinfo-multiple-files-update'
4261 command.  This command creates or updates `Next', `Previous', and `Up'
4262 pointers of included files as well as those in the outer or overall
4263 Texinfo file, and it creates or updates a main menu in the outer file.
4264 Depending whether you call it with optional arguments, the command
4265 updates only the pointers in the first `@node' line of the included
4266 files or all of them:
4267
4268 `M-x texinfo-multiple-files-update'
4269      Called without any arguments:
4270
4271         - Create or update the `Next', `Previous', and `Up' pointers of
4272           the first `@node' line in each file included in an outer or
4273           overall Texinfo file.
4274
4275         - Create or update the `Top' level node pointers of the outer or
4276           overall file.
4277
4278         - Create or update a main menu in the outer file.
4279
4280 `C-u M-x texinfo-multiple-files-update'
4281      Called with `C-u' as a prefix argument:
4282
4283         - Create or update pointers in the first `@node' line in each
4284           included file.
4285
4286         - Create or update the `Top' level node pointers of the outer
4287           file.
4288
4289         - Create and insert a master menu in the outer file.  The
4290           master menu is made from all the menus in all the included
4291           files.
4292
4293 `C-u 8 M-x texinfo-multiple-files-update'
4294      Called with a numeric prefix argument, such as `C-u 8':
4295
4296         - Create or update *all* the `Next', `Previous', and `Up'
4297           pointers of all the included files.
4298
4299         - Create or update *all* the menus of all the included files.
4300
4301         - Create or update the `Top' level node pointers of the outer or
4302           overall file.
4303
4304         - And then create a master menu in the outer file.  This is
4305           similar to invoking `texinfo-master-menu' with an argument
4306           when you are working with just one file.
4307
4308   Note the use of the prefix argument in interactive use: with a regular
4309 prefix argument, just `C-u', the `texinfo-multiple-files-update'
4310 command inserts a master menu; with a numeric prefix argument, such as
4311 `C-u 8', the command updates *every* pointer and menu in *all* the
4312 files and then inserts a master menu.
4313
4314 \1f
4315 File: texinfo.info,  Node: Include File Requirements,  Next: Sample Include File,  Prev: texinfo-multiple-files-update,  Up: Include Files
4316
4317 E.3 Include File Requirements
4318 =============================
4319
4320 If you plan to use the `texinfo-multiple-files-update' command, the
4321 outer Texinfo file that lists included files within it should contain
4322 nothing but the beginning and end parts of a Texinfo file, and a number
4323 of `@include' commands listing the included files.  It should not even
4324 include indices, which should be listed in an included file of their
4325 own.
4326
4327   Moreover, each of the included files must contain exactly one highest
4328 level node (conventionally, `@chapter' or equivalent), and this node
4329 must be the first node in the included file.  Furthermore, each of
4330 these highest level nodes in each included file must be at the same
4331 hierarchical level in the file structure.  Usually, each is an
4332 `@chapter', an `@appendix', or an `@unnumbered' node.  Thus, normally,
4333 each included file contains one, and only one, chapter or
4334 equivalent-level node.
4335
4336   The outer file should contain only _one_ node, the `Top' node.  It
4337 should _not_ contain any nodes besides the single `Top' node.  The
4338 `texinfo-multiple-files-update' command will not process them.
4339
4340 \1f
4341 File: texinfo.info,  Node: Sample Include File,  Next: Include Files Evolution,  Prev: Include File Requirements,  Up: Include Files
4342
4343 E.4 Sample File with `@include'
4344 ===============================
4345
4346 Here is an example of a complete outer Texinfo file with `@include'
4347 files within it before running `texinfo-multiple-files-update', which
4348 would insert a main or master menu:
4349
4350      \input texinfo @c -*-texinfo-*-
4351      @setfilename  include-example.info
4352      @settitle Include Example
4353
4354      @setchapternewpage odd
4355      @titlepage
4356      @sp 12
4357      @center @titlefont{Include Example}
4358      @sp 2
4359      @center by Whom Ever
4360
4361      @page
4362      @vskip 0pt plus 1filll
4363      Copyright @copyright{} 1998 Free Software Foundation, Inc.
4364      @end titlepage
4365
4366      @ifinfo
4367      @node Top, First, , (dir)
4368      @top Master Menu
4369      @end ifinfo
4370
4371      @include foo.texinfo
4372      @include bar.texinfo
4373      @include concept-index.texinfo
4374
4375      @summarycontents
4376      @contents
4377
4378      @bye
4379
4380   An included file, such as `foo.texinfo', might look like this:
4381
4382      @node First, Second, , Top
4383      @chapter First Chapter
4384
4385      Contents of first chapter ...
4386
4387   The full contents of `concept-index.texinfo' might be as simple as
4388 this:
4389
4390      @node Concept Index, , Second, Top
4391      @unnumbered Concept Index
4392
4393      @printindex cp
4394
4395   The outer Texinfo source file for `The XEmacs Lisp Reference Manual'
4396 is named `elisp.texi'.  This outer file contains a master menu with 417
4397 entries and a list of 41 `@include' files.
4398
4399 \1f
4400 File: texinfo.info,  Node: Include Files Evolution,  Prev: Sample Include File,  Up: Include Files
4401
4402 E.5 Evolution of Include Files
4403 ==============================
4404
4405 When Info was first created, it was customary to create many small Info
4406 files on one subject.  Each Info file was formatted from its own
4407 Texinfo source file.  This custom meant that Emacs did not need to make
4408 a large buffer to hold the whole of a large Info file when someone
4409 wanted information; instead, Emacs allocated just enough memory for the
4410 small Info file that contained the particular information sought.  This
4411 way, Emacs could avoid wasting memory.
4412
4413   References from one file to another were made by referring to the file
4414 name as well as the node name. (*Note Referring to Other Info Files:
4415 Other Info Files.  Also, see *Note `@xref' with Four and Five
4416 Arguments: Four and Five Arguments.)
4417
4418   Include files were designed primarily as a way to create a single,
4419 large printed manual out of several smaller Info files.  In a printed
4420 manual, all the references were within the same document, so TeX could
4421 automatically determine the references' page numbers.  The Info
4422 formatting commands used include files only for creating joint indices;
4423 each of the individual Texinfo files had to be formatted for Info
4424 individually.  (Each, therefore, required its own `@setfilename' line.)
4425
4426   However, because large Info files are now split automatically, it is
4427 no longer necessary to keep them small.
4428
4429   Nowadays, multiple Texinfo files are used mostly for large documents,
4430 such as `The XEmacs Lisp Reference Manual', and for projects in which
4431 several different people write different sections of a document
4432 simultaneously.
4433
4434   In addition, the Info formatting commands have been extended to work
4435 with the `@include' command so as to create a single large Info file
4436 that is split into smaller files if necessary.  This means that you can
4437 write menus and cross references without naming the different Texinfo
4438 files.
4439
4440 \1f
4441 File: texinfo.info,  Node: Headings,  Next: Catching Mistakes,  Prev: Include Files,  Up: Top
4442
4443 Appendix F Page Headings
4444 ************************
4445
4446 Most printed manuals contain headings along the top of every page
4447 except the title and copyright pages.  Some manuals also contain
4448 footings.  (Headings and footings have no meaning to Info, which is not
4449 paginated.)
4450
4451 * Menu:
4452
4453 * Headings Introduced::         Conventions for using page headings.
4454 * Heading Format::              Standard page heading formats.
4455 * Heading Choice::              How to specify the type of page heading.
4456 * Custom Headings::             How to create your own headings and footings.
4457
4458 \1f
4459 File: texinfo.info,  Node: Headings Introduced,  Next: Heading Format,  Prev: Headings,  Up: Headings
4460
4461 Headings Introduced
4462 ===================
4463
4464   Texinfo provides standard page heading formats for manuals that are
4465 printed on one side of each sheet of paper and for manuals that are
4466 printed on both sides of the paper.  Typically, you will use these
4467 formats, but you can specify your own format if you wish.
4468
4469   In addition, you can specify whether chapters should begin on a new
4470 page, or merely continue the same page as the previous chapter; and if
4471 chapters begin on new pages, you can specify whether they must be
4472 odd-numbered pages.
4473
4474   By convention, a book is printed on both sides of each sheet of paper.
4475 When you open a book, the right-hand page is odd-numbered, and chapters
4476 begin on right-hand pages--a preceding left-hand page is left blank if
4477 necessary.  Reports, however, are often printed on just one side of
4478 paper, and chapters begin on a fresh page immediately following the end
4479 of the preceding chapter.  In short or informal reports, chapters often
4480 do not begin on a new page at all, but are separated from the preceding
4481 text by a small amount of whitespace.
4482
4483   The `@setchapternewpage' command controls whether chapters begin on
4484 new pages, and whether one of the standard heading formats is used.  In
4485 addition, Texinfo has several heading and footing commands that you can
4486 use to generate your own heading and footing formats.
4487
4488   In Texinfo, headings and footings are single lines at the tops and
4489 bottoms of pages; you cannot create multiline headings or footings.
4490 Each header or footer line is divided into three parts: a left part, a
4491 middle part, and a right part.  Any part, or a whole line, may be left
4492 blank.  Text for the left part of a header or footer line is set
4493 flushleft; text for the middle part is centered; and, text for the
4494 right part is set flushright.
4495
4496 \1f
4497 File: texinfo.info,  Node: Heading Format,  Next: Heading Choice,  Prev: Headings Introduced,  Up: Headings
4498
4499 F.1 Standard Heading Formats
4500 ============================
4501
4502 Texinfo provides two standard heading formats, one for manuals printed
4503 on one side of each sheet of paper, and the other for manuals printed
4504 on both sides of the paper.
4505
4506   By default, nothing is specified for the footing of a Texinfo file,
4507 so the footing remains blank.
4508
4509   The standard format for single-sided printing consists of a header
4510 line in which the left-hand part contains the name of the chapter, the
4511 central part is blank, and the right-hand part contains the page number.
4512
4513   A single-sided page looks like this:
4514
4515         _______________________
4516        |                       |
4517        | chapter   page number |
4518        |                       |
4519        | Start of text ...     |
4520        | ...                   |
4521        |                       |
4522
4523   The standard format for two-sided printing depends on whether the page
4524 number is even or odd.  By convention, even-numbered pages are on the
4525 left- and odd-numbered pages are on the right.  (TeX will adjust the
4526 widths of the left- and right-hand margins.  Usually, widths are
4527 correct, but during double-sided printing, it is wise to check that
4528 pages will bind properly--sometimes a printer will produce output in
4529 which the even-numbered pages have a larger right-hand margin than the
4530 odd-numbered pages.)
4531
4532   In the standard double-sided format, the left part of the left-hand
4533 (even-numbered) page contains the page number, the central part is
4534 blank, and the right part contains the title (specified by the
4535 `@settitle' command).  The left part of the right-hand (odd-numbered)
4536 page contains the name of the chapter, the central part is blank, and
4537 the right part contains the page number.
4538
4539   Two pages, side by side as in an open book, look like this:
4540
4541         _______________________     _______________________
4542        |                       |   |                       |
4543        | page number     title |   | chapter   page number |
4544        |                       |   |                       |
4545        | Start of text ...     |   | More  text ...        |
4546        | ...                   |   | ...                   |
4547        |                       |   |                       |
4548
4549 The chapter name is preceded by the word "Chapter", the chapter number
4550 and a colon.  This makes it easier to keep track of where you are in the
4551 manual.
4552
4553 \1f
4554 File: texinfo.info,  Node: Heading Choice,  Next: Custom Headings,  Prev: Heading Format,  Up: Headings
4555
4556 F.2 Specifying the Type of Heading
4557 ==================================
4558
4559 TeX does not begin to generate page headings for a standard Texinfo
4560 file until it reaches the `@end titlepage' command.  Thus, the title
4561 and copyright pages are not numbered.  The `@end titlepage' command
4562 causes TeX to begin to generate page headings according to a standard
4563 format specified by the `@setchapternewpage' command that precedes the
4564 `@titlepage' section.
4565
4566   There are four possibilities:
4567
4568 No `@setchapternewpage' command
4569      Cause TeX to specify the single-sided heading format, with chapters
4570      on new pages. This is the same as `@setchapternewpage on'.
4571
4572 `@setchapternewpage on'
4573      Specify the single-sided heading format, with chapters on new
4574      pages.
4575
4576 `@setchapternewpage off'
4577      Cause TeX to start a new chapter on the same page as the last page
4578      of the preceding chapter, after skipping some vertical whitespace.
4579      Also cause TeX to typeset for single-sided printing.  (You can
4580      override the headers format with the `@headings double' command;
4581      see *Note The `@headings' Command: headings on off.)
4582
4583 `@setchapternewpage odd'
4584      Specify the double-sided heading format, with chapters on new
4585      pages.
4586
4587 Texinfo lacks an `@setchapternewpage even' command.
4588
4589 \1f
4590 File: texinfo.info,  Node: Custom Headings,  Prev: Heading Choice,  Up: Headings
4591
4592 F.3 How to Make Your Own Headings
4593 =================================
4594
4595 You can use the standard headings provided with Texinfo or specify your
4596 own.  By default, Texinfo has no footers, so if you specify them, the
4597 available page size for the main text will be slightly reduced.
4598
4599   Texinfo provides six commands for specifying headings and footings.
4600 The `@everyheading' command and `@everyfooting' command generate page
4601 headers and footers that are the same for both even- and odd-numbered
4602 pages.  The `@evenheading' command and `@evenfooting' command generate
4603 headers and footers for even-numbered (left-hand) pages; and the
4604 `@oddheading' command and `@oddfooting' command generate headers and
4605 footers for odd-numbered (right-hand) pages.
4606
4607   Write custom heading specifications in the Texinfo file immediately
4608 after the `@end titlepage' command.  Enclose your specifications
4609 between `@iftex' and `@end iftex' commands since the
4610 `texinfo-format-buffer' command may not recognize them.  Also, you must
4611 cancel the predefined heading commands with the `@headings off' command
4612 before defining your own specifications.
4613
4614   Here is how to tell TeX to place the chapter name at the left, the
4615 page number in the center, and the date at the right of every header
4616 for both even- and odd-numbered pages:
4617
4618      @iftex
4619      @headings off
4620      @everyheading @thischapter @| @thispage @| @today{}
4621      @end iftex
4622
4623 You need to divide the left part from the central part and the central
4624 part from the right part by inserting `@|' between parts.  Otherwise,
4625 the specification command will not be able to tell where the text for
4626 one part ends and the next part begins.
4627
4628   Each part can contain text or @-commands.  The text is printed as if
4629 the part were within an ordinary paragraph in the body of the page.
4630 The @-commands replace themselves with the page number, date, chapter
4631 name, or whatever.
4632
4633   Here are the six heading and footing commands:
4634
4635 `@everyheading LEFT @| CENTER @| RIGHT'
4636 `@everyfooting LEFT @| CENTER @| RIGHT'
4637      The `every' commands specify the format for both even- and
4638      odd-numbered pages.  These commands are for documents that are
4639      printed on one side of each sheet of paper, or for documents in
4640      which you want symmetrical headers or footers.
4641
4642 `@evenheading LEFT @| CENTER @| RIGHT'
4643 `@oddheading  LEFT @| CENTER @| RIGHT'
4644 `@evenfooting LEFT @| CENTER @| RIGHT'
4645 `@oddfooting  LEFT @| CENTER @| RIGHT'
4646      The `even' and `odd' commands specify the format for even-numbered
4647      pages and odd-numbered pages.  These commands are for books and
4648      manuals that are printed on both sides of each sheet of paper.
4649
4650   Use the `@this...' series of @-commands to provide the names of
4651 chapters and sections and the page number.  You can use the `@this...'
4652 commands in the left, center, or right portions of headers and footers,
4653 or anywhere else in a Texinfo file so long as they are between `@iftex'
4654 and `@end iftex' commands.
4655
4656   Here are the `@this...' commands:
4657
4658 `@thispage'
4659      Expands to the current page number.
4660
4661 `@thischaptername'
4662      Expands to the name of the current chapter.
4663
4664 `@thischapter'
4665      Expands to the number and name of the current chapter, in the
4666      format `Chapter 1: Title'.
4667
4668 `@thistitle'
4669      Expands to the name of the document, as specified by the
4670      `@settitle' command.
4671
4672 `@thisfile'
4673      For `@include' files only: expands to the name of the current
4674      `@include' file.  If the current Texinfo source file is not an
4675      `@include' file, this command has no effect.  This command does
4676      _not_ provide the name of the current Texinfo source file unless
4677      it is an `@include' file.  (*Note Include Files::, for more
4678      information about `@include' files.)
4679
4680 You can also use the `@today{}' command, which expands to the current
4681 date, in `1 Jan 1900' format.  
4682
4683   Other @-commands and text are printed in a header or footer just as
4684 if they were in the body of a page.  It is useful to incorporate text,
4685 particularly when you are writing drafts:
4686
4687      @iftex
4688      @headings off
4689      @everyheading @emph{Draft!} @| @thispage @| @thischapter
4690      @everyfooting @| @| Version: 0.27: @today{}
4691      @end iftex
4692
4693   Beware of overlong titles: they may overlap another part of the
4694 header or footer and blot it out.
4695
4696 \1f
4697 File: texinfo.info,  Node: Catching Mistakes,  Next: Refilling Paragraphs,  Prev: Headings,  Up: Top
4698
4699 Appendix G Formatting Mistakes
4700 ******************************
4701
4702 Besides mistakes in the content of your documentation, there are two
4703 kinds of mistake you can make with Texinfo:  you can make mistakes with
4704 @-commands, and you can make mistakes with the structure of the nodes
4705 and chapters.
4706
4707   Emacs has two tools for catching the @-command mistakes and two for
4708 catching structuring mistakes.
4709
4710   For finding problems with @-commands, you can run TeX or a region
4711 formatting command on the region that has a problem; indeed, you can
4712 run these commands on each region as you write it.
4713
4714   For finding problems with the structure of nodes and chapters, you
4715 can use `C-c C-s' (`texinfo-show-structure') and the related `occur'
4716 command and you can use the `M-x Info-validate' command.
4717
4718 * Menu:
4719
4720 * makeinfo Preferred::          `makeinfo' finds errors.
4721 * Debugging with Info::         How to catch errors with Info formatting.
4722 * Debugging with TeX::          How to catch errors with TeX formatting.
4723 * Using texinfo-show-structure::  How to use `texinfo-show-structure'.
4724 * Using occur::                 How to list all lines containing a pattern.
4725 * Running Info-Validate::       How to find badly referenced nodes.
4726
4727 \1f
4728 File: texinfo.info,  Node: makeinfo Preferred,  Next: Debugging with Info,  Prev: Catching Mistakes,  Up: Catching Mistakes
4729
4730 `makeinfo' Find Errors
4731 ======================
4732
4733   The `makeinfo' program does an excellent job of catching errors and
4734 reporting them--far better than `texinfo-format-region' or
4735 `texinfo-format-buffer'.  In addition, the various functions for
4736 automatically creating and updating node pointers and menus remove many
4737 opportunities for human error.
4738
4739   If you can, use the updating commands to create and insert pointers
4740 and menus.  These prevent many errors.  Then use `makeinfo' (or its
4741 Texinfo mode manifestations, `makeinfo-region' and `makeinfo-buffer')
4742 to format your file and check for other errors.  This is the best way
4743 to work with Texinfo.  But if you cannot use `makeinfo', or your
4744 problem is very puzzling, then you may want to use the tools described
4745 in this appendix.
4746
4747 \1f
4748 File: texinfo.info,  Node: Debugging with Info,  Next: Debugging with TeX,  Prev: makeinfo Preferred,  Up: Catching Mistakes
4749
4750 G.1 Catching Errors with Info Formatting
4751 ========================================
4752
4753 After you have written part of a Texinfo file, you can use the
4754 `texinfo-format-region' or the `makeinfo-region' command to see whether
4755 the region formats properly.
4756
4757   Most likely, however, you are reading this section because for some
4758 reason you cannot use the `makeinfo-region' command; therefore, the
4759 rest of this section presumes that you are using
4760 `texinfo-format-region'.
4761
4762   If you have made a mistake with an @-command, `texinfo-format-region'
4763 will stop processing at or after the error and display an error
4764 message.  To see where in the buffer the error occurred, switch to the
4765 `*Info Region*' buffer; the cursor will be in a position that is after
4766 the location of the error.  Also, the text will not be formatted after
4767 the place where the error occurred (or more precisely, where it was
4768 detected).
4769
4770   For example, if you accidentally end a menu with the command `@end
4771 menus' with an `s' on the end, instead of with `@end menu', you will
4772 see an error message that says:
4773
4774      @end menus is not handled by texinfo
4775
4776 The cursor will stop at the point in the buffer where the error occurs,
4777 or not long after it.  The buffer will look like this:
4778
4779      ---------- Buffer: *Info Region* ----------
4780      * Menu:
4781
4782      * Using texinfo-show-structure::  How to use
4783                                        `texinfo-show-structure'
4784                                        to catch mistakes.
4785      * Running Info-Validate::         How to check for
4786                                        unreferenced nodes.
4787      @end menus
4788      -!-
4789      ---------- Buffer: *Info Region* ----------
4790
4791   The `texinfo-format-region' command sometimes provides slightly odd
4792 error messages.  For example, the following cross reference fails to
4793 format:
4794
4795      (@xref{Catching Mistakes, for more info.)
4796
4797 In this case, `texinfo-format-region' detects the missing closing brace
4798 but displays a message that says `Unbalanced parentheses' rather than
4799 `Unbalanced braces'.  This is because the formatting command looks for
4800 mismatches between braces as if they were parentheses.
4801
4802   Sometimes `texinfo-format-region' fails to detect mistakes.  For
4803 example, in the following, the closing brace is swapped with the
4804 closing parenthesis:
4805
4806      (@xref{Catching Mistakes), for more info.}
4807
4808 Formatting produces:
4809      (*Note for more info.: Catching Mistakes)
4810
4811   The only way for you to detect this error is to realize that the
4812 reference should have looked like this:
4813
4814      (*Note Catching Mistakes::, for more info.)
4815
4816   Incidentally, if you are reading this node in Info and type `f <RET>'
4817 (`Info-follow-reference'), you will generate an error message that says:
4818
4819      No such node: "Catching Mistakes) The only way ...
4820
4821 This is because Info perceives the example of the error as the first
4822 cross reference in this node and if you type a <RET> immediately after
4823 typing the Info `f' command, Info will attempt to go to the referenced
4824 node.  If you type `f catch <TAB> <RET>', Info will complete the node
4825 name of the correctly written example and take you to the `Catching
4826 Mistakes' node.  (If you try this, you can return from the `Catching
4827 Mistakes' node by typing `l' (`Info-last').)
4828
4829 \1f
4830 File: texinfo.info,  Node: Debugging with TeX,  Next: Using texinfo-show-structure,  Prev: Debugging with Info,  Up: Catching Mistakes
4831
4832 G.2 Catching Errors with TeX Formatting
4833 =======================================
4834
4835 You can also catch mistakes when you format a file with TeX.
4836
4837   Usually, you will want to do this after you have run
4838 `texinfo-format-buffer' (or, better, `makeinfo-buffer') on the same
4839 file, because `texinfo-format-buffer' sometimes displays error messages
4840 that make more sense than TeX.  (*Note Debugging with Info::, for more
4841 information.)
4842
4843   For example, TeX was run on a Texinfo file, part of which is shown
4844 here:
4845
4846      ---------- Buffer: texinfo.texi ----------
4847      name of the Texinfo file as an extension.  The
4848      @samp{??} are `wildcards' that cause the shell to
4849      substitute all the raw index files.  (@xref{sorting
4850      indices, for more information about sorting
4851      indices.)@refill
4852      ---------- Buffer: texinfo.texi ----------
4853
4854 (The cross reference lacks a closing brace.)  TeX produced the
4855 following output, after which it stopped:
4856
4857      ---------- Buffer: *tex-shell* ----------
4858      Runaway argument?
4859      {sorting indices, for more information about sorting
4860      indices.) @refill @ETC.
4861      ! Paragraph ended before @xref was complete.
4862      <to be read again>
4863                         @par
4864      l.27
4865
4866      ?
4867      ---------- Buffer: *tex-shell* ----------
4868
4869   In this case, TeX produced an accurate and understandable error
4870 message:
4871
4872      Paragraph ended before @xref was complete.
4873
4874 `@par' is an internal TeX command of no relevance to Texinfo.  `l.27'
4875 means that TeX detected the problem on line 27 of the Texinfo file.
4876 The `?' is the prompt TeX uses in this circumstance.
4877
4878   Unfortunately, TeX is not always so helpful, and sometimes you must
4879 truly be a Sherlock Holmes to discover what went wrong.
4880
4881   In any case, if you run into a problem like this, you can do one of
4882 three things.
4883
4884   1. You can tell TeX to continue running and ignore just this error by
4885      typing <RET> at the `?' prompt.
4886
4887   2. You can tell TeX to continue running and to ignore all errors as
4888      best it can by typing `r <RET>' at the `?' prompt.
4889
4890      This is often the best thing to do.  However, beware: the one error
4891      may produce a cascade of additional error messages as its
4892      consequences are felt through the rest of the file.  To stop TeX
4893      when it is producing such an avalanche of error messages, type
4894      `C-c' (or `C-c C-c', if you are running a shell inside Emacs).
4895
4896   3. You can tell TeX to stop this run by typing `x <RET>' at the `?'
4897      prompt.
4898
4899   Please note that if you are running TeX inside Emacs, you need to
4900 switch to the shell buffer and line at which TeX offers the `?' prompt.
4901
4902   Sometimes TeX will format a file without producing error messages even
4903 though there is a problem.  This usually occurs if a command is not
4904 ended but TeX is able to continue processing anyhow.  For example, if
4905 you fail to end an itemized list with the `@end itemize' command, TeX
4906 will write a DVI file that you can print out.  The only error message
4907 that TeX will give you is the somewhat mysterious comment that
4908
4909      (@end occurred inside a group at level 1)
4910
4911 However, if you print the DVI file, you will find that the text of the
4912 file that follows the itemized list is entirely indented as if it were
4913 part of the last item in the itemized list.  The error message is the
4914 way TeX says that it expected to find an `@end' command somewhere in
4915 the file; but that it could not determine where it was needed.
4916
4917   Another source of notoriously hard-to-find errors is a missing `@end
4918 group' command.  If you ever are stumped by incomprehensible errors,
4919 look for a missing `@end group' command first.
4920
4921   If the Texinfo file lacks header lines, TeX may stop in the beginning
4922 of its run and display output that looks like the following.  The `*'
4923 indicates that TeX is waiting for input.
4924
4925      This is TeX, Version 3.14159 (Web2c 7.0)
4926      (test.texinfo [1])
4927      *
4928
4929 In this case, simply type `\end <RET>' after the asterisk.  Then write
4930 the header lines in the Texinfo file and run the TeX command again.
4931 (Note the use of the backslash, `\'.  TeX uses `\' instead of `@'; and
4932 in this circumstance, you are working directly with TeX, not with
4933 Texinfo.)
4934
4935 \1f
4936 File: texinfo.info,  Node: Using texinfo-show-structure,  Next: Using occur,  Prev: Debugging with TeX,  Up: Catching Mistakes
4937
4938 G.3 Using `texinfo-show-structure'
4939 ==================================
4940
4941 It is not always easy to keep track of the nodes, chapters, sections,
4942 and subsections of a Texinfo file.  This is especially true if you are
4943 revising or adding to a Texinfo file that someone else has written.
4944
4945   In GNU Emacs, in Texinfo mode, the `texinfo-show-structure' command
4946 lists all the lines that begin with the @-commands that specify the
4947 structure: `@chapter', `@section', `@appendix', and so on.  With an
4948 argument (`C-u' as prefix argument, if interactive), the command also
4949 shows the `@node' lines.  The `texinfo-show-structure' command is bound
4950 to `C-c C-s' in Texinfo mode, by default.
4951
4952   The lines are displayed in a buffer called the `*Occur*' buffer,
4953 indented by hierarchical level.  For example, here is a part of what was
4954 produced by running `texinfo-show-structure' on this manual:
4955
4956       Lines matching "^@\\(chapter \\|sect\\|subs\\|subh\\|
4957       unnum\\|major\\|chapheading \\|heading \\|appendix\\)"
4958       in buffer texinfo.texi.
4959       ...
4960       4177:@chapter Nodes
4961       4198:    @heading Two Paths
4962       4231:    @section Node and Menu Illustration
4963       4337:    @section The @code{@@node} Command
4964       4393:        @subheading Choosing Node and Pointer Names
4965       4417:        @subsection How to Write an @code{@@node} Line
4966       4469:        @subsection @code{@@node} Line Tips
4967       ...
4968
4969   This says that lines 4337, 4393, and 4417 of `texinfo.texi' begin
4970 with the `@section', `@subheading', and `@subsection' commands
4971 respectively.  If you move your cursor into the `*Occur*' window, you
4972 can position the cursor over one of the lines and use the `C-c C-c'
4973 command (`occur-mode-goto-occurrence'), to jump to the corresponding
4974 spot in the Texinfo file.  *Note Using Occur: (xemacs)Other Repeating
4975 Search, for more information about `occur-mode-goto-occurrence'.
4976
4977   The first line in the `*Occur*' window describes the "regular
4978 expression" specified by TEXINFO-HEADING-PATTERN.  This regular
4979 expression is the pattern that `texinfo-show-structure' looks for.
4980 *Note Using Regular Expressions: (xemacs)Regexps, for more information.
4981
4982   When you invoke the `texinfo-show-structure' command, Emacs will
4983 display the structure of the whole buffer.  If you want to see the
4984 structure of just a part of the buffer, of one chapter, for example,
4985 use the `C-x n n' (`narrow-to-region') command to mark the region.
4986 (*Note Narrowing: (xemacs)Narrowing.)  This is how the example used
4987 above was generated.  (To see the whole buffer again, use `C-x n w'
4988 (`widen').)
4989
4990   If you call `texinfo-show-structure' with a prefix argument by typing
4991 `C-u C-c C-s', it will list lines beginning with `@node' as well as the
4992 lines beginning with the @-sign commands for `@chapter', `@section',
4993 and the like.
4994
4995   You can remind yourself of the structure of a Texinfo file by looking
4996 at the list in the `*Occur*' window; and if you have mis-named a node
4997 or left out a section, you can correct the mistake.
4998
4999 \1f
5000 File: texinfo.info,  Node: Using occur,  Next: Running Info-Validate,  Prev: Using texinfo-show-structure,  Up: Catching Mistakes
5001
5002 G.4 Using `occur'
5003 =================
5004
5005 Sometimes the `texinfo-show-structure' command produces too much
5006 information.  Perhaps you want to remind yourself of the overall
5007 structure of a Texinfo file, and are overwhelmed by the detailed list
5008 produced by `texinfo-show-structure'.  In this case, you can use the
5009 `occur' command directly.  To do this, type
5010
5011      M-x occur
5012
5013 and then, when prompted, type a "regexp", a regular expression for the
5014 pattern you want to match.  (*Note Regular Expressions:
5015 (xemacs)Regexps.)  The `occur' command works from the current location
5016 of the cursor in the buffer to the end of the buffer.  If you want to
5017 run `occur' on the whole buffer, place the cursor at the beginning of
5018 the buffer.
5019
5020   For example, to see all the lines that contain the word `@chapter' in
5021 them, just type `@chapter'.  This will produce a list of the chapters.
5022 It will also list all the sentences with `@chapter' in the middle of
5023 the line.
5024
5025   If you want to see only those lines that start with the word
5026 `@chapter', type `^@chapter' when prompted by `occur'.  If you want to
5027 see all the lines that end with a word or phrase, end the last word
5028 with a `$'; for example, `catching mistakes$'.  This can be helpful
5029 when you want to see all the nodes that are part of the same chapter or
5030 section and therefore have the same `Up' pointer.
5031
5032   *Note Using Occur: (xemacs)Other Repeating Search, for more
5033 information.
5034
5035 \1f
5036 File: texinfo.info,  Node: Running Info-Validate,  Prev: Using occur,  Up: Catching Mistakes
5037
5038 G.5 Finding Badly Referenced Nodes
5039 ==================================
5040
5041 You can use the `Info-validate' command to check whether any of the
5042 `Next', `Previous', `Up' or other node pointers fail to point to a
5043 node.  This command checks that every node pointer points to an
5044 existing node.  The `Info-validate' command works only on Info files,
5045 not on Texinfo files.
5046
5047   The `makeinfo' program validates pointers automatically, so you do
5048 not need to use the `Info-validate' command if you are using
5049 `makeinfo'.  You only may need to use `Info-validate' if you are unable
5050 to run `makeinfo' and instead must create an Info file using
5051 `texinfo-format-region' or `texinfo-format-buffer', or if you write an
5052 Info file from scratch.
5053
5054 * Menu:
5055
5056 * Using Info-validate::         How to run `Info-validate'.
5057 * Unsplit::                     How to create an unsplit file.
5058 * Tagifying::                   How to tagify a file.
5059 * Splitting::                   How to split a file manually.
5060
5061 \1f
5062 File: texinfo.info,  Node: Using Info-validate,  Next: Unsplit,  Prev: Running Info-Validate,  Up: Running Info-Validate
5063
5064 G.5.1 Running `Info-validate'
5065 -----------------------------
5066
5067 To use `Info-validate', visit the Info file you wish to check and type:
5068
5069      M-x Info-validate
5070
5071 (Note that the `Info-validate' command requires an upper case `I'.  You
5072 may also need to create a tag table before running `Info-validate'.
5073 *Note Tagifying::.)
5074
5075   If your file is valid, you will receive a message that says "File
5076 appears valid".  However, if you have a pointer that does not point to
5077 a node, error messages will be displayed in a buffer called `*problems
5078 in info file*'.
5079
5080   For example, `Info-validate' was run on a test file that contained
5081 only the first node of this manual.  One of the messages said:
5082
5083      In node "Overview", invalid Next: Texinfo Mode
5084
5085 This meant that the node called `Overview' had a `Next' pointer that
5086 did not point to anything (which was true in this case, since the test
5087 file had only one node in it).
5088
5089   Now suppose we add a node named `Texinfo Mode' to our test case but
5090 we do not specify a `Previous' for this node.  Then we will get the
5091 following error message:
5092
5093      In node "Texinfo Mode", should have Previous: Overview
5094
5095 This is because every `Next' pointer should be matched by a `Previous'
5096 (in the node where the `Next' points) which points back.
5097
5098   `Info-validate' also checks that all menu entries and cross references
5099 point to actual nodes.
5100
5101   Note that `Info-validate' requires a tag table and does not work with
5102 files that have been split.  (The `texinfo-format-buffer' command
5103 automatically splits large files.)  In order to use `Info-validate' on
5104 a large file, you must run `texinfo-format-buffer' with an argument so
5105 that it does not split the Info file; and you must create a tag table
5106 for the unsplit file.
5107
5108 \1f
5109 File: texinfo.info,  Node: Unsplit,  Next: Tagifying,  Prev: Using Info-validate,  Up: Running Info-Validate
5110
5111 G.5.2 Creating an Unsplit File
5112 ------------------------------
5113
5114 You can run `Info-validate' only on a single Info file that has a tag
5115 table.  The command will not work on the indirect subfiles that are
5116 generated when a master file is split.  If you have a large file
5117 (longer than 70,000 bytes or so), you need to run the
5118 `texinfo-format-buffer' or `makeinfo-buffer' command in such a way that
5119 it does not create indirect subfiles.  You will also need to create a
5120 tag table for the Info file.  After you have done this, you can run
5121 `Info-validate' and look for badly referenced nodes.
5122
5123   The first step is to create an unsplit Info file.  To prevent
5124 `texinfo-format-buffer' from splitting a Texinfo file into smaller Info
5125 files, give a prefix to the `M-x texinfo-format-buffer' command:
5126
5127      C-u M-x texinfo-format-buffer
5128
5129 or else
5130
5131      C-u C-c C-e C-b
5132
5133 When you do this, Texinfo will not split the file and will not create a
5134 tag table for it.  
5135
5136 \1f
5137 File: texinfo.info,  Node: Tagifying,  Next: Splitting,  Prev: Unsplit,  Up: Running Info-Validate
5138
5139 G.5.3 Tagifying a File
5140 ----------------------
5141
5142 After creating an unsplit Info file, you must create a tag table for
5143 it.  Visit the Info file you wish to tagify and type:
5144
5145      M-x Info-tagify
5146
5147 (Note the upper case `I' in `Info-tagify'.)  This creates an Info file
5148 with a tag table that you can validate.
5149
5150   The third step is to validate the Info file:
5151
5152      M-x Info-validate
5153
5154 (Note the upper case `I' in `Info-validate'.)  In brief, the steps are:
5155
5156      C-u M-x texinfo-format-buffer
5157      M-x Info-tagify
5158      M-x Info-validate
5159
5160   After you have validated the node structure, you can rerun
5161 `texinfo-format-buffer' in the normal way so it will construct a tag
5162 table and split the file automatically, or you can make the tag table
5163 and split the file manually.
5164
5165 \1f
5166 File: texinfo.info,  Node: Splitting,  Prev: Tagifying,  Up: Running Info-Validate
5167
5168 G.5.4 Splitting a File Manually
5169 -------------------------------
5170
5171 You should split a large file or else let the `texinfo-format-buffer'
5172 or `makeinfo-buffer' command do it for you automatically.  (Generally
5173 you will let one of the formatting commands do this job for you.  *Note
5174 Create an Info File::.)
5175
5176   The split-off files are called the indirect subfiles.
5177
5178   Info files are split to save memory.  With smaller files, Emacs does
5179 not have make such a large buffer to hold the information.
5180
5181   If an Info file has more than 30 nodes, you should also make a tag
5182 table for it. *Note Using Info-validate::, for information about
5183 creating a tag table.  (Again, tag tables are usually created
5184 automatically by the formatting command; you only need to create a tag
5185 table yourself if you are doing the job manually.  Most likely, you
5186 will do this for a large, unsplit file on which you have run
5187 `Info-validate'.)
5188
5189   Visit the Info file you wish to tagify and split and type the two
5190 commands:
5191
5192      M-x Info-tagify
5193      M-x Info-split
5194
5195 (Note that the `I' in `Info' is upper case.)
5196
5197   When you use the `Info-split' command, the buffer is modified into a
5198 (small) Info file which lists the indirect subfiles.  This file should
5199 be saved in place of the original visited file.  The indirect subfiles
5200 are written in the same directory the original file is in, with names
5201 generated by appending `-' and a number to the original file name.
5202
5203   The primary file still functions as an Info file, but it contains just
5204 the tag table and a directory of subfiles.
5205
5206 \1f
5207 File: texinfo.info,  Node: Refilling Paragraphs,  Next: Command Syntax,  Prev: Catching Mistakes,  Up: Top
5208
5209 Appendix H Refilling Paragraphs
5210 *******************************
5211
5212 The `@refill' command refills and, optionally, indents the first line
5213 of a paragraph.(1) (*note Refilling Paragraphs-Footnote-1::) The
5214 `@refill' command is no longer important, but we describe it here
5215 because you once needed it.  You will see it in many old Texinfo files.
5216
5217   Without refilling, paragraphs containing long @-constructs may look
5218 bad after formatting because the formatter removes @-commands and
5219 shortens some lines more than others.  In the past, neither the
5220 `texinfo-format-region' command nor the `texinfo-format-buffer' command
5221 refilled paragraphs automatically.  The `@refill' command had to be
5222 written at the end of every paragraph to cause these formatters to fill
5223 them.  (Both TeX and `makeinfo' have always refilled paragraphs
5224 automatically.)  Now, all the Info formatters automatically fill and
5225 indent those paragraphs that need to be filled and indented.
5226
5227   The `@refill' command causes `texinfo-format-region' and
5228 `texinfo-format-buffer' to refill a paragraph in the Info file _after_
5229 all the other processing has been done.  For this reason, you can not
5230 use `@refill' with a paragraph containing either `@*' or `@w{ ... }'
5231 since the refilling action will override those two commands.
5232
5233   The `texinfo-format-region' and `texinfo-format-buffer' commands now
5234 automatically append `@refill' to the end of each paragraph that should
5235 be filled.  They do not append `@refill' to the ends of paragraphs that
5236 contain `@*' or `@w{ ...}' and therefore do not refill or indent them.
5237
5238 \1f
5239 File: texinfo.info,  Node: Refilling Paragraphs-Footnotes,  Up: Refilling Paragraphs
5240
5241   (1) Perhaps the command should have been called the
5242 `@refillandindent' command, but `@refill' is shorter and the name was
5243 chosen before indenting was possible.
5244
5245 \1f
5246 File: texinfo.info,  Node: Command Syntax,  Next: Obtaining TeX,  Prev: Refilling Paragraphs,  Up: Top
5247
5248 Appendix I @-Command Syntax
5249 ***************************
5250
5251 The character `@' is used to start special Texinfo commands.  (It has
5252 the same meaning that `\' has in plain TeX.)  Texinfo has four types of
5253 @-command:
5254
5255 1. Non-alphabetic commands.
5256      These commands consist of an @ followed by a punctuation mark or
5257      other character that is not part of the alphabet.  Non-alphabetic
5258      commands are almost always part of the text within a paragraph,
5259      and never take any argument.  The two characters (@ and the other
5260      one) are complete in themselves; none is followed by braces.  The
5261      non-alphabetic commands are: `@.', `@:', `@*', `@SPACE', `@TAB',
5262      `@NL', `@@', `@{', and `@}'.
5263
5264 2. Alphabetic commands that do not require arguments.
5265      These commands start with @ followed by a word followed by left-
5266      and right-hand braces.  These commands insert special symbols in
5267      the document; they do not require arguments.  For example,
5268      `@dots{}' => `...', `@equiv{}' => `==', `@TeX{}' => `TeX', and
5269      `@bullet{}' => `*'.
5270
5271 3. Alphabetic commands that require arguments within braces.
5272      These commands start with @ followed by a letter or a word,
5273      followed by an argument within braces.  For example, the command
5274      `@dfn' indicates the introductory or defining use of a term; it is
5275      used as follows: `In Texinfo, @@-commands are @dfn{mark-up}
5276      commands.'
5277
5278 4. Alphabetic commands that occupy an entire line.
5279      These commands occupy an entire line.  The line starts with @,
5280      followed by the name of the command (a word); for example,
5281      `@center' or `@cindex'.  If no argument is needed, the word is
5282      followed by the end of the line.  If there is an argument, it is
5283      separated from the command name by a space.  Braces are not used.
5284
5285   Thus, the alphabetic commands fall into classes that have different
5286 argument syntaxes.  You cannot tell to which class a command belongs by
5287 the appearance of its name, but you can tell by the command's meaning:
5288 if the command stands for a glyph, it is in class 2 and does not
5289 require an argument; if it makes sense to use the command together with
5290 other text as part of a paragraph, the command is in class 3 and must
5291 be followed by an argument in braces; otherwise, it is in class 4 and
5292 uses the rest of the line as its argument.
5293
5294   The purpose of having a different syntax for commands of classes 3 and
5295 4 is to make Texinfo files easier to read, and also to help the GNU
5296 Emacs paragraph and filling commands work properly.  There is only one
5297 exception to this rule: the command `@refill', which is always used at
5298 the end of a paragraph immediately following the final period or other
5299 punctuation character.  `@refill' takes no argument and does _not_
5300 require braces.  `@refill' never confuses the Emacs paragraph commands
5301 because it cannot appear at the beginning of a line.
5302
5303 \1f
5304 File: texinfo.info,  Node: Obtaining TeX,  Next: Command and Variable Index,  Prev: Command Syntax,  Up: Top
5305
5306 Appendix J How to Obtain TeX
5307 ****************************
5308
5309 TeX is freely redistributable.  You can obtain TeX for Unix systems via
5310 anonymous ftp or on physical media.  The core material consists of the
5311 Web2c TeX distribution (`http://tug.org/web2c').
5312
5313   Instructions for retrieval by anonymous ftp and information on other
5314 available distributions:
5315      `ftp://tug.org/tex/unixtex.ftp'
5316      `http://tug.org/unixtex.ftp'
5317
5318   The Free Software Foundation provides a core distribution on its
5319 Source Code CD-ROM suitable for printing Texinfo manuals; the
5320 University of Washington maintains and supports a tape distribution;
5321 the TeX Users Group co-sponsors a complete CD-ROM TeX distribution.
5322
5323    * For the FSF Source Code CD-ROM, please contact:
5324
5325           Free Software Foundation, Inc.
5326           59 Temple Place Suite 330
5327           Boston, MA   02111-1307
5328           USA
5329
5330           Telephone: +1-617-542-5942
5331           Fax: (including Japan) +1-617-542-2652
5332           Free Dial Fax (in Japan):
5333                 0031-13-2473 (KDD)
5334                 0066-3382-0158 (IDC)
5335           Electronic mail: `gnu@gnu.org'
5336
5337    * To order a complete distribution on CD-ROM, please see
5338      `http://tug.org/tex-live.html'.  (This distribution is also
5339      available by FTP; see the URL's above.)
5340
5341    * To order a full distribution from the University of Washington on
5342      either a 1/4in 4-track QIC-24 cartridge or a 4mm DAT cartridge,
5343      send $210 to:
5344
5345           Pierre A. MacKay
5346           Denny Hall, Mail Stop DH-10
5347           University of Washington
5348           Seattle, WA   98195
5349           USA
5350           Telephone: +1-206-543-2268
5351           Electronic mail: `mackay@cs.washington.edu'
5352
5353      Please make checks payable to the University of Washington.
5354      Checks must be in U.S. dollars, drawn on a U.S. bank.  Overseas
5355      sites: please add to the base cost, if desired, $20.00 for
5356      shipment via air parcel post, or $30.00 for shipment via courier.
5357
5358
5359   Many other TeX distributions are available; see `http://tug.org/'.
5360
5361 \1f
5362 File: texinfo.info,  Node: Command and Variable Index,  Next: Concept Index,  Prev: Obtaining TeX,  Up: Top
5363
5364 Command and Variable Index
5365 **************************
5366
5367 This is an alphabetical list of all the @-commands, assorted Emacs Lisp
5368 functions, and several variables.  To make the list easier to use, the
5369 commands are listed without their preceding `@'.
5370
5371 \0\b[index\0\b]
5372 * Menu:
5373
5374 * ! (end of sentence):                   Ending a Sentence.   (line   6)
5375 * ":                                     Inserting Accents.   (line  13)
5376 * ':                                     Inserting Accents.   (line  13)
5377 * (newline):                             Multiple Spaces.     (line   6)
5378 * (space):                               Multiple Spaces.     (line   6)
5379 * (tab):                                 Multiple Spaces.     (line   6)
5380 * * (force line break):                  Line Breaks.         (line   6)
5381 * ,:                                     Inserting Accents.   (line  13)
5382 * -:                                     - and hyphenation.   (line   6)
5383 * .  (end of sentence):                  Ending a Sentence.   (line   6)
5384 * : (suppress widening):                 Not Ending a Sentence.
5385                                                               (line  16)
5386 * =:                                     Inserting Accents.   (line  13)
5387 * ? (end of sentence):                   Ending a Sentence.   (line   6)
5388 * @ (single @):                          Inserting An Atsign. (line   6)
5389 * ^:                                     Inserting Accents.   (line  13)
5390 * `:                                     Inserting Accents.   (line  13)
5391 * AA:                                    Inserting Accents.   (line  33)
5392 * aa:                                    Inserting Accents.   (line  33)
5393 * AE:                                    Inserting Accents.   (line  33)
5394 * ae:                                    Inserting Accents.   (line  33)
5395 * afourpaper:                            A4 Paper.            (line   6)
5396 * appendix:                              unnumbered & appendix.
5397                                                               (line   6)
5398 * appendixsec:                           unnumberedsec appendixsec heading.
5399                                                               (line   6)
5400 * appendixsection:                       unnumberedsec appendixsec heading.
5401                                                               (line  18)
5402 * appendixsubsec:                        unnumberedsubsec appendixsubsec subheading.
5403                                                               (line   6)
5404 * appendixsubsubsec:                     subsubsection.       (line   6)
5405 * apply:                                 Sample Function Definition.
5406                                                               (line  14)
5407 * asis:                                  table.               (line  19)
5408 * author:                                title subtitle author.
5409                                                               (line   6)
5410 * b (bold font):                         Fonts.               (line   6)
5411 * buffer-end:                            Def Cmd Template.    (line  74)
5412 * bullet:                                bullet.              (line   6)
5413 * bye <1>:                               File End.            (line   6)
5414 * bye:                                   Ending a File.       (line   6)
5415 * c (comment):                           Comments.            (line  16)
5416 * cartouche:                             cartouche.           (line   6)
5417 * center:                                titlefont center sp. (line   6)
5418 * centerchap:                            chapter.             (line  25)
5419 * chapheading:                           majorheading & chapheading.
5420                                                               (line   6)
5421 * chapter:                               chapter.             (line   6)
5422 * cindex:                                Indexing Commands.   (line  56)
5423 * cite:                                  cite.                (line   6)
5424 * clear:                                 ifset ifclear.       (line  40)
5425 * code:                                  code.                (line   6)
5426 * columnfractions:                       Multitable Column Widths.
5427                                                               (line  11)
5428 * comment:                               Comments.            (line  16)
5429 * contents:                              Contents.            (line   6)
5430 * copyright <1>:                         copyright symbol.    (line   6)
5431 * copyright:                             Copyright & Permissions.
5432                                                               (line  30)
5433 * cropmarks:                             Cropmarks and Magnification.
5434                                                               (line   6)
5435 * defcodeindex:                          New Indices.         (line   6)
5436 * defcv:                                 Abstract Objects.    (line  17)
5437 * deffn:                                 Functions Commands.  (line   9)
5438 * deffnx:                                deffnx.              (line   6)
5439 * defindex:                              New Indices.         (line   6)
5440 * definfoenclose:                        Customized Highlighting.
5441                                                               (line  12)
5442 * defivar:                               Abstract Objects.    (line  39)
5443 * defmac:                                Functions Commands.  (line  67)
5444 * defmethod:                             Abstract Objects.    (line  96)
5445 * defop:                                 Abstract Objects.    (line  52)
5446 * defopt:                                Variables Commands.  (line  56)
5447 * defspec:                               Functions Commands.  (line  72)
5448 * deftp:                                 Data Types.          (line   8)
5449 * deftypefn:                             Typed Functions.     (line  10)
5450 * deftypefun:                            Typed Functions.     (line  75)
5451 * deftypevar:                            Typed Variables.     (line  42)
5452 * deftypevr:                             Typed Variables.     (line  12)
5453 * defun:                                 Functions Commands.  (line  42)
5454 * defvar:                                Variables Commands.  (line  38)
5455 * defvr:                                 Variables Commands.  (line   8)
5456 * dfn:                                   dfn.                 (line   6)
5457 * dircategory:                           Installing Dir Entries.
5458                                                               (line  11)
5459 * direntry:                              Installing Dir Entries.
5460                                                               (line  11)
5461 * display:                               display.             (line   6)
5462 * dmn:                                   dmn.                 (line   6)
5463 * dotaccent:                             Inserting Accents.   (line  13)
5464 * dotless:                               Inserting Accents.   (line  33)
5465 * dots:                                  dots.                (line   6)
5466 * email:                                 email.               (line   6)
5467 * emph:                                  emph & strong.       (line   6)
5468 * end <1>:                               Introducing Lists.   (line  20)
5469 * end:                                   Quotations and Examples.
5470                                                               (line  15)
5471 * end titlepage:                         end titlepage.       (line   6)
5472 * enumerate:                             enumerate.           (line   6)
5473 * evenfooting:                           Custom Headings.     (line  53)
5474 * evenheading:                           Custom Headings.     (line  53)
5475 * everyfooting:                          Custom Headings.     (line  46)
5476 * everyheading:                          Custom Headings.     (line  46)
5477 * example:                               example.             (line   6)
5478 * exclamdown:                            Inserting Accents.   (line  33)
5479 * exdent:                                exdent.              (line   6)
5480 * file:                                  file.                (line   6)
5481 * filll:                                 Copyright & Permissions.
5482                                                               (line  16)
5483 * finalout:                              Overfull hboxes.     (line  33)
5484 * findex:                                Indexing Commands.   (line  59)
5485 * flushleft:                             flushleft & flushright.
5486                                                               (line   6)
5487 * flushright:                            flushleft & flushright.
5488                                                               (line   6)
5489 * foobar:                                Optional Arguments.  (line  23)
5490 * footnote:                              Footnotes.           (line   6)
5491 * footnotestyle:                         Footnote Styles.     (line  43)
5492 * format:                                format.              (line   6)
5493 * forward-word:                          Def Cmd Template.    (line  31)
5494 * ftable:                                ftable vtable.       (line   6)
5495 * group:                                 group.               (line   6)
5496 * H:                                     Inserting Accents.   (line  13)
5497 * heading:                               unnumberedsec appendixsec heading.
5498                                                               (line   6)
5499 * headings:                              headings on off.     (line   6)
5500 * html:                                  Raw Formatter Commands.
5501                                                               (line  37)
5502 * hyphenation:                           - and hyphenation.   (line   6)
5503 * i (italic font):                       Fonts.               (line   6)
5504 * ifclear:                               ifset ifclear.       (line  60)
5505 * ifhtml <1>:                            Raw Formatter Commands.
5506                                                               (line  37)
5507 * ifhtml:                                Conditional Commands.
5508                                                               (line  14)
5509 * ifinfo:                                Conditional Commands.
5510                                                               (line   6)
5511 * ifnothtml:                             Conditional Not Commands.
5512                                                               (line   6)
5513 * ifnotinfo:                             Conditional Not Commands.
5514                                                               (line   6)
5515 * ifnottex:                              Conditional Not Commands.
5516                                                               (line   6)
5517 * ifset:                                 ifset ifclear.       (line   6)
5518 * iftex:                                 Conditional Commands.
5519                                                               (line  14)
5520 * ignore:                                Comments.            (line  26)
5521 * image:                                 Images.              (line   6)
5522 * include:                               Using Include Files. (line   6)
5523 * Info-validate:                         Running Info-Validate.
5524                                                               (line   6)
5525 * inforef:                               inforef.             (line   6)
5526 * input (TeX command):                   Minimum.             (line  24)
5527 * isearch-backward:                      deffnx.              (line  22)
5528 * isearch-forward:                       deffnx.              (line  21)
5529 * item <1>:                              Multitable Rows.     (line   6)
5530 * item <2>:                              table.               (line  35)
5531 * item:                                  itemize.             (line  23)
5532 * itemize:                               itemize.             (line   6)
5533 * itemx:                                 itemx.               (line   6)
5534 * kbd:                                   kbd.                 (line   6)
5535 * kbdinputstyle:                         kbd.                 (line  20)
5536 * key:                                   key.                 (line   6)
5537 * kindex:                                Indexing Commands.   (line  65)
5538 * L:                                     Inserting Accents.   (line  33)
5539 * l:                                     Inserting Accents.   (line  33)
5540 * lisp:                                  Lisp Example.        (line   6)
5541 * lowersections:                         Raise/lower sections.
5542                                                               (line   6)
5543 * macro:                                 Defining Macros.     (line   6)
5544 * mag (TeX command):                     Cropmarks and Magnification.
5545                                                               (line  24)
5546 * majorheading:                          majorheading & chapheading.
5547                                                               (line   6)
5548 * makeinfo-buffer:                       makeinfo in Emacs.   (line  16)
5549 * makeinfo-kill-job:                     makeinfo in Emacs.   (line  38)
5550 * makeinfo-recenter-output-buffer:       makeinfo in Emacs.   (line  43)
5551 * makeinfo-region:                       makeinfo in Emacs.   (line  12)
5552 * math:                                  math.                (line   6)
5553 * menu:                                  Menus.               (line   6)
5554 * minus:                                 minus.               (line   6)
5555 * multitable:                            Multi-column Tables. (line   6)
5556 * need:                                  need.                (line   6)
5557 * next-error:                            makeinfo in Emacs.   (line  27)
5558 * noindent:                              noindent.            (line   6)
5559 * O:                                     Inserting Accents.   (line  33)
5560 * o:                                     Inserting Accents.   (line  33)
5561 * occur:                                 Using occur.         (line   6)
5562 * occur-mode-goto-occurrence:            Showing the Structure.
5563                                                               (line  22)
5564 * oddfooting:                            Custom Headings.     (line  53)
5565 * oddheading:                            Custom Headings.     (line  53)
5566 * OE:                                    Inserting Accents.   (line  33)
5567 * oe:                                    Inserting Accents.   (line  33)
5568 * page:                                  page.                (line   6)
5569 * paragraphindent:                       paragraphindent.     (line   6)
5570 * pindex:                                Indexing Commands.   (line  68)
5571 * pounds:                                pounds.              (line   6)
5572 * printindex:                            Printing Indices & Menus.
5573                                                               (line   6)
5574 * pxref:                                 pxref.               (line   6)
5575 * questiondown:                          Inserting Accents.   (line  33)
5576 * quotation:                             quotation.           (line   6)
5577 * r (Roman font):                        Fonts.               (line   6)
5578 * raisesections:                         Raise/lower sections.
5579                                                               (line   6)
5580 * ref:                                   ref.                 (line   6)
5581 * refill:                                Refilling Paragraphs.
5582                                                               (line   6)
5583 * ringaccent:                            Inserting Accents.   (line  13)
5584 * samp:                                  samp.                (line   6)
5585 * sc (small caps font):                  Smallcaps.           (line   6)
5586 * section:                               section.             (line   6)
5587 * set:                                   ifset ifclear.       (line  12)
5588 * setchapternewpage:                     setchapternewpage.   (line   6)
5589 * setfilename:                           setfilename.         (line   6)
5590 * settitle:                              settitle.            (line   6)
5591 * shortcontents:                         Contents.            (line   6)
5592 * shorttitlepage:                        titlepage.           (line  40)
5593 * smallbook:                             smallbook.           (line   6)
5594 * smallexample:                          smallexample & smalllisp.
5595                                                               (line   6)
5596 * smalllisp:                             smallexample & smalllisp.
5597                                                               (line   6)
5598 * sp (line spacing):                     sp.                  (line   6)
5599 * sp (titlepage line spacing):           titlefont center sp. (line   6)
5600 * ss:                                    Inserting Accents.   (line  33)
5601 * strong:                                emph & strong.       (line   6)
5602 * subheading:                            unnumberedsubsec appendixsubsec subheading.
5603                                                               (line   6)
5604 * subsection:                            subsection.          (line   6)
5605 * subsubheading:                         subsubsection.       (line   6)
5606 * subsubsection:                         subsubsection.       (line   6)
5607 * subtitle:                              title subtitle author.
5608                                                               (line   6)
5609 * summarycontents:                       Contents.            (line   6)
5610 * syncodeindex:                          syncodeindex.        (line   6)
5611 * synindex:                              synindex.            (line   6)
5612 * t (typewriter font):                   Fonts.               (line   6)
5613 * table:                                 Two-column Tables.   (line   6)
5614 * tex:                                   Raw Formatter Commands.
5615                                                               (line  19)
5616 * tex (command):                         tex.                 (line   6)
5617 * texinfo-all-menus-update:              Updating Commands.   (line 112)
5618 * texinfo-every-node-update:             Updating Commands.   (line 107)
5619 * texinfo-format-buffer <1>:             texinfo-format commands.
5620                                                               (line   6)
5621 * texinfo-format-buffer:                 Info Formatting.     (line  22)
5622 * texinfo-format-region <1>:             texinfo-format commands.
5623                                                               (line   6)
5624 * texinfo-format-region:                 Info Formatting.     (line  13)
5625 * texinfo-indent-menu-description:       Other Updating Commands.
5626                                                               (line  45)
5627 * texinfo-insert-@code:                  Inserting.           (line  15)
5628 * texinfo-insert-@dfn:                   Inserting.           (line  19)
5629 * texinfo-insert-@end:                   Inserting.           (line  23)
5630 * texinfo-insert-@example:               Inserting.           (line  62)
5631 * texinfo-insert-@item:                  Inserting.           (line  30)
5632 * texinfo-insert-@kbd:                   Inserting.           (line  35)
5633 * texinfo-insert-@node:                  Inserting.           (line  39)
5634 * texinfo-insert-@noindent:              Inserting.           (line  44)
5635 * texinfo-insert-@samp:                  Inserting.           (line  49)
5636 * texinfo-insert-@table:                 Inserting.           (line  53)
5637 * texinfo-insert-@var:                   Inserting.           (line  58)
5638 * texinfo-insert-braces:                 Inserting.           (line  67)
5639 * texinfo-insert-node-lines:             Other Updating Commands.
5640                                                               (line  10)
5641 * texinfo-make-menu:                     Updating Commands.   (line  93)
5642 * texinfo-master-menu:                   Updating Commands.   (line  55)
5643 * texinfo-multiple-files-update:         texinfo-multiple-files-update.
5644                                                               (line   6)
5645 * texinfo-multiple-files-update (in brief): Other Updating Commands.
5646                                                               (line  34)
5647 * texinfo-sequential-node-update:        Other Updating Commands.
5648                                                               (line  54)
5649 * texinfo-show-structure <1>:            Using texinfo-show-structure.
5650                                                               (line   6)
5651 * texinfo-show-structure:                Showing the Structure.
5652                                                               (line  18)
5653 * texinfo-start-menu-description:        Inserting.           (line  94)
5654 * texinfo-tex-buffer:                    Printing.            (line  21)
5655 * texinfo-tex-print:                     Printing.            (line  42)
5656 * texinfo-tex-region:                    Printing.            (line  27)
5657 * texinfo-update-node:                   Updating Commands.   (line  83)
5658 * thischapter:                           Custom Headings.     (line  75)
5659 * thischaptername:                       Custom Headings.     (line  72)
5660 * thisfile:                              Custom Headings.     (line  83)
5661 * thispage:                              Custom Headings.     (line  69)
5662 * thistitle:                             Custom Headings.     (line  79)
5663 * tieaccent:                             Inserting Accents.   (line  13)
5664 * tindex:                                Indexing Commands.   (line  71)
5665 * title:                                 title subtitle author.
5666                                                               (line   6)
5667 * titlefont:                             titlefont center sp. (line   6)
5668 * titlepage:                             titlepage.           (line   6)
5669 * today:                                 Custom Headings.     (line  92)
5670 * top (@-command):                       makeinfo top command.
5671                                                               (line   6)
5672 * u:                                     Inserting Accents.   (line  13)
5673 * ubaraccent:                            Inserting Accents.   (line  13)
5674 * udotaccent:                            Inserting Accents.   (line  13)
5675 * unmacro:                               Defining Macros.     (line  26)
5676 * unnumbered:                            unnumbered & appendix.
5677                                                               (line   6)
5678 * unnumberedsec:                         unnumberedsec appendixsec heading.
5679                                                               (line   6)
5680 * unnumberedsubsec:                      unnumberedsubsec appendixsubsec subheading.
5681                                                               (line   6)
5682 * unnumberedsubsubsec:                   subsubsection.       (line   6)
5683 * up-list:                               Inserting.           (line  72)
5684 * uref:                                  uref.                (line   6)
5685 * url:                                   url.                 (line   6)
5686 * v:                                     Inserting Accents.   (line  13)
5687 * value:                                 value.               (line   6)
5688 * var:                                   var.                 (line   6)
5689 * vindex:                                Indexing Commands.   (line  62)
5690 * vskip:                                 Copyright & Permissions.
5691                                                               (line  16)
5692 * vtable:                                ftable vtable.       (line   6)
5693 * w (prevent line break):                w.                   (line   6)
5694 * xref:                                  xref.                (line   6)
5695 * { (single {):                          Inserting Braces.    (line   6)
5696 * } (single }):                          Inserting Braces.    (line   6)
5697 * ~:                                     Inserting Accents.   (line  13)
5698
5699 \1f
5700 File: texinfo.info,  Node: Concept Index,  Prev: Command and Variable Index,  Up: Top
5701
5702 Concept Index
5703 *************
5704
5705 \0\b[index\0\b]
5706 * Menu:
5707
5708 * !:                                     Inserting Accents.   (line  33)
5709 * (dir) as Up node of Top node:          First Node.          (line  11)
5710 * --delete:                              Invoking install-info.
5711                                                               (line  25)
5712 * --dir-file=NAME:                       Invoking install-info.
5713                                                               (line  30)
5714 * --entry=TEXT:                          Invoking install-info.
5715                                                               (line  34)
5716 * --error-limit=LIMIT:                   makeinfo options.    (line  32)
5717 * --fill-column=WIDTH:                   makeinfo options.    (line  37)
5718 * --footnote-style=STYLE:                makeinfo options.    (line  45)
5719 * --force:                               makeinfo options.    (line  55)
5720 * --help <1>:                            Invoking install-info.
5721                                                               (line  41)
5722 * --help:                                makeinfo options.    (line  59)
5723 * --info-dir=DIR:                        Invoking install-info.
5724                                                               (line  49)
5725 * --info-file=FILE:                      Invoking install-info.
5726                                                               (line  45)
5727 * --item=TEXT:                           Invoking install-info.
5728                                                               (line  52)
5729 * --no-headers:                          makeinfo options.    (line  68)
5730 * --no-number-footnotes:                 makeinfo options.    (line  93)
5731 * --no-pointer-validate:                 makeinfo options.    (line  81)
5732 * --no-split:                            makeinfo options.    (line  75)
5733 * --no-validate:                         makeinfo options.    (line  81)
5734 * --no-warn:                             makeinfo options.    (line  87)
5735 * --output=FILE:                         makeinfo options.    (line  99)
5736 * --paragraph-indent=INDENT:             makeinfo options.    (line 109)
5737 * --quiet:                               Invoking install-info.
5738                                                               (line  56)
5739 * --reference-limit=LIMIT:               makeinfo options.    (line 124)
5740 * --remove:                              Invoking install-info.
5741                                                               (line  59)
5742 * --section=SEC:                         Invoking install-info.
5743                                                               (line  62)
5744 * --verbose:                             makeinfo options.    (line 134)
5745 * --version <1>:                         Invoking install-info.
5746                                                               (line  68)
5747 * --version:                             makeinfo options.    (line 139)
5748 * -D VAR:                                makeinfo options.    (line  28)
5749 * -I DIR:                                makeinfo options.    (line  63)
5750 * -o FILE:                               makeinfo options.    (line  99)
5751 * -P DIR:                                makeinfo options.    (line 105)
5752 * .cshrc initialization file:            Preparing for TeX.   (line   6)
5753 * .profile initialization file:          Preparing for TeX.   (line   6)
5754 * /L:                                    Inserting Accents.   (line  33)
5755 * /l:                                    Inserting Accents.   (line  33)
5756 * /O:                                    Inserting Accents.   (line  33)
5757 * /o:                                    Inserting Accents.   (line  33)
5758 * ?:                                     Inserting Accents.   (line  33)
5759 * @-command in nodename:                 Node Line Requirements.
5760                                                               (line  23)
5761 * @-command list:                        Command List.        (line   6)
5762 * @-command syntax:                      Command Syntax.      (line   6)
5763 * @-commands:                            Formatting Commands. (line   6)
5764 * @include file sample:                  Sample Include File. (line   6)
5765 * @menu parts:                           Menu Parts.          (line   6)
5766 * @node line writing:                    Writing a Node.      (line   6)
5767 * A4 paper, printing on:                 A4 Paper.            (line   6)
5768 * AA:                                    Inserting Accents.   (line  33)
5769 * aa:                                    Inserting Accents.   (line  33)
5770 * Abbreviations for keys:                key.                 (line  19)
5771 * Accents, inserting:                    Inserting Accents.   (line   6)
5772 * Acute accent:                          Inserting Accents.   (line  13)
5773 * Adding a new info file:                New Info File.       (line   6)
5774 * AE:                                    Inserting Accents.   (line  33)
5775 * ae:                                    Inserting Accents.   (line  33)
5776 * Alphabetical @-command list:           Command List.        (line   6)
5777 * Another Info directory:                Other Info Directories.
5778                                                               (line   6)
5779 * Apostrophe in nodename:                Node Line Requirements.
5780                                                               (line  34)
5781 * Arguments, repeated and optional:      Optional Arguments.  (line   6)
5782 * Aspect ratio of images:                Images.              (line  16)
5783 * Automatic pointer creation with makeinfo: makeinfo Pointer Creation.
5784                                                               (line   6)
5785 * Automatically insert nodes, menus:     Updating Nodes and Menus.
5786                                                               (line   6)
5787 * Backslash, and macros:                 Invoking Macros.     (line  23)
5788 * Badly referenced nodes:                Running Info-Validate.
5789                                                               (line   6)
5790 * Batch formatting for Info:             Batch Formatting.    (line   6)
5791 * Beginning a Texinfo file:              Beginning a File.    (line   6)
5792 * Beginning line of a Texinfo file:      First Line.          (line   6)
5793 * Berry, Karl:                           Acknowledgements.    (line   6)
5794 * Big points:                            Images.              (line  33)
5795 * Black rectangle in hardcopy:           Overfull hboxes.     (line  28)
5796 * Blank lines:                           sp.                  (line   6)
5797 * Body of a macro:                       Defining Macros.     (line  19)
5798 * Book characteristics, printed:         Printed Books.       (line   6)
5799 * Book, printing small:                  smallbook.           (line   6)
5800 * Box with rounded corners:              cartouche.           (line   6)
5801 * Braces and argument syntax:            Command Syntax.      (line  40)
5802 * Braces, inserting:                     Braces Atsigns.      (line   6)
5803 * Braces, when to use:                   Formatting Commands. (line  49)
5804 * Breaks in a line:                      Line Breaks.         (line   6)
5805 * Breve accent:                          Inserting Accents.   (line  13)
5806 * Buffer formatting and printing:        Printing.            (line   6)
5807 * Bullets, inserting:                    Dots Bullets.        (line   6)
5808 * Case in nodename:                      Node Line Requirements.
5809                                                               (line  45)
5810 * Catching errors with Info formatting:  Debugging with Info. (line   6)
5811 * Catching errors with TeX formatting:   Debugging with TeX.  (line   6)
5812 * Catching mistakes:                     Catching Mistakes.   (line   6)
5813 * Cedilla accent:                        Inserting Accents.   (line  13)
5814 * Centimeters:                           Images.              (line  39)
5815 * Chapter structuring:                   Structuring.         (line   6)
5816 * Characteristics, printed books or manuals: Printed Books.   (line   6)
5817 * Chassell, Robert J.:                   Acknowledgements.    (line   6)
5818 * Check accent:                          Inserting Accents.   (line  13)
5819 * Checking for badly referenced nodes:   Running Info-Validate.
5820                                                               (line   6)
5821 * Ciceros:                               Images.              (line  48)
5822 * Circumflex accent:                     Inserting Accents.   (line  13)
5823 * code, arg to @kbdinputstyle:           kbd.                 (line  24)
5824 * colon last in INFOPATH:                Other Info Directories.
5825                                                               (line  69)
5826 * Column widths, defining for multitables: Multitable Column Widths.
5827                                                               (line   6)
5828 * Combining indices:                     Combining Indices.   (line   6)
5829 * Comma in nodename:                     Node Line Requirements.
5830                                                               (line  34)
5831 * Command definitions:                   Sample Function Definition.
5832                                                               (line   6)
5833 * Commands to insert special characters: Braces Atsigns.      (line   6)
5834 * Commands using raw HTML:               Raw Formatter Commands.
5835                                                               (line   6)
5836 * Commands using raw TeX:                Raw Formatter Commands.
5837                                                               (line   6)
5838 * Commands, inserting them:              Inserting.           (line   6)
5839 * Comments:                              Comments.            (line  16)
5840 * Compile command for formatting:        Compile-Command.     (line   6)
5841 * Conditionally visible text:            Conditionals.        (line   6)
5842 * Conditions for copying Texinfo:        Copying.             (line   6)
5843 * Contents, Table of:                    Contents.            (line   6)
5844 * Contents-like outline of file structure: Showing the Structure.
5845                                                               (line   6)
5846 * Conventions for writing definitions:   Def Cmd Conventions. (line   6)
5847 * Conventions, syntactic:                Conventions.         (line   6)
5848 * Copying conditions:                    Copying.             (line   6)
5849 * Copying permissions:                   Sample Permissions.  (line   6)
5850 * Copying software:                      Software Copying Permissions.
5851                                                               (line   6)
5852 * Copyright page:                        Copyright & Permissions.
5853                                                               (line   6)
5854 * Correcting mistakes:                   Catching Mistakes.   (line   6)
5855 * Create nodes, menus automatically:     Updating Nodes and Menus.
5856                                                               (line   6)
5857 * Creating an Info file:                 Create an Info File. (line   6)
5858 * Creating an unsplit file:              Unsplit.             (line   6)
5859 * Creating index entries:                Indexing Commands.   (line   6)
5860 * Creating indices:                      Indices.             (line   6)
5861 * Creating pointers with makeinfo:       makeinfo Pointer Creation.
5862                                                               (line   6)
5863 * Cropmarks for printing:                Cropmarks and Magnification.
5864                                                               (line   6)
5865 * Cross reference parts:                 Cross Reference Parts.
5866                                                               (line   6)
5867 * Cross references:                      Cross References.    (line   6)
5868 * Cross references using @inforef:       inforef.             (line   6)
5869 * Cross references using @pxref:         pxref.               (line   6)
5870 * Cross references using @ref:           ref.                 (line   6)
5871 * Cross references using @xref:          xref.                (line   6)
5872 * Customized highlighting:               Customized Highlighting.
5873                                                               (line   6)
5874 * Customizing of TeX for Texinfo:        Preparing for TeX.   (line  24)
5875 * Debugging the Texinfo structure:       Catching Mistakes.   (line   6)
5876 * Debugging with Info formatting:        Debugging with Info. (line   6)
5877 * Debugging with TeX formatting:         Debugging with TeX.  (line   6)
5878 * Defining indexing entries:             Indexing Commands.   (line   6)
5879 * Defining macros:                       Defining Macros.     (line   6)
5880 * Defining new indices:                  New Indices.         (line   6)
5881 * Defining new Texinfo commands:         Macros.              (line   6)
5882 * Definition commands:                   Definition Commands. (line   6)
5883 * Definition conventions:                Def Cmd Conventions. (line   6)
5884 * Definition template:                   Def Cmd Template.    (line   6)
5885 * Definitions grouped together:          deffnx.              (line   6)
5886 * Description for menu, start:           Inserting.           (line  94)
5887 * Dido^t points:                         Images.              (line  45)
5888 * Different cross reference commands:    Cross Reference Commands.
5889                                                               (line   6)
5890 * Dimension formatting:                  dmn.                 (line   6)
5891 * Dimensions and image sizes:            Images.              (line  23)
5892 * dir directory for Info installation:   Install an Info File.
5893                                                               (line   6)
5894 * dir file listing:                      New Info File.       (line   6)
5895 * dir, created by install-info:          Invoking install-info.
5896                                                               (line  19)
5897 * Display formatting:                    display.             (line   6)
5898 * distinct, arg to @kbdinputstyle:       kbd.                 (line  24)
5899 * Distorting images:                     Images.              (line  16)
5900 * Distribution:                          Software Copying Permissions.
5901                                                               (line   6)
5902 * Dot accent:                            Inserting Accents.   (line  13)
5903 * Dotless i, j:                          Inserting Accents.   (line  33)
5904 * Dots, inserting <1>:                   dots.                (line   6)
5905 * Dots, inserting:                       Dots Bullets.        (line   6)
5906 * Double-colon menu entries:             Less Cluttered Menu Entry.
5907                                                               (line   6)
5908 * DVI file:                              Format with tex/texindex.
5909                                                               (line   6)
5910 * Ellipsis, inserting:                   Dots Bullets.        (line   6)
5911 * Emacs:                                 Texinfo Mode.        (line   6)
5912 * Emacs shell, format, print from:       Within Emacs.        (line   6)
5913 * Emphasizing text:                      Emphasis.            (line   6)
5914 * Emphasizing text, font for:            emph & strong.       (line   6)
5915 * Enclosure command for Info:            Customized Highlighting.
5916                                                               (line  12)
5917 * End node footnote style:               Footnote Styles.     (line   9)
5918 * End of header line:                    End of Header.       (line   6)
5919 * End titlepage starts headings:         end titlepage.       (line   6)
5920 * Ending a Sentence:                     Ending a Sentence.   (line   6)
5921 * Ending a Texinfo file:                 Ending a File.       (line   6)
5922 * Entries for an index:                  Indexing Commands.   (line   6)
5923 * Entries, making index:                 Index Entries.       (line   6)
5924 * Enumeration:                           enumerate.           (line   6)
5925 * epsf.tex:                              Images.              (line  58)
5926 * epsf.tex, installing:                  Preparing for TeX.   (line  19)
5927 * Equivalence, indicating it:            Equivalence.         (line   6)
5928 * Error message, indicating it:          Error Glyph.         (line   6)
5929 * Errors, parsing:                       makeinfo in Emacs.   (line  27)
5930 * Es-zet:                                Inserting Accents.   (line  33)
5931 * European A4 paper:                     A4 Paper.            (line   6)
5932 * Evaluation glyph:                      result.              (line   6)
5933 * Example for a small book:              smallexample & smalllisp.
5934                                                               (line   6)
5935 * Example menu:                          Menu Example.        (line   6)
5936 * example, arg to @kbdinputstyle:        kbd.                 (line  24)
5937 * Examples, formatting them:             example.             (line   6)
5938 * Expansion, indicating it:              expansion.           (line   6)
5939 * File beginning:                        Beginning a File.    (line   6)
5940 * File ending:                           Ending a File.       (line   6)
5941 * File section structure, showing it:    Showing the Structure.
5942                                                               (line   6)
5943 * Filling paragraphs:                    Refilling Paragraphs.
5944                                                               (line   6)
5945 * Final output:                          Overfull hboxes.     (line   6)
5946 * Finding badly referenced nodes:        Running Info-Validate.
5947                                                               (line   6)
5948 * Fine-tuning, and hyphenation:          - and hyphenation.   (line   6)
5949 * First line of a Texinfo file:          First Line.          (line   6)
5950 * First node:                            First Node.          (line   6)
5951 * Floating accents, inserting:           Inserting Accents.   (line   6)
5952 * Fonts for indices:                     syncodeindex.        (line  52)
5953 * Fonts for printing, not for Info:      Fonts.               (line   6)
5954 * Footings:                              Headings.            (line   6)
5955 * Footnotes:                             Footnotes.           (line   6)
5956 * Format a dimension:                    dmn.                 (line   6)
5957 * Format and print hardcopy:             Format/Print Hardcopy.
5958                                                               (line   6)
5959 * Format and print in Texinfo mode:      Texinfo Mode Printing.
5960                                                               (line   6)
5961 * Format with the compile command:       Compile-Command.     (line   6)
5962 * Format, print from Emacs shell:        Within Emacs.        (line   6)
5963 * Formats for images:                    Images.              (line  10)
5964 * Formatting a file for Info:            Create an Info File. (line   6)
5965 * Formatting commands:                   Formatting Commands. (line   6)
5966 * Formatting examples:                   example.             (line   6)
5967 * Formatting for Info:                   Info Formatting.     (line   6)
5968 * Formatting for printing:               Printing.            (line   6)
5969 * Formatting headings and footings:      Headings.            (line   6)
5970 * Formatting requirements:               Requirements Summary.
5971                                                               (line   6)
5972 * Formatting with tex and texindex:      Format with tex/texindex.
5973                                                               (line   6)
5974 * Frequently used commands, inserting:   Inserting.           (line   6)
5975 * Function definitions:                  Sample Function Definition.
5976                                                               (line   6)
5977 * General syntactic conventions:         Conventions.         (line   6)
5978 * Generating menus with indices:         Printing Indices & Menus.
5979                                                               (line   6)
5980 * German S:                              Inserting Accents.   (line  33)
5981 * Globbing:                              Format with tex/texindex.
5982                                                               (line  32)
5983 * Glyphs:                                Glyphs.              (line   6)
5984 * GNU Emacs:                             Texinfo Mode.        (line   6)
5985 * GNU Emacs shell, format, print from:   Within Emacs.        (line   6)
5986 * Going to other Info files' nodes:      Other Info Files.    (line   6)
5987 * Grave accent:                          Inserting Accents.   (line  13)
5988 * Group (hold text together vertically): group.               (line   6)
5989 * Grouping two definitions together:     deffnx.              (line   6)
5990 * Hardcopy, printing it:                 Format/Print Hardcopy.
5991                                                               (line   6)
5992 * hboxes, overfull:                      Overfull hboxes.     (line   6)
5993 * Header for Texinfo files:              Header.              (line   6)
5994 * Header of a Texinfo file:              First Line.          (line   6)
5995 * Headings:                              Headings.            (line   6)
5996 * Headings, page, begin to appear:       end titlepage.       (line   6)
5997 * Height of images:                      Images.              (line  16)
5998 * Highlighting text:                     Indicating.          (line   6)
5999 * Highlighting, customized:              Customized Highlighting.
6000                                                               (line   6)
6001 * Hints:                                 Tips.                (line   8)
6002 * Holding text together vertically:      group.               (line   6)
6003 * HTML commands, using ordinary:         Raw Formatter Commands.
6004                                                               (line   6)
6005 * Hungariam umlaut accent:               Inserting Accents.   (line  13)
6006 * Hyphenation, helping TeX do:           - and hyphenation.   (line   6)
6007 * Hyphenation, preventing:               w.                   (line   6)
6008 * i:                                     Inserting Accents.   (line  33)
6009 * If text conditionally visible:         Conditionals.        (line   6)
6010 * ifinfo permissions:                    ifinfo Permissions.  (line   6)
6011 * Ignored before @setfilename:           setfilename.         (line  32)
6012 * Ignored text:                          Comments.            (line  26)
6013 * Image formats:                         Images.              (line  10)
6014 * Images, inserting:                     Images.              (line   6)
6015 * Inches:                                Images.              (line  36)
6016 * Include file requirements:             Include File Requirements.
6017                                                               (line   6)
6018 * Include file sample:                   Sample Include File. (line   6)
6019 * Include files:                         Include Files.       (line   6)
6020 * Include files, and section levels:     Raise/lower sections.
6021                                                               (line  12)
6022 * Indentation undoing:                   exdent.              (line   6)
6023 * Indenting paragraphs:                  paragraphindent.     (line   6)
6024 * Index entries:                         Indexing Commands.   (line   6)
6025 * Index entries, making:                 Index Entries.       (line   6)
6026 * Index entry writing:                   Indexing Commands.   (line  26)
6027 * Index font types:                      Indexing Commands.   (line  51)
6028 * Indexing commands, predefined:         Indexing Commands.   (line  53)
6029 * Indexing table entries automatically:  ftable vtable.       (line   6)
6030 * Indicating commands, definitions, etc.: Indicating.         (line   6)
6031 * Indicating evaluation:                 result.              (line   6)
6032 * Indices:                               Indices.             (line   6)
6033 * Indices, combining them:               Combining Indices.   (line   6)
6034 * Indices, defining new:                 New Indices.         (line   6)
6035 * Indices, printing and menus:           Printing Indices & Menus.
6036                                                               (line   6)
6037 * Indices, sorting:                      Format/Print Hardcopy.
6038                                                               (line   6)
6039 * Indices, two letter names:             syncodeindex.        (line  17)
6040 * Indirect subfiles:                     Tag and Split Files. (line  11)
6041 * Info batch formatting:                 Batch Formatting.    (line   6)
6042 * Info file installation:                Install an Info File.
6043                                                               (line   6)
6044 * Info file requires @setfilename:       setfilename.         (line   6)
6045 * Info file, listing new one:            New Info File.       (line   6)
6046 * Info file, splitting manually:         Splitting.           (line   6)
6047 * Info files:                            Info Files.          (line   6)
6048 * Info formatting:                       Info Formatting.     (line   6)
6049 * Info installed in another directory:   Other Info Directories.
6050                                                               (line   6)
6051 * Info validating a large file:          Using Info-validate. (line   6)
6052 * Info, creating an on-line file:        Create an Info File. (line   6)
6053 * Info-directory-list:                   Other Info Directories.
6054                                                               (line  36)
6055 * Info; other files' nodes:              Other Info Files.    (line   6)
6056 * INFOPATH:                              Other Info Directories.
6057                                                               (line  47)
6058 * Initialization file for TeX input:     Preparing for TeX.   (line   6)
6059 * Insert nodes, menus automatically:     Updating Nodes and Menus.
6060                                                               (line   6)
6061 * Inserting @, braces:                   Braces Atsigns.      (line   6)
6062 * Inserting accents:                     Inserting Accents.   (line   6)
6063 * Inserting dots <1>:                    dots.                (line   6)
6064 * Inserting dots:                        Dots Bullets.        (line   6)
6065 * Inserting ellipsis:                    Dots Bullets.        (line   6)
6066 * Inserting frequently used commands:    Inserting.           (line   6)
6067 * Inserting space:                       Inserting Space.     (line   6)
6068 * Inserting special characters and symbols: Insertions.       (line   6)
6069 * install-info:                          Invoking install-info.
6070                                                               (line   6)
6071 * Installing an Info file:               Install an Info File.
6072                                                               (line   6)
6073 * Installing Info in another directory:  Other Info Directories.
6074                                                               (line   6)
6075 * Introduction, as part of file:         Software Copying Permissions.
6076                                                               (line  16)
6077 * Invoking macros:                       Invoking Macros.     (line   6)
6078 * Itemization:                           itemize.             (line   6)
6079 * j:                                     Inserting Accents.   (line  33)
6080 * keyboard input:                        kbd.                 (line   6)
6081 * Keys, recommended names:               key.                 (line  19)
6082 * Knuth, Donald:                         Printed Books.       (line   6)
6083 * Larger or smaller pages:               Cropmarks and Magnification.
6084                                                               (line  24)
6085 * Less cluttered menu entry:             Less Cluttered Menu Entry.
6086                                                               (line   6)
6087 * License agreement:                     Software Copying Permissions.
6088                                                               (line   6)
6089 * Line breaks:                           Line Breaks.         (line   6)
6090 * Line breaks, preventing:               w.                   (line   6)
6091 * Line length, column widths as fraction of: Multitable Column Widths.
6092                                                               (line  11)
6093 * Line spacing:                          sp.                  (line   6)
6094 * Lisp example:                          Lisp Example.        (line   6)
6095 * Lisp example for a small book:         smallexample & smalllisp.
6096                                                               (line   6)
6097 * List of  @-commands:                   Command List.        (line   6)
6098 * Listing a new info file:               New Info File.       (line   6)
6099 * Lists and tables, making:              Lists and Tables.    (line   6)
6100 * Local variables:                       Compile-Command.     (line   6)
6101 * Location of menus:                     Menu Location.       (line   6)
6102 * Looking for badly referenced nodes:    Running Info-Validate.
6103                                                               (line   6)
6104 * lpr (DVI print command):               Print with lpr.      (line   6)
6105 * Macro definitions <1>:                 Defining Macros.     (line   6)
6106 * Macro definitions:                     Sample Function Definition.
6107                                                               (line   6)
6108 * Macro invocation:                      Invoking Macros.     (line   6)
6109 * Macron accent:                         Inserting Accents.   (line  13)
6110 * Macros:                                Macros.              (line   6)
6111 * Macros, undefining:                    Defining Macros.     (line  26)
6112 * Magnified printing:                    Cropmarks and Magnification.
6113                                                               (line  24)
6114 * mailto link:                           email.               (line  10)
6115 * makeinfo inside Emacs:                 makeinfo in Emacs.   (line   6)
6116 * makeinfo options:                      makeinfo options.    (line   6)
6117 * Making a printed manual:               Format/Print Hardcopy.
6118                                                               (line   6)
6119 * Making a tag table automatically:      Tag and Split Files. (line   6)
6120 * Making a tag table manually:           Unsplit.             (line  26)
6121 * Making cross references:               Cross References.    (line   6)
6122 * Making line and page breaks:           Breaks.              (line   6)
6123 * Making lists and tables:               Lists and Tables.    (line   6)
6124 * Manual characteristics, printed:       Printed Books.       (line   6)
6125 * Marking text within a paragraph:       Marking Text.        (line   6)
6126 * Marking words and phrases:             Marking Text.        (line   6)
6127 * Master menu:                           The Top Node.        (line   6)
6128 * Master menu parts:                     Master Menu Parts.   (line   6)
6129 * Mathematical expressions <1>:          Raw Formatter Commands.
6130                                                               (line  25)
6131 * Mathematical expressions:              math.                (line   6)
6132 * Menu description, start:               Inserting.           (line  94)
6133 * Menu entries with two colons:          Less Cluttered Menu Entry.
6134                                                               (line   6)
6135 * Menu example:                          Menu Example.        (line   6)
6136 * Menu location:                         Menu Location.       (line   6)
6137 * Menu parts:                            Menu Parts.          (line   6)
6138 * Menu writing:                          Writing a Menu.      (line   6)
6139 * Menus:                                 Menus.               (line   6)
6140 * Menus generated with indices:          Printing Indices & Menus.
6141                                                               (line   6)
6142 * META key:                              key.                 (line  53)
6143 * Meta-syntactic chars for arguments:    Optional Arguments.  (line   6)
6144 * Millimeters:                           Images.              (line  42)
6145 * Minimal requirements for formatting:   Requirements Summary.
6146                                                               (line   6)
6147 * Minimal Texinfo file (requirements):   Minimum.             (line   6)
6148 * Mistakes, catching:                    Catching Mistakes.   (line   6)
6149 * Mode, using Texinfo:                   Texinfo Mode.        (line   6)
6150 * Multiple spaces:                       Multiple Spaces.     (line   6)
6151 * Multitable column widths:              Multitable Column Widths.
6152                                                               (line   6)
6153 * Multitable rows:                       Multitable Rows.     (line   6)
6154 * Must have in Texinfo file:             Minimum.             (line   6)
6155 * Mutually recursive macros:             Defining Macros.     (line  19)
6156 * Names for indices:                     syncodeindex.        (line  17)
6157 * Names of index files:                  Format with tex/texindex.
6158                                                               (line  24)
6159 * Names recommended for keys:            key.                 (line  19)
6160 * Naming a `Top' Node in references:     Top Node Naming.     (line   6)
6161 * Need space at page bottom:             need.                (line   6)
6162 * New index defining:                    New Indices.         (line   6)
6163 * New info file, listing it in dir file: New Info File.       (line   6)
6164 * New Texinfo commands, defining:        Macros.              (line   6)
6165 * Node line requirements:                Node Line Requirements.
6166                                                               (line   6)
6167 * Node line writing:                     Writing a Node.      (line   6)
6168 * Node, `Top':                           The Top Node.        (line   6)
6169 * Node, defined:                         node.                (line   6)
6170 * Nodename must be unique:               Node Line Requirements.
6171                                                               (line   8)
6172 * Nodename, cannot contain:              Node Line Requirements.
6173                                                               (line  23)
6174 * Nodes for menus are short:             Menu Location.       (line   6)
6175 * Nodes in other Info files:             Other Info Files.    (line   6)
6176 * Nodes, catching mistakes:              Catching Mistakes.   (line   6)
6177 * Nodes, checking for badly referenced:  Running Info-Validate.
6178                                                               (line   6)
6179 * Not ending a sentence:                 Not Ending a Sentence.
6180                                                               (line   6)
6181 * Obtaining TeX:                         Obtaining TeX.       (line   6)
6182 * Occurrences, listing with @occur:      Using occur.         (line   6)
6183 * OE:                                    Inserting Accents.   (line  33)
6184 * oe:                                    Inserting Accents.   (line  33)
6185 * Optional and repeated arguments:       Optional Arguments.  (line   6)
6186 * Options for makeinfo:                  makeinfo options.    (line   6)
6187 * Ordinary HTML commands, using:         Raw Formatter Commands.
6188                                                               (line   6)
6189 * Ordinary TeX commands, using:          Raw Formatter Commands.
6190                                                               (line   6)
6191 * Other Info files' nodes:               Other Info Files.    (line   6)
6192 * Outline of file structure, showing it: Showing the Structure.
6193                                                               (line   6)
6194 * Overfull hboxes:                       Overfull hboxes.     (line   6)
6195 * Overview of Texinfo:                   Overview.            (line   6)
6196 * Page breaks:                           page.                (line   6)
6197 * Page delimiter in Texinfo mode:        Showing the Structure.
6198                                                               (line  43)
6199 * Page headings:                         Headings.            (line   6)
6200 * Page numbering:                        Headings.            (line   6)
6201 * Page sizes for books:                  smallbook.           (line   6)
6202 * page-delimiter:                        Showing the Structure.
6203                                                               (line  43)
6204 * Pages, starting odd:                   setchapternewpage.   (line   6)
6205 * Paper size, European A4:               A4 Paper.            (line   6)
6206 * Paragraph indentation:                 paragraphindent.     (line   6)
6207 * Paragraph, marking text within:        Marking Text.        (line   6)
6208 * Parsing errors:                        makeinfo in Emacs.   (line  27)
6209 * Part of file formatting and printing:  Printing.            (line   6)
6210 * Parts of a cross reference:            Cross Reference Parts.
6211                                                               (line   6)
6212 * Parts of a master menu:                Master Menu Parts.   (line   6)
6213 * Parts of a menu:                       Menu Parts.          (line   6)
6214 * Periods, inserting:                    Not Ending a Sentence.
6215                                                               (line   6)
6216 * Permissions:                           Sample Permissions.  (line   6)
6217 * Permissions, printed:                  Copyright & Permissions.
6218                                                               (line   6)
6219 * Picas:                                 Images.              (line  30)
6220 * Pictures, inserting:                   Images.              (line   6)
6221 * Pinard, Franc,ois:                     Acknowledgements.    (line  11)
6222 * plain TeX:                             Raw Formatter Commands.
6223                                                               (line   6)
6224 * Point, indicating it in a buffer:      Point Glyph.         (line   6)
6225 * Pointer creation with makeinfo:        makeinfo Pointer Creation.
6226                                                               (line   6)
6227 * Pointer validation with makeinfo:      Pointer Validation.  (line   6)
6228 * Points (dimension):                    Images.              (line  27)
6229 * Predefined indexing commands:          Indexing Commands.   (line  53)
6230 * Predefined names for indices:          syncodeindex.        (line  17)
6231 * Preparing to use TeX:                  Preparing for TeX.   (line   6)
6232 * Preventing line and page breaks:       Breaks.              (line   6)
6233 * Previous node of Top node:             First Node.          (line  25)
6234 * Print and format in Texinfo mode:      Texinfo Mode Printing.
6235                                                               (line   6)
6236 * Print, format from Emacs shell:        Within Emacs.        (line   6)
6237 * Printed book and manual characteristics: Printed Books.     (line   6)
6238 * Printed output, indicating it:         Print Glyph.         (line   6)
6239 * Printed permissions:                   Copyright & Permissions.
6240                                                               (line   6)
6241 * Printing a region or buffer:           Printing.            (line   6)
6242 * Printing an index:                     Printing Indices & Menus.
6243                                                               (line   6)
6244 * Printing cropmarks:                    Cropmarks and Magnification.
6245                                                               (line   6)
6246 * Problems, catching:                    Catching Mistakes.   (line   6)
6247 * Prototype row, column widths defined by: Multitable Column Widths.
6248                                                               (line  21)
6249 * Quotations:                            quotation.           (line   6)
6250 * Raising and lowering sections:         Raise/lower sections.
6251                                                               (line   6)
6252 * Raw formatter commands:                Raw Formatter Commands.
6253                                                               (line   6)
6254 * Recommended names for keys:            key.                 (line  19)
6255 * Rectangle, ugly, black in hardcopy:    Overfull hboxes.     (line  28)
6256 * Recursion, mutual:                     Defining Macros.     (line  19)
6257 * References:                            Cross References.    (line   6)
6258 * References using @inforef:             inforef.             (line   6)
6259 * References using @pxref:               pxref.               (line   6)
6260 * References using @ref:                 ref.                 (line   6)
6261 * References using @xref:                xref.                (line   6)
6262 * Referring to other Info files:         Other Info Files.    (line   6)
6263 * Refilling paragraphs:                  Refilling Paragraphs.
6264                                                               (line   6)
6265 * Region formatting and printing:        Printing.            (line   6)
6266 * Region printing in Texinfo mode:       Texinfo Mode Printing.
6267                                                               (line   6)
6268 * Repeated and optional arguments:       Optional Arguments.  (line   6)
6269 * Required in Texinfo file:              Minimum.             (line   6)
6270 * Requirements for formatting:           Requirements Summary.
6271                                                               (line   6)
6272 * Requirements for include files:        Include File Requirements.
6273                                                               (line   6)
6274 * Requirements for updating commands:    Updating Requirements.
6275                                                               (line   6)
6276 * Result of an expression:               result.              (line   6)
6277 * ridt.eps:                              Images.              (line  53)
6278 * Ring accent:                           Inserting Accents.   (line  13)
6279 * Rows, of a multitable:                 Multitable Rows.     (line   6)
6280 * Running an Info formatter:             Info Formatting.     (line   6)
6281 * Running Info-validate:                 Using Info-validate. (line   6)
6282 * Running makeinfo in Emacs:             makeinfo in Emacs.   (line   6)
6283 * Sample @include file:                  Sample Include File. (line   6)
6284 * Sample function definition:            Sample Function Definition.
6285                                                               (line   6)
6286 * Sample Texinfo file:                   Short Sample.        (line   6)
6287 * Sample Texinfo file, no comments:      Sample Texinfo File. (line   6)
6288 * Scaled points:                         Images.              (line  51)
6289 * Section structure of a file, showing it: Showing the Structure.
6290                                                               (line   6)
6291 * Sections, raising and lowering:        Raise/lower sections.
6292                                                               (line   6)
6293 * Sentence ending punctuation:           Ending a Sentence.   (line   6)
6294 * Sentence non-ending punctuation:       Not Ending a Sentence.
6295                                                               (line   6)
6296 * Separate footnote style:               Footnote Styles.     (line  20)
6297 * Sharp S:                               Inserting Accents.   (line  33)
6298 * Shell formatting with tex and texindex: Format with tex/texindex.
6299                                                               (line   6)
6300 * Shell, format, print from:             Within Emacs.        (line   6)
6301 * Shell, running makeinfo in:            makeinfo in Emacs.   (line   6)
6302 * Short nodes for menus:                 Menu Location.       (line   6)
6303 * Showing the section structure of a file: Showing the Structure.
6304                                                               (line   6)
6305 * Showing the structure of a file:       Using texinfo-show-structure.
6306                                                               (line   6)
6307 * Site-wide Texinfo configuration file:  Preparing for TeX.   (line  24)
6308 * Size of printed book:                  smallbook.           (line   6)
6309 * slanted typewriter font, for @kbd:     kbd.                 (line  15)
6310 * Small book example:                    smallexample & smalllisp.
6311                                                               (line   6)
6312 * Small book size:                       smallbook.           (line   6)
6313 * Small caps font:                       Smallcaps.           (line   6)
6314 * Software copying permissions:          Software Copying Permissions.
6315                                                               (line   6)
6316 * Sorting indices:                       Format/Print Hardcopy.
6317                                                               (line   6)
6318 * Spaces (blank lines):                  sp.                  (line   6)
6319 * Spacing, inserting:                    Inserting Space.     (line   6)
6320 * Special characters, commands to insert: Braces Atsigns.     (line   6)
6321 * Special insertions:                    Insertions.          (line   6)
6322 * Special typesetting commands:          Dots Bullets.        (line   6)
6323 * Specifying index entries:              Indexing Commands.   (line   6)
6324 * Splitting an Info file manually:       Splitting.           (line   6)
6325 * ss:                                    Inserting Accents.   (line  33)
6326 * Stallman, Richard M.:                  Acknowledgements.    (line   6)
6327 * Start of header line:                  Start of Header.     (line   6)
6328 * Starting chapters:                     setchapternewpage.   (line   6)
6329 * Structure of a file, showing it:       Showing the Structure.
6330                                                               (line   6)
6331 * Structure, catching mistakes in:       Catching Mistakes.   (line   6)
6332 * Structuring of chapters:               Structuring.         (line   6)
6333 * Subsection-like commands:              unnumberedsubsec appendixsubsec subheading.
6334                                                               (line   6)
6335 * Subsub commands:                       subsubsection.       (line   6)
6336 * Syntactic conventions:                 Conventions.         (line   6)
6337 * Syntax, optional & repeated arguments: Optional Arguments.  (line   6)
6338 * tab:                                   Multitable Rows.     (line   6)
6339 * Table of contents:                     Contents.            (line   6)
6340 * Tables and lists, making:              Lists and Tables.    (line   6)
6341 * Tables with indexes:                   ftable vtable.       (line   6)
6342 * Tables, making multi-column:           Multi-column Tables. (line   6)
6343 * Tables, making two-column:             Two-column Tables.   (line   6)
6344 * Tabs; don't use!:                      Conventions.         (line  38)
6345 * Tag table, making automatically:       Tag and Split Files. (line   6)
6346 * Tag table, making manually:            Unsplit.             (line  26)
6347 * Template for a definition:             Def Cmd Template.    (line   6)
6348 * TeX commands, using ordinary:          Raw Formatter Commands.
6349                                                               (line   6)
6350 * TeX index sorting:                     Format/Print Hardcopy.
6351                                                               (line   6)
6352 * TeX input initialization:              Preparing for TeX.   (line   6)
6353 * TeX, how to obtain:                    Obtaining TeX.       (line   6)
6354 * texi2dvi:                              Format with tex/texindex.
6355                                                               (line  74)
6356 * texi2dvi (shell script):               Format with texi2dvi.
6357                                                               (line   6)
6358 * texindex <1>:                          Format with tex/texindex.
6359                                                               (line  16)
6360 * texindex:                              Format/Print Hardcopy.
6361                                                               (line   6)
6362 * Texinfo commands, defining new:        Macros.              (line   6)
6363 * Texinfo file beginning:                Beginning a File.    (line   6)
6364 * Texinfo file ending:                   Ending a File.       (line   6)
6365 * Texinfo file header:                   Header.              (line   6)
6366 * Texinfo file minimum:                  Minimum.             (line   6)
6367 * Texinfo file section structure, showing it: Showing the Structure.
6368                                                               (line   6)
6369 * Texinfo mode:                          Texinfo Mode.        (line   6)
6370 * Texinfo overview:                      Overview.            (line   6)
6371 * Texinfo printed book characteristics:  Printed Books.       (line   6)
6372 * texinfo.cnf <1>:                       A4 Paper.            (line  29)
6373 * texinfo.cnf:                           setfilename.         (line  36)
6374 * texinfo.cnf installation:              Preparing for TeX.   (line  24)
6375 * texinfo.tex, installing:               Preparing for TeX.   (line  11)
6376 * TEXINPUTS:                             Preparing for TeX.   (line   6)
6377 * TEXINPUTS environment variable:        Preparing for TeX.   (line   6)
6378 * Text, conditionally visible:           Conditionals.        (line   6)
6379 * Thin space between number, dimension:  dmn.                 (line   6)
6380 * Tie-after accent:                      Inserting Accents.   (line  13)
6381 * Tilde accent:                          Inserting Accents.   (line  13)
6382 * Tips:                                  Tips.                (line   8)
6383 * Title page:                            titlepage.           (line   6)
6384 * Titlepage end starts headings:         end titlepage.       (line   6)
6385 * Titlepage permissions:                 Titlepage Permissions.
6386                                                               (line   6)
6387 * Top node:                              The Top Node.        (line   6)
6388 * Top node is first:                     First Node.          (line   6)
6389 * Top node naming for references:        Top Node Naming.     (line   6)
6390 * Top node summary:                      Top Node Summary.    (line   6)
6391 * Tree structuring:                      Tree Structuring.    (line   6)
6392 * Two `First' Lines for @deffn:          deffnx.              (line   6)
6393 * Two letter names for indices:          syncodeindex.        (line  17)
6394 * Two named items for @table:            itemx.               (line   6)
6395 * Two part menu entry:                   Less Cluttered Menu Entry.
6396                                                               (line   6)
6397 * Typesetting commands for dots, etc.:   Dots Bullets.        (line   6)
6398 * Umlaut accent:                         Inserting Accents.   (line  13)
6399 * Uncluttered menu entry:                Less Cluttered Menu Entry.
6400                                                               (line   6)
6401 * Undefining macros:                     Defining Macros.     (line  26)
6402 * Underbar accent:                       Inserting Accents.   (line  13)
6403 * Underdot accent:                       Inserting Accents.   (line  13)
6404 * Uniform resource locator, indicating:  url.                 (line   6)
6405 * Uniform resource locator, referring to: uref.               (line   6)
6406 * Unique nodename requirement:           Node Line Requirements.
6407                                                               (line   8)
6408 * Unprocessed text:                      Comments.            (line  26)
6409 * Unsplit file creation:                 Unsplit.             (line   6)
6410 * Up node of Top node:                   First Node.          (line  11)
6411 * Updating nodes and menus:              Updating Nodes and Menus.
6412                                                               (line   6)
6413 * Updating requirements:                 Updating Requirements.
6414                                                               (line   6)
6415 * URL, indicating:                       url.                 (line   6)
6416 * URL, referring to:                     uref.                (line   6)
6417 * Usage tips:                            Tips.                (line   8)
6418 * user input:                            kbd.                 (line  15)
6419 * User options, marking:                 Variables Commands.  (line  57)
6420 * User-defined Texinfo commands:         Macros.              (line   6)
6421 * Validating a large file:               Using Info-validate. (line   6)
6422 * Validation of pointers:                Pointer Validation.  (line   6)
6423 * Value of an expression, indicating:    result.              (line   6)
6424 * version number, finding:               Invoking install-info.
6425                                                               (line  68)
6426 * Vertical whitespace (vskip):           Copyright & Permissions.
6427                                                               (line  16)
6428 * Vertically holding text together:      group.               (line   6)
6429 * Visibility of conditional text:        Conditionals.        (line   6)
6430 * Weisshaus, Melissa:                    Acknowledgements.    (line  11)
6431 * Whitespace, inserting <1>:             Multiple Spaces.     (line   6)
6432 * Whitespace, inserting:                 Inserting Space.     (line   6)
6433 * Width of images:                       Images.              (line  16)
6434 * Widths, defining multitable column:    Multitable Column Widths.
6435                                                               (line   6)
6436 * Wildcards:                             Format with tex/texindex.
6437                                                               (line  32)
6438 * Words and phrases, marking them:       Marking Text.        (line   6)
6439 * Writing a menu:                        Writing a Menu.      (line   6)
6440 * Writing an @node line:                 Writing a Node.      (line   6)
6441 * Writing index entries:                 Indexing Commands.   (line  26)
6442 * Zuhn, David D.:                        Acknowledgements.    (line  11)
6443
6444