[AC 21.5] Fix 2 broken texinfo references
10 years, 9 months
Jerry James
APPROVE COMMIT 21.5
Thomas Mittelstaedt reported that texinfo 4.13a complains about broken
texinfo references after the previous info change. This fixes the
broken references. Interestingly, neither texinfo 5.1 nor 5.2 said a
thing about the brokenness.
diff -r 9fae6227ede5 man/ChangeLog
--- a/man/ChangeLog Thu Mar 27 08:59:03 2014 -0600
+++ b/man/ChangeLog Fri Mar 28 12:42:24 2014 -0600
@@ -1,3 +1,10 @@
+2014-03-28 Jerry James <james(a)xemacs.org>
+
+ * lispref/loading.texi:
+ * lispref/macros.texi:
+ Fix broken next/prev pointers caught by texinfo 4.x, but not by
+ texinfo 5.x. Thanks to Thomas Mittelstaedt for reporting.
+
2014-02-11 Jerry James <james(a)xemacs.org>
* lispref/consoles-devices.texi:
diff -r 9fae6227ede5 man/lispref/loading.texi
--- a/man/lispref/loading.texi Thu Mar 27 08:59:03 2014 -0600
+++ b/man/lispref/loading.texi Fri Mar 28 12:42:24 2014 -0600
@@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
@c See the file lispref.texi for copying conditions.
@setfilename ../../info/loading.info
-@node Loading, Byte Compilation, Macros, Top
+@node Loading, Byte Compilation, Customization, Top
@chapter Loading
@cindex loading
@cindex library
diff -r 9fae6227ede5 man/lispref/macros.texi
--- a/man/lispref/macros.texi Thu Mar 27 08:59:03 2014 -0600
+++ b/man/lispref/macros.texi Fri Mar 28 12:42:24 2014 -0600
@@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
@c See the file lispref.texi for copying conditions.
@setfilename ../../info/macros.info
-@node Macros, Loading, Functions and Commands, Top
+@node Macros, Customization, Functions and Commands, Top
@chapter Macros
@cindex macros
--
Jerry James
http://www.jamezone.org/
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-patches
[AC 21.5] More texinfo 5.x changes
10 years, 9 months
Jerry James
APPROVE COMMIT 21.5
On Tue, Mar 4, 2014 at 8:56 AM, Jerry James <james(a)xemacs.org> wrote:
> PATCH 21.5
>
> Texinfo 5.2 whines at me every time I build info, because it expects every
> @node to have next, prev, and up pointers. Even worse, looking at the
> output
> shows that it tried to guess what the next, prev, and up pointers should
> be,
> and it doesn't always guess correctly. This patch is almost entirely just
> the
> addition of those pointers, plus fixing some confusion about whether the
> topmost node is spelled "top" or "Top". The exceptions are:
> - .hgignore: added man/Makefile (should have been part of my 25 Jun 2013
> commit)
> - man/internals/internals.texi: fixed some damage to Ville's surname. The
> last letter of his surname plus the following space should be byte
> sequence
> 0xe4 0x20, but somehow we have the 3-byte sequence 0xe4 0xac 0xa0 there.
> - man/internals/internals.texi: texinfo 5.x doesn't like @enumerate
> followed
> by @itemize with no intervening @item. I just removed one layer to make
> texinfo happy.
> - man/lispref/customize.texi: moved a chunk of text to conform to the order
> given by the menus.
> - man/lispref/lispref.texi: used a @vskip instead of an empty @author to
> get
> some vertical space.
> - man/texinfo/{fdl,texinfo,version}.texi: synced up with the texinfo 5.2
> release.
> - man/xemacs/custom.texi: did violence to some of Stephen's text. In
> particular, I heeded a comment and changed some @file{foo} to
> @uref{upstream for foo,foo}. Also imposed menus and sectioning commands
> on
> the Xft/fontconfig content. Stephen, is this part okay?
>
I have committed this patch. Let me know of any trouble it causes. Also,
please accept my apologies for the size of the original email. I should
have attached a compressed version of the patch instead of sending it
inline.
--
Jerry James
http://www.jamezone.org/
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-patches
Make `define-function' accept docstring
10 years, 9 months
Michael Sperber
This makes defsubst accept that docstring as well, as in GNU Emacs. The
use of `documentation-property' is also as in GNU Emacs.
2014-01-27 Michael Sperber <mike(a)xemacs.org>
* symbols.c (Fdefine_function): Allow optional `docstring'
argument, as in GNU Emacs.
* lisp.h (Qfunction_documentation): Add extern declaration.
* doc.c (Fdocumentation_property): Move before its use.
(Fdocumentation): Retrieve documentation from `define-function'
docstring for symbols.
--
Regards,
Mike
diff --git a/src/doc.c b/src/doc.c
--- a/src/doc.c
+++ b/src/doc.c
@@ -37,6 +37,8 @@
Lisp_Object QSsubstitute, Qdefvar;
+Lisp_Object Qfunction_documentation;
+
/* Work out what source file a function or variable came from, taking the
information from the documentation file. */
@@ -578,6 +580,45 @@
return Qnil;
}
+DEFUN ("documentation-property", Fdocumentation_property, 2, 3, 0, /*
+Return the documentation string that is SYMBOL's PROP property.
+This is like `get', but it can refer to strings stored in the
+`doc-directory/DOC' file; and if the value is a string, it is passed
+through `substitute-command-keys'. A non-nil third argument avoids this
+translation.
+*/
+ (symbol, prop, raw))
+{
+ /* This function can GC */
+ Lisp_Object doc = Qnil;
+#ifdef I18N3
+ REGISTER Lisp_Object domain;
+#endif
+ struct gcpro gcpro1;
+
+ GCPRO1 (doc);
+
+ doc = Fget (symbol, prop, Qnil);
+ if (FIXNUMP (doc))
+ doc = get_doc_string (XFIXNUM (doc) > 0 ? doc : make_fixnum (- XFIXNUM (doc)));
+ else if (CONSP (doc))
+ doc = get_doc_string (doc);
+#ifdef I18N3
+ if (!NILP (doc))
+ {
+ domain = Fget (symbol, Qvariable_domain, Qnil);
+ if (NILP (domain))
+ doc = Fgettext (doc);
+ else
+ doc = Fdgettext (domain, doc);
+ }
+#endif
+ if (NILP (raw) && STRINGP (doc))
+ doc = Fsubstitute_command_keys (doc);
+ UNGCPRO;
+ return doc;
+}
+
DEFUN ("documentation", Fdocumentation, 1, 2, 0, /*
Return the documentation string of FUNCTION.
Unless a non-nil second argument RAW is given, the
@@ -589,6 +630,14 @@
Lisp_Object fun;
Lisp_Object doc;
+ if (SYMBOLP (function))
+ {
+ Lisp_Object tem = Fget (function, Qfunction_documentation, Qnil);
+ if (!NILP (tem))
+ return Fdocumentation_property (function, Qfunction_documentation,
+ raw);
+ }
+
fun = Findirect_function (function);
if (SUBRP (fun))
@@ -678,45 +727,6 @@
}
return doc;
}
-
-DEFUN ("documentation-property", Fdocumentation_property, 2, 3, 0, /*
-Return the documentation string that is SYMBOL's PROP property.
-This is like `get', but it can refer to strings stored in the
-`doc-directory/DOC' file; and if the value is a string, it is passed
-through `substitute-command-keys'. A non-nil third argument avoids this
-translation.
-*/
- (symbol, prop, raw))
-{
- /* This function can GC */
- Lisp_Object doc = Qnil;
-#ifdef I18N3
- REGISTER Lisp_Object domain;
-#endif
- struct gcpro gcpro1;
-
- GCPRO1 (doc);
-
- doc = Fget (symbol, prop, Qnil);
- if (FIXNUMP (doc))
- doc = get_doc_string (XFIXNUM (doc) > 0 ? doc : make_fixnum (- XFIXNUM (doc)));
- else if (CONSP (doc))
- doc = get_doc_string (doc);
-#ifdef I18N3
- if (!NILP (doc))
- {
- domain = Fget (symbol, Qvariable_domain, Qnil);
- if (NILP (domain))
- doc = Fgettext (doc);
- else
- doc = Fdgettext (domain, doc);
- }
-#endif
- if (NILP (raw) && STRINGP (doc))
- doc = Fsubstitute_command_keys (doc);
- UNGCPRO;
- return doc;
-}
DEFUN ("Snarf-documentation", Fsnarf_documentation, 1, 1, 0, /*
@@ -1299,6 +1309,7 @@
DEFSUBR (Fsubstitute_command_keys);
DEFSYMBOL (Qdefvar);
+ DEFSYMBOL (Qfunction_documentation);
}
void
diff --git a/src/lisp.h b/src/lisp.h
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -4619,6 +4619,8 @@
/* Defined in doc.c */
EXFUN (Fsubstitute_command_keys, 1);
+extern Lisp_Object Qfunction_documentation;
+
Lisp_Object unparesseuxify_doc_string (int fd, EMACS_INT position,
Ibyte *name_nonreloc,
Lisp_Object name_reloc,
diff --git a/src/symbols.c b/src/symbols.c
--- a/src/symbols.c
+++ b/src/symbols.c
@@ -749,14 +749,14 @@
}
/* FSFmacs */
-DEFUN ("define-function", Fdefine_function, 2, 2, 0, /*
+DEFUN ("define-function", Fdefine_function, 2, 3, 0, /*
Set SYMBOL's function definition to NEWDEF, and return NEWDEF.
Associates the function with the current load file, if any.
If NEWDEF is a compiled-function object, stores the function name in
the `annotated' slot of the compiled-function (retrievable using
`compiled-function-annotation').
*/
- (symbol, newdef))
+ (symbol, newdef, docstring))
{
/* This function can GC */
Ffset (symbol, newdef);
@@ -765,6 +765,10 @@
if (COMPILED_FUNCTIONP (newdef))
XCOMPILED_FUNCTION (newdef)->annotated = symbol;
#endif /* COMPILED_FUNCTION_ANNOTATION_HACK */
+
+ if (!NILP (docstring))
+ Fput (symbol, Qfunction_documentation, docstring);
+
return newdef;
}
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-patches
[PATCH 21.5] More texinfo 5.x changes
10 years, 9 months
Jerry James
PATCH 21.5
Texinfo 5.2 whines at me every time I build info, because it expects every
@node to have next, prev, and up pointers. Even worse, looking at the output
shows that it tried to guess what the next, prev, and up pointers should be,
and it doesn't always guess correctly. This patch is almost entirely just the
addition of those pointers, plus fixing some confusion about whether the
topmost node is spelled "top" or "Top". The exceptions are:
- .hgignore: added man/Makefile (should have been part of my 25 Jun 2013
commit)
- man/internals/internals.texi: fixed some damage to Ville's surname. The
last letter of his surname plus the following space should be byte sequence
0xe4 0x20, but somehow we have the 3-byte sequence 0xe4 0xac 0xa0 there.
- man/internals/internals.texi: texinfo 5.x doesn't like @enumerate followed
by @itemize with no intervening @item. I just removed one layer to make
texinfo happy.
- man/lispref/customize.texi: moved a chunk of text to conform to the order
given by the menus.
- man/lispref/lispref.texi: used a @vskip instead of an empty @author to get
some vertical space.
- man/texinfo/{fdl,texinfo,version}.texi: synced up with the texinfo 5.2
release.
- man/xemacs/custom.texi: did violence to some of Stephen's text. In
particular, I heeded a comment and changed some @file{foo} to
@uref{upstream for foo,foo}. Also imposed menus and sectioning commands on
the Xft/fontconfig content. Stephen, is this part okay?
If you're wondering why I have not yet committed the texinfo 5.x changes to
the packages, I ran into some trouble and have been slow to resolve it. If I
can't get things worked out soon, I will post to xemacs-beta asking for help.
diff -r dcf9067f26bb .hgignore
--- a/.hgignore Mon Jan 27 17:52:33 2014 +0100
+++ b/.hgignore Fri Feb 28 09:06:56 2014 -0700
@@ -25,6 +25,7 @@
^lwlib/(GNUmakefile|Makefile(\.in)?)$
^lwlib/liblw\.a$
^lwlib/config\.h$
+^man/Makefile$
^modules/auto-autoloads\.el$
^modules/ldap/(GNUmakefile|Makefile(\.in)?)$
^modules/ldap/eldap\.ell$
diff -r dcf9067f26bb ChangeLog
--- a/ChangeLog Mon Jan 27 17:52:33 2014 +0100
+++ b/ChangeLog Fri Feb 28 09:06:56 2014 -0700
@@ -1,3 +1,7 @@
+2014-02-11 Jerry James <james(a)xemacs.org>
+
+ * .hgignore: Add man/Makefile.
+
2013-10-28 Marcus Crestani <crestani(a)xemacs.org>
* configure.ac: Disable ASLR on Mavericks.
diff -r dcf9067f26bb man/ChangeLog
--- a/man/ChangeLog Mon Jan 27 17:52:33 2014 +0100
+++ b/man/ChangeLog Fri Feb 28 09:06:56 2014 -0700
@@ -1,3 +1,67 @@
+2014-02-11 Jerry James <james(a)xemacs.org>
+
+ * lispref/consoles-devices.texi:
+ * lispref/control.texi:
+ * lispref/customize.texi:
+ * lispref/databases.texi:
+ * lispref/debugging.texi:
+ * lispref/dialog.texi:
+ * lispref/display.texi:
+ * lispref/eval.texi:
+ * lispref/extents.texi:
+ * lispref/faces.texi:
+ * lispref/files.texi:
+ * lispref/frames.texi:
+ * lispref/functions.texi:
+ * lispref/glyphs.texi:
+ * lispref/gutter.texi:
+ * lispref/hash-tables.texi:
+ * lispref/help.texi:
+ * lispref/internationalization.texi:
+ * lispref/intro.texi:
+ * lispref/keymaps.texi:
+ * lispref/ldap.texi:
+ * lispref/lispref.texi:
+ * lispref/lists.texi:
+ * lispref/loading.texi:
+ * lispref/macros.texi:
+ * lispref/markers.texi:
+ * lispref/menus.texi:
+ * lispref/minibuf.texi:
+ * lispref/modes.texi:
+ * lispref/mule.texi:
+ * lispref/numbers.texi:
+ * lispref/objects.texi:
+ * lispref/os.texi:
+ * lispref/positions.texi:
+ * lispref/postgresql.texi:
+ * lispref/processes.texi:
+ * lispref/range-tables.texi:
+ * lispref/scrollbars.texi:
+ * lispref/searching.texi:
+ * lispref/sequences.texi:
+ * lispref/specifiers.texi:
+ * lispref/streams.texi:
+ * lispref/strings.texi:
+ * lispref/symbols.texi:
+ * lispref/syntax.texi:
+ * lispref/text.texi:
+ * lispref/tips.texi:
+ * lispref/toolbar.texi:
+ * lispref/tooltalk.texi:
+ * lispref/variables.texi:
+ * lispref/windows.texi:
+ * lispref/x-windows.texi:
+ * xemacs/custom.texi:
+ * xemacs/menus.texi:
+ * xemacs/programs.texi:
+ Add next, prev, and up pointers to each node for texinfo 5.2.
+
+ * texinfo/fdl.texi:
+ * texinfo/texinfo.texi:
+ * texinfo/version.texi:
+ Sync with texinfo 5.2.
+
2013-09-15 Mats Lidell <matsl(a)xemacs.org>
* xemacs/files.texi (Saving): New variable
diff -r dcf9067f26bb man/internals/internals.texi
--- a/man/internals/internals.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/internals/internals.texi Fri Feb 28 09:06:56 2014 -0700
@@ -1084,7 +1084,7 @@
and has attempted to be the "face" of XEmacs on the newsgroups and
mailing lists.
@item
-Steve Youngs, Ville Skyttä¬ and now Norbert Koch have taken turns
+Steve Youngs, Ville Skyttä and now Norbert Koch have taken turns
maintaining the packages.
@item
Vin Shelton maintains the stable releases.
@@ -17662,7 +17662,6 @@
systems:
@enumerate
- @itemize
@item
they would be character->character and operate next to the
internal data; this means that coding systems need to be able
@@ -17699,7 +17698,6 @@
important: we need a way of specifying how detecting works
when we have more than one coding system. we might need more
than a single priority list. need to think about this.
- @end itemize
@end enumerate
@item
@@ -17718,7 +17716,6 @@
text when it's written out. We need two levels
@enumerate
- @itemize
@item
first, a "safe-charset" level that checks before any actual
encoding to see if all characters in the document can safely
@@ -17750,7 +17747,6 @@
@item
same thing (error checking, list of alternatives, etc.) needs
to happen when reading! all of this will be a lot of work!
- @end itemize
@end enumerate
@end itemize
@end itemize
diff -r dcf9067f26bb man/lispref/abbrevs.texi
--- a/man/lispref/abbrevs.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/abbrevs.texi Fri Feb 28 09:06:56 2014 -0700
@@ -41,7 +41,7 @@
* Standard Abbrev Tables:: Abbrev tables used by various major modes.
@end menu
-@node Abbrev Mode
+@node Abbrev Mode, Abbrev Tables, Abbrevs, Abbrevs
@section Setting Up Abbrev Mode
Abbrev mode is a minor mode controlled by the value of the variable
@@ -61,7 +61,7 @@
This is the same as @code{(default-value 'abbrev-mode)}.
@end defvar
-@node Abbrev Tables
+@node Abbrev Tables, Defining Abbrevs, Abbrev Mode, Abbrevs
@section Abbrev Tables
This section describes how to create and manipulate abbrev tables.
@@ -100,7 +100,7 @@
is currently defined.
@end defun
-@node Defining Abbrevs
+@node Defining Abbrevs, Abbrev Files, Abbrev Tables, Abbrevs
@section Defining Abbrevs
These functions define an abbrev in a specified abbrev table.
@@ -147,7 +147,7 @@
callers.
@end defopt
-@node Abbrev Files
+@node Abbrev Files, Abbrev Expansion, Defining Abbrevs, Abbrevs
@section Saving Abbrevs in Files
A file of saved abbrev definitions is actually a file of Lisp code.
@@ -192,7 +192,7 @@
define the same abbrevs. This function returns @code{nil}.
@end deffn
-@node Abbrev Expansion
+@node Abbrev Expansion, Standard Abbrev Tables, Abbrev Files, Abbrevs
@section Looking Up and Expanding Abbreviations
Abbrevs are usually expanded by commands for interactive use,
@@ -304,7 +304,7 @@
(error "Not expanding this abbrev"))))
@end smallexample
-@node Standard Abbrev Tables
+@node Standard Abbrev Tables, , Abbrev Expansion, Abbrevs
@section Standard Abbrev Tables
Here we list the variables that hold the abbrev tables for the
diff -r dcf9067f26bb man/lispref/annotations.texi
--- a/man/lispref/annotations.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/annotations.texi Fri Feb 28 09:06:56 2014 -0700
@@ -4,7 +4,7 @@
@c Copyright (C) 1995 Ben Wing.
@c See the file lispref.texi for copying conditions.
@setfilename ../../info/annotations.info
-@node Annotations, Display, Glyphs, top
+@node Annotations, Display, Glyphs, Top
@chapter Annotations
@cindex annotation
@@ -28,7 +28,7 @@
annotation's lifetime.
@end menu
-@node Annotation Basics
+@node Annotation Basics, Annotation Primitives, Annotations, Annotations
@section Annotation Basics
@cindex margin
@@ -119,7 +119,7 @@
space to display in.
-@node Annotation Primitives
+@node Annotation Primitives, Annotation Properties, Annotation Basics, Annotations
@section Annotation Primitives
@defun make-annotation glyph &optional position layout buffer with-event d-glyph rightp
@@ -150,7 +150,7 @@
@code{nil} otherwise.
@end defun
-@node Annotation Properties
+@node Annotation Properties, Locating Annotations, Annotation Primitives, Annotations
@section Annotation Properties
@defun annotation-glyph annotation
@@ -246,7 +246,7 @@
This function restores @var{annotation}'s glyph, making it visible.
@end defun
-@node Locating Annotations
+@node Locating Annotations, Margin Primitives, Annotation Properties, Annotations
@section Locating Annotations
@defun annotations-in-region start end buffer
@@ -270,7 +270,7 @@
existence.
@end defun
-@node Margin Primitives
+@node Margin Primitives, Annotation Hooks, Locating Annotations, Annotations
@section Margin Primitives
@cindex margin width
@@ -320,7 +320,7 @@
@code{Emacs.left-margin.foreground}; likewise for the right margin.
-@node Annotation Hooks
+@node Annotation Hooks, , Margin Primitives, Annotations
@section Annotation Hooks
@cindex annotation hooks
diff -r dcf9067f26bb man/lispref/backups.texi
--- a/man/lispref/backups.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/backups.texi Fri Feb 28 09:06:56 2014 -0700
@@ -18,7 +18,7 @@
* Reverting:: @code{revert-buffer}, and how to customize what it does.
@end menu
-@node Backup Files
+@node Backup Files, Auto-Saving, Backups and Auto-Saving, Backups and Auto-Saving
@section Backup Files
@cindex backup file
@@ -47,7 +47,7 @@
* Backup Names:: How backup file names are computed; customization.
@end menu
-@node Making Backups
+@node Making Backups, Rename or Copy, Backup Files, Backup Files
@subsection Making Backup Files
@defun backup-buffer
@@ -117,7 +117,7 @@
@code{make-backup-files} instead.
@end defvar
-@node Rename or Copy
+@node Rename or Copy, Numbered Backups, Making Backups, Backup Files
@subsection Backup by Renaming or by Copying?
@cindex backup files, how to make them
@@ -179,7 +179,7 @@
non-@code{nil}.
@end defvar
-@node Numbered Backups
+@node Numbered Backups, Backup Names, Rename or Copy, Backup Files
@subsection Making and Deleting Numbered Backup Files
If a file's name is @file{foo}, the names of its numbered backup
@@ -239,7 +239,7 @@
file. The default value is 2.
@end defopt
-@node Backup Names
+@node Backup Names, , Numbered Backups, Backup Files
@subsection Naming Backup Files
The functions in this section are documented mainly because you can
@@ -349,7 +349,7 @@
automatically compare a file with its most recent backup.
@end defun
-@node Auto-Saving
+@node Auto-Saving, Reverting, Backup Files, Backups and Auto-Saving
@section Auto-Saving
@cindex auto-saving
@@ -573,7 +573,7 @@
name.
@end defvar
-@node Reverting
+@node Reverting, , Auto-Saving, Backups and Auto-Saving
@section Reverting
If you have made extensive changes to a file and then change your mind
diff -r dcf9067f26bb man/lispref/buffers.texi
--- a/man/lispref/buffers.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/buffers.texi Fri Feb 28 09:06:56 2014 -0700
@@ -31,7 +31,7 @@
* Indirect Buffers:: An indirect buffer shares text with some other buffer.
@end menu
-@node Buffer Basics
+@node Buffer Basics, Current Buffer, Buffers, Buffers
@section Buffer Basics
@ifinfo
@@ -75,7 +75,7 @@
@code{nil} otherwise.
@end defun
-@node Current Buffer
+@node Current Buffer, Buffer Names, Buffer Basics, Buffers
@section The Current Buffer
@cindex selecting a buffer
@cindex changing to another buffer
@@ -199,7 +199,7 @@
identified by @var{buffer-or-name}.
@end defun
-@node Buffer Names
+@node Buffer Names, Buffer File Name, Current Buffer, Buffers
@section Buffer Names
@cindex buffer names
@@ -302,7 +302,7 @@
Buffers}.
@end defun
-@node Buffer File Name
+@node Buffer File Name, Buffer Modification, Buffer Names, Buffers
@section Buffer File Name
@cindex visited file
@cindex buffer file name
@@ -413,7 +413,7 @@
visited file name. Dired buffers use this variable.
@end defvar
-@node Buffer Modification
+@node Buffer Modification, Modification Time, Buffer File Name, Buffers
@section Buffer Modification
@cindex buffer modification
@cindex modification flag (of buffer)
@@ -473,7 +473,7 @@
@var{buffer} is @code{nil} (or omitted), the current buffer is used.
@end defun
-@node Modification Time
+@node Modification Time, Read Only Buffers, Buffer Modification, Buffers
@section Comparison of Modification Time
@cindex comparison of modification time
@cindex modification time, comparison of
@@ -553,7 +553,7 @@
See also the file locking mechanism in @ref{File Locks}.
@end defun
-@node Read Only Buffers
+@node Read Only Buffers, The Buffer List, Modification Time, Buffers
@section Read-Only Buffers
@cindex read-only buffer
@cindex buffer, read-only
@@ -631,7 +631,7 @@
checked. See @code{extent-in-region-p} for a fuller discussion.
@end defun
-@node The Buffer List
+@node The Buffer List, Creating Buffers, Read Only Buffers, Buffers
@section The Buffer List
@cindex buffer list
@@ -740,7 +740,7 @@
@code{replace-buffer-in-windows}. @xref{Buffers and Windows}.
@end deffn
-@node Creating Buffers
+@node Creating Buffers, Killing Buffers, The Buffer List, Buffers
@section Creating Buffers
@cindex creating buffers
@cindex buffers, creating
@@ -808,7 +808,7 @@
Names}.
@end defun
-@node Killing Buffers
+@node Killing Buffers, Indirect Buffers, Creating Buffers, Buffers
@section Killing Buffers
@cindex killing buffers
@cindex buffers, killing
@@ -898,7 +898,7 @@
when set for any reason. @xref{Buffer-Local Variables}.
@end defvar
-@node Indirect Buffers
+@node Indirect Buffers, , Killing Buffers, Buffers
@section Indirect Buffers
@cindex indirect buffers
@cindex base buffer
diff -r dcf9067f26bb man/lispref/building.texi
--- a/man/lispref/building.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/building.texi Fri Feb 28 09:06:56 2014 -0700
@@ -20,7 +20,7 @@
* Garbage Collection:: Reclaiming space for Lisp objects no longer used.
@end menu
-@node Building XEmacs
+@node Building XEmacs, Garbage Collection, Building XEmacs and Object Allocation, Building XEmacs and Object Allocation
@appendixsec Building XEmacs
@cindex building XEmacs
@pindex temacs
@@ -171,7 +171,7 @@
20.1, the value is 1.
@end defvar
-@node Garbage Collection
+@node Garbage Collection, , Building XEmacs, Building XEmacs and Object Allocation
@appendixsec Garbage Collection
@cindex garbage collector
diff -r dcf9067f26bb man/lispref/commands.texi
--- a/man/lispref/commands.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/commands.texi Fri Feb 28 09:06:56 2014 -0700
@@ -30,7 +30,7 @@
* Keyboard Macros:: How keyboard macros are implemented.
@end menu
-@node Command Overview
+@node Command Overview, Defining Commands, Command Loop, Command Loop
@section Command Loop Overview
The command loop in XEmacs is a standard event loop, reading events
@@ -94,7 +94,7 @@
these hooks, it terminates execution of the hook, but that is all it
does.
-@node Defining Commands
+@node Defining Commands, Interactive Call, Command Overview, Command Loop
@section Defining Commands
@cindex defining commands
@cindex commands, defining
@@ -114,7 +114,7 @@
* Interactive Examples:: Examples of how to read interactive arguments.
@end menu
-@node Using Interactive
+@node Using Interactive, Interactive Codes, Defining Commands, Defining Commands
@subsection Using @code{interactive}
This section describes how to write the @code{interactive} form that
@@ -246,7 +246,7 @@
@var{function} is not interactive, @code{nil} will be returned.
@end defun
-@node Interactive Codes
+@node Interactive Codes, Interactive Examples, Using Interactive, Defining Commands
@subsection Code Characters for @code{interactive}
@cindex interactive code description
@cindex description for interactive codes
@@ -426,7 +426,7 @@
value becomes the argument for the command. Prompt.
@end table
-@node Interactive Examples
+@node Interactive Examples, , Interactive Codes, Defining Commands
@subsection Examples of Using @code{interactive}
@cindex examples of using @code{interactive}
@cindex @code{interactive}, examples of using
@@ -476,7 +476,7 @@
@end group
@end example
-@node Interactive Call
+@node Interactive Call, Command Loop Info, Defining Commands, Command Loop
@section Interactive Call
@cindex interactive call
@@ -628,7 +628,7 @@
@end example
@end defun
-@node Command Loop Info
+@node Command Loop Info, Events, Interactive Call, Command Loop
@section Information from the Command Loop
The editor command loop sets several Lisp variables to keep status
@@ -771,7 +771,7 @@
If the value is zero, then command input is not echoed.
@end defvar
-@node Events
+@node Events, Reading Input, Command Loop Info, Command Loop
@section Events
@cindex events
@cindex input events
@@ -809,7 +809,7 @@
characters.
@end menu
-@node Event Types
+@node Event Types, Event Contents, Events, Events
@subsection Event Types
Events represent keyboard or mouse activity or status changes of various
@@ -856,7 +856,7 @@
@code{dispatch-event}. @xref{Dispatching an Event}.
@end table
-@node Event Contents
+@node Event Contents, Event Predicates, Event Types, Events
@subsection Contents of the Different Types of Events
Every event, no matter what type it is, contains a timestamp (which is
@@ -999,7 +999,7 @@
@end table
@end defun
-@node Event Predicates
+@node Event Predicates, Accessing Mouse Event Positions, Event Contents, Events
@subsection Event Predicates
The following predicates return whether an object is an event of a
@@ -1051,7 +1051,7 @@
This is true if @var{object} is any event that has not been deallocated.
@end defun
-@node Accessing Mouse Event Positions
+@node Accessing Mouse Event Positions, Accessing Other Event Info, Event Predicates, Events
@subsection Accessing the Position of a Mouse Event
Unlike other events, mouse events (i.e. motion, button-press,
@@ -1069,7 +1069,7 @@
* Other Event Position Info::
@end menu
-@node Frame-Level Event Position Info
+@node Frame-Level Event Position Info, Window-Level Event Position Info, Accessing Mouse Event Positions, Accessing Mouse Event Positions
@subsubsection Frame-Level Event Position Info
The following functions return frame-level information about where
@@ -1093,7 +1093,7 @@
This will signal an error if the event is not a mouse event.
@end defun
-@node Window-Level Event Position Info
+@node Window-Level Event Position Info, Event Text Position Info, Frame-Level Event Position Info, Accessing Mouse Event Positions
@subsubsection Window-Level Event Position Info
The following functions return window-level information about where
@@ -1129,7 +1129,7 @@
button-release, or misc-user event.
@end defun
-@node Event Text Position Info
+@node Event Text Position Info, Event Glyph Position Info, Window-Level Event Position Info, Accessing Mouse Event Positions
@subsubsection Event Text Position Info
The following functions return information about the text (including the
@@ -1181,7 +1181,7 @@
it is below a window, the value of @code{(window-end)} is returned.
@end defun
-@node Event Glyph Position Info
+@node Event Glyph Position Info, Event Toolbar Position Info, Event Text Position Info, Accessing Mouse Event Positions
@subsubsection Event Glyph Position Info
The following functions return information about the glyph (if any) that
@@ -1212,7 +1212,7 @@
@code{nil}.
@end defun
-@node Event Toolbar Position Info
+@node Event Toolbar Position Info, Other Event Position Info, Event Glyph Position Info, Accessing Mouse Event Positions
@subsubsection Event Toolbar Position Info
@defun event-over-toolbar-p event
@@ -1227,7 +1227,7 @@
Otherwise, @code{nil} is returned.
@end defun
-@node Other Event Position Info
+@node Other Event Position Info, , Event Toolbar Position Info, Accessing Mouse Event Positions
@subsubsection Other Event Position Info
@defun event-over-border-p event
@@ -1236,7 +1236,7 @@
Otherwise, @code{nil} is returned.
@end defun
-@node Accessing Other Event Info
+@node Accessing Other Event Info, Working With Events, Accessing Mouse Event Positions, Events
@subsection Accessing the Other Contents of Events
The following functions allow access to the contents of events other than
@@ -1284,7 +1284,7 @@
This function returns the process of the given process event.
@end defun
-@node Working With Events
+@node Working With Events, Converting Events, Accessing Other Event Info, Events
@subsection Working With Events
XEmacs provides primitives for creating, copying, and destroying event
@@ -1446,7 +1446,7 @@
it is safe to do so.
@end defun
-@node Converting Events
+@node Converting Events, , Working With Events, Events
@subsection Converting Events
XEmacs provides some auxiliary functions for converting between events
@@ -1526,7 +1526,7 @@
Optional arg @var{no-mice} means that button events are not allowed.
@end defun
-@node Reading Input
+@node Reading Input, Waiting, Events, Command Loop
@section Reading Input
The editor command loop reads keyboard input using the function
@@ -1548,7 +1548,7 @@
* Peeking and Discarding:: How to reread or throw away input events.
@end menu
-@node Key Sequence Input
+@node Key Sequence Input, Reading One Event, Reading Input, Reading Input
@subsection Key Sequence Input
@cindex key sequence input
@@ -1622,7 +1622,7 @@
converts the character to lower case. Note that @code{lookup-key} does
not perform case conversion in this way.
-@node Reading One Event
+@node Reading One Event, Dispatching an Event, Key Sequence Input, Reading Input
@subsection Reading One Event
The lowest level functions for command input are those which read a
@@ -1693,7 +1693,7 @@
eval event will be the next event read after all pending events.
@end defun
-@node Dispatching an Event
+@node Dispatching an Event, Quoted Character Input, Reading One Event, Reading Input
@subsection Dispatching an Event
@cindex dispatching an event
@@ -1704,7 +1704,7 @@
(such as Expose events).
@end defun
-@node Quoted Character Input
+@node Quoted Character Input, Peeking and Discarding, Dispatching an Event, Reading Input
@subsection Quoted Character Input
@cindex quoted character input
@@ -1746,7 +1746,7 @@
@end defun
@need 2000
-@node Peeking and Discarding
+@node Peeking and Discarding, , Quoted Character Input, Reading Input
@subsection Miscellaneous Event Input Features
This section describes how to ``peek ahead'' at events without using
@@ -1860,7 +1860,7 @@
@end example
@end defun
-@node Waiting
+@node Waiting, Quitting, Reading Input, Command Loop
@section Waiting for Elapsed Time or Input
@cindex pausing
@cindex waiting
@@ -1929,7 +1929,7 @@
@xref{Time of Day}, for functions to get the current time.
-@node Quitting
+@node Quitting, Prefix Command Arguments, Waiting, Command Loop
@section Quitting
@cindex @kbd{C-g}
@cindex quitting
@@ -2029,7 +2029,7 @@
You can specify a character other than @kbd{C-g} to use for quitting.
See the function @code{set-input-mode} in @ref{Terminal Input}.
-@node Prefix Command Arguments
+@node Prefix Command Arguments, Recursive Editing, Quitting, Command Loop
@section Prefix Command Arguments
@cindex prefix argument
@cindex raw prefix argument
@@ -2171,7 +2171,7 @@
call this command yourself unless you know what you are doing.
@end deffn
-@node Recursive Editing
+@node Recursive Editing, Disabling Commands, Prefix Command Arguments, Command Loop
@section Recursive Editing
@cindex recursive command loop
@cindex recursive editing level
@@ -2285,7 +2285,7 @@
recursive edit is active, it returns 0.
@end defun
-@node Disabling Commands
+@node Disabling Commands, Command History, Recursive Editing, Command Loop
@section Disabling Commands
@cindex disabled command
@@ -2343,7 +2343,7 @@
the user whether to proceed.
@end defvar
-@node Command History
+@node Command History, Keyboard Macros, Disabling Commands, Command Loop
@section Command History
@cindex command history
@cindex complex command
@@ -2387,7 +2387,7 @@
minibuffer, the history commands used are the same ones available in any
minibuffer.
-@node Keyboard Macros
+@node Keyboard Macros, , Command History, Command Loop
@section Keyboard Macros
@cindex keyboard macros
diff -r dcf9067f26bb man/lispref/compile.texi
--- a/man/lispref/compile.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/compile.texi Fri Feb 28 09:06:56 2014 -0700
@@ -50,7 +50,7 @@
* Different Behavior:: When compiled code gives different results.
@end menu
-@node Speed of Byte-Code
+@node Speed of Byte-Code, Compilation Functions, Byte Compilation, Byte Compilation
@section Performance of Byte-Compiled Code
A byte-compiled function is not as efficient as a primitive function
@@ -95,7 +95,7 @@
whereas the byte-compiled code required 6 seconds. These results are
representative, but actual results will vary greatly.
-@node Compilation Functions
+@node Compilation Functions, Compilation Options, Speed of Byte-Code, Byte Compilation
@comment node-name, next, previous, up
@section The Compilation Functions
@cindex compilation functions
@@ -282,7 +282,7 @@
code without an associated argument list.
@end defun
-@node Compilation Options
+@node Compilation Options, Docs and Compilation, Compilation Functions, Byte Compilation
@section Options for the Byte Compiler
@cindex compilation options
@@ -563,7 +563,7 @@
@end example
@end defun
-@node Docs and Compilation
+@node Docs and Compilation, Dynamic Loading, Compilation Options, Byte Compilation
@section Documentation Strings and Compilation
@cindex dynamic loading of documentation
@@ -626,7 +626,7 @@
@samp{#$} construct, which stands for ``the name of this file, as a
string.'' It is best not to use these constructs in Lisp source files.
-@node Dynamic Loading
+@node Dynamic Loading, Eval During Compile, Docs and Compilation, Byte Compilation
@section Dynamic Loading of Individual Functions
@cindex dynamic loading of functions
@@ -685,7 +685,7 @@
@var{function} may be a compiled-function object or a function name.
@end defun
-@node Eval During Compile
+@node Eval During Compile, Compiled-Function Objects, Dynamic Loading, Byte Compilation
@section Evaluation During Compilation
These features permit you to write code to be evaluated during
@@ -714,7 +714,7 @@
@code{eval-when-compile} does.
@end defmac
-@node Compiled-Function Objects
+@node Compiled-Function Objects, Disassembly, Eval During Compile, Byte Compilation
@section Compiled-Function Objects
@cindex compiled function
@cindex byte-code function
@@ -842,7 +842,7 @@
@xref{Domain Specification}.
@end defun
-@node Disassembly
+@node Disassembly, Different Behavior, Compiled-Function Objects, Byte Compilation
@section Disassembled Byte-Code
@cindex disassembled byte-code
@@ -1075,7 +1075,7 @@
@end example
-@node Different Behavior
+@node Different Behavior, , Disassembly, Byte Compilation
@section Different Behavior
The intent is that compiled byte-code and the corresponding code
diff -r dcf9067f26bb man/lispref/consoles-devices.texi
--- a/man/lispref/consoles-devices.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/consoles-devices.texi Fri Feb 28 09:06:56 2014 -0700
@@ -3,7 +3,7 @@
@c Copyright (C) 1995, 1996 Ben Wing.
@c See the file lispref.texi for copying conditions.
@setfilename ../../info/consoles-devices.info
-@node Consoles and Devices, Positions, Frames, top
+@node Consoles and Devices, Positions, Frames, Top
@chapter Consoles and Devices
@cindex devices
@cindex consoles
diff -r dcf9067f26bb man/lispref/control.texi
--- a/man/lispref/control.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/control.texi Fri Feb 28 09:06:56 2014 -0700
@@ -41,7 +41,7 @@
* Nonlocal Exits:: Jumping out of a sequence.
@end menu
-@node Sequencing
+@node Sequencing, Conditionals, Control Structures, Control Structures
@section Sequencing
Evaluating forms in the order they appear is the most common way
@@ -138,7 +138,7 @@
@end example
@end deffn
-@node Conditionals
+@node Conditionals, Combining Conditions, Sequencing, Control Structures
@section Conditionals
@cindex conditional evaluation
@@ -253,7 +253,7 @@
@end group
@end example
-@node Combining Conditions
+@node Combining Conditions, Iteration, Conditionals, Control Structures
@section Constructs for Combining Conditions
This section describes three constructs that are often used together
@@ -371,7 +371,7 @@
@var{arg3})} never evaluates any argument more than once.
@end deffn
-@node Iteration
+@node Iteration, Nonlocal Exits, Combining Conditions, Control Structures
@section Iteration
@cindex iteration
@cindex recursion
@@ -429,7 +429,7 @@
just the end test (which also does the real work of moving point).
@end deffn
-@node Nonlocal Exits
+@node Nonlocal Exits, , Iteration, Control Structures
@section Nonlocal Exits
@cindex nonlocal exits
@@ -446,7 +446,7 @@
* Cleanups:: Arranging to run a cleanup form if an error happens.
@end menu
-@node Catch and Throw
+@node Catch and Throw, Examples of Catch, Nonlocal Exits, Nonlocal Exits
@subsection Explicit Nonlocal Exits: @code{catch} and @code{throw}
Most control constructs affect only the flow of control within the
@@ -531,7 +531,7 @@
error is signaled with data @code{(@var{tag} @var{value})}.
@end defun
-@node Examples of Catch
+@node Examples of Catch, Errors, Catch and Throw, Nonlocal Exits
@subsection Examples of @code{catch} and @code{throw}
One way to use @code{catch} and @code{throw} is to exit from a doubly
@@ -621,7 +621,7 @@
encountered idiom is to bind a local variable to @code{(cons nil nil)},
and use the variable as the formal tag.
-@node Errors
+@node Errors, Cleanups, Examples of Catch, Nonlocal Exits
@subsection Errors
@cindex errors
@@ -654,7 +654,7 @@
* Error Symbols:: How errors are classified for trapping them.
@end menu
-@node Signaling Errors
+@node Signaling Errors, Processing of Errors, Errors, Errors
@subsubsection How to Signal an Error
@cindex signaling errors
@@ -895,7 +895,7 @@
@end example
@end defmac
-@node Processing of Errors
+@node Processing of Errors, Handling Errors, Signaling Errors, Errors
@subsubsection How XEmacs Processes Errors
When an error is signaled, @code{signal} searches for an active
@@ -941,7 +941,7 @@
in the environment of the error, so that you can examine values of
variables precisely as they were at the time of the error.
-@node Handling Errors
+@node Handling Errors, Error Symbols, Processing of Errors, Errors
@subsubsection Writing Code to Handle Errors
@cindex error handler
@cindex handling errors
@@ -1131,7 +1131,7 @@
@end group
@end smallexample
-@node Error Symbols
+@node Error Symbols, , Handling Errors, Errors
@subsubsection Error Symbols and Condition Names
@cindex error symbol
@cindex error name
@@ -1237,7 +1237,7 @@
@xref{Standard Errors}, for a list of all the standard error symbols
and their conditions.
-@node Cleanups
+@node Cleanups, , Errors, Nonlocal Exits
@subsection Cleaning Up from Nonlocal Exits
The @code{unwind-protect} construct is essential whenever you
diff -r dcf9067f26bb man/lispref/customize.texi
--- a/man/lispref/customize.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/customize.texi Fri Feb 28 09:06:56 2014 -0700
@@ -3,7 +3,7 @@
@c Copyright (C) 1997, 1998 Free Software Foundation, Inc.
@c See the file lispref.texi for copying conditions.
@setfilename ../info/customize
-@node Customization, , , Top
+@node Customization, Loading, Macros, Top
@chapter Writing Customization Definitions
This chapter describes how to declare user options for customization,
@@ -20,7 +20,7 @@
* Enabling Behavior::
@end menu
-@node Common Keywords
+@node Common Keywords, Group Definitions, Customization, Customization
@section Common Keywords for All Kinds of Items
All kinds of customization declarations (for variables and groups, and
@@ -91,7 +91,7 @@
any effect unless the code which implements the mode is loaded.
@end table
-@node Group Definitions
+@node Group Definitions, Variable Definitions, Common Keywords, Customization
@section Defining Custom Groups
Each Emacs Lisp package should have one main customization group which
@@ -160,7 +160,7 @@
@c the @code{:prefix} specifications which give unclear results, and then
@c turn this feature back on, if someone would like to do the work.
-@node Variable Definitions
+@node Variable Definitions, Face Definitions, Group Definitions, Customization
@section Defining Customization Variables
Use @code{defcustom} to declare user-editable variables.
@@ -390,7 +390,7 @@
* Defining New Types::
@end menu
-@node Simple Types
+@node Simple Types, Composite Types, Customization Types, Customization Types
@subsection Simple Types
This section describes all the simple customization types.
@@ -458,7 +458,7 @@
meaning of the alternative.
@end table
-@node Composite Types
+@node Composite Types, Splicing into Lists, Simple Types, Customization Types
@subsection Composite Types
When none of the simple types is appropriate, you can use composite
@@ -587,7 +587,7 @@
more elements or removing elements.
@end table
-@node Splicing into Lists
+@node Splicing into Lists, Type Keywords, Composite Types, Customization Types
@subsection Splicing into Lists
The @code{:inline} feature lets you splice a variable number of
@@ -636,7 +636,7 @@
the user chooses the second alternative, then the overall list has three
elements and the second and third must be strings.
-@node Type Keywords
+@node Type Keywords, Defining New Types, Splicing into Lists, Customization Types
@subsection Type Keywords
You can specify keyword-argument pairs in a customization type after the
@@ -813,9 +813,69 @@
@end ignore
@end table
+@node Defining New Types, , Type Keywords, Customization Types
+@subsection Defining New Types
-@node Enabling Behavior, , Customization Types, Customization
-@subsection Enabling Behavior
+In the previous sections we have described how to construct elaborate
+type specifications for @code{defcustom}. In some cases you may want to
+give such a type specification a name. The obvious case is when you are
+using the same type for many user options, rather than repeat the
+specification for each option, you can give the type specification a
+name once, and use that name each @code{defcustom}. The other case is
+when a user option accept a recursive datastructure. To make it
+possible for a datatype to refer to itself, it needs to have a name.
+
+Since custom types are implemented as widgets, the way to define a new
+customize type is to define a new widget. We are not going to describe
+the widget interface here in details, see @ref{Top, , Introduction,
+widget, The Emacs Widget Library}, for that. Instead we are going to
+demonstrate the minimal functionality needed for defining new customize
+types by a simple example.
+
+@example
+(define-widget 'binary-tree-of-string 'lazy
+ "A binary tree made of cons-cells and strings."
+:offset 4
+:tag "Node"
+:type '(choice (string :tag "Leaf" :value "")
+ (cons :tag "Interior"
+:value ("" . "")
+ binary-tree-of-string
+ binary-tree-of-string)))
+
+(defcustom foo-bar ""
+ "Sample variable holding a binary tree of strings."
+:type 'binary-tree-of-string)
+@end example
+
+The function to define a new widget is name @code{define-widget}. The
+first argument is the symbol we want to make a new widget type. The
+second argument is a symbol representing an existing widget, the new
+widget is going to be defined in terms of difference from the existing
+widget. For the purpose of defining new customization types, the
+@code{lazy} widget is perfect, because it accept a @code{:type} keyword
+argument with the same syntax as the keyword argument to
+@code{defcustom} with the same name. The third argument is a
+documentation string for the new widget. You will be able to see that
+string with the @kbd{M-x widget-browse @key{ret} binary-tree-of-string
+@key{ret}} command.
+
+After these mandatory arguments follows the keyword arguments. The most
+important is @code{:type}, which describes the datatype we want to match
+with this widget. Here a @code{binary-tree-of-string} is described as
+being either a string, or a cons-cell whose car and cdr are themselves
+both @code{binary-tree-of-string}. Note the reference to the widget
+type we are currently in the process of defining. The @code{:tag}
+attribute is a string to name the widget in the user interface, and the
+@code{:offset} argument are there to ensure that child nodes are
+indented four spaces relatively to the parent node, making the tree
+structure apparent in the customization buffer.
+
+The @code{defcustom} shows how the new widget can be used as an ordinary
+customization type.
+
+@node Enabling Behavior, , Customization Types, Customization
+@section Enabling Behavior
@cindex behavior
@c #### Does this belong here?
@@ -914,64 +974,3 @@
Called interactively, prompt the user for @var{behavior}, and take
@var{force} from the prefix argument.
@end defun
-
-@node Defining New Types
-@subsection Defining New Types
-
-In the previous sections we have described how to construct elaborate
-type specifications for @code{defcustom}. In some cases you may want to
-give such a type specification a name. The obvious case is when you are
-using the same type for many user options, rather than repeat the
-specification for each option, you can give the type specification a
-name once, and use that name each @code{defcustom}. The other case is
-when a user option accept a recursive datastructure. To make it
-possible for a datatype to refer to itself, it needs to have a name.
-
-Since custom types are implemented as widgets, the way to define a new
-customize type is to define a new widget. We are not going to describe
-the widget interface here in details, see @ref{Top, , Introduction,
-widget, The Emacs Widget Library}, for that. Instead we are going to
-demonstrate the minimal functionality needed for defining new customize
-types by a simple example.
-
-@example
-(define-widget 'binary-tree-of-string 'lazy
- "A binary tree made of cons-cells and strings."
-:offset 4
-:tag "Node"
-:type '(choice (string :tag "Leaf" :value "")
- (cons :tag "Interior"
-:value ("" . "")
- binary-tree-of-string
- binary-tree-of-string)))
-
-(defcustom foo-bar ""
- "Sample variable holding a binary tree of strings."
-:type 'binary-tree-of-string)
-@end example
-
-The function to define a new widget is name @code{define-widget}. The
-first argument is the symbol we want to make a new widget type. The
-second argument is a symbol representing an existing widget, the new
-widget is going to be defined in terms of difference from the existing
-widget. For the purpose of defining new customization types, the
-@code{lazy} widget is perfect, because it accept a @code{:type} keyword
-argument with the same syntax as the keyword argument to
-@code{defcustom} with the same name. The third argument is a
-documentation string for the new widget. You will be able to see that
-string with the @kbd{M-x widget-browse @key{ret} binary-tree-of-string
-@key{ret}} command.
-
-After these mandatory arguments follows the keyword arguments. The most
-important is @code{:type}, which describes the datatype we want to match
-with this widget. Here a @code{binary-tree-of-string} is described as
-being either a string, or a cons-cell whose car and cdr are themselves
-both @code{binary-tree-of-string}. Note the reference to the widget
-type we are currently in the process of defining. The @code{:tag}
-attribute is a string to name the widget in the user interface, and the
-@code{:offset} argument are there to ensure that child nodes are
-indented four spaces relatively to the parent node, making the tree
-structure apparent in the customization buffer.
-
-The @code{defcustom} shows how the new widget can be used as an ordinary
-customization type.
diff -r dcf9067f26bb man/lispref/databases.texi
--- a/man/lispref/databases.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/databases.texi Fri Feb 28 09:06:56 2014 -0700
@@ -3,7 +3,7 @@
@c Copyright (C) 1996 Ben Wing.
@c See the file lispref.texi for copying conditions.
@setfilename ../../info/databases.info
-@node Databases, Processes, Range Tables, top
+@node Databases, Processes, Range Tables, Top
@chapter Databases
@cindex database
@@ -17,7 +17,7 @@
* Other Database Functions::
@end menu
-@node Connecting to a Database
+@node Connecting to a Database, Working With a Database, Databases, Databases
@section Connecting to a Database
@defun open-database file &optional type subtype access mode
@@ -48,7 +48,7 @@
@code{nil}.
@end defun
-@node Working With a Database
+@node Working With a Database, Other Database Functions, Connecting to a Database, Databases
@section Working With a Database
@defun get-database key database &optional default
@@ -72,7 +72,7 @@
This function removes @var{key} from @var{database}.
@end defun
-@node Other Database Functions
+@node Other Database Functions, , Working With a Database, Databases
@section Other Database Functions
@defun database-file-name database
diff -r dcf9067f26bb man/lispref/debugging.texi
--- a/man/lispref/debugging.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/debugging.texi Fri Feb 28 09:06:56 2014 -0700
@@ -39,7 +39,7 @@
For debugging problems in terminal descriptions, the
@code{open-termscript} function can be useful. @xref{Terminal Output}.
-@node Debugger
+@node Debugger, Syntax Errors, Debugging, Debugging
@section The Lisp Debugger
@cindex debugger
@cindex Lisp debugger
@@ -64,7 +64,7 @@
* Internals of Debugger:: Subroutines of the debugger, and global variables.
@end menu
-@node Error Debugging
+@node Error Debugging, Infinite Loops, Debugger, Debugger
@subsection Entering the Debugger on an Error
@cindex error debugging
@cindex debugging errors
@@ -130,7 +130,7 @@
'(lambda () (setq debug-on-error t)))
@end example
-@node Infinite Loops
+@node Infinite Loops, Function Debugging, Error Debugging, Debugger
@subsection Debugging Infinite Loops
@cindex infinite loops
@cindex loops, infinite
@@ -161,7 +161,7 @@
when you quit. @xref{Quitting}.
@end defopt
-@node Function Debugging
+@node Function Debugging, Explicit Debug, Infinite Loops, Debugger
@subsection Entering the Debugger on a Function Call
@cindex function call debugging
@cindex debugging specific functions
@@ -243,7 +243,7 @@
returns @var{function-name}.
@end deffn
-@node Explicit Debug
+@node Explicit Debug, Using Debugger, Function Debugging, Debugger
@subsection Explicit Entry to the Debugger
You can cause the debugger to be called at a certain point in your
@@ -258,7 +258,7 @@
program!) The most common suitable places are inside a @code{progn} or
an implicit @code{progn} (@pxref{Sequencing}).
-@node Using Debugger
+@node Using Debugger, Debugger Commands, Explicit Debug, Debugger
@subsection Using the Debugger
When the debugger is entered, it displays the previously selected
@@ -296,7 +296,7 @@
@need 3000
-@node Debugger Commands
+@node Debugger Commands, Invoking the Debugger, Using Debugger, Debugger
@subsection Debugger Commands
@cindex debugger command list
@@ -391,7 +391,7 @@
until the problem is corrected.
@end table
-@node Invoking the Debugger
+@node Invoking the Debugger, Internals of Debugger, Debugger Commands, Debugger
@subsection Invoking the Debugger
Here we describe fully the function used to invoke the debugger.
@@ -490,7 +490,7 @@
@need 5000
-@node Internals of Debugger
+@node Internals of Debugger, , Invoking the Debugger, Debugger
@subsection Internals of the Debugger
This section describes functions and variables used internally by the
@@ -637,7 +637,7 @@
@code{nil}.
@end defun
-@node Syntax Errors
+@node Syntax Errors, Compilation Errors, Debugger, Debugging
@section Debugging Invalid Lisp Syntax
The Lisp reader reports invalid syntax, but cannot say where the real
@@ -662,7 +662,7 @@
* Excess Close:: How to find a spurious close paren or missing open.
@end menu
-@node Excess Open
+@node Excess Open, Excess Close, Syntax Errors, Syntax Errors
@subsection Excess Open Parentheses
The first step is to find the defun that is unbalanced. If there is
@@ -698,7 +698,7 @@
and you have put back those parentheses, @kbd{C-M-q} should not change
anything.
-@node Excess Close
+@node Excess Close, , Excess Open, Syntax Errors
@subsection Excess Close Parentheses
To deal with an excess close parenthesis, first insert an open
diff -r dcf9067f26bb man/lispref/dialog.texi
--- a/man/lispref/dialog.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/dialog.texi Fri Feb 28 09:06:56 2014 -0700
@@ -12,7 +12,7 @@
* Dialog Box Functions::
@end menu
-@node Dialog Box Format
+@node Dialog Box Format, Dialog Box Functions, Dialog Boxes, Dialog Boxes
@section Dialog Box Format
A dialog box description is a list.
@@ -55,7 +55,7 @@
dialog := '(' name [ button ]+ [ partition [ button ]+ ] ')'
@end example
-@node Dialog Box Functions
+@node Dialog Box Functions, , Dialog Box Format, Dialog Boxes
@section Dialog Box Functions
@defun popup-dialog-box dbox-desc
diff -r dcf9067f26bb man/lispref/display.texi
--- a/man/lispref/display.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/display.texi Fri Feb 28 09:06:56 2014 -0700
@@ -24,7 +24,7 @@
* Beeping:: Audible signal to the user.
@end menu
-@node Refresh Screen
+@node Refresh Screen, Truncation, Display, Display
@section Refreshing the Screen
The function @code{redraw-frame} redisplays the entire contents of a
@@ -82,7 +82,7 @@
which defaults to the selected frame.
@end defun
-@node Truncation
+@node Truncation, The Echo Area, Refresh Screen, Display
@section Truncation
@cindex line wrapping
@cindex continuation lines
@@ -158,7 +158,7 @@
@end defvar
@end ignore
-@node The Echo Area
+@node The Echo Area, Warnings, Truncation, Display
@section The Echo Area
@cindex error display
@cindex echo area
@@ -356,7 +356,7 @@
* Customizing Message Display::
@end menu
-@node Customizing Message Display
+@node Customizing Message Display, , The Echo Area, The Echo Area
@subsection Customizing Message Display
Message display function specify message intended for echo area by
@@ -389,7 +389,7 @@
of @code{(sit-for 2)} is run.
@end defvar
-@node Warnings
+@node Warnings, Invisible Text, The Echo Area, Display
@section Warnings
XEmacs contains a facility for unified display of various warnings.
@@ -500,7 +500,7 @@
buffer will not be automatically popped up.
@end defvar
-@node Invisible Text
+@node Invisible Text, Selective Display, Warnings, Display
@section Invisible Text
@cindex invisible text
@@ -562,7 +562,7 @@
slow-down of these commands it is turned off by default, controlled by
the variable @code{line-move-ignore-invisible}.
-@node Selective Display
+@node Selective Display, Overlay Arrow, Invisible Text, Display
@section Selective Display
@cindex selective display
@@ -678,7 +678,7 @@
(@samp{@dots{}}). @xref{Display Tables}.
@end defvar
-@node Overlay Arrow
+@node Overlay Arrow, Temporary Displays, Selective Display, Display
@section The Overlay Arrow
@cindex overlay arrow
@@ -713,7 +713,7 @@
You can do the same job by creating an extent with a
@code{begin-glyph} property. @xref{Extent Properties}.
-@node Temporary Displays
+@node Temporary Displays, Blinking, Overlay Arrow, Display
@section Temporary Displays
Temporary displays are used by commands to put output into a buffer
@@ -829,7 +829,7 @@
and go.
@end defun
-@node Blinking
+@node Blinking, Usual Display, Temporary Displays, Display
@section Blinking Parentheses
@cindex parenthesis matching
@cindex blinking
@@ -895,7 +895,7 @@
@end smallexample
@end deffn
-@node Usual Display
+@node Usual Display, Display Tables, Blinking, Display
@section Usual Display Conventions
The usual display conventions define how to display each character
@@ -959,7 +959,7 @@
stops used by the command @code{tab-to-tab-stop}. @xref{Indent Tabs}.
@end defopt
-@node Display Tables
+@node Display Tables, Beeping, Usual Display, Display
@section Display Tables
@cindex display table
@@ -985,7 +985,7 @@
to support the ISO Latin 1 character set.
@end ignore
-@node Display Table Format
+@node Display Table Format, Active Display Table, Display Tables, Display Tables
@subsection Display Table Format
A display table is an array of 256 elements. (In FSF Emacs, a display
@@ -1022,7 +1022,7 @@
(aset disptab 127 "^?"))
@end example
-@node Active Display Table
+@node Active Display Table, Character Descriptors, Display Table Format, Display Tables
@subsection Active Display Table
@cindex active display table
@@ -1111,7 +1111,7 @@
If no display table can be determined for a particular window,
then XEmacs uses the usual display conventions. @xref{Usual Display}.
-@node Character Descriptors
+@node Character Descriptors, , Active Display Table, Display Tables
@subsection Character Descriptors
@cindex character descriptor
@@ -1165,7 +1165,7 @@
type.
@end ignore
-@node Beeping
+@node Beeping, , Display Tables, Display
@section Beeping
@cindex beeping
@cindex bell
diff -r dcf9067f26bb man/lispref/eval.texi
--- a/man/lispref/eval.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/eval.texi Fri Feb 28 09:06:56 2014 -0700
@@ -27,7 +27,7 @@
* Multiple values:: Functions may return more than one result.
@end menu
-@node Intro Eval
+@node Intro Eval, Eval, Evaluation, Evaluation
@section Introduction to Evaluation
The Lisp interpreter, or evaluator, is the program that computes
@@ -100,7 +100,7 @@
The details of what evaluation means for each kind of form are
described below (@pxref{Forms}).
-@node Eval
+@node Eval, Forms, Intro Eval, Evaluation
@section Eval
@c ??? Perhaps this should be the last section in the chapter.
@@ -236,7 +236,7 @@
@end example
@end defvar
-@node Forms
+@node Forms, Quoting, Eval, Evaluation
@section Kinds of Forms
A Lisp object that is intended to be evaluated is called a @dfn{form}.
@@ -260,7 +260,7 @@
containing their real definitions.
@end menu
-@node Self-Evaluating Forms
+@node Self-Evaluating Forms, Symbol Forms, Forms, Forms
@subsection Self-Evaluating Forms
@cindex vector evaluation
@cindex literal evaluation
@@ -314,7 +314,7 @@
@end group
@end example
-@node Symbol Forms
+@node Symbol Forms, Classifying Lists, Self-Evaluating Forms, Forms
@subsection Symbol Forms
@cindex symbol evaluation
@@ -348,7 +348,7 @@
these two symbols act like self-evaluating forms, even though
@code{eval} treats them like any other symbol.
-@node Classifying Lists
+@node Classifying Lists, Function Indirection, Symbol Forms, Forms
@subsection Classification of List Forms
@cindex list form evaluation
@@ -364,7 +364,7 @@
@emph{not} evaluated, as it would be in some Lisp dialects such as
Scheme.
-@node Function Indirection
+@node Function Indirection, Function Forms, Classifying Lists, Forms
@subsection Symbol Function Indirection
@cindex symbol function indirection
@cindex indirection
@@ -463,7 +463,7 @@
@end smallexample
@end defun
-@node Function Forms
+@node Function Forms, Macro Forms, Function Indirection, Forms
@subsection Evaluation of Function Forms
@cindex function form evaluation
@cindex function call
@@ -487,7 +487,7 @@
in the function body are evaluated in order, and the value of the last
body form becomes the value of the function call.
-@node Macro Forms
+@node Macro Forms, Special Operators, Function Forms, Forms
@subsection Lisp Macro Evaluation
@cindex macro call evaluation
@@ -533,7 +533,7 @@
@xref{Macros}, for a complete description of XEmacs Lisp macros.
-@node Special Operators
+@node Special Operators, Autoloading, Macro Forms, Forms
@subsection Special Operators
@cindex special operator evaluation
@cindex special form
@@ -643,7 +643,7 @@
multiple values).@refill
@end quotation
-@node Autoloading
+@node Autoloading, , Special Operators, Forms
@subsection Autoloading
The @dfn{autoload} feature allows you to call a function or macro
@@ -653,7 +653,7 @@
function automatically loads the specified file; then it calls the real
definition loaded from that file. @xref{Autoload}.
-@node Quoting
+@node Quoting, Multiple values, Forms, Evaluation
@section Quoting
@cindex quoting
@@ -710,7 +710,7 @@
to be compiled, and @samp{`} (@pxref{Backquote}), which is used to quote
only part of a list, while computing and substituting other parts.
-@node Multiple values
+@node Multiple values, , Quoting, Evaluation
@section Multiple values
@cindex multiple values
diff -r dcf9067f26bb man/lispref/extents.texi
--- a/man/lispref/extents.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/extents.texi Fri Feb 28 09:06:56 2014 -0700
@@ -4,7 +4,7 @@
@c Copyright (C) 1996 Ben Wing.
@c See the file lispref.texi for copying conditions.
@setfilename ../../info/extents.info
-@node Extents, Specifiers, Abbrevs, top
+@node Extents, Specifiers, Abbrevs, Top
@chapter Extents
@cindex extent
@@ -33,7 +33,7 @@
* Atomic Extents:: Treating a block of text as a single entity.
@end menu
-@node Intro to Extents
+@node Intro to Extents, Creating and Modifying Extents, Extents, Extents
@section Introduction to Extents
@cindex extent priority
@cindex priority of an extent
@@ -105,7 +105,7 @@
be re-inserted. This mechanism is used in the kill, yank, and undo
commands. @xref{Duplicable Extents}.
-@node Creating and Modifying Extents
+@node Creating and Modifying Extents, Extent Endpoints, Intro to Extents, Extents
@section Creating and Modifying Extents
@defun make-extent from to &optional buffer-or-string
@@ -140,7 +140,7 @@
been deleted, and @code{nil} otherwise.
@end defun
-@node Extent Endpoints
+@node Extent Endpoints, Finding Extents, Creating and Modifying Extents, Extents
@section Extent Endpoints
@cindex extent endpoint
@cindex extent start position
@@ -220,7 +220,7 @@
recording.
@end defun
-@node Finding Extents
+@node Finding Extents, Mapping Over Extents, Extent Endpoints, Extents
@section Finding Extents
@cindex extents, locating
@@ -312,7 +312,7 @@
string, this returns the last extent in the buffer or string.
@end defun
-@node Mapping Over Extents
+@node Mapping Over Extents, Extent Properties, Finding Extents, Extents
@section Mapping Over Extents
@cindex extents, mapping
@@ -449,7 +449,7 @@
@var{extent} if called with the given arguments.
@end defun
-@node Extent Properties
+@node Extent Properties, Detached Extents, Mapping Over Extents, Extents
@section Properties of Extents
@cindex extent property
@cindex property of an extent
@@ -727,7 +727,7 @@
extent to @var{function}.
@end defun
-@node Detached Extents
+@node Detached Extents, Extent Parents, Extent Properties, Extents
@section Detached Extents
@cindex detached extent
@@ -770,7 +770,7 @@
@xref{Duplicable Extents}.
@end defun
-@node Extent Parents
+@node Extent Parents, Duplicable Extents, Detached Extents, Extents
@section Extent Parents
@cindex extent parent
@cindex extent children
@@ -815,7 +815,7 @@
to any children of @var{extent}, until no more children can be found.
@end defun
-@node Duplicable Extents
+@node Duplicable Extents, Extents and Events, Extent Parents, Extents
@section Duplicable Extents
@cindex duplicable extent
@cindex unique extents
@@ -891,7 +891,7 @@
@code{paste-function} will not be called.
@end itemize
-@node Extents and Events
+@node Extents and Events, Atomic Extents, Duplicable Extents, Extents
@section Interaction of Extents with Keyboard and Mouse Events
If an extent has the @code{mouse-face} property set, it will be
@@ -931,7 +931,7 @@
@code{point} is within the extent. The behavior of mouse clicks and
keystrokes not defined in the keymap is as normal for the buffer.
-@node Atomic Extents
+@node Atomic Extents, , Extents and Events, Extents
@section Atomic Extents
@cindex atomic extent
diff -r dcf9067f26bb man/lispref/faces.texi
--- a/man/lispref/faces.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/faces.texi Fri Feb 28 09:06:56 2014 -0700
@@ -3,7 +3,7 @@
@c Copyright (C) 1995 Ben Wing.
@c See the file lispref.texi for copying conditions.
@setfilename ../../info/faces.info
-@node Faces and Window-System Objects, Glyphs, Specifiers, top
+@node Faces and Window-System Objects, Glyphs, Specifiers, Top
@chapter Faces and Window-System Objects
@cindex faces
@cindex window-system objects
@@ -14,7 +14,7 @@
* Colors:: Controlling the color of text and pixmaps.
@end menu
-@node Faces
+@node Faces, Fonts, Faces and Window-System Objects, Faces and Window-System Objects
@section Faces
A @dfn{face} is a named collection of graphical properties: font,
@@ -54,7 +54,7 @@
a face appears.
@end menu
-@node Merging Faces
+@node Merging Faces, Basic Face Functions, Faces, Faces
@subsection Merging Faces for Display
Here are all the ways to specify which face to use for display of text:
@@ -100,7 +100,7 @@
used; if it is a bitmap, the face's foreground and background colors are
used to color it.
-@node Basic Face Functions
+@node Basic Face Functions, Face Properties, Merging Faces, Faces
@subsection Basic Functions for Working with Faces
The properties a face can specify include the font, the foreground
@@ -156,7 +156,7 @@
-@node Face Properties
+@node Face Properties, Face Convenience Functions, Basic Face Functions, Faces
@subsection Face Properties
You can examine and modify the properties of an existing face with the
@@ -368,7 +368,7 @@
in @code{specifier-instance}. @xref{Specifiers}.
@end defun
-@node Face Convenience Functions
+@node Face Convenience Functions, Other Face Display Functions, Face Properties, Faces
@subsection Face Convenience Functions
@deffn Command set-face-foreground face color &optional locale tag-set how-to-add
@@ -469,7 +469,7 @@
@xref{Fonts}.
@end defun
-@node Other Face Display Functions
+@node Other Face Display Functions, , Face Convenience Functions, Faces
@subsection Other Face Display Functions
@deffn Command invert-face face &optional locale
@@ -489,7 +489,7 @@
the default face. @var{domain} is as in @code{face-property-instance}.
@end defun
-@node Fonts
+@node Fonts, Colors, Faces, Faces and Window-System Objects
@section Fonts
@cindex fonts
@@ -507,7 +507,7 @@
of a font specifier.
@end menu
-@node Font Specifiers
+@node Font Specifiers, Font Instances, Fonts, Fonts
@subsection Font Specifiers
@defun font-specifier-p object
@@ -542,7 +542,7 @@
@end itemize
@end defun
-@node Font Instances
+@node Font Instances, Font Instance Names, Font Specifiers, Fonts
@subsection Font Instances
@defun font-instance-p object
@@ -563,7 +563,7 @@
these objects are GCed, the underlying X data is deallocated as well.
@end defun
-@node Font Instance Names
+@node Font Instance Names, Font Instance Size, Font Instances, Fonts
@subsection Font Instance Names
@cindex font instance name
@cindex available fonts
@@ -586,7 +586,7 @@
(but not necessarily its only unambiguous name).
@end defun
-@node Font Instance Size
+@node Font Instance Size, Font Instance Characteristics, Font Instance Names, Fonts
@subsection Font Instance Size
@cindex font instance size
@@ -614,7 +614,7 @@
that is defined.
@end defun
-@node Font Instance Characteristics
+@node Font Instance Characteristics, Font Convenience Functions, Font Instance Size, Fonts
@subsection Font Instance Characteristics
@cindex font instance characteristics
@cindex characteristics of font instances
@@ -653,7 +653,7 @@
font. If it fails, it returns @code{nil}.
@end defun
-@node Font Convenience Functions
+@node Font Convenience Functions, , Font Instance Characteristics, Fonts
@subsection Font Convenience Functions
@defun font-name font &optional domain
@@ -680,7 +680,7 @@
applying @code{font-instance-properties} to the result.
@end defun
-@node Colors
+@node Colors, , Fonts, Faces and Window-System Objects
@section Colors
@cindex colors
@@ -693,7 +693,7 @@
of a color specifier.
@end menu
-@node Color Specifiers
+@node Color Specifiers, Color Instances, Colors, Colors
@subsection Color Specifiers
@defun color-specifier-p object
@@ -757,7 +757,7 @@
@end defun
-@node Color Instances
+@node Color Instances, Color Instance Properties, Color Specifiers, Colors
@subsection Color Instances
@cindex color instances
@@ -779,7 +779,7 @@
This function returns non-@code{nil} if @var{object} is a color-instance.
@end defun
-@node Color Instance Properties
+@node Color Instance Properties, Color Convenience Functions, Color Instances, Colors
@subsection Color Instance Properties
@defun color-instance-name color-instance
@@ -797,7 +797,7 @@
@end example
@end defun
-@node Color Convenience Functions
+@node Color Convenience Functions, , Color Instance Properties, Colors
@subsection Color Convenience Functions
@defun color-name color &optional domain
diff -r dcf9067f26bb man/lispref/files.texi
--- a/man/lispref/files.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/files.texi Fri Feb 28 09:06:56 2014 -0700
@@ -38,7 +38,7 @@
* Files and MS-DOS:: Distinguishing text and binary files on MS-DOS.
@end menu
-@node Visiting Files
+@node Visiting Files, Saving Buffers, Files, Files
@section Visiting Files
@cindex finding files
@cindex visiting files
@@ -70,7 +70,7 @@
* Subroutines of Visiting:: Lower-level subroutines that they use.
@end menu
-@node Visiting Functions
+@node Visiting Functions, Subroutines of Visiting, Visiting Files, Visiting Files
@subsection Functions for Visiting Files
This section describes the functions normally used to visit files.
@@ -197,7 +197,7 @@
used and they may not all be called.
@end defvar
-@node Subroutines of Visiting
+@node Subroutines of Visiting, , Visiting Functions, Visiting Files
@subsection Subroutines of Visiting
The @code{find-file-noselect} function uses the
@@ -257,7 +257,7 @@
in @code{find-file-hooks}.
@end defun
-@node Saving Buffers
+@node Saving Buffers, Reading from Files, Visiting Files, Files
@section Saving Buffers
When you edit a file in XEmacs, you are actually working on a buffer
@@ -399,7 +399,7 @@
major modes set it to @code{t} in particular buffers.
@end defopt
-@node Reading from Files
+@node Reading from Files, Writing to Files, Saving Buffers, Files
@section Reading from Files
You can copy a file from the disk and insert it into a buffer
@@ -446,7 +446,7 @@
program can read the file, use the function @code{file-local-copy}; see
@ref{Magic File Names}.
-@node Writing to Files
+@node Writing to Files, File Locks, Reading from Files, Files
@section Writing to Files
You can write the contents of a buffer, or part of a buffer, directly
@@ -504,7 +504,7 @@
files that the user does not need to know about.
@end deffn
-@node File Locks
+@node File Locks, Information about Files, Writing to Files, Files
@section File Locks
@cindex file locks
@@ -587,7 +587,7 @@
for its usual definition is in @file{userlock.el}.
@end defun
-@node Information about Files
+@node Information about Files, Changing File Attributes, File Locks, Files
@section Information about Files
The functions described in this section all operate on strings that
@@ -603,7 +603,7 @@
* File Attributes:: How large is it? Any other names? Etc.
@end menu
-@node Testing Accessibility
+@node Testing Accessibility, Kinds of Files, Information about Files, Information about Files
@subsection Testing Accessibility
@cindex accessibility of a file
@cindex file accessibility
@@ -738,7 +738,7 @@
time as a list of two numbers. @xref{File Attributes}.
@end defun
-@node Kinds of Files
+@node Kinds of Files, Truenames, Testing Accessibility, Information about Files
@subsection Distinguishing Kinds of Files
This section describes how to distinguish various kinds of files, such
@@ -811,7 +811,7 @@
other I/O device).
@end defun
-@node Truenames
+@node Truenames, File Attributes, Kinds of Files, Information about Files
@subsection Truenames
@cindex truename (of file)
@@ -836,7 +836,7 @@
@xref{Buffer File Name}, for related information.
-@node File Attributes
+@node File Attributes, , Truenames, Information about Files
@subsection Other Information about Files
This section describes the functions for getting detailed information
@@ -1029,7 +1029,7 @@
@end table
@end defun
-@node Changing File Attributes
+@node Changing File Attributes, File Names, Information about Files, Files
@section Changing File Names and Attributes
@cindex renaming files
@cindex copying files
@@ -1209,7 +1209,7 @@
@samp{.bat} or @samp{.exe}. This is reflected in the values returned
by @code{file-modes} and @code{file-attributes}.
-@node File Names
+@node File Names, Contents of Directories, Changing File Attributes, Files
@section File Names
@cindex file names
@@ -1242,7 +1242,7 @@
* User Name Completion:: Finding the completions for a given user name.
@end menu
-@node File Name Components
+@node File Name Components, Directory Names, File Names, File Names
@subsection File Name Components
@cindex directory part (of file name)
@cindex nondirectory part (of file name)
@@ -1331,7 +1331,7 @@
@end example
@end defun
-@node Directory Names
+@node Directory Names, Relative File Names, File Name Components, File Names
@subsection Directory Names
@cindex directory name
@cindex file name of directory
@@ -1432,7 +1432,7 @@
@c directory.
@c @end defun
-@node Relative File Names
+@node Relative File Names, File Name Expansion, Directory Names, File Names
@subsection Absolute and Relative File Names
@cindex absolute file name
@cindex relative file name
@@ -1465,7 +1465,7 @@
@end example
@end defun
-@node File Name Expansion
+@node File Name Expansion, Unique File Names, Relative File Names, File Names
@subsection Functions that Expand Filenames
@cindex expansion of file names
@@ -1597,7 +1597,7 @@
@end example
@end defun
-@node Unique File Names
+@node Unique File Names, File Name Completion, File Name Expansion, File Names
@subsection Generating Unique File Names
Some programs need to write temporary files. Here is the usual way to
@@ -1643,7 +1643,7 @@
@var{prefix} to @code{make-temp-name}.
@end defun
-@node File Name Completion
+@node File Name Completion, User Name Completion, Unique File Names, File Names
@subsection File Name Completion
@cindex file name completion subroutines
@cindex completion, file name
@@ -1744,7 +1744,7 @@
@end example
@end defopt
-@node User Name Completion
+@node User Name Completion, , File Name Completion, File Names
@subsection User Name Completion
@cindex user name completion subroutines
@cindex completion, user name
@@ -1780,7 +1780,7 @@
@end defun
-@node Contents of Directories
+@node Contents of Directories, Create/Delete Dirs, File Names, Files
@section Contents of Directories
@cindex directory-oriented functions
@cindex file names in directory
@@ -1867,7 +1867,7 @@
for the function @code{insert-directory}.
@end defvar
-@node Create/Delete Dirs
+@node Create/Delete Dirs, Magic File Names, Contents of Directories, Files
@section Creating and Deleting Directories
@c Emacs 19 features
@@ -1894,7 +1894,7 @@
must use @code{delete-directory} in that case.
@end deffn
-@node Magic File Names
+@node Magic File Names, Partial Files, Create/Delete Dirs, Files
@section Making Certain File Names ``Magic''
@cindex magic file names
@@ -2039,7 +2039,7 @@
is a good way to come up with one.
@end defun
-@node Partial Files
+@node Partial Files, Format Conversion, Magic File Names, Files
@section Partial Files
@cindex partial files
@@ -2049,7 +2049,7 @@
* Detached Partial Files::
@end menu
-@node Intro to Partial Files
+@node Intro to Partial Files, Creating a Partial File, Partial Files, Partial Files
@subsection Intro to Partial Files
A @dfn{partial file} is a section of a buffer (called the @dfn{master
@@ -2073,7 +2073,7 @@
automatically marked as modified so that saving the master buffer will
work correctly.
-@node Creating a Partial File
+@node Creating a Partial File, Detached Partial Files, Intro to Partial Files, Partial Files
@subsection Creating a Partial File
@deffn Command make-file-part &optional start end name buffer
@@ -2091,7 +2091,7 @@
respectively.
@end deffn
-@node Detached Partial Files
+@node Detached Partial Files, , Creating a Partial File, Partial Files
@subsection Detached Partial Files
Every partial file has an extent in the master buffer associated with it
@@ -2111,7 +2111,7 @@
part's filename is cleared and thus must be explicitly specified if the
detached file part is to be saved.
-@node Format Conversion
+@node Format Conversion, Files and MS-DOS, Partial Files, Files
@section File Format Conversion
@cindex file format conversion
@@ -2258,7 +2258,7 @@
is always local in all buffers.
@end defvar
-@node Files and MS-DOS
+@node Files and MS-DOS, , Format Conversion, Files
@section Files and MS-DOS
@cindex MS-DOS file types
@cindex file types on MS-DOS
diff -r dcf9067f26bb man/lispref/frames.texi
--- a/man/lispref/frames.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/frames.texi Fri Feb 28 09:06:56 2014 -0700
@@ -58,7 +58,7 @@
@xref{Display}, for related information.
-@node Creating Frames
+@node Creating Frames, Frame Properties, Frames, Frames
@section Creating Frames
To create a new frame, call the function @code{make-frame}.
@@ -85,7 +85,7 @@
when creating an X window frame.
@end deffn
-@node Frame Properties
+@node Frame Properties, Frame Titles, Creating Frames, Frames
@section Frame Properties
A frame has many properties that control its appearance and behavior.
@@ -104,7 +104,7 @@
* Frame Name:: The name of a frame (as opposed to its title).
@end menu
-@node Property Access
+@node Property Access, Initial Properties, Frame Properties, Frame Properties
@subsection Access to Frame Properties
These functions let you read and change the properties of a frame.
@@ -130,7 +130,7 @@
value @var{value}.
@end defun
-@node Initial Properties
+@node Initial Properties, X Frame Properties, Property Access, Frame Properties
@subsection Initial Frame Properties
You can specify the properties for the initial startup frame by setting
@@ -183,7 +183,7 @@
@code{initial-frame-plist} instead. @xref{Command Arguments,,, xemacs,
The XEmacs User's Manual}.
-@node X Frame Properties
+@node X Frame Properties, Size and Position, Initial Properties, Frame Properties
@subsection X Window Frame Properties
Just what properties a frame has depends on what display mechanism it
@@ -322,7 +322,7 @@
Whether the frame has a modeline.
@end table
-@node Size and Position
+@node Size and Position, Frame Name, X Frame Properties, Frame Properties
@subsection Frame Size And Position
@cindex size of frame
@cindex frame size
@@ -423,7 +423,7 @@
@end defun
@end ignore
-@node Frame Name
+@node Frame Name, , Size and Position, Frame Properties
@subsection The Name of a Frame (As Opposed to Its Title)
@cindex frame name
@@ -445,7 +445,7 @@
must be a string.
@end defvar
-@node Frame Titles
+@node Frame Titles, Deleting Frames, Frame Properties, Frames
@section Frame Titles
Every frame has a title; most window managers display the frame title at
@@ -490,7 +490,7 @@
@xref{Glyphs}.
@end defun
-@node Deleting Frames
+@node Deleting Frames, Finding All Frames, Frame Titles, Frames
@section Deleting Frames
@cindex deletion of frames
@@ -523,7 +523,7 @@
calls the function @code{delete-frame}. @xref{Misc Events}.
@end ignore
-@node Finding All Frames
+@node Finding All Frames, Frames and Windows, Deleting Frames, Frames
@section Finding All Frames
@defun frame-list
@@ -630,7 +630,7 @@
See also @code{next-window} and @code{previous-window}, in @ref{Cyclic
Window Ordering}.
-@node Frames and Windows
+@node Frames and Windows, Minibuffers and Frames, Finding All Frames, Frames
@section Frames and Windows
Each window is part of one and only one frame; you can get the frame
@@ -702,7 +702,7 @@
Another function that (usually) returns one of the windows in a frame is
@code{minibuffer-window}. @xref{Minibuffer Misc}.
-@node Minibuffers and Frames
+@node Minibuffers and Frames, Input Focus, Frames and Windows, Frames
@section Minibuffers and Frames
Normally, each frame has its own minibuffer window at the bottom, which
@@ -727,7 +727,7 @@
default.
@end defvar
-@node Input Focus
+@node Input Focus, Visibility of Frames, Minibuffers and Frames, Frames
@section Input Focus
@cindex input focus
@cindex selected frame
@@ -844,7 +844,7 @@
@end defun
@end ignore
-@node Visibility of Frames
+@node Visibility of Frames, Raising and Lowering, Input Focus, Frames
@section Visibility of Frames
@cindex visible frame
@cindex invisible frame
@@ -909,7 +909,7 @@
@xref{Misc Events}.
@end ignore
-@node Raising and Lowering
+@node Raising and Lowering, Frame Configurations, Visibility of Frames, Frames
@section Raising and Lowering Frames
The X Window System uses a desktop metaphor. Part of this metaphor is
@@ -978,7 +978,7 @@
for use as the value of @code{deselect-frame-hook}.
@end defun
-@node Frame Configurations
+@node Frame Configurations, Frame Hooks, Raising and Lowering, Frames
@section Frame Configurations
@cindex frame configuration
@@ -1004,7 +1004,7 @@
non-@code{nil}, the unwanted frames are iconified instead.
@end defun
-@node Frame Hooks
+@node Frame Hooks, , Frame Configurations, Frames
@section Hooks for Customizing Frame Behavior
@cindex frame hooks
diff -r dcf9067f26bb man/lispref/functions.texi
--- a/man/lispref/functions.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/functions.texi Fri Feb 28 09:06:56 2014 -0700
@@ -25,7 +25,7 @@
that have a special bearing on how functions work.
@end menu
-@node What Is a Function
+@node What Is a Function, Lambda Expressions, Functions and Commands, Functions and Commands
@section What Is a Function?
In a general sense, a function is a rule for carrying on a computation
@@ -150,7 +150,7 @@
@end example
@end defun
-@node Lambda Expressions
+@node Lambda Expressions, Function Names, What Is a Function, Functions and Commands
@section Lambda Expressions
@cindex lambda expression
@@ -177,7 +177,7 @@
* Function Documentation:: How to put documentation in a function.
@end menu
-@node Lambda Components
+@node Lambda Components, Simple Lambda, Lambda Expressions, Lambda Expressions
@subsection Components of a Lambda Expression
@ifinfo
@@ -224,7 +224,7 @@
``a list of Lisp forms to evaluate''). The value returned by the
function is the value returned by the last element of the body.
-@node Simple Lambda
+@node Simple Lambda, Argument List, Lambda Components, Lambda Expressions
@subsection A Simple Lambda-Expression Example
Consider for example the following function:
@@ -278,7 +278,7 @@
that time, they were the only way to bind and initialize local
variables.
-@node Argument List
+@node Argument List, Function Documentation, Simple Lambda, Lambda Expressions
@subsection Advanced Features of Argument Lists
@kindex wrong-number-of-arguments
@cindex argument binding
@@ -380,7 +380,7 @@
@result{} 15
@end smallexample
-@node Function Documentation
+@node Function Documentation, , Argument List, Lambda Expressions
@subsection Documentation Strings of Functions
@cindex documentation of function
@@ -416,7 +416,7 @@
documentation string; if the only body form is a string then it serves both
as the return value and as the documentation.
-@node Function Names
+@node Function Names, Defining Functions, Lambda Expressions, Functions and Commands
@section Naming a Function
@cindex function definition
@cindex named function
@@ -467,7 +467,7 @@
A symbol used as a function name may also be used as a variable;
these two uses of a symbol are independent and do not conflict.
-@node Defining Functions
+@node Defining Functions, Calling Functions, Function Names, Functions and Commands
@section Defining Functions
@cindex defining a function
@@ -567,7 +567,7 @@
See also @code{defsubst}, which defines a function like @code{defun}
and tells the Lisp compiler to open-code it. @xref{Inline Functions}.
-@node Calling Functions
+@node Calling Functions, Mapping Functions, Defining Functions, Functions and Commands
@section Calling Functions
@cindex function invocation
@cindex calling a function
@@ -687,7 +687,7 @@
This function ignores any arguments and returns @code{nil}.
@end deffn
-@node Mapping Functions
+@node Mapping Functions, Anonymous Functions, Calling Functions, Functions and Commands
@section Mapping Functions
@cindex mapping functions
@@ -773,7 +773,7 @@
@end smallexample
@end defun
-@node Anonymous Functions
+@node Anonymous Functions, Function Cells, Mapping Functions, Functions and Commands
@section Anonymous Functions
@cindex anonymous function
@@ -887,7 +887,7 @@
See @code{documentation} in @ref{Accessing Documentation}, for a
realistic example using @code{function} and an anonymous function.
-@node Function Cells
+@node Function Cells, Inline Functions, Anonymous Functions, Functions and Commands
@section Accessing Function Cell Contents
The @dfn{function definition} of a symbol is the object stored in the
@@ -1064,7 +1064,7 @@
But it is unmodular and unclean, in any case, for a Lisp file to
redefine a function defined elsewhere.
-@node Inline Functions
+@node Inline Functions, Related Topics, Function Cells, Functions and Commands
@section Inline Functions
@cindex inline functions
@@ -1102,7 +1102,7 @@
@c Emacs versions prior to 19 did not have inline functions.
-@node Related Topics
+@node Related Topics, , Inline Functions, Functions and Commands
@section Other Topics Related to Functions
Here is a table of several functions that do things related to
diff -r dcf9067f26bb man/lispref/glyphs.texi
--- a/man/lispref/glyphs.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/glyphs.texi Fri Feb 28 09:06:56 2014 -0700
@@ -3,7 +3,7 @@
@c Copyright (C) 1995, 1996 Ben Wing.
@c See the file lispref.texi for copying conditions.
@setfilename ../../info/glyphs.info
-@node Glyphs, Annotations, Faces and Window-System Objects, top
+@node Glyphs, Annotations, Faces and Window-System Objects, Top
@chapter Glyphs
@cindex glyphs
@@ -30,7 +30,7 @@
@end menu
-@node Glyph Intro
+@node Glyph Intro, Images, Glyphs, Glyphs
@section Glyph Introduction
In XEmacs, ``glyph'' does @strong{not} refer to a single unit of textual
@@ -84,7 +84,7 @@
more information about specifier locales and domains.
-@node Images
+@node Images, Using Glyphs, Glyph Intro, Glyphs
@section Images
@menu
@@ -95,7 +95,7 @@
@end menu
-@node Image Instantiators
+@node Image Instantiators, Image Instantiator Conversion, Images, Images
@subsection Image Instantiators
@cindex image instantiators
@@ -309,7 +309,7 @@
@end table
-@node Image Instantiator Conversion
+@node Image Instantiator Conversion, Image Instantiator Formats, Image Instantiators, Images
@subsection Image Instantiator Conversion
@cindex image instantiator conversion
@cindex conversion of image instantiators
@@ -342,7 +342,7 @@
@end defun
-@node Image Instantiator Formats
+@node Image Instantiator Formats, Image Instances, Image Instantiator Conversion, Images
@subsection Image Instantiator Formats
@cindex image instantiator formats
@@ -701,7 +701,7 @@
@end defvar
-@node Image Instances
+@node Image Instances, , Image Instantiator Formats, Images
@subsection Image Instances
@cindex image instances
@@ -723,7 +723,7 @@
@end menu
-@node Image Instance Types
+@node Image Instance Types, Image Instance Functions, Image Instances, Image Instances
@subsubsection Image Instance Types
@cindex image instance types
@@ -826,7 +826,7 @@
@end defun
-@node Image Instance Functions
+@node Image Instance Functions, , Image Instance Types, Image Instances
@subsubsection Image Instance Functions
@defun make-image-instance data &optional domain dest-types noerror
@@ -1006,7 +1006,7 @@
@end defun
-@node Using Glyphs
+@node Using Glyphs, Manipulating Glyphs, Images, Glyphs
@section Using Glyphs
Glyph usage is unfortunately somewhat arcane. (For discussion of
@@ -1088,7 +1088,7 @@
@c #### Check status of subwindows ... I thought Andy implemented them.
@end menu
-@node Creating Glyphs
+@node Creating Glyphs, Buffer Glyphs, Using Glyphs, Using Glyphs
@subsection Creating Glyphs
@defun make-glyph &optional spec-list type
@@ -1197,7 +1197,7 @@
on the existing glyph, @code{frame-icon-glyph}.
-@node Buffer Glyphs
+@node Buffer Glyphs, Redisplay Glyphs, Creating Glyphs, Using Glyphs
@subsection Buffer Glyphs
Creating a glyph using @code{make-glyph} does not specify @emph{where}
@@ -1228,7 +1228,7 @@
@end table
-@node Redisplay Glyphs
+@node Redisplay Glyphs, Frame Glyphs, Buffer Glyphs, Using Glyphs
@subsection Redisplay Glyphs
To use a glyph to control the shape of miscellaneous redisplay effects
@@ -1290,7 +1290,7 @@
@end defvr
-@node Frame Glyphs
+@node Frame Glyphs, External Glyphs, Redisplay Glyphs, Using Glyphs
@subsection Frame Glyphs
There are also a number of special objects whose appearance is specified
@@ -1334,7 +1334,7 @@
@end table
-@node External Glyphs
+@node External Glyphs, Native GUI Widgets, Frame Glyphs, Using Glyphs
@subsection External Glyphs
@cindex frame icon
@cindex icon, frame
@@ -1448,7 +1448,7 @@
@end defun
-@node Native GUI Widgets
+@node Native GUI Widgets, Subwindows, External Glyphs, Using Glyphs
@subsection Native GUI Widgets
@cindex native widget
@@ -1464,7 +1464,7 @@
* Primitive Widgets:: Catalogue of available native widgets.
@end menu
-@node Introduction to Widgets
+@node Introduction to Widgets, Lisp API to Native Widgets, Native GUI Widgets, Native GUI Widgets
@subsubsection Introduction to Native Widgets and Subwindow Glyphs
Traditionally Emacsen have hidden the GUI apparatus from the Lisp
@@ -1481,7 +1481,7 @@
which are horizontal or vertical arrays of subwidgets. For example, the
search dialog is formatted using layouts.
-@node Lisp API to Native Widgets
+@node Lisp API to Native Widgets, Layouts, Introduction to Widgets, Native GUI Widgets
@subsubsection Lisp API to Native Widgets
Native widgets are manipulated as @emph{glyphs} (@pxref{Glyphs}). Thus
@@ -1509,7 +1509,7 @@
other instances of the widget respond simultaneously might be more
disconcerting than the actual case.
-@node Layouts
+@node Layouts, Primitive Widgets, Lisp API to Native Widgets, Native GUI Widgets
@subsubsection Layouts
An XEmacs @dfn{layout} is a one-dimensional array of glyphs. It is a
@@ -1609,7 +1609,7 @@
(event-channel event)))])])])
@end example
-@node Primitive Widgets
+@node Primitive Widgets, , Layouts, Native GUI Widgets
@subsubsection Primitive Widgets
@c #### the following table should be replaced with a menu of nodes
@@ -1642,7 +1642,7 @@
@end table
-@node Subwindows
+@node Subwindows, , Native GUI Widgets, Using Glyphs
@subsection Subwindows
Subwindows are not currently implemented.
@@ -1653,7 +1653,7 @@
@end defun
-@node Manipulating Glyphs
+@node Manipulating Glyphs, Glyph Examples, Using Glyphs, Glyphs
@section Manipulating Glyphs
Each glyphs has properties that may be accessed. Most of these can
@@ -1669,7 +1669,7 @@
@end menu
-@node Glyph Properties
+@node Glyph Properties, Glyph Convenience Functions, Manipulating Glyphs, Manipulating Glyphs
@subsection Glyph Properties
Each glyph has a list of properties, which control all of the aspects of
@@ -1851,7 +1851,7 @@
@end defun
-@node Glyph Convenience Functions
+@node Glyph Convenience Functions, Glyph Dimensions, Glyph Properties, Manipulating Glyphs
@subsection Glyph Convenience Functions
The following functions are provided for working with specific
@@ -1943,7 +1943,7 @@
@end defun
-@node Glyph Dimensions
+@node Glyph Dimensions, Glyph Types, Glyph Convenience Functions, Manipulating Glyphs
@subsection Glyph Dimensions
@defun glyph-width glyph &optional window
@@ -1972,7 +1972,7 @@
@end defun
-@node Glyph Types
+@node Glyph Types, , Glyph Dimensions, Manipulating Glyphs
@subsection Glyph Types
Each glyph has a particular type, which controls how the glyph's image
@@ -2031,7 +2031,7 @@
@end defun
-@node Glyph Examples
+@node Glyph Examples, , Manipulating Glyphs, Glyphs
@section Glyph Examples
For many applications, displaying graphics is a simple process: you
diff -r dcf9067f26bb man/lispref/gutter.texi
--- a/man/lispref/gutter.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/gutter.texi Fri Feb 28 09:06:56 2014 -0700
@@ -5,7 +5,7 @@
@c Copyright (C) 1999 Stephen J. Turnbull.
@c See the file lispref.texi for copying conditions.
@setfilename ../../info/gutter.info
-@node Gutter, Scrollbars, Toolbar, top
+@node Gutter, Scrollbars, Toolbar, Top
@chapter Gutter
@cindex gutter
diff -r dcf9067f26bb man/lispref/hash-tables.texi
--- a/man/lispref/hash-tables.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/hash-tables.texi Fri Feb 28 09:06:56 2014 -0700
@@ -3,7 +3,7 @@
@c Copyright (C) 1996 Ben Wing.
@c See the file lispref.texi for copying conditions.
@setfilename ../../info/hash-tables.info
-@node Hash Tables, Range Tables, Display, top
+@node Hash Tables, Range Tables, Display, Top
@chapter Hash Tables
@cindex hash table
@@ -20,7 +20,7 @@
behavior.
@end menu
-@node Introduction to Hash Tables
+@node Introduction to Hash Tables, Working With Hash Tables, Hash Tables, Hash Tables
@section Introduction to Hash Tables
A @dfn{hash table} is a data structure that provides mappings from
@@ -163,7 +163,7 @@
This can be one of @code{nil}, @code{t}, @code{key} or @code{value}.
@end defun
-@node Working With Hash Tables
+@node Working With Hash Tables, Weak Hash Tables, Introduction to Hash Tables, Hash Tables
@section Working With Hash Tables
@defun puthash key value hash-table
@@ -213,7 +213,7 @@
a list comprising @var{test-function} and @var{hash-function}.
@end defun
-@node Weak Hash Tables
+@node Weak Hash Tables, , Working With Hash Tables, Hash Tables
@section Weak Hash Tables
@cindex hash table, weak
@cindex weak hash table
diff -r dcf9067f26bb man/lispref/help.texi
--- a/man/lispref/help.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/help.texi Fri Feb 28 09:06:56 2014 -0700
@@ -32,7 +32,7 @@
* Obsoleteness:: Upgrading Lisp functionality over time.
@end menu
-@node Documentation Basics
+@node Documentation Basics, Accessing Documentation, Documentation, Documentation
@section Documentation Basics
@cindex documentation conventions
@cindex writing a documentation string
@@ -102,7 +102,7 @@
@file{emacs/etc/DOC-@var{version}}. These are @file{sorted-doc.c} and
@file{digest-doc.c}.
-@node Accessing Documentation
+@node Accessing Documentation, Keys in Documentation, Documentation Basics, Documentation
@section Access to Documentation Strings
@defun documentation-property symbol property &optional verbatim
@@ -281,7 +281,7 @@
this.
@end defvar
-@node Keys in Documentation
+@node Keys in Documentation, Describing Characters, Accessing Documentation, Documentation
@section Substituting Key Bindings in Documentation
@cindex documentation, keys in
@cindex keys in documentation strings
@@ -375,7 +375,7 @@
@end group
@end smallexample
-@node Describing Characters
+@node Describing Characters, Help Functions, Keys in Documentation, Documentation
@section Describing Characters for Help Messages
These functions convert events, key sequences or characters to textual
@@ -450,7 +450,7 @@
@end smallexample
@end defun
-@node Help Functions
+@node Help Functions, Obsoleteness, Describing Characters, Documentation
@section Help Functions
XEmacs provides a variety of on-line help functions, all accessible to
@@ -666,7 +666,7 @@
@end defopt
@end ignore
-@node Obsoleteness
+@node Obsoleteness, , Help Functions, Documentation
@section Obsoleteness
As you add functionality to a package, you may at times want to
diff -r dcf9067f26bb man/lispref/internationalization.texi
--- a/man/lispref/internationalization.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/internationalization.texi Fri Feb 28 09:06:56 2014 -0700
@@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993 Free Software Foundation, Inc.
@c See the file lispref.texi for copying conditions.
@setfilename ../../info/internationalization.info
-@node Internationalization, MULE, PostgreSQL Support, top
+@node Internationalization, MULE, PostgreSQL Support, Top
@chapter Internationalization
@menu
@@ -13,7 +13,7 @@
@end menu
-@node I18N Levels 1 and 2
+@node I18N Levels 1 and 2, I18N Level 3, Internationalization, Internationalization
@section I18N Levels 1 and 2
XEmacs is now compliant with I18N levels 1 and 2. Specifically, this means
@@ -27,7 +27,7 @@
completions and the character which would be produced.
-@node I18N Level 3
+@node I18N Level 3, I18N Level 4, I18N Levels 1 and 2, Internationalization
@section I18N Level 3
@menu
@@ -37,7 +37,7 @@
* Domain Specification::
@end menu
-@node Level 3 Basics
+@node Level 3 Basics, Level 3 Primitives, I18N Level 3, I18N Level 3
@subsection Level 3 Basics
XEmacs now provides alpha-level functionality for I18N Level 3. This means
@@ -56,7 +56,7 @@
variable's documentation.
-@node Level 3 Primitives
+@node Level 3 Primitives, Dynamic Messaging, Level 3 Basics, I18N Level 3
@subsection Level 3 Primitives
@defun gettext string
@@ -103,7 +103,7 @@
@end defun
-@node Dynamic Messaging
+@node Dynamic Messaging, Domain Specification, Level 3 Primitives, I18N Level 3
@subsection Dynamic Messaging
The @code{format} function has been extended to permit you to change the
@@ -113,7 +113,7 @@
to change the word order.
-@node Domain Specification
+@node Domain Specification, , Dynamic Messaging, I18N Level 3
@subsection Domain Specification
The default message domain of XEmacs is `emacs'. For add-on packages, it is
@@ -167,7 +167,7 @@
@end example
@end defun
-@node I18N Level 4
+@node I18N Level 4, , I18N Level 3, Internationalization
@section I18N Level 4
The Asian-language support in XEmacs is called ``MULE''. @xref{MULE}.
diff -r dcf9067f26bb man/lispref/intro.texi
--- a/man/lispref/intro.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/intro.texi Fri Feb 28 09:06:56 2014 -0700
@@ -433,7 +433,7 @@
* Acknowledgements:: The authors, editors, and sponsors of this manual.
@end menu
-@node Caveats
+@node Caveats, Lisp History, Introduction, Introduction
@section Caveats
This manual has gone through numerous drafts. It is nearly complete
@@ -489,7 +489,7 @@
--Ben Wing
@end display
-@node Lisp History
+@node Lisp History, Conventions, Caveats, Introduction
@section Lisp History
@cindex Lisp history
@@ -515,7 +515,7 @@
Lisp differs from Common Lisp. If you don't know Common Lisp, don't
worry about it; this manual is self-contained.
-@node Conventions
+@node Conventions, Acknowledgements, Lisp History, Introduction
@section Conventions
This section explains the notational conventions that are used in this
@@ -531,7 +531,7 @@
* Format of Descriptions:: Notation for describing functions, variables, etc.
@end menu
-@node Some Terms
+@node Some Terms, nil and t, Conventions, Conventions
@subsection Some Terms
Throughout this manual, the phrases ``the Lisp reader'' and ``the Lisp
@@ -547,7 +547,7 @@
3)}. Names that represent arguments or metasyntactic variables appear
in this font or form: @var{first-number}.
-@node nil and t
+@node nil and t, Evaluation Notation, Some Terms, Conventions
@subsection @code{nil} and @code{t}
@cindex @code{nil}, uses of
@cindex truth value
@@ -590,7 +590,7 @@
values results in a @code{setting-constant} error. @xref{Accessing
Variables}.
-@node Evaluation Notation
+@node Evaluation Notation, Printing Notation, nil and t, Conventions
@subsection Evaluation Notation
@cindex evaluation notation
@cindex documentation notation
@@ -626,7 +626,7 @@
(cons 'a nil) @equiv{} (list 'a)
@end example
-@node Printing Notation
+@node Printing Notation, Error Messages, Evaluation Notation, Conventions
@subsection Printing Notation
@cindex printing notation
@@ -651,7 +651,7 @@
@end group
@end example
-@node Error Messages
+@node Error Messages, Buffer Text Notation, Printing Notation, Conventions
@subsection Error Messages
@cindex error message notation
@@ -665,7 +665,7 @@
@error{} Wrong type argument: integer-or-marker-p, x
@end example
-@node Buffer Text Notation
+@node Buffer Text Notation, Format of Descriptions, Error Messages, Conventions
@subsection Buffer Text Notation
@cindex buffer text notation
@@ -689,7 +689,7 @@
---------- Buffer: foo ----------
@end example
-@node Format of Descriptions
+@node Format of Descriptions, , Buffer Text Notation, Conventions
@subsection Format of Descriptions
@cindex description format
@@ -715,7 +715,7 @@
@code{electric-future-map}.
@end menu
-@node A Sample Function Description
+@node A Sample Function Description, A Sample Variable Description, Format of Descriptions, Format of Descriptions
@subsubsection A Sample Function Description
@cindex function descriptions
@cindex command descriptions
@@ -819,7 +819,7 @@
from @var{body}, which includes all remaining elements of the form.
@end deffn
-@node A Sample Variable Description
+@node A Sample Variable Description, , A Sample Function Description, Format of Descriptions
@subsubsection A Sample Variable Description
@cindex variable descriptions
@cindex option descriptions
@@ -842,7 +842,7 @@
User option descriptions have the same format, but `Variable' is
replaced by `User Option'.
-@node Acknowledgements
+@node Acknowledgements, , Conventions, Introduction
@section Acknowledgements
This manual was based on the GNU Emacs Lisp Reference Manual, version
diff -r dcf9067f26bb man/lispref/keymaps.texi
--- a/man/lispref/keymaps.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/keymaps.texi Fri Feb 28 09:06:56 2014 -0700
@@ -38,7 +38,7 @@
* Other Keymap Functions:: Miscellaneous keymap functions.
@end menu
-@node Keymap Terminology
+@node Keymap Terminology, Format of Keymaps, Keymaps, Keymaps
@section Keymap Terminology
@cindex key
@cindex keystroke
@@ -99,7 +99,7 @@
keymaps shadow both local and global keymaps. @xref{Active Keymaps},
for details.
-@node Format of Keymaps
+@node Format of Keymaps, Creating Keymaps, Keymap Terminology, Keymaps
@section Format of Keymaps
@cindex format of keymaps
@cindex keymap format
@@ -113,7 +113,7 @@
otherwise.
@end defun
-@node Creating Keymaps
+@node Creating Keymaps, Inheritance and Keymaps, Format of Keymaps, Keymaps
@section Creating Keymaps
@cindex creating keymaps
@@ -177,7 +177,7 @@
@end example
@end defun
-@node Inheritance and Keymaps
+@node Inheritance and Keymaps, Key Sequences, Creating Keymaps, Keymaps
@section Inheritance and Keymaps
@cindex keymap inheritance
@cindex inheriting a keymap's bindings
@@ -233,7 +233,7 @@
if it has none.
@end defun
-@node Key Sequences
+@node Key Sequences, Prefix Keys, Inheritance and Keymaps, Keymaps
@section Key Sequences
@cindex key sequences
@@ -364,7 +364,7 @@
@code{help-char} or @code{quit-char}.
@end defun
-@node Prefix Keys
+@node Prefix Keys, Active Keymaps, Key Sequences, Keymaps
@section Prefix Keys
@cindex prefix key
@@ -483,7 +483,7 @@
set, not the value as a variable.
@end defun
-@node Active Keymaps
+@node Active Keymaps, Key Lookup, Prefix Keys, Keymaps
@section Active Keymaps
@cindex active keymap
@cindex global keymap
@@ -737,7 +737,7 @@
the current global map.
@end defvar
-@node Key Lookup
+@node Key Lookup, Functions for Key Lookup, Active Keymaps, Keymaps
@section Key Lookup
@cindex key lookup
@cindex keymap entry
@@ -864,7 +864,7 @@
In short, a keymap entry may be a keymap, a command, a keyboard macro,
a symbol that leads to one of them, or an indirection or @code{nil}.
-@node Functions for Key Lookup
+@node Functions for Key Lookup, Changing Key Bindings, Key Lookup, Keymaps
@section Functions for Key Lookup
Here are the functions and variables pertaining to key lookup.
@@ -1031,7 +1031,7 @@
@end smallexample
@end defvar
-@node Changing Key Bindings
+@node Changing Key Bindings, Key Binding Commands, Functions for Key Lookup, Keymaps
@section Changing Key Bindings
@cindex changing key bindings
@cindex rebinding
@@ -1282,7 +1282,7 @@
@end smallexample
@end defun
-@node Key Binding Commands
+@node Key Binding Commands, Scanning Keymaps, Changing Key Bindings, Keymaps
@section Commands for Binding Keys
This section describes some convenient interactive interfaces for
@@ -1390,7 +1390,7 @@
@end smallexample
@end deffn
-@node Scanning Keymaps
+@node Scanning Keymaps, Remapping commands, Key Binding Commands, Keymaps
@section Scanning Keymaps
This section describes functions used to scan all the current keymaps,
@@ -1584,7 +1584,7 @@
displayed.
@end deffn
-@node Remapping commands
+@node Remapping commands, Other Keymap Functions, Scanning Keymaps, Keymaps
@section Remapping commands
This section describes some functionality to allow commands to be
@@ -1615,7 +1615,7 @@
because @var{command} will be execute instead.
@end defun
-@node Other Keymap Functions
+@node Other Keymap Functions, , Remapping commands, Keymaps
@section Other Keymap Functions
@defun set-keymap-prompt keymap new-prompt
diff -r dcf9067f26bb man/lispref/ldap.texi
--- a/man/lispref/ldap.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/ldap.texi Fri Feb 28 09:06:56 2014 -0700
@@ -3,7 +3,7 @@
@c Copyright (C) 1998 Free Software Foundation, Inc.
@c See the file lispref.texi for copying conditions.
@setfilename ../../info/ldap.info
-@node LDAP Support, PostgreSQL Support, ToolTalk Support, top
+@node LDAP Support, PostgreSQL Support, ToolTalk Support, Top
@chapter LDAP Support
@cindex LDAP
diff -r dcf9067f26bb man/lispref/lispref.texi
--- a/man/lispref/lispref.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/lispref.texi Fri Feb 28 09:06:56 2014 -0700
@@ -84,7 +84,7 @@
@subtitle Version 3.3 (for XEmacs 21.0), April 1998
@author by Ben Wing
-@author
+@vskip 12pt
@author Based on the GNU Emacs Lisp Reference Manual
@author by Bil Lewis, Dan LaLiberte, Richard Stallman
@author and the GNU Manual Group
diff -r dcf9067f26bb man/lispref/lists.texi
--- a/man/lispref/lists.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/lists.texi Fri Feb 28 09:06:56 2014 -0700
@@ -27,7 +27,7 @@
* Weak Lists:: A list with special garbage-collection behavior.
@end menu
-@node Cons Cells
+@node Cons Cells, Lists as Boxes, Lists, Lists
@section Lists and Cons Cells
@cindex lists and cons cells
@cindex @code{nil} and lists
@@ -60,7 +60,7 @@
The @sc{cdr} of any nonempty list @var{l} is a list containing all the
elements of @var{l} except the first.
-@node Lists as Boxes
+@node Lists as Boxes, List-related Predicates, Cons Cells, Lists
@section Lists as Linked Pairs of Boxes
@cindex box representation for lists
@cindex lists represented as boxes
@@ -143,7 +143,7 @@
@xref{Cons Cell Type}, for the read and print syntax of cons cells and
lists, and for more ``box and arrow'' illustrations of lists.
-@node List-related Predicates
+@node List-related Predicates, List Elements, Lists as Boxes, Lists
@section Predicates on Lists
The following predicates test whether a Lisp object is an atom, is a
@@ -221,7 +221,7 @@
@need 2000
-@node List Elements
+@node List Elements, Building Lists, List-related Predicates, Lists
@section Accessing Elements of Lists
@cindex list elements
@@ -442,7 +442,7 @@
elements of @var{list}.
@end defun
-@node Building Lists
+@node Building Lists, Modifying Lists, List Elements, Lists
@section Building Cons Cells and Lists
@cindex cons cells
@cindex building lists
@@ -674,7 +674,7 @@
@end example
@end defun
-@node Modifying Lists
+@node Modifying Lists, Sets And Lists, Building Lists, Lists
@section Modifying Existing List Structure
You can modify the @sc{car} and @sc{cdr} contents of a cons cell with the
@@ -698,7 +698,7 @@
* Rearrangement:: Reordering the elements in a list; combining lists.
@end menu
-@node Setcar
+@node Setcar, Setcdr, Modifying Lists, Modifying Lists
@subsection Altering List Elements with @code{setcar}
Changing the @sc{car} of a cons cell is done with @code{setcar}. When
@@ -800,7 +800,7 @@
@end group
@end example
-@node Setcdr
+@node Setcdr, Rearrangement, Setcar, Modifying Lists
@subsection Altering the CDR of a List
The lowest-level primitive for modifying a @sc{cdr} is @code{setcdr}:
@@ -900,7 +900,7 @@
@end group
@end smallexample
-@node Rearrangement
+@node Rearrangement, , Setcdr, Modifying Lists
@subsection Functions that Rearrange Lists
@cindex rearrangement of lists
@cindex modification of lists
@@ -1139,7 +1139,7 @@
useful example of @code{sort*}.
@end defun
-@node Sets And Lists
+@node Sets And Lists, Association Lists, Modifying Lists, Lists
@section Using Lists as Sets
@cindex lists as sets
@cindex sets
@@ -1386,7 +1386,7 @@
See also the function @code{add-to-list}, in @ref{Setting Variables},
for another way to add an element to a list stored in a variable.
-@node Association Lists
+@node Association Lists, Property Lists, Sets And Lists, Lists
@section Association Lists
@cindex association list
@cindex alist
@@ -1629,7 +1629,7 @@
They are marked as obsolete, and it is preferable to fix your code to avoid
adding non-cons objects to alists.
-@node Property Lists
+@node Property Lists, Weak Lists, Association Lists, Lists
@section Property Lists
@cindex property list
@cindex plist
@@ -1676,7 +1676,7 @@
* Converting Plists To/From Alists:: Alist to plist and vice-versa.
@end menu
-@node Working With Normal Plists
+@node Working With Normal Plists, Working With Lax Plists, Property Lists, Property Lists
@subsection Working With Normal Plists
@defun plist-get plist property &optional default
@@ -1732,7 +1732,7 @@
to @code{setq} the value back into where it came from.
@end defun
-@node Working With Lax Plists
+@node Working With Lax Plists, Converting Plists To/From Alists, Working With Normal Plists, Property Lists
@subsection Working With Lax Plists
Recall that a @dfn{lax plist} is a property list whose keys are compared
@@ -1786,7 +1786,7 @@
to @code{setq} the value back into where it came from.
@end defun
-@node Converting Plists To/From Alists
+@node Converting Plists To/From Alists, , Working With Lax Plists, Property Lists
@subsection Converting Plists To/From Alists
@defun alist-to-plist alist
@@ -1838,7 +1838,7 @@
equivalent association-list form. The alist is returned.
@end defun
-@node Weak Lists
+@node Weak Lists, , Property Lists, Lists
@section Weak Lists
@cindex weak list
diff -r dcf9067f26bb man/lispref/loading.texi
--- a/man/lispref/loading.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/loading.texi Fri Feb 28 09:06:56 2014 -0700
@@ -43,7 +43,7 @@
particular libraries are loaded.
@end menu
-@node How Programs Do Loading
+@node How Programs Do Loading, Autoload, Loading, Loading
@section How Programs Do Loading
XEmacs Lisp has several interfaces for loading. For example,
@@ -274,7 +274,7 @@
To learn how @code{load} is used to build XEmacs, see @ref{Building XEmacs}.
-@node Autoload
+@node Autoload, Repeated Loading, How Programs Do Loading, Loading
@section Autoload
@cindex autoload
@@ -417,7 +417,7 @@
@file{loaddefs.el}; they tell @code{make-docfile} to put the
documentation string in the @file{DOC} file. @xref{Building XEmacs}.
-@node Repeated Loading
+@node Repeated Loading, Named Features, Autoload, Loading
@section Repeated Loading
@cindex repeated loading
@@ -480,7 +480,7 @@
@xref{Named Features}.
@end ifinfo
-@node Named Features
+@node Named Features, Unloading, Repeated Loading, Loading
@section Features
@cindex features
@cindex requiring features
@@ -660,7 +660,7 @@
@code{features} list is not significant.
@end defvar
-@node Unloading
+@node Unloading, Hooks for Loading, Named Features, Loading
@section Unloading
@cindex unloading
@@ -717,7 +717,7 @@
by adding the symbols defined to the element for the file being visited,
rather than replacing that element.
-@node Hooks for Loading
+@node Hooks for Loading, , Unloading, Loading
@section Hooks for Loading
@cindex loading hooks
@cindex hooks for loading
diff -r dcf9067f26bb man/lispref/macros.texi
--- a/man/lispref/macros.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/macros.texi Fri Feb 28 09:06:56 2014 -0700
@@ -32,7 +32,7 @@
Don't hide the user's variables.
@end menu
-@node Simple Macro
+@node Simple Macro, Expansion, Macros, Macros
@section A Simple Example of a Macro
Suppose we would like to define a Lisp construct to increment a
@@ -54,7 +54,7 @@
x (1+ x))}. Once the macro definition returns this expansion, Lisp
proceeds to evaluate it, thus incrementing @code{x}.
-@node Expansion
+@node Expansion, Compiling Macros, Simple Macro, Macros
@section Expansion of a Macro Call
@cindex expansion of macros
@cindex macro call
@@ -144,7 +144,7 @@
@end smallexample
@end defun
-@node Compiling Macros
+@node Compiling Macros, Defining Macros, Expansion, Macros
@section Macros and Byte Compilation
@cindex byte-compiling macros
@@ -178,7 +178,7 @@
@code{eval-when-compile} around the @code{require} calls (@pxref{Eval
During Compile}).
-@node Defining Macros
+@node Defining Macros, Backquote, Compiling Macros, Macros
@section Defining Macros
A Lisp macro is a list whose @sc{car} is @code{macro}. Its @sc{cdr} should
@@ -240,7 +240,7 @@
called interactively.
@end deffn
-@node Backquote
+@node Backquote, Problems with Macros, Defining Macros, Macros
@section Backquote
@cindex backquote (list substitution)
@cindex ` (list substitution)
@@ -333,7 +333,7 @@
compatibility with old Emacs versions.
@end quotation
-@node Problems with Macros
+@node Problems with Macros, , Backquote, Macros
@section Common Problems Using Macros
The basic facts of macro expansion have counterintuitive consequences.
@@ -348,7 +348,7 @@
* Repeated Expansion:: Avoid depending on how many times expansion is done.
@end menu
-@node Argument Evaluation
+@node Argument Evaluation, Surprising Local Vars, Problems with Macros, Problems with Macros
@subsection Evaluating Macro Arguments Repeatedly
When defining a macro you must pay attention to the number of times
@@ -454,7 +454,7 @@
Proceed to the following node.
@end ifinfo
-@node Surprising Local Vars
+@node Surprising Local Vars, Eval During Expansion, Argument Evaluation, Problems with Macros
@subsection Local Variables in Macro Expansions
@ifinfo
@@ -523,7 +523,7 @@
expansion instead of the usual interned symbol @code{max} that appears
in expressions ordinarily.
-@node Eval During Expansion
+@node Eval During Expansion, Repeated Expansion, Surprising Local Vars, Problems with Macros
@subsection Evaluating Macro Arguments in Expansion
Another problem can happen if you evaluate any of the macro argument
@@ -568,7 +568,7 @@
put the expression into the macro expansion, so that its value is
computed as part of executing the expansion.
-@node Repeated Expansion
+@node Repeated Expansion, , Eval During Expansion, Problems with Macros
@subsection How Many Times is the Macro Expanded?
Occasionally problems result from the fact that a macro call is
diff -r dcf9067f26bb man/lispref/markers.texi
--- a/man/lispref/markers.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/markers.texi Fri Feb 28 09:06:56 2014 -0700
@@ -22,7 +22,7 @@
* The Region:: How to access ``the region''.
@end menu
-@node Overview of Markers
+@node Overview of Markers, Predicates on Markers, Markers, Markers
@section Overview of Markers
A marker specifies a buffer and a position in that buffer. The marker
@@ -150,7 +150,7 @@
@end group
@end example
-@node Predicates on Markers
+@node Predicates on Markers, Creating Markers, Overview of Markers, Markers
@section Predicates on Markers
You can test an object to see whether it is a marker, or whether it is
@@ -184,7 +184,7 @@
kind), a character, or a marker, @code{nil} otherwise.
@end defun
-@node Creating Markers
+@node Creating Markers, Information from Markers, Predicates on Markers, Markers
@section Functions That Create Markers
When you create a new marker, you can make it point nowhere, or point
@@ -340,7 +340,7 @@
@end example
@end defun
-@node Information from Markers
+@node Information from Markers, Changing Markers, Creating Markers, Markers
@section Information from Markers
This section describes the functions for accessing the components of a
@@ -388,7 +388,7 @@
@code{eq}) to each other if they have the same position and buffer, or
if they both point nowhere.
-@node Changing Markers
+@node Changing Markers, The Mark, Information from Markers, Markers
@section Changing Marker Positions
This section describes how to change the position of an existing
@@ -437,7 +437,7 @@
This is another name for @code{set-marker}.
@end defun
-@node The Mark
+@node The Mark, The Region, Changing Markers, Markers
@section The Mark
@cindex mark, the
@cindex mark ring
@@ -661,7 +661,7 @@
location.
@end deffn
-@node The Region
+@node The Region, , The Mark, Markers
@section The Region
@cindex region, the
diff -r dcf9067f26bb man/lispref/menus.texi
--- a/man/lispref/menus.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/menus.texi Fri Feb 28 09:06:56 2014 -0700
@@ -19,7 +19,7 @@
* Buffers Menu:: The menu that displays the list of buffers.
@end menu
-@node Menu Format
+@node Menu Format, Menubar Format, Menus, Menus
@section Format of Menus
@cindex menu format
@cindex format of menus
@@ -258,7 +258,7 @@
)
@end example
-@node Menubar Format
+@node Menubar Format, Menubar, Menu Format, Menus
@section Format of the Menubar
@cindex menubar format
@cindex format of the menubar
@@ -280,7 +280,7 @@
yet.)
@end itemize
-@node Menubar
+@node Menubar, Modifying Menus, Menubar Format, Menus
@section Menubar
@cindex menubar
@@ -356,7 +356,7 @@
without a selection having been made.
@end defvar
-@node Modifying Menus
+@node Modifying Menus, Menu Filters, Menubar, Menus
@section Modifying Menus
The following functions are provided to modify the menubar of one of its
@@ -485,7 +485,7 @@
item is already present, it will not be moved.
@end defun
-@node Menu Filters
+@node Menu Filters, Pop-Up Menus, Modifying Menus, Menus
@section Menu Filters
@cindex menu filters
@@ -539,7 +539,7 @@
more information.
@end defun
-@node Pop-Up Menus
+@node Pop-Up Menus, Menu Accelerators, Menu Filters, Menus
@section Pop-Up Menus
@cindex pop-up menu
@@ -606,7 +606,7 @@
It should be bound to a mouse button event.
@end deffn
-@node Menu Accelerators
+@node Menu Accelerators, Buffers Menu, Pop-Up Menus, Menus
@section Menu Accelerators
@cindex menu accelerators
@cindex keyboard menu accelerators
@@ -624,7 +624,7 @@
* Menu Accelerator Functions:: Functions for working with menu accelerators.
@end menu
-@node Creating Menu Accelerators
+@node Creating Menu Accelerators, Keyboard Menu Traversal, Menu Accelerators, Menu Accelerators
@subsection Creating Menu Accelerators
Menu accelerators are specified as part of the menubar format using the
@@ -654,7 +654,7 @@
It is possible to activate the top level menubar itself using accelerator keys.
@xref{Menu Accelerator Functions}.
-@node Keyboard Menu Traversal
+@node Keyboard Menu Traversal, Menu Accelerator Functions, Creating Menu Accelerators, Menu Accelerators
@subsection Keyboard Menu Traversal
In addition to immediately activating a menu or menu item, the keyboard can
@@ -667,7 +667,7 @@
menu-accelerator-map. At this point, the online help is your best bet
for more information about how to modify the menu traversal keys.
-@node Menu Accelerator Functions
+@node Menu Accelerator Functions, , Keyboard Menu Traversal, Menu Accelerators
@subsection Menu Accelerator Functions
@deffn Command accelerate-menu
@@ -737,7 +737,7 @@
C-M-T by itself will not activate the menubar. Neither will pressing C-x
followed by anything else.
-@node Buffers Menu
+@node Buffers Menu, , Menu Accelerators, Menus
@section Buffers Menu
@cindex buffers menu
diff -r dcf9067f26bb man/lispref/minibuf.texi
--- a/man/lispref/minibuf.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/minibuf.texi Fri Feb 28 09:06:56 2014 -0700
@@ -29,7 +29,7 @@
* Minibuffer Misc:: Various customization hooks and variables.
@end menu
-@node Intro to Minibuffers
+@node Intro to Minibuffers, Text from Minibuffer, Minibuffers, Minibuffers
@section Introduction to Minibuffers
In most ways, a minibuffer is a normal XEmacs buffer. Most operations
@@ -75,7 +75,7 @@
for cautious completion.
@end itemize
-@node Text from Minibuffer
+@node Text from Minibuffer, Object from Minibuffer, Intro to Minibuffers, Minibuffers
@section Reading Text Strings with the Minibuffer
Most often, the minibuffer is used to read text as a string. It can
@@ -202,7 +202,7 @@
@end table
@end defvar
-@node Object from Minibuffer
+@node Object from Minibuffer, Minibuffer History, Text from Minibuffer, Minibuffers
@section Reading Lisp Objects with the Minibuffer
This section describes functions for reading Lisp objects with the
@@ -321,7 +321,7 @@
@code{edit-and-eval-command} returns @code{t} in this example.
@end defun
-@node Minibuffer History
+@node Minibuffer History, Completion, Object from Minibuffer, Minibuffers
@section Minibuffer History
@cindex minibuffer history
@cindex history list
@@ -408,7 +408,7 @@
libraries. An @kbd{M-x apropos} search for @samp{history} should prove
fruitful in discovering them.
-@node Completion
+@node Completion, Yes-or-No Queries, Minibuffer History, Minibuffers
@section Completion
@cindex completion
@@ -447,7 +447,7 @@
* Programmed Completion:: Finding the completions for a given file name.
@end menu
-@node Basic Completion
+@node Basic Completion, Minibuffer Completion, Completion, Completion
@subsection Basic Completion Functions
The two functions @code{try-completion} and @code{all-completions}
@@ -583,7 +583,7 @@
non-@code{nil}, XEmacs does not consider case significant in completion.
@end defvar
-@node Minibuffer Completion
+@node Minibuffer Completion, Completion Commands, Basic Completion, Completion
@subsection Completion and the Minibuffer
This section describes the basic interface for reading from the
@@ -666,7 +666,7 @@
see @ref{Completion Commands}.
@end defun
-@node Completion Commands
+@node Completion Commands, High-Level Completion, Minibuffer Completion, Completion
@subsection Minibuffer Commands That Do Completion
This section describes the keymaps, commands and user options used in
@@ -797,7 +797,7 @@
can be completed because the next character is not uniquely determined.
@end defopt
-@node High-Level Completion
+@node High-Level Completion, Reading File Names, Completion Commands, Completion
@subsection High-Level Completion Functions
This section describes the higher-level convenient functions for
@@ -941,7 +941,7 @@
@end example
@end defun
-@node Reading File Names
+@node Reading File Names, Programmed Completion, High-Level Completion, Completion
@subsection Reading File Names
Here is another high-level completion function, designed for reading a
@@ -1050,7 +1050,7 @@
@end example
@end defopt
-@node Programmed Completion
+@node Programmed Completion, , Reading File Names, Completion
@subsection Programmed Completion
@cindex programmed completion
@@ -1115,7 +1115,7 @@
Emacs uses programmed completion when completing file names.
@xref{File Name Completion}.
-@node Yes-or-No Queries
+@node Yes-or-No Queries, Multiple Queries, Completion, Minibuffers
@section Yes-or-No Queries
@cindex asking the user questions
@cindex querying the user
@@ -1272,7 +1272,7 @@
box or the minibuffer, as appropriate.
@end defun
-@node Multiple Queries
+@node Multiple Queries, Reading a Password, Yes-or-No Queries, Minibuffers
@section Asking Multiple Y-or-N Questions
When you have a series of similar questions to ask, such as ``Do you
@@ -1362,7 +1362,7 @@
The return value of @code{map-y-or-n-p} is the number of objects acted on.
@end defun
-@node Reading a Password
+@node Reading a Password, Minibuffer Misc, Multiple Queries, Minibuffers
@section Reading a Password
@cindex passwords, reading
@@ -1396,7 +1396,7 @@
nothing is echoed.
@end defopt
-@node Minibuffer Misc
+@node Minibuffer Misc, , Reading a Password, Minibuffers
@section Minibuffer Miscellany
This section describes some basic functions and variables related to
diff -r dcf9067f26bb man/lispref/modes.texi
--- a/man/lispref/modes.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/modes.texi Fri Feb 28 09:06:56 2014 -0700
@@ -25,7 +25,7 @@
* Hooks:: How to use hooks; how to write code that provides hooks.
@end menu
-@node Major Modes
+@node Major Modes, Minor Modes, Modes, Modes
@section Major Modes
@cindex major mode
@cindex Fundamental mode
@@ -93,7 +93,7 @@
mode.
@end menu
-@node Major Mode Conventions
+@node Major Mode Conventions, Example Major Modes, Major Modes, Major Modes
@subsection Major Mode Conventions
The code for existing major modes follows various coding conventions,
@@ -259,7 +259,7 @@
subsequent major mode. @xref{Hooks}.
@end defvar
-@node Example Major Modes
+@node Example Major Modes, Auto Major Mode, Major Mode Conventions, Major Modes
@subsection Major Mode Examples
Text mode is perhaps the simplest mode besides Fundamental mode.
@@ -490,7 +490,7 @@
@end group
@end smallexample
-@node Auto Major Mode
+@node Auto Major Mode, Mode Help, Example Major Modes, Major Modes
@subsection How XEmacs Chooses a Major Mode
Based on information in the file name or in the file itself, XEmacs
@@ -675,7 +675,7 @@
@code{normal-mode}.
@end defun
-@node Mode Help
+@node Mode Help, Derived Modes, Auto Major Mode, Major Modes
@subsection Getting Help about a Major Mode
@cindex mode help
@cindex help for major mode
@@ -704,7 +704,7 @@
mode.
@end defvar
-@node Derived Modes
+@node Derived Modes, , Mode Help, Major Modes
@subsection Defining Derived Modes
It's often useful to define a new major mode in terms of an existing
@@ -768,7 +768,7 @@
@code{define-derived-mode} does that automatically.
@end defmac
-@node Minor Modes
+@node Minor Modes, Modeline Format, Major Modes, Modes
@section Minor Modes
@cindex minor mode
@@ -798,7 +798,7 @@
* Keymaps and Minor Modes:: How a minor mode can have its own keymap.
@end menu
-@node Minor Mode Conventions
+@node Minor Mode Conventions, Keymaps and Minor Modes, Minor Modes, Minor Modes
@subsection Conventions for Writing Minor Modes
@cindex minor mode conventions
@cindex conventions for writing minor modes
@@ -878,7 +878,7 @@
@end smallexample
@end itemize
-@node Keymaps and Minor Modes
+@node Keymaps and Minor Modes, , Minor Mode Conventions, Minor Modes
@subsection Keymaps and Minor Modes
Each minor mode can have its own keymap, which is active when the mode
@@ -894,7 +894,7 @@
substituting your own definition of @code{self-insert-command} for the
standard one. The editor command loop handles this function specially.)
-@node Modeline Format
+@node Modeline Format, Hooks, Minor Modes, Modes
@section Modeline Format
@cindex modeline
@@ -937,7 +937,7 @@
* %-Constructs:: Putting information into a modeline.
@end menu
-@node Modeline Data
+@node Modeline Data, Modeline Variables, Modeline Format, Modeline Format
@subsection The Data Structure of the Modeline
@cindex modeline construct
@@ -1071,7 +1071,7 @@
@end group
@end example
-@node Modeline Variables
+@node Modeline Variables, %-Constructs, Modeline Data, Modeline Format
@subsection Variables Used in the Modeline
This section describes variables incorporated by the
@@ -1202,7 +1202,7 @@
that appears in the mode line.
@end defvar
-@node %-Constructs
+@node %-Constructs, , Modeline Variables, Modeline Format
@subsection @code{%}-Constructs in the ModeLine
The following table lists the recognized @code{%}-constructs and what
@@ -1304,7 +1304,7 @@
@code{display-time} modifies the value of @code{global-mode-string}.
@end table
-@node Hooks
+@node Hooks, , Modeline Format, Modes
@section Hooks
@cindex hooks
diff -r dcf9067f26bb man/lispref/mule.texi
--- a/man/lispref/mule.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/mule.texi Fri Feb 28 09:06:56 2014 -0700
@@ -3,7 +3,7 @@
@c Copyright (C) 1996 Ben Wing, 2001-2002 Free Software Foundation.
@c See the file lispref.texi for copying conditions.
@setfilename ../../info/internationalization.info
-@node MULE, Tips, Internationalization, top
+@node MULE, Tips, Internationalization, Top
@chapter MULE
@dfn{MULE} is the name originally given to the version of GNU Emacs
diff -r dcf9067f26bb man/lispref/numbers.texi
--- a/man/lispref/numbers.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/numbers.texi Fri Feb 28 09:06:56 2014 -0700
@@ -77,7 +77,7 @@
* Random Numbers:: Obtaining random integers, predictable or not.
@end menu
-@node Integer Basics
+@node Integer Basics, Rational Basics, Numbers, Numbers
@section Integer Basics
The range of values for an integer depends on the machine. If a
@@ -201,7 +201,7 @@
@end ignore
-@node Rational Basics
+@node Rational Basics, Float Basics, Integer Basics, Numbers
@section Rational Basics
Ratios (built-in rational numbers) are available only when the bignum
@@ -225,7 +225,7 @@
@end defun
-@node Float Basics
+@node Float Basics, The Bignum Extension, Rational Basics, Numbers
@section Floating Point Basics
XEmacs supports floating point numbers. The precise range of floating
@@ -310,7 +310,7 @@
@code{least-positive-float} and @code{least-positive-normalized-float}.
-@node The Bignum Extension
+@node The Bignum Extension, Predicates on Numbers, Float Basics, Numbers
@section The Bignum Extension
In XEmacs 21.5.18, an extension was added by @email{james@(a)xemacs.org,
@@ -373,7 +373,7 @@
@end menu
-@node Bignum Basics
+@node Bignum Basics, Ratio Basics, The Bignum Extension, The Bignum Extension
@subsection Bignum Basics
In most cases, bignum support should be transparent to users and Lisp
@@ -387,7 +387,7 @@
@samp{%x}, and @samp{%u} format conversions.
-@node Ratio Basics
+@node Ratio Basics, Bigfloat Basics, Bignum Basics, The Bignum Extension
@subsection Ratio Basics
Ratios, when available, have the read syntax and print representation
@@ -396,7 +396,7 @@
conversions.
-@node Bigfloat Basics
+@node Bigfloat Basics, Canonicalization and Contagion, Ratio Basics, The Bignum Extension
@subsection Bigfloat Basics
Bigfloats, when available, have the same read syntax and print
@@ -437,7 +437,7 @@
@result{} 9.99999999999999E14
@end example
-@node Canonicalization and Contagion
+@node Canonicalization and Contagion, Compatibility Issues, Bigfloat Basics, The Bignum Extension
@subsection Canonicalization and Contagion
@dfn{Canonicalization} is a rule intended to enhance the time and space
@@ -528,7 +528,7 @@
bug.
-@node Compatibility Issues
+@node Compatibility Issues, , Canonicalization and Contagion, The Bignum Extension
@subsection Compatibility Issues
@emph{Surgeon General's Warning}: The automatic conversions cannot be
@@ -592,7 +592,7 @@
@ref{Comparison of Numbers}.
-@node Predicates on Numbers
+@node Predicates on Numbers, Comparison of Numbers, The Bignum Extension, Numbers
@section Type Predicates for Numbers
The functions in this section test whether the argument is a number or
@@ -702,7 +702,7 @@
@end defun
-@node Comparison of Numbers
+@node Comparison of Numbers, Numeric Conversions, Predicates on Numbers, Numbers
@section Comparison of Numbers
@cindex number equality
@@ -876,7 +876,7 @@
@end example
@end defun
-@node Numeric Conversions
+@node Numeric Conversions, Arithmetic Operations, Comparison of Numbers, Numbers
@section Numeric Conversions
@cindex rounding in conversions
@@ -923,7 +923,7 @@
implementation.
@end defun
-@node Arithmetic Operations
+@node Arithmetic Operations, Rounding Operations, Numeric Conversions, Numbers
@section Arithmetic Operations
XEmacs Lisp provides the traditional four arithmetic operations:
@@ -1166,7 +1166,7 @@
Conversions}.
@end defun
-@node Rounding Operations
+@node Rounding Operations, Bitwise Operations, Arithmetic Operations, Numbers
@section Rounding Operations
@cindex rounding without conversion
@@ -1208,7 +1208,7 @@
depended on the underlying machine and the C implementation.
@end defun
-@node Bitwise Operations
+@node Bitwise Operations, Math Functions, Rounding Operations, Numbers
@section Bitwise Operations on Integers
In a computer, an integer is represented as a binary number, a
@@ -1513,7 +1513,7 @@
@end example
@end defun
-@node Math Functions
+@node Math Functions, Random Numbers, Bitwise Operations, Numbers
@section Standard Mathematical Functions
@cindex transcendental functions
@cindex mathematical functions
@@ -1595,7 +1595,7 @@
This returns the cube root of @var{number}.
@end defun
-@node Random Numbers
+@node Random Numbers, , Math Functions, Numbers
@section Random Numbers
@cindex random numbers
diff -r dcf9067f26bb man/lispref/objects.texi
--- a/man/lispref/objects.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/objects.texi Fri Feb 28 09:06:56 2014 -0700
@@ -60,7 +60,7 @@
* Equality Predicates:: Tests of equality between any two objects.
@end menu
-@node Printed Representation
+@node Printed Representation, Comments, Lisp Data Types, Lisp Data Types
@section Printed Representation and Read Syntax
@cindex printed representation
@cindex read syntax
@@ -104,7 +104,7 @@
not be evaluated later. @xref{Input Functions}, for a description of
@code{read}, the basic function for reading objects.
-@node Comments
+@node Comments, Primitive Types, Printed Representation, Lisp Data Types
@section Comments
@cindex comments
@cindex @samp{;} in comment
@@ -124,7 +124,7 @@
@xref{Comment Tips}, for conventions for formatting comments.
-@node Primitive Types
+@node Primitive Types, Programming Types, Comments, Lisp Data Types
@section Primitive Types
@cindex primitive types
@@ -252,7 +252,7 @@
toolbar-data
@end itemize
-@node Programming Types
+@node Programming Types, Editing Types, Primitive Types, Lisp Data Types
@section Programming Types
@cindex programming types
@@ -287,7 +287,7 @@
* Weak List Type:: A list with special garbage-collection properties.
@end menu
-@node Integer Type
+@node Integer Type, Floating Point Type, Programming Types, Programming Types
@subsection Integer Type
In XEmacs Lisp, integers can be fixnums (that is, fixed-precision
@@ -321,7 +321,7 @@
@xref{Numbers}, for more information.
-@node Floating Point Type
+@node Floating Point Type, Character Type, Integer Type, Programming Types
@subsection Floating Point Type
XEmacs supports floating point numbers. The precise range of floating
@@ -335,7 +335,7 @@
@xref{Numbers}, for more information.
-@node Character Type
+@node Character Type, Symbol Type, Floating Point Type, Programming Types
@subsection Character Type
@cindex @sc{ascii} character codes
@cindex char-int confoundance disease
@@ -673,7 +673,7 @@
the easily readable escape sequences, such as @samp{\t}, instead of an
actual whitespace character such as a tab.
-@node Symbol Type
+@node Symbol Type, Sequence Type, Character Type, Programming Types
@subsection Symbol Type
A @dfn{symbol} in XEmacs Lisp is an object with a name. The symbol
@@ -740,7 +740,7 @@
@end group
@end example
-@node Sequence Type
+@node Sequence Type, Cons Cell Type, Symbol Type, Programming Types
@subsection Sequence Types
A @dfn{sequence} is a Lisp object that represents an ordered set of
@@ -770,7 +770,7 @@
exception: the empty list @code{()} always stands for the same object,
@code{nil}.
-@node Cons Cell Type
+@node Cons Cell Type, Array Type, Sequence Type, Programming Types
@subsection Cons Cell and List Types
@cindex address field of register
@cindex decrement field of register
@@ -890,7 +890,7 @@
* Association List Type:: A specially constructed list.
@end menu
-@node Dotted Pair Notation
+@node Dotted Pair Notation, Association List Type, Cons Cell Type, Cons Cell Type
@subsubsection Dotted Pair Notation
@cindex dotted pair notation
@cindex @samp{.} in lists
@@ -967,7 +967,7 @@
@end example
@end ifinfo
-@node Association List Type
+@node Association List Type, , Dotted Pair Notation, Cons Cell Type
@subsubsection Association List Type
An @dfn{association list} or @dfn{alist} is a specially-constructed
@@ -992,7 +992,7 @@
@xref{Association Lists}, for a further explanation of alists and for
functions that work on alists.
-@node Array Type
+@node Array Type, String Type, Cons Cell Type, Programming Types
@subsection Array Type
An @dfn{array} is composed of an arbitrary number of slots for
@@ -1021,7 +1021,7 @@
The array type is contained in the sequence type and contains the
string type, the vector type, and the bit vector type.
-@node String Type
+@node String Type, Vector Type, Array Type, Programming Types
@subsection String Type
A @dfn{string} is an array of characters. Strings are used for many
@@ -1134,7 +1134,7 @@
@xref{Strings and Characters}, for functions that work on strings.
-@node Vector Type
+@node Vector Type, Bit Vector Type, String Type, Programming Types
@subsection Vector Type
A @dfn{vector} is a one-dimensional array of elements of any type. It
@@ -1154,7 +1154,7 @@
@xref{Vectors}, for functions that work with vectors.
-@node Bit Vector Type
+@node Bit Vector Type, Function Type, Vector Type, Programming Types
@subsection Bit Vector Type
A @dfn{bit vector} is a one-dimensional array of 1's and 0's. It
@@ -1176,7 +1176,7 @@
@xref{Bit Vectors}, for functions that work with bit vectors.
-@node Function Type
+@node Function Type, Macro Type, Bit Vector Type, Programming Types
@subsection Function Type
Just as functions in other programming languages are executable,
@@ -1197,7 +1197,7 @@
a function object at run time and then call it with the primitive
functions @code{funcall} and @code{apply}. @xref{Calling Functions}.
-@node Macro Type
+@node Macro Type, Primitive Function Type, Function Type, Programming Types
@subsection Macro Type
A @dfn{Lisp macro} is a user-defined construct that extends the Lisp
@@ -1211,7 +1211,7 @@
a macro as far as XEmacs is concerned. @xref{Macros}, for an explanation
of how to write a macro.
-@node Primitive Function Type
+@node Primitive Function Type, Compiled-Function Type, Macro Type, Programming Types
@subsection Primitive Function Type
@cindex special operators
@@ -1247,7 +1247,7 @@
@end group
@end example
-@node Compiled-Function Type
+@node Compiled-Function Type, Autoload Type, Primitive Function Type, Programming Types
@subsection Compiled-Function Type
The byte compiler produces @dfn{compiled-function objects}. The
@@ -1259,7 +1259,7 @@
@samp{#<compiled-function...>}. If @code{print-readably} is true,
however, it is @samp{#[...]}.
-@node Autoload Type
+@node Autoload Type, Char Table Type, Compiled-Function Type, Programming Types
@subsection Autoload Type
An @dfn{autoload object} is a list whose first element is the symbol
@@ -1279,13 +1279,13 @@
@code{autoload}, which stores the object in the function cell of a
symbol. @xref{Autoload}, for more details.
-@node Char Table Type
+@node Char Table Type, Hash Table Type, Autoload Type, Programming Types
@subsection Char Table Type
@cindex char table type
(not yet documented)
-@node Hash Table Type
+@node Hash Table Type, Range Table Type, Char Table Type, Programming Types
@subsection Hash Table Type
@cindex hash table type
@@ -1317,7 +1317,7 @@
@xref{Hash Tables}, for information on how to create and work with hash
tables.
-@node Range Table Type
+@node Range Table Type, Weak List Type, Hash Table Type, Programming Types
@subsection Range Table Type
@cindex range table type
@@ -1343,13 +1343,13 @@
@xref{Range Tables}, for information on how to create and work with range
tables.
-@node Weak List Type
+@node Weak List Type, , Range Table Type, Programming Types
@subsection Weak List Type
@cindex weak list type
(not yet documented)
-@node Editing Types
+@node Editing Types, Window-System Types, Programming Types, Lisp Data Types
@section Editing Types
@cindex editing types
@@ -1381,7 +1381,7 @@
* ToolTalk Pattern Type:: A pattern, in the ToolTalk IPC protocol.
@end menu
-@node Buffer Type
+@node Buffer Type, Marker Type, Editing Types, Editing Types
@subsection Buffer Type
A @dfn{buffer} is an object that holds text that can be edited
@@ -1444,7 +1444,7 @@
@end group
@end example
-@node Marker Type
+@node Marker Type, Extent Type, Buffer Type, Editing Types
@subsection Marker Type
A @dfn{marker} denotes a position in a specific buffer. Markers
@@ -1466,7 +1466,7 @@
@xref{Markers}, for information on how to test, create, copy, and move
markers.
-@node Extent Type
+@node Extent Type, Window Type, Marker Type, Editing Types
@subsection Extent Type
An @dfn{extent} specifies temporary alteration of the display
@@ -1498,7 +1498,7 @@
Extents are used to implement text properties. @xref{Text Properties}.
-@node Window Type
+@node Window Type, Frame Type, Extent Type, Editing Types
@subsection Window Type
A @dfn{window} describes the portion of the frame that XEmacs uses to
@@ -1532,7 +1532,7 @@
@xref{Windows}, for a description of the functions that work on windows.
-@node Frame Type
+@node Frame Type, Device Type, Window Type, Editing Types
@subsection Frame Type
A @var{frame} is a rectangle on the screen (a @dfn{window} in standard
@@ -1555,7 +1555,7 @@
@xref{Frames}, for a description of the functions that work on frames.
-@node Device Type
+@node Device Type, Console Type, Frame Type, Editing Types
@subsection Device Type
A @dfn{device} represents a single display on which frames exist.
@@ -1579,7 +1579,7 @@
@xref{Consoles and Devices}, for a description of several functions
related to devices.
-@node Console Type
+@node Console Type, Window Configuration Type, Device Type, Editing Types
@subsection Console Type
A @dfn{console} represents a single keyboard to which devices
@@ -1608,7 +1608,7 @@
@xref{Consoles and Devices}, for a description of several functions
related to consoles.
-@node Window Configuration Type
+@node Window Configuration Type, Event Type, Console Type, Editing Types
@subsection Window Configuration Type
@cindex screen layout
@@ -1630,12 +1630,12 @@
@xref{Window Configurations}, for a description of several functions
related to window configurations.
-@node Event Type
+@node Event Type, Process Type, Window Configuration Type, Editing Types
@subsection Event Type
(not yet documented)
-@node Process Type
+@node Process Type, Stream Type, Event Type, Editing Types
@subsection Process Type
The word @dfn{process} usually means a running program. XEmacs itself
@@ -1663,7 +1663,7 @@
return information about, send input or signals to, and receive output
from processes.
-@node Stream Type
+@node Stream Type, Keymap Type, Process Type, Editing Types
@subsection Stream Type
A @dfn{stream} is an object that can be used as a source or sink for
@@ -1687,7 +1687,7 @@
@xref{Read and Print}, for a description of functions
related to streams, including parsing and printing functions.
-@node Keymap Type
+@node Keymap Type, Syntax Table Type, Stream Type, Editing Types
@subsection Keymap Type
A @dfn{keymap} maps keys typed by the user to commands. This mapping
@@ -1700,7 +1700,7 @@
@xref{Keymaps}, for information about creating keymaps, handling prefix
keys, local as well as global keymaps, and changing key bindings.
-@node Syntax Table Type
+@node Syntax Table Type, Display Table Type, Keymap Type, Editing Types
@subsection Syntax Table Type
Under XEmacs 20, a @dfn{syntax table} is a particular type of char
@@ -1720,7 +1720,7 @@
@xref{Syntax Tables}, for details about syntax classes and how to make
and modify syntax tables.
-@node Display Table Type
+@node Display Table Type, Database Type, Syntax Table Type, Editing Types
@subsection Display Table Type
A @dfn{display table} specifies how to display each character code.
@@ -1728,35 +1728,35 @@
table is actually a vector of length 256, although in XEmacs 20 this may
change to be a particular type of char table. @xref{Display Tables}.
-@node Database Type
+@node Database Type, Charset Type, Display Table Type, Editing Types
@subsection Database Type
@cindex database type
(not yet documented)
-@node Charset Type
+@node Charset Type, Coding System Type, Database Type, Editing Types
@subsection Charset Type
@cindex charset type
(not yet documented)
-@node Coding System Type
+@node Coding System Type, ToolTalk Message Type, Charset Type, Editing Types
@subsection Coding System Type
@cindex coding system type
(not yet documented)
-@node ToolTalk Message Type
+@node ToolTalk Message Type, ToolTalk Pattern Type, Coding System Type, Editing Types
@subsection ToolTalk Message Type
(not yet documented)
-@node ToolTalk Pattern Type
+@node ToolTalk Pattern Type, , ToolTalk Message Type, Editing Types
@subsection ToolTalk Pattern Type
(not yet documented)
-@node Window-System Types
+@node Window-System Types, Type Predicates, Editing Types, Lisp Data Types
@section Window-System Types
@cindex window system types
@@ -1779,61 +1779,61 @@
compiled into XEmacs.
@end menu
-@node Face Type
+@node Face Type, Glyph Type, Window-System Types, Window-System Types
@subsection Face Type
@cindex face type
(not yet documented)
-@node Glyph Type
+@node Glyph Type, Specifier Type, Face Type, Window-System Types
@subsection Glyph Type
@cindex glyph type
(not yet documented)
-@node Specifier Type
+@node Specifier Type, Font Instance Type, Glyph Type, Window-System Types
@subsection Specifier Type
@cindex specifier type
(not yet documented)
-@node Font Instance Type
+@node Font Instance Type, Color Instance Type, Specifier Type, Window-System Types
@subsection Font Instance Type
@cindex font instance type
(not yet documented)
-@node Color Instance Type
+@node Color Instance Type, Image Instance Type, Font Instance Type, Window-System Types
@subsection Color Instance Type
@cindex color instance type
(not yet documented)
-@node Image Instance Type
+@node Image Instance Type, Toolbar Button Type, Color Instance Type, Window-System Types
@subsection Image Instance Type
@cindex image instance type
(not yet documented)
-@node Toolbar Button Type
+@node Toolbar Button Type, Subwindow Type, Image Instance Type, Window-System Types
@subsection Toolbar Button Type
@cindex toolbar button type
(not yet documented)
-@node Subwindow Type
+@node Subwindow Type, X Resource Type, Toolbar Button Type, Window-System Types
@subsection Subwindow Type
@cindex subwindow type
(not yet documented)
-@node X Resource Type
+@node X Resource Type, , Subwindow Type, Window-System Types
@subsection X Resource Type
@cindex X resource type
(not yet documented)
-@node Type Predicates
+@node Type Predicates, Equality Predicates, Window-System Types, Lisp Data Types
@section Type Predicates
@cindex predicates
@cindex type checking
@@ -2220,7 +2220,7 @@
@end example
@end defun
-@node Equality Predicates
+@node Equality Predicates, , Type Predicates, Lisp Data Types
@section Equality Predicates
@cindex equality
diff -r dcf9067f26bb man/lispref/os.texi
--- a/man/lispref/os.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/os.texi Fri Feb 28 09:06:56 2014 -0700
@@ -32,7 +32,7 @@
* Special Keysyms:: Defining system-specific key symbols for X windows.
@end ignore
-@node Starting Up
+@node Starting Up, Getting Out, System Interface, System Interface
@section Starting Up XEmacs
This section describes what XEmacs does when it is started, and how you
@@ -46,7 +46,7 @@
and how you can customize them.
@end menu
-@node Start-up Summary
+@node Start-up Summary, Init File, Starting Up, Starting Up
@subsection Summary: Sequence of Actions at Start Up
@cindex initialization
@cindex start up of XEmacs
@@ -157,7 +157,7 @@
message for someone else.
@end defopt
-@node Init File
+@node Init File, Terminal-Specific, Start-up Summary, Starting Up
@subsection The Init File: @file{.emacs}
@cindex init file
@cindex @file{.emacs}
@@ -212,7 +212,7 @@
the user's init file, @file{default.el}, and/or @file{site-start.el}.
@end defvar
-@node Terminal-Specific
+@node Terminal-Specific, Command Line Arguments, Init File, Starting Up
@subsection Terminal-Specific Initialization
@cindex terminal-specific initialization
@@ -288,7 +288,7 @@
@code{term-setup-hook}.
@end defvar
-@node Command Line Arguments
+@node Command Line Arguments, , Terminal-Specific, Starting Up
@subsection Command Line Arguments
@cindex command line arguments
@@ -393,7 +393,7 @@
as a file name to visit.
@end defvar
-@node Getting Out
+@node Getting Out, System Environment, Starting Up, System Interface
@section Getting out of XEmacs
@cindex exiting XEmacs
@@ -408,7 +408,7 @@
* Suspending XEmacs:: Exiting XEmacs reversibly.
@end menu
-@node Killing XEmacs
+@node Killing XEmacs, Suspending XEmacs, Getting Out, Getting Out
@subsection Killing XEmacs
@cindex killing XEmacs
@@ -449,7 +449,7 @@
this hook.
@end defvar
-@node Suspending XEmacs
+@node Suspending XEmacs, , Killing XEmacs, Getting Out
@subsection Suspending XEmacs
@cindex suspending XEmacs
@@ -548,7 +548,7 @@
This variable is a normal hook run after suspending.
@end defvar
-@node System Environment
+@node System Environment, User Identification, Getting Out, System Interface
@section Operating System Environment
@cindex operating system environment
@@ -748,7 +748,7 @@
This function returns the process @sc{id} of the Emacs process.
@end defun
-@node User Identification
+@node User Identification, Time of Day, System Environment, System Interface
@section User Identification
@defvar user-mail-address
@@ -867,7 +867,7 @@
@end enumerate
@end defun
-@node Time of Day
+@node Time of Day, Time Conversion, User Identification, System Interface
@section Time of Day
This section explains how to determine the current time and the time
@@ -940,7 +940,7 @@
(see above) and from @code{file-attributes} (@pxref{File Attributes}).
@end defun
-@node Time Conversion
+@node Time Conversion, Timers, Time of Day, System Interface
@section Time Conversion
These functions convert time values (lists of two or three fixnums)
@@ -1091,7 +1091,7 @@
any further alteration for daylight savings time.
@end defun
-@node Timers
+@node Timers, Terminal Input, Time Conversion, System Interface
@section Timers for Delayed Execution
You can set up a timer to call a function at a specified future time.
@@ -1136,7 +1136,7 @@
(NOTE: In FSF Emacs, this function is called @code{cancel-timer}.)
@end defun
-@node Terminal Input
+@node Terminal Input, Terminal Output, Timers, System Interface
@section Terminal Input
@cindex terminal input
@@ -1151,7 +1151,7 @@
* Recording Input:: Saving histories of recent or all input events.
@end menu
-@node Input Modes
+@node Input Modes, Translating Input, Terminal Input, Terminal Input
@subsection Input Modes
@cindex input modes
@cindex terminal input modes
@@ -1212,7 +1212,7 @@
@end table
@end defun
-@node Translating Input
+@node Translating Input, Recording Input, Input Modes, Terminal Input
@subsection Translating Input Events
@cindex translating input events
@@ -1410,7 +1410,7 @@
The @file{iso-transl} library uses this feature to provide a way of
inputting non-ASCII Latin-1 characters.
-@node Recording Input
+@node Recording Input, , Translating Input, Terminal Input
@subsection Recording Input
@defun recent-keys &optional number
@@ -1468,7 +1468,7 @@
See also the @code{open-termscript} function (@pxref{Terminal Output}).
-@node Terminal Output
+@node Terminal Output, Flow Control, Terminal Input, System Interface
@section Terminal Output
@cindex terminal output
@@ -1556,7 +1556,7 @@
@end deffn
@ignore Not in XEmacs
-@node Special Keysyms
+@node Special Keysyms, Flow Control, Terminal Output, System Interface
@section System-Specific X11 Keysyms
To define system-specific X11 keysyms, set the variable
@@ -1581,7 +1581,7 @@
@end defvar
@end ignore
-@node Flow Control
+@node Flow Control, Batch Mode, Terminal Output, System Interface
@section Flow Control
@cindex flow control characters
@@ -1671,7 +1671,7 @@
setting @code{baud-rate} to a smaller value so that XEmacs uses a smaller
speed when calculating the padding needed. @xref{Terminal Output}.
-@node Batch Mode
+@node Batch Mode, , Flow Control, System Interface
@section Batch Mode
@cindex batch mode
@cindex noninteractive use
diff -r dcf9067f26bb man/lispref/positions.texi
--- a/man/lispref/positions.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/positions.texi Fri Feb 28 09:06:56 2014 -0700
@@ -26,7 +26,7 @@
* Narrowing:: Restricting editing to a portion of the buffer.
@end menu
-@node Point
+@node Point, Motion, Positions, Positions
@section Point
@cindex point
@@ -116,7 +116,7 @@
current buffer, as of the last time it was read in, saved or auto-saved.
@end defvar
-@node Motion
+@node Motion, Excursions, Point, Positions
@section Motion
Motion functions change the value of point, either relative to the
@@ -133,7 +133,7 @@
* Skipping Characters:: Skipping characters belonging to a certain set.
@end menu
-@node Character Motion
+@node Character Motion, Word Motion, Motion, Motion
@subsection Motion by Characters
These functions move point based on a count of characters.
@@ -187,7 +187,7 @@
In an interactive call, @var{count} is the numeric prefix argument.
@end deffn
-@node Word Motion
+@node Word Motion, Buffer End Motion, Character Motion, Motion
@subsection Motion by Words
These functions for parsing words use the syntax table to decide
@@ -224,7 +224,7 @@
words. Otherwise, they do not.
@end defvar
-@node Buffer End Motion
+@node Buffer End Motion, Text Lines, Word Motion, Motion
@subsection Motion to an End of the Buffer
To move point to the beginning of the buffer, write:
@@ -272,7 +272,7 @@
Don't use this function in Lisp programs!
@end deffn
-@node Text Lines
+@node Text Lines, Screen Lines, Buffer End Motion, Motion
@subsection Motion by Text Lines
@cindex lines
@@ -452,7 +452,7 @@
These functions do not move point, but test whether it is already at the
beginning or end of a line.
-@node Screen Lines
+@node Screen Lines, List Motion, Text Lines, Motion
@subsection Motion by Screen Lines
The line functions in the previous section count text lines, delimited
@@ -600,7 +600,7 @@
@end defun
@end ignore
-@node List Motion
+@node List Motion, Skipping Characters, Screen Lines, Motion
@subsection Moving over Balanced Expressions
@cindex sexp motion
@cindex Lisp expression motion
@@ -693,7 +693,7 @@
open-parenthesis syntax.
@end defopt
-@node Skipping Characters
+@node Skipping Characters, , List Motion, Motion
@subsection Skipping Characters
@cindex skipping characters
@@ -751,7 +751,7 @@
@code{skip-chars-forward} except for the direction of motion.
@end defun
-@node Excursions
+@node Excursions, Narrowing, Motion, Positions
@section Excursions
@cindex excursion
@@ -834,7 +834,7 @@
restores the selected window and nothing else.
@end defmac
-@node Narrowing
+@node Narrowing, , Excursions, Positions
@section Narrowing
@cindex narrowing
@cindex restriction (in a buffer)
diff -r dcf9067f26bb man/lispref/postgresql.texi
--- a/man/lispref/postgresql.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/postgresql.texi Fri Feb 28 09:06:56 2014 -0700
@@ -6,7 +6,7 @@
@c Thank you Oscar Figueiredo! This file was shamelessly cloned from
@c ldap.texi.
@setfilename ../../info/postgresql.info
-@node PostgreSQL Support, Internationalization, LDAP Support, top
+@node PostgreSQL Support, Internationalization, LDAP Support, Top
@chapter PostgreSQL Support
@cindex PostgreSQL
@@ -19,7 +19,7 @@
* XEmacs PostgreSQL libpq Examples::
@end menu
-@node Building XEmacs with PostgreSQL support, XEmacs PostgreSQL libpq API, ,PostgreSQL Support
+@node Building XEmacs with PostgreSQL support, XEmacs PostgreSQL libpq API, PostgreSQL Support, PostgreSQL Support
@comment node-name, next, previous, up
@section Building XEmacs with PostgreSQL support
@@ -928,7 +928,7 @@
info regarding a single option.
@end defun
-@node Unimplemented libpq Functions, , Other libpq Functions, XEmacs PostgreSQL libpq API
+@node Unimplemented libpq Functions, , Other libpq Functions, XEmacs PostgreSQL libpq API
@comment node-name, next, previous, up
@subsection Unimplemented libpq Functions
diff -r dcf9067f26bb man/lispref/processes.texi
--- a/man/lispref/processes.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/processes.texi Fri Feb 28 09:06:56 2014 -0700
@@ -50,7 +50,7 @@
* Network:: Opening network connections.
@end menu
-@node Subprocess Creation
+@node Subprocess Creation, Synchronous Processes, Processes, Processes
@section Functions that Create Subprocesses
There are three functions that create a new subprocess in which to run
@@ -129,7 +129,7 @@
file name.
@end defopt
-@node Synchronous Processes
+@node Synchronous Processes, MS-DOS Subprocesses, Subprocess Creation, Processes
@section Creating a Synchronous Process
@cindex synchronous subprocess
@@ -316,7 +316,7 @@
@code{call-process}.
@end defun
-@node MS-DOS Subprocesses
+@node MS-DOS Subprocesses, Asynchronous Processes, Synchronous Processes, Processes
@section MS-DOS Subprocesses
On MS-DOS, you must indicate whether the data going to and from
@@ -342,7 +342,7 @@
@xref{Files and MS-DOS}, for related information.
-@node Asynchronous Processes
+@node Asynchronous Processes, Deleting Processes, MS-DOS Subprocesses, Processes
@section Creating an Asynchronous Process
@cindex asynchronous subprocess
@@ -446,7 +446,7 @@
@xref{Process Information}.
@xref{Process Buffers}.
-@node Deleting Processes
+@node Deleting Processes, Process Information, Asynchronous Processes, Processes
@section Deleting Processes
@cindex deleting processes
@@ -498,7 +498,7 @@
@end smallexample
@end defun
-@node Process Information
+@node Process Information, Input to Processes, Deleting Processes, Processes
@section Process Information
Several functions return information about processes.
@@ -633,7 +633,7 @@
@ref{Asynchronous Processes}).
@end defun
-@node Input to Processes
+@node Input to Processes, Signals to Processes, Process Information, Processes
@section Sending Input to Processes
@cindex process input
@@ -711,7 +711,7 @@
@end smallexample
@end defun
-@node Signals to Processes
+@node Signals to Processes, Output from Processes, Input to Processes, Processes
@section Sending Signals to Processes
@cindex process signals
@cindex sending signals
@@ -817,7 +817,7 @@
specifies which signal to send.
@end deffn
-@node Output from Processes
+@node Output from Processes, Sentinels, Signals to Processes, Processes
@section Receiving Output from Processes
@cindex process output
@cindex output from processes
@@ -836,7 +836,7 @@
Waiting for subprocess output.
@end menu
-@node Process Buffers
+@node Process Buffers, Filter Functions, Output from Processes, Output from Processes
@subsection Process Buffers
A process can (and usually does) have an @dfn{associated buffer},
@@ -910,7 +910,7 @@
subprocess with a @code{SIGHUP} signal (@pxref{Signals to Processes}).
@end defun
-@node Filter Functions
+@node Filter Functions, Accepting Output, Process Buffers, Output from Processes
@subsection Process Filter Functions
@cindex filter function
@cindex process filter
@@ -1078,7 +1078,7 @@
@end smallexample
@end ignore
-@node Accepting Output
+@node Accepting Output, , Filter Functions, Output from Processes
@subsection Accepting Output from Processes
Output from asynchronous subprocesses normally arrives only while
@@ -1121,7 +1121,7 @@
arrived.
@end defun
-@node Sentinels
+@node Sentinels, Process Window Size, Output from Processes, Processes
@section Sentinels: Detecting Process Status Changes
@cindex process sentinel
@cindex sentinel
@@ -1215,7 +1215,7 @@
@end defun
@c XEmacs feature
-@node Process Window Size
+@node Process Window Size, Transaction Queues, Sentinels, Processes
@section Process Window Size
@cindex process window size
@@ -1225,7 +1225,7 @@
with pty's.
@end defun
-@node Transaction Queues
+@node Transaction Queues, Network, Process Window Size, Processes
@section Transaction Queues
@cindex transaction queue
@@ -1266,7 +1266,7 @@
Transaction queues are implemented by means of a filter function.
@xref{Filter Functions}.
-@node Network
+@node Network, , Transaction Queues, Processes
@section Network Connections
@cindex network connection
@cindex TCP
diff -r dcf9067f26bb man/lispref/range-tables.texi
--- a/man/lispref/range-tables.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/range-tables.texi Fri Feb 28 09:06:56 2014 -0700
@@ -3,7 +3,7 @@
@c Copyright (C) 1996 Ben Wing.
@c See the file lispref.texi for copying conditions.
@setfilename ../../info/range-tables.info
-@node Range Tables, Databases, Hash Tables, top
+@node Range Tables, Databases, Hash Tables, Top
@chapter Range Tables
@cindex Range Tables
@@ -34,7 +34,7 @@
* Working With Range Tables:: Range table functions.
@end menu
-@node Introduction to Range Tables
+@node Introduction to Range Tables, Working With Range Tables, Range Tables, Range Tables
@section Introduction to Range Tables
@defun make-range-table &optional type
@@ -74,7 +74,7 @@
themselves be copied.
@end defun
-@node Working With Range Tables
+@node Working With Range Tables, , Introduction to Range Tables, Range Tables
@section Working With Range Tables
@defun get-range-table pos range-table &optional default
diff -r dcf9067f26bb man/lispref/scrollbars.texi
--- a/man/lispref/scrollbars.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/scrollbars.texi Fri Feb 28 09:06:56 2014 -0700
@@ -3,7 +3,7 @@
@c Copyright (C) 1995 Ben Wing.
@c See the file lispref.texi for copying conditions.
@setfilename ../../info/glyphs.info
-@node Scrollbars, Drag and Drop, Gutter, top
+@node Scrollbars, Drag and Drop, Gutter, Top
@chapter Scrollbars
@cindex scrollbars
diff -r dcf9067f26bb man/lispref/searching.texi
--- a/man/lispref/searching.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/searching.texi Fri Feb 28 09:06:56 2014 -0700
@@ -28,7 +28,7 @@
The @samp{skip-chars@dots{}} functions also perform a kind of searching.
@xref{Skipping Characters}.
-@node String Search
+@node String Search, Regular Expressions, Searching and Matching, Searching and Matching
@section Searching for Strings
@cindex string search
@@ -153,7 +153,7 @@
beginning of the match.
@end deffn
-@node Regular Expressions
+@node Regular Expressions, Regexp Search, String Search, Searching and Matching
@section Regular Expressions
@cindex regular expression
@cindex regexp
@@ -184,7 +184,7 @@
* Regexp Example:: Illustrates regular expression syntax.
@end menu
-@node Syntax of Regexps
+@node Syntax of Regexps, Char Classes, Regular Expressions, Regular Expressions
@subsection Syntax of Regular Expressions
Regular expressions have a syntax in which a few characters are
@@ -610,7 +610,7 @@
@end example
@end defun
-@node Char Classes
+@node Char Classes, Regexp Example, Syntax of Regexps, Regular Expressions
@subsection Char Classes
These are the predefined character classes available within regular
@@ -665,7 +665,7 @@
letters @samp{a-F} and @samp{A-F}.
@end table
-@node Regexp Example
+@node Regexp Example, , Char Classes, Regular Expressions
@subsection Complex Regexp Example
Here is a complicated regexp, used by XEmacs to recognize the end of a
@@ -727,7 +727,7 @@
beyond the minimum needed to end a sentence.
@end table
-@node Regexp Search
+@node Regexp Search, POSIX Regexps, Regular Expressions, Searching and Matching
@section Regular Expression Searching
@cindex regular expression searching
@cindex regexp searching
@@ -962,7 +962,7 @@
@end example
@end defun
-@node POSIX Regexps
+@node POSIX Regexps, Search and Replace, Regexp Search, Searching and Matching
@section POSIX Regular Expression Searching
The usual regular expression functions do backtracking when necessary
@@ -1081,7 +1081,7 @@
@end defopt
@end ignore
-@node Search and Replace
+@node Search and Replace, Match Data, POSIX Regexps, Searching and Matching
@section Search and Replace
@cindex replacement
@@ -1175,7 +1175,7 @@
Display some help, then ask again.
@end table
-@node Match Data
+@node Match Data, Searching and Case, Search and Replace, Searching and Matching
@section The Match Data
@cindex match data
@@ -1207,7 +1207,7 @@
* Saving Match Data:: Saving and restoring the match data.
@end menu
-@node Simple Match Data
+@node Simple Match Data, Replacing Match, Match Data, Match Data
@subsection Simple Match Data Access
This section explains how to use the match data to find out what was
@@ -1330,7 +1330,7 @@
(In this case, the index returned is a buffer position; the first
character of the buffer counts as 1.)
-@node Replacing Match
+@node Replacing Match, Entire Match Data, Simple Match Data, Match Data
@subsection Replacing the Text That Matched
This function replaces the text matched by the last search with
@@ -1432,7 +1432,7 @@
@end defun
-@node Entire Match Data
+@node Entire Match Data, Saving Match Data, Replacing Match, Match Data
@subsection Accessing the Entire Match Data
The functions @code{match-data} and @code{set-match-data} read or
@@ -1498,7 +1498,7 @@
@code{store-match-data} is an alias for @code{set-match-data}.
@end defun
-@node Saving Match Data
+@node Saving Match Data, , Entire Match Data, Match Data
@subsection Saving and Restoring the Match Data
When you call a function that may do a search, you may need to save
@@ -1553,7 +1553,7 @@
@end smallexample
@end ignore
-@node Searching and Case
+@node Searching and Case, Standard Regexps, Match Data, Searching and Matching
@section Searching and Case
@cindex searching and case
@@ -1599,7 +1599,7 @@
same as @code{(default-value 'case-fold-search)}.
@end defvar
-@node Standard Regexps
+@node Standard Regexps, , Searching and Case, Searching and Matching
@section Standard Regular Expressions Used in Editing
@cindex regexps used standardly in editing
@cindex standard regexps used in editing
diff -r dcf9067f26bb man/lispref/sequences.texi
--- a/man/lispref/sequences.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/sequences.texi Fri Feb 28 09:06:56 2014 -0700
@@ -62,7 +62,7 @@
* Bit Vector Functions:: Functions specifically for bit vectors.
@end menu
-@node Sequence Functions
+@node Sequence Functions, Arrays, Sequences Arrays Vectors, Sequences Arrays Vectors
@section Sequences
In XEmacs Lisp, a @dfn{sequence} is either a list, a vector, a bit
@@ -257,7 +257,7 @@
characters) a @code{wrong-type-argument} error results.
@end defun
-@node Arrays
+@node Arrays, Array Functions, Sequence Functions, Sequences Arrays Vectors
@section Arrays
@cindex array
@@ -337,7 +337,7 @@
as bits.
@end itemize
-@node Array Functions
+@node Array Functions, Vectors, Arrays, Sequences Arrays Vectors
@section Functions that Operate on Arrays
In this section, we describe the functions that accept strings, vectors,
@@ -428,7 +428,7 @@
The general sequence functions @code{copy-sequence} and @code{length}
are often useful for objects known to be arrays. @xref{Sequence Functions}.
-@node Vectors
+@node Vectors, Vector Functions, Array Functions, Sequences Arrays Vectors
@section Vectors
@cindex vector
@@ -467,7 +467,7 @@
@end group
@end example
-@node Vector Functions
+@node Vector Functions, Bit Vectors, Vectors, Sequences Arrays Vectors
@section Functions That Operate on Vectors
Here are some functions that relate to vectors:
@@ -562,7 +562,7 @@
@end group
@end example
-@node Bit Vectors
+@node Bit Vectors, Bit Vector Functions, Vector Functions, Sequences Arrays Vectors
@section Bit Vectors
@cindex bit vector
@@ -584,7 +584,7 @@
Bit vectors are considered constants for evaluation, like vectors,
strings, and numbers. @xref{Self-Evaluating Forms}.
-@node Bit Vector Functions
+@node Bit Vector Functions, , Bit Vectors, Sequences Arrays Vectors
@section Functions That Operate on Bit Vectors
Here are some functions that relate to bit vectors:
diff -r dcf9067f26bb man/lispref/specifiers.texi
--- a/man/lispref/specifiers.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/specifiers.texi Fri Feb 28 09:06:56 2014 -0700
@@ -4,7 +4,7 @@
@c Copyright (C) 2002, 2004 Free Software Foundation, Inc.
@c See the file lispref.texi for copying conditions.
@setfilename ../../info/specifiers.info
-@node Specifiers, Faces and Window-System Objects, Extents, top
+@node Specifiers, Faces and Window-System Objects, Extents, Top
@chapter Specifiers
@cindex specifier
@@ -48,7 +48,7 @@
Backward compatibility and GNU Emacs.
@end menu
-@node Introduction to Specifiers
+@node Introduction to Specifiers, Simple Specifier Usage, Specifiers, Specifiers
@section Introduction to Specifiers
Perhaps the most useful way to explain specifiers is via an analogy.
@@ -133,7 +133,7 @@
white for all other buffers
@end itemize
-@node Simple Specifier Usage
+@node Simple Specifier Usage, Specifiers In-Depth, Introduction to Specifiers, Specifiers
@section Simple Specifier Usage
@cindex specifier examples
@cindex examples, specifier
@@ -277,7 +277,7 @@
(It should be obvious why the example uses the lazy unreliable method!)
-@node Specifiers In-Depth
+@node Specifiers In-Depth, Specifier Instantiation, Simple Specifier Usage, Specifiers
@section In-Depth Overview of a Specifier
@cindex specification (in a specifier)
@cindex domain (in a specifier)
@@ -435,7 +435,7 @@
might fail---a font or color might not exist on a particular device,
for example.
-@node Specifier Instantiation
+@node Specifier Instantiation, Specifier Types, Specifiers In-Depth, Specifiers
@section How a Specifier Is Instantiated
@cindex fallback (in a specifier)
@cindex specifier, fallback
@@ -652,7 +652,7 @@
Thus it will be idempotent.
-@node Specifier Types
+@node Specifier Types, Adding Specifications, Specifier Instantiation, Specifiers
@section Specifier Types
There are various different types of specifiers. The type of a
@@ -786,7 +786,7 @@
specifier.
@end defun
-@node Adding Specifications
+@node Adding Specifications, Retrieving Specifications, Specifier Types, Specifiers
@section Adding specifications to a Specifier
@defun add-spec-to-specifier specifier instantiator &optional locale tag-set how-to-add
@@ -1070,7 +1070,7 @@
In summary, this function generally prefers more abbreviated forms.
@end defun
-@node Retrieving Specifications
+@node Retrieving Specifications, Specifier Tag Functions, Adding Specifications, Specifiers
@section Retrieving the Specifications from a Specifier
@defun specifier-spec-list specifier &optional locale tag-set exact-p
@@ -1150,7 +1150,7 @@
merging faces.) See @code{specifier-instance}.
@end defun
-@node Specifier Tag Functions
+@node Specifier Tag Functions, Specifier Instantiation Functions, Retrieving Specifications, Specifiers
@section Working With Specifier Tags
A specifier tag set is an entity that is attached to an instantiator
@@ -1241,7 +1241,7 @@
This function returns the charset predicate for the given specifier tag.
@end defun
-@node Specifier Instantiation Functions
+@node Specifier Instantiation Functions, Specifier Examples, Specifier Tag Functions, Specifiers
@section Functions for Instantiating a Specifier
@defun specifier-instance specifier &optional domain default no-fallback
@@ -1355,7 +1355,7 @@
@code{specifier-instance} instead.
@end defun
-@node Specifier Examples
+@node Specifier Examples, Creating Specifiers, Specifier Instantiation Functions, Specifiers
@section Examples of Specifier Usage
Now let us present an example to clarify the theoretical discussions we
@@ -1556,7 +1556,7 @@
on implementing frame-local variables @ref{Specifier Compatibility Notes}.
-@node Creating Specifiers
+@node Creating Specifiers, Specifier Validation Functions, Specifier Examples, Specifiers
@section Creating New Specifier Objects
@defun make-specifier type
@@ -1656,7 +1656,7 @@
Display Table}).
@end defun
-@node Specifier Validation Functions
+@node Specifier Validation Functions, Other Specification Functions, Creating Specifiers, Specifiers
@section Functions for Checking the Validity of Specifier Components
@defun valid-specifier-domain-p domain
@@ -1722,7 +1722,7 @@
specifier type @var{type}.
@end defun
-@node Other Specification Functions
+@node Other Specification Functions, Specifier Compatibility Notes, Specifier Validation Functions, Specifiers
@section Other Functions for Working with Specifications in a Specifier
@defun copy-specifier specifier &optional dest locale tag-set exact-p how-to-add
@@ -1808,7 +1808,7 @@
Given a specifier @var{locale}, this function returns its type.
@end defun
-@node Specifier Compatibility Notes
+@node Specifier Compatibility Notes, , Other Specification Functions, Specifiers
@section Specifier Compatibility Notes
This node describes compatibility issues in the use of specifiers known
diff -r dcf9067f26bb man/lispref/streams.texi
--- a/man/lispref/streams.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/streams.texi Fri Feb 28 09:06:56 2014 -0700
@@ -23,7 +23,7 @@
* Output Variables:: Variables that control what the printing functions do.
@end menu
-@node Streams Intro
+@node Streams Intro, Input Streams, Read and Print, Read and Print
@section Introduction to Reading and Printing
@cindex Lisp reader
@cindex printing
@@ -71,7 +71,7 @@
read sequence without affecting the result of reading it.
@end itemize
-@node Input Streams
+@node Input Streams, Input Functions, Streams Intro, Read and Print
@section Input Streams
@cindex stream (for reading)
@cindex input stream
@@ -268,7 +268,7 @@
@end defun
@end ignore
-@node Input Functions
+@node Input Functions, Output Streams, Input Streams, Read and Print
@section Input Functions
This section describes the Lisp functions and variables that pertain
@@ -335,7 +335,7 @@
@code{read} uses when the @var{stream} argument is @code{nil}.
@end defvar
-@node Output Streams
+@node Output Streams, Output Functions, Input Functions, Read and Print
@section Output Streams
@cindex stream (for printing)
@cindex output stream
@@ -504,7 +504,7 @@
Calling @code{concat} converts the list to a string so you can see its
contents more clearly.
-@node Output Functions
+@node Output Functions, Output Variables, Output Streams, Read and Print
@section Output Functions
This section describes the Lisp functions for printing Lisp objects.
@@ -653,7 +653,7 @@
the printed representation of a Lisp object as a string.
@end defun
-@node Output Variables
+@node Output Variables, , Output Functions, Read and Print
@section Variables Affecting Output
@defvar standard-output
diff -r dcf9067f26bb man/lispref/strings.texi
--- a/man/lispref/strings.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/strings.texi Fri Feb 28 09:06:56 2014 -0700
@@ -33,7 +33,7 @@
* Char Tables:: Mapping from characters to Lisp objects.
@end menu
-@node String Basics
+@node String Basics, Predicates for Strings, Strings and Characters, Strings and Characters
@section String and Character Basics
Strings in XEmacs Lisp are arrays that contain an ordered sequence of
@@ -100,7 +100,7 @@
copy them into buffers. @xref{Character Type}, and @ref{String Type},
for information about the syntax of characters and strings.
-@node Predicates for Strings
+@node Predicates for Strings, Creating Strings, String Basics, Strings and Characters
@section The Predicates for Strings
For more information about general sequence and array predicates,
@@ -120,7 +120,7 @@
of compatibility with previous XEmacs and should not be depended on.
@end defun
-@node Creating Strings
+@node Creating Strings, Predicates for Characters, Predicates for Strings, Strings and Characters
@section Creating Strings
The following functions create strings, either from scratch, or by
@@ -275,7 +275,7 @@
list of strings by splitting a string on occurrences of a regular
expression.
-@node Predicates for Characters
+@node Predicates for Characters, Character Codes, Creating Strings, Strings and Characters
@section The Predicates for Characters
@defun characterp object
@@ -297,7 +297,7 @@
This function returns @code{t} if @var{object} is an integer or character.
@end defun
-@node Character Codes
+@node Character Codes, Text Comparison, Predicates for Characters, Strings and Characters
@section Character Codes
@defun char-int character
@@ -341,7 +341,7 @@
@end defun
@need 2000
-@node Text Comparison
+@node Text Comparison, String Conversion, Character Codes, Strings and Characters
@section Comparison of Characters and Strings
@cindex string equality
@@ -463,7 +463,7 @@
which matches a regular expression against a string, can be used
for a kind of string comparison; see @ref{Regexp Search}.
-@node String Conversion
+@node String Conversion, Modifying Strings, Text Comparison, Strings and Characters
@section Conversion of Characters and Strings
@cindex conversion of strings
@@ -577,7 +577,7 @@
@code{string-to-int} is an obsolete alias for this function.
@end defun
-@node Modifying Strings
+@node Modifying Strings, String Properties, String Conversion, Strings and Characters
@section Modifying Strings
@cindex strings, modifying
@@ -594,7 +594,7 @@
This function returns the tick counter for @samp{string}.
@end defun
-@node String Properties
+@node String Properties, Formatting Strings, Modifying Strings, Strings and Characters
@section String Properties
@cindex string properties
@cindex properties of strings
@@ -609,7 +609,7 @@
a property from a string and @code{object-plist} to retrieve a list of
all the properties in a string.
-@node Formatting Strings
+@node Formatting Strings, Character Case, String Properties, Strings and Characters
@section Formatting Strings
@cindex formatting strings
@cindex strings, formatting them
@@ -891,7 +891,7 @@
conversions.
@end itemize
-@node Character Case
+@node Character Case, Case Tables, Formatting Strings, Strings and Characters
@section Character Case
@cindex upper case
@cindex lower case
@@ -990,7 +990,7 @@
@end example
@end defun
-@node Case Tables
+@node Case Tables, Char Tables, Character Case, Strings and Characters
@section The Case Table
You can customize case conversion by installing a special @dfn{case
@@ -1097,7 +1097,7 @@
You can load the library @file{iso-syntax} to set up the standard syntax
table and define a case table for the 8-bit ISO Latin 1 character set.
-@node Char Tables
+@node Char Tables, , Case Tables, Strings and Characters
@section The Char Table
A char table is a table that maps characters (or ranges of characters)
@@ -1146,7 +1146,7 @@
* Working With Char Tables:: Creating and working with char tables.
@end menu
-@node Char Table Types
+@node Char Table Types, Working With Char Tables, Char Tables, Char Tables
@subsection Char Table Types
Each char table type is used for a different purpose and allows different
@@ -1187,7 +1187,7 @@
This function returns @code{t} if @var{type} if a recognized char table type.
@end defun
-@node Working With Char Tables
+@node Working With Char Tables, , Char Table Types, Char Tables
@subsection Working With Char Tables
@defun make-char-table type
diff -r dcf9067f26bb man/lispref/symbols.texi
--- a/man/lispref/symbols.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/symbols.texi Fri Feb 28 09:06:56 2014 -0700
@@ -31,7 +31,7 @@
for recording miscellaneous information.
@end menu
-@node Symbol Components
+@node Symbol Components, Definitions, Symbols, Symbols
@section Symbol Components
@cindex symbol components
@@ -134,7 +134,7 @@
symbol naming a function written in Lisp would have a lambda expression
(or a byte-code object) in this cell.
-@node Definitions
+@node Definitions, Creating Symbols, Symbol Components, Symbols
@section Defining Symbols
@cindex definition of a symbol
@@ -179,7 +179,7 @@
definitions, and add appropriate information to tag tables and the
@file{DOC} file. @xref{Accessing Documentation}.
-@node Creating Symbols
+@node Creating Symbols, Symbol Properties, Definitions, Symbols
@section Creating and Interning Symbols
@cindex reading symbols
@@ -379,7 +379,7 @@
it returns @code{nil}.
@end defun
-@node Symbol Properties
+@node Symbol Properties, , Creating Symbols, Symbols
@section Symbol Properties
@cindex property list, symbol
@cindex plist, symbol
@@ -416,7 +416,7 @@
* Other Plists:: Accessing property lists stored elsewhere.
@end menu
-@node Plists and Alists
+@node Plists and Alists, Object Plists, Symbol Properties, Symbol Properties
@subsection Property Lists and Association Lists
@cindex property lists vs association lists
@@ -448,7 +448,7 @@
are pushed on the front of the list and later discarded; this is not
possible with a property list.
-@node Object Plists
+@node Object Plists, Other Plists, Plists and Alists, Symbol Properties
@subsection Property List Functions for Objects
Once upon a time, only symbols had property lists. Now, several other
@@ -523,7 +523,7 @@
enough to @code{remprop} for most purposes.)
@end defun
-@node Other Plists
+@node Other Plists, , Object Plists, Symbol Properties
@subsection Property Lists Not Associated with Objects
These functions are useful for manipulating property lists
diff -r dcf9067f26bb man/lispref/syntax.texi
--- a/man/lispref/syntax.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/syntax.texi Fri Feb 28 09:06:56 2014 -0700
@@ -28,7 +28,7 @@
* Syntax Table Internals:: How syntax table information is stored.
@end menu
-@node Syntax Basics
+@node Syntax Basics, Syntax Descriptors, Syntax Tables, Syntax Tables
@section Syntax Table Concepts
@ifinfo
@@ -86,7 +86,7 @@
syntax table, no matter what its contents.
@end defun
-@node Syntax Descriptors
+@node Syntax Descriptors, Syntax Table Functions, Syntax Basics, Syntax Tables
@section Syntax Descriptors
@cindex syntax classes
@@ -126,7 +126,7 @@
* Syntax Flags:: Additional flags each character can have.
@end menu
-@node Syntax Class Table
+@node Syntax Class Table, Syntax Flags, Syntax Descriptors, Syntax Descriptors
@subsection Table of Syntax Classes
Here is a table of syntax classes, the characters that stand for them,
@@ -266,7 +266,7 @@
designator for this syntax code is @samp{@@}.
@end deffn
-@node Syntax Flags
+@node Syntax Flags, , Syntax Class Table, Syntax Descriptors
@subsection Syntax Flags
@cindex syntax flags
@@ -416,7 +416,7 @@
@end table
-@node Syntax Table Functions
+@node Syntax Table Functions, Motion and Syntax, Syntax Descriptors, Syntax Tables
@section Syntax Table Functions
In this section we describe functions for creating, accessing and
@@ -537,7 +537,7 @@
to the current buffer if omitted.
@end defun
-@node Motion and Syntax
+@node Motion and Syntax, Parsing Expressions, Syntax Table Functions, Syntax Tables
@section Motion and Syntax
This section describes functions for moving across characters in
@@ -577,7 +577,7 @@
omitted.
@end defun
-@node Parsing Expressions
+@node Parsing Expressions, Standard Syntax Tables, Motion and Syntax, Syntax Tables
@section Parsing Balanced Expressions
Here are several functions for parsing and scanning balanced
@@ -734,7 +734,7 @@
argument to use, because the number of comments in the buffer cannot
exceed that many.
-@node Standard Syntax Tables
+@node Standard Syntax Tables, Syntax Table Internals, Parsing Expressions, Syntax Tables
@section Some Standard Syntax Tables
Most of the major modes in XEmacs have their own syntax tables. Here
@@ -759,7 +759,7 @@
function.)
@end defvar
-@node Syntax Table Internals
+@node Syntax Table Internals, , Standard Syntax Tables, Syntax Tables
@section Syntax Table Internals
@cindex syntax table internals
diff -r dcf9067f26bb man/lispref/text.texi
--- a/man/lispref/text.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/text.texi Fri Feb 28 09:06:56 2014 -0700
@@ -56,7 +56,7 @@
* Transformations:: MD5 and base64 support.
@end menu
-@node Near Point
+@node Near Point, Buffer Contents, Text, Text
@section Examining Text Near Point
Many functions are provided to look at the characters around point.
@@ -167,7 +167,7 @@
the end of a line.
@end defun
-@node Buffer Contents
+@node Buffer Contents, Comparing Text, Near Point, Text
@section Examining Buffer Contents
This section describes two functions that allow a Lisp program to
@@ -232,7 +232,7 @@
@end defun
@end ignore
-@node Comparing Text
+@node Comparing Text, Insertion, Buffer Contents, Text
@section Comparing Text
@cindex comparing buffer text
@@ -267,7 +267,7 @@
@end example
@end defun
-@node Insertion
+@node Insertion, Commands for Insertion, Comparing Text, Text
@section Inserting Text
@cindex insertion of text
@cindex text insertion
@@ -369,7 +369,7 @@
@end example
@end defun
-@node Commands for Insertion
+@node Commands for Insertion, Deletion, Insertion, Text
@section User-Level Insertion Commands
This section describes higher-level commands for inserting text,
@@ -443,7 +443,7 @@
buffer-local when set in any fashion.
@end defvar
-@node Deletion
+@node Deletion, User-Level Deletion, Commands for Insertion, Text
@section Deleting Text
@cindex deletion vs killing
@@ -529,7 +529,7 @@
The value returned is always @code{nil}.
@end deffn
-@node User-Level Deletion
+@node User-Level Deletion, The Kill Ring, Deletion, Text
@section User-Level Deletion Commands
This section describes higher-level commands for deleting text,
@@ -662,7 +662,7 @@
@code{delete-blank-lines} returns @code{nil}.
@end deffn
-@node The Kill Ring
+@node The Kill Ring, Undo, User-Level Deletion, Text
@section The Kill Ring
@cindex kill ring
@@ -706,7 +706,7 @@
* Internals of Kill Ring:: Variables that hold kill-ring data.
@end menu
-@node Kill Ring Concepts
+@node Kill Ring Concepts, Kill Functions, The Kill Ring, The Kill Ring
@subsection Kill Ring Concepts
The kill ring records killed text as strings in a list, most recent
@@ -732,7 +732,7 @@
change the list itself---the most recent entry always comes first in the
list.
-@node Kill Functions
+@node Kill Functions, Yank Commands, Kill Ring Concepts, The Kill Ring
@subsection Functions for Killing
@code{kill-region} is the usual subroutine for killing text. Any
@@ -773,7 +773,7 @@
@code{kill-append} instead. @xref{Low-Level Kill Ring}.
@end deffn
-@node Yank Commands
+@node Yank Commands, Low-Level Kill Ring, Kill Functions, The Kill Ring
@subsection Functions for Yanking
@dfn{Yanking} means reinserting an entry of previously killed text
@@ -819,7 +819,7 @@
The value is always @code{nil}.
@end deffn
-@node Low-Level Kill Ring
+@node Low-Level Kill Ring, Internals of Kill Ring, Yank Commands, The Kill Ring
@subsection Low-Level Kill Ring
These functions and variables provide access to the kill ring at a lower
@@ -890,7 +890,7 @@
to the newly killed text.
@end defvar
-@node Internals of Kill Ring
+@node Internals of Kill Ring, , Low-Level Kill Ring, The Kill Ring
@subsection Internals of the Kill Ring
The variable @code{kill-ring} holds the kill ring contents, in the
@@ -960,7 +960,7 @@
value for @code{kill-ring-max} is 30.
@end defopt
-@node Undo
+@node Undo, Maintaining Undo, The Kill Ring, Text
@section Undo
@cindex redo
@@ -1059,7 +1059,7 @@
continuing to undo.
@end defun
-@node Maintaining Undo
+@node Maintaining Undo, Filling, Undo, Text
@section Maintaining Undo Lists
This section describes how to enable and disable undo information for
@@ -1118,7 +1118,7 @@
change group is never discarded no matter how big it is.
@end defvar
-@node Filling
+@node Filling, Margins, Maintaining Undo, Text
@section Filling
@cindex filling, explicit
@@ -1261,7 +1261,7 @@
newlines'' act as paragraph separators.
@end defvar
-@node Margins
+@node Margins, Auto Filling, Filling, Text
@section Margins for Filling
@defopt fill-prefix
@@ -1356,7 +1356,7 @@
becomes buffer-local when set in any fashion.
@end defvar
-@node Auto Filling
+@node Auto Filling, Sorting, Margins, Text
@section Auto Filling
@cindex filling, automatic
@cindex Auto Fill mode
@@ -1385,7 +1385,7 @@
@end quotation
@end defvar
-@node Sorting
+@node Sorting, Columns, Auto Filling, Text
@section Sorting Text
@cindex sorting text
@@ -1613,7 +1613,7 @@
@kbd{M-x @code{untabify}} to convert tabs to spaces before sorting.
@end deffn
-@node Columns
+@node Columns, Indentation, Sorting, Text
@comment node-name, next, previous, up
@section Counting Columns
@cindex columns
@@ -1684,7 +1684,7 @@
The return value is the column number actually moved to.
@end defun
-@node Indentation
+@node Indentation, Case Changes, Columns, Text
@section Indentation
@cindex indentation
@@ -1702,7 +1702,7 @@
* Motion by Indent:: Move to first non-blank character.
@end menu
-@node Primitive Indent
+@node Primitive Indent, Mode-Specific Indent, Indentation, Indentation
@subsection Indentation Primitives
This section describes the primitive functions used to count and
@@ -1736,7 +1736,7 @@
this variable automatically makes it local to the current buffer.
@end defopt
-@node Mode-Specific Indent
+@node Mode-Specific Indent, Region Indent, Primitive Indent, Indentation
@subsection Indentation Controlled by Major Mode
An important function of each major mode is to customize the @key{TAB}
@@ -1794,7 +1794,7 @@
by @code{left-margin}.
@end deffn
-@node Region Indent
+@node Region Indent, Relative Indent, Mode-Specific Indent, Indentation
@subsection Indenting an Entire Region
This section describes commands that indent all the lines in the
@@ -1861,7 +1861,7 @@
the beginning of the line (if @var{nochange-regexp} is non-@code{nil}).
@end deffn
-@node Relative Indent
+@node Relative Indent, Indent Tabs, Region Indent, Indentation
@subsection Indentation Relative to Previous Lines
This section describes two commands that indent the current line
@@ -1938,7 +1938,7 @@
column, this command does nothing.
@end deffn
-@node Indent Tabs
+@node Indent Tabs, Motion by Indent, Relative Indent, Indentation
@subsection Adjustable ``Tab Stops''
@cindex tabs stops for indentation
@@ -1967,7 +1967,7 @@
interactively.
@end defopt
-@node Motion by Indent
+@node Motion by Indent, , Indent Tabs, Indentation
@subsection Indentation-Based Motion Commands
These commands, primarily for interactive use, act based on the
@@ -1992,7 +1992,7 @@
nonblank character on that line. It returns @code{nil}.
@end deffn
-@node Case Changes
+@node Case Changes, Text Properties, Indentation, Text
@section Case Changes
@cindex case changes
@@ -2084,7 +2084,7 @@
the numeric prefix argument.
@end deffn
-@node Text Properties
+@node Text Properties, Substitution, Case Changes, Text
@section Text Properties
@cindex text properties
@cindex attributes of text
@@ -2130,7 +2130,7 @@
* Fields:: Emacs-compatible text fields.
@end menu
-@node Examining Properties
+@node Examining Properties, Changing Properties, Text Properties, Text Properties
@subsection Examining Text Properties
The simplest way to examine text properties is to ask for the value of
@@ -2192,7 +2192,7 @@
@end example
@end defvar
-@node Changing Properties
+@node Changing Properties, Property Search, Examining Properties, Text Properties
@subsection Changing Text Properties
The primitives for changing properties apply to a specified range of
@@ -2278,7 +2278,7 @@
(@pxref{Buffer Contents}) which copies text from the buffer
but does not copy its properties.
-@node Property Search
+@node Property Search, Special Properties, Changing Properties, Text Properties
@subsection Property Search Functions
In typical use of text properties, most of the time several or many
@@ -2384,7 +2384,7 @@
for @var{object} is the current buffer.
@end defun
-@node Special Properties
+@node Special Properties, Saving Properties, Property Search, Text Properties
@subsection Properties with Special Meanings
The predefined properties are the same as those for extents.
@@ -2394,7 +2394,7 @@
(deleted section describing FSF Emacs special text properties)
@end ignore
-@node Saving Properties
+@node Saving Properties, Fields, Special Properties, Text Properties
@subsection Saving Text Properties in Files
@cindex text properties in files
@cindex saving text properties
@@ -2460,7 +2460,7 @@
@xref{Format Conversion}, for a related feature.
-@node Fields
+@node Fields, , Saving Properties, Text Properties
@subsection Fields
@cindex text fields
@cindex fields
@@ -2580,7 +2580,7 @@
boundaries are ignored and this function always returns @var{new-pos}.
@end defun
-@node Substitution
+@node Substitution, Registers, Text Properties, Text
@section Substituting for a Character Code
The following functions replace characters within a specified region
@@ -2677,7 +2677,7 @@
@end example
@end defun
-@node Registers
+@node Registers, Transposition, Substitution, Text
@section Registers
@cindex registers
@@ -2797,7 +2797,7 @@
@end deffn
@end ignore
-@node Transposition
+@node Transposition, Change Hooks, Registers, Text
@section Transposition of Text
This subroutine is used by the transposition commands.
@@ -2816,7 +2816,7 @@
all markers unrelocated.
@end defun
-@node Change Hooks
+@node Change Hooks, Transformations, Transposition, Text
@section Change Hooks
@cindex change hooks
@cindex hooks for text changes
@@ -2869,7 +2869,7 @@
that was previously in the unmodified state.
@end defvar
-@node Transformations
+@node Transformations, , Change Hooks, Text
@section Textual transformations---MD5 and base64 support
@cindex MD5 digests
@cindex base64
diff -r dcf9067f26bb man/lispref/tips.texi
--- a/man/lispref/tips.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/tips.texi Fri Feb 28 09:06:56 2014 -0700
@@ -21,7 +21,7 @@
* Library Headers:: Standard headers for library packages.
@end menu
-@node Style Tips
+@node Style Tips, Compilation Tips, Tips, Tips
@section Writing Clean Lisp Programs
Here are some tips for avoiding common errors in writing Lisp code
@@ -256,7 +256,7 @@
Foundation's name.
@end itemize
-@node Compilation Tips
+@node Compilation Tips, Documentation Tips, Style Tips, Tips
@section Tips for Making Compiled Code Fast
@cindex execution speed
@cindex speedups
@@ -316,7 +316,7 @@
the speed. @xref{Inline Functions}.
@end itemize
-@node Documentation Tips
+@node Documentation Tips, Comment Tips, Compilation Tips, Tips
@section Tips for Documentation Strings
Here are some tips for the writing of documentation strings.
@@ -446,7 +446,7 @@
@samp{\\@{@dots{}@}} to display the rest of the mode's keymap.
@end itemize
-@node Comment Tips
+@node Comment Tips, Library Headers, Documentation Tips, Tips
@section Tips on Writing Comments
We recommend these conventions for where to put comments and how to
@@ -536,7 +536,7 @@
depending on the number of semicolons. @xref{Comments,,
Manipulating Comments, xemacs, The XEmacs User's Manual}.
-@node Library Headers
+@node Library Headers, , Comment Tips, Tips
@section Conventional Headers for XEmacs Libraries
@cindex header comments
@cindex library header comments
diff -r dcf9067f26bb man/lispref/toolbar.texi
--- a/man/lispref/toolbar.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/toolbar.texi Fri Feb 28 09:06:56 2014 -0700
@@ -3,7 +3,7 @@
@c Copyright (C) 1995, 1996 Ben Wing.
@c See the file lispref.texi for copying conditions.
@setfilename ../../info/toolbar.info
-@node Toolbar, Gutter, Dialog Boxes, top
+@node Toolbar, Gutter, Dialog Boxes, Top
@chapter Toolbar
@cindex toolbar
@@ -16,7 +16,7 @@
* Other Toolbar Variables:: Controlling the size of toolbars.
@end menu
-@node Toolbar Intro
+@node Toolbar Intro, Creating Toolbar, Toolbar, Toolbar
@section Toolbar Intro
A @dfn{toolbar} is a bar of icons displayed along one edge of a frame.
@@ -59,7 +59,7 @@
the user sets the default toolbar to the same position, it will just
not be visible.
-@node Creating Toolbar
+@node Creating Toolbar, Toolbar Descriptor Format, Toolbar Intro, Toolbar
@section Creating Toolbar
@defun make-toolbar-specifier spec-list
@@ -84,7 +84,7 @@
which modifies an existing toolbar (by adding a button) is presented in
the specifier section @xref{Simple Specifier Usage}.
-@node Toolbar Descriptor Format
+@node Toolbar Descriptor Format, Specifying the Toolbar, Creating Toolbar, Toolbar
@section Toolbar Descriptor Format
The contents of a toolbar are specified using a @dfn{toolbar descriptor}.
@@ -197,7 +197,7 @@
@code{toolbar}.
@end defun
-@node Specifying the Toolbar
+@node Specifying the Toolbar, Other Toolbar Variables, Toolbar Descriptor Format, Toolbar
@section Specifying the Toolbar
In order to specify the contents of a toolbar, set one of the specifier
@@ -280,7 +280,7 @@
toolbar descriptors (@pxref{Toolbar Descriptor Format}).
@end defun
-@node Other Toolbar Variables
+@node Other Toolbar Variables, , Specifying the Toolbar, Toolbar
@section Other Toolbar Variables
The variables to control the toolbar thickness, visibility status, and
diff -r dcf9067f26bb man/lispref/tooltalk.texi
--- a/man/lispref/tooltalk.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/tooltalk.texi Fri Feb 28 09:06:56 2014 -0700
@@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993 Free Software Foundation, Inc.
@c See the file lispref.texi for copying conditions.
@setfilename ../../info/tooltalk.info
-@node ToolTalk Support, LDAP Support, X-Windows, top
+@node ToolTalk Support, LDAP Support, X-Windows, Top
@chapter ToolTalk Support
@cindex ToolTalk
@@ -13,7 +13,7 @@
* Receiving Messages::
@end menu
-@node XEmacs ToolTalk API Summary
+@node XEmacs ToolTalk API Summary, Sending Messages, ToolTalk Support, ToolTalk Support
@section XEmacs ToolTalk API Summary
The XEmacs Lisp interface to ToolTalk is similar, at least in spirit,
@@ -47,7 +47,7 @@
simplifies building lists that represent messages and patterns.
@end itemize
-@node Sending Messages
+@node Sending Messages, Receiving Messages, XEmacs ToolTalk API Summary, ToolTalk Support
@section Sending Messages
@cindex sending ToolTalk messages
@cindex ToolTalk message
@@ -57,7 +57,7 @@
* Elisp Interface for Sending Messages::
@end menu
-@node Example of Sending Messages
+@node Example of Sending Messages, Elisp Interface for Sending Messages, Sending Messages, Sending Messages
@subsection Example of Sending Messages
Here's a simple example that sends a query to another application
@@ -85,7 +85,7 @@
(send-tooltalk-message m))
@end example
-@node Elisp Interface for Sending Messages
+@node Elisp Interface for Sending Messages, , Example of Sending Messages, Sending Messages
@subsection Elisp Interface for Sending Messages
@defun make-tooltalk-message attributes
@@ -242,7 +242,7 @@
callback, the Lisp/ToolTalk callback machinery does this for you.
@end defun
-@node Receiving Messages
+@node Receiving Messages, , Sending Messages, ToolTalk Support
@section Receiving Messages
@cindex ToolTalk pattern
@cindex receiving ToolTalk messages
@@ -252,7 +252,7 @@
* Elisp Interface for Receiving Messages::
@end menu
-@node Example of Receiving Messages
+@node Example of Receiving Messages, Elisp Interface for Receiving Messages, Receiving Messages, Receiving Messages
@subsection Example of Receiving Messages
Here's a simple example of a handler for a message that tells XEmacs to
@@ -274,7 +274,7 @@
(register-tooltalk-pattern p))
@end example
-@node Elisp Interface for Receiving Messages
+@node Elisp Interface for Receiving Messages, , Example of Receiving Messages, Receiving Messages
@subsection Elisp Interface for Receiving Messages
@defun make-tooltalk-pattern attributes
diff -r dcf9067f26bb man/lispref/variables.texi
--- a/man/lispref/variables.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/variables.texi Fri Feb 28 09:06:56 2014 -0700
@@ -39,7 +39,7 @@
* Variable Aliases:: Making one variable point to another.
@end menu
-@node Global Variables
+@node Global Variables, Constant Variables, Variables, Variables
@section Global Variables
@cindex global variable
@@ -89,7 +89,7 @@
@end group
@end example
-@node Constant Variables
+@node Constant Variables, Local Variables, Global Variables, Variables
@section Variables That Never Change
@vindex nil
@vindex t
@@ -113,7 +113,7 @@
@end group
@end example
-@node Local Variables
+@node Local Variables, Void Variables, Constant Variables, Variables
@section Local Variables
@cindex binding local variables
@cindex local variables
@@ -257,7 +257,7 @@
@xref{Eval}.
@end defvar
-@node Void Variables
+@node Void Variables, Defining Variables, Local Variables, Variables
@section When a Variable is ``Void''
@kindex void-variable
@cindex void variable
@@ -371,7 +371,7 @@
@end smallexample
@end defun
-@node Defining Variables
+@node Defining Variables, Accessing Variables, Void Variables, Variables
@section Defining Global Variables
@cindex variable definition
@@ -557,7 +557,7 @@
level in a file, where normally no local binding is in effect, and make
sure to load the file before making a local binding for the variable.
-@node Accessing Variables
+@node Accessing Variables, Setting Variables, Defining Variables, Variables
@section Accessing Variable Values
The usual way to reference a variable is to write the symbol which
@@ -608,7 +608,7 @@
local binding nor a global value.
@end defun
-@node Setting Variables
+@node Setting Variables, Variable Scoping, Accessing Variables, Variables
@section How to Alter a Variable Value
The usual way to change the value of a variable is with the special
@@ -763,7 +763,7 @@
(setq @var{var} (cons @var{value} @var{var})))
@end example
-@node Variable Scoping
+@node Variable Scoping, Buffer-Local Variables, Setting Variables, Variables
@section Scoping Rules for Variable Bindings
A given symbol @code{foo} may have several local variable bindings,
@@ -801,7 +801,7 @@
* Using Scoping:: How to use dynamic scoping carefully and avoid problems.
@end menu
-@node Scope
+@node Scope, Extent, Variable Scoping, Variable Scoping
@subsection Scope
XEmacs Lisp uses @dfn{indefinite scope} for local variable bindings.
@@ -861,7 +861,7 @@
by @code{foo} instead of the one bound by @code{binder}.
@end itemize
-@node Extent
+@node Extent, Impl of Scope, Scope, Variable Scoping
@subsection Extent
@dfn{Extent} refers to the time during program execution that a
@@ -901,7 +901,7 @@
macros, and that any lambda expressions returned will not be
byte-compiled.
-@node Impl of Scope
+@node Impl of Scope, Using Scoping, Extent, Variable Scoping
@subsection Implementation of Dynamic Scoping
@cindex deep binding
@@ -941,7 +941,7 @@
binding, but runs faster, since there is never a need to search for a
binding.
-@node Using Scoping
+@node Using Scoping, , Impl of Scope, Variable Scoping
@subsection Proper Use of Dynamic Scoping
Binding a variable in one function and using it in another is a
@@ -976,7 +976,7 @@
compiler. Choose the variable's name to avoid name conflicts---don't
use short names like @code{x}.
-@node Buffer-Local Variables
+@node Buffer-Local Variables, Variable Aliases, Variable Scoping, Variables
@section Buffer-Local Variables
@cindex variables, buffer-local
@cindex buffer-local variables
@@ -995,7 +995,7 @@
that don't have their own local values.
@end menu
-@node Intro to Buffer-Local
+@node Intro to Buffer-Local, Creating Buffer-Local, Buffer-Local Variables, Buffer-Local Variables
@subsection Introduction to Buffer-Local Variables
A buffer-local variable has a buffer-local binding associated with a
@@ -1046,11 +1046,11 @@
buffer-local bindings for the buffer that holds the file within XEmacs.
@xref{Auto Major Mode}.
-@node Creating Buffer-Local
+@node Creating Buffer-Local, Default Value, Intro to Buffer-Local, Buffer-Local Variables
@subsection Creating and Deleting Buffer-Local Bindings
Besides the functions mentioned here, buffer-local variables are also
-created when file-local variables are set. @xref{Auto Major Mode}
+created when file-local variables are set. @xref{Auto Major Mode}.
. There is no way (outside of `eval' lines, which are normally disabled)
to set the global value of a variable from the file local variable
specifications.
@@ -1215,7 +1215,7 @@
locals are appropriate for data pertaining to where the file came from
or how to save it, rather than with how to edit the contents.
-@node Default Value
+@node Default Value, , Creating Buffer-Local, Buffer-Local Variables
@subsection The Default Value of a Buffer-Local Variable
@cindex default value
@@ -1332,7 +1332,7 @@
@end example
@end defun
-@node Variable Aliases
+@node Variable Aliases, , Buffer-Local Variables, Variables
@section Variable Aliases
@cindex variables, indirect
@cindex indirect variables
diff -r dcf9067f26bb man/lispref/windows.texi
--- a/man/lispref/windows.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/windows.texi Fri Feb 28 09:06:56 2014 -0700
@@ -31,7 +31,7 @@
* Window Configurations:: Saving and restoring the state of the screen.
@end menu
-@node Basic Windows
+@node Basic Windows, Splitting Windows, Windows, Windows
@section Basic Concepts of Emacs Windows
@cindex window
@cindex selected window
@@ -125,7 +125,7 @@
This function returns @code{t} if @var{object} is a window.
@end defun
-@node Splitting Windows
+@node Splitting Windows, Deleting Windows, Basic Windows, Windows
@section Splitting Windows
@cindex splitting windows
@cindex window splitting
@@ -294,7 +294,7 @@
@end smallexample
@end deffn
-@node Deleting Windows
+@node Deleting Windows, Selecting Windows, Splitting Windows, Windows
@section Deleting Windows
@cindex deleting windows
@@ -406,7 +406,7 @@
This function always returns @code{nil}.
@end deffn
-@node Selecting Windows
+@node Selecting Windows, Cyclic Window Ordering, Deleting Windows, Windows
@section Selecting Windows
@cindex selecting windows
@@ -526,7 +526,7 @@
See @code{next-window}, above.
@end defun
-@node Cyclic Window Ordering
+@node Cyclic Window Ordering, Buffers and Windows, Selecting Windows, Windows
@section Cyclic Ordering of Windows
@cindex cyclic ordering of windows
@cindex ordering of windows, cyclic
@@ -669,7 +669,7 @@
@code{next-window}.
@end defun
-@node Buffers and Windows
+@node Buffers and Windows, Displaying Buffers, Cyclic Window Ordering, Windows
@section Buffers and Windows
@cindex examining windows
@cindex windows, controlling precisely
@@ -744,7 +744,7 @@
with the value @code{nil}.
@end defvar
-@node Displaying Buffers
+@node Displaying Buffers, Choosing Window, Buffers and Windows, Windows
@section Displaying Buffers in Windows
@cindex switching to a buffer
@cindex displaying a buffer
@@ -863,7 +863,7 @@
This function returns @code{nil}.
@end deffn
-@node Choosing Window
+@node Choosing Window, Window Point, Displaying Buffers, Windows
@section Choosing a Window for Display
This section describes the basic facility that chooses a window to
@@ -1058,7 +1058,7 @@
non-@code{nil}, and nondedicated otherwise.
@end defun
-@node Window Point
+@node Window Point, Window Start, Choosing Window, Windows
@section Windows and Point
@cindex window position
@cindex window point
@@ -1183,7 +1183,7 @@
@end defun
-@node Window Start
+@node Window Start, Vertical Scrolling, Window Point, Windows
@section The Window Start Position
Each window contains a marker used to keep track of a buffer position
@@ -1330,7 +1330,7 @@
@code{t}. @xref{Horizontal Scrolling}.
@end defun
-@node Vertical Scrolling
+@node Vertical Scrolling, Horizontal Scrolling, Window Start, Windows
@section Vertical Scrolling
@cindex vertical scrolling
@cindex scrolling vertically
@@ -1493,7 +1493,7 @@
@end defopt
-@node Horizontal Scrolling
+@node Horizontal Scrolling, Size of Window, Vertical Scrolling, Windows
@section Horizontal Scrolling
@cindex horizontal scrolling
@@ -1590,7 +1590,7 @@
(window-width window)))))
@end group
@end example
-@node Size of Window
+@node Size of Window, Position of Window, Horizontal Scrolling, Windows
@section The Size of a Window
@cindex window size
@cindex size of window
@@ -1744,7 +1744,7 @@
included.
@end defun
-@node Position of Window
+@node Position of Window, Resizing Windows, Size of Window, Windows
@section The Position of a Window
@cindex window position
@cindex position of window
@@ -1798,7 +1798,7 @@
relative to @code{(0,0)} at the top left corner of the window.
@end defun
-@node Resizing Windows
+@node Resizing Windows, Window Configurations, Position of Window, Windows
@section Changing the Size of a Window
@cindex window resizing
@cindex changing window size
@@ -1934,7 +1934,7 @@
@code{save-selected-window} is what you need here.
@end defvar
-@node Window Configurations
+@node Window Configurations, , Resizing Windows, Windows
@section Window Configurations
@cindex window configurations
@cindex saving window information
diff -r dcf9067f26bb man/lispref/x-windows.texi
--- a/man/lispref/x-windows.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/lispref/x-windows.texi Fri Feb 28 09:06:56 2014 -0700
@@ -24,7 +24,7 @@
* X Miscellaneous:: Other X-specific functions and variables.
@end menu
-@node X Selections
+@node X Selections, X Server, X-Windows, X-Windows
@section X Selections
@cindex selection (for X windows)
@@ -91,7 +91,7 @@
This function is called @code{x-set-cut-buffer} in FSF Emacs.
@end defun
-@node X Server
+@node X Server, X Miscellaneous, X Selections, X-Windows
@section X Server
This section describes how to access and change the overall status of
@@ -103,7 +103,7 @@
* Grabs:: Restricting access to the server by other apps.
@end menu
-@node Resources
+@node Resources, Server Data, X Server, X Server
@subsection Resources
@defun default-x-device
@@ -255,7 +255,7 @@
resources are found for the application class ``XEmacs''.
@end defvar
-@node Server Data
+@node Server Data, Grabs, Resources, X Server
@subsection Data about the X Server
This section describes functions and a variable that you can use to
@@ -284,7 +284,7 @@
@code{GrayScale}, etc.)
@end defun
-@node Grabs
+@node Grabs, , Server Data, X Server
@subsection Restricting Access to the Server by Other Apps
@defun x-grab-keyboard &optional device
@@ -317,7 +317,7 @@
used. If it is @code{t} the pointer will be released on all X devices.
@end defun
-@node X Miscellaneous
+@node X Miscellaneous, , X Server, X-Windows
@section Miscellaneous X Functions and Variables
@defvar x-bitmap-file-path
diff -r dcf9067f26bb man/texinfo/fdl.texi
--- a/man/texinfo/fdl.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/texinfo/fdl.texi Fri Feb 28 09:06:56 2014 -0700
@@ -1,15 +1,15 @@
@c The GNU Free Documentation License.
-@center Version 1.2, November 2002
+@center Version 1.3, 3 November 2008
@c This file is intended to be included within another document,
-@c hence no sectioning command or @node.
+@c hence no sectioning command or @node.
-@c Synced up with: GFDL v1.2 of November 2002.
-@c Synced by: Ben Wing, 2-17-10.
+@c Synced up with: GFDL v1.3 of November 2008.
+@c Synced by: Jerry James, 11 Feb 2014.
@display
-Copyright @copyright{} 2000,2001,2002 Free Software Foundation, Inc.
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+Copyright @copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
+@uref{http://fsf.org/}
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -95,16 +95,16 @@
of text. A copy that is not ``Transparent'' is called ``Opaque''.
Examples of suitable formats for Transparent copies include plain
-@sc{ascii} without markup, Texinfo input format, La@TeX{} input
-format, @acronym{SGML} or @acronym{XML} using a publicly available
-@acronym{DTD}, and standard-conforming simple @acronym{HTML},
-PostScript or @acronym{PDF} designed for human modification. Examples
-of transparent image formats include @acronym{PNG}, @acronym{XCF} and
-@acronym{JPG}. Opaque formats include proprietary formats that can be
-read and edited only by proprietary word processors, @acronym{SGML} or
-@acronym{XML} for which the @acronym{DTD} and/or processing tools are
-not generally available, and the machine-generated @acronym{HTML},
-PostScript or @acronym{PDF} produced by some word processors for
+ASCII without markup, Texinfo input format, La@TeX{} input
+format, SGML or XML using a publicly available
+DTD, and standard-conforming simple HTML,
+PostScript or PDF designed for human modification. Examples
+of transparent image formats include PNG, XCF and
+JPG. Opaque formats include proprietary formats that can be
+read and edited only by proprietary word processors, SGML or
+XML for which the DTD and/or processing tools are
+not generally available, and the machine-generated HTML,
+PostScript or PDF produced by some word processors for
output purposes only.
The ``Title Page'' means, for a printed book, the title page itself,
@@ -114,6 +114,9 @@
the text near the most prominent appearance of the work's title,
preceding the beginning of the body of the text.
+The ``publisher'' means any person or entity that distributes copies
+of the Document to the public.
+
A section ``Entitled XYZ'' means a named subunit of the Document whose
title either is precisely XYZ or contains XYZ in parentheses following
text that translates XYZ in another language. (Here XYZ stands for a
@@ -382,13 +385,30 @@
@item
TERMINATION
-You may not copy, modify, sublicense, or distribute the Document except
-as expressly provided for under this License. Any other attempt to
-copy, modify, sublicense or distribute the Document is void, and will
-automatically terminate your rights under this License. However,
-parties who have received copies, or rights, from you under this
-License will not have their licenses terminated so long as such
-parties remain in full compliance.
+You may not copy, modify, sublicense, or distribute the Document
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense, or distribute it is void, and
+will automatically terminate your rights under this License.
+
+However, if you cease all violation of this License, then your license
+from a particular copyright holder is reinstated (a) provisionally,
+unless and until the copyright holder explicitly and finally
+terminates your license, and (b) permanently, if the copyright holder
+fails to notify you of the violation by some reasonable means prior to
+60 days after the cessation.
+
+Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, receipt of a copy of some or all of the same material does
+not give you any rights to use it.
@item
FUTURE REVISIONS OF THIS LICENSE
@@ -406,7 +426,42 @@
of any later version that has been published (not as a draft) by the
Free Software Foundation. If the Document does not specify a version
number of this License, you may choose any version ever published (not
-as a draft) by the Free Software Foundation.
+as a draft) by the Free Software Foundation. If the Document
+specifies that a proxy can decide which future versions of this
+License can be used, that proxy's public statement of acceptance of a
+version permanently authorizes you to choose that version for the
+Document.
+
+@item
+RELICENSING
+
+``Massive Multiauthor Collaboration Site'' (or ``MMC Site'') means any
+World Wide Web server that publishes copyrightable works and also
+provides prominent facilities for anybody to edit those works. A
+public wiki that anybody can edit is an example of such a server. A
+``Massive Multiauthor Collaboration'' (or ``MMC'') contained in the
+site means any set of copyrightable works thus published on the MMC
+site.
+
+``CC-BY-SA'' means the Creative Commons Attribution-Share Alike 3.0
+license published by Creative Commons Corporation, a not-for-profit
+corporation with a principal place of business in San Francisco,
+California, as well as future copyleft versions of that license
+published by that same organization.
+
+``Incorporate'' means to publish or republish a Document, in whole or
+in part, as part of another Document.
+
+An MMC is ``eligible for relicensing'' if it is licensed under this
+License, and if all works that were first published under this License
+somewhere other than this MMC, and subsequently incorporated in whole
+or in part into the MMC, (1) had no cover texts or invariant sections,
+and (2) were thus incorporated prior to November 1, 2008.
+
+The operator of an MMC Site may republish an MMC contained in the site
+under CC-BY-SA on the same site at any time before August 1, 2009,
+provided the MMC is eligible for relicensing.
+
@end enumerate
@page
@@ -420,7 +475,7 @@
@group
Copyright (C) @var{year} @var{your name}.
Permission is granted to copy, distribute and/or modify this document
- under the terms of the GNU Free Documentation License, Version 1.2
+ under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
Texts. A copy of the license is included in the section entitled ``GNU
@@ -429,7 +484,7 @@
@end smallexample
If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
-replace the ``with(a)dots{}Texts.'' line with this:
+replace the ``with(a)dots{}Texts.''@: line with this:
@smallexample
@group
@@ -451,4 +506,3 @@
@c Local Variables:
@c ispell-local-pdict: "ispell-dict"
@c End:
-
diff -r dcf9067f26bb man/texinfo/texinfo.texi
--- a/man/texinfo/texinfo.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/texinfo/texinfo.texi Fri Feb 28 09:06:56 2014 -0700
@@ -1,20 +1,15 @@
\input texinfo.tex @c -*-texinfo-*-
-@c $Id: texinfo.txi,v 1.225 2008/09/07 22:47:46 karl Exp $
-@c Ordinarily, Texinfo files have the extension .texi. But texinfo.texi
-@c clashes with texinfo.tex on 8.3 filesystems, so we use texinfo.txi.
+@c $Id: texinfo.texi 5381 2013-09-26 23:03:58Z karl $
@c Everything between the start/end of header lines will be passed by
@c XEmacs's {texinfo,makeinfo}-format region commands. See the `start of
@c header' node for more info.
@c %**start of header
-@c Synced up with: Texinfo 4.13 of Sep 18, 2008.
-@c Synced by: Ben Wing, 2-17-10.
+@c Synced up with: Texinfo 5.2 of 26 Sep 2013.
+@c Synced by: Jerry James, 11 Feb 2014.
@c makeinfo and texinfo.tex ignore all text before @setfilename.
-@c
-@c Ordinarily, the setfilename argument ends with .info. But
-@c texinfo.info-13 is too long for 14-character filesystems.
-@setfilename ../../info/texinfo.info
+@setfilename texinfo.info
@c Automake automatically updates version.texi to @set VERSION and
@c @set UPDATED to appropriate values.
@@ -22,8 +17,9 @@
@c XEmacs: @settitle Texinfo @value{edition}
@settitle GNU Texinfo @value{VERSION}
-@c Define a new index for options.
+@c Define a new index for command-line options.
@defcodeindex op
+
@c Put everything except function (command, in this case) names in one
@c index (arbitrarily chosen to be the concept index).
@syncodeindex op cp
@@ -38,23 +34,23 @@
@copying
This manual is for GNU Texinfo (version @value{VERSION}, @value{UPDATED}),
a documentation system that can produce both online information and a
-printed manual from a single source.
+printed manual from a single source using semantic markup.
Copyright @copyright{} 1988, 1990, 1991, 1992, 1993, 1995, 1996, 1997,
-1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
-Free Software Foundation, Inc.
+1998, 1999, 2001, 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
+2010, 2011, 2012, 2013 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.2 or
+under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with no
Invariant Sections, with the Front-Cover Texts being ``A GNU Manual'',
and with the Back-Cover Texts as in (a) below. A copy of the license
is included in the section entitled ``GNU Free Documentation
-License.''
-
-(a) The FSF's Back-Cover Text is: ``You are free to copy and modify
-this GNU Manual. Buying copies from GNU Press supports the FSF in
+License''.
+
+(a) The FSF's Back-Cover Text is: ``You have the freedom to copy and
+modify this GNU manual. Buying copies from the FSF supports it in
developing GNU and promoting software freedom.''
@end quotation
@end copying
@@ -63,11 +59,12 @@
@direntry
* Texinfo: (texinfo). The GNU documentation format.
* install-info: (texinfo)Invoking install-info. Update info/dir entries.
+* makeinfo: (texinfo)Invoking makeinfo. Translate Texinfo source.
+* pod2texi: (pod2texi)Invoking pod2texi. Translate Perl POD to Texinfo.
* texi2dvi: (texinfo)Format with texi2dvi. Print Texinfo documents.
* texi2pdf: (texinfo)PDF Output. PDF output for Texinfo.
* pdftexi2dvi: (texinfo)PDF Output. PDF output for Texinfo.
* texindex: (texinfo)Format with tex/texindex. Sort Texinfo index files.
-* makeinfo: (texinfo)Invoking makeinfo. Translate Texinfo source.
@end direntry
@c Before release, run C-u C-c C-u C-a (texinfo-all-menus-update with a
@@ -84,9 +81,6 @@
@c If you like blank pages, add through texi2dvi -t.
@c setchapternewpage odd
-@c Currently undocumented command, 5 December 1993:
-@c nwnode (Same as node, but no warnings; for `makeinfo'.)
-
@shorttitlepage GNU Texinfo
@@ -130,50 +124,53 @@
This manual is for GNU Texinfo (version @value{VERSION}, @value{UPDATED}),
a documentation system that can produce both online information and a
-printed manual from a single source.
+printed manual from a single source using semantic markup.
The first part of this master menu lists the major nodes in this Info
document, including the @@-command and concept indices. The rest of
the menu lists all the lower level nodes in the document.
-
@end ifnottex
@menu
-* Copying Conditions:: Your rights.
-* Overview:: Texinfo in brief.
-* Texinfo Mode:: Using the XEmacs Texinfo mode.
-* Beginning a File:: What is at the beginning of a Texinfo file?
-* Ending a File:: What is at the end of a Texinfo file?
-* Structuring:: Creating chapters, sections, appendices, etc.
-* Nodes:: Writing nodes, the basic unit of Texinfo.
-* Menus:: Writing menus.
-* Cross References:: Writing cross references.
-* Marking Text:: Marking words and phrases as code,
+* Copying Conditions:: Your rights.
+* Overview:: Texinfo in brief.
+* Texinfo Mode:: Using the XEmacs Texinfo mode.
+* Beginning a File:: What is at the beginning of a Texinfo file?
+* Ending a File:: What is at the end of a Texinfo file?
+* Chapter Structuring:: Creating chapters, sections, appendices, etc.
+* Nodes:: Writing nodes, the basic unit of Texinfo.
+* Menus:: Writing menus.
+* Cross References:: Writing cross references.
+* Marking Text:: Marking words and phrases as code,
keyboard input, meta-syntactic
variables, and the like.
-* Quotations and Examples:: Block quotations, examples, etc.
-* Lists and Tables:: Itemized or numbered lists, and tables.
-* Special Displays:: Floating figures and footnotes.
-* Indices:: Creating indices.
-* Insertions:: Inserting @@-signs, braces, etc.
-* Breaks:: Forcing or preventing line and page breaks.
-* Definition Commands:: Describing functions and the like uniformly.
-* Conditionals:: Specifying text for only some output cases.
-* Internationalization:: Supporting languages other than English.
+* Quotations and Examples:: Block quotations, examples, etc.
+* Lists and Tables:: Itemized or numbered lists, and tables.
+* Special Displays:: Floating figures and footnotes.
+* Indices:: Creating indices.
+* Insertions:: Inserting @@-signs, braces, etc.
+* Breaks:: Forcing or preventing line and page breaks.
+* Definition Commands:: Describing functions and the like uniformly.
+* Internationalization:: Supporting languages other than English.
+* Conditionals:: Specifying text for only some output cases.
* Defining New Texinfo Commands:: User-defined macros and aliases.
-* Hardcopy:: Output for paper, with @TeX{}.
-* Creating and Installing Info Files:: Details on Info output.
-* Generating HTML:: Details on HTML output.
-
-* Command List:: All the Texinfo @@-commands.
-* Tips:: Hints on how to write a Texinfo document.
-* Sample Texinfo Files:: Complete examples, including full texts.
-* Include Files:: How to incorporate other Texinfo files.
-* Headings:: How to write page headings and footings.
-* Catching Mistakes:: How to find formatting mistakes.
-* GNU Free Documentation License::Copying this manual.
-* Command and Variable Index:: A menu containing commands and variables.
-* General Index:: A menu covering many topics.
+* Include Files:: How to incorporate other Texinfo files.
+
+* Hardcopy:: Output for paper, with @TeX{}.
+* Generic Translator @t{texi2any}:: @command{texi2any}, an all-purpose converter.
+* Creating and Installing Info Files:: Details on Info output.
+* Generating HTML:: Details on HTML output.
+@c * texi2any Output Customization:: Fine tuning with initialization files.
+
+* Command List:: All the Texinfo @@-commands.
+* Tips:: Hints on how to write a Texinfo document.
+* Sample Texinfo Files:: Complete examples, including full texts.
+* Headings:: How to write page headings and footings.
+* Catching Mistakes:: How to find mistakes in formatting.
+* Info Format Specification:: Technical details of the Info file format.
+* GNU Free Documentation License:: Copying this manual.
+* Command and Variable Index:: A menu containing commands and variables.
+* General Index:: A menu covering many topics.
@detailmenu
--- The Detailed Node Listing ---
@@ -183,6 +180,8 @@
* Reporting Bugs:: Submitting effective bug reports.
* Using Texinfo:: Create printed or online output.
* Output Formats:: Overview of the supported output formats.
+* Adding Output Formats:: Man pages and implementing new formats.
+* Texinfo Document Structure:: How Texinfo manuals are usually arranged.
* Info Files:: What is an Info file?
* Printed Books:: Characteristics of a printed book or manual.
* Formatting Commands:: @@-commands are used for formatting.
@@ -196,7 +195,7 @@
Using Texinfo Mode
* Texinfo Mode Overview:: How Texinfo mode can help you.
-* XEmacs Editing:: Texinfo mode adds to XEmacs' general
+* XEmacs Editing:: Texinfo mode adds to XEmacs' general
purpose editing features.
* Inserting:: How to insert frequently used @@-commands.
* Showing the Structure:: How to show the structure of a file.
@@ -223,35 +222,31 @@
* Contents:: How to create a table of contents.
* The Top Node:: Creating the `Top' node and master menu.
* Global Document Commands:: Affecting formatting throughout.
-* Software Copying Permissions:: Ensure that you and others continue to
- have the right to use and share software.
Texinfo File Header
* First Line:: The first line of a Texinfo file.
* Start of Header:: Formatting a region requires this.
-* setfilename:: Tell Info the name of the Info file.
-* settitle:: Create a title for the printed work.
+* @t{@@setfilename}:: Tell Info the name of the Info file.
+* @t{@@settitle}:: Create a title for the printed work.
* End of Header:: Formatting a region requires this.
Document Permissions
-* copying:: Declare the document's copying permissions.
-* insertcopying:: Where to insert the permissions.
+* @t{@@copying}:: Declare the document's copying permissions.
+* @t{@@insertcopying}:: Where to insert the permissions.
Title and Copyright Pages
-* titlepage:: Create a title for the printed document.
-* titlefont center sp:: The @code{@@titlefont}, @code{@@center},
+* @t{@@titlepage}:: Create a title for the printed document.
+* @t{@@titlefont @@center @@sp}:: The @code{@@titlefont}, @code{@@center},
and @code{@@sp} commands.
-* title subtitle author:: The @code{@@title}, @code{@@subtitle},
+* @t{@@title @@subtitle @@author}:: The @code{@@title}, @code{@@subtitle},
and @code{@@author} commands.
* Copyright:: How to write the copyright notice and
include copying permissions.
-* end titlepage:: Turn on page headings after the title and
+* Heading Generation:: Turn on page headings after the title and
copyright pages.
-* headings on off:: An option for turning headings on and off
- and double or single sided printing.
The `Top' Node and Master Menu
@@ -260,11 +255,13 @@
Global Document Commands
-* documentdescription:: Document summary for the HTML output.
-* setchapternewpage:: Start chapters on right-hand pages.
-* paragraphindent:: Specify paragraph indentation.
-* firstparagraphindent:: Suppress indentation of the first paragraph.
-* exampleindent:: Specify environment indentation.
+* @t{@@documentdescription}:: Document summary for the HTML output.
+* @t{@@setchapternewpage}:: Start chapters on right-hand pages.
+* @t{@@headings}:: An option for turning headings on and off
+ and double or single sided printing.
+* @t{@@paragraphindent}:: Specify paragraph indentation.
+* @t{@@firstparagraphindent}:: Suppressing first paragraph indentation.
+* @t{@@exampleindent}:: Specify environment indentation.
Ending a Texinfo File
@@ -276,38 +273,35 @@
* Tree Structuring:: A manual is like an upside down tree @dots{}
* Structuring Command Types:: How to divide a manual into parts.
-* makeinfo top:: The @code{@@top} command, part of the `Top' node.
-* chapter::
-* unnumbered & appendix::
-* majorheading & chapheading::
-* section::
-* unnumberedsec appendixsec heading::
-* subsection::
-* unnumberedsubsec appendixsubsec subheading::
-* subsubsection:: Commands for the lowest level sections.
+* @t{@@chapter}:: Chapter structuring.
+* @t{@@unnumbered @@appendix}::
+* @t{@@majorheading @@chapheading}::
+* @t{@@section}::
+* @t{@@unnumberedsec @@appendixsec @@heading}::
+* @t{@@subsection}::
+* @t{@@unnumberedsubsec @@appendixsubsec @@subheading}::
+* @t{@@subsubsection}:: Commands for the lowest level sections.
+* @t{@@part}:: Collections of chapters.
* Raise/lower sections:: How to change commands' hierarchical level.
Nodes
-* Two Paths:: Different commands to structure
- Info output and printed output.
+* @t{@@node}:: Creating nodes, in detail.
+* @t{makeinfo} Pointer Creation:: Letting makeinfo determine node pointers.
+* @t{@@anchor}:: Defining arbitrary cross reference targets.
* Node Menu Illustration:: A diagram, and sample nodes and menus.
-* node:: Creating nodes, in detail.
-* makeinfo Pointer Creation:: Letting makeinfo determine node pointers.
-* anchor:: Defining arbitrary cross-reference targets.
The @code{@@node} Command
* Node Names:: How to choose node and pointer names.
* Writing a Node:: How to write an @code{@@node} line.
-* Node Line Tips:: Keep names short.
-* Node Line Requirements:: Keep names unique, without @@-commands.
+* Node Line Requirements:: Keep names unique.
* First Node:: How to write a `Top' node.
-* makeinfo top command:: How to use the @code{@@top} command.
+* @t{@@top} Command:: How to use the @code{@@top} command.
Menus
-* Menu Location:: Menus go at the ends of short nodes.
+* Menu Location:: Menus go at the ends of nodes.
* Writing a Menu:: What is a menu?
* Menu Parts:: A menu entry has three parts.
* Less Cluttered Menu Entry:: Two part menu entry.
@@ -319,13 +313,13 @@
* References:: What cross references are for.
* Cross Reference Commands:: A summary of the different commands.
* Cross Reference Parts:: A cross reference has several parts.
-* xref:: Begin a reference with `See' @dots{}
+* @t{@@xref}:: Begin a reference with `See' @dots{}
* Top Node Naming:: How to refer to the beginning of another file.
-* ref:: A reference for the last part of a sentence.
-* pxref:: How to write a parenthetical cross reference.
-* inforef:: How to refer to an Info-only file.
-* uref:: How to refer to a uniform resource locator.
-* cite:: How to refer to books not in the Info system.
+* @t{@@ref}:: A reference for the last part of a sentence.
+* @t{@@pxref}:: How to write a parenthetical cross reference.
+* @t{@@inforef}:: How to refer to an Info-only file.
+* @t{@@url}:: How to refer to a uniform resource locator.
+* @t{@@cite}:: How to refer to books not in the Info system.
@code{@@xref}
@@ -335,7 +329,7 @@
* Three Arguments:: @code{@@xref} with three arguments.
* Four and Five Arguments:: @code{@@xref} with four and five arguments.
-Marking Words and Phrases
+Marking Text, Words and Phrases
* Indicating:: How to indicate definitions, files, etc.
* Emphasis:: How to emphasize text.
@@ -343,58 +337,60 @@
Indicating Definitions, Commands, etc.
* Useful Highlighting:: Highlighting provides useful information.
-* code:: Indicating program code.
-* kbd:: Showing keyboard input.
-* key:: Specifying keys.
-* samp:: A literal sequence of characters.
-* verb:: A verbatim sequence of characters.
-* var:: Indicating metasyntactic variables.
-* env:: Indicating environment variables.
-* file:: Indicating file names.
-* command:: Indicating command names.
-* option:: Indicating option names.
-* dfn:: Specifying definitions.
-* abbr:: Indicating abbreviations.
-* acronym:: Indicating acronyms.
-* indicateurl:: Indicating a World Wide Web reference.
-* email:: Indicating an electronic mail address.
+* @t{@@code}:: Indicating program code.
+* @t{@@kbd}:: Showing keyboard input.
+* @t{@@key}:: Specifying keys.
+* @t{@@samp}:: Indicating a literal sequence of characters.
+* @t{@@verb}:: Indicating a verbatim sequence of characters.
+* @t{@@var}:: Indicating metasyntactic variables.
+* @t{@@env}:: Indicating environment variables.
+* @t{@@file}:: Indicating file names.
+* @t{@@command}:: Indicating command names.
+* @t{@@option}:: Indicating option names.
+* @t{@@dfn}:: Specifying definitions.
+* @t{@@abbr}:: Indicating abbreviations.
+* @t{@@acronym}:: Indicating acronyms.
+* @t{@@indicateurl}:: Indicating an example url.
+* @t{@@email}:: Indicating an electronic mail address.
Emphasizing Text
-* emph & strong:: How to emphasize text in Texinfo.
+* @t{@@emph @@strong}:: How to emphasize text in Texinfo.
* Smallcaps:: How to use the small caps font.
* Fonts:: Various font commands for printed output.
Quotations and Examples
* Block Enclosing Commands:: Different constructs for different purposes.
-* quotation:: Writing a quotation.
-* example:: Writing an example in a fixed-width font.
-* verbatim:: Writing a verbatim example.
-* verbatiminclude:: Including a file verbatim.
-* lisp:: Illustrating Lisp code.
-* small:: Examples in a smaller font.
-* display:: Writing an example in the current font.
-* format:: Writing an example without narrowed margins.
-* exdent:: Undo indentation on a line.
-* flushleft & flushright:: Pushing text flush left or flush right.
-* noindent:: Preventing paragraph indentation.
-* indent:: Forcing paragraph indentation.
-* cartouche:: Drawing rounded rectangles around examples.
+* @t{@@quotation}:: Writing a quotation.
+* @t{@@indentedblock}:: Block of text indented on left.
+* @t{@@example}:: Writing an example in a fixed-width font.
+* @t{@@verbatim}:: Writing a verbatim example.
+* @t{@@verbatiminclude}:: Including a file verbatim.
+* @t{@@lisp}:: Illustrating Lisp code.
+* @t{@@small@dots{}}:: Examples in a smaller font.
+* @t{@@display}:: Writing an example in the current font.
+* @t{@@format}:: Writing an example without narrowed margins.
+* @t{@@exdent}:: Undo indentation on a line.
+* @t{@@flushleft @@flushright}:: Pushing text flush left or flush right.
+* @t{@@raggedright}:: Avoiding justification on the right.
+* @t{@@noindent}:: Preventing paragraph indentation.
+* @t{@@indent}:: Forcing paragraph indentation.
+* @t{@@cartouche}:: Drawing rounded rectangles around text.
Lists and Tables
* Introducing Lists:: Texinfo formats lists for you.
-* itemize:: How to construct a simple list.
-* enumerate:: How to construct a numbered list.
+* @t{@@itemize}:: How to construct a simple list.
+* @t{@@enumerate}:: How to construct a numbered list.
* Two-column Tables:: How to construct a two-column table.
* Multi-column Tables:: How to construct generalized tables.
Making a Two-column Table
-* table:: How to construct a two-column table.
-* ftable vtable:: Automatic indexing for two-column tables.
-* itemx:: How to put more entries in the first column.
+* @t{@@table}:: How to construct a two-column table.
+* @t{@@ftable @@vtable}:: Automatic indexing for two-column tables.
+* @t{@@itemx}:: How to put more entries in the first column.
@code{@@multitable}: Multi-column Tables
@@ -409,9 +405,9 @@
Floats
-* float:: Producing floating material.
-* caption shortcaption:: Specifying descriptions for floats.
-* listoffloats:: A table of contents for floats.
+* @t{@@float}:: Producing floating material.
+* @t{@@caption @@shortcaption}:: Specifying descriptions for floats.
+* @t{@@listoffloats}:: A table of contents for floats.
Inserting Images
@@ -434,95 +430,82 @@
Combining Indices
-* syncodeindex:: How to merge two indices, using @code{@@code}
+* @t{@@syncodeindex}:: How to merge two indices, using @code{@@code}
font for the merged-from index.
-* synindex:: How to merge two indices, using the
- default font of the merged-to index.
+* @t{@@synindex}:: How to merge two indices, using the
+ roman font for the merged-from index.
Special Insertions
-* Atsign Braces Comma:: Inserting @@ and @{@} and ,.
+* Special Characters:: Inserting @@ @{@} , \ #
* Inserting Quote Characters:: Inserting left and right quotes, in code.
-* Inserting Space:: How to insert the right amount of space
- within a sentence.
-* Inserting Accents:: How to insert accents and special characters.
-* Inserting Quotation Marks:: How to insert quotation marks.
-* Dots Bullets:: How to insert dots and bullets.
-* TeX and copyright:: How to insert the @TeX{} logo
- and the copyright symbol.
-* euro:: How to insert the Euro currency symbol.
-* pounds:: How to insert the pounds currency symbol.
-* textdegree:: How to insert the degrees symbol.
-* minus:: How to insert a minus sign.
-* geq leq:: How to insert greater/less-than-or-equal signs.
-* math:: How to format a mathematical expression.
-* Click Sequences:: Inserting GUI usage sequences.
-* Glyphs:: How to indicate results of evaluation,
+* Inserting Space:: Inserting the right amount of whitespace.
+* Inserting Accents:: Inserting accents and special characters.
+* Inserting Quotation Marks:: Inserting quotation marks.
+* Inserting Math:: Formatting mathematical expressions.
+* Glyphs for Text:: Inserting Dots, bullets, currencies, etc.
+* Glyphs for Programming:: Indicating results of evaluation,
expansion of macros, errors, etc.
-Inserting @@ and @{@} and @comma{}
-
-* Inserting an Atsign::
-* Inserting Braces::
-* Inserting a Comma::
+Special Characters: Inserting @@ @{@} , \ #
+
+* Inserting an Atsign:: @code{@@@@}, @code{@@atchar@{@}}.
+* Inserting Braces:: @code{@@@{ @@@}}, @code{@@l rbracechar@{@}}.
+* Inserting a Comma:: , and @code{@@comma@{@}}.
+* Inserting a Backslash:: \ and @code{@@backslashchar@{@}}.
+* Inserting a Hashsign:: # and @code{@@hashchar@{@}}.
Inserting Space
+* Multiple Spaces:: Inserting multiple spaces.
* Not Ending a Sentence:: Sometimes a . doesn't end a sentence.
* Ending a Sentence:: Sometimes it does.
-* Multiple Spaces:: Inserting multiple spaces.
-* frenchspacing:: Specifying end-of-sentence spacing.
-* dmn:: How to format a dimension.
-
-Inserting Ellipsis and Bullets
-
-* dots:: How to insert dots @dots{}
-* bullet:: How to insert a bullet.
-
-Inserting @TeX{} and Legal Symbols: @copyright{}, @registeredsymbol{}
-
-* tex:: The @TeX{} logos.
-* copyright symbol:: The copyright symbol (c in a circle).
-* registered symbol:: The registered symbol (R in a circle).
-
-Glyphs for Examples
+* @t{@@frenchspacing}:: Specifying end-of-sentence spacing.
+* @t{@@dmn}:: Formatting a dimension.
+
+Glyphs for Text
+
+* @t{@@TeX @@LaTeX}:: The @TeX{} logos.
+* @t{@@copyright}:: The copyright symbol (c in a circle).
+* @t{@@registeredsymbol}:: The registered symbol (R in a circle).
+* @t{@@dots}:: How to insert ellipses: @dots{} and @enddots{}
+* @t{@@bullet}:: How to insert a bullet: @bullet{}
+* @t{@@euro}:: How to insert the euro currency symbol.
+* @t{@@pounds}:: How to insert the pounds currency symbol.
+* @t{@@textdegree}:: How to insert the degrees symbol.
+* @t{@@minus}:: How to insert a minus sign.
+* @t{@@geq @@leq}:: How to insert greater/less-than-or-equal signs.
+
+Glyphs for Programming
* Glyphs Summary::
-* result:: How to show the result of expression.
-* expansion:: How to indicate an expansion.
-* Print Glyph:: How to indicate printed output.
-* Error Glyph:: How to indicate an error message.
-* Equivalence:: How to indicate equivalence.
-* Point Glyph:: How to indicate the location of point.
-
-Glyphs Summary
-
-* result::
-* expansion::
-* Print Glyph::
-* Error Glyph::
-* Equivalence::
-* Point Glyph::
+* @t{@@result}:: How to show the result of expression.
+* @t{@@expansion}:: How to indicate an expansion.
+* @t{@@print}:: How to indicate generated output.
+* @t{@@error}:: How to indicate an error message.
+* @t{@@equiv}:: How to indicate equivalence.
+* @t{@@point}:: How to indicate the location of point.
+* Click Sequences:: Inserting GUI usage sequences.
Forcing and Preventing Breaks
* Break Commands:: Summary of break-related commands.
* Line Breaks:: Forcing line breaks.
-* - and hyphenation:: Helping @TeX{} with hyphenation points.
-* allowcodebreaks:: Controlling line breaks within @@code text.
-* w:: Preventing unwanted line breaks in text.
-* tie:: Inserting an unbreakable but varying space.
-* sp:: Inserting blank lines.
-* page:: Forcing the start of a new page.
-* group:: Preventing unwanted page breaks.
-* need:: Another way to prevent unwanted page breaks.
+* @t{@@- @@hyphenation}:: Helping @TeX{} with hyphenation points.
+* @t{@@allowcodebreaks}:: Controlling line breaks within @@code text.
+* @t{@@w}:: Preventing unwanted line breaks in text.
+* @t{@@tie}:: Inserting an unbreakable but varying space.
+* @t{@@sp}:: Inserting blank lines.
+* @t{@@page}:: Forcing the start of a new page.
+* @t{@@group}:: Preventing unwanted page breaks.
+* @t{@@need}:: Another way to prevent unwanted page breaks.
Definition Commands
* Def Cmd Template:: Writing descriptions using definition commands.
* Def Cmd Continuation Lines:: Continuing the heading over source lines.
* Optional Arguments:: Handling optional and repeated arguments.
-* deffnx:: Group two or more `first' lines.
+* @t{@@deffnx}:: Group two or more `first' lines.
* Def Cmds in Detail:: Reference for all the definition commands.
* Def Cmd Conventions:: Conventions for writing definitions.
* Sample Function Definition:: An example.
@@ -539,54 +522,91 @@
Object-Oriented Programming
* Variables: Object-Oriented Variables.
-* Methods: Object-Oriented Methods.
+* Methods: Object-Oriented Methods.
+
+Internationalization
+
+* @t{@@documentlanguage}:: Declaring the current language.
+* @t{@@documentencoding}:: Declaring the input encoding.
Conditionally Visible Text
* Conditional Commands:: Text for a given format.
* Conditional Not Commands:: Text for any format other than a given one.
* Raw Formatter Commands:: Using raw formatter commands.
-* set clear value:: Variable tests and substitutions.
+* Inline Conditionals:: Brace-delimited conditional text.
+* @t{@@set @@clear @@value}:: Variable tests and substitutions.
+* Testing for Texinfo Commands:: Testing if a Texinfo command is available.
* Conditional Nesting:: Using conditionals inside conditionals.
@code{@@set}, @code{@@clear}, and @code{@@value}
-* set value:: Expand a flag variable to a string.
-* ifset ifclear:: Format a region if a flag is set.
-* value Example:: An easy way to update edition information.
-
-Internationalization
-
-* documentlanguage:: Declaring the current language.
-* documentencoding:: Declaring the input encoding.
+* @t{@@set @@value}:: Expand a flag variable to a string.
+* @t{@@ifset @@ifclear}:: Format a region if a flag is set.
+* @t{@@value} Example:: An easy way to update edition information.
Defining New Texinfo Commands
* Defining Macros:: Defining and undefining new commands.
* Invoking Macros:: Using a macro, once you've defined it.
* Macro Details:: Limitations of Texinfo macros.
-* alias:: Command aliases.
-* definfoenclose:: Customized highlighting.
+* @t{@@alias}:: Command aliases.
+* @t{@@definfoenclose}:: Customized highlighting.
+* External Macro Processors:: @code{#line} directives.
+
+External Macro Processors: Line Directives
+
+* @t{#line} Directive::
+* TeX: @t{#line} and @TeX{}.
+* Syntax: @t{#line} Syntax Details.
+
+Include Files
+
+* Using Include Files:: How to use the @code{@@include} command.
+* @t{texinfo-multiple-files-update}:: How to create and update nodes and
+ menus when using included files.
+* Include Files Requirements:: @code{texinfo-multiple-files-update} needs.
+* Sample Include File:: A sample outer file with included files
+ within it; and a sample included file.
+* Include Files Evolution:: How use of the @code{@@include} command
+ has changed over time.
Formatting and Printing Hardcopy
-* Use TeX:: Use @TeX{} to format for hardcopy.
-* Format with tex/texindex:: How to format with explicit shell commands.
-* Format with texi2dvi:: A simpler way to format.
-* Print with lpr:: How to print.
-* Within XEmacs:: How to format and print from an XEmacs shell.
+* Use @TeX{}:: Use @TeX{} to format for hardcopy.
+* Format with @t{tex}/@t{texindex}:: How to format with explicit shell commands.
+* Format with @t{texi2dvi}:: A simpler way to format.
+* Print with @t{lpr}:: How to print.
+* Within XEmacs:: How to format and print from an XEmacs shell.
* Texinfo Mode Printing:: How to format and print in Texinfo mode.
* Compile-Command:: How to print using XEmacs's compile command.
* Requirements Summary:: @TeX{} formatting requirements summary.
-* Preparing for TeX:: What to do before you use @TeX{}.
+* Preparing for @TeX{}:: What to do before you use @TeX{}.
* Overfull hboxes:: What are and what to do with overfull hboxes.
-* smallbook:: How to print small format books and manuals.
+* @t{@@smallbook}:: How to print small format books and manuals.
* A4 Paper:: How to print on A4 or A5 paper.
-* pagesizes:: How to print with customized page sizes.
+* @t{@@pagesizes}:: How to print with customized page sizes.
* Cropmarks and Magnification:: How to print marks to indicate the size
of pages and how to print scaled up output.
* PDF Output:: Portable Document Format output.
-* Obtaining TeX:: How to Obtain @TeX{}.
+* Obtaining @TeX{}:: How to obtain @TeX{}.
+
+@code{texi2any}: The Generic Translator for Texinfo
+
+* Reference Implementation:: @command{texi2any}: the reference implementation.
+* Invoking @t{texi2any}:: Running the translator from a shell.
+* @t{texi2any} Printed Output:: Calling @command{texi2dvi}.
+* Pointer Validation:: How to check that pointers point somewhere.
+* Customization Variables:: Configuring @command{texi2any}.
+* Internationalization of Document Strings:: Translating program-inserted text.
+* Invoking @t{pod2texi}:: Translating Perl pod to Texinfo.
+* @t{texi2html}:: An ancestor of @command{texi2any}.
+
+Customization Variables
+
+* Commands: Customization Variables for @@-Commands.
+* Options: Customization Variables and Options.
+* Other: Other Customization Variables.
Creating and Installing Info Files
@@ -595,13 +615,10 @@
Creating an Info File
-* makeinfo advantages:: @code{makeinfo} provides better error checking.
-* Invoking makeinfo:: How to run @code{makeinfo} from a shell.
-* makeinfo options:: Specify fill-column and other options.
-* Pointer Validation:: How to check that pointers point somewhere.
-* makeinfo in XEmacs:: How to run @code{makeinfo} from XEmacs.
-* texinfo-format commands:: Two Info formatting commands written
- in XEmacs Lisp are an alternative
+* @t{makeinfo} Advantages:: @code{makeinfo} provides better error checking.
+* @t{makeinfo} in XEmacs:: How to run @code{makeinfo} from XEmacs.
+* @t{texinfo-format} commands:: Two Info formatting commands written
+ in Emacs Lisp are an alternative
to @code{makeinfo}.
* Batch Formatting:: How to format for Info in XEmacs Batch mode.
* Tag and Split Files:: How tagged and split files help Info
@@ -615,26 +632,29 @@
located in other directories.
* Installing Dir Entries:: How to specify what menu entry to add
to the Info directory.
-* Invoking install-info:: @code{install-info} options.
+* Invoking @t{install-info}:: @code{install-info} options.
Generating HTML
-* HTML Translation:: Details of the HTML output.
-* HTML Splitting:: How HTML output is split.
-* HTML CSS:: Influencing HTML output with Cascading Style Sheets.
-* HTML Xref:: Cross-references in HTML output.
-
-HTML Cross-references
+* HTML Translation:: Details of the HTML output.
+* HTML Splitting:: How HTML output is split.
+* HTML CSS:: Influencing HTML output with Cascading Style Sheets.
+* HTML Xref:: Cross references in HTML output.
+
+HTML Cross References
* Link Basics: HTML Xref Link Basics.
* Node Expansion: HTML Xref Node Name Expansion.
* Command Expansion: HTML Xref Command Expansion.
* 8-bit Expansion: HTML Xref 8-bit Character Expansion.
* Mismatch: HTML Xref Mismatch.
+* Configuration: HTML Xref Configuration. htmlxref.cnf.
+* Preserving links: HTML Xref Link Preservation. MANUAL-noderename.cnf.
@@-Command List
-* Command Syntax:: General syntax for varieties of @@-commands.
+* Command Syntax:: General syntax for varieties of @@-commands.
+* Command Contexts:: Guidelines for which commands can be used where.
Sample Texinfo Files
@@ -643,19 +663,6 @@
* Verbatim Copying License::
* All-permissive Copying License::
-GNU Free Documentation License
-
-Include Files
-
-* Using Include Files:: How to use the @code{@@include} command.
-* texinfo-multiple-files-update:: How to create and update nodes and
- menus when using included files.
-* Include Files Requirements:: @code{texinfo-multiple-files-update} needs.
-* Sample Include File:: A sample outer file with included files
- within it; and a sample included file.
-* Include Files Evolution:: How use of the @code{@@include} command
- has changed over time.
-
Page Headings
* Headings Introduced:: Conventions for using page headings.
@@ -663,22 +670,42 @@
* Heading Choice:: How to specify the type of page heading.
* Custom Headings:: How to create your own headings and footings.
-Formatting Mistakes
-
-* makeinfo Preferred:: @code{makeinfo} finds errors.
+Catching Mistakes
+
+* @t{makeinfo} Preferred:: @code{makeinfo} finds errors.
* Debugging with Info:: How to catch errors with Info formatting.
-* Debugging with TeX:: How to catch errors with @TeX{} formatting.
-* Using texinfo-show-structure:: How to use @code{texinfo-show-structure}.
-* Using occur:: How to list all lines containing a pattern.
-* Running Info-Validate:: How to find badly referenced nodes.
+* Debugging with @TeX{}:: How to catch errors with @TeX{} formatting.
+* Using @t{texinfo-show-structure}:: How to use @code{texinfo-show-structure}.
+* Using @t{occur}:: How to list all lines containing a pattern.
+* Running @t{Info-validate}:: How to find badly referenced nodes.
Finding Badly Referenced Nodes
-* Using Info-validate:: How to run @code{Info-validate}.
+* Using @t{Info-validate}:: How to run @code{Info-validate}.
* Unsplit:: How to create an unsplit file.
* Tagifying:: How to tagify a file.
* Splitting:: How to split a file manually.
+Info Format Specification
+
+* General: Info Format General Layout.
+* Text: Info Format Text Constructs.
+
+Info Format General Layout
+
+* Whole: Info Format Whole Manual. Split vs.@: nonsplit manuals.
+* Preamble: Info Format Preamble.
+* Indirect: Info Format Indirect Tag Table.
+* Tag table: Info Format Tag Table.
+* Local variables: Info Format Local Variables.
+* Regular nodes: Info Format Regular Nodes.
+
+Info Format Text Constructs
+
+* Menu: Info Format Menu.
+* Image: Info Format Image.
+* Printindex: Info Format Printindex.
+* Xref: Info Format Cross Reference.
@end detailmenu
@end menu
@@ -695,16 +722,16 @@
@unnumbered Texinfo Copying Conditions
@cindex Copying conditions
@cindex Conditions for copying Texinfo
-
-The programs currently being distributed that relate to Texinfo include
-@code{makeinfo}, @code{info}, @code{texindex}, and @file{texinfo.tex}.
-These programs are @dfn{free}; this means that everyone is free to use
-them and free to redistribute them on a free basis. The Texinfo-related
-programs are not in the public domain; they are copyrighted and there
-are restrictions on their distribution, but these restrictions are
-designed to permit everything that a good cooperating citizen would want
-to do. What is not allowed is to try to prevent others from further
-sharing any version of these programs that they might get from you.
+@cindex Free software
+@cindex Libre software
+
+GNU Texinfo is @dfn{free software}; this means that everyone is free
+to use it and free to redistribute it on certain conditions. Texinfo
+is not in the public domain; it is copyrighted and there are
+restrictions on its distribution, but these restrictions are designed
+to permit everything that a good cooperating citizen would want to do.
+What is not allowed is to try to prevent others from further sharing
+any version of Texinfo that they might get from you.
Specifically, we want to make sure that you have the right to give away
copies of the programs that relate to Texinfo, that you receive source
@@ -725,10 +752,10 @@
so that any problems introduced by others will not reflect on our
reputation.
-The precise conditions of the licenses for the programs currently being
-distributed that relate to Texinfo are found in the General Public
-Licenses that accompany them. This manual specifically is covered by
-the GNU Free Documentation License (@pxref{GNU Free Documentation
+The precise conditions of the licenses for the programs currently
+being distributed that relate to Texinfo are found in the General
+Public Licenses that accompany them. This manual is covered by the
+GNU Free Documentation License (@pxref{GNU Free Documentation
License}).
@@ -737,27 +764,49 @@
@cindex Overview of Texinfo
@cindex Texinfo overview
-@dfn{Texinfo}@footnote{The first syllable of ``Texinfo'' is pronounced
-like ``speck'', not ``hex''. This odd pronunciation is derived from,
-but is not the same as, the pronunciation of @TeX{}. In the word
-@TeX{}, the @samp{X} is actually the Greek letter ``chi'' rather than
-the English letter ``ex''. Pronounce @TeX{} as if the @samp{X} were the
-last sound in the name `Bach'; but pronounce Texinfo as if the @samp{x}
-were a `k'. Spell ``Texinfo'' with a capital ``T'' and the other
-letters in lower case.} is a documentation system that uses a single
-source file to produce both online information and printed output. This
-means that instead of writing two different documents, one for the
-online information and the other for a printed work, you need write only
-one document. Therefore, when the work is revised, you need revise only
+@dfn{Texinfo} is a documentation system that uses a single source file
+to produce both online information and printed output. This means
+that instead of writing two different documents, one for the online
+information and the other for a printed work, you need write only one
+document. Therefore, when the work is revised, you need revise only
that one document.
+@cindex Semantic markup
+Texinfo's markup commands are almost entirely @dfn{semantic}; that is,
+they specify the intended meaning of text in the document, rather than
+physical formatting instructions.
+
+@cindex Limited scope of Texinfo
+Texinfo was devised for the purpose of writing software documentation
+and manuals. It is not, and was never intended to be, a
+general-purpose formatting program. If you need to lay out a
+newspaper, devise a glossy magazine ad, or follow the exact formatting
+requirements of a publishing house, Texinfo is not the simplest tool.
+On the other hand, if you want to write a good manual for your
+program, Texinfo has many features that will make your job easier.
+Overall, it's intended to let you concentrate on the content, and thus
+provides almost no commands for controlling the final formatting.
+
+@cindex Pronounciation of Texinfo
+@cindex Spelling of Texinfo
+The first syllable of ``Texinfo'' is pronounced like ``speck'', not
+``hex''. This odd pronunciation is derived from, but is not the same
+as, the pronunciation of @TeX{}. In the word @TeX{}, the @samp{X} is
+actually the Greek letter ``chi'' rather than the English letter
+``ex''. Pronounce @TeX{} as if the @samp{X} were the last sound in
+the name `Bach'; but pronounce Texinfo as if the @samp{x} were a `k'.
+Spell ``Texinfo'' with a capital ``T'' and the other letters in
+lowercase.
+
Manuals for most GNU packages are written in Texinfo, and available
-online at @url{http://www.gnu.org/doc}.
+online at @url{http://www.gnu.org/doc}. The Texinfo
@menu
* Reporting Bugs:: Submitting effective bug reports.
* Using Texinfo:: Create printed or online output.
* Output Formats:: Overview of the supported output formats.
+* Adding Output Formats:: Man pages and implementing new formats.
+* Texinfo Document Structure:: How Texinfo manuals are usually arranged.
* Info Files:: What is an Info file?
* Printed Books:: Characteristics of a printed book or manual.
* Formatting Commands:: @@-commands are used for formatting.
@@ -776,32 +825,38 @@
@cindex Bugs, reporting
@cindex Suggestions for Texinfo, making
@cindex Reporting bugs
-We welcome bug reports and suggestions for any aspect of the Texinfo system,
-programs, documentation, installation, anything. Please email them to
-@email{bug-texinfo@(a)gnu.org}. You can get the latest version of Texinfo
-from @uref{ftp://ftp.gnu.org/gnu/texinfo/} and its mirrors worldwide.
+We welcome bug reports and suggestions for any aspect of the Texinfo
+system: programs, documentation, installation, etc. Please email them
+to @email{bug-texinfo@(a)gnu.org}. You can get the latest version of
+Texinfo via its home page, @uref{http://www.gnu.org/software/texinfo}.
@cindex Checklist for bug reports
For bug reports, please include enough information for the maintainers
to reproduce the problem. Generally speaking, that means:
@itemize @bullet
-@item the version number of Texinfo and the program(s) or manual(s) involved.
-@item hardware and operating system names and versions.
-@item the contents of any input files necessary to reproduce the bug.
-@item a description of the problem and samples of any erroneous output.
-@item any unusual options you gave to @command{configure}.
-@item anything else that you think would be helpful.
+@item The version number of Texinfo and the program(s) or manual(s) involved.
+@item The contents of any input files necessary to reproduce the bug.
+@item Precisely how you ran any program(s) involved.
+@item A description of the problem and samples of any erroneous output.
+@item Hardware and operating system names and versions.
+@item Anything else that you think would be helpful.
@end itemize
When in doubt whether something is needed or not, include it. It's
better to include too much than to leave out something important.
+It is critical to send an actual input file that reproduces the
+problem. What's not critical is to ``narrow down'' the example to the
+smallest possible input---the actual input with which you discovered
+the bug will suffice. (Of course, if you do do experiments, the
+smaller the input file, the better.)
+
@cindex Patches, contributing
Patches are most welcome; if possible, please make them with
-@samp{@w{diff -c}} (@pxref{Top,, Overview, diff, Comparing and Merging
-Files}) and include @file{ChangeLog} entries (@pxref{Change Log,,,
-xemacs, XEmacs User's Manual}), and follow the existing coding style.
+@samp{@w{diff -c}} (@pxref{Top,,, diff, Comparing and Merging Files})
+and include @file{ChangeLog} entries (@pxref{Change Log,,, xemacs,
+XEmacs User's Manual}), and follow the existing coding style.
@node Using Texinfo
@@ -812,30 +867,29 @@
@cindex Introduction to Texinfo
Using Texinfo, you can create a printed document (via the @TeX{}
-typesetting system) the normal features of a book, including chapters,
-sections, cross references, and indices. From the same Texinfo source
-file, you can create an Info file with special features to make
-documentation browsing easy. You can also create from that same
-source file an HTML output file suitable for use with a web browser,
-or an XML file. See the next section (@pxref{Output Formats}) for
-details and the exact commands to generate output from the source.
-
-@TeX{} works with virtually all printers; Info works with virtually all
-computer terminals; the HTML output works with virtually all web
-browsers. Thus Texinfo can be used by almost any computer user.
+typesetting system) with the normal features of a book, including
+chapters, sections, cross references, and indices. From the same
+Texinfo source file, you can create an Info file with special features
+to make documentation browsing easy. You can also create from that
+same source file an HTML output file suitable for use with a web
+browser, a Docbook file, or a transliteration in XML format. See the
+next section (@pxref{Output Formats}) for details and sample commands
+to generate output from the source.
+
+@TeX{} works with virtually all printers; Info works with virtually
+all computer terminals; the HTML output works with virtually all web
+browsers. Thus Texinfo and its output can be used by almost any
+computer user.
@cindex Source file format
A Texinfo source file is a plain ASCII file containing text
interspersed with @dfn{@@-commands} (words preceded by an @samp{@@})
-that tell the typesetting and formatting programs what to do. You can
-edit a Texinfo file with any text editor, but it is especially
-convenient to use XEmacs since that editor has a special mode,
-called Texinfo mode, that provides various Texinfo-related features.
-(@xref{Texinfo Mode}.)
-
-You can use Texinfo to create both online help and printed manuals;
-moreover, Texinfo is freely redistributable. For these reasons, Texinfo
-is the official documentation format of the GNU project. More
+that tell the Texinfo processors what to do. You can edit a Texinfo
+file with any text editor, but it is especially convenient to use
+XEmacs since that editor has a special mode, called Texinfo mode, that
+provides various Texinfo-related features. (@xref{Texinfo Mode}.)
+
+Texinfo is the official documentation format of the GNU project. More
information is available at the @uref{http://www.gnu.org/doc/, GNU
documentation web page}.
@@ -850,185 +904,233 @@
@table @asis
@item Info
-@cindex Info output
-(Generated via @command{makeinfo}.) This format is essentially a
-plain text transliteration of the Texinfo source. It adds a few
-control characters to separate nodes and provide navigational
-information for menus, cross-references, indices, and so on. See the
-next section (@pxref{Info Files}) for more details on this format.
-The XEmacs Info subsystem (@pxref{Top,,Getting Started,info, Info}),
-and the standalone @command{info} program (@pxref{Top
-,, Info Standalone, info-stnd, GNU Info}), among others, can read these
-files. @xref{Creating and Installing Info Files}.
+@cindex Info output, overview
+(Generated via @command{makeinfo}.) Info format is mostly a plain
+text transliteration of the Texinfo source. It adds a few control
+characters to separate nodes and provide navigational information for
+menus, cross references, indices, and so on. The XEmacs Info subsystem
+(@pxref{Top,,Getting Started,info, Info}), and the standalone @command{info}
+program (@pxref{Top,,, info-stnd, GNU Info}), among others, can read these
+files. @xref{Info Files}, and @ref{Creating and Installing Info
+Files}.
@item Plain text
-@cindex Plain text output
-(Generated via @command{makeinfo --no-headers}.) This is almost the
-same as Info output, except the navigational control characters are
-omitted. Also, standard output is used by default.
+@cindex Plain text output, overview
+(Generated via @command{makeinfo --plaintext}.) This is almost the
+same as Info output with the navigational control characters are
+omitted.
@item HTML
-@cindex HTML output
+@cindex HTML output, overview
@cindex W3 consortium
@cindex Mozilla
@cindex Lynx
-@cindex Emacs-W3
-(Generated via @command{makeinfo --html}.) This is the Hyper Text
-Markup Language that has become the most commonly used language for
+@cindex XEmacs-W3
+(Generated via @command{makeinfo --html}.) HTML, standing for Hyper
+Text Markup Language, has become the most commonly used language for
writing documents on the World Wide Web. Web browsers, such as
-Mozilla, Lynx, and Emacs-W3, can render this language online. There
-are many versions of HTML; @command{makeinfo} tries to use a subset
-of the language that can be interpreted by any common browser. For
+Mozilla, Lynx, and XEmacs-W3, can render this language online. There
+are many versions of HTML; @command{makeinfo} tries to use a subset of
+the language that can be interpreted by any common browser. For
details of the HTML language and much related information, see
@uref{http://www.w3.org/MarkUp/}. @xref{Generating HTML}.
@item DVI
-@cindex DVI output
+@cindex DVI output, overview
@pindex dvips
@pindex xdvi
-(Generated via @command{texi2dvi}.) This DeVice Independent binary
+(Generated via @command{texi2dvi}.) The DeVIce Independent binary
format is output by the @TeX{} typesetting program
(@uref{http://tug.org}). This is then read by a DVI `driver', which
-writes the actual device-specific commands that can be viewed or
-printed, notably Dvips for translation to PostScript (@pxref{Invoking
-Dvips,,, dvips, Dvips}) and Xdvi for viewing on an X display
+knows the actual device-specific commands that can be viewed or
+printed, notably Dvips for translation to PostScript (@pxref{Top,,,
+dvips, Dvips}) and Xdvi for viewing on an X display
(@uref{http://sourceforge.net/projects/xdvi/}). @xref{Hardcopy}.
-
-Be aware that the Texinfo language is very different from and much
-stricter than @TeX{}'s usual languages, plain @TeX{} and @LaTeX{}.
-For more information on @TeX{} in general, please see the book
-@cite{@TeX{} for the Impatient}, available from
-@uref{http://savannah.gnu.org/projects/teximpatient}.
+(Be aware that the Texinfo language is very different from and much
+stricter than @TeX{}'s usual languages: plain @TeX{}, @LaTeX{},
+Con@TeX{}t, etc.)
+
+@item PostScript
+@cindex PostScript output, overview
+(Generated via @command{texi2dvi --ps}.) PostScript is a page
+description language that became widely used around 1985 and is still
+used today. @uref{http://en.wikipedia.org/wiki/PostScript} gives a
+basic description and more preferences. By default, Texinfo uses the
+@command{dvips} program to convert @TeX{}'s DVI output to PostScript.
+@xref{Top,,, dvips, Dvips}.
@item PDF
-@cindex PDF output
+@cindex PDF output, overview
@cindex Beebe, Nelson
-@pindex pdftex
(Generated via @command{texi2dvi --pdf} or @command{texi2pdf}.) This
format was developed by Adobe Systems for portable document
interchange, based on their previous PostScript language. It can
represent the exact appearance of a document, including fonts and
graphics, and supporting arbitrary scaling. It is intended to be
platform-independent and easily viewable, among other design goals;
-@uref{http://tug.org/TUGboat/Articles/tb22-3/tb72beebe-pdf.pdf} has
-some background. Texinfo uses the @command{pdftex} program, a variant
-of @TeX{}, to output PDF; see
+@uref{http://en.wikipedia.org/wiki/Portable_Document_Format} and
+@uref{http://tug.org/TUGboat/tb22-3/tb72beebe-pdf.pdf} have some
+background. By default, Texinfo uses the @command{pdftex} program, an
+extension of @TeX{}, to output PDF; see
@uref{http://tug.org/applications/pdftex}. @xref{PDF Output}.
-@item XML
-@cindex XML output
-@cindex DTD, for Texinfo XML
-@pindex texinfo.dtd
-(Generated via @command{makeinfo --xml}.) XML is a generic syntax
-specification usable for any sort of content (see, for example,
-@uref{http://www.w3.org/XML/}). The @command{makeinfo} XML output,
-unlike all the formats above, interprets very little of the Texinfo
-source. Rather, it merely translates the Texinfo markup commands into
-XML syntax, for processing by further XML tools. The particular
-syntax output is defined in the file @file{texinfo.dtd} included in
-the Texinfo source distribution.
-
@item Docbook
-@cindex Docbook output
+@cindex Docbook output, overview
+@cindex XML Docbook output, overview
(Generated via @command{makeinfo --docbook}.) This is an XML-based
format developed some years ago, primarily for technical
documentation. It therefore bears some resemblance, in broad
-outlines, to Texinfo. See @uref{http://www.docbook.org}. If you want
-to convert from Docbook @emph{to} Texinfo, please see
-@uref{http://docbook2X.sourceforge.net}.
-
-@end table
+outline, to Texinfo. See @uref{http://www.docbook.org}. Various
+converters from Docbook @emph{to} Texinfo have also been developed;
+see the Texinfo web pages.
+
+@item XML
+@cindex XML Texinfo output, overview
+@cindex Texinfo XML output, overview
+@cindex DTD, for Texinfo XML
+@pindex texinfo.dtd
+@pindex txixml2texi
+(Generated via @command{makeinfo --xml}.) XML is a generic syntax
+specification usable for any sort of content (a reference is at
+@uref{http://www.w3.org/XML}). The @command{makeinfo} XML output,
+unlike all the other output formats, is a transliteration of the
+Texinfo source rather than processed output. That is, it translates
+the Texinfo markup commands into XML syntax, for further processing by
+XML tools. The details of the output are defined in an XML DTD as
+usual, which is contained in a file @file{texinfo.dtd} included in the
+Texinfo source distribution and available via the Texinfo web pages.
+The XML contains enough information to recreate the original content,
+except for syntactic constructs such as Texinfo macros and
+conditionals. The Texinfo source distribution includes a utility script
+@file{txixml2texi} to do that backward transformation.
+@end table
+
+
+@node Adding Output Formats
+@section Adding Output Formats
+@cindex Additional output formats
+
+The output formats in the previous section handle a wide variety of
+usage, but of course there is always room for more.
@cindex Man page output, not supported
From time to time, proposals are made to generate traditional Unix man
-pages from Texinfo source. However, because man pages have a very
-strict conventional format, generating a good man page requires a
-completely different source than the typical Texinfo applications of
-writing a good user tutorial and/or a good reference manual. This
-makes generating man pages incompatible with the Texinfo design goal
-of not having to document the same information in different ways for
-different output formats. You might as well just write the man page
+pages from Texinfo source. However, because man pages have a strict
+conventional format, creating a good man page requires a completely
+different source than the typical Texinfo applications of writing a
+good user tutorial and/or a good reference manual. This makes
+generating man pages incompatible with the Texinfo design goal of not
+having to document the same information in different ways for
+different output formats. You might as well write the man page
directly.
@pindex help2man
@cindex O'Dea, Brendan
-Man pages still have their place, and if you wish to support them, you
-may find the program @command{help2man} to be useful; it generates a
-traditional man page from the @samp{--help} output of a program. In
-fact, this is currently used to generate man pages for the programs in
-the Texinfo distribution. It is GNU software written by Brendan
-O'Dea, available from @uref{ftp://ftp.gnu.org/gnu/help2man/}.
+As an alternative way to support man pages, you may find the program
+@command{help2man} to be useful. It generates a traditional man page
+from the @samp{--help} output of a program. In fact, the man pages
+for the programs in the Texinfo distribution are generated with this.
+It is GNU software written by Brendan O'Dea, available from
+@uref{http://www.gnu.org/software/help2man}.
@cindex Output formats, supporting more
@cindex SGML-tools output format
-If you are a programmer and would like to contribute to the GNU project
-by implementing additional output formats for Texinfo, that would be
-excellent. But please do not write a separate translator texi2foo for
-your favorite format foo! That is the hard way to do the job, and makes
-extra work in subsequent maintenance, since the Texinfo language is
-continually being enhanced and updated. Instead, the best approach is
-modify @code{makeinfo} to generate the new format.
+If you are a programmer and would like to contribute to the GNU
+project by implementing additional output formats for Texinfo, that
+would be excellent. The way to do this that would be most useful is
+to write a new back-end for @command{texi2any}, our reference
+implementation of a Texinfo parser; it creates a tree representation
+of the Texinfo input that you can use for the conversion. The
+documentation in the source file
+(a)file{tp/Texinfo/Convert/Converter.pm} is a good place to start.
+@xref{Generic Translator @t{texi2any}}.
+
+Another viable approach is use the Texinfo XML output from
+@command{texi2any} as your input. This XML is an essentially complete
+representation of the input, but without the Texinfo syntax and option
+peculiarities, as described above.
+
+@cindex Texinfo parsers, discouraging more
+If you still cannot resist the temptation of writing a new program
+that reads Texinfo source directly, let us give some more caveats:
+please do not underestimate the amount of work required. Texinfo is
+by no means a simple language to parse correctly, and remains under
+development, so you would be committing to an ongoing task. At a
+minimum, please check that the extensive tests of the language that
+come with @command{texi2any} give correct results with your new
+program.
+
+
+@node Texinfo Document Structure
+@section Texinfo Document Structure
+@cindex Texinfo document structure
+@cindex Document structure, of Texinfo
+@cindex Structure, of Texinfo documents
+@cindex Double structure, of Texinfo documents
+
+@anchor{Two Paths}@c node name
+Texinfo documents most usefully have a double structure, reflecting
+the double purposes of printed and online output. For printed output
+(DVI, PDF, @dots{}), with physical pages, there are chapters,
+sections, subsections, etc. For online output (Info, HTML, @dots{}),
+with interactive navigation and no physical pages, there are so-called
+``nodes''.
+
+Typically, the sectioning structure and the node structure are
+completely parallel, with one node for each chapter, section, etc.,
+and with the nodes following the same hierarchical arrangement as the
+sectioning. Thus, if a node is at the logical level of a chapter, its
+child nodes are at the level of sections; similarly, the child nodes
+of sections are at the level of subsections.
+
+Each @dfn{node} has a name, and contains the discussion of one topic.
+Along with the text for the user to read, each node also has pointers
+to other nodes, identified in turn by their own names. Info readers
+display one node at a time, and provide commands for the user to move
+to related nodes. The HTML output can be similarly navigated.
+
+The names of child nodes are listed in a @dfn{menu} within the parent
+node; for example, a node corresponding to a chapter would have a menu
+of the sections in that chapter. The menus allow the user to move to
+the child nodes in a natural way in the online output.
+
+In addition, nodes at the same level are formed into a chain with
+`Next' and `Previous' pointers. As you might imagine, the `Next'
+pointer links to the next node (section), and the `Previous' pointer
+links to the previous node (section). Thus, for example, all the
+nodes that are at the level of sections within a chapter are linked
+together, and the order in this chain is the same as the order of the
+children in the menu of parent chapter. Each child node records the
+parent node name as its `Up' pointer. The last child has no `Next'
+pointer, and the first child has the parent both as its `Previous' and
+as its `Up' pointer.
+
+In addition to menus and `Next', `Previous', and `Up' pointers,
+Texinfo provides pointers of another kind for cross references, that
+can be sprinkled throughout the text. This is usually the best way to
+represent links that do not fit a hierarchical structure.
+
+Although it is technically possible to create Texinfo documents with
+only one structure or the other, or for the two structures not to be
+parallel, or for either the sectioning or node structure to be
+abnormally formed, etc., this is @emph{not at all recommended}. To
+the best of our knowledge, all the Texinfo manuals currently in
+general use do follow the conventional parallel structure.
@node Info Files
@section Info Files
@cindex Info files
-An Info file is a Texinfo file formatted so that the Info documentation
-reading program can operate on it. (@code{makeinfo}
-and @code{texinfo-format-buffer} are two commands that convert a Texinfo file
-into an Info file.)
-
-Info files are divided into pieces called @dfn{nodes}, each of which
-contains the discussion of one topic. Each node has a name, and
-contains both text for the user to read and pointers to other nodes,
-which are identified by their names. The Info program displays one node
-at a time, and provides commands with which the user can move to other
-related nodes.
-
-@xref{Top,,, info, GNU Info}, for more information about using Info.
-
-Each node of an Info file may have any number of child nodes that
-describe subtopics of the node's topic. The names of child
-nodes are listed in a @dfn{menu} within the parent node; this
-allows you to use certain Info commands to move to one of the child
-nodes. Generally, an Info file is organized like a book. If a node
-is at the logical level of a chapter, its child nodes are at the level
-of sections; likewise, the child nodes of sections are at the level
-of subsections.
-
-All the children of any one parent are linked together in a
-bidirectional chain of `Next' and `Previous' pointers. The `Next'
-pointer provides a link to the next section, and the `Previous' pointer
-provides a link to the previous section. This means that all the nodes
-that are at the level of sections within a chapter are linked together.
-Normally the order in this chain is the same as the order of the
-children in the parent's menu. Each child node records the parent node
-name as its `Up' pointer. The last child has no `Next' pointer, and the
-first child has the parent both as its `Previous' and as its `Up'
-pointer.@footnote{In some documents, the first child has no `Previous'
-pointer. Occasionally, the last child has the node name of the next
-following higher level node as its `Next' pointer.}
-
-The book-like structuring of an Info file into nodes that correspond
-to chapters, sections, and the like is a matter of convention, not a
-requirement. The `Up', `Previous', and `Next' pointers of a node can
-point to any other nodes, and a menu can contain any other nodes.
-Thus, the node structure can be any directed graph. But it is usually
-more comprehensible to follow a structure that corresponds to the
-structure of chapters and sections in a printed book or report.@refill
-
-In addition to menus and to `Next', `Previous', and `Up' pointers, Info
-provides pointers of another kind, called references, that can be
-sprinkled throughout the text. This is usually the best way to
-represent links that do not fit a hierarchical structure.@refill
-
-Usually, you will design a document so that its nodes match the
-structure of chapters and sections in the printed output. But
-occasionally there are times when this is not right for the material
-being discussed. Therefore, Texinfo uses separate commands to specify
-the node structure for the Info file and the section structure for the
-printed output.@refill
+As mentioned above, Info format is mostly a plain text transliteration
+of the Texinfo source, with the addition of a few control characters
+to separate nodes and provide navigational information, so that
+Info-reading programs can operate on it.
+
+Info files are nearly always created by processing a Texinfo source
+document. @command{makeinfo}, also known as @command{texi2any}, is
+the principal command that converts a Texinfo file into an Info file;
+@pxref{Generic Translator @t{texi2any}}.
Generally, you enter an Info file through a node that by convention is
named `Top'. This node normally contains just a brief summary of the
@@ -1042,26 +1144,20 @@
If you want to read through an Info file in sequence, as if it were a
printed manual, you can hit @key{SPC} repeatedly, or you get the whole
-file with the advanced Info command @kbd{g *}. (@inforef{Advanced,
-Advanced Info commands, info}.)@refill
-
-@c !!! dir file may be located in one of many places:
-@c /usr/local/xemacs/info mentioned in info.c DEFAULT_INFOPATH
-@c /usr/local/lib/xemacs/info mentioned in info.c DEFAULT_INFOPATH
-@c /usr/gnu/info mentioned in info.c DEFAULT_INFOPATH
-@c /usr/local/info
-@c /usr/local/lib/info
+file with the advanced Info command @kbd{g *}. (@xref{Advanced,,
+Advanced Info commands, info, Info}.)
+
The @file{dir} file in the @file{info} directory serves as the
departure point for the whole Info system. From it, you can reach the
-`Top' nodes of each of the documents in a complete Info system.@refill
+`Top' nodes of each of the documents in a complete Info system.
@cindex URI syntax for Info
-If you wish to refer to an Info file in a URI, you can use the
-(unofficial) syntax exemplified in the following. This works with
-Emacs/W3, for example:
-@example
+If you wish to refer to an Info file via a URI, you can use the
+(unofficial) syntax exemplified by the following. This works with
+XEmacs/W3, for example:
+@example
+info:xemacs#Dissociated%20Press
info:///usr/info/xemacs#Dissociated%20Press
-info:xemacs#Dissociated%20Press
info://localhost/usr/info/xemacs#Dissociated%20Press
@end example
@@ -1077,26 +1173,14 @@
@cindex Characteristics, printed books or manuals
@cindex Knuth, Donald
-A Texinfo file can be formatted and typeset as a printed book or manual.
-To do this, you need @TeX{}, a powerful, sophisticated typesetting
-program written by Donald Knuth.@footnote{You can also use the
-@pindex texi2roff@r{, unsupported software}
-@uref{ftp://tug.org/texi2roff.tar.gz, @code{texi2roff}} program if you
-do not have @TeX{}; since Texinfo is designed for use with @TeX{},
-@code{texi2roff} is not described here. @code{texi2roff} is not part of
-the standard GNU distribution and is not maintained or up-to-date with
-all the Texinfo features described in this manual.}
+A Texinfo file can be formatted and typeset as a printed book or
+manual. To do this, you need @TeX{}, a sophisticated typesetting
+program written by Donald Knuth of Stanford University.
A Texinfo-based book is similar to any other typeset, printed work: it
can have a title page, copyright page, table of contents, and preface,
as well as chapters, numbered or unnumbered sections and subsections,
-page headers, cross references, footnotes, and indices.@refill
-
-You can use Texinfo to write a book without ever having the intention
-of converting it into online information. You can use Texinfo for
-writing a printed novel, and even to write a printed memo, although
-this latter application is not recommended since electronic mail is so
-much easier.@refill
+page headers, cross references, footnotes, and indices.
@TeX{} is a general purpose typesetting program. Texinfo provides a
file @file{texinfo.tex} that contains information (definitions or
@@ -1107,35 +1191,26 @@
a document. You can get the latest version of @file{texinfo.tex} from
the Texinfo home page, @uref{http://www.gnu.org/software/texinfo/}.
-In the United States, documents are most often printed on 8.5 inch by 11
-inch pages (216@dmn{mm} by 280@dmn{mm}); this is the default size. But
-you can also print for 7 inch by 9.25 inch pages (178@dmn{mm} by
+In the United States, documents are most often printed on 8.5 inch by
+11 inch pages (216@dmn{mm} by 280@dmn{mm}); this is the default size.
+But you can also print for 7 inch by 9.25 inch pages (178@dmn{mm} by
235@dmn{mm}, the @code{@@smallbook} size; or on A4 or A5 size paper
-(@code{@@afourpaper}, @code{@@afivepaper}). (@xref{smallbook, ,
-Printing ``Small'' Books}. Also, see @ref{A4 Paper, ,Printing on A4
-Paper}.)
-
-By changing the parameters in @file{texinfo.tex}, you can change the
-size of the printed document. In addition, you can change the style in
-which the printed document is formatted; for example, you can change the
-sizes and fonts used, the amount of indentation for each paragraph, the
-degree to which words are hyphenated, and the like. By changing the
-specifications, you can make a book look dignified, old and serious, or
-light-hearted, young and cheery.
-
+(@code{@@afourpaper}, @code{@@afivepaper}).
+@xref{@t{@@smallbook}}, and @ref{A4 Paper}.
+
+@cindex Literate programming
@TeX{} is freely distributable. It is written in a superset of Pascal
-called WEB and can be compiled either in Pascal or (by using a
-conversion program that comes with the @TeX{} distribution) in C.
-(@xref{TeX Mode, ,@TeX{} Mode, xemacs, XEmacs User's Manual}, for information
-about @TeX{}.)@refill
+for literate programming called WEB and can be compiled either in
+Pascal or (by using a conversion program that comes with the @TeX{}
+distribution) in C.
@TeX{} is very powerful and has a great many features. Because a
Texinfo file must be able to present information both on a
character-only terminal in Info form and in a typeset book, the
formatting commands that Texinfo supports are necessarily limited.
-To get a copy of @TeX{}, see
-@ref{Obtaining TeX, , How to Obtain @TeX{}}.
+@xref{Obtaining @TeX{}}, for information on acquiring @TeX{}. It is
+not part of the Texinfo distribution.
@node Formatting Commands
@@ -1143,23 +1218,17 @@
@cindex @@-commands
@cindex Formatting commands
-In a Texinfo file, the commands that tell @TeX{} how to typeset the
-printed manual and tell @code{makeinfo} and
-@code{texinfo-format-buffer} how to create an Info file are preceded
-by @samp{@@}; they are called @dfn{@@-commands}. For example,
-@code{@@node} is the command to indicate a node and @code{@@chapter}
-is the command to indicate the start of a chapter.@refill
-
-@quotation Note
-Almost all @@ command names are entirely lower case.
-@end quotation
-
-The Texinfo @@-commands are a strictly limited set of constructs. The
-strict limits make it possible for Texinfo files to be understood both
-by @TeX{} and by the code that converts them into Info files. You can
-display Info files on any terminal that displays alphabetic and
-numeric characters. Similarly, you can print the output generated by
-@TeX{} on a wide variety of printers.@refill
+In a Texinfo file, the commands you write to describe the contents of
+the manual are preceded by an @samp{@@} character; they are called
+@dfn{@@-commands}. For example, @code{@@node} is the command to
+indicate a node and @code{@@chapter} is the command to indicate the
+start of a chapter. Almost all @@ command names are entirely
+lowercase.
+
+Texinfo's @@-commands are a strictly limited set of constructs. The
+strict limits are primarily intended to ``force'' you, the author, to
+concentrate on the writing and the content of your manual, rather than
+the details of the formatting.
Depending on what they do or what arguments@footnote{The word
@dfn{argument} comes from the way it is used in mathematics and does not
@@ -1176,42 +1245,34 @@
@itemize @bullet
@item
-Write a command such as @code{@@quotation} at the beginning of a line as
-the only text on the line. (@code{@@quotation} begins an indented
-environment.)
-
-@item
-Write a command such as @code{@@chapter} at the beginning of a line
-followed by the command's arguments, in this case the chapter title, on
-the rest of the line. (@code{@@chapter} creates chapter titles.)@refill
-
-@item
-Write a command such as @code{@@dots@{@}} wherever you wish but usually
-within a sentence. (@code{@@dots@{@}} creates an ellipsis @dots{})@refill
-
-@item
-Write a command such as @code{@@code@{@var{sample-code}@}} wherever you
-wish (but usually within a sentence) with its argument,
-@var{sample-code} in this example, between the braces. (@code{@@code}
-marks text as being code.)@refill
-
-@item
-Write a command such as @code{@@example} on a line of its own; write the
-body-text on following lines; and write the matching @code{@@end}
-command, @code{@@end example} in this case, on a line of its own
-after the body-text. (@code{@@example} @dots{} @code{@@end example}
-indents and typesets body-text as an example.) It's usually ok to
-indent environment commands like this, but in complicated and
-hard-to-define circumstances the extra spaces cause extra space to
-appear in the output, so beware.
+Some commands are written at the start of a line and the rest of the
+line comprises the argument text, such as @code{@@chapter} (which
+creates chapter titles).
+
+@item
+Some commands can appear anywhere, generally within a sentence, and
+are followed by empty braces, such as @code{@@dots@{@}} (which creates
+an ellipsis @dots{}).
+
+@item
+Some commands can appear anywhere, generally within a sentence, and
+are followed by the argument text in braces, such as
+@code{@@code@{a+1@}} (which marks text as being code, @code{a+1} being
+the argument in this case).
+
+@item
+Some commands are written at the start of a line, with general text on
+following lines, terminated by a matching @code{@@end} command on a
+line of its own. For example, @code{@@example}, then the lines of a
+coding example, then @code{@@end example}.
@end itemize
@noindent
@cindex Braces, when to use
As a general rule, a command requires braces if it mingles among other
-text; but it does not need braces if it starts a line of its own. The
-non-alphabetic commands, such as @code{@@:}, are exceptions to the rule;
-they do not need braces.@refill
+text; but it does not need braces if it is on a line of its own. The
+non-alphabetic commands, such as @code{@@:}, are exceptions to the
+rule; they do not need braces.
As you gain experience with Texinfo, you will rapidly learn how to
write the different commands: the different ways to write commands
@@ -1241,20 +1302,8 @@
@samp{@@@{}, and @samp{@@@}}.
@item
-@cindex Paragraph separator
-@cindex Blank lines, as paragraph separator
-@cindex Newlines, as blank lines
-Separate paragraphs with one or more blank lines. Currently Texinfo
-only recognizes newline characters as end of line, not the CRLF
-sequence used on some systems; so a @dfn{blank line} means exactly two
-consecutive newlines. Sometimes blank lines are useful or convenient
-in other cases as well; you can use the @code{@@noindent} to inhibit
-paragraph indentation if required (@pxref{noindent,,@code{@@noindent}}).
-
-@item
-Texinfo supports the usual quotation marks used in English, and
-quotation marks used in other languages, please see @ref{Inserting
-Quotation Marks}.
+Texinfo supports the usual quotation marks used in English and in
+other languages; see @ref{Inserting Quotation Marks}.
@item
@cindex Multiple dashes in source
@@ -1273,22 +1322,53 @@
contexts, such as @code{@@code} and @code{@@example}.
@item
+@cindex Form feed characters
+@cindex @kbd{CTRL-l}
+Form feed (@kbd{CTRL-l}) characters in the input are handled as
+follows:
+
+@table @asis
+@item PDF/DVI
+In normal text, treated as ending any open paragraph; essentially
+ignored between paragraphs.
+
+@item Info
+Output as-is between paragraphs (their most common use); in other
+contexts, they may be treated as regular spaces (and thus consolidated
+with surrounding whitespace).
+
+@item HTML
+Written as a numeric entity except contexts where spaces are ignored;
+for example, in @samp{@@footnote@{ ^L foo@}}, the form feed is
+ignored.
+
+@item XML
+Keep them everywhere; in attributes, escaped as @samp{\f}; also,
+@samp{\} is escaped as @samp{\\} and newline as @samp{\n}.
+
+@item Docbook
+Completely removed, as they are not allowed.
+@end table
+
+As you can see, because of these differing requirements of the output
+formats, it's not possible to use form feeds completely portably.
+
+@item
@cindex Tabs; don't use!
-@strong{Caution:} Last, do not use tab characters in a Texinfo file
-(except in verbatim modes)! @TeX{} uses variable-width fonts, which
-means that it is impractical at best to define a tab to work in all
-circumstances. Consequently, @TeX{} treats tabs like single spaces,
-and that is not what they look like in the source. Furthermore,
-@code{makeinfo} does nothing special with tabs, and thus a tab
-character in your input file will usually appear differently in the
-output.
+@strong{Caution:} Last, do not use tab characters in a Texinfo file!
+(Except perhaps in verbatim modes.) @TeX{} uses variable-width fonts,
+which means that it is impractical at best to define a tab to work in
+all circumstances. Consequently, @TeX{} treats tabs like single
+spaces, and that is not what they look like in the source.
+Furthermore, @code{makeinfo} does nothing special with tabs, and thus
+a tab character in your input file will usually have a different
+appearance in the output.
@noindent
To avoid this problem, Texinfo mode in XEmacs inserts
multiple spaces when you press the @key{TAB} key. Also, you can run
@code{untabify} in XEmacs to convert tabs in a region to multiple
spaces, or use the @code{unexpand} command from the shell.
-
@end itemize
@@ -1299,38 +1379,39 @@
@findex comment
@findex c @r{(comment)}
-You can write comments in a Texinfo file that will not appear in
-either the Info file or the printed manual by using the
-@code{@@comment} command (which may be abbreviated to @code{@@c}).
-Such comments are for the person who revises the Texinfo file. All the
-text on a line that follows either @code{@@comment} or @code{@@c} is a
-comment; the rest of the line does not appear in either the Info file
-or the printed manual.
-
-Often, you can write the @code{@@comment} or @code{@@c} in the middle of
-a line, and only the text that follows after the @code{@@comment} or
-@code{@@c} command does not appear; but some commands, such as
+You can write comments in a Texinfo file by using the @code{@@comment}
+command, which may be abbreviated to @code{@@c}. Such comments are
+for a person looking at the Texinfo source file. All the text on a
+line that follows either @code{@@comment} or @code{@@c} is a comment;
+the rest of the line does not appear in the visible output.
+
+Often, you can write the @code{@@comment} or @code{@@c} in the middle
+of a line, and only the text that follows after the @code{@@comment}
+or @code{@@c} command does not appear; but some commands, such as
@code{@@settitle} and @code{@@setfilename}, work on a whole line. You
-cannot use @code{@@comment} or @code{@@c} in a line beginning with such
-a command.
+cannot use @code{@@comment} or @code{@@c} within a line beginning with
+such a command.
+
+@findex DEL @r{(comment character)}
+@cindex Catcode for comments in @TeX{}
+In cases of nested command invocations, complicated macro definitions,
+etc., @code{@@c} and @code{@@comment} may provoke an error when
+processing with @TeX{}. Therefore, you can also use the @kbd{DEL}
+character (ASCII 127 decimal, 0x7f hex, 0177 octal) as a true @TeX{}
+comment character (catcode 14, in @TeX{} internals). Everything on
+the line after the @kbd{DEL} will be ignored.
@cindex Ignored text
@cindex Unprocessed text
@findex ignore
-You can write long stretches of text that will not appear in either
-the Info file or the printed manual by using the @code{@@ignore} and
-@code{@@end ignore} commands. Write each of these commands on a line
-of its own, starting each command at the beginning of the line. Text
-between these two commands does not appear in the processed output.
-You can use @code{@@ignore} and @code{@@end ignore} for writing
-comments.
-
-Text enclosed by @code{@@ignore} or by failing @code{@@ifset} or
-@code{@@ifclear} conditions is ignored in the sense that it will not
-contribute to the formatted output. However, @TeX{} and makeinfo must
-still parse the ignored text, in order to understand when to @emph{stop}
-ignoring text from the source file; that means that you may still get
-error messages if you have invalid Texinfo commands within ignored text.
+You can also have long stretches of text to be ignored by the Texinfo
+processors with the @code{@@ignore} and @code{@@end ignore} commands.
+Write each of these commands on a line of its own, starting each
+command at the beginning of the line. Text between these two commands
+does not appear in the processed output. You can use @code{@@ignore}
+and @code{@@end ignore} for writing comments. (For some technical
+caveats regarding nesting of such commands, @pxref{Conditional
+Nesting}.)
@node Minimum
@@ -1342,13 +1423,13 @@
By convention, the name of a Texinfo file ends with (in order of
preference) one of the extensions @file{.texinfo}, @file{.texi},
-(a)file{.txi}, or @file{.tex}. The longer extensions are preferred since
-they describe more clearly to a human reader the nature of the file.
-The shorter extensions are for operating systems that cannot handle long
-file names.
-
-In order to be made into a printed manual and an Info file, a Texinfo
-file @strong{must} begin with lines like this:
+(a)file{.txi}, or @file{.tex}. The longer extensions are preferred
+since they describe more clearly to a human reader the nature of the
+file. The shorter extensions are for operating systems that cannot
+handle long file names.
+
+In order to be made into a good printed manual and other output
+formats, a Texinfo file @emph{must} begin with lines like this:
@example
@group
@@ -1360,7 +1441,7 @@
@noindent
The contents of the file follow this beginning, and then you
-@strong{must} end a Texinfo file with a line like this:
+@emph{must} end the Texinfo source with a line like this:
@example
@@bye
@@ -1384,19 +1465,19 @@
@item
The @code{@@settitle} line specifies a title for the page headers (or
-footers) of the printed manual, and the default document description for
-the @samp{<head>} in HTML format. Strictly speaking, @code{@@settitle}
-is optional---if you don't mind your document being titled `Untitled'.
+footers) of the printed manual, and the default title and document
+description for the @samp{<head>} in HTML@. Strictly speaking,
+@code{@@settitle} is optional---if you don't mind your document being
+titled `Untitled'.
@item
The @code{@@bye} line at the end of the file on a line of its own tells
the formatters that the file is ended and to stop formatting.
-
-@end itemize
-
-Typically, you will not use quite such a spare format, but will include
-mode setting and start-of-header and end-of-header lines at the
-beginning of a Texinfo file, like this:
+@end itemize
+
+If you use XEmacs, it is also useful to include mode setting and
+start-of-header and end-of-header lines at the beginning of a Texinfo
+file, like this:
@example
@group
@@ -1412,9 +1493,10 @@
In the first line, @samp{-*-texinfo-*-} causes XEmacs to switch into
Texinfo mode when you edit the file.
-The @code{@@c} lines which surround the @code{@@setfilename} and
-@code{@@settitle} lines are optional, but you need them in order to
-run @TeX{} or Info on just part of the file. (@xref{Start of Header}.)
+The @code{@@c ...header} lines above which surround the
+@code{@@setfilename} and @code{@@settitle} lines allow you to process,
+within XEmacs, just part of the Texinfo source. (@xref{Start of
+Header}.)
Furthermore, you will usually provide a Texinfo file with a title page,
indices, and the like, all of which are explained in this manual. But
@@ -1510,7 +1592,7 @@
@@copying
This is a short example of a complete Texinfo file, version 1.0.
-Copyright @@copyright@{@} 2005 Free Software Foundation, Inc.
+Copyright @@copyright@{@} 2013 Free Software Foundation, Inc.
@@end copying
@end group
@end example
@@ -1658,33 +1740,35 @@
processors, and created Edition 1.0 of this manual. Robert@tie{}J.
Chassell greatly revised and extended the manual, starting with
Edition 1.1. Brian Fox was responsible for the standalone Texinfo
-distribution until version 3.8, and wrote the standalone
+distribution until version 3.8, and originally wrote the standalone
@command{makeinfo} and @command{info} programs. Karl Berry has
continued maintenance since Texinfo 3.8 (manual edition 2.22).
@cindex Pinard, Fran@,{c}ois
-@cindex Zuhn, David D.
+@cindex Schwab, Andreas
+@cindex Weinberg, Zack
@cindex Weisshaus, Melissa
@cindex Zaretskii, Eli
-@cindex Schwab, Andreas
-@cindex Weinberg, Zack
-Our thanks go out to all who helped improve this work, particularly the
-indefatigable Eli Zaretskii and Andreas Schwab, who have provided
+@cindex Zuhn, David D.
+Our thanks go out to all who helped improve this work, particularly
+the indefatigable Eli Zaretskii and Andreas Schwab, who have provided
patches beyond counting. Fran@,{c}ois Pinard and David@tie{}D. Zuhn,
tirelessly recorded and reported mistakes and obscurities. Zack
Weinberg did the impossible by implementing the macro syntax in
-(a)file{texinfo.tex}. Special thanks go to Melissa Weisshaus for her
-frequent reviews of nearly similar editions. Dozens of others have
-contributed patches and suggestions, they are gratefully acknowledged in
-the @file{ChangeLog} file. Our mistakes are our own.
+(a)file{texinfo.tex}. Thanks to Melissa Weisshaus for her frequent
+reviews of nearly similar editions. Dozens of others have contributed
+patches and suggestions, they are gratefully acknowledged in the
+@file{ChangeLog} file. Our mistakes are our own.
+
+@cindex History of Texinfo
+@cindex Texinfo history
+@subheading Beginnings
@cindex Scribe
@cindex Reid, Brian
-@cindex History of Texinfo
-@cindex Texinfo history
-A bit of history: in the 1970's at CMU, Brian Reid developed a program
-and format named Scribe to mark up documents for printing. It used the
-@code{@@} character to introduce commands, as Texinfo does. Much more
+In the 1970's at CMU, Brian Reid developed a program and format named
+Scribe to mark up documents for printing. It used the @code{@@}
+character to introduce commands, as Texinfo does. Much more
consequentially, it strove to describe document contents rather than
formatting, an idea wholeheartedly adopted by Texinfo.
@@ -1702,12 +1786,76 @@
mark up language for text that is intended to be read both online and
as printed hard copy.
+Moving forward, the original translator to create Info was written
+(primarily by RMS and Bob Chassell) in Emacs Lisp, namely the
+@code{texinfo-format-buffer} and other functions. In the early 1990s,
+Brian Fox reimplemented the conversion program in C, now called
+@command{makeinfo}.
+
+@subheading Reimplementing in Perl
+
+@cindex Cons, Lionel
+@cindex Dumas, Patrice
+In 2012, the C @command{makeinfo} was itself replaced by a Perl
+implementation generically called @command{texi2any}. This version
+supports the same level of output customization as
+@command{texi2html}, an independent program originally written by
+Lionel Cons, later with substantial work by many others. The many
+additional features needed to make @command{texi2html} a replacement
+for @command{makeinfo} were implemented by Patrice Dumas. The first
+never-released version of @command{texi2any} was based on the
+@command{texi2html} code. That implementation, however, was abandoned
+in favor of the current program, which parses the Texinfo input into a
+tree for processing. It still supports nearly all the features of
+@command{texi2html}.
+
+The new Perl program is much slower than the old C program. We hope
+the speed gap will close in the future, but it may not ever be
+entirely comparable. So why did we switch? In short, we intend and
+hope that the present program will be much easier than the previous C
+implementation of @command{makeinfo} to extend to different output
+styles, back-end output formats, and all other customizations.
+In more detail:
+
+@itemize @bullet
+@item HTML customization. Many GNU and other free software packages
+had been happily using the HTML customization features in
+@command{texi2html} for years. Thus, in effect two independent
+implementations of the Texinfo language had developed, and keeping
+them in sync was not simple. Adding the HTML customization possible
+in @command{texi2html} to a C program would have been an
+enormous effort.
+
+@item Unicode, and multilingual support generally, especially of east
+Asian languages. Although of course it's perfectly plausible to write
+such support in C, in the particular case of @command{makeinfo}, it
+would have been tantamount to rewriting the entire program. In Perl,
+much of that comes essentially for free.
+
+@item Additional back-ends. The @command{makeinfo} code had become
+convoluted to the point where adding a new back-end was quite complex,
+requiring complex interactions with existing back-ends. In contrast,
+our Perl implementation provides a clean tree-based representation for
+all back-ends to work from. People have requested numerous different
+back-ends (@LaTeX{}, the latest (X)HTML, @dots{}), and they will now
+be much more feasible to implement. Which leads to the last item:
+
+@item Making contributions easier. In general, due to the cleaner
+structure, the Perl program should be considerably easier than the C
+for anyone to read and contribute to, with the resulting obvious
+benefits.
+@end itemize
+
+@xref{Reference Implementation}, for more on the rationale for and
+role of @command{texi2any}.
+
@node Texinfo Mode
@chapter Using Texinfo Mode
@cindex Texinfo mode
@cindex Mode, using Texinfo
@cindex XEmacs
+@cindex Emacs
You may edit a Texinfo file with any text editor you choose. A Texinfo
file is no different from any other ASCII file. However, XEmacs
@@ -1722,7 +1870,7 @@
@menu
* Texinfo Mode Overview:: How Texinfo mode can help you.
-* XEmacs Editing:: Texinfo mode adds to XEmacs' general
+* XEmacs Editing:: Texinfo mode adds to XEmacs' general
purpose editing features.
* Inserting:: How to insert frequently used @@-commands.
* Showing the Structure:: How to show the structure of a file.
@@ -1740,33 +1888,33 @@
@itemize @bullet
@item
-Insert frequently used @@-commands. @refill
+Insert frequently used @@-commands.
@item
Automatically create @code{@@node} lines.
@item
-Show the structure of a Texinfo source file.@refill
+Show the structure of a Texinfo source file.
@item
Automatically create or update the `Next',
`Previous', and `Up' pointers of a node.
@item
-Automatically create or update menus.@refill
-
-@item
-Automatically create a master menu.@refill
-
-@item
-Format a part or all of a file for Info.@refill
-
-@item
-Typeset and print part or all of a file.@refill
+Automatically create or update menus.
+
+@item
+Automatically create a master menu.
+
+@item
+Format a part or all of a file for Info.
+
+@item
+Typeset and print part or all of a file.
@end itemize
Perhaps the two most helpful features are those for inserting frequently
-used @@-commands and for creating node pointers and menus.@refill
+used @@-commands and for creating node pointers and menus.
@node XEmacs Editing
@section The Usual XEmacs Editing Commands
@@ -1779,7 +1927,7 @@
commands that should be on lines of their own are not inadvertently
included in paragraphs. Thus, the @kbd{M-q} (@code{fill-paragraph})
command will refill a paragraph but not mix an indexing command on a
-line adjacent to it into the paragraph.@refill
+line adjacent to it into the paragraph.
In addition, Texinfo mode sets the @code{page-delimiter} variable to
the value of @code{texinfo-chapter-level-regexp}; by default, this is
@@ -1789,7 +1937,7 @@
@kbd{C-x ]} (@code{forward-page}) and @kbd{C-x [}
(@code{backward-page}) commands and narrow to a chapter with the
@kbd{C-x n p} (@code{narrow-to-page}) command. (@xref{Pages, , ,xemacs,
-XEmacs User's Manual}, for details about the page commands.)@refill
+XEmacs User's Manual}, for details about the page commands.)
You may name a Texinfo file however you wish, but the convention is to
end a Texinfo file name with one of the extensions
@@ -1802,15 +1950,14 @@
when you visit a
file that has @samp{-*-texinfo-*-} in its first line. If ever you are
in another mode and wish to switch to Texinfo mode, type @code{M-x
-texinfo-mode}.@refill
+texinfo-mode}.
Like all other XEmacs features, you can customize or enhance Texinfo
mode as you wish. In particular, the keybindings are very easy to
change. The keybindings described here are the default or standard
-ones.@refill
+ones.
@node Inserting
-@comment node-name, next, previous, up
@section Inserting Frequently Used Commands
@cindex Inserting frequently used commands
@cindex Frequently used commands, inserting
@@ -1818,23 +1965,23 @@
Texinfo mode provides commands to insert various frequently used
@@-commands into the buffer. You can use these commands to save
-keystrokes.@refill
+keystrokes.
The insert commands are invoked by typing @kbd{C-c} twice and then the
-first letter of the @@-command:@refill
+first letter of the @@-command:
@table @kbd
@item C-c C-c c
@itemx M-x texinfo-insert-@@code
@findex texinfo-insert-@@code
Insert @code{@@code@{@}} and put the
-cursor between the braces.@refill
+cursor between the braces.
@item C-c C-c d
@itemx M-x texinfo-insert-@@dfn
@findex texinfo-insert-@@dfn
Insert @code{@@dfn@{@}} and put the
-cursor between the braces.@refill
+cursor between the braces.
@item C-c C-c e
@itemx M-x texinfo-insert-@@end
@@ -1842,19 +1989,19 @@
Insert @code{@@end} and attempt to insert the correct following word,
such as @samp{example} or @samp{table}. (This command does not handle
nested lists correctly, but inserts the word appropriate to the
-immediately preceding list.)@refill
+immediately preceding list.)
@item C-c C-c i
@itemx M-x texinfo-insert-@@item
@findex texinfo-insert-@@item
Insert @code{@@item} and put the
-cursor at the beginning of the next line.@refill
+cursor at the beginning of the next line.
@item C-c C-c k
@itemx M-x texinfo-insert-@@kbd
@findex texinfo-insert-@@kbd
Insert @code{@@kbd@{@}} and put the
-cursor between the braces.@refill
+cursor between the braces.
@item C-c C-c n
@itemx M-x texinfo-insert-@@node
@@ -1862,44 +2009,44 @@
Insert @code{@@node} and a comment line
listing the sequence for the `Next',
`Previous', and `Up' nodes.
-Leave point after the @code{@@node}.(a)refill
+Leave point after the @code{@@node}.
@item C-c C-c o
@itemx M-x texinfo-insert-@@noindent
@findex texinfo-insert-@@noindent
Insert @code{@@noindent} and put the
-cursor at the beginning of the next line.@refill
+cursor at the beginning of the next line.
@item C-c C-c s
@itemx M-x texinfo-insert-@@samp
@findex texinfo-insert-@@samp
Insert @code{@@samp@{@}} and put the
-cursor between the braces.@refill
+cursor between the braces.
@item C-c C-c t
@itemx M-x texinfo-insert-@@table
@findex texinfo-insert-@@table
Insert @code{@@table} followed by a @key{SPC}
-and leave the cursor after the @key{SPC}.@refill
+and leave the cursor after the @key{SPC}.
@item C-c C-c v
@itemx M-x texinfo-insert-@@var
@findex texinfo-insert-@@var
Insert @code{@@var@{@}} and put the
-cursor between the braces.@refill
+cursor between the braces.
@item C-c C-c x
@itemx M-x texinfo-insert-@@example
@findex texinfo-insert-@@example
Insert @code{@@example} and put the
-cursor at the beginning of the next line.@refill
+cursor at the beginning of the next line.
@c M-@{ was the binding for texinfo-insert-braces;
@c in Emacs 19, backward-paragraph will take this binding.
@item C-c C-c @{
@itemx M-x texinfo-insert-braces
@findex texinfo-insert-braces
-Insert @code{@{@}} and put the cursor between the braces.@refill
+Insert @code{@{@}} and put the cursor between the braces.
@item C-c @}
@itemx C-c ]
@@ -1908,7 +2055,7 @@
Move from between a pair of braces forward past the closing brace.
Typing @kbd{C-c ]} is easier than typing @kbd{C-c @}}, which
is, however, more mnemonic; hence the two keybindings. (Also, you can
-move out from between braces by typing @kbd{C-f}.)@refill
+move out from between braces by typing @kbd{C-f}.)
@end table
To put a command such as @w{@code{@@code@{@dots{}@}}} around an
@@ -1920,13 +2067,13 @@
word or words. If you do not specify a prefix argument, XEmacs inserts
the @@-command string and positions the cursor between the braces. This
feature works only for those @@-commands that operate on a word or words
-within one line, such as @code{@@kbd} and @code{@@var}.(a)refill
+within one line, such as @code{@@kbd} and @code{@@var}.
This set of insert commands was created after analyzing the frequency
-with which different @@-commands are used in the @cite{XEmacs
+with which different @@-commands are used in the @cite{XEmacs User's
Manual} and the @cite{GDB Manual}. If you wish to add your own insert
commands, you can bind a keyboard macro to a key, use abbreviations,
-or extend the code in @file{texinfo.el}.@refill
+or extend the code in @file{texinfo.el}.
@findex texinfo-start-menu-description
@cindex Menu description, start
@@ -1937,54 +2084,52 @@
description in a menu entry line. (A menu entry has three parts, the
entry name, the node name, and the description. Only the node name is
required, but a description helps explain what the node is about.
-@xref{Menu Parts, , The Parts of a Menu}.)@refill
+@xref{Menu Parts, , The Parts of a Menu}.)
To use @code{texinfo-start-menu-description}, position point in a menu
entry line and type @kbd{C-c C-c C-d}. The command looks for and copies
the title that goes with the node name, and inserts the title as a
description; it positions point at beginning of the inserted text so you
can edit it. The function does not insert the title if the menu entry
-line already contains a description.@refill
+line already contains a description.
This command is only an aid to writing descriptions; it does not do the
whole job. You must edit the inserted text since a title tends to use
the same words as a node name but a useful description uses different
-words.@refill
+words.
@node Showing the Structure
-@comment node-name, next, previous, up
-@section Showing the Section Structure of a File
-@cindex Showing the section structure of a file
-@cindex Section structure of a file, showing it
-@cindex Structure of a file, showing it
-@cindex Outline of file structure, showing it
+@section Showing the Sectioning Structure of a File
+@cindex Showing the sectioning structure of a file
+@cindex Sectioning structure of a file, showing
+@cindex Structure of a file, showing
+@cindex Outline of file structure, showing
@cindex Contents-like outline of file structure
-@cindex File section structure, showing it
-@cindex Texinfo file section structure, showing it
-
-You can show the section structure of a Texinfo file by using the
+@cindex File sectioning structure, showing
+@cindex Texinfo file sectioning structure, showing
+
+You can show the sectioning structure of a Texinfo file by using the
@kbd{C-c C-s} command (@code{texinfo-show-structure}). This command
-shows the section structure of a Texinfo file by listing the lines
-that begin with the @@-commands for @code{@@chapter},
-@code{@@section}, and the like. It constructs what amounts
-to a table of contents. These lines are displayed in another buffer
-called the @samp{*Occur*} buffer. In that buffer, you can position
-the cursor over one of the lines and use the @kbd{C-c C-c} command
+lists the lines that begin with the @@-commands for @code{@@chapter},
+@code{@@section}, and the like. It constructs what amounts to a table
+of contents. These lines are displayed in another buffer called the
+@samp{*Occur*} buffer. In that buffer, you can position the cursor
+over one of the lines and use the @kbd{C-c C-c} command
(@code{occur-mode-goto-occurrence}), to jump to the corresponding spot
-in the Texinfo file.@refill
+in the Texinfo file.
@table @kbd
@item C-c C-s
@itemx M-x texinfo-show-structure
@findex texinfo-show-structure
Show the @code{@@chapter}, @code{@@section}, and such lines of a
-Texinfo file.@refill
+Texinfo file.
@item C-c C-c
@itemx M-x occur-mode-goto-occurrence
@findex occur-mode-goto-occurrence
Go to the line in the Texinfo file corresponding to the line under the
-cursor in the @file{*Occur*} buffer.@refill
+cursor in the @file{*Occur*} buffer.
@end table
If you call @code{texinfo-show-structure} with a prefix argument by
@@ -2001,7 +2146,7 @@
@code{texinfo-show-structure} will work on only that region. To see
the whole buffer again, use @w{@kbd{C-x n w}} (@code{widen}).
(@xref{Narrowing, , , xemacs, XEmacs User's Manual}, for more
-information about the narrowing commands.)@refill
+information about the narrowing commands.)
@vindex page-delimiter
@cindex Page delimiter in Texinfo mode
@@ -2012,11 +2157,12 @@
commands to move forward and backward by chapter, and to use the
@kbd{C-x n p} (@code{narrow-to-page}) command to narrow to a chapter.
@xref{Pages, , , xemacs, XEmacs User's Manual}, for more information
-about the page commands.@refill
+about the page commands.
+
@node Updating Nodes and Menus
-@comment node-name, next, previous, up
@section Updating Nodes and Menus
+
@cindex Updating nodes and menus
@cindex Create nodes, menus automatically
@cindex Insert nodes, menus automatically
@@ -2029,8 +2175,8 @@
`Previous', and `Up' pointers into an @code{@@node} line that has none
and to create menus in a file that has none.
-If you do not use the updating commands, you need to write menus and
-node pointers by hand, which is a tedious task.@refill
+If you do not use any updating commands, you need to write menus and
+node pointers by hand, which is a tedious task.
@menu
* Updating Commands:: Five major updating commands.
@@ -2044,22 +2190,21 @@
@node Updating Commands
@subsection The Updating Commands
-You can use the updating commands to:@refill
-
-@itemize @bullet
-@item
-insert or update the `Next', `Previous', and `Up' pointers of a
-node,@refill
-
-@item
-insert or update the menu for a section, and@refill
-
-@item
-create a master menu for a Texinfo source file.@refill
+You can use the updating commands to:
+
+@itemize @bullet
+@item
+insert or update the `Next', `Previous', and `Up' pointers of a node,
+
+@item
+insert or update the menu for a section, and
+
+@item
+create a master menu for a Texinfo source file.
@end itemize
You can also use the commands to update all the nodes and menus in a
-region or in a whole Texinfo file.@refill
+region or in a whole Texinfo file.
The updating commands work only with conventional Texinfo files, which
are structured hierarchically like books. In such files, a structuring
@@ -2087,16 +2232,16 @@
files since they do not refer to nodes within the current buffer. This
is a deficiency. Rather than use menu entries, you can use cross
references to refer to other Info files. None of the updating commands
-affect cross references.@refill
+affect cross references.
Texinfo mode has five updating commands that are used most often: two
are for updating the node pointers or menu of a single node (or a
region); two are for updating every node pointer and menu in a file;
and one, the @code{texinfo-master-menu} command, is for creating a
master menu for a complete file, and optionally, for updating every
-node and menu in the whole Texinfo file.@refill
-
-The @code{texinfo-master-menu} command is the primary command:@refill
+node and menu in the whole Texinfo file.
+
+The @code{texinfo-master-menu} command is the primary command:
@table @kbd
@item C-c C-u m
@@ -2104,15 +2249,15 @@
@findex texinfo-master-menu
Create or update a master menu that includes all the other menus
(incorporating the descriptions from pre-existing menus, if
-any).@refill
+any).
With an argument (prefix argument, @kbd{C-u,} if interactive), first create or
update all the nodes and all the regular menus in the buffer before
constructing the master menu. (@xref{The Top Node, , The Top Node and
-Master Menu}, for more about a master menu.)@refill
+Master Menu}, for more about a master menu.)
For @code{texinfo-master-menu} to work, the Texinfo file must have a
-`Top' node and at least one subsequent node.@refill
+`Top' node and at least one subsequent node.
After extensively editing a Texinfo file, you can type the following:
@@ -2123,15 +2268,15 @@
@end example
@noindent
-This updates all the nodes and menus completely and all at once.@refill
+This updates all the nodes and menus completely and all at once.
@end table
The other major updating commands do smaller jobs and are designed for
the person who updates nodes and menus as he or she writes a Texinfo
-file.@refill
+file.
@need 1000
-The commands are:@refill
+The commands are:
@table @kbd
@item C-c C-u C-n
@@ -2143,7 +2288,7 @@
pointers in it, the old pointers are removed and new ones inserted.
With an argument (prefix argument, @kbd{C-u}, if interactive), this command
updates all @code{@@node} lines in the region (which is the text
-between point and mark).@refill
+between point and mark).
@item C-c C-u C-m
@itemx M-x texinfo-make-menu
@@ -2152,19 +2297,19 @@
With an argument (@kbd{C-u} as prefix argument, if
interactive), the command makes or updates menus for the
nodes which are either within or a part of the
-region.@refill
+region.
Whenever @code{texinfo-make-menu} updates an existing menu, the
descriptions from that menu are incorporated into the new menu. This
is done by copying descriptions from the existing menu to the entries
in the new menu that have the same node names. If the node names are
-different, the descriptions are not copied to the new menu.@refill
+different, the descriptions are not copied to the new menu.
@item C-c C-u C-e
@itemx M-x texinfo-every-node-update
@findex texinfo-every-node-update
Insert or update the `Next', `Previous', and `Up' pointers for every
-node in the buffer.@refill
+node in the buffer.
@item C-c C-u C-a
@itemx M-x texinfo-all-menus-update
@@ -2172,12 +2317,12 @@
Create or update all the menus in the buffer. With an argument
(@kbd{C-u} as prefix argument, if interactive), first insert
or update all the node
-pointers before working on the menus.@refill
+pointers before working on the menus.
If a master menu exists, the @code{texinfo-all-menus-update} command
updates it; but the command does not create a new master menu if none
already exists. (Use the @code{texinfo-master-menu} command for
-that.)@refill
+that.)
When working on a document that does not merit a master menu, you can
type the following:
@@ -2189,7 +2334,7 @@
@end example
@noindent
-This updates all the nodes and menus.@refill
+This updates all the nodes and menus.
@end table
The @code{texinfo-column-for-description} variable specifies the
@@ -2204,7 +2349,7 @@
indent existing menu descriptions to a specified column. Finally, if
you wish, you can use the @code{texinfo-insert-node-lines} command to
insert missing @code{@@node} lines into a file. (@xref{Other Updating
-Commands}, for more information.)@refill
+Commands}, for more information.)
@node Updating Requirements
@subsection Updating Requirements
@@ -2218,12 +2363,12 @@
chapter, but not with a section; you can follow a chapter with a
section, but not with a subsection. However, you may `jump up' any
number of levels at one time---for example, from a subsection to a
-chapter.@refill
+chapter.
Each @code{@@node} line, with the exception of the line for the `Top'
node, must be followed by a line with a structuring command such as
@code{@@chapter}, @code{@@section}, or
-@code{@@unnumberedsubsec}.(a)refill
+@code{@@unnumberedsubsec}.
Each @code{@@node} line/structuring-command line combination
must look either like this:
@@ -2266,7 +2411,7 @@
The menu updating commands create a menu of sections within a chapter,
a menu of subsections within a section, and so on. This means that
-you must have a `Top' node if you want a menu of chapters.@refill
+you must have a `Top' node if you want a menu of chapters.
Incidentally, the @code{makeinfo} command will create an Info file for a
hierarchically organized Texinfo file that lacks `Next', `Previous' and
@@ -2282,25 +2427,25 @@
@subsection Other Updating Commands
In addition to the five major updating commands, Texinfo mode
-possesses several less frequently used updating commands:@refill
+possesses several less frequently used updating commands:
@table @kbd
@item M-x texinfo-insert-node-lines
@findex texinfo-insert-node-lines
Insert @code{@@node} lines before the @code{@@chapter},
@code{@@section}, and other sectioning commands wherever they are
-missing throughout a region in a Texinfo file.@refill
+missing throughout a region in a Texinfo file.
With an argument (@kbd{C-u} as prefix argument, if interactive), the
-@code{texinfo-insert-node-lines} command not only inserts
+command @code{texinfo-insert-node-lines} not only inserts
@code{@@node} lines but also inserts the chapter or section titles as
the names of the corresponding nodes. In addition, it inserts the
titles as node names in pre-existing @code{@@node} lines that lack
names. Since node names should be more concise than section or
-chapter titles, you must manually edit node names so inserted.@refill
+chapter titles, you must manually edit node names so inserted.
For example, the following marks a whole buffer as a region and inserts
-@code{@@node} lines and titles throughout:@refill
+@code{@@node} lines and titles throughout:
@example
C-x h C-u M-x texinfo-insert-node-lines
@@ -2321,7 +2466,7 @@
of all the included files before creating and inserting a master menu in
the outer file. The @code{texinfo-multiple-files-update} command is
described in the appendix on @code{@@include} files.
-@xref{texinfo-multiple-files-update}.
+@xref{@t{texinfo-multiple-files-update}}.
@item M-x texinfo-indent-menu-description
@findex texinfo-indent-menu-description
@@ -2331,7 +2476,7 @@
interactive), the @code{texinfo-indent-menu-description} command indents
every description in every menu in the region. However, this command
does not indent the second and subsequent lines of a multi-line
-description.@refill
+description.
@item M-x texinfo-sequential-node-update
@findex texinfo-sequential-node-update
@@ -2344,11 +2489,10 @@
you look through the file sequentially, so sequentially ordered nodes
are not strictly necessary.) With an argument (prefix argument, if
interactive), the @code{texinfo-sequential-node-update} command
-sequentially updates all the nodes in the region.@refill
+sequentially updates all the nodes in the region.
@end table
@node Info Formatting
-@comment node-name, next, previous, up
@section Formatting for Info
@cindex Formatting for Info
@cindex Running an Info formatter
@@ -2356,10 +2500,10 @@
Texinfo mode provides several commands for formatting part or all of a
Texinfo file for Info. Often, when you are writing a document, you
-want to format only part of a file---that is, a region.@refill
+want to format only part of a file---that is, a region.
You can use either the @code{texinfo-format-region} or the
-@code{makeinfo-region} command to format a region:@refill
+@code{makeinfo-region} command to format a region:
@table @kbd
@findex texinfo-format-region
@@ -2367,11 +2511,11 @@
@itemx M-x texinfo-format-region
@itemx C-c C-m C-r
@itemx M-x makeinfo-region
-Format the current region for Info.@refill
+Format the current region for Info.
@end table
You can use either the @code{texinfo-format-buffer} or the
-@code{makeinfo-buffer} command to format a whole buffer:@refill
+@code{makeinfo-buffer} command to format a whole buffer:
@table @kbd
@findex texinfo-format-buffer
@@ -2379,7 +2523,7 @@
@itemx M-x texinfo-format-buffer
@itemx C-c C-m C-b
@itemx M-x makeinfo-buffer
-Format the current buffer for Info.@refill
+Format the current buffer for Info.
@end table
@need 1000
@@ -2404,7 +2548,7 @@
For @TeX{} or the Info formatting commands to work, the file @emph{must}
include a line that has @code{@@setfilename} in its header.
-@xref{Creating an Info File}, for details about Info formatting.@refill
+@xref{Creating an Info File}, for details about Info formatting.
@node Printing
@comment node-name, next, previous, up
@@ -2415,19 +2559,20 @@
@cindex Buffer formatting and printing
@cindex Part of file formatting and printing
-Typesetting and printing a Texinfo file is a multi-step process in which
-you first create a file for printing (called a DVI file), and then
-print the file. Optionally, you may also create indices. To do this,
-you must run the @code{texindex} command after first running the
+Typesetting and printing a Texinfo file is a multi-step process in
+which you first create a file for printing (called a DVI file), and
+then print the file. Optionally, you may also create indices. To do
+this, you must run the @code{texindex} command after first running the
@code{tex} typesetting command; and then you must run the @code{tex}
command again. Or else run the @code{texi2dvi} command which
-automatically creates indices as needed (@pxref{Format with texi2dvi}).
+automatically creates indices as needed (@pxref{Format with
+@t{texi2dvi}}).
Often, when you are writing a document, you want to typeset and print
only part of a file to see what it will look like. You can use the
@code{texinfo-tex-region} and related commands for this purpose. Use
the @code{texinfo-tex-buffer} command to format all of a
-buffer.@refill
+buffer.
@table @kbd
@item C-c C-t C-b
@@ -2435,12 +2580,12 @@
@findex texinfo-tex-buffer
Run @code{texi2dvi} on the buffer. In addition to running @TeX{} on the
buffer, this command automatically creates or updates indices as
-needed.@refill
+needed.
@item C-c C-t C-r
@itemx M-x texinfo-tex-region
@findex texinfo-tex-region
-Run @TeX{} on the region.@refill
+Run @TeX{} on the region.
@item C-c C-t C-i
@itemx M-x texinfo-texindex
@@ -2451,13 +2596,13 @@
a second time after sorting the raw index files with the @code{texindex}
command. (Usually, you do not format an index when you format a region,
only when you format a buffer. Now that the @code{texi2dvi} command
-exists, there is little or no need for this command.)@refill
+exists, there is little or no need for this command.)
@item C-c C-t C-p
@itemx M-x texinfo-tex-print
@findex texinfo-tex-print
Print the file (or the part of the file) previously formatted with
-@code{texinfo-tex-buffer} or @code{texinfo-tex-region}.@refill
+@code{texinfo-tex-buffer} or @code{texinfo-tex-region}.
@end table
For @code{texinfo-tex-region} or @code{texinfo-tex-buffer} to work, the
@@ -2465,26 +2610,25 @@
include an @code{@@settitle} line. The file must end with @code{@@bye}
on a line by itself. (When you use @code{texinfo-tex-region}, you must
surround the @code{@@settitle} line with start-of-header and
-end-of-header lines.)@refill
+end-of-header lines.)
@xref{Hardcopy}, for a description of the other @TeX{} related
-commands, such as @code{tex-show-print-queue}.@refill
+commands, such as @code{tex-show-print-queue}.
@node Texinfo Mode Summary
-@comment node-name, next, previous, up
@section Texinfo Mode Summary
In Texinfo mode, each set of commands has default keybindings that
begin with the same keys. All the commands that are custom-created
for Texinfo mode begin with @kbd{C-c}. The keys are somewhat
-mnemonic.@refill
+mnemonic.
@subheading Insert Commands
The insert commands are invoked by typing @kbd{C-c} twice and then the
first letter of the @@-command to be inserted. (It might make more
sense mnemonically to use @kbd{C-c C-i}, for `custom insert', but
-@kbd{C-c C-c} is quick to type.)@refill
+@kbd{C-c C-c} is quick to type.)
@example
C-c C-c c @r{Insert} @samp{@@code}.
@@ -2508,7 +2652,7 @@
@subheading Show Structure
The @code{texinfo-show-structure} command is often used within a
-narrowed region.@refill
+narrowed region.
@example
C-c C-s @r{List all the headings.}
@@ -2517,7 +2661,7 @@
@subheading The Master Update Command
The @code{texinfo-master-menu} command creates a master menu; and can
-be used to update every node and menu in a file as well.@refill
+be used to update every node and menu in a file as well.
@c Probably should use @tables in this section.
@example
@@ -2538,7 +2682,7 @@
The update pointer commands are invoked by typing @kbd{C-c C-u} and
then either @kbd{C-n} for @code{texinfo-update-node} or @kbd{C-e} for
-@code{texinfo-every-node-update}.(a)refill
+@code{texinfo-every-node-update}.
@example
C-c C-u C-n @r{Update a node.}
@@ -2551,7 +2695,7 @@
and then either @kbd{C-m} for @code{texinfo-make-menu} or
@kbd{C-a} for @code{texinfo-all-menus-update}. To update
both nodes and menus at the same time, precede @kbd{C-c C-u
-C-a} with @kbd{C-u}.@refill
+C-a} with @kbd{C-u}.
@example
C-c C-u C-m @r{Make or update a menu.}
@@ -2570,13 +2714,13 @@
@subheading Format for Info
-The Info formatting commands that are written in XEmacs Lisp are
+The Info formatting commands that are written in Emacs Lisp are
invoked by typing @kbd{C-c C-e} and then either @kbd{C-r} for a region
-or @kbd{C-b} for the whole buffer.@refill
+or @kbd{C-b} for the whole buffer.
The Info formatting commands that are written in C and based on the
@code{makeinfo} program are invoked by typing @kbd{C-c C-m} and then
-either @kbd{C-r} for a region or @kbd{C-b} for the whole buffer.@refill
+either @kbd{C-r} for a region or @kbd{C-b} for the whole buffer.
@need 800
@noindent
@@ -2605,7 +2749,7 @@
The @TeX{} typesetting and printing commands are invoked by typing
@kbd{C-c C-t} and then another control command: @kbd{C-r} for
@code{texinfo-tex-region}, @kbd{C-b} for @code{texinfo-tex-buffer},
-and so on.@refill
+and so on.
@example
C-c C-t C-r @r{Run @TeX{} on the region.}
@@ -2670,8 +2814,8 @@
@cindex Frontmatter, text in
Straight text outside of any command before the Top node should be
avoided. Such text is treated differently in the different output
-formats: visible in @TeX{} and HTML, by default not shown in Info
-readers, and so on.
+formats: at the time of writing, it is visible in @TeX{} and HTML, by
+default not shown in Info readers, and so on.
@menu
* Sample Beginning:: A sample beginning for a Texinfo file.
@@ -2681,8 +2825,6 @@
* Contents:: How to create a table of contents.
* The Top Node:: Creating the `Top' node and master menu.
* Global Document Commands:: Affecting formatting throughout.
-* Software Copying Permissions:: Ensure that you and others continue to
- have the right to use and share software.
@end menu
@@ -2771,22 +2913,23 @@
@cindex Header for Texinfo files
@cindex Texinfo file header
-Texinfo files start with at least three lines that provide Info and
-@TeX{} with necessary information. These are the @code{\input texinfo}
-line, the @code{@@settitle} line, and the @code{@@setfilename} line.
-
-Also, if you want to format just part of the Texinfo file, you must
-write the @code{@@settitle} and @code{@@setfilename} lines between
-start-of-header and end-of-header lines. The start- and end-of-header
-lines are optional, but they do no harm, so you might as well always
-include them.
+Texinfo files start with at least three lines that provide Texinfo
+translators with necessary information. These are the @code{\input
+texinfo} line, the @code{@@settitle} line, and the
+@code{@@setfilename} line.
+
+Also, if you want to format just part of the Texinfo file in XEmacs,
+you must write the @code{@@settitle} and @code{@@setfilename} lines
+between start-of-header and end-of-header lines. These start- and
+end-of-header lines are optional, but they do no harm, so you might as
+well always include them.
Any command that affects document formatting as a whole makes sense to
-include in the header. @code{@@synindex} (@pxref{synindex}), for
-instance, is another command often included in the header. @xref{GNU
-Sample Texts}, for complete sample texts.
-
-Thus, the beginning of a Texinfo file generally looks like this:
+include in the header. @code{@@synindex} (@pxref{@t{@@synindex}}),
+for instance, is another command often included in the header.
+
+Thus, the beginning of a Texinfo file generally looks approximately
+like this:
@example
@group
@@ -2798,11 +2941,13 @@
@end group
@end example
+(@xref{GNU Sample Texts}, for complete sample texts.)
+
@menu
* First Line:: The first line of a Texinfo file.
* Start of Header:: Formatting a region requires this.
-* setfilename:: Tell Info the name of the Info file.
-* settitle:: Create a title for the printed work.
+* @t{@@setfilename}:: Tell Info the name of the Info file.
+* @t{@@settitle}:: Create a title for the printed work.
* End of Header:: Formatting a region requires this.
@end menu
@@ -2859,7 +3004,7 @@
Header}).
The start- and end-of-header lines allow you to format only part of a
-Texinfo file for Info or printing. @xref{texinfo-format commands}.
+Texinfo file for Info or printing. @xref{@t{texinfo-format} commands}.
The odd string of characters, @samp{%**}, is to ensure that no other
comment is accidentally taken for a start-of-header line. You can
@@ -2867,35 +3012,41 @@
@code{tex-end-of-header} XEmacs variables. @xref{Texinfo Mode Printing}.
-@node setfilename
-@subsection @code{@@setfilename}: Set the output file name
+@node @t{@@setfilename}
+@subsection @code{@@setfilename}: Set the Output File Name
+
+@anchor{setfilename}@c old name
@findex setfilename
@cindex Texinfo requires @code{@@setfilename}
-
-In order to serve as the primary input file for either @code{makeinfo}
-or @TeX{}, a Texinfo file must contain a line that looks like this:
+@cindex Output file name, required
+
+The first Texinfo command (that is, after the @code{\input texinfo})
+in a document is generally @code{@@setfilename}:
@example
@@setfilename @var{info-file-name}
@end example
+This command is required for @TeX{}, and very strongly recommended for
+@code{makeinfo}.
+
Write the @code{@@setfilename} command at the beginning of a line and
-follow it on the same line by the Info file name. Do not write anything
-else on the line; anything on the line after the command is considered
-part of the file name, including what would otherwise be a
-comment.
+follow it on the same line by the Info file name. Do not write
+anything else on the line.
@cindex Ignored before @code{@@setfilename}
@cindex @samp{\input} source line ignored
-The Info formatting commands ignore everything written before the
-@code{@@setfilename} line, which is why the very first line of
-the file (the @code{\input} line) does not show up in the output.
+When an @code{@@setfilename} line is present, the Texinfo processors
+ignore everything written before the @code{@@setfilename} line. This
+is why the very first line of the file (the @code{\input} line) does
+not show up in the output.
The @code{@@setfilename} line specifies the name of the output file to
-be generated. This name must be different from the name of the Texinfo
-file. There are two conventions for choosing the name: you can either
-remove the extension (such as @samp{.texi}) entirely from the input file
-name, or, preferably, replace it with the @samp{.info} extension.
+be generated. This name must be different from the name of the
+Texinfo file. There are two conventions for choosing the name: you
+can either remove the extension (such as @samp{.texi}) entirely from
+the input file name, or (recommended) replace it with the @samp{.info}
+extension.
@cindex Length of file names
@cindex File name collision
@@ -2907,78 +3058,73 @@
short indirect subfiles, and name them by appending @samp{-1},
@samp{-2}, @dots{}, @samp{-10}, @samp{-11}, and so on, to the original
file name. (@xref{Tag and Split Files}.) The subfile name
-(a)file{texinfo.info-10}, for example, is too long for old systems with a
-14-character limit on filenames; so the Info file name for this document
-is @file{texinfo} rather than @file{texinfo.info}. When @code{makeinfo}
-is running on operating systems such as MS-DOS which impose severe
-limits on file names, it may remove some characters from the original
-file name to leave enough space for the subfile suffix, thus producing
-files named @file{texin-10}, @file{gcc.i12}, etc.
-
-When producing HTML output, @code{makeinfo} will replace any extension
-with @samp{html}, or add @samp{.html} if the given name has no
-extension.
+(a)file{texinfo.info-10}, for example, is too long for old systems with
+a 14-character limit on filenames; so the Info file name for this
+document is @file{texinfo} rather than @file{texinfo.info}. When
+@code{makeinfo} is running on operating systems such as MS-DOS which
+impose severe limits on file names, it may remove some characters from
+the original file name to leave enough space for the subfile suffix,
+thus producing files named @file{texin-10}, @file{gcc.i12}, etc.
+
+When producing another output format, @code{makeinfo} will replace any
+final extension with the output format-specific extension (@samp{html}
+when generating HTML, for example), or add a dot followed by the
+extension (@samp{.html} for HTML) if the given name has no extension.
@pindex texinfo.cnf
The @code{@@setfilename} line produces no output when you typeset a
manual with @TeX{}, but it is nevertheless essential: it opens the
-index, cross-reference, and other auxiliary files used by Texinfo, and
-also reads @file{texinfo.cnf} if that file is present on your system
-(@pxref{Preparing for TeX,, Preparing for @TeX{}}).
-
-
-@node settitle
-@subsection @code{@@settitle}: Set the document title
+index and other auxiliary files used by Texinfo, and also reads
+(a)file{texinfo.cnf} if that file is present on your system
+(@pxref{Preparing for @TeX{}}).
+
+If there is no @code{@@setfilename} line, @code{makeinfo} uses the
+input file name to determine the output name: first, any of the
+extensions @code{.texi}, @code{.tex}, @code{.txi} or @code{.texinfo}
+is removed from the input file name; then, the output format specific
+extension is added---(a)code{.html} when generating HTML, @code{.info}
+when generating Info, etc. The @code{\input} line is still ignored in
+this processing, as well as leading blank lines.
+
+See also the @option{--output} option in @ref{Invoking @t{texi2any}}.
+
+
+@node @t{@@settitle}
+@subsection @code{@@settitle}: Set the Document Title
+
+@anchor{settitle}@c old name
@findex settitle
-
-In order to be made into a printed manual, a Texinfo file must contain
-a line that looks like this:
+@cindex Document title, specifying
+
+A Texinfo file should contain a line that looks like this:
@example
@@settitle @var{title}
@end example
Write the @code{@@settitle} command at the beginning of a line and
-follow it on the same line by the title. This tells @TeX{} the title to
-use in a header or footer. Do not write anything else on the line;
-anything on the line after the command is considered part of the title,
-including what would otherwise be a comment.
-
-The @code{@@settitle} command should precede everything that generates
-actual output. The best place for it is right after the
-@code{@@setfilename} command (see the previous section).
-
-@cindex <title> HTML tag
+follow it on the same line by the title. Do not write anything else
+on the line. The @code{@@settitle} command should precede everything
+that generates actual output. The best place for it is right after
+the @code{@@setfilename} command (described in the previous section).
+
+This command tells @TeX{} the title to use in a header or footer
+for double-sided output, in case such headings are output. For
+more on headings for @TeX{}, see @ref{Heading Generation}.
+
+@cindex @code{<title>} HTML tag
In the HTML file produced by @command{makeinfo}, @var{title} serves as
the document @samp{<title>}. It also becomes the default document
-description in the @samp{<head>} part (@pxref{documentdescription}).
-
-The title in the @code{@@settitle} command does not affect the title as
-it appears on the title page. Thus, the two do not need not match
-exactly. A practice we recommend is to include the version or edition
-number of the manual in the @code{@@settitle} title; on the title page,
-the version number generally appears as a @code{@@subtitle} so it would
-be omitted from the @code{@@title}. @xref{titlepage}.
-
-Conventionally, when @TeX{} formats a Texinfo file for double-sided
-output, the title is printed in the left-hand (even-numbered) page
-headings and the current chapter title is printed in the right-hand
-(odd-numbered) page headings. (@TeX{} learns the title of each chapter
-from each @code{@@chapter} command.) By default, no page footer is
-printed.
-
-Even if you are printing in a single-sided style, @TeX{} looks for an
-@code{@@settitle} command line, in case you include the manual title
-in the heading.
-
-@TeX{} prints page headings only for that text that comes after the
-@code{@@end titlepage} command in the Texinfo file, or that comes
-after an @code{@@headings} command that turns on headings.
-(@xref{headings on off, , The @code{@@headings} Command}, for more
-information.)
-
-You may, if you wish, create your own, customized headings and footings.
-@xref{Headings}, for a detailed discussion of this.
+description in the @samp{<head>} part
+(@pxref{@t{@@documentdescription}}).
+
+When the title page is used in the output, the title in the
+@code{@@settitle} command does not affect the title as it appears on
+the title page. Thus, the two do not need not to match exactly. A
+practice we recommend is to include the version or edition number of
+the manual in the @code{@@settitle} title; on the title page, the
+version number generally appears as an @code{@@subtitle} so it would
+be omitted from the @code{@@title}. @xref{@t{@@titlepage}}.
@node End of Header
@@ -3006,14 +3152,25 @@
this text once, and another command (@code{@@insertcopying}) to
insert the text at appropriate points.
-@menu
-* copying:: Declare the document's copying permissions.
-* insertcopying:: Where to insert the permissions.
-@end menu
-
-
-@node copying
+@anchor{Software Copying Permissions}@c old node name
+This section is about the license of the Texinfo document. If the
+document is a software manual, the software is typically under a
+different license---for GNU and many other free software packages,
+software is usually released under the GNU GPL, and manuals are
+released under the GNU FDL@. It is helpful to state the license of
+the software of the manual, but giving the complete text of the
+software license is not necessarily required.
+
+@menu
+* @t{@@copying}:: Declare the document's copying permissions.
+* @t{@@insertcopying}:: Where to insert the permissions.
+@end menu
+
+
+@node @t{@@copying}
@subsection @code{@@copying}: Declare Copying Permissions
+
+@anchor{copying}@c old name
@findex copying
The @code{@@copying} command should be given very early in the document;
@@ -3039,21 +3196,19 @@
The @code{@@quotation} has no legal significance; it's there to improve
readability in some contexts.
-@xref{GNU Sample Texts}, for the full text to be used in GNU manuals.
-@xref{GNU Free Documentation License}, for the license itself under
-which GNU and other free manuals are distributed. You need to include
-the license as an appendix to your document.
-
The text of @code{@@copying} is output as a comment at the beginning of
Info, HTML, and XML output files. It is @emph{not} output implicitly in
plain text or @TeX{}; it's up to you to use @code{@@insertcopying} to
emit the copying information. See the next section for details.
@findex copyright
-The @code{@@copyright@{@}} command generates a @samp{c} inside a circle
-in output formats that support this (print and HTML). In the other
-formats (Info and plain text), it generates @samp{(C)}. The copyright
-notice itself has the following legally defined sequence:
+The @code{@@copyright@{@}} command generates a @samp{c} inside a
+circle when the output format supports this glyph (print and HTML
+always do, for instance). When the glyph is not supported in the
+output, it generates the three-character sequence @samp{(C)}.
+
+The copyright notice itself has the following legally-prescribed
+form:
@example
Copyright @copyright{} @var{years} @var{copyright-owner}.
@@ -3066,8 +3221,8 @@
@cindex Years, in copyright line
The list of years should include all years in which a version was
-completed (even if it was released in a subsequent year). Ranges are
-not allowed; each year must be written out individually and in full,
+completed (even if it was released in a subsequent year). It is
+simplest for each year to be written out individually and in full,
separated by commas.
@cindex Copyright holder for FSF works
@@ -3083,12 +3238,17 @@
publication. If you do use several lines, do not indent any of them
(or anything else in the @code{@@copying} block) in the source file.
-@xref{Copyright Notices,,,maintain,GNU Maintenance Instructions}, for
-additional information.
-
-
-@node insertcopying
+@xref{Copyright Notices,,, maintain, GNU Maintainer Information}, for
+additional information. @xref{GNU Sample Texts}, for the full text to
+be used in GNU manuals. @xref{GNU Free Documentation License}, for
+the license itself under which GNU and other free manuals are
+distributed.
+
+
+@node @t{@@insertcopying}
@subsection @code{@@insertcopying}: Include Permissions Text
+
+@anchor{insertcopying}@c old name
@findex insertcopying
@cindex Copying text, including
@cindex Permissions text, including
@@ -3118,7 +3278,7 @@
text is not visible (unless the reader views the HTML source).
The permissions text defined by @code{@@copying} also appears
-automatically at the beginning of the XML output file.
+automatically at the beginning of the XML and Docbook output files.
@node Titlepage & Copyright Page
@@ -3128,37 +3288,30 @@
a title page. Copyright information is usually printed on the back of
the title page.
-The title and copyright pages appear in the printed manual, but not in
-the Info file. Because of this, it is possible to use several slightly
-obscure @TeX{} typesetting commands that cannot be used in an Info file.
-In addition, this part of the beginning of a Texinfo file contains the
-text of the copying permissions that appears in the printed manual.
-
-@cindex Title page, for plain text
-@cindex Copyright page, for plain text
-You may wish to include titlepage-like information for plain text
-output. Simply place any such leading material between
-@code{@@ifplaintext} and @code{@@end ifplaintext}; @command{makeinfo}
-includes this when writing plain text (@samp{--no-headers}), along with
-an @code{@@insertcopying}.
-
-@menu
-* titlepage:: Create a title for the printed document.
-* titlefont center sp:: The @code{@@titlefont}, @code{@@center},
+The title and copyright pages appear in printed manuals, but not in
+most other output formats. Because of this, it is possible to use
+several slightly obscure typesetting commands that are not to be used
+in the main text. In addition, this part of the beginning of a
+Texinfo file contains the text of the copying permissions that appears
+in the printed manual.
+
+@menu
+* @t{@@titlepage}:: Create a title for the printed document.
+* @t{@@titlefont @@center @@sp}:: The @code{@@titlefont}, @code{@@center},
and @code{@@sp} commands.
-* title subtitle author:: The @code{@@title}, @code{@@subtitle},
+* @t{@@title @@subtitle @@author}:: The @code{@@title}, @code{@@subtitle},
and @code{@@author} commands.
* Copyright:: How to write the copyright notice and
include copying permissions.
-* end titlepage:: Turn on page headings after the title and
+* Heading Generation:: Turn on page headings after the title and
copyright pages.
-* headings on off:: An option for turning headings on and off
- and double or single sided printing.
-@end menu
-
-
-@node titlepage
+@end menu
+
+
+@node @t{@@titlepage}
@subsection @code{@@titlepage}
+
+@anchor{titlepage}@c old name
@cindex Title page
@findex titlepage
@@ -3167,12 +3320,11 @@
@code{@@end titlepage} on a line by itself.
The @code{@@end titlepage} command starts a new page and turns on page
-numbering. (@xref{Headings, , Page Headings}, for details about how to
-generate page headings.) All the material that you want to appear on
-unnumbered pages should be put between the @code{@@titlepage} and
-@code{@@end titlepage} commands. You can force the table of contents to
-appear there with the @code{@@setcontentsaftertitlepage} command
-(@pxref{Contents}).
+numbering (@pxref{Heading Generation}). All the
+material that you want to appear on unnumbered pages should be put
+between the @code{@@titlepage} and @code{@@end titlepage} commands.
+You can force the table of contents to appear there with the
+@code{@@setcontentsaftertitlepage} command (@pxref{Contents}).
@findex page@r{, within @code{@@titlepage}}
By using the @code{@@page} command you can force a page break within the
@@ -3212,15 +3364,17 @@
@findex shorttitlepage
@cindex Bastard title page
@cindex Title page, bastard
-For extremely simple documents, and for the bastard title page in
+For sufficiently simple documents, and for the bastard title page in
traditional book frontmatter, Texinfo also provides a command
@code{@@shorttitlepage} which takes the rest of the line as the title.
The argument is typeset on a page by itself and followed by a blank
page.
-@node titlefont center sp
+@node @t{@@titlefont @@center @@sp}
@subsection @code{@@titlefont}, @code{@@center}, and @code{@@sp}
+
+@anchor{titlefont center sp}@c old name
@findex titlefont
@findex center
@findex sp @r{(titlepage line spacing)}
@@ -3236,7 +3390,7 @@
For HTML output, each @code{@@titlefont} command produces an
@code{<h1>} heading, but the HTML document @code{<title>} is not
affected. For that, you must put an @code{@@settitle} command before
-the @code{@@titlefont} command (@pxref{settitle}).
+the @code{@@titlefont} command (@pxref{@t{@@settitle}}).
@need 700
For example:
@@ -3263,8 +3417,8 @@
@end example
@noindent
-This inserts two blank lines on the printed page. (@xref{sp, ,
-@code{@@sp}}, for more information about the @code{@@sp}
+This inserts two blank lines on the printed page.
+(@xref{@t{@@sp}}, for more information about the @code{@@sp}
command.)
A template for this method looks like this:
@@ -3289,8 +3443,10 @@
but since they are not logical markup commands, we don't recommend
them.
-@node title subtitle author
+@node @t{@@title @@subtitle @@author}
@subsection @code{@@title}, @code{@@subtitle}, and @code{@@author}
+
+@anchor{title subtitle author}@c old name
@findex title
@findex subtitle
@findex author
@@ -3303,26 +3459,34 @@
Write the @code{@@title}, @code{@@subtitle}, or @code{@@author}
commands at the beginning of a line followed by the title, subtitle,
-or author. These commands are only effective in @TeX{} output; it's
-an error to use them anywhere except within @code{@@titlepage}.
+or author. The @code{@@author} command may be used for a quotation in
+an @code{@@quotation} block (@pxref{@t{@@quotation}});
+except for that, it is an error to use any of these commands outside
+of @code{@@titlepage}.
The @code{@@title} command produces a line in which the title is set
flush to the left-hand side of the page in a larger than normal font.
-The title is underlined with a black rule. Only a single line is
-allowed; the @code{@@*} command may not be used to break the title into
-two lines. To handle very long titles, you may find it profitable to
-use both @code{@@title} and @code{@@titlefont}; see the final example in
-this section.
+The title is underlined with a black rule. The title must be given on
+a single line in the source file; it will be broken into multiple
+lines of output is needed.
+
+For long titles, the @code{@@*} command may be used to specify the
+line breaks in long titles if the automatic breaks do not suit. Such
+explicit line breaks are generally reflected in all output formats; if
+you only want to specify them for the printed output, use a
+conditional (@pxref{Conditionals}). For example:
+
+@example
+@@title This Long Title@@inlinefmt@{tex,@@*@} Is Broken in @@TeX@{@}
+@end example
The @code{@@subtitle} command sets subtitles in a normal-sized font
flush to the right-hand side of the page.
The @code{@@author} command sets the names of the author or authors in
a middle-sized font flush to the left-hand side of the page on a line
-near the bottom of the title page. The names are underlined with a
-black rule that is thinner than the rule that underlines the title.
-(The black rule only occurs if the @code{@@author} command line is
-followed by an @code{@@page} command line.)
+near the bottom of the title page. The names are followed by a black
+rule that is thinner than the rule that underlines the title.
There are two ways to use the @code{@@author} command: you can write
the name or names on the remaining part of the line that starts with
@@ -3333,7 +3497,7 @@
@end example
@noindent
-or you can write the names one above each other by using two (or more)
+or you can write the names one above each other by using multiple
@code{@@author} commands:
@example
@@ -3343,9 +3507,6 @@
@end group
@end example
-@noindent
-(Only the bottom name is underlined with a black rule.)
-
@need 950
A template for this method looks like this:
@@ -3362,25 +3523,6 @@
@end group
@end example
-You may also combine the @code{@@titlefont} method described in the
-previous section and @code{@@title} method described in this one. This
-may be useful if you have a very long title. Here is a real-life example:
-
-@example
-@group
-@@titlepage
-@@titlefont@{GNU Software@}
-@@sp 1
-@@title for MS-Windows and MS-DOS
-@@subtitle Edition @@value@{e@} for Release @@value@{cde@}
-@@author by Daniel Hagerty, Melissa Weisshaus
-@@author and Eli Zaretskii
-@end group
-@end example
-
-@noindent
-(The use of @code{@@value} here is explained in @ref{value Example}.
-
@node Copyright
@subsection Copyright Page
@@ -3406,11 +3548,11 @@
@end example
@noindent
-This is a @TeX{} command that is not supported by the Info formatting
-commands. The @code{@@vskip} command inserts whitespace. The @samp{0pt
-plus 1filll} means to put in zero points of mandatory whitespace, and as
-much optional whitespace as needed to push the following text to the
-bottom of the page. Note the use of three @samp{l}s in the word
+The @code{@@vskip} command inserts whitespace in the @TeX{} output; it
+is ignored in all other output formats. The @samp{0pt plus 1filll}
+means to put in zero points of mandatory whitespace, and as much
+optional whitespace as needed to push the following text to the bottom
+of the page. Note the use of three @samp{l}s in the word
@samp{filll}; this is correct.
To insert the copyright text itself, write @code{@@insertcopying}
@@ -3438,121 +3580,82 @@
@@end titlepage
@end example
-
-@node end titlepage
+We have one more special case to consider: for plain text output, you
+must insert the copyright information explicitly if you want it to
+appear. For instance, you could have the following after the copyright
+page:
+
+@example
+@@ifplaintext
+@@insertcopying
+@@end ifplaintext
+@end example
+
+You could include other title-like information for the plain text
+output in the same place.
+
+
+
+@node Heading Generation
@subsection Heading Generation
-@findex end titlepage
+
+@anchor{end titlepage}@c old name
@cindex Headings, page, begin to appear
@cindex Titlepage end starts headings
@cindex End titlepage starts headings
-
-Like all @code{@@end} commands (@pxref{Quotations and Examples}), the @code{@@end titlepage} command
-must be written at the beginning of a line by itself, with only one
-space between the @code{@@end} and the @code{titlepage}. It not only
-marks the end of the title and copyright pages, but also causes @TeX{}
-to start generating page headings and page numbers.
-
-To repeat what is said elsewhere, Texinfo has two standard page heading
-formats, one for documents which are printed on one side of each sheet of paper
-(single-sided printing), and the other for documents which are printed on both
-sides of each sheet (double-sided printing).
-You can specify these formats in different ways:
+@cindex Generating page headings
+
+Like all @code{@@end} commands (@pxref{Quotations and Examples}), the
+@code{@@end titlepage} command must be written at the beginning of a
+line by itself, with only one space between the @code{@@end} and the
+@code{titlepage}. It not only marks the end of the title and
+copyright pages, but also causes @TeX{} to start generating page
+headings and page numbers.
+
+Texinfo has two standard page heading formats, one for documents
+printed on one side of each sheet of paper (single-sided printing),
+and the other for documents printed on both sides of each sheet
+(double-sided printing).
+
+In full generality, you can control the headings in different ways:
@itemize @bullet
@item
The conventional way is to write an @code{@@setchapternewpage} command
-before the title page commands, and then have the @code{@@end
-titlepage} command start generating page headings in the manner desired.
-(@xref{setchapternewpage}.)
-
-@item
-Alternatively, you can use the @code{@@headings} command to prevent page
-headings from being generated or to start them for either single or
-double-sided printing. (Write an @code{@@headings} command immediately
-after the @code{@@end titlepage} command. @xref{headings on off, , The
-@code{@@headings} Command}, for more information.)@refill
+before the title page commands, if required, and then have the
+@code{@@end titlepage} command start generating page headings in the
+manner desired.
+
+Most documents are formatted with the standard single-sided or
+double-sided headings, (sometimes) using @code{@@setchapternewpage
+odd} for double-sided printing and (almost always) no
+@code{@@setchapternewpage} command for single-sided printing
+(@pxref{@t{@@setchapternewpage}}).
+
+@item
+Alternatively, you can use the @code{@@headings} command to prevent
+page headings from being generated or to start them for either single
+or double-sided printing. Write an @code{@@headings} command
+immediately after the @code{@@end titlepage} command. To turn off
+headings, write @code{@@headings off}. @xref{@t{@@headings}}.
@item
Or, you may specify your own page heading and footing format.
-@xref{Headings, , Page Headings}, for detailed
-information about page headings and footings.
-@end itemize
-
-Most documents are formatted with the standard single-sided or
-double-sided format, using @code{@@setchapternewpage odd} for
-double-sided printing and no @code{@@setchapternewpage} command for
-single-sided printing.
-
-
-@node headings on off
-@subsection The @code{@@headings} Command
-@findex headings
-
-The @code{@@headings} command is rarely used. It specifies what kind of
-page headings and footings to print on each page. Usually, this is
-controlled by the @code{@@setchapternewpage} command. You need the
-@code{@@headings} command only if the @code{@@setchapternewpage} command
-does not do what you want, or if you want to turn off predefined page
-headings prior to defining your own. Write an @code{@@headings} command
-immediately after the @code{@@end titlepage} command.
-
-You can use @code{@@headings} as follows:
-
-@table @code
-@item @@headings off
-Turn off printing of page headings.
-
-@item @@headings single
-Turn on page headings appropriate for single-sided printing.
-
-@item @@headings double
-Turn on page headings appropriate for double-sided printing.
-
-@item @@headings singleafter
-@itemx @@headings doubleafter
-Turn on @code{single} or @code{double} headings, respectively, after the
-current page is output.
-
-@item @@headings on
-Turn on page headings: @code{single} if @samp{@@setchapternewpage
-on}, @code{double} otherwise.
-@end table
-
-For example, suppose you write @code{@@setchapternewpage off} before the
-@code{@@titlepage} command to tell @TeX{} to start a new chapter on the
-same page as the end of the last chapter. This command also causes
-@TeX{} to typeset page headers for single-sided printing. To cause
-@TeX{} to typeset for double sided printing, write @code{@@headings
-double} after the @code{@@end titlepage} command.
-
-You can stop @TeX{} from generating any page headings at all by
-writing @code{@@headings off} on a line of its own immediately after the
-line containing the @code{@@end titlepage} command, like this:
-
-@example
-@@end titlepage
-@@headings off
-@end example
-
-@noindent
-The @code{@@headings off} command overrides the @code{@@end titlepage}
-command, which would otherwise cause @TeX{} to print page headings.
-
-You can also specify your own style of page heading and footing.
-@xref{Headings, , Page Headings}, for more information.
+@xref{Headings}.
+@end itemize
@node Contents
@section Generating a Table of Contents
@cindex Table of contents
-@cindex Contents, Table of
+@cindex Contents, table of
@cindex Short table of contents
@findex contents
@findex summarycontents
@findex shortcontents
The @code{@@chapter}, @code{@@section}, and other structuring commands
-(@pxref{Structuring}) supply the information to make up a
+(@pxref{Chapter Structuring}) supply the information to make up a
table of contents, but they do not cause an actual table to appear in
the manual. To do this, you must use the @code{@@contents} and/or
@code{@@summarycontents} command(s).
@@ -3574,21 +3677,20 @@
chapters, appendices, and unnumbered chapters. Sections, subsections
and subsubsections are omitted. Only a long manual needs a short
table of contents in addition to the full table of contents.
-
@end table
Both contents commands should be written on a line by themselves, and
-are best placed near the beginning of the file, after the @code{@@end
-titlepage} (@pxref{titlepage}). The contents commands automatically
-generate a chapter-like heading at the top of the first table of
-contents page, so don't include any sectioning command such as
-@code{@@unnumbered} before them.
+placed near the beginning of the file, after the @code{@@end
+titlepage} (@pxref{@t{@@titlepage}}), before any sectioning
+command. The contents commands automatically generate a chapter-like
+heading at the top of the first table of contents page, so don't
+include any sectioning command such as @code{@@unnumbered} before
+them.
Since an Info file uses menus instead of tables of contents, the Info
-formatting commands ignore the contents commands. But the contents are
-included in plain text output (generated by @code{makeinfo
---no-headers}), unless @code{makeinfo} is writing its output to standard
-output.
+formatting commands ignore the contents commands. But the contents
+are included in plain text output (generated by @code{makeinfo
+--plaintext}) and in other output formats, such as HTML.
When @code{makeinfo} writes a short table of contents while producing
HTML output, the links in the short table of contents point to
@@ -3612,18 +3714,25 @@
@code{@@setshortcontentsaftertitlepage}. The first prints only the
main contents after the @code{@@end titlepage}; the second prints both
the short contents and the main contents. In either case, any
-subsequent @code{@@contents} or @code{@@shortcontents} is ignored
-(unless, erroneously, no @code{@@end titlepage} is ever encountered).
+subsequent @code{@@contents} or @code{@@shortcontents} is ignored.
You need to include the @code{@@set@dots{}contentsaftertitlepage}
commands early in the document (just after @code{@@setfilename}, for
example). We recommend using @command{texi2dvi} (@pxref{Format with
-texi2dvi}) to specify this without altering the source file at all. For
-example:
+@t{texi2dvi}}) to specify this without altering the source file at
+all. For example:
+
@example
texi2dvi --texinfo=@@setcontentsaftertitlepage foo.texi
@end example
+An alternative invocation, using @command{texi2any}:
+
+@example
+texi2any --dvi --Xopt --texinfo=@@setcontentsaftertitlepage foo.texi
+@end example
+
+
@node The Top Node
@section The `Top' Node and Master Menu
@@ -3639,8 +3748,7 @@
@findex top
It is conventional and desirable to write an @code{@@top} sectioning
command line containing the title of the document immediately after
-the @code{@@node Top} line (@pxref{makeinfo top command, , The
-@code{@@top} Sectioning Command}).
+the @code{@@node Top} line (@pxref{@t{@@top} Command}).
The contents of the `Top' node should appear only in the online output;
none of it should appear in printed output, so enclose it between
@@ -3692,11 +3800,11 @@
@cindex Menu, master
@cindex Parts of a master menu
-A @dfn{master menu} is a detailed main menu listing all the nodes in a
-file.
-
-A master menu is enclosed in @code{@@menu} and @code{@@end menu}
-commands and does not appear in the printed document.
+A @dfn{master menu} is the main menu. It is customary to include a
+detailed menu listing all the nodes in the document in this menu.
+
+Like any other menu, a master menu is enclosed in @code{@@menu} and
+@code{@@end menu} and does not appear in the printed output.
Generally, a master menu is divided into parts.
@@ -3711,14 +3819,14 @@
@item
@findex detailmenu
@cindex Detailed menu
-The third and subsequent parts contain a listing of the other, lower
-level nodes, often ordered by chapter. This way, rather than go
+The third and subsequent parts contain a listing of the other,
+lower-level nodes, often ordered by chapter. This way, rather than go
through an intermediary menu, an inquirer can go directly to a
particular node when searching for specific information. These menu
-items are not required; add them if you think they are a
-convenience. If you do use them, put @code{@@detailmenu} before the
-first one, and @code{@@end detailmenu} after the last; otherwise,
-@code{makeinfo} will get confused.
+items are not required; add them if you think they are a convenience.
+If you do use them, put @code{@@detailmenu} before the first one, and
+@code{@@end detailmenu} after the last; otherwise, @code{makeinfo}
+will get confused.
@end itemize
Each section in the menu can be introduced by a descriptive line. So
@@ -3771,16 +3879,20 @@
generally all given before the Top node, if they are given at all.
@menu
-* documentdescription:: Document summary for the HTML output.
-* setchapternewpage:: Start chapters on right-hand pages.
-* paragraphindent:: Specify paragraph indentation.
-* firstparagraphindent:: Suppress indentation of the first paragraph.
-* exampleindent:: Specify environment indentation.
-@end menu
-
-
-@node documentdescription
+* @t{@@documentdescription}:: Document summary for the HTML output.
+* @t{@@setchapternewpage}:: Start chapters on right-hand pages.
+* @t{@@headings}:: An option for turning headings on and off
+ and double or single sided printing.
+* @t{@@paragraphindent}:: Specify paragraph indentation.
+* @t{@@firstparagraphindent}:: Suppressing first paragraph indentation.
+* @t{@@exampleindent}:: Specify environment indentation.
+@end menu
+
+
+@node @t{@@documentdescription}
@subsection @code{@@documentdescription}: Summary Text
+@anchor{documentdescription}@c old name
+
@cindex Document description
@cindex Description of document
@cindex Summary of document
@@ -3790,10 +3902,10 @@
When producing HTML output for a document, @command{makeinfo} writes a
@samp{<meta>} element in the @samp{<head>} to give some idea of the
-content of the document. By default, this @dfn{description} is the title
-of the document, taken from the @code{@@settitle} command
-(@pxref{settitle}). To change this, use the @code{@@documentdescription}
-environment, as in:
+content of the document. By default, this @dfn{description} is the
+title of the document, taken from the @code{@@settitle} command
+(@pxref{@t{@@settitle}}). To change this, use the
+@code{@@documentdescription} environment, as in:
@example
@@documentdescription
@@ -3812,11 +3924,13 @@
the document.
-@node setchapternewpage
-@subsection @code{@@setchapternewpage}:
+@node @t{@@setchapternewpage}
+@subsection @code{@@setchapternewpage}: Blank Pages Before Chapters
+
+@anchor{setchapternewpage}@c old name
+@findex setchapternewpage
@cindex Starting chapters
@cindex Pages, starting odd
-@findex setchapternewpage
In an officially bound book, text is usually printed on both sides of
the paper, chapters start on right-hand pages, and right-hand pages have
@@ -3867,29 +3981,91 @@
If you don't like the default headers that @code{@@setchapternewpage}
sets, you can explicit control them with the @code{@@headings} command.
-@xref{headings on off, , The @code{@@headings} Command}.
+@xref{@t{@@headings}}.
At the beginning of a manual or book, pages are not numbered---for
example, the title and copyright pages of a book are not numbered. By
convention, table of contents and frontmatter pages are numbered with
roman numerals and not in sequence with the rest of the document.
-Since an Info file does not have pages, the @code{@@setchapternewpage}
-command has no effect on it.
+The @code{@@setchapternewpage} has no effect in output formats that do
+not have pages, such as Info and HTML.
We recommend not including any @code{@@setchapternewpage} command in
-your manual sources at all, since the desired output is not intrinsic to
-the document. For a particular hard copy run, if you don't want the
-default option (no blank pages, same headers on all pages) use the
-@option{--texinfo} option to @command{texi2dvi} to specify the output
-you want.
-
-
-@node paragraphindent
-@subsection @code{@@paragraphindent}: Paragraph Indenting
+your document source at all, since such desired pagination is not
+intrinsic to the document. For a particular hard copy run, if you
+don't want the default output (no blank pages, same headers on all
+pages) use the @option{--texinfo} option to @command{texi2dvi} to
+specify the output you want.
+
+
+@node @t{@@headings}
+@subsection The @code{@@headings} Command
+
+@anchor{headings on off}@c old name
+@findex headings
+
+The @code{@@headings} command is rarely used. It specifies what kind of
+page headings and footings to print on each page. Usually, this is
+controlled by the @code{@@setchapternewpage} command. You need the
+@code{@@headings} command only if the @code{@@setchapternewpage} command
+does not do what you want, or if you want to turn off predefined page
+headings prior to defining your own. Write an @code{@@headings} command
+immediately after the @code{@@end titlepage} command.
+
+You can use @code{@@headings} as follows:
+
+@table @code
+@item @@headings off
+Turn off printing of page headings.
+
+@item @@headings single
+Turn on page headings appropriate for single-sided printing.
+
+@item @@headings double
+Turn on page headings appropriate for double-sided printing.
+
+@item @@headings singleafter
+@itemx @@headings doubleafter
+Turn on @code{single} or @code{double} headings, respectively, after the
+current page is output.
+
+@item @@headings on
+Turn on page headings: @code{single} if @samp{@@setchapternewpage
+on}, @code{double} otherwise.
+@end table
+
+For example, suppose you write @code{@@setchapternewpage off} before the
+@code{@@titlepage} command to tell @TeX{} to start a new chapter on the
+same page as the end of the last chapter. This command also causes
+@TeX{} to typeset page headers for single-sided printing. To cause
+@TeX{} to typeset for double sided printing, write @code{@@headings
+double} after the @code{@@end titlepage} command.
+
+You can stop @TeX{} from generating any page headings at all by
+writing @code{@@headings off} on a line of its own immediately after the
+line containing the @code{@@end titlepage} command, like this:
+
+@example
+@@end titlepage
+@@headings off
+@end example
+
+@noindent
+The @code{@@headings off} command overrides the @code{@@end titlepage}
+command, which would otherwise cause @TeX{} to print page headings.
+
+You can also specify your own style of page heading and footing.
+@xref{Headings, , Page Headings}, for more information.
+
+
+@node @t{@@paragraphindent}
+@subsection @code{@@paragraphindent}: Controlling Paragraph Indentation
+
+@anchor{paragraphindent}@c old name
+@findex paragraphindent
@cindex Indenting paragraphs, control of
@cindex Paragraph indentation control
-@findex paragraphindent
The Texinfo processors may insert whitespace at the beginning of the
first line of each paragraph, thereby indenting that paragraph. You can
@@ -3930,14 +4106,16 @@
fill) paragraphs that contain @code{@@w} or @code{@@*} commands.
-@node firstparagraphindent
+@node @t{@@firstparagraphindent}
@subsection @code{@@firstparagraphindent}: Indenting After Headings
+
+@anchor{firstparagraphindent}@c old name
+@findex firstparagraphindent
@cindex First paragraph, suppressing indentation of
@cindex Suppressing first paragraph indentation
@cindex Preventing first paragraph indentation
@cindex Indenting, suppressing of first paragraph
@cindex Headings, indentation after
-@findex firstparagraphindent
As you can see in the present manual, the first paragraph in any
section is not indented by default. Typographically, indentation is a
@@ -3960,25 +4138,26 @@
@item @code{insert}
Include normal paragraph indentation. This respects the paragraph
-indentation set by a @code{@@paragraphindent} command
-(@pxref{paragraphindent}).
-@end table
-
-For HTML and XML output, the @code{@@firstparagraphindent} setting is
-ignored.
-
-It is best to write the @code{@@paragraphindent} command before the
+indentation set by an @code{@@paragraphindent} command
+(@pxref{@t{@@paragraphindent}}).
+@end table
+
+@code{@@firstparagraphindent} is ignored for HTML and Docbook output.
+
+It is best to write the @code{@@firstparagraphindent} command before the
end-of-header line at the beginning of a Texinfo file, so the region
formatting commands indent paragraphs as specified. @xref{Start of
Header}.
-@node exampleindent
+@node @t{@@exampleindent}
@subsection @code{@@exampleindent}: Environment Indenting
+
+@anchor{exampleindent}@c old name
+@findex exampleindent
@cindex Indenting environments
@cindex Environment indentation
@cindex Example indentation
-@findex exampleindent
The Texinfo processors indent each line of @code{@@example} and similar
environments. You can use the @code{@@exampleindent} command to specify
@@ -3989,8 +4168,7 @@
@@exampleindent @var{indent}
@end example
-@code{@@exampleindent} is ignored for HTML output. Otherwise, the
-indentation is according to the value of @var{indent}:
+The indentation is according to the value of @var{indent}:
@table @asis
@item @code{asis}
@@ -4015,31 +4193,6 @@
Header}.
-@node Software Copying Permissions
-@section Software Copying Permissions
-@cindex Software copying permissions
-@cindex Copying software
-@cindex Distribution
-@cindex License agreement
-
-If the Texinfo file has a section containing the ``General Public
-License'' and the distribution information and a warranty disclaimer for
-the software that is documented, we recommend placing this right after
-the `Top' node. The General Public License is very important to Project
-GNU software. It ensures that you and others will continue to have a
-right to use and share the software.
-
-The copying and distribution information and the disclaimer are followed
-by an introduction or else by the first chapter of the manual.
-
-@cindex Introduction, as part of file
-Although an introduction is not a required part of a Texinfo file, it
-is very helpful. Ideally, it should state clearly and concisely what
-the file is about and who would be interested in reading it. In
-general, an introduction would follow the licensing and distribution
-information, although sometimes people put it earlier in the document.
-
-
@node Ending a File
@chapter Ending a Texinfo File
@cindex Ending a Texinfo file
@@ -4049,7 +4202,6 @@
The end of a Texinfo file should include commands to create indices,
and the @code{@@bye} command to mark the last line to be processed.
-
For example:
@example
@@ -4153,15 +4305,12 @@
more convenient for that format.
@item
-In HTML and Docbook output, @code{@@printindex} produces links
-to the index entries.
-
-@item
-In XML output, it simply records the index to be printed.
-@end itemize
-
-It's not possible to generate an index when writing to standard
-output; @command{makeinfo} generates a warning in this case.
+In HTML output, @code{@@printindex} produces links to the index
+entries.
+
+@item
+In XML and Docbook output, it simply records the index to be printed.
+@end itemize
@node File End
@@ -4169,54 +4318,52 @@
@findex bye
An @code{@@bye} command terminates Texinfo processing. None of the
-formatters read anything following @code{@@bye}. The @code{@@bye}
-command should be on a line by itself.
-
-If you wish, you may follow the @code{@@bye} line with notes. These
-notes will not be formatted and will not appear in either Info or a
-printed manual; it is as if text after @code{@@bye} were within
-@code{@@ignore} @dots{} @code{@@end ignore}. Also, you may follow the
-@code{@@bye} line with a local variables list for XEmacs.
-@xref{Compile-Command, , Using Local Variables and the Compile Command},
-for more information.
-
-
-@node Structuring
+formatters process anything following @code{@@bye}; any such text is
+completely ignored. The @code{@@bye} command should be on a line by
+itself.
+
+Thus, if you wish, you may follow the @code{@@bye} line with arbitrary
+notes. Also, you may follow the @code{@@bye} line with a local
+variables list for XEmacs, most typically a @samp{compile-command}
+(@pxref{Compile-Command,, Using the Local Variables List}).
+
+
+@node Chapter Structuring
@chapter Chapter Structuring
+@anchor{Structuring}@c old name
@cindex Chapter structuring
@cindex Structuring of chapters
-
-The @dfn{chapter structuring} commands divide a document into a hierarchy of
-chapters, sections, subsections, and subsubsections. These commands
-generate large headings; they also provide information for the table
-of contents of a printed manual (@pxref{Contents, , Generating a Table
-of Contents}).@refill
-
-The chapter structuring commands do not create an Info node structure,
-so normally you should put an @code{@@node} command immediately before
-each chapter structuring command (@pxref{Nodes}). The only time you
-are likely to use the chapter structuring commands without using the
-node structuring commands is if you are writing a document that
-contains no cross references and will never be transformed into Info
-format.@refill
-
-It is unlikely that you will ever write a Texinfo file that is
-intended only as an Info file and not as a printable document. If you
-do, you might still use chapter structuring commands to create a
-heading at the top of each node---but you don't need to.@refill
+@cindex Sectioning
+
+Texinfo's @dfn{chapter structuring} commands (could more generally be
+called @dfn{sectioning structuring}, but that is awkward) divide a
+document into a hierarchy of chapters, sections, subsections, and
+subsubsections. These commands generate large headings in the text,
+like the one above. They also provide information for generating the
+table of contents (@pxref{Contents,, Generating a Table of Contents}),
+and for implicitly determining node pointers, as is recommended
+(@pxref{@t{makeinfo} Pointer Creation}).
+
+The chapter structuring commands do not create a node structure, so
+normally you put an @code{@@node} command immediately before each
+chapter structuring command (@pxref{Nodes}). The only time you are
+likely to use the chapter structuring commands without also using
+nodes is if you are writing a document that contains no cross
+references and will only be printed, not transformed into Info, HTML,
+or other formats.
@menu
* Tree Structuring:: A manual is like an upside down tree @dots{}
* Structuring Command Types:: How to divide a manual into parts.
-* makeinfo top:: The @code{@@top} command, part of the `Top' node.
-* chapter::
-* unnumbered & appendix::
-* majorheading & chapheading::
-* section::
-* unnumberedsec appendixsec heading::
-* subsection::
-* unnumberedsubsec appendixsubsec subheading::
-* subsubsection:: Commands for the lowest level sections.
+* @t{@@chapter}:: Chapter structuring.
+* @t{@@unnumbered @@appendix}::
+* @t{@@majorheading @@chapheading}::
+* @t{@@section}::
+* @t{@@unnumberedsec @@appendixsec @@heading}::
+* @t{@@subsection}::
+* @t{@@unnumberedsubsec @@appendixsubsec @@subheading}::
+* @t{@@subsubsection}:: Commands for the lowest level sections.
+* @t{@@part}:: Collections of chapters.
* Raise/lower sections:: How to change commands' hierarchical level.
@end menu
@@ -4229,10 +4376,10 @@
sections, subsections, and the like. This structure can be visualized
as a tree (or rather as an upside-down tree) with the root at the top
and the levels corresponding to chapters, sections, subsection, and
-subsubsections.@refill
-
-Here is a diagram that shows a Texinfo file with three chapters,
-each of which has two sections.@refill
+subsubsections.
+
+Here is a diagram that shows a Texinfo file with three chapters, each
+with two sections.
@example
@group
@@ -4251,18 +4398,30 @@
@end example
In a Texinfo file that has this structure, the beginning of Chapter 2
-looks like this:@refill
-
-@example
-@group
-@@node Chapter 2, Chapter 3, Chapter 1, top
+would normally (with implicitly-determined node pointers) be written
+like this:
+
+@example
+@group
+@@node Chapter 2
@@chapter Chapter 2
@end group
@end example
+@noindent
+But for purposes of example, here is how it would be written with
+explicit node pointers:
+
+@example
+@group
+@@node Chapter 2, Chapter 3, Chapter 1, Top
+@@chapter Chapter 2
+@end group
+@end example
+
The chapter structuring commands are described in the sections that
-follow; the @code{@@node} and @code{@@menu} commands are described in
-following chapters. (@xref{Nodes}, and see @ref{Menus}.)@refill
+follow; the @code{@@node} command is described in
+the following chapter (@pxref{Nodes}).
@node Structuring Command Types
@@ -4271,53 +4430,44 @@
The chapter structuring commands fall into four groups or series, each
of which contains structuring commands corresponding to the
hierarchical levels of chapters, sections, subsections, and
-subsubsections.@refill
-
-The four groups are the @code{@@chapter} series, the
+subsubsections.
+
+The four groups of commands are the @code{@@chapter} series, the
@code{@@unnumbered} series, the @code{@@appendix} series, and the
-@code{@@heading} series.@refill
-
-Each command produces titles that have a different appearance on the
-printed page or Info file; only some of the commands produce
-titles that are listed in the table of contents of a printed book or
-manual.@refill
+@code{@@heading} series. Each command produces a title with a
+different appearance in the body of the document. Some of the
+commands list their titles in the tables of contents, while others do
+not. Here are the details:
@itemize @bullet
@item
The @code{@@chapter} and @code{@@appendix} series of commands produce
-numbered or lettered entries both in the body of a printed work and in
-its table of contents.@refill
+numbered or lettered entries both in the body of a document and in its
+table of contents.
@item
The @code{@@unnumbered} series of commands produce unnumbered entries
-both in the body of a printed work and in its table of contents. The
+both in the body of a document and in its table of contents. The
@code{@@top} command, which has a special use, is a member of this
-series (@pxref{makeinfo top, , @code{@@top}}). An @code{@@unnumbered}
-section should be associated with a node and be a normal part of the
-document structure.
+series (@pxref{@t{@@top} Command}). An @code{@@unnumbered} section
+is a normal part of the document structure.
@item
The @code{@@heading} series of commands produce simple unnumbered
headings that do not appear in a table of contents, are not associated
-with nodes, and cannot be cross-referenced. The heading commands
+with nodes, and cannot be cross-referenced. These heading commands
never start a new page.
-
-@item
-The @code{@@majorheading} command is similar to @code{@@chapheading},
-except that it generates a larger vertical whitespace before the
-heading.
-
-@item
+@end itemize
+
When an @code{@@setchapternewpage} command says to do so, the
@code{@@chapter}, @code{@@unnumbered}, and @code{@@appendix} commands
start new pages in the printed manual; the @code{@@heading} commands
-do not.@refill
-@end itemize
-
-Here are the four groups of chapter structuring commands:
+do not. @xref{@t{@@setchapternewpage}}.
+
+Here is a summary:
@tex
-{\globaldefs = 1 \smallfonts}
+{\globaldefs=1 \smallfonts \rm}
@end tex
@multitable @columnfractions .19 .30 .29 .22
@@ -4331,125 +4481,141 @@
@item @code{@@subsubsection} @tab @code{@@unnumberedsubsubsec} @tab @code{@@appendixsubsubsec} @tab @code{@@subsubheading}
@end multitable
@tex
-{\globaldefs = 1 \textfonts}
+{\globaldefs=1 \textfonts \rm}
@end tex
-@node makeinfo top
-@section @code{@@top}
-
-The @code{@@top} command is a special sectioning command that you use
-only after an @samp{@@node Top} line at the beginning of a Texinfo file.
-The @code{@@top} command tells the @code{makeinfo} formatter which node
-is the `Top' node, so it can use it as the root of the node tree if your
-manual uses implicit node pointers. It has the same typesetting effect as
-@code{@@unnumbered} (@pxref{unnumbered & appendix, , @code{@@unnumbered}
-and @code{@@appendix}}). For detailed information, see @ref{makeinfo
-top command, , The @code{@@top} Command}.
-
-The @code{@@top} node and its menu (if any) is conventionally wrapped in
-an @code{@@ifnottex} conditional so that it will appear only in Info and
-HTML output, not @TeX{}.
-
-
-@node chapter
-@comment node-name, next, previous, up
-@section @code{@@chapter}
+@node @t{@@chapter}
+@section @code{@@chapter}: Chapter Structuring
+
+@anchor{chapter}@c old name
@findex chapter
-@code{@@chapter} identifies a chapter in the document. Write the
-command at the beginning of a line and follow it on the same line by
-the title of the chapter.@refill
-
-For example, this chapter in this manual is entitled ``Chapter
-Structuring''; the @code{@@chapter} line looks like this:@refill
-
-@example
-@@chapter Chapter Structuring
-@end example
-
-In @TeX{}, the @code{@@chapter} command creates a chapter in the
-document, specifying the chapter title. The chapter is numbered
-automatically.@refill
-
-In Info, the @code{@@chapter} command causes the title to appear on a
-line by itself, with a line of asterisks inserted underneath. Thus,
-in Info, the above example produces the following output:@refill
-
-@example
-Chapter Structuring
-*******************
-@end example
+@code{@@chapter} identifies a chapter in the document--the highest
+level of the normal document structuring hierarchy. Write the command
+at the beginning of a line and follow it on the same line by the title
+of the chapter. The chapter is numbered automatically, starting
+from@tie{}1.
+
+For example, the present chapter in this manual is entitled
+``@code{@@chapter}: Chapter Structuring''; the @code{@@chapter} line
+looks like this:
+
+@example
+@@chapter @@code@{@@@@chapter@}: Chapter Structuring
+@end example
+
+In @TeX{}, the @code{@@chapter} command produces a chapter heading in
+the document.
+
+In Info and plain text output, the @code{@@chapter} command causes the
+title to appear on a line by itself, with a line of asterisks inserted
+underneath. So, the above example produces the following output:
+
+@example
+@group
+5 Chapter Structuring
+*********************
+@end group
+@end example
+
+In HTML, the @code{@@chapter} command produces an @code{<h2>}-level
+header by default (controlled by the @code{CHAPTER_HEADER_LEVEL}
+customization variable, @pxref{Other Customization Variables}).
+
+In the XML and Docbook output, a @code{<chapter>} element is produced
+that includes all the following sections, up to the next chapter.
+
+
+@node @t{@@unnumbered @@appendix}
+@section @code{@@unnumbered}, @code{@@appendix}: Chapters with Other Labeling
+
+@anchor{unnumbered & appendix}@c old name
+@findex unnumbered
+@findex appendix
+
+Use the @code{@@unnumbered} command to start a chapter-level element
+that appears without chapter numbers of any kind. Use the
+@code{@@appendix} command to start an appendix that is labeled by
+letter (`A', `B', @dots{}) instead of by number; appendices are also
+at the chapter level of structuring.
+
+Write an @code{@@appendix} or @code{@@unnumbered} command at the
+beginning of a line and follow it on the same line by the title,
+just as with @code{@@chapter}.
@findex centerchap
Texinfo also provides a command @code{@@centerchap}, which is analogous
-to @code{@@unnumbered}, but centers its argument in the printed output.
-This kind of stylistic choice is not usually offered by Texinfo.
-@c but the Hacker's Dictionary wanted it ...
-
-
-@node unnumbered & appendix
-@section @code{@@unnumbered} and @code{@@appendix}
-@findex unnumbered
-@findex appendix
-
-Use the @code{@@unnumbered} command to create a chapter that appears
-in a printed manual without chapter numbers of any kind. Use the
-@code{@@appendix} command to create an appendix in a printed manual
-that is labelled by letter (`A', `B', @dots{}) instead of by number.
-
-Write an @code{@@appendix} or @code{@@unnumbered} command at the
-beginning of a line and follow it on the same line by the title, as
-you would if you were creating a chapter.
-
-
-@node majorheading & chapheading
-@section @code{@@majorheading}, @code{@@chapheading}
+to @code{@@unnumbered}, but centers its argument in the printed and HTML
+outputs. This kind of stylistic choice is not usually offered by
+Texinfo. It may be suitable for short documents.
+@c but the Hacker's Dictionary wanted it, before they quit Texinfo.
+
+@cindex Docbook and prefatory sections
+@cindex Preface, etc., and Docbook
+With @code{@@unnumbered}, if the name of the associated node is one of
+these English words (case-insensitive):
+
+@example
+Acknowledgements Colophon Dedication Preface
+@end example
+
+@cindex @code{<acknowledgements>} Docbook tag
+@cindex @code{<colophon>} Docbook tag
+@cindex @code{<dedication>} Docbook tag
+@cindex @code{<preface>} Docbook tag
+@cindex @code{<chapter>} Docbook tag
+@cindex @code{<title>} Docbook tag
+@noindent then the Docbook output uses corresponding special tags
+(@code{<preface>}, etc.)@: instead of the default @code{<chapter>}.
+The argument to @code{@@unnumbered} itself can be anything, and is
+output as the following @code{<title>} text as usual.
+
+
+@node @t{@@majorheading @@chapheading}
+@section @code{@@majorheading}, @code{@@chapheading}: Chapter-level Headings
+
+@anchor{majorheading & chapheading}@c old name
@findex majorheading
@findex chapheading
-The @code{@@majorheading} and @code{@@chapheading} commands put
-chapter-like headings in the body of a document.@refill
-
-However, neither command causes @TeX{} to produce a numbered heading
-or an entry in the table of contents; and neither command causes
-@TeX{} to start a new page in a printed manual.@refill
+The @code{@@majorheading} and @code{@@chapheading} commands produce
+chapter-like headings in the body of a document.
+
+However, neither command produces an entry in the table of contents,
+and neither command causes @TeX{} to start a new page in a printed
+manual.
In @TeX{}, an @code{@@majorheading} command generates a larger vertical
whitespace before the heading than an @code{@@chapheading} command but
is otherwise the same.
-In Info,
-the @code{@@majorheading} and
-@code{@@chapheading} commands are equivalent to
+In Info and plain text, the @code{@@majorheading} and
+@code{@@chapheading} commands produce the same output as
@code{@@chapter}: the title is printed on a line by itself with a line
-of asterisks underneath. (@xref{chapter, , @code{@@chapter}}.)(a)refill
-
-
-@node section
-@section @code{@@section}
+of asterisks underneath. Similarly for HTML@. The only difference is
+the lack of numbering and the lack of any association with nodes.
+@xref{@t{@@chapter}}.
+
+
+@node @t{@@section}
+@section @code{@@section}: Sections Below Chapters
+
+@anchor{section}@c old name
@findex section
-A @code{@@section} command identifies a section within a chapter unit,
-whether created with @code{@@chapter}, @code{@@unnumbered}, or
+An @code{@@section} command identifies a section within a chapter
+unit, whether created with @code{@@chapter}, @code{@@unnumbered}, or
@code{@@appendix}, following the numbering scheme of the chapter-level
-command. Thus, within a @code{@@chapter} chapter numbered `1', the
-section is numbered like `1.2'; within an @code{@@appendix}
-``chapter'' labeled `A', the section is numbered like `A.2'; within an
-@code{@@unnumbered} chapter, the section gets no number.
-
-For example, this section is headed with an @code{@@section} command
-and looks like this in the Texinfo file:
-
-@example
-@@section @@code@{@@@@section@}
-@end example
-
-To create a section, write the @code{@@section} command at the
+command. Thus, within an @code{@@chapter} chapter numbered `1', the
+sections are numbered `1.1', `1.2', etc.; within an @code{@@appendix}
+``chapter'' labeled `A', the sections are numbered `A.1', `A.2', etc.;
+within an @code{@@unnumbered} chapter, the section gets no number.
+The output is underlined with @samp{=} in Info and plain text.
+
+To make a section, write the @code{@@section} command at the
beginning of a line and follow it on the same line by the section
-title. The output is underlined with @samp{=} in Info.
-
-Thus,
+title. For example,
@example
@@section This is a section
@@ -4465,58 +4631,68 @@
@end group
@end example
-
-@node unnumberedsec appendixsec heading
+Section titles are listed in the table of contents.
+
+The @TeX{}, HTML, Docbook, and XML output is all analogous to the
+chapter-level output, just ``one level down''; @pxref{@t{@@chapter}}.
+
+
+@node @t{@@unnumberedsec @@appendixsec @@heading}
@section @code{@@unnumberedsec}, @code{@@appendixsec}, @code{@@heading}
+
+@anchor{unnumberedsec appendixsec heading}@c old name
@findex unnumberedsec
@findex appendixsec
@findex heading
The @code{@@unnumberedsec}, @code{@@appendixsec}, and @code{@@heading}
commands are, respectively, the unnumbered, appendix-like, and
-heading-like equivalents of the @code{@@section} command, as described
-in the previous section.
-
-@table @code
-@item @@unnumberedsec
-The @code{@@unnumberedsec} command may be used within an
-unnumbered chapter or within a regular chapter or appendix to
-provide an unnumbered section.@refill
-
-@item @@appendixsec
-@itemx @@appendixsection
-@code{@@appendixsection} is a longer spelling of the
-@code{@@appendixsec} command; the two are synonymous.@refill
-@findex appendixsection
-
-Conventionally, the @code{@@appendixsec} or @code{@@appendixsection}
-command is used only within appendices.@refill
-
-@item @@heading
-You may use the @code{@@heading} command anywhere you wish for a
-section-style heading that will not appear in the table of contents.@refill
-@end table
+heading-like equivalents of the @code{@@section} command (see the
+previous section).
@code{@@unnumberedsec} and @code{@@appendixsec} do not need to be used
in ordinary circumstances, because @code{@@section} may also be used
within @code{@@unnumbered} and @code{@@appendix} chapters; again, see
the previous section.
-
-@node subsection
-@section The @code{@@subsection} Command
+@table @code
+@item @@unnumberedsec
+The @code{@@unnumberedsec} command may be used within an unnumbered
+chapter or within a regular chapter or appendix to produce an
+unnumbered section.
+
+@item @@appendixsec
+@itemx @@appendixsection
+@findex appendixsection
+@findex appendixsec
+@code{@@appendixsection} is a longer spelling of the
+@code{@@appendixsec} command; the two are synonymous.
+
+Conventionally, the @code{@@appendixsec} or @code{@@appendixsection}
+command is used only within appendices.
+
+@item @@heading
+You may use the @code{@@heading} command anywhere you wish for a
+section-style heading that will not appear in the table of contents.
+@end table
+
+
+@node @t{@@subsection}
+@section @code{@@subsection}: Subsections Below Sections
+
+@anchor{subsection}@c old name
@findex subsection
-Subsections are to sections as sections are to chapters.
-(@xref{section, , @code{@@section}}.) In Info, subsection titles are
-underlined with @samp{-}. For example,
+Subsections are to sections as sections are to chapters;
+@pxref{@t{@@section}}. In Info and plain text, subsection titles
+are underlined with @samp{-}. For example,
@example
@@subsection This is a subsection
@end example
@noindent
-produces
+might produce
@example
@group
@@ -4525,91 +4701,91 @@
@end group
@end example
-In a printed manual, subsections are listed in the table of contents
-and are numbered three levels deep.@refill
-
-
-@node unnumberedsubsec appendixsubsec subheading
+Subsection titles are listed in the table of contents.
+
+The @TeX{}, HTML, Docbook, and XML output is all analogous to the
+chapter-level output, just ``two levels down'';
+@pxref{@t{@@chapter}}.
+
+
+@node @t{@@unnumberedsubsec @@appendixsubsec @@subheading}
@section The @code{@@subsection}-like Commands
-@cindex Subsection-like commands
+
+@anchor{unnumberedsubsec appendixsubsec subheading}@c old name
@findex unnumberedsubsec
@findex appendixsubsec
@findex subheading
+@cindex Subsection-like commands
The @code{@@unnumberedsubsec}, @code{@@appendixsubsec}, and
@code{@@subheading} commands are, respectively, the unnumbered,
appendix-like, and heading-like equivalents of the @code{@@subsection}
-command. (@xref{subsection, , @code{@@subsection}}.)
-
-In Info, the @code{@@subsection}-like commands generate a title
-underlined with hyphens. In a printed manual, an @code{@@subheading}
-command produces a heading like that of a subsection except that it is
-not numbered and does not appear in the table of contents. Similarly,
-an @code{@@unnumberedsubsec} command produces an unnumbered heading like
-that of a subsection and an @code{@@appendixsubsec} command produces a
-subsection-like heading labelled with a letter and numbers; both of
-these commands produce headings that appear in the table of
-contents.
+command. (@xref{@t{@@subsection}}.)
@code{@@unnumberedsubsec} and @code{@@appendixsubsec} do not need to
be used in ordinary circumstances, because @code{@@subsection} may
also be used within sections of @code{@@unnumbered} and
-@code{@@appendix} chapters (@pxref{section,,@code{section}}).
-
-
-@node subsubsection
-@section The `subsub' Commands
-@cindex Subsub commands
+@code{@@appendix} chapters (@pxref{@t{@@section}}).
+
+An @code{@@subheading} command produces a heading like that of a
+subsection except that it is not numbered and does not appear in the
+table of contents. Similarly, an @code{@@unnumberedsubsec} command
+produces an unnumbered heading like that of a subsection and an
+@code{@@appendixsubsec} command produces a subsection-like heading
+labeled with a letter and numbers; both of these commands produce
+headings that appear in the table of contents. In Info and plain
+text, the @code{@@subsection}-like commands generate a title
+underlined with hyphens.
+
+
+@node @t{@@subsubsection}
+@section @code{@@subsection} and Other Subsub Commands
+
+@anchor{subsubsection}@c old name
@findex subsubsection
@findex unnumberedsubsubsec
@findex appendixsubsubsec
@findex subsubheading
+@cindex Subsub sectioning commands
The fourth and lowest level sectioning commands in Texinfo are the
-`subsub' commands. They are:@refill
+`subsub' commands. They are:
@table @code
@item @@subsubsection
Subsubsections are to subsections as subsections are to sections.
-(@xref{subsection, , @code{@@subsection}}.) In a printed manual,
-subsubsection titles appear in the table of contents and are numbered
-four levels deep.@refill
+(@xref{@t{@@subsection}}.) Subsubsection titles appear in the
+table of contents.
@item @@unnumberedsubsubsec
-Unnumbered subsubsection titles appear in the table of contents of a
-printed manual, but lack numbers. Otherwise, unnumbered
-subsubsections are the same as subsubsections. In Info, unnumbered
-subsubsections look exactly like ordinary subsubsections.@refill
+Unnumbered subsubsection titles appear in the table of contents,
+but lack numbers. Otherwise, unnumbered subsubsections are the same
+as subsubsections.
@item @@appendixsubsubsec
Conventionally, appendix commands are used only for appendices and are
-lettered and numbered appropriately in a printed manual. They also
-appear in the table of contents. In Info, appendix subsubsections look
-exactly like ordinary subsubsections.@refill
+lettered and numbered appropriately. They also appear in the table
+of contents.
@item @@subsubheading
-The @code{@@subsubheading} command may be used anywhere that you need
-a small heading that will not appear in the table of contents. In
-Info, subsubheadings look exactly like ordinary subsubsection
-headings.@refill
-@end table
-
-@code{@@unnumberedsubsubsec} and @code{@@appendixsubsubsec} do not
-need to be used in ordinary circumstances, because
-@code{@@subsubsection} may also be used within subsections of
-@code{@@unnumbered} and @code{@@appendix} chapters
-(@pxref{section,,@code{section}}).
-
-
-In Info, `subsub' titles are underlined with periods.
-For example,@refill
+The @code{@@subsubheading} command may be used anywhere that you want
+a small heading that will not appear in the table of contents.
+@end table
+
+As with subsections, @code{@@unnumberedsubsubsec} and
+@code{@@appendixsubsubsec} do not need to be used in ordinary
+circumstances, because @code{@@subsubsection} may also be used within
+subsections of @code{@@unnumbered} and @code{@@appendix} chapters
+(@pxref{@t{@@section}}).
+
+In Info, `subsub' titles are underlined with periods. For example,
@example
@@subsubsection This is a subsubsection
@end example
@noindent
-produces
+might produce
@example
@group
@@ -4618,9 +4794,71 @@
@end group
@end example
+The @TeX{}, HTML, Docbook, and XML output is all analogous to the
+chapter-level output, just ``three levels down''; @pxref{@t{@@chapter}}.
+
+
+@node @t{@@part}
+@section @code{@@part}: Groups of Chapters
+@findex part
+@cindex Part pages
+
+The final sectioning command is @code{@@part}, to mark a @dfn{part} of
+a manual, that is, a group of chapters or (rarely) appendices. This
+behaves quite differently from the other sectioning commands, to fit
+with the way such ``parts'' are conventionally used in books.
+
+No @code{@@node} command is associated with @code{@@part}. Just write
+the command on a line by itself, including the part title, at the
+place in the document you want to mark off as starting that part. For
+example:
+
+@example
+@@part Part I:@@* The beginning
+@end example
+
+As can be inferred from this example, no automatic numbering or
+labeling of the @code{@@part} text is done. The text is taken as-is.
+
+Because parts are not associated with nodes, no general text can
+follow the @code{@@part} line. To produce the intended output, it
+must be followed by a chapter-level command (including its node).
+Thus, to continue the example:
+
+@example
+@@part Part I:@@* The beginning
+
+@@node Introduction
+@@chapter Introduction
+...
+@end example
+
+In the @TeX{} output, the @code{@@part} text is included in both the
+normal and short tables of contents (@pxref{Contents}), without a page
+number (since that is the normal convention). In addition, a ``part
+page'' is output in the body of the document, with just the
+@code{@@part} text. In the example above, the @code{@@*} causes a
+line break on the part page (but is replaced with a space in the
+tables of contents). This part page is always forced to be on an odd
+(right-hand) page, regardless of the chapter pagination
+(@pxref{@t{@@setchapternewpage}}).
+
+In the HTML output, the @code{@@part} text is similarly included in
+the tables of contents, and a heading is included in the main document
+text, as part of the following chapter or appendix node.
+
+In the XML and Docbook output, the @code{<part>} element includes all
+the following chapters, up to the next @code{<part>}. A @code{<part>}
+containing chapters is also closed at an appendix.
+
+In the Info and plain text output, @code{@@part} has no effect.
+
+@code{@@part} is ignored when raising or lowering sections (see next
+section). That is, it is never lowered and nothing can be raised to it.
+
@node Raise/lower sections
-@section @code{@@raisesections} and @code{@@lowersections}
+@section Raise/lower Sections: @code{@@raisesections} and @code{@@lowersections}
@findex raisesections
@findex lowersections
@cindex Raising and lowering sections
@@ -4629,7 +4867,7 @@
The @code{@@raisesections} and @code{@@lowersections} commands
implicitly raise and lower the hierarchical level of following
-chapters, sections and the other sectioning commands.
+chapters, sections and the other sectioning commands (excluding parts).
That is, the @code{@@raisesections} command changes sections to
chapters, subsections to sections, and so on. Conversely, the
@@ -4640,7 +4878,7 @@
@cindex Include files, and section levels
You can use @code{@@lowersections} to include text written as an outer
or standalone Texinfo file in another Texinfo file as an inner,
-included file. Typical usage looks like this:
+included file (@pxref{Include Files}). Typical usage looks like this:
@example
@@lowersections
@@ -4649,28 +4887,29 @@
@end example
@noindent (Without the @code{@@raisesections}, all the subsequent
-sections in the document would be lowered.)
-
-If the included file being lowered has a @code{@@top} node, you'll
-need to conditionalize its inclusion with a flag (@pxref{set value}).
+sections in the main file would also be lowered.)
+
+If the included file being lowered has an @code{@@top} node, you'll
+need to conditionalize its inclusion with a flag (@pxref{@t{@@set
+@@value}}).
Another difficulty can arise with documents that use the (recommended)
feature of @command{makeinfo} for implicitly determining node
pointers. Since @command{makeinfo} must assume a hierarchically
organized document to determine the pointers, you cannot just
arbitrarily sprinkle @code{@@raisesections} and @code{@@lowersections}
-commands in the document. The final result has to have menus that
-take the raising and lowering into account. Therefore, as a practical
+commands throughout the document. The final result has to have menus
+that take the raising and lowering into account. So, as a practical
matter, you generally only want to raise or lower large chunks,
usually in external files as shown above.
-Repeated use of the commands continue to raise or lower the
+Repeated use of the commands continues to raise or lower the
hierarchical level a step at a time. An attempt to raise above
`chapter' reproduces chapter commands; an attempt to lower below
`subsubsection' reproduces subsubsection commands. Also, lowered
subsubsections and raised chapters will not work with
@command{makeinfo}'s feature of implicitly determining node pointers,
-since the menu structure won't be correct.
+since the menu structure cannot be represented correctly.
Write each @code{@@raisesections} and @code{@@lowersections} command
on a line of its own.
@@ -4687,66 +4926,530 @@
node listed in a menu.
Node pointers and menus provide structure for Info files just as
-chapters, sections, subsections, and the like, provide structure for
-printed books.
-
-Because node names are used in cross-references, it is not desirable
-to casually change them. Such name changes invalidate references from
-other manuals, from mail archives, and so on.
-
-@menu
-* Two Paths:: Different commands to structure
- Info output and printed output.
+chapters, sections, subsections, and the like provide structure for
+printed books. The two structures are theoretically distinct. In
+practice, however, the tree structure of printed books is essentially
+always used for the node and menu structure also, as this leads to a
+document which is easiest to follow. @xref{Texinfo Document
+Structure}.
+
+Because node names are used in cross references, it is not desirable
+to casually change them once published. Such name changes invalidate
+references from other manuals, from mail archives, and so on.
+@xref{HTML Xref Link Preservation}.
+
+@menu
+* @t{@@node}:: Creating nodes, in detail.
+* @t{makeinfo} Pointer Creation:: Letting makeinfo determine node pointers.
+* @t{@@anchor}:: Defining arbitrary cross reference targets.
* Node Menu Illustration:: A diagram, and sample nodes and menus.
-* node:: Creating nodes, in detail.
-* makeinfo Pointer Creation:: Letting makeinfo determine node pointers.
-* anchor:: Defining arbitrary cross-reference targets.
-@end menu
-
-
-@node Two Paths
-@section Two Paths
-
-The node and menu commands and the chapter structuring commands are
-technically independent of each other:
-
-@itemize @bullet
-@item
-In Info, node and menu commands provide structure. The chapter
-structuring commands generate headings with different kinds of
-underlining---asterisks for chapters, hyphens for sections, and so on;
-they do nothing else.@refill
-
-@item
-In @TeX{}, the chapter structuring commands generate chapter and section
-numbers and tables of contents. The node and menu commands provide
-information for cross references; they do nothing else.@refill
-@end itemize
-
-You can use node pointers and menus to structure an Info file any way
-you want; and you can write a Texinfo file so that its Info output has a
-different structure than its printed output. However, virtually all
-Texinfo files are written such that the structure for the Info output
-corresponds to the structure for the printed output. It is neither
-convenient nor understandable to the reader to do otherwise.@refill
-
-Generally, printed output is structured in a tree-like hierarchy in
-which the chapters are the major limbs from which the sections branch
-out. Similarly, node pointers and menus are organized to create a
-matching structure in the Info output.@refill
+@end menu
+
+
+@node @t{@@node}
+@section The @code{@@node} Command
+
+@anchor{node}@c node
+@findex node
+@cindex Node, defined
+
+A @dfn{node} is a stretch of text that begins at an @code{@@node}
+command and continues until the next @code{@@node} command. The
+definition of node is different from that for chapter or section. A
+chapter may contain sections and a section may contain subsections,
+but a node cannot contain subnodes: the text of a node continues only
+until the next @code{@@node} command in the file. A node usually
+contains only one chapter structuring command, immediately following
+the @code{@@node} line.
+
+To specify a node, write an @code{@@node} command at the beginning of
+a line, and follow it with up to four arguments, separated by commas,
+on the rest of the same line. The first argument is required; it is
+the name of this node (for details of node names, @pxref{Node Line
+Requirements}). The subsequent arguments are optional---they are the
+names of the `Next', `Previous', and `Up' pointers, in that order. We
+strongly recommend omitting them if your Texinfo document is
+hierarchically organized, as virtually all are (@pxref{@t{makeinfo}
+Pointer Creation}). You may insert spaces before or after each name
+on the @code{@@node} line if you wish; such spaces are ignored.
+
+@opindex accesskey@r{, in HTML output of nodes}
+Whether the node pointers are specified implicitly or explicitly, the
+Info and HTML output from @command{makeinfo} for each node includes
+links to the `Next', `Previous', and `Up' nodes. The HTML also uses
+the @code{accesskey} attribute with the values @samp{n}, @samp{p}, and
+@samp{u} respectively. This allows people using web browsers to
+follow the navigation using (typically) @kbd{M-@var{letter}}, e.g.,
+@kbd{M-n} for the `Next' node, from anywhere within the node.
+
+Usually, you write one of the chapter-structuring command lines
+immediately after an @code{@@node} line---for example, an
+@code{@@section} or @code{@@subsection} line. @xref{Structuring
+Command Types}.
+
+@TeX{} uses both @code{@@node} names and chapter-structuring names in
+the output for cross references. For this reason, you must write
+@code{@@node} lines in a Texinfo file that you intend to format for
+printing, even if you do not intend to format it for Info; and you
+must include a chapter-structuring command after a node for it to be a
+valid cross reference target (to @TeX{}). You can use @code{@@anchor}
+(@pxref{@t{@@anchor}}) to make cross references to an arbitrary
+position in a document.
+
+Cross references, such as the one at the end of this sentence, are
+made with @code{@@xref} and related commands; see @ref{Cross
+References}.
+
+@menu
+* Node Names:: How to choose node and pointer names.
+* Writing a Node:: How to write an @code{@@node} line.
+* Node Line Requirements:: Keep names unique.
+* First Node:: How to write a `Top' node.
+* @t{@@top} Command:: How to use the @code{@@top} command.
+@end menu
+
+
+@node Node Names
+@subsection Choosing Node and Pointer Names
+
+@cindex Node names, choosing
+The name of a node identifies the node. For all the details of node
+names, @pxref{Node Line Requirements}).
+
+@anchor{Node Line Tips}@c previous node name
+Here are some suggestions for node names:
+
+@itemize @bullet
+@item
+Try to pick node names that are informative but short.
+
+In the Info file, the file name, node name, and pointer names are all
+inserted on one line, which may run into the right edge of the window.
+(This does not cause a problem with Info, but is ugly.)
+
+@item
+Try to pick node names that differ from each other near the beginnings
+of their names. This way, it is easy to use automatic name completion in
+Info.
+
+@item
+Conventionally, node names are capitalized in the same way as section
+and chapter titles. In this manual, initial and significant words are
+capitalized; others are not. In other manuals, just initial words and
+proper nouns are capitalized. Either way is fine; we recommend just
+being consistent.
+@end itemize
+
+The pointers from a given node enable you to reach other nodes and
+consist simply of the names of those nodes. The pointers are usually
+not specified explicitly, as @command{makeinfo} can determine them
+(@pxref{@t{makeinfo} Pointer Creation}).
+
+Normally, a node's `Up' pointer contains the name of the node whose
+menu mentions that node. The node's `Next' pointer contains the name
+of the node that follows the present node in that menu and its
+`Previous' pointer contains the name of the node that precedes it in
+that menu. When a node's `Previous' node is the same as its `Up'
+node, both pointers name the same node.
+
+Usually, the first node of a Texinfo file is the `Top' node, and its
+`Up' pointer points to the @file{dir} file, which contains the main menu
+for all of Info.
+
+
+@node Writing a Node
+@subsection Writing an @code{@@node} Line
+@cindex Writing an @code{@@node} line
+@cindex @code{@@node} line writing
+@cindex Node line writing
+
+The easiest and preferred way to write an @code{@@node} line is to
+write @code{@@node} at the beginning of a line and then the name of
+the node, like this:
+
+@example
+@@node @var{node-name}
+@end example
+
+If you are using XEmacs, you can use the update node commands
+provided by Texinfo mode to insert the names of the pointers; or
+(recommended), you can leave the pointers out of the Texinfo file and
+let @code{makeinfo} insert node pointers into the Info file it
+creates. (@xref{Texinfo Mode}, and @ref{@t{makeinfo} Pointer
+Creation}.)
+
+Alternatively, you can insert the `Next', `Previous', and `Up'
+pointers yourself. If you do this, you may find it helpful to use the
+Texinfo mode keyboard command @kbd{C-c C-c n}. This command inserts
+@samp{@@node} and a comment line listing the names of the pointers in
+their proper order. The comment line helps you keep track of which
+arguments are for which pointers. This comment line is especially useful
+if you are not familiar with Texinfo.
+
+The template for a fully-written-out node line with `Next', `Previous',
+and `Up' pointers looks like this:
+
+@example
+@@node @var{node-name}, @var{next}, @var{previous}, @var{up}
+@end example
+
+The @var{node-name} argument must be present, but the others are
+optional. If you wish to specify some but not others, just insert
+commas as needed, as in: @samp{@@node mynode,,,uppernode}. However,
+we recommend leaving off all the pointers and letting @code{makeinfo}
+determine them, as described above.
+
+It's, you can ignore @code{@@node} lines altogether in your
+first draft and then use the @code{texinfo-insert-node-lines} command
+to create @code{@@node} lines for you. However, we do not recommend
+this practice. It is better to name the node itself at the same time
+that you write a segment so you can easily make cross references.
+Useful cross references are an especially important feature of a good
+Texinfo manual.
+
+After you have inserted an @code{@@node} line, you should immediately
+write an @@-command for the chapter or section and insert its name.
+Next (and this is important!), put in several index entries. Usually,
+you will find at least two and often as many as four or five ways of
+referring to the node in the index. Use them all. This will make it
+much easier for people to find the node.
+
+Even when you explicitly specify all pointers, you cannot write the
+nodes in the Texinfo source file in an arbitrary order! Because
+formatters must process the file sequentially, irrespective of node
+pointers, you must write the nodes in the order you wish them to
+appear in the output. For Info format one can imagine that the order
+may not matter, but it matters for the other formats.
+
+
+@node Node Line Requirements
+@subsection @code{@@node} Line Requirements
+
+@cindex Node line requirements
+@cindex Restrictions on node names
+
+Names used with @code{@@node} have several requirements:
+
+@itemize @bullet
+@item
+@cindex Unique node names requirement
+@cindex Node names must be unique
+All the node names in a single Texinfo file must be unique.
+
+This means, for example, that if you end every chapter with a summary,
+you must name each summary node differently. You cannot just call
+them all ``Summary''. You may, however, duplicate the titles of
+chapters, sections, and the like. Thus you can end each chapter with
+a section called ``Summary'', so long as the node names for those
+sections are all different.
+
+@item
+The next/previous/up pointers on @code{@@node} lines must be the names
+of nodes. (It's recommended to leave out these explicit node pointer
+names, which automatically avoids any problem here; @pxref{@t{makeinfo}
+Pointer Creation}.)
+
+@item
+@cindex Commands in node names
+@cindex @@-commands in node names
+Node names can contain @@-commands. The output is generally the
+natural result of the command; for example, using @code{@@TeX@{@}} in a
+node name results in the @TeX{} logo being output, as it would be in
+normal text. Cross references should use @code{@@TeX@{@}} just as the
+node name does.
+
+For Info and HTML output, especially, it is necessary to expand
+commands to some sequence of plain characters; for instance,
+@code{@@TeX@{@}} expands to the three letters @samp{TeX} in the Info
+node name. However, cross references to the node should not take the
+``shortcut'' of using @samp{TeX}; stick to the actual node name,
+commands and all.
+
+Some commands do not make sense in node names; for instance,
+environments (e.g., @code{@@quotation}), commands that read a whole
+line as their argument (e.g., @code{@@sp}), and plenty of others.
+
+For the complete list of commands that are allowed, and their
+expansion for HTML identifiers and file names, @pxref{HTML Xref
+Command Expansion}. The expansions for Info are generally given with
+main the description of the command.
+
+Prior to the Texinfo 5 release in 2013, this feature was supported in
+an ad hoc way (the @option{--commands-in-node-names} option to
+@command{makeinfo}). Now it is part of the language.
+
+@item
+@cindex Colon in node name
+@cindex Comma in node name
+@cindex Parentheses in node name
+@cindex Period in node name
+@cindex Characters, invalid in node name
+@cindex Invalid characters in node names
+@cindex Node names, invalid characters in
+Unfortunately, you cannot reliably use periods, commas, or colons
+within a node name; these can confuse the Info reader. Also, a node
+name may not start with a left parenthesis preceding a right
+parenthesis, as in @code{(not)allowed}, since this syntax is used to
+specify an external manual. (Perhaps these limitations will be
+removed some day.)
+
+@command{makeinfo} warns about such problematic usage in node names,
+menu items, and cross references. If you don't want to see the
+warnings, you can set the customization variable
+@code{INFO_SPECIAL_CHARS_WARNING} to @samp{0} (@pxref{Other
+Customization Variables}).
+
+Also, if you insist on using these characters in node names (accepting
+the resulting substandard Info output), in order not to confuse the
+Texinfo processors you must still escape those characters, by using
+either special insertions (@pxref{Inserting a Comma}) or @code{@@asis}
+(@pxref{@t{@@asis}}). For example:
+
+@example
+@@node foo@@asis@{::@}bar
+@end example
+
+As an example of avoiding the special characters, the following is a
+section title in this manual:
+
+@smallexample
+@@section @@code@{@@@@unnumbered@}, @@code@{@@@@appendix@}: ...
+@end smallexample
+
+@noindent
+But the corresponding node name lacks the commas and the subtitle:
+
+@smallexample
+@@node @t{@@unnumbered @@appendix}
+@end smallexample
+
+@cindex Case in node name
+@item
+Case is significant in node names.
+
+@cindex White space in node name
+@cindex Spaces in node name
+Spaces before and after names on the @samp{@@node} line are ignored.
+Multiple whitespace characters ``inside'' a name are collapsed to a
+single space. For example:
+
+@example
+@@node foo bar,
+@@node foo bar ,
+@@node foo bar,
+@@node foo bar ,
+@end example
+
+@noindent all define the same node, namely @samp{foo bar}. References
+to the node should all use that name, with no leading or trailing
+spaces, and a single internal space.
+@end itemize
+
+
+@node First Node
+@subsection The First Node
+@cindex Top node is first
+@cindex First node
+
+The first node of a Texinfo file is the @dfn{Top} node, except in an
+included file (@pxref{Include Files}). The Top node should contain a
+short summary, copying permissions, and a master menu. @xref{The Top
+Node}, for more information on the Top node contents and examples.
+
+Here is a description of the node pointers to be used in the Top node:
+
+@itemize @bullet
+@item
+@cindex Up node of Top node
+@cindex (dir) as Up node of Top node
+The Top node (which must be named @samp{top} or @samp{Top}) should have
+as its `Up' node the name of a node in another file, where there is a
+menu that leads to this file. Specify the file name in parentheses.
+
+Usually, all Info files are installed in one system-wide Info tree
+(often constructed from multiple directories). In this case, use
+@samp{(dir)} as the parent of the Top node; this specifies the
+top-level node in the @file{dir} file, which contains the main menu
+for the Info system as a whole.
+
+@item
+@cindex Next node of Top node
+The `Next' node of the Top node should be the first chapter in your
+document.
+
+@end itemize
+
+@xref{Installing an Info File}, for more information about installing
+an Info file in the @file{info} directory.
+
+It is usually best to leave the pointers off entirely and let the
+tools implicitly define them, with this simple result:
+
+@example
+@@node Top
+@end example
+
+
+@node @t{@@top} Command
+@subsection The @code{@@top} Sectioning Command
+
+@anchor{top command}@c old name
+@anchor{makeinfo top}@c another old name
+@anchor{makeinfo top command}@c yet another name
+@findex top
+
+The @code{@@top} command is a special sectioning command that you
+should only use after an @samp{@@node Top} line at the beginning of a
+Texinfo file. The @code{@@top} command tells the @code{makeinfo}
+formatter which node is to be used as the root of the node tree
+(needed if your manual uses implicit node pointers).
+
+It produces the same sort of output as @code{@@unnumbered}
+(@pxref{@t{@@unnumbered @@appendix}}).
+
+The @code{@@top} node is conventionally wrapped in an
+@code{@@ifnottex} conditional so that it will not appear in @TeX{}
+output (@pxref{Conditionals}).
+Thus, in practice, a Top node usually looks like this:
+
+@example
+@@ifnottex
+@@node Top
+@@top @var{your-manual-title}
+
+@var{very-high-level-summary}
+@@end ifnottex
+@end example
+
+@code{@@top} is ignored when raising or lowering sections. That is,
+it is never lowered and nothing can be raised to it
+(@pxref{Raise/lower sections}).
+
+
+@node @t{makeinfo} Pointer Creation
+@section @code{makeinfo} Pointer Creation
+
+@cindex Creating pointers with @code{makeinfo}
+@cindex Pointer creation with @code{makeinfo}
+@cindex Automatic pointer creation with @code{makeinfo}
+@cindex Implicit pointer creation with @code{makeinfo}
+
+The @code{makeinfo} program can automatically determine node pointers
+for a hierarchically organized document. This implicit node pointer
+creation feature in @code{makeinfo} relieves you from the need to
+update menus and pointers manually or with Texinfo mode commands.
+(@xref{Updating Nodes and Menus}.) We highly recommend taking
+advantage of this.
+
+To do so, write your @code{@@node} lines with just the name of the
+node:
+
+@example
+@@node My Node
+@end example
+
+@noindent
+You do not need to write out the `Next', `Previous', and `Up'
+pointers.
+
+Then, you must write a sectioning command, such as @code{@@chapter}
+or @code{@@section}, on the line immediately following each truncated
+@code{@@node} line (except that comment lines may intervene). This is
+where it normally goes.
+
+Also, you must write the name of each node (except for the `Top' node)
+in a menu that is one or more hierarchical levels above the node's
+level.
+
+Finally, you must follow the `Top' @code{@@node} line with a line
+beginning with @code{@@top} to mark the top-level node in the file.
+@xref{@t{@@top} Command}.
+
+@cindex Detail menu
+@findex detailmenu
+If you use a detailed menu in your master menu (@pxref{Master Menu
+Parts}), mark it with the @code{@@detailmenu @dots{} @@end
+detailmenu} environment, or @command{makeinfo} will get confused,
+typically about the last and/or first node in the document.
+
+In most cases, you will want to take advantage of this feature and not
+redundantly specify node pointers that the programs can determine.
+However, Texinfo documents are not required to be organized
+hierarchically or in fact to contain sectioning commands at all (for
+example, if you never intend the document to be printed), so node
+pointers may still be specified explicitly, in full generality.
+
+
+@node @t{@@anchor}
+@section @code{@@anchor}: Defining Arbitrary Cross Reference Targets
+
+@anchor{anchor}@c old name
+@findex anchor
+@cindex Anchors
+@cindex Cross reference targets, arbitrary
+@cindex Targets for cross references, arbitrary
+
+An @dfn{anchor} is a position in your document, labeled so that cross
+references can refer to it, just as they can to nodes. You create an
+anchor with the @code{@@anchor} command, and give the label as a
+normal brace-delimited argument. For example:
+
+@example
+This marks the @@anchor@{x-spot@}spot.
+@dots{}
+@@xref@{x-spot,,the spot@}.
+@end example
+
+@noindent produces:
+
+@example
+This marks the spot.
+@dots{}
+See [the spot], page 1.
+@end example
+
+As you can see, the @code{@@anchor} command itself produces no output.
+This example defines an anchor `x-spot' just before the word `spot'.
+You can refer to it later with an @code{@@xref} or other cross
+reference command, as shown (@pxref{Cross References}).
+
+It is best to put @code{@@anchor} commands just before the position you
+wish to refer to; that way, the reader's eye is led on to the correct
+text when they jump to the anchor. You can put the @code{@@anchor}
+command on a line by itself if that helps readability of the source.
+Whitespace (including newlines) is ignored after @code{@@anchor}.
+
+Anchor names and node names may not conflict. Anchors and nodes are
+given similar treatment in some ways; for example, the
+@code{goto-node} command takes either an anchor name or a node name as
+an argument. (@xref{Go to node,,, info, Info}.)
+
+Also like node names, anchor names cannot include some characters
+(@pxref{Node Line Requirements}).
+
+@cindex Nodes, deleting or renaming
+Because of this duality, when you delete or rename a node, it is
+usually a good idea to define an @code{@@anchor} with the old name.
+That way, any links to the old node, whether from other Texinfo
+manuals or general web pages, keep working. You can also do this with
+the @file{RENAMED_NODES_FILE} feature of @command{makeinfo}
+(@pxref{HTML Xref Link Preservation}). Both methods keep links
+on the web working; the only substantive difference is that defining
+anchors also makes the old node names available when reading the
+document in Info.
@node Node Menu Illustration
@section Node and Menu Illustration
Here is a copy of the diagram shown earlier that illustrates a Texinfo
-file with three chapters, each of which contains two sections.@refill
-
-The ``root'' is at the top of the diagram and the ``leaves'' are at the
-bottom. This is how such a diagram is drawn conventionally; it
+file with three chapters, each of which contains two sections.
+
+The ``root'' is at the top of the diagram and the ``leaves'' are at
+the bottom. This is how such a diagram is drawn conventionally; it
illustrates an upside-down tree. For this reason, the root node is
called the `Top' node, and `Up' node pointers carry you closer to the
-root.@refill
+root.
@example
@group
@@ -4763,7 +5466,9 @@
@end group
@end example
-The fully-written command to start Chapter 2 would be this:
+Using explicit pointers (not recommended, but for shown for purposes
+of the example), the fully-written command to start Chapter@tie{}2
+would be this:
@example
@group
@@ -4773,63 +5478,83 @@
@end example
@noindent
-This @code{@@node} line says that the name of this node is ``Chapter
-2'', the name of the `Next' node is ``Chapter 3'', the name of the
-`Previous' node is ``Chapter 1'', and the name of the `Up' node is
-``Top''. You can omit writing out these node names if your document is
-hierarchically organized (@pxref{makeinfo Pointer Creation}), but the
-pointer relationships still obtain.
+This @code{@@node} line says that the name of this node is
+``Chapter@tie{}2'', the name of the `Next' node is ``Chapter 3'', the
+name of the `Previous' node is ``Chapter@tie{}1'', and the name of the
+`Up' node is ``Top''. You can (and should) omit writing out these
+node names if your document is hierarchically organized
+(@pxref{@t{makeinfo} Pointer Creation}), but the pointer
+relationships still obtain.
@quotation Note
-@strong{Please Note:} `Next' refers to the next node at the same
-hierarchical level in the manual, not necessarily to the next node
-within the Texinfo file. In the Texinfo file, the subsequent node may
-be at a lower level---a section-level node most often follows a
-chapter-level node, for example. `Next' and `Previous' refer to nodes
-at the @emph{same} hierarchical level. (The `Top' node contains the
-exception to this rule. Since the `Top' node is the only node at that
-level, `Next' refers to the first following node, which is almost always
-a chapter or chapter-level node.)@refill
-@end quotation
-
-To go to Sections 2.1 and 2.2 using Info, you need a menu inside Chapter
-2. (@xref{Menus}.) You would write the menu just
-before the beginning of Section 2.1, like this:@refill
+`Next' and `Previous' refer to nodes at the @emph{same hierarchical
+level} in the manual, not necessarily to the next node within the
+Texinfo file. In the Texinfo file, the subsequent node may be at a
+lower level---a section-level node most often follows a chapter-level
+node, for example. (The `Top' node contains the exception to this
+rule. Since the `Top' node is the only node at that level, `Next'
+refers to the first following node, which is almost always a chapter
+or chapter-level node.)
+@end quotation
+
+To go to Sections 2.1 and 2.2 using Info, you need a menu inside
+Chapter 2. (@xref{Menus}.) You would write the menu just before the
+beginning of Section 2.1, like this:
@example
@group
@@menu
* Sect. 2.1:: Description of this section.
- * Sect. 2.2::
+ * Sect. 2.2:: Description.
@@end menu
@end group
@end example
-Write the node for Sect. 2.1 like this:@refill
-
-@example
-@group
- @@node Sect. 2.1, Sect. 2.2, Chapter 2, Chapter 2
- @@comment node-name, next, previous, up
+Using explicit pointers, the node for Sect.@: 2.1 is written like this:
+
+@example
+@group
+@@node Sect. 2.1, Sect. 2.2, Chapter 2, Chapter 2
+@@comment node-name, next, previous, up
@end group
@end example
In Info format, the `Next' and `Previous' pointers of a node usually
-lead to other nodes at the same level---from chapter to chapter or from
-section to section (sometimes, as shown, the `Previous' pointer points
-up); an `Up' pointer usually leads to a node at the level above (closer
-to the `Top' node); and a `Menu' leads to nodes at a level below (closer
-to `leaves'). (A cross reference can point to a node at any level;
-see @ref{Cross References}.)@refill
-
-Usually, an @code{@@node} command and a chapter structuring command are
-used in sequence, along with indexing commands. (You may follow the
-@code{@@node} line with a comment line that reminds you which pointer is
-which.)@refill
+lead to other nodes at the same level---from chapter to chapter or
+from section to section (sometimes, as shown, the `Previous' pointer
+points up); an `Up' pointer usually leads to a node at the level above
+(closer to the `Top' node); and a `Menu' leads to nodes at a level
+below (closer to `leaves'). (A cross reference can point to a node at
+any level; see @ref{Cross References}.)
+
+Usually, an @code{@@node} command and a chapter structuring command
+are conventionally used together, in that order, often followed by
+indexing commands. (As shown in the example above, you may follow the
+@code{@@node} line with a comment line, e.g., to show which pointer is
+which if explicit pointers are used.) The Texinfo processors use this
+construct to determine the relationships between nodes and sectioning
+commands.
Here is the beginning of the chapter in this manual called ``Ending a
-Texinfo File''. This shows an @code{@@node} line followed by a comment
-line, an @code{@@chapter} line, and then by indexing lines.@refill
+Texinfo File''. This shows an @code{@@node} line followed by an
+@code{@@chapter} line, and then by indexing lines. The manual uses
+implictly determined node pointers; therefore, nothing else is needed
+on the @code{@@node} line.
+
+@example
+@group
+@@node Ending a File
+@@chapter Ending a Texinfo File
+@@cindex Ending a Texinfo file
+@@cindex Texinfo file ending
+@@cindex File ending
+@end group
+@end example
+
+An earlier version of the manual used explicit node pointers. Here is
+the beginning of the same chapter for that case. This shows an
+@code{@@node} line followed by a comment line, an @code{@@chapter}
+line, and then by indexing lines.
@example
@group
@@ -4837,445 +5562,9 @@
@@comment node-name, next, previous, up
@@chapter Ending a Texinfo File
@@cindex Ending a Texinfo file
-@@cindex Texinfo file ending
-@@cindex File ending
-@end group
-@end example
-
-
-@node node
-@section The @code{@@node} Command
-
-@cindex Node, defined
-@findex node
-
-A @dfn{node} is a segment of text that begins at an @code{@@node}
-command and continues until the next @code{@@node} command. The
-definition of node is different from that for chapter or section. A
-chapter may contain sections and a section may contain subsections;
-but a node cannot contain subnodes; the text of a node continues only
-until the next @code{@@node} command in the file. A node usually
-contains only one chapter structuring command, the one that follows
-the @code{@@node} line. On the other hand, in printed output nodes
-are used only for cross references, so a chapter or section may
-contain any number of nodes. Indeed, a chapter usually contains
-several nodes, one for each section, subsection, and
-subsubsection.
-
-To specify a node, write an @code{@@node} command at the beginning of
-a line, and follow it with up to four arguments, separated by commas,
-on the rest of the same line. The first argument is required; it is
-the name of this node (for details of node names, @pxref{Node Line
-Requirements}). The subsequent arguments are the names of the `Next',
-`Previous', and `Up' pointers, in that order, and may be omitted if
-your Texinfo document is hierarchically organized (@pxref{makeinfo
-Pointer Creation}).
-
-@opindex accesskey@r{, in HTML output}
-Whether the node pointers are specified implicitly or explicitly, the
-HTML output from @command{makeinfo} for each node includes links to
-the `Next', `Previous', and `Up' nodes. The HTML also uses the
-@code{accesskey} attribute with the values @samp{n}, @samp{p}, and
-@samp{u} respectively. This allows people using web browsers to
-follow the nagivation using (typically) @kbd{M-@var{letter}}, e.g.,
-@kbd{M-n} for the `Next' node, from anywhere within the node.
-
-You may insert spaces before each name on the @code{@@node} line if
-you wish; the spaces are ignored. You must write the name of the node
-and (if present) the names of the `Next', `Previous', and `Up'
-pointers all on the same line. Otherwise, the formatters fail.
-(@inforef{Top, info, info}, for more information about nodes in Info.)
-
-Usually, you write one of the chapter-structuring command lines
-immediately after an @code{@@node} line---for example, an
-@code{@@section} or @code{@@subsection} line. (@xref{Structuring
-Command Types}.)
-
-@TeX{} uses @code{@@node} lines to identify the names to use for cross
-references. For this reason, you must write @code{@@node} lines in a
-Texinfo file that you intend to format for printing, even if you do not
-intend to format it for Info. (Cross references, such as the one at the
-end of this sentence, are made with @code{@@xref} and related commands;
-see @ref{Cross References}.)
-
-@menu
-* Node Names:: How to choose node and pointer names.
-* Writing a Node:: How to write an @code{@@node} line.
-* Node Line Tips:: Keep names short.
-* Node Line Requirements:: Keep names unique, without @@-commands.
-* First Node:: How to write a `Top' node.
-* makeinfo top command:: How to use the @code{@@top} command.
-@end menu
-
-
-@node Node Names
-@subsection Choosing Node and Pointer Names
-
-@cindex Node names, choosing
-The name of a node identifies the node (for details of node names,
-@pxref{Node Line Requirements}). The pointers enable you to reach
-other nodes and consist simply of the names of those nodes.
-
-Normally, a node's `Up' pointer contains the name of the node whose
-menu mentions that node. The node's `Next' pointer contains the name
-of the node that follows the present node in that menu and its
-`Previous' pointer contains the name of the node that precedes it in
-that menu. When a node's `Previous' node is the same as its `Up'
-node, both node pointers name the same node.
-
-Usually, the first node of a Texinfo file is the `Top' node, and its
-`Up' and `Previous' pointers point to the @file{dir} file, which
-contains the main menu for all of Info.
-
-The `Top' node itself contains the main or master menu for the manual.
-Also, it is helpful to include a brief description of the manual in the
-`Top' node. @xref{First Node}, for information on how to write the
-first node of a Texinfo file.
-
-Even when you explicitly specify all pointers, that does not mean you
-can write the nodes in the Texinfo source file in an arbitrary order!
-Because @TeX{} processes the file sequentially, irrespective of node
-pointers, you must write the nodes in the order you wish them to appear
-in the output.
-
-
-@node Writing a Node
-@subsection How to Write an @code{@@node} Line
-@cindex Writing an @code{@@node} line
-@cindex @code{@@node} line writing
-@cindex Node line writing
-
-The easiest way to write an @code{@@node} line is to write @code{@@node}
-at the beginning of a line and then the name of the node, like
-this:
-
-@example
-@@node @var{node-name}
-@end example
-
-If you are using XEmacs, you can use the update node commands
-provided by Texinfo mode to insert the names of the pointers; or you
-can leave the pointers out of the Texinfo file and let @code{makeinfo}
-insert node pointers into the Info file it creates. (@xref{Texinfo
-Mode}, and @ref{makeinfo Pointer Creation}.)
-
-Alternatively, you can insert the `Next', `Previous', and `Up'
-pointers yourself. If you do this, you may find it helpful to use the
-Texinfo mode keyboard command @kbd{C-c C-c n}. This command inserts
-@samp{@@node} and a comment line listing the names of the pointers in
-their proper order. The comment line helps you keep track of which
-arguments are for which pointers. This comment line is especially useful
-if you are not familiar with Texinfo.
-
-The template for a fully-written-out node line with `Next', `Previous',
-and `Up' pointers looks like this:
-
-@example
-@@node @var{node-name}, @var{next}, @var{previous}, @var{up}
-@end example
-
-The @var{node-name} argument must be present, but the others are
-optional. If you wish to specify some but not others, just insert
-commas as needed, as in: @samp{@@node mynode,,,uppernode}. However,
-we recommend leaving off all the pointers and letting @code{makeinfo}
-determine them, as described above.
-
-If you wish, you can ignore @code{@@node} lines altogether in your first
-draft and then use the @code{texinfo-insert-node-lines} command to
-create @code{@@node} lines for you. However, we do not recommend this
-practice. It is better to name the node itself at the same time that
-you write a segment so you can easily make cross references. A large
-number of cross references are an especially important feature of a good
-Info file.
-
-After you have inserted an @code{@@node} line, you should immediately
-write an @@-command for the chapter or section and insert its name.
-Next (and this is important!), put in several index entries. Usually,
-you will find at least two and often as many as four or five ways of
-referring to the node in the index. Use them all. This will make it
-much easier for people to find the node.
-
-
-@node Node Line Tips
-@subsection @code{@@node} Line Tips
-
-Here are three suggestions:
-
-@itemize @bullet
-@item
-Try to pick node names that are informative but short.@refill
-
-In the Info file, the file name, node name, and pointer names are all
-inserted on one line, which may run into the right edge of the window.
-(This does not cause a problem with Info, but is ugly.)@refill
-
-@item
-Try to pick node names that differ from each other near the beginnings
-of their names. This way, it is easy to use automatic name completion in
-Info.@refill
-
-@item
-By convention, node names are capitalized just as they would be for
-section or chapter titles---initial and significant words are
-capitalized; others are not.@refill
-@end itemize
-
-
-@node Node Line Requirements
-@subsection @code{@@node} Line Requirements
-
-@cindex Node line requirements
-@cindex Restrictions on node names
-Here are several requirements for @code{@@node} lines:
-
-@itemize @bullet
-@cindex Unique nodename requirement
-@cindex Node name must be unique
-@item
-All the node names for a single Info file must be unique.
-
-Duplicates confuse the Info movement commands. This means, for
-example, that if you end every chapter with a summary, you must name
-each summary node differently. You cannot just call each one
-``Summary''. You may, however, duplicate the titles of chapters, sections,
-and the like. Thus you can end each chapter in a book with a section
-called ``Summary'', so long as the node names for those sections are all
-different.
-
-@item
-A pointer name must be the name of a node.
-
-The node to which a pointer points may come before or after the
-node containing the pointer.
-
-@cindex @@-commands in nodename
-@cindex Node name, should not contain @@-commands
-@item
-@@-commands in node names are not allowed. This includes punctuation
-characters that are escaped with a @samp{@@}, such as @code{@@} and
-@code{@{}, and accent commands such as @samp{@@'}. (For a few cases
-when this is useful, Texinfo has limited support for using
-@w{@@-commands} in node names; see @ref{Pointer Validation}.) Perhaps
-this limitation will be removed some day.
-
-@item
-@cindex Colon in nodename
-@cindex Comma in nodename
-@cindex Parentheses in nodename
-@cindex Period in nodename
-@cindex Characters, invalid in node name
-@cindex Invalid characters in node names
-@cindex Node names, invalid characters in
-Unfortunately, you cannot use periods, commas, colons or parentheses
-within a node name; these confuse the Texinfo processors. Perhaps
-this limitation will be removed some day, too.
-
-@need 700
-For example, the following is a section title in this manual:
-
-@smallexample
-@@code@{@@@@unnumberedsec@}, @@code@{@@@@appendixsec@}, @@code@{@@@@heading@}
-@end smallexample
-
-@noindent
-But the corresponding node name lacks the commas and the @@'s:
-
-@smallexample
-unnumberedsec appendixsec heading
-@end smallexample
-
-@cindex Case in node name
-@item
-Case is significant in node names.
-
-@cindex White space in node name
-@cindex Spaces in node name
-Spaces before and after names on the @samp{@@node} line are ignored,
-but spaces ``inside'' a name are significant. For example:
-
-@example
-@@node foo bar,
-@@node foo bar ,
-@@node foo bar ,
-@end example
-
-@noindent all define the same node, @samp{foo bar}. References to the
-node should all use that name, without the leading or trailing spaces,
-but with the internal spaces.
-@end itemize
-
-
-@node First Node
-@subsection The First Node
-@cindex Top node is first
-@cindex First node
-
-The first node of a Texinfo file is the @dfn{Top} node, except in an
-included file (@pxref{Include Files}). The Top node should contain a
-short summary, copying permissions, and a master menu. @xref{The Top
-Node}, for more information on the Top node contents and examples.
-
-Here is a description of the node pointers to be used in the Top node:
-
-@itemize @bullet
-
-@item
-@cindex Up node of Top node
-@cindex (dir) as Up node of Top node
-The Top node (which must be named @samp{top} or @samp{Top}) should have
-as its `Up' node the name of a node in another file, where there is a
-menu that leads to this file. Specify the file name in parentheses.
-
-Usually, all Info files are installed in the same Info directory tree;
-in this case, use @samp{(dir)} as the parent of the Top node; this is
-short for @samp{(dir)top}, and specifies the Top node in the @file{dir}
-file, which contains the main menu for the Info system as a whole.
-
-@item
-@cindex Prev node of Top node
-The `Prev' node of the Top node should also be your @samp{(dir)} file.
-
-@item
-@cindex Next node of Top node
-The `Next' node of the Top node should be the first chapter in your
-document.
-
-@end itemize
-
-@xref{Installing an Info File}, for more information about installing
-an Info file in the @file{info} directory.
-
-It is usually best to leave the pointers off entirely and let the
-tools implicitly define them, with this simple result:
-
-@example
-@@node Top
-@end example
-
-
-@node makeinfo top command
-@subsection The @code{@@top} Sectioning Command
-@findex top @r{(@@-command)}
-
-A special sectioning command, @code{@@top} should be used with the
-@code{@@node Top} line. The @code{@@top} sectioning command tells
-@code{makeinfo} that it marks the `Top' node in the file. It provides
-the information that @code{makeinfo} needs to insert node pointers
-automatically. Write the @code{@@top} command at the beginning of the
-line immediately following the @code{@@node Top} line. Write the title
-on the remaining part of the same line as the @code{@@top} command.
-
-In Info, the @code{@@top} sectioning command causes the title to appear
-on a line by itself, with a line of asterisks inserted underneath, as
-other sectioning commands do.
-
-In @TeX{} and @code{texinfo-format-buffer}, the @code{@@top}
-sectioning command is merely a synonym for @code{@@unnumbered}.
-Neither of these formatters require an @code{@@top} command, and do
-nothing special with it. You can use @code{@@chapter} or
-@code{@@unnumbered} after the @code{@@node Top} line when you use
-these formatters. Also, you can use @code{@@chapter} or
-@code{@@unnumbered} when you use the Texinfo updating commands to
-create or update pointers and menus.
-
-Thus, in practice, a Top node starts like this:
-
-@example
-@@node Top
-@@top Your Manual Title
-@end example
-
-
-@node makeinfo Pointer Creation
-@section Creating Pointers with @code{makeinfo}
-@cindex Creating pointers with @code{makeinfo}
-@cindex Pointer creation with @code{makeinfo}
-@cindex Automatic pointer creation with @code{makeinfo}
-
-The @code{makeinfo} program has a feature for automatically
-determining node pointers for a hierarchically organized document. We
-highly recommend using it.
-
-When you take advantage of this feature, you do not need to write the
-`Next', `Previous', and `Up' pointers after the name of a node.
-However, you must write a sectioning command, such as @code{@@chapter}
-or @code{@@section}, on the line immediately following each truncated
-@code{@@node} line (except that comment lines may intervene).
-
-In addition, you must follow the `Top' @code{@@node} line with a line
-beginning with @code{@@top} to mark the `Top' node in the
-file. @xref{makeinfo top, , @code{@@top}}.
-
-Finally, you must write the name of each node (except for the `Top'
-node) in a menu that is one or more hierarchical levels above the
-node's hierarchical level.
-
-@cindex Detail menu
-@findex detailmenu
-If you use a detailed menu in your master menu (@pxref{Master Menu
-Parts}), mark it with the @code{@@detailmenu @@dots@{@} @@end
-detailmenu} environment, or @command{makeinfo} will get confused,
-typically about the last and/or first node in the document.
-
-This implicit node pointer creation feature in @code{makeinfo}
-relieves you from the need to update menus and pointers manually or
-with Texinfo mode commands. (@xref{Updating Nodes and Menus}.)
-
-In most cases, you will want to take advantage of this feature and not
-redundantly specify node pointers. However, Texinfo documents are not
-required to be organized hierarchically or in fact to contain
-sectioning commands at all (for example, if you never intend the
-document to be printed). The special procedure for handling the short
-text before a menu (@pxref{Menus}) also disables this
-feature, for that group of nodes. In those cases, you will need to
-explicitly specify all pointers.
-
-@node anchor
-@section @code{@@anchor}: Defining Arbitrary Cross-reference Targets
-
-@findex anchor
-@cindex Anchors
-@cindex Cross-reference targets, arbitrary
-@cindex Targets for cross-references, arbitrary
-
-An @dfn{anchor} is a position in your document, labeled so that
-cross-references can refer to it, just as they can to nodes. You create
-an anchor with the @code{@@anchor} command, and give the label as a
-normal brace-delimited argument. For example:
-
-@example
-This marks the @@anchor@{x-spot@}spot.
@dots{}
-@@xref@{x-spot,,the spot@}.
-@end example
-
-@noindent produces:
-
-@example
-This marks the spot.
-@dots{}
-See [the spot], page 1.
-@end example
-
-As you can see, the @code{@@anchor} command itself produces no output.
-This example defines an anchor `x-spot' just before the word `spot'.
-You can refer to it later with an @code{@@xref} or other cross-reference
-command, as shown. @xref{Cross References}, for details on the
-cross-reference commands.
-
-It is best to put @code{@@anchor} commands just before the position you
-wish to refer to; that way, the reader's eye is led on to the correct
-text when they jump to the anchor. You can put the @code{@@anchor}
-command on a line by itself if that helps readability of the source.
-Whitespace (including newlines) is ignored after @code{@@anchor}.
-
-Anchor names and node names may not conflict. Anchors and nodes are
-given similar treatment in some ways; for example, the @code{goto-node}
-command in standalone Info takes either an anchor name or a node name as
-an argument. (@xref{goto-node,,,info-stnd,GNU Info}.)
-
-Also like node names, anchor names cannot include some characters
-(@pxref{Node Line Requirements}).
+@end group
+@end example
@node Menus
@@ -5287,16 +5576,13 @@
you use menus to go to such nodes. Menus have no effect in printed
manuals and do not appear in them.
-A node with a menu should not contain much text. If you find yourself
-writing a lot of text before a menu, we generally recommend moving
-most of the text into a new subnode---all but a paragraph or two.
-Otherwise, a reader with a terminal that displays only a few lines may
-miss the menu and its associated text. As a practical matter, it is
-best to locate a menu within 20 or so lines of the beginning of the
-node.
-
-@menu
-* Menu Location:: Menus go at the ends of short nodes.
+It's usually best if a node with a menu does not contain much text.
+If you find yourself with a lot of text before a menu, we generally
+recommend moving all but a couple of paragraphs into a new subnode.
+Otherwise, it is easy for readers to miss the menu.
+
+@menu
+* Menu Location:: Menus go at the ends of nodes.
* Writing a Menu:: What is a menu?
* Menu Parts:: A menu entry has three parts.
* Less Cluttered Menu Entry:: Two part menu entry.
@@ -5310,36 +5596,36 @@
@cindex Menu location
@cindex Location of menus
-A menu must be located at the end of a node, without any regular text
-or additional commands between the @code{@@end menu} and the beginning
-of the next node. (As a consequence, there may be at most one menu in
-a node.)
+There may be at most one menu in a node. A menu is conventionally
+located at the end of a node, without any regular text or additional
+commands between the @code{@@end menu} and the beginning of the next
+node.
@cindex Info format, and menus
-This is actually a useful restriction, since a reader who uses the
-menu could easily miss any such text. Technically, it is necessary
-because in Info format, there is no marker for the end of a menu, so
-Info-reading programs would have no way to know when the menu ends and
-normal text resumes.
+This convention is useful, since a reader who uses the menu could
+easily miss any such text. Also, any such post-menu text will be
+considered part of the menu in Info output (which has no marker for
+the end of a menu). Thus, a line beginning with @samp{* } will likely
+be incorrectly handled.
@cindex Hierarchical documents, and menus
Technically, menus can carry you to any node, regardless of the
structure of the document; even to nodes in a different Info file.
-However, we do not recommend ever making use of this, because the
-@command{makeinfo} implicit pointer creation feature (@pxref{makeinfo
-Pointer Creation}) and XEmacs Texinfo mode updating commands work
-only to create menus of subordinate nodes in a hierarchically
-structured document. Instead, use cross references to refer to
-arbitrary nodes.
-
-In the past, we recommended using a @samp{@@heading} command within an
+However, we do not recommend making use of this, because it is hard
+for readers to follow. Also, the @command{makeinfo} implicit pointer
+creation feature (@pxref{@t{makeinfo} Pointer Creation}) and
+XEmacs Texinfo mode updating commands work only to create menus of
+subordinate nodes in a hierarchically structured document. It is much
+better to use cross references to refer to arbitrary nodes.
+
+Years ago, we recommended using an @samp{@@heading} command within an
@code{@@ifinfo} conditional instead of the normal sectioning commands
after a very short node with a menu. This had the advantage of making
the printed output look better, because there was no very short text
-between two headings on the page. But this also does not work with
+between two headings on the page. But it does not work with
@command{makeinfo}'s implicit pointer creation, and it also makes the
XML output incorrect, since it does not reflect the true document
-structure. So, regrettably, we can no longer recommend this.
+structure. So, we no longer recommend this.
@node Writing a Menu
@@ -5365,17 +5651,18 @@
@end group
@end example
+@cindex Spaces, in menus
In a menu, every line that begins with an @w{@samp{* }} is a @dfn{menu
entry}. (Note the space after the asterisk.) A line that does not
start with an @w{@samp{* }} may also appear in a menu. Such a line is
-not a menu entry but is a menu comment line that appears in the Info
-file. In the example above, the line @samp{Larger Units of Text} is a
-menu comment line; the two lines starting with @w{@samp{* }} are menu
-@cindex Spaces, in menus
-entries. Space characters in a menu are preserved as-is; this allows
-you to format the menu as you wish.
-
-@opindex accesskey@r{, in HTML output}
+not a menu entry but rather a @dfn{menu comment} line that appears in
+the Info file. In the example above, the line @samp{Larger Units of
+Text} is such a menu comment line; the two lines starting with
+@w{@samp{* }} are menu entries. Space characters in a menu are
+preserved as-is in the Info output; this allows you to format the menu
+as you wish.
+
+@opindex accesskey@r{, in HTML output of menus}
In the HTML output from @command{makeinfo}, the @code{accesskey}
attribute is used with the values @samp{1}@dots{}@samp{9} for the
first nine entries. This allows people using web browsers to follow
@@ -5409,10 +5696,17 @@
* @var{menu-entry-name}: @var{node-name}. @var{description}
@end example
-Follow the menu entry name with a single colon and follow the node name
-with tab, comma, newline, or the two characters period and space
+Follow the menu entry name with a single colon and follow the node
+name with tab, comma, newline, or the two characters period and space
(@samp{. }).
+@command{makeinfo} warns when the text of a menu item (and node names
+and cross references) contains a problematic construct that will
+interfere with its parsing in Info. If you don't want to see the
+warnings, you can set the customization variable
+@code{INFO_SPECIAL_CHARS_WARNING} to @samp{0} (@pxref{Other
+Customization Variables}).
+
In Info, a user selects a node with the @kbd{m} (@code{Info-menu})
command. The menu entry name is what the user types after the @kbd{m}
command.
@@ -5421,9 +5715,10 @@
Menu entry names and node names are often short; the description
explains to the reader what the node is about. A useful description
complements the node name rather than repeats it. The description,
-which is optional, can spread over two or more lines; if it does, some
-authors prefer to indent the second line while others prefer to align it
-with the first (and all others). It's up to you.
+which is optional, can spread over multiple lines; if it does, some
+authors prefer to indent the second line while others prefer to align
+it with the first (and all others). It's up to you. An empty line,
+or the next menu entry, ends a description.
@node Less Cluttered Menu Entry
@@ -5453,7 +5748,7 @@
* Name: Name. @var{description}
@end example
-You should indeed use the node name for the menu entry name whenever
+We recommend using the node name for the menu entry name whenever
possible, since it reduces visual clutter in the menu.
@@ -5462,7 +5757,7 @@
@cindex Menu example
@cindex Example menu
-A menu looks like this in Texinfo:@refill
+A menu looks like this in Texinfo:
@example
@group
@@ -5487,7 +5782,7 @@
@end example
@need 700
-Here is an example as you might see it in a Texinfo file:@refill
+Here is an example as you might see it in a Texinfo file:
@example
@group
@@ -5520,14 +5815,13 @@
entry name and the name of the node referred to by that name.
@samp{Multiples} is the menu entry name; it refers to the node named
@samp{Buffers}. The line @samp{Larger Units of Text} is a comment; it
-appears in the menu, but is not an entry.@refill
+appears in the menu, but is not an entry.
Since no file name is specified with either @samp{Files} or
@samp{Buffers}, they must be the names of nodes in the same Info file
-(@pxref{Other Info Files, , Referring to Other Info Files}).@refill
+(@pxref{Other Info Files, , Referring to Other Info Files}).
@node Other Info Files
-@comment node-name, next, previous, up
@section Referring to Other Info Files
@cindex Referring to other Info files
@cindex Nodes in other Info files
@@ -5537,59 +5831,42 @@
You can create a menu entry that enables a reader in Info to go to a
node in another Info file by writing the file name in parentheses just
-before the node name. In this case, you should use the three-part menu
-entry format, which saves the reader from having to type the file
-name.@refill
-
-@need 800
-The format looks like this:@refill
+before the node name. Some examples:
@example
@group
@@menu
* @var{first-entry-name}:(@var{filename})@var{nodename}. @var{description}
-* @var{second-entry-name}:(@var{filename})@var{second-node}. @var{description}
+* (@var{filename})@var{second-node}:: @var{description}
@@end menu
@end group
@end example
For example, to refer directly to the @samp{Outlining} and
-@samp{Rebinding} nodes in the @cite{XEmacs User's Manual}, you would
-write a menu like this:@refill
+@samp{Rebinding} nodes in the @cite{XEmacs User's Manual}, you could write a
+menu like this:
@example
@group
@@menu
* Outlining: (xemacs)Outline Mode. The major mode for
- editing outlines.
-* Rebinding: (xemacs)Rebinding. How to redefine the
- meaning of a key.
+ editing outlines.
+* (xemacs)Rebinding:: How to redefine the
+ meaning of a key.
@@end menu
@end group
@end example
If you do not list the node name, but only name the file, then Info
-presumes that you are referring to the `Top' node.@refill
-
-The @file{dir} file that contains the main menu for Info has menu
-entries that list only file names. These take you directly to the `Top'
-nodes of each Info document. (@xref{Installing an Info File}.)
-
-@need 700
-For example:
+presumes that you are referring to the `Top' node. Examples:
@example
@group
* Info: (info). Documentation browsing system.
-* XEmacs: (xemacs). The extensible, self-documenting
- text editor.
-@end group
-@end example
-
-@noindent
-(The @file{dir} top level directory for the Info system is an Info file,
-not a Texinfo file, but a menu entry looks the same in both types of
-file.)@refill
+* (xemacs):: The extensible, self-documenting
+ text editor.
+@end group
+@end example
The XEmacs Texinfo mode menu updating commands only work with nodes
within the current buffer, so you cannot use them to create menus that
@@ -5610,14 +5887,15 @@
* References:: What cross references are for.
* Cross Reference Commands:: A summary of the different commands.
* Cross Reference Parts:: A cross reference has several parts.
-* xref:: Begin a reference with `See' @dots{}
+* @t{@@xref}:: Begin a reference with `See' @dots{}
* Top Node Naming:: How to refer to the beginning of another file.
-* ref:: A reference for the last part of a sentence.
-* pxref:: How to write a parenthetical cross reference.
-* inforef:: How to refer to an Info-only file.
-* uref:: How to refer to a uniform resource locator.
-* cite:: How to refer to books not in the Info system.
-@end menu
+* @t{@@ref}:: A reference for the last part of a sentence.
+* @t{@@pxref}:: How to write a parenthetical cross reference.
+* @t{@@inforef}:: How to refer to an Info-only file.
+* @t{@@url}:: How to refer to a uniform resource locator.
+* @t{@@cite}:: How to refer to books not in the Info system.
+@end menu
+
@node References
@section What References Are For
@@ -5625,7 +5903,7 @@
Often, but not always, a printed document should be designed so that
it can be read sequentially. People tire of flipping back and forth
to find information that should be presented to them as they need
-it.@refill
+it.
However, in any document, some information will be too detailed for
the current context, or incidental to it; use cross references to
@@ -5634,75 +5912,81 @@
sequence from beginning to end. Instead, people look up what they
need. For this reason, such creations should contain many cross
references to help readers find other information that they may not
-have read.@refill
+have read.
In a printed manual, a cross reference results in a page reference,
unless it is to another manual altogether, in which case the cross
-reference names that manual.@refill
+reference names that manual.
In Info, a cross reference results in an entry that you can follow
-using the Info @samp{f} command. (@inforef{Help-Xref, Following
-cross-references, info}.)
+using the Info @samp{f} command. (@xref{Help-Xref,, Following
+cross-references, info, Info}.)
+
+In HTML, a cross reference results in an hyperlink.
The various cross reference commands use nodes (or anchors,
-@pxref{anchor,,@code{@@anchor}}) to define cross reference locations.
-This is evident in Info, in which a cross reference takes you to the
-specified location. @TeX{} also uses nodes to define cross reference
-locations, but the action is less obvious. When @TeX{} generates a DVI
-file, it records each node's page number and uses the page numbers in making
-references. Thus, if you are writing a manual that will only be
-printed, and will not be used online, you must nonetheless write
-@code{@@node} lines to name the places to which you make cross
-references.@refill
+@pxref{@t{@@anchor}}) to define cross reference locations. This is
+evident in Info and HTML, in which a cross reference takes you to the
+specified location.
+
+@TeX{} also needs nodes to define cross reference locations, but the
+action is less obvious. When @TeX{} generates a DVI file, it records
+each node's page number and uses the page numbers in making
+references. Thus, even if you are writing a manual that will only be
+printed, and not used online, you must nonetheless write @code{@@node}
+lines in order to name the places to which you make cross references.
@need 800
@node Cross Reference Commands
-@comment node-name, next, previous, up
@section Different Cross Reference Commands
@cindex Different cross reference commands
-There are four different cross reference commands:@refill
+There are four different cross reference commands:
@table @code
@item @@xref
-Used to start a sentence in the printed manual saying @w{`See @dots{}'}
-or an Info cross-reference saying @samp{*Note @var{name}: @var{node}.}.
+Used to start a sentence in the printed manual and in HTML with
+@w{`See @dots{}'} or an Info cross reference saying @samp{*Note
+@var{name}: @var{node}.}.
@item @@ref
-Used within or, more often, at the end of a sentence; same as
-@code{@@xref} for Info; produces just the reference in the printed
-manual without a preceding `See'.@refill
+Used within or, more often, at the end of a sentence; produces just
+the reference in the printed manual and in HTML without the preceding
+`See' (same as @code{@@xref} for Info).
@item @@pxref
-Used within parentheses to make a reference that suits both an Info
-file and a printed book. Starts with a lower case `see' within the
-printed manual. (@samp{p} is for `parenthesis'.)@refill
+Used within parentheses, at the end of a sentence, or otherwise before
+punctuation, to make a reference. Its output starts with a lowercase
+`see' in the printed manual and in HTML, and a lowercase @samp{*note}
+in Info. (@samp{p} is for `parenthesis'.)
@item @@inforef
Used to make a reference to an Info file for which there is no printed
-manual.@refill
-@end table
-
-@noindent
-(The @code{@@cite} command is used to make references to books and
+manual.
+@end table
+
+@noindent
+The @code{@@cite} command is used to make references to books and
manuals for which there is no corresponding Info file and, therefore,
-no node to which to point. @xref{cite, , @code{@@cite}}.)(a)refill
+no node to which to point. @xref{@t{@@cite}}.
+
@node Cross Reference Parts
-@comment node-name, next, previous, up
@section Parts of a Cross Reference
@cindex Cross reference parts
@cindex Parts of a cross reference
-A cross reference command requires only one argument, which is the
-name of the node to which it refers. But a cross reference command
-may contain up to four additional arguments. By using these
-arguments, you can provide a cross reference name for Info, a topic
-description or section title for the printed output, the name of a
-different Info file, and the name of a different printed
-manual.@refill
-
-Here is a simple cross reference example:@refill
+A cross reference command to a node requires only one argument, which
+is the name of the node to which it refers. But a cross reference
+command may contain up to four additional arguments. By using these
+arguments, you can provide a cross reference name, a topic description
+or section title for the printed output, the name of a different
+manual file, and the name of a different printed manual. To refer
+to another manual as a whole, the manual file and/or the name of the
+printed manual are the only required arguments (@pxref{Top Node
+Naming}).
+
+Here is a simple cross reference example:
@example
@@xref@{Node name@}.
@@ -5716,14 +6000,17 @@
@end example
@noindent
-and
+in Info and
@quotation
See Section @var{nnn} [Node name], page @var{ppp}.
@end quotation
+@noindent
+in a printed manual.
+
@need 700
-Here is an example of a full five-part cross reference:@refill
+Here is an example of a full five-part cross reference:
@example
@group
@@ -5750,40 +6037,37 @@
@noindent
in a printed book.
-The five possible arguments for a cross reference are:@refill
+The five possible arguments for a cross reference are:
@enumerate
@item
-The node or anchor name (required). This is the location to which the
-cross reference takes you. In a printed document, the location of the
-node provides the page reference only for references within the same
-document.@refill
-
-@item
-The cross reference name for the Info reference, if it is to be
-different from the node name or the topic description. If you
-include this argument, it becomes the first part of the cross reference.
-It is usually omitted; then the topic description (third argument) is
-used if it was specified; if that was omitted as well, the node name
-is used.
+The node or anchor name (required, except for reference to whole
+manuals). This is the location to which the cross reference takes
+you. In a printed document, the location of the node provides the
+page reference only for references within the same document.
+
+@item
+The cross reference name. If you include this argument, it becomes
+the first part of the cross reference. It is usually omitted; then
+the topic description (third argument) is used if it was specified;
+if that was omitted as well, the node name is used.
@item
A topic description or section name. Often, this is the title of the
section. This is used as the name of the reference in the printed
-manual. If omitted, the node name is used.@refill
-
-@item
-The name of the Info file in which the reference is located, if it is
-different from the current file. You need not include any @samp{.info}
-suffix on the file name, since Info readers try appending it
-automatically.
-
-@item
-The name of a printed manual from a different Texinfo file.@refill
+manual. If omitted, the node name is used.
+
+@item
+The name of the manual file in which the reference is located, if it is
+different from the current file. This name is used both for Info and
+HTML.
+
+@item
+The name of a printed manual from a different Texinfo file.
@end enumerate
The template for a full five argument cross reference looks like
-this:@refill
+this:
@example
@group
@@ -5793,20 +6077,24 @@
@end example
Cross references with one, two, three, four, and five arguments are
-described separately following the description of @code{@@xref}.(a)refill
+described separately following the description of @code{@@xref}.
Write a node name in a cross reference in exactly the same way as in
the @code{@@node} line, including the same capitalization; otherwise, the
-formatters may not find the reference.@refill
-
-You can write cross reference commands within a paragraph, but note
-how Info and @TeX{} format the output of each of the various commands:
-write @code{@@xref} at the beginning of a sentence; write
-@code{@@pxref} only within parentheses, and so on.@refill
-
-@node xref
-@comment node-name, next, previous, up
+formatters may not find the reference.
+
+@command{makeinfo} warns when the text of a cross reference (and node
+names and menu items) contains a problematic construct that will
+interfere with its parsing in Info. If you don't want to see the
+warnings, you can set the customization variable
+@code{INFO_SPECIAL_CHARS_WARNING} to @samp{0} (@pxref{Other
+Customization Variables}).
+
+
+@node @t{@@xref}
@section @code{@@xref}
+
+@anchor{xref}@c old name
@findex xref
@cindex Cross references using @code{@@xref}
@cindex References using @code{@@xref}
@@ -5816,7 +6104,8 @@
an Info cross reference, which the Info @samp{f} command can use to
bring you directly to another node. The @TeX{} typesetting commands
convert it into a page reference, or a reference to another book or
-manual.@refill
+manual. In the HTML output format the cross reference is output
+as a hyperlink.
@menu
* Reference Syntax:: What a reference looks like and requires.
@@ -5829,7 +6118,7 @@
@node Reference Syntax
@subsection What a Reference Looks Like and Requires
-Most often, an Info cross reference looks like this:@refill
+Most often, an Info cross reference looks like this:
@example
*Note @var{node-name}::.
@@ -5857,41 +6146,48 @@
@end quotation
The @code{@@xref} command does not generate a period or comma to end
-the cross reference in either the Info file or the printed output.
-You must write that period or comma yourself; otherwise, Info will not
-recognize the end of the reference. (The @code{@@pxref} command works
-differently. @xref{pxref, , @code{@@pxref}}.)(a)refill
+the cross reference automatically. You must write that period or
+comma yourself; otherwise, Info will not recognize the end of the
+reference. (The @code{@@pxref} command works differently;
+@pxref{@t{@@pxref}}.)
@quotation Caution
-A period or comma @strong{must} follow the closing
-brace of an @code{@@xref}. It is required to terminate the cross
-reference. This period or comma will appear in the output, both in
-the Info file and in the printed manual.@refill
-@end quotation
-
-@code{@@xref} must refer to an Info node by name. Use @code{@@node}
-to define the node (@pxref{Writing a Node}).@refill
-
-@code{@@xref} is followed by several arguments inside braces, separated by
-commas. Whitespace before and after these commas is ignored.@refill
-
-A cross reference requires only the name of a node; but it may contain
-up to four additional arguments. Each of these variations produces a
-cross reference that looks somewhat different.@refill
+A period or comma @emph{must} follow the closing brace of an
+@code{@@xref}. It is required to terminate the cross reference. This
+period or comma will appear in the output.
+@end quotation
+
+@code{@@xref} must refer to a node by name. Use @code{@@node} to
+define the node (@pxref{Writing a Node}), or @code{@@anchor}
+(@pxref{@t{@@anchor}}).
+
+@code{@@xref} is followed by several arguments inside braces,
+separated by commas. Whitespace before and after these commas is
+ignored.
+
+A cross reference to a node within the current file requires only the
+name of a node; but it may contain up to four additional arguments.
+Each of these variations produces a cross reference that looks
+somewhat different. A cross reference to another manual as a whole
+only requires the fourth or fifth argument.
@quotation Note
-Commas separate arguments in a cross reference;
-avoid including them in the title or other part lest the formatters
-mistake them for separators.@refill
-@end quotation
+Commas separate arguments in a cross reference, so you must not
+include a comma in the title or any other part lest the formatters
+mistake them for separators. @code{@@comma@{@}} may be used to
+protect such commas (@pxref{Inserting a Comma}).
+@end quotation
+
@node One Argument
@subsection @code{@@xref} with One Argument
+@cindex One-argument form of cross references
The simplest form of @code{@@xref} takes one argument, the name of
-another node in the same Info file. The Info formatters produce
+another node in the same Texinfo file. The Info formatters produce
output that the Info readers can use to jump to the reference; @TeX{}
-produces output that specifies the page and section number for you.@refill
+produces output that specifies the page and section number for you;
+the HTML output is a normal hyperlink.
@need 700
@noindent
@@ -5909,17 +6205,18 @@
@end example
@noindent
-and
+in Info and
@quotation
See Section 3.1 [Tropical Storms], page 24.
@end quotation
@noindent
-(Note that in the preceding example the closing brace is followed by a
-period.)@refill
-
-You can write a clause after the cross reference, like this:@refill
+in a printed manual.
+(Note that in the preceding example the closing brace to
+@code{@@xref}'s argument is followed by a period.)
+
+You can write a clause after the cross reference, like this:
@example
@@xref@{Tropical Storms@}, for more info.
@@ -5933,22 +6230,27 @@
@end example
@noindent
-and
+in Info and
@quotation
See Section 3.1 [Tropical Storms], page 24, for more info.
@end quotation
-@noindent
-(Note that in the preceding example the closing brace is followed by a
-comma, and then by the clause, which is followed by a period.)@refill
+
+@noindent
+in a printed manual. Note that in the preceding example the closing
+brace to @code{@@xref} is followed by a comma, then the additional
+text. It's a common mistake to follow an @code{@@xref} command with a
+space, but this is never correct.
+
@node Two Arguments
@subsection @code{@@xref} with Two Arguments
-
-With two arguments, the second is used as the name of the Info cross
+@cindex Two-argument form of cross references
+
+With two arguments, the second is used as the name of the cross
reference, while the first is still the name of the node to which the
-cross reference points.@refill
+cross reference points.
@need 750
@noindent
@@ -5974,17 +6276,18 @@
@end example
@noindent
-and
+in Info and
@quotation
See Section 5.2 [Electrical Effects], page 57.
@end quotation
@noindent
+in a printed manual.
(Note that in the preceding example the closing brace is followed by a
period; and that the node name is printed, not the cross reference name.)
-You can write a clause after the cross reference, like this:@refill
+You can write a clause after the cross reference, like this:
@example
@@xref@{Electrical Effects, Lightning@}, for more info.
@@ -5992,42 +6295,43 @@
@noindent
which produces
+
@example
*Note Lightning: Electrical Effects, for more info.
@end example
@noindent
-and
+in Info and
@quotation
See Section 5.2 [Electrical Effects], page 57, for more info.
@end quotation
@noindent
-(Note that in the preceding example the closing brace is followed by a
-comma, and then by the clause, which is followed by a period.)@refill
+in a printed manual. (Note that in the preceding example the closing
+brace is followed by a comma, and then by the clause, which is
+followed by a period.)
+
+The second argument to cross references must observe some of the
+restrictions for node names (@pxref{Node Line Requirements}). The
+most common issue is that colons cannot be used, since that interferes
+with the parsing of the Info file.
+
@node Three Arguments
@subsection @code{@@xref} with Three Arguments
+@cindex Three-argument form of cross references
A third argument replaces the node name in the @TeX{} output. The third
argument should be the name of the section in the printed output, or
else state the topic discussed by that section. Often, you will want to
-use initial upper case letters so it will be easier to read when the
+use initial uppercase letters so it will be easier to read when the
reference is printed. Use a third argument when the node name is
-unsuitable because of syntax or meaning.@refill
-
-Remember to avoid placing a comma within the title or topic section of
-a cross reference, or within any other section. The formatters divide
-cross references into arguments according to the commas; a comma
-within a title or other section will divide it into two arguments. In
-a reference, you need to write a title such as ``Clouds, Mist, and
-Fog'' without the commas.@refill
-
-Also, remember to write a comma or period after the closing brace of an
+unsuitable because of syntax or meaning.
+
+Remember to write a comma or period after the closing brace of an
@code{@@xref} to terminate the cross reference. In the following
-examples, a clause follows a terminating comma.@refill
-
+examples, a clause follows a terminating comma.
@need 750
@noindent
@@ -6058,15 +6362,18 @@
@end example
@noindent
-and
+in Info and
@quotation
See Section 5.2 [Thunder and Lightning], page 57, for details.
@end quotation
+@noindent
+in a printed manual.
+
If a third argument is given and the second one is empty, then the
-third argument serves both. (Note how two commas, side by side, mark
-the empty second argument.)@refill
+third argument serves for both. (Note how two commas, side by side, mark
+the empty second argument.)
@example
@group
@@ -6083,42 +6390,55 @@
@end example
@noindent
-and
+in Info and
@quotation
See Section 5.2 [Thunder and Lightning], page 57, for details.
@end quotation
+@noindent
+in a printed manual.
+
+The third argument to cross references must observe some of the
+restrictions for node names (@pxref{Node Line Requirements}). The
+most common issue is that colons cannot be used, since that interferes
+with the parsing of the Info file.
+
As a practical matter, it is often best to write cross references with
just the first argument if the node name and the section title are the
-same, and with the first and third arguments if the node name and title
-are different.@refill
-
-Here are several examples from @cite{The GNU Awk User's Guide}:@refill
-
-@smallexample
-@@xref@{Sample Program@}.
-@@xref@{Glossary@}.
-@@xref@{Case-sensitivity, ,Case-sensitivity in Matching@}.
-@@xref@{Close Output, , Closing Output Files and Pipes@},
- for more information.
-@@xref@{Regexp, , Regular Expressions as Patterns@}.
-@end smallexample
+same (or nearly so), and with the first and third arguments only if the
+node name and title are different.
+
+@findex xrefautomaticsectiontitle
+Texinfo offers a setting to use the section title instead of node
+names by default in cross references (an explicitly specified third
+argument still takes precedence):
+
+@example
+@@xrefautomaticsectiontitle on
+@end example
+
+Typically this line would be given near the beginning of the document
+and used for the whole manual. But you can turn it off if you want
+(@code{@@xrefautomaticsectiontitle off}), for example, if you're
+including some other sub-document that doesn't have suitable section
+names.
+
@node Four and Five Arguments
@subsection @code{@@xref} with Four and Five Arguments
+@cindex Four- and five argument forms of cross references
In a cross reference, a fourth argument specifies the name of another
Info file, different from the file in which the reference appears, and
-a fifth argument specifies its title as a printed manual.@refill
+a fifth argument specifies its title as a printed manual.
Remember that a comma or period must follow the closing brace of an
-@code{@@xref} command to terminate the cross reference. In the
-following examples, a clause follows a terminating comma.@refill
+@code{@@xref} command to terminate the cross reference.
@need 800
@noindent
-The template is:
+The full template is:
@example
@group
@@ -6133,66 +6453,70 @@
@example
@@xref@{Electrical Effects, Lightning, Thunder and Lightning,
-weather, An Introduction to Meteorology@}, for details.
+weather, An Introduction to Meteorology@}.
+@end example
+
+@noindent
+produces this output in Info:
+
+@example
+*Note Lightning: (weather)Electrical Effects.
+@end example
+
+@noindent
+As you can see, the name of the Info file is enclosed in parentheses
+and precedes the name of the node.
+
+@noindent
+In a printed manual, the reference looks like this:
+
+@quotation
+See section ``Thunder and Lightning'' in @cite{An Introduction to
+Meteorology}.
+@end quotation
+
+@noindent
+The title of the printed manual is typeset like @code{@@cite}; and the
+reference lacks a page number since @TeX{} cannot know to which page a
+reference refers when that reference is to another manual.
+
+Next case: often, you will leave out the second argument when you use
+the long version of @code{@@xref}. In this case, the third argument,
+the topic description, will be used as the cross reference name in
+Info. For example,
+
+@example
+@@xref@{Electrical Effects, , Thunder and Lightning,
+weather, An Introduction to Meteorology@}.
@end example
@noindent
produces
@example
-*Note Lightning: (weather)Electrical Effects, for details.
-@end example
-
-@noindent
-The name of the Info file is enclosed in parentheses and precedes
-the name of the node.
-
-@noindent
-In a printed manual, the reference looks like this:@refill
-
-@quotation
-See section ``Thunder and Lightning'' in @i{An Introduction to
-Meteorology}, for details.
-@end quotation
-
-@noindent
-The title of the printed manual is typeset in italics; and the
-reference lacks a page number since @TeX{} cannot know to which page a
-reference refers when that reference is to another manual.@refill
-
-Often, you will leave out the second argument when you use the long
-version of @code{@@xref}. In this case, the third argument, the topic
-description, will be used as the cross reference name in Info.@refill
-
-@noindent
-The template looks like this:
-
-@example
-@@xref@{@var{node-name}, , @var{title-or-topic}, @var{info-file-name},
-@var{printed-manual-title}@}, for details.
-@end example
-
-@noindent
-which produces
-
-@example
-*Note @var{title-or-topic}: (@var{info-file-name})@var{node-name}, for details.
-@end example
-
-@noindent
-and
-
-@quotation
-See section @var{title-or-topic} in @var{printed-manual-title}, for details.
-@end quotation
-
-@need 700
-@noindent
-For example,
-
-@example
-@@xref@{Electrical Effects, , Thunder and Lightning,
-weather, An Introduction to Meteorology@}, for details.
+@group
+*Note Thunder and Lightning: (weather)Electrical Effects.
+@end group
+@end example
+
+@noindent
+in Info and
+
+@quotation
+See section ``Thunder and Lightning'' in @cite{An Introduction to
+Meteorology}.
+@end quotation
+
+@noindent
+in a printed manual.
+
+Next case: If the node name and the section title are the same in the
+other manual, you may also leave out the section title. In this case,
+the node name is used in both instances. For example,
+
+@example
+@@xref@{Electrical Effects,,,
+weather, An Introduction to Meteorology@}.
@end example
@noindent
@@ -6200,46 +6524,80 @@
@example
@group
-*Note Thunder and Lightning: (weather)Electrical Effects,
-for details.
-@end group
-@end example
-
-@noindent
-and
-
-@quotation
-See section ``Thunder and Lightning'' in @i{An Introduction to
-Meteorology}, for details.
-@end quotation
-
-On rare occasions, you may want to refer to another Info file that
+*Note (weather)Electrical Effects::.
+@end group
+@end example
+
+@noindent
+in Info and
+
+@quotation
+See section ``Electrical Effects'' in @cite{An Introduction to
+Meteorology}.
+@end quotation
+
+@noindent
+in a printed manual.
+
+A very unusual case: you may want to refer to another manual file that
is within a single printed manual---when multiple Texinfo files are
-incorporated into the same @TeX{} run but make separate Info files.
-In this case, you need to specify only the fourth argument, and not
-the fifth.@refill
+incorporated into the same @TeX{} run but can create separate Info or
+HTML output files. In this case, you need to specify only the fourth
+argument, and not the fifth.
+
+Finally, it's also allowed to leave out all the arguments
+@emph{except} the fourth and fifth, to refer to another manual as a
+whole. See the next section.
+
@node Top Node Naming
@section Naming a `Top' Node
@cindex Naming a `Top' Node in references
-@cindex @samp{@r{Top}} node naming for references
-
-In a cross reference, you must always name a node. This means that in
-order to refer to a whole manual, you must identify the `Top' node by
-writing it as the first argument to the @code{@@xref} command. (This
-is different from the way you write a menu entry; see @ref{Other Info
-Files, , Referring to Other Info Files}.) At the same time, to
-provide a meaningful section topic or title in the printed cross
-reference (instead of the word `Top'), you must write an appropriate
-entry for the third argument to the @code{@@xref} command.
-@refill
-
-@noindent
-Thus, to make a cross reference to @cite{The GNU Make Manual},
-write:@refill
-
-@example
-@@xref@{Top, , Overview, make, The GNU Make Manual@}.
+@cindex `Top' node naming for references
+
+@cindex Manual, referring to as a whole
+@cindex Referring to an entire manual
+
+Ordinarily, you must always name a node in a cross reference.
+However, it's not unusual to want to refer to another manual as a
+whole, rather than a particular section within it. In this case,
+giving any section name is an unnecessary distraction.
+
+So, with cross references to other manuals (@pxref{Four and Five
+Arguments}), if the first argument is either @samp{Top} (capitalized
+just that way) or omitted entirely, and the third argument is omitted,
+the printed output includes no node or section name. (The Info output
+includes @samp{Top} if it was given.) For example,
+
+@example
+@@xref@{Top,,, make, The GNU Make Manual@}.
+@end example
+
+@noindent produces
+
+@example
+@group
+*Note (make)::Top.
+@end group
+@end example
+
+@noindent and
+
+@quotation
+See @cite{The GNU Make Manual}.
+@end quotation
+
+@noindent
+Info readers will go to the Top node of the manual whether
+or not the `Top' node is explicitly specified.
+
+It's also possible (and is historical practice) to refer to a whole
+manual by specifying the `Top' node and an appropriate entry for the
+third argument to the @code{@@xref} command. Using this idiom, to
+make a cross reference to @cite{The GNU Make Manual}, you would write:
+
+@example
+@@xref@{Top,, Overview, make, The GNU Make Manual@}.
@end example
@noindent
@@ -6250,22 +6608,30 @@
@end example
@noindent
-and
-
-@quotation
-See section ``Overview'' in @i{The GNU Make Manual}.
-@end quotation
-
-@noindent
+in Info and
+
+@quotation
+See section ``Overview'' in @cite{The GNU Make Manual}.
+@end quotation
+
+@noindent
+in a printed manual.
+
In this example, @samp{Top} is the name of the first node, and
-@samp{Overview} is the name of the first section of the manual.
-
-
-@node ref
+@samp{Overview} is the name of the first section of the manual. There
+is no widely-used convention for naming the first section in a printed
+manual, this is just what the Make manual happens to use. This
+arbitrariness of the first name is a principal reason why omitting the
+third argument in whole-manual cross references is preferable.
+
+
+@node @t{@@ref}
@section @code{@@ref}
+
+@anchor{ref}@c old name
+@findex ref
@cindex Cross references using @code{@@ref}
@cindex References using @code{@@ref}
-@findex ref
@code{@@ref} is nearly the same as @code{@@xref} except that it does
not generate a `See' in the printed output, just the reference itself.
@@ -6278,36 +6644,40 @@
For more information, @@pxref@{This@}, and @@ref@{That@}.
@end example
-@noindent produces in Info:
+@noindent
+produces in Info:
@example
For more information, *note This::, and *note That::.
@end example
-@noindent and in printed output:
+@noindent
+and in printed output:
@quotation
For more information, see Section 1.1 [This], page 1,
and Section 1.2 [That], page 2.
@end quotation
-The @code{@@ref} command sometimes tempts writers to express
-themselves in a manner that is suitable for a printed manual but looks
-awkward in the Info format. Bear in mind that your audience will be
-using both the printed and the Info format. For example:
+The @code{@@ref} command can tempt writers to express themselves in a
+manner that is suitable for a printed manual but looks awkward in the
+Info format. Bear in mind that your audience could be using both the
+printed and the Info format. For example:
@cindex Sea surges
@example
Sea surges are described in @@ref@{Hurricanes@}.
@end example
-@noindent looks ok in the printed output:
+@noindent
+looks ok in the printed output:
@quotation
Sea surges are described in Section 6.7 [Hurricanes], page 72.
@end quotation
-@noindent but is awkward to read in Info, ``note'' being a verb:
+@noindent
+but is awkward to read in Info, ``note'' being a verb:
@example
Sea surges are described in *note Hurricanes::.
@@ -6316,7 +6686,7 @@
You should write a period or comma immediately after an @code{@@ref}
command with two or more arguments. If there is no such following
punctuation, @command{makeinfo} will generate a (grammatically
-incorrect) period in the Info output; otherwise, the cross-reference
+incorrect) period in the Info output; otherwise, the cross reference
would fail completely, due to the current syntax of Info format.
In general, it is best to use @code{@@ref} only when you need some
@@ -6324,11 +6694,13 @@
``See'') is ok, @code{@@xref} and @code{@@pxref} are preferable.
-@node pxref
+@node @t{@@pxref}
@section @code{@@pxref}
+
+@anchor{pxref}@c old name
+@findex pxref
@cindex Cross references using @code{@@pxref}
@cindex References using @code{@@pxref}
-@findex pxref
The parenthetical reference command, @code{@@pxref}, is nearly the
same as @code{@@xref}, but it is best used at the end of a sentence or
@@ -6337,8 +6709,8 @@
@enumerate
@item
-@TeX{} typesets the reference for the printed manual with a lower case
-`see' rather than an upper case `See'.
+@TeX{} typesets the reference for the printed manual with a lowercase
+`see' rather than an uppercase `See'.
@item
The Info formatting commands automatically end the reference with a
@@ -6374,12 +6746,15 @@
@end example
@noindent
-and
+in Info and
@quotation
@dots{} storms cause flooding (see Section 6.7 [Hurricanes], page 72) @dots{}
@end quotation
+@noindent
+in a printed manual.
+
With two arguments, a parenthetical cross reference has this template:
@example
@@ -6394,20 +6769,23 @@
@end example
@noindent
-and
+in Info and
@quotation
@dots{} (see Section @var{nnn} [@var{node-name}], page @var{ppp}) @dots{}
@end quotation
+@noindent
+in a printed manual.
+
@code{@@pxref} can be used with up to five arguments, just like
-@code{@@xref} (@pxref{xref, , @code{@@xref}}).
+@code{@@xref} (@pxref{@t{@@xref}}).
In past versions of Texinfo, it was not allowed to write punctuation
-after a @code{@@pxref}, so it could be used @emph{only} before a right
-parenthesis. This is no longer the case, so now it can be used (for
-example) at the end of a sentence, where a lowercase ``see'' works
-best. For instance:
+after an @code{@@pxref}, so it could be used @emph{only} before a
+right parenthesis. This is no longer the case, so now it can be used
+(for example) at the end of a sentence, where a lowercase ``see''
+works best. For instance:
@example
@dots{} For more information, @@pxref@{More@}.
@@ -6421,21 +6799,23 @@
@end example
@noindent
-This works fine. @code{@@pxref} should only be followed by a comma,
-period, or right parenthesis; in other cases, @command{makeinfo} has
-to insert a period to make the cross-reference work correctly in Info,
-and that period looks wrong.
-
-As a matter of general style, @code{@@pxref} is best used at the ends
-of sentences. Although it technically works in the middle of a
-sentence, that location breaks up the flow of reading.
-
-
-@node inforef
-@section @code{@@inforef}
+In general, @code{@@pxref} should only be followed by a comma, period,
+or right parenthesis; in other cases, @command{makeinfo} has to insert
+a period to make the cross reference work correctly in Info, and that
+period looks wrong.
+
+As a matter of style, @code{@@pxref} is best used at the ends of
+sentences. Although it technically works in the middle of a sentence,
+that location breaks up the flow of reading.
+
+
+@node @t{@@inforef}
+@section @code{@@inforef}: Cross References to Info-only Material
+
+@anchor{inforef}@c old name
+@findex inforef
@cindex Cross references using @code{@@inforef}
@cindex References using @code{@@inforef}
-@findex inforef
@code{@@inforef} is used for making cross references to Info
documents---even from a printed manual. This might be because you
@@ -6445,7 +6825,7 @@
possibilities.
The command takes either two or three arguments, in the following
-order:@refill
+order:
@enumerate
@item
@@ -6461,7 +6841,7 @@
@noindent
Separate the arguments with commas, as with @code{@@xref}. Also, you
must terminate the reference with a comma or period after the
-@samp{@}}, as you do with @code{@@xref}.(a)refill
+@samp{@}}, as you do with @code{@@xref}.
@noindent
The template is:
@@ -6501,15 +6881,18 @@
@end quotation
(This particular example is not realistic, since the Info manual is
-written in Texinfo, so all formats are available.)
+written in Texinfo, so all formats are available. In fact, we don't
+know of any extant Info-only manuals.)
The converse of @code{@@inforef} is @code{@@cite}, which is used to
-refer to printed works for which no Info form exists. @xref{cite, ,
-@code{@@cite}}.
-
-
-@node uref
+refer to printed works for which no Info form exists.
+@xref{@t{@@cite}}.
+
+
+@node @t{@@url}
@section @code{@@url}, @code{@@uref@{@var{url}[, @var{text}][, @var{replacement}]@}}
+
+@anchor{uref}@c old name
@findex uref
@cindex Uniform resource locator, referring to
@cindex URL, referring to
@@ -6520,62 +6903,89 @@
which control the text that is displayed. In HTML output, @code{@@uref}
produces a link you can follow.
-@code{@@url} is a synonym for @code{@@uref}. Originally, @code{@@url}
-had the meaning of @code{@@indicateurl}
-(@pxref{indicateurl,,@code{@@indicateurl}}), but in actual practice it
-was misused the vast majority of the time. So we've changed the
-meaning.
+@anchor{url} @code{@@url} is a synonym for @code{@@uref}.
+(Originally, @code{@@url} had the meaning of @code{@@indicateurl}
+(@pxref{@t{@@indicateurl}}), but in practice it was almost always
+misused. So we've changed the meaning.)
The second argument, if specified, is the text to display (the default
is the url itself); in Info and DVI output, but not in HTML output, the
-url is also output.
+url is output in addition to this text.
@cindex Man page, reference to
The third argument, if specified, is the text to display, but in this
-case the url is @emph{not} output in any format. This is useful when
-the text is already sufficiently referential, as in a man page. If
-the third argument is given, the second argument is ignored.
-
-If the url is long enough to cause problems with line breaking, you
-may find it useful to insert @code{@@/} at places where a line break
-would be acceptable (after @samp{/} characters, for instance). This
-tells @TeX{} to allow (but not force) a line break at those places.
-@xref{Line Breaks}.
+case the url is not output in any format. This is useful when the
+text is already sufficiently referential, as in a man page. If the
+third argument is given, the second argument is ignored.
+
+@cindex Line breaking, and urls
+@cindex Breakpoints within urls
+@TeX{} allows line breaking within urls at only a few characters
+(which are special in urls): @samp{&}, @samp{.}, @samp{#}, @samp{?},
+and @samp{/} (but not between @samp{/} characters). A tiny amount of
+stretchable space is also inserted around these characters to help
+with line breaking. For HTML output, modern browsers will also do
+line breaking within displayed urls. If you need to allow breaks at
+other characters you can insert @code{@@/} as needed (@pxref{Line
+Breaks}).
+
+@findex urefbreakstyle
+By default, any such breaks at special characters will occur after the
+character. Some people prefer such breaks to happen after the special
+character. This can be controlled with the @code{@@urefbreakstyle}
+command (this command has effect only in @TeX{}):
+
+Write this command at the
+beginning of a line with a single word as an argument, one of the
+following:
+
+@vindex after@r{, value for @code{@@urefbreakstyle}}
+@vindex before@r{, value for @code{@@urefbreakstyle}}
+@vindex none@r{, value for @code{@@urefbreakstyle}}
+@table @samp
+@item after
+(the default) Potentially break after the special characters.
+@item before
+Potentially break before the special characters.
+@item none
+Do not consider breaking at the special characters; any potential
+breaks must be manually inserted.
+@end table
Here is an example of the simple one argument form, where the url is
both the target and the text of the link:
@example
-The official GNU ftp site is @@uref@{ftp://ftp.gnu.org/gnu@}.
+The official GNU ftp site is @@uref@{http://ftp.gnu.org/gnu@}.
@end example
@noindent produces:
@display
-The official GNU ftp site is @uref{ftp://ftp.gnu.org/gnu}.
+The official GNU ftp site is @uref{http://ftp.gnu.org/gnu}.
@end display
An example of the two-argument form:
@example
-The official @@uref@{ftp://ftp.gnu.org/gnu, GNU ftp site@}
+The official @@uref@{http://ftp.gnu.org/gnu, GNU ftp site@}
holds programs and texts.
@end example
@noindent produces:
@display
-The official @uref{ftp://ftp.gnu.org/gnu, GNU ftp site}
+The official @uref{http://ftp.gnu.org/gnu, GNU ftp site}
holds programs and texts.
@end display
@noindent that is, the Info output is this:
@example
-The official GNU ftp site (ftp://ftp.gnu.org/gnu)
+The official GNU ftp site (http://ftp.gnu.org/gnu)
holds programs and texts.
@end example
@noindent and the HTML output is this:
@example
-The official <a href="ftp://ftp.gnu.org/gnu">GNU ftp site</a>
+The official <a href="http://ftp.gnu.org/gnu">GNU ftp site</a>
holds programs and texts.
@end example
@@ -6595,25 +7005,27 @@
The <a href="/man.cgi/1/ls">ls</a> program @dots{}
@end example
-To merely indicate a url without creating a link people can follow, use
-@code{@@indicateurl} (@pxref{indicateurl, @code{@@indicateurl}}).
-
-Some people prefer to display url's in the unambiguous format:
+Some people prefer to display urls in the unambiguous format:
@display
<URL:http://@var{host}/@var{path}>
@end display
@noindent
-@cindex <URL: convention, not used
+@cindex @code{<URL...>} convention, not used
You can use this form in the input file if you wish. We feel it's not
necessary to include the @samp{<URL:} and @samp{>} in the output,
-since any software that tries to detect url's in text already has to
+since any software that tries to detect urls in text already has to
detect them without the @samp{<URL:} to be useful.
-
-@node cite
+To merely indicate a url without creating a link people can follow,
+use @code{@@indicateurl} (@pxref{@t{@@indicateurl}}).
+
+
+@node @t{@@cite}
@section @code{@@cite}@{@var{reference}@}
+
+@anchor{cite}@c old name
@findex cite
Use the @code{@@cite} command for the name of a book that lacks a
@@ -6622,11 +7034,11 @@
If a book is written in Texinfo, it is better to use a cross reference
command since a reader can easily follow such a reference in Info.
-@xref{xref, , @code{@@xref}}.
+@xref{@t{@@xref}}.
@node Marking Text
-@chapter Marking Words and Phrases
+@chapter Marking Text, Words and Phrases
@cindex Paragraph, marking text within
@cindex Marking words and phrases
@cindex Words and phrases, marking them
@@ -6648,134 +7060,106 @@
@node Indicating
@section Indicating Definitions, Commands, etc.
+
@cindex Highlighting text
@cindex Indicating commands, definitions, etc.
-Texinfo has commands for indicating just what kind of object a piece of
-text refers to. For example, metasyntactic variables are marked by
-@code{@@var}, and code by @code{@@code}. Since the pieces of text are
-labelled by commands that tell what kind of object they are, it is easy
-to change the way the Texinfo formatters prepare such text. (Texinfo is
-an @emph{intentional} formatting language rather than a @emph{typesetting}
-formatting language.)@refill
-
-For example, in a printed manual,
-code is usually illustrated in a typewriter font;
-@code{@@code} tells @TeX{} to typeset this text in this font. But it
-would be easy to change the way @TeX{} highlights code to use another
-font, and this change would not affect how keystroke examples are
-highlighted. If straight typesetting commands were used in the body
-of the file and you wanted to make a change, you would need to check
-every single occurrence to make sure that you were changing code and
-not something else that should not be changed.@refill
+Texinfo has commands for indicating just what kind of object a piece
+of text refers to. For example, email addresses are marked by
+@code{@@email}; that way, the result can be a live link to send email
+when the output format supports it. If the email address was simply
+marked as ``print in a typewriter font'', that would not be possible.
@menu
* Useful Highlighting:: Highlighting provides useful information.
-* code:: Indicating program code.
-* kbd:: Showing keyboard input.
-* key:: Specifying keys.
-* samp:: Indicating a literal sequence of characters.
-* verb:: Indicating a verbatim sequence of characters.
-* var:: Indicating metasyntactic variables.
-* env:: Indicating environment variables.
-* file:: Indicating file names.
-* command:: Indicating command names.
-* option:: Indicating option names.
-* dfn:: Specifying definitions.
-* abbr:: Indicating abbreviations.
-* acronym:: Indicating acronyms.
-* indicateurl:: Indicating an example URL.
-* email:: Indicating an electronic mail address.
+* @t{@@code}:: Indicating program code.
+* @t{@@kbd}:: Showing keyboard input.
+* @t{@@key}:: Specifying keys.
+* @t{@@samp}:: Indicating a literal sequence of characters.
+* @t{@@verb}:: Indicating a verbatim sequence of characters.
+* @t{@@var}:: Indicating metasyntactic variables.
+* @t{@@env}:: Indicating environment variables.
+* @t{@@file}:: Indicating file names.
+* @t{@@command}:: Indicating command names.
+* @t{@@option}:: Indicating option names.
+* @t{@@dfn}:: Specifying definitions.
+* @t{@@abbr}:: Indicating abbreviations.
+* @t{@@acronym}:: Indicating acronyms.
+* @t{@@indicateurl}:: Indicating an example url.
+* @t{@@email}:: Indicating an electronic mail address.
@end menu
@node Useful Highlighting
@subsection Highlighting Commands are Useful
-The highlighting commands can be used to extract useful information
-from the file, such as lists of functions or file names. It is
-possible, for example, to write a program in XEmacs Lisp (or a keyboard
-macro) to insert an index entry after every paragraph that contains
-words or phrases marked by a specified command. You could do this to
-construct an index of functions if you had not already made the
-entries.@refill
-
-The commands serve a variety of purposes:@refill
+The commands serve a variety of purposes:
@table @code
@item @@code@{@var{sample-code}@}
Indicate text that is a literal example of a piece of a program.
-@xref{code,,@code{@@code}}.
+@xref{@t{@@code}}.
@item @@kbd@{@var{keyboard-characters}@}
-Indicate keyboard input.
-@xref{kbd,,@code{@@kbd}}.
+Indicate keyboard input. @xref{@t{@@kbd}}.
@item @@key@{@var{key-name}@}
Indicate the conventional name for a key on a keyboard.
-@xref{key,,@code{@@key}}.
+@xref{@t{@@key}}.
@item @@samp@{@var{text}@}
Indicate text that is a literal example of a sequence of characters.
-@xref{samp,,@code{@@samp}}.
+@xref{@t{@@samp}}.
@item @@verb@{@var{text}@}
Write a verbatim sequence of characters.
-@xref{verb,,@code{@@verb}}.
+@xref{@t{@@verb}}.
@item @@var@{@var{metasyntactic-variable}@}
-Indicate a metasyntactic variable.
-@xref{var,,@code{@@var}}.
+Indicate a metasyntactic variable. @xref{@t{@@var}}.
@item @@env@{@var{environment-variable}@}
-Indicate an environment variable.
-@xref{env,,@code{@@env}}.
+Indicate an environment variable. @xref{@t{@@env}}.
@item @@file@{@var{file-name}@}
-Indicate the name of a file.
-@xref{file,,@code{@@file}}.
+Indicate the name of a file. @xref{@t{@@file}}.
@item @@command@{@var{command-name}@}
Indicate the name of a command.
-@xref{command,,@code{@@command}}.
+@xref{@t{@@command}}.
@item @@option@{@var{option}@}
Indicate a command-line option.
-@xref{option,,@code{@@option}}.
+@xref{@t{@@option}}.
@item @@dfn@{@var{term}@}
Indicate the introductory or defining use of a term.
-@xref{dfn,,@code{@@dfn}}.
+@xref{@t{@@dfn}}.
@item @@cite@{@var{reference}@}
-Indicate the name of a book.
-@xref{cite,,@code{@@cite}}.
+Indicate the name of a book. @xref{@t{@@cite}}.
@item @@abbr@{@var{abbreviation}@}
Indicate an abbreviation, such as `Comput.'.
@item @@acronym@{@var{acronym}@}
-Indicate an acronym.
-@xref{acronym,,@code{@@acronym}}.
+Indicate an acronym. @xref{@t{@@acronym}}.
@item @@indicateurl@{@var{uniform-resource-locator}@}
Indicate an example (that is, nonfunctional) uniform resource locator.
-@xref{indicateurl,,@code{@@indicateurl}}. (Use @code{@@url}
-(@pxref{uref,,@code{@@url}}) for live url's.)
+@xref{@t{@@indicateurl}}. (Use @code{@@url} (@pxref{@t{@@url}}) for
+live urls.)
@item @@email@{@var{email-address}[, @var{displayed-text}]@}
-Indicate an electronic mail address.
-@xref{email,,@code{@@email}}.
-
-@ignore
-@item @@ctrl@{@var{ctrl-char}@}
-Use for an ASCII control character.
-@end ignore
-@end table
-
-
-@node code
+Indicate an electronic mail address. @xref{@t{@@email}}.
+
+@end table
+
+
+@node @t{@@code}
@subsection @code{@@code}@{@var{sample-code}@}
+
+@anchor{code}@c old name
@findex code
@cindex Syntactic tokens, indicating
@@ -6803,13 +7187,12 @@
misspelling of it. Even in languages which are not case sensitive, it
is confusing to a human reader to see identifiers spelled in different
ways. Pick one spelling and always use that. If you do not want to
-start a sentence with a command name written all in lower case, you
+start a sentence with a command name written all in lowercase, you
should rearrange the sentence.
-In the printed manual, @code{@@code} causes @TeX{} to typeset the
-argument in a typewriter face. In the Info file, it causes the Info
-formatting commands to use single quotation marks around the text.
-For example,
+In the Info output, @code{@@code} results in single quotation marks
+around the text. In other formats, @code{@@code} argument is typeset
+in a typewriter (monospace) font. For example,
@example
The function returns @@code@{nil@}.
@@ -6822,14 +7205,6 @@
The function returns @code{nil}.
@end quotation
-@iftex
-@noindent
-and this in the Info file:
-@example
-The function returns `nil'.
-@end example
-@end iftex
-
Here are some cases for which it is preferable @emph{not} to use @code{@@code}:
@itemize @bullet
@@ -6837,21 +7212,21 @@
For shell command names such as @command{ls} (use @code{@@command}).
@item
+For environment variable such as @env{TEXINPUTS} (use @code{@@env}).
+
+@item
For shell options such as @samp{-c} when such options stand alone (use
@code{@@option}).
@item
-Also, an entire shell command often looks better if written using
+An entire shell command often looks better if written using
@code{@@samp} rather than @code{@@code}. In this case, the rule is to
choose the more pleasing format.
@item
-For environment variable such as @env{TEXINPUTS} (use @code{@@env}).
-
-@item
For a string of characters shorter than a syntactic token. For example,
if you are writing about @samp{goto-ch}, which is just a part of the
-name for the @code{goto-char} XEmacs Lisp function, you should use
+name for the @code{goto-char} Emacs Lisp function, you should use
@code{@@samp}.
@item
@@ -6863,25 +7238,34 @@
language that is like a programming language. For example, you should
not use @code{@@code} for the keystroke commands of XEmacs (use
@code{@@kbd} instead) although you may use @code{@@code} for the names
-of the XEmacs Lisp functions that the keystroke commands invoke.
-
-@end itemize
-
-Since @code{@@command}, @code{@@option}, and @code{@@env} were
-introduced relatively recently, it is acceptable to use @code{@@code} or
-@code{@@samp} for command names, options, and environment variables.
-The new commands allow you to express the markup more precisely, but
-there is no real harm in using the older commands, and of course the
-long-standing manuals do so.
-
-Ordinarily, @TeX{} will consider breaking lines at @samp{-} and
+of the Emacs Lisp functions that the keystroke commands invoke.
+
+@end itemize
+
+By default, @TeX{} will consider breaking lines at @samp{-} and
@samp{_} characters within @code{@@code} and related commands. This
can be controlled with @code{@@allowcodebreaks}
-(@pxref{allowcodebreaks,,@code{@@allowcodebreaks}}).
-
-
-@node kbd
+(@pxref{@t{@@allowcodebreaks}}). The HTML output attempts to
+respect this for @samp{-}, but ultimately it is up to the browser's
+behavior. For Info, it seems better never to make such breaks.
+
+For Info, the quotes are omitted in the output of the @code{@@code}
+command and related commands (e.g., @code{@@kbd}, @code{@@command}),
+in typewriter-like contexts such as the @code{@@example} environment
+(@pxref{@t{@@example}}) and @code{@@code} itself, etc.
+
+To control which quoting characters are implicitly inserted by Texinfo
+processors in the output of @samp{@@code}, etc., see the
+@code{OPEN_QUOTE_SYMBOL} and @code{CLOSE_QUOTE_SYMBOL} customization
+variables (@pxref{Other Customization Variables}). This is separate
+from how actual quotation characters in the input document are handled
+(@pxref{Inserting Quote Characters}).
+
+
+@node @t{@@kbd}
@subsection @code{@@kbd}@{@var{keyboard-characters}@}
+
+@anchor{kbd}@c old name
@findex kbd
@cindex Keyboard input
@@ -6902,16 +7286,10 @@
@cindex User input
@cindex Slanted typewriter font, for @code{@@kbd}
By default, the @code{@@kbd} command produces a different font
-(slanted typewriter instead of normal typewriter) in the printed
-manual, so users can distinguish the characters that they are supposed
+(slanted typewriter instead of normal typewriter),
+so users can distinguish the characters that they are supposed
to type from those that the computer outputs.
-In Info output, @code{@@kbd} is usually the same as @code{@@code},
-producing `quotes' around its argument. However, in typewriter-like
-contexts such as the @code{@@example} environment (@pxref{example})
-and @code{@@code} command itself, the quotes are omitted, since Info
-format cannot use distinguishing fonts.
-
@findex kbdinputstyle
Since the usage of @code{@@kbd} varies from manual to manual, you can
control the font switching with the @code{@@kbdinputstyle} command.
@@ -6963,15 +7341,17 @@
(Also, this example shows that you can add spaces for clarity. If you
explicitly want to mention a space character as one of the characters of
-input, write @kbd{@@key@{SPC@}} for it.)@refill
-
-
-@node key
+input, write @kbd{@@key@{SPC@}} for it.)
+
+
+@node @t{@@key}
@subsection @code{@@key}@{@var{key-name}@}
+
+@anchor{key}@c old name
@findex key
Use the @code{@@key} command for the conventional name for a key on a
-keyboard, as in:@refill
+keyboard, as in:
@example
@@key@{RET@}
@@ -6979,7 +7359,7 @@
You can use the @code{@@key} command within the argument of an
@code{@@kbd} command when the sequence of characters to be typed
-includes one or more keys that are described by name.@refill
+includes one or more keys that are described by name.
For example, to produce @kbd{C-x @key{ESC}} and @kbd{M-@key{TAB}} you
would type:
@@ -6994,6 +7374,8 @@
@cindex Keys, recommended names
@cindex Names recommended for keys
@cindex Abbreviations for keys
+@cindex Control keys, specifying
+@cindex Meta keys, specifying
@quotation
@table @t
@@ -7034,15 +7416,17 @@
index entries.
-@node samp
+@node @t{@@samp}
@subsection @code{@@samp}@{@var{text}@}
+
+@anchor{samp}@c old name
@findex samp
Use the @code{@@samp} command to indicate text that is a literal example
or `sample' of a sequence of characters in a file, string, pattern, etc.
Enclose the text in braces. The argument appears within single
quotation marks in both the Info file and the printed manual; in
-addition, it is printed in a fixed-width font.@refill
+addition, it is printed in a fixed-width font.
@example
To match @@samp@{foo@} at the end of the line,
@@ -7054,7 +7438,7 @@
@quotation
To match @samp{foo} at the end of the line, use the regexp
-@samp{foo$}.(a)refill
+@samp{foo$}.
@end quotation
Any time you are referring to single characters, you should use
@@ -7062,13 +7446,14 @@
Also, you may use @code{@@samp} for entire statements in C and for entire
shell commands---in this case, @code{@@samp} often looks better than
@code{@@code}. Basically, @code{@@samp} is a catchall for whatever is
-not covered by @code{@@code}, @code{@@kbd}, or @code{@@key}.(a)refill
+not covered by @code{@@code}, @code{@@kbd}, @code{@@key},
+@code{@@command}, etc.
Only include punctuation marks within braces if they are part of the
string you are specifying. Write punctuation marks outside the braces
if those punctuation marks are part of the English text that surrounds
the string. In the following sentence, for example, the commas and
-period are outside of the braces:@refill
+period are outside of the braces:
@example
@group
@@ -7088,8 +7473,10 @@
@end quotation
-@node verb
-@subsection @code{@@verb}@{<char>@var{text}<char>@}
+@node @t{@@verb}
+@subsection @code{@@verb}@{@var{char}@var{text}@var{char}@}
+
+@anchor{verb}@c old name
@findex verb
@cindex Verbatim in-line text
@@ -7103,7 +7490,7 @@
@example
How many @@verb@{|@@|@}-escapes does one need to print this
-@@verb@{.@(a)a @@b @@c.(a)} string or @@verb@{+@@'e@?`@!`@{@}\+@} this?
+@@verb@{.@(a)a @@b.@@c.(a)} string or @@verb@{+@@'e?`@{@}!`\+@} this?
@end example
@noindent
@@ -7111,43 +7498,49 @@
@example
How many @verb{|@|}-escapes does one need to print this
-@verb{.(a)a @b @c.} string or these @verb{+@'e?`{}!`\+} this?
+@verb{.(a)a @b.(a)c.} string or @verb{+@'e?`{}!`\+} this?
@end example
This is in contrast to @code{@@samp} (see the previous section),
@code{@@code}, and similar commands; in those cases, the argument is
normal Texinfo text, where the three characters @code{@@@{@}} are
-special. With @code{@@verb}, nothing is special except the delimiter
-character you choose.
+special, as usual. With @code{@@verb}, nothing is special except the
+delimiter character you choose.
+
+The delimiter character itself may appear inside the verbatim text, as
+shown above. As another example, @samp{@@verb@{...(a)}} prints a single
+(fixed-width) period.
It is not reliable to use @code{@@verb} inside other Texinfo
constructs. In particular, it does not work to use @code{@@verb} in
-anything related to cross-referencing, such as section titles or
+anything related to cross referencing, such as section titles or
figure captions.
-@node var
+@node @t{@@var}
@subsection @code{@@var}@{@var{metasyntactic-variable}@}
+
+@anchor{var}@c old name
@findex var
Use the @code{@@var} command to indicate metasyntactic variables. A
-@dfn{metasyntactic variable} is something that stands for another piece of
-text. For example, you should use a metasyntactic variable in the
-documentation of a function to describe the arguments that are passed
-to that function.@refill
-
-Do not use @code{@@var} for the names of particular variables in
-programming languages. These are specific names from a program, so
-@code{@@code} is correct for them (@pxref{code}). For example, the
-XEmacs Lisp variable @code{texinfo-tex-command} is not a metasyntactic
-variable; it is properly formatted using @code{@@code}.
+@dfn{metasyntactic variable} is something that stands for another
+piece of text. For example, you should use a metasyntactic variable
+in the documentation of a function to describe the arguments that are
+passed to that function.
+
+Do not use @code{@@var} for the names of normal variables in computer
+programs. These are specific names, so @code{@@code} is correct for
+them (@t{@@code}). For example, the Emacs Lisp variable
+@code{texinfo-tex-command} is not a metasyntactic variable; it is
+properly formatted using @code{@@code}.
Do not use @code{@@var} for environment variables either; @code{@@env}
is correct for them (see the next section).
-The effect of @code{@@var} in the Info file is to change the case of the
-argument to all upper case. In the printed manual and HTML output, the
-argument is printed in slanted type.
+The effect of @code{@@var} in the Info file is to change the case of
+the argument to all uppercase. In the printed manual and HTML
+output, the argument is output in slanted type.
@need 700
For example,
@@ -7166,12 +7559,12 @@
@noindent
(Note that @code{@@var} may appear inside @code{@@code},
-@code{@@samp}, @code{@@file}, etc.)@refill
-
-Write a metasyntactic variable all in lower case without spaces, and
+@code{@@samp}, @code{@@file}, etc.)
+
+Write a metasyntactic variable all in lowercase without spaces, and
use hyphens to make it more readable. Thus, the Texinfo source for
the illustration of how to begin a Texinfo manual looks like
-this:@refill
+this:
@example
@group
@@ -7193,26 +7586,32 @@
@end example
In some documentation styles, metasyntactic variables are shown with
-angle brackets, for example:@refill
+angle brackets, for example:
@example
@dots{}, type rm <filename>
@end example
@noindent
-However, that is not the style that Texinfo uses. (You can, of
-course, modify the sources to @file{texinfo.tex} and the Info formatting commands
-to output the @code{<@dots{}>} format if you wish.)@refill
-
-
-@node env
+However, that is not the style that Texinfo uses.
+
+@c FIXME add a customization variable? Add an example on how to do that
+@c for HTML?
+@c (You can, of course, modify the sources to @file{texinfo.tex}
+@c and the Info formatting commands
+@c to output the @code{<@dots{}>} format if you wish.)
+
+
+@node @t{@@env}
@subsection @code{@@env}@{@var{environment-variable}@}
+
+@anchor{env}@c old name
@findex env
-Use the @code{@@env} command to indicate environment variables, as used
-by many operating systems, including GNU. Do not use it for
-metasyntactic variables; use @code{@@var} instead (see the previous
-section).
+Use the @code{@@env} command to indicate environment variables, as
+used by many operating systems, including GNU@. Do not use it for
+@emph{meta}syntactic variables; use @code{@@var} for those (see the
+previous section).
@code{@@env} is equivalent to @code{@@code} in its effects.
For example:
@@ -7226,8 +7625,10 @@
@end quotation
-@node file
+@node @t{@@file}
@subsection @code{@@file}@{@var{file-name}@}
+
+@anchor{file}@c old name
@findex file
Use the @code{@@file} command to indicate text that is the name of a
@@ -7235,8 +7636,8 @@
also use the command for file name suffixes. Do not use @code{@@file}
for symbols in a programming language; use @code{@@code}.
-Currently, @code{@@file} is equivalent to @code{@@samp} in its effects.
-For example,@refill
+@code{@@file} is equivalent to @code{code} in its effects. For
+example,
@example
The @@file@{.el(a)} files are in
@@ -7252,13 +7653,15 @@
@end quotation
-@node command
+@node @t{@@command}
@subsection @code{@@command}@{@var{command-name}@}
+
+@anchor{command}@c old name
@findex command
@cindex Command names, indicating
@cindex Program names, indicating
-Use the @code{@@commannd} command to indicate command names, such as
+Use the @code{@@command} command to indicate command names, such as
@command{ls} or @command{cc}.
@code{@@command} is equivalent to @code{@@code} in its effects.
@@ -7274,21 +7677,23 @@
You should write the name of a program in the ordinary text font, rather
than using @code{@@command}, if you regard it as a new English word,
-such as `XEmacs' or `Bison'.
+such as `Emacs' or `Bison'.
When writing an entire shell command invocation, as in @samp{ls -l},
you should use either @code{@@samp} or @code{@@code} at your discretion.
-@node option
+@node @t{@@option}
@subsection @code{@@option}@{@var{option-name}@}
+
+@anchor{option}@c old name
@findex option
Use the @code{@@option} command to indicate a command-line option; for
example, @option{-l} or @option{--version} or
@option{--output=@var{filename}}.
-@code{@@option} is equivalent to @code{@@samp} in its effects.
+@code{@@option} is equivalent to @code{@@code} in its effects.
For example:
@example
@@ -7299,12 +7704,11 @@
The option @option{-l} produces a long listing.
@end quotation
-In tables, putting options inside @code{@@code} produces a
-more pleasing effect.
-
-@node dfn
-@comment node-name, next, previous, up
+
+@node @t{@@dfn}
@subsection @code{@@dfn}@{@var{term}@}
+
+@anchor{dfn}@c old name
@findex dfn
Use the @code{@@dfn} command to identify the introductory or defining
@@ -7313,7 +7717,7 @@
reader ought to know. Mere passing mention of a term for the first
time does not deserve @code{@@dfn}. The command generates italics in
the printed manual, and double quotation marks in the Info file. For
-example:@refill
+example:
@example
Getting rid of a file is called @@dfn@{deleting@} it.
@@ -7331,58 +7735,11 @@
to say explicitly that it is a definition, but it should contain the
information of a definition---it should make the meaning clear.
-@ignore
-@c node ctrl, , cite, Indicating
-@comment node-name, next, previous, up
-@c subsection @code{@@ctrl}@{@var{ctrl-char}@}
-@findex ctrl
-
-The @code{@@ctrl} command is seldom used. It describes an ASCII
-control character by inserting the actual character into the Info
-file.
-
-Usually, in Texinfo, you talk what you type as keyboard entry by
-describing it with @code{@@kbd}: thus, @samp{@@kbd@{C-a@}} for
-@kbd{C-a}. Use @code{@@kbd} in this way when talking about a control
-character that is typed on the keyboard by the user. When talking
-about a control character appearing in a file or a string, do not use
-@code{@@kbd} since the control character is not typed. Also, do not
-use @samp{C-} but spell out @code{control-}, as in @samp{control-a},
-to make it easier for a reader to understand.@refill
-
-@code{@@ctrl} is an idea from the beginnings of Texinfo which may not
-really fit in to the scheme of things. But there may be times when
-you want to use the command. The pattern is
-@code{@@ctrl@{@var{ch}@}}, where @var{ch} is an ASCII character
-whose control-equivalent is wanted. For example, to specify
-@samp{control-f}, you would enter@refill
-
-@example
-@@ctrl@{f@}
-@end example
-
-@noindent
-produces
-
-@quotation
-@ctrl{f}
-@end quotation
-
-In the Info file, this generates the specified control character, output
-literally into the file. This is done so a user can copy the specified
-control character (along with whatever else he or she wants) into another
-XEmacs buffer and use it. Since the `control-h',`control-i', and
-`control-j' characters are formatting characters, they should not be
-indicated with @code{@@ctrl}.(a)refill
-
-In a printed manual, @code{@@ctrl} generates text to describe or
-identify that control character: an uparrow followed by the character
-@var{ch}.(a)refill
-@end ignore
-
-
-@node abbr
+
+@node @t{@@abbr}
@subsection @code{@@abbr}@{@var{abbreviation}[, @var{meaning}]@}
+
+@anchor{abbr}@c old name
@findex abbr
@cindex Abbreviations, tagging
@@ -7397,16 +7754,16 @@
If the abbreviation ends with a lowercase letter and a period, and is
not at the end of a sentence, and has no second argument, remember to
-use the @code{@@.} command (@pxref{Not Ending a
-Sentence}) to get the correct spacing. However, you do not have to
-use @code{@@.} within the abbreviation itself; Texinfo automatically
-assumes periods within the abbreviation do not end a sentence.
-
-@cindex <abbr> and <abbrev> tags
+use the @code{@@.} command (@pxref{Ending a Sentence}) to get the
+correct spacing. However, you do not have to use @code{@@.} within
+the abbreviation itself; Texinfo automatically assumes periods within
+the abbreviation do not end a sentence.
+
+@cindex @code{<abbr>} and @code{<abbrev>} tags
In @TeX{} and in the Info output, the first argument is printed as-is;
if the second argument is present, it is printed in parentheses after
-the abbreviation. In HTML and XML, the @code{<abbr>} tag is
-used; in Docbook, the @code{<abbrev>} tag is used. For instance:
+the abbreviation. In HTML the @code{<abbr>} tag is used; in Docbook,
+the @code{<abbrev>} tag is used. For instance:
@example
@@abbr@{Comput. J., Computer Journal@}
@@ -7423,17 +7780,20 @@
more on the usage of these two commands.
-@node acronym
+@node @t{@@acronym}
@subsection @code{@@acronym}@{@var{acronym}[, @var{meaning}]@}
+
+@anchor{acronym}@c old name
@findex acronym
@cindex NASA, as acronym
@cindex Acronyms, tagging
-Use the @code{@@acronym} command for abbreviations written in all
-capital letters, such as `@acronym{NASA}'. The abbreviation is given as
-the single argument in braces, as in @samp{@@acronym@{NASA@}}. As
-a matter of style, or for particular acronyms, you may prefer to
-use periods, as in @samp{@@acronym@{N.A.S.A.(a)}}.
+You can use the @code{@@acronym} command for abbreviations written in
+all capital letters, such as `@acronym{NASA}'. The abbreviation is
+given as the single argument in braces, as in
+@samp{@@acronym@{NASA@}}. As a matter of style, or for particular
+acronyms, you may prefer to use periods, as in
+@samp{@@acronym@{N.A.S.A.(a)}}.
@code{@@acronym} accepts an optional second argument, intended to be
used for the meaning of the acronym.
@@ -7442,12 +7802,11 @@
argument, remember to use the @code{@@.} or similar command
(@pxref{Ending a Sentence}) to get the correct spacing.
-@cindex <acronym> tag
+@cindex @code{<acronym>} tag
In @TeX{}, the acronym is printed in slightly smaller font. In the
Info output, the argument is printed as-is. In either format, if the
second argument is present, it is printed in parentheses after the
-acronym. In HTML, Docbook, and XML, the @code{<acronym>} tag is
-used.
+acronym. In HTML and Docbook the @code{<acronym>} tag is used.
For instance (since GNU is a recursive acronym, we use
@code{@@acronym} recursively):
@@ -7474,9 +7833,9 @@
@itemize @minus
@item
-In standard English usage, acronyms are a subset of abbreviations:
-they include pronounceable words like `@acronym{NATO}', `radar', and
-`snafu', and some sources also include syllable acronyms like
+In common English usage, acronyms are a subset of abbreviations: they
+include pronounceable words like `@acronym{NATO}', `radar', and
+`snafu'; some sources also include syllable acronyms like
`Usenet', hybrids like `@acronym{SIGGRAPH}', and unpronounceable
initialisms like `@acronym{FBI}'.
@@ -7493,25 +7852,35 @@
acronyms.
@item
-It's not essential to use either of these commands for all
+It usually turns out to be quite difficult and/or time-consuming to
+consistently use @code{@@acronym} for all sequences of uppercase
+letters. Furthermore, it looks strange for some acronyms to be in the
+normal font size and others to be smaller. Thus, a simpler approach
+you may wish to consider is to avoid @code{@@acronym} and just typeset
+everything as normal text in all capitals: @samp{GNU}, producing the
+output `GNU'.
+
+@item
+In general, it's not essential to use either of these commands for all
abbreviations; use your judgment. Text is perfectly readable without
them.
-
-@end itemize
-
-
-@node indicateurl
+@end itemize
+
+
+@node @t{@@indicateurl}
@subsection @code{@@indicateurl}@{@var{uniform-resource-locator}@}
+
+@anchor{indicateurl}@c old name
@findex indicateurl
@cindex Uniform resource locator, indicating
@cindex URL, indicating
Use the @code{@@indicateurl} command to indicate a uniform resource
-locator on the World Wide Web. This is analogous to @code{@@file},
-@code{@@var}, etc., and is purely for markup purposes. It does not
-produce a link you can follow in HTML output (use the @code{@@uref}
-command for that, @pxref{uref,, @code{@@uref}}). It is useful for
-url's which do not actually exist. For example:
+locator on the World Wide Web. This is purely for markup purposes and
+does not produce a link you can follow (use the @code{@@url} or
+@code{@@uref} command for that, @pxref{@t{@@url}}).
+@code{@@indicateurl} is useful for urls which do not actually exist.
+For example:
@example
For example, the url might be @@indicateurl@{http://example.org/path@}.
@@ -7523,9 +7892,14 @@
For example, the url might be @indicateurl{http://example.org/path}.
@end display
-
-@node email
+The output from @code{@@indicateurl} is more or less like that of
+@code{@@samp} (@pxref{@t{@@samp}}).
+
+
+@node @t{@@email}
@subsection @code{@@email}@{@var{email-address}[, @var{displayed-text}]@}
+
+@anchor{email}@c old name
@findex email
Use the @code{@@email} command to indicate an electronic mail address.
@@ -7542,7 +7916,9 @@
Send bug reports to @@email@{bug-texinfo@@@@gnu.org(a)},
suggestions to the @@email@{bug-texinfo@@@(a)gnu.org, same place@}.
@end example
+
@noindent produces
+
@display
Send bug reports to @email{bug-texinfo@(a)gnu.org},
suggestions to the @email{bug-texinfo@(a)gnu.org, same place}.
@@ -7553,69 +7929,63 @@
@section Emphasizing Text
@cindex Emphasizing text
-Usually, Texinfo changes the font to mark words in the text according to
-what category the words belong to; an example is the @code{@@code} command.
-Most often, this is the best way to mark words.
-However, sometimes you will want to emphasize text without indicating a
+Usually, Texinfo changes the font to mark words in the text according
+to the category the words belong to; an example is the @code{@@code}
+command. Most often, this is the best way to mark words. However,
+sometimes you will want to emphasize text without indicating a
category. Texinfo has two commands to do this. Also, Texinfo has
-several commands that specify the font in which @TeX{} will typeset
-text. These commands have no effect on Info and only one of them,
-the @code{@@r} command, has any regular use.@refill
-
-@menu
-* emph & strong:: How to emphasize text in Texinfo.
+several commands that specify the font in which text will be output.
+These commands have no effect in Info and only one of them, the
+@code{@@r} command, has any regular use.
+
+@menu
+* @t{@@emph @@strong}:: How to emphasize text in Texinfo.
* Smallcaps:: How to use the small caps font.
* Fonts:: Various font commands for printed output.
@end menu
-@node emph & strong
+
+@node @t{@@emph @@strong}
@subsection @code{@@emph}@{@var{text}@} and @code{@@strong}@{@var{text}@}
-@cindex Emphasizing text, font for
+
+@anchor{emph & strong}@c oldname
@findex emph
@findex strong
+@cindex Emphasizing text, font for
The @code{@@emph} and @code{@@strong} commands are for emphasis;
@code{@@strong} is stronger. In printed output, @code{@@emph} produces
@emph{italics} and @code{@@strong} produces @strong{bold}.
+In the Info output, @code{@@emph} surrounds the text with underscores
+(@samp{_}), and @code{@@strong} puts asterisks around the text.
For example,
@example
@group
-@@strong@{Caution:@} @@samp@{rm * .[^.]*@}
-removes @@emph@{all@} files in the directory.
-@end group
-@end example
-
-@noindent
-produces the following in printed output and HTML:
+@@strong@{Caution:@} @@samp@{rm *@}
+removes @@emph@{all@} normal files.
+@end group
+@end example
+
+@noindent
+produces the following:
@quotation
@strong{Caution}: @samp{rm * .[^.]*}
-removes @emph{all} files in the directory.
-@end quotation
-
-@noindent
-and the following in Info:
-
-@example
-*Caution:* `rm * .[^.]*' removes _all_
-files in the directory.
-@end example
+removes @emph{all} normal files.
+@end quotation
The @code{@@strong} command is seldom used except to mark what is, in
effect, a typographical element, such as the word `Caution' in the
preceding example.
-In the Info output, @code{@@emph} surrounds the text with underscores
-(@samp{_}), and @code{@@strong} puts asterisks around the text.
-
@quotation Caution
-Do not use @code{@@strong} with the word @samp{Note}; Info will
-mistake the combination for a cross reference. (It's usually
-redundant, anyway.) Use a phrase such as @strong{Please notice} or
-@strong{Caution} instead, or the optional argument to
-@code{@@quotation}---@samp{Note} is allowable there.
+Do not use @code{@@strong} with the word @samp{Note} followed by a
+space; Info will mistake the combination for a cross reference. Use a
+phrase such as @strong{Please notice} or @strong{Caution} instead, or
+the optional argument to @code{@@quotation}---@samp{Note} is allowable
+there.
@end quotation
@@ -7626,46 +7996,39 @@
Use the @samp{@@sc} command to set text in @sc{a small caps font}
(where possible). Write the text you want to be in small caps between
-braces in lower case, like this:
-
-@example
-Richard @@sc@{Stallman@} founded @@acronym@{GNU@}.
+braces in lowercase, like this:
+
+@example
+Richard @@sc@{Stallman@} commenc@'{e} GNU.
@end example
@noindent
This produces:
@display
-Richard @sc{Stallman} founded @acronym{GNU}.
+Richard @sc{Stallman} commenc@'{e} GNU.
@end display
-As shown here, we recommend using @code{@@acronym} for actual
-acronyms (@pxref{acronym}), and reserving @code{@@sc} for special
-cases where you want small caps. The output is not the same
-(@code{@@acronym} prints in a smaller text font, not the small caps
-font), but more importantly it describes the actual text more
-accurately.
-
-Family names are one case where small capitals are sometimes desirable,
-also as shown here.
-
-@cindex <small> tag
+As shown here, we recommend reserving @code{@@sc} for special cases
+where you want typographic small caps; family names are one such,
+especially in languages other than English, though there are no
+hard-and-fast rules about such things.
+
+@cindex @code{<small>} tag
@TeX{} typesets any uppercase letters between the braces of an
@code{@@sc} command in full-size capitals; only lowercase letters are
printed in the small caps font. In the Info output, the argument to
-@code{@@sc} is printed in all upper case. In HTML, the argument is
+@code{@@sc} is printed in all uppercase. In HTML, the argument is
uppercased and the output marked with the @code{<small>} tag to reduce
-the font size.
-
-Since it's redundant to mark all-uppercase text with @code{@@sc},
-@command{makeinfo} warns about such usage.
-
-We recommend using regular mixed case wherever possible.
+the font size, since HTML cannot easily represent true small caps.
+
+Overall, we recommend using standard upper- and lowercase letters
+wherever possible.
@node Fonts
-@subsection Fonts for Printing, Not Info
-@cindex Fonts for printing, not Info
+@subsection Fonts for Printing
+@cindex Fonts for printing
@findex fonttextsize
@cindex Font size, reducing
@@ -7673,9 +8036,9 @@
@cindex Smaller fonts
Texinfo provides one command to change the size of the main body font
in the @TeX{} output for a document: @code{@@fonttextsize}. It has no
-effect at all in other output. It takes a single argument on the
-remainder of the line, which must be either @samp{10} or @samp{11}.
-For example:
+effect in other output. It takes a single argument on the remainder
+of the line, which must be either @samp{10} or @samp{11}. For
+example:
@example
@@fonttextsize 10
@@ -7685,19 +8048,18 @@
The effect is to reduce the body font to a 10@dmn{pt} size (the
default is 11@dmn{pt}). Fonts for other elements, such as sections
and chapters, are reduced accordingly. This should only be used in
-conjunction with @code{@@smallbook} (@pxref{smallbook,,Printing
-``Small'' Books}) or similar, since 10@dmn{pt} fonts on standard paper
-(8.5x11 or A4) are too small. One reason to use this command is to
-save pages, and hence printing cost, for physical books.
+conjunction with @code{@@smallbook} (@pxref{@t{@@smallbook}}) or
+similar, since 10@dmn{pt} fonts on standard paper (8.5x11 or A4) are
+too small. One reason to use this command is to save pages, and hence
+printing cost, for physical books.
Texinfo does not at present have commands to switch the font family
to use, or more general size-changing commands.
-@cindex Styles, font
-Texinfo also provides a number of font commands that specify font changes
-in the printed manual and (where possible) in the HTML output, but
-have no effect in the Info file. All the commands apply to an
-argument that follows, surrounded by braces.
+Texinfo also provides a number of font commands that specify font
+changes in the printed manual and (where possible) in the HTML output.
+They have no effect in Info. All the commands apply to a following
+argument surrounded by braces.
@table @code
@item @@b
@@ -7739,14 +8101,13 @@
(The commands with longer names were invented much later than the
others, at which time it did not seem desirable to use very short
-names for such an infrequently needed feature.)
+names for such infrequently needed features.)
@cindex <lineannotation> Docbook tag
-Only the @code{@@r} command has much use: in example-like
-environments, you can use the @code{@@r} command to write comments in
-the standard roman font instead of the fixed-width font. This looks
-better in printed output, and produces a @code{<lineannotation>} tag
-in Docbook output.
+The @code{@@r} command can be useful in example-like environments, to
+write comments in the standard roman font instead of the fixed-width
+font. This looks better in printed output, and produces a
+@code{<lineannotation>} tag in Docbook output.
For example,
@@ -7765,9 +8126,18 @@
(+ 2 2) ; @r{Add two plus two.}
@end lisp
-In general, you should avoid using the other font commands. Some of
-them are only useful when documenting functionality of specific font
-effects, such as in @TeX{} and related packages.
+The @code{@@t} command can occasionally be useful to produce output in
+a typewriter font where that is supported (e.g., HTML and PDF), but no
+distinction is needed in Info or plain text: @code{@@t@{foo@}}
+produces @t{foo}, cf. @code{@@code@{foo@}} producing @code{foo}.
+
+For example, we use @code{@@t} in the @code{@@node} commands for this
+manual to specify the Texinfo command names, because the quotes which
+@code{@@code} outputs look extraneous in that particular context.
+
+In general, the other font commands are unlikely to be useful; they
+exist primarily to make it possible to document the functionality of
+specific font effects, such as in @TeX{} and related packages.
@node Quotations and Examples
@@ -7781,45 +8151,55 @@
In Texinfo, you always begin a quotation or example by writing an
@@-command at the beginning of a line by itself, and end it by writing
an @code{@@end} command that is also at the beginning of a line by
-itself. For instance, you begin an example by writing @code{@@example}
-by itself at the beginning of a line and end the example by writing
-@code{@@end example} on a line by itself, at the beginning of that
-line, and with only one space between the @code{@@end} and the
-@code{example}.
+itself. For instance, you begin an example by writing
+@code{@@example} by itself at the beginning of a line and end the
+example by writing @code{@@end example} on a line by itself, at the
+beginning of that line, and with only one space between the
+@code{@@end} and the @code{example}.
@menu
* Block Enclosing Commands:: Different constructs for different purposes.
-* quotation:: Writing a quotation.
-* example:: Writing an example in a fixed-width font.
-* verbatim:: Writing a verbatim example.
-* verbatiminclude:: Including a file verbatim.
-* lisp:: Illustrating Lisp code.
-* small:: Examples in a smaller font.
-* display:: Writing an example in the current font.
-* format:: Writing an example without narrowed margins.
-* exdent:: Undo indentation on a line.
-* flushleft & flushright:: Pushing text flush left or flush right.
-* noindent:: Preventing paragraph indentation.
-* indent:: Forcing paragraph indentation.
-* cartouche:: Drawing rounded rectangles around examples.
+* @t{@@quotation}:: Writing a quotation.
+* @t{@@indentedblock}:: Block of text indented on left.
+* @t{@@example}:: Writing an example in a fixed-width font.
+* @t{@@verbatim}:: Writing a verbatim example.
+* @t{@@verbatiminclude}:: Including a file verbatim.
+* @t{@@lisp}:: Illustrating Lisp code.
+* @t{@@small@dots{}}:: Examples in a smaller font.
+* @t{@@display}:: Writing an example in the current font.
+* @t{@@format}:: Writing an example without narrowed margins.
+* @t{@@exdent}:: Undo indentation on a line.
+* @t{@@flushleft @@flushright}:: Pushing text flush left or flush right.
+* @t{@@raggedright}:: Avoiding justification on the right.
+* @t{@@noindent}:: Preventing paragraph indentation.
+* @t{@@indent}:: Forcing paragraph indentation.
+* @t{@@cartouche}:: Drawing rounded rectangles around text.
@end menu
@node Block Enclosing Commands
@section Block Enclosing Commands
-Here are commands for quotations and examples, explained further in the
-following sections:
+Here is a summary of commands that enclose blocks of text, also known
+as @dfn{environments}. They're explained further in the following
+sections.
@table @code
@item @@quotation
Indicate text that is quoted. The text is filled, indented (from both
margins), and printed in a roman font by default.
+@item @@indentedblock
+Like @code{@@quotation}, but the text is indented only on the left.
+
@item @@example
Illustrate code, commands, and the like. The text is printed
in a fixed-width font, and indented but not filled.
+@item @@lisp
+Like @code{@@example}, but specifically for illustrating Lisp code. The
+text is printed in a fixed-width font, and indented but not filled.
+
@item @@verbatim
Mark a piece of text that is to be printed verbatim; no character
substitutions are made and all commands are ignored, until the next
@@ -7827,64 +8207,67 @@
and not indented or filled. Extra spaces and blank lines are
significant, and tabs are expanded.
-@item @@smallexample
-Same as @code{@@example}, except that in @TeX{} this command typesets
-text in a smaller font.
-
-@item @@lisp
-Like @code{@@example}, but specifically for illustrating Lisp code. The
-text is printed in a fixed-width font, and indented but not filled.
-
-@item @@smalllisp
-Is to @code{@@lisp} as @code{@@smallexample} is to @code{@@example}.
-
@item @@display
Display illustrative text. The text is indented but not filled, and
-no font is selected (so, by default, the font is roman).@refill
-
-@item @@smalldisplay
-Is to @code{@@display} as @code{@@smallexample} is to @code{@@example}.
+no font is selected (so, by default, the font is roman).
@item @@format
-Like @code{@@display} (the text is not filled and no font is selected),
-but the text is not indented.
-
-@item @@smallformat
-Is to @code{@@format} as @code{@@smallexample} is to @code{@@example}.
+Like @code{@@display} (the text is not filled and no font is
+selected), but the text is not indented.
+
+@item @@smallquotation
+@itemx @@smallindentedblock
+@itemx @@smallexample
+@itemx @@smalllisp
+@itemx @@smalldisplay
+@itemx @@smallformat
+These @code{@@small...} commands are just like their non-small
+counterparts, except that they output text in a smaller font size,
+where possible.
+
+@item @@flushleft
+@itemx @@flushright
+Text is not filled, but is set flush with the left or right margin,
+respectively.
+
+@item @@raggedright
+Text is filled, but only justified on the left, leaving the right
+margin ragged.
+
+@item @@cartouche
+Highlight text, often an example or quotation, by drawing a box with
+rounded corners around it.
@end table
The @code{@@exdent} command is used within the above constructs to
undo the indentation of a line.
-The @code{@@flushleft} and @code{@@flushright} commands are used to line
-up the left or right margins of unfilled text.@refill
-
The @code{@@noindent} command may be used after one of the above
-constructs to prevent the following text from being indented as a new
-paragraph.
-
-You can use the @code{@@cartouche} environment around one of the above
-constructs to highlight the example or quotation by drawing a box with
-rounded corners around it. @xref{cartouche, , Drawing Cartouches Around
-Examples}.
-
-
-@node quotation
-@section @code{@@quotation}: Block quotations
+constructs (or anywhere) to prevent the following text from being
+indented as a new paragraph.
+
+
+@node @t{@@quotation}
+@section @code{@@quotation}: Block Quotations
+@anchor{quotation}@c old name
+
@cindex Quotations
@findex quotation
-The text of a quotation is processed normally (regular font, text is
-filled) except that:
-
-@itemize @bullet
-@item
-the margins are closer to the center of the page, so the whole of the
-quotation is indented;
-
-@item
-and the first lines of paragraphs are indented no more than other lines.
-
+The text of a quotation is processed like normal text (regular font,
+text is filled) except that:
+
+@itemize @bullet
+@item
+both the left and right margins are closer to the center of the page,
+so the whole of the quotation is indented;
+
+@item
+the first lines of paragraphs are indented no more than other lines; and
+
+@item
+an @code{@@author} command may be given to specify the author of the
+quotation.
@end itemize
@quotation
@@ -7920,24 +8303,93 @@
a foo.
@end quotation
-If the @code{@@quotation} argument is exactly one of these words:
+If the @code{@@quotation} argument is one of these English words
+(case-insensitive):
@example
Caution Important Note Tip Warning
@end example
-@cindex <note> Docbook tag
-@cindex <blockquote> HTML tag
+@cindex @code{<caution>} Docbook tag
+@cindex @code{<important>} Docbook tag
+@cindex @code{<note>} Docbook tag
+@cindex @code{<tip>} Docbook tag
+@cindex @code{<warning>} Docbook tag
+@cindex @code{<blockquote>} HTML tag
@noindent then the Docbook output uses corresponding special tags
-(@code{<note>}, etc.) instead of the default @code{<blockquote>}.
+(@code{<note>}, etc.)@: instead of the default @code{<blockquote>}.
HTML output always uses @code{<blockquote>}.
-
-@node example
+If the author of the quotation is specified in the @code{@@quotation}
+block with the @code{@@author} command, a line with the author name is
+displayed after the quotation:
+
+@example
+@@quotation
+People sometimes ask me if it is a sin in the Church of Emacs to use
+vi. Using a free version of vi is not a sin; it is a penance. So happy
+hacking.
+
+@@author Richard Stallman
+@@end quotation
+@end example
+
+@noindent
+produces
+
+@quotation
+People sometimes ask me if it is a sin in the Church of Emacs to use
+vi. Using a free version of vi is not a sin; it is a penance. So happy
+hacking.
+
+@author Richard Stallman
+@end quotation
+
+@findex smallquotation
+Texinfo also provides a command @code{@@smallquotation}, which is just
+like @code{@@quotation} but uses a smaller font size where possible.
+@xref{@t{@@small@dots{}}}.
+
+
+@node @t{@@indentedblock}
+@section @code{@@indentedblock}: Indented text blocks
+@cindex Indented text block
+@findex indentedblock
+
+The @code{@@indentedblock} environment is similar to
+@code{@@quotation}, except that text is only indented on the left (and
+there is no optional argument for an author). Thus, the text font
+remains unchanged, and text is gathered and filled as usual, but the
+left margin is increased. For example:
+
+@indentedblock
+This is an example of text written between an @code{@@indentedblock}
+command and an @code{@@end indentedblock} command. The
+@code{@@indentedblock} environment can contain any text or other
+commands desired.
+@end indentedblock
+
+This is written in the Texinfo source as:
+
+@example
+@@indentedblock
+This is an example ...
+@@end indentedblock
+@end example
+
+@findex smallindentedblock
+Texinfo also provides a command @code{@@smallindentedblock}, which is
+just like @code{@@indentedblock} but uses a smaller font size where
+possible. @xref{@t{@@small@dots{}}}.
+
+
+@node @t{@@example}
@section @code{@@example}: Example Text
+
+@anchor{example}@c old name
+@findex example
@cindex Examples, formatting them
@cindex Formatting examples
-@findex example
The @code{@@example} environment is used to indicate an example that
is not part of the running text, such as computer input or output.
@@ -7955,7 +8407,7 @@
@item The output uses a fixed-width font.
@item Texinfo commands @emph{are} expanded; if you want the output to
be the input verbatim, use the @code{@@verbatim} environment instead
-(@pxref{verbatim,,@code{@@verbatim}}).
+(@pxref{@t{@@verbatim}}).
@end itemize
For example,
@@ -7993,18 +8445,20 @@
paragraph, and the text that continues afterwards should not be
indented, as in the example above. The @code{@@noindent} command
prevents a piece of text from being indented as if it were a new
-paragraph (@pxref{noindent,,@code{@@noindent}}.
+paragraph (@pxref{@t{@@noindent}}.
If you want to embed code fragments within sentences, instead of
displaying them, use the @code{@@code} command or its relatives
-(@pxref{code,,@code{@@code}}).
+(@pxref{@t{@@code}}).
If you wish to write a ``comment'' on a line of an example in the
normal roman font, you can use the @code{@@r} command (@pxref{Fonts}).
-@node verbatim
+@node @t{@@verbatim}
@section @code{@@verbatim}: Literal Text
+
+@anchor{verbatim}@c old name
@findex verbatim
@cindex Verbatim environment
@@ -8019,11 +8473,11 @@
significant, including tabs. In the printed manual, the text is
typeset in a fixed-width font, and not indented or filled.
-Write a @code{@@verbatim} command at the beginning of a line by itself.
-This line will disappear from the output. Mark the end of the verbatim
-block with a @code{@@end verbatim} command, also written at the
-beginning of a line by itself. The @code{@@end verbatim} will also
-disappear from the output.
+Write an @code{@@verbatim} command at the beginning of a line by
+itself. This line will disappear from the output. Mark the end of
+the verbatim block with an @code{@@end verbatim} command, also written
+at the beginning of a line by itself. The @code{@@end verbatim} will
+also disappear from the output.
For example:
@c oops, got to trick this a bit: can't use @end verbatim inside @verbatim
@@ -8071,11 +8525,13 @@
@code{@@verbatim} inside other Texinfo constructs.
-@node verbatiminclude
+@node @t{@@verbatiminclude}
@section @code{@@verbatiminclude} @var{file}: Include a File Verbatim
+
+@anchor{verbatiminclude}@c old name
+@findex verbatiminclude
@cindex Verbatim, include file
@cindex Including a file verbatim
-@findex verbatiminclude
You can include the exact contents of a file in the document with the
@code{@@verbatiminclude} command:
@@ -8085,11 +8541,11 @@
@end example
The contents of @var{filename} is printed in a verbatim environment
-(@pxref{verbatim,,@code{@@verbatim}}). Generally, the file is printed
-exactly as it is, with all special characters and white space
-retained. No indentation is added; if you want indentation, enclose
-the @code{@@verbatiminclude} within @code{@@example}
-(@pxref{example,,@code{@@example}}).
+(@pxref{@t{@@verbatim}}). Generally, the file is printed exactly
+as it is, with all special characters and white space retained. No
+indentation is added; if you want indentation, enclose the
+@code{@@verbatiminclude} within @code{@@example}
+(@pxref{@t{@@example}}).
The name of the file is taken literally, with a single exception:
@code{@@value@{@var{var}@}} references are expanded. This makes it
@@ -8107,8 +8563,10 @@
the end of the previous section on @code{@@verbatim}.
-@node lisp
+@node @t{@@lisp}
@section @code{@@lisp}: Marking a Lisp Example
+
+@anchor{lisp}@c old name
@findex lisp
@cindex Lisp example
@@ -8131,35 +8589,42 @@
itself.
-@node small
+@node @t{@@small@dots{}}
@section @code{@@small@dots{}} Block Commands
-@cindex Small examples
-@cindex Examples in smaller fonts
-@cindex Lisp examples in smaller fonts
-@findex smalldisplay
+
+@anchor{small}@c old name
@findex smallexample
@findex smallformat
@findex smalllisp
-
-In addition to the regular @code{@@example} and @code{@@lisp} commands,
+@findex smallquotation
+@cindex Small examples
+@cindex Examples in smaller fonts
+@cindex Quotations in smaller fonts
+@cindex Lisp examples in smaller fonts
+
+In addition to the regular @code{@@example} and similar commands,
Texinfo has ``small'' example-style commands. These are
-@code{@@smalldisplay}, @code{@@smallexample}, @code{@@smallformat}, and
-@code{@@smalllisp}.
-
-In Info, the @code{@@small@dots{}} commands are equivalent to their
-non-small companion commands.
+@code{@@smallquotation}, @code{@@smallindentedblock},
+@code{@@smalldisplay}, @code{@@smallexample}, @code{@@smallformat},
+and @code{@@smalllisp}.
+
+In Info output, the @code{@@small@dots{}} commands are equivalent to
+their non-small companion commands.
In @TeX{}, however, the @code{@@small@dots{}} commands typeset text in
-a smaller font than the non-small example commands. Consequently,
-many examples containing long lines fit on a page without needing to
-be shortened.
+a smaller font than the non-small example commands. Thus, for
+instance, code examples can contain longer lines and still fit on a
+page without needing to be rewritten.
+
+A smaller font size is also requested in HTML output, and (as usual)
+retained in the Texinfo@tie{}XML transliteration.
Mark the end of an @code{@@small@dots{}} block with a corresponding
@code{@@end small@dots{}}. For example, pair @code{@@smallexample} with
@code{@@end smallexample}.
-Here is an example of the font used by the @code{@@small@dots{}}
-commands (in Info, the output will be the same as usual):
+Here is an example of the font used by the @code{@@smallexample}
+command (in Info, the output will be the same as usual):
@smallexample
@dots{} to make sure that you have the freedom to
@@ -8170,27 +8635,28 @@
programs; and that you know you can do these things.
@end smallexample
-The @code{@@small@dots{}} commands make it easier to prepare manuals
-without forcing you to edit examples by hand to fit them onto narrower
-pages.
-
-As a general rule, a printed document looks much better if you use
-only one of (for instance) @code{@@example} or @code{@@smallexample}
+The @code{@@small@dots{}} commands use the same font style as their
+normal counterparts: @code{@@smallexample} and @code{@@smalllisp} use
+a fixed-width font, and everything else uses the regular font.
+They also have the same behavior in other respects---whether filling
+is done and whether margins are narrowed.
+
+As a general rule, a printed document looks better if you use only one
+of (for instance) @code{@@example} or @code{@@smallexample}
consistently within a chapter.
-@node display
-@section @code{@@display} and @code{@@smalldisplay}
+@node @t{@@display}
+@section @code{@@display}: Examples Using the Text Font
+
+@anchor{display}@c old name
+@findex display
@cindex Display formatting
-@findex display
-
-The @code{@@display} command begins a kind of example, where each line
-of input produces a line of output, and the output is indented. It is
-thus like the @code{@@example} command except that, in a printed
-manual, @code{@@display} does not select the fixed-width font. In
-fact, it does not specify the font at all, so that the text appears in
-the same font it would have appeared in without the @code{@@display}
-command.
+
+The @code{@@display} command begins another kind of environment, where
+the font is left unchanged, not switched to typewriter as with
+@code{@@example}. Each line of input still produces a line of output,
+and the output is still indented.
@display
This is an example of text written between an @code{@@display} command
@@ -8199,23 +8665,26 @@
@end display
@findex smalldisplay
-Texinfo also provides a command @code{@@smalldisplay}, which is like
-@code{@@display} but uses a smaller font in @code{@@smallbook} format.
-@xref{small}.
-
-The @code{@@table} command (@pxref{table}) does not work inside
-@code{@@display}. Since @code{@@display} is line-oriented, it doesn't
-make sense to use them together. If you want to indent a table, try
-@code{@@quotation} (@pxref{quotation}).
-
-
-@node format
-@section @code{@@format} and @code{@@smallformat}
+Texinfo also provides the environment @code{@@smalldisplay}, which is
+like @code{@@display} but uses a smaller font size.
+@xref{@t{@@small@dots{}}}.
+
+The @code{@@table} command (@pxref{@t{@@table}}) is not supported
+inside @code{@@display}. Since @code{@@display} is line-oriented, it
+doesn't make sense to use them together. If you want to indent a
+table, try @code{@@quotation} (@pxref{@t{@@quotation}}) or
+@code{@@indentedblock} (@pxref{@t{@@indentedblock}}).
+
+
+@node @t{@@format}
+@section @code{@@format}: Examples Using the Full Line Width
+
+@anchor{format}@c old name
@findex format
-The @code{@@format} command is similar to @code{@@example} except
-that, in the printed manual, @code{@@format} does not select the
-fixed-width font and does not narrow the margins.
+The @code{@@format} command is similar to @code{@@display}, except it
+leaves the text unindented. Like @code{@@display}, it does not select
+the fixed-width font.
@format
This is an example of text written between an @code{@@format} command
@@ -8225,24 +8694,25 @@
@end format
@findex smallformat
-Texinfo also provides a command @code{@@smallformat}, which is like
-@code{@@format} but uses a smaller font in @code{@@smallbook} format.
-@xref{small}.
-
-
-
-@node exdent
+Texinfo also provides the environment @code{@@smallformat}, which is
+like @code{@@format} but uses a smaller font size.
+@xref{@t{@@small@dots{}}}.
+
+
+@node @t{@@exdent}
@section @code{@@exdent}: Undoing a Line's Indentation
+
+@anchor{exdent}@c old name
+@findex exdent
@cindex Indentation undoing
-@findex exdent
The @code{@@exdent} command removes any indentation a line might have.
The command is written at the beginning of a line and applies only to
the text that follows the command that is on the same line. Do not use
braces around the text. In a printed manual, the text on an
-@code{@@exdent} line is printed in the roman font.@refill
-
-@code{@@exdent} is usually used within examples. Thus,@refill
+@code{@@exdent} line is printed in the roman font.
+
+@code{@@exdent} is usually used within examples. Thus,
@example
@group
@@ -8267,24 +8737,28 @@
@end group
@end example
-In practice, the @code{@@exdent} command is rarely used.
-Usually, you un-indent text by ending the example and
-returning the page to its normal width.@refill
-
-
-@node flushleft & flushright
+In practice, the @code{@@exdent} command is rarely used. Usually, you
+un-indent text by ending the example and returning the page to its
+normal width.
+
+@code{@@exdent} has no effect in HTML output.
+
+
+@node @t{@@flushleft @@flushright}
@section @code{@@flushleft} and @code{@@flushright}
+
+@anchor{flushleft & flushright}@c old name
@findex flushleft
@findex flushright
-@cindex Ragged right
-@cindex Ragged left
+@cindex Ragged right, without filling
+@cindex Ragged left, without filling
The @code{@@flushleft} and @code{@@flushright} commands line up the
ends of lines on the left and right margins of a page,
but do not fill the text. The commands are written on lines of their
own, without braces. The @code{@@flushleft} and @code{@@flushright}
commands are ended by @code{@@end flushleft} and @code{@@end
-flushright} commands on lines of their own.@refill
+flushright} commands on lines of their own.
@need 1500
For example,
@@ -8334,19 +8808,64 @@
@end flushright
-@node noindent
+@node @t{@@raggedright}
+@section @code{@@raggedright}: Ragged Right Text
+
+@anchor{raggedright}@c old name
+@findex raggedright
+@cindex Ragged right, with filling
+
+The @code{@@raggedright} fills text as usual, but the text is only
+justified on the left; the right margin is ragged. The command is
+written on a line of its own, without braces. The
+@code{@@raggedright} command is ended by @code{@@end raggedright} on a
+line of its own. This command has no effect in Info and HTML output,
+where text is always set ragged right.
+
+The @code{@@raggedright} command can be useful with paragraphs
+containing lists of commands with long names, when it is known in
+advance that justifying the text on both margins will make the
+paragraph look bad.
+
+For example,
+
+@example
+@group
+@@raggedright
+Commands for double and single angle quotation marks:
+@@code@{@@@@guillemetleft@@@{@@@}@}, @@code@{@@@@guillemetright@@@{@@@}@},
+@@code@{@@@@guillemotleft@@@{@@@}@}, @@code@{@@@@guillemotright@@@{@@@}@},
+@@code@{@@@@guilsinglleft@@@{@@@}@}, @@code@{@@@@guilsinglright@@@{@@@}@}.
+@@end raggedright
+@end group
+@end example
+
+@noindent
+produces
+
+@raggedright
+Commands for double and single angle quotation marks:
+@code{@@guillemetleft@{@}}, @code{@@guillemetright@{@}},
+@code{@@guillemotleft@{@}}, @code{@@guillemotright@{@}},
+@code{@@guilsinglleft@{@}}, @code{@@guilsinglright@{@}}.
+@end raggedright
+
+
+@node @t{@@noindent}
@section @code{@@noindent}: Omitting Indentation
+
+@anchor{noindent}@c old name
+@findex noindent
@cindex Omitting indentation
@cindex Suppressing indentation
@cindex Indentation, omitting
-@findex noindent
An example or other inclusion can break a paragraph into segments.
Ordinarily, the formatters indent text that follows an example as a new
paragraph. You can prevent this on a case-by-case basis by writing
@code{@@noindent} at the beginning of a line, preceding the continuation
text. You can also disable indentation for all paragraphs globally with
-@code{@@paragraphindent} (@pxref{paragraphindent, Paragraph Indenting}).
+@code{@@paragraphindent} (@pxref{@t{@@paragraphindent}}).
It is best to write @code{@@noindent} on a line by itself, since in most
environments, spaces following the command will not be ignored. It's ok
@@ -8398,12 +8917,14 @@
paragraphs (@pxref{Command Syntax}).
-@node indent
+@node @t{@@indent}
@section @code{@@indent}: Forcing Indentation
+
+@anchor{indent}@c old name
+@findex indent
@cindex Forcing indentation
@cindex Inserting indentation
@cindex Indentation, forcing
-@findex indent
@indent
To complement the @code{@@noindent} command (see the previous
@@ -8411,7 +8932,7 @@
paragraph to be indented. This paragraph, for instance, is indented
using an @code{@@indent} command. The first paragraph of a section is
the most likely place to use @code{@@indent}, to override the normal
-behavior of no indentation there (@pxref{paragraphindent}).
+behavior of no indentation there (@pxref{@t{@@paragraphindent}}).
It is best to write @code{@@indent} on a line by itself, since in most
environments, spaces following the command will not be ignored. The
@@ -8426,16 +8947,17 @@
paragraphs (@pxref{Command Syntax}).
-@node cartouche
-@section @code{@@cartouche}: Rounded Rectangles Around Examples
+@node @t{@@cartouche}
+@section @code{@@cartouche}: Rounded Rectangles
+
+@anchor{cartouche}@c old name
@findex cartouche
@cindex Box with rounded corners
-@cindex Rounded rectangles, around examples
+@cindex Rounded rectangles, around text
In a printed manual, the @code{@@cartouche} command draws a box with
rounded corners around its contents. In HTML, a normal rectangle is
-drawn (that's the best HTML can do). @code{@@cartouche} has no effect
-in Info output.
+drawn. @code{@@cartouche} has no effect in Info output.
You can use this command to further highlight an example or quotation.
For instance, you could write a manual in which one type of example is
@@ -8466,11 +8988,8 @@
@end example
@end cartouche
-For proper output in HTML, it's necessary to put the
-@code{@@cartouche} around the @code{@@example}, and not the other way
-around. This limitation of @command{makeinfo} may be removed one day.
-
-@code{@@cartouche} also implies @code{@@group} (@pxref{group}).
+@code{@@cartouche} also implies @code{@@group} (@pxref{@t{@@group}}).
+
@node Lists and Tables
@chapter Lists and Tables
@@ -8484,8 +9003,8 @@
@menu
* Introducing Lists:: Texinfo formats lists for you.
-* itemize:: How to construct a simple list.
-* enumerate:: How to construct a numbered list.
+* @t{@@itemize}:: How to construct a simple list.
+* @t{@@enumerate}:: How to construct a numbered list.
* Two-column Tables:: How to construct a two-column table.
* Multi-column Tables:: How to construct generalized tables.
@end menu
@@ -8495,27 +9014,27 @@
Texinfo automatically indents the text in lists or tables, and numbers
an enumerated list. This last feature is useful if you modify the
-list, since you do not need to renumber it yourself.@refill
+list, since you do not need to renumber it yourself.
Numbered lists and tables begin with the appropriate @@-command at the
beginning of a line, and end with the corresponding @code{@@end}
command on a line by itself. The table and itemized-list commands
also require that you write formatting information on the same line as
-the beginning @@-command.(a)refill
+the beginning @@-command.
Begin an enumerated list, for example, with an @code{@@enumerate}
command and end the list with an @code{@@end enumerate} command.
Begin an itemized list with an @code{@@itemize} command, followed on
the same line by a formatting command such as @code{@@bullet}, and end
-the list with an @code{@@end itemize} command.@refill
+the list with an @code{@@end itemize} command.
@findex end
Precede each element of a list with an @code{@@item} or @code{@@itemx}
-command.@refill
+command.
@sp 1
@noindent
-Here is an itemized list of the different kinds of table and lists:@refill
+Here is an itemized list of the different kinds of table and lists:
@itemize @bullet
@item
@@ -8530,7 +9049,7 @@
@sp 1
@noindent
-Here is an enumerated list with the same items:@refill
+Here is an enumerated list with the same items:
@enumerate
@item
@@ -8546,7 +9065,7 @@
@sp 1
@noindent
And here is a two-column table with the same items and their
-@w{@@-commands}:@refill
+@w{@@-commands}:
@table @code
@item @@itemize
@@ -8562,44 +9081,53 @@
@end table
-@node itemize
+@node @t{@@itemize}
@section @code{@@itemize}: Making an Itemized List
+
+@anchor{itemize}@c old name
+@findex itemize
@cindex Itemization
-@findex itemize
-
-The @code{@@itemize} command produces sequences of indented
-paragraphs, with a bullet or other mark inside the left margin
-at the beginning of each paragraph for which such a mark is desired.@refill
+
+The @code{@@itemize} command produces a sequence of ``items'', each
+starting with a bullet or other mark inside the left margin, and
+generally indented.
@cindex @code{@@w}, for blank items
Begin an itemized list by writing @code{@@itemize} at the beginning of
a line. Follow the command, on the same line, with a character or a
-Texinfo command that generates a mark. Usually, you will write
+Texinfo command that generates a mark. Usually, you will use
@code{@@bullet} after @code{@@itemize}, but you can use
@code{@@minus}, or any command or character that results in a single
-character in the Info file. If you don't want any mark at all, use
-@code{@@w}. (When you write the mark command such as
+character in the Info file. (When you write the mark command such as
@code{@@bullet} after an @code{@@itemize} command, you may omit the
@samp{@{@}}.) If you don't specify a mark command, the default is
-@code{@@bullet}.
-
-Write the text of the indented paragraphs themselves after the
-@code{@@itemize}, up to another line that says @code{@@end
-itemize}.@refill
+@code{@@bullet}. If you don't want any mark at all, but still want
+logical items, use @code{@@w@{@}} (in this case the braces are
+required).
@findex item
-At the beginning of each paragraph for which a mark in the margin is
-desired, write a line that starts with @code{@@item}. It is ok to
-have text following the @code{@@item}.
-
-Usually, you should put a blank line before an @code{@@item}. This
-puts a blank line in the Info file. (@TeX{} inserts the proper
-interline whitespace in either case.) Except when the entries are
-very brief, these blank lines make the list look better.@refill
+After the @code{@@itemize}, write your items, each starting with
+@code{@@item}. Text can follow on the same line as the @code{@@item}.
+The text of an item can continue for more than one paragraph.
+
+There should be at least one @code{@@item} inside the @code{@@itemize}
+environment. If none are present, @code{makeinfo} gives a warning.
+If you just want indented text and not a list of items, use
+@code{@@indentedblock}; @pxref{@t{@@indentedblock}}.
+
+Index entries and comments that are given before an @code{@@item}
+including the first, are automatically moved (internally) to after the
+@code{@@item}, so the output is as expected. Historically this has
+been a common practice.
+
+Usually, you should put a blank line between items. This puts a blank
+line in the Info file. (@TeX{} inserts the proper vertical space in
+any case.) Except when the entries are very brief, these blank lines
+make the list look better.
Here is an example of the use of @code{@@itemize}, followed by the
-output it produces. @code{@@bullet} produces an @samp{*} in Info and a
-round dot in @TeX{}.
+output it produces. @code{@@bullet} produces an @samp{*} in Info and
+a round dot in other output formats.
@example
@group
@@ -8629,7 +9157,7 @@
@end quotation
Itemized lists may be embedded within other itemized lists. Here is a
-list marked with dashes embedded in a list marked with bullets:@refill
+list marked with dashes embedded in a list marked with bullets:
@example
@group
@@ -8673,27 +9201,30 @@
@end quotation
-@node enumerate
+@node @t{@@enumerate}
@section @code{@@enumerate}: Making a Numbered or Lettered List
+
+@anchor{enumerate}@c old name
+@findex enumerate
@cindex Enumeration
-@findex enumerate
-
-@code{@@enumerate} is like @code{@@itemize} (@pxref{itemize,,
-@code{@@itemize}}), except that the labels on the items are
-successive integers or letters instead of bullets.
+
+@code{@@enumerate} is like @code{@@itemize} (@pxref{@t{@@itemize}}),
+except that the labels on the items are successive integers or letters
+instead of bullets.
Write the @code{@@enumerate} command at the beginning of a line. The
command does not require an argument, but accepts either a number or a
letter as an option. Without an argument, @code{@@enumerate} starts the
list with the number @samp{1}. With a numeric argument, such as
-@samp{3}, the command starts the list with that number. With an upper
-or lower case letter, such as @samp{a} or @samp{A}, the command starts
+@samp{3}, the command starts the list with that number. With an upper-
+or lowercase letter, such as @samp{a} or @samp{A}, the command starts
the list with that letter.
Write the text of the enumerated list in the same way as an itemized
list: write a line starting with @code{@@item} at the beginning of
-each paragraph that you want enumerated. It is ok to have text
-following the @code{@@item}.
+each item in the enumeration. It is ok to have text following the
+@code{@@item}, and the text for an item can continue for several
+paragraphs.
You should put a blank line between entries in the list.
This generally makes it easier to read the Info file.
@@ -8724,7 +9255,7 @@
Proximate causes.
@end enumerate
@sp 1
-Here is an example with an argument of @kbd{3}:@refill
+Here is an example with an argument of @kbd{3}:
@sp 1
@example
@group
@@ -8756,63 +9287,67 @@
@end enumerate
@sp 1
Here is a brief summary of the alternatives. The summary is constructed
-using @code{@@enumerate} with an argument of @kbd{a}.@refill
+using @code{@@enumerate} with an argument of @kbd{a}.
@sp 1
@enumerate a
@item
@code{@@enumerate}
-Without an argument, produce a numbered list, starting with the number
-1.@refill
+Without an argument, produce a numbered list, starting with the
+number@tie{}1.
@item
@code{@@enumerate @var{positive-integer}}
With a (positive) numeric argument, start a numbered list with that
number. You can use this to continue a list that you interrupted with
-other text.@refill
+other text.
@item
@code{@@enumerate @var{upper-case-letter}}
-With an upper case letter as argument, start a list
+With an uppercase letter as argument, start a list
in which each item is marked
-by a letter, beginning with that upper case letter.@refill
+by a letter, beginning with that uppercase letter.
@item
@code{@@enumerate @var{lower-case-letter}}
-With a lower case letter as argument, start a list
+With a lowercase letter as argument, start a list
in which each item is marked by
-a letter, beginning with that lower case letter.@refill
+a letter, beginning with that lowercase letter.
@end enumerate
-You can also nest enumerated lists, as in an outline.@refill
+You can also nest enumerated lists, as in an outline.
+
@node Two-column Tables
@section Making a Two-column Table
+
@cindex Tables, making two-column
@findex table
-@code{@@table} is similar to @code{@@itemize} (@pxref{itemize,,
-@code{@@itemize}}), but allows you to specify a name or heading line for
-each item. The @code{@@table} command is used to produce two-column
-tables, and is especially useful for glossaries, explanatory
-exhibits, and command-line option summaries.
-
-@menu
-* table:: How to construct a two-column table.
-* ftable vtable:: Automatic indexing for two-column tables.
-* itemx:: How to put more entries in the first column.
-@end menu
-
-@node table
+@code{@@table} is similar to @code{@@itemize}
+(@pxref{@t{@@itemize}}), but allows you to specify a name or
+heading line for each item. The @code{@@table} command is used to
+produce two-column tables, and is especially useful for glossaries,
+explanatory exhibits, and command-line option summaries.
+
+@menu
+* @t{@@table}:: How to construct a two-column table.
+* @t{@@ftable @@vtable}:: Automatic indexing for two-column tables.
+* @t{@@itemx}:: How to put more entries in the first column.
+@end menu
+
+@node @t{@@table}
@subsection Using the @code{@@table} Command
+@anchor{table}@c old name
+
@cindex Definition lists, typesetting
Use the @code{@@table} command to produce two-column tables. It is
-usually listed for ``definition lists'' of various sorts, where you
-have a list of terms and a brief text with each one.
+typically used when you have a list of items and a brief text with
+each one, such as ``definition lists''.
Write the @code{@@table} command at the beginning of a line, after a
blank line, and follow it on the same line with an argument that is a
@@ -8822,8 +9357,10 @@
This command will be applied to the text that goes into the first
column of each item and thus determines how it will be highlighted.
For example, @code{@@table @@code} will cause the text in the first
-column to be output as if it @code{@@code} command.
-
+column to be output as if it had been the argument to an @code{@@code}
+command.
+
+@anchor{@t{@@asis}}@c command name with @, for consistency
@findex asis
You may also use the @code{@@asis} command as an argument to
@code{@@table}. @code{@@asis} is a command that does nothing; if you
@@ -8831,10 +9368,11 @@
output without added highlighting (``as is'').
The @code{@@table} command works with other commands besides those
-explicitly mentioned here. However, you can only use commands that
-normally take arguments in braces. (In this case, however, you use
-the command name without an argument, because the subsequent
-@code{@@item}'s will supply the argument.)
+explicitly mentioned here. However, you can only use predefined
+Texinfo commands that normally take an argument in braces. You cannot
+reliably use a new command defined with @code{@@macro}, but an
+@code{@@alias} (for a suitable predefined command) is acceptable.
+@xref{Defining New Texinfo Commands}.
@findex item
Begin each table entry with an @code{@@item} command at the beginning
@@ -8846,9 +9384,9 @@
paragraphs. But only the text on the same line as the @code{@@item}
will be placed in the first column (including any footnotes).
-Normally, you should put a blank line before an @code{@@item} line.
-This puts a blank line in the Info file. Except when the entries are
-very brief, a blank line looks better.
+Normally, you should put a blank line before an @code{@@item} line
+(except the first one). This puts a blank line in the Info file.
+Except when the entries are very brief, a blank line looks better.
End the table with a line consisting of @code{@@end table}, followed
by a blank line. @TeX{} will always start a new paragraph after the
@@ -8883,15 +9421,17 @@
@end table
If you want to list two or more named items with a single block of
-text, use the @code{@@itemx} command. (@xref{itemx,,@code{@@itemx}}.)
-
-
-@node ftable vtable
+text, use the @code{@@itemx} command. (@xref{@t{@@itemx}}.)
+
+
+@node @t{@@ftable @@vtable}
@subsection @code{@@ftable} and @code{@@vtable}
-@cindex Tables with indexes
-@cindex Indexing table entries automatically
+
+@anchor{ftable vtable}@c old name
@findex ftable
@findex vtable
+@cindex Tables with indexing
+@cindex Indexing table entries automatically
The @code{@@ftable} and @code{@@vtable} commands are the same as the
@code{@@table} command except that @code{@@ftable} automatically enters
@@ -8901,7 +9441,7 @@
simplifies the task of creating indices. Only the items on the same
line as the @code{@@item} commands are indexed, and they are indexed in
exactly the form that they appear on that line. @xref{Indices},
-for more information about indices.@refill
+for more information about indices.
Begin a two-column table using @code{@@ftable} or @code{@@vtable} by
writing the @@-command at the beginning of a line, followed on the same
@@ -8912,8 +9452,11 @@
See the example for @code{@@table} in the previous section.
-@node itemx
-@subsection @code{@@itemx}
+
+@node @t{@@itemx}
+@subsection @code{@@itemx}: Second and Subsequent Items
+
+@anchor{itemx}@c old name
@cindex Two named items for @code{@@table}
@findex itemx
@@ -8938,8 +9481,8 @@
@@item upcase
@@itemx downcase
These two functions accept a character or a string as
-argument, and return the corresponding upper case (lower
-case) character or string.
+argument, and return the corresponding uppercase (lowercase)
+character or string.
@@end table
@end group
@end example
@@ -8951,19 +9494,20 @@
@item upcase
@itemx downcase
These two functions accept a character or a string as
-argument, and return the corresponding upper case (lower
-case) character or string.@refill
+argument, and return the corresponding uppercase (lowercase)
+character or string.
@end table
@noindent
(Note also that this example illustrates multi-line supporting text in
-a two-column table.)@refill
+a two-column table.)
@node Multi-column Tables
@section @code{@@multitable}: Multi-column Tables
+
+@findex multitable
@cindex Tables, making multi-column
-@findex multitable
@code{@@multitable} allows you to construct tables with any number of
columns, with each column having any width you like.
@@ -9029,6 +9573,7 @@
@node Multitable Rows
@subsection Multitable Rows
+
@cindex Multitable rows
@cindex Rows, of a multitable
@@ -9042,16 +9587,24 @@
@findex headitem
@cindex Heading row, in table
-@cindex <thead> HTML tag
+@cindex @code{<thead>} HTML/XML tag
You can also use @code{@@headitem} instead of @code{@@item} to produce
a @dfn{heading row}. The @TeX{} output for such a row is in bold, and
-the HTML, XML, and Docbook output uses the @code{<thead>} tag. In
-Info, the heading row is followed by a separator line made of dashes
-(@samp{-} characters).
+the HTML and Docbook output uses the @code{<thead>} tag. In Info, the
+heading row is followed by a separator line made of dashes (@samp{-}
+characters).
+
+@findex headitemfont
+@cindex Font for multitable heading rows
+The command @code{@@headitemfont} can be used in templates when the
+entries in an @code{@@headitem} row need to be used in a template. It
+is a synonym for @code{@@b}, but using @code{@@headitemfont} avoids
+any dependency on that particular font style, in case we provide a way
+to change it in the future.
Here is a complete example of a multi-column table (the text is from
-@cite{The XEmacs Users' Manual}, @pxref{Split Window,, Splitting Windows,
-xemacs, XEmacs User's Manual}):
+@cite{XEmacs User's Manual}, @pxref{Split Window,, Splitting Windows,
+emacs, XEmacs User's Manual}):
@example
@@multitable @@columnfractions .15 .45 .4
@@ -9071,8 +9624,7 @@
@@end multitable
@end example
-@noindent
-produces:
+@noindent produces:
@multitable @columnfractions .15 .45 .4
@headitem Key @tab Command @tab Description
@@ -9118,7 +9670,7 @@
@cindex Floats, in general
A @dfn{float} is a display which is set off from the main text. It is
-typically labelled as being a ``Figure'', ``Table'', ``Example'', or
+typically labeled as being a ``Figure'', ``Table'', ``Example'', or
some similar type.
@cindex Floating, not yet implemented
@@ -9128,17 +9680,19 @@
formats.) In the present version of Texinfo, however, this floating
is unfortunately not yet implemented. Instead, the floating material
is simply output at the current location, more or less as if it were
-an @code{@@group} (@pxref{group,,@code{@@group}}).
-
-@menu
-* float:: Producing floating material.
-* caption shortcaption:: Specifying descriptions for floats.
-* listoffloats:: A table of contents for floats.
-@end menu
-
-
-@node float
+an @code{@@group} (@pxref{@t{@@group}}).
+
+@menu
+* @t{@@float}:: Producing floating material.
+* @t{@@caption @@shortcaption}:: Specifying descriptions for floats.
+* @t{@@listoffloats}:: A table of contents for floats.
+@end menu
+
+
+@node @t{@@float}
@subsection @code{@@float} [@var{type}][,@var{label}]: Floating Material
+
+@anchor{float}@c old name
@findex float
@cindex Float environment
@@ -9146,10 +9700,10 @@
displayed separate between @code{@@float} and @code{@@end float}
commands, on lines by themselves.
-Floating material uses @code{@@image} to display an already-existing
-graphic (@pxref{Images}), or @code{@@multitable} to display a table
-(@pxref{Multi-column Tables}). However, the contents of the float can
-be anything. Here's an example with simple text:
+Floating material often uses @code{@@image} to display an
+already-existing graphic (@pxref{Images}), or @code{@@multitable} to
+display a table (@pxref{Multi-column Tables}). However, the contents
+of the float can be anything. Here's an example with simple text:
@example
@@float Figure,fig:ex1
@@ -9169,14 +9723,14 @@
@table @var
@item type
Specifies the sort of float this is; typically a word such as
-``Figure'', ``Table'', etc. If not given, and @var{label} is, any
-cross-referencing will simply use a bare number.
+``Figure'', ``Table'', etc. If this is not given, and @var{label} is,
+any cross referencing will simply use a bare number.
@item label
-Specifies a cross-reference label for this float. If given, this
+Specifies a cross reference label for this float. If given, this
float is automatically given a number, and will appear in any
-@code{@@listoffloats} output (@pxref{listoffloats}). Cross-references
-to @var{label} are allowed.
+@code{@@listoffloats} output (@pxref{@t{@@listoffloats}}). Cross
+references to @var{label} are allowed.
@cindex Floats, making unnumbered
@cindex Unnumbered float, creating
@@ -9185,30 +9739,32 @@
@code{@@listoffloats} output or be cross-referenceable.
@end table
-@noindent Normally, you specify both @var{type} and @var{label}, to get a
+@noindent Ordinarily, you specify both @var{type} and @var{label}, to get a
labeled and numbered float.
@cindex Floats, numbering of
@cindex Numbering of floats
-In Texinfo, all floats are numbered the same way: with the chapter
+In Texinfo, all floats are numbered in the same way: with the chapter
number (or appendix letter), a period, and the float number, which
simply counts 1, 2, 3, @dots{}, and is reset at each chapter. Each
-float type is counted independently.
-
-Floats within an @code{@@unnumbered} are numbered, or outside of any
-chapter, are simply numbered consecutively from 1.
+float type is counted independently.
+
+Floats within an @code{@@unnumbered}, or outside of any chapter, are
+simply numbered consecutively from 1.
These numbering conventions are not, at present, changeable.
-@node caption shortcaption
+@node @t{@@caption @@shortcaption}
@subsection @code{@@caption} & @code{@@shortcaption}
+
+@anchor{caption shortcaption}@c old name
@findex caption
@findex shortcaption
@cindex Captions, for floats
@cindex Short captions, for lists of floats
-You may write an @code{@@caption} anywhere within a @code{@@float}
+You may write an @code{@@caption} anywhere within an @code{@@float}
environment, to define a caption for the float. It is not allowed in
any other context. @code{@@caption} takes a single argument, enclosed
in braces. Here's an example:
@@ -9249,22 +9805,26 @@
@@end float
@end example
-The text for @code{@@caption} and @code{@@shortcaption} may not
-contain comments (@code{@@c}), verbatim text (@code{@@verb}),
-environments such as @code{@@example}, or other complex constructs.
-
-
-@node listoffloats
+The text for @code{@@shortcaption} may not contain comments
+(@code{@@c}), verbatim text (@code{@@verb}), environments such as
+@code{@@example}, footnotes (@code{@@footnote}) or other complex
+constructs. The same constraints apply to @code{@@caption} unless
+there is an @code{@@shortcaption}.
+
+
+@node @t{@@listoffloats}
@subsection @code{@@listoffloats}: Tables of Contents for Floats
+
+@anchor{listoffloats}@c old name
@findex listoffloats
@cindex List of floats
@cindex Floats, list of
@cindex Table of contents, for floats
-You can write a @code{@@listoffloats} command to generate a list of
-floats for a given float type (@pxref{float}), analogous to the
-document's overall table of contents. Typically, it is written in its
-own @code{@@unnumbered} node to provide a heading and structure,
+You can write an @code{@@listoffloats} command to generate a list of
+floats for a given float type (@pxref{@t{@@float}}), analogous to
+the document's overall table of contents. Typically, it is written in
+its own @code{@@unnumbered} node to provide a heading and structure,
rather like @code{@@printindex} (@pxref{Printing Indices & Menus}).
@code{@@listoffloats} takes one optional argument, the float type.
@@ -9282,9 +9842,9 @@
@listoffloats Figure
@end display
-Without any argument, @code{@@listoffloats} generates a list of
-floats for which no float type was specified, i.e., no first argument
-to the @code{@@float} command (@pxref{float}).
+Without any argument, @code{@@listoffloats} generates a list of floats
+for which no float type was specified, i.e., no first argument to the
+@code{@@float} command (@pxref{@t{@@float}}).
Each line in the list of floats contains the float type (if any),
the float number, and the caption, if any---the @code{@@shortcaption}
@@ -9293,7 +9853,7 @@
HTML, each line is a link to the float. In printed output, the page
number is included.
-Unnumbered floats (those without cross-reference labels) are omitted
+Unnumbered floats (those without cross reference labels) are omitted
from the list of floats.
@@ -9332,33 +9892,60 @@
@itemize @bullet
@item
@pindex eps image format
-@TeX{} reads the file @file{(a)var{filename}.eps} (Encapsulated PostScript
-format).
+@TeX{} (DVI output) reads the file @file{(a)var{filename}.eps}
+(Encapsulated PostScript format).
+
@item
@pindex pdftex@r{, and images}
@pindex png image format
@pindex jpeg image format
@pindex pdf image inclusions
-pdf@TeX{} reads @file{(a)var{filename}.png}, @file{(a)var{filename}.jpg},
-@file{(a)var{filename}.jpeg}, or @file{(a)var{filename}.pdf} (in that
+pdf@TeX{} reads @file{(a)var{filename}.pdf}, @file{(a)var{filename}.png},
+@file{(a)var{filename}.jpg}, or @file{(a)var{filename}.jpeg} (in that
order). It also tries uppercase versions of the extensions. The PDF
-format cannot support EPS images, so they must be converted first.
-@item
-@code{makeinfo} includes @file{(a)var{filename}.txt} verbatim for
-Info output (more or less as if it was an @code{@@example}).
-@item
-@code{makeinfo} uses the optional fifth argument @var{extension} to
-@code{@@image} for the filename extension, if it is specified. For example:
+format does not support EPS images, so such must be converted first.
+
+@item
+For Info, @code{makeinfo} includes @file{(a)var{filename}.txt} verbatim
+(more or less as if it were in @code{@@verbatim}). The Info output
+may also include a reference to @file{(a)var{filename}.png} or
+@file{(a)var{filename}.jpg}. (See below.)
+
+@item
+For HTML, @code{makeinfo} outputs a reference to
+@file{(a)var{filename}.png}, @file{(a)var{filename}.jpg},
+@file{(a)var{filename}.jpeg} or @file{(a)var{filename}.gif} (in that
+order). If none of those exist, it gives an error, and outputs a
+reference to @file{(a)var{filename}.jpg} anyway.
+
+@item
+@cindex SVG images, used in Docbook
+For Docbook, @code{makeinfo} outputs references to
+@file{(a)var{filename}.eps}, @file{(a)var{filename}.gif}
+@file{(a)var{filename}.jpeg}, @file{(a)var{filename}.jpg},
+@file{(a)var{filename}.pdf}, @file{(a)var{filename}.png} and
+@file{(a)var{filename}.svg}, for every file found. Also,
+@file{(a)var{filename}.txt} is included verbatim, if present. (The
+subsequent Docbook processor is supposed to choose the appropriate one.)
+
+@item
+For Info and HTML output, @code{makeinfo} uses the optional fifth
+argument @var{extension} to @code{@@image} for the filename extension,
+if it is specified and the file is found. Any leading period should
+be included in @var{extension}. For example:
@pindex XPM image format
@example
@@image@{foo,,,,.xpm(a)}
@end example
-@noindent
-will cause @code{makeinfo} to look for @file{foo.xpm} before any others.
-
-@end itemize
+@end itemize
+
+If you want to install image files for use by Info readers too, we
+recommend putting them in a subdirectory like @samp{@var{foo}-figures}
+for a package @var{foo}. Copying the files into
+@code{$(infodir)/@var{foo}-figures/} should be done in your
+@code{Makefile}.
The @var{width} and @var{height} arguments are described in the next
section.
@@ -9367,7 +9954,7 @@
will ordinarily be displayed on a line by itself, respecting the
current environment indentation, but without the normal paragraph
indentation. If you want it centered, use @code{@@center}
-(@pxref{titlefont center sp,,@code{@@titlefont @@center @@sp}}).
+(@pxref{@t{@@titlefont @@center @@sp}}).
@cindex Alt attribute for images
@cindex Images, alternate text for
@@ -9376,22 +9963,15 @@
inline images to the optional @var{alttext} (fourth) argument to
@code{@@image}, if supplied. If not supplied, @code{makeinfo} uses
the full file name of the image being displayed. The @var{alttext} is
-taken as Texinfo text, so special characters such as @samp{"} and
-@samp{<} and @samp{&} are escaped in the HTML and XML output; also,
-you can get an empty @code{alt} string with @code{@@-} (a command
-that produces no output; @pxref{- and hyphenation}).
+processed as Texinfo text, so special characters such as @samp{"} and
+@samp{<} and @samp{&} are escaped in the HTML output; also, you can
+get an empty @code{alt} string with @code{@@-} (a command that
+produces no output; @pxref{@t{@@- @@hyphenation}}).
For Info output, the @code{alt} string is also processed as Texinfo
text and output. In this case, @samp{\} is escaped as @samp{\\} and
@samp{"} as @samp{\"}; no other escapes are done.
-@cindex PNG image format
-@cindex JPEG image format
-If you do not supply the optional @var{extension} (fifth) argument,
-@code{makeinfo} first tries @file{(a)var{filename}.png}; if that does
-not exist, it tries @file{(a)var{filename}.jpg}. If that does not exist
-either, it complains.
-
In Info output, @code{makeinfo} writes a reference to the binary image
file (trying @var{filename} suffixed with @file{@var{extension}},
@file{(a)var{.extension}}, @file{.png}, or @file{.jpg}, in that order)
@@ -9430,11 +10010,11 @@
@cindex Distorting images
The optional @var{width} and @var{height} arguments to the
@code{@@image} command (see the previous section) specify the size to
-scale the image to. They are ignored for Info output. If neither is
-specified, the image is presented in its natural size (given in the
-file); if only one is specified, the other is scaled proportionately;
-and if both are specified, both are respected, thus possibly distorting
-the original image by changing its aspect ratio.
+which to scale the image. They are only taken into account in @TeX{}.
+If neither is specified, the image is presented in its natural size
+(given in the file); if only one is specified, the other is scaled
+proportionately; and if both are specified, both are respected, thus
+likely distorting the original image by changing its aspect ratio.
@cindex Dimensions and image sizes
The @var{width} and @var{height} may be specified using any valid @TeX{}
@@ -9501,14 +10081,14 @@
@findex footnote
A @dfn{footnote} is for a reference that documents or elucidates the
-primary text.@footnote{A footnote should complement or expand upon
-the primary text, but a reader should not need to read a footnote to
+primary text.@footnote{A footnote should complement or expand upon the
+primary text, but a reader should not need to read a footnote to
understand the primary text. For a thorough discussion of footnotes,
see @cite{The Chicago Manual of Style}, which is published by the
University of Chicago Press.} Footnotes are distracting; use them
-sparingly, if at all. Standard bibliographical references are better
-placed in a bibliography at the end of a document than in footnotes
-throughout.
+sparingly at most, and it is best to avoid them completely. Standard
+bibliographical references are better placed in a bibliography at the
+end of a document instead of in footnotes throughout.
@menu
* Footnote Commands:: How to write a footnote in Texinfo.
@@ -9553,16 +10133,16 @@
In Info, the reference mark for a footnote is a pair of parentheses
with the footnote number between them, like this: @samp{(1)}. The
-reference mark is followed by a cross-reference link to the footnote's
-text.
-
-In the HTML output, footnote references are marked with a small,
-superscripted number which is rendered as a hypertext link to the
-footnote text.
-
-By the way, footnotes in the argument of an @code{@@item} command for a
-@code{@@table} must be on the same line as the @code{@@item}
-(as usual). @xref{Two-column Tables}.
+reference mark is followed by a cross reference link to the footnote
+text if footnotes are put in separate nodes (@pxref{Footnote Styles}).
+
+In the HTML output, footnote references are generally marked with a
+small, superscripted number which is rendered as a hypertext link to
+the footnote text.
+
+By the way, footnotes in the argument of an @code{@@item} command for
+an @code{@@table} must be on the same line as the @code{@@item} (as
+usual). @xref{Two-column Tables}.
@node Footnote Styles
@@ -9574,15 +10154,16 @@
@itemize @bullet
@cindex @samp{@r{End}} node footnote style
@item
-In the `End' node style, all the footnotes for a single node
-are placed at the end of that node. The footnotes are separated from
-the rest of the node by a line of dashes with the word
-@samp{Footnotes} within it. Each footnote begins with an
-@samp{(@var{n})} reference mark.
+In the `End' node style, all the footnotes for a single node are
+placed at the end of that node. The footnotes are separated from the
+rest of the node by a line of dashes with the word @samp{Footnotes}
+within it. Each footnote begins with an @samp{(@var{n})} reference
+mark.
@need 700
@noindent
-Here is an example of a single footnote in the end of node style:@refill
+Here is an example of the Info output for a single footnote in the
+end-of-node style:
@example
@group
@@ -9645,15 +10226,15 @@
@end example
Write an @code{@@footnotestyle} command before or shortly after the
-end-of-header line at the beginning of a Texinfo file. (If you
-include the @code{@@footnotestyle} command between the start-of-header
-and end-of-header lines, the region formatting commands will format
-footnotes as specified.)@refill
-
-If you do not specify a footnote style, the formatting commands use
-their default style. Currently, @code{texinfo-format-buffer} and
-@code{texinfo-format-region} use the `separate' style and
-@code{makeinfo} uses the `end' style.
+end-of-header line at the beginning of a Texinfo file. (You should
+include any @code{@@footnotestyle} command between the start-of-header
+and end-of-header lines, so the region formatting commands will format
+footnotes as specified.)
+
+In HTML, when the footnote style is @samp{end}, or if the output is
+not split, footnotes are put at the end of the output. If set to
+@samp{separate}, and the output is split, they are placed in a
+separate file.
@node Indices
@@ -9667,10 +10248,10 @@
consists of page numbers. In an Info file, this information is a menu
entry leading to the first node referenced.
-Texinfo provides several predefined kinds of index: an index
-for functions, an index for variables, an index for concepts, and so
-on. You can combine indices or use them for other than their
-canonical purpose. Lastly, you can define your own new indices.
+Texinfo provides several predefined kinds of index: an index for
+functions, an index for variables, an index for concepts, and so on.
+You can combine indices or use them for other than their canonical
+purpose. Lastly, you can define your own new indices.
@xref{Printing Indices & Menus}, for information on how to print
indices.
@@ -9694,20 +10275,20 @@
different ways people may look for something. Different people
@emph{do not} think of the same words when they look something up. A
helpful index will have items indexed under all the different words
-that people may use. For example, one reader may think it obvious that
-the two-letter names for indices should be listed under ``Indices,
-two-letter names'', since the word ``Index'' is the general concept.
-But another reader may remember the specific concept of two-letter
-names and search for the entry listed as ``Two letter names for
-indices''. A good index will have both entries and will help both
-readers.@refill
-
-Like typesetting, the construction of an index is a highly skilled,
-professional art, the subtleties of which are not appreciated until you
-need to do it yourself.@refill
-
-@xref{Printing Indices & Menus}, for information about printing an index
-at the end of a book or creating an index menu in an Info file.@refill
+that people may use. For example, one reader may think it obvious
+that the two-letter names for indices should be listed under
+``Indices, two-letter names, since ``Indices'' are the general
+concept. But another reader may remember the specific concept of
+two-letter names and search for the entry listed as ``Two letter names
+for indices''. A good index will have both entries and will help both
+readers.
+
+Like typesetting, the construction of an index is a skilled art, the
+subtleties of which may not be appreciated until you need to do it
+yourself.
+
+@xref{Printing Indices & Menus}, for information about printing an
+index at the end of a book or creating an index menu in an Info file.
@node Predefined Indices
@@ -9719,23 +10300,29 @@
@table @samp
@item cp
@cindex @code{cp} (concept) index
+@findex cindex
(@code{@@cindex}) concept index, for general concepts.
@item fn
@cindex @code{fn} (function) index
+@findex findex
(@code{@@findex}) function index, for function and function-like
names (such as entry points of libraries).
@item ky
@cindex @code{ky} (keystroke) index
+@findex kindex
(@code{@@kindex}) keystroke index, for keyboard commands.
@item pg
@cindex @code{pg} (program) index
+@findex pindex
(@code{@@pindex}) program index, for names of programs.
@item tp
@cindex @code{tp} (data type) index
+@findex tindex
(@code{@@tindex}) data type index, for type names (such as structures
defined in header files).
@item vr
@cindex @code{vr} (variable) index
+@findex vindex
(@code{@@vindex}) variable index, for variable names (such as global
variables of libraries).
@end table
@@ -9769,6 +10356,7 @@
@node Indexing Commands
@section Defining the Entries of an Index
+
@cindex Defining indexing entries
@cindex Index entries
@cindex Entries for an index
@@ -9778,13 +10366,13 @@
The data to make an index come from many individual indexing commands
scattered throughout the Texinfo source file. Each command says to add
one entry to a particular index; after formatting, the index will give
-the current page number or node name as the reference.@refill
+the current page number or node name as the reference.
An index entry consists of an indexing command at the beginning of a
-line followed, on the rest of the line, by the entry.@refill
+line followed, on the rest of the line, by the entry.
For example, this section begins with the following five entries for
-the concept index:@refill
+the concept index:
@example
@@cindex Defining indexing entries
@@ -9799,27 +10387,48 @@
on, as listed in the previous section.
@cindex Writing index entries
-@cindex Index entry writing
+@cindex Index entries, advice on writing
+@cindex Advice on writing entries
+@cindex Capitalization of index entries
Concept index entries consist of text. The best way to write an index
-is to choose entries that are terse yet clear. If you can do this,
-the index often looks better if the entries are not capitalized, but
-written just as they would appear in the middle of a sentence.
-(Capitalize proper names and acronyms that always call for upper case
-letters.) This is the case convention we use in most GNU manuals'
-indices.
+is to devise entries which are terse yet clear. If you can do this,
+the index usually looks better if the entries are written just as they
+would appear in the middle of a sentence, that is, capitalizing only
+proper names and acronyms that always call for uppercase letters.
+This is the case convention we use in most GNU manuals' indices.
If you don't see how to make an entry terse yet clear, make it longer
-and clear---not terse and confusing. If many of the entries are several
-words long, the index may look better if you use a different convention:
-to capitalize the first word of each entry. But do not capitalize a
-case-sensitive name such as a C or Lisp function name or a shell
-command; that would be a spelling error.
-
-Whichever case convention you use, please use it consistently!
-
-Entries in indices other than the concept index are symbol names in
-programming languages, or program names; these names are usually
-case-sensitive, so use upper and lower case as required for them.
+and clear---not terse and confusing. If many of the entries are
+several words long, the index may look better if you use a different
+convention: to capitalize the first word of each entry. Whichever
+case convention you use, use it consistently.
+
+In any event, do not ever capitalize a case-sensitive name such as a C
+or Lisp function name or a shell command; that would be a spelling
+error. Entries in indices other than the concept index are symbol
+names in programming languages, or program names; these names are
+usually case-sensitive, so likewise use upper- and lowercase as
+required.
+
+@cindex Unique index entries
+It is a good idea to make index entries unique wherever feasible.
+That way, people using the printed output or online completion of
+index entries don't see undifferentiated lists. Consider this an
+opportunity to make otherwise-identical index entries be more
+specific, so readers can more easily find the exact place they are
+looking for.
+
+Index entries should precede the visible material that is being
+indexed. For instance:
+
+@example
+@@cindex hello
+Hello, there!
+@end example
+
+@noindent Among other reasons, that way following indexing links (in
+whatever context) ends up before the material, where readers want to
+be, instead of after.
@cindex Index font types
By default, entries for a concept index are printed in a small roman
@@ -9860,24 +10469,27 @@
@code{@@code}.
@menu
-* syncodeindex:: How to merge two indices, using @code{@@code}
+* @t{@@syncodeindex}:: How to merge two indices, using @code{@@code}
font for the merged-from index.
-* synindex:: How to merge two indices, using the
- default font of the merged-to index.
-@end menu
-
-@node syncodeindex
-@subsection @code{@@syncodeindex}
+* @t{@@synindex}:: How to merge two indices, using the
+ roman font for the merged-from index.
+@end menu
+
+
+@node @t{@@syncodeindex}
+@subsection @code{@@syncodeindex}: Combining indices using @code{@@code}
+
+@anchor{syncodeindex}@c old name
@findex syncodeindex
When you want to combine functions and concepts into one index, you
should index the functions with @code{@@findex} and index the concepts
with @code{@@cindex}, and use the @code{@@syncodeindex} command to
-redirect the function index entries into the concept index.@refill
+redirect the function index entries into the concept index.
The @code{@@syncodeindex} command takes two arguments; they are the name
of the index to redirect, and the name of the index to redirect it to.
-The template looks like this:@refill
+The template looks like this:
@example
@@syncodeindex @var{from} @var{to}
@@ -9887,7 +10499,7 @@
@cindex Two letter names for indices
@cindex Indices, two letter names
@cindex Names for indices
-For this purpose, the indices are given two-letter names:@refill
+For this purpose, the indices are given two-letter names:
@table @samp
@item cp
@@ -9907,7 +10519,7 @@
Write an @code{@@syncodeindex} command before or shortly after the
end-of-header line at the beginning of a Texinfo file. For example,
to merge a function index with a concept index, write the
-following:@refill
+following:
@example
@@syncodeindex fn cp
@@ -9915,10 +10527,10 @@
@noindent
This will cause all entries designated for the function index to merge
-in with the concept index instead.@refill
+in with the concept index instead.
To merge both a variables index and a function index into a concept
-index, write the following:@refill
+index, write the following:
@example
@group
@@ -9933,41 +10545,45 @@
whatever default font is used by the index to which the entries are
now directed. This way, if you direct function names from a function
index into a concept index, all the function names are printed in the
-@code{@@code} font as you would expect.@refill
-
-@node synindex
-@subsection @code{@@synindex}
+@code{@@code} font as you would expect.
+
+
+@node @t{@@synindex}
+@subsection @code{@@synindex}: Combining indices
+
+@anchor{synindex}@c old name
@findex synindex
The @code{@@synindex} command is nearly the same as the
-@code{@@syncodeindex} command, except that it does not put the
-`from' index entries into the @code{@@code} font; rather it puts
-them in the roman font. Thus, you use @code{@@synindex} when you
-merge a concept index into a function index.@refill
+@code{@@syncodeindex} command, except that it does not put the `from'
+index entries into the @code{@@code} font; rather it puts them in the
+roman font. Thus, you use @code{@@synindex} when you merge a concept
+index into a function index.
@xref{Printing Indices & Menus}, for information about printing an index
-at the end of a book or creating an index menu in an Info file.@refill
+at the end of a book or creating an index menu in an Info file.
@node New Indices
@section Defining New Indices
+
@cindex Defining new indices
@cindex Indices, defining new
@cindex New index defining
@findex defindex
@findex defcodeindex
-In addition to the predefined indices, you may use the
-@code{@@defindex} and @code{@@defcodeindex} commands to define new
-indices. These commands create new indexing @@-commands with which
-you mark index entries. The @code{@@defindex} command is used like
-this:
+In addition to the predefined indices (@pxref{Predefined Indices}),
+you may use the @code{@@defindex} and @code{@@defcodeindex} commands
+to define new indices. These commands create new indexing @@-commands
+with which you mark index entries. The @code{@@defindex} command is
+used like this:
@example
@@defindex @var{name}
@end example
-The name of an index should be a two letter word, such as @samp{au}.
+New index names are usually two-letter words, such as @samp{au}.
For example:
@example
@@ -9992,10 +10608,9 @@
@noindent
(Evidently, @samp{au} serves here as an abbreviation for ``author''.)
-In general, Texinfo constructs the new indexing command by
-concatenating the name of the index with @samp{index}; thus, defining
-an @samp{xy} index leads to the automatic creation of an
-@code{@@xyindex} command.
+Texinfo constructs the new indexing command by concatenating the name
+of the index with @samp{index}; thus, defining an @samp{xy} index
+leads to the automatic creation of an @code{@@xyindex} command.
Use the @code{@@printindex} command to print the index, as you do with
the predefined indices. For example:
@@ -10011,12 +10626,24 @@
The @code{@@defcodeindex} is like the @code{@@defindex} command,
except that, in the printed output, it prints entries in an
-@code{@@code} font by default instead of a roman font.
+@code{@@code} font by default instead of a roman font.
You should define new indices before the end-of-header line of a
Texinfo file, and (of course) before any @code{@@synindex} or
@code{@@syncodeindex} commands (@pxref{Texinfo File Header}).
+As mentioned earlier (@pxref{Predefined Indices}), we recommend having
+a single index in the final document whenever possible, however many
+source indices you use, since then readers have only one place to
+look.
+
+When creating an index, @TeX{} creates a file whose extension is the
+name of the index (@pxref{Names of index files}). Therefore you
+should avoid using index names that collide with extensions used for
+other purposes, such as @samp{.aux} or @samp{.xml}.
+@command{makeinfo} already reports an error if a new index conflicts
+well-known extension name.
+
@node Insertions
@chapter Special Insertions
@@ -10031,7 +10658,7 @@
These are:
@itemize @bullet
-@item @samp{@@} and braces and commas.
+@item The Texinfo special characters: @samp{@@ @{@} , \ #}.
@item Whitespace within and around a sentence.
@item Accents.
@item Dots and bullets.
@@ -10040,94 +10667,100 @@
@item The degrees symbol.
@item The minus sign.
@item Mathematical expressions.
-@item Glyphs for evaluation, macros, errors, etc.
+@item Glyphs for examples of programming: evaluation, macros, errors, etc.
@item Footnotes.
-@item Images.
@end itemize
@end iftex
@menu
-* Atsign Braces Comma:: Inserting @@ and @{@} and ,.
+* Special Characters:: Inserting @@ @{@} , \ #
* Inserting Quote Characters:: Inserting left and right quotes, in code.
-* Inserting Space:: How to insert the right amount of space
- within a sentence.
-* Inserting Accents:: How to insert accents and special characters.
-* Inserting Quotation Marks:: How to insert quotation marks.
-* Dots Bullets:: How to insert dots and bullets.
-* TeX and copyright:: How to insert the @TeX{} logo
- and the copyright symbol.
-* euro:: How to insert the Euro currency symbol.
-* pounds:: How to insert the pounds currency symbol.
-* textdegree:: How to insert the degrees symbol.
-* minus:: How to insert a minus sign.
-* geq leq:: How to insert greater/less-than-or-equal signs.
-* math:: How to format a mathematical expression.
-* Click Sequences:: Inserting GUI usage sequences.
-* Glyphs:: How to indicate results of evaluation,
+* Inserting Space:: Inserting the right amount of whitespace.
+* Inserting Accents:: Inserting accents and special characters.
+* Inserting Quotation Marks:: Inserting quotation marks.
+* Inserting Math:: Formatting mathematical expressions.
+* Glyphs for Text:: Inserting Dots, bullets, currencies, etc.
+* Glyphs for Programming:: Indicating results of evaluation,
expansion of macros, errors, etc.
@end menu
-@node Atsign Braces Comma
-@section Inserting @@ and @{@} and @comma{}
+@node Special Characters
+@section Special Characters: Inserting @@ @{@} , \ #
+@anchor{Braces Atsign}@c previous names for this node
+@anchor{Atsign Braces Comma}
@cindex Special characters, inserting
@cindex Commands to insert special characters
-@samp{@@} and curly braces are special characters in Texinfo. To insert
-these characters so they appear in text, you must put an @samp{@@} in
-front of these characters to prevent Texinfo from misinterpreting
-them.
-
-The comma `,' is a special character only in one uncommon context:
-it separates arguments to commands that take multiple arguments.
-
-@menu
-* Inserting an Atsign::
-* Inserting Braces::
-* Inserting a Comma::
+@samp{@@} and curly braces are the basic special characters in
+Texinfo. To insert these characters so they appear in text, you must
+put an @samp{@@} in front of these characters to prevent Texinfo from
+misinterpreting them. Alphabetic commands are also provided.
+
+The other characters (comma, backslash, hash) are special only in
+restricted contexts, as explained in the respective sections.
+
+@menu
+* Inserting an Atsign:: @code{@@@@}, @code{@@atchar@{@}}.
+* Inserting Braces:: @code{@@@{ @@@}}, @code{@@l rbracechar@{@}}.
+* Inserting a Comma:: , and @code{@@comma@{@}}.
+* Inserting a Backslash:: \ and @code{@@backslashchar@{@}}.
+* Inserting a Hashsign:: # and @code{@@hashchar@{@}}.
@end menu
@node Inserting an Atsign
-@subsection Inserting `@@' with @code{@@@@}
+@subsection Inserting `@@' with @code{@@@@} and @code{@@atchar@{@}}
+@cindex At sign, inserting
+@cindex Inserting @@ @r{(literal @samp{@@})}
@findex @@ @r{(literal @samp{@@})}
-@cindex Inserting @@ @r{(literal @samp{@@})}
-
-@code{@@@@} stands for a single @samp{@@} in either printed or Info
-output.
-
-Do not put braces after an @code{@@@@} command.
+@findex @@atchar@{@} @r{(literal @samp{@@})}
+
+@code{@@@@} produces a single @samp{@@} character in the output. Do
+not put braces after an @code{@@@@} command.
+
+@code{@@atchar@{@}} also produces a single @samp{@@} character in the
+output. It does need following braces, as usual for alphabetic
+commands. In inline conditionals (@pxref{Inline Conditionals}), it
+can be necessary to avoid using the literal @samp{@@} character in the
+source (and may be clearer in other contexts).
@node Inserting Braces
-@subsection Inserting `@{' and `@}' with @code{@@@{} and @code{@@@}}
-@cindex Braces, inserting
+@subsection Inserting `@{ `@}' with @code{@@@{ @@@}} and @code{@@l rbracechar@{@}}
+
@findex @{ @r{(literal @samp{@{})}
@findex @} @r{(literal @samp{@}})}
-
-@code{@@@{} stands for a single @samp{@{} in either printed or Info
-output.
-
-@code{@@@}} stands for a single @samp{@}} in either printed or Info
-output.
-
-Do not put braces after either an @code{@@@{} or an @code{@@@}}
-command.
+@findex @@lbracechar@{@} @r{(literal @samp{@{})}
+@findex @@rbracechar@{@} @r{(literal @samp{@}})}
+@cindex Braces, inserting
+
+@code{@@@{} produces a single @samp{@{} in the output, and @code{@@@}}
+produces a single @samp{@}}. Do not put braces after either an
+@code{@@@{} or an @code{@@@}} command.
+
+@code{@@lbracechar@{@}} and @code{@@rbracechar@{@}} also produce
+single @samp{@{} and @samp{@}} characters in the output. They do need
+following braces, as usual for alphabetic commands. In inline
+conditionals (@pxref{Inline Conditionals}), it can be
+necessary to avoid using literal brace characters in the source (and
+may be clearer in other contexts).
@node Inserting a Comma
@subsection Inserting `,' with @code{@@comma@{@}}
-@cindex Commas, inserting
+
@findex comma
+@cindex Comma, inserting
Ordinarily, a comma `,' is a normal character that can be simply typed
in your input where you need it.
-However, Texinfo uses the comma as a special character in one uncommon
-context: some commands, such as @code{@@acronym} (@pxref{acronym}) and
-@code{@@xref} (@pxref{Cross References}), as well as user-defined
-macros (@pxref{Defining Macros}), can take more than one argument. In
-these cases, the comma character is used to separate arguments.
+However, Texinfo uses the comma as a special character only in one
+context: to separate arguments to those Texinfo commands, such as
+@code{@@acronym} (@pxref{@t{@@acronym}}) and @code{@@xref}
+(@pxref{Cross References}), as well as user-defined macros
+(@pxref{Defining Macros}), which take more than one argument.
Since a comma character would confuse Texinfo's parsing for these
commands, you must use the command @samp{@@comma@{@}} instead if you want
@@ -10139,8 +10772,82 @@
@@mymac@{One argument@@comma@{@} containing a comma@}
@end example
-Although @comma{} can be used nearly anywhere, there is no need for it
-anywhere except in this unusual case.
+Although @samp{@@comma@{@}} can be used nearly anywhere, there is no
+need for it anywhere except in this unusual case.
+
+(Incidentally, the name @samp{@@comma} lacks the @samp{char} suffix used
+in its companion commands only for historical reasons. It didn't seem
+important enough to define a synonym.)
+
+
+@node Inserting a Backslash
+@subsection Inserting `\' with @code{@@backslashchar@{@}}
+
+@findex backslash
+@cindex Backslash, inserting
+
+Ordinarily, a backslash `\' is a normal character in Texinfo that can
+be simply typed in your input where you need it. The result is to
+typeset the backslash from the typewriter font.
+
+However, Texinfo uses the backslash as a special character in one
+restricted context: to delimit formal arguments in the bodies of
+user-defined macros (@pxref{Defining Macros}).
+
+Due to the vagaries of macro argument parsing, it is more reliable to
+pass an alphabetic command that produces a backslash instead of using
+a literal \. Hence @code{@@backslashchar@{@}}. Here is an example
+macro call:
+
+@example
+@@mymac@{One argument@@backslashchar@{@} with a backslash@}
+@end example
+
+Texinfo documents may also use \ as a command character inside
+@code{@@math} (@pxref{Inserting Math}). In this case, @code{@@\} or
+@code{\backslash} produces a ``math'' backslash (from the math symbol
+font), while @code{@@backslashchar@{@}} produces a typewriter
+backslash as usual.
+
+Although @samp{@@backslashchar@{@}} can be used nearly anywhere, there
+is no need for it except in these unusual cases.
+
+
+@node Inserting a Hashsign
+@subsection Inserting `#' with @code{@@hashchar@{@}}
+
+@findex @@hashchar@{@} @r{(literal @samp{#})}
+@cindex Inserting #
+@cindex Hash sign, inserting
+
+Ordinarily, a hash `#' is a normal character in Texinfo that can be
+simply typed in your input where you need it. The result is to
+typeset the hash character from the current font.
+
+@cindex Number sign, inserting
+@cindex Octotherp, inserting
+@cindex Sharp sign (not), inserting
+This character has many other names, varying by locale, such as
+``number sign'', ``pound'', and ``octothorp''. It is also sometimes
+called ``sharp'' or ``sharp sign'' since it vaguely resembles the
+musical symbol by that name. In situations where Texinfo is used,
+``hash'' is the most common in our experience.
+
+However, Texinfo uses the hash character as a special character in one
+restricted context: to introduce the so-called @code{#line} directive
+and variants (@pxref{External Macro Processors}).
+
+So, in order to typeset an actual hash character in such a place (for
+example, in a program that needs documentation about @code{#line}),
+it's necessary to use @code{@@hashchar@{@}} or some other construct.
+Here's an example:
+
+@example
+@@hashchar@{@} 10 "example.c"
+@end example
+
+Although @samp{@@hashchar@{@}} can be used nearly anywhere, there
+is no need for it anywhere except this unusual case.
@node Inserting Quote Characters
@@ -10162,35 +10869,37 @@
characters. (The free PDF reader @command{xpdf} works fine, but other
PDF readers, both free and nonfree, have problems.)
-If this is a concern for your document, Texinfo provides two special
-settings via @code{@@set}:
-
-@table @code
-@item @@set txicodequoteundirected
-causes the output for the @code{'} character to be the undirected
-single quote, like this:
-@set txicodequoteundirected
+If this is a concern for you, Texinfo provides these two commands:
+
+@ftable @code
+@item @@codequoteundirected @var{on-off}
+@cindex undirected single quote
+causes the output for the @code{'} character in code environments to
+be the undirected single quote, like this:
+@set txicodequoteundirected on
@code{'}.
-@clear txicodequoteundirected
-
-@item @@set txicodequotebacktick
-Cause the output for the @code{`} character to be the standalone grave
-accent, like this:
-@set txicodequotebacktick
+@set txicodequoteundirected off
+
+@item @@codequotebacktick @var{on-off}
+@cindex backtick
+@cindex grave accent, standalone
+causes the output for the @code{`} character in code environments to
+be the backtick character (standalone grave accent), like this:
+@set txicodequotebacktick on
@code{`}.
-@clear txicodequotebacktick
-
-@end table
-
-@code{xyza`'bc}
+@set txicodequotebacktick off
+@end ftable
If you want these settings for only part of the document,
-@code{@@clear} will restore the normal behavior, as in
-@code{@@clear@tie{}txicodequoteundirected}.
-
-These settings affect @code{@@code}, @code{@@example}, and
-@code{@@verbatim}; they do not affect @code{@@samp}. (@xref{Useful
-Highlighting}.)
+@code{@@codequote... off} will restore the normal behavior, as in
+@code{@@codequoteundirected off}.
+
+These settings affect @code{@@code}, @code{@@example}, @code{@@kbd},
+@code{@@samp}, @code{@@verb}, and @code{@@verbatim}. @xref{Useful
+Highlighting}.
+
+This feature used to be controlled by @code{@@set} variable names;
+they are still supported, but the command interface is preferred.
@node Inserting Space
@@ -10202,111 +10911,12 @@
kinds within and after sentences.
@menu
+* Multiple Spaces:: Inserting multiple spaces.
* Not Ending a Sentence:: Sometimes a . doesn't end a sentence.
* Ending a Sentence:: Sometimes it does.
-* Multiple Spaces:: Inserting multiple spaces.
-* frenchspacing:: Specifying end-of-sentence spacing.
-* dmn:: How to format a dimension.
-@end menu
-
-
-@node Not Ending a Sentence
-@subsection Not Ending a Sentence
-
-@cindex Not ending a sentence
-@cindex Sentence non-ending punctuation
-@cindex Periods, inserting
-Depending on whether a period or exclamation point or question mark is
-inside or at the end of a sentence, less or more space is inserted after
-a period in a typeset manual. Since it is not always possible
-to determine when a period ends a sentence and when it is used
-in an abbreviation, special commands are needed in some circumstances.
-Usually, Texinfo can guess how to handle periods, so you do not need to
-use the special commands; you just enter a period as you would if you
-were using a typewriter, which means you put two spaces after the
-period, question mark, or exclamation mark that ends a sentence.
-
-@findex <colon> @r{(suppress end-of-sentence space)}
-Use the @code{@@:}@: command after a period, question mark,
-exclamation mark, or colon that should not be followed by extra space.
-For example, use @code{@@:}@: after periods that end abbreviations
-which are not at the ends of sentences.
-
-For example,
-
-@example
-foo vs.@@: bar
-foo vs. bar
-@end example
-
-@noindent
-@ifnottex
-produces
-@end ifnottex
-@iftex
-produces the following. If you look carefully at this printed output,
-you will see a little extraneous space after @samp{vs.}@: in the second
-line.
-@end iftex
-
-@quotation
-foo vs.@: bar @*
-foo vs. bar
-@end quotation
-
-@noindent
-@code{@@:} has no effect on the Info and HTML output. In Docbook and
-XML, the previous punctuation character (.?!:) is output as an entity
-instead of as the normal character: @samp{. ? !
-:}. This gives further processors a chance to notice and not
-add the usual extra space.
-
-Do not put braces after @code{@@:} (or any non-alphabetic command).
-
-
-@node Ending a Sentence
-@subsection Ending a Sentence
-
-@cindex Ending a Sentence
-@cindex Sentence ending punctuation
-
-@findex . @r{(end of sentence)}
-@findex ! @r{(end of sentence)}
-@findex ? @r{(end of sentence)}
-Use @code{@(a).}@: instead of a period, @code{@@!}@: instead of an
-exclamation point, and @code{@@?}@: instead of a question mark at the end
-of a sentence that ends with a capital letter. Otherwise, @TeX{}
-will think the letter is an abbreviation and will not insert the correct
-end-of-sentence spacing. Here is an example:
-
-@example
-Give it to M.I.B. and to M.E.W@@. Also, give it to R.J.C@@.
-Give it to M.I.B. and to M.E.W. Also, give it to R.J.C.
-@end example
-
-@noindent
-@ifnottex
-produces
-@end ifnottex
-@iftex
-produces the following. If you look carefully at this printed output,
-you will see a little more whitespace after the @samp{W} in the first
-line.
-@end iftex
-
-@quotation
-Give it to M.I.B. and to M.E.W@. Also, give it to R.J.C@.@*
-Give it to M.I.B. and to M.E.W. Also, give it to R.J.C.
-@end quotation
-
-In the Info file output, @code{@(a).}@: is equivalent to a simple
-(a)samp{.}; likewise for @code{@@!}@: and @code{@@?}@:.
-
-The meanings of @code{@@:} and @code{@(a).}@: in Texinfo are designed to
-work well with the XEmacs sentence motion commands (@pxref{Sentences,,,
-xemacs, XEmacs User's Manual}).
-
-Do not put braces after any of these commands.
+* @t{@@frenchspacing}:: Specifying end-of-sentence spacing.
+* @t{@@dmn}:: Formatting a dimension.
+@end menu
@node Multiple Spaces
@@ -10319,22 +10929,19 @@
@findex <tab>
@findex <newline>
-Ordinarily, @TeX{} collapses multiple whitespace characters (space, tab,
-and newline) into a single space. Info output, on the other hand,
-preserves whitespace as you type it, except for changing a newline into
-a space; this is why it is important to put two spaces at the end of
-sentences in Texinfo documents.
-
-Occasionally, you may want to actually insert several consecutive
-spaces, either for purposes of example (what your program does with
+Ordinarily, multiple whitespace characters (space, tab, and newline)
+are collapsed into a single space.
+
+Occasionally, you may want to produce several consecutive spaces,
+either for purposes of example (e.g., what your program does with
multiple spaces as input), or merely for purposes of appearance in
headings or lists. Texinfo supports three commands:
-@code{@@@kbd{SPACE}}, @code{@@@kbd{TAB}}, and @code{@@@kbd{NL}}, all of
-which insert a single space into the output. (Here,
+@code{@@@kbd{SPACE}}, @code{@@@kbd{TAB}}, and @code{@@@kbd{NL}}, all
+of which insert a single space into the output. (Here,
@code{@@@kbd{SPACE}} represents an @samp{@@} character followed by a
-space, i.e., @samp{@@ }, and @kbd{TAB} and @kbd{NL} represent the tab
-character and end-of-line, i.e., when @samp{@@} is the last character on
-a line.)
+space, i.e., @samp{@@ }, @kbd{TAB} represents an actual tab character,
+and @kbd{NL} represent the tab character and end-of-line, i.e., when
+@samp{@@} is the last character on a line.)
For example,
@example
@@ -10342,8 +10949,7 @@
example.
@end example
-@noindent
-produces
+@noindent produces
@example
Spacey@ @ @ @
@@ -10355,25 +10961,144 @@
Do not follow any of these commands with braces.
-To produce a non-breakable space, see @ref{tie, @code{@@tie}}.
-
-
-@node frenchspacing
-@subsection @code{@@frenchspacing} @var{val}: Control sentence spacing
+To produce a non-breakable space, see @ref{@t{@@tie}}.
+
+
+@node Not Ending a Sentence
+@subsection Not Ending a Sentence
+
+@cindex Not ending a sentence
+@cindex Sentence non-ending punctuation
+@cindex Periods, inserting
+@cindex Spacing, in the middle of sentences
+Depending on whether a period or exclamation point or question mark is
+inside or at the end of a sentence, slightly less or more space is
+inserted after a period in a typeset manual. Since it is not always
+possible to determine automatically when a period ends a sentence,
+special commands are needed in some circumstances. Usually, Texinfo
+can guess how to handle periods, so you do not need to use the special
+commands; you just enter a period as you would if you were using a
+typewriter: put two spaces after the period, question mark, or
+exclamation mark that ends a sentence.
+
+@findex <colon> @r{(suppress end-of-sentence space)}
+Use the @code{@@:}@: command after a period, question mark,
+exclamation mark, or colon that should not be followed by extra space.
+For example, use @code{@@:}@: after periods that end (lowercase)
+abbreviations which are not at the ends of sentences.
+
+Also, when a parenthetical remark in the middle of a sentence (like
+this one!)@: ends with a period, exclamation point, or question mark,
+@code{@@:} should be used after the right parenthesis. Similarly for
+right brackets and right quotes (both single and double).
+
+For example,
+
+@example
+foo vs.@@: bar (or?)@@: baz
+foo vs. bar (or?) baz
+@end example
+
+@noindent
+@ifnottex
+produces
+@end ifnottex
+@iftex
+produces the following. If you look carefully at this printed output,
+you will see a bit of extraneous space after the @samp{vs.}@: and
+@samp{(or?)}@: in the second line.
+@end iftex
+
+@quotation
+foo vs.@: bar (or?)@: baz@*
+foo vs. bar (or?) baz
+@end quotation
+
+@noindent
+@code{@@:} has no effect on the HTML or Docbook output.
+
+Do not put braces after @code{@@:} (or any non-alphabetic command).
+
+A few Texinfo commands force normal interword spacing, so that you
+don't have to insert @code{@@:} where you otherwise would. These are
+the code-like highlighting commands, @code{@@var}, @code{@@abbr}, and
+@code{@@acronym} (@pxref{Useful Highlighting}). For example, in
+@samp{@@code@{foo. bar@}} the period is not considered the end of a
+sentence, and no extra space is inserted.
+
+
+@node Ending a Sentence
+@subsection Ending a Sentence
+
+@cindex Ending a Sentence
+@cindex Sentence ending punctuation
+
+@findex . @r{(end of sentence)}
+@findex ! @r{(end of sentence)}
+@findex ? @r{(end of sentence)}
+@cindex Spacing, at ends of sentences
+As mentioned above, Texinfo normally inserts additional space after
+the end of a sentence. It uses a simple heuristic for this: a
+sentence ends with a period, exclamation point, or question mark
+followed by optional closing punctuation and then whitespace, and
+@emph{not} preceded by a capital letter.
+
+Use @code{@(a).}@: instead of a period, @code{@@!}@: instead of an
+exclamation point, and @code{@@?}@: instead of a question mark at the
+end of a sentence that does end with a capital letter. For example:
+
+@example
+Give it to M.I.B. and to M.E.W@@. Also, give it to R.J.C@@.
+Give it to M.I.B. and to M.E.W. Also, give it to R.J.C.
+@end example
+
+@noindent
+The output follows. In printed output and Info, you can see the
+desired extra whitespace after the @samp{W} in the first line.
+
+@quotation
+Give it to M.I.B. and to M.E.W@. Also, give it to R.J.C@.@*
+Give it to M.I.B. and to M.E.W. Also, give it to R.J.C.
+@end quotation
+
+In the HTML output, @code{@(a).}@: is equivalent to a simple @samp{.};
+likewise for @code{@@!}@: and @code{@@?}@:.
+
+The meanings of @code{@@:} and @code{@@.}, etc.@: in Texinfo are
+designed to work well with the XEmacs sentence motion commands
+(@pxref{Sentences,,, xemacs, XEmacs User's Manual}).
+
+Do not put braces after any of these commands.
+
+A few Texinfo commands are not considered as being an abbreviation,
+even though they may end with a capital letter when expanded, so that
+you don't have to insert @code{@@.} and companions. This is the case
+for code-like highlighting commands, @code{@@var} arguments ending
+with a capital letter, and @code{@@TeX}. For example, that sentence
+ended with @samp{@@code@{@@@@TeX(a)}.}; @code{@@.} was not needed. Also
+in @code{... @@var@{VARNAME@}. Text} the period after @var{VARNAME}
+ends the sentence; there is no need to use @code{@@.}.
+
+
+@node @t{@@frenchspacing}
+@subsection @code{@@frenchspacing} @var{val}: Control Sentence Spacing
+
+@anchor{frenchspacing}@c old name
@findex frenchspacing
@cindex French spacing
@cindex Sentences, spacing after
@cindex Space, after sentences
In American typography, it is traditional and correct to put extra
-space at the end of a sentence, after a semi-colon, and so on. This
-is the default in Texinfo. In French typography (and many others),
-this extra space is wrong; all spaces are uniform.
+space at the end of a sentence. This is the default in Texinfo
+(implemented in Info and printed output; for HTML, we don't try to
+override the browser). In French typography (and others), this extra
+space is wrong; all spaces are uniform.
Therefore Texinfo provides the @code{@@frenchspacing} command to
control the spacing after punctuation. It reads the rest of the line
as its argument, which must be the single word @samp{on} or @samp{off}
-(always these words, regardless of the language) of the document.
+(always these words, regardless of the language of the document).
Here is an example:
@example
@@ -10384,7 +11109,7 @@
This is text. Two sentences. Three sentences. Non-French spacing.
@end example
-@noindent produces (there will be no difference in Info):
+@noindent produces:
@frenchspacing on
This is text. Two sentences. Three sentences. French spacing.
@@ -10392,53 +11117,28 @@
@frenchspacing off
This is text. Two sentences. Three sentences. Non-French spacing.
-@code{@@frenchspacing} mainly affects the printed output, including
-the output after @code{@@.}, @code{@@!}, and @code{@@?} (@pxref{Ending
-a Sentence}).
-
-In Info, usually space characters in the input are written unaltered
-to the output, and @code{@@frenchspacing} does not change this. It
-does change the one case where @command{makeinfo} outputs a space on
-its own: when a sentence ends at a newline in the source. Here's an
-example:
-
-@example
-Some sentence.
-Next sentence.
-@end example
-
-@noindent produces in Info output, with @code{@@frenchspacing off}
-(the default), two spaces between the sentences:
-
-@example
-Some sentence. Next sentence.
-@end example
-
-@noindent With @code{@@frenchspacing on}, @command{makeinfo} outputs
-only a single space:
-
-@example
-Some sentence. Next sentence.
-@end example
+@code{@@frenchspacing} also affects the output after @code{@@.},
+@code{@@!}, and @code{@@?} (@pxref{Ending a Sentence}).
@code{@@frenchspacing} has no effect on the HTML or Docbook output;
for XML, it outputs a transliteration of itself (@pxref{Output
Formats}).
-@node dmn
+@node @t{@@dmn}
@subsection @code{@@dmn}@{@var{dimension}@}: Format a Dimension
+
+@anchor{dmn}@c old name
@cindex Thin space between number, dimension
@cindex Dimension formatting
@cindex Format a dimension
@findex dmn
-At times, you may want to write @samp{12@dmn{pt}} or
-@samp{8.5(a)dmn{in}} with little or no space between the number and the
-abbreviation for the dimension. You can use the @code{@@dmn} command
-to do this. On seeing the command, @TeX{} inserts just enough space
-for proper typesetting; the Info formatting commands insert no space
-at all, since the Info file does not require it.
+You can use the @code{@@dmn} command to format a dimension with a
+little extra space in the printed output. That is, on seeing
+@code{@@dmn}, @TeX{} inserts just enough space for proper typesetting;
+in other output formats, the formatting commands insert no space at
+all.
To use the @code{@@dmn} command, write the number and then follow it
immediately, with no intervening space, by @code{@@dmn}, and then by
@@ -10455,13 +11155,14 @@
A4 paper is 8.27@dmn{in} wide.
@end quotation
-Not everyone uses this style. Some people prefer @w{(a)samp{8.27 in.@@:}}
-or @w{(a)samp{8.27 inches}} to @samp{8.27@@dmn@{in@}} in the Texinfo file.
-In these cases, however, the formatters may insert a line break between
-the number and the dimension, so use @code{@@w} (@pxref{w}). Also, if
-you write a period after an abbreviation within a sentence, you should
-write @samp{@@:} after the period to prevent @TeX{} from inserting extra
-whitespace, as shown here. @xref{Not Ending a Sentence}.
+Not everyone uses this style. Some people prefer `8.27(a)tie{}in.'@: or
+`8.27@tie{}inches'. In these cases, however, you need to use
+@code{@@tie} (@pxref{@t{@@tie}}) or @code{@@w} (@pxref{@t{@@w}})
+so that no line break can occur between the number and the dimension.
+Also, if you write a period after an abbreviation within a sentence
+(as with the `in.'@: above), you should write @samp{@@:} after the
+period to prevent @TeX{} from inserting extra whitespace, as shown
+here. @xref{Not Ending a Sentence}.
@node Inserting Accents
@@ -10492,9 +11193,8 @@
To get the true accented characters output in Info, not just the ASCII
transliterations, it is necessary to specify @code{@@documentencoding}
with an encoding which supports the required characters
-(@pxref{documentencoding,,@code{@@documentencoding}}). In this case,
-you can also use non-ASCII (e.g., pre-accented) characters in the
-source file.
+(@pxref{@t{@@documentencoding}}). In this case, you can also use
+non-ASCII (e.g., pre-accented) characters in the source file.
@findex " @r{(umlaut accent)}
@cindex Umlaut accent
@@ -10514,6 +11214,8 @@
@cindex Dot accent
@findex H @r{(Hungarian umlaut accent)}
@cindex Hungarian umlaut accent
+@findex ogonek
+@cindex Ogonek diacritic
@findex ringaccent
@cindex Ring accent
@findex tieaccent
@@ -10539,6 +11241,7 @@
@item @t{@@~o} @tab @~o @tab tilde accent
@item @t{@@dotaccent@{o@}} @tab @dotaccent{o} @tab overdot accent
@item @t{@@H@{o@}} @tab @H{o} @tab long Hungarian umlaut
+@item @t{@@ogonek@{a@}} @tab @ogonek{a} @tab ogonek
@item @t{@@ringaccent@{o@}} @tab @ringaccent{o} @tab ring accent
@item @t{@@tieaccent@{oo@}} @tab @tieaccent{oo} @tab tie-after accent
@item @t{@@u@{o@}} @tab @u{o} @tab breve accent
@@ -10562,6 +11265,12 @@
@cindex @ae{}
@findex AE
@cindex @AE{}
+@cindex Icelandic
+@cindex Eth
+@findex dh
+@cindex @dh{}
+@findex DH
+@cindex @DH{}
@findex dotless
@cindex @dotless{i} (dotless i)
@cindex @dotless{j} (dotless j)
@@ -10591,18 +11300,25 @@
@cindex Es-zet
@cindex Sharp S
@cindex German S
+@cindex Thorn
+@findex th
+@cindex @th{}
+@findex TH
+@cindex @TH{}
@multitable {@t{@@questiondown@{@}}} {oe OE} {es-zet or sharp S}
-@item @t{@@exclamdown@{@}} @tab @exclamdown{} @tab upside-down !
-@item @t{@@questiondown@{@}} @tab @questiondown{} @tab upside-down ?
-@item @t{@@aa@{@} @@AA@{@}} @tab @aa{} @AA{} @tab a,A with circle
-@item @t{@@ae@{@} @@AE@{@}} @tab @ae{} @AE{} @tab ae,AE ligatures
-@item @t{@@dotless@{i@}} @tab @dotless{i} @tab dotless i
-@item @t{@@dotless@{j@}} @tab @dotless{j} @tab dotless j
-@item @t{@@l@{@} @@L@{@}} @tab @l{} @L{} @tab suppressed-L,l
-@item @t{@@o@{@} @@O@{@}} @tab @o{} @O{} @tab O,o with slash
-@item @t{@@oe@{@} @@OE@{@}} @tab @oe{} @OE{} @tab oe,OE ligatures
-@item @t{@@ordf@{@} @@ordm@{@}} @tab @ordf{} @ordm{} @tab Spanish ordinals
-@item @t{@@ss@{@}} @tab @ss{} @tab es-zet or sharp S
+@item @t{@@exclamdown@{@}} @tab @exclamdown{} @tab upside-down !
+@item @t{@@questiondown@{@}} @tab @questiondown{} @tab upside-down ?
+@item @t{@@aa@{@} @@AA@{@}} @tab @aa{} @AA{} @tab a,A with circle
+@item @t{@@ae@{@} @@AE@{@}} @tab @ae{} @AE{} @tab ae,AE ligatures
+@item @t{@@dh@{@} @@DH@{@}} @tab @dh{} @DH{} @tab Icelandic eth
+@item @t{@@dotless@{i@}} @tab @dotless{i} @tab dotless i
+@item @t{@@dotless@{j@}} @tab @dotless{j} @tab dotless j
+@item @t{@@l@{@} @@L@{@}} @tab @l{} @L{} @tab suppressed-L,l
+@item @t{@@o@{@} @@O@{@}} @tab @o{} @O{} @tab O,o with slash
+@item @t{@@oe@{@} @@OE@{@}} @tab @oe{} @OE{} @tab oe,OE ligatures
+@item @t{@@ordf@{@} @@ordm@{@}} @tab @ordf{} @ordm{} @tab Spanish ordinals
+@item @t{@@ss@{@}} @tab @ss{} @tab es-zet or sharp S
+@item @t{@@th@{@} @@TH@{@}} @tab @th{} @TH{} @tab Icelandic thorn
@end multitable
@@ -10646,9 +11362,9 @@
@cindex Latin 1
In order to get the symbols for the quotation marks in encoded Info
output, it is necessary to specify @code{@@documentencoding UTF-8}.
-(@xref{documentencoding,,@code{@@documentencoding}}.) Double
-guillemets are also present in ISO 8859-1 (aka Latin@tie{}1) and ISO
-8859-15 (aka Latin@tie{}9).
+(@xref{@t{@@documentencoding}}.) Double guillemets are also
+present in ISO 8859-1 (aka Latin@tie{}1) and ISO 8859-15 (aka
+Latin@tie{}9).
@cindex European Computer Modern fonts
@cindex EC fonts
@@ -10673,11 +11389,12 @@
@cindex Left quotation marks
@cindex Right quotation marks
@findex quotedblleft
-@cindex ``
+@cindex `@w{}`
@findex quoteleft
@cindex `
+@cindex " (undirected double quote character)
@findex quotedblright
-@cindex ''
+@cindex '@w{}'
@findex quoteright
@cindex '
@cindex Double low-9 quotation mark
@@ -10727,20 +11444,22 @@
@item @t{@@guilsinglright@{@}} @tab @guilsinglright{} @tab Single right-pointing angle quotation mark (U+203A)
@end multitable
+@cindex Auk, bird species
For the double angle quotation marks, Adobe and @LaTeX{} glyph names
are also supported: @code{@@guillemotleft} and
-@code{@@guillemotright}. These names are actually incorrect; a
+@code{@@guillemotright}. These names are incorrect; a
``guillemot'' is a bird species (a type of auk).
Traditions for quotation mark usage vary to a great extent between
-languages (@url{http://@/en.wikipedia.org/@/wiki/@/Quotation_mark%2C_non-English_usage@/#Overview}).
+languages
+(@url{http://@/en.wikipedia.org/@/wiki/@/Quotation_mark%2C_non-English_usage@/#Overview}).
Texinfo does not provide commands for typesetting quotation marks
according to the numerous traditions. Therefore, you have to choose
the commands appropriate for the language of your manual. Sometimes
-aliases (@pxref{alias,,@code{@@alias}}) can simplify the usage and
-make the source code more readable. For example, in German,
+aliases (@pxref{@t{@@alias}}) can simplify the usage and make the
+source code more readable. For example, in German,
@code{@@quotedblbase} is used for the left double quote, and the right
-double quote is actually @code{@@quotedblleft}, which is
+double quote is the glyph produced by @code{@@quotedblleft}, which is
counter-intuitive. Thus, in this case the following aliases would be
convenient:
@@ -10750,89 +11469,125 @@
@end example
-@node Dots Bullets
-@section Inserting Ellipsis and Bullets
-@cindex Dots, inserting
-@cindex Bullets, inserting
-@cindex Ellipsis, inserting
-@cindex Inserting ellipsis
-@cindex Inserting dots
-@cindex Special typesetting commands
-@cindex Typesetting commands for dots, etc.
-
-An @dfn{ellipsis} (a line of dots) is not typeset as a string of
-periods, so a special command is used for ellipsis in Texinfo. The
-@code{@@bullet} command is special, too. Each of these commands is
-followed by a pair of braces, @samp{@{@}}, without any whitespace
-between the name of the command and the braces. (You need to use braces
-with these commands because you can use them next to other text; without
-the braces, the formatters would be confused. @xref{Command Syntax, ,
-@@-Command Syntax}, for further information.)@refill
-
-@menu
-* dots:: How to insert dots @dots{}
-* bullet:: How to insert a bullet.
-@end menu
-
-
-@node dots
-@subsection @code{@@dots}@{@} (@dots{}) and @code{@@enddots}@{@} (@enddots{})
-@findex dots
-@findex enddots
-@cindex Inserting dots
-@cindex Dots, inserting
-
-Use the @code{@@dots@{@}} command to generate an ellipsis, which is
-three dots in a row, appropriately spaced @dots{} like so. Do
-not simply write three periods in the input file; that would work for
-the Info file output, but would produce the wrong amount of space
-between the periods in the printed manual.
-
-Similarly, the @code{@@enddots@{@}} command generates an
-end-of-sentence ellipsis, which has different spacing afterwards,
-@enddots{} Look closely to see the difference.
+@node Inserting Math
+@section @code{@@math}: Inserting Mathematical Expressions
+
+@anchor{math}@c old name
+@findex math
+@cindex Mathematical expressions, inserting
+@cindex Formulas, mathematical
+
+You can write a short mathematical expression with the @code{@@math}
+command. Write the mathematical expression between braces, like this:
+
+@example
+@@math@{(a + b)(a + b) = a^2 + 2ab + b^2@}
+@end example
@iftex
-Here is an ellipsis: @dots{}
-Here are three periods in a row: ...
-
-In printed output, the three periods in a row are much closer together than
-the dots in the ellipsis.
+@noindent This produces the following in @TeX{}:
+
+@display
+@math{(a + b)(a + b) = a^2 + 2ab + b^2}
+@end display
+
+@noindent and the following in other formats:
@end iftex
-
-
-@node bullet
-@subsection @code{@@bullet}@{@} (@bullet{})
-@findex bullet
-
-Use the @code{@@bullet@{@}} command to generate a large round dot, or
-the closest possible thing to one. In Info, an asterisk is used.@refill
-
-Here is a bullet: @bullet{}
-
-When you use @code{@@bullet} in @code{@@itemize}, you do not need to
-type the braces, because @code{@@itemize} supplies them.
-(@xref{itemize, , @code{@@itemize}}.)(a)refill
-
-
-@node TeX and copyright
-@section Inserting @TeX{} and Legal Symbols: @copyright{}, @registeredsymbol{}
-
-The logo `@TeX{}' is typeset in a special fashion and it needs an
-@@-command. The copyright and registered symbols, `@copyright{}' and
-`@registeredsymbol{}', is also special. Each of these commands is
-followed by a pair of braces, @samp{@{@}}, without any whitespace
-between the name of the command and the braces.
-
-@menu
-* tex:: The @TeX{} logos.
-* copyright symbol:: The copyright symbol (c in a circle).
-* registered symbol:: The registered symbol (R in a circle).
-@end menu
-
-
-@node tex
+@ifnottex
+@noindent This produces the following in Info and HTML:
+@end ifnottex
+
+@example
+(a + b)(a + b) = a^2 + 2ab + b^2
+@end example
+
+The @code{@@math} command has no special effect on the Info and HTML
+output. @command{makeinfo} expands any @@-commands as usual,
+but it does not try to produce good mathematical formatting in any
+way.
+
+However, as far as the @TeX{} output is concerned, plain @TeX{}
+mathematical commands are allowed in @code{@@math}, starting with
+@samp{\}, and the plain @TeX{} math characters like @samp{^} and
+@samp{_} are also recognized. In essence, @code{@@math} drops you
+into plain @TeX{} math mode.
+
+This allows you to conveniently write superscripts and subscripts (as
+in the above example), and also to use all the plain @TeX{} math
+control sequences for symbols, functions, and so on, and thus get
+proper formatting in the @TeX{} output, at least.
+
+It's best to use @samp{\} instead of @samp{@@} for any such
+mathematical commands; otherwise, @command{makeinfo} will complain.
+On the other hand, @command{makeinfo} allows input with matching (but
+unescaped) braces, such as @samp{k_@{75@}}, although it complains
+about such bare braces in regular input.
+
+Here's an example:
+
+@example
+@@math@{\sin 2\pi \equiv \cos 3\pi@}
+@end example
+
+@iftex
+@noindent which looks like this in @TeX{}:
+@display
+@math{\sin 2\pi \equiv \cos 3\pi}
+@end display
+
+@noindent and
+@end iftex
+@noindent which looks like the input in Info and HTML:
+@example
+\sin 2\pi \equiv \cos 3\pi
+@end example
+
+@findex \ @r{(literal \ in @code{@@math})}
+Since @samp{\} is an escape character inside @code{@@math}, you can
+use @code{@@\} to get a literal backslash (@code{\\} will work in
+@TeX{}, but you'd get the literal two characters @samp{\\} in Info).
+@code{@@\} is not defined outside of @code{@@math}, since a @samp{\}
+ordinarily produces a literal (typewriter) @samp{\}. You can also use
+@code{@@backslashchar@{@}} in any mode to get a typewriter backslash.
+@xref{Inserting a Backslash}.
+
+@cindex Displayed equations
+@cindex Equations, displayed
+For displayed equations, you must at present use @TeX{} directly
+(@pxref{Raw Formatter Commands}).
+
+
+@node Glyphs for Text
+@section Glyphs for Text
+
+@anchor{Glyphs}@c old name
+@anchor{TeX and copyright}@c another old node, now split into two
+@cindex Glyphs for text
+@cindex Textual glyphs
+
+Texinfo has support for a few additional glyphs that are commonly used
+in printed text but not available in ASCII@. Of course, there are
+many thousands more. It is possible to use Unicode characters as-is
+as far as @code{makeinfo} is concerned, but @TeX{} is not so lucky.
+
+@menu
+* @t{@@TeX @@LaTeX}:: The @TeX{} logos.
+* @t{@@copyright}:: The copyright symbol (c in a circle).
+* @t{@@registeredsymbol}:: The registered symbol (R in a circle).
+* @t{@@dots}:: How to insert ellipses: @dots{} and @enddots{}
+* @t{@@bullet}:: How to insert a bullet: @bullet{}
+* @t{@@euro}:: How to insert the euro currency symbol.
+* @t{@@pounds}:: How to insert the pounds currency symbol.
+* @t{@@textdegree}:: How to insert the degrees symbol.
+* @t{@@minus}:: How to insert a minus sign.
+* @t{@@geq @@leq}:: How to insert greater/less-than-or-equal signs.
+@end menu
+
+
+@node @t{@@TeX @@LaTeX}
@subsection @code{@@TeX}@{@} (@TeX{}) and @code{@@LaTeX}@{@} (@LaTeX{})
+
+@anchor{tex}@c old name
@findex TeX
@findex LaTeX
@cindex Logos, @TeX{}
@@ -10850,22 +11605,29 @@
@TeX{}, very loosely analogous to Texinfo in that it emphasizes
logical structure, but much (much) larger.)
-The spelling of these commands are unusual among Texinfo commands in
-that they use both uppercase and lowercase letters.
-
-
-@node copyright symbol
+The spelling of these commands are unusual for Texinfo, in that they
+use both uppercase and lowercase letters.
+
+
+@node @t{@@copyright}
@subsection @code{@@copyright@{@}} (@copyright{})
+
+@anchor{copyright symbol}@c old name
@findex copyright
@cindex Copyright symbol
Use the @code{@@copyright@{@}} command to generate the copyright
-symbol, `@copyright{}'. Where possible, this is a @samp{c}
-inside a circle; in Info, this is @samp{(C)}.
-
-
-@node registered symbol
+symbol, `@copyright{}'. Where possible, this is a @samp{c} inside a
+circle; in Info, this is @samp{(C)}.
+
+Legally, it's not necessary to use the copyright symbol; the English
+word `Copyright' suffices, according to international treaty.
+
+
+@node @t{@@registeredsymbol}
@subsection @code{@@registeredsymbol@{@}} (@registeredsymbol{})
+
+@anchor{registered symbol}@c old name
@findex registeredsymbol
@cindex Registered symbol
@@ -10874,30 +11636,76 @@
@samp{R} inside a circle; in Info, this is @samp{(R)}.
-@node euro
-@section @code{@@euro}@{@} (@euro{}): Euro Currency Symbol
+@node @t{@@dots}
+@subsection @code{@@dots} (@dots{}) and @code{@@enddots} (@enddots{})
+
+@anchor{dots}@c old name
+@findex dots
+@findex enddots
+@cindex Inserting dots
+@cindex Inserting ellipsis
+@cindex Dots, inserting
+@cindex Ellipsis, inserting
+
+@anchor{Dots Bullets}@c old name
+
+An @dfn{ellipsis} (a sequence of dots) would be spaced wrong when
+typeset as a string of periods, so a special command is used in
+Texinfo: use the @code{@@dots@{@}} command to generate a normal
+ellipsis, which is three dots in a row, appropriately spaced @dots{}
+like so. To emphasize: do not simply write three periods in the input
+file; that would work for the Info file output, but would produce the
+wrong amount of space between the periods in the printed manual.
+
+The @code{@@enddots@{@}} command generates an end-of-sentence
+ellipsis, which also has three dots, but with different spacing
+afterwards, @enddots{} Look closely to see the difference.
+
+Here is an ellipsis: @dots{}
+Here are three periods in a row: ...
+
+In printed (and usually HTML) output, the three periods in a row are
+much closer together than the dots in the ellipsis.
+
+
+@node @t{@@bullet}
+@subsection @code{@@bullet} (@bullet{})
+
+@anchor{bullet}@c old name
+@findex bullet
+
+Use the @code{@@bullet@{@}} command to generate a large round dot, or
+the closest possible thing to one. In Info, an asterisk is used.
+Here is a bullet: @bullet{}
+
+When you use @code{@@bullet} in @code{@@itemize}, you do not need to
+type the braces, because @code{@@itemize} supplies them.
+(@pxref{@t{@@itemize}}).
+
+
+@node @t{@@euro}
+@subsection @code{@@euro} (@euro{}): Euro Currency Symbol
+
+@anchor{euro}@c old name
@findex euro
@cindex Euro symbol
Use the @code{@@euro@{@}} command to generate `@euro{}'. Where
-possible, this is the symbol for the Euro currency, invented as part
-of the European economic unification. In plain Info, it is the word
-@samp{Euro }. A trailing space is included in the text
-transliteration since typically no space is desired after the symbol,
-so it would be inappropriate to have a space in the source document.
+possible, this is the symbol for the Euro currency. Otherwise, the
+word @samp{Euro} is used.
Texinfo cannot magically synthesize support for the Euro symbol where
-the underlying system (fonts, software, whatever) does not support
-it. Therefore, in many cases it is preferable to use the word
-``Euro''. (In banking circles, the abbreviation for the Euro is EUR.)
-
-@cindex ISO 8859-15
-@cindex Latin 9
+the underlying system (fonts, software, whatever) does not support it.
+Therefore, you may find it preferable to use the word ``Euro''. (In
+banking contexts, the abbreviation for the Euro is EUR.)
+
+@cindex ISO 8859-15, and Euro
+@cindex Latin 9, and Euro
In order to get the Euro symbol in encoded Info output, for example,
-it is necessary to specify @code{@@documentencoding ISO-8859-15}.
-(@xref{documentencoding,,@code{@@documentencoding}}.) The Euro symbol
-is in ISO 8859-15 (aka Latin@tie{}9), and is @emph{not} in the more
-widely-used and supported ISO 8859-1 (Latin@tie{}1).
+it is necessary to specify @code{@@documentencoding ISO-8859-15} or
+@code{@@documentencoding UTF-8} (@xref{@t{@@documentencoding}}.)
+The Euro symbol is in ISO 8859-15 (aka Latin@tie{}9), and is
+@emph{not} in the more widely-used ISO 8859-1 (Latin@tie{}1).
@pindex feymr10
@cindex Euro font
@@ -10910,28 +11718,34 @@
instructions.
-@node pounds
-@section @code{@@pounds}@{@} (@pounds{}): Pounds Sterling
+@node @t{@@pounds}
+@subsection @code{@@pounds} (@pounds{}): Pounds Sterling
+
+@anchor{pounds}@c old name
@findex pounds
@cindex Pounds symbol
Use the @code{@@pounds@{@}} command to generate `@pounds{}'. Where
-possible, this is the symbol for the currency pounds sterling. In
-Info, it is a @samp{#}.
-
-
-@node textdegree
-@section @code{@@textdegree}@{@} (@textdegree{}): Degrees Symbol
+possible, this is the symbol for the pounds sterling British currency.
+Otherwise, it is @samp{#}.
+
+
+@node @t{@@textdegree}
+@subsection @code{@@textdegree} (@textdegree{}): Degrees Symbol
+
+@anchor{textdegree}@c old name
@findex textdegree
@cindex Degree symbol
Use the @code{@@textdegree@{@}} command to generate `@textdegree{}'.
-Where possible, this is the normal symbol for degrees. In plain text
-and Info output, it is an @samp{o}.
-
-
-@node minus
-@section @code{@@minus}@{@} (@minus{}): Inserting a Minus Sign
+Where possible, this is the normal symbol for degrees. Otherwise,
+it is an @samp{o}.
+
+
+@node @t{@@minus}
+@subsection @code{@@minus} (@minus{}): Inserting a Minus Sign
+
+@anchor{minus}@c old name
@findex minus
@cindex Minus sign
@@ -10958,242 +11772,107 @@
@code{@@example} because the width distinction is not made in the
fixed-width font they use.
-When you use @code{@@minus} to specify the mark beginning each entry in
-an itemized list, you do not need to type the braces
-(@pxref{itemize, , @code{@@itemize}}).
-
-
-@node geq leq
-@section @code{@@geq@{@}} (@geq{}) and @code{@@leq@{@}} (@leq{}): Inserting relations
+When you use @code{@@minus} to specify the mark beginning each entry
+in an itemized list, you do not need to type the braces
+(@pxref{@t{@@itemize}}).
+
+If you actually want to typeset some math that does a subtraction, it
+is better to use @code{@@math}. Then the regular @samp{-} character
+produces a minus sign, as in @code{@@math@{a-b@}} (@pxref{Inserting
+Math}).
+
+
+@node @t{@@geq @@leq}
+@subsection @code{@@geq} (@geq{}) and @code{@@leq} (@leq{}): Inserting Relations
+
+@anchor{geq leq}@c old name
@findex geq
@findex leq
-Use the @code{@@geq@{@}} and @code{@@geq@{@}} commands to generate
+Use the @code{@@geq@{@}} and @code{@@leq@{@}} commands to generate
greater-than-or-equal and less-than-equal-signs, `@geq{}' and
-`@leq{}'. In plain text and Info output, these are the ASCII
-sequences @samp{>=} and @samp{<=}. The
-
-
-@node math
-@section @code{@@math}: Inserting Mathematical Expressions
-@findex math
-@cindex Mathematical expressions
-@cindex Formulas, mathematical
-
-You can write a short mathematical expression with the @code{@@math}
-command. Write the mathematical expression between braces, like this:
-
-@example
-@@math@{(a + b)(a + b) = a^2 + 2ab + b^2@}
-@end example
-
-@iftex
-@noindent This produces the following in @TeX{}:
-
-@display
-@math{(a + b)(a + b) = a^2 + 2ab + b^2}
-@end display
-
-@noindent and the following in other formats:
-@end iftex
-@ifnottex
-@noindent This produces the following in Info and HTML:
-@end ifnottex
-
-@example
-(a + b)(a + b) = a^2 + 2ab + b^2
-@end example
-
-The @code{@@math} command has no special effect on the Info and HTML
-output. @command{makeinfo} expands any @code{@@}-commands as usual,
-but it does not try to produce good mathematical formatting in any
-way.
-
-However, as far as the @TeX{} output is concerned, plain @TeX{}
-mathematical commands are allowed in @code{@@math}, starting with
-@samp{\}, and the plain @TeX{} math characters like @samp{^} and
-@samp{_} are also recognized. In essence, @code{@@math} drops you
-into plain @TeX{} math mode.
-
-This allows you to conveniently write superscripts and subscripts (as
-in the above example), and also to use all the plain @TeX{} math
-control sequences for symbols, functions, and so on, and thus get
-proper formatting in the @TeX{} output, at least.
-
-It's best to use @samp{\} instead of @samp{@@} for any such
-mathematical commands; otherwise, @command{makeinfo} will complain.
-On the other hand, input with matching (but unescaped) braces, such as
-@samp{k_@{75@}}, is allowed inside @code{@@math}, although
-@command{makeinfo} would complain about the bare braces in regular
-input.
-
-Here's an example:
-
-@example
-@@math@{\sin 2\pi \equiv \cos 3\pi@}
-@end example
-
-@iftex
-@noindent which looks like this in @TeX{}:
-@display
-@math{\sin 2\pi \equiv \cos 3\pi}
-@end display
-
-@noindent and
-@end iftex
-@noindent which looks like the input in Info and HTML:
-@example
-\sin 2\pi \equiv \cos 3\pi
-@end example
-
-@findex \ @r{(literal \ in @code{@@math})}
-Since @samp{\} is an escape character inside @code{@@math}, you can use
-@code{@@\} to get a literal backslash (@code{\\} will work in @TeX{},
-but you'd get the literal @samp{\\} in Info). @code{@@\} is not
-defined outside of @code{@@math}, since a @samp{\} ordinarily produces a
-literal @samp{\}.
-
-@cindex Displayed equations
-@cindex Equations, displayed
-For displayed equations, you must at present use @TeX{} directly
-(@pxref{Raw Formatter Commands}).
-
-
-@node Click Sequences
-@section Click Sequences
-@cindex Click sequences
-@cindex Sequence of clicks
-@cindex GUI click sequence
-
-@findex clicksequence
-When documenting graphical interfaces, it is necessary to describe
-sequences such as `Click on @samp{File}, then choose @samp{Open}, then
-@dots{}'. Texinfo offers commands @code{@@clicksequence} and
-@code{click} to represent this, typically used like this:
-
-@example
-@dots{} @@clicksequence@{File @@click@{@} Open@} @dots{}
-@end example
-
-@noindent
-which produces:
-
-@display
-@dots{} @clicksequence{File @click{} Open} @dots{}
-@end display
-
-@findex click
-@findex arrow
-The @code{@@click} command produces a simple right arrow (@samp{->} in
-Info) by default; this glyph is also available independently via the
-command @code{@@arrow@{@}}.
-
-@findex clickstyle
-You can change the glyph produced by @code{@@click} with the command
-@code{@@clickstyle}, which takes a command name as its single argument
-on the rest of the line, much like @code{@@itemize} and friends
-(@pxref{itemize,,@code{@@itemize}}). The command should produce a
-glyph, and the usual empty braces @samp{@{@}} are omitted. Here's an
-example:
-
-@example
-@@clickstyle @@result
-@dots{} @@clicksequence@{File @@click@{@} Open@} @dots{}
-@end example
-
-@noindent
-now produces:
-
-@display
-@clickstyle @result
-@dots{} @clicksequence{File @click{} Open} @dots{}
-@end display
-
-
-@node Glyphs
-@section Glyphs for Examples
-@cindex Glyphs
+`@leq{}'. When those symbols are not available, the ASCII sequences
+@samp{>=} and @samp{<=} are output.
+
+
+@node Glyphs for Programming
+@section Glyphs for Programming
+
+@cindex Glyphs for programming
@cindex Examples, glyphs for
+@cindex Programming, glyphs for
In Texinfo, code is often illustrated in examples that are delimited
by @code{@@example} and @code{@@end example}, or by @code{@@lisp} and
@code{@@end lisp}. In such examples, you can indicate the results of
evaluation or an expansion using @samp{@result{}} or
-@samp{@expansion{}}. Likewise, there are commands to insert glyphs
-to indicate
-printed output, error messages, equivalence of expressions, and the
-location of point.
-
-The glyph-insertion commands do not need to be used within an example, but
-most often they are. Every glyph-insertion command is followed by a pair of
-left- and right-hand braces.@refill
+@samp{@expansion{}}. Likewise, there are commands to insert glyphs to
+indicate printed output, error messages, equivalence of expressions,
+the location of point in an editor, and GUI operation sequences.
+
+The glyph-insertion commands do not need to be used within an example,
+but most often they are. All glyph-insertion commands are followed by
+empty braces.
@menu
* Glyphs Summary::
-* result:: How to show the result of expression.
-* expansion:: How to indicate an expansion.
-* Print Glyph:: How to indicate printed output.
-* Error Glyph:: How to indicate an error message.
-* Equivalence:: How to indicate equivalence.
-* Point Glyph:: How to indicate the location of point.
+* @t{@@result}:: How to show the result of expression.
+* @t{@@expansion}:: How to indicate an expansion.
+* @t{@@print}:: How to indicate generated output.
+* @t{@@error}:: How to indicate an error message.
+* @t{@@equiv}:: How to indicate equivalence.
+* @t{@@point}:: How to indicate the location of point.
+* Click Sequences:: Inserting GUI usage sequences.
@end menu
@node Glyphs Summary
@subsection Glyphs Summary
-Here are the different glyph commands:@refill
+Here is a summary of the glyph commands:
@table @asis
@item @result{}
-@code{@@result@{@}} points to the result of an expression.@refill
+@code{@@result@{@}} indicates the result of an expression.
@item @expansion{}
-@code{@@expansion@{@}} shows the results of a macro expansion.@refill
+@code{@@expansion@{@}} indicates the results of a macro expansion.
@item @print{}
-@code{@@print@{@}} indicates printed output.@refill
+@code{@@print@{@}} indicates printed output.
@item @error{}
-@code{@@error@{@}} indicates that the following text is an error
-message.@refill
+@code{@@error@{@}} indicates the following text is an error message.
@item @equiv{}
-@code{@@equiv@{@}} indicates the exact equivalence of two forms.@refill
+@code{@@equiv@{@}} indicates the exact equivalence of two forms.
@item @point{}
-@code{@@point@{@}} shows the location of point.@refill
-@end table
-
-@menu
-* result::
-* expansion::
-* Print Glyph::
-* Error Glyph::
-* Equivalence::
-* Point Glyph::
-@end menu
-
-
-@node result
-@subsection @code{@@result@{@}} (@result{}): Indicating Evaluation
+@code{@@point@{@}} shows the location of point.
+
+@item @clicksequence{A @click{} B}
+@code{@@clicksequence@{A @@click@{@} B} indicates a GUI operation
+sequence: first A, then clicking B, or choosing B from a menu, or
+otherwise selecting it.
+@end table
+
+
+@node @t{@@result}
+@subsection @code{@@result@{@}} (@result{}): Result of an Expression
+
+@anchor{result}@c old name
+@findex result
@cindex Result of an expression
@cindex Indicating evaluation
@cindex Evaluation glyph
@cindex Value of an expression, indicating
-@findex result
Use the @code{@@result@{@}} command to indicate the result of
-evaluating an expression.@refill
-
-@iftex
-The @code{@@result@{@}} command is displayed as @samp{@result{}} in
-the printed output and as @samp{=>} in other formats.
-@end iftex
-@ifnottex
-The @code{@@result@{@}} command is displayed as @samp{@result{}} in
-Info and HTML and as a true double stemmed arrow in the printed output.
-@end ifnottex
+evaluating an expression.
+
+The @code{@@result@{@}} command is displayed as @samp{@result{}},
+either a double stemmed arrow or (when that is not available) the
+ASCII sequence @samp{=>}.
Thus, the following,
@@ -11206,25 +11885,21 @@
may be read as ``@code{(cdr '(1 2 3))} evaluates to @code{(2 3)}''.
-@node expansion
+@node @t{@@expansion}
@subsection @code{@@expansion@{@}} (@expansion{}): Indicating an Expansion
+
+@anchor{expansion}@c old name
@cindex Expansion, indicating
@cindex Macro expansion, indicating
@findex expansion
When an expression is a macro call, it expands into a new expression.
You can indicate the result of the expansion with the
-@code{@@expansion@{@}} command.@refill
-
-@iftex
-The @code{@@expansion@{@}} command is displayed as @samp{@expansion{}}
-in the printed output and as @samp{==>} in other formats.
-@end iftex
-@ifnottex
-The @code{@@expansion@{@}} command is displayed as @samp{@expansion{}}
-in Info and HTML, and as a long arrow with a flat base in the printed
-output.
-@end ifnottex
+@code{@@expansion@{@}} command.
+
+The @code{@@expansion@{@}} command is displayed as
+@samp{@expansion{}}, either a long arrow with a flat base or (when
+that is not available) the ASCII sequence @samp{==>}.
@need 700
For example, the following
@@ -11263,23 +11938,20 @@
@code{@@expansion@{@}} and @code{@@result@{@}} commands are indented.
-@node Print Glyph
-@subsection @code{@@print@{@}} (@print{}): Indicating Printed Output
+@node @t{@@print}
+@subsection @code{@@print@{@}} (@print{}): Indicating Generated Output
+
+@anchor{Print Glyph}@c old name
+@findex print
@cindex Printed output, indicating
-@findex print
-
-Sometimes an expression will print output during its execution. You
-can indicate the printed output with the @code{@@print@{@}} command.@refill
-
-@iftex
-The @code{@@print@{@}} command is displayed as @samp{-|} in Info and
-HTML and as @samp{@print{}} in the printed output.
-@end iftex
-@ifnottex
-The @code{@@print@{@}} command is displayed as @samp{@print{}} in Info
-and HTML and (similarly) as a horizontal dash butting against a
-vertical bar in the printed output.
-@end ifnottex
+
+Sometimes an expression will generate output during its execution.
+You can indicate such displayed output with the @code{@@print@{@}}
+command.
+
+The @code{@@print@{@}} command is displayed as @samp{@print{}}, either
+a horizontal dash butting against a vertical bar or (when that is not
+available) the ASCII sequence @samp{-|}.
In the following example, the printed text is indicated with
@samp{@print{}}, and the value of the expression follows on the
@@ -11309,22 +11981,20 @@
@end lisp
-@node Error Glyph
+@node @t{@@error}
@subsection @code{@@error@{@}} (@error{}): Indicating an Error Message
+
+@anchor{Error Glyph}@c old name
@cindex Error message, indicating
@findex error
A piece of code may cause an error when you evaluate it. You can
-designate the error message with the @code{@@error@{@}} command.@refill
-
-@iftex
-The @code{@@error@{@}} command is displayed as @samp{error-->} in Info
-and HTML and as @samp{@error{}} in the printed output.
-@end iftex
-@ifnottex
-The @code{@@error@{@}} command is displayed as @samp{@error{}} in Info
-and HTML and as the word `error' in a box in the printed output.
-@end ifnottex
+designate the error message with the @code{@@error@{@}} command.
+
+The @code{@@error@{@}} command is displayed as @samp{@error{}}, either
+the word `error' in a box in the printed output, the word error
+followed by an arrow in other formats or (when no arrow is available)
+@samp{error-->}.
@need 700
Thus,
@@ -11352,26 +12022,22 @@
Wrong type argument: integer-or-marker-p, x
@end lisp
-@samp{@error{}} itself is not part of the error message.
-
-
-@node Equivalence
+The word @samp{@error{}} itself is not part of the error message.
+
+
+@node @t{@@equiv}
@subsection @code{@@equiv@{@}} (@equiv{}): Indicating Equivalence
+
+@anchor{Equivalence}@c oldname
@cindex Equivalence, indicating
@findex equiv
-Sometimes two expressions produce identical results. You can indicate the
-exact equivalence of two forms with the @code{@@equiv@{@}} command.@refill
-
-@iftex
-The @code{@@equiv@{@}} command is displayed as @samp{==} in Info and
-HTML and as @samp{@equiv{}} in the printed output.
-@end iftex
-@ifnottex
-The @code{@@equiv@{@}} command is displayed as @samp{@equiv{}} in Info
-and HTML and as a standard mathematical equivalence sign (three
-parallel horizontal lines) in the printed output.
-@end ifnottex
+Sometimes two expressions produce identical results. You can indicate
+the exact equivalence of two forms with the @code{@@equiv@{@}}
+command. The @code{@@equiv@{@}} command is displayed as
+@samp{@equiv{}}, either a standard mathematical equivalence sign
+(three parallel horizontal lines) or (when that is not available) as
+the ASCII sequence @samp{==}.
Thus,
@@ -11393,33 +12059,29 @@
identical results to evaluating @code{(list 'keymap)}.
-@node Point Glyph
+@node @t{@@point}
@subsection @code{@@point@{@}} (@point{}): Indicating Point in a Buffer
+
+@anchor{Point Glyph}@c old name
@cindex Point, indicating in a buffer
@findex point
Sometimes you need to show an example of text in an XEmacs buffer. In
such examples, the convention is to include the entire contents of the
buffer in question between two lines of dashes containing the buffer
-name.@refill
-
-You can use the @samp{@@point@{@}} command to show the location of point
-in the text in the buffer. (The symbol for point, of course, is not
-part of the text in the buffer; it indicates the place @emph{between}
-two characters where point is located.)@refill
-
-@iftex
-The @code{@@point@{@}} command is displayed as @samp{-!-} in Info and
-HTML and as @samp{@point{}} in the printed output.
-@end iftex
-@ifnottex
-The @code{@@point@{@}} command is displayed as @samp{@point{}} in Info
-and HTML and as a small five pointed star in the printed
-output.
-@end ifnottex
+name.
+
+You can use the @samp{@@point@{@}} command to show the location of
+point in the text in the buffer. (The symbol for point, of course, is
+not part of the text in the buffer; it indicates the place
+@emph{between} two characters where point is located.)
+
+The @code{@@point@{@}} command is displayed as @samp{@point{}}, either
+a pointed star or (when that is not available) the ASCII sequence
+@samp{-!-}.
The following example shows the contents of buffer @file{foo} before
-and after evaluating a Lisp command to insert the word @code{changed}.@refill
+and after evaluating a Lisp command to insert the word @code{changed}.
@example
@group
@@ -11441,7 +12103,7 @@
@end group
@end example
-In a Texinfo source file, the example is written like this:@refill
+In a Texinfo source file, the example is written like this:
@example
@@example
@@ -11458,40 +12120,90 @@
@end example
+@node Click Sequences
+@subsection Click Sequences
+
+@cindex Click sequences
+@cindex Sequence of clicks
+@cindex GUI click sequence
+
+@findex clicksequence
+When documenting graphical interfaces, it is necessary to describe
+sequences such as `Click on @samp{File}, then choose @samp{Open}, then
+@dots{}'. Texinfo offers commands @code{@@clicksequence} and
+@code{click} to represent this, typically used like this:
+
+@example
+@dots{} @@clicksequence@{File @@click@{@} Open@} @dots{}
+@end example
+
+@noindent
+which produces:
+
+@display
+@dots{} @clicksequence{File @click{} Open} @dots{}
+@end display
+
+@findex click
+@findex arrow
+The @code{@@click} command produces a right arrow by default; this
+glyph is also available independently via the command
+@code{@@arrow@{@}}.
+
+@findex clickstyle
+You can change the glyph produced by @code{@@click} with the command
+@code{@@clickstyle}, which takes a command name as its single argument
+on the rest of the line, much like @code{@@itemize} and friends
+(@pxref{@t{@@itemize}}). The command should produce a glyph, and
+the usual empty braces @samp{@{@}} are omitted. Here's an example:
+
+@example
+@@clickstyle @@result
+@dots{} @@clicksequence@{File @@click@{@} Open@} @dots{}
+@end example
+
+@noindent
+now produces:
+
+@display
+@clickstyle @result
+@dots{} @clicksequence{File @click{} Open} @dots{}
+@end display
+
+
@node Breaks
@chapter Forcing and Preventing Breaks
+
@cindex Forcing line and page breaks
@cindex Making line and page breaks
@cindex Preventing line and page breaks
-
-@cindex Line breaks
-Usually, a Texinfo file is processed both by @TeX{} and by one of the
-Info formatting commands. Line, paragraph, or page breaks sometimes
-occur in the `wrong' place in one or other form of output. You must
-ensure that text looks right both in the printed manual and in the
-Info file.
-
-@cindex White space, excessive
-@cindex Page breaks
+@cindex Line breaks, awkward
+@cindex Page breaks, awkward
+
+Line and page breaks can sometimes occur in the `wrong' place in one
+or another form of output. It's up to you to ensure that text looks
+right in all the output formats.
+
For example, in a printed manual, page breaks may occur awkwardly in
the middle of an example; to prevent this, you can hold text together
using a grouping command that keeps the text from being split across
two pages. Conversely, you may want to force a page break where none
-would occur normally. Fortunately, problems like these do not often
-arise. When they do, use the break, break prevention, or pagination
-commands.
+would occur normally.
+
+You can use the break, break prevention, or pagination commands to fix
+problematic line and page breaks.
@menu
* Break Commands:: Summary of break-related commands.
* Line Breaks:: Forcing line breaks.
-* - and hyphenation:: Helping @TeX{} with hyphenation points.
-* allowcodebreaks:: Controlling line breaks within @@code text.
-* w:: Preventing unwanted line breaks in text.
-* tie:: Inserting an unbreakable but varying space.
-* sp:: Inserting blank lines.
-* page:: Forcing the start of a new page.
-* group:: Preventing unwanted page breaks.
-* need:: Another way to prevent unwanted page breaks.
+* @t{@@- @@hyphenation}:: Helping @TeX{} with hyphenation points.
+* @t{@@allowcodebreaks}:: Controlling line breaks within @@code text.
+* @t{@@w}:: Preventing unwanted line breaks in text.
+* @t{@@tie}:: Inserting an unbreakable but varying space.
+* @t{@@sp}:: Inserting blank lines.
+* @t{@@page}:: Forcing the start of a new page.
+* @t{@@group}:: Preventing unwanted page breaks.
+* @t{@@need}:: Another way to prevent unwanted page breaks.
@end menu
@@ -11519,58 +12231,57 @@
@table @code
@item @@w@{@var{text}@}
Prevent @var{text} from being split and hyphenated across two lines.
+
@item @@tie@{@}
Insert a normal interword space at which a line break may not occur.
@end table
-@iftex
-@sp 1
-@end iftex
-
-The pagination commands apply only to printed output, since Info
-files do not have pages.
+
+The pagination commands apply only to printed output, since other
+output formats do not have pages.
@table @code
@item @@page
-Start a new page in the printed manual.
+Start a new page.
@item @@group
-Hold text together that must appear on one printed page.
+Hold text together that must appear on one page.
@item @@need @var{mils}
-Start a new printed page if not enough space on this one.
+Start a new page if not enough space on this one.
@end table
@node Line Breaks
@section @code{@@*} and @code{@@/}: Generate and Allow Line Breaks
+
@findex * @r{(force line break)}
@findex / @r{(allow line break)}
-@cindex Line breaks
+@cindex Line breaks, controlling
+@cindex Controlling line breaks
@cindex Breaks in a line
@cindex Force line break
@cindex Allow line break
-The @code{@@*} command forces a line break in both the printed manual and
-in Info. The @code{@@/} command allows a line break (printed manual only).
+The @code{@@*} command forces a line break in all output formats.
+The @code{@@/} command allows a line break (printed manual only).
Here is an example with @code{@@*}:
@example
-This line @@* is broken @@*in two places.
+This sentence is broken @@*into two lines.
@end example
@noindent produces
@example
@group
-This line
-is broken
-in two places.
-@end group
-@end example
-
-The @code{@@/} command can be useful within a url
-(@pxref{uref,,@code{@@uref}}), which tend to be long and are otherwise
+This sentence is broken
+into two lines.
+@end group
+@end example
+
+The @code{@@/} command can often be useful within urls
+(@pxref{@t{@@url}}), which tend to be long and are otherwise
unbreakable. For example:
@example
@@ -11580,18 +12291,19 @@
@noindent produces
-@display
+@quotation
The official Texinfo home page is on the GNU web site:
@uref{http://www.gnu.org/@/software/@/gnu/@/texinfo}.
-@end display
+@end quotation
@noindent Without the @code{@@/} commands, @TeX{} would have nowhere to
-break the line. @code{@@/} has no effect in the online output.
-
-
-@node - and hyphenation
+break the url. @code{@@/} has no effect in other output formats.
+
+
+@node @t{@@- @@hyphenation}
@section @code{@@-} and @code{@@hyphenation}: Helping @TeX{} Hyphenate
+@anchor{- and hyphenation}@c old name
@findex - @r{(discretionary hyphen)}
@findex hyphenation
@cindex Hyphenation, helping @TeX{} do
@@ -11625,9 +12337,10 @@
these commands have any effect there.
-@node allowcodebreaks
+@node @t{@@allowcodebreaks}
@section @code{@@allowcodebreaks}: Control Line Breaks in @code{@@code}
+@anchor{allowcodebreaks}@c old name
@findex allowcodebreaks
@cindex Breaks, within @code{@@code}
@cindex -, breakpoint within @code{@@code}
@@ -11636,16 +12349,16 @@
@cindex _, breakpoint within @code{@@code}
@cindex Underscore, breakpoint within @code{@@code}
-Ordinarily, @TeX{} will consider breaking lines at @samp{-} and
-@samp{_} characters within @code{@@code} and related commands
-(@pxref{code,,@code{@@code}}), more or less as if they were ``empty''
+Ordinarily, @TeX{} considers breaking lines at @samp{-} and @samp{_}
+characters within @code{@@code} and related commands
+(@pxref{@t{@@code}}), more or less as if they were ``empty''
hyphenation points.
-This is necessary as many manuals, especially for Lisp-family
+This is necessary since many manuals, especially for Lisp-family
languages, must document very long identifiers. On the other hand,
-other manuals don't have this problems, and you may not wish to allow
-a line break at the underscore in, for example, @code{SIZE_MAX}, or
-even worse, after any of the four underscores in @code{__typeof__}.
+some manuals don't have this problems, and you may not wish to allow a
+line break at the underscore in, for example, @code{SIZE_MAX}, or even
+worse, after any of the four underscores in @code{__typeof__}.
So Texinfo provides this command:
@@ -11653,7 +12366,7 @@
@@allowcodebreaks false
@end example
-@noindent to prevent @TeX{} from breaking at @samp{-} or @samp{_} within
+@noindent to prevent from breaking at @samp{-} or @samp{_} within
@code{@@code}. You can go back to allowing such breaks with
@code{@@allowcodebreaks true}. Write these commands on lines by
themselves.
@@ -11662,16 +12375,18 @@
you may have just one problematic paragraph where you need to turn off
the breaks, but want them in general, or vice versa.
-This command has no effect in Info, HTML, and other non-@TeX{} output.
-
-
-@node w
+This command has no effect except in HTML and @TeX{} output.
+
+
+@node @t{@@w}
@section @code{@@w}@{@var{text}@}: Prevent Line Breaks
+
+@anchor{w}@c old name
@findex w @r{(prevent line break)}
@cindex Line breaks, preventing
-@code{@@w@{@var{text}@}} outputs @var{text} and prohibits line breaks
-within @var{text}, for both @TeX{} and @command{makeinfo}.
+@code{@@w@{@var{text}@}} outputs @var{text}, while prohibiting line
+breaks within @var{text}.
@cindex Non-breakable space, fixed
@cindex Unbreakable space, fixed
@@ -11692,7 +12407,7 @@
also will not stretch or shrink. Sometimes that is what you want, for
instance if you're doing manual indenting. However, usually you want
a normal interword space that does stretch and shrink (in the printed
-output); see the @code{@@tie} command in the next section.
+output); for that, see the @code{@@tie} command in the next section.
@cindex Hyphenation, preventing
You can also use the @code{@@w} command to prevent @TeX{} from
@@ -11705,11 +12420,14 @@
@cindex $Id expansion, preventing
You can also use @code{@@w} to avoid unwanted keyword expansion in
source control systems. For example, to literally write @t{@w{$}Id$}
-in your document, use @code{@@w@{$@}Id$}.
-
-
-@node tie
+in your document, use @code{@@w@{$@}Id$}. This trick isn't effective
+in Info or plain text output, though.
+
+
+@node @t{@@tie}
@section @code{@@tie@{@}}: Inserting an Unbreakable Space
+
+@anchor{tie}@c old name
@findex tie @r{(unbreakable interword space)}
@cindex Tied space
@cindex Non-breakable space, variable
@@ -11747,8 +12465,10 @@
@end itemize
-@node sp
+@node @t{@@sp}
@section @code{@@sp} @var{n}: Insert Blank Lines
+
+@anchor{sp}@c old name
@findex sp @r{(line spacing)}
@cindex Space, inserting vertical
@cindex Blank lines
@@ -11766,74 +12486,38 @@
@noindent
generates two blank lines.
-The @code{@@sp} command is most often used in the title page.@refill
-
-@ignore
-@c node br, page, sp, Breaks
-@comment node-name, next, previous, up
-@c section @code{@@br}: Generate Paragraph Breaks
-@findex br @r{(paragraph breaks)}
-@cindex Paragraph breaks
-@cindex Breaks in a paragraph
-
-The @code{@@br} command forces a paragraph break. It inserts a blank
-line. You can use the command within or at the end of a line. If
-used within a line, the @code{@@br@{@}} command must be followed by
-left and right braces (as shown here) to mark the end of the
-command.@refill
-
-@need 700
-For example,
-
-@example
-@group
-This line @@br@{@}contains and is ended by paragraph breaks@@br
-and is followed by another line.
-@end group
-@end example
-
-@noindent
-produces
-
-@example
-@group
-This line
-
-contains and is ended by paragraph breaks
-
-and is followed by another line.
-@end group
-@end example
-
-The @code{@@br} command is seldom used.
-@end ignore
-
-
-@node page
+The @code{@@sp} command is most often used in the title page.
+
+
+@node @t{@@page}
@section @code{@@page}: Start a New Page
-@cindex Page breaks
+
+@anchor{page}@c old name
@findex page
+@cindex Page breaks, forcing
A line containing only @code{@@page} starts a new page in a printed
-manual. The command has no effect on Info files since they are not
-paginated. An @code{@@page} command is often used in the @code{@@titlepage}
-section of a Texinfo file to start the copyright page.
-
-
-@node group
-@comment node-name, next, previous, up
+manual. In other formats, without the concept of pages, it starts a
+new paragraph. An @code{@@page} command is often used in the
+@code{@@titlepage} section of a Texinfo file to start the copyright
+page.
+
+
+@node @t{@@group}
@section @code{@@group}: Prevent Page Breaks
+
+@anchor{group}@c old name
+@findex group
@cindex Group (hold text together vertically)
@cindex Holding text together vertically
@cindex Vertically holding text together
-@findex group
The @code{@@group} command (on a line by itself) is used inside an
@code{@@example} or similar construct to begin an unsplittable vertical
group, which will appear entirely on one page in the printed output.
The group is terminated by a line containing only @code{@@end group}.
These two lines produce no output of their own, and in the Info file
-output they have no effect at all.@refill
+output they have no effect at all.
@c Once said that these environments
@c turn off vertical spacing between ``paragraphs''.
@@ -11845,7 +12529,7 @@
@xref{Quotations and Examples}. (What all these commands have in
common is that each line of input produces a line of output.) In
other contexts, @code{@@group} can cause anomalous vertical
-spacing.@refill
+spacing.
@need 750
This formatting requirement means that you should write:
@@ -11875,24 +12559,27 @@
not start to generate error messages until it has processed
considerable text. It is a good rule of thumb to look for a missing
@code{@@end group} if you get incomprehensible error messages in
-@TeX{}.(a)refill
-
-@node need
-@comment node-name, next, previous, up
+@TeX{}.
+
+
+@node @t{@@need}
@section @code{@@need @var{mils}}: Prevent Page Breaks
+
+@anchor{need}@c old name
+@findex need
@cindex Need space at page bottom
-@findex need
-
-A line containing only @code{@@need @var{n}} starts
-a new page in a printed manual if fewer than @var{n} mils (thousandths
-of an inch) remain on the current page. Do not use
-braces around the argument @var{n}. The @code{@@need} command has no
-effect on Info files since they are not paginated.@refill
+@cindex Mils, argument to @code{@@need}
+
+A line containing only @code{@@need @var{n}} starts a new page in a
+printed manual if fewer than @var{n} mils (thousandths of an inch)
+remain on the current page. Do not use braces around the argument
+@var{n}. The @code{@@need} command has no effect on other output
+formats since they are not paginated.
@need 800
This paragraph is preceded by an @code{@@need} command that tells
@TeX{} to start a new page if fewer than 800 mils (eight-tenths
-inch) remain on the page. It looks like this:@refill
+inch) remain on the page. It looks like this:
@example
@group
@@ -11901,8 +12588,9 @@
@end group
@end example
-The @code{@@need} command is useful for preventing orphans (single
-lines at the bottoms of printed pages).@refill
+@cindex Orphans, preventing
+The @code{@@need} command is useful for preventing orphans: single
+lines at the bottoms of printed pages.
@node Definition Commands
@@ -11912,7 +12600,7 @@
The @code{@@deffn} command and the other @dfn{definition commands}
enable you to describe functions, variables, macros, commands, user
options, special forms and other such artifacts in a uniform
-format.@refill
+format.
In the Info file, a definition causes the entity
category---`Function', `Variable', or whatever---to appear at the
@@ -11928,13 +12616,13 @@
A manual need not and should not contain more than one definition for
a given name. An appendix containing a summary should use
-@code{@@table} rather than the definition commands.@refill
+@code{@@table} rather than the definition commands.
@menu
* Def Cmd Template:: Writing descriptions using definition commands.
* Def Cmd Continuation Lines:: Continuing the heading over source lines.
* Optional Arguments:: Handling optional and repeated arguments.
-* deffnx:: Group two or more `first' lines.
+* @t{@@deffnx}:: Group two or more `first' lines.
* Def Cmds in Detail:: Reference for all the definition commands.
* Def Cmd Conventions:: Conventions for writing definitions.
* Sample Function Definition:: An example.
@@ -12029,10 +12717,6 @@
function definition, including the use of @code{@@example} inside the
definition.
-@cindex Macros in definition commands
-Unfortunately, due to implementation difficulties, macros are not expanded
-in @code{@@deffn} and all the other definition commands.
-
@node Def Cmd Continuation Lines
@section Definition Command Continuation Lines
@@ -12054,8 +12738,7 @@
@noindent produces:
-@defun fn-name @
- arg1 arg2 arg3
+@defun fn-name arg1 arg2 arg3
This is the basic continued defun.
@end defun
@@ -12064,17 +12747,13 @@
typed on one source line.
Although this example only shows a one-line continuation,
-continuations may extend over any number of lines; simply put an
-@code{@@} at the end of each line to be continued.
-
-The @code{@@} character does not have to be the last character on the
-physical line: whitespace is allowed (and ignored) afterwards.
+continuations may extend over any number of lines, in the same way;
+put an @code{@@} at the end of each line to be continued.
@cindex Whitespace, collapsed around continuations
@cindex Collapsing whitespace around continuations
-In general, any number of spaces or tabs around the @code{@@}
-continuation character, both on the line with the @code{@@} and on the
-continued line, are collapsed into a single space. There is one
+In general, any number of spaces or tabs before the @code{@@}
+continuation character are collapsed into a single space. There is one
exception: the Texinfo processors will not fully collapse whitespace
around a continuation inside braces. For example:
@@ -12084,13 +12763,13 @@
@end example
@noindent The output (not shown) has excess space between `Category'
-and `Name'. In this case, simply elide any unwanted whitespace in
-your input, or put the continuation @code{@@} outside braces.
-
-@code{@@} does not (currently) function as a continuation character in
-@emph{any} other context. Ordinarily, @samp{@@} followed by a
-whitespace character (space, tab, newline) produces a normal interword
-space (@pxref{Multiple Spaces}).
+and `Name'. To avoid this, elide the unwanted whitespace in your
+input, or put the continuation @code{@@} outside braces.
+
+@code{@@} does not function as a continuation character in @emph{any}
+other context. Ordinarily, @samp{@@} followed by a whitespace
+character (space, tab, newline) produces a normal interword space
+(@pxref{Multiple Spaces}).
@node Optional Arguments
@@ -12101,31 +12780,26 @@
@cindex Syntax, optional & repeated arguments
@cindex Meta-syntactic chars for arguments
-Some entities take optional or repeated arguments, which may be
-specified by a distinctive glyph that uses square brackets and
-ellipses. For @w{example}, a special form often breaks its argument list
-into separate arguments in more complicated ways than a
-straightforward function.
-
-@c This is consistent with XEmacs Lisp Reference manual
-An argument enclosed within square brackets is optional.
-Thus, [@var{optional-arg}] means that @var{optional-arg} is optional.
-An argument followed by an ellipsis is optional
-and may be repeated more than once.
-@c This is consistent with XEmacs Lisp Reference manual
-Thus, @var{repeated-args}@samp{@dots{}} stands for zero or more
+@c This is consistent with the XEmacs Lisp Reference Manual.
+Some entities take optional or repeated arguments, conventionally
+specified by using square brackets and ellipses: an argument enclosed
+within square brackets is optional, and an argument followed by an
+ellipsis is optional and may be repeated more than once.
+
+Thus, [@var{optional-arg}] means that @var{optional-arg} is optional
+and @var{repeated-args}@samp{@dots{}} stands for zero or more
arguments. Parentheses are used when several arguments are grouped
into additional levels of list structure in Lisp.
Here is the @code{@@defspec} line of an example of an imaginary
-special form:
+(complicated) special form:
@quotation
@defspec foobar (@var{var} [@var{from} @var{to} [@var{inc}]]) @var{body}@dots{}
@end defspec
-@tex
-\vskip \parskip
-@end tex
+@c tex
+@c \vskip \parskip
+@c end tex
@end quotation
@noindent
@@ -12134,36 +12808,37 @@
@var{inc} may optionally be specified as well. These arguments are
grouped with the argument @var{var} into a list, to distinguish them
from @var{body}, which includes all remaining elements of the
-form.@refill
+form.
In a Texinfo source file, this @code{@@defspec} line is written like
-this (except it would not be split over two lines, as it is in this
-example).@refill
-
-@example
-@group
-@@defspec foobar (@@var@{var@} [@@var@{from@} @@var@{to@}
+this, including a continuation to avoid a long source line.
+
+@example
+@group
+@@defspec foobar (@@var@{var@} [@@var@{from@} @@var@{to@} @@
[@@var@{inc@}]]) @@var@{body@}@@dots@{@}
@end group
@end example
@noindent
The function is listed in the Command and Variable Index under
-@samp{foobar}.(a)refill
-
-
-@node deffnx
-@section Two or More `First' Lines
+@samp{foobar}.
+
+
+@node @t{@@deffnx}
+@section @code{@@deffnx}, et al.: Two or More `First' Lines
+
+@anchor{deffnx}@c old node
+@findex deffnx
@cindex Two `First' Lines for @code{@@deffn}
@cindex Grouping two definitions together
@cindex Definitions grouped together
-@findex deffnx
To create two or more `first' or header lines for a definition, follow
-the first @code{@@deffn} line by a line beginning with @code{@@deffnx}.
-The @code{@@deffnx} command works exactly like @code{@@deffn}
-except that it does not generate extra vertical white space between it
-and the preceding line.@refill
+the first @code{@@deffn} line by a line beginning with
+@code{@@deffnx}. The @code{@@deffnx} command works exactly like
+@code{@@deffn} except that it does not generate extra vertical white
+space between it and the preceding line.
@need 1000
For example,
@@ -12188,23 +12863,24 @@
Each definition command has an `x' form: @code{@@defunx},
@code{@@defvrx}, @code{@@deftypefunx}, etc.
-The `x' forms work similarly to @code{@@itemx} (@pxref{itemx}).
+The `x' forms work similarly to @code{@@itemx}
+(@pxref{@t{@@itemx}}).
@node Def Cmds in Detail
@section The Definition Commands
Texinfo provides more than a dozen definition commands, all of which
-are described in this section.@refill
+are described in this section.
The definition commands automatically enter the name of the entity in
the appropriate index: for example, @code{@@deffn}, @code{@@defun},
and @code{@@defmac} enter function names in the index of functions;
@code{@@defvr} and @code{@@defvar} enter variable names in the index
-of variables.@refill
+of variables.
Although the examples that follow mostly illustrate Lisp, the commands
-can be used for other programming languages.@refill
+can be used for other programming languages.
@menu
* Functions Commands:: Commands for functions and similar entities.
@@ -12219,7 +12895,7 @@
@subsection Functions and Similar Entities
This section describes the commands for describing functions and similar
-entities:@refill
+entities:
@table @code
@findex deffn
@@ -12232,7 +12908,7 @@
line and is followed on the same line by the category of entity being
described, the name of this particular entity, and its arguments, if
any. Terminate the definition with @code{@@end deffn} on a line of its
-own.@refill
+own.
@need 750
For example, here is a definition:
@@ -12249,19 +12925,19 @@
This shows a rather terse definition for a ``command'' named
@code{forward-char} with one argument, @var{nchars}.
-@code{@@deffn} and prints argument names such as @var{nchars} in slanted
+@code{@@deffn} prints argument names such as @var{nchars} in slanted
type in the printed output, because we think of these names as
metasyntactic variables---they stand for the actual argument values.
Within the text of the description, however, write an argument name
explicitly with @code{@@var} to refer to the value of the argument.
In the example above, we used @samp{@@var@{nchars@}} in this way.
-In the unusual case when an argument name contains @samp{--}, or
-another character sequence which is treated specially
-(@pxref{Conventions}), use @code{@@var} around the argument. This
-causes the name to be printed in slanted typewriter, instead of the
-regular slanted font, exactly as input.
-@c except for ?` and !`, but we won't explain that.
+In the extremely unusual case when an argument name contains
+@samp{--}, or another character sequence which is treated specially
+(@pxref{Conventions}), use @code{@@code} around the special
+characters. This avoids the conversion to typographic en-dashes and
+em-dashes.
+@c @var also works; that's what we used to recommend.
The template for @code{@@deffn} is:
@@ -12297,7 +12973,7 @@
@findex defspec
@item @@defspec @var{name} @var{arguments}@dots{}
The @code{@@defspec} command is the definition command for special
-forms. (In Lisp, a special form is an entity much like a function,
+forms. (In Lisp, a special form is an entity much like a function;
@pxref{Special Forms,,, lispref, XEmacs Lisp Reference Manual}.)
@code{@@defspec} is equivalent to @samp{@@deffn @{Special Form@}
@dots{}} and works like @code{@@defun}.
@@ -12310,7 +12986,7 @@
@subsection Variables and Similar Entities
Here are the commands for defining variables and similar
-entities:@refill
+entities:
@table @code
@findex defvr
@@ -12323,10 +12999,10 @@
follow it on the same line by the category of the entity and the
name of the entity.
-Capitalize the category name like a title. If the name of the category
-contains spaces, as in the name ``User Option'', enclose it in braces.
-Otherwise, the second word will be mistaken for the name of the entity.
-For example,
+We recommend capitalizing the category name like a title. If the name
+of the category contains spaces, as in the name ``User Option'',
+enclose it in braces. Otherwise, the second word will be mistaken for
+the name of the entity. For example,
@example
@group
@@ -12339,7 +13015,7 @@
@end example
Terminate the definition with @code{@@end defvr} on a line of its
-own.@refill
+own.
The template is:
@@ -12357,7 +13033,7 @@
@item @@defvar @var{name}
The @code{@@defvar} command is the definition command for variables.
@code{@@defvar} is equivalent to @samp{@@defvr Variable
-@dots{}}.(a)refill
+@dots{}}.
@need 750
For example:
@@ -12381,7 +13057,7 @@
@end example
@code{@@defvar} creates an entry in the index of variables for
-@var{name}.(a)refill
+@var{name}.
@findex defopt
@item @@defopt @var{name}
@@ -12398,9 +13074,12 @@
@node Typed Functions
@subsection Functions in Typed Languages
+@cindex Typed functions
+@cindex Functions, in typed languages
+
The @code{@@deftypefn} command and its variations are for describing
-functions in languages in which you must declare types of variables and
-functions, such as C and C++.
+functions in languages in which you must declare types of variables
+and functions, such as C and C++.
@table @code
@findex deftypefn
@@ -12410,7 +13089,7 @@
typed. The @code{@@deftypefn} command is written at the beginning of
a line and is followed on the same line by the category of entity
being described, the type of the returned value, the name of this
-particular entity, and its arguments, if any.@refill
+particular entity, and its arguments, if any.
@need 800
@noindent
@@ -12418,51 +13097,35 @@
@example
@group
-@@deftypefn @{Library Function@} int foobar
+@@deftypefn @{Library Function@} int foobar @@
(int @@var@{foo@}, float @@var@{bar@})
@dots{}
@@end deftypefn
@end group
@end example
-@need 1000
-@noindent
-(where the text before the ``@dots{}'', shown above as two lines, would
-actually be a single line in a real Texinfo file) produces the following
-in Info:
-
-@smallexample
-@group
--- Library Function: int foobar (int FOO, float BAR)
-@dots{}
-@end group
-@end smallexample
-@iftex
-
-In a printed manual, it produces:
-
-@quotation
-@deftypefn {Library Function} int foobar (int @var{foo}, float @var{bar})
+produces:
+
+@quotation
+@deftypefn {Library Function} int foobar (int @var{foo}, float @var{bar})
@dots{}
@end deftypefn
@end quotation
-@end iftex
This means that @code{foobar} is a ``library function'' that returns an
@code{int}, and its arguments are @var{foo} (an @code{int}) and
-@var{bar} (a @code{float}).@refill
+@var{bar} (a @code{float}).
Since in typed languages, the actual names of the arguments are
typically scattered among data type names and keywords, Texinfo cannot
-find them without help. You can either (a)@tie{}write everything
-as straight text, and it will be printed in slanted type; (b)@tie{}use
-@code{@@var} for the variable names, which will uppercase the
-variable names in Info and use the slanted typewriter font in printed
-output; (c)@tie{}use @code{@@var} for the variable names and
-@code{@@code} for the type names and keywords, which will be dutifully
-obeyed.
-
-The template for @code{@@deftypefn} is:@refill
+find them without help. You can either (a)@tie{}write everything as
+straight text, and it will be printed in slanted type; (b)@tie{}use
+@code{@@var} for the variable names, which will uppercase the variable
+names in Info and use the slanted typewriter font in printed output;
+(c)@tie{}use @code{@@var} for the variable names and @code{@@code} for
+the type names and keywords, which will be dutifully obeyed.
+
+The template for @code{@@deftypefn} is:
@example
@group
@@ -12474,7 +13137,7 @@
@noindent
Note that if the @var{category} or @var{data type} is more than one
-word then it must be enclosed in braces to make it a single argument.@refill
+word then it must be enclosed in braces to make it a single argument.
If you are describing a procedure in a language that has packages,
such as Ada, you might consider using @code{@@deftypefn} in a manner
@@ -12492,14 +13155,14 @@
@end example
@noindent
-(The @code{@@deftypefn} arguments are shown using continuations
-(@pxref{Def Cmd Continuation Lines}), but could be on a single line in
-a real Texinfo file.)
+(In these examples the @code{@@deftypefn} arguments are shown using
+continuations (@pxref{Def Cmd Continuation Lines}), but could be on a
+single line.)
In this instance, the procedure is classified as belonging to the
package @code{stacks} rather than classified as a `procedure' and its
data type is described as @code{private}. (The name of the procedure
-is @code{push}, and its arguments are @var{s} and @var{n}.)@refill
+is @code{push}, and its arguments are @var{s} and @var{n}.)
@code{@@deftypefn} creates an entry in the index of functions for
@var{name}.
@@ -12523,15 +13186,33 @@
@end table
+@cindex Return type, own line for
+@findex deftypefnnewline
+Ordinarily, the return type is printed on the same line as the
+function name and arguments, as shown above. In source code, GNU
+style is to put the return type on a line by itself. So Texinfo
+provides an option to do that: @code{@@deftypefnnewline on}.
+
+This affects typed functions only---not untyped functions, not typed
+variables, etc.. Specifically, it affects the commands in this
+section, and the analogous commands for object-oriented languages,
+namely @code{@@deftypeop} and @code{@@deftypemethod}
+(@pxref{Object-Oriented Methods}).
+
+Specifying @code{@@deftypefnnewline off} reverts to the default.
+
@node Typed Variables
@subsection Variables in Typed Languages
+@cindex Typed variables
+@cindex Variables, in typed languages
+
Variables in typed languages are handled in a manner similar to
functions in typed languages. @xref{Typed Functions}. The general
definition command @code{@@deftypevr} corresponds to
@code{@@deftypefn} and the specialized definition command
-@code{@@deftypevar} corresponds to @code{@@deftypefun}.(a)refill
+@code{@@deftypevar} corresponds to @code{@@deftypefun}.
@table @code
@findex deftypevr
@@ -12540,12 +13221,12 @@
something like a variable in a typed language---an entity that records
a value. You must choose a term to describe the category of the
entity being defined; for example, ``Variable'' could be used if the
-entity is a variable.@refill
+entity is a variable.
The @code{@@deftypevr} command is written at the beginning of a line
and is followed on the same line by the category of the entity
being described, the data type, and the name of this particular
-entity.@refill
+entity.
@need 800
@noindent
@@ -12560,25 +13241,13 @@
@end example
@noindent
-produces the following in Info:
-
-@example
-@group
--- Global Flag: int enable
-@dots{}
-@end group
-@end example
-@iftex
-
-@noindent
-and the following in a printed manual:
+produces the following:
@quotation
@deftypevr {Global Flag} int enable
@dots{}
@end deftypevr
@end quotation
-@end iftex
@need 800
The template is:
@@ -12606,10 +13275,11 @@
These commands create entries in the index of variables.
+
@node Data Types
@subsection Data Types
-Here is the command for data types:@refill
+Here is the command for data types:
@table @code
@findex deftp
@@ -12622,12 +13292,12 @@
for describing @code{int} or @code{float}, in which case you could use
@code{data type} as the category. (A data type is a category of
certain objects for purposes of deciding which operations can be
-performed on them.)@refill
+performed on them.)
In Lisp, for example, @dfn{pair} names a particular data
type, and an object of that type has two slots called the
@sc{car} and the @sc{cdr}. Here is how you would write the first line
-of a definition of @code{pair}.@refill
+of a definition of @code{pair}.
@example
@group
@@ -12666,7 +13336,7 @@
@menu
* Variables: Object-Oriented Variables.
-* Methods: Object-Oriented Methods.
+* Methods: Object-Oriented Methods.
@end menu
@@ -12777,6 +13447,7 @@
@end table
+
@node Object-Oriented Methods
@subsubsection Object-Oriented Methods
@@ -12797,7 +13468,7 @@
For example, some systems have constructs called @dfn{wrappers} that
are associated with classes as methods are, but that act more like
macros than like functions. You could use @code{@@defop Wrapper} to
-describe one of these.@refill
+describe one of these.
Sometimes it is useful to distinguish methods and @dfn{operations}.
You can think of an operation as the specification for a method.
@@ -12807,13 +13478,13 @@
the operation has a name and also specifies the pattern of arguments;
all methods that implement the operation must accept the same
arguments, since applications that use the operation do so without
-knowing which method will implement it.@refill
+knowing which method will implement it.
Often it makes more sense to document operations than methods. For
example, window application developers need to know about the
@code{expose} operation, but need not be concerned with whether a
given class of windows has its own method to implement this operation.
-To describe this operation, you would write:@refill
+To describe this operation, you would write:
@example
@@defop Operation windows expose
@@ -12822,7 +13493,7 @@
The @code{@@defop} command is written at the beginning of a line and
is followed on the same line by the overall name of the category of
operation, the name of the class of the operation, the name of the
-operation, and its arguments, if any.@refill
+operation, and its arguments, if any.
The template is:
@example
@@ -12834,7 +13505,7 @@
@end example
@code{@@defop} creates an entry, such as `@code{expose} on
-@code{windows}', in the index of functions.@refill
+@code{windows}', in the index of functions.
@findex deftypeop
@item @@deftypeop @var{category} @var{class} @var{data-type} @var{name} @var{arguments}@dots{}
@@ -12860,7 +13531,7 @@
@code{@@defmethod} is equivalent to @samp{@@defop Method @dots{}}.
The command is written at the beginning of a line and is followed by
the name of the class of the method, the name of the method, and its
-arguments, if any.@refill
+arguments, if any.
@noindent
For example:
@@ -12888,6 +13559,9 @@
@end table
+The typed commands are affected by the @code{@@deftypefnnewline}
+option (@pxref{Typed Functions,, Functions in Typed Languages}).
+
@node Def Cmd Conventions
@section Conventions for Writing Definitions
@@ -12899,20 +13573,20 @@
arguments that indicate the meaning, as with the @var{count} argument
to the @code{forward-word} function. Also, if the name of an argument
contains the name of a type, such as @var{integer}, take care that the
-argument actually is of that type.@refill
+argument actually is of that type.
@node Sample Function Definition
@section A Sample Function Definition
@cindex Function definitions
@cindex Command definitions
-@cindex Macro definitions
+@cindex Macro definitions, programming-language
@cindex Sample function definition
A function definition uses the @code{@@defun} and @code{@@end defun}
commands. The name of the function follows immediately after the
@code{@@defun} command and it is followed, on the same line, by the
-parameter list.@refill
+parameter list.
Here is a definition from @ref{Calling Functions,,, lispref, XEmacs Lisp
Reference Manual}.
@@ -12945,11 +13619,10 @@
@end example
An interesting example of using @code{apply} is found in the description
-of @code{mapcar}.@refill
+of @code{mapcar}.
@end defun
@end quotation
-@need 1200
In the Texinfo source file, this example looks like this:
@example
@@ -12996,12 +13669,210 @@
@noindent
In this manual, this function is listed in the Command and Variable
-Index under @code{apply}.@refill
+Index under @code{apply}.
Ordinary variables and user options are described using a format like
that for functions except that variables do not take arguments.
+@node Internationalization
+@chapter Internationalization
+
+@cindex Internationalization
+Texinfo has some support for writing in languages other than English,
+although this area still needs considerable work. (If you are
+yourself helping to translate the fixed strings written to documents,
+@pxref{Internationalization of Document Strings}.)
+
+For a list of the various accented and special characters Texinfo
+supports, see @ref{Inserting Accents}.
+
+@menu
+* @t{@@documentlanguage}:: Declaring the current language.
+* @t{@@documentencoding}:: Declaring the input encoding.
+@end menu
+
+
+@node @t{@@documentlanguage}
+@section @code{@@documentlanguage @var{ll}[_@var{cc}]}: Set the Document Language
+@anchor{documentlanguage}
+
+@findex documentlanguage
+@cindex Language, declaring
+@cindex Locale, declaring
+@cindex Document language, declaring
+
+The @code{@@documentlanguage} command declares the current document
+locale. Write it on a line by itself, near the beginning of the file,
+but after @code{@@setfilename} (@pxref{@t{@@setfilename}}):
+
+@example
+@@documentlanguage @var{ll}[_@var{cc}]
+@end example
+
+Include a two-letter ISO@tie{}639-2 language code (@var{ll}) following
+the command name, optionally followed by an underscore and two-letter
+ISO@tie{}3166 two-letter country code (@var{cc}). If you have a
+multilingual document, the intent is to be able to use this command
+multiple times, to declare each language change. If the command is
+not used at all, the default is @code{en_US} for US English.
+
+As with GNU Gettext (@pxref{Top,,, gettext, Gettext}), if the country
+code is omitted, the main dialect is assumed where possible. For
+example, @code{de} is equivalent to @code{de_DE} (German as spoken in
+Germany).
+
+@cindex Document strings, translation of
+For Info and other online output, this command changes the translation
+of various @dfn{document strings} such as ``see'' in cross references
+(@pxref{Cross References}), ``Function' in defuns (@pxref{Definition
+Commands}), and so on. Some strings, such as ``Node:'', ``Next:'',
+``Menu:'', etc., are keywords in Info output, so are not translated
+there; they are translated in other output formats.
+
+@cindex @file{txi-(a)var{cc}.tex}
+For @TeX{}, this command causes a file @file{txi-(a)var{locale}.tex} to
+be read (if it exists). If @code{@@documentlanguage} argument
+contains the optional @samp{_@var{cc}} suffix, this is tried first.
+For example, with @code{@@documentlanguage de_DE}, @TeX{} first looks
+for @file{txi-de_DE.tex}, then @file{txi-de.tex}.
+
+Such a @file{txi-*} file is intended to redefine the various English
+words used in @TeX{} output, such as `Chapter', `See', and so on. We
+are aware that individual words like these cannot always be translated
+in isolation, and that a very different strategy would be required for
+ideographic (among other) scripts. Help in improving Texinfo's
+language support is welcome.
+
+@cindex Hyphenation patterns, language-dependent
+@code{@@documentlanguage} also changes @TeX{}'s current hyphenation
+patterns, if the @TeX{} program being run has the necessary support
+included. This will generally not be the case for @command{tex}
+itself, but will usually be the case for up-to-date distributions of
+the extended @TeX{} programs @command{etex} (DVI output) and
+@command{pdftex} (PDF output). @command{texi2dvi} will use the
+extended @TeX{}s if they are available (@pxref{Format with
+@t{texi2dvi}}).
+
+In September 2006, the W3C Internationalization Activity released a
+new recommendation for specifying languages:
+@url{http://www.rfc-editor.org/rfc/bcp/bcp47.txt}. When Gettext
+supports this new scheme, Texinfo will too.
+
+@cindex ISO 639-2 language codes
+@cindex ISO 3166 country codes
+@cindex Language codes
+@cindex Country codes
+Since the lists of language codes and country codes are updated
+relatively frequently, we don't attempt to list them here. The valid
+language codes are on the official home page for ISO@tie{}639,
+@url{http://www.loc.gov/standards/iso639-2/}. The country codes and
+the official web site for ISO@tie{}3166 can be found via
+@url{http://en.wikipedia.org/wiki/ISO_3166}.
+
+
+@node @t{@@documentencoding}
+@section @code{@@documentencoding @var{enc}}: Set Input Encoding
+
+@anchor{documentencoding}@c old name
+@findex documentencoding
+@cindex Encoding, declaring
+@cindex Input encoding, declaring
+@cindex Character set, declaring
+@cindex Document input encoding
+
+The @code{@@documentencoding} command declares the input document
+encoding. Write it on a line by itself, with a valid encoding
+specification following, near the beginning of the file but after
+@code{@@setfilename} (@pxref{@t{@@setfilename}}):
+
+@example
+@@documentencoding @var{enc}
+@end example
+
+At present, Texinfo supports only these encodings:
+
+@table @code
+@item US-ASCII
+This has no particular effect, but it's included for completeness.
+
+@item UTF-8
+The vast global character encoding, expressed in 8-bit bytes.
+
+@item ISO-8859-2
+@itemx ISO-8859-1
+@itemx ISO-8859-15
+These specify the standard encodings for Western European (the first
+two) and Eastern European languages (the third), respectively. ISO
+8859-15 replaces some little-used characters from 8859-1 (e.g.,
+precomposed fractions) with more commonly needed ones, such as the
+Euro symbol (@euro{}).
+
+A full description of the encodings is beyond our scope here;
+one useful reference is @uref{http://czyborra.com/charsets/iso8859.html}.
+
+@item koi8-r
+This is the commonly used encoding for the Russian language.
+
+@item koi8-u
+This is the commonly used encoding for the Ukrainian language.
+
+@end table
+
+Specifying an encoding @var{enc} has the following effects:
+
+@cindex Local Variables section, for encoding
+@cindex Info output, and encoding
+In Info output, a so-called `Local Variables' section (@pxref{File
+Variables,,,xemacs, XEmacs User's Manual}) is output including
+@var{enc}. This allows Info readers to set the encoding
+appropriately. It looks like this:
+
+@example
+Local Variables:
+coding: @var{enc}
+End:
+@end example
+
+Also, in Info and plain text output, unless the option
+@option{--disable-encoding} is given to @command{makeinfo}, accent
+constructs and special characters, such as @code{@@'e}, are output as
+the actual 8-bit or UTF-8 character in the given encoding where
+possible.
+
+@cindex HTML output, and encodings
+@cindex @code{http-equiv}, and charset specification
+@cindex @code{<meta>} HTML tag, and charset specification
+In HTML output, a @samp{<meta>} tag is output, in the @samp{<head>}
+section of the HTML, that specifies @var{enc}. Web servers and
+browsers cooperate to use this information so the correct encoding is
+used to display the page, if supported by the system. That looks like
+this:
+
+@example
+<meta http-equiv="Content-Type" content="text/html;
+ charset=@var{enc}">
+@end example
+
+In XML and Docbook output, UTF-8 is always used for the output file,
+since all XML processors are supposed to be able to process that
+encoding.
+
+@cindex Computer Modern fonts
+In @TeX{} output, the characters which are supported in the standard
+Computer Modern fonts are output accordingly. (For example, this
+means using constructed accents rather than precomposed glyphs.)
+Using a missing character generates a warning message, as does
+specifying an unimplemented encoding.
+
+Although modern @TeX{} systems support nearly every script in use in
+the world, this wide-ranging support is not available in
+(a)file{texinfo.tex}, and it's not feasible to duplicate or incorporate
+all that effort. Our plan to support other scripts is to create a
+@LaTeX{} back-end to @command{texi2any}, where the support is already
+present.
+
+
@node Conditionals
@chapter Conditionally Visible Text
@cindex Conditionally visible text
@@ -13021,12 +13892,12 @@
Commands specific to an output format (Info, @TeX{}, HTML, @dots{}).
@item
-Commands specific to any output format @emph{other} than a given
-one (not Info, not @TeX{}, @dots{}).
+Commands specific to any output format @emph{excluding} a given
+one (e.g., not Info, not @TeX{}, @dots{}).
@item
`Raw' formatter text for any output format, passed straight
-through with no interpretation of @@-commands.
+through with minimal (but not zero) interpretation of @@-commands.
@item
Format-independent variable substitutions, and testing if a variable
@@ -13038,7 +13909,9 @@
* Conditional Commands:: Text for a given format.
* Conditional Not Commands:: Text for any format other than a given one.
* Raw Formatter Commands:: Using raw formatter commands.
-* set clear value:: Variable tests and substitutions.
+* Inline Conditionals:: Brace-delimited conditional text.
+* @t{@@set @@clear @@value}:: Variable tests and substitutions.
+* Testing for Texinfo Commands:: Testing if a Texinfo command is available.
* Conditional Nesting:: Using conditionals inside conditionals.
@end menu
@@ -13062,7 +13935,8 @@
@findex ifplaintext
@findex iftex
@findex ifxml
-The environments for the other formats are analogous:
+The environments for the other formats are analogous, but without the
+special historical case:
@table @code
@item @@ifdocbook @dots{} @@end ifdocbook
@@ -13082,7 +13956,13 @@
@end table
The @code{@@if@dots{}} and @code{@@end if@dots{}} commands must appear
-on lines by themselves in your source file.
+on lines by themselves in your source file. The newlines following
+the commands are (more or less) treated as whitespace, so that the
+conditional text is flowed normally into a surrounding paragraph.
+
+The @code{@@if@dots{}} constructs are intended to conditionalize
+normal Texinfo source; @pxref{Raw Formatter Commands}, for using
+underlying format commands directly.
Here is an example showing all these conditionals:
@@ -13100,7 +13980,7 @@
Whereas this text will only appear in plain text.
@@end ifplaintext
@@ifxml
-Notwithstanding that this will only appear in XML.
+Notwithstanding that this will only appear in XML@.
@@end ifxml
@@ifdocbook
Nevertheless, this will only appear in Docbook.
@@ -13123,7 +14003,7 @@
Whereas this text will only appear in plain text.
@end ifplaintext
@ifxml
-Notwithstanding that this will only appear in XML.
+Notwithstanding that this will only appear in XML@.
@end ifxml
@ifdocbook
Nevertheless, this will only appear in Docbook.
@@ -13133,6 +14013,19 @@
Notice that you only see one of the input lines, depending on which
version of the manual you are reading.
+@findex errormsg
+In complex documents, you may want Texinfo to issue an error message
+in some conditionals that should not ever be processed. The
+@code{@@errormsg@{@var{text}@}} command will do this; it takes one
+argument, the text of the error message, which is expanded more or
+less as if it were Info text.
+
+We mention @code{@@errormsg@{@}} here even though it is not strictly
+related to conditionals, since in practice it is most likely to be
+useful in that context. Technically, it can be used anywhere.
+@xref{External Macro Processors}, for a caveat regarding the line
+numbers which @code{@@errormsg} emits in @TeX{}.
+
@node Conditional Not Commands
@section Conditional Not Commands
@@ -13183,46 +14076,45 @@
@node Raw Formatter Commands
@section Raw Formatter Commands
@cindex Raw formatter commands
+
@cindex @TeX{} commands, using ordinary
@cindex Ordinary @TeX{} commands, using
@cindex Commands using raw @TeX{}
-@cindex Docbook, including raw
-@cindex HTML, including raw
-@cindex XML, including raw
@cindex Plain @TeX{}
-Inside a region delineated by @code{@@iftex} and @code{@@end iftex},
-you can embed some raw @TeX{} commands. The Texinfo processors will
-ignore such a region unless @TeX{} output is being produced. You can
-write the @TeX{} commands as you would write them in a normal @TeX{}
-file, except that you must replace the @samp{\} used by @TeX{} with an
-@samp{@@}. For example, in the @code{@@titlepage} section of a
-Texinfo file, you can use the @TeX{} command @code{@@vskip} to format
-the copyright page. (The @code{@@titlepage} command causes Info to
-ignore the region automatically, as it does with the @code{@@iftex}
-command.)
-
-However, most features of plain @TeX{} will not work within
-@code{@@iftex}, as they are overridden by Texinfo features. The
-purpose of @code{@@iftex} is to provide conditional processing for the
-Texinfo source, not provide access to underlying formatting features.
+The @code{@@if@dots{}} conditionals just described must be used only
+with normal Texinfo source. For instance, most features of plain
+@TeX{} will not work within @code{@@iftex}. The purpose of
+@code{@@if@dots{}} is to provide conditional processing for Texinfo
+source, not provide access to underlying formatting features. For
+that, Texinfo provides so-called @dfn{raw formatter commands}. They
+should only be used when truly required (most documents do not need
+them).
@findex tex
-You can enter plain @TeX{} completely, and use @samp{\} in the @TeX{}
-commands, by delineating a region with the @code{@@tex} and @code{@@end
-tex} commands. All plain @TeX{} commands and category codes are
-restored within an @code{@@tex} region. The sole exception is that the
-@code{@@} character still introduces a command, so that @code{@@end tex}
-can be recognized properly. As with @code{@@iftex}, Texinfo
-processors will ignore such a region unless @TeX{} output is being produced.
+@cindex Category codes, of plain @TeX{}
+The first raw formatter command is @code{@@tex}. You can enter plain
+@TeX{} completely, and use @samp{\} in the @TeX{} commands, by
+delineating a region with the @code{@@tex} and @code{@@end tex}
+commands. All plain @TeX{} commands and category codes are restored
+within an @code{@@tex} region. The sole exception is that the
+@code{@@} character still introduces a command, so that @code{@@end
+tex} can be recognized. Texinfo processors will not output material
+in such a region, unless @TeX{} output is being produced.
@findex \gdef @r{within @code{@@tex}}
+@findex \globaldefs @r{within @code{@@tex}}
In complex cases, you may wish to define new @TeX{} macros within
@code{@@tex}. You must use @code{\gdef} to do this, not @code{\def},
-because @code{@@tex} regions are processed in a @TeX{} group.
-
-@cindex Mathematical expressions
-As an example, here is a mathematical expression written in plain @TeX{}:
+because @code{@@tex} regions are processed in a @TeX{} group. If you
+need to make several definitions, you may wish to set
+@code{\globaldefs=1} (its value will be restored to zero as usual when
+the group ends at @code{@@end tex}, so it won't cause problems with
+the rest of the document).
+
+@cindex Equation, displayed, in plain @TeX{}
+@cindex Displayed equation, in plain @TeX{}
+As an example, here is a displayed equation written in plain @TeX{}:
@example
@@tex
@@ -13234,12 +14126,8 @@
@noindent
The output of this example will appear only in a printed manual. If
-you are reading this in Info, you will not see the equation that appears
-in the printed manual.
-@iftex
-In a printed manual, the above expression looks like
-this:
-@end iftex
+you are reading this in a format not generated by @TeX{}, you will not
+see the equation that appears in the printed manual.
@tex
$$ \chi^2 = \sum_{i=1}^N
@@ -13247,32 +14135,144 @@
\over \sigma_i\right)^2 $$
@end tex
+@cindex HTML, including raw
@findex ifhtml
@findex html
-Analogously, you can use @code{@@ifhtml @dots{} @@end ifhtml} to delimit
-a region to be included in HTML output only, and @code{@@html @dots{}
-@@end html} for a region of raw HTML.
-
+Analogously, you can use @code{@@ifhtml @dots{} @@end ifhtml} to
+delimit Texinfo source to be included in HTML output only, and
+@code{@@html @dots{} @@end html} for a region of raw HTML.
+
+@cindex XML, including raw
@findex ifxml
@findex xml
Likewise, you can use @code{@@ifxml @dots{} @@end ifxml} to delimit
-a region to be included in XML output only, and @code{@@xml @dots{}
-@@end xml} for a region of raw XML.
-
+Texinfo source to be included in XML output only, and @code{@@xml
+@dots{} @@end xml} for a region of raw XML@. Regions of raw text in
+other formats will also be present in the XML output, but with
+protection of XML characters and within corresponding elements. For
+example, the raw HTML text:
+
+@example
+@group
+@@html
+<br />
+@@end html
+@end group
+@end example
+
+@noindent
+will be included in the XML output as:
+
+@example
+@group
+<html>
+<br />
+</html>
+@end group
+@end example
+
+@cindex Docbook, including raw
@findex ifdocbook
@findex docbook
Again likewise, you can use @code{@@ifdocbook @dots{} @@end ifdocbook}
-to delimit a region to be included in Docbook output only, and
+to delimit Texinfo source to be included in Docbook output only, and
@code{@@docbook @dots{} @@end docbook} for a region of raw Docbook.
-In all cases, the exception to the raw processing is that @code{@@} is
-still an escape character, so the @code{@@end} command can be
-recognized.
-
-
-@node set clear value
-@section @code{@@set}, @code{@@clear}, and @code{@@value}
-
+The behavior of newlines in raw regions is unspecified.
+
+In all cases, in raw processing, @code{@@} retains the same meaning as
+in the remainder of the document. Thus, the Texinfo processors
+recognize and even execute, to some extent, the contents of the raw
+regions, regardless of the final output format. Therefore, specifying
+changes that globally affect the document inside a raw region leads to
+unpredictable and generally undesirable behavior. For example, it
+using the @code{@@kbdinputstyle} command inside a raw region is undefined.
+
+The remedy is simple: don't do that. Use the raw formatter commands
+for their intended purpose, of providing material directly in the
+underlying format. When you simply want to give different Texinfo
+specifications for different output formats, use the
+@code{@@if@dots{}} conditionals and stay in Texinfo syntax.
+
+
+
+@node Inline Conditionals
+@section Inline Conditionals: @code{@@inline}, @code{@@inlineifelse}, @code{@@inlineraw}
+@findex inlinefmt
+@findex inlinefmtifelse
+@findex inlineraw
+@cindex Inline conditionals
+@cindex Conditional commands, inline
+@cindex Brace-delimited conditional text
+@cindex Newlines, avoiding in conditionals
+@cindex Whitespace, controlling in conditionals
+
+Texinfo provides a set of conditional commands with arguments given
+within braces:
+
+@table @code
+@item @@inlinefmt@{@var{format}, @var{text}@}
+Process the Texinfo @var{text} if @var{format} output is being
+generated.
+
+@item @@inlinefmtifelse@{@var{format}, @var{then-text}, @var{else-text}@}
+Process the Texinfo @var{then-text} if @var{format} output is being
+generated; otherwise, process @var{else-text}.
+
+@item @@inlineraw@{@var{format}, @var{text}@}
+Similar, but for raw @var{text} (@pxref{Raw Formatter Commands}).
+@end table
+
+The supported @var{format} names are:
+
+@example
+docbook html info plaintext tex xml
+@end example
+
+For example,
+
+@example
+@@inlinefmt@{html, @@emph@{HTML-only text@}@}
+@end example
+
+@noindent is nearly equivalent to
+
+@example
+@@ifhtml
+@@emph@{HTML-only text@}
+@@end ifhtml
+@end example
+
+@noindent except that no whitespace is added, as happens in the latter
+(environment) case.
+
+In these commands, whitespace is ignored after the comma separating
+the arguments, as usual, but is @emph{not} ignored at the end of
+@var{text}.
+
+To insert a literal at sign, left brace, or right brace in one of the
+arguments, you must use the alphabetic commands @code{@@atchar@{@}}
+(@pxref{Inserting an Atsign}), and @code{@@lbracechar@{@}} or
+@code{@@rbracechar@{@}} (@pxref{Inserting Braces}), or the parsing
+will become confused.
+
+With @code{@@inlinefmtifelse}, it is also necessary to use
+@code{@@comma@{@}} to avoid mistaking a @samp{,} in the text for the
+delimiter. With @code{@@inlinefmt} and @code{@@inlineraw},
+@code{@@comma@{@}} is not required (though it's fine to use it), since
+these commands always have exactly two arguments.
+
+For @TeX{}, the processed @var{text} cannot contain newline-delimited
+commands. Text to be ignored (i.e., for non-@TeX{}) can, though.
+
+Two other @code{@@inline...} conditionals complement the
+@code{@@ifset} and @code{@@ifclear} commands; see the next section.
+
+
+@node @t{@@set @@clear @@value}
+@section Flags: @code{@@set}, @code{@@clear}, conditionals, and @code{@@value}
+
+@anchor{set clear value}@c old name
You can direct the Texinfo formatting commands to format or ignore parts
of a Texinfo file with the @code{@@set}, @code{@@clear}, @code{@@ifset},
and @code{@@ifclear} commands.
@@ -13292,21 +14292,31 @@
is formatted. If @var{flag} is clear, text through the following
@code{@@end ifset} command is ignored.
+@item @@inlineifset@{@var{flag}, @var{text}@}
+Brace-delimited version of @code{@@ifset}.
+
@item @@ifclear @var{flag}
If @var{flag} is set, text through the next @code{@@end ifclear} command
is ignored. If @var{flag} is clear, text through the following
@code{@@end ifclear} command is formatted.
-@end table
-
-@menu
-* set value:: Expand a flag variable to a string.
-* ifset ifclear:: Format a region if a flag is set.
-* value Example:: An easy way to update edition information.
-@end menu
-
-
-@node set value
+
+@item @@inlineifclear@{@var{flag}, @var{text}@}
+Brace-delimited version of @code{@@ifclear}.
+
+@end table
+
+@menu
+* @t{@@set @@value}:: Expand a flag variable to a string.
+* @t{@@ifset @@ifclear}:: Format a region if a flag is set.
+* @t{@@inlineifset @@inlineifclear}:: Brace-delimited flag conditionals.
+* @t{@@value} Example:: An easy way to update edition information.
+@end menu
+
+
+@node @t{@@set @@value}
@subsection @code{@@set} and @code{@@value}
+
+@anchor{set value}@c old name
@findex set
@findex value
@findex clear
@@ -13314,12 +14324,17 @@
You use the @code{@@set} command to specify a value for a flag, which
is later expanded by the @code{@@value} command.
-A @dfn{flag} (aka @dfn{variable}) is an identifier. It is best to use
-only letters and numerals in a flag name, not @samp{-} or
-@samp{_}---they will work in some contexts, but not all, due to
-limitations in @TeX{}.
+A @dfn{flag} (aka @dfn{variable}) name is an identifier starting with
+an alphanumeric, @samp{-}, or @samp{_}. Subsequent characters, if
+any, may not be whitespace, @samp{@@}, braces, angle brackets, or any
+of @samp{~`^+|}; other characters, such as @samp{%}, may work.
+However, it is best to use only letters and numerals in a flag name,
+not @samp{-} or @samp{_} or others---they will work in some contexts,
+but not all, due to limitations in @TeX{}.
The value is the remainder of the input line, and can contain anything.
+However, unlike most other commands which take the rest of the line as
+a value, @code{@@set} need not appear at the beginning of a line.
Write the @code{@@set} command like this:
@@ -13391,11 +14406,21 @@
@end group
@end example
-
-@node ifset ifclear
+@code{@@value} cannot be reliably used as the argument to an accent
+command (@pxref{Inserting Accents}). For example, this fails:
+
+@example
+@@set myletter a
+@@'@@value@{myletter@} @c fails!
+@end example
+
+
+@node @t{@@ifset @@ifclear}
@subsection @code{@@ifset} and @code{@@ifclear}
+@anchor{ifset ifclear}@c old name
@findex ifset
+
When a @var{flag} is set, the Texinfo formatting commands format text
between subsequent pairs of @code{@@ifset @var{flag}} and @code{@@end
ifset} commands. When the @var{flag} is cleared, the Texinfo formatting
@@ -13463,16 +14488,44 @@
@end example
-@node value Example
+@node @t{@@inlineifset @@inlineifclear}
+@subsection @code{@@inlineifset} and @code{@@inlineifclear}
+
+@findex inlineifset
+@findex inlineifclear
+@cindex Flag conditionals, brace-delimited
+@cindex Brace-delimited flag conditionals
+
+@code{@@inlineifset} and @code{@@inlineifclear} provide
+brace-delimited alternatives to the @code{@@ifset} and
+@code{@@ifclear} forms, similar to the other @code{@@inline...}
+Commands (@pxref{Inline Conditionals}). The same caveats about
+argument parsing given there apply here too.
+
+@table @code
+@item @@inlineifset@{@var{var}, @var{text}@}
+Process the Texinfo @var{text} if the flag @var{var} is defined.
+
+@item @@inlineifclear@{@var{var}, @var{text}@}
+Process the Texinfo @var{text} if the flag @var{var} is not defined.
+@end table
+
+Except for the syntax, their general behavior and purposes is the same
+as with @code{@@ifset} and @code{@@ifclear}, described in the previous
+section.
+
+
+@node @t{@@value} Example
@subsection @code{@@value} Example
+@anchor{value Example}@c old name
+
You can use the @code{@@value} command to minimize the number of
places you need to change when you record an update to a manual.
@xref{GNU Sample Texts}, for the full text of an example of using this
to work with Automake distributions.
-This example is adapted from @ref{Top,, Overview, make, The GNU Make
-Manual}.
+This example is adapted from @ref{Top,,, make, The GNU Make Manual}.
@enumerate
@item
@@ -13488,7 +14541,7 @@
@end example
@item
-Write text for the @code{@@copying} section (@pxref{copying}):
+Write text for the @code{@@copying} section (@pxref{@t{@@copying}}):
@example
@group
@@ -13556,6 +14609,77 @@
do not need to edit the three sections.
+@node Testing for Texinfo Commands
+@section Testing for Texinfo Commands: @code{@@ifcommanddefined}, @code{@@ifcommandnotdefined}
+
+@cindex Testing for Texinfo commands
+@cindex Checking for Texinfo commands
+@cindex Texinfo commands, testing for
+@cindex Commands, testing for Texinfo
+@cindex Versions of Texinfo, adapting to
+@cindex Features of Texinfo, adapting to
+
+Occasionally, you may want to arrange for your manual to test if a
+given Texinfo command is available and (presumably) do some sort of
+fallback formatting if not. There are conditionals
+@code{@@ifcommanddefined} and @code{@@ifcommandnotdefined} to do this.
+For example:
+
+@example
+@@ifcommanddefined node
+Good, @@samp@{@@@@node@} is defined.
+@@end ifcommanddefined
+@end example
+
+@noindent will output the expected `Good, @samp{@@node} is defined.'.
+
+This conditional will also consider true any new commands defined by
+the document via @code{@@macro}, @code{@@alias},
+@code{@@definfoenclose}, and @code{@@def@r{(}code@r{)}index}
+(@pxref{Defining New Texinfo Commands}). Caveat: the @TeX{}
+implementation reports internal @TeX{} commands, in addition to all
+the Texinfo commands, as being ``defined''; the @code{makeinfo}
+implementation is reliable in this regard, however.
+
+@pindex @file{NEWS} file for Texinfo
+You can check the @file{NEWS} file in the Texinfo source distribution
+and linked from the Texinfo home page
+(@url{http://www.gnu.org/software/texinfo}) to see when a particular
+command was added.
+
+These command-checking conditionals themselves were added in
+Texinfo(a)tie{}5.0, released in 2013---decades after Texinfo's
+inception. In order to test if they themselves are available,
+the predefined flag @code{txicommandconditionals} can be tested, like
+this:
+
+@example
+@@ifset txicommandconditionals
+@@ifcommandnotdefined foobarnode
+(Good, @samp{@@foobarnode} is not defined.)
+@@end ifcommandnotdefined
+@@end ifset
+@end example
+
+Since flags (see the previous section) were added early in the
+existence of Texinfo, there is no problem with assuming they are
+available.
+
+We recommend avoiding these tests whenever possible---which is usually
+the case. For many software packages, it is reasonable for all
+developers to have a given version of Texinfo (or newer) installed,
+and thus no reason to worry about older versions. (It is
+straightforward for anyone to download and install the Texinfo source;
+it does not have any problematic dependencies.)
+
+The issue of Texinfo versions does not generally arise for end-users.
+With properly distributed packages, users need not process the Texinfo
+manual simply to build and install the package; they can use
+preformatted Info (or other) output files. This is desirable in
+general, to avoid unnecessary dependencies between packages
+(@pxref{Releases,,, standard, GNU Coding Standards}).
+
+
@node Conditional Nesting
@section Conditional Nesting
@cindex Conditionals, nested
@@ -13603,204 +14727,17 @@
for nesting purposes.
-@node Internationalization
-@chapter Internationalization
-
-@cindex Internationalization
-Texinfo has some support for writing in languages other than English,
-although this area still needs considerable work.
-
-For a list of the various accented and special characters Texinfo
-supports, see @ref{Inserting Accents}.
-
-@menu
-* documentlanguage:: Declaring the current language.
-* documentencoding:: Declaring the input encoding.
-@end menu
-
-
-@node documentlanguage
-@section @code{@@documentlanguage @var{ll}[_@var{cc}]}: Set the Document Language
-
-@findex documentlanguage
-@cindex Language, declaring
-@cindex Locale, declaring
-@cindex Document language, declaring
-
-The @code{@@documentlanguage} command declares the current document
-locale. Write it on a line by itself, near the beginning of the
-file, but after @code{@@setfilename}
-(@pxref{setfilename,,@code{@@setfilename}}):
-
-@example
-@@documentlanguage @var{ll}[_@var{cc}]
-@end example
-
-Include a two-letter ISO@tie{}639-2 language code (@var{ll}) following
-the command name, optionally followed by an underscore and two-letter
-ISO@tie{}3166 two-letter country code (@var{cc}). If you have a
-multilingual document, the intent is to be able to use this command
-multiple times, to declare each language change. If the command is
-not used at all, the default is @code{en_US} for US English.
-
-As with GNU Gettext (@pxref{Top,,,gettext, Gettext}), if the country
-code is omitted, the main dialect is assumed where possible. For
-example, @code{de} is equivalent to @code{de_DE} (German as spoken in
-Germany).
-
-@cindex Document strings, translation of
-For Info and other online output, this command changes the translation
-of various @dfn{document strings} such as ``see'' in cross-references
-(@pxref{Cross References}), ``Function' in defuns (@pxref{Definition
-Commands}), and so on. Some strings, such as ``Node:'', ``Next:'',
-``Menu:'', etc., are keywords in Info output, so are not translated
-there; they are translated in other output formats.
-
-@cindex @file{txi-(a)var{cc}.tex}
-For @TeX{}, this command causes a file @file{txi-(a)var{locale}.tex} to
-be read (if it exists). If @code{@@setdocumentlanguage} argument
-contains the optional @samp{_@var{cc}} suffix, this is tried first.
-For example, with @code{@@setdocumentlanguage de_DE}, @TeX{} first
-looks for @file{txi-de_DE.tex}, then @file{txi-de.tex}.
-
-Such a @file{txi-*} file is intended to redefine the various English
-words used in @TeX{} output, such as `Chapter', `See', and so on. We
-are aware that individual words like these cannot always be translated
-in isolation, and that a very different strategy would be required for
-ideographic (among other) scripts. Help in improving Texinfo's
-language support is welcome.
-
-@cindex Hyphenation patterns, language-dependent
-It would also be desirable for this command to also change @TeX{}'s
-ideas of the current hyphenation patterns (via the @TeX{} primitive
-@code{\language}), but this is unfortunately not currently
-implemented.
-
-In September 2006, the W3C Internationalization Activity released a
-new recommendation for specifying languages:
-@url{http://www.rfc-editor.org/rfc/bcp/bcp47.txt}. When Gettext
-supports this new scheme, Texinfo will too.
-
-@cindex ISO 639-2 language codes
-@cindex ISO 3166 country codes
-@cindex Language codes
-@cindex Country codes
-Since the lists of language codes and country codes are updated
-relatively frequently, we don't attempt to list them here. The valid
-language codes are on the official home page for ISO@tie{}639,
-@url{http://www.loc.gov/standards/iso639-2/}. The country codes and
-the official web site for ISO@tie{}3166 can be found via
-@url{http://en.wikipedia.org/wiki/ISO_3166}.
-
-
-@node documentencoding
-@section @code{@@documentencoding @var{enc}}: Set Input Encoding
-
-@findex documentencoding
-@cindex Encoding, declaring
-@cindex Input encoding, declaring
-@cindex Character set, declaring
-@cindex Document input encoding
-
-The @code{@@documentencoding} command declares the input document
-encoding. Write it on a line by itself, with a valid encoding
-specification following, near the beginning of the file but after
-@code{@@setfilename} (@pxref{setfilename,,@code{@@setfilename}}):
-
-@example
-@@documentencoding @var{enc}
-@end example
-
-At present, Texinfo supports only these encodings:
-
-@table @code
-@item US-ASCII
-This has no particular effect, but it's included for completeness.
-
-@item UTF-8
-The vast global character encoding, expressed in 8-bit bytes.
-The Texinfo processors have no deep knowledge of Unicode; for the most
-part, they just pass along the input they are given to the output.
-
-@item ISO-8859-1
-@itemx ISO-8859-15
-@itemx ISO-8859-2
-These specify the standard encodings for Western European (the first
-two) and Eastern European languages (the third), respectively. ISO
-8859-15 replaces some little-used characters from 8859-1 (e.g.,
-precomposed fractions) with more commonly needed ones, such as the
-Euro symbol (@euro{}).
-
-A full description of the encodings is beyond our scope here;
-one useful reference is @uref{http://czyborra.com/charsets/iso8859.html}.
-
-@item koi8-r
-This is the commonly used encoding for the Russian language.
-
-@item koi8-u
-This is the commonly used encoding for the Ukrainian language.
-
-@end table
-
-Specifying an encoding @var{enc} has the following effects:
-
-@opindex --enable-encoding
-@cindex Local Variables: section, for encoding
-@cindex Info output, and encoding
-In Info output, unless the option @option{--disable-encoding} is given
-to @command{makeinfo}, a so-called `Local Variables' section
-(@pxref{File Variables,,,xemacs,XEmacs User's Manual}) is output
-including @var{enc}. This allows Info readers to set the encoding
-appropriately.
-
-@example
-Local Variables:
-coding: @var{enc}
-End:
-@end example
-
-Also, in Info and plain text output (barring
-@option{--disable-encoding}), accent constructs and special
-characters, such as @code{@@'e}, are output as the actual 8-bit
-character in the given encoding.
-
-@cindex HTML output, and encodings
-@cindex @code{http-equiv}, and charset specification
-@cindex @code{<meta>} HTML tag, and charset specification
-In HTML output, a @samp{<meta>} tag is output, in the @samp{<head>}
-section of the HTML, that specifies @var{enc}. Web servers and
-browsers cooperate to use this information so the correct encoding is
-used to display the page, if supported by the system.
-
-@example
-<meta http-equiv="Content-Type" content="text/html;
- charset=@var{enc}">
-@end example
-
-In split HTML output, if @option{--transliterate-file-names} is
-given (@pxref{HTML Xref 8-bit Character Expansion}), the names of HTML
-files are formed by transliteration of the corresponding node names,
-using the specified encoding.
-
-In XML and Docbook output, the given document encoding is written in
-the output file as usual with those formats.
-
-In @TeX{} output, the characters which are supported in the standard
-Computer Modern fonts are output accordingly. (For example, this
-means using constructed accents rather than precomposed glyphs.)
-Using a missing character generates a warning message, as does
-specifying an unimplemented encoding.
-
-
@node Defining New Texinfo Commands
@chapter Defining New Texinfo Commands
+
@cindex Macros
@cindex Defining new Texinfo commands
@cindex New Texinfo commands, defining
@cindex Texinfo commands, defining new
@cindex User-defined Texinfo commands
-Texinfo provides several ways to define new commands:
+Texinfo provides several ways to define new commands (in all cases,
+it's not recommended to try redefining existing commands):
@itemize @bullet
@item
@@ -13810,8 +14747,8 @@
time you use the macro.
Incidentally, these macros have nothing to do with the @code{@@defmac}
-command, which is for documenting macros in the subject of the manual
-(@pxref{Def Cmd Template}).
+command, which is for documenting macros in the subject area of the
+manual (@pxref{Def Cmd Template}).
@item
@samp{@@alias} is a convenient way to define a new name for an existing
@@ -13819,23 +14756,32 @@
@item
@samp{@@definfoenclose} allows you to define new commands with
-customized output in the Info file.
-
-@end itemize
+customized output for all non-@TeX{} output formats.
+
+@end itemize
+
+Most generally of all (not just for defining new commands), it is
+possible to invoke any external macro processor and have Texinfo
+recognize so-called @code{#line} directives for error reporting.
+
+If you want to do simple text substitution, @code{@@set} and
+@code{@@value} is the simplest approach (@pxref{@t{@@set @@clear
+@@value}}).
@menu
* Defining Macros:: Defining and undefining new commands.
* Invoking Macros:: Using a macro, once you've defined it.
* Macro Details:: Limitations of Texinfo macros.
-* alias:: Command aliases.
-* definfoenclose:: Customized highlighting.
+* @t{@@alias}:: Command aliases.
+* @t{@@definfoenclose}:: Customized highlighting.
+* External Macro Processors:: @code{#line} directives.
@end menu
@node Defining Macros
@section Defining Macros
@cindex Defining macros
-@cindex Macro definitions
+@cindex Macro definitions, Texinfo
@findex macro
You use the Texinfo @code{@@macro} command to define a macro, like this:
@@ -13855,24 +14801,20 @@
For a macro to work consistently with @TeX{}, @var{macroname} must
consist entirely of letters: no digits, hyphens, underscores, or other
special characters. So, we recommend using only letters. However,
-@command{makeinfo} will accept anything except @samp{@{@}_^=};
-@samp{_} and @samp{^} are excluded so that macros can be called in
-@code{@@math} mode without a following space
-(@pxref{math,,@code{@@math}}).
+@command{makeinfo} will accept anything consisting of alphanumerics,
+and (except as the first character) @samp{-}. The @samp{_} character
+is excluded so that macros can be called inside @code{@@math} without
+a following space (@pxref{Inserting Math}).
If a macro needs no parameters, you can define it either with an empty
list (@samp{@@macro foo @{@}}) or with no braces at all (@samp{@@macro
foo}).
@cindex Body of a macro
-@cindex Mutually recursive macros
-@cindex Recursion, mutual
The definition or @dfn{body} of the macro can contain most Texinfo
-commands, including previously-defined macros. Not-yet-defined macro
-invocations are not allowed; thus, it is not possible to have mutually
-recursive Texinfo macros. Also, a macro definition that defines another
-macro does not work in @TeX{} due to limitations in the design of
-@code{@@macro}.
+commands, including macro invocations. However, a macro definition
+that defines another macro does not work in @TeX{} due to limitations
+in the design of @code{@@macro}.
@cindex Parameters to macros
In the macro body, instances of a parameter name surrounded by
@@ -13886,9 +14828,12 @@
@cindex Spaces in macros
@cindex Whitespace in macros
-The newlines after the @code{@@macro} line and before the @code{@@end
-macro} line are ignored, that is, not included in the macro body. All
-other whitespace is treated according to the usual Texinfo rules.
+The newline characters after the @code{@@macro} line and before the
+@code{@@end macro} line are ignored, that is, not included in the
+macro body. All other whitespace is treated according to the usual
+Texinfo rules. However, there are still undesirable and unpredictable
+interactions between newlines, macros, and commands which are
+line-delimited, as warned about below (@pxref{Macro Details}).
@cindex Recursive macro invocations
@findex rmacro
@@ -13920,19 +14865,20 @@
@node Invoking Macros
@section Invoking Macros
+
@cindex Invoking macros
@cindex Expanding macros
@cindex Running macros
@cindex Macro invocation
-After a macro is defined (see the previous section), you can use
-(@dfn{invoke}) it in your document like this:
+After a macro is defined (see the previous section), you can
+@dfn{invoke} (use) it in your document like this:
@example
@@@var{macroname} @{@var{arg1}, @var{arg2}, @dots{}@}
@end example
-@noindent and the result will be just as if you typed the body of
+@noindent and the result will be more or less as if you typed the body of
@var{macroname} at that spot. For example:
@example
@@ -13949,11 +14895,11 @@
@end display
@cindex Backslash, and macros
-Thus, the arguments and parameters are separated by commas and delimited
-by braces; any whitespace after (but not before) a comma is ignored.
-The braces are required in the invocation (but not the definition), even
-when the macro takes no arguments, consistent with all other Texinfo
-commands. For example:
+Thus, the arguments and parameters are separated by commas and
+delimited by braces; any whitespace after (but not before) a comma is
+ignored. The braces are required in the invocation even when the
+macro takes no arguments, consistent with other Texinfo commands. For
+example:
@example
@@macro argless @{@}
@@ -13969,14 +14915,17 @@
@end display
@cindex Comma, in macro arguments
-Passing strings containing commas as macro arguments requires special
-care, since they should be properly @dfn{quoted} to prevent
-@command{makeinfo} from confusing them with argument separators. To
-manually quote a comma, prepend it with a backslash character, like
-this: @code{\,}. Alternatively, use the @code{@@comma} command
-(@pxref{Inserting a Comma}). However, to facilitate use of macros,
-@command{makeinfo} implements a set of rules called @dfn{automatic
-quoting}:
+Passing macro arguments containing commas requires special care, since
+commas also separate the arguments. To include a comma character in
+an argument, the most reliable method is to use the @code{@@comma@{@}}
+command. For @code{makeinfo}, you can also prepend a backslash
+character, as in @samp{\,}, but this does not work with @TeX{}.
+
+@cindex Automatic quoting of commas for some macros
+@cindex Quoting, automatic for some macros
+It's not always necessary to worry about commas. To facilitate use of
+macros, @command{makeinfo} implements two rules for @dfn{automatic
+quoting} in some circumstances:
@enumerate 1
@item If a macro takes only one argument, all commas in its invocation
@@ -13984,11 +14933,11 @@
@example
@group
-@@macro FIXME@{text@}
-@@strong@{FIXME: \text\@}
+@@macro TRYME@{text@}
+@@strong@{TRYME: \text\@}
@@end macro
-@@FIXME@{A nice feature, though it can be dangerous.@}
+@@TRYME@{A nice feature, though it can be dangerous.@}
@end group
@end example
@@ -13996,12 +14945,12 @@
will produce the following output
@example
-@strong{FIXME: A nice feature, though it can be dangerous.}
-@end example
-
-And indeed, it can. Namely, @command{makeinfo}
-does not control number of arguments passed to one-argument
-macros, so be careful when you invoke them.
+@strong{TRYME: A nice feature, though it can be dangerous.}
+@end example
+
+And indeed, it can. Namely, @command{makeinfo} does not control the
+number of arguments passed to one-argument macros, so be careful when
+you invoke them.
@item If a macro invocation includes another command (including a
recursive invocation of itself), any commas in the nested command
@@ -14027,13 +14976,14 @@
@noindent
will produce the string @samp{foobarbaz}.
-@item Otherwise, a comma should be explicitly quoted, as above, to be
-treated as a part of an argument.
+@item Otherwise, a comma should be explicitly quoted, as above, for it
+to be treated as a part of an argument.
@end enumerate
@cindex Braces, in macro arguments
-Other characters that need to be quoted in macro arguments are
-curly braces and backslash. For example
+@cindex Backslash, in macro arguments
+In addition to the comma, characters that need to be quoted in macro
+arguments are curly braces and backslash. For example:
@example
@@@var{macname} @{\\\@{\@}\,@}
@@ -14041,12 +14991,18 @@
@noindent
will pass the (almost certainly error-producing) argument
-@samp{\@{@},} to @var{macname}. However, commas in parameters, even
-if escaped by a backslash, might cause trouble in @TeX{}.
-
-If the macro is defined to take a single argument, and is invoked
-without any braces, the entire rest of the line after the macro name is
-supplied as the argument. For example:
+@samp{\@{@},} to @var{macname}.
+
+Unfortunately, this has not been reliably implemented in @TeX{}. When
+macros are used in the argument to other commands, for example, errors
+or incorrect output (the @samp{\} ``escape'' being included literally)
+are likely to result.
+
+If a macro is defined to take exactly one argument, it can (but need
+not) be invoked without any braces; then the entire rest of the line
+after the macro name is used as the argument. (Braces around the
+argument(s) are required in all other cases, i.e., if the macro takes
+either zero or more than one argument.) For example:
@example
@@macro bar @{p@}
@@ -14057,14 +15013,13 @@
@noindent produces:
-@c Sorry for cheating, but let's not require macros to process the manual.
@display
Twice: aah & aah.
@end display
-If the macro is defined to take a single argument, and is invoked with
-braces, the braced text is passed as the argument, regardless of
-commas. For example:
+Likewise, if a macro is defined to take exactly one argument, and is
+invoked with braces, the braced text is passed as the argument, also
+regardless of commas. For example:
@example
@@macro bar @{p@}
@@ -14079,6 +15034,23 @@
Twice: a,b & a,b.
@end display
+If a macro is defined to take more than one argument, but is called
+with only one (in braces), the remaining arguments are set to the
+empty string, and no error is given. For example:
+
+@example
+@@macro addtwo @{p, q@}
+Both: \p\\q\.
+@@end macro
+@@addtwo@{a@}
+@end example
+
+@noindent produces simply:
+
+@display
+Both: a.
+@end display
+
@node Macro Details
@section Macro Details and Caveats
@@ -14086,11 +15058,34 @@
@cindex Details of macro usage
@cindex Caveats for macro usage
-Due to unavoidable limitations, certain macro-related constructs cause
-problems with @TeX{}. If you get macro-related errors when producing
-the printed version of a manual, try expanding the macros with
-@command{makeinfo} by invoking @command{texi2dvi} with the @samp{-E}
-option (@pxref{Format with texi2dvi}).
+@cindex Macro expansion, contexts for
+@cindex Expansion of macros, contexts for
+By design, macro expansion does not happen in the following contexts
+in @command{makeinfo}:
+
+@itemize @bullet
+@item @code{@@macro} and @code{@@unmacro} lines;
+
+@item @code{@@if...} lines, including @code{@@ifset} and similar;
+
+@item @code{@@set}, @code{@@clear}, @code{@@value};
+
+@item @code{@@clickstyle} lines;
+
+@item @code{@@end} lines.
+@end itemize
+
+@noindent Unfortunately, @TeX{} may do some expansion in these situations,
+possibly yielding errors.
+
+Also, quite a few macro-related constructs cause problems with @TeX{};
+some of the caveats are listed below. Thus, if you get macro-related
+errors when producing the printed version of a manual, you might try
+expanding the macros with @command{makeinfo} by invoking
+@command{texi2dvi} with the @samp{-E} option (@pxref{Format with
+@t{texi2dvi}}). Or, more reliably, eschew Texinfo macros altogether
+and use a language designed for macro processing, such as M4
+(@pxref{External Macro Processors}).
@itemize @bullet
@item
@@ -14098,37 +15093,74 @@
@item
It is not advisable to redefine any @TeX{} primitive, plain, or
-Texinfo command name as a macro. Unfortunately this is a very large
-set of names, and the possible resulting errors are unpredictable.
-
-@item
-All macros are expanded inside at least one @TeX{} group. This means
-that @code{@@set} and other such commands have no effect inside a
-macro.
-
-@item
-Commas in macro arguments, even if escaped by a backslash, don't
-always work.
+Texinfo command name as a macro. Unfortunately this is a large and
+open-ended set of names, and the possible resulting errors are
+unpredictable.
+
+@item
+All macros are expanded inside at least one @TeX{} group.
@item
Macro arguments cannot cross lines.
@item
-It is (usually) best to avoid comments inside macro definitions, but
+Macros containing a command which must be on a line by itself, such as
+a conditional, cannot be invoked in the middle of a line. Similarly,
+macros containing line-oriented commands or text, such as
+@code{@@example} environments, may behave unpredictably in @TeX{}.
+
+@item
+White space is ignored at the beginnings of lines.
+
+@item
+Macros can't be reliably used in the argument to accent commands
+(@pxref{Inserting Accents}).
+
+@item
+The backslash escape for commas in macro arguments does not work;
+@code{@@comma@{@}} must be used.
+
+@item
+As a consequence, if a macro takes two or more arguments, and you want
+to pass an argument with the Texinfo command @code{@@,} (to produce a
+cedilla, @pxref{Inserting Accents}), you have to use @code{@@value} or
+another work-around. Otherwise, @TeX{} takes the comma as separating
+the arguments. Example:
+
+@example
+@@macro mactwo@{argfirst, argsecond@}
+\argfirst\+\argsecond\.
+@@end macro
+@@set fc Fran@@,cois
+@@mactwo@{@@value@{fc@}@}
+@end example
+
+@noindent produces:
+
+@display
+Fran@,cois+.
+@end display
+
+The natural-seeming @code{@@mactwo@{Fran@@,cois@}} passes the two
+arguments @samp{Fran@@} and @samp{cois} to the macro, and nothing good
+results. And, as just mentioned, although the comma can be escaped
+with a backslash for @code{makeinfo} (@samp{@@\,}), that doesn't work
+in @TeX{}, so there is no other solution.
+
+@item
+It is usually best to avoid comments inside macro definitions, but
see the next item.
@item
-Macros containing a command which must be on a line by itself, such as
-a conditional, cannot be invoked in the middle of a line. In general,
-the interaction of newlines in the macro definitions and invocations
-depends on the precise commands and context. You may be able to work
+In general, the interaction of newlines in the macro definitions and
+invocations depends on the precise commands and context,
+notwithstanding the previous statements. You may be able to work
around some problems with judicious use of @code{@@c}. Suppose you
-define a macro that is always intended to be used on a line by itself:
+define a macro that is always used on a line by itself:
@example
@@macro linemac
-@@cindex whatever
-@@c
+@@cindex whatever @@c
@@end macro
...
foo
@@ -14136,20 +15168,21 @@
bar
@end example
-Without the @code{@@c}, there will be an unwanted blank line between
+Without the @code{@@c}, there will be a unwanted blank line between
the @samp{@@cindex whatever} and the @samp{bar} (one newline comes
-from the macro definition, one from after the invocation), causing a
-paragraph break.
+from the macro definition, one from after the invocation), causing an
+unwanted paragraph break.
On the other hand, you wouldn't want the @code{@@c} if the macro was
sometimes invoked in the middle of a line (the text after the
invocation would be treated as a comment).
@item
-In general, you can't arbitrarily substitute a macro call for Texinfo
-command arguments, even when the text is the same. It might work with
-some commands, it fails with others. Best not to do it at all. For
-instance, this fails:
+In general, you can't arbitrarily substitute a macro (or
+@code{@@value}) call for Texinfo command arguments, even when the text
+is the same. Texinfo is not M4 (or even plain @TeX{}). It might work
+with some commands, it fails with others. Best not to do it at all.
+For instance, this fails:
@example
@@macro offmacro
@@ -14159,9 +15192,9 @@
@end example
@noindent
-You would expect this to be equivalent to @code{@@headings off}, but
-for @TeX{}nical reasons, it fails with a mysterious error message
-(@code{Paragraph ended before @@headings was complete}).
+This looks equivalent to @code{@@headings off}, but for @TeX{}nical
+reasons, it fails with a mysterious error message (namely,
+@samp{Paragraph ended before @@headings was complete}).
@item
Macros cannot define macros in the natural way. To do this, you must
@@ -14180,51 +15213,72 @@
\gdef\ctorx#1,#2,@{\def#1@{something involving #2 somehow@}@}
@@end tex
@end example
-
-@end itemize
-
-The @command{makeinfo} implementation also has limitations:
+@end itemize
+
+The @command{makeinfo} implementation also has the following
+limitations (by design):
@itemize
@item
@code{@@verbatim} and macros do not mix; for instance, you can't start
-a verbatim block inside a macro and end it outside.
-(@xref{verbatim}.) Starting any environment inside a macro and ending
-it outside may or may not work, for that matter.
+a verbatim block inside a macro and end it outside
+(@pxref{@t{@@verbatim}}). Starting any environment inside a macro
+and ending it outside may or may not work, for that matter.
@item
Macros that completely define macros are ok, but it's not possible to
-have incorrectly nested macro definitions. That is, @code{@@macro}
+have incompletely nested macro definitions. That is, @code{@@macro}
and @code{@@end macro} (likewise for @code{@@rmacro}) must be
correctly paired. For example, you cannot start a macro definition
-within a macro, and then end the nested definition outside the macro.
-
-@item
-@code{@@rmacro} is a kludge.
-
-@end itemize
-
-One more limitation is common to both implementations: white space is
-ignored at the beginnings of lines.
-
-Future major revisions of Texinfo may ease some of these limitations
-(by introducing a new macro syntax).
-
-
-@node alias
+within a macro, and then end that nested definition outside the macro.
+@end itemize
+
+In the @code{makeinfo} implementation before Texinfo 5.0, ends of
+lines from expansion of an @code{@@macro} definition did not end an
+@@-command line-delimited argument (@code{@@chapter}, @code{@@center},
+etc.). This is no longer the case. For example:
+
+@example
+@@macro twolines@{@}
+aaa
+bbb
+@@end macro
+@@center @@twolines@{@}
+@end example
+
+In the current @code{makeinfo}, this is equivalent to:
+
+@example
+@@center aaa
+bbb
+@end example
+
+@noindent with just @samp{aaa} as the argument to @code{@@center}. In
+the earlier implementation, it would have been parsed as this:
+
+@example
+@@center aaa bbb
+@end example
+
+
+@node @t{@@alias}
@section @samp{@@alias @var{new}=@var{existing}}
+
+@anchor{alias}@c old name
@cindex Aliases, command
@cindex Command aliases
@findex alias
The @samp{@@alias} command defines a new command to be just like an
-existing one. This is useful for defining additional markup names, thus
-preserving semantic information in the input even though the output
-result may be the same.
+existing one. This is useful for defining additional markup names,
+thus preserving additional semantic information in the input even
+though the output result may be the same.
Write the @samp{@@alias} command on a line by itself, followed by the
new command name, an equals sign, and the existing command name.
-Whitespace around the equals sign is ignored. Thus:
+Whitespace around the equals sign is optional and ignored if present.
+Thus:
+
@example
@@alias @var{new} = @var{existing}
@end example
@@ -14241,51 +15295,62 @@
Macros do not always have the same effect as aliases, due to vagaries
of argument parsing. Also, aliases are much simpler to define than
-macros. So the command is not redundant. (It was also heavily used
-in the Jargon File!)
+macros. So the command is not redundant.
+
+Unfortunately, it's not possible to alias Texinfo environments; for
+example, @code{@@alias lang=example} is an error.
Aliases must not be recursive, directly or indirectly.
-It is not advisable to redefine any @TeX{} primitive, plain, or
+It is not advisable to redefine any @TeX{} primitive, plain @TeX{}, or
Texinfo command name as an alias. Unfortunately this is a very large
-set of names, and the possible resulting errors are completely random.
-
-
-@node definfoenclose
-@section @samp{definfoenclose}: Customized Highlighting
+set of names, and the possible resulting errors from @TeX{} are
+unpredictable.
+
+@command{makeinfo} will accept the same identifiers for aliases as it
+does for macro names, that is, alphanumerics and (except as the first
+character) @samp{-}.
+
+
+@node @t{@@definfoenclose}
+@section @code{@@definfoenclose}: Customized Highlighting
+
+@anchor{definfoenclose}@c old name
@cindex Highlighting, customized
@cindex Customized highlighting
@findex definfoenclose
-A @code{@@definfoenclose} command may be used to define a highlighting
-command for Info, but not for @TeX{}. A command defined using
-@code{@@definfoenclose} marks text by enclosing it in strings that
-precede and follow the text. You can use this to get closer control of
-your Info output.
-
-Presumably, if you define a command with @code{@@definfoenclose} for Info,
-you will create a corresponding command for @TeX{}, either in
-(a)file{texinfo.tex}, @file{texinfo.cnf}, or within an @samp{@@iftex} in
-your document.
-
-Write a @code{@@definfoenclose} command on a line and follow it with
-three arguments separated by commas. The first argument to
-@code{@@definfoenclose} is the @@-command name (without the @code{@@});
-the second argument is the Info start delimiter string; and the third
-argument is the Info end delimiter string. The latter two arguments
-enclose the highlighted text in the Info file. A delimiter string may
-contain spaces. Neither the start nor end delimiter is required. If
-you do not want a start delimiter but do want an end delimiter, you must
-follow the command name with two commas in a row; otherwise, the Info
-formatting commands will naturally misinterpret the end delimiter string
-you intended as the start delimiter string.
-
-If you do a @code{@@definfoenclose} on the name of a predefined macro
-(such as @code{@@emph}, @code{@@strong}, @code{@@t}, or @code{@@i}), the
-enclosure definition will override the built-in definition.
-
-An enclosure command defined this way takes one argument in braces; this
-is intended for new markup commands (@pxref{Marking Text}).
+An @code{@@definfoenclose} command may be used to define a
+highlighting command for all the non-@TeX{} output formats. A command
+defined using @code{@@definfoenclose} marks text by enclosing it in
+strings that precede and follow the text. You can use this to get
+closer control of your output.
+
+Presumably, if you define a command with @code{@@definfoenclose}, you
+will create a corresponding command for @TeX{}, either in
+(a)file{texinfo.tex}, @file{texinfo.cnf}, or within an @samp{@@iftex} of
+@samp{@@tex} in your document.
+
+Write an @code{@@definfoenclose} command at the beginning of a line
+followed by three comma-separated arguments. The first argument to
+@code{@@definfoenclose} is the @@-command name (without the
+@code{@@}); the second argument is the start delimiter string; and the
+third argument is the end delimiter string. The latter two arguments
+enclose the highlighted text in the output.
+
+A delimiter string may contain spaces. Neither the start nor end
+delimiter is required. If you do not want a start delimiter but do
+want an end delimiter, you must follow the command name with two
+commas in a row; otherwise, the end delimiter string you intended will
+naturally be (mis)interpreted as the start delimiter string.
+
+If you do an @code{@@definfoenclose} on the name of a predefined
+command (such as @code{@@emph}, @code{@@strong}, @code{@@t}, or
+@code{@@i}), the enclosure definition will override the built-in
+definition. We don't recommend this.
+
+An enclosure command defined this way takes one argument in braces,
+since it is intended for new markup commands (@pxref{Marking Text}).
@findex phoo
For example, you can write:
@@ -14300,7 +15365,7 @@
to @code{@@phoo}. You can then write @code{@@phoo@{bar@}} wherever you
want `//bar\\' highlighted in Info.
-Also, for @TeX{} formatting, you could write
+For @TeX{} formatting, you could write
@example
@@iftex
@@ -14312,10 +15377,11 @@
to define @code{@@phoo} as a command that causes @TeX{} to typeset the
argument to @code{@@phoo} in italics.
-Each definition applies to its own formatter: one for @TeX{}, the other
-for @code{texinfo-format-buffer} or @code{texinfo-format-region}. The
-@code{@@definfoenclose} command need not be within @samp{@@ifinfo}, but
-the raw @TeX{} commands do need to be in @samp{@@iftex}.
+Each definition applies to its own formatter: one for @TeX{}, the
+other for everything else. The raw @TeX{} commands need to be in
+@samp{@@iftex}. @code{@@definfoenclose} command need not be within
+@samp{@@ifinfo}, unless you want to use different definitions for
+different output formats.
@findex headword
Here is another example: write
@@ -14333,6 +15399,438 @@
indirectly.
+@node External Macro Processors
+@section External Macro Processors: Line Directives
+@cindex External macro processors
+@cindex Macro processors, external
+
+Texinfo macros (and its other text substitution facilities) work fine
+in straightforward cases. If your document needs unusually complex
+processing, however, their fragility and limitations can be a problem.
+In this case, you may want to use a different macro processor
+altogether, such as M4 (@pxref{Top,,, m4, M4}) or CPP (@pxref{Top,,,
+cpp, The C Preprocessor}).
+
+With one exception, Texinfo does not need to know whether its input is
+``original'' source or preprocessed from some other source file.
+Therefore, you can arrange your build system to invoke whatever
+programs you like to handle macro expansion or other preprocessing
+needs. Texinfo does not offer built-in support for any particular
+preprocessor, since no one program seemed likely to suffice for the
+requirements of all documents.
+
+@cindex Line numbers, in error messages
+@cindex Error messages, line numbers in
+The one exception is line numbers in error messages. In that case,
+the line number should refer to the original source file, whatever it
+may be. There's a well-known mechanism for this: the so-called
+@samp{#line} directive. Texinfo supports this.
+
+@menu
+* @t{#line} Directive::
+* TeX: @t{#line} and @TeX{}.
+* Syntax: @t{#line} Syntax Details.
+@end menu
+
+
+@node @t{#line} Directive
+@subsection @samp{#line} Directive
+
+@cindex @samp{#line} directive
+
+An input line such as this:
+
+@example
+@hashchar{}line 100 "foo.ptexi"
+@end example
+
+@noindent indicates that the next line was line 100 of the file
+(a)file{foo.ptexi}, and so that's what an error message should refer to.
+Both M4 (@pxref{Preprocessor features,,, m4, GNU M4}) and CPP
+(@pxref{Line Control,,, cpp, The C Preprocessor}, and
+@ref{Preprocessor Output,,, cpp, The C Preprocessor}) can generate
+such lines.
+
+@vindex CPP_LINE_DIRECTIVES
+The @command{makeinfo} program recognizes these lines by default,
+except within @code{@@verbatim} blocks (@pxref{@t{@@verbatim}}.
+Their recognition can be turned off completely with
+@code{CPP_LINE_DIRECTIVES} (@pxref{Other Customization Variables}),
+though there is normally no reason to do so.
+
+For those few programs (M4, CPP, Texinfo) which need to document
+@samp{#line} directives and therefore have examples which would
+otherwise match the pattern, the command @code{@@hashchar@{@}} can be
+used (@pxref{Inserting a Hashsign}). The example line above looks
+like this in the source for this manual:
+
+@example
+@@hashchar@{@}line 100 "foo.ptexi"
+@end example
+
+The @code{@@hashchar} command was added to Texinfo in 2013. If you
+don't want to rely on it, you can also use @code{@@set} and
+@code{@@value} to insert the literal @samp{#}:
+
+@example
+@@set hash #
+@@value@{hash@}line 1 "example.c"
+@end example
+
+Or, if suitable, an @code{@@verbatim} environment can be used instead
+of @code{@@example}. As mentioned above, @code{#line}-recognition is
+disabled inside verbatim blocks.
+
+
+@node @t{#line} and @TeX{}
+@subsection @samp{#line} and @TeX{}
+
+@cindex @TeX{} and @samp{#line} directives
+@cindex @samp{#line} directives, not processing with @TeX{}
+
+As mentioned, @command{makeinfo} recognizes the @samp{#line}
+directives described in the previous section. However,
+(a)file{texinfo.tex} does not and cannot. Therefore, such a line will
+be incorrectly typeset verbatim if @TeX{} sees it. The solution is to
+use @command{makeinfo}'s macro expansion options before running
+@TeX{}. There are three approaches:
+
+@itemize @bullet
+@item
+If you run @command{texi2dvi} or its variants (@pxref{Format with
+@t{texi2dvi}}), you can pass @option{-E} and @command{texi2dvi}
+will run @command{makeinfo} first to expand macros and eliminate
+@samp{#line}.
+
+@item
+If you run @command{makeinfo} or its variants (@pxref{Generic
+Translator @t{texi2any}}), you can specify @option{--no-ifinfo
+--iftex -E somefile.out}, and then give @file{somefile.out} to
+@code{texi2dvi} in a separate command.
+
+@item
+Or you can run @option{makeinfo --dvi --Xopt -E}. (Or @option{--pdf}
+instead of @option{--dvi}.) @command{makeinfo} will then call
+@command{texi2dvi -E}.
+@end itemize
+
+@findex errormsg@r{, and line numbers in @TeX{}}
+One last caveat regarding use with @TeX{}: since the @code{#line}
+directives are not recognized, the line numbers emitted by the
+@code{@@errormsg@{@}} command (@pxref{Conditional Commands}), or by
+@TeX{} itself, are the (incorrect) line numbers from the derived file
+which @TeX{} is reading, rather than the preprocessor-specified line
+numbers. This is another example of why we recommend running
+@command{makeinfo} for the best diagnostics (@pxref{@t{makeinfo}
+Advantages}).
+
+
+@node @t{#line} Syntax Details
+@subsection @samp{#line} Syntax Details
+
+@cindex @samp{#line} syntax details
+@cindex Syntax details, @samp{#line}
+@cindex Regular expression, for @samp{#line}
+
+Syntax details for the @samp{#line} directive: the @samp{#} character
+can be preceded or followed by whitespace, the word @samp{line} is
+optional, and the file name can be followed by a whitespace-separated
+list of integers (these are so-called ``flags'' output by CPP in some
+cases). For those who like to know the gory details, the actual
+(Perl) regular expression which is matched is this:
+
+@example
+/^\s*#\s*(line)? (\d+)(( "([^"]+)")(\s+\d+)*)?\s*$/
+@end example
+
+As far as we've been able to tell, the trailing integer flags only
+occur in conjunction with a filename, so that is reflected in the
+regular expression.
+
+As an example, the following is a syntactically valid @samp{#line}
+directive, meaning line 1 of @file{/usr/include/stdio.h}:
+
+@example
+@hashchar{} 1 "/usr/include/stdio.h" 2 3 4
+@end example
+
+Unfortunately, the quoted filename (@samp{"..."}) has to be optional,
+because M4 (especially) can often generate @samp{#line} directives
+within a single file. Since the @samp{line} is also optional, the
+result is that lines might match which you wouldn't expect, e.g.,
+
+@example
+@hashchar{} 1
+@end example
+
+The possible solutions are described above (@pxref{@t{#line} Directive}).
+
+
+@node Include Files
+@chapter Include Files
+
+@cindex Include files
+
+When a Texinfo processor sees an @code{@@include} command in a Texinfo
+file, it processes the contents of the file named by the
+@code{@@include} and incorporates them into the output files being
+created. Include files thus let you keep a single large document as a
+collection of conveniently small parts.
+
+@menu
+* Using Include Files:: How to use the @code{@@include} command.
+* @t{texinfo-multiple-files-update}:: How to create and update nodes and
+ menus when using included files.
+* Include Files Requirements:: @code{texinfo-multiple-files-update} needs.
+* Sample Include File:: A sample outer file with included files
+ within it; and a sample included file.
+* Include Files Evolution:: How use of the @code{@@include} command
+ has changed over time.
+@end menu
+
+
+@node Using Include Files
+@section How to Use Include Files
+
+@findex include
+
+To include another file within a Texinfo file, write the
+@code{@@include} command at the beginning of a line and follow it on
+the same line by the name of a file to be included. For example:
+
+@example
+@@include buffers.texi
+@end example
+
+@@-commands are expanded in file names. The one most likely to be
+useful is @code{@@value} (@pxref{@t{@@set @@value}}), and even then
+only in complicated situations.
+
+An included file should simply be a segment of text that you expect to
+be included as is into the overall or @dfn{outer} Texinfo file; it
+should not contain the standard beginning and end parts of a Texinfo
+file. In particular, you should not start an included file with a
+line saying @samp{\input texinfo}; if you do, that text is inserted
+into the output file literally. Likewise, you should not end an
+included file with an @code{@@bye} command; nothing after @code{@@bye}
+is formatted.
+
+In the long-ago past, you were required to write an
+@code{@@setfilename} line at the beginning of an included file, but no
+longer. Now, it does not matter whether you write such a line. If an
+@code{@@setfilename} line exists in an included file, it is ignored.
+
+
+@node @t{texinfo-multiple-files-update}
+@section @code{texinfo-multiple-files-update}
+
+@findex texinfo-multiple-files-update
+
+XEmacs Texinfo mode provides the
+@code{texinfo-multiple-files-update} command. This command creates or
+updates `Next', `Previous', and `Up' pointers of included files as
+well as those in the outer or overall Texinfo file, and it creates or
+updates a main menu in the outer file. Depending on whether you call
+it with optional arguments, the command updates only the pointers in
+the first @code{@@node} line of the included files or all of them:
+
+@table @kbd
+@item M-x texinfo-multiple-files-update
+Called without any arguments:
+
+@itemize @minus
+@item
+Create or update the `Next', `Previous', and `Up' pointers of the
+first @code{@@node} line in each file included in an outer or overall
+Texinfo file.
+
+@item
+Create or update the `Top' level node pointers of the outer or
+overall file.
+
+@item
+Create or update a main menu in the outer file.
+@end itemize
+
+@item C-u M-x texinfo-multiple-files-update
+Called with @kbd{C-u} as a prefix argument:
+
+@itemize @minus{}
+@item
+Create or update pointers in the first @code{@@node} line in each
+included file.
+
+@item
+Create or update the `Top' level node pointers of the outer file.
+
+@item
+Create and insert a master menu in the outer file. The master menu
+is made from all the menus in all the included files.
+@end itemize
+
+@item C-u 8 M-x texinfo-multiple-files-update
+Called with a numeric prefix argument, such as @kbd{C-u 8}:
+
+@itemize @minus
+@item
+Create or update @strong{all} the `Next', `Previous', and `Up' pointers
+of all the included files.
+
+@item
+Create or update @strong{all} the menus of all the included
+files.
+
+@item
+Create or update the `Top' level node pointers of the outer or
+overall file.
+
+@item
+And then create a master menu in the outer file. This is similar to
+invoking @code{texinfo-master-menu} with an argument when you are
+working with just one file.
+@end itemize
+@end table
+
+Note the use of the prefix argument in interactive use: with a regular
+prefix argument, just @w{@kbd{C-u}}, the
+@code{texinfo-multiple-files-update} command inserts a master menu;
+with a numeric prefix argument, such as @kbd{C-u 8}, the command
+updates @strong{every} pointer and menu in @strong{all} the files and
+then inserts a master menu.
+
+
+@node Include Files Requirements
+@section Include Files Requirements
+@cindex Include files requirements
+@cindex Requirements for include files
+
+If you plan to use the @code{texinfo-multiple-files-update} command,
+the outer Texinfo file that lists included files within it should
+contain nothing but the beginning and end parts of a Texinfo file, and
+a number of @code{@@include} commands listing the included files. It
+should not even include indices, which should be listed in an included
+file of their own.
+
+Moreover, each of the included files must contain exactly one highest
+level node (conventionally, @code{@@chapter} or equivalent),
+and this node must be the first node in the included file.
+Furthermore, each of these highest level nodes in each included file
+must be at the same hierarchical level in the file structure.
+Usually, each is an @code{@@chapter}, an @code{@@appendix}, or an
+@code{@@unnumbered} node. Thus, normally, each included file contains
+one, and only one, chapter or equivalent-level node.
+
+The outer file should contain only @emph{one} node, the `Top' node. It
+should @emph{not} contain any nodes besides the single `Top' node. The
+@code{texinfo-multiple-files-update} command will not process
+them.
+
+
+@node Sample Include File
+@section Sample File with @code{@@include}
+@cindex Sample @code{@@include} file
+@cindex Include file sample
+@cindex @code{@@include} file sample
+
+Here is an example of an outer Texinfo file with @code{@@include} files
+within it before running @code{texinfo-multiple-files-update}, which
+would insert a main or master menu:
+
+@example
+@group
+\input texinfo @@c -*-texinfo-*-
+@c %**start of header
+@@setfilename include-example.info
+@@settitle Include Example
+@c %**end of header
+@end group
+
+... @xref{Sample Texinfo Files}, for
+examples of the rest of the frontmatter ...
+
+@group
+@@ifnottex
+@@node Top
+@@top Include Example
+@@end ifnottex
+@end group
+
+@group
+@@include foo.texinfo
+@@include bar.texinfo
+@@include concept-index.texinfo
+@@bye
+@end group
+@end example
+
+An included file, such as @file{foo.texinfo}, might look like this:
+
+@example
+@group
+@@node First
+@@chapter First Chapter
+
+Contents of first chapter @dots{}
+@end group
+@end example
+
+The full contents of @file{concept-index.texinfo} might be as simple as this:
+
+@example
+@group
+@@node Concept Index
+@@unnumbered Concept Index
+
+@@printindex cp
+@end group
+@end example
+
+The outer Texinfo source file for @cite{The XEmacs Lisp Reference
+Manual} is named @file{lispref.texi}. This outer file contains a master
+menu with 417 entries and a list of 41 @code{@@include}
+files.
+
+
+@node Include Files Evolution
+@section Evolution of Include Files
+
+When Info was first created, it was customary to create many small
+Info files on one subject. Each Info file was formatted from its own
+Texinfo source file. This custom meant that XEmacs did not need to
+make a large buffer to hold the whole of a large Info file when
+someone wanted information; instead, XEmacs allocated just enough
+memory for the small Info file that contained the particular
+information sought. This way, XEmacs could avoid wasting memory.
+
+References from one file to another were made by referring to the file
+name as well as the node name. (@xref{Other Info Files, , Referring to
+Other Info Files}. Also, see @ref{Four and Five Arguments, ,
+@code{@@xref} with Four and Five Arguments}.)
+
+Include files were designed primarily as a way to create a single,
+large printed manual out of several smaller Info files. In a printed
+manual, all the references were within the same document, so @TeX{}
+could automatically determine the references' page numbers. The Info
+formatting commands used include files only for creating joint
+indices; each of the individual Texinfo files had to be formatted for
+Info individually. (Each, therefore, required its own
+@code{@@setfilename} line.)
+
+However, because large Info files are now split automatically, it is
+no longer necessary to keep them small.
+
+Nowadays, multiple Texinfo files are used mostly for large documents,
+such as @cite{The XEmacs Lisp Reference Manual}, and for projects
+in which several different people write different sections of a
+document simultaneously.
+
+In addition, the Info formatting commands have been extended to work
+with the @code{@@include} command so as to create a single large Info
+file that is split into smaller files if necessary. This means that
+you can write menus and cross references without naming the different
+Texinfo files.
+
+
@node Hardcopy
@chapter Formatting and Printing Hardcopy
@cindex Format and print hardcopy
@@ -14342,14 +15840,18 @@
@cindex Sorting indices
@cindex Indices, sorting
@cindex @TeX{} index sorting
-@pindex texindex
-
-There are three major shell commands for making a printed manual from a
-Texinfo file: one for converting the Texinfo file into a file that will be
-printed, a second for sorting indices, and a third for printing the
-formatted document. When you use the shell commands, you can either
-work directly in the operating system shell or work within a shell
-inside XEmacs.
+
+Running the @command{texi2dvi} or @command{texi2pdf} command is the
+simplest way to create printable output. These commands are installed
+as part of the Texinfo package.
+
+More specifically, three major shell commands are used to print
+formatted output from a Texinfo manual: one converts the Texinfo
+source into something printable, a second sorts indices, and a third
+actually prints the formatted document. When you use the shell
+commands, you can either work directly in the operating system shell
+or work within a shell inside XEmacs (or some other computing
+environment).
If you are using XEmacs, you can use commands provided by Texinfo
mode instead of shell commands. In addition to the three commands to
@@ -14357,43 +15859,44 @@
offers key bindings for commands to recenter the output buffer, show the
print queue, and delete a job from the print queue.
-@menu
-* Use TeX:: Use @TeX{} to format for hardcopy.
-* Format with tex/texindex:: How to format with explicit shell commands.
-* Format with texi2dvi:: A simpler way to format.
-* Print with lpr:: How to print.
-* Within XEmacs:: How to format and print from an XEmacs shell.
+Details are in the following sections.
+
+@menu
+* Use @TeX{}:: Use @TeX{} to format for hardcopy.
+* Format with @t{tex}/@t{texindex}:: How to format with explicit shell commands.
+* Format with @t{texi2dvi}:: A simpler way to format.
+* Print with @t{lpr}:: How to print.
+* Within XEmacs:: How to format and print from an XEmacs shell.
* Texinfo Mode Printing:: How to format and print in Texinfo mode.
* Compile-Command:: How to print using XEmacs's compile command.
* Requirements Summary:: @TeX{} formatting requirements summary.
-* Preparing for TeX:: What to do before you use @TeX{}.
+* Preparing for @TeX{}:: What to do before you use @TeX{}.
* Overfull hboxes:: What are and what to do with overfull hboxes.
-* smallbook:: How to print small format books and manuals.
+* @t{@@smallbook}:: How to print small format books and manuals.
* A4 Paper:: How to print on A4 or A5 paper.
-* pagesizes:: How to print with customized page sizes.
+* @t{@@pagesizes}:: How to print with customized page sizes.
* Cropmarks and Magnification:: How to print marks to indicate the size
of pages and how to print scaled up output.
* PDF Output:: Portable Document Format output.
-* Obtaining TeX:: How to Obtain @TeX{}.
-@end menu
-
-@node Use TeX
+* Obtaining @TeX{}:: How to obtain @TeX{}.
+@end menu
+
+
+@node Use @TeX{}
@section Use @TeX{}
The typesetting program called @TeX{} is used for formatting a Texinfo
-file. @TeX{} is a very powerful typesetting program and, if used correctly,
-does an exceptionally good job. (@xref{Obtaining TeX, , How to Obtain
-@TeX{}}, for information on how to obtain @TeX{}.)
-
-The standalone @code{makeinfo} program and XEmacs functions
-@code{texinfo-format-region} and @code{texinfo-format-buffer} commands
-read the very same @@-commands in the Texinfo file as does @TeX{}, but
-process them differently to make an Info file (@pxref{Creating an Info
-File}).
-
-
-@node Format with tex/texindex
-@section Format with @code{tex} and @code{texindex}
+file. @TeX{} is a very powerful typesetting program and, when used
+correctly, does an exceptionally good job.
+
+@xref{Obtaining @TeX{}}, for information on how to obtain @TeX{}. It
+is not included in the Texinfo package, being a vast suite of software
+itself.
+
+
+@node Format with @t{tex}/@t{texindex}
+@section Format with @code{tex}/@code{texindex}
+
@cindex Shell formatting with @code{tex} and @code{texindex}
@cindex Formatting with @code{tex} and @code{texindex}
@cindex DVI file
@@ -14405,8 +15908,7 @@
tex foo.texi
@end example
-@noindent
-@TeX{} will produce a @dfn{DVI file} as well as several auxiliary
+@noindent @TeX{} will produce a @dfn{DVI file} as well as several auxiliary
files containing information for indices, cross references, etc. The
DVI file (for @dfn{DeVice Independent} file) can be printed on virtually
any device (see the following sections).
@@ -14420,16 +15922,17 @@
Texinfo distribution, among other places.) (@command{texi2dvi} runs
@command{tex} and @command{texindex} as necessary.)
+@anchor{Names of index files}
@cindex Names of index files
@cindex Index file names
-The @code{tex} formatting command outputs unsorted index files under
-names that obey a standard convention: the name of your main input file
-with any @samp{.tex} (or similar, @pxref{tex invocation,,, web2c,
-Web2c}) extension removed, followed by the two letter names of indices.
-For example, the raw index output files for the input file
-(a)file{foo.texinfo} would be @file{foo.cp}, @file{foo.vr}, @file{foo.fn},
-(a)file{foo.tp}, @file{foo.pg} and @file{foo.ky}. Those are exactly the
-arguments to give to @code{texindex}.
+@code{tex} formatting command outputs unsorted index files under names
+that obey a standard convention: the name of your main input file with
+any @samp{.texinfo} (or similar, @pxref{Minimum,, What a Texinfo File
+Must Have}), followed by the two letter names of indices. For
+example, the raw index output files for the input file
+(a)file{foo.texinfo} would be @file{foo.cp}, @file{foo.vr},
+(a)file{foo.fn}, @file{foo.tp}, @file{foo.pg} and @file{foo.ky}. Those
+are exactly the arguments to give to @code{texindex}.
@need 1000
@cindex Wildcards
@@ -14444,11 +15947,11 @@
@noindent
This command will run @code{texindex} on all the unsorted index files,
-including any that you have defined yourself using @code{@@defindex}
-or @code{@@defcodeindex}. (You may execute @samp{texindex foo.??}
-even if there are similarly named files with two letter extensions
-that are not index files, such as @samp{foo.el}. The @code{texindex}
-command reports but otherwise ignores such files.)
+including any two letter indices that you have defined yourself using
+@code{@@defindex} or @code{@@defcodeindex}. You can safely run
+@samp{texindex foo.??} even if there are files with two letter
+extensions that are not index files, such as @samp{foo.el}. The
+@code{texindex} command reports but otherwise ignores such files.
For each file specified, @code{texindex} generates a sorted index file
whose name is made by appending @samp{s} to the input file name. The
@@ -14461,14 +15964,14 @@
up-to-date index entries.
Finally, you may need to run @code{tex} one more time, to get the page
-numbers in the cross-references correct.
+numbers in the cross references correct.
To summarize, this is a five step process:
@enumerate
@item
Run @code{tex} on your Texinfo file. This generates a DVI file (with
-undefined cross-references and no indices), and the raw index files
+undefined cross references and no indices), and the raw index files
(with two letter extensions).
@item
@@ -14477,20 +15980,21 @@
@item
Run @code{tex} again on your Texinfo file. This regenerates the DVI
-file, this time with indices and defined cross-references, but with page
-numbers for the cross-references from last time, generally incorrect.
+file, this time with indices and defined cross references, but with
+page numbers for the cross references from the previous run, generally
+incorrect.
@item
Sort the indices again, with @code{texindex}.
@item
Run @code{tex} one last time. This time the correct page numbers are
-written for the cross-references.
+written for the cross references.
@end enumerate
@pindex texi2dvi
Alternatively, it's a one-step process: run @code{texi2dvi}
-(@pxref{Format with texi2dvi}).
+(@pxref{Format with @t{texi2dvi}}).
You need not run @code{texindex} each time after you run @code{tex}. If
you do not, on the next run, the @code{tex} formatting command will use
@@ -14503,12 +16007,12 @@
@cindex Chapters, formatting one at a time
Sometimes you may wish to print a document while you know it is
incomplete, or to print just one chapter of a document. In that case,
-the usual auxiliary files that @TeX{} creates and warnings @TeX{} gives
-when cross-references are not satisfied are just nuisances. You can
-avoid them with the @code{@@novalidate} command, which you must give
-@emph{before} the @code{@@setfilename} command
-(@pxref{setfilename,,@code{@@setfilename}}). Thus, the beginning of
-your file would look approximately like this:
+the usual auxiliary files that @TeX{} creates and warnings @TeX{}
+gives when cross references are not satisfied are just nuisances. You
+can avoid them with the @code{@@novalidate} command, which you must
+give @emph{before} the @code{@@setfilename} command
+(@pxref{@t{@@setfilename}}). Thus, the beginning of your file
+would look approximately like this:
@example
\input texinfo
@@ -14522,13 +16026,14 @@
(@pxref{Pointer Validation}).
-@node Format with texi2dvi
+@node Format with @t{texi2dvi}
@section Format with @code{texi2dvi}
+
@pindex texi2dvi @r{(shell script)}
The @code{texi2dvi} command automatically runs both @TeX{} and
@command{texindex} as many times as necessary to produce a DVI file
-with sorted indices and all cross-references resolved. It is
+with sorted indices and all cross references resolved. It is
therefore simpler than manually executing the
@code{tex}---@code{texindex}---@code{tex}---@code{tex} sequence
described in the previous section.
@@ -14546,31 +16051,49 @@
texi2dvi foo.texi} instead of relying on the operating system to invoke
the shell on the @samp{texi2dvi} script.
-@opindex --command @r{(@command{texi2dvi})}
+@opindex --command@r{, for @command{texi2dvi}}
One useful option to @code{texi2dvi} is @samp{--command=@var{cmd}}.
This inserts @var{cmd} on a line by itself after the
@code{@@setfilename} in a temporary copy of the input file before
running @TeX{}. With this, you can specify different printing
-formats, such as @code{@@smallbook} (@pxref{smallbook}),
+formats, such as @code{@@smallbook} (@pxref{@t{@@smallbook}}),
@code{@@afourpaper} (@pxref{A4 Paper}), or @code{@@pagesizes}
-(@pxref{pagesizes}), without actually changing the document source.
-(You can also do this on a site-wide basis with @file{texinfo.cnf};
-@pxref{Preparing for TeX,,Preparing for @TeX{}}).
-
-@opindex --pdf @r{(@command{texi2dvi})}
+(@pxref{@t{@@pagesizes}}), without actually changing the document
+source. (You can also do this on a site-wide basis with
+(a)file{texinfo.cnf}; @pxref{Preparing for @TeX{}}).
+
+@opindex --pdf@r{, for @command{texi2dvi}}
+@pindex pdftexi2dvi
With the @option{--pdf} option, @command{texi2dvi} produces PDF output
instead of DVI (@pxref{PDF Output}), by running @command{pdftex}
instead of @command{tex}. Alternatively, the command
@command{texi2pdf} is an abbreviation for running @samp{texi2dvi
--pdf}. The command @command{pdftexi2dvi} is also supported as a
-convenience to AUC-@TeX{} users, since the latter merely prepends
-@samp{pdf} to DVI producing tools to have PDF producing tools.
+convenience to AUC-@TeX{} users (@pxref{Top,,, auctex, AUC-@TeX{}}, since
+that program merely prepends @samp{pdf} to DVI producing tools to have
+PDF producing tools.
+
+@opindex --dvipdf@r{, for @command{texi2dvi}}
+@pindex dvipdfmx
+With the @option{--dvipdf} option, @command{texi2dvi} produces PDF
+output by running @TeX{} and then a DVI-to-PDF program: if the
+@env{DVIPDF} environment variable is set, that value is used, else
+the first extant among @code{dvipdfmx}, @code{dvipdfm}, @code{dvipdf},
+@code{dvi2pdf}, @code{dvitopdf}. This method can support CJK
+typesetting better than @command{pdftex}.
+
+@opindex --ps@r{, for @command{texi2dvi}}
+@pindex dvips
+With the @option{--ps} option, @command{texi2dvi} produces PostScript
+instead of DVI, by running @command{tex} and then @command{dvips}
+(@pxref{Top,,, dvips, Dvips}). (Or the value of the @env{DVIPS}
+environment variable, if set.)
@cindex @LaTeX{}, processing with @command{texi2dvi}
@command{texi2dvi} can also be used to process @LaTeX{} files; simply
run @samp{texi2dvi filename.ext}.
-@opindex --language @r{(@command{texi2dvi})}
+@opindex --language@r{, for @command{texi2dvi}}
Normally @command{texi2dvi} is able to guess the input file language
by its contents and file name suffix. If, however, it fails to do so
you can specify the input language using
@@ -14583,24 +16106,24 @@
the @TeX{} programming in some cases, and provide additional tracing
information when debugging @file{texinfo.tex}.
-@opindex --translate-file @r{(@command{texi2dvi})}
+@opindex --translate-file@r{, for @command{texi2dvi}}
Several options are provided for handling documents, written in
-character sets other than ASCII. The
+character sets other than ASCII@. The
@option{--translate-file=@var{file}} option instructs
@command{texi2dvi} to translate input into internal @TeX{} character
set using @dfn{translation file} @var{file} (@pxref{TCX files, TCX
files, TCX files: Character translations, web2c, Web2c: A @TeX{}
implementation}).
-@opindex --recode @r{(@command{texi2dvi})}
+@opindex --recode@r{, for @command{texi2dvi}}
The options @option{--recode} and @option{--recode-from=@var{enc}}
allow conversion of an input document before running @TeX{}. The
@option{--recode} option recodes the document from encoding specified
by @samp{@@documentencoding} command
-(@pxref{documentencoding,,@code{documentencoding}}) to plain 7-bit
-@samp{texinfo} encoding.
-
-@opindex --recode-from @r{(@command{texi2dvi})}
+(@pxref{@t{@@documentencoding}}) to plain 7-bit @samp{texinfo}
+encoding.
+
+@opindex --recode-from@r{, for @command{texi2dvi}}
The option @option{--recode-from=@var{enc}} recodes the document from
@var{enc} encoding to the encoding specified by
@samp{@@documentencoding}. This is useful, for example, if the
@@ -14610,13 +16133,22 @@
Both @option{--recode} and @option{--recode-from=@var{enc}} use
@command{recode} utility to perform the conversion. If
@command{recode} fails to process the file, @command{texi2dvi} prints
-a warning and continues using unmodified input file.
-
-For a list of other options, run @samp{texi2dvi --help}.
-
-
-@node Print with lpr
-@section Shell Print Using @code{lpr -d}
+a warning and continues, using the unmodified input file.
+
+The option @option{-E} (equivalently, @option{-e} and
+@option{--expand}) does Texinfo macro expansion using
+@command{makeinfo} instead of the @TeX{} implementation (@pxref{Macro
+Details}). Each implementation has its own limitations and
+advantages. If this option is used, the string
+@code{@@c@tie{}_texi2dvi} must not appear at the beginning of a line
+in the source file.
+
+For the list of all options, run @samp{texi2dvi --help}.
+
+
+@node Print with @t{lpr}
+@section Print With @code{lpr -d} From Shell
+
@pindex lpr @r{(DVI print command)}
The precise command to print a DVI file depends on your system
@@ -14697,7 +16229,7 @@
You can switch to and from the shell buffer while @code{tex} is
running and do other editing. If you are formatting a long document
-on a slow machine, this can be very convenient.@refill
+on a slow machine, this can be very convenient.
You can also use @code{texi2dvi} from an XEmacs shell. For example,
here is how to use @code{texi2dvi} to format and print @cite{Using and
@@ -14724,58 +16256,58 @@
formatting and printing. These include commands for sorting indices,
looking at the printer queue, killing the formatting job, and
recentering the display of the buffer in which the operations
-occur.@refill
+occur.
@table @kbd
@item C-c C-t C-b
@itemx M-x texinfo-tex-buffer
-Run @code{texi2dvi} on the current buffer.@refill
+Run @code{texi2dvi} on the current buffer.
@item C-c C-t C-r
@itemx M-x texinfo-tex-region
-Run @TeX{} on the current region.@refill
+Run @TeX{} on the current region.
@item C-c C-t C-i
@itemx M-x texinfo-texindex
Sort the indices of a Texinfo file formatted with
-@code{texinfo-tex-region}.(a)refill
+@code{texinfo-tex-region}.
@item C-c C-t C-p
@itemx M-x texinfo-tex-print
Print a DVI file that was made with @code{texinfo-tex-region} or
-@code{texinfo-tex-buffer}.(a)refill
+@code{texinfo-tex-buffer}.
@item C-c C-t C-q
@itemx M-x tex-show-print-queue
-Show the print queue.@refill
+Show the print queue.
@item C-c C-t C-d
@itemx M-x texinfo-delete-from-print-queue
Delete a job from the print queue; you will be prompted for the job
number shown by a preceding @kbd{C-c C-t C-q} command
-(@code{texinfo-show-tex-print-queue}).(a)refill
+(@code{texinfo-show-tex-print-queue}).
@item C-c C-t C-k
@itemx M-x tex-kill-job
Kill the currently running @TeX{} job started by either
@code{texinfo-tex-region} or @code{texinfo-tex-buffer}, or any other
-process running in the Texinfo shell buffer.@refill
+process running in the Texinfo shell buffer.
@item C-c C-t C-x
@itemx M-x texinfo-quit-job
Quit a @TeX{} formatting job that has stopped because of an error by
sending an @key{x} to it. When you do this, @TeX{} preserves a record
-of what it did in a @file{.log} file.@refill
+of what it did in a @file{.log} file.
@item C-c C-t C-l
@itemx M-x tex-recenter-output-buffer
Redisplay the shell buffer in which the @TeX{} printing and formatting
-commands are run to show its most recent output.@refill
+commands are run to show its most recent output.
@end table
@need 1000
Thus, the usual sequence of commands for formatting a buffer is as
-follows (with comments to the right):@refill
+follows (with comments to the right):
@example
@group
@@ -14792,11 +16324,11 @@
You can watch the commands operate in the @samp{*tex-shell*} buffer,
and you can switch to and from and use the @samp{*tex-shell*} buffer
-as you would any other shell buffer.@refill
+as you would any other shell buffer.
@need 1500
The formatting and print commands depend on the values of several variables.
-The default values are:@refill
+The default values are:
@example
@group
@@ -14817,7 +16349,7 @@
You can change the values of these variables with the @kbd{M-x
set-variable} command (@pxref{Examining, , Examining and Setting
Variables, xemacs, XEmacs User's Manual}), or with your @file{init.el}
-initialization file (@pxref{Init File, , , xemacs, The XEmacs
+initialization file (@pxref{Init File, , , xemacs, XEmacs User's
Manual}).
@cindex Customize XEmacs package (@t{Development/Docs/Texinfo})
@@ -14842,7 +16374,7 @@
@kbd{M-x compile}. This creates a special shell called the
@file{*compilation*} buffer in which XEmacs runs the compile command.
For example, at the end of the @file{gdb.texinfo} file, after the
-@code{@@bye}, you could put the following:@refill
+@code{@@bye}, you could put the following:
@example
@group
@@ -14854,7 +16386,7 @@
@noindent
This technique is most often used by programmers who also compile programs
-this way; see @ref{Compilation, , , xemacs, XEmacs User's Manual}.@refill
+this way; see @ref{Compilation, , , xemacs, XEmacs User's Manual}.
@node Requirements Summary
@@ -14868,7 +16400,7 @@
@example
\input texinfo
-@@setfilename @var{arg-not-used-by-@@TeX@{@}}
+@@setfilename @var{arg-not-used-by-@TeX{}}
@end example
@noindent
@@ -14894,16 +16426,16 @@
For more information, see:
@itemize @bullet
-@item @ref{settitle, , @code{@@settitle}}.
-@item @ref{setchapternewpage, , @code{@@setchapternewpage}}.
-@item @ref{Headings, ,Page Headings}.
+@item @ref{@t{@@settitle}}.
+@item @ref{@t{@@setchapternewpage}}.
+@item @ref{Headings}.
@item @ref{Titlepage & Copyright Page}.
@item @ref{Printing Indices & Menus}.
@item @ref{Contents}.
@end itemize
-@node Preparing for TeX
+@node Preparing for @TeX{}
@section Preparing for @TeX{}
@cindex Preparing for @TeX{}
@cindex @TeX{} input initialization
@@ -14945,20 +16477,20 @@
@pindex feymr10@r{, installing}
@cindex Euro font, installing
If you intend to use the @code{@@euro} command, you should install the
-Euro font, if it is not already installed. @xref{euro}.
+Euro font, if it is not already installed. @xref{@t{@@euro}}.
@pindex texinfo.cnf @r{installation}
@cindex Customizing of @TeX{} for Texinfo
@cindex Site-wide Texinfo configuration file
-Optionally, you may create an additional @file{texinfo.cnf}, and install
-it as well. This file is read by @TeX{} when the @code{@@setfilename}
-command is executed (@pxref{setfilename,, @code{@@setfilename}}). You can put any
-commands you like there, according to local site-wide conventions. They
-will be read by @TeX{} when processing any Texinfo document. For
-example, if @file{texinfo.cnf} contains the line @samp{@@afourpaper}
-(@pxref{A4 Paper}), then all Texinfo documents will be processed with
-that page size in effect. If you have nothing to put in
-(a)file{texinfo.cnf}, you do not need to create it.
+Optionally, you may create a file @file{texinfo.cnf} for site
+configuration. This file is read by @TeX{} when the
+@code{@@setfilename} command is executed (@pxref{@t{@@setfilename}}).
+You can put any commands you like there, according to local site-wide
+conventions. They will be read by @TeX{} when processing any Texinfo
+document. For example, if @file{texinfo.cnf} contains the line
+@samp{@@afourpaper} (@pxref{A4 Paper}), then all Texinfo documents
+will be processed with that page size in effect. If you have nothing
+to put in @file{texinfo.cnf}, you do not need to create it.
@cindex Environment variable @code{TEXINPUTS}
@vindex TEXINPUTS
@@ -14968,22 +16500,13 @@
file after the @code{\input} command. Another way, that works for both
@file{texinfo.tex} and @file{texinfo.cnf} (and any other file @TeX{}
might read), is to set the @code{TEXINPUTS} environment variable in your
-(a)file{.cshrc} or @file{.profile} file.
-
-Which you use of @file{.cshrc} or @file{.profile} depends on
+(a)file{.profile} or @file{.cshrc} file.
+
+Whether you use @file{.profile} or @file{.cshrc} depends on
whether you use a Bourne shell-compatible (@code{sh}, @code{bash},
@code{ksh}, @dots{}) or C shell-compatible (@code{csh}, @code{tcsh})
-command interpreter. The latter read the @file{.cshrc} file for
-initialization information, and the former read @file{.profile}.
-
-In a @file{.cshrc} file, you could use the following @code{csh} command
-sequence:
-
-@example
-setenv TEXINPUTS .:/home/me/mylib:
-@end example
-
-@need 1000
+command interpreter, respeictvely.
+
In a @file{.profile} file, you could use the following @code{sh} command
sequence:
@@ -14994,9 +16517,17 @@
@end group
@end example
+@need 1000
+While in a @file{.cshrc} file, you could use the following @code{csh}
+command sequence:
+
+@example
+setenv TEXINPUTS .:/home/me/mylib:
+@end example
+
+
On MS-DOS/MS-Windows, you would say it like this@footnote{Note the use
-of the @samp{;} character, instead of @samp{:}, as directory separator
-on these systems.}:
+of the @samp{;} character as directory separator, instead of @samp{:}.}:
@example
@group
@@ -15006,7 +16537,7 @@
@noindent
It is customary for DOS/Windows users to put such commands in the
-(a)file{autoexec.bat} file, or in the Windows Registry.
+(a)file{autoexec.bat} file, or in the Windows registry.
@noindent
These settings would cause @TeX{} to look for @file{\input} file first
@@ -15018,7 +16549,7 @@
@cindex Dumping a .fmt file
@cindex Format file, dumping
Finally, you may wish to dump a @file{.fmt} file (@pxref{Memory dumps,,,
-web2c, Web2c}) so that @TeX{} can load Texinfo faster. (The
+web2c, Web2C}) so that @TeX{} can load Texinfo faster. (The
disadvantage is that then updating @file{texinfo.tex} requires
redumping.) You can do this by running this command, assuming
@file{epsf.tex} is findable by @TeX{}:
@@ -15036,7 +16567,7 @@
@node Overfull hboxes
@section Overfull ``hboxes''
@cindex Overfull @samp{hboxes}
-@cindex @samp{hboxes}, overfull
+@cindex @samp{hbox}, overfull
@cindex Final output
@TeX{} is sometimes unable to typeset a line without extending it into
@@ -15052,12 +16583,12 @@
@findex hbox
@noindent
(In @TeX{}, lines are in ``horizontal boxes'', hence the term, ``hbox''.
-@samp{@@hbox} is a @TeX{} primitive not needed in the Texinfo language.)
+@samp{@@hbox} is a @TeX{} primitive not used in the Texinfo language.)
@TeX{} also provides the line number in the Texinfo source file and
the text of the offending line, which is marked at all the places that
@TeX{} considered hyphenation.
-@xref{Debugging with TeX, , Catching Errors with @TeX{} Formatting},
+@xref{Debugging with @TeX{}},
for more information about typesetting errors.
If the Texinfo file has an overfull hbox, you can rewrite the sentence
@@ -15103,8 +16634,10 @@
@end example
-@node smallbook
-@section Printing ``Small'' Books
+@node @t{@@smallbook}
+@section @code{@@smallbook}: Printing ``Small'' Books
+
+@anchor{smallbook}@c old name
@findex smallbook
@cindex Small book size
@cindex Book, printing small
@@ -15115,7 +16648,7 @@
format. However, you can direct @TeX{} to typeset a document in a 7 by
9.25 inch format that is suitable for bound books by inserting the
following command on a line by itself at the beginning of the Texinfo
-file, before the title page:@refill
+file, before the title page:
@example
@@smallbook
@@ -15130,14 +16663,14 @@
If you write the @code{@@smallbook} command between the
start-of-header and end-of-header lines, the Texinfo mode @TeX{}
region formatting command, @code{texinfo-tex-region}, will format the
-region in ``small'' book size (@pxref{Start of Header}).@refill
-
-@xref{small}, for information about
-commands that make it easier to produce examples for a smaller manual.
-
-@xref{Format with texi2dvi}, and @ref{Preparing for TeX,,Preparing for
-@TeX{}}, for other ways to format with @code{@@smallbook} that do not
-require changing the source file.
+region in ``small'' book size (@pxref{Start of Header}).
+
+@xref{@t{@@small@dots{}}}, for information about commands that make
+it easier to produce examples for a smaller manual.
+
+@xref{Format with @t{texi2dvi}}, and @ref{Preparing for @TeX{}},
+for other ways to format with @code{@@smallbook} that do not require
+changing the source file.
@node A4 Paper
@@ -15165,9 +16698,9 @@
@end group
@end example
-@xref{Format with texi2dvi}, and @ref{Preparing for TeX,,Preparing for
-@TeX{}}, for other ways to format for different paper sizes that do not
-require changing the source file.
+@xref{Format with @t{texi2dvi}}, and @ref{Preparing for @TeX{}},
+for other ways to format for different paper sizes that do not require
+changing the source file.
@findex afourlatex
@findex afourwide
@@ -15175,8 +16708,11 @@
@code{@@afourlatex}. There's also @code{@@afourwide} for A4 paper in
wide format.
-@node pagesizes
+
+@node @t{@@pagesizes}
@section @code{@@pagesizes} [@var{width}][, @var{height}]: Custom Page Sizes
+@anchor{pagesizes}@c old node name
+
@findex pagesizes
@cindex Custom page sizes
@cindex Page sizes, customized
@@ -15208,54 +16744,53 @@
@cindex Margins on page, not controllable
To make more elaborate changes, such as changing any of the page
-margins, you must define a new command in @file{texinfo.tex} (or
-(a)file{texinfo.cnf}, @pxref{Preparing for TeX,,Preparing for @TeX{}}).
-
-@xref{Format with texi2dvi}, and @ref{Preparing for TeX,,Preparing for
-@TeX{}}, for other ways to specify @code{@@pagesizes} that do not
-require changing the source file.
+margins, you must define a new command in @file{texinfo.tex} or
+(a)file{texinfo.cnf}.
+
+@xref{Format with @t{texi2dvi}}, and @ref{Preparing for @TeX{}},
+for other ways to specify @code{@@pagesizes} that do not require
+changing the source file.
@code{@@pagesizes} is ignored by @code{makeinfo}.
@node Cropmarks and Magnification
@section Cropmarks and Magnification
+
@findex cropmarks
@cindex Cropmarks for printing
@cindex Printing cropmarks
-You can (attempt to) direct @TeX{} to print cropmarks at the corners of
-pages with the @code{@@cropmarks} command. Write the @code{@@cropmarks}
-command on a line by itself between @code{@@iftex} and @code{@@end
-iftex} lines near the beginning of the Texinfo file, before the title
-page, like this:@refill
-
-@example
-@group
-@@iftex
+You can (attempt to) direct @TeX{} to print cropmarks at the corners
+of pages with the @code{@@cropmarks} command. Write the
+@code{@@cropmarks} command on a line by itself near the beginning of
+the Texinfo file, before the title page, like this:
+
+@example
@@cropmarks
-@@end iftex
-@end group
@end example
This command is mainly for printers that typeset several pages on one
sheet of film; but you can attempt to use it to mark the corners of a
book set to 7 by 9.25 inches with the @code{@@smallbook} command.
(Printers will not produce cropmarks for regular sized output that is
-printed on regular sized paper.) Since different printing machines work
-in different ways, you should explore the use of this command with a
-spirit of adventure. You may have to redefine the command in
+printed on regular sized paper.) Since different printing machines
+work in different ways, you should explore the use of this command
+with a spirit of adventure. You may have to redefine the command in
@file{texinfo.tex}.
+The @code{@@cropmarks} command is recognized and ignored in non-@TeX{}
+output formats.
+
@findex \mag @r{(raw @TeX{} magnification)}
@cindex Magnified printing
@cindex Larger or smaller pages
-You can attempt to direct @TeX{} to typeset pages larger or smaller than
-usual with the @code{\mag} @TeX{} command. Everything that is typeset
-is scaled proportionally larger or smaller. (@code{\mag} stands for
-``magnification''.) This is @emph{not} a Texinfo @@-command, but is a
-plain @TeX{} command that is prefixed with a backslash. You have to
-write this command between @code{@@tex} and @code{@@end tex}
-(@pxref{Raw Formatter Commands}).
+You can attempt to direct @TeX{} to typeset pages larger or smaller
+than usual with the @code{\mag} @TeX{} command. Everything that is
+typeset is scaled proportionally larger or smaller. (@code{\mag}
+stands for ``magnification''.) This is @emph{not} a Texinfo
+@@-command, but is a raw @TeX{} command that is prefixed with a
+backslash. You have to write this command between @code{@@tex} and
+@code{@@end tex} (@pxref{Raw Formatter Commands}).
Follow the @code{\mag} command with an @samp{=} and then a number that
is 1000 times the magnification you desire. For example, to print pages
@@ -15287,11 +16822,11 @@
@pindex pdftex
The simplest way to generate PDF output from Texinfo source is to run
the convenience script @command{texi2pdf} (or @command{pdftexi2dvi});
-this simply executes the @command{texi2dvi} script with the
-@option{--pdf} option (@pxref{Format with texi2dvi}). If for some
-reason you want to process the document by hand, simply run the
-@command{pdftex} program instead of plain @command{tex}. That is, run
-@samp{pdftex foo.texi} instead of @samp{tex foo.texi}.
+this executes the @command{texi2dvi} script with the @option{--pdf}
+option (@pxref{Format with @t{texi2dvi}}). If for some reason you
+want to process the document by hand, you can run the @command{pdftex}
+program instead of plain @command{tex}. That is, run @samp{pdftex
+foo.texi} instead of @samp{tex foo.texi}.
@dfn{PDF} stands for `Portable Document Format'. It was invented by
Adobe Systems some years ago for document interchange, based on their
@@ -15299,268 +16834,306 @@
@itemize
@item
-GNU GV, a @uref{http://www.foolabs.com/xpdf/, Ghostscript-based PDF
+GNU GV, a @uref{http://www.gnu.org/software/gv/, Ghostscript-based PDF
reader}. (It can also preview PostScript documents.)
@item
-A freely available standalone @uref{http://www.foolabs.com/xpdf/,
-PDF reader} for the X window system.
+@code{xpdf}, a freely available standalone
+@uref{http://www.foolabs.com/xpdf/, PDF reader} for the X window
+system.
@item
@uref{http://partners.adobe.com/asn/acrobat/sdk/public/docs/, PDF definition}.
@end itemize
-At present, Texinfo does not provide
-@samp{@@ifpdf} or @samp{@@pdf} commands as for the other output
-formats, since PDF documents contain many internal links that would be
-hard or impossible to get right at the Texinfo source level.
-
-PDF files require special software to be displayed, unlike the plain
+At present, Texinfo does not provide @samp{@@ifpdf} or @samp{@@pdf}
+commands as for the other output formats, since PDF documents contain
+many internal low-level offsets and references that would be hard or
+impossible to get right at the Texinfo source level.
+
+PDF files require dedicated software to be displayed, unlike the plain
ASCII formats (Info, HTML) that Texinfo supports. They also tend to
be much larger than the DVI files output by @TeX{} by default.
Nevertheless, a PDF file does define an actual typeset document in a
self-contained file, so it has its place.
-@node Obtaining TeX
-@section How to Obtain @TeX{}
+@node Obtaining @TeX{}
+@section Obtaining @TeX{}
@cindex Obtaining @TeX{}
@cindex @TeX{}, how to obtain
-@c !!! Here is information about obtaining TeX. Update it whenever.
-@c !!! Also consider updating TeX.README on ftp.gnu.org.
-@c Updated by RJC on 1 March 1995, conversation with MacKay.
-@c Updated by kb(a)cs.umb.edu on 29 July 1996.
-@c Updated by kb(a)cs.umb.edu on 25 April 1997.
-@c Updated by kb(a)cs.umb.edu on 27 February 1998.
-@TeX{} is freely redistributable. You can obtain @TeX{} for Unix
-systems via anonymous ftp or on physical media. The core material
-consists of the Web2c @TeX{} distribution (@uref{http://tug.org/web2c}).
-
-Instructions for retrieval by anonymous ftp and information on other
-available distributions:
-@uref{http://tug.org/unixtex.ftp}.
-
-The Free Software Foundation provides a core distribution on its Source
-Code CD-ROM suitable for printing Texinfo manuals. To order it, contact:
-
-@display
-@group
-Free Software Foundation, Inc.
-51 Franklin St, Fifth Floor
-Boston, MA @ @ 02110-1301
-USA
-Telephone: @w{+1-617-542-5942}
-Fax: (including Japan) @w{+1-617-542-2652}
-Free Dial Fax (in Japan):
-@w{ } @w{ } @w{ } 0031-13-2473 (KDD)
-@w{ } @w{ } @w{ } 0066-3382-0158 (IDC)
-Electronic mail: @code{gnu@(a)gnu.org}
-@end group
-@end display
-
-Many other @TeX{} distributions are available; see
-@uref{http://tug.org/}.
-
-
-@node Creating and Installing Info Files
-@chapter Creating and Installing Info Files
-
-This chapter describes how to create and install Info files. @xref{Info
-Files}, for general information about the file format itself.
-
-@menu
-* Creating an Info File::
-* Installing an Info File::
-@end menu
-
-
-@node Creating an Info File
-@section Creating an Info File
-@cindex Creating an Info file
-@cindex Info, creating an online file
-@cindex Formatting a file for Info
-
-@code{makeinfo} is a program that converts a Texinfo file into an Info
-file, HTML file, or plain text. @code{texinfo-format-region} and
-@code{texinfo-format-buffer} are XEmacs functions that convert
-Texinfo to Info.
-
-For information on installing the Info file in the Info system,
-@pxref{Installing an Info File}.
-
-@menu
-* makeinfo advantages:: @code{makeinfo} provides better error checking.
-* Invoking makeinfo:: How to run @code{makeinfo} from a shell.
-* makeinfo options:: Specify fill-column and other options.
+@TeX{} is a document formatter that is used by the FSF for its
+documentation. It is the easiest way to get printed output (e.g., PDF
+and PostScript) for Texinfo manuals. TeX is freely redistributable,
+and you can get it over the Internet or on physical media. See
+@url{http://tug.org/texlive}.
+
+@c please keep that text in sync with www.gnu.org/prep/FTP
+
+
+@node Generic Translator @t{texi2any}
+@chapter @code{texi2any}: The Generic Translator for Texinfo
+
+@command{texi2any} is the generic translator for Texinfo that can
+produce different output formats and is highly customizable. It
+supports these formats:
+
+@table @asis
+@item Info (by default, or with @option{--info}),
+
+@item HTML (with @option{--html}),
+
+@item plain text (with @option{--plaintext}),
+
+@item Docbook (with @option{--docbook}),
+
+@item Texinfo XML (with @option{--xml}).
+@end table
+
+@command{makeinfo} is an alias for @command{texi2any}. By default,
+both @command{texi2any} and @command{makeinfo} generate Info output;
+indeed, there are no differences in behavior based on the name.
+
+Beside these default formats, command line options to
+@command{texi2any} can change many aspects of the output. Beyond
+that, initialization files provide even more control over the final
+output---nearly anything not specified in the Texinfo input file.
+Initialization files are written in Perl, like the main program, and
+anything which can be specified on the command line can also be
+specified within a initialization file.
+
+The rest of this chapter goes into the details.
+
+@menu
+* Reference Implementation:: @command{texi2any}: the reference implementation.
+* Invoking @t{texi2any}:: Running the translator from a shell.
+* @t{texi2any} Printed Output:: Calling @command{texi2dvi}.
* Pointer Validation:: How to check that pointers point somewhere.
-* makeinfo in XEmacs:: How to run @code{makeinfo} from XEmacs.
-* texinfo-format commands:: Two Info formatting commands written
- in XEmacs Lisp are an alternative
- to @code{makeinfo}.
-* Batch Formatting:: How to format for Info in XEmacs Batch mode.
-* Tag and Split Files:: How tagged and split files help Info
- to run better.
-@end menu
-
-
-@node makeinfo advantages
-@subsection @code{makeinfo} Preferred
-
-The @code{makeinfo} utility creates an Info file from a Texinfo source
-file more quickly than either of the XEmacs formatting commands and
-provides better error messages. We recommend it. @code{makeinfo} is a
-C program that is independent of XEmacs. You do not need to run XEmacs to
-use @code{makeinfo}, which means you can use @code{makeinfo} on machines
-that are too small to run XEmacs. You can run @code{makeinfo} in any one
-of three ways: from an operating system shell, from a shell inside
-XEmacs, or by typing the @kbd{C-c C-m C-r} or the @kbd{C-c C-m C-b}
-command in Texinfo mode in XEmacs.
-
-The @code{texinfo-format-region} and the @code{texinfo-format-buffer}
-commands are useful if you cannot run @code{makeinfo}. Also, in some
-circumstances, they format short regions or buffers more quickly than
-@code{makeinfo}.
-
-
-@node Invoking makeinfo
-@subsection Running @code{makeinfo} from a Shell
+* Customization Variables:: Configuring @command{texi2any}.
+* Internationalization of Document Strings:: Translating program-inserted text.
+* Invoking @t{pod2texi}:: Translating Perl pod to Texinfo.
+* @t{texi2html}:: An ancestor of @command{texi2any}.
+@end menu
+
+
+@node Reference Implementation
+@section @command{texi2any}: A Texinfo Reference Implementation
+
+@cindex @command{texi2any}, as reference implementation
+@cindex Reference implementation
+@cindex Implementation, @command{texi2any} as reference
+
+Above, we called @command{texi2any} ``the'' translator for Texinfo
+instead of just ``a'' translator, even though (of course) it's
+technically and legally possible for other implementations to be
+written. The reason is that alternative implementations are very
+likely to have subtle, or not-so-subtle, differences in behavior, and
+thus Texinfo documents would become dependent on the processor.
+Therefore, it is important to have a reference implementation that
+defines parts of the language not fully specified by the manual (often
+intentionally so). It is equally important to have consistent
+command-line options and other behavior for all processors.
+
+@cindex Tree representation of documents
+@cindex Syntax tree representation of documents
+@cindex Abstract syntax tree representation of documents
+For this reason, the once-independent @command{texi2html} Perl Texinfo
+processor was made compatible with the C implementation of
+@command{makeinfo}, to avoid continuing with two different
+implementations (@pxref{History}). The current implementation,
+@command{texi2any}, serves as the reference implementation. It
+inherited the design of customization and other features from
+@command{texi2html} (for more on @command{texi2html} compatibility,
+@pxref{@t{texi2html}}). However, @code{texi2any} is a full
+reimplementation: it constructs a tree-based representation of the
+input document for all back-ends to work from.
+
+@cindex Texinfo language tests
+@cindex Tests, of Texinfo language
+Extensive tests of the language were developed at the same time as
+@command{texi2any}; we plead with anyone thinking of writing a program
+to parse Texinfo input to at least make use of these tests.
+
+@cindex Examples of using @command{texi2any}
+@findex Texinfo::Parser module
+The @command{texi2html} wrapper script (@pxref{@t{texi2html}})
+provides a very simple example of calling @command{texi2any} from a
+shell script; it's in @file{util/texi2html} in the Texinfo sources.
+More consequentially, @command{texi-elements-by-size} is an example
+Perl script using the @code{Texinfo::Parser} module interface; it's
+also in the @file{util} source directory. (Its functionality may also
+be useful to authors; @pxref{texi-elements-by-size}.)
+
+@cindex Future of Texinfo implementations
+With the release of @command{texi2any} as the reference
+implementation, development of both the C implementation of
+@command{makeinfo} and @command{texi2html} has been halted. Going
+forward, we ask authors of Texinfo documents to use only
+@command{texi2any}.
+
+
+@node Invoking @t{texi2any}
+@section Invoking @command{texi2any}/@code{makeinfo} from a Shell
+
+@anchor{Invoking makeinfo}
@pindex makeinfo
-
-To create an Info file from a Texinfo file, invoke @command{makeinfo}
-followed by the name of the Texinfo file. Thus, to create the Info
-file for Bison, type the following to the shell:
-
-@example
-makeinfo bison.texinfo
-@end example
-
-(You can run a shell inside XEmacs by typing @kbd{M-x shell}.)
-
-@command{makeinfo} has many options to control its actions and output;
-see the next section.
-
-You can give @command{makeinfo} more than one input file name; each is
-processed in turn. If an input file name is @samp{-}, or no input
-file names are given at all, standard input is read.
-
-
-@node makeinfo options
-@subsection Options for @code{makeinfo}
+@pindex texi2any
+
+To process a Texinfo file, invoke @command{texi2any} or
+@command{makeinfo} (the two names are synonyms for the same program;
+we'll use the names interchangeably) followed by the name of the
+Texinfo file. Also select the format you want to output with the
+appropriate command line option (default is Info). Thus, to create
+the Info file for Bison, type the following to the shell:
+
+@example
+texi2any --info bison.texinfo
+@end example
+
+You can specify more than one input file name; each is processed in
+turn. If an input file name is @samp{-}, standard input is read.
+
+@anchor{@t{makeinfo} Options}
+@c anchor{makeinfo options}@c prev name, but case-insensitive clash
@cindex @code{makeinfo} options
@cindex Options for @code{makeinfo}
-
-The @command{makeinfo} program accepts many options. Perhaps the most
-commonly needed are those that change the output format. By default,
-@command{makeinfo} outputs Info files.
-
-Each command line option is a word preceded by @samp{--} or a letter
-preceded by @samp{-}. You can use abbreviations for the long option
-names as long as they are unique.
-
-For example, you could use the following shell command to create an Info
-file for @file{bison.texinfo} in which each line is filled to only 68
-columns:
-
-@example
-makeinfo --fill-column=68 bison.texinfo
-@end example
-
-You can write two or more options in sequence, like this:@refill
-
-@example
-makeinfo --no-split --fill-column=70 @dots{}
-@end example
-
-@noindent
-This would keep the Info file together as one possibly very long
-file and would also set the fill column to 70.
-
-The options are:
+@anchor{texi2any Options}
+@cindex @code{texi2any} options
+@cindex Options for @code{texi2any}
+
+The @command{texi2any} program accept many options. Perhaps the
+most basic are those that change the output format. By default,
+@command{texi2any} outputs Info.
+
+Each command line option is either a long name preceded by @samp{--}
+or a single letter preceded by @samp{-}. You can use abbreviations
+for the long option names as long as they are unique.
+
+For example, you could use the following shell command to create an
+Info file for @file{bison.texinfo} in which lines are filled to only
+68 columns:
+
+@example
+texi2any --fill-column=68 bison.texinfo
+@end example
+
+You can write two or more options in sequence, like this:
+
+@example
+texi2any --no-split --fill-column=70 @dots{}
+@end example
+
+@noindent
+(This would keep the Info file together as one possibly very long
+file and would also set the fill column to 70.)
+
+The options are (approximately in alphabetical order):
@table @code
+@item --commands-in-node-names
+@opindex --commands-in-node-names
+This option now does nothing, but remains for compatibility. (It used
+to ensure that @@-commands in node names were expanded throughout the
+document, especially @code{@@value}. This is now done by default.)
+
+@item --conf-dir=@var{path}
+@opindex --conf-dir=@var{path}
+Prepend @var{path} to the directory search list for finding
+customization files that may be loaded with @option{--init-file} (see
+below). The @var{path} value can be a single directory, or a list of
+several directories separated by the usual path separator character
+(@samp{:} on Unix-like systems, @samp{;} on Windows). @c @xref{Loading
+@c Init Files}.
+
+@item --css-include=@var{file}
+@opindex --css-include
+When producing HTML, literally include the contents of @var{file},
+which should contain W3C cascading style sheets specifications, in the
+@samp{<style>} block of the HTML output. If @var{file} is @samp{-},
+read standard input. @xref{HTML CSS}.
+
+@item --css-ref=@var{url}
+@opindex --css-ref
+When producing HTML, add a @samp{<link>} tag to the output which
+references a cascading style sheet at @var{url}. This allows using
+standalone style sheets.
@item -D @var{var}
@opindex -D @var{var}
-Cause the variable @var{var} to be defined. This is equivalent to
-@code{@@set @var{var}} in the Texinfo file (@pxref{set clear value}).
-
-@item --commands-in-node-names
-@opindex --commands-in-node-names
-Allow @code{@@}-commands in node names. This is not recommended, as it
-can probably never be implemented in @TeX{}. It also makes
-@code{makeinfo} much slower. Also, this option is ignored when
-@samp{--no-validate} is used. @xref{Pointer Validation}, for more
-details.
-
-@item --css-include=@var{file}
-@opindex --css-include
-Include the contents of @var{file}, which should contain cascading
-style sheets specifications, in the @samp{<style>} block of the HTML
-output. @xref{HTML CSS}. If @var{file} is @samp{-}, read standard
-input.
-
-@item --css-ref=@var{url}
-@opindex --css-ref
-In HTML mode, add a @samp{<link>} tag to the HTML output which
-references a cascading style sheet at @var{url}. This allows using
-standalone style sheets.
+Cause the Texinfo variable @var{var} to be defined. This is
+equivalent to @code{@@set @var{var}} in the Texinfo file
+(@pxref{@t{@@set @@clear @@value}}).
@item --disable-encoding
@itemx --enable-encoding
@opindex --disable-encoding
@opindex --enable-encoding
By default, or with @option{--enable-encoding}, output accented and
-special characters in Info or plain text output based on
+special characters in Info and plain text output based on
@samp{@@documentencoding}. With @option{--disable-encoding}, 7-bit
-ASCII transliterations are output.
-@xref{documentencoding,,@code{documentencoding}}, and @ref{Inserting
-Accents}.
+ASCII transliterations are output. @xref{@t{@@documentencoding}},
+and @ref{Inserting Accents}.
@item --docbook
@opindex --docbook
-Generate Docbook output rather than Info.
+Generate Docbook output (rather than Info).
@item --document-language=@var{lang}
@opindex --document-language
-@vindex LANG
Use @var{lang} to translate Texinfo keywords which end up in the
output document. The default is the locale specified by the
-@code{@@documentlanguage} command if there is one
-(@pxref{documentlanguage}).
+@code{@@documentlanguage} command if there is one, otherwise English
+(@pxref{@t{@@documentlanguage}}).
+
+@item --dvi
+@opindex --dvi
+Generate a TeX DVI file using @command{texi2dvi}, rather than Info
+(@pxref{@t{texi2any} Printed Output}).
+
+@item --dvipdf
+@opindex --dvipdf
+Generate a PDF file using @command{texi2dvi --dvipdf}, rather than
+Info (@pxref{@t{texi2any} Printed Output}).
@item --error-limit=@var{limit}
@itemx -e @var{limit}
@opindex --error-limit=@var{limit}
@opindex -e @var{limit}
-Set the maximum number of errors that @code{makeinfo} will report
-before exiting (on the assumption that continuing would be useless);
-default 100.
+Report @var{LIMIT} errors before aborting (on the assumption that
+continuing would be useless); default 100.
@item --fill-column=@var{width}
@itemx -f @var{width}
@opindex --fill-column=@var{width}
@opindex -f @var{width}
-Specify the maximum number of columns in a line; this is the right-hand
-edge of a line. Paragraphs that are filled will be filled to this
-width. (Filling is the process of breaking up and connecting lines so
-that lines are the same length as or shorter than the number specified
-as the fill column. Lines are broken between words.) The default value
-is 72. Ignored with @samp{--html}.
+Specify the maximum number of columns in a line; this is the
+right-hand edge of a line. Paragraphs that are filled will be filled
+to this width. (Filling is the process of breaking up and connecting
+lines so that lines are the same length as or shorter than the number
+specified as the fill column. Lines are broken between words.) The
+default value is 72.
@item --footnote-style=@var{style}
@itemx -s @var{style}
@opindex --footnote-style=@var{style}
@opindex -s @var{style}
-Set the footnote style to @var{style}, either @samp{end} for the end
-node style (the default) or @samp{separate} for the separate node style.
-The value set by this option overrides the value set in a Texinfo file
-by an @code{@@footnotestyle} command (@pxref{Footnotes}). When the
-footnote style is @samp{separate}, @code{makeinfo} makes a new node
-containing the footnotes found in the current node. When the footnote
-style is @samp{end}, @code{makeinfo} places the footnote references at
-the end of the current node. Ignored with @samp{--html}.
+Set the footnote style to @var{style}: either @samp{end} for the end
+node style (the default) or @samp{separate} for the separate node
+style. The value set by this option overrides the value set in a
+Texinfo file by an @code{@@footnotestyle} command (@pxref{Footnote
+Styles}).
+
+When the footnote style is @samp{separate}, @code{makeinfo} makes a
+new node containing the footnotes found in the current node. When the
+footnote style is @samp{end}, @code{makeinfo} places the footnote
+references at the end of the current node.
+
+In HTML, when the footnote style is @samp{end}, or if the output is
+not split, footnotes are put at the end of the output. If set to
+@samp{separate}, and the output is split, they are placed in a
+separate file.
@item --force
@itemx -F
@@ -15571,26 +17144,27 @@
@item --help
@itemx -h
-@opindex --help
+@opindex --help@r{, for @command{texi2any}}
@opindex -h
-Print a usage message listing all available options, then exit successfully.
+Print a message with available options and basic usage, then exit
+successfully.
@item --html
@opindex --html
-Generate HTML output rather than Info. @xref{Generating HTML}. By
-default, the HTML output is split into one output file per Texinfo
-source node, and the split output is written into a subdirectory with
-the name of the top-level info file.
-
-@item -I @var{dir}
-@opindex -I @var{dir}
-Append @var{dir} to the directory search list for finding files that
+Generate HTML output (rather than Info). By default, the HTML output
+is split into one output file per Texinfo source node, and the split
+output is written into a subdirectory based on the name of the
+top-level Info file. @xref{Generating HTML}.
+
+@item -I @var{path}
+@opindex -I @var{path}
+Append @var{path} to the directory search list for finding files that
are included using the @code{@@include} command. By default,
-@code{makeinfo} searches only the current directory. If @var{dir} is
-not given, the current directory @file{.} is appended. Note that
-@var{dir} can actually be a list of several directories separated by the
-usual path separator character (@samp{:} on Unix, @samp{;} on
-MS-DOS/MS-Windows).
+@code{texi2any} searches only the current directory. If @var{path} is
+not given, the current directory is appended. The @var{path} value
+can be a single directory or a list of several directories separated
+by the usual path separator character (@samp{:} on Unix-like systems,
+@samp{;} on Windows).
@item --ifdocbook
@opindex --ifdocbook
@@ -15604,52 +17178,68 @@
@opindex --iftex
@itemx --ifxml
@opindex --ifxml
-For the specified format, process @samp{@@if@var{format}} and
-@samp{@@@var{format}} commands even if not generating the given output
-format. For instance, if @option{--iftex} is specified, then
-@samp{@@iftex} and @samp{@@tex} blocks will be read.
-
-@item --internal-links=@var{file}
+For the given format, process @samp{@@if@var{format}} and
+@samp{@@@var{format}} commands, and do not process
+@samp{@@ifnot@var{format}}, regardless of the format being output.
+For instance, if @option{--iftex} is given, then @samp{@@iftex} and
+@samp{@@tex} blocks will be read, and @samp{@@ifnottex} blocks will be
+ignored.
+
+@item --info
+@opindex --info
+Generate Info output. By default, if the output file contains more
+than about 300,000 bytes, it is split into shorter subfiles of about
+that size. The name of the output file and any subfiles is determined
+by @code{@@setfilename} (@pxref{@t{@@setfilename}}). @xref{Tag and
+Split Files}.
+
+@item --init-file=@var{file}
+@opindex --init-file=@var{file}
+Load @var{file} as code to modify the behavior and output of the
+generated manual. It is customary to use the @code{.pm} or the
+(a)code{.init} extensions for these customization files, but that is not
+enforced; the @var{file} name can be anything. The
+@option{--conf-dir} option (see above) can be used to add to the list
+of directories in which these customization files are searched for.
+@c @xref{Loading Init Files}.
+
+@item --internal-links=@var{file}
@opindex --internal-links=@var{file}
-In HTML mode, output a tab separated file containing three columns:
-the internal link to an indexed item or item in the table of contents,
-the name of the index (or "toc") in which it occurs, and the term
-which was indexed or entered.
+@cindex Internal links, of HTML
+In HTML mode, output a tab-separated file containing three columns:
+the internal link to an indexed item or item in the table of contents,
+the name of the index (or table of contents) in which it occurs, and
+the term which was indexed or entered. The items are in the natural
+sorting order for the given element. This dump can be useful for
+post-processors.
@item --macro-expand=@var{file}
@itemx -E @var{file}
@opindex --macro-expand=@var{file}
@opindex -E @var{file}
-Output the Texinfo source with all the macros expanded to the named
-file. Normally, the results of macro expansion are used internally by
-@code{makeinfo} and then discarded. This option is used by
-@command{texi2dvi}.
+Output the Texinfo source, with all Texinfo macros expanded, to
+@var{file}. Normally, the result of macro expansion is used
+internally by @code{makeinfo} and then discarded.
@item --no-headers
-@item --plaintext
@opindex --no-headers
-@opindex --plaintext
-@cindex Plain text output
-@cindex ASCII text output
-@cindex Generating plain text files
-@cindex @file{INSTALL} file, generating
-@cindex Node separators, omitting
-@cindex Menus, omitting
-Do not include menus or node separator lines in the output, and
-implicitly @option{--enable-encoding} (see above). This results in a
-simple plain text file that you can (for example) send in email
-without complications, or include in a distribution (as in an
-@file{INSTALL} file).
+@cindex Node separators, omitting with @option{--no-headers}
+@cindex Generating plain text files with @option{--no-headers}
+@cindex Menus, omitting with @option{--no-headers}
+Do not include menus or node separator lines in the output.
+
+When generating Info, this is the same as using @option{--plaintext},
+resulting in a simple plain text file. Furthermore,
+@code{@@setfilename} is ignored, and output is to standard output
+unless overridden with @option{-o}. (This behavior is for backward
+compatibility.)
@cindex Navigation links, omitting
-For HTML output, likewise omit menus. And if @samp{--no-split} is also
-specified, do not include a navigation links at the top of each node
-(these are never included in the default case of split output).
+When generating HTML, and output is split, also output navigation
+links only at the beginning of each file. If output is not split, do
+not include navigation links at the top of each node at all.
@xref{Generating HTML}.
-In both cases, ignore @code{@@setfilename} and write to standard
-output by default---can be overridden with @option{-o}.
-
@item --no-ifdocbook
@opindex --no-ifdocbook
@itemx --no-ifhtml
@@ -15662,69 +17252,95 @@
@opindex --no-iftex
@itemx --no-ifxml
@opindex --no-ifxml
-Do not process @samp{@@if@var{format}} and @samp{@@@var{format}}
-commands, and do process @samp{@@ifnot@var{format}}, even if
-generating the given format. For instance, if @option{--no-ifhtml} is
-specified, then @samp{@@ifhtml} and @samp{@@html} blocks will not be
-read, and @samp{@@ifnothtml} blocks will be.
+For the given format, do not process @samp{@@if@var{format}} and
+@samp{@@@var{format}} commands, and do process
+@samp{@@ifnot@var{format}}, regardless of the format being output.
+For instance, if @option{--no-ifhtml} is given, then @samp{@@ifhtml}
+and @samp{@@html} blocks will not be read, and @samp{@@ifnothtml}
+blocks will be.
+
+@item --no-node-files
+@itemx --node-files
+@opindex --no-node-files
+@opindex --node-files
+When generating HTML, create redirection files for anchors and any
+nodes not already output with the file name corresponding to the node
+name (@pxref{HTML Xref Node Name Expansion}). This makes it possible
+for section- and chapter-level cross-manual references to succeed
+(@pxref{HTML Xref Configuration}).
+
+If the output is split, this is enabled by default. If the output is
+not split, @option{--node-files} enables the creation of the
+redirection files, in addition to the monolithic main output file.
+@option{--no-node-files} suppresses the creation of redirection files
+in any case. This option has no effect with any output format other
+than HTML@. @xref{Generating HTML}.
@item --no-number-footnotes
@opindex --no-number-footnotes
-Suppress automatic footnote numbering. By default, @code{makeinfo}
-numbers each footnote sequentially in a single node, resetting the
-current footnote number to 1 at the start of each node.
+Suppress automatic footnote numbering. By default, footnotes are
+numbered sequentially within a node, i.e., the current footnote number
+is reset to 1 at the start of each node.
@item --no-number-sections
+@itemx --number-sections
@opindex --no-number-sections
-Do not output chapter, section, and appendix numbers.
-You need to specify this if your manual is not hierarchically-structured.
-
-@item --no-split
-@opindex --no-split
-@cindex Splitting of output files
-@cindex Output file splitting
-Suppress the splitting stage of @code{makeinfo}. By default, large
-output files (where the size is greater than 70k bytes) are split into
-smaller subfiles. For Info output, each one is approximately 50k bytes.
-For HTML output, each file contains one node (@pxref{Generating HTML}).
+@opindex --number-sections
+With @option{--number_sections} (the default), output chapter,
+section, and appendix numbers as in printed manuals. This works only
+with hierarchically-structured manuals. You should specify
+@code{--no-number-sections} if your manual is not normally structured.
@item --no-pointer-validate
@itemx --no-validate
@opindex --no-pointer-validate
@opindex --no-validate
-@cindex Pointer validation, suppressing
+@cindex Pointer validation, suppressing from command line
Suppress the pointer-validation phase of @code{makeinfo}---a dangerous
thing to do. This can also be done with the @code{@@novalidate}
-command (@pxref{Use TeX,,Use @TeX{}}). Normally, after a Texinfo file
-is processed, some consistency checks are made to ensure that cross
-references can be resolved, etc. @xref{Pointer Validation}.
+command (@pxref{Use @TeX{}}). Normally, consistency checks are made
+to ensure that cross references can be resolved, etc. @xref{Pointer
+Validation}.
@item --no-warn
@opindex --no-warn
-Suppress warning messages (but @emph{not} error messages).
-
-@item --number-sections
-@opindex --number-sections
-Output chapter, section, and appendix numbers as in printed manuals.
-This is the default. It works only with hierarchically-structured
-manuals.
+Suppress warning messages (but not error messages).
@item --output=@var{file}
@itemx -o @var{file}
@opindex --output=@var{file}
@opindex -o @var{file}
-Specify that the output should be directed to @var{file} and not to the
-file name specified in the @code{@@setfilename} command found in the
-Texinfo source (@pxref{setfilename}). If @var{file} is @samp{-}, output
-goes to standard output and @samp{--no-split} is implied. For split
-HTML output, @var{file} is the name for the directory into which all
-HTML nodes are written (@pxref{Generating HTML}).
-
-@item -P @var{dir}
-@opindex -P @var{dir}
-Prepend @var{dir} to the directory search list for @code{@@include}.
-If @var{dir} is not given, the current directory @file{.} is prepended.
-See @samp{-I} for more details.
+Specify that the output should be directed to @var{file}. This
+overrides any file name specified in an @code{@@setfilename} command
+found in the Texinfo source. If neither @code{@@setfilename} nor this
+option are specified, the input file name is used to determine the
+output name. @xref{@t{@@setfilename}}.
+
+If @var{file} is @samp{-}, output goes to standard output and
+@samp{--no-split} is implied.
+
+If @var{file} is a directory or ends with a @samp{/} the usual rules
+are used to determine the output file name (namely, use
+@code{@@setfilename} or the input file name) but the files are written
+to the @var{file} directory. For example, @samp{makeinfo -o bar/
+foo.texi}, with or without @option{--no-split}, will write
+(a)file{bar/foo.info}, and possibly other files, under @file{bar/}.
+
+When generating HTML and output is split, @var{file} is used as the
+name for the directory into which all files are written. For example,
+@samp{makeinfo -o bar --html foo.texi} will write
+(a)file{bar/index.html}, among other files.
+
+@item --output-indent=@var{val}
+@opindex --outputindent
+This option now does nothing, but remains for compatibility. (It used
+to alter indentation in XML/Docbook output.)
+
+@item -P @var{path}
+@opindex -P @var{path}
+Prepend @var{path} to the directory search list for @code{@@include}.
+If @var{path} is not given, the current directory is prepended. See
+@samp{-I} above.
@item --paragraph-indent=@var{indent}
@itemx -p @var{indent}
@@ -15732,12 +17348,13 @@
@opindex -p @var{indent}
Set the paragraph indentation style to @var{indent}. The value set by
this option overrides the value set in a Texinfo file by an
-@code{@@paragraphindent} command (@pxref{paragraphindent}). The value
-of @var{indent} is interpreted as follows:
+@code{@@paragraphindent} command (@pxref{@t{@@paragraphindent}}).
+The value of @var{indent} is interpreted as follows:
@table @asis
@item @samp{asis}
-Preserve any existing indentation at the starts of paragraphs.
+Preserve any existing indentation (or lack thereof) at the beginnings
+of paragraphs.
@item @samp{0} or @samp{none}
Delete any existing indentation.
@@ -15746,18 +17363,91 @@
Indent each paragraph by @var{num} spaces.
@end table
+The default is to indent by two spaces, except for paragraphs
+following a section heading, which are not indented.
+
+@item --pdf
+@opindex --pdf
+Generate a PDF file using @command{texi2dvi --pdf}, rather than Info
+(@pxref{@t{texi2any} Printed Output}).
+
+@item --plaintext
+@opindex --plaintext
+@cindex Plain text output with @option{--plaintext}
+@cindex ASCII text output with @option{--plaintext}
+@cindex Generating plain text files with @option{--plaintext}
+@cindex Node separators, omitting with @option{--plaintext}
+@cindex Menus, omitting with @option{--plaintext}
+@cindex @file{INSTALL} file, generating
+Output a plain text file (rather than Info): do not include menus or
+node separator lines in the output. This results in a straightforward
+plain text file that you can (for example) send in email without
+complications, or include in a distribution (for example, an
+@file{INSTALL} file).
+
+With this option, @code{@@setfilename} is ignored and the output goes
+to standard output by default; this can be overridden with @option{-o}.
+
+@item --ps
+@opindex --ps
+Generate a PostScript file using @command{texi2dvi --ps}, rather than
+Info (@pxref{@t{texi2any} Printed Output}).
+
+@item --set-customization-variable @var{var}=@var{value}
+@itemx -c @var{var}=@var{value}
+@opindex --set-customization-variable @var{var}=@var{value}
+@opindex -c @var{var}=@var{value}
+Set the customization variable @var{var} to @var{value}. The @code{=}
+is optional, but both @var{var} and @var{value} must be quoted to the
+shell as necessary so the result is a single word. Many aspects of
+@command{texi2any} behavior and output may be controlled by
+customization variables, beyond what can be set in the document by
+@@-commands and with other command line switches. @xref{Customization
+Variables}.
+
+@item --split=@var{how}
+@itemx --no-split
+@opindex --split=@var{how}
+@opindex --no-split
+@cindex Splitting of output files
+@cindex Output file splitting
+@anchor{Splitting Output}
+@c
+When generating Info, by default large output files are split into
+smaller subfiles, of approximately 300k bytes. When generating HTML,
+by default each output file contains one node (@pxref{Generating
+HTML}). @option{--no-split} suppresses this splitting of the output.
+
+Alternatively, @option{--split=@var{how}} may be used to specify at
+which level the HTML output should be split. The possible values for
+@var{how} are:
+
+@table @samp
+@item chapter
+The output is split at @code{@@chapter} and other sectioning
+@@-commands at this level (@code{@@appendix}, etc.).
+
+@item section
+The output is split at @code{@@section} and similar.
+
+@item node
+The output is split at every node. This is the default.
+@end table
+
@item --split-size=@var{num}
@opindex --split-size=@var{num}
-Keep Info files to at most @var{num} characters; default is 300,000.
+Keep Info files to at most @var{num} characters if possible; default
+is 300,000. (However, a single node will never be split across Info
+files.)
@item --transliterate-file-names
@opindex --transliterate-file-names
Enable transliteration of 8-bit characters in node names for the
-purpose of file name creation. @xref{HTML Xref 8-bit Character Expansion}.
+purpose of file name creation. @xref{HTML Xref 8-bit Character Expansion}.
@item -U @var{var}
-Cause @var{var} to be undefined. This is equivalent to
-@code{@@clear @var{var}} in the Texinfo file (@pxref{set clear value}).
+Cause @var{var} to be undefined. This is equivalent to @code{@@clear
+@var{var}} in the Texinfo file (@pxref{@t{@@set @@clear @@value}}).
@item --verbose
@opindex --verbose
@@ -15767,13 +17457,18 @@
@item --version
@itemx -V
-@opindex --version
+@opindex --version@r{, for @command{texi2any}}
@opindex -V
Print the version number, then exit successfully.
+@item --Xopt @var{str}
+@opindex --Xopt @var{str}
+Pass @var{str} (a single shell word) to @command{texi2dvi}; may be
+repeated (@pxref{@t{texi2any} Printed Output}).
+
@item --xml
@opindex --xml
-Generate XML output rather than Info.
+Generate Texinfo XML output (rather than Info).
@end table
@@ -15781,108 +17476,1273 @@
@cindex Environment variable @code{TEXINFO_OUTPUT_FORMAT}
@command{makeinfo} also reads the environment variable
@env{TEXINFO_OUTPUT_FORMAT} to determine the output format, if not
-overridden by a command line option. The possible values are:
-
-@example
-docbook html info plaintext xml
-@end example
-
-If not set, Info output is the default.
+overridden by a command line option. The value should be one of:
+
+@example
+docbook dvi dvipdf html info pdf plaintext ps xml
+@end example
+
+If not set or otherwise specified, Info output is the default.
+
+The customization variable of the same name is also read; if set, that
+overrides an environment variable setting, but not a command-line
+option. @xref{Customization Variables for @@-Commands}.
+
+
+@node @t{texi2any} Printed Output
+@section @command{texi2any} Printed Output
+
+@cindex Printed output, through @command{texi2any}
+@cindex Output, printed through @command{texi2any}
+
+To justify the name Texinfo-to-@emph{any}, @command{texi2any} has
+basic support for creating printed output in the various formats:
+@TeX{} DVI, PDF, and PostScript. This is done via the simple method
+of executing the @command{texi2dvi} program when those outputs are
+requested.
+
+The output format options for this are @option{--dvi},
+@option{--dvipdf}, @option{--pdf}, and @option{--ps}. @xref{Format
+with @t{texi2dvi}}, for more details on these options and general
+@command{texi2dvi} operation. In addition, the @option{--verbose},
+@option{--silent}, and @option{--quiet} options are passed on if
+specified; the @option{-I} and @option{-o} options are likewise passed
+on with their arguments, and @option{--debug} without its argument.
+
+The only option remaining that is related to the @command{texi2dvi}
+invocation is @option{--Xopt}. Here, just the argument is passed on
+and multiple @option{--Xopt} options accumulate. This provides a way
+to construct an arbitrary command line for @command{texi2dvi}. For
+example, running
+
+@example
+texi2any --Xopt -t --Xopt @@a4paper --pdf foo.texi
+@end example
+
+@noindent is equivalent to running
+
+@example
+texi2dvi -t @@a4paper --pdf foo.texi
+@end example
+
+Although one might wish that other options to @command{texi2any} would
+take effect, they don't. For example, running @samp{texi2any
+--no-number-sections --dvi foo.texi} still results in a DVI file with
+numbered sections. (Perhaps this could be improved in the future, if
+requests are received.)
+
+The actual name of the command that is invoked is specified by the
+@code{TEXI2DVI} customization variable (@pxref{Other Customization
+Variables}). As you might guess, the default is @samp{texi2dvi}.
+
+@command{texi2any} itself does not generate any output when it invokes
+@command{texi2dvi}.
@node Pointer Validation
-@subsection Pointer Validation
+@section Pointer Validation
@cindex Pointer validation with @code{makeinfo}
@cindex Validation of pointers
-If you do not suppress pointer validation with the @samp{--no-validate}
-option or the @code{@@novalidate} command in the source file (@pxref{Use
-TeX,,Use @TeX{}}), @code{makeinfo} will check the validity of the final
-Info file. Mostly, this means ensuring that nodes you have referenced
-really exist. Here is a complete list of what is checked:
+If you do not suppress pointer validation with the
+@samp{--no-validate} option or the @code{@@novalidate} command in the
+source file (@pxref{Use @TeX{}}), @code{makeinfo} will check the
+validity of the Texinfo file.
+
+Most validation checks are different depending on whether node
+pointers are explicitly or implicitly determined. With explicit node
+pointers, here is the list of what is checked:
@enumerate
@item
If a `Next', `Previous', or `Up' node reference is a reference to a
node in the current file and is not an external reference such as to
-@file{(dir)}, then the referenced node must exist.@refill
-
-@item
-In every node, if the `Previous' node is different from the `Up' node,
-then the node pointed to by the `Previous' field must have a `Next'
-field which points back to this node.@refill
-
-@item
-Every node except the `Top' node must have an `Up' pointer.@refill
-
-@item
-The node referenced by an `Up' pointer must itself reference the current
-node through a menu item, unless the node referenced by `Up'
-has the form `(@var{file})'.
-
-@item
-If the `Next' reference of a node is not the same as the `Next' reference
-of the `Up' reference, then the node referenced by the `Next' pointer
-must have a `Previous' pointer that points back to the current node.
-This rule allows the last node in a section to point to the first node
-of the next chapter.@refill
-
-@item
-Every node except `Top' should be referenced by at least one other node,
-either via the `Previous' or `Next' links, or via a menu or a
-cross-reference.@refill
+@file{(dir)}, then the referenced node must exist.
+
+@item
+Every node except the `Top' node must have an `Up' pointer.
+
+@item
+The node referenced by an `Up' pointer must itself reference the
+current node through a menu item, unless the node referenced by `Up'
+has the form @samp{(@var{file})}.
@end enumerate
-@cindex @@-commands in @@node, limited support
-Some Texinfo documents might fail during the validation phase because
-they use commands like @code{@@value} and @code{@@definfoenclose} in
-node definitions and cross-references inconsistently. (Your best bet
-is to avoid using @@-commands in node names.) Consider the
-following example:
-
-@example
-@group
-@@set nodename Node 1
-
-@@node @@value@{nodename@}, Node 2, Top, Top
-
-This is node 1.
-
-@@node Node 2, , Node 1, Top
-
-This is node 2.
-@end group
-@end example
-
-@noindent
-Here, the node ``Node 1'' was referenced both verbatim and through
-@code{@@value}.
-
-By default, @code{makeinfo} fails such cases, because node names are not
-fully expanded until they are written to the output file. You should
-always try to reference nodes consistently; e.g., in the above example,
-the second @code{@@node} line should have also used @code{@@value}.
-However, if, for some reason, you @emph{must} reference node names
-inconsistently, and @code{makeinfo} fails to validate the file, you can
-use the @samp{--commands-in-node-names} option to force @code{makeinfo}
-to perform the expensive expansion of all node names it finds in the
-document. This might considerably slow down the program, though;
-twofold increase in conversion time was measured for large documents
-such as the Jargon file.
-
-@cindex @@value in @@node lines
-The support for @code{@@}-commands in @code{@@node} directives is not
-general enough to be freely used. For example, if the example above
-redefined @code{nodename} somewhere in the document, @code{makeinfo}
-will fail to convert it, even if invoked with the
-@samp{--commands-in-node-names} option.
-
-@samp{--commands-in-node-names} has no effect if the @samp{--no-validate}
-option is given.
-
-
-@node makeinfo in XEmacs
+With implicit node pointers, the above error cannot occur, as such.
+(Which is a major reason why we recommend using this feature of
+@code{makeinfo}, and not specifying any node pointers yourself.)
+
+Instead, @code{makeinfo} checks that the tree constructed from the
+document's menus matches the tree constructed from the sectioning
+commands. For example, if a chapter-level menu mentions nodes
+@var{n1} and @var{n2}, in that order, nodes @var{n1} and @var{n2} must
+be associated with @code{@@section} commands in the chapter.
+
+Finally, with both explicit and implicit node pointers,
+@code{makeinfo} checks that every node except the `Top' node is
+referenced in a menu.
+
+
+@node Customization Variables
+@section Customization Variables
+
+@quotation Warning
+These customization variable names and meanings may change in any
+Texinfo release. We always try to avoid incompatible changes, but we
+cannot absolutely promise, since needs change over time.
+@end quotation
+
+Many aspects of the behavior and output of @command{texi2any} may be
+modified by modifying so-called @dfn{customization variables}. These
+fall into a few general categories:
+
+@itemize @bullet
+@item
+Those associated with @@-commands; for example,
+@code{@@documentlanguage}.
+
+@item
+Those associated with command-line options; for example, the
+customization variable @code{SPLIT} is associated with the
+@option{--split} command-line option, and @code{TEXINFO_OUTPUT_FORMAT}
+allows specifying the output format.
+
+@item
+Those associated with customizing the HTML output.
+
+@item
+Other ad hoc variables.
+@end itemize
+
+Customization variables may set on the command line using
+@code{--set-customization-variable '@var{var} @var{value}'} (quoting
+the variable/value pair to the shell) or
+@code{--set-customization-variable @var{var}=@var{value}} (using
+@code{=}). A special @var{value} is @samp{undef}, which sets the
+variable to this special ``undefined'' Perl value.
+
+The sections below give the details for each of these.
+
+@menu
+* Commands: Customization Variables for @@-Commands.
+* Options: Customization Variables and Options.
+* HTML: HTML Customization Variables.
+* Other: Other Customization Variables.
+@end menu
+
+
+@node Customization Variables for @@-Commands
+@subsection Customization Variables for @@-Commands
+
+@cindex Customization variables for @@-commands
+@cindex @@-commands, customization variables for
+
+Each of the following @@-commands has an associated customization
+variable with the same name (minus the leading @code{@@}):
+
+@smallexample
+@@allowcodebreaks @@clickstyle @@codequotebacktick
+@@codequoteundirected @@contents @@deftypefnnewline
+@@documentdescription @@documentencoding @@documentlanguage
+@@evenfooting @@evenfootingmarks
+@@evenheading @@evenheadingmarks
+@@everyfooting @@everyfootingmarks
+@@everyheading @@everyheadingmarks
+@@exampleindent @@firstparagraphindent
+@@fonttextsize @@footnotestyle @@frenchspacing @@headings
+@@kbdinputstyle @@novalidate
+@@oddfooting @@oddfootingmarks
+@@oddheading @@oddheadingmarks
+@@pagesizes @@paragraphindent
+@@setchapternewpage @@setcontentsaftertitlepage
+@@setfilename
+@@setshortcontentsaftertitlepage @@shortcontents
+@@urefbreakstyle @@xrefautomaticsectiontitle
+@end smallexample
+
+Setting such a customization variable to a value @samp{foo} is similar
+to executing @code{@@@var{cmd} foo}. It is not exactly the same,
+though, since any side effects of parsing the Texinfo source are not
+redone. Also, some variables do not take Texinfo code when generating
+particular formats, but an argument that is already formatted. This
+is the case, for example, for HTML for @code{documentdescription}.
+
+
+@node Customization Variables and Options
+@subsection Customization Variables and Options
+
+@cindex Customization variables for options
+@cindex Options, customization variables for
+
+The following table gives the customization variables associated with
+some command line options. @xref{Invoking @t{texi2any}}, for the
+meaning of the options.
+
+@multitable @columnfractions 0.5 0.5
+@headitem Option @tab Variable
+@vindex ENABLE_ENCODING
+@item @option{--enable-encoding} @tab @code{ENABLE_ENCODING}
+@vindex documentlanguage
+@item @option{--document-language} @tab @code{documentlanguage}
+@vindex ERROR_LIMIT
+@item @option{--error-limit} @tab @code{ERROR_LIMIT}
+@vindex FILLCOLUMN
+@item @option{--fill-column} @tab @code{FILLCOLUMN}
+@vindex footnotestyle
+@item @option{--footnote-style} @tab @code{footnotestyle}
+@vindex FORCE
+@item @option{--force} @tab @code{FORCE}
+@vindex INTERNAL_LINKS
+@item @option{--internal-links} @tab @code{INTERNAL_LINKS}
+@vindex MACRO_EXPAND
+@item @option{--macro-expand} @tab @code{MACRO_EXPAND}
+@vindex HEADERS
+@vindex SHOW_MENU
+@item @option{--headers} @tab @code{HEADERS}, @code{SHOW_MENU}
+@vindex NO_WARN
+@item @option{--no-warn} @tab @code{NO_WARN}
+@vindex novalidate
+@item @option{--no-validate} @tab @code{novalidate}
+@vindex NUMBER_FOOTNOTES
+@item @option{--number-footnotes} @tab @code{NUMBER_FOOTNOTES}
+@vindex NUMBER_SECTIONS
+@item @option{--number-sections} @tab @code{NUMBER_SECTIONS}
+@vindex NODE_FILES
+@item @option{--node-files} @tab @code{NODE_FILES}
+@vindex OUT
+@vindex OUTFILE
+@vindex SUBDIR
+@item @option{--output} @tab @code{OUT}, @code{OUTFILE},
+ @code{SUBDIR}
+@vindex paragraphindent
+@item @option{--paragraph-indent} @tab @code{paragraphindent}
+@vindex SILENT
+@item @option{--silent} @tab @code{SILENT}
+@vindex SPLIT
+@item @option{--split} @tab @code{SPLIT}
+@vindex SPLIT_SIZE
+@item @option{--split-size} @tab @code{SPLIT_SIZE}
+@vindex TRANSLITERATE_FILE_NAMES
+@item @option{--transliterate-file-names} @tab @code{TRANSLITERATE_FILE_NAMES}
+@vindex VERBOSE
+@item @option{--verbose} @tab @code{VERBOSE}
+@end multitable
+
+Setting such a customization variable to a value @samp{foo} is
+essentially the same as specifying the @code{--@var{opt}=foo} if the
+option takes an argument, or @code{--@var{opt}} if not.
+
+@vindex TEXINFO_OUTPUT_FORMAT
+In addition, the customization variable @code{TEXINFO_OUTPUT_FORMAT}
+allows specifying what @code{makeinfo} outputs, either one of the usual
+output formats that can be specified with options, or various other
+forms:
+
+@ftable @samp
+@item docbook
+@itemx dvi
+@itemx dvipdf
+@itemx html
+@itemx info
+@itemx pdf
+@itemx plaintext
+@itemx ps
+@itemx xml
+These correspond to the command-line options (and
+@code{TEXINFO_OUTPUT_FORMAT} environment variable values) of the same
+name. @xref{Invoking @t{texi2any}}.
+
+@item debugcount
+Instead of generating a regular output format, output the count of
+bytes and lines obtained when converting to Info, and other information.
+
+@item debugtree
+@cindex tree representation, for debugging
+@cindex debugging document, with tree representation
+Instead of generating a regular output format, output a text representation
+of the tree obtained by parsing the input texinfo document.
+
+@item parse
+Do only Texinfo source parsing; there is no output.
+
+@item plaintexinfo
+Output the Texinfo source with all the macros, @code{@@include} and
+@code{@@value@{@}} expanded. This is similar to setting
+@option{--macro-expand}, but instead of being output in addition to
+the normal conversion, output of Texinfo is the main output.
+
+@item rawtext
+@cindex raw text output
+Output raw text, with minimal formatting. For example, footnotes are
+ignored and there is no paragraph filling. This is used by the parser
+for file names and copyright text in HTML comments, for example.
+
+@item structure
+Do only Texinfo source parsing and determination of the document
+structure; there is no output.
+
+@item texinfosxml
+@cindex SXML output
+@cindex S-expressions, output format
+Output the document in TexinfoSXML representation, a syntax for
+writing XML data using Lisp S-expressions.
+
+@item textcontent
+@cindex spell checking
+@cindex word counting
+@pindex detexinfo
+@cindex stripping Texinfo commands
+Output the text content only, stripped of commands; this is useful for
+spell checking or word counting, for example. The trivial
+@code{detexinfo} script setting this is in the @file{util} directory
+of the Texinfo source as an example. It's one line:
+
+@example
+exec texi2any -c TEXINPUT_OUTPUT_FORMAT=textcontent "$@@"
+@end example
+@end ftable
+
+
+@node HTML Customization Variables
+@subsection HTML Customization Variables
+
+This table gives the customization variables which apply to HTML
+output only. A few other customization variable apply to both HTML
+and other output formats; those are given in the next section.
+
+@vtable @code
+@item AVOID_MENU_REDUNDANCY
+For HTML@. If set, and the menu entry and menu description are the
+same, then do not print the menu description; default false.
+
+@item AFTER_BODY_OPEN
+For HTML@. If set, the corresponding text will appear at the
+beginning of each HTML file; default unset.
+
+@item AFTER_ABOUT
+For HTML, when an About-element is output. If set, the corresponding
+text will appear at the end of the About element; default unset.
+
+@item AFTER_OVERVIEW
+@itemx AFTER_TOC_LINES
+For HTML@. If set, the corresponding text is output after the short
+table of contents for @code{AFTER_OVERVIEW} and after the table of
+contents for @code{AFTER_TOC_LINES}; otherwise, a default string is
+used. At the time of writing, a @code{</div>} element is closed.
+
+In general, you should set @code{BEFORE_OVERVIEW} if
+@code{AFTER_OVERVIEW} is set, and you should set
+@code{BEFORE_TOC_LINES} if @code{AFTER_TOC_LINES} is set.
+
+
+@item BASEFILENAME_LENGTH
+For HTML@. The maximum length of the base filenames; default 245.
+Changing this would make cross-manual references to such long node
+names invalid (@pxref{HTML Xref Link Basics}).
+
+@item BEFORE_OVERVIEW
+@itemx BEFORE_TOC_LINES
+For HTML@. If set, the corresponding text is output before the short
+table of contents for @code{BEFORE_OVERVIEW} and before the table of
+contents for @code{BEFORE_TOC_LINES}, otherwise a default string is
+used. At the time of writing, a @code{<div ...>} element is opened.
+
+In general you should set @code{AFTER_OVERVIEW} if
+@code{BEFORE_OVERVIEW} is set, and you should set
+@code{AFTER_TOC_LINES} if @code{BEFORE_TOC_LINES} is set.
+
+
+@item BIG_RULE
+For HTML@. Rule used after and before the top element and before
+special elements, but not for footers and headers; default
+@code{<hr>}.
+
+@item BODYTEXT
+@cindex @code{<body>} text, customizing
+For HTML, the text appearing in @code{<body>}. By default, set
+automatically, taking into account the document language
+(@pxref{@t{@@documentlanguage}}).
+
+@item CASE_INSENSITIVE_FILENAMES
+For HTML@. Construct output file names as if the filesystem were case
+insensitive (@pxref{HTML Splitting}); default false.
+
+@item CHAPTER_HEADER_LEVEL
+For HTML@. Header formatting level used for chapter level sectioning
+commands; default @samp{2}.
+
+@item CHECK_HTMLXREF
+For HTML@. Check that manuals which are the target of external
+cross references (@pxref{Four and Five Arguments}) are present in
+(a)file{htmlxref.cnf} (@pxref{HTML Xref Configuration}); default false.
+
+@item COMPLEX_FORMAT_IN_TABLE
+For HTML@. If set, use tables for indentation of complex formats; default
+false.
+
+@item CSS_LINES
+For HTML@. CSS output, automatically determined by default (@pxref{HTML CSS}).
+
+@item DATE_IN_HEADER
+For HTML@. Put the document generation date in the header; off by default.
+
+@item DEF_TABLE
+For HTML@. If set, a @code{<table>} construction for @code{@@deffn}
+and similar @@-commands is used (looking more like the @TeX{} output),
+instead of definition lists; default false.
+
+@item DEFAULT_RULE
+For HTML@. Rule used between element, except before and after the
+top element, and before special elements, and for footers and headers;
+default @code{<hr>}.
+
+@item DO_ABOUT
+For HTML@. If set to 0 never do an About special element;
+if set to 1 always do an About special element;
+default 0.
+@c @xref{Output Elements Defined}.
+
+@item EXTERNAL_DIR
+For HTML@. Base directory for external manuals; default none. It is
+better to use the general external cross reference mechanism
+(@pxref{HTML Xref Configuration}) than this variable.
+
+@item EXTRA_HEAD
+For HTML@. Additional text appearing within @code{<head>}; default unset.
+
+@item FOOTNOTE_END_HEADER_LEVEL
+For HTML@. Header formatting level used for the footnotes header with
+the `end' footnotestyle; default @samp{4}. @xref{Footnote Styles}.
+
+@item FOOTNOTE_SEPARATE_HEADER_LEVEL
+For HTML@. Header formatting level used for the footnotes header with
+the `separate' footnotestyle; default @samp{4}. @xref{Footnote
+Styles}.
+
+@item FRAMES
+For HTML@. If set, a file describing the frame layout is generated,
+together with a file with the short table of contents; default false.
+
+@item FRAMESET_DOCTYPE
+For HTML@. Same as DOCTYPE, but for the file containing the frame
+description.
+
+@item HEADER_IN_TABLE
+For HTML@. Use tables for header formatting rather than a simple
+@code{<div>} element; default false.
+
+@item ICONS
+For HTML@. Use icons for the navigation panel; default false.
+
+@item IMAGE_LINK_PREFIX
+For HTML@. If set, the associated value is prepended to the image file
+links; default unset.
+
+@item INLINE_CONTENTS
+For HTML@. If set, output the contents where the @code{@@contents} and
+similar @@-commands are located; default true. This is ignored if
+@code{@@set*contentsaftertitlepage} is set (@pxref{Contents}).
+
+@item INLINE_CSS_STYLE
+For HTML@. Put CSS directly in HTML elements rather than at the
+beginning of the output; default false.
+
+@item KEEP_TOP_EXTERNAL_REF
+For HTML@. If set, do not ignore @samp{Top} as the first
+argument for an external ref to a manual, as is done by default.
+@xref{Top Node Naming}.
+
+@item L2H
+For HTML@. If set, @command{latex2html} is used to convert @code{@@math}
+and @code{@@tex} sections; default false. Best used with @option{--iftex}.
+
+@item L2H_CLEAN
+(Relevant only if @code{L2H} is set.) If set, the intermediate files
+generated in relation with @command{latex2html} are removed; default
+true.
+
+@item L2H_FILE
+(Relevant only if @code{L2H} is set.) If set, the given file is used
+as @command{latex2html}'s init file; default unset.
+
+@item L2H_HTML_VERSION
+(Relevant only if @code{L2H} is set.) The HTML version used in the
+@command{latex2html} call; default unset.
+
+@item L2H_L2H
+(Relevant only if @code{L2H} is set.) The program invoked as
+@command{latex2html}; default is @code{latex2html}.
+
+@item L2H_SKIP
+(Relevant only if @code{L2H} is set.) If set to a true value, the
+actual call to @command{latex2html} is skipped; previously generated
+content is reused instead. If set to 0, the cache is not used at all.
+If set to @samp{undef}, the cache is used for as many @TeX{} fragments as
+possible and for any remaining the command is run. The default is
+@samp{undef}.
+
+@item L2H_TMP
+(Relevant only if @code{L2H} is set.) Set the directory used for
+temporary files. None of the file name components in this directory
+name may start with @samp{.}; otherwise, @command{latex2html} will
+fail (because of @command{dvips}). The default is the empty string,
+which means the current directory.
+
+@item MAX_HEADER_LEVEL
+For HTML@. Maximum header formatting level used (higher header
+formatting level numbers correspond to lower sectioning levels);
+default @samp{4}.
+
+@item MENU_SYMBOL
+For HTML@. Symbol used in front of menu entries when node names are used
+for menu entries formatting; default @samp{•}.
+
+@item MONOLITHIC
+For HTML@. Output only one file including the table of contents. Set
+by default, but only relevant when the output is not split.
+
+@item NO_CSS
+For HTML@. Do not use CSS; default false. @xref{HTML CSS}.
+
+@item NODE_FILE_EXTENSION
+For HTML@. Extension for node files if @code{NODE_FILENAMES} is set;
+default @samp{html}.
+
+@item PRE_ABOUT
+For HTML, when an About element is output. If set to a text string,
+this text will appear at the beginning of the About element. If set
+to a reference on a subroutine, the result of the subroutine call will
+appear at the beginning of the About element. If not set (the
+default), default text is used.
+
+@item PRE_BODY_CLOSE
+For HTML@. If set, the given text will appear at the footer of each
+HTML file; default unset.
+
+@item PROGRAM_NAME_IN_FOOTER
+For HTML@. If set, output the program name and miscellaneous related
+information in the page footers; default false.
+
+@item SHORTEXTN
+For HTML@. If set, use @samp{.htm} as extension; default false.
+
+@item SHOW_TITLE
+For HTML@. If set, output the title at the beginning of the document;
+default true.
+
+@item SIMPLE_MENU
+For HTML@. If set, use a simple preformatted style for the menu,
+instead of breaking down the different parts of the menu; default false.
+@xref{Menu Parts}.
+
+@item TOC_LINKS
+For HTML@. If set, links from headings to toc entries are created;
+default false.
+
+@item TOP_FILE
+This file name may be used for the top-level file. The extension is
+set appropriately, if necessary. This is used to override the default,
+and is, in general, only taken into account when output is split, and
+for HTML@.
+
+@item TOP_NODE_FILE
+For HTML@. File name used for the Top node, if @code{NODE_FILENAMES}
+is set; default is @code{index}.
+
+@item TOP_NODE_FILE_TARGET
+For HTML@. File name used for the Top node in cross references;
+default is @code{index}.
+
+@item TOP_NODE_UP_URL
+For HTML@. The url used for the Up pointer of the Top node; default
+@code{undef}, meaning no link is generated.
+
+@item USE_ACCESSKEY
+@cindex @code{accesskey}, customization variable for
+For HTML@. Use @code{accesskey} in cross references; default true.
+
+@item USE_ISO
+For HTML@. Use entities for doubled single-quote characters
+(@pxref{Inserting Quotation Marks}), and @samp{---} and @samp{--}
+(@pxref{Conventions}); default true.
+
+@item USE_LINKS
+@cindex @code{<link>} HTML tag, in @code{<head>}
+@cindex @code{<head>} HTML tag, and @code{<link>}
+For HTML@. Generate @code{<link>} elements in the HTML @code{<head>}
+output; default true.
+
+@item USE_REL_REV
+For HTML@. Use @code{rel} in cross references; default true.
+
+@item VERTICAL_HEAD_NAVIGATION
+For HTML@. If set, a vertical navigation panel is used; default false.
+
+@item WORDS_IN_PAGE
+@cindex Navigation panel, bottom of page
+For HTML, with output split at nodes. Specifies the approximate
+minimum page length at which a navigation panel is placed at the
+bottom of a page. To avoid ever having the navigation buttons at the
+bottom of a page, set this to a sufficiently large number. The
+default is 300.
+
+@item XREF_USE_FLOAT_LABEL
+For HTML@. If set, for the float name in cross references, use the
+float label instead of the type followed by the float number
+(@pxref{@t{@@float}}). The default is off.
+
+@item XREF_USE_NODE_NAME_ARG
+For HTML@. Only relevant for cross reference commands with no cross
+reference name (second argument). If set to@tie{}1, use the node name
+(first) argument in cross reference @@-commands for the text displayed
+as the hyperlink. If set to@tie{}0, use the node name if
+@code{USE_NODES} is set, otherwise the section name. If set to
+@samp{undef}, use the first argument in preformatted environments,
+otherwise use the node name or section name depending on
+@code{USE_NODES}. The default is @samp{undef}.
+
+@end vtable
+
+
+@node Other Customization Variables
+@subsection Other Customization Variables
+
+This table gives the remaining customization variables, which apply to
+multiple formats, or affect global behavior, or otherwise don't fit
+into the categories of the previous sections.
+
+@vtable @code
+@item CLOSE_QUOTE_SYMBOL
+When a closing quote is needed, use this character; default @code{’}
+in HTML, @code{’} in Docbook. The default for Info is the same
+as @code{OPEN_QUOTE_SYMBOL} (see below).
+
+@c @item COMPLETE_IMAGE_PATHS
+@c If set, the image files are computed to be relative from the document
+@c directory to the source manual directory, and then to the image.
+
+@item CPP_LINE_DIRECTIVES
+Recognize @code{#line} directives in a ``preprocessing'' pass
+(@pxref{External Macro Processors}); on by default.
+
+@item DEBUG
+If set, debugging output is generated; default is off (zero).
+@c The integer value specifies what kinds of debugging output are
+@c generated. It is a bitmask. Setting it to 255 ensures having all
+@c available debugging output.
+
+@item DOCTYPE
+@vindex SystemLiteral
+For Docbook, HTML, XML@. Specifies the @code{SystemLiteral}, the
+entity's system identifier. This is a URI which may be used to
+retrieve the entity, and identifies the canonical DTD for the
+document. The default value is different for each of HTML, Docbook
+and Texinfo@tie{}XML.
+
+@item DUMP_TEXI
+For debugging. If set, no conversion is done, only parsing and macro
+expansion. If the option @option{--macro-expand} is set, the Texinfo
+source is also expanded to the corresponding file. Default false.
+
+@item DUMP_TREE
+For debugging. If set, the tree constructed upon parsing a Texinfo
+document is output to standard error; default false.
+
+@item ENABLE_ENCODING_USE_ENTITY
+For HTML, XML@. If @option{--enable-encoding} is set, and there is an
+entity corresponding with the letter or the symbol being output,
+prefer the entity. Set by default for HTML, but not XML.
+
+@item EXTERNAL_CROSSREF_SPLIT
+For cross references to other manuals, this determines if the other
+manual is considered to be split or monolithic. By default, it is set
+based on the value of @code{SPLIT}. @xref{HTML Xref}, and @pxref{HTML
+Xref Configuration}.
+
+@item EXTENSION
+The extension added to the output file name. The default is different
+for each output format.
+
+@item FIX_TEXINFO
+For ``plain Texinfo'' (see the @code{PLAINTEXINFO} item). If set to
+false, the resulting Texinfo does not have all errors corrected, such
+as missing @samp{@@end}; default true. This variable is only
+relevant when expanding Texinfo; other converters always try to
+output something sane even if the input is erroneous.
+
+@c @item IDX_SUMMARY
+@c If set, for each @code{@@printindex} a file named
+@c @file{@var{docname}_(a)var{idxname}.idx} is created, containing lines of
+@c the form:
+@c
+@c @example
+@c @var{key} @var{reference}
+@c @end example
+@c
+@c @noindent sorted alphabetically (case matters).
+
+@item IGNORE_BEFORE_SETFILENAME
+If set, begin outputting at @code{@@setfilename}, if
+@code{@@setfilename} is present; default true.
+
+@item IGNORE_SPACE_AFTER_BRACED_COMMAND_NAME
+If set, spaces are ignored after an @@-command that takes braces.
+Default true, matching the @TeX{} behavior.
+
+@item INDEX_ENTRY_COLON
+Symbol used between the index entry and the associated node or section;
+default @samp{:}.
+
+@item INFO_SPECIAL_CHARS_WARNING
+If set, warn about problematic constructs for Info output (such as the
+string @samp{::}) in node names, menu items, and cross references;
+default true. Do not warn about index entries, since parsing problems
+there don't prevent navigation; readers can still relatively easily
+find their way to the node in question.
+
+@item INLINE_INSERTCOPYING
+If set, @code{@@insertcopying} is replaced by the @code{@@copying}
+content (@pxref{@t{@@copying}}) as if @code{@@insertcopying} were a
+user-defined macro; default false.
+
+@item INPUT_ENCODING_NAME
+Normalized encoding name suitable for output. Should be a usable
+charset name in HTML, typically one of the preferred IANA encoding
+names. You should not need to use this variable, since it is set by
+@code{@@documentencoding} (@pxref{@t{@@documentencoding}}).
+
+@item INPUT_PERL_ENCODING
+Perl encoding used to process the Texinfo source. You should not need
+to use that variable, since it is set by @code{@@documentencoding}
+(@pxref{@t{@@documentencoding}}).
+
+@item MACRO_BODY_IGNORES_LEADING_SPACE
+Ignore white space at the beginning of user defined macro body line,
+mimicking a @TeX{} limitation (@pxref{Macro Details}). Default off.
+
+@item MAX_MACRO_CALL_NESTING
+The maximal number of recursive calls of @@-commands defined through
+@code{@@rmacro}; default 100000. The purpose of this variable is to
+avoid infinite recursions.
+
+@item MENU_ENTRY_COLON
+Symbol used between the menu entry and the description; default
+@samp{:}.
+
+@item NO_USE_SETFILENAME
+If set, do not use @code{@@setfilename} to set the document name;
+instead, base the output document name only on the input file name.
+The default is false.
+
+@item NODE_FILENAMES
+If set, node names are used to construct file names. By default, it
+is set if the output is split by node, or if @code{NODE_FILES} is set
+and the output is split in any way.
+
+@item NODE_NAME_IN_INDEX
+If set, use node names in index entries, otherwise prefer section names;
+default true.
+
+@item NODE_NAME_IN_MENU
+If set, use node names in menu entries, otherwise prefer section names;
+default true.
+
+@item OPEN_QUOTE_SYMBOL
+When an opening quote is needed, e.g., for @samp{@@samp} output, use
+the specified character; default @code{‘} for HTML,
+@code{‘} for Docbook. For Info, the default depends on the
+enabled document encoding (@pxref{@t{@@documentencoding}}); if no
+document encoding is set, or the encoding is US-ASCII, etc., @samp{'}
+is used. This character usually appears as an undirected single quote
+on modern systems. If the document encoding is Unicode, the Info
+output uses a Unicode left quote.
+
+@item OUTPUT_ENCODING_NAME
+Normalized encoding name used for output files. Should be a usable
+charset name in HTML, typically one of the preferred IANA encoding
+names. By default, if an input encoding is set (typically through
+@code{@@documentencoding} or @code{INPUT_ENCODING_NAME}), this
+information is used to set the output encoding name. If no input
+encoding is specified, the default output encoding name may be set by
+the output format. In particular, the XML-based formats use
+@code{utf-8} for @code{OUTPUT_ENCODING_NAME} if the encoding is not
+otherwise specified. @xref{@t{@@documentencoding}}.
+
+@item OVERVIEW_LINK_TO_TOC
+If set, the cross references in the Overview link to the corresponding
+Table of Contents entries; default true.
+
+@item PACKAGE
+@itemx PACKAGE_VERSION
+@itemx PACKAGE_AND_VERSION
+@itemx PACKAGE_URL
+@itemx PACKAGE_NAME
+The implementation's short package name, package version, package name
+and version concatenated, package url, and full package name,
+respectively. By default, these variables are all set through
+Autoconf, Automake, and @code{configure}.
+
+@item PREFIX
+The output file prefix, which is prepended to some output file names.
+By default it is set by @code{@@setfilename} or from the input file
+(@pxref{@t{@@setfilename}}). How this value is used depends on the
+value of other customization variables or command line options, such
+as whether the output is split and @code{NODE_FILENAMES}. The default
+is unset.
+
+@item PROGRAM
+Name of the program used. By default, it is set to the name of the
+program launched, with a trailing @samp{.pl} removed.
+
+@item RENAMED_NODES_FILE
+If set, use the value for the renamed nodes description file. If not
+set, the file is @file{(a)var{doc_basename}-noderename.cnf}.
+@xref{HTML Xref Link Preservation}.
+
+@item RENAMED_NODES_REDIRECTIONS
+If set, create redirection files for renamed nodes. Set by default
+when generating HTML@.
+
+@item SHOW_MENU
+@opindex --no-headers
+If set, Texinfo menus are output. By default, it is set unless
+generating Docbook or if @option{--no-headers} is specified.
+
+@item SORT_ELEMENT_COUNT
+@pindex texi-elements-by-size
+@cindex Longest nodes, finding
+@cindex Sorting nodes by size
+If set, the name of a file to which a list of elements (nodes or
+sections, depending on the output format) is dumped, sorted by the
+number of lines they contain after removal of @@-commands; default
+unset. This is used by the program @code{texi-elements-by-size} in
+the @file{util/} directory of the Texinfo source distribution
+(@pxref{texi-elements-by-size}).
+
+@item SORT_ELEMENT_COUNT_WORDS
+When dumping the elements-by-size file (see preceding item), use word
+counts instead of line counts; default false.
+
+@c @item SPLIT_INDEX
+@c For HTML@. If set, the output is split, and the output from
+@c @code{@@printindex} happens in a sectioning element at the level of
+@c splitting, then split index pages at the next letter after they have
+@c more than that many entries. If set to 0, no index splitting.
+
+@item TEST
+If set to true, some variables which are normally dynamically
+generated anew for each run (date, program name, version) are set to
+fixed and given values. This is useful to compare the output to a
+reference file, as is done for the tests. The default is false.
+
+@item TEXI2DVI
+Name of the command used to produce PostScript, PDF, and DVI; default
+@samp{texi2dvi}. @xref{@t{texi2any} Printed Output}.
+
+@item TEXI2HTML
+@cindex compatibility, with @command{texi2html}
+Generate HTML and try to be as compatible as possible with
+@command{texi2html}; default false.
+
+@item TEXINFO_COLUMN_FOR_DESCRIPTION
+Used with the @code{indent_menu_descriptions} tree transformation,
+described below; default 32 (matching
+@code{texinfo-column-for-description} in XEmacs)).
+
+@item TEXINFO_DTD_VERSION
+For XML@. Version of the DTD used in the XML output preamble. The
+default is set based on a variable in @file{configure.ac}.
+
+@item TEXTCONTENT_COMMENT
+For stripped text content output (i.e., when
+@code{TEXINFO_OUTPUT_FORMAT} is set to @code{textcontent}). If set,
+also output comments. Default false.
+
+@item TOP_NODE_UP
+Up node for the Top node; default @samp{(dir)}.
+
+@item TREE_TRANSFORMATIONS
+The associated value is a comma separated list of transformations that
+can be applied to the Texinfo tree prior to outputting the result. If
+more than one is specified, the ordering is irrelevant; each is always
+applied at the necessary point during processing.
+
+The only one executed by default is
+@samp{move_index_entries_after_items} for HTML and Docbook output.
+Here's an example of updating the master menu in a document:
+
+@example
+makeinfo \
+ -c TREE_TRANSFORMATIONS=regenerate_master_menu \
+ -c PLAINTEXINFO=1 \
+ mydoc.texi \
+ -o /tmp/out
+@end example
+
+@noindent (Caveat: Since @code{PLAINTEXINFO} output does expand
+Texinfo macros and conditionals, it's necessary to remove any such
+differences before installing the updates in the original document.
+This will be remedied in a future release.)
+
+The following transformations are currently supported (many are used
+in the @code{pod2texi} utility distributed with Texinfo;
+@pxref{Invoking @t{pod2texi}}):
+
+@ftable @samp
+@item complete_tree_nodes_menus
+Add menu entries or whole menus for nodes associated with sections of
+any level, based on the sectioning tree.
+
+@item fill_gaps_in_sectioning
+Adds empty @code{@@unnumbered...} sections in a tree to fill gaps in
+sectioning. For example, an @code{@@unnumberedsec} will be inserted
+if an @code{@@chapter} is followed by an @code{@@subsection}.
+
+@item indent_menu_descriptions
+Reformat menus so that descriptions start at column
+@code{TEXINFO_COLUMN_DESCRIPTION}.
+
+@item insert_nodes_for_sectioning_commands
+Insert nodes for sectioning commands lacking a corresponding node.
+
+@item move_index_entries_after_items
+In @code{@@enumerate} and @code{@@itemize}, move index entries
+appearing just before an @code{@@item} to just after the
+@code{@@item}. Comment lines between index entries are moved too. As
+mentioned, this is always done for HTML and Docbook output.
+
+@item regenerate_master_menu
+Update the Top node master menu, either replacing the (first)
+@code{@@detailmenu} in the Top node menu, or creating it at the end of
+the Top node menu.
+
+@item simple_menu
+Mostly the same as @code{SIMPLE_MENU}: use a simple preformatted style
+for the menu. It differs from setting @code{SIMPLE_MENU} in that
+@code{SIMPLE_MENU} only has an effect in HTML output.
+
+@end ftable
+
+@item USE_NODES
+Preferentially use nodes to decide where elements are separated. If
+set to false, preferentially use sectioning to decide where elements
+are separated. The default is true.
+
+@item USE_NODE_TARGET
+If set, use the node associated with a section for the section target
+in cross references; default true.
+
+@item USE_NUMERIC_ENTITY
+For HTML and XML@. If set, use numeric entities instead of ASCII
+characters when there is no named entity. By default, set to true for
+HTML.
+
+@item USE_UP_NODE_FOR_ELEMENT_UP
+Fill in up sectioning direction with node direction when there is no
+sectioning up direction. In practice this can only happen when there
+is no @@top section. Not set by default.
+
+@item USE_SETFILENAME_EXTENSION
+Default is on for Info, off for other output. If set, use exactly
+what @code{@@setfilename} gives for the output file name, including
+the extension. You should not need to explicitly set this variable.
+
+@item USE_TITLEPAGE_FOR_TITLE
+Use the full @code{@@titlepage} as the title, not a simple title string;
+default false.
+
+@item USE_UNIDECODE
+@pindex Text::Unidecode
+If set to false, do not use the @code{Text::Unidecode} Perl module to
+transliterate more characters; default true.
+
+@end vtable
+
+
+@node Internationalization of Document Strings
+@section Internationalization of Document Strings
+
+@cindex I18n, of document strings
+@cindex Internationalization of document strings
+@cindex Document strings, internationalization of
+@cindex Output document strings, internationalization of
+@cindex Translating strings in output documents
+
+@vindex documentlanguage @r{customization variable}
+@command{texi2any} writes fixed strings into the output document at
+various places: cross references, page footers, the help page,
+alternate text for images, and so on. The string chosen depends on
+the value of the @code{documentlanguage} at the time of the string
+being output (@pxref{@t{@@documentlanguage}}, for the Texinfo
+command interface).
+
+@pindex libintl-perl @r{Gettext implementation}
+The Gettext framework is used for those strings (@pxref{Top,,,
+gettext, Gettext}). The @code{libintl-perl} package is used as the
+@code{gettext} implementation; more specifically, the pure Perl
+implementation is used, so Texinfo can support consistent behavior
+across all platforms and installations, which would not otherwise be
+possible. @code{libintl-perl} is included in the Texinfo distribution
+and always installed, to ensure that it is available if needed. It is
+also possible to use the system @code{gettext} (the choice can be made
+at build-time).
+
+@vindex texinfo_document @r{Gettext domain}
+@cindex Perl format strings for translation
+The Gettext domain @samp{texinfo_document} is used for the strings.
+Translated strings are written as Texinfo, and may include
+@@-commands. In translated strings, the varying parts of the string
+are not usually denoted by @code{%s} and the like, but by
+@samp{@{arg_name@}}. (This convention is common for @code{gettext} in
+Perl and is fully supported in GNU Gettext; @pxref{perl-format,, Perl
+Format Strings, gettext, GNU Gettext}.) For example, in the
+following, @samp{@{section@}} will be replaced by the section name:
+
+@example
+see @{section@}
+@end example
+
+These Perl-style brace format strings are used for two reasons: first,
+changing the order of @code{printf} arguments is only available since
+Perl(a)tie{}5.8.0; second, and more importantly, the order of arguments
+is unpredictable, since @@-command expansion may lead to different
+orders depending on the output format.
+
+The expansion of a translation string is done like this:
+
+@enumerate
+@item First, the string is translated. The locale
+is @var{@@documentlanguage}@code{.}@var{@(a)documentencoding}.
+
+@cindex @code{us-ascii} encoding, and translations
+If the @var{@@documentlanguage} has the form @samp{ll_CC}, that is
+tried first, and then just @samp{ll}. If that does not exist, and the
+encoding is not @code{us-ascii}, then @code{us-ascii} is tried.
+
+The idea is that if there is a @code{us-ascii} encoding, it means that
+all the characters in the charset may be expressed as @@-commands.
+For example, there is a @code{fr.us-ascii} locale that can accommodate
+any encoding, since all the Latin@tie{}1 characters have associated
+@@-commands. On the other hand, Japanese has only a translation
+(a)code{ja.utf-8}, since there are no @@-commands for Japanese
+characters.
+
+@item Next, the string is expanded as Texinfo, and converted.
+The arguments are substituted; for example, @samp{@{arg_name@}} is
+replaced by the corresponding actual argument.
+
+@end enumerate
+
+In the following example, @samp{@{date@}}, @samp{@{program_homepage@}}
+and @samp{@{program@}} are the arguments of the string. Since they
+are used in @code{@@uref}, their order is not predictable.
+@samp{@{date@}}, @samp{@{program_homepage@}} and @samp{@{program@}} are
+substituted after the expansion:
+
+@example
+Generated on @@emph@{@{date@}@} using
+@@uref@{@{program_homepage@}, @@emph@{@{program@}@}@}.
+@end example
+
+This approach is admittedly a bit complicated. Its usefulness is that
+it supports having translations available in different encodings for
+encodings which can be covered by @@-commands, and also specifying how
+the formatting for some commands is done, independently of the output
+format---yet still be language-dependent. For example, the
+@samp{@@pxref} translation string can be like this:
+
+@example
+see @{node_file_href@} section `@{section@}\' in @@cite@{@{book@}@}
+@end example
+
+@noindent
+which allows for specifying a string independently of the output
+format, while nevertheless with rich formatting it may be translated
+appropriately in many languages.
+
+
+@node Invoking @t{pod2texi}
+@section Invoking @t{pod2texi}: Convert POD to Texinfo
+
+@pindex pod2texi
+@cindex Invoking @code{pod2texi}
+@cindex POD, converting to Texinfo
+@cindex Perl POD, converting to Texinfo
+
+The @code{pod2texi} program translates Perl pod documentation file(s)
+to Texinfo. There are two basic modes of operation: generating a
+standalone manual from each input pod, or (if @code{--base-level=1} or
+higher is given) generating Texinfo subfiles suitable for use
+with @code{@@include}.
+
+Although ordinarily this documentation in the Texinfo manual would be
+the best place to look, in this case we have documented all the
+options and examples in the @code{pod2texi} program itself, since it
+may be useful outside of the rest of Texinfo. Thus, please see the
+output of @code{pod2texi --help}, the version on the web at
+@url{http://www.gnu.org/software/texinfo/manual/pod2texi.html}, etc.
+
+For an example of using @code{pod2texi} to make Texinfo out of the
+Perl documentation itself, see
+@url{http://svn.savannah.gnu.org/viewvc/trunk/contrib/perldoc-all/?root=texinfo,
+@file{contrib/perldoc-all}} in the Texinfo source distribution (the
+output is available at @url{http://www.gnu.org/software/perl/manual}).
+
+
+@node @t{texi2html}
+@section @code{texi2html}: Ancestor of @code{texi2any}
+
+@pindex texi2html
+
+@cindex Cons, Lionel
+Conceptually, the @command{texi2html} program is the parent of today's
+@command{texi2any} program. @command{texi2html} was developed
+independently, originally by Lionel Cons in 1998; at the time,
+@command{makeinfo} could not generate HTML@. Many other people
+contributed to @command{texi2html} over the years.
+
+The present @command{texi2any} uses little of the actual code of
+@command{texi2html}, and has quite a different basic approach to the
+implementation (namely, parsing the Texinfo document into a tree), but
+still, there is a family resemblance.
+
+By design, @command{texi2any} supports nearly all the features of
+@command{texi2html} in some way. However, we did not attempt to
+maintain strict compatibility, so no @command{texi2html} executable is
+installed by the Texinfo package. An approximation can be run with an
+invocation like this (available as @file{util/texi2html} in the
+Texinfo source):
+
+@example
+texi2any --set-customization-variable TEXI2HTML=1 ...
+@end example
+
+@noindent but, to emphasize, this is @emph{not} a drop-in replacement
+for the previous @command{texi2html}. Here are the biggest differences:
+
+@itemize @bullet
+@item Most blatantly, the command line options of @command{texi2html}
+are now customization variables, for the most part. A table of
+approximate equivalents is given below.
+
+@item The program-level customization API is very different in
+@command{texi2any}.
+
+@item Indices cannot be split.
+
+@item Translated strings cannot be customized; we hope to introduce
+this feature in @command{texi2any} in the future.
+
+@end itemize
+
+Aside from the last, we do not intend to reimplement these
+differences. Therefore, the route forward for authors is alter
+manuals and build processes as necessary to use the new features and
+methods of @command{texi2any}. The @command{texi2html} maintainers
+(one of whom is the principal author of @command{texi2any}) do not
+intend to make further releases.
+
+@cindex Options of @command{texi2html}
+@cindex Command-line options of @command{texi2html}
+Here is the table showing @command{texi2html} options and
+corresponding @command{texi2any} customization variables.
+@c (@pxref{texi2any Output Customization,, @command{texi2any} Output
+@c Customization}).
+
+@multitable {@option{--ignore-preamble-text}} {@code{IGNORE_PREAMBLE_TEXT}}
+@item @option{--toc-links} @tab @code{TOC_LINKS}
+@item @option{--short-ext} @tab @code{SHORTEXTN}
+@item @option{--prefix} @tab @code{PREFIX}
+@item @option{--short-ref} @tab @code{SHORT_REF}
+@item @option{--idx-sum} @tab @code{IDX_SUMMARY}
+@item @option{--def-table} @tab @code{DEF_TABLE}
+@item @option{--ignore-preamble-text} @tab @code{IGNORE_PREAMBLE_TEXT}
+@item @option{--html-xref-prefix} @tab @code{EXTERNAL_DIR}
+@item @option{--l2h} @tab @code{L2H}
+@item @option{--l2h-l2h} @tab @code{L2H_L2H}
+@item @option{--l2h-skip} @tab @code{L2H_SKIP}
+@item @option{--l2h-tmp} @tab @code{L2H_TMP}
+@item @option{--l2h-file} @tab @code{L2H_FILE}
+@item @option{--l2h-clean} @tab @code{L2H_CLEAN}
+@item @option{--use-nodes} @tab @code{USE_NODES}
+@item @option{--monolithic} @tab @code{MONOLITHIC}
+@item @option{--top-file} @tab @code{TOP_FILE}
+@item @option{--toc-file} @tab @code{TOC_FILE}
+@item @option{--frames} @tab @code{FRAMES}
+@item @option{--menu} @tab @code{SHOW_MENU}
+@item @option{--debug} @tab @code{DEBUG}
+@item @option{--doctype} @tab @code{DOCTYPE}
+@item @option{--frameset-doctype} @tab @code{FRAMESET_DOCTYPE}
+@item @option{--test} @tab @code{TEST}
+@end multitable
+
+@cindex @file{texi2oldapi.texi}, for @command{texi2any}
+Finally, any @command{texi2html} users seeking more detailed
+information can check the draft file @file{doc/texi2oldapi.texi} in
+the Texinfo source repository. It consists mainly of very rough
+notes, but may still be useful to some.
+
+
+@node Creating and Installing Info Files
+@chapter Creating and Installing Info Files
+
+This chapter describes how to create and install Info files.
+@xref{Info Files}, for general information about the file format
+itself.
+
+@menu
+* Creating an Info File::
+* Installing an Info File::
+@end menu
+
+
+@node Creating an Info File
+@section Creating an Info File
+@cindex Creating an Info file
+@cindex Info, creating an online file
+@cindex Formatting a file for Info
+
+@code{makeinfo} is a program that converts a Texinfo file into an Info
+file, HTML file, or plain text. @code{texinfo-format-region} and
+@code{texinfo-format-buffer} are XEmacs functions that convert
+Texinfo to Info.
+
+For information on installing the Info file in the Info system,
+@pxref{Installing an Info File}.
+
+@menu
+* @t{makeinfo} Advantages:: @code{makeinfo} provides better error checking.
+* @t{makeinfo} in XEmacs:: How to run @code{makeinfo} from XEmacs.
+* @t{texinfo-format} commands:: Two Info formatting commands written
+ in Emacs Lisp are an alternative
+ to @code{makeinfo}.
+* Batch Formatting:: How to format for Info in XEmacs Batch mode.
+* Tag and Split Files:: How tagged and split files help Info
+ to run better.
+@end menu
+
+
+@node @t{makeinfo} Advantages
+@subsection @code{makeinfo} Advantages
+
+@anchor{makeinfo advantages}@c old name
+
+The @code{makeinfo} utility creates an Info file from a Texinfo source
+providing better error messages than either of the XEmacs formatting
+commands. We recommend it. The @code{makeinfo} program is
+independent of XEmacs. You can run @code{makeinfo} in any of three
+ways: from an operating system shell, from a shell inside XEmacs, or by
+typing the @kbd{C-c C-m C-r} or the @kbd{C-c C-m C-b} command in
+Texinfo mode in XEmacs.
+
+The @code{texinfo-format-region} and the @code{texinfo-format-buffer}
+commands may be useful if you cannot run @code{makeinfo}.
+
+
+@node @t{makeinfo} in XEmacs
@subsection Running @code{makeinfo} Within XEmacs
+
+@c anchor{makeinfo in XEmacs}@c prev name
@cindex Running @code{makeinfo} in XEmacs
@cindex @code{makeinfo} inside XEmacs
@cindex Shell, running @code{makeinfo} in
@@ -15890,28 +18750,28 @@
You can run @code{makeinfo} in XEmacs Texinfo mode by using either the
@code{makeinfo-region} or the @code{makeinfo-buffer} commands. In
Texinfo mode, the commands are bound to @kbd{C-c C-m C-r} and @kbd{C-c
-C-m C-b} by default.@refill
+C-m C-b} by default.
@table @kbd
@item C-c C-m C-r
@itemx M-x makeinfo-region
-Format the current region for Info.@refill
+Format the current region for Info.
@findex makeinfo-region
@item C-c C-m C-b
@itemx M-x makeinfo-buffer
-Format the current buffer for Info.@refill
+Format the current buffer for Info.
@findex makeinfo-buffer
@end table
When you invoke @code{makeinfo-region} the output goes to a temporary
buffer. When you invoke @code{makeinfo-buffer} output goes to the
-file set with @code{@@setfilename} (@pxref{setfilename}).
+file set with @code{@@setfilename} (@pxref{@t{@@setfilename}}).
The XEmacs @code{makeinfo-region} and @code{makeinfo-buffer} commands
run the @code{makeinfo} program in a temporary shell buffer. If
@code{makeinfo} finds any errors, XEmacs displays the error messages in
-the temporary buffer.@refill
+the temporary buffer.
@cindex Errors, parsing
@cindex Parsing errors
@@ -15921,37 +18781,37 @@
cursor on the line in the Texinfo source that @code{makeinfo} thinks
caused the error. @xref{Compilation, , Running @code{make} or
Compilers Generally, xemacs, XEmacs User's Manual}, for more
-information about using the @code{next-error} command.@refill
+information about using the @code{next-error} command.
In addition, you can kill the shell in which the @code{makeinfo}
command is running or make the shell buffer display its most recent
-output.@refill
+output.
@table @kbd
@item C-c C-m C-k
@itemx M-x makeinfo-kill-job
@findex makeinfo-kill-job
Kill the current running @code{makeinfo} job
-(from @code{makeinfo-region} or @code{makeinfo-buffer}).@refill
+(from @code{makeinfo-region} or @code{makeinfo-buffer}).
@item C-c C-m C-l
@itemx M-x makeinfo-recenter-output-buffer
@findex makeinfo-recenter-output-buffer
Redisplay the @code{makeinfo} shell buffer to display its most recent
-output.@refill
+output.
@end table
@noindent
(Note that the parallel commands for killing and recentering a @TeX{}
job are @kbd{C-c C-t C-k} and @kbd{C-c C-t C-l}. @xref{Texinfo Mode
-Printing}.)@refill
+Printing}.)
You can specify options for @code{makeinfo} by setting the
@code{makeinfo-options} variable with either the @kbd{M-x
customize} or the @kbd{M-x set-variable} command, or by setting the
variable in your @file{init.el} initialization file.
-For example, you could write the following in your @file{init.el} file:@refill
+For example, you could write the following in your @file{init.el} file:
@example
@group
@@ -15962,36 +18822,38 @@
@end example
@noindent
-@c If you write these three cross references using xref, you see
+@c Writing these three cross references using xref results in
@c three references to the same named manual, which looks strange.
@iftex
-For more information, see @ref{makeinfo options, , Options for
-@code{makeinfo}}, as well as ``Easy Customization Interface,'' ``Examining
-and Setting Variables,'' and ``Init File'' in @cite{The XEmacs
-Manual}.
+For more information, see @ref{@t{makeinfo} Options}, as well as
+``Easy Customization Interface,'' ``Examining and Setting Variables,''
+and ``Init File'' in @cite{XEmacs User's Manual}.
@end iftex
@ifnottex
For more information, see@*
@ref{Easy Customization, , Easy Customization Interface, xemacs, XEmacs User's Manual},@*
@ref{Examining, , Examining and Setting Variables, xemacs, XEmacs User's Manual},@*
@ref{Init File, , , xemacs, XEmacs User's Manual}, and@*
-@ref{makeinfo options, , Options for @code{makeinfo}}.
+@ref{@t{makeinfo} Options}.
@end ifnottex
-@node texinfo-format commands
+
+@node @t{texinfo-format} commands
@subsection The @code{texinfo-format@dots{}} Commands
+@c anchor{texinfo-format commands}@c prev name
+
In XEmacs in Texinfo mode, you can format part or all of a Texinfo
file with the @code{texinfo-format-region} command. This formats the
current region and displays the formatted text in a temporary buffer
-called @samp{*Info Region*}.@refill
+called @samp{*Info Region*}.
Similarly, you can format a buffer with the
@code{texinfo-format-buffer} command. This command creates a new
buffer and generates the Info file in it. Typing @kbd{C-x C-s} will
save the Info file under the name specified by the
@code{@@setfilename} line which must be near the beginning of the
-Texinfo file.@refill
+Texinfo file.
@table @kbd
@item C-c C-e C-r
@@ -16009,11 +18871,11 @@
commands provide you with some error checking, and other functions can
provide you with further help in finding formatting errors. These
procedures are described in an appendix; see @ref{Catching Mistakes}.
-However, the @code{makeinfo} program is often faster and
-provides better error checking (@pxref{makeinfo in XEmacs}).@refill
+However, the @code{makeinfo} program provides better error checking
+(@pxref{@t{makeinfo} in XEmacs}).
+
@node Batch Formatting
-@comment node-name, next, previous, up
@subsection Batch Formatting
@cindex Batch formatting for Info
@cindex Info batch formatting
@@ -16032,29 +18894,28 @@
@noindent
XEmacs processes all the files listed on the command line, even if an
-error occurs while attempting to format some of them.@refill
+error occurs while attempting to format some of them.
Run @code{batch-texinfo-format} only with XEmacs in Batch mode as shown;
-it is not interactive. It kills the Batch mode XEmacs on completion.@refill
+it is not interactive. It kills the Batch mode XEmacs on completion.
@code{batch-texinfo-format} is convenient if you lack @code{makeinfo}
and want to format several Texinfo files at once. When you use Batch
mode, you create a new XEmacs process. This frees your current XEmacs, so
you can continue working in it. (When you run
@code{texinfo-format-region} or @code{texinfo-format-buffer}, you cannot
-use that XEmacs for anything else until the command finishes.)@refill
+use that XEmacs for anything else until the command finishes.)
@node Tag and Split Files
-@comment node-name, next, previous, up
@subsection Tag Files and Split Files
@cindex Making a tag table automatically
@cindex Tag table, making automatically
If a Texinfo file has more than 30,000 bytes,
@code{texinfo-format-buffer} automatically creates a tag table
-for its Info file; @code{makeinfo} always creates a tag table. With
+for its Info file; @code{makeinfo} always creates a tag table. With
a @dfn{tag table}, Info can jump to new nodes more quickly than it can
-otherwise.@refill
+otherwise.
@cindex Indirect subfiles
In addition, if the Texinfo file contains more than about 300,000
@@ -16069,20 +18930,20 @@
a way to create a single, large printed manual out of the smaller Info
files. @xref{Include Files}, for more information. Include files are
still used for very large documents, such as @cite{The XEmacs Lisp
-Reference Manual}, in which each chapter is a separate file.)@refill
+Reference Manual}, in which each chapter is a separate file.)
When a file is split, Info itself makes use of a shortened version of
the original file that contains just the tag table and references to
the files that were split off. The split-off files are called
-@dfn{indirect} files.@refill
+@dfn{indirect} files.
The split-off files have names that are created by appending @w{@samp{-1}},
@w{@samp{-2}}, @w{@samp{-3}} and so on to the file name specified by the
@code{@@setfilename} command. The shortened version of the original file
-continues to have the name specified by @code{@@setfilename}.(a)refill
+continues to have the name specified by @code{@@setfilename}.
At one stage in writing this document, for example, the Info file was saved
-as the file @file{test-texinfo} and that file looked like this:@refill
+as the file @file{test-texinfo} and that file looked like this:
@example
@group
@@ -16115,14 +18976,14 @@
the split-off, indirect files, @file{test-texinfo-1},
@file{test-texinfo-2}, and @file{test-texinfo-3}, is listed in this file
after the line that says @samp{Indirect:}. The tag table is listed after
-the line that says @samp{Tag table:}. @refill
+the line that says @samp{Tag table:}.
In the list of indirect files, the number following the file name
-records the cumulative number of bytes in the preceding indirect files,
-not counting the file list itself, the tag table, or the permissions
-text in each file. In the tag table, the number following the node name
-records the location of the beginning of the node, in bytes from the
-beginning of the (unsplit) output.
+records the cumulative number of bytes in the preceding indirect
+files, not counting the file list itself, the tag table, or any
+permissions text in the first file. In the tag table, the number
+following the node name records the location of the beginning of the
+node, in bytes from the beginning of the (unsplit) output.
If you are using @code{texinfo-format-buffer} to create Info files,
you may want to run the @code{Info-validate} command. (The
@@ -16130,7 +18991,8 @@
need @code{Info-validate}.) However, you cannot run the @kbd{M-x
Info-validate} node-checking command on indirect files. For
information on how to prevent files from being split and how to
-validate the structure of the nodes, see @ref{Using Info-validate}.
+validate the structure of the nodes, see @ref{Using
+@t{Info-validate}}.
@node Installing an Info File
@@ -16139,9 +19001,10 @@
@cindex Info file installation
@cindex @file{dir} directory for Info installation
-Info files are usually kept in the @file{info} directory. You can read
-Info files using the standalone Info program or the Info reader built
-into XEmacs. (@inforef{Top, info, info}, for an introduction to Info.)
+Info files are usually kept in the @file{info} directory. You can
+read Info files using the standalone Info program or the Info reader
+built into XEmacs. (@xref{Top,,, info, Info}, for an introduction to
+Info.)
@menu
* Directory File:: The top level menu for all Info files.
@@ -16150,7 +19013,7 @@
located in other directories.
* Installing Dir Entries:: How to specify what menu entry to add
to the Info directory.
-* Invoking install-info:: @code{install-info} options.
+* Invoking @t{install-info}:: @code{install-info} options.
@end menu
@@ -16165,17 +19028,17 @@
The @file{dir} file is itself an Info file. It contains the top level
menu for all the Info files in the system. The menu looks like
-this:@refill
+this:
@example
@group
* Menu:
* Info: (info). Documentation browsing system.
* XEmacs: (xemacs). The extensible, self-documenting
- text editor.
+ text editor.
* Texinfo: (texinfo). With one source file, make
- either a printed manual using
- @@TeX@{@} or an Info file.
+ either a printed manual using
+ @@TeX@{@} or an Info file.
@dots{}
@end group
@end example
@@ -16184,23 +19047,23 @@
that is named in parentheses. (The menu entry does not need to
specify the `Top' node, since Info goes to the `Top' node if no node
name is mentioned. @xref{Other Info Files, , Nodes in Other Info
-Files}.)@refill
+Files}.)
Thus, the @samp{Info} entry points to the `Top' node of the
@file{info} file and the @samp{XEmacs} entry points to the `Top' node
-of the @file{xemacs} file.@refill
+of the @file{xemacs} file.
In each of the Info files, the `Up' pointer of the `Top' node refers
back to the @code{dir} file. For example, the line for the `Top'
-node of the XEmacs manual looks like this in Info:@refill
+node of the Emacs manual looks like this in Info:
@example
File: xemacs Node: Top, Up: (DIR), Next: Distrib
@end example
@noindent
-In this case, the @file{dir} file name is written in upper case
-letters---it can be written in either upper or lower case. This is not
+In this case, the @file{dir} file name is written in uppercase
+letters---it can be written in either upper- or lowercase. This is not
true in general, it is a special case for @file{dir}.
@@ -16215,7 +19078,7 @@
To add a new Info file to your system, you must write a menu entry to
add to the menu in the @file{dir} file in the @file{info} directory.
For example, if you were adding documentation for GDB, you would write
-the following new entry:@refill
+the following new entry:
@example
* GDB: (gdb). The source-level C debugger.
@@ -16244,13 +19107,19 @@
@cindex @file{dir} files and Info directories
If an Info file is not in the @file{info} directory, there are three
-ways to specify its location:@refill
+ways to specify its location:
@enumerate
@item
Write the pathname in the @file{dir} file as the second part of the menu.
@item
+Specify the Info directory name in the @code{INFOPATH} environment
+variable in your @file{.profile} or @file{.cshrc} initialization file.
+(Only you and others who set this environment variable will be able to
+find Info files whose location is specified this way.)
+
+@item
If you are using XEmacs, list the name of the file in a second @file{dir}
file, in its directory; and then add the name of that directory to the
@code{Info-directory-list} variable in your personal or site
@@ -16260,18 +19129,12 @@
must be named @file{dir}). XEmacs merges the files named @file{dir} from
each of the listed directories. (In XEmacs version 18, you can set the
@code{Info-directory} variable to the name of only one
-directory.)@refill
-
-@item
-Specify the Info directory name in the @code{INFOPATH} environment
-variable in your @file{.profile} or @file{.cshrc} initialization file.
-(Only you and others who set this environment variable will be able to
-find Info files whose location is specified this way.)
+directory.)
@end enumerate
For example, to reach a test file in the @file{/home/bob/info}
directory, you could add an entry like this to the menu in the
-standard @file{dir} file:@refill
+standard @file{dir} file:
@example
* Test: (/home/bob/info/info-test). Bob's own test file.
@@ -16279,54 +19142,35 @@
@noindent
In this case, the absolute file name of the @file{info-test} file is
-written as the second part of the menu entry.@refill
-
-Alternatively, you could write the following in your @file{init.el} file:
-
-@vindex Info-directory-list
-@example
-@group
-(require 'info)
-(setq Info-directory-list
- (cons (expand-file-name "/home/bob/info")
- Info-directory-list))
-@end group
-@end example
-
-This tells XEmacs to merge the system @file{dir} file with the @file{dir}
-file in @file{/home/bob/info}. Thus, Info will list the
-@file{/home/bob/info/info-test} file as a menu entry in the
-@file{/home/bob/info/dir} file. XEmacs does the merging only when
-@kbd{M-x info} is first run, so if you want to set
-@code{Info-directory-list} in an XEmacs session where you've already run
-@code{info}, you must @code{(setq Info-dir-contents nil)} to force XEmacs
-to recompose the @file{dir} file.
+written as the second part of the menu entry.
@vindex INFOPATH
@cindex Environment variable @code{INFOPATH}
-Finally, you can tell Info where to look by setting the @code{INFOPATH}
-environment variable in your shell startup file, such as @file{.cshrc},
-(a)file{.profile} or @file{autoexec.bat}. If you use a Bourne-compatible
-shell such as @code{sh} or @code{bash} for your shell command
-interpreter, you set the @code{INFOPATH} environment variable in the
-(a)file{.profile} initialization file; but if you use @code{csh} or
-@code{tcsh}, you set the variable in the @file{.cshrc} initialization
-file. On MS-DOS/MS-Windows systems, you must set @code{INFOPATH} in
-your @file{autoexec.bat} file or in the Registry. Each type of shell
-uses a different syntax.
+If you don't want to edit the system @file{dir} file, you can tell
+Info where to look by setting the @code{INFOPATH} environment variable
+in your shell startup file. This works with both the XEmacs and
+standalone Info readers.
+
+Specifically, if you use a Bourne-compatible shell such as @code{sh}
+or @code{bash} for your shell command interpreter, you set the
+@code{INFOPATH} environment variable in the @file{.profile}
+initialization file; but if you use @code{csh} or @code{tcsh}, you set
+the variable in the @file{.cshrc} initialization file. On
+MS-DOS/MS-Windows systems, you must set @code{INFOPATH} in your
+(a)file{autoexec.bat} file or in the registry. Each type of shell uses
+a different syntax.
@itemize @bullet
@item
In a @file{.cshrc} file, you could set the @code{INFOPATH}
-variable as follows:@refill
+variable as follows:
@smallexample
setenv INFOPATH .:~/info:/usr/local/xemacs/info
@end smallexample
@item
-In a @file{.profile} file, you would achieve the same effect by
-writing:@refill
+In a @file{.profile} file, you would achieve the same effect by writing:
@smallexample
INFOPATH=.:$HOME/info:/usr/local/xemacs/info
@@ -16335,45 +19179,54 @@
@item
@pindex autoexec.bat
-In a @file{autoexec.bat} file, you write this command@footnote{Note the
+In a @file{autoexec.bat} file, you write this command (note the
use of @samp{;} as the directory separator, and a different syntax for
-using values of other environment variables.}:
+using values of other environment variables):
@smallexample
-set INFOPATH=.;%HOME%/info;c:/usr/local/xemacs/info
+set INFOPATH=.;%HOME%/info;c:/usr/local/Xemacs/info
@end smallexample
@end itemize
@noindent
The @samp{.} indicates the current directory as usual. XEmacs uses the
@code{INFOPATH} environment variable to initialize the value of XEmacs's
-own @code{Info-directory-list} variable. The stand-alone Info reader
+own @code{Info-directory-list} variable. The standalone Info reader
merges any files named @file{dir} in any directory listed in the
@env{INFOPATH} variable into a single menu presented to you in the node
called @samp{(dir)Top}.
@cindex Colon, last in @env{INFOPATH}
-However you set @env{INFOPATH}, if its last character is a
-colon@footnote{On MS-DOS/MS-Windows systems, use semi-colon instead.}, this
-is replaced by the default (compiled-in) path. This gives you a way to
-augment the default path with new directories without having to list all
-the standard places. For example (using @code{sh} syntax):
-
-@example
-INFOPATH=/local/info:
+However you set @env{INFOPATH}, if its last character is a colon (on
+MS-DOS/MS-Windows systems, use a semicolon instead), this is replaced
+by the default (compiled-in) path. This gives you a way to augment
+the default path with new directories without having to list all the
+standard places. For example (using @code{sh} syntax):
+
+@example
+INFOPATH=/home/bob/info:
export INFOPATH
@end example
@noindent
-will search @file{/local/info} first, then the standard directories.
+will search @file{/home/bob/info} first, then the standard directories.
Leading or doubled colons are not treated specially.
@cindex @file{dir} file, creating your own
When you create your own @file{dir} file for use with
@code{Info-directory-list} or @env{INFOPATH}, it's easiest to start by
copying an existing @file{dir} file and replace all the text after the
-@samp{* Menu:} with your desired entries. That way, the punctuation and
-special CTRL-_ characters that Info needs will be present.
+@samp{* Menu:} with your desired entries. That way, the punctuation
+and special @kbd{CTRL-_} characters that Info needs will be present.
+
+As one final alternative, which works only with XEmacs Info, you can
+change the @code{Info-directory-list} variable. For example:
+
+@example
+(add-hook 'Info-mode-hook '(lambda ()
+ (add-to-list 'Info-directory-list
+ (expand-file-name "~/info"))))
+@end example
@node Installing Dir Entries
@@ -16431,7 +19284,7 @@
most others. Description for individual utilities best start in
column 48, where possible. For more information about formatting see
the @samp{--calign}, @samp{--align}, and @samp{--max-width} options in
-@ref{Invoking install-info}.
+@ref{Invoking @t{install-info}}.
If you use @code{@@dircategory} more than once in the Texinfo source,
each usage specifies the `current' category; any subsequent
@@ -16466,13 +19319,14 @@
traditional @command{man} system.
-@node Invoking install-info
+@node Invoking @t{install-info}
@subsection Invoking @command{install-info}
+
@pindex install-info
@code{install-info} inserts menu entries from an Info file into the
top-level @file{dir} file in the Info system (see the previous sections
-for an explanation of how the @file{dir} file works). @code{install-info}
+for an explanation of how the @file{dir} file works). @code{install-info}
also removes menu entries from the @file{dir} file. It's most often
run as part of software installation, or when constructing a @file{dir} file
for all manuals on a system. Synopsis:
@@ -16491,70 +19345,75 @@
@code{install-info} creates it if possible (with no entries).
@cindex Compressed dir files, reading
+@cindex XZ-compressed dir files, reading
@cindex Bzipped dir files, reading
+@cindex Lzip-compressed dir files, reading
@cindex LZMA-compressed dir files, reading
@cindex Dir files, compressed
-If any input file is compressed with @code{gzip} (@pxref{Top,,,gzip,
-Gzip}), @code{install-info} automatically uncompresses it
-for reading. And if @var{dir-file} is compressed, @code{install-info}
-also automatically leaves it compressed after writing any changes.
-If @var{dir-file} itself does not exist, @code{install-info} tries to
-open @file{(a)var{dir-file}.gz}, @file{(a)var{dir-file}.bz2}, and
+If any input file is compressed with @code{gzip} (@pxref{Top,,, gzip,
+Gzip}), @code{install-info} automatically uncompresses it for reading.
+And if @var{dir-file} is compressed, @code{install-info} also
+automatically leaves it compressed after writing any changes. If
+@var{dir-file} itself does not exist, @code{install-info} tries to
+open @file{(a)var{dir-file}.gz}, @file{(a)var{dir-file}.xz},
+@file{(a)var{dir-file}.bz2}, @file{(a)var{dir-file}.lz}, and
@file{(a)var{dir-file}.lzma}, in that order.
Options:
@table @code
@item --add-once
+@opindex --add-once@r{, for @command{install-info}}
Specifies that the entry or entries will only be put into a single section.
@item --align=@var{column}
-@opindex --align=@var{column}
-Specifies the column that the second and subsequent lines of menu entry's
-description will be formatted to begin at. The default for this option is
+@opindex --align=@var{column}@r{, for @command{install-info}}
+Specifies the column that the second and subsequent lines of menu entry's
+description will be formatted to begin at. The default for this option is
@samp{35}. It is used in conjunction with the @samp{--max-width} option.
@var{column} starts counting at 1.
@item --append-new-sections
+@opindex --append-new-sections@r{, for @command{install-info}}
Instead of alphabetizing new sections, place them at the end of the DIR file.
@item --calign=@var{column}
-@opindex --calign=@var{column}
-Specifies the column that the first line of menu entry's description will
-be formatted to begin at. The default for this option is @samp{33}. It is
+@opindex --calign=@var{column}@r{, for @command{install-info}}
+Specifies the column that the first line of menu entry's description will
+be formatted to begin at. The default for this option is @samp{33}. It is
used in conjunction with the @samp{--max-width} option.
-When the name of the menu entry exceeds this column, entry's description
+When the name of the menu entry exceeds this column, entry's description
will start on the following line.
@var{column} starts counting at 1.
@item --debug
-@opindex --debug
+@opindex --debug@r{, for @command{install-info}}
Report what is being done.
@item --delete
-@opindex --delete
+@opindex --delete@r{, for @command{install-info}}
Delete the entries in @var{info-file} from @var{dir-file}. The file
name in the entry in @var{dir-file} must be @var{info-file} (except for
an optional @samp{.info} in either one). Don't insert any new entries.
Any empty sections that result from the removal are also removed.
@item --description=@var{text}
-@opindex --description=@var{text}
+@opindex --description=@var{text}@r{, for @command{install-info}}
Specify the explanatory portion of the menu entry. If you don't specify
a description (either via @samp{--entry}, @samp{--item} or this option),
the description is taken from the Info file itself.
@item --dir-file=@var{name}
-@opindex --dir-file=@var{name}
+@opindex --dir-file=@var{name}@r{, for @command{install-info}}
Specify file name of the Info directory file. This is equivalent to
using the @var{dir-file} argument.
@item --dry-run
-@opindex --dry-run
+@opindex --dry-run@r{, for @command{install-info}}
Same as @samp{--test}.
@item --entry=@var{text}
-@opindex --entry=@var{text}
+@opindex --entry=@var{text}@r{, for @command{install-info}}
Insert @var{text} as an Info directory entry; @var{text} should have the
form of an Info menu item line plus zero or more extra lines starting
with whitespace. If you specify more than one entry, they are all
@@ -16562,49 +19421,49 @@
information in the Info file itself.
@item --help
-@opindex --help
+@opindex --help@r{, for @command{texindex}}
Display a usage message with basic usage and all available options,
then exit successfully.
@item --info-file=@var{file}
-@opindex --info-file=@var{file}
+@opindex --info-file=@var{file}@r{, for @command{install-info}}
Specify Info file to install in the directory. This is
equivalent to using the @var{info-file} argument.
@item --info-dir=@var{dir}
-@opindex --info-dir=@var{dir}
+@opindex --info-dir=@var{dir}@r{, for @command{install-info}}
Specify the directory where the directory file @file{dir} resides.
Equivalent to @samp{--dir-file=@var{dir}/dir}.
@item --infodir=@var{dir}
-@opindex --infodir=@var{dir}
+@opindex --infodir=@var{dir}@r{, for @command{install-info}}
Same as @samp{--info-dir}.
@item --item=@var{text}
-@opindex --item=@var{text}
+@opindex --item=@var{text}@r{, for @command{install-info}}
Same as @samp{--entry=@var{text}}. An Info directory entry is actually
a menu item.
@item --keep-old
-@opindex --keep-old
-Do not replace pre-existing menu entries. When @samp{--remove} is specified,
+@opindex --keep-old@r{, for @command{install-info}}
+Do not replace pre-existing menu entries. When @samp{--remove} is specified,
this option means that empty sections are not removed.
@item --max-width=@var{column}
-@opindex --max-width=@var{column}
+@opindex --max-width=@var{column}@r{, for @command{install-info}}
Specifies the column that the menu entry's description will be word-wrapped
at. @var{column} starts counting at 1.
@item --maxwidth=@var{column}
-@opindex --maxwidth=@var{column}
+@opindex --maxwidth=@var{column}@r{, for @command{install-info}}
Same as @samp{--max-width}.
@item --menuentry=@var{text}
-@opindex --menuentry=@var{text}
+@opindex --menuentry=@var{text}@r{, for @command{install-info}}
Same as @samp{--name}.
@item --name=@var{text}
-@opindex --name=@var{text}
+@opindex --name=@var{text}@r{, for @command{install-info}}
Specify the name portion of the menu entry. If the @var{text} does
not start with an asterisk @samp{*}, it is presumed to be the text
after the @samp{*} and before the parentheses that specify the Info
@@ -16616,27 +19475,27 @@
of the Info file is used.
@item --no-indent
-@opindex --no-indent
+@opindex --no-indent@r{, for @command{install-info}}
Suppress formatting of new entries into the @file{dir} file.
@item --quiet
-@opindex --quiet
@itemx --silent
-@opindex --silent
+@opindex --quiet@r{, for @command{install-info}}
+@opindex --silent@r{, for @command{install-info}}
Suppress warnings, etc., for silent operation.
@item --remove
-@opindex --remove
+@opindex --remove@r{, for @command{install-info}}
Same as @samp{--delete}.
@item --remove-exactly
-@opindex --remove-exactly
+@opindex --remove-exactly@r{, for @command{install-info}}
Also like @samp{--delete}, but only entries if the Info file name
matches exactly; @code{.info} and/or @code{.gz} suffixes are
@emph{not} ignored.
@item --section=@var{sec}
-@opindex --section=@var{sec}
+@opindex --section=@var{sec}@r{, for @command{install-info}}
Put this file's entries in section @var{sec} of the directory. If you
specify more than one section, all the entries are added in each of the
sections. If you don't specify any sections, they are determined from
@@ -16644,41 +19503,43 @@
a section, the menu entries are put into the Miscellaneous section.
@item --section @var{regex} @var{sec}
-@opindex --section @var{regex} @var{sec}
+@opindex --section @var{regex} @var{sec}@r{, for @command{install-info}}
Same as @samp{--regex=@var{regex} --section=@var{sec} --add-once}.
-@code{install-info} tries to detect when this alternate syntax is used,
-but does not always guess correctly. Here is the heuristic that
+@code{install-info} tries to detect when this alternate syntax is used,
+but does not always guess correctly. Here is the heuristic that
@code{install-info} uses:
@enumerate
@item
If the second argument to @code{--section} starts with a hyphen, the
original syntax is presumed.
+
@item
If the second argument to @code{--section} is a file that can be
opened, the original syntax is presumed.
+
@item
Otherwise the alternate syntax is used.
@end enumerate
-When heuristic fails because your section title starts with a hyphen, or it
-happens to be a filename that can be opened, the syntax should be changed
-to @samp{--regex=@var{regex} --section=@var{sec} --add-once}.
-
+When the heuristic fails because your section title starts with a
+hyphen, or it happens to be a filename that can be opened, the syntax
+should be changed to @samp{--regex=@var{regex} --section=@var{sec}
+--add-once}.
@item --regex=@var{regex}
-@opindex --regex=@var{regex}
+@opindex --regex=@var{regex}@r{, for @command{install-info}}
Put this file's entries into any section that matches @var{regex}. If
more than one section matches, all of the entries are added in each of the
-sections. Specify @var{regex} using basic regular expression syntax, more
+sections. Specify @var{regex} using basic regular expression syntax, more
or less as used with @command{grep}, for example.
@item --test
-@opindex --test
+@opindex --test@r{, for @command{install-info}}
Suppress updating of the directory file.
@item --version
-@opindex --version
+@opindex --version@r{, for @command{install-info}}
@cindex Version number, for install-info
Display version information and exit successfully.
@@ -16687,22 +19548,27 @@
@node Generating HTML
@chapter Generating HTML
-@cindex HTML output
+
+@cindex Generating HTML
+@cindex Outputting HTML
@command{makeinfo} generates Info output by default, but given the
@option{--html} option, it will generate HTML, for web browsers and
other programs. This chapter gives some details on such HTML output.
-
-@command{makeinfo} can also write in XML and Docbook format, but we do
-not as yet describe these further. @xref{Output Formats}, for a brief
-overview of all the output formats.
+@command{makeinfo} has many user-definable customization variables
+with which you can influence the HTML output. @xref{Customization
+Variables}.
+
+@command{makeinfo} can also produce output in XML and Docbook formats,
+but we do not as yet describe these in detail. @xref{Output Formats},
+for a brief overview of all the output formats.
@menu
* HTML Translation:: Details of the HTML output.
* HTML Splitting:: How HTML output is split.
* HTML CSS:: Influencing HTML output with Cascading Style Sheets.
-* HTML Xref:: Cross-references in HTML output.
+* HTML Xref:: Cross references in HTML output.
@end menu
@@ -16717,25 +19583,37 @@
@samp{>} and @samp{&} characters which have special significance in
HTML). @xref{Conditional Commands}.
-@opindex --footnote-style@r{, ignored in HTML output}
-The @option{--footnote-style} option is currently ignored for HTML output;
-footnotes are always linked to the end of the output file.
-
@cindex Navigation bar, in HTML output
By default, a navigation bar is inserted at the start of each node,
-analogous to Info output. The @samp{--no-headers} option suppresses
-this if used with @samp{--no-split}. Header @code{<link>} elements in
-split output can support info-like navigation with browsers like Lynx
-and @w{Emacs W3} which implement this HTML(a)tie{}1.0 feature.
+analogous to Info output. If the @samp{--no-headers} option is used,
+the navigation bar is only inserted at the beginning of split files.
+Header @code{<link>} elements in split output can support Info-like
+navigation with browsers like Lynx and @w{XEmacs W3} which implement
+this HTML(a)tie{}1.0 feature.
+
+@cindex Footnote styles, in HTML
+In HTML, when the footnote style is @samp{end}, or if the output is
+not split, footnotes are put at the end of the output. If set to
+@samp{separate}, and the output is split, they are placed in a
+separate file. @xref{Footnote Styles}.
@cindex HTML output, browser compatibility of
-The HTML generated is mostly standard (i.e., HTML(a)tie{}2.0, RFC-1866).
-One exception is that HTML(a)tie{}3.2 tables are generated from the
-@code{@@multitable} command, but tagged to degrade as well as possible
-in browsers without table support. The HTML@tie{}4 @samp{lang}
-attribute on the @samp{<html>} attribute is also used. (Please report
-output from an error-free run of @code{makeinfo} which has browser
-portability problems as a bug.)
+The HTML generated is standard HTML@tie{}4. It also tries to be as
+compatible as possible with earlier standards (e.g., HTML(a)tie{}2.0,
+RFC-1866). Some minor exceptions: 1)@tie{}HTML(a)tie{}3.2 tables are
+generated for the @code{@@multitable} command (@pxref{Multi-column
+Tables}), but they should degrade reasonably in browsers without table
+support; 2)@tie{}The HTML@tie{}4 @samp{lang} attribute on the
+@samp{<html>} attribute is used; 3)@tie{} Entities that are not in the
+HTML(a)tie{}3.2 standard are also used. 4)@tie{} CSS is used
+(@pxref{HTML CSS}). 5)@tie{} A few HTML@tie{}4 elements are used
+(@code{thead}, @code{abbr}, @code{acronym}).
+
+Using @samp{--init-file=html32.pm} produces strict HTML(a)tie{}3.2
+output (@pxref{Invoking @t{texi2any}}).
+
+Please report output from an error-free run of @code{makeinfo} which
+has browser portability problems as a bug (@pxref{Reporting Bugs}).
@node HTML Splitting
@@ -16743,37 +19621,52 @@
@cindex Split HTML output
@cindex HTML output, split
-When splitting output (which is the default), @command{makeinfo}
-writes HTML output into (generally) one output file per Texinfo source
-@code{@@node}.
-
-The output file name is the node name with special characters replaced
-by @samp{-}'s, so it can work as a filename. In the unusual case of
-two different nodes having the same name after this treatment, they
-are written consecutively to the same file, with HTML anchors so each
-can be referred to separately. If @command{makeinfo} is run on a
-system which does not distinguish case in filenames, nodes which are
-the same except for case will also be folded into the same output
-file.
+When splitting output at nodes (which is the default),
+@command{makeinfo} writes HTML output into (basically) one output file
+per Texinfo source @code{@@node}.
+
+Each output file name is the node name with spaces replaced by
+@samp{-}'s and special characters changed to @samp{_} followed by
+their code point in hex (@pxref{HTML Xref}). This is to make it
+portable and easy to use as a filename. In the unusual case of two
+different nodes having the same name after this treatment, they are
+written consecutively to the same file, with HTML anchors so each can
+be referred to independently.
+
+If @command{makeinfo} is run on a system which does not distinguish
+case in file names, nodes which are the same except for case (e.g.,
+@samp{index} and @samp{Index}) will also be folded into the same
+output file with anchors. You can also pretend to be on a case
+insensitive filesystem by setting the customization variable
+@code{CASE_INSENSITIVE_FILENAMES}.
+
+It is also possible to split at chapters or sections with
+@option{--split} (@pxref{Invoking @t{texi2any}}). In that case,
+the file names are constructed after the name of the node associated
+with the relevant sectioning command. Also, unless
+@option{--no-node-files} is specified, a redirection file is output
+for every node in order to more reliably support cross references to
+that manual (@pxref{HTML Xref}).
When splitting, the HTML output files are written into a subdirectory,
with the name chosen as follows:
+
@enumerate
-@item
+@item
@command{makeinfo} first tries the subdirectory with the base name
from @code{@@setfilename} (that is, any extension is removed). For
example, HTML output for @code{@@setfilename gcc.info} would be
-written into a subdirectory named @samp{gcc}.
+written into a subdirectory named @samp{gcc/}.
@item
If that directory cannot be created for any reason, then
@command{makeinfo} tries appending @samp{.html} to the directory name.
For example, output for @code{@@setfilename texinfo} would be written
-to @samp{texinfo.html}.
-
-@item
-If the @samp{(a)var{name}.html} directory can't be
-created either, @code{makeinfo} gives up.
+to @samp{texinfo.html/}.
+
+@item
+If the @samp{(a)var{name}.html} directory can't be created either,
+@code{makeinfo} gives up.
@end enumerate
@@ -16782,7 +19675,9 @@
Monolithic output (@code{--no-split}) is named according to
@code{@@setfilename} (with any @samp{.info} extension is replaced with
-(a)samp{.html}) or @code{--output} (the argument is used literally).
+(a)samp{.html}), @code{--output} (the argument is used literally), or
+based on the input file name as a last resort
+(@pxref{@t{@@setfilename}}).
@node HTML CSS
@@ -16796,7 +19691,7 @@
@uref{http://www.w3.org/Style/CSS/}.
By default, @command{makeinfo} includes a few simple CSS commands to
-better implement the appearance of some of the environments. Here
+better implement the appearance of some Texinfo environments. Here
are two of them, as an example:
@example
@@ -16805,24 +19700,28 @@
@end example
A full explanation of CSS is (far) beyond this manual; please see the
-reference above. In brief, however, this specification tells the web
-browser to use a `smaller' font size for @code{@@smalldisplay} text,
-and to use the `inherited' font (generally a regular roman typeface)
-for both @code{@@smalldisplay} and @code{@@display}. By default, the
-HTML @samp{<pre>} command uses a monospaced font.
+reference above. In brief, however, the above tells the web browser
+to use a `smaller' font size for @code{@@smalldisplay} text, and to
+use the same font as the main document for both @code{@@smalldisplay}
+and @code{@@display}. By default, the HTML @samp{<pre>} command uses
+a monospaced font.
You can influence the CSS in the HTML output with two
@command{makeinfo} options: @option{--css-include=@var{file}} and
@option{--css-ref=@var{url}}.
+@pindex texinfo-bright-colors.css
+@cindex Visualizing Texinfo CSS
The option @option{--css-ref=@var{url}} adds to each output HTML file
-a @samp{<link>} tag referencing a CSS at the given @var{url}. This
-allows using external style sheets.
+a @samp{<link>} tag referencing a CSS at the given @var{url}. This
+allows using external style sheets. You may find the file
+(a)file{texi2html/examples/texinfo-bright-colors.css} useful for
+visualizing the CSS elements in Texinfo output.
The option @option{--css-include=@var{file}} includes the contents
@var{file} in the HTML output, as you might expect. However, the
details are somewhat tricky, as described in the following, to provide
-maximum flexibility.
+maximum flexibility.
@cindex @@import specifications, in CSS files
The CSS file may begin with so-called @samp{@@import} directives,
@@ -16838,7 +19737,7 @@
directive may precede the @samp{@@import}'s. This does not alter
@command{makeinfo}'s behavior, it just copies the @samp{@@charset} if
present.) Comments in CSS files are delimited by @samp{/* ... */}, as
-in C. An @samp{@@import} directive must be in one of these two forms:
+in C@. An @samp{@@import} directive must be in one of these two forms:
@example
@@import url(http://example.org/foo.css);
@@ -16872,7 +19771,6 @@
@item Any @@-directive other than @samp{@@import} and @samp{@@charset}
is treated as a CSS declaration, meaning @command{makeinfo} includes
its default CSS and then the rest of the file.
-
@end itemize
If the CSS file is malformed or erroneous, @command{makeinfo}'s output
@@ -16882,14 +19780,18 @@
output. Comments in the CSS file may or may not be included in the
output.
+In addition to the possibilities offered by CSS, @command{makeinfo}
+has many user-definable customization variables with which you can
+influence the HTML output. @xref{Customization Variables}.
+
@node HTML Xref
-@section HTML Cross-references
-@cindex HTML cross-references
-@cindex Cross-references, in HTML output
-
-Cross-references between Texinfo manuals in HTML format amount, in the
-end, to a standard HTML @code{<a>} link, but the details are
+@section HTML Cross References
+@cindex HTML cross references
+@cindex Cross references, in HTML output
+
+Cross references between Texinfo manuals in HTML format become, in the
+end, a standard HTML @code{<a>} link, but the details are
unfortunately complex. This section describes the algorithm used in
detail, so that Texinfo can cooperate with other programs, such as
@command{texi2html}, by writing mutually compatible HTML files.
@@ -16904,8 +19806,7 @@
for each node. (@xref{HTML Splitting}.)
@cindex Dumas, Patrice
-Acknowledgement: this algorithm was primarily devised by Patrice Dumas
-in 2003--04.
+The algorithm was primarily devised by Patrice Dumas in 2003--04.
@menu
* Link Basics: HTML Xref Link Basics.
@@ -16913,12 +19814,14 @@
* Command Expansion: HTML Xref Command Expansion.
* 8-bit Expansion: HTML Xref 8-bit Character Expansion.
* Mismatch: HTML Xref Mismatch.
+* Configuration: HTML Xref Configuration. htmlxref.cnf.
+* Preserving links: HTML Xref Link Preservation. MANUAL-noderename.cnf.
@end menu
@node HTML Xref Link Basics
-@subsection HTML Cross-reference Link Basics
-@cindex HTML cross-reference link basics
+@subsection HTML Cross Reference Link Basics
+@cindex HTML cross reference link basics
For our purposes, an HTML link consists of four components: a host
name, a directory part, a file part, and a target part. We
@@ -16929,10 +19832,9 @@
@end example
The information to construct a link comes from the node name and
-manual name in the cross-reference command in the Texinfo source
-(@pxref{Cross References}), and from @dfn{external information}, which
-is currently simply hardwired. In the future, it may come from an
-external data file.
+manual name in the cross reference command in the Texinfo source
+(@pxref{Cross References}), and from @dfn{external information}
+(@pxref{HTML Xref Configuration}).
We now consider each part in turn.
@@ -16942,7 +19844,7 @@
The @var{dir} and @var{file} parts are more complicated, and depend on
the relative split/mono nature of both the manual being processed and
-the manual that the cross-reference refers to. The underlying idea is
+the manual that the cross reference refers to. The underlying idea is
that there is one directory for Texinfo manuals in HTML, and a given
@var{manual} is either available as a monolithic file
@file{(a)var{manual}.html}, or a split subdirectory
@@ -16970,15 +19872,19 @@
@end itemize
-One exception: the algorithm for node name expansion prefixes the
-string @samp{g_t} when the node name begins with a non-letter. This
-kludge (due to XHTML rules) is not necessary for filenames, and is
-therefore omitted.
-
-Any directory part in the filename argument of the source
-cross-reference command is ignored. Thus, @code{@@xref@{,,,../foo(a)}}
-and @code{@@xref@{,,,foo@}} both use @samp{foo} as the manual name.
-This is because any such attempted hardwiring of the directory is very
+@vindex BASEFILENAME_LENGTH
+Another rule, that only holds for filenames, is that base filenames
+are truncated to 245 characters, to allow for an extension to be
+appended and still comply with the 255-character limit which is common
+to many filesystems. Although technically this can be changed with
+the @code{BASEFILENAME_LENGTH} customization variable (@pxref{Other
+Customization Variables}), doing so would make cross-manual references
+to such nodes invalid.
+
+Any directory part in the filename argument of the source cross
+reference command is ignored. Thus, @code{@@xref@{,,,../foo(a)}} and
+@code{@@xref@{,,,foo@}} both use @samp{foo} as the manual name. This
+is because any such attempted hardwiring of the directory is very
unlikely to be useful for both Info and HTML output.
Finally, the @var{target} part is always the expanded node name.
@@ -16987,50 +19893,48 @@
option; @command{makeinfo} defaults to split, with the
@option{--no-split} option overriding this.
-Whether the referent manual is split or mono is another bit of the
-external information. For now, @command{makeinfo} simply assumes the
-referent manual is the same as the present manual.
-
-There can be a mismatch between the format of the referent manual that
-the generating software assumes, and the format it's actually present
-in. @xref{HTML Xref Mismatch}.
+Whether the referent manual is split or mono, however, is another bit
+of the external information (@pxref{HTML Xref Configuration}). By
+default, @command{makeinfo} uses the same form of the referent manual
+as the present manual.
+
+Thus, there can be a mismatch between the format of the referent
+manual that the generating software assumes, and the format it's
+actually present in. @xref{HTML Xref Mismatch}.
@node HTML Xref Node Name Expansion
-@subsection HTML Cross-reference Node Name Expansion
-@cindex HTML cross-reference node name expansion
-@cindex node name expansion, in HTML cross-references
-@cindex expansion, of node names in HTML cross-references
-
-As mentioned in the previous section, the key part of the HTML
-cross-reference algorithm is the conversion of node names in the
-Texinfo source into strings suitable for XHTML identifiers and
-filenames. The restrictions are similar for each: plain ASCII
-letters, numbers, and the @samp{-} and @samp{_} characters are all
-that can be used. (Although HTML anchors can contain most characters,
-XHTML is more restrictive.)
-
-Cross-references in Texinfo can actually refer either to nodes or
-anchors (@pxref{anchor}), but anchors are treated identically to nodes
-in this context, so we'll continue to say ``node'' names for
+@subsection HTML Cross Reference Node Name Expansion
+@cindex HTML cross reference node name expansion
+@cindex node name expansion, in HTML cross references
+@cindex expansion, of node names in HTML cross references
+
+As mentioned in the previous section, the key part of the HTML cross
+reference algorithm is the conversion of node names in the Texinfo
+source into strings suitable for XHTML identifiers and filenames. The
+restrictions are similar for each: plain ASCII letters, numbers, and
+the @samp{-} and @samp{_} characters are all that can be used.
+(Although HTML anchors can contain most characters, XHTML is more
+restrictive.)
+
+Cross references in Texinfo can refer either to nodes or anchors
+(@pxref{@t{@@anchor}}). However, anchors are treated identically
+to nodes in this context, so we'll continue to say ``node'' names for
simplicity.
-(@@-commands and 8-bit characters are not presently handled by
-@command{makeinfo} for HTML cross-references. See the next section.)
-
A special exception: the Top node (@pxref{The Top Node}) is always
mapped to the file @file{index.html}, to match web server software.
However, the HTML @emph{target} is @samp{Top}. Thus (in the split case):
@example
-@@xref@{Top, Introduction,, xemacs, XEmacs User's Manual@}.
+@@xref@{Top,,, xemacs, XEmacs User's Manual@}.
@result{} <a href="xemacs/index.html#Top">
@end example
@enumerate
@item
The standard ASCII letters (a-z and A-Z) are not modified. All other
-characters are changed as specified below.
+characters may be changed as specified below.
@item
The standard ASCII numbers (0-9) are not modified except when a number
@@ -17079,53 +19983,46 @@
@end itemize
On case-folding computer systems, nodes differing only by case will be
-mapped to the same file.
-
-In particular, as mentioned above, Top always maps to the file
-(a)file{index.html}. Thus, on a case-folding system, Top and a node
-named `Index' will both be written to @file{index.html}.
-
-Fortunately, the targets serve to distinguish these cases, since HTML
-target names are always case-sensitive, independent of operating
-system.
+mapped to the same file. In particular, as mentioned above, Top
+always maps to the file @file{index.html}. Thus, on a case-folding
+system, Top and a node named `Index' will both be written to
+(a)file{index.html}. Fortunately, the targets serve to distinguish
+these cases, since HTML target names are always case-sensitive,
+independent of operating system.
@node HTML Xref Command Expansion
-@subsection HTML Cross-reference Command Expansion
-@cindex HTML cross-reference command expansion
-
-In standard Texinfo, node names may not contain @@-commands.
-@command{makeinfo} has an option @option{--commands-in-node-names}
-which partially supports it (@pxref{Invoking makeinfo}), but it is not
-robust and not recommended.
-
-Thus, @command{makeinfo} does not fully implement this part of the
-HTML cross-reference algorithm, but it is documented here for the sake
-of completeness.
+@subsection HTML Cross Reference Command Expansion
+@cindex HTML cross reference command expansion
+
+Node names may contain @@-commands (@pxref{Node Line Requirements}).
+This section describes how they are handled.
First, comments are removed.
-Next, any @code{@@value} commands (@pxref{set value}) and macro invocations
-(@pxref{Invoking Macros}) are fully expanded.
+Next, any @code{@@value} commands (@pxref{@t{@@set @@value}}) and
+macro invocations (@pxref{Invoking Macros}) are fully expanded.
Then, for the following commands, the command name and braces are removed,
-the text of the argument is recursively transformed:
+and the text of the argument is recursively transformed:
+
@example
@@asis @@b @@cite @@code @@command @@dfn @@dmn @@dotless
-@@emph @@env @@file @@indicateurl @@kbd @@key
-@@samp @@sc @@slanted @@strong @@t @@var @@w
+@@emph @@env @@file @@i @@indicateurl @@kbd @@key
+@@samp @@sansserif @@sc @@slanted @@strong @@t @@var @@verb @@w
@end example
@noindent For @code{@@sc}, any letters are capitalized.
-The following commands are replaced by constant text, as shown. If
-any of these commands have non-empty arguments, as in
+In addition, the following commands are replaced by constant text, as
+shown below. If any of these commands have non-empty arguments, as in
@code{@@TeX@{bad@}}, it is an error, and the result is unspecified.
-`(space)' means a space character, `(nothing)' means the empty string,
-etc. The notation `U+@var{xxxx}' means Unicode code point @var{xxxx}
-(in hex, as usual). There are further transformations of many of
-these expansions for the final file or target name, such as space
-characters to @samp{-}, etc., according to the other rules.
+In this table, `(space)' means a space character and `(nothing)' means
+the empty string. The notation `U+@var{hhhh}' means Unicode code
+point @var{hhhh} (in hex, as usual). There are further
+transformations of many of these expansions for the final file or
+target name, such as space characters to @samp{-}, etc., according to
+the other rules.
@multitable @columnfractions .3 .5
@item @code{@@(newline)} @tab (space)
@@ -17152,7 +20049,7 @@
@item @code{@@error} @tab @samp{error-->}
@item @code{@@euro} @tab U+20AC
@item @code{@@exclamdown} @tab U+00A1
-@item @code{@@expansion} @tab U+2192
+@item @code{@@expansion} @tab U+21A6
@item @code{@@geq} @tab U+2265
@item @code{@@leq} @tab U+2264
@item @code{@@minus} @tab U+2212
@@ -17168,40 +20065,35 @@
@item @code{@@tie} @tab (space)
@end multitable
-Quotation mark commands are likewise replaced by their Unicode values
-(@pxref{Inserting Quotation Marks}).
-
-An @code{@@acronym} or @code{@@abbr} command is replaced by the first
-argument, followed by the second argument in parentheses, if present.
-@xref{acronym}.
-
-An @code{@@email} command is replaced by the @var{text} argument if
-present, else the address. @xref{email}.
-
-An @code{@@image} command is replaced by the filename (first)
-argument. @xref{Images}.
-
-A @code{@@verb} command is replaced by its transformed argument.
-@xref{verb}.
+Quotation mark @@-commands (@code{@@quotedblright@{@}} and the like),
+are likewise replaced by their Unicode values. Normal quotation
+@emph{characters} (e.g., ASCII ` and ') are not altered.
+@xref{Inserting Quotation Marks}.
+
+Any @code{@@acronym}, @code{@@abbr}, @code{@@email}, and
+@code{@@image} commands are replaced by their first argument. (For
+these commands, all subsequent arguments are optional, and ignored
+here.) @xref{@t{@@acronym}}, and @ref{@t{@@email}}, and @ref{Images}.
Any other command is an error, and the result is unspecified.
@node HTML Xref 8-bit Character Expansion
-@subsection HTML Cross-reference 8-bit Character Expansion
-@cindex HTML cross-reference 8-bit character expansion
-@cindex 8-bit characters, in HTML cross-references
-@cindex Expansion of 8-bit characters in HTML cross-references
-@cindex Transliteration of 8-bit characters in HTML cross-references
+@subsection HTML Cross Reference 8-bit Character Expansion
+@cindex HTML cross reference 8-bit character expansion
+@cindex 8-bit characters, in HTML cross references
+@cindex Expansion of 8-bit characters in HTML cross references
+@cindex Transliteration of 8-bit characters in HTML cross references
Usually, characters other than plain 7-bit ASCII are transformed into
-the corresponding Unicode code point(s) in Normalization Form C, which
-uses precomposed characters where available. (This is the
+the corresponding Unicode code point(s) in Normalization Form@tie{}C,
+which uses precomposed characters where available. (This is the
normalization form recommended by the W3C and other bodies.) This
-holds when that code point is 0xffff or less, as it almost always is.
+holds when that code point is @code{0xffff} or less, as it almost
+always is.
These will then be further transformed by the rules above into the
-string @samp{_@var{xxxx}}, where @var{xxxx} is the code point in hex.
+string @samp{_@var{hhhh}}, where @var{hhhh} is the code point in hex.
For example, combining this rule and the previous section:
@@ -17216,41 +20108,44 @@
character, therefore expands to @samp{B_0306} (B with combining
breve).
-When the Unicode code point is above 0xffff, the transformation is
-@samp{__@var{xxxxxx}}, that is, two leading underscores followed by
+When the Unicode code point is above @code{0xffff}, the transformation
+is @samp{__@var{xxxxxx}}, that is, two leading underscores followed by
six hex digits. Since Unicode has declared that their highest code
-point is 0x10ffff, this is sufficient. (We felt it was better to
-define this extra escape than to always use six hex digits, since the
-first two would nearly always be zeros.)
+point is @code{0x10ffff}, this is sufficient. (We felt it was better
+to define this extra escape than to always use six hex digits, since
+the first two would nearly always be zeros.)
This method works fine if the node name consists mostly of ASCII
characters and contains only few 8-bit ones. If the document is
written in a language whose script is not based on the Latin alphabet
-(such as, e.g. Ukrainian), it will create file names consisting
-entirely of @samp{_@var{xxxx}} notations, which is inconvenient.
-
-To handle such cases, @command{makeinfo} offers
-@option{--transliterate-file-names} command line option. This option
+(for example, Ukrainian), it will create file names consisting
+entirely of @samp{_@var{xxxx}} notations, which is inconvenient and
+all but unreadable.
+
+To handle such cases, @command{makeinfo} offers the
+@option{--transliterate-file-names} command line option. This option
enables @dfn{transliteration} of node names into ASCII characters for
-the purposes of file name creation and referencing. The
-transliteration is based on phonetic principle, which makes the
-produced file names easily readable.
-
-For the definition of Unicode Normalization Form C, see Unicode report
-UAX#15, @uref{http://www.unicode.org/reports/tr15/}. Many related
-documents and implementations are available elsewhere on the web.
+the purposes of file name creation and referencing. The
+transliteration is based on phonetic principles, which makes the
+generated file names more easily understanable.
+
+@cindex Normalization Form C, Unicode
+For the definition of Unicode Normalization Form@tie{}C, see Unicode
+report UAX#15, @uref{http://www.unicode.org/reports/tr15/}. Many
+related documents and implementations are available elsewhere on the
+web.
@node HTML Xref Mismatch
-@subsection HTML Cross-reference Mismatch
-@cindex HTML cross-reference mismatch
-@cindex Mismatched HTML cross-reference source and target
+@subsection HTML Cross Reference Mismatch
+@cindex HTML cross reference mismatch
+@cindex Mismatched HTML cross reference source and target
As mentioned earlier (@pxref{HTML Xref Link Basics}), the generating
-software has to guess whether a given manual being cross-referenced is
-available in split or monolithic form---and, inevitably, it might
-guess wrong. However, it is possible when the referent manual itself
-is generated, it is possible to handle at least some mismatches.
+software may need to guess whether a given manual being cross
+referenced is available in split or monolithic form---and, inevitably,
+it might guess wrong. However, when the @emph{referent} manual is
+generated, it is possible to handle at least some mismatches.
In the case where we assume the referent is split, but it is actually
available in mono, the only recourse would be to generate a
@@ -17285,46 +20180,180 @@
Once again, this is something the software which generated the
@emph{referent} manual has to do in advance, it's not something the
-software generating the actual cross-reference in the present manual
-can control.
-
-Ultimately, we hope to allow for an external configuration file to
-control which manuals are available from where, and how.
-
-
-@ignore
--- not yet --
-
-external information
---------------------
-
-The information for the reference is searched in the file
-`htmlxref.cnf' present in the following directories:
-<srcdir>/.texinfo/, ~/.texinfo/, SYSCONFDIR/texinfo/,
-DATADIR/texinfo/
-The first match should be used.
-
-The file is line-oriented, with the following format:
- <manualname> <whitespace> <keyword> <whitespace> <urlprefix>
-with <keyword> being "mono" or "split". Thus
-texinfo split http://www.gnu.org/software/texinfo/manual/texinfo/html_node/
-texinfo mono http://www.gnu.org/software/texinfo/manual/texinfo/texinfo.html
-
-If the keyword is 'split', that is the target is split, the urlprefix gives
-the directory and host name.
-If the keyword is 'mono', that is the target is mono, the urlprefix gives
-directory, host and file name.
-
-'#' followed by a space begins comments. '#' followed by another character
-cannot begin comments as there are # in urls.
-
-@end ignore
+software generating the cross reference in the present manual can
+control.
+
+
+@node HTML Xref Configuration
+@subsection HTML Cross Reference Configuration: @file{htmlxref.cnf}
+
+@pindex htmlxref.cnf
+@cindex HTML cross reference configuration
+@cindex Cross reference configuration, for HTML
+@cindex Configuration, for HTML cross-manual references
+
+@command{makeinfo} reads a file named @file{htmlxref.cnf} to gather
+information for cross references to other manuals in HTML output. It
+is looked for in the following directories:
+
+@table @file
+@item ./
+(the current directory)
+
+@item ./.texinfo/
+(under the current directory)
+
+@item ~/.texinfo/
+(where @code{~} is the current user's home directory)
+
+@item @var{sysconfdir}/texinfo/
+(where @var{sysconfdir} is the system configuration directory
+specified at compile-time, e.g., @file{/usr/local/etc})
+
+@item @var{datadir}/texinfo/
+(likewise specified at compile time, e.g., @file{/usr/local/share})
+@end table
+
+All files found are used, with earlier entries overriding later ones.
+The Texinfo distribution includes a default file which handles many
+GNU manuals; it is installed in the last of the above directories,
+i.e., @file{(a)var{datadir}/texinfo/htmlxref.cnf}.
+
+The file is line-oriented. Lines consisting only of whitespace are
+ignored. Comments are indicated with a @samp{#} at the beginning of a
+line, optionally preceded by whitespace. Since @samp{#} can occur in
+urls (like almost any character), it does not otherwise start a
+comment.
+
+Each non-blank non-comment line must be either a @dfn{variable
+assignment} or @dfn{manual information}.
+
+A variable assignment line looks like this:
+
+@example
+@var{varname} = @var{varvalue}
+@end example
+
+Whitespace around the @samp{=} is optional and ignored. The
+@var{varname} should consist of letters; case is significant. The
+@var{varvalue} is an arbitrary string, continuing to the end of the
+line. Variables are then referenced with @samp{$@{@var{varname}@}};
+variable references can occur in the @var{varvalue}.
+
+A manual information line looks like this:
+
+@example
+@var{manual} @var{keyword} @var{urlprefix}
+@end example
+
+@noindent
+with @var{manual} the short identifier for a manual, @var{keyword}
+being one of: @code{mono}, @code{node}, @code{section},
+@code{chapter}, and @var{urlprefix} described below. Variable
+references can occur only in the @var{urlprefix}. For example (used
+in the canonical @file{htmlxref.cnf}):
+
+@smallexample
+G = http://www.gnu.org
+GS = $@{G@}/software
+hello mono $@{GS(a)}/hello/manual/hello.html
+hello chapter $@{GS@}/hello/manual/html_chapter/
+hello section $@{GS@}/hello/manual/html_section/
+hello node $@{GS@}/hello/manual/html_node/
+@end smallexample
+
+@cindex monolithic manuals, for HTML cross references
+If the keyword is @code{mono}, @var{urlprefix} gives the host,
+directory, and file name for @var{manual} as one monolithic file.
+
+@cindex split manuals, for HTML cross references
+If the keyword is @code{node}, @code{section}, or @code{chapter},
+@var{urlprefix} gives the host and directory for @var{manual} split
+into nodes, sections, or chapters, respectively.
+
+When available, @command{makeinfo} will use the ``corresponding''
+value for cross references between manuals. That is, when generating
+monolithic output (@option{--no-split}), the @code{mono} url will be
+used, when generating output that is split by node, the @code{node}
+url will be used, etc. However, if a manual is not available in that
+form, anything that is available can be used. Here is the search
+order for each style:
+
+@smallexample
+node @result{} node, section, chapter, mono
+section @result{} section, chapter, node, mono
+chapter @result{} chapter, section, node, mono
+mono @result{} mono, chapter, section, node
+@end smallexample
+
+@opindex --node-files@r{, and HTML cross references}
+These section- and chapter-level cross-manual references can succeed
+only when the target manual was created using @option{--node-files};
+this is the default for split output.
+
+If you have additions or corrections to the @file{htmlxref.cnf}
+distributed with Texinfo, please email @email{bug-texinfo@(a)gnu.org} as
+usual. You can get the latest version from
+@url{http://ftpmirror.gnu.org/@/texinfo/@/htmlxref.cnf}.
+
+
+@node HTML Xref Link Preservation
+@subsection HTML Cross Reference Link Preservation: @var{manual}(a)file{-noderename.cnf}
+
+@pindex noderename.cnf
+@pindex @var{manual}-noderename.cnf
+@cindex HTML cross reference link preservation
+@cindex Preserving HTML links to old nodes
+@cindex Old nodes, preserving links to
+@cindex Renaming nodes, and preserving links
+@cindex Links, preserving to renamed nodes
+@cindex Node renaming, and preserving links
+
+Occasionally changes in a program require removing (or renaming) nodes
+in the manual in order to have the best documentation. Given the
+nature of the web, however, links may exist anywhere to such a removed
+node (renaming appears the same as removal for this purpose), and it's
+not ideal for those links to simply break.
+
+@vindex RENAMED_NODES_FILE
+Therefore, Texinfo provides a way for manual authors to specify old
+node names and the new nodes to which the old names should be
+redirected, via the file @var{manual}(a)file{-noderename.cnf}, where
+@var{manual} is the base name of the manual. For example, the manual
+(a)file{texinfo.texi} would be supplemented by a file
+(a)file{texinfo-noderename}.cnf. (This name can be overridden by
+setting the @file{RENAMED_NODES_FILE} customization variable;
+@pxref{Customization Variables}).
+
+The file is read in pairs of lines, as follows:
+
+@example
+@var{old-node-name}
+@@@@@{@} @var{new-node-name}
+@end example
+
+The usual conversion from Texinfo node names to HTML names is applied;
+see this entire section for details (@pxref{HTML Xref}). The unusual
+@samp{@@@@@{@}} separator is used because it is not a valid Texinfo
+construct, so can't appear in the node names.
+
+The effect is that @command{makeinfo} generates a redirect from
+@var{old-node-name} to @var{new-node-name} when producing HTML output.
+Thus, external links to the old node are preserved.
+
+Lines consisting only of whitespace are ignored. Comments are
+indicated with an @samp{@@c} at the beginning of a line, optionally
+preceded by whitespace.
+
+Another approach to preserving links to deleted or renamed nodes is to
+use anchors (@pxref{@t{@@anchor}}). There is no effective
+difference between the two approaches.
@node Command List
@appendix @@-Command List
@cindex Alphabetical @@-command list
-@cindex List of @@-commands
+@cindex List of @@-commands
@cindex @@-command list
@cindex Reference to @@-commands
@@ -17336,7 +20365,8 @@
given in the section below.
@menu
-* Command Syntax:: General syntax for varieties of @@-commands.
+* Command Syntax:: General syntax for varieties of @@-commands.
+* Command Contexts:: Guidelines for which commands can be used where.
@end menu
@sp 1
@@ -17362,7 +20392,7 @@
Accents}.
@item @@-
-Insert a discretionary hyphenation point. @xref{- and hyphenation}.
+Insert a discretionary hyphenation point. @xref{@t{@@- @@hyphenation}}.
@item @@.
Produce a period that ends a sentence (usually after an
@@ -17385,12 +20415,14 @@
end-of-sentence capital letter). @xref{Ending a Sentence}.
@item @@@@
-Stands for an at sign, @samp{@@}.
-@xref{Atsign Braces Comma, , Inserting @@ and @{@} and @comma{}}.
+@itemx @@atchar@{@}
+Insert an at sign, @samp{@@}. @xref{Inserting an Atsign}.
@item @@\
-Stands for a backslash (@samp{\}) inside @code{@@math}.
-@xref{math,,@code{math}}.
+@itemx @@backslashchar@{@}
+Insert a backslash, @samp{\}; @code{@@backslashchar@{@}} works
+anywhere, while @code{@@\} works only inside @code{@@math}.
+@xref{Inserting a Backslash}, and @ref{Inserting Math}.
@item @@^
@itemx @@`
@@ -17399,12 +20431,12 @@
@xref{Inserting Accents}.
@item @@@{
-Stands for a left brace, @samp{@{}.
-@xref{Atsign Braces Comma, , Inserting @@ and @{@} and @comma{}}.
+@itemx @@lbracechar@{@}
+Insert a left brace, @samp{@{}. @xref{Inserting Braces}.
@item @@@}
-Stands for a right-hand brace, @samp{@}}.(a)*
-@xref{Atsign Braces Comma, , Inserting @@ and @{@} and @comma{}}.
+@itemx @@rbracechar@{@}
+Insert a right brace, @samp{@}}. @xref{Inserting Braces}.
@item @@~
Generate a tilde accent over the next character, as in @~N.
@@ -17416,12 +20448,12 @@
respectively: @AA{}, @aa{}. @xref{Inserting Accents}.
@item @@abbr@{@var{abbreviation}@}
-Indicate a general abbreviation, such as `Comput.'. @xref{abbr,,
-@code{abbr}}.
+Indicate a general abbreviation, such as `Comput.'.
+@xref{@t{@@abbr}}.
@item @@acronym@{@var{acronym}@}
Indicate an acronym in all capital letters, such as `NASA'.
-@xref{acronym,, @code{acronym}}.
+@xref{@t{@@acronym}}.
@item @@AE@{@}
@itemx @@ae@{@}
@@ -17438,35 +20470,38 @@
@item @@alias @var{new}=@var{existing}
Make the command @samp{@@@var{new}} a synonym for the existing command
-@samp{@@@var{existing}}. @xref{alias}.
+@samp{@@@var{existing}}. @xref{@t{@@alias}}.
+
+@item @@allowcodebreaks @var{true-false}
+Control breaking at @samp{-} and @samp{_} in @TeX{}.
+@xref{@t{@@allowcodebreaks}}.
@item @@anchor@{@var{name}@}
-Define @var{name} as the current location for use as a cross-reference
-target. @xref{anchor,, @code{@@anchor}}.
+Define @var{name} as the current location for use as a cross reference
+target. @xref{@t{@@anchor}}.
@item @@appendix @var{title}
Begin an appendix. The title appears in the table of contents. In
-Info, the title is underlined with asterisks. @xref{unnumbered &
-appendix, , The @code{@@unnumbered} and @code{@@appendix} Commands}.
+Info, the title is underlined with asterisks.
+@xref{@t{@@unnumbered @@appendix}}.
@item @@appendixsec @var{title}
@itemx @@appendixsection @var{title}
Begin an appendix section within an appendix. The section title
appears in the table of contents. In Info, the title is underlined
with equal signs. @code{@@appendixsection} is a longer spelling of
-the @code{@@appendixsec} command. @xref{unnumberedsec appendixsec
-heading, , Section Commands}.
+the @code{@@appendixsec} command. @xref{@t{@@unnumberedsec
+@@appendixsec @@heading}}.
@item @@appendixsubsec @var{title}
Begin an appendix subsection. The title appears in the table of
contents. In Info, the title is underlined with hyphens.
-@xref{unnumberedsubsec appendixsubsec subheading, , Subsection
-Commands}.
+@xref{@t{@@unnumberedsubsec @@appendixsubsec @@subheading}}.
@item @@appendixsubsubsec @var{title}
Begin an appendix subsubsection. The title appears in the table of
contents. In Info, the title is underlined with periods.
-@xref{subsubsection,, The `subsub' Commands}.
+@xref{@t{@@subsubsection}}.
@item @@arrow@{@}
Generate a right arrow glyph: @samp{@arrow{}}. Used by default
@@ -17475,102 +20510,96 @@
@item @@asis
Used following @code{@@table}, @code{@@ftable}, and @code{@@vtable} to
print the table's first column without highlighting (``as is'').
-@xref{Two-column Tables}.
+@xref{@t{@@asis}}.
@item @@author @var{author}
-Typeset @var{author} flushleft and underline it. @xref{title
-subtitle author, , The @code{@@title} and @code{@@author}
-Commands}.@refill
+Typeset @var{author} flushleft and underline it. @xref{@t{@@title
+@@subtitle @@author}}.
@item @@b@{@var{text}@}
Set @var{text} in a @b{bold} font. No effect in Info. @xref{Fonts}.
-@ignore
-@item @@br
-Force a paragraph break. If used within a line, follow @code{@@br}
-with braces. @xref{br, , @code{@@br}}.(a)refill
-@end ignore
-
@item @@bullet@{@}
Generate a large round dot, @bullet{} (@samp{*} in Info). Often used
-with @code{@@table}. @xref{bullet, , @code{@@bullet}}.
+with @code{@@table}. @xref{@t{@@bullet}}.
@item @@bye
-Stop formatting a file. The formatters do not see anything in the
+Stop formatting a file. The formatters do not see anything in the
input file following @code{@@bye}. @xref{Ending a File}.
@item @@c @var{comment}
Begin a comment in Texinfo. The rest of the line does not appear in
-any output. A synonym for
-@code{@@comment}. @xref{Comments}.
+any output. A synonym for @code{@@comment}. @kbd{DEL} also
+starts a comment. @xref{Comments}.
@item @@caption
-Define the full caption for a @code{@@float}. @xref{caption shortcaption}.
+Define the full caption for an @code{@@float}. @xref{@t{@@caption
+@@shortcaption}}.
@item @@cartouche
Highlight an example or quotation by drawing a box with rounded
corners around it. Pair with @code{@@end cartouche}. No effect in
-Info. @xref{cartouche, , Drawing Cartouches Around Examples}.)@refill
+Info. @xref{@t{@@cartouche}}.
@item @@center @var{line-of-text}
Center the line of text following the command.
-@xref{titlefont center sp, , @code{@@center}}.(a)refill
+@xref{@t{@@titlefont @@center @@sp}}.
@item @@centerchap @var{line-of-text}
-Like @code{@@chapter}, but centers the chapter title. @xref{chapter,,
-@code{@@chapter}}.
+Like @code{@@chapter}, but centers the chapter title. @xref{@t{@@chapter}}.
@item @@chapheading @var{title}
Print an unnumbered chapter-like heading, but omit from the table of
contents. In Info, the title is underlined with asterisks.
-@xref{majorheading & chapheading, , @code{@@majorheading} and
-@code{@@chapheading}}.
+@xref{@t{@@majorheading @@chapheading}}.
@item @@chapter @var{title}
Begin a numbered chapter. The chapter title appears in the table of
contents. In Info, the title is underlined with asterisks.
-@xref{chapter, , @code{@@chapter}}.
+@xref{@t{@@chapter}}.
@item @@cindex @var{entry}
Add @var{entry} to the index of concepts. @xref{Index Entries, ,
-Defining the Entries of an Index}.@refill
+Defining the Entries of an Index}.
@item @@cite@{@var{reference}@}
Highlight the name of a book or other reference that has no companion
-Info file. @xref{cite, , @code{@@cite}}.
-
-@item @@click@{@}
-Represent a single ``click'' in a GUI. Used within
-@code{@@clicksequence}. @xref{Click Sequences}.
-
-@item @@clicksequence@{@var{action} @@click@{@} @var{action}@}
-Represent a sequence of clicks in a GUI. @xref{Click Sequences}.
-
-@item @@clickstyle @@@var{cmd}
-Execute @@@var{cmd} for each @code{@@click}; the default is
-@code{@@arrow}. The usual following empty braces on @@@var{cmd} are
-omitted. @xref{Click Sequences}.
+Info file. @xref{@t{@@cite}}.
@item @@clear @var{flag}
Unset @var{flag}, preventing the Texinfo formatting commands from
formatting text between subsequent pairs of @code{@@ifset @var{flag}}
and @code{@@end ifset} commands, and preventing
@code{@@value@{@var{flag}@}} from expanding to the value to which
-@var{flag} is set.
-@xref{set clear value, , @code{@@set} @code{@@clear} @code{@@value}}.(a)refill
+@var{flag} is set. @xref{@t{@@set @@clear @@value}}.
+
+@item @@click@{@}
+Represent a single ``click'' in a GUI@. Used within
+@code{@@clicksequence}. @xref{Click Sequences}.
+
+@item @@clicksequence@{@var{action} @@click@{@} @var{action}@}
+Represent a sequence of clicks in a GUI@. @xref{Click Sequences}.
+
+@item @@clickstyle @@@var{cmd}
+Execute @@@var{cmd} for each @code{@@click}; the default is
+@code{@@arrow}. The usual following empty braces on @@@var{cmd} are
+omitted. @xref{Click Sequences}.
@item @@code@{@var{sample-code}@}
Indicate an expression, a syntactically complete token of a program,
-or a program name. Unquoted in Info output. @xref{code, ,
-@code{@@code}}.
+or a program name. Unquoted in Info output. @xref{@t{@@code}}.
+
+@item @@codequotebacktick @var{on-off}
+@itemx @@codequoteundirected @var{on-off}
+Control output of @code{`} and @code{'} in code examples.
+@xref{Inserting Quote Characters}.
@item @@comma@{@}
Insert a comma `,' character; only needed when a literal comma would
be taken as an argument separator. @xref{Inserting a Comma}.
@item @@command@{@var{command-name}@}
-Indicate a command name, such as @command{ls}.
-@xref{command,, @code{@@command}}.
+Indicate a command name, such as @command{ls}. @xref{@t{@@command}}.
@item @@comment @var{comment}
Begin a comment in Texinfo. The rest of the line does not appear in
@@ -17579,18 +20608,15 @@
@item @@contents
Print a complete table of contents. Has no effect in Info, which uses
-menus instead. @xref{Contents, , Generating a Table of
-Contents}.@refill
+menus instead. @xref{Contents, , Generating a Table of Contents}.
+
+@item @@copying
+Specify copyright holders and copying conditions for the document Pair
+with @code{@@end cartouche}. @xref{@t{@@copying}}.
@item @@copyright@{@}
-Generate the copyright symbol @copyright{}. @xref{copyright symbol,,
-@code{@@copyright@{@}}}.
-
-@ignore
-@item @@ctrl@{@var{ctrl-char}@}
-Describe an ASCII control character. Insert actual control character
-into Info file. @xref{ctrl, , @code{@@ctrl}}.
-@end ignore
+Generate the copyright symbol @copyright{}.
+@xref{@t{@@copyright}}.
@item @@defcodeindex @var{index-name}
Define a new index and its indexing command. Print entries in an
@@ -17601,42 +20627,41 @@
Format a description for a variable associated with a class in
object-oriented programming. Takes three arguments: the category of
thing being defined, the class to which it belongs, and its name.
-@xref{Definition Commands}, and @ref{deffnx,, Def Cmds in Detail}.
+@xref{Definition Commands}.
@item @@deffn @var{category} @var{name} @var{arguments}@dots{}
@itemx @@deffnx @var{category} @var{name} @var{arguments}@dots{}
Format a description for a function, interactive command, or similar
entity that may take arguments. @code{@@deffn} takes as arguments the
category of entity being described, the name of this particular
-entity, and its arguments, if any. @xref{Definition Commands}.@refill
+entity, and its arguments, if any. @xref{Definition Commands}.
@item @@defindex @var{index-name}
Define a new index and its indexing command. Print entries in a roman
-font. @xref{New Indices, , Defining New Indices}.@refill
+font. @xref{New Indices, , Defining New Indices}.
@item @@definfoenclose @var{newcmd}, @var{before}, @var{after}
Must be used within @code{@@ifinfo}; create a new command
@code{@@@var{newcmd}} for Info that marks text by enclosing it in
-strings that precede and follow the text. @xref{definfoenclose}.
+strings that precede and follow the text.
+@xref{@t{@@definfoenclose}}.
@item @@defivar @var{class} @var{instance-variable-name}
@itemx @@defivarx @var{class} @var{instance-variable-name}
Format a description for an instance variable in object-oriented
programming. The command is equivalent to @samp{@@defcv @{Instance
-Variable@} @dots{}}. @xref{Definition Commands}, and @ref{deffnx,,
-Def Cmds in Detail}.
+Variable@} @dots{}}. @xref{Definition Commands}.
@item @@defmac @var{macroname} @var{arguments}@dots{}
@itemx @@defmacx @var{macroname} @var{arguments}@dots{}
Format a description for a macro; equivalent to @samp{@@deffn Macro
-@dots{}}. @xref{Definition Commands}, and @ref{deffnx,, Def Cmds in
-Detail}.
+@dots{}}. @xref{Definition Commands}.
@item @@defmethod @var{class} @var{method-name} @var{arguments}@dots{}
@itemx @@defmethodx @var{class} @var{method-name} @var{arguments}@dots{}
Format a description for a method in object-oriented programming;
equivalent to @samp{@@defop Method @dots{}}. @xref{Definition
-Commands}, and @ref{deffnx,, Def Cmds in Detail}.
+Commands}.
@item @@defop @var{category} @var{class} @var{name} @var{arguments}@dots{}
@itemx @@defopx @var{category} @var{class} @var{name} @var{arguments}@dots{}
@@ -17649,14 +20674,12 @@
@item @@defopt @var{option-name}
@itemx @@defoptx @var{option-name}
Format a description for a user option; equivalent to @samp{@@defvr
-@{User Option@} @dots{}}. @xref{Definition Commands}, and
-@ref{deffnx,, Def Cmds in Detail}.
+@{User Option@} @dots{}}. @xref{Definition Commands}.
@item @@defspec @var{special-form-name} @var{arguments}@dots{}
@itemx @@defspecx @var{special-form-name} @var{arguments}@dots{}
Format a description for a special form; equivalent to @samp{@@deffn
-@{Special Form@} @dots{}}. @xref{Definition Commands}, and
-@ref{deffnx,, Def Cmds in Detail}.
+@{Special Form@} @dots{}}. @xref{Definition Commands}.
@item @@deftp @var{category} @var{name-of-type} @var{attributes}@dots{}
@itemx @@deftpx @var{category} @var{name-of-type} @var{attributes}@dots{}
@@ -17675,14 +20698,18 @@
Format a description for a function or similar entity that may take
arguments and that is typed. @code{@@deftypefn} takes as arguments the
category of entity being described, the type, the name of the
-entity, and its arguments, if any. @xref{Definition Commands}, and
-@ref{deffnx,, Def Cmds in Detail}.
+entity, and its arguments, if any. @xref{Definition Commands}.
+
+@item @@deftypefnnewline @var{on-off}
+Specifies whether return types for @code{@@deftypefn} and similar are
+printed on lines by themselves; default is off. @xref{Typed
+Functions,, Functions in Typed Languages}.
@item @@deftypefun @var{data-type} @var{function-name} @var{arguments}@dots{}
@itemx @@deftypefunx @var{data-type} @var{function-name} @var{arguments}@dots{}
Format a description for a function in a typed language.
The command is equivalent to @samp{@@deftypefn Function @dots{}}.
-@xref{Definition Commands}, and @ref{deffnx,, Def Cmds in Detail}.
+@xref{Definition Commands}.
@item @@deftypeivar @var{class} @var{data-type} @var{variable-name}
@itemx @@deftypeivarx @var{class} @var{data-type} @var{variable-name}
@@ -17692,7 +20719,7 @@
@item @@deftypemethod @var{class} @var{data-type} @var{method-name} @var{arguments}@dots{}
@itemx @@deftypemethodx @var{class} @var{data-type} @var{method-name} @var{arguments}@dots{}
Format a description for a typed method in object-oriented programming.
-@xref{Definition Commands}, and @ref{deffnx,, Def Cmds in Detail}.
+@xref{Definition Commands}.
@item @@deftypeop @var{category} @var{class} @var{data-type} @var{name} @var{arguments}@dots{}
@itemx @@deftypeopx @var{category} @var{class} @var{data-type} @var{name} @var{arguments}@dots{}
@@ -17703,42 +20730,42 @@
@itemx @@deftypevarx @var{data-type} @var{variable-name}
Format a description for a variable in a typed language. The command is
equivalent to @samp{@@deftypevr Variable @dots{}}. @xref{Definition
-Commands}, and @ref{deffnx,, Def Cmds in Detail}.
+Commands}.
@item @@deftypevr @var{category} @var{data-type} @var{name}
@itemx @@deftypevrx @var{category} @var{data-type} @var{name}
Format a description for something like a variable in a typed
language---an entity that records a value. Takes as arguments the
category of entity being described, the type, and the name of the
-entity. @xref{Definition Commands}, and @ref{deffnx,, Def Cmds in
-Detail}.
+entity. @xref{Definition Commands}.
@item @@defun @var{function-name} @var{arguments}@dots{}
@itemx @@defunx @var{function-name} @var{arguments}@dots{}
Format a description for a function; equivalent to
-@samp{@@deffn Function @dots{}}. @xref{Definition Commands}, and
-@ref{deffnx,, Def Cmds in Detail}.
+@samp{@@deffn Function @dots{}}. @xref{Definition Commands}.
@item @@defvar @var{variable-name}
@itemx @@defvarx @var{variable-name}
Format a description for a variable; equivalent to @samp{@@defvr
-Variable @dots{}}. @xref{Definition Commands}, and @ref{deffnx,, Def
-Cmds in Detail}.
+Variable @dots{}}. @xref{Definition Commands}.
@item @@defvr @var{category} @var{name}
@itemx @@defvrx @var{category} @var{name}
Format a description for any kind of variable. @code{@@defvr} takes
as arguments the category of the entity and the name of the entity.
-@xref{Definition Commands},
-and @ref{deffnx,, Def Cmds in Detail}.
+@xref{Definition Commands}.
@item @@detailmenu
Mark the (optional) detailed node listing in a master menu.
@xref{Master Menu Parts}.
@item @@dfn@{@var{term}@}
-Indicate the introductory or defining use of a term. @xref{dfn, ,
-@code{@@dfn}}.
+Indicate the introductory or defining use of a term. @xref{@t{@@dfn}}.
+
+@item @@DH@{@}
+@itemx @@dh@{@}
+Generate the uppercase and lowercase Icelandic letter eth, respectively:
+@DH{}, @dh{}. @xref{Inserting Accents}.
@item @@dircategory @var{dirpart}
Specify a part of the Info directory menu where this file's entry should
@@ -17751,12 +20778,12 @@
@item @@display
Begin a kind of example. Like @code{@@example} (indent text, do not
fill), but do not select a new font. Pair with @code{@@end display}.
-@xref{display, , @code{@@display}}.
+@xref{@t{@@display}}.
@item @@dmn@{@var{dimension}@}
Format a unit of measure, as in 12@dmn{pt}. Causes @TeX{} to insert a
thin space before @var{dimension}. No effect in Info.
-@xref{dmn, , @code{@@dmn}}.
+@xref{@t{@@dmn}}.
@item @@docbook
Enter Docbook completely. Pair with @code{@@end docbook}. @xref{Raw
@@ -17764,28 +20791,30 @@
@item @@documentdescription
Set the document description text, included in the HTML output. Pair
-with @code{@@end documentdescription}. @xref{documentdescription,,
-@code{@@documentdescription}}.
+with @code{@@end documentdescription}. @xref{@t{@@documentdescription}}.
@item @@documentencoding @var{enc}
Declare the input encoding to be @var{enc}.
-@xref{documentencoding,, @code{@@documentencoding}}.
+@xref{@t{@@documentencoding}}.
@item @@documentlanguage @var{CC}
Declare the document language as the two-character ISO-639 abbreviation
-@var{CC}. @xref{documentlanguage,, @code{@@documentlanguage}}.
+@var{CC}. @xref{@t{@@documentlanguage}}.
@item @@dotaccent@{@var{c}@}
Generate a dot accent over the character @var{c}, as in @dotaccent{o}.
@xref{Inserting Accents}.
+@item @@dotless@{@var{i-or-j}@}
+Generate dotless i (`@dotless{i}') and dotless j (`@dotless{j}').
+@xref{Inserting Accents}.
+
@item @@dots@{@}
Generate an ellipsis, @samp{@dots{}}.
-@xref{dots, , @code{@@dots}}.(a)refill
+@xref{@t{@@dots}}.
@item @@email@{@var{address}[, @var{displayed-text}]@}
-Indicate an electronic mail address.
-@xref{email, , @code{@@email}}.
+Indicate an electronic mail address. @xref{@t{@@email}}.
@item @@emph@{@var{text}@}
Emphasize @var{text}, by using @emph{italics} where possible, and
@@ -17795,37 +20824,40 @@
Ends @var{environment}, as in @samp{@@end example}. @xref{Formatting
Commands,,@@-commands}.
-@item @@env@{@var{environment-variable}@}
-Indicate an environment variable name, such as @env{PATH}.
-@xref{env,, @code{@@env}}.
-
@item @@enddots@{@}
Generate an end-of-sentence ellipsis, like this: @enddots{}
-@xref{dots,,@code{@@dots@{@}}}.
+@xref{@t{@@dots}}.
@item @@enumerate [@var{number-or-letter}]
Begin a numbered list, using @code{@@item} for each entry.
Optionally, start list with @var{number-or-letter}. Pair with
-@code{@@end enumerate}. @xref{enumerate, ,
-@code{@@enumerate}}.(a)refill
+@code{@@end enumerate}. @xref{@t{@@enumerate}}.
+
+@item @@env@{@var{environment-variable}@}
+Indicate an environment variable name, such as @env{PATH}.
+@xref{@t{@@env}}.
@item @@equiv@{@}
Indicate to the reader the exact equivalence of two forms with a
-glyph: @samp{@equiv{}}. @xref{Equivalence}.@refill
-
-@item @@euro@{@}
-Generate the Euro currency sign.
-@xref{euro,,@code{@@euro@{@}}}.
+glyph: @samp{@equiv{}}. @xref{@t{@@equiv}}.
@item @@error@{@}
Indicate to the reader with a glyph that the following text is
-an error message: @samp{@error{}}. @xref{Error Glyph}.@refill
-
-@item @@evenfooting [@var{left}] @@| [@var{center}] @@| [@var{right}]
+an error message: @samp{@error{}}. @xref{@t{@@error}}.
+
+@item @@errormsg@{@var{msg}@}
+Report @var{msg} as an error to standard error, and exit unsuccessfully.
+Texinfo commands within @var{msg} are expanded to plain text.
+@xref{Conditionals}, and @ref{External Macro Processors}.
+
+@item @@euro@{@}
+Generate the Euro currency sign. @xref{@t{@@euro}}.
+
+@item @@evenfooting [@var{left}] @@| [@var{center}] @@| [@var{right}]
@itemx @@evenheading [@var{left}] @@| [@var{center}] @@| [@var{right}]
Specify page footings resp.@: headings for even-numbered (left-hand)
pages. @xref{Custom Headings, ,
-How to Make Your Own Headings}.@refill
+How to Make Your Own Headings}.
@item @@everyfooting [@var{left}] @@| [@var{center}] @@| [@var{right}]
@itemx @@everyheading [@var{left}] @@| [@var{center}] @@| [@var{right}]
@@ -17834,35 +20866,38 @@
@item @@example
Begin an example. Indent text, do not fill, and select fixed-width
-font. Pair with @code{@@end example}. @xref{example,, @code{@@example}}.
+font. Pair with @code{@@end example}. @xref{@t{@@example}}.
@item @@exampleindent @var{indent}
Indent example-like environments by @var{indent} number of spaces
-(perhaps 0). @xref{exampleindent,, Paragraph Indenting}.
+(perhaps 0). @xref{@t{@@exampleindent}}.
@item @@exclamdown@{@}
Generate an upside-down exclamation point. @xref{Inserting Accents}.
@item @@exdent @var{line-of-text}
-Remove any indentation a line might have. @xref{exdent, ,
-Undoing the Indentation of a Line}.@refill
+Remove any indentation a line might have. @xref{@t{@@exdent}}.
@item @@expansion@{@}
Indicate the result of a macro expansion to the reader with a special
-glyph: @samp{@expansion{}}.
-@xref{expansion, , @expansion{} Indicating an Expansion}.@refill
+glyph: @samp{@expansion{}}. @xref{@t{@@expansion}}.
@item @@file@{@var{filename}@}
-Highlight the name of a file, buffer, node, directory, etc. @xref{file, ,
-@code{@@file}}.
+Highlight the name of a file, buffer, node, directory, etc.
+@xref{@t{@@file}}.
@item @@finalout
Prevent @TeX{} from printing large black warning rectangles beside
-over-wide lines. @xref{Overfull hboxes}.@refill
+over-wide lines. @xref{Overfull hboxes}.
@item @@findex @var{entry}
Add @var{entry} to the index of functions. @xref{Index Entries, ,
-Defining the Entries of an Index}.@refill
+Defining the Entries of an Index}.
+
+@item @@firstparagraphindent @var{word}
+Control indentation of the first paragraph after section headers
+according to @var{word}, one of `none' or `insert'.
+@xref{@t{@@firstparagraphindent}}.
@item @@float
Environment to define floating material. Pair with @code{@@end float}.
@@ -17872,9 +20907,12 @@
@itemx @@flushright
Do not fill text; left (right) justify every line while leaving the
right (left) end ragged. Leave font as is. Pair with @code{@@end
-flushleft} (@code{@@end flushright}). @code{@@flushright} analogous.
-@xref{flushleft & flushright, , @code{@@flushleft} and
-@code{@@flushright}}.
+flushleft} (@code{@@end flushright}). @xref{@t{@@flushleft
+@@flushright}}.
+
+@item @@fonttextsize @var{10-11}
+Change the size of the main body font in the @TeX{} output.
+@xref{Fonts}.
@item @@footnote@{@var{text-of-footnote}@}
Enter a footnote. Footnote text is printed at the bottom of the page
@@ -17888,53 +20926,80 @@
@item @@format
Begin a kind of example. Like @code{@@display}, but do not indent.
-Pair with @code{@@end format}. @xref{example,, @code{@@example}}.
+Pair with @code{@@end format}. @xref{@t{@@example}}.
+
+@item @@frenchspacing @var{on-off}
+Control spacing after punctuation. @xref{@t{@@frenchspacing}}.
@item @@ftable @var{formatting-command}
Begin a two-column table, using @code{@@item} for each entry.
Automatically enter each of the items in the first column into the
index of functions. Pair with @code{@@end ftable}. The same as
-@code{@@table}, except for indexing. @xref{ftable vtable, ,
-@code{@@ftable} and @code{@@vtable}}.(a)refill
+@code{@@table}, except for indexing. @xref{@t{@@ftable @@vtable}}.
@item @@geq@{@}
-Generate a greater-than-or-equal sign, `@geq{}'. @xref{geq leq}.
+Generate a greater-than-or-equal sign, `@geq{}'. @xref{@t{@@geq @@leq}}.
@item @@group
Disallow page breaks within following text. Pair with @code{@@end
-group}. Ignored in Info. @xref{group, , @code{@@group}}.
+group}. Ignored in Info. @xref{@t{@@group}}.
+
+@item @@guillemetleft@{@}
+@itemx @@guillemetright@{@}
+@item @@guillemotleft@{@}
+@itemx @@guillemotright@{@}
+@itemx @@guilsinglleft@{@}
+@itemx @@guilsinglright@{@}
+Double and single angle quotation marks: @guillemetleft{}
+@guillemetright{} @guilsinglleft{} @guilsinglright{}.
+@code{@@guillemotleft} and @code{@@guillemotright} are synonyms for
+@code{@@guillemetleft} and @code{@@guillemetright}. @xref{Inserting
+Quotation Marks}.
@item @@H@{@var{c}@}
Generate the long Hungarian umlaut accent over @var{c}, as in @H{o}.
+@item @@hashchar@{@}
+Insert a hash `#' character; only needed when a literal hash would
+introduce @code{#line} directive. @xref{Inserting a Hashsign}, and
+@ref{External Macro Processors}.
+
@item @@heading @var{title}
Print an unnumbered section-like heading, but omit from the table of
contents. In Info, the title is underlined with equal signs.
-@xref{unnumberedsec appendixsec heading, , Section Commands}.
+@xref{@t{@@unnumberedsec @@appendixsec @@heading}}.
@item @@headings @var{on-off-single-double}
Turn page headings on or off, and/or specify single-sided or double-sided
-page headings for printing. @xref{headings on off, , The
-@code{@@headings} Command}.
+page headings for printing. @xref{@t{@@headings}}.
@item @@headitem
Begin a heading row in a multitable. @xref{Multitable Rows}.
+@item @@headitemfont@{@var{text}@}
+Set @var{text} in the font used for multitable heading rows; mostly
+useful in multitable templates. @xref{Multitable Rows}.
+
@item @@html
Enter HTML completely. Pair with @code{@@end html}. @xref{Raw
Formatter Commands}.
@item @@hyphenation@{@var{hy-phen-a-ted words}@}
-Explicitly define hyphenation points. @xref{- and hyphenation,,
-@code{@@-} and @code{@@hyphenation}}.
+Explicitly define hyphenation points. @xref{@t{@@- @@hyphenation}}.
@item @@i@{@var{text}@}
Set @var{text} in an @i{italic} font. No effect in Info. @xref{Fonts}.
@item @@ifclear @var{txivar}
If the Texinfo variable @var{txivar} is not set, format the following
-text. Pair with @code{@@end ifclear}. @xref{set clear value, ,
-@code{@@set} @code{@@clear} @code{@@value}}.
+text. Pair with @code{@@end ifclear}. @xref{@t{@@set @@clear
+@@value}}.
+
+@item @@ifcommanddefined @var{txicmd}
+@itemx @@ifcommandnotdefined @var{txicmd}
+If the Texinfo code @samp{@@@var{txicmd}} is (not) defined, format the
+follow text. Pair with the corresponding @code{@@end ifcommand...}.
+@xref{Testing for Texinfo Commands}.
@item @@ifdocbook
@itemx @@ifhtml
@@ -17966,12 +21031,12 @@
@item @@ifset @var{txivar}
If the Texinfo variable @var{txivar} is set, format the following
-text. Pair with @code{@@end ifset}. @xref{set clear value, ,
-@code{@@set} @code{@@clear} @code{@@value}}.
+text. Pair with @code{@@end ifset}. @xref{@t{@@set @@clear
+@@value}}.
@item @@iftex
Begin text to appear only in the @TeX{} output. Pair with @code{@@end
-iftex}. @xref{Conditionals, , Conditionally Visible Text}.@refill
+iftex}. @xref{Conditionals, , Conditionally Visible Text}.
@item @@ifxml
Begin text that will appear only in the XML output. Pair with
@@ -17984,27 +21049,52 @@
@item @@image@{@var{filename}, [@var{width}], [@var{height}], [@var{alt}], [@var{ext}]@}
Include graphics image in external @var{filename} scaled to the given
@var{width} and/or @var{height}, using @var{alt} text and looking for
-@samp{@var{filename}.(a)var{ext}} in HTML. @xref{Images}.
+@samp{@var{filename}.(a)var{ext}} in HTML@. @xref{Images}.
@item @@include @var{filename}
Read the contents of Texinfo source file @var{filename}. @xref{Include Files}.
+@item @@indent
+Insert paragraph indentation. @xref{@t{@@indent}}.
+
+@item @@indentedblock
+Indent a block of arbitary text on the left. Pair with @code{@@end
+indentedblock}. @xref{@t{@@indentedblock}}.
+
@item @@indicateurl@{@var{indicateurl}@}
Indicate text that is a uniform resource locator for the World Wide
-Web. @xref{indicateurl, , @code{@@indicateurl}}.
+Web. @xref{@t{@@indicateurl}}.
@item @@inforef@{@var{node-name}, [@var{entry-name}], @var{info-file-name}@}
Make a cross reference to an Info file for which there is no printed
-manual. @xref{inforef, , Cross references using
-@code{@@inforef}}.(a)refill
+manual. @xref{@t{@@inforef}}.
+
+@item @@inlinefmt@{@var{fmt}, @var{text}@}
+Insert @var{text} only if the output format is @var{fmt}.
+@xref{Inline Conditionals}.
+
+@item @@inlinefmtifelse@{@var{fmt}, @var{text}, @var{else-text}@}
+Insert @var{text} if the output format is @var{fmt}, else @var{else-text}.
+
+@item @@inlineifclear@{@var{var}, @var{text}@}
+@itemx @@inlineifset@{@var{var}, @var{text}@}
+Insert @var{text} only if the Texinfo variable @var{var} is (not) set.
+
+@item @@inlineraw@{@var{fmt}, @var{raw-text}@}
+Insert @var{text} as in a raw conditional, only if the output format
+is @var{fmt}.
@item \input @var{macro-definitions-file}
Use the specified macro definitions file. This command is used only
in the first line of a Texinfo file to cause @TeX{} to make use of the
-@file{texinfo} macro definitions file. The backslash in @code{\input}
-is used instead of an @code{@@} because @TeX{} does not
-recognize @code{@@} until after it has read the definitions file.
-@xref{Texinfo File Header}.
+@file{texinfo} macro definitions file. The @code{\} in @code{\input}
+is used instead of an @code{@@} because @TeX{} does not recognize
+@code{@@} until after it has read the definitions file. @xref{Texinfo
+File Header}.
+
+@item @@insertcopying
+Insert the text previously defined with the @code{@@copying}
+environment. @xref{@t{@@insertcopying}}.
@item @@item
Indicate the beginning of a marked paragraph for @code{@@itemize} and
@@ -18014,30 +21104,29 @@
@item @@itemize @var{mark-generating-character-or-command}
Begin an unordered list: indented paragraphs with a mark, such as
-@code{@@bullet}, inside the left margin at the beginning of each
-item. Pair with @code{@@end itemize}. @xref{itemize, ,
-@code{@@itemize}}.
+@code{@@bullet}, inside the left margin at the beginning of each item.
+Pair with @code{@@end itemize}. @xref{@t{@@itemize}}.
@item @@itemx
Like @code{@@item} but do not generate extra vertical space above the
item text. Thus, when several items have the same description, use
@code{@@item} for the first and @code{@@itemx} for the others.
-@xref{itemx, , @code{@@itemx}}.
+@xref{@t{@@itemx}}.
@item @@kbd@{@var{keyboard-characters}@}
-Indicate characters of input to be typed by users. @xref{kbd, ,
-@code{@@kbd}}.
+Indicate characters of input to be typed by users. @xref{@t{@@kbd}}.
@item @@kbdinputstyle @var{style}
Specify when @code{@@kbd} should use a font distinct from
-@code{@@code}. @xref{kbd, , @code{@@kbd}}.
+@code{@@code} according to @var{style}: @code{code}, @code{distinct},
+@code{example}. @xref{@t{@@kbd}}.
@item @@key@{@var{key-name}@}
-Indicate the name of a key on a keyboard. @xref{key, , @code{@@key}}.
+Indicate the name of a key on a keyboard. @xref{@t{@@key}}.
@item @@kindex @var{entry}
Add @var{entry} to the index of keys.
-@xref{Index Entries, , Defining the Entries of an Index}.@refill
+@xref{Index Entries, , Defining the Entries of an Index}.
@item @@L@{@}
@itemx @@l@{@}
@@ -18045,44 +21134,43 @@
respectively: @L{}, @l{}.
@item @@LaTeX@{@}
-Generate the @LaTeX{} logo. @xref{tex, , @TeX{} and @LaTeX{}}.
+Generate the @LaTeX{} logo. @xref{@t{@@TeX @@LaTeX}}.
@item @@leq@{@}
-Generate a less-than-or-equal sign, `@leq{}'. @xref{geq leq}.
+Generate a less-than-or-equal sign, `@leq{}'. @xref{@t{@@geq @@leq}}.
@item @@lisp
Begin an example of Lisp code. Indent text, do not fill, and select
-fixed-width font. Pair with @code{@@end lisp}. @xref{lisp, , @code{@@lisp}}.
+fixed-width font. Pair with @code{@@end lisp}. @xref{@t{@@lisp}}.
@item @@listoffloats
Produce a table-of-contents-like listing of @code{@@float}s.
-@xref{listoffloats}.
+@xref{@t{@@listoffloats}}.
@item @@lowersections
Change subsequent chapters to sections, sections to subsections, and so
on. @xref{Raise/lower sections, , @code{@@raisesections} and
-@code{@@lowersections}}.(a)refill
+@code{@@lowersections}}.
@item @@macro @var{macroname} @{@var{params}@}
Define a new Texinfo command @code{@@@var{macroname}@{@var{params}@}}.
Pair with @code{@@end macro}. @xref{Defining Macros}.
@item @@majorheading @var{title}
-Print an unnumbered chapter-like heading, but omit from
-the table of contents. This generates more vertical whitespace before
-the heading than the @code{@@chapheading} command. @xref{majorheading
-& chapheading, , @code{@@majorheading} and @code{@@chapheading}}.
+Print an unnumbered chapter-like heading, but omit from the table of
+contents. This generates more vertical whitespace before the heading
+than the @code{@@chapheading} command. @xref{@t{@@majorheading
+@@chapheading}}.
@item @@math@{@var{mathematical-expression}@}
-Format a mathematical expression.
-@xref{math, , @code{@@math} - Inserting Mathematical Expressions}.
+Format a mathematical expression. @xref{Inserting Math}.
@item @@menu
Mark the beginning of a menu of nodes. No effect in a printed manual.
Pair with @code{@@end menu}. @xref{Menus}.
@item @@minus@{@}
-Generate a minus sign, `@minus{}'. @xref{minus, , @code{@@minus}}.
+Generate a minus sign, `@minus{}'. @xref{@t{@@minus}}.
@item @@multitable @var{column-width-spec}
Begin a multi-column table. Begin each row with @code{@@item} or
@@ -18091,15 +21179,15 @@
@item @@need @var{n}
Start a new page in a printed manual if fewer than @var{n} mils
-(thousandths of an inch) remain on the current page. @xref{need, ,
-@code{@@need}}.
+(thousandths of an inch) remain on the current page.
+@xref{@t{@@need}}.
@item @@node @var{name}, @var{next}, @var{previous}, @var{up}
-Begin a new node. @xref{node, , @code{@@node}}.
+Begin a new node. @xref{@t{@@node}}.
@item @@noindent
Prevent text from being indented as if it were a new paragraph.
-@xref{noindent, , @code{@@noindent}}.
+@xref{@t{@@noindent}}.
@item @@novalidate
Suppress validation of node references and omit creation of auxiliary
@@ -18115,20 +21203,29 @@
@itemx @@oddheading [@var{left}] @@| [@var{center}] @@| [@var{right}]
Specify page footings resp.@: headings for odd-numbered (right-hand)
pages. @xref{Custom Headings, ,
-How to Make Your Own Headings}.@refill
+How to Make Your Own Headings}.
@item @@OE@{@}
@itemx @@oe@{@}
Generate the uppercase and lowercase OE ligatures, respectively:
@OE{}, @oe{}. @xref{Inserting Accents}.
+@item @@ogonek@{@var{c}@}
+Generate an ogonek diacritic under the next character, as in
+@ogonek{a}. @xref{Inserting Accents}.
+
@item @@option@{@var{option-name}@}
-Indicate a command-line option, such as @option{-l} or @option{--help}.
-@xref{option,, @code{@@option}}.
+Indicate a command-line option, such as @option{-l} or
+@option{--help}. @xref{@t{@@option}}.
+
+@item @@ordf@{@}
+@itemx @@ordm@{@}
+Generate the feminine and masculine Spanish ordinals, respectively:
+@ordf{}, @ordm{}. @xref{Inserting Accents}.
@item @@page
Start a new page in a printed manual. No effect in Info.
-@xref{page, , @code{@@page}}.(a)refill
+@xref{@t{@@page}}.
@item @@pagesizes [@var{width}][, @var{height}]
Change page dimensions. @xref{pagesizes}.
@@ -18136,69 +21233,88 @@
@item @@paragraphindent @var{indent}
Indent paragraphs by @var{indent} number of spaces (perhaps 0); preserve
source file indentation if @var{indent} is @code{asis}.
-@xref{paragraphindent,, Paragraph Indenting}.
+@xref{@t{@@paragraphindent}}.
+
+@item @@part @var{title}
+Begin a group of chapters or appendixes; included in the tables of
+contents and produces a page of its own in printed output.
+@xref{@t{@@part}}.
@item @@pindex @var{entry}
Add @var{entry} to the index of programs. @xref{Index Entries, , Defining
-the Entries of an Index}.@refill
+the Entries of an Index}.
@item @@point@{@}
-Indicate the position of point in a buffer to the reader with a
-glyph: @samp{@point{}}. @xref{Point Glyph, , Indicating
-Point in a Buffer}.@refill
+Indicate the position of point in a buffer to the reader with a glyph:
+@samp{@point{}}. @xref{@t{@@point}}.
@item @@pounds@{@}
Generate the pounds sterling currency sign.
-@xref{pounds,,@code{@@pounds@{@}}}.
+@xref{@t{@@pounds}}.
@item @@print@{@}
-Indicate printed output to the reader with a glyph:
-@samp{@print{}}. @xref{Print Glyph}.@refill
+Indicate printed output to the reader with a glyph: @samp{@print{}}.
+@xref{@t{@@print}}.
@item @@printindex @var{index-name}
-Generate the alphabetized index for @var{index-name} (using two columns in a printed
-manual). @xref{Printing Indices & Menus}.
+Generate the alphabetized index for @var{index-name} (using two
+columns in a printed manual). @xref{Printing Indices & Menus}.
@item @@pxref@{@var{node}, [@var{entry}], [@var{node-title}], [@var{info-file}], [@var{manual}]@}
-Make a reference that starts with a lower case `see' in a printed
+Make a reference that starts with a lowercase `see' in a printed
manual. Use within parentheses only. Only the first argument is
-mandatory. @xref{pxref, , @code{@@pxref}}.
+mandatory. @xref{@t{@@pxref}}.
@item @@questiondown@{@}
Generate an upside-down question mark. @xref{Inserting Accents}.
@item @@quotation
Narrow the margins to indicate text that is quoted from another work.
-Takes optional argument of prefix text. Pair with @code{@@end
-quotation}. @xref{quotation, , @code{@@quotation}}.
+Takes optional argument specifying prefix text, e.g., an author name.
+Pair with @code{@@end quotation}. @xref{@t{@@quotation}}.
+
+@item @@quotedblleft@{@}
+@itemx @@quotedblright@{@}
+@itemx @@quoteleft@{@}
+@itemx @@quoteright@{@}
+@itemx @@quotedblbase@{@}
+@itemx @@quotesinglbase@{@}
+Produce various quotation marks: @quotedblleft{} @quotedblright{}
+@quoteleft{} @quoteright{} @quotedblbase{} @quotesinglbase{}.
+@xref{Inserting Quotation Marks}.
@item @@r@{@var{text}@}
Set @var{text} in the regular @r{roman} font. No effect in Info.
@xref{Fonts}.
+@item @@raggedright
+Fill text; left justify every line while leaving the right end ragged.
+Leave font as is. Pair with @code{@@end raggedright}. No effect in
+Info. @xref{@t{@@raggedright}}.
+
@item @@raisesections
Change subsequent sections to chapters, subsections to sections, and so
-on. @xref{Raise/lower sections, , @code{@@raisesections} and
-@code{@@lowersections}}.(a)refill
+on. @xref{Raise/lower sections}.
@item @@ref@{@var{node}, [@var{entry}], [@var{node-title}], [@var{info-file}], [@var{manual}]@}
Make a plain reference that does not start with any special text.
Follow command with a punctuation mark. Only the first argument is
-mandatory. @xref{ref, , @code{@@ref}}.
+mandatory. @xref{@t{@@ref}}.
@item @@refill
+@findex refill
This command used to refill and indent the paragraph after all the
other processing has been done. It is no longer needed, since all
formatters now automatically refill as needed, but you may still see
it in the source to some manuals, as it does no harm.
@item @@registeredsymbol@{@}
-Generate the legal symbol @registeredsymbol{}. @xref{registered
-symbol,, @code{@@registeredsymbol@{@}}}.
+Generate the legal symbol @registeredsymbol{}.
+@xref{@t{@@registeredsymbol}}.
@item @@result@{@}
Indicate the result of an expression to the reader with a special
-glyph: @samp{@result{}}. @xref{result, , @code{@@result}}.(a)refill
+glyph: @samp{@result{}}. @xref{@t{@@result}}.
@item @@ringaccent@{@var{c}@}
Generate a ring accent over the next character, as in @ringaccent{o}.
@@ -18206,7 +21322,7 @@
@item @@samp@{@var{text}@}
Indicate a literal example of a sequence of characters, in general.
-Quoted in Info output. @xref{samp, , @code{@@samp}}.
+Quoted in Info output. @xref{@t{@@samp}}.
@item @@sansserif@{@var{text}@}
Set @var{text} in a @sansserif{sans serif} font if possible. No
@@ -18221,17 +21337,15 @@
table of contents. In Info, the title is underlined with equal signs.
Within @code{@@chapter} and @code{@@appendix}, the section title is
numbered; within @code{@@unnumbered}, the section is unnumbered.
-@xref{section, , @code{@@section}}.
+@xref{@t{@@section}}.
@item @@set @var{txivar} [@var{string}]
Define the Texinfo variable @var{txivar}, optionally to the value
-@var{string}. @xref{set clear value, , @code{@@set} @code{@@clear}
-@code{@@value}}.
+@var{string}. @xref{@t{@@set @@clear @@value}}.
@item @@setchapternewpage @var{on-off-odd}
Specify whether chapters start on new pages, and if so, whether on
-odd-numbered (right-hand) new pages. @xref{setchapternewpage, ,
-@code{@@setchapternewpage}}.
+odd-numbered (right-hand) new pages. @xref{@t{@@setchapternewpage}}.
@item @@setcontentsaftertitlepage
Put the table of contents after the @samp{@@end titlepage} even if the
@@ -18240,7 +21354,7 @@
@item @@setfilename @var{info-file-name}
Provide a name to be used for the output files. This command is essential
for @TeX{} formatting as well, even though it produces no output of
-its own. @xref{setfilename, , @code{@@setfilename}}.
+its own. @xref{@t{@@setfilename}}.
@item @@setshortcontentsaftertitlepage
Place the short table of contents after the @samp{@@end titlepage}
@@ -18249,11 +21363,12 @@
@item @@settitle @var{title}
Specify the title for page headers in a printed manual, and the
-default document description for HTML @samp{<head>}. @xref{settitle,,
-@code{@@settitle}}.
+default document title for HTML @samp{<head>}.
+@xref{@t{@@settitle}}.
@item @@shortcaption
-Define the short caption for a @code{@@float}. @xref{caption shortcaption}.
+Define the short caption for an @code{@@float}. @xref{@t{@@caption
+@@shortcaption}}.
@item @@shortcontents
Print a short table of contents, with chapter-level entries only. Not
@@ -18261,7 +21376,7 @@
@xref{Contents, , Generating a Table of Contents}.
@item @@shorttitlepage @var{title}
-Generate a minimal title page. @xref{titlepage,,@code{@@titlepage}}.
+Generate a minimal title page. @xref{@t{@@titlepage}}.
@item @@slanted@{@var{text}@}
Set @var{text} in a @slanted{slanted} font if possible. No effect
@@ -18269,29 +21384,39 @@
@item @@smallbook
Cause @TeX{} to produce a printed manual in a 7 by 9.25 inch format
-rather than the regular 8.5 by 11 inch format. @xref{smallbook, ,
-Printing Small Books}. Also, see @ref{small}.
+rather than the regular 8.5 by 11 inch format.
+@xref{@t{@@smallbook}}. Also, see @ref{@t{@@small@dots{}}}.
@item @@smalldisplay
-Begin a kind of example. Like @code{@@smallexample} (narrow margins, no
-filling), but do not select the fixed-width font. Pair with @code{@@end
-smalldisplay}. @xref{small}.
+Begin a kind of example. Like @code{@@display}, but use a smaller
+font size where possible. Pair with @code{@@end smalldisplay}.
+@xref{@t{@@small@dots{}}}.
@item @@smallexample
-Begin an example. Do not fill, select fixed-width font, narrow the
-margins. Where possible, print text in a smaller font than with
-@code{@@example}. Pair with @code{@@end smallexample}. @xref{small}.
+Begin an example. Like @code{@@example}, but use a smaller font size
+where possible. Pair with @code{@@end smallexample}.
+@xref{@t{@@small@dots{}}}.
@item @@smallformat
-Begin a kind of example. Like @code{@@smalldisplay}, but do not narrow
-the margins. Pair with @code{@@end smallformat}. @xref{small}.
+Begin a kind of example. Like @code{@@format}, but use a smaller font
+size where possible. Pair with @code{@@end smallformat}.
+@xref{@t{@@small@dots{}}}.
+
+@item @@smallindentedblock
+Like @code{@@indentedblock}, but use a smaller font size where
+possible. Pair with @code{@@end smallindentedblock}.
+@xref{@t{@@small@dots{}}}.
@item @@smalllisp
Begin an example of Lisp code. Same as @code{@@smallexample}. Pair
-with @code{@@end smalllisp}. @xref{small}.
+with @code{@@end smalllisp}. @xref{@t{@@small@dots{}}}.
+
+@item @@smallquotation
+Like @code{@@quotation}, but use a smaller font size where possible.
+Pair with @code{@@end smallquotation}. @xref{@t{@@small@dots{}}}.
@item @@sp @var{n}
-Skip @var{n} blank lines. @xref{sp, , @code{@@sp}}.(a)refill
+Skip @var{n} blank lines. @xref{@t{@@sp}}.
@item @@ss@{@}
Generate the German sharp-S es-zet letter, @ss{}. @xref{Inserting Accents}.
@@ -18304,33 +21429,29 @@
@item @@subheading @var{title}
Print an unnumbered subsection-like heading, but omit from the table
of contents of a printed manual. In Info, the title is underlined
-with hyphens. @xref{unnumberedsubsec appendixsubsec subheading, ,
-@code{@@unnumberedsubsec} @code{@@appendixsubsec}
-@code{@@subheading}}.
+with hyphens. @xref{@t{@@unnumberedsubsec @@appendixsubsec @@subheading}}.
@item @@subsection @var{title}
Begin a subsection within a section. The subsection title appears in
the table of contents. In Info, the title is underlined with hyphens.
-Same context-dependent numbering as @code{@@section}. @xref{subsection, ,
-@code{@@subsection}}.
+Same context-dependent numbering as @code{@@section}.
+@xref{@t{@@subsection}}.
@item @@subsubheading @var{title}
Print an unnumbered subsubsection-like heading, but omit from the
table of contents of a printed manual. In Info, the title is
-underlined with periods. @xref{subsubsection, , The `subsub'
-Commands}.
+underlined with periods. @xref{@t{@@subsubsection}}.
@item @@subsubsection @var{title}
Begin a subsubsection within a subsection. The subsubsection title
appears in the table of contents. In Info, the title is underlined
with periods. Same context-dependent numbering as @code{@@section}.
-@xref{subsubsection, , The `subsub' Commands}.
+@xref{@t{@@subsubsection}}.
@item @@subtitle @var{title}
In a printed manual, set a subtitle in a normal sized font flush to
the right-hand side of the page. Not relevant to Info, which does not
-have title pages. @xref{title subtitle author, , @code{@@title}
-@code{@@subtitle} and @code{@@author} Commands}.
+have title pages. @xref{@t{@@title @@subtitle @@author}}.
@item @@summarycontents
Print a short table of contents. Synonym for @code{@@shortcontents}.
@@ -18339,7 +21460,7 @@
@item @@syncodeindex @var{from-index} @var{to-index}
Merge the index named in the first argument into the index named in
the second argument, formatting the entries from the first index with
-@code{@@code} . @xref{Combining Indices}.@refill
+@code{@@code}. @xref{Combining Indices}.
@item @@synindex @var{from-index} @var{to-index}
Merge the index named in the first argument into the index named in
@@ -18359,16 +21480,18 @@
@code{@@item}. First column entries are printed in the font resulting
from @var{formatting-command}. Pair with @code{@@end table}.
@xref{Two-column Tables, , Making a Two-column Table}. Also see
-@ref{ftable vtable, , @code{@@ftable} and @code{@@vtable}}, and
-@ref{itemx, , @code{@@itemx}}.
+@ref{@t{@@ftable @@vtable}}, and @ref{@t{@@itemx}}.
@item @@TeX@{@}
-Generate the @TeX{} logo. @xref{tex, , @TeX{} and @LaTeX{}}.
+Generate the @TeX{} logo. @xref{@t{@@TeX @@LaTeX}}.
@item @@tex
Enter @TeX{} completely. Pair with @code{@@end tex}. @xref{Raw
Formatter Commands}.
+@item @@textdegree@{@}
+Generate the degree symbol. @xref{@t{@@textdegree}}.
+
@item @@thischapter
@itemx @@thischaptername
@itemx @@thischapternum
@@ -18382,9 +21505,14 @@
document, respectively. @xref{Custom Headings, , How to Make Your Own
Headings}.
+@item @@TH@{@}
+@itemx @@th@{@}
+Generate the uppercase and lowercase Icelandic letter thorn, respectively:
+@TH{}, @th{}. @xref{Inserting Accents}.
+
@item @@tie@{@}
-Generate a normal interword space at which a line break is not allowed.
-@xref{tie,, @code{@@tie@{@}}}.
+Generate a normal interword space at which a line break is not
+allowed. @xref{@t{@@tie}}.
@item @@tieaccent@{@var{cc}@}
Generate a tie-after accent over the next two characters @var{cc}, as in
@@ -18392,29 +21520,26 @@
@item @@tindex @var{entry}
Add @var{entry} to the index of data types. @xref{Index Entries, ,
-Defining the Entries of an Index}.@refill
+Defining the Entries of an Index}.
@item @@title @var{title}
In a printed manual, set a title flush to the left-hand side of the
page in a larger than normal font and underline it with a black rule.
-Not relevant to Info, which does not have title pages. @xref{title
-subtitle author, , The @code{@@title} @code{@@subtitle} and
-@code{@@author} Commands}.@refill
+Not relevant to Info, which does not have title pages.
+@xref{@t{@@title @@subtitle @@author}}.
@item @@titlefont@{@var{text}@}
In a printed manual, print @var{text} in a larger than normal font.
-@xref{titlefont center sp, , The @code{@@titlefont} @code{@@center}
-and @code{@@sp} Commands}.
+@xref{@t{@@titlefont @@center @@sp}}.
@item @@titlepage
Begin the title page. Write the command on a line of its own, paired
with @code{@@end titlepage}. Nothing between @code{@@titlepage} and
-@code{@@end titlepage} appears in Info. @xref{titlepage, ,
-@code{@@titlepage}}.(a)refill
+@code{@@end titlepage} appears in Info. @xref{@t{@@titlepage}}.
@item @@today@{@}
Insert the current date, in `1 Jan 1900' style. @xref{Custom
-Headings, , How to Make Your Own Headings}.@refill
+Headings, , How to Make Your Own Headings}.
@item @@top @var{title}
Mark the topmost @code{@@node} in the file, which must be defined on
@@ -18423,8 +21548,8 @@
the @code{@@node} and @code{@@top} lines, are normally enclosed with
@code{@@ifnottex ... @@end ifnottex}. In @TeX{} and
@code{texinfo-format-buffer}, the @code{@@top} command is merely a
-synonym for @code{@@unnumbered}. @xref{makeinfo Pointer Creation, ,
-Creating Pointers with @code{makeinfo}}.
+synonym for @code{@@unnumbered}. @xref{@t{makeinfo} Pointer
+Creation}.
@item @@u@{@var{c}@}
@itemx @@ubaraccent@{@var{c}@}
@@ -18433,34 +21558,40 @@
under the character @var{c}, as in @u{o}, @ubaraccent{o},
@udotaccent{o}. @xref{Inserting Accents}.
+@item @@unmacro @var{macroname}
+Undefine the macro @code{@@@var{macroname}} if it has been defined.
+@xref{Defining Macros}.
+
@item @@unnumbered @var{title}
Begin a chapter that appears without chapter numbers of any kind. The
title appears in the table of contents. In Info, the title is
-underlined with asterisks. @xref{unnumbered & appendix, ,
-@code{@@unnumbered} and @code{@@appendix}}.
+underlined with asterisks. @xref{@t{@@unnumbered @@appendix}}.
@item @@unnumberedsec @var{title}
Begin a section that appears without section numbers of any kind. The
title appears in the table of contents of a printed manual. In Info,
-the title is underlined with equal signs. @xref{unnumberedsec
-appendixsec heading, , Section Commands}.
+the title is underlined with equal signs. @xref{@t{@@unnumberedsec
+@@appendixsec @@heading}}.
@item @@unnumberedsubsec @var{title}
Begin an unnumbered subsection. The title appears in the table of
contents. In Info, the title is underlined with hyphens.
-@xref{unnumberedsubsec appendixsubsec subheading, ,
-@code{@@unnumberedsubsec} @code{@@appendixsubsec}
-@code{@@subheading}}.
+@xref{@t{@@unnumberedsubsec @@appendixsubsec @@subheading}}.
@item @@unnumberedsubsubsec @var{title}
Begin an unnumbered subsubsection. The title appears in the table of
contents. In Info, the title is underlined with periods.
-@xref{subsubsection, , The `subsub' Commands}.
+@xref{@t{@@subsubsection}}.
@item @@uref@{@var{url}[, @var{displayed-text}][, @var{replacement}@}
@itemx @@url@{@var{url}[, @var{displayed-text}][, @var{replacement}@}
Define a cross reference to an external uniform resource locator,
-e.g., for the World Wide Web. @xref{uref, , @code{@@uref}}.
+e.g., for the World Wide Web. @xref{@t{@@url}}.
+
+@item @@urefbreakstyle @var{style}
+Specify how @code{@@uref}/@code{@@url} should break at special
+characters: @code{after}, @code{before}, @code{none}.
+@xref{@t{@@url}}.
@item @@v@{@var{c}@}
Generate check accent over the character @var{c}, as in @v{o}.
@@ -18468,30 +21599,29 @@
@item @@value@{@var{txivar}@}
Insert the value, if any, of the Texinfo variable @var{txivar},
-previously defined by @code{@@set}. @xref{set clear value, ,
-@code{@@set} @code{@@clear} @code{@@value}}.
+previously defined by @code{@@set}. @xref{@t{@@set @@clear
+@@value}}.
@item @@var@{@var{metasyntactic-variable}@}
Highlight a metasyntactic variable, which is something that stands for
-another piece of text. @xref{var, , Indicating Metasyntactic
-Variables}.
+another piece of text. @xref{@t{@@var}}.
@item @@verb@{@var{delim} @var{literal} @var{delim}@}
Output @var{literal}, delimited by the single character @var{delim},
exactly as is (in the fixed-width font), including any whitespace or
-Texinfo special characters. @xref{verb,,@code{verb}}.
+Texinfo special characters. @xref{@t{@@verb}}.
@item @@verbatim
Output the text of the environment exactly as is (in the fixed-width
-font). Pair with @code{@@end verbatim}. @xref{verbatim,,@code{verbatim}}.
+font). Pair with @code{@@end verbatim}. @xref{@t{@@verbatim}}.
@item @@verbatiminclude @var{filename}
-Output the contents of @var{filename} exactly as is (in the fixed-width font).
-@xref{verbatiminclude,,@code{verbatiminclude}}.
+Output the contents of @var{filename} exactly as is (in the
+fixed-width font). @xref{@t{@@verbatiminclude}}.
@item @@vindex @var{entry}
Add @var{entry} to the index of variables. @xref{Index Entries, ,
-Defining the Entries of an Index}.@refill
+Defining the Entries of an Index}.
@item @@vskip @var{amount}
In a printed manual, insert whitespace so as to push text on the
@@ -18504,11 +21634,10 @@
Begin a two-column table, using @code{@@item} for each entry.
Automatically enter each of the items in the first column into the
index of variables. Pair with @code{@@end vtable}. The same as
-@code{@@table}, except for indexing. @xref{ftable vtable, ,
-@code{@@ftable} and @code{@@vtable}}.(a)refill
+@code{@@table}, except for indexing. @xref{@t{@@ftable @@vtable}}.
@item @@w@{@var{text}@}
-Disallow line breaks within @var{text}. @xref{w, , @code{@@w}}.
+Disallow line breaks within @var{text}. @xref{@t{@@w}}.
@item @@xml
Enter XML completely. Pair with @code{@@end xml}. @xref{Raw
@@ -18517,7 +21646,11 @@
@item @@xref@{@var{node}, [@var{entry}], [@var{node-title}], [@var{info-file}], [@var{manual}]@}
Make a reference that starts with `See' in a printed manual. Follow
command with a punctuation mark. Only the first argument is
-mandatory. @xref{xref, , @code{@@xref}}.
+mandatory. @xref{@t{@@xref}}.
+
+@item @@xrefautomaticsectiontitle @var{on-off}
+By default, use the section title instead of the node name in cross
+references. @xref{Three Arguments}.
@end table
@@ -18528,40 +21661,44 @@
@cindex Syntax, of @@-commands
@cindex Command syntax
-The character @samp{@@} is used to start special Texinfo commands.
-(It has the same meaning that @samp{\} has in plain @TeX{}.) Texinfo
-has four types of @@-command:@refill
+The character @samp{@@} is used to start all Texinfo commands. (It
+has the same meaning that @samp{\} has in plain @TeX{}.) Texinfo has
+four types of @@-command:
@table @asis
@item 1. Non-alphabetic commands.
These commands consist of an @@ followed by a punctuation mark or
-other character that is not part of the alphabet. Non-alphabetic
+other character that is not part of the Latin alphabet. Non-alphabetic
commands are almost always part of the text within a paragraph. The
non-alphabetic commands include @code{@@@@}, @code{@@@{}, @code{@@@}},
@code{@@.}, @code{@@@kbd{SPACE}}, most of the accent commands, and
many more.
@item 2. Alphabetic commands that do not require arguments.
-These commands start with @@ followed by a word followed by left- and
-right-hand braces. These commands insert special symbols in the
-document; they do not require arguments. For example,
+These commands start with @@ followed by a word followed by a
+left and right- brace. These commands insert special symbols in
+the document; they do not take arguments. Some examples:
@code{@@dots@{@}} @result{} @samp{@dots{}}, @code{@@equiv@{@}}
-@result{} @samp{@equiv{}}, @code{@@TeX@{@}} @result{} `@TeX{}',
-and @code{@@bullet@{@}} @result{} @samp{@bullet{}}.(a)refill
+@result{} @samp{@equiv{}}, @code{@@TeX@{@}} @result{} `@TeX{}', and
+@code{@@bullet@{@}} @result{} @samp{@bullet{}}.
@item 3. Alphabetic commands that require arguments within braces.
These commands start with @@ followed by a letter or a word, followed by an
argument within braces. For example, the command @code{@@dfn} indicates
the introductory or defining use of a term; it is used as follows: @samp{In
-Texinfo, @@@@-commands are @@dfn@{mark-up@} commands.}@refill
+Texinfo, @@@@-commands are @@dfn@{mark-up@} commands.}
@item 4. Alphabetic commands that occupy an entire line.
These commands occupy an entire line. The line starts with @@,
followed by the name of the command (a word); for example, @code{@@center}
or @code{@@cindex}. If no argument is needed, the word is followed by
the end of the line. If there is an argument, it is separated from
-the command name by a space. Braces are not used.@refill
-@end table
+the command name by a space. Braces are not used.
+@end table
+
+Whitespace following an @@-command name are optional and (usually)
+ignored if present. The exceptions are contexts whee whitespace is
+significant, e.g., an @code{@@example} environment.
@cindex Braces and argument syntax
Thus, the alphabetic commands fall into classes that have
@@ -18569,27 +21706,74 @@
belongs by the appearance of its name, but you can tell by the
command's meaning: if the command stands for a glyph, it is in
class 2 and does not require an argument; if it makes sense to use the
-command together with other text as part of a paragraph, the command
+command among other text as part of a paragraph, the command
is in class 3 and must be followed by an argument in braces;
otherwise, it is in class 4 and uses the rest of the line as its
-argument.@refill
-
-The purpose of having a different syntax for commands of classes 3 and
-4 is to make Texinfo files easier to read, and also to help the GNU
-XEmacs paragraph and filling commands work properly. There is only one
-exception to this rule: the command @code{@@refill}, which is always
-used at the end of a paragraph immediately following the final period
-or other punctuation character. @code{@@refill} takes no argument and
-does @emph{not} require braces. @code{@@refill} never confuses the
-XEmacs paragraph commands because it cannot appear at the beginning of
-a line. It is also no longer needed, since all formatters now refill
-paragraphs automatically.
+argument.
+
+The purpose of having a different syntax for commands of classes 3
+and@tie{}4 is to make Texinfo files easier to read, and also to help
+the XEmacs paragraph and filling commands work properly. There is
+only one exception to this rule: the command @code{@@refill}, which is
+always used at the end of a paragraph immediately following the final
+period or other punctuation character. @code{@@refill} takes no
+argument and does @emph{not} require braces. @code{@@refill} never
+confuses the XEmacs paragraph commands because it cannot appear at the
+beginning of a line. It is also no longer needed, since all
+formatters now refill paragraphs automatically.
+
+
+@node Command Contexts
+@section @@-Command Contexts
+
+@cindex Contexts, of @@-commands
+
+Here we describe approximately which @@-commands can be used in which
+contexts. It merely gives the general idea and is not exhaustive or
+meant to be a complete reference. Discrepancies between the
+information here and the @code{makeinfo} or @TeX{} implementations
+are most likely to be resolved in favor of the implementation.
+
+By @dfn{general text} below, we mean anything except sectioning and
+other such outer-level document commands, such as @code{@@section},
+@code{@@node}, and @code{@@setfilename}.
+
+@code{@@c}, @code{@@comment} and @code{@@if ... @@end if} conditional
+commands may appear anywhere (except the conditionals must still be on
+lines by themselves). @code{@@caption} may only appear in
+@code{@@float} but may contain general text. @code{@@footnote}
+content likewise.
+
+@@-commands with braces marking text (such as @code{@@strong},
+@code{@@sc}, @code{@@asis}) may contain raw formatter commands such as
+@code{@@html} but no other block commands (other commands terminated
+by @code{@@end}) and may not be split across paragraphs, but may
+otherwise contain general text.
+
+In addition to the block command restriction, on @code{@@center},
+@code{@@exdent} and @code{@@item} in @code{@@table} lines, @@-commands
+that makes only sense in a paragraph are not accepted, such as
+@code{@@indent}.
+
+In addition to the above, sectioning commands cannot contain
+@code{@@anchor}, @code{@@footnote} or @code{@@verb}.
+
+In addition to the above, remaining commands (@code{@@node},
+@code{@@anchor}, @code{@@printindex}, @code{@@ref}, @code{@@math},
+@code{@@cindex}, @code{@@url}, @code{@@image}, and so on) cannot
+contain cross reference commands (@code{@@ref}, @code{@@xref},
+@code{@@pxref} and @code{@@inforef}). In one last addition,
+@code{@@shortcaption} may only appear inside @code{@@float}.
+
+For precise and complete information, we suggest looking into the
+extensive test suite in the sources, which exhaustively try
+combinations.
@node Tips
@appendix Tips and Hints
-Here are some tips for writing Texinfo documentation:@refill
+Here are some tips for writing Texinfo documentation:
@cindex Tips
@cindex Usage tips
@@ -18609,6 +21793,7 @@
Include a copyright notice and copying permissions.
@end itemize
+
@subsubheading Index, Index, Index!
Write many index entries, in different ways.
@@ -18620,7 +21805,7 @@
way, an index entry points to the first page of a paragraph that is
split across pages.
-Here are more hints we have found valuable:
+Here are more index-related hints we have found valuable:
@itemize @bullet
@item
@@ -18635,13 +21820,13 @@
@item
Consistently capitalize the first word of every concept index entry,
-or else consistently use lower case. Terse entries often call for
-lower case; longer entries for capitalization. Whichever case
+or else consistently use lowercase. Terse entries often call for
+lowercase; longer entries for capitalization. Whichever case
convention you use, please use one or the other consistently! Mixing
the two styles looks bad.
@item
-Always capitalize or use upper case for those words in an index for
+Always capitalize or use uppercase for those words in an index for
which this is proper, such as names of countries or acronyms. Always
use the appropriate case for case-sensitive names, such as those in C or
Lisp.
@@ -18674,6 +21859,7 @@
readers can look up the concept in different ways.)
@end itemize
+
@subsubheading Blank Lines
@itemize @bullet
@@ -18681,13 +21867,12 @@
Insert a blank line between a sectioning command and the first following
sentence or paragraph, or between the indexing commands associated with
the sectioning command and the first following sentence or paragraph, as
-shown in the tip on indexing. Otherwise, a formatter may fold title and
-paragraph together.
+shown in the tip on indexing. It makes the source easier to read.
@item
Always insert a blank line before an @code{@@table} command and after an
@code{@@end table} command; but never insert a blank line after an
-@code{@@table} command or before an @code{@@end table} command.
+@code{@@table} command.
@need 1000
For example,
@@ -18718,6 +21903,7 @@
same way.
@end itemize
+
@subsubheading Complete Phrases
Complete phrases are easier to read than @dots{}
@@ -18734,23 +21920,25 @@
``You can set these variables:''. The former expression sounds cut off.
@end itemize
+
@subsubheading Editions, Dates and Versions
Include edition numbers, version numbers, and dates in the
@code{@@copying} text (for people reading the Texinfo file, and for the
legal copyright in the output files). Then use @code{@@insertcopying}
-in the @code{@@titlepage} section (for people reading the printed
-output) and the Top node (for people reading the online output).
-
-It is easiest to do this using @code{@@set} and @code{@@value}.
-@xref{value Example, , @code{@@value} Example}, and @ref{GNU Sample Texts}.
+in the @code{@@titlepage} section for people reading the printed
+output (@pxref{Short Sample}).
+
+It is easiest to handle such version information using @code{@@set}
+and @code{@@value}. @xref{@t{@@value} Example}, and @ref{GNU
+Sample Texts}.
@subsubheading Definition Commands
Definition commands are @code{@@deffn}, @code{@@defun},
@code{@@defmac}, and the like, and enable you to write descriptions in
-a uniform format.@refill
+a uniform format.
@itemize @bullet
@item
@@ -18764,12 +21952,13 @@
commands.
@end itemize
+
@subsubheading Capitalization
@itemize @bullet
@item
Capitalize ``Texinfo''; it is a name. Do not write the @samp{x} or
-@samp{i} in upper case.
+@samp{i} in uppercase.
@item
Capitalize ``Info''; it is a name.
@@ -18778,8 +21967,9 @@
Write @TeX{} using the @code{@@TeX@{@}} command. Note the uppercase
@samp{T} and @samp{X}. This command causes the formatters to
typeset the name according to the wishes of Donald Knuth, who wrote
-@TeX{}.
-@end itemize
+@TeX{}. (Likewise @code{@@LaTeX@{@}} for @LaTeX{}.)
+@end itemize
+
@subsubheading Spaces
@@ -18849,11 +22039,12 @@
hyphens to two.
@end itemize
+
@subsubheading Periods Outside of Quotes
Place periods and other punctuation marks @emph{outside} of quotations,
unless the punctuation is part of the quotation. This practice goes
-against publishing conventions in the United States, but enables the
+against some publishing conventions in the United States, but enables the
reader to distinguish between the contents of the quotation and the
whole passage.
@@ -18865,9 +22056,10 @@
@end example
@noindent
-since @samp{au} does @emph{not} serve as an abbreviation for
+since @samp{au} does @emph{not} serve as an abbreviation for
@samp{author.} (with a period following the word).
+
@subsubheading Introducing New Terms
@itemize @bullet
@@ -18891,24 +22083,8 @@
should expect to learn the meaning from this passage.
@end itemize
-@subsubheading @@pxref
-
-@c !!! maybe include this in the tips on pxref
-@ignore
-By the way, it is okay to use pxref with something else in front of
-it within the parens, as long as the pxref is followed by the close
-paren, and the material inside the parens is not part of a larger
-sentence. Also, you can use xref inside parens as part of a complete
-sentence so long as you terminate the cross reference with punctuation.
-@end ignore
-Absolutely never use @code{@@pxref} except in the special context for
-which it is designed: inside parentheses, with the closing parenthesis
-following immediately after the closing brace. One formatter
-automatically inserts closing punctuation and the other does not. This
-means that the output looks right both in printed output and in an Info
-file, but only when the command is used inside parentheses.
-
-@subsubheading Invoking from a Shell
+
+@subsubheading Program Invocation Nodes
You can invoke programs such as XEmacs, GCC, and @code{gawk} from a
shell. The documentation for each program should contain a section that
@@ -18923,7 +22099,7 @@
@subsubheading ANSI C Syntax
When you use @code{@@example} to describe a C function's calling
-conventions, use the ANSI C syntax, like this:@refill
+conventions, use the ANSI C syntax, like this:
@example
void dld_init (char *@@var@{path@});
@@ -18932,16 +22108,16 @@
@noindent
And in the subsequent discussion, refer to the argument values by
writing the same argument names, again highlighted with
-@code{@@var}.(a)refill
+@code{@@var}.
@need 800
-Avoid the obsolete style that looks like this:@refill
+Avoid the obsolete style that looks like this:
@example
#include <dld.h>
dld_init (path)
-char *path;
+ char *path;
@end example
Also, it is best to avoid writing @code{#include} above the
@@ -18950,7 +22126,23 @@
@code{#include} belongs near the declaration of the function. Either
state explicitly which header file holds the declaration or, better
yet, name the header file used for a group of functions at the
-beginning of the section that describes the functions.@refill
+beginning of the section that describes the functions.
+
+@anchor{texi-elements-by-size}
+@subsubheading Node Length
+
+Keep nodes (sections) to a reasonable length, whatever reasonable
+might be in the given context. Don't hesitate break up long nodes
+into subnodes and have an extensive tree structure; that's what it's
+there for. Many times, readers will probably try to find a single
+specific point in the manual, using search, indexing, or just plain
+guessing, rather than reading the whole thing from beginning to end.
+
+You can use the @command{texi-elements-by-size} utility to see a list
+of all nodes (or sections) in the document, sorted by size (either
+lines or words), to find candidates for splitting. It's in the
+@file{util/} subdirectory of the Texinfo sources.
+
@subsubheading Bad Examples
@@ -18980,6 +22172,7 @@
everyone's changes so they do not step on each other.
@end quotation
+
@subsubheading And Finally @dots{}
@itemize @bullet
@@ -19036,7 +22229,7 @@
@@copying
This is a short example of a complete Texinfo file.
-Copyright @copyright{} 2005 Free Software Foundation, Inc.
+Copyright @@copyright@{@} 2013 Free Software Foundation, Inc.
@@end copying
@@titlepage
@@ -19099,7 +22292,7 @@
@cindex Full texts, GNU
Following is a sample Texinfo document with the full texts that should
-be used in GNU manuals.
+be used (adapted as necessary) in GNU manuals.
As well as the legal texts, it also serves as a practical example of how
many elements in a GNU system can affect the manual. If you're not
@@ -19121,22 +22314,23 @@
@cindex RCS $Id
@cindex Documentation identification
@cindex Identification of documentation
-The @samp{$Id:} comment is for the CVS (@pxref{Top,, Overview, cvs,
-Concurrent Versions System}) or RCS
-(@url{http://www.gnu.org/software/rcs}) version control systems, which
-expand it into a string such as:
-@example
-$Id: texinfo.txi,v 1.225 2008/09/07 22:47:46 karl Exp $
-@end example
-(This is useful in all sources that use version control, not just manuals.)
-You may wish to include the @samp{$Id:} comment in the @code{@@copying}
-text, if you want a completely unambiguous reference to the
-documentation version.
+The @samp{$Id:} comment is for the CVS (@pxref{Top,,, cvs, Concurrent
+Versions System}), RCS (@pxref{Top,,, rcs, Revision Control System})
+and other version control systems, which expand it into a string such
+as:
+
+@example
+$Id: texinfo.texi 5381 2013-09-26 23:03:58Z karl $
+@end example
+
+(This is potentially useful in all sources that use version control,
+not just manuals.) You may wish to include the @samp{$Id:} comment in
+the @code{@@copying} text, if you want a completely unambiguous
+reference to the documentation source version.
If you want to literally write @t{@w{$}Id$}, use @code{@@w}:
-@code{@@w@{$@}Id$}. Unfortunately, this technique does not currently
-work in plain text output, since it's not clear what should be done.
-We hope to find a solution in a future release.
+@code{@@w@{$@}Id$}. Unfortunately, this technique does not work in
+plain text output, where it's not clear what should be done.
@item
@pindex automake@r{, and version info}
@@ -19144,11 +22338,11 @@
@vindex VERSION @r{Automake variable}
@pindex time-stamp.el
The @file{version.texi} in the @code{@@include} command is maintained
-automatically by Automake (@pxref{Top,, Introduction, automake, GNU
-Automake}). It sets the @samp{VERSION} and @samp{UPDATED} values used
-elsewhere. If your distribution doesn't use Automake, but you do use
-XEmacs, you may find the time-stamp.el package helpful (@pxref{Time
-Stamps,,,xemacs,XEmacs User's Manual}).
+automatically by Automake (@pxref{Top,,, automake, GNU Automake}). It
+sets the @samp{VERSION} and @samp{UPDATED} values used elsewhere. If
+your distribution doesn't use Automake, but you do use XEmacs, you may
+find the time-stamp.el package helpful (@pxref{Time Stamps,,, xemacs,
+XEmacs User's Manual}).
@item
The @code{@@syncodeindex} command reflects the recommendation to use
@@ -19163,7 +22357,7 @@
@item
The `Invoking' node is a GNU standard to help users find the basic
information about command-line usage of a given program. @xref{Manual
-Structure Details,,,standards, GNU Coding Standards}.
+Structure Details,,, standards, GNU Coding Standards}.
@item
@cindex GNU Free Documentation License, including entire
@@ -19183,18 +22377,15 @@
If the FSF is not the copyright holder, then use the appropriate name.
@item
-If your manual is not published on paper by the FSF, then omit the
-last sentence in the Back-Cover Text that talks about copies from GNU
-Press.
-
-@item
-If your manual has Invariant Sections (again, see the license itself
-for details), then change the text here accordingly.
-
-@item
-For documents that express your personal views, feelings or experiences,
-it is more appropriate to use a license permitting only verbatim
-copying, rather than the FDL. @xref{Verbatim Copying License}.
+If your manual is published on paper by the FSF or is longer than 400
+pages, you should include the standard FSF cover texts (@pxref{License
+Notices for Documentation,,, maintain, GNU Maintainer Information}).
+
+@item
+For documents that express your personal views, feelings or
+experiences, it is more appropriate to use a license permitting only
+verbatim copying, rather than the FDL@. @xref{Verbatim Copying
+License}.
@end itemize
@@ -19202,7 +22393,7 @@
@verbatim
\input texinfo @c -*-texinfo-*-
-@comment $Id: texinfo.txi,v 1.225 2008/09/07 22:47:46 karl Exp $
+@comment $Id@w{$}
@comment %**start of header
@setfilename sample.info
@include version.texi
@@ -19213,20 +22404,15 @@
This manual is for GNU Sample (version @value{VERSION}, @value{UPDATED}),
which is an example in the Texinfo documentation.
-Copyright @copyright{} 2007 Free Software Foundation, Inc.
+Copyright @copyright{} 2013 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.2 or
+under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with no
-Invariant Sections, with the Front-Cover Texts being ``A GNU Manual,''
-and with the Back-Cover Texts as in (a) below. A copy of the
-license is included in the section entitled ``GNU Free Documentation
-License.''
-
-(a) The FSF's Back-Cover Text is: ``You have the freedom to
-copy and modify this GNU manual. Buying copies from the FSF
-supports it in developing GNU and promoting software freedom.''
+Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+Texts. A copy of the license is included in the section entitled
+``GNU Free Documentation License''.
@end quotation
@end copying
@@ -19238,7 +22424,7 @@
@titlepage
@title GNU Sample
@subtitle for version @value{VERSION}, @value{UPDATED}
-@author A.U. Thor (@email{bug-texinfo@(a)gnu.org})
+@author A.U. Thor (@email{bug-sample@(a)gnu.org})
@page
@vskip 0pt plus 1filll
@insertcopying
@@ -19255,7 +22441,7 @@
@menu
* Invoking sample::
-* Copying This Manual::
+* GNU Free Documentation License::
* Index::
@end menu
@@ -19267,7 +22453,7 @@
@cindex invoking @command{sample}
This is a sample manual. There is no sample program to
-invoke, but if there was, you could see its basic usage
+invoke, but if there were, you could see its basic usage
and command line options here.
@@ -19292,7 +22478,7 @@
@cindex Verbatim copying license
@cindex License for verbatim copying
-For software manuals and other documentation, it is important to use a
+For software manuals and other documentation, it is critical to use a
license permitting free redistribution and updating, so that when a free
program is changed, the documentation can be updated as well.
@@ -19308,7 +22494,7 @@
@copying
This document is a sample for allowing verbatim copying only.
-Copyright @copyright{} 2005 Free Software Foundation, Inc.
+Copyright @copyright{} 2013 Free Software Foundation, Inc.
@quotation
Permission is granted to make and distribute verbatim copies
@@ -19339,7 +22525,7 @@
previous sections.
@example
-Copyright @copyright{} 2005 Free Software Foundation, Inc.
+Copyright @@copyright@{@} 2013 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
@@ -19347,293 +22533,6 @@
@end example
-@node Include Files
-@appendix Include Files
-@cindex Include files
-
-When @TeX{} or an Info formatting command sees an @code{@@include}
-command in a Texinfo file, it processes the contents of the file named
-by the command and incorporates them into the DVI or Info file being
-created. Index entries from the included file are incorporated into
-the indices of the output file.
-
-Include files let you keep a single large document as a collection of
-conveniently small parts.
-
-@menu
-* Using Include Files:: How to use the @code{@@include} command.
-* texinfo-multiple-files-update:: How to create and update nodes and
- menus when using included files.
-* Include Files Requirements:: @code{texinfo-multiple-files-update} needs.
-* Sample Include File:: A sample outer file with included files
- within it; and a sample included file.
-* Include Files Evolution:: How use of the @code{@@include} command
- has changed over time.
-@end menu
-
-@node Using Include Files
-@section How to Use Include Files
-@findex include
-
-To include another file within a Texinfo file, write the
-@code{@@include} command at the beginning of a line and follow it on
-the same line by the name of a file to be included. For example:
-
-@example
-@@include buffers.texi
-@end example
-
-The name of the file is taken literally, with a single exception:
-@code{@@value@{@var{var}@}} references are expanded. This makes it
-possible to reliably include files in other directories in a
-distribution. @xref{verbatiminclude,,@code{@@verbatiminclude}}, for
-an example.
-
-An included file should simply be a segment of text that you expect to
-be included as is into the overall or @dfn{outer} Texinfo file; it
-should not contain the standard beginning and end parts of a Texinfo
-file. In particular, you should not start an included file with a
-line saying @samp{\input texinfo}; if you do, that phrase is inserted
-into the output file as is. Likewise, you should not end an included
-file with an @code{@@bye} command; nothing after @code{@@bye} is
-formatted.
-
-In the past, you were required to write an @code{@@setfilename} line at the
-beginning of an included file, but no longer. Now, it does not matter
-whether you write such a line. If an @code{@@setfilename} line exists
-in an included file, it is ignored.@refill
-
-Conventionally, an included file begins with an @code{@@node} line that
-is followed by an @code{@@chapter} line. Each included file is one
-chapter. This makes it easy to use the regular node and menu creating
-and updating commands to create the node pointers and menus within the
-included file. However, the simple XEmacs node and menu creating and
-updating commands do not work with multiple Texinfo files. Thus you
-cannot use these commands to fill in the `Next', `Previous', and `Up'
-pointers of the @code{@@node} line that begins the included file. Also,
-you cannot use the regular commands to create a master menu for the
-whole file. Either you must insert the menus and the `Next',
-`Previous', and `Up' pointers by hand, or you must use the XEmacs
-Texinfo mode command, @code{texinfo-multiple-files-update}, that is
-designed for @code{@@include} files.@refill
-
-When an included file does not have any node lines in it, the
-multiple files update command does not try to create a menu entry
-for it. Consequently, you can include any file, such as a
-version or an update file without node lines, not just files that
-are chapters. Small includable files like this are created by
-Automake (@pxref{GNU Sample Texts}).
-
-
-@node texinfo-multiple-files-update
-@section @code{texinfo-multiple-files-update}
-@findex texinfo-multiple-files-update
-
-XEmacs Texinfo mode provides the @code{texinfo-multiple-files-update}
-command. This command creates or updates `Next', `Previous', and `Up'
-pointers of included files as well as those in the outer or overall
-Texinfo file, and it creates or updates a main menu in the outer file.
-Depending whether you call it with optional arguments, the command
-updates only the pointers in the first @code{@@node} line of the
-included files or all of them:@refill
-
-@table @kbd
-@item M-x texinfo-multiple-files-update
-Called without any arguments:@refill
-
-@itemize @minus
-@item
-Create or update the `Next', `Previous', and `Up' pointers of the
-first @code{@@node} line in each file included in an outer or overall
-Texinfo file.@refill
-
-@item
-Create or update the `Top' level node pointers of the outer or
-overall file.@refill
-
-@item
-Create or update a main menu in the outer file.@refill
-@end itemize
-
-@item C-u M-x texinfo-multiple-files-update
-Called with @kbd{C-u} as a prefix argument:
-
-@itemize @minus{}
-@item
-Create or update pointers in the first @code{@@node} line in each
-included file.
-
-@item
-Create or update the `Top' level node pointers of the outer file.
-
-@item
-Create and insert a master menu in the outer file. The master menu
-is made from all the menus in all the included files.@refill
-@end itemize
-
-@item C-u 8 M-x texinfo-multiple-files-update
-Called with a numeric prefix argument, such as @kbd{C-u 8}:
-
-@itemize @minus
-@item
-Create or update @strong{all} the `Next', `Previous', and `Up' pointers
-of all the included files.@refill
-
-@item
-Create or update @strong{all} the menus of all the included
-files.@refill
-
-@item
-Create or update the `Top' level node pointers of the outer or
-overall file.@refill
-
-@item
-And then create a master menu in the outer file. This is similar to
-invoking @code{texinfo-master-menu} with an argument when you are
-working with just one file.@refill
-@end itemize
-@end table
-
-Note the use of the prefix argument in interactive use: with a regular
-prefix argument, just @w{@kbd{C-u}}, the
-@code{texinfo-multiple-files-update} command inserts a master menu;
-with a numeric prefix argument, such as @kbd{C-u 8}, the command
-updates @strong{every} pointer and menu in @strong{all} the files and then inserts a
-master menu.@refill
-
-
-@node Include Files Requirements
-@section Include Files Requirements
-@cindex Include files requirements
-@cindex Requirements for include files
-
-If you plan to use the @code{texinfo-multiple-files-update} command,
-the outer Texinfo file that lists included files within it should
-contain nothing but the beginning and end parts of a Texinfo file, and
-a number of @code{@@include} commands listing the included files. It
-should not even include indices, which should be listed in an included
-file of their own.@refill
-
-Moreover, each of the included files must contain exactly one highest
-level node (conventionally, @code{@@chapter} or equivalent),
-and this node must be the first node in the included file.
-Furthermore, each of these highest level nodes in each included file
-must be at the same hierarchical level in the file structure.
-Usually, each is an @code{@@chapter}, an @code{@@appendix}, or an
-@code{@@unnumbered} node. Thus, normally, each included file contains
-one, and only one, chapter or equivalent-level node.@refill
-
-The outer file should contain only @emph{one} node, the `Top' node. It
-should @emph{not} contain any nodes besides the single `Top' node. The
-@code{texinfo-multiple-files-update} command will not process
-them.@refill
-
-
-@node Sample Include File
-@section Sample File with @code{@@include}
-@cindex Sample @code{@@include} file
-@cindex Include file sample
-@cindex @code{@@include} file sample
-
-Here is an example of an outer Texinfo file with @code{@@include} files
-within it before running @code{texinfo-multiple-files-update}, which
-would insert a main or master menu:
-
-@example
-@group
-\input texinfo @@c -*-texinfo-*-
-@c %**start of header
-@@setfilename include-example.info
-@@settitle Include Example
-@c %**end of header
-@end group
-
-... @xref{Sample Texinfo Files}, for
-examples of the rest of the frontmatter ...
-
-@group
-@@ifnottex
-@@node Top
-@@top Include Example
-@@end ifnottex
-@end group
-
-@group
-@@include foo.texinfo
-@@include bar.texinfo
-@@include concept-index.texinfo
-@@bye
-@end group
-@end example
-
-An included file, such as @file{foo.texinfo}, might look like this:
-
-@example
-@group
-@@node First
-@@chapter First Chapter
-
-Contents of first chapter @dots{}
-@end group
-@end example
-
-The full contents of @file{concept-index.texinfo} might be as simple as this:
-
-@example
-@group
-@@node Concept Index
-@@unnumbered Concept Index
-
-@@printindex cp
-@end group
-@end example
-
-The outer Texinfo source file for @cite{The XEmacs Lisp Reference
-Manual} is named @file{elisp.texi}. This outer file contains a master
-menu with 417 entries and a list of 41 @code{@@include}
-files.
-
-
-@node Include Files Evolution
-@section Evolution of Include Files
-
-When Info was first created, it was customary to create many small
-Info files on one subject. Each Info file was formatted from its own
-Texinfo source file. This custom meant that XEmacs did not need to
-make a large buffer to hold the whole of a large Info file when
-someone wanted information; instead, XEmacs allocated just enough
-memory for the small Info file that contained the particular
-information sought. This way, XEmacs could avoid wasting memory.@refill
-
-References from one file to another were made by referring to the file
-name as well as the node name. (@xref{Other Info Files, , Referring to
-Other Info Files}. Also, see @ref{Four and Five Arguments, ,
-@code{@@xref} with Four and Five Arguments}.)@refill
-
-Include files were designed primarily as a way to create a single,
-large printed manual out of several smaller Info files. In a printed
-manual, all the references were within the same document, so @TeX{}
-could automatically determine the references' page numbers. The Info
-formatting commands used include files only for creating joint
-indices; each of the individual Texinfo files had to be formatted for
-Info individually. (Each, therefore, required its own
-@code{@@setfilename} line.)@refill
-
-However, because large Info files are now split automatically, it is
-no longer necessary to keep them small.@refill
-
-Nowadays, multiple Texinfo files are used mostly for large documents,
-such as @cite{The XEmacs Lisp Reference Manual}, and for projects
-in which several different people write different sections of a
-document simultaneously.@refill
-
-In addition, the Info formatting commands have been extended to work
-with the @code{@@include} command so as to create a single large Info
-file that is split into smaller files if necessary. This means that
-you can write menus and cross references without naming the different
-Texinfo files.@refill
-
-
@node Headings
@appendix Page Headings
@cindex Headings
@@ -19644,8 +22543,10 @@
Most printed manuals contain headings along the top of every page
except the title and copyright pages. Some manuals also contain
-footings. (Headings and footings have no meaning to Info, which is
-not paginated.)@refill
+footings. @c HTML output also supports something like these, but in a
+@c completely different way: @pxref{Customizing HTML Page Layout}.
+Headings and footings have no meaning in Info or the other output
+formats.
@menu
* Headings Introduced:: Conventions for using page headings.
@@ -19660,12 +22561,12 @@
Texinfo provides standard page heading formats for manuals that are
printed on one side of each sheet of paper and for manuals that are
printed on both sides of the paper. Typically, you will use these
-formats, but you can specify your own format if you wish.@refill
+formats, but you can specify your own format if you wish.
In addition, you can specify whether chapters should begin on a new
page, or merely continue the same page as the previous chapter; and if
chapters begin on new pages, you can specify whether they must be
-odd-numbered pages.@refill
+odd-numbered pages.
By convention, a book is printed on both sides of each sheet of paper.
When you open a book, the right-hand page is odd-numbered, and
@@ -19674,12 +22575,12 @@
one side of paper, and chapters begin on a fresh page immediately
following the end of the preceding chapter. In short or informal
reports, chapters often do not begin on a new page at all, but are
-separated from the preceding text by a small amount of whitespace.@refill
+separated from the preceding text by a small amount of whitespace.
The @code{@@setchapternewpage} command controls whether chapters begin
on new pages, and whether one of the standard heading formats is used.
In addition, Texinfo has several heading and footing commands that you
-can use to generate your own heading and footing formats.@refill
+can use to generate your own heading and footing formats.
In Texinfo, headings and footings are single lines at the tops and
bottoms of pages; you cannot create multiline headings or footings.
@@ -19687,10 +22588,10 @@
middle part, and a right part. Any part, or a whole line, may be left
blank. Text for the left part of a header or footer line is set
flushleft; text for the middle part is centered; and, text for the
-right part is set flushright.@refill
+right part is set flushright.
+
@node Heading Format
-@comment node-name, next, previous, up
@section Standard Heading Formats
Texinfo provides two standard heading formats, one for manuals printed
@@ -19698,12 +22599,12 @@
on both sides of the paper.
By default, nothing is specified for the footing of a Texinfo file,
-so the footing remains blank.@refill
+so the footing remains blank.
The standard format for single-sided printing consists of a header
line in which the left-hand part contains the name of the chapter, the
central part is blank, and the right-hand part contains the page
-number.@refill
+number.
@need 950
A single-sided page looks like this:
@@ -19727,17 +22628,17 @@
correct, but during double-sided printing, it is wise to check that
pages will bind properly---sometimes a printer will produce output in
which the even-numbered pages have a larger right-hand margin than the
-odd-numbered pages.)@refill
+odd-numbered pages.)
In the standard double-sided format, the left part of the left-hand
(even-numbered) page contains the page number, the central part is
blank, and the right part contains the title (specified by the
@code{@@settitle} command). The left part of the right-hand
(odd-numbered) page contains the name of the chapter, the central part
-is blank, and the right part contains the page number.@refill
+is blank, and the right part contains the page number.
@need 750
-Two pages, side by side as in an open book, look like this:@refill
+Two pages, side by side as in an open book, look like this:
@example
@group
@@ -19754,10 +22655,9 @@
@noindent
The chapter name is preceded by the word ``Chapter'', the chapter number
and a colon. This makes it easier to keep track of where you are in the
-manual.@refill
+manual.
@node Heading Choice
-@comment node-name, next, previous, up
@section Specifying the Type of Heading
@TeX{} does not begin to generate page headings for a standard Texinfo
@@ -19766,35 +22666,35 @@
titlepage} command causes @TeX{} to begin to generate page headings
according to a standard format specified by the
@code{@@setchapternewpage} command that precedes the
-@code{@@titlepage} section.@refill
+@code{@@titlepage} section.
@need 1000
-There are four possibilities:@refill
+There are four possibilities:
@table @asis
@item No @code{@@setchapternewpage} command
Cause @TeX{} to specify the single-sided heading format, with chapters
-on new pages. This is the same as @code{@@setchapternewpage on}.@refill
+on new pages. This is the same as @code{@@setchapternewpage on}.
@item @code{@@setchapternewpage on}
-Specify the single-sided heading format, with chapters on new pages.@refill
+Specify the single-sided heading format, with chapters on new pages.
@item @code{@@setchapternewpage off}
-Cause @TeX{} to start a new chapter on the same page as the last page of
-the preceding chapter, after skipping some vertical whitespace. Also
-cause @TeX{} to typeset for single-sided printing. (You can override
-the headers format with the @code{@@headings double} command; see
-@ref{headings on off, , The @code{@@headings} Command}.)@refill
+Cause @TeX{} to start a new chapter on the same page as the last page
+of the preceding chapter, after skipping some vertical whitespace.
+Also cause @TeX{} to typeset for single-sided printing. (You can
+override the headers format with the @code{@@headings double} command;
+@pxref{@t{@@headings}}.)
@item @code{@@setchapternewpage odd}
-Specify the double-sided heading format, with chapters on new pages.@refill
-@end table
-
-@noindent
-Texinfo lacks an @code{@@setchapternewpage even} command.@refill
+Specify the double-sided heading format, with chapters on new pages.
+@end table
+
+@noindent
+Texinfo lacks an @code{@@setchapternewpage even} command.
+
@node Custom Headings
-@comment node-name, next, previous, up
@section How to Make Your Own Headings
You can use the standard headings provided with Texinfo or specify
@@ -19805,7 +22705,7 @@
footings:
@itemize @bullet
@item
-@code{@@everyheading} @code{@@everyfooting} generate page headers and
+@code{@@everyheading} and @code{@@everyfooting} generate page headers and
footers that are the same for both even- and odd-numbered pages.
@item
@code{@@evenheading} and @code{@@evenfooting} command generate headers
@@ -19816,10 +22716,9 @@
@end itemize
Write custom heading specifications in the Texinfo file immediately
-after the @code{@@end titlepage} command.
-You must cancel the predefined heading commands with the
-@code{@@headings off} command before defining your own
-specifications.
+after the @code{@@end titlepage} command. You must cancel the
+predefined heading commands with the @code{@@headings off} command
+before defining your own specifications.
@need 1000
Here is how to tell @TeX{} to place the chapter name at the left, the
@@ -19839,11 +22738,10 @@
Otherwise, the specification command will not be able to tell where
the text for one part ends and the next part begins.
-Each part can contain text or @@-commands. The text
-is printed as if the part were within an ordinary paragraph in the
-body of the page. The @@-commands replace
-themselves with the page number, date, chapter name, or
-whatever.
+Each part can contain text or @@-commands. The text is printed as if
+the part were within an ordinary paragraph in the body of the page.
+The @@-commands replace themselves with the page number, date, chapter
+name, or whatever.
@need 950
Here are the six heading and footing commands:
@@ -19987,7 +22885,7 @@
@node Catching Mistakes
-@appendix Formatting Mistakes
+@appendix Catching Mistakes
@cindex Structure, catching mistakes in
@cindex Nodes, catching mistakes
@cindex Catching mistakes
@@ -20002,34 +22900,36 @@
and chapters.
XEmacs has two tools for catching the @@-command mistakes and two for
-catching structuring mistakes.@refill
+catching structuring mistakes.
For finding problems with @@-commands, you can run @TeX{} or a region
formatting command on the region that has a problem; indeed, you can
-run these commands on each region as you write it.@refill
+run these commands on each region as you write it.
For finding problems with the structure of nodes and chapters, you can use
@kbd{C-c C-s} (@code{texinfo-show-structure}) and the related @code{occur}
-command and you can use the @kbd{M-x Info-validate} command.@refill
-
-@menu
-* makeinfo Preferred:: @code{makeinfo} finds errors.
+command and you can use the @kbd{M-x Info-validate} command.
+
+@menu
+* @t{makeinfo} Preferred:: @code{makeinfo} finds errors.
* Debugging with Info:: How to catch errors with Info formatting.
-* Debugging with TeX:: How to catch errors with @TeX{} formatting.
-* Using texinfo-show-structure:: How to use @code{texinfo-show-structure}.
-* Using occur:: How to list all lines containing a pattern.
-* Running Info-Validate:: How to find badly referenced nodes.
-@end menu
-
-
-@node makeinfo Preferred
-@section @code{makeinfo} Find Errors
+* Debugging with @TeX{}:: How to catch errors with @TeX{} formatting.
+* Using @t{texinfo-show-structure}:: How to use @code{texinfo-show-structure}.
+* Using @t{occur}:: How to list all lines containing a pattern.
+* Running @t{Info-validate}:: How to find badly referenced nodes.
+@end menu
+
+
+@node @t{makeinfo} Preferred
+@section @code{makeinfo} Preferred
+
+@c anchor{makeinfo Preferred}@c prev name
The @code{makeinfo} program does an excellent job of catching errors
and reporting them---far better than @code{texinfo-format-region} or
@code{texinfo-format-buffer}. In addition, the various functions for
automatically creating and updating node pointers and menus remove
-many opportunities for human error.@refill
+many opportunities for human error.
If you can, use the updating commands to create and insert pointers
and menus. These prevent many errors. Then use @code{makeinfo} (or
@@ -20037,22 +22937,22 @@
@code{makeinfo-buffer}) to format your file and check for other
errors. This is the best way to work with Texinfo. But if you
cannot use @code{makeinfo}, or your problem is very puzzling, then you
-may want to use the tools described in this appendix.@refill
+may want to use the tools described in this appendix.
+
@node Debugging with Info
-@comment node-name, next, previous, up
@section Catching Errors with Info Formatting
@cindex Catching errors with Info formatting
@cindex Debugging with Info formatting
After you have written part of a Texinfo file, you can use the
@code{texinfo-format-region} or the @code{makeinfo-region} command to
-see whether the region formats properly.@refill
+see whether the region formats properly.
Most likely, however, you are reading this section because for some
reason you cannot use the @code{makeinfo-region} command; therefore, the
rest of this section presumes that you are using
-@code{texinfo-format-region}.(a)refill
+@code{texinfo-format-region}.
If you have made a mistake with an @@-command,
@code{texinfo-format-region} will stop processing at or after the
@@ -20060,11 +22960,11 @@
error occurred, switch to the @samp{*Info Region*} buffer; the cursor
will be in a position that is after the location of the error. Also,
the text will not be formatted after the place where the error
-occurred (or more precisely, where it was detected).@refill
+occurred (or more precisely, where it was detected).
For example, if you accidentally end a menu with the command @code{@@end
menus} with an `s' on the end, instead of with @code{@@end menu}, you
-will see an error message that says:@refill
+will see an error message that says:
@example
@@end menus is not handled by texinfo
@@ -20072,7 +22972,7 @@
@noindent
The cursor will stop at the point in the buffer where the error
-occurs, or not long after it. The buffer will look like this:@refill
+occurs, or not long after it. The buffer will look like this:
@example
@group
@@ -20082,7 +22982,7 @@
* Using texinfo-show-structure:: How to use
`texinfo-show-structure'
to catch mistakes.
-* Running Info-Validate:: How to check for
+* Running Info-validate:: How to check for
unreferenced nodes.
@@end menus
@point{}
@@ -20091,7 +22991,7 @@
@end example
The @code{texinfo-format-region} command sometimes provides slightly
-odd error messages. For example, the following cross reference fails to format:@refill
+odd error messages. For example, the following cross reference fails to format:
@example
(@@xref@{Catching Mistakes, for more info.)
@@ -20102,11 +23002,11 @@
brace but displays a message that says @samp{Unbalanced parentheses}
rather than @samp{Unbalanced braces}. This is because the formatting
command looks for mismatches between braces as if they were
-parentheses.@refill
+parentheses.
Sometimes @code{texinfo-format-region} fails to detect mistakes. For
example, in the following, the closing brace is swapped with the
-closing parenthesis:@refill
+closing parenthesis:
@example
(@@xref@{Catching Mistakes), for more info.@}
@@ -20119,7 +23019,7 @@
@end example
The only way for you to detect this error is to realize that the
-reference should have looked like this:@refill
+reference should have looked like this:
@example
(*Note Catching Mistakes::, for more info.)
@@ -20143,105 +23043,22 @@
from the `Catching Mistakes' node by typing @kbd{l}
(@code{Info-last}).)
-@c !!! section on using Elisp debugger ignored.
-@ignore
-Sometimes @code{texinfo-format-region} will stop long after the
-original error; this is because it does not discover the problem until
-then. In this case, you will need to backtrack.@refill
-
-@c menu
-@c * Using the XEmacs Lisp Debugger:: How to use the XEmacs Lisp debugger.
-@c end menu
-
-@c node Using the XEmacs Lisp Debugger
-@c appendixsubsec Using the XEmacs Lisp Debugger
-@c index Using the XEmacs Lisp debugger
-@c index XEmacs Lisp debugger
-@c index Debugger, using the XEmacs Lisp
-
-If an error is especially elusive, you can turn on the XEmacs Lisp
-debugger and look at the backtrace; this tells you where in the
-@code{texinfo-format-region} function the problem occurred. You can
-turn on the debugger with the command:@refill
-
-@example
-M-x set-variable @key{RET} debug-on-error @key{RET} t @key{RET}
-@end example
-
-@noindent
-and turn it off with
-
-@example
-M-x set-variable @key{RET} debug-on-error @key{RET} nil @key{RET}
-@end example
-
-Often, when you are using the debugger, it is easier to follow what is
-going on if you use the XEmacs Lisp files that are not byte-compiled.
-The byte-compiled sources send octal numbers to the debugger that may
-look mysterious. To use the uncompiled source files, load
-(a)file{texinfmt.el} and @file{texinfo.el} with the @kbd{M-x load-file}
-command.@refill
-
-The debugger will not catch an error if @code{texinfo-format-region}
-does not detect one. In the example shown above,
-@code{texinfo-format-region} did not find the error when the whole
-list was formatted, but only when part of the list was formatted.
-When @code{texinfo-format-region} did not find an error, the debugger
-did not find one either. @refill
-
-However, when @code{texinfo-format-region} did report an error, it
-invoked the debugger. This is the backtrace it produced:@refill
-
-@example
----------- Buffer: *Backtrace* ----------
-Signalling: (search-failed "[@},]")
- re-search-forward("[@},]")
- (while ...)
- (let ...)
- texinfo-format-parse-args()
- (let ...)
- texinfo-format-xref()
- funcall(texinfo-format-xref)
- (if ...)
- (let ...)
- (if ...)
- (while ...)
- texinfo-format-scan()
- (save-excursion ...)
- (let ...)
- texinfo-format-region(103370 103631)
-* call-interactively(texinfo-format-region)
----------- Buffer: *Backtrace* ----------
-@end example
-
-The backtrace is read from the bottom up.
-@code{texinfo-format-region} was called interactively; and it, in
-turn, called various functions, including @code{texinfo-format-scan},
-@code{texinfo-format-xref} and @code{texinfo-format-parse-args}.
-Inside the function @code{texinfo-format-parse-args}, the function
-@code{re-search-forward} was called; it was this function that could
-not find the missing right-hand brace.@refill
-
-@xref{Lisp Debug, , Debugging XEmacs Lisp, xemacs, XEmacs User's Manual},
-for more information.@refill
-@end ignore
-
-@node Debugging with TeX
-@comment node-name, next, previous, up
-@section Catching Errors with @TeX{} Formatting
+
+@node Debugging with @TeX{}
+@section Debugging with @TeX{}
@cindex Catching errors with @TeX{} formatting
@cindex Debugging with @TeX{} formatting
-You can also catch mistakes when you format a file with @TeX{}.@refill
+You can also catch mistakes when you format a file with @TeX{}.
Usually, you will want to do this after you have run
@code{texinfo-format-buffer} (or, better, @code{makeinfo-buffer}) on
the same file, because @code{texinfo-format-buffer} sometimes displays
error messages that make more sense than @TeX{}. (@xref{Debugging
-with Info}, for more information.)@refill
+with Info}, for more information.)
For example, @TeX{} was run on a Texinfo file, part of which is shown
-here:@refill
+here:
@example
---------- Buffer: texinfo.texi ----------
@@ -20255,7 +23072,7 @@
@noindent
(The cross reference lacks a closing brace.)
-@TeX{} produced the following output, after which it stopped:@refill
+@TeX{} produced the following output, after which it stopped:
@example
---------- Buffer: *tex-shell* ----------
@@ -20282,22 +23099,22 @@
@samp{@@par} is an internal @TeX{} command of no relevance to Texinfo.
@samp{l.27} means that @TeX{} detected the problem on line 27 of the
Texinfo file. The @samp{?} is the prompt @TeX{} uses in this
-circumstance.@refill
+circumstance.
Unfortunately, @TeX{} is not always so helpful, and sometimes you must
-truly be a Sherlock Holmes to discover what went wrong.@refill
+truly be a Sherlock Holmes to discover what went wrong.
In any case, if you run into a problem like this, you can do one of three
-things.@refill
+things.
@enumerate
@item
You can tell @TeX{} to continue running and ignore just this error by
-typing @key{RET} at the @samp{?} prompt.@refill
+typing @key{RET} at the @samp{?} prompt.
@item
You can tell @TeX{} to continue running and to ignore all errors as best
-it can by typing @kbd{r @key{RET}} at the @samp{?} prompt.@refill
+it can by typing @kbd{r @key{RET}} at the @samp{?} prompt.
This is often the best thing to do. However, beware: the one error
may produce a cascade of additional error messages as its consequences
@@ -20307,7 +23124,7 @@
@item
You can tell @TeX{} to stop this run by typing @kbd{x @key{RET}}
-at the @samp{?} prompt.@refill
+at the @samp{?} prompt.
@end enumerate
If you are running @TeX{} inside XEmacs, you need to switch to the shell
@@ -20318,7 +23135,7 @@
but @TeX{} is able to continue processing anyhow. For example, if you fail
to end an itemized list with the @code{@@end itemize} command, @TeX{} will
write a DVI file that you can print out. The only error message that
-@TeX{} will give you is the somewhat mysterious comment that@refill
+@TeX{} will give you is the somewhat mysterious comment:
@example
(@@end occurred inside a group at level 1)
@@ -20330,17 +23147,17 @@
it were part of the last item in the itemized list. The error message
is the way @TeX{} says that it expected to find an @code{@@end}
command somewhere in the file; but that it could not determine where
-it was needed.@refill
+it was needed.
Another source of notoriously hard-to-find errors is a missing
@code{@@end group} command. If you ever are stumped by
incomprehensible errors, look for a missing @code{@@end group} command
-first.@refill
+first.
If the Texinfo file lacks header lines,
@TeX{} may stop in the
beginning of its run and display output that looks like the following.
-The @samp{*} indicates that @TeX{} is waiting for input.@refill
+The @samp{*} indicates that @TeX{} is waiting for input.
@example
This is TeX, Version 3.14159 (Web2c 7.0)
@@ -20353,17 +23170,17 @@
write the header lines in the Texinfo file and run the @TeX{} command
again. (Note the use of the backslash, @samp{\}. @TeX{} uses @samp{\}
instead of @samp{@@}; and in this circumstance, you are working
-directly with @TeX{}, not with Texinfo.)@refill
-
-@node Using texinfo-show-structure
-@comment node-name, next, previous, up
+directly with @TeX{}, not with Texinfo.)
+
+@node Using @t{texinfo-show-structure}
@section Using @code{texinfo-show-structure}
+
@cindex Showing the structure of a file
@findex texinfo-show-structure
It is not always easy to keep track of the nodes, chapters, sections, and
subsections of a Texinfo file. This is especially true if you are revising
-or adding to a Texinfo file that someone else has written.@refill
+or adding to a Texinfo file that someone else has written.
In XEmacs, in Texinfo mode, the @code{texinfo-show-structure}
command lists all the lines that begin with the @@-commands that
@@ -20372,11 +23189,11 @@
as prefix argument, if interactive),
the command also shows the @code{@@node} lines. The
@code{texinfo-show-structure} command is bound to @kbd{C-c C-s} in
-Texinfo mode, by default.@refill
+Texinfo mode, by default.
The lines are displayed in a buffer called the @samp{*Occur*} buffer,
indented by hierarchical level. For example, here is a part of what was
-produced by running @code{texinfo-show-structure} on this manual:@refill
+produced by running @code{texinfo-show-structure} on this manual:
@example
@group
@@ -20402,13 +23219,13 @@
@kbd{C-c C-c} command (@code{occur-mode-goto-occurrence}), to jump to
the corresponding spot in the Texinfo file. @xref{Other Repeating
Search, , Using Occur, xemacs, XEmacs User's Manual}, for more
-information about @code{occur-mode-goto-occurrence}.@refill
+information about @code{occur-mode-goto-occurrence}.
The first line in the @samp{*Occur*} window describes the @dfn{regular
expression} specified by @var{texinfo-heading-pattern}. This regular
expression is the pattern that @code{texinfo-show-structure} looks for.
@xref{Regexps, , Using Regular Expressions, xemacs, XEmacs User's Manual},
-for more information.@refill
+for more information.
When you invoke the @code{texinfo-show-structure} command, XEmacs will
display the structure of the whole buffer. If you want to see the
@@ -20416,20 +23233,20 @@
use the @kbd{C-x n n} (@code{narrow-to-region}) command to mark the
region. (@xref{Narrowing, , , xemacs, XEmacs User's Manual}.) This is
how the example used above was generated. (To see the whole buffer
-again, use @kbd{C-x n w} (@code{widen}).)@refill
+again, use @kbd{C-x n w} (@code{widen}).)
If you call @code{texinfo-show-structure} with a prefix argument by
typing @w{@kbd{C-u C-c C-s}}, it will list lines beginning with
@code{@@node} as well as the lines beginning with the @@-sign commands
-for @code{@@chapter}, @code{@@section}, and the like.@refill
+for @code{@@chapter}, @code{@@section}, and the like.
You can remind yourself of the structure of a Texinfo file by looking at
the list in the @samp{*Occur*} window; and if you have mis-named a node
-or left out a section, you can correct the mistake.@refill
-
-@node Using occur
-@comment node-name, next, previous, up
+or left out a section, you can correct the mistake.
+
+@node Using @t{occur}
@section Using @code{occur}
+
@cindex Occurrences, listing with @code{@@occur}
@findex occur
@@ -20437,7 +23254,7 @@
information. Perhaps you want to remind yourself of the overall structure
of a Texinfo file, and are overwhelmed by the detailed list produced by
@code{texinfo-show-structure}. In this case, you can use the @code{occur}
-command directly. To do this, type@refill
+command directly. To do this, type:
@example
@kbd{M-x occur}
@@ -20446,15 +23263,15 @@
@noindent
and then, when prompted, type a @dfn{regexp}, a regular expression for
the pattern you want to match. (@xref{Regexps, , Regular Expressions,
-xemacs, XEmacs User's Manual}.) The @code{occur} command works from the
-current location of the cursor in the buffer to the end of the buffer.
-If you want to run @code{occur} on the whole buffer, place the cursor at
-the beginning of the buffer.@refill
+xemacs, XEmacs User's Manual}.) The @code{occur} command works from
+the current location of the cursor in the buffer to the end of the
+buffer. If you want to run @code{occur} on the whole buffer, place
+the cursor at the beginning of the buffer.
For example, to see all the lines that contain the word
@samp{@@chapter} in them, just type @samp{@@chapter}. This will
produce a list of the chapters. It will also list all the sentences
-with @samp{@@chapter} in the middle of the line.@refill
+with @samp{@@chapter} in the middle of the line.
If you want to see only those lines that start with the word
@samp{@@chapter}, type @samp{^@@chapter} when prompted by
@@ -20462,14 +23279,16 @@
or phrase, end the last word with a @samp{$}; for example,
@samp{catching mistakes$}. This can be helpful when you want to see
all the nodes that are part of the same chapter or section and
-therefore have the same `Up' pointer.@refill
+therefore have the same `Up' pointer.
@xref{Other Repeating Search, , Using Occur, xemacs, XEmacs User's Manual},
-for more information.@refill
-
-@node Running Info-Validate
-@comment node-name, next, previous, up
+for more information.
+
+
+@node Running @t{Info-validate}
@section Finding Badly Referenced Nodes
+
+@anchor{Running Info-Validate}@c old name
@findex Info-validate
@cindex Nodes, checking for badly referenced
@cindex Checking for badly referenced nodes
@@ -20481,47 +23300,49 @@
the `Next', `Previous', `Up' or other node pointers fail to point to a
node. This command checks that every node pointer points to an
existing node. The @code{Info-validate} command works only on Info
-files, not on Texinfo files.@refill
+files, not on Texinfo files.
The @code{makeinfo} program validates pointers automatically, so you
do not need to use the @code{Info-validate} command if you are using
@code{makeinfo}. You only may need to use @code{Info-validate} if you
are unable to run @code{makeinfo} and instead must create an Info file
using @code{texinfo-format-region} or @code{texinfo-format-buffer}, or
-if you write an Info file from scratch.@refill
-
-@menu
-* Using Info-validate:: How to run @code{Info-validate}.
+if you write an Info file from scratch.
+
+@menu
+* Using @t{Info-validate}:: How to run @code{Info-validate}.
* Unsplit:: How to create an unsplit file.
* Tagifying:: How to tagify a file.
* Splitting:: How to split a file manually.
@end menu
-@node Using Info-validate
-@subsection Running @code{Info-validate}
-@cindex Running @code{Info-validate}
+
+@node Using @t{Info-validate}
+@subsection Using @code{Info-validate}
+
+@cindex Using @code{Info-validate}
@cindex Info validating a large file
@cindex Validating a large file
To use @code{Info-validate}, visit the Info file you wish to check and
-type:@refill
+type:
@example
M-x Info-validate
@end example
@noindent
-Note that the @code{Info-validate} command requires an upper case
-`I'. You may also need to create a tag table before running
+Note that the @code{Info-validate} command requires an uppercase
+`I'@. You may also need to create a tag table before running
@code{Info-validate}. @xref{Tagifying}.
If your file is valid, you will receive a message that says ``File appears
valid''. However, if you have a pointer that does not point to a node,
error messages will be displayed in a buffer called @samp{*problems in
-info file*}.@refill
+info file*}.
For example, @code{Info-validate} was run on a test file that contained
-only the first node of this manual. One of the messages said:@refill
+only the first node of this manual. One of the messages said:
@example
In node "Overview", invalid Next: Texinfo Mode
@@ -20530,11 +23351,11 @@
@noindent
This meant that the node called @samp{Overview} had a `Next' pointer that
did not point to anything (which was true in this case, since the test file
-had only one node in it).@refill
+had only one node in it).
Now suppose we add a node named @samp{Texinfo Mode} to our test case
but we do not specify a `Previous' for this node. Then we will get
-the following error message:@refill
+the following error message:
@example
In node "Texinfo Mode", should have Previous: Overview
@@ -20542,10 +23363,10 @@
@noindent
This is because every `Next' pointer should be matched by a
-`Previous' (in the node where the `Next' points) which points back.@refill
+`Previous' (in the node where the `Next' points) which points back.
@code{Info-validate} also checks that all menu entries and cross references
-point to actual nodes.@refill
+point to actual nodes.
@code{Info-validate} requires a tag table and does not work with files
that have been split. (The @code{texinfo-format-buffer} command
@@ -20555,7 +23376,6 @@
tag table for the unsplit file.
@node Unsplit
-@comment node-name, next, previous, up
@subsection Creating an Unsplit File
@cindex Creating an unsplit file
@cindex Unsplit file creation
@@ -20568,12 +23388,12 @@
a way that it does not create indirect subfiles. You will also need
to create a tag table for the Info file. After you have done this,
you can run @code{Info-validate} and look for badly referenced
-nodes.@refill
+nodes.
The first step is to create an unsplit Info file. To prevent
@code{texinfo-format-buffer} from splitting a Texinfo file into
smaller Info files, give a prefix to the @kbd{M-x
-texinfo-format-buffer} command:@refill
+texinfo-format-buffer} command:
@example
C-u M-x texinfo-format-buffer
@@ -20588,7 +23408,7 @@
@noindent
When you do this, Texinfo will not split the file and will not create
-a tag table for it. @refill
+a tag table for it.
@cindex Making a tag table manually
@cindex Tag table, making manually
@@ -20596,25 +23416,25 @@
@subsection Tagifying a File
After creating an unsplit Info file, you must create a tag table for
-it. Visit the Info file you wish to tagify and type:@refill
+it. Visit the Info file you wish to tagify and type:
@example
M-x Info-tagify
@end example
@noindent
-(Note the upper case @samp{I} in @code{Info-tagify}.) This creates an
-Info file with a tag table that you can validate.@refill
-
-The third step is to validate the Info file:@refill
+(Note the uppercase @samp{I} in @code{Info-tagify}.) This creates an
+Info file with a tag table that you can validate.
+
+The third step is to validate the Info file:
@example
M-x Info-validate
@end example
@noindent
-(Note the upper case @samp{I} in @code{Info-validate}.)
-In brief, the steps are:@refill
+(Note the uppercase @samp{I} in @code{Info-validate}.)
+In brief, the steps are:
@example
@group
@@ -20627,10 +23447,9 @@
After you have validated the node structure, you can rerun
@code{texinfo-format-buffer} in the normal way so it will construct a
tag table and split the file automatically, or you can make the tag
-table and split the file manually.@refill
+table and split the file manually.
@node Splitting
-@comment node-name, next, previous, up
@subsection Splitting a File Manually
@cindex Splitting an Info file manually
@cindex Info file, splitting manually
@@ -20638,30 +23457,23 @@
You should split a large file or else let the
@code{texinfo-format-buffer} or @code{makeinfo-buffer} command do it
for you automatically. (Generally you will let one of the formatting
-commands do this job for you. @xref{Creating an Info File}.)@refill
-
-The split-off files are called the indirect subfiles.@refill
+commands do this job for you. @xref{Creating an Info File}.)
+
+The split-off files are called the indirect subfiles.
Info files are split to save memory. With smaller files, XEmacs does not
-have make such a large buffer to hold the information.@refill
+have to make such a large buffer to hold the information.
If an Info file has more than 30 nodes, you should also make a tag
-table for it. @xref{Using Info-validate}, for information
+table for it. @xref{Using @t{Info-validate}}, for information
about creating a tag table. (Again, tag tables are usually created
automatically by the formatting command; you only need to create a tag
table yourself if you are doing the job manually. Most likely, you
will do this for a large, unsplit file on which you have run
-@code{Info-validate}.)(a)refill
-
-@c Info-split is autoloaded in `loaddefs.el' in Emacs 18.51
-@ignore
-Before running @code{Info-split}, you need to load the @code{info} library
-into XEmacs by giving the command @kbd{M-x load-library @key{RET} info
-@key{RET}}.
-@end ignore
+@code{Info-validate}.)
Visit the Info file you wish to tagify and split and type the two
-commands:@refill
+commands:
@example
M-x Info-tagify
@@ -20669,548 +23481,989 @@
@end example
@noindent
-(Note that the @samp{I} in @samp{Info} is upper case.)@refill
+(Note that the @samp{I} in @samp{Info} is uppercase.)
When you use the @code{Info-split} command, the buffer is modified into a
(small) Info file which lists the indirect subfiles. This file should be
saved in place of the original visited file. The indirect subfiles are
written in the same directory the original file is in, with names generated
-by appending @samp{-} and a number to the original file name.@refill
+by appending @samp{-} and a number to the original file name.
The primary file still functions as an Info file, but it contains just
-the tag table and a directory of subfiles.@refill
-
-
-@ignore
-The simple description in the command summary seems sufficient to me
-these days, so ignore this appendix. --karl, 13mar04.
-
-@node Refilling Paragraphs
-@appendix Refilling Paragraphs
-@cindex Refilling paragraphs
-@cindex Filling paragraphs
-@cindex Paragraphs, filling
-@findex refill
-
-The @code{@@refill} command refills and, optionally, indents the first
-line of a paragraph.@footnote{Perhaps the command should have been
-called the @code{@@refillandindent} command, but @code{@@refill} is
-shorter and the name was chosen before indenting was possible.} The
-@code{@@refill} command is no longer important, but we describe it here
-because you once needed it. You will see it in many old Texinfo
-files.@refill
-
-Without refilling, paragraphs containing long @@-constructs may look
-bad after formatting because the formatter removes @@-commands and
-shortens some lines more than others. In the past, neither the
-@code{texinfo-format-region} command nor the
-@code{texinfo-format-buffer} command refilled paragraphs
-automatically. The @code{@@refill} command had to be written at the
-end of every paragraph to cause these formatters to fill them. (Both
-@TeX{} and @code{makeinfo} have always refilled paragraphs
-automatically.) Now, all the Info formatters automatically fill and
-indent those paragraphs that need to be filled and indented.@refill
-
-The @code{@@refill} command causes @code{texinfo-format-region} and
-@code{texinfo-format-buffer} to refill a paragraph in the Info file
-@emph{after} all the other processing has been done. For this reason,
-you can not use @code{@@refill} with a paragraph containing either
-@code{@@*} or @code{@@w@{ @dots{} @}} since the refilling action will
-override those two commands.@refill
-
-The @code{texinfo-format-region} and @code{texinfo-format-buffer}
-commands now automatically append @code{@@refill} to the end of each
-paragraph that should be filled. They do not append @code{@@refill} to
-the ends of paragraphs that contain @code{@@*} or @w{@code{@@w@{ @dots{}@}}}
-and therefore do not refill or indent them.@refill
-
-@end ignore
+the tag table and a directory of subfiles.
+
+
+@node Info Format Specification
+@appendix Info Format Specification
+
+@cindex Info format specification
+@cindex Specification of Info format
+@cindex Definition of Info format
+
+Here we describe the technical details of the Info format.
+
+This format definition was written some 25 years after the Info format
+was first devised. So in the event of conflicts between this
+definition and actual practice, practice wins. It also assumes some
+general knowledge of Texinfo; it is meant to be a guide for
+implementors rather than a rigid technical standard. We often refer
+back to other parts of this manual for examples and definitions,
+rather than redundantly spelling out every detail.
+
+In this formal description, the characters @code{<>*()|=#} are used
+for the language of the description itself. Other characters are
+literal. The formal constructs used are typical: @code{<...>}
+indicates a metavariable name, @samp{=} means definition, @samp{*}
+repetition, @samp{?} optional, @samp{()} grouping, @samp{|}
+alternation, @samp{#} comment. Exception: @samp{*} at the beginning
+of a line is literal.
+
+We specify literal parentheses (those that are part of the Info
+format) with @t{<lparen>} and @t{<rparen>}, meaning the single
+characters @samp{(} and @samp{)} respectively.
+
+Finally, the two-character sequence @samp{^@var{x}} means the single
+character @samp{CTRL-@var{x}}, for any @var{x}.
+
+@menu
+* General: Info Format General Layout.
+* Text: Info Format Text Constructs.
+@end menu
+
+
+@node Info Format General Layout
+@section Info Format General Layout
+
+This section describes the overall layout of Info manuals.
+
+@menu
+* Whole: Info Format Whole Manual. Split vs.@: nonsplit manuals.
+* Preamble: Info Format Preamble.
+* Indirect: Info Format Indirect Tag Table.
+* Tag table: Info Format Tag Table.
+* Local variables: Info Format Local Variables.
+* Regular nodes: Info Format Regular Nodes.
+@end menu
+
+
+@node Info Format Whole Manual
+@subheading Info Format: A Whole Manual
+
+@cindex Nonsplit manuals, Info format of
+@cindex Split manuals, Info format of
+@cindex Whole manual, in Info format
+
+To begin, an Info manual is either @dfn{nonsplit} (contained wholly
+within a single file) or @dfn{split} (across several files).
+
+The syntax for a nonsplit manual is:
+
+@example
+ <nonsplit info file> =
+<preamble>
+<node>*
+<tag table>
+(<local variables>)?
+@end example
+
+When split, there is a @dfn{main file}, which contains only pointers
+to the nodes given in other @dfn{subfiles}. The main file looks
+like this:
+
+@example
+ <split info main file> =
+<preamble>
+<indirect table>
+<tag table>
+(<local variables>)?
+@end example
+
+The subfiles in a split manual have the following syntax:
+
+@example
+ <split info subfile> =
+<preamble>
+<node>*
+@end example
+
+
+@node Info Format Preamble
+@subheading Info Format: Preamble
+
+@cindex Preamble, in Info format
+
+The @t{<preamble>} is text at the beginning of all output files.
+It is not intended to be visible by default in an Info viewer, but
+may be displayed upon user request.
+
+@example
+ <preamble> =
+<identification> # "This is FILENAME, produced by ..."
+<copying text> # Expansion of @@copying text.
+<dir entries> # Derived from @@dircategory and @@direntry.
+@end example
+
+These pieces are:
+
+@table @t
+@item <identification line>
+An arbitrary string beginning the output file, followed by a blank
+line.
+
+@item <copying text>
+The expansion of an @code{@@copying} environment, if the manual has
+one (@pxref{@t{@@copying}}).
+
+@item <dir entries>
+The result of any @code{@@dircategory} and @code{@@direntry}
+commands present in the manual (@pxref{Installing Dir Entries}).
+
+@end table
+
+
+@node Info Format Indirect Tag Table
+@subheading Info Format: Indirect Tag Table
+
+@cindex Indirect tag table, in Info format
+
+The indirect table is written to the main file in the case of split
+output only. It specifies the starting byte position of each split
+output file (as a decimal integer):
+
+@example
+ <indirect table> =
+^_
+Indirect:
+(<filename>: <bytepos>)*
+@end example
+
+The number of preamble bytes written to each output file is included
+in the positions. Neither the preamble nor the size of the top-level
+output file is included.
+
+The first actual node of content will be pointed to by the first
+entry.
+
+Unfortunately, Info-creating programs such as @code{makeinfo} have not
+always implemented these rules perfectly, due to various bugs and
+oversights. Therefore, robust Info viewers should fall back to
+searching ``nearby'' the given position for a node, instead of just
+giving up if the position is not perfectly at a node beginning.
+
+As an example, suppose split output is generated for the GDB manual.
+The top-level file @file{gdb.info} will contain something like this:
+
+@example
+^_
+Indirect:
+gdb.info-1: 1878
+gdb.info-2: 295733
+...
+@end example
+
+This tells Info viewers that the first node of the manual occurs at
+byte 1878 (i.e., after the preamble) of the file @file{gdb.info-1}.
+The first node written to @file{gdb.info-2} would start at byte 295733
+if the subsequent @file{gdb.info-*} files (not including
+(a)file{gdb.info} files were appended to @file{gdb.info-1}, including
+their preambles.
+
+
+@node Info Format Tag Table
+@subheading Info Format: Tag Table
+
+@cindex Tag table, in Info format
+
+The tag table specifies the starting byte position of each node and anchor
+in the file. It is written in the main output file only, not (in the
+case of split output) any subfiles.
+
+@example
+ <tag table> =
+^_
+Tag Table:
+<lparen>Indirect<rparen> # this line appears in split output only
+(Node|Ref): <nodeid>^?<bytepos>
+^_
+End Tag Table
+@end example
+
+The @samp{(Indirect)} line is the next line after @samp{Tag Table:}
+in the case of split output only.
+
+Each following line defines an identifier as either an anchor or a
+node, as specific. It is an error to define the same identifier both
+ways. For example, @samp{Node: Top^?1647} says that the node named
+@samp{Top} starts at byte 1647 while @samp{Ref:
+Overview-Footnote-1^?30045} says that the anchor named
+@samp{Overview-Footnote-1} starts at byte 30045.
+
+In the case of nonsplit output, the byte positions simply refer to the
+location in the output file. In the case of split output, the byte
+positions refer to an imaginary file created by concatenating all the
+split files (but not the top-level file). See the previous section.
+
+Here is an example:
+
+@example
+^_
+Tag Table:
+Node: Top^_89
+Node: Ch1^_292
+^_
+End Tag Table
+@end example
+
+This specifies a manual with two nodes, `Top' and `Ch1', at byte
+positions 89 and 292 respectively. Because the @samp{(Indirect)} line
+is not present, the manual is not split.
+
+
+@node Info Format Local Variables
+@subheading Info Format: Local Variables
+
+@cindex Local variable section, in Info format
+
+The local variables section is optional and is currently used to give the
+encoding information. It may be augmented in the future.
+
+@example
+ <local variables> =
+^_
+Local Variables:
+coding: <encoding>
+End:
+@end example
+
+@xref{@t{@@documentencoding}}.
+
+
+@node Info Format Regular Nodes
+@subheading Info Format: Regular Nodes
+
+@cindex Info nodes, in Info format
+
+Regular nodes look like this:
+
+@example
+ <node> =
+^_
+File: <fn>, Node: <id1>, (Next: <id2>, )? (Prev: <id3>, )? Up: <id4>
+
+<general text, until the next ^_ or end-of-file>
+@end example
+
+The @code{Next} and @code{Prev} pointers are optional. The @code{Up}
+pointer may technically also be absent, although this is most likely the
+case of a wrongly-structured Info manual. At least one space must be
+present after each colon and comma, but any number of spaces are
+ignored.
+
+This @t{<node>} defines @t{<id1>} in file @t{<fn>}, which is typically
+just @samp{manualname} or perhaps @samp{manualname.info}. Each of the
+other references @t{<id2>}, @t{<id3>}, and @t{<id4>} must be defined
+with either @samp{Node} or @samp{Ref} in the @t{<tag table>}.
+
+Conventionally the nodes are arranged to form a tree, but this is not
+a requirement of the format. Each pointer can refer to any defined
+identifier.
+
+Identifiers cannot include periods, commas, colons or parentheses
+(including @@-commands which produce any of these); these can confuse
+Info readers. @xref{Node Line Requirements}.
+
+The @t{<general text>} of the node can include the special constructs
+described next.
+
+
+@node Info Format Text Constructs
+@section Info Format Text Constructs
+
+@cindex Info format text constructs
+@cindex text constructs, Info format
+
+These special Info constructs can appear within the text of a node.
+
+@menu
+* Menu: Info Format Menu.
+* Image: Info Format Image.
+* Printindex: Info Format Printindex.
+* Xref: Info Format Cross Reference.
+@end menu
+
+
+@node Info Format Menu
+@subsection Info Format: Menu
+
+@cindex Menus, in Info format
+
+Conventionally menus appear at the end of nodes, but the Info format
+places no restrictions on their location.
+
+@example
+ <menu> =
+* Menu:
+(<menu entry> | <menu comment>)*
+@end example
+
+The parts of a @t{<menu entry>} are described in @ref{Menu Parts}.
+
+A @t{<menu comment>} is any line not beginning with @samp{*} that
+appears either at the beginning of the menu or is separated from a
+menu entry by one or more blank lines. These comments are intended to
+be displayed as part of the menu, as-is (@pxref{Writing a Menu}).
+
+
+@node Info Format Image
+@subsection Info Format: Image
+
+@cindex Images, in Info format
+
+The @code{@@image} command results in the following special directive
+within the Info file (@pxref{Images}):
+
+@example
+ <image> =
+^@@^H[image src="<image file>"
+ (text="<txt file contents>")?
+ (alt="<alt text>")?
+^@@^H]
+@end example
+
+The line breaks and indentation in this description are editorial; the
+whitespace between the different parts of the directive in Info files
+is arbitrary.
+
+In the string @t{<image file>}, @t{<txt file contents>} and @t{<alt
+text>}, @samp{"} is quoted as @samp{\"} and @samp{\} is quoted as
+@samp{\\}. The text and alt specifications are optional.
+
+The @t{alt} value serves the same purpose as in HTML: A prose
+description of the image. In text-only displays or speech systems,
+for example, the @t{alt} value may be used instead of displaying the
+(typically graphical) @t{<image file>}.
+
+The @t{<txt file contents>}, if present, should be taken as an ASCII
+representation of the image, and also may be used on a text-only
+display.
+
+The format does not prescribe the choice between displaying the
+@t{<image file>}, the @t{<alt text>} or @t{<txt file contents>}.
+
+
+@node Info Format Printindex
+@subsection Info Format: Printindex
+
+@cindex Indices, in Info format
+
+Indices in Info format are generally written as a menu
+(@pxref{Indices}), but with an additional directive at the beginning
+marking this as an index node:
+
+@example
+ <printindex> =
+^@@^H[index^@@^H]
+* Menu:
+
+<index entry>*
+@end example
+
+The @t{<index entry>} items are similar to normal menu entries, but
+the free-format description is replaced by the line number of where
+the entries occurs in the text:
+
+@example
+ <index entry> =
+* <entry text>: <entry node>. <lparen>line <lineno><rparen>
+@end example
+
+@noindent
+The @t{<entry text>} is the index term. The @t{<lineno>} is an
+unsigned integer, given relative to the start of the @t{<entry node>}.
+There may be arbitrary whitespace after the colon and period, as usual
+in menus. Here is an example:
+
+@example
+^@@^H[index^@@^H]
+* Menu:
+
+* thunder: Weather Phenomena. (line 5)
+@end example
+
+This means that an index entry for `thunder' appears at line 5 of the
+node `Weather Phenomena'.
+
+
+@node Info Format Cross Reference
+@subsection Info Format: Cross Reference
+
+@cindex Cross references, in Info format
+
+A general cross reference in Info format is written as follows:
+
+@example
+ <cross-reference> =
+* (N|n)ote (<id>:: | <label>:(<lparen><infofile><rparen>)?<id>(.|,))
+@end example
+
+Whether @samp{note} or @samp{Note} is used is not significant.
+
+The @samp{<id>::} form indicates a node or anchor reference within the
+current manual.
+
+The longer form indicates a general reference, typically used to refer
+to a node or anchor in a different manual, but possibly to the current
+manual. The @t{<label>} is descriptive text; the optional
+@samp{(<infofile>)} is the filename of the manual being referenced,
+and the @t{<id>} is the node or anchor within that manual, terminated
+by a comma or period. That final punctuation is part of the
+surrounding sentence, and should be displayed.
+
+Here are some examples:
+
+@example
+*note GNU Free Documentation License::
+*note Tag table: Info Format Tag Table, for details.
+*Note Overview: (make)Top.
+@end example
+
+The first shows the short form, a reference to a node in the current
+manual.
+
+The second also refers to a node in the current manual, namely `Info
+Format Tag Table'; the `Tag table' before the @samp{:} is only a label
+on this particular reference.
+
+The third example refers to the node `Top' in another manual, namely
+@samp{make}, with `Overview' being the label for this cross reference.
+
+@xref{Cross References}.
+
+
+@c The simple description in the command summary seems sufficient to me
+@c these days, so ignore this appendix. --karl, 13mar04.
+@c
+@c @node Refilling Paragraphs
+@c @appendix Refilling Paragraphs
+@c @cindex Refilling paragraphs
+@c @cindex Filling paragraphs
+@c @cindex Paragraphs, filling
+@c @findex refill
+@c
+@c The @code{@@refill} command refills and, optionally, indents the first
+@c line of a paragraph.@footnote{Perhaps the command should have been
+@c called the @code{@@refillandindent} command, but @code{@@refill} is
+@c shorter and the name was chosen before indenting was possible.} The
+@c @code{@@refill} command is no longer important, but we describe it here
+@c because you once needed it. You will see it in many old Texinfo
+@c files.
+@c
+@c Without refilling, paragraphs containing long @@-constructs may look
+@c bad after formatting because the formatter removes @@-commands and
+@c shortens some lines more than others. In the past, neither the
+@c @code{texinfo-format-region} command nor the
+@c @code{texinfo-format-buffer} command refilled paragraphs
+@c automatically. The @code{@@refill} command had to be written at the
+@c end of every paragraph to cause these formatters to fill them. (Both
+@c @TeX{} and @code{makeinfo} have always refilled paragraphs
+@c automatically.) Now, all the Info formatters automatically fill and
+@c indent those paragraphs that need to be filled and indented.
+@c
+@c The @code{@@refill} command causes @code{texinfo-format-region} and
+@c @code{texinfo-format-buffer} to refill a paragraph in the Info file
+@c @emph{after} all the other processing has been done. For this reason,
+@c you can not use @code{@@refill} with a paragraph containing either
+@c @code{@@*} or @code{@@w@{ @dots{} @}} since the refilling action will
+@c override those two commands.
+@c
+@c The @code{texinfo-format-region} and @code{texinfo-format-buffer}
+@c commands now automatically append @code{@@refill} to the end of each
+@c paragraph that should be filled. They do not append @code{@@refill} to
+@c the ends of paragraphs that contain @code{@@*} or @w{@code{@@w@{ @dots{}@}}}
+@c and therefore do not refill or indent them.
@c These are no longer ``new'', and the explanations
-@c are all given elsewhere anyway, I think. --karl, 25apr97.
-@c So ignore the entire appendix.
-@ignore
+@c are all given elsewhere anyway. So ignore the entire appendix.
+@c --karl, 25apr97.
@c node New Features, Command and Variable Index, Obtaining TeX, Top
@c appendix Second Edition Features
-@tex
-% Widen the space for the first column so three control-character
-% strings fit in the first column. Switched back to default .8in
-% value at end of chapter.
-\global\tableindent=1.0in
-@end tex
-
-The second edition of the Texinfo manual describes more than 20 new
-Texinfo mode commands and more than 50 previously undocumented Texinfo
-@@-commands. This edition is more than twice the length of the first
-edition.@refill
-
-Here is a brief description of the new commands.@refill
-
-@c menu
-* New Texinfo Mode Commands:: The updating commands are especially useful.
-* New Commands:: Many newly described @@-commands.
-@c end menu
-
-@c node New Texinfo Mode Commands, New Commands, Obtaining TeX, Obtaining TeX
-@c appendixsec New Texinfo Mode Commands
-
-Texinfo mode provides commands and features especially designed for
-working with Texinfo files. More than 20 new commands have been
-added, including commands for automatically creating and updating
-both nodes and menus. This is a tedious task when done by hand.@refill
-
-The keybindings are intended to be somewhat mnemonic.@refill
-
-@c subheading Update all nodes and menus
-
-The @code{texinfo-master-menu} command is the primary command:
-
-@table @kbd
-@item C-c C-u m
-@itemx M-x texinfo-master-menu
-Create or update a master menu.
-With @kbd{C-u} as a prefix argument,
-first create or update all nodes
-and regular menus.
-@end table
-
-@c subheading Update Pointers
-
-@noindent
-Create or update `Next', `Previous', and `Up' node pointers.@refill
-
-@noindent
-@xref{Updating Nodes and Menus}.
-
-@table @kbd
-@item C-c C-u C-n
-@itemx M-x texinfo-update-node
-Update a node.
-
-@item C-c C-u C-e
-@itemx M-x texinfo-every-node-update
-Update every node in the buffer.
-@end table
-
-@c subheading Update Menus
-
-@noindent
-Create or update menus.@refill
-
-@noindent
-@xref{Updating Nodes and Menus}.
-
-@table @kbd
-@item C-c C-u C-m
-@itemx M-x texinfo-make-menu
-Make or update a menu.
-
-@item C-c C-u C-a
-@itemx M-x texinfo-all-menus-update
-Make or update all the menus in a buffer.
-With @kbd{C-u} as a prefix argument,
-first update all the nodes.
-@end table
-
-@c subheading Insert Title as Description
-
-@noindent
-Insert a node's chapter or section title in the space for the
-description in a menu entry line; position point so you can edit the
-insert. (This command works somewhat differently than the other
-insertion commands, which insert only a predefined string.)@refill
-
-@noindent
-@xref{Inserting, Inserting Frequently Used Commands}.
-
-@table @kbd
-@item C-c C-c C-d
-Insert title.
-@end table
-
-@c subheading Format for Info
-
-@noindent
-Provide keybindings both for the Info formatting commands that are
-written in XEmacs Lisp and for @code{makeinfo} that is written in
-C.@refill
-
-@noindent
-@xref{Info Formatting}.
-
-@noindent
-Use the XEmacs lisp @code{texinfo-format@dots{}} commands:
-
-@table @kbd
-@item C-c C-e C-r
-Format the region.
-
-@item C-c C-e C-b
-Format the buffer.
-@end table
-
-@noindent
-Use @code{makeinfo}:
-
-@table @kbd
-@item C-c C-m C-r
-Format the region.
-
-@item C-c C-m C-b
-Format the buffer.
-
-@item C-c C-m C-l
-Recenter the @code{makeinfo} output buffer.
-
-@item C-c C-m C-k
-Kill the @code{makeinfo} formatting job.
-@end table
-
-@c subheading Typeset and Print
-
-@noindent
-Typeset and print Texinfo documents from within XEmacs.
-
-@noindent
-@xref{Printing}.
-
-@table @kbd
-@item C-c C-t C-b
-Run @code{texi2dvi} on the buffer.
-
-@item C-c C-t C-r
-Run @TeX{} on the region.
-
-@item C-c C-t C-i
-Run @code{texindex}.
-
-@item C-c C-t C-p
-Print the DVI file.
-
-@item C-c C-t C-q
-Show the print queue.
-
-@item C-c C-t C-d
-Delete a job from the print queue.
-
-@item C-c C-t C-k
-Kill the current @TeX{} formatting job.
-
-@item C-c C-t C-x
-Quit a currently stopped @TeX{} formatting job.
-
-@item C-c C-t C-l
-Recenter the output buffer.
-@end table
-
-@c subheading Other Updating Commands
-
-@noindent
-The ``other updating commands'' do not have standard keybindings because
-they are used less frequently.@refill
-
-@noindent
-@xref{Other Updating Commands}.
-
-@table @kbd
-@item M-x texinfo-insert-node-lines
-Insert missing @code{@@node} lines using
-section titles as node names.
-
-@item M-x texinfo-multiple-files-update
-Update a multi-file document.
-With a numeric prefix, such as @kbd{C-u 8},
-update @strong{every} pointer and
-menu in @strong{all} the files and
-then insert a master menu.
-
-@item M-x texinfo-indent-menu-description
-Indent descriptions in menus.
-
-@item M-x texinfo-sequential-node-update
-Insert node pointers in strict sequence.
-@end table
-
-@c no.de New Commands, , New Texinfo Mode Commands, Obtaining TeX
-@c appendix.sec New Texinfo @@-Commands
-
-The second edition of the Texinfo manual describes more than 50
-commands that were not described in the first edition. A third or so
-of these commands existed in Texinfo but were not documented in the
-manual; the others are new. Here is a listing, with brief
-descriptions of them:@refill
-
-@c subheading Indexing
-
-@noindent
-Create your own index, and merge indices.@refill
-
-@noindent
-@xref{Indices}.
-
-@table @kbd
-@item @@defindex @var{index-name}
-Define a new index and its indexing command.
-See also the @code{@@defcodeindex} command.
-
-@c written verbosely to avoid overfull hbox
-@item @@synindex @var{from-index} @var{into-index}
-Merge the @var{from-index} index into the @var{into-index} index.
-See also the @code{@@syncodeindex} command.
-@end table
-
-@c subheading Definitions
-
-@noindent
-Describe functions, variables, macros,
-commands, user options, special forms, and other such artifacts in a
-uniform format.@refill
-
-@noindent
-@xref{Definition Commands}.
-
-@table @kbd
-@item @@deffn @var{category} @var{name} @var{arguments}@dots{}
-Format a description for functions, interactive
-commands, and similar entities.
-
-@item @@defvr, @@defop, @dots{}
-15 other related commands.
-@end table
-
-@c subheading Glyphs
-
-@noindent
-Indicate the results of evaluation, expansion,
-printed output, an error message, equivalence of expressions, and the
-location of point.@refill
-
-@noindent
-@xref{Glyphs}.
-
-@table @kbd
-@item @@equiv@{@}
-@itemx @equiv{}
-Equivalence:
-
-@item @@error@{@}
-@itemx @error{}
-Error message
-
-@item @@expansion@{@}
-@itemx @expansion{}
-Macro expansion
-
-@item @@point@{@}
-@itemx @point{}
-Position of point
-
-@item @@print@{@}
-@itemx @print{}
-Printed output
-
-@item @@result@{@}
-@itemx @result{}
-Result of an expression
-@end table
-
-@c subheading Page Headings
-
-@noindent
-Customize page headings.
-
-@noindent
-@xref{Headings}.
-
-@table @kbd
-@item @@headings @var{on-off-single-double}
-Headings on or off, single, or double-sided.
-
-@item @@evenfooting [@var{left}] @@| [@var{center}] @@| [@var{right}]
-Footings for even-numbered (left-hand) pages.
-
-@item @@evenheading, @@everyheading, @@oddheading, @dots{}
-Five other related commands.
-
-@item @@thischapter
-Insert name of chapter and chapter number.
-
-@item @@thischaptername, @@thisfile, @@thistitle, @@thispage
-Related commands.
-@end table
-
-@c subheading Formatting
-
-@noindent
-Format blocks of text.
-
-@noindent
-@xref{Quotations and Examples}, and@*
-@ref{Lists and Tables, , Making Lists and Tables}.
-
-@table @kbd
-@item @@cartouche
-Draw rounded box surrounding text (no effect in Info).
-
-@item @@enumerate @var{optional-arg}
-Enumerate a list with letters or numbers.
-
-@item @@exdent @var{line-of-text}
-Remove indentation.
-
-@item @@flushleft
-Left justify.
-
-@item @@flushright
-Right justify.
-
-@item @@format
-Do not narrow nor change font.
-
-@item @@ftable @var{formatting-command}
-@itemx @@vtable @var{formatting-command}
-Two-column table with indexing.
-
-@item @@lisp
-For an example of Lisp code.
-
-@item @@smallexample
-@itemx @@smalllisp
-Like @@table and @@lisp, but for (originally) @@smallbook.
-@end table
-
-@c subheading Conditionals
-
-@noindent
-Conditionally format text.
-
-@noindent
-@xref{set clear value, , @code{@@set} @code{@@clear} @code{@@value}}.(a)refill
-
-@table @kbd
-@item @@set @var{flag} [@var{string}]
-Set a flag. Optionally, set value
-of @var{flag} to @var{string}.
-
-@item @@clear @var{flag}
-Clear a flag.
-
-@item @@value@{@var{flag}@}
-Replace with value to which @var{flag} is set.
-
-@item @@ifset @var{flag}
-Format, if @var{flag} is set.
-
-@item @@ifclear @var{flag}
-Ignore, if @var{flag} is set.
-@end table
-
-@c subheading @@heading series for Titles
-
-@noindent
-Produce unnumbered headings that do not appear in a table of contents.
-
-@noindent
-@xref{Structuring}.
-
-@table @kbd
-@item @@heading @var{title}
-Unnumbered section-like heading not listed
-in the table of contents of a printed manual.
-
-@item @@chapheading, @@majorheading, @@c subheading, @@subsubheading
-Related commands.
-@end table
-
-@need 1000
-@c subheading Font commands
-
-@need 1000
-@noindent
-@xref{Smallcaps}, and @*
-@ref{Fonts}.
-
-@table @kbd
-@item @@r@{@var{text}@}
-Print in roman font.
-
-@item @@sc@{@var{text}@}
-Print in @sc{small caps} font.
-@end table
-
-@c subheading Miscellaneous
-
-@noindent
-See @ref{title subtitle author, , @code{@@title} @code{@@subtitle} and @code{@@author} Commands},@*
-see @ref{Customized Highlighting},@*
-see @ref{Overfull hboxes},@*
-see @ref{Footnotes},@*
-see @ref{dmn, , Format a Dimension},@*
-see @ref{Raise/lower sections, , @code{@@raisesections} and @code{@@lowersections}},@*
-see @ref{math, , @code{@@math} - Inserting Mathematical Expressions}.@*
-see @ref{minus, , Inserting a Minus Sign},@*
-see @ref{paragraphindent, , Paragraph Indenting},@*
-see @ref{Cross Reference Commands},@*
-see @ref{title subtitle author, , @code{@@title} @code{@@subtitle} and @code{@@author}}, and@*
-see @ref{Custom Headings, , How to Make Your Own Headings}.
-
-@table @kbd
-@item @@author @var{author}
-Typeset author's name.
-
-@c @item @@definfoenclose @var{new-command}, @var{before}, @var{after},
-@c Define a highlighting command for Info. (Info only.)
-
-@item @@finalout
-Produce cleaner printed output.
-
-@item @@footnotestyle @var{end-or-separate}
-Specify footnote style, either @samp{end} or @samp{separate}.
-@xref{Footnote Styles}.
-
-@item @@dmn@{@var{dimension}@}
-Format a dimension.
-
-@item @@global@@let@var{new-cmd}=@var{existing-cmd}
-Define a highlighting command for @TeX{}. (@TeX{} only.)
-
-@item @@lowersections
-Reduce hierarchical level of sectioning commands.
-
-@item @@math@{@var{mathematical-expression}@}
-Format a mathematical expression.
-
-@item @@minus@{@}
-Generate a minus sign.
-
-@item @@paragraphindent @var{asis-or-number}
-Specify paragraph indentation.
-
-@item @@raisesections
-Raise hierarchical level of sectioning commands.
-
-@item @@ref@{@var{node-name}, @r{[}@var{entry}@r{]}, @r{[}@var{topic-or-title}@r{]}, @r{[}@var{info-file}@r{]}, @r{[}@var{manual}@r{]}@}
-Make a reference. In the printed manual, the
-reference does not start with the word `see'.
-
-@item @@title @var{title}
-Typeset @var{title} in the alternative
-title page format.
-
-@item @@subtitle @var{subtitle}
-Typeset @var{subtitle} in the alternative
-title page format.
-
-@item @@today@{@}
-Insert the current date.
-@end table
-@tex
-% Switch width of first column of tables back to default value
-\global\tableindent=.8in
-@end tex
-@end ignore
+@c @tex
+@c % Widen the space for the first column so three control-character %
+@c strings fit in the first column. Switched back to default .8in %
+@c value at end of chapter. \global\tableindent=1.0in
+@c @end tex
+@c
+@c The second edition of the Texinfo manual describes more than 20 new
+@c Texinfo mode commands and more than 50 previously undocumented Texinfo
+@c @@-commands. This edition is more than twice the length of the first
+@c edition.
+@c
+@c Here is a brief description of the new commands.
+@c
+@c @c menu
+@c * New Texinfo Mode Commands:: The updating commands are especially useful.
+@c * New Commands:: Many newly described @@-commands.
+@c @c end menu
+@c
+@c @c node New Texinfo Mode Commands, New Commands, Obtaining TeX, Obtaining TeX
+@c @c appendixsec New Texinfo Mode Commands
+@c
+@c Texinfo mode provides commands and features especially designed for
+@c working with Texinfo files. More than 20 new commands have been
+@c added, including commands for automatically creating and updating
+@c both nodes and menus. This is a tedious task when done by hand.
+@c
+@c The keybindings are intended to be somewhat mnemonic.
+@c
+@c @c subheading Update all nodes and menus
+@c
+@c The @code{texinfo-master-menu} command is the primary command:
+@c
+@c @table @kbd
+@c @item C-c C-u m
+@c @itemx M-x texinfo-master-menu
+@c Create or update a master menu.
+@c With @kbd{C-u} as a prefix argument,
+@c first create or update all nodes
+@c and regular menus.
+@c @end table
+@c
+@c @c subheading Update Pointers
+@c
+@c @noindent
+@c Create or update `Next', `Previous', and `Up' node pointers.
+@c
+@c @noindent
+@c @xref{Updating Nodes and Menus}.
+@c
+@c @table @kbd
+@c @item C-c C-u C-n
+@c @itemx M-x texinfo-update-node
+@c Update a node.
+@c
+@c @item C-c C-u C-e
+@c @itemx M-x texinfo-every-node-update
+@c Update every node in the buffer.
+@c @end table
+@c
+@c @c subheading Update Menus
+@c
+@c @noindent
+@c Create or update menus.
+@c
+@c @noindent
+@c @xref{Updating Nodes and Menus}.
+@c
+@c @table @kbd
+@c @item C-c C-u C-m
+@c @itemx M-x texinfo-make-menu
+@c Make or update a menu.
+@c
+@c @item C-c C-u C-a
+@c @itemx M-x texinfo-all-menus-update
+@c Make or update all the menus in a buffer.
+@c With @kbd{C-u} as a prefix argument,
+@c first update all the nodes.
+@c @end table
+@c
+@c @c subheading Insert Title as Description
+@c
+@c @noindent
+@c Insert a node's chapter or section title in the space for the
+@c description in a menu entry line; position point so you can edit the
+@c insert. (This command works somewhat differently than the other
+@c insertion commands, which insert only a predefined string.)
+@c
+@c @noindent
+@c @xref{Inserting, Inserting Frequently Used Commands}.
+@c
+@c @table @kbd
+@c @item C-c C-c C-d
+@c Insert title.
+@c @end table
+@c
+@c @c subheading Format for Info
+@c
+@c @noindent
+@c Provide keybindings both for the Info formatting commands that are
+@c written in Emacs Lisp and for @code{makeinfo} that is written in
+@c C.
+@c
+@c @noindent
+@c @xref{Info Formatting}.
+@c
+@c @noindent
+@c Use the Emacs lisp @code{texinfo-format@dots{}} commands:
+@c
+@c @table @kbd
+@c @item C-c C-e C-r
+@c Format the region.
+@c
+@c @item C-c C-e C-b
+@c Format the buffer.
+@c @end table
+@c
+@c @noindent
+@c Use @code{makeinfo}:
+@c
+@c @table @kbd
+@c @item C-c C-m C-r
+@c Format the region.
+@c
+@c @item C-c C-m C-b
+@c Format the buffer.
+@c
+@c @item C-c C-m C-l
+@c Recenter the @code{makeinfo} output buffer.
+@c
+@c @item C-c C-m C-k
+@c Kill the @code{makeinfo} formatting job.
+@c @end table
+@c
+@c @c subheading Typeset and Print
+@c
+@c @noindent
+@c Typeset and print Texinfo documents from within XEmacs.
+@c
+@c @noindent
+@c @xref{Printing}.
+@c
+@c @table @kbd
+@c @item C-c C-t C-b
+@c Run @code{texi2dvi} on the buffer.
+@c
+@c @item C-c C-t C-r
+@c Run @TeX{} on the region.
+@c
+@c @item C-c C-t C-i
+@c Run @code{texindex}.
+@c
+@c @item C-c C-t C-p
+@c Print the DVI file.
+@c
+@c @item C-c C-t C-q
+@c Show the print queue.
+@c
+@c @item C-c C-t C-d
+@c Delete a job from the print queue.
+@c
+@c @item C-c C-t C-k
+@c Kill the current @TeX{} formatting job.
+@c
+@c @item C-c C-t C-x
+@c Quit a currently stopped @TeX{} formatting job.
+@c
+@c @item C-c C-t C-l
+@c Recenter the output buffer.
+@c @end table
+@c
+@c @c subheading Other Updating Commands
+@c
+@c @noindent
+@c The ``other updating commands'' do not have standard keybindings because
+@c they are used less frequently.
+@c
+@c @noindent
+@c @xref{Other Updating Commands}.
+@c
+@c @table @kbd
+@c @item M-x texinfo-insert-node-lines
+@c Insert missing @code{@@node} lines using
+@c section titles as node names.
+@c
+@c @item M-x texinfo-multiple-files-update
+@c Update a multi-file document.
+@c With a numeric prefix, such as @kbd{C-u 8},
+@c update @strong{every} pointer and
+@c menu in @strong{all} the files and
+@c then insert a master menu.
+@c
+@c @item M-x texinfo-indent-menu-description
+@c Indent descriptions in menus.
+@c
+@c @item M-x texinfo-sequential-node-update
+@c Insert node pointers in strict sequence.
+@c @end table
+@c
+@c @c no.de New Commands, , New Texinfo Mode Commands, Obtaining TeX
+@c @c appendix.sec New Texinfo @@-Commands
+@c
+@c The second edition of the Texinfo manual describes more than 50
+@c commands that were not described in the first edition. A third or so
+@c of these commands existed in Texinfo but were not documented in the
+@c manual; the others are new. Here is a listing, with brief
+@c descriptions of them:
+@c
+@c @c subheading Indexing
+@c
+@c @noindent
+@c Create your own index, and merge indices.
+@c
+@c @noindent
+@c @xref{Indices}.
+@c
+@c @table @kbd
+@c @item @@defindex @var{index-name}
+@c Define a new index and its indexing command.
+@c See also the @code{@@defcodeindex} command.
+@c
+@c @c written verbosely to avoid overfull hbox
+@c @item @@synindex @var{from-index} @var{into-index}
+@c Merge the @var{from-index} index into the @var{into-index} index.
+@c See also the @code{@@syncodeindex} command.
+@c @end table
+@c
+@c @c subheading Definitions
+@c
+@c @noindent
+@c Describe functions, variables, macros,
+@c commands, user options, special forms, and other such artifacts in a
+@c uniform format.
+@c
+@c @noindent
+@c @xref{Definition Commands}.
+@c
+@c @table @kbd
+@c @item @@deffn @var{category} @var{name} @var{arguments}@dots{}
+@c Format a description for functions, interactive
+@c commands, and similar entities.
+@c
+@c @item @@defvr, @@defop, @dots{}
+@c 15 other related commands.
+@c @end table
+@c
+@c @c subheading Glyphs
+@c
+@c @noindent
+@c Indicate the results of evaluation, expansion,
+@c printed output, an error message, equivalence of expressions, and the
+@c location of point.
+@c
+@c @noindent
+@c @xref{Glyphs}.
+@c
+@c @table @kbd
+@c @item @@equiv@{@}
+@c @itemx @equiv{}
+@c Equivalence:
+@c
+@c @item @@error@{@}
+@c @itemx @error{}
+@c Error message
+@c
+@c @item @@expansion@{@}
+@c @itemx @expansion{}
+@c Macro expansion
+@c
+@c @item @@point@{@}
+@c @itemx @point{}
+@c Position of point
+@c
+@c @item @@print@{@}
+@c @itemx @print{}
+@c Printed output
+@c
+@c @item @@result@{@}
+@c @itemx @result{}
+@c Result of an expression
+@c @end table
+@c
+@c @c subheading Page Headings
+@c
+@c @noindent
+@c Customize page headings.
+@c
+@c @noindent
+@c @xref{Headings}.
+@c
+@c @table @kbd
+@c @item @@headings @var{on-off-single-double}
+@c Headings on or off, single, or double-sided.
+@c
+@c @item @@evenfooting [@var{left}] @@| [@var{center}] @@| [@var{right}]
+@c Footings for even-numbered (left-hand) pages.
+@c
+@c @item @@evenheading, @@everyheading, @@oddheading, @dots{}
+@c Five other related commands.
+@c
+@c @item @@thischapter
+@c Insert name of chapter and chapter number.
+@c
+@c @item @@thischaptername, @@thisfile, @@thistitle, @@thispage
+@c Related commands.
+@c @end table
+@c
+@c @c subheading Formatting
+@c
+@c @noindent
+@c Format blocks of text.
+@c
+@c @noindent
+@c @xref{Quotations and Examples}, and@*
+@c @ref{Lists and Tables, , Making Lists and Tables}.
+@c
+@c @table @kbd
+@c @item @@cartouche
+@c Draw rounded box surrounding text (no effect in Info).
+@c
+@c @item @@enumerate @var{optional-arg}
+@c Enumerate a list with letters or numbers.
+@c
+@c @item @@exdent @var{line-of-text}
+@c Remove indentation.
+@c
+@c @item @@flushleft
+@c Left justify.
+@c
+@c @item @@flushright
+@c Right justify.
+@c
+@c @item @@format
+@c Do not narrow nor change font.
+@c
+@c @item @@ftable @var{formatting-command}
+@c @itemx @@vtable @var{formatting-command}
+@c Two-column table with indexing.
+@c
+@c @item @@lisp
+@c For an example of Lisp code.
+@c
+@c @item @@smallexample
+@c @itemx @@smalllisp
+@c Like @@table and @@lisp, but for (originally) @@smallbook.
+@c @end table
+@c
+@c @c subheading Conditionals
+@c
+@c @noindent
+@c Conditionally format text.
+@c
+@c @noindent
+@c @xref{set clear value, , @code{@@set} @code{@@clear} @code{@@value}}.
+@c
+@c @table @kbd
+@c @item @@set @var{flag} [@var{string}]
+@c Set a flag. Optionally, set value
+@c of @var{flag} to @var{string}.
+@c
+@c @item @@clear @var{flag}
+@c Clear a flag.
+@c
+@c @item @@value@{@var{flag}@}
+@c Replace with value to which @var{flag} is set.
+@c
+@c @item @@ifset @var{flag}
+@c Format, if @var{flag} is set.
+@c
+@c @item @@ifclear @var{flag}
+@c Ignore, if @var{flag} is set.
+@c @end table
+@c
+@c @c subheading @@heading series for Titles
+@c
+@c @noindent
+@c Produce unnumbered headings that do not appear in a table of contents.
+@c
+@c @noindent
+@c @xref{Structuring}.
+@c
+@c @table @kbd
+@c @item @@heading @var{title}
+@c Unnumbered section-like heading not listed
+@c in the table of contents of a printed manual.
+@c
+@c @item @@chapheading, @@majorheading, @@c subheading, @@subsubheading
+@c Related commands.
+@c @end table
+@c
+@c @need 1000
+@c @c subheading Font commands
+@c
+@c @need 1000
+@c @noindent
+@c @xref{Smallcaps}, and @*
+@c @ref{Fonts}.
+@c
+@c @table @kbd
+@c @item @@r@{@var{text}@}
+@c Print in roman font.
+@c
+@c @item @@sc@{@var{text}@}
+@c Print in @sc{small caps} font.
+@c @end table
+@c
+@c @c subheading Miscellaneous
+@c
+@c @noindent
+@c See @ref{title subtitle author, , @code{@@title} @code{@@subtitle} and @code{@@author} Commands},@*
+@c see @ref{Customized Highlighting},@*
+@c see @ref{Overfull hboxes},@*
+@c see @ref{Footnotes},@*
+@c see @ref{dmn, , Format a Dimension},@*
+@c see @ref{Raise/lower sections, , @code{@@raisesections} and @code{@@lowersections}},@*
+@c see @ref{math, , @code{@@math}: Inserting Mathematical Expressions}.@*
+@c see @ref{minus, , Inserting a Minus Sign},@*
+@c see @ref{paragraphindent, , Paragraph Indenting},@*
+@c see @ref{Cross Reference Commands},@*
+@c see @ref{title subtitle author, , @code{@@title} @code{@@subtitle} and @code{@@author}}, and@*
+@c see @ref{Custom Headings, , How to Make Your Own Headings}.
+@c
+@c @table @kbd
+@c @item @@author @var{author}
+@c Typeset author's name.
+@c
+@c @c @item @@definfoenclose @var{new-command}, @var{before}, @var{after},
+@c @c Define a highlighting command for Info. (Info only.)
+@c
+@c @item @@finalout
+@c Produce cleaner printed output.
+@c
+@c @item @@footnotestyle @var{end-or-separate}
+@c Specify footnote style, either @samp{end} or @samp{separate}.
+@c @xref{Footnote Styles}.
+@c
+@c @item @@dmn@{@var{dimension}@}
+@c Format a dimension.
+@c
+@c @item @@global@@let@var{new-cmd}=@var{existing-cmd}
+@c Define a highlighting command for @TeX{}. (@TeX{} only.)
+@c
+@c @item @@lowersections
+@c Reduce hierarchical level of sectioning commands.
+@c
+@c @item @@math@{@var{mathematical-expression}@}
+@c Format a mathematical expression.
+@c
+@c @item @@minus@{@}
+@c Generate a minus sign.
+@c
+@c @item @@paragraphindent @var{asis-or-number}
+@c Specify amount of paragraph indentation.
+@c
+@c @item @@raisesections
+@c Raise hierarchical level of sectioning commands.
+@c
+@c @item @@ref@{@var{node-name}, @r{[}@var{entry}@r{]}, @r{[}@var{topic-or-title}@r{]}, @r{[}@var{info-file}@r{]}, @r{[}@var{manual}@r{]}@}
+@c Make a reference. In the printed manual, the
+@c reference does not start with the word `see'.
+@c
+@c @item @@title @var{title}
+@c Typeset @var{title} in the alternative
+@c title page format.
+@c
+@c @item @@subtitle @var{subtitle}
+@c Typeset @var{subtitle} in the alternative
+@c title page format.
+@c
+@c @item @@today@{@}
+@c Insert the current date.
+@c @end table
+@c @tex
+@c % Switch width of first column of tables back to default value
+@c \global\tableindent=.8in
+@c @end tex
@node GNU Free Documentation License
@@ -21224,7 +24477,7 @@
This is an alphabetical list of all the @@-commands, assorted XEmacs Lisp
functions, and several variables. To make the list easier to use, the
-commands are listed without their preceding @samp{@@}.(a)refill
+commands are listed without their preceding @samp{@@}.
@printindex fn
diff -r dcf9067f26bb man/texinfo/version.texi
--- a/man/texinfo/version.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/texinfo/version.texi Fri Feb 28 09:06:56 2014 -0700
@@ -1,6 +1,6 @@
-@c Synced up with: Texinfo 4.13 of September 18 2008.
-@c Synced by: Ben Wing, 2-17-10.
-@set UPDATED 18 September 2008
-@set UPDATED-MONTH September 2008
-@set EDITION 4.13
-@set VERSION 4.13
+@c Synced up with: Texinfo 5.2 of 26 Sep 2013.
+@c Synced by: Jerry James, 11 Feb 2014.
+@set UPDATED 26 September 2013
+@set UPDATED-MONTH September 2013
+@set EDITION 5.2
+@set VERSION 5.2
diff -r dcf9067f26bb man/xemacs/custom.texi
--- a/man/xemacs/custom.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/xemacs/custom.texi Fri Feb 28 09:06:56 2014 -0700
@@ -40,7 +40,7 @@
behavior of XEmacs.
@end menu
-@node Minor Modes
+@node Minor Modes, Behaviors, Customization, Customization
@section Minor Modes
@cindex minor modes
@@ -107,7 +107,7 @@
mode}. @xref{Abbrevs}, for full information.
@c Updated for 21.5.6 2002/03/13 sjt
-@node Behaviors
+@node Behaviors, Variables, Minor Modes, Customization
@section Behaviors
@cindex behavior
@@ -155,7 +155,7 @@
@c @end defun
-@node Variables
+@node Variables, Keyboard Macros, Behaviors, Customization
@section Variables
@cindex variable
@cindex option
@@ -195,7 +195,7 @@
* File Variables:: How files can specify variable values.
@end menu
-@node Examining
+@node Examining, Easy Customization, Variables, Variables
@subsection Examining and Setting Variables
@cindex setting variables
@@ -253,7 +253,7 @@
Setting variables in this way, like all means of customizing Emacs
except where explicitly stated, affects only the current Emacs session.
-@node Easy Customization
+@node Easy Customization, Edit Options, Examining, Variables
@subsection Easy Customization Interface
@findex customize
@@ -276,7 +276,7 @@
options, faces, or groups.
@end menu
-@node Customization Groups
+@node Customization Groups, Changing an Option, Easy Customization, Easy Customization
@subsubsection Customization Groups
@cindex customization groups
@@ -348,7 +348,7 @@
that group and its contents, just that option, or just that face.
This is the way to set values in it.
-@node Changing an Option
+@node Changing an Option, Face Customization, Customization Groups, Easy Customization
@subsubsection Changing an Option
Here is an example of what a user option looks like in the
@@ -510,7 +510,7 @@
other fields performs an operation---set, save or reset---on each of the
items in the buffer that could meaningfully be set, saved or reset.
-@node Face Customization
+@node Face Customization, Specific Customization, Changing an Option, Easy Customization
@subsubsection Customizing Faces
@cindex customizing faces
@cindex bold font
@@ -572,7 +572,7 @@
@c you don't want to change that attribute. Type @samp{none} if you want
@c to clear out the attribute.
-@node Specific Customization
+@node Specific Customization, , Face Customization, Easy Customization
@subsubsection Customizing Specific Items
Instead of finding the options you want to change by moving down
@@ -632,7 +632,7 @@
saved. Use @kbd{M-x customize-customized} to look at the options and
faces that you have set but not saved.
-@node Edit Options
+@node Edit Options, Locals, Easy Customization, Variables
@subsection Editing Variable Values
@table @kbd
@@ -684,7 +684,7 @@
Move to the next or previous variable.
@end table
-@node Locals
+@node Locals, File Variables, Edit Options, Variables
@subsection Local Variables
@table @kbd
@@ -769,7 +769,7 @@
(default-value 'fill-column)
@end example
-@node File Variables
+@node File Variables, , Locals, Variables
@subsection Local Variables in Files
@cindex local variables in files
@@ -871,7 +871,7 @@
The command @code{M-x normal-mode} always obeys local variables lists
and ignores this variable.
-@node Keyboard Macros
+@node Keyboard Macros, Key Bindings, Variables, Customization
@section Keyboard Macros
@cindex keyboard macros
@@ -921,7 +921,7 @@
* Kbd Macro Query:: Keyboard macros that do different things each use.
@end menu
-@node Basic Kbd Macro
+@node Basic Kbd Macro, Save Kbd Macro, Keyboard Macros, Keyboard Macros
@subsection Basic Use
@kindex C-x (
@@ -970,7 +970,7 @@
to plain @kbd{C-x (} followed by retyping the whole definition so far. As
a consequence it re-executes the macro as previously defined.
-@node Save Kbd Macro
+@node Save Kbd Macro, Kbd Macro Query, Basic Kbd Macro, Keyboard Macros
@subsection Naming and Saving Keyboard Macros
@findex name-last-kbd-macro
@@ -1006,7 +1006,7 @@
keyboard macro, so that the macro is reassigned the same keys when you
load the file.
-@node Kbd Macro Query
+@node Kbd Macro Query, , Save Kbd Macro, Keyboard Macros
@subsection Executing Macros With Variations
@kindex C-x q
@@ -1042,7 +1042,7 @@
execution, the recursive edit gives you a chance to do some particularized
editing. @xref{Recursive Edit}.
-@node Key Bindings
+@node Key Bindings, Syntax, Keyboard Macros, Customization
@section Customizing Key Bindings
This section deals with the @dfn{keymaps} that define the bindings
@@ -1065,7 +1065,7 @@
beginners from surprises.
@end menu
-@node Keymaps
+@node Keymaps, Rebinding, Key Bindings, Key Bindings
@subsection Keymaps
@cindex keymap
@@ -1169,7 +1169,7 @@
for @kbd{C-x} commands contains @code{nil}, the definition from the global
keymap for @kbd{C-x} commands is used.@refill
-@node Rebinding
+@node Rebinding, Disabling, Keymaps, Key Bindings
@subsection Changing Key Bindings
@cindex key rebinding, this session
@cindex rebinding keys, this session
@@ -1186,7 +1186,7 @@
* Key Bindings Using Strings:: Using Strings for Changing Key Bindings
@end menu
-@node Interactive Rebinding
+@node Interactive Rebinding, Programmatic Rebinding, Rebinding, Rebinding
@subsubsection Changing Key Bindings Interactively
@findex global-set-key
@findex local-set-key
@@ -1249,7 +1249,7 @@
redefines in that keymap all keys that were previously defined with the
old definition to have the new definition instead.
-@node Programmatic Rebinding
+@node Programmatic Rebinding, Key Bindings Using Strings, Interactive Rebinding, Rebinding
@subsubsection Changing Key Bindings Programmatically
You can use the functions @code{global-set-key} and @code{define-key}
@@ -1348,7 +1348,7 @@
@comment ;;
@comment (global-set-key "\^J" 'my-command)
-@node Key Bindings Using Strings
+@node Key Bindings Using Strings, , Programmatic Rebinding, Rebinding
@subsubsection Using Strings for Changing Key Bindings
For backward compatibility, you can still use strings to represent
@@ -1403,7 +1403,7 @@
control @@ control space
@end example
-@node Disabling
+@node Disabling, , Rebinding, Key Bindings
@subsection Disabling Commands
@cindex disabled command
@@ -1451,7 +1451,7 @@
Disabling a command has no effect on calling it as a function from Lisp
programs.
-@node Syntax
+@node Syntax, Init File, Key Bindings, Customization
@section The Syntax Table
@cindex syntax table
@@ -1470,7 +1470,7 @@
* Change: Syntax Change. How to change the information.
@end menu
-@node Syntax Entry
+@node Syntax Entry, Syntax Change, Syntax, Syntax
@subsection Information About Each Character
The syntax table entry for a character is a number that encodes six
@@ -1568,7 +1568,7 @@
appear where there is no comment, for example, in Lisp mode where the
comment terminator is a newline but not every newline ends a comment.
-@node Syntax Change
+@node Syntax Change, , Syntax Entry, Syntax
@subsection Altering Syntax Information
It is possible to alter a character's syntax table entry by storing a new
@@ -1620,7 +1620,7 @@
@code{modify-syntax-entry} to set up that character's current syntax,
and some English to explain that string if necessary.
-@node Init File
+@node Init File, Audible Bell, Syntax, Customization
@section The Init File
@cindex init file
@cindex Emacs initialization file
@@ -1656,7 +1656,7 @@
* Terminal Init:: Each terminal type can have an init file.
@end menu
-@node Init Syntax
+@node Init Syntax, Init Examples, Init File, Init File
@subsection Init File Syntax
The init file contains one or more Lisp function call
@@ -1714,7 +1714,7 @@
Write a single-quote (') followed by the Lisp object you want.
@end table
-@node Init Examples
+@node Init Examples, Terminal Init, Init Syntax, Init File
@subsection Init File Examples
Here are some examples of doing certain commonly desired things with
@@ -1877,7 +1877,7 @@
@end example
@end itemize
-@node Terminal Init
+@node Terminal Init, , Init Examples, Init File
@subsection Terminal-Specific Initialization
Each terminal type can have a Lisp library to be loaded into Emacs when
@@ -1913,7 +1913,7 @@
override part of any of the terminal-specific libraries and to define
initializations for terminals that do not have a library.@refill
-@node Audible Bell
+@node Audible Bell, Faces, Init File, Customization
@section Changing the Bell Sound
@cindex audible bell, changing
@cindex bell, changing
@@ -2021,8 +2021,7 @@
You type something other than @code{yes} or @code{no}
@end table
-@comment node-name, next, previous, up
-@node Faces
+@node Faces, Frame Components, Audible Bell, Customization
@section Faces
XEmacs has objects called extents and faces. An @dfn{extent}
@@ -2041,7 +2040,7 @@
be desired. Here's a first cut, as a separate node.
@menu
-* Xft Font Customization::
+* Xft Font Customization:: How to customize Xft fonts.
@end menu
@subsection Customizing Faces
@@ -2239,9 +2238,8 @@
@var{frame} argument is provided, the face is changed only in that
frame; otherwise, it is changed in all frames.
-
-@node Xft Font Customization, , , Faces
-@section Xft Font Customization
+@node Xft Font Customization, , Faces, Faces
+@subsection Xft Font Customization
This section was written by @email{stephen@(a)xemacs.org,Stephen Turnbull},
and is very much a work in progress. I've tried to provide pointers to
@@ -2257,17 +2255,31 @@
@c Don't blame Ben (or Eric and Matthias, for that matter). Feel free to
@c add, edit, and share the blame, everybody!
-@c #### Make these @urlref's!!
As of mid-2005, we have added support for the
-@file{Xft} library, which provides a more robust @emph{font
-configuration} mechanism via Keith Packard's @file{fontconfig} library;
-improved glyph rendering, including antialiasing, via the
-@file{freetype} library; and client-side rendering (saving bandwidth and
-server memory) via the @file{XRender extension}.
+@uref{http://www.freedesktop.org/wiki/Software/Xft/,Xft} library,
+which provides a more robust @emph{font configuration} mechanism via
+Keith Packard's
+@uref{http://www.freedesktop.org/wiki/Software/fontconfig/,fontconfig}
+library; improved glyph rendering, including antialiasing, via the
+@uref{http://freetype.org/,freetype} library; and client-side
+rendering (saving bandwidth and server memory) via the
+@file{XRender extension}.
@c #### Describe Alexey Gladkov and Yury Konovalov's work.
-@subheading Font configuration
+@menu
+* Font configuration:: Faces versus fontconfig.
+* fontconfig:: How fontconfig finds fonts.
+* fontconfig font names:: How fonts are named when using fontconfig.
+* Font menus:: Why the XEmacs font menus are broken.
+* X resources:: Specification of fonts with X resources.
+* Specifiers charsets and languages:: On the absence of language specifiers.
+* Known Problems:: XEmacs features that don't work with Xft.
+* Variables Used with Xft and Fontconfig:: Lisp Xft/fontconfig variables.
+@end menu
+
+@node Font configuration, fontconfig, Xft Font Customization, Xft Font Customization
+@subsubsection Font configuration
In XEmacs, font configuration is handled via @emph{faces}. Currently
XEmacs uses a special type of @emph{font specifier} to map XEmacs
@@ -2279,7 +2291,8 @@
reliably parsable naming scheme similar to that used by TrueType fonts
on MS Windows and the Macintosh.
-@subheading fontconfig
+@node fontconfig, fontconfig font names, Font configuration, Xft Font Customization
+@subsubsection fontconfig
Fontconfig is dramatically different from the X model in several ways.
In particular, when queried for a font @emph{fontconfig always returns a
@@ -2311,7 +2324,8 @@
that at least the @emph{serif}, @emph{sans-serif}, and @emph{monospace}
font aliases are available on all @file{fontconfig} systems.
-@subheading fontconfig font names
+@node fontconfig font names, Font menus, fontconfig, Xft Font Customization
+@subsubsection fontconfig font names
@file{fontconfig} font names are very regular, and constitute a precise
and extensible specification of a font's properties.
@@ -2487,7 +2501,8 @@
@kbd{M-x apropos RET fc-.*-mapping} will give a list of variables each
of which lists such keywords and their meanings.
-@subheading Font menus
+@node Font menus, X resources, fontconfig font names, Xft Font Customization
+@subsubsection Font menus
The @samp{Options->Font} and @samp{Options->Font Sizes} menus are
broken, by design, not just by @file{Xft}. The problem is that many
@@ -2497,7 +2512,8 @@
the @samp{Options->Font Weights} menu is just disabled, and has been for
eons.
-@subheading X resources
+@node X resources, Specifiers charsets and languages, Font menus, Xft Font Customization
+@subsubsection X resources
Currently there are @emph{four} treatments of font resources. There are
the @samp{XEmacs.(a)var{face}.attributeFont} resources used to set a
@@ -2524,7 +2540,8 @@
this will require a bit of thought to obey POLA vis-a-vis usual @file{Xt}
conventions.
-@subheading Specifiers, charsets, and languages
+@node Specifiers charsets and languages, Known Problems, X resources, Xft Font Customization
+@subsubsection Specifiers, charsets, and languages
Traditionally Mule uses a rather rigid and low-level abstraction, the
@emph{charset}, to characterize font repertoires. Unfortunately,
@@ -2603,7 +2620,8 @@
@c platform, Mac OS X, and needs to be rechecked on Linux, where it was
@c observed.
-@subheading Known Problems
+@node Known Problems, Variables Used with Xft and Fontconfig, Specifiers charsets and languages, Xft Font Customization
+@subsubsection Known Problems
@table @code
@item Options->Font
@@ -2621,7 +2639,8 @@
I think this is probably an Xft bug, but I'm not sure.
@end table
-@subheading Variables Used with Xft and Fontconfig
+@node Variables Used with Xft and Fontconfig, , Known Problems, Xft Font Customization
+@subsubsection Variables Used with Xft and Fontconfig
@defvar xft-debug-level
@@ -2642,7 +2661,7 @@
@end defvar
-@node Frame Components
+@node Frame Components, X Resources, Faces, Customization
@section Frame Components
You can control the presence and position of most frame components, such
@@ -2652,7 +2671,7 @@
@ref{Menubar,,,lispref,}, @ref{Toolbar Intro,,,lispref,}, and
@ref{Gutter Intro,,,lispref,}.
-@node X Resources
+@node X Resources, , Frame Components, Customization
@section X Resources
@cindex X resources
@findex x-create-frame
@@ -2719,7 +2738,7 @@
* Menubar Resources:: Specifying resources for the menubar.
@end menu
-@node Geometry Resources
+@node Geometry Resources, Iconic Resources, X Resources, X Resources
@subsection Geometry Resources
To make the default size of all XEmacs frames be 80 columns by 55 lines,
@@ -2799,7 +2818,7 @@
intuitive behavior with respect to the default sizes and positions of
frames created in various ways.
-@node Iconic Resources
+@node Iconic Resources, Resource List, Geometry Resources, X Resources
@subsection Iconic Resources
Analogous to @code{-geometry}, the @code{-iconic} command-line option
@@ -2808,7 +2827,7 @@
However, it is possible to set the iconic flag on particular frames (by
name) by using the @code{XEmacs*FRAME-NAME.iconic} resource.
-@node Resource List
+@node Resource List, Face Resources, Iconic Resources, X Resources
@subsection Resource List
XEmacs frames accept the following resources:
@@ -2945,7 +2964,7 @@
@code{x-pointer-foreground-color} and @code{x-pointer-background-color}.
@end table
-@node Face Resources
+@node Face Resources, Widgets, Resource List, X Resources
@subsection Face Resources
The attributes of faces are also per-frame. They can be specified as:
@@ -3075,7 +3094,7 @@
@samp{FORCE} argument to @samp{set-charset-registries}, and specifying
an empty string as one of the charset registries.
-@node Widgets
+@node Widgets, Menubar Resources, Face Resources, X Resources
@subsection Widgets
There are several structural widgets between the terminal EmacsFrame
@@ -3096,7 +3115,7 @@
XEmacs executable (usually @samp{xemacs}), and
@samp{x-emacs-application-class} is generally @samp{XEmacs}.
-@node Menubar Resources
+@node Menubar Resources, , Widgets, X Resources
@subsection Menubar Resources
As the menubar is implemented as a widget which is not a part of XEmacs
diff -r dcf9067f26bb man/xemacs/menus.texi
--- a/man/xemacs/menus.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/xemacs/menus.texi Fri Feb 28 09:06:56 2014 -0700
@@ -100,7 +100,7 @@
operations.
@end menu
-@node File Menu
+@node File Menu, Edit Menu, Pull-down Menus, Pull-down Menus
@subsection The File Menu
@cindex File menu
@@ -208,7 +208,7 @@
the list of all buffers in that Emacs process.@refill
@end table
-@node Edit Menu
+@node Edit Menu, Apps Menu, File Menu, Pull-down Menus
@subsection The Edit Menu
@cindex Edit menu
@@ -280,7 +280,7 @@
as the Emacs command @code{call-last-kbd-macro} (@kbd{C-x e}).
@end table
-@node Apps Menu
+@node Apps Menu, Options Menu, Edit Menu, Pull-down Menus
@subsection The Apps Menu
@cindex Apps menu
@@ -291,7 +291,7 @@
item, Emacs executes the equivalent command. For some of the menu
items, there are sub-menus which you will need to select.
-@node Options Menu
+@node Options Menu, Buffers Menu, Apps Menu, Pull-down Menus
@subsection The Options Menu
@cindex Options menu
@@ -396,14 +396,14 @@
menu to your init file. @xref{Init File}.
@end table
-@node Buffers Menu
+@node Buffers Menu, Tools Menu, Options Menu, Pull-down Menus
@subsection The Buffers Menu
@cindex Buffers menu
The @b{Buffers} menu provides a selection of up to ten buffers and the
item @b{List All Buffers}, which provides a Buffer List. @xref{List
Buffers}, for more information.
-@node Tools Menu
+@node Tools Menu, Help Menu, Buffers Menu, Pull-down Menus
@subsection The Tools Menu
@cindex Tools menu
@@ -414,7 +414,7 @@
Emacs executes the equivalent command. For some of the menu items,
there are sub-menus which you will need to select.
-@node Help Menu
+@node Help Menu, Menu Customization, Tools Menu, Pull-down Menus
@subsection The Help Menu
@cindex Help menu
@@ -425,7 +425,7 @@
The Help menu also gives access to UNIX online manual pages via the
@b{UNIX Manual Page} option.
-@node Menu Customization
+@node Menu Customization, , Help Menu, Pull-down Menus
@subsection Customizing XEmacs Menus
You can customize any of the pull-down menus by adding or removing menu
diff -r dcf9067f26bb man/xemacs/programs.texi
--- a/man/xemacs/programs.texi Mon Jan 27 17:52:33 2014 +0100
+++ b/man/xemacs/programs.texi Fri Feb 28 09:06:56 2014 -0700
@@ -876,7 +876,7 @@
* List Tags:: Listing and finding tags defined in a file.
@end menu
-@node Tag Syntax
+@node Tag Syntax, Create Tags Table, Tags, Tags
@subsection Source File Tag Syntax
Here is how tag syntax is defined for the most popular languages:
@@ -1030,7 +1030,7 @@
You can also generate tags based on regexp matching (@pxref{Etags
Regexps}) to handle other formats and languages.
-@node Create Tags Table
+@node Create Tags Table, Etags Regexps, Tag Syntax, Tags
@subsection Creating Tags Tables
@cindex @code{etags} program
@@ -1123,7 +1123,7 @@
a list of all the available @code{etags} options, together with a short
explanation.
-@node Etags Regexps
+@node Etags Regexps, Select Tags Table, Create Tags Table, Tags
@subsection Etags Regexps
The @samp{--regex} option provides a general way of recognizing tags
--
Jerry James
http://www.jamezone.org/
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-patches