1211 lines
46 KiB
Plaintext
1211 lines
46 KiB
Plaintext
|
This is Info file texi.info, produced by Makeinfo-1.55 from the input
|
|||
|
file texi.texi.
|
|||
|
|
|||
|
This file documents Texinfo, a documentation system that uses a
|
|||
|
single source file to produce both on-line information and a printed
|
|||
|
manual.
|
|||
|
|
|||
|
Copyright (C) 1988, 1990, 1991, 1992, 1993 Free Software Foundation,
|
|||
|
Inc.
|
|||
|
|
|||
|
This is the second edition of the Texinfo documentation,
|
|||
|
and is consistent with version 2 of `texinfo.tex'.
|
|||
|
|
|||
|
Permission is granted to make and distribute verbatim copies of this
|
|||
|
manual provided the copyright notice and this permission notice are
|
|||
|
preserved on all copies.
|
|||
|
|
|||
|
Permission is granted to copy and distribute modified versions of
|
|||
|
this manual under the conditions for verbatim copying, provided that
|
|||
|
the entire resulting derived work is distributed under the terms of a
|
|||
|
permission notice identical to this one.
|
|||
|
|
|||
|
Permission is granted to copy and distribute translations of this
|
|||
|
manual into another language, under the above conditions for modified
|
|||
|
versions, except that this permission notice may be stated in a
|
|||
|
translation approved by the Free Software Foundation.
|
|||
|
|
|||
|
|
|||
|
File: texi.info, Node: Tips, Next: Sample Texinfo File, Prev: Command List, Up: Top
|
|||
|
|
|||
|
Tips and Hints
|
|||
|
**************
|
|||
|
|
|||
|
Here are some tips for writing Texinfo documentation:
|
|||
|
|
|||
|
* Write in the present tense, not in the past or the future.
|
|||
|
|
|||
|
* Write actively! For example, write "We recommend that ..." rather
|
|||
|
than "It is recommended that ...".
|
|||
|
|
|||
|
* Use 70 or 72 as your fill column. Longer lines are hard to read.
|
|||
|
|
|||
|
* Include a copyright notice and copying permissions.
|
|||
|
|
|||
|
Index, index, index!
|
|||
|
....................
|
|||
|
|
|||
|
Write many index entries, in different ways. Readers like indices;
|
|||
|
they are helpful and convenient.
|
|||
|
|
|||
|
Although it is easiest to write index entries as you write the body
|
|||
|
of the text, some people prefer to write entries afterwards. In either
|
|||
|
case, write an entry before the paragraph to which it applies. This
|
|||
|
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:
|
|||
|
|
|||
|
* Write each index entry differently, so each entry refers to a
|
|||
|
different place in the document. The index of an Info file lists
|
|||
|
only one location for each entry.
|
|||
|
|
|||
|
* Write index entries only where a topic is discussed significantly.
|
|||
|
For example, it is not useful to index "debugging information" in
|
|||
|
a chapter on reporting bugs. Someone who wants to know about
|
|||
|
debugging information will certainly not find it in that chapter.
|
|||
|
|
|||
|
* Consistently capitalize the first word of every index entry, or
|
|||
|
else use lower case. According to convention, you should
|
|||
|
capitalize the first word of an index entry. However, this
|
|||
|
practice may make an index look crowded. Some writers prefer
|
|||
|
lower case. Regardless of which you prefer, choose one style and
|
|||
|
stick to it. Mixing the two styles looks bad.
|
|||
|
|
|||
|
* Always capitalize or use upper case for those words in an index for
|
|||
|
which this is proper, such as names of countries or acronyms.
|
|||
|
|
|||
|
* Write the indexing commands that refer to a whole section
|
|||
|
immediately after the section command, and write the indexing
|
|||
|
commands that refer to the paragraph before the paragraph.
|
|||
|
|
|||
|
In the example that follows, a blank line comes after the index
|
|||
|
entry for "Leaping":
|
|||
|
|
|||
|
@section The Dog and the Fox
|
|||
|
@cindex Jumping, in general
|
|||
|
@cindex Leaping
|
|||
|
|
|||
|
@cindex Dog, lazy, jumped over
|
|||
|
@cindex Lazy dog jumped over
|
|||
|
@cindex Fox, jumps over dog
|
|||
|
@cindex Quick fox jumps over dog
|
|||
|
The quick brown fox jumps over the lazy dog.
|
|||
|
|
|||
|
(Note that the example shows entries for the same concept that are
|
|||
|
written in different ways--`Lazy dog', and `Dog, lazy'--so readers
|
|||
|
can look up the concept in different ways.)
|
|||
|
|
|||
|
Blank lines
|
|||
|
...........
|
|||
|
|
|||
|
* 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.
|
|||
|
|
|||
|
* Always insert a blank line before an `@table' command and after an
|
|||
|
`@end table' command; but never insert a blank line after an
|
|||
|
`@table' command or before an `@end table' command.
|
|||
|
|
|||
|
For example,
|
|||
|
|
|||
|
Types of fox:
|
|||
|
|
|||
|
@table @samp
|
|||
|
@item Quick
|
|||
|
Jump over lazy dogs.
|
|||
|
|
|||
|
@item Brown
|
|||
|
Also jump over lazy dogs.
|
|||
|
@end table
|
|||
|
@noindent
|
|||
|
On the other hand, ...
|
|||
|
|
|||
|
Insert blank lines before and after `@itemize' ... `@end itemize'
|
|||
|
and `@enumerate' ... `@end enumerate' in the same way.
|
|||
|
|
|||
|
Complete phrases
|
|||
|
................
|
|||
|
|
|||
|
Complete phrases are easier to read than ...
|
|||
|
|
|||
|
* Write entries in an itemized list as complete sentences; or at
|
|||
|
least, as complete phrases. Incomplete expressions ... awkward
|
|||
|
... like this.
|
|||
|
|
|||
|
* Write the prefatory sentence or phrase for a multi-item list or
|
|||
|
table as a complete expression. Do not write "You can set:";
|
|||
|
instead, write "You can set these variables:". The former
|
|||
|
expression sounds cut off.
|
|||
|
|
|||
|
Editions, dates and versions
|
|||
|
............................
|
|||
|
|
|||
|
Write the edition and version numbers and date in three places in
|
|||
|
every manual:
|
|||
|
|
|||
|
1. In the first `@ifinfo' section, for people reading the Texinfo
|
|||
|
file.
|
|||
|
|
|||
|
2. In the `@titlepage' section, for people reading the printed manual.
|
|||
|
|
|||
|
3. In the `Top' node, for people reading the Info file.
|
|||
|
|
|||
|
Also, it helps to write a note before the first `@ifinfo' section to
|
|||
|
explain what you are doing.
|
|||
|
|
|||
|
For example:
|
|||
|
|
|||
|
@c ===> NOTE! <==
|
|||
|
@c Specify the edition and version numbers and date
|
|||
|
@c in *three* places:
|
|||
|
@c 1. First ifinfo section 2. title page 3. top node
|
|||
|
@c To find the locations, search for !!set
|
|||
|
|
|||
|
@ifinfo
|
|||
|
@c !!set edition, date, version
|
|||
|
This is Edition 4.03, January 1992,
|
|||
|
of the @cite{GDB Manual} for GDB Version 4.3.
|
|||
|
...
|
|||
|
|
|||
|
--or use `@set' and `@value' (*note `@value' Example: value Example.).
|
|||
|
|
|||
|
Definition Commands
|
|||
|
...................
|
|||
|
|
|||
|
Definition commands are `@deffn', `@defun', `@defmac', and the like,
|
|||
|
and enable you to write descriptions in a uniform format.
|
|||
|
|
|||
|
* Write just one definition command for each entity you define with a
|
|||
|
definition command. The automatic indexing feature creates an
|
|||
|
index entry that leads the reader to the definition.
|
|||
|
|
|||
|
* Use `@table' ... `@end table' in an appendix that contains a
|
|||
|
summary of functions, not `@deffn' or other definition commands.
|
|||
|
|
|||
|
Capitalization
|
|||
|
..............
|
|||
|
|
|||
|
* Capitalize `Texinfo'; it is a name. Do not write the `x' or `i'
|
|||
|
in upper case.
|
|||
|
|
|||
|
* Capitalize `Info'; it is a name.
|
|||
|
|
|||
|
* Write TeX using the `@TeX{}' command. Note the uppercase `T' and
|
|||
|
`X'. This command causes the formatters to typeset the name
|
|||
|
according to the wishes of Donald Knuth, who wrote TeX.
|
|||
|
|
|||
|
Spaces
|
|||
|
......
|
|||
|
|
|||
|
Do not use spaces to format a Texinfo file, except inside of
|
|||
|
`@example' ... `@end example' and similar commands.
|
|||
|
|
|||
|
For example, TeX fills the following:
|
|||
|
|
|||
|
@kbd{C-x v}
|
|||
|
@kbd{M-x vc-next-action}
|
|||
|
Perform the next logical operation
|
|||
|
on the version-controlled file
|
|||
|
corresponding to the current buffer.
|
|||
|
|
|||
|
so it looks like this:
|
|||
|
|
|||
|
`C-x v' `M-x vc-next-action' Perform the next logical operation on
|
|||
|
the version-controlled file corresponding to the current buffer.
|
|||
|
|
|||
|
In this case, the text should be formatted with `@table', `@item', and
|
|||
|
`@itemx', to create a table.
|
|||
|
|
|||
|
@code, @samp, @var, and `---'
|
|||
|
.............................
|
|||
|
|
|||
|
* Use `@code' around Lisp symbols, including command names. For
|
|||
|
example,
|
|||
|
|
|||
|
The main function is @code{vc-next-action}, ...
|
|||
|
|
|||
|
* Avoid putting letters such as `s' immediately after an `@code'.
|
|||
|
Such letters look bad.
|
|||
|
|
|||
|
* Use `@var' around meta-variables. Do not write angle brackets
|
|||
|
around them.
|
|||
|
|
|||
|
* Use three hyphens in a row, `---', to indicate a long dash. TeX
|
|||
|
typesets these as a long dash and the Info formatters reduce three
|
|||
|
hyphens to two.
|
|||
|
|
|||
|
Periods Outside of Quotes
|
|||
|
.........................
|
|||
|
|
|||
|
Place periods and other punctuation marks *outside* of quotations,
|
|||
|
unless the punctuation is part of the quotation. This practice goes
|
|||
|
against convention, but enables the reader to distinguish between the
|
|||
|
contents of the quotation and the whole passage.
|
|||
|
|
|||
|
For example, you should write the following sentence with the period
|
|||
|
outside the end quotation marks:
|
|||
|
|
|||
|
Evidently, `au' is an abbreviation for ``author''.
|
|||
|
|
|||
|
since `au' does *not* serve as an abbreviation for `author.' (with a
|
|||
|
period following the word).
|
|||
|
|
|||
|
Introducing New Terms
|
|||
|
.....................
|
|||
|
|
|||
|
* Introduce new terms so that a user who does not know them can
|
|||
|
understand them from context; or write a definition for the term.
|
|||
|
|
|||
|
For example, in the following, the terms "check in", "register" and
|
|||
|
"delta" are all appearing for the first time; the example sentence
|
|||
|
should be rewritten so they are understandable.
|
|||
|
|
|||
|
The major function assists you in checking in a file to your
|
|||
|
version control system and registering successive sets of
|
|||
|
changes to it as deltas.
|
|||
|
|
|||
|
* Use the `@dfn' command around a word being introduced, to indicate
|
|||
|
that the user should not expect to know the meaning already, and
|
|||
|
should expect to learn the meaning from this passage.
|
|||
|
|
|||
|
@pxref
|
|||
|
......
|
|||
|
|
|||
|
Absolutely never use `@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.
|
|||
|
|
|||
|
Invoking from a Shell
|
|||
|
.....................
|
|||
|
|
|||
|
You can invoke programs such as Emacs, GCC, and GAWK from a shell.
|
|||
|
The documentation for each program should contain a section that
|
|||
|
describes this. Unfortunately, if the node names and titles for these
|
|||
|
sections are all different, readers find it hard to search for the
|
|||
|
section.
|
|||
|
|
|||
|
Name such sections with a phrase beginning with the word
|
|||
|
`Invoking ...', as in `Invoking Emacs'; this way users can find the
|
|||
|
section easily.
|
|||
|
|
|||
|
ANSI C Syntax
|
|||
|
.............
|
|||
|
|
|||
|
When you use `@example' to describe a C function's calling
|
|||
|
conventions, use the ANSI C syntax, like this:
|
|||
|
|
|||
|
void dld_init (char *@var{path});
|
|||
|
|
|||
|
And in the subsequent discussion, refer to the argument values by
|
|||
|
writing the same argument names, again highlighted with `@var'.
|
|||
|
|
|||
|
Avoid the obsolete style that looks like this:
|
|||
|
|
|||
|
#include <dld.h>
|
|||
|
|
|||
|
dld_init (path)
|
|||
|
char *path;
|
|||
|
|
|||
|
Also, it is best to avoid writing `#include' above the declaration
|
|||
|
just to indicate that the function is declared in a header file. The
|
|||
|
practice may give the misimpression that the `#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.
|
|||
|
|
|||
|
Bad Examples
|
|||
|
............
|
|||
|
|
|||
|
Here are several examples of bad writing to avoid:
|
|||
|
|
|||
|
In this example, say, " ... you must `@dfn'{check in} the new
|
|||
|
version." That flows better.
|
|||
|
|
|||
|
When you are done editing the file, you must perform a
|
|||
|
`@dfn'{check in}.
|
|||
|
|
|||
|
In the following example, say, "... makes a unified interface such
|
|||
|
as VC mode possible."
|
|||
|
|
|||
|
SCCS, RCS and other version-control systems all perform similar
|
|||
|
functions in broadly similar ways (it is this resemblance which
|
|||
|
makes a unified control mode like this possible).
|
|||
|
|
|||
|
And in this example, you should specify what `it' refers to:
|
|||
|
|
|||
|
If you are working with other people, it assists in coordinating
|
|||
|
everyone's changes so they do not step on each other.
|
|||
|
|
|||
|
And Finally ...
|
|||
|
...............
|
|||
|
|
|||
|
* Pronounce TeX as if the `X' were a Greek `chi', as the last sound
|
|||
|
in the name `Bach'. But pronounce Texinfo as in `speck':
|
|||
|
`teckinfo'.
|
|||
|
|
|||
|
* Write notes for yourself at the very end of a Texinfo file after
|
|||
|
the `@bye'. None of the formatters process text after the `@bye';
|
|||
|
it is as if the text were within `@ignore' ... `@end ignore'.
|
|||
|
|
|||
|
|
|||
|
File: texi.info, Node: Sample Texinfo File, Next: Sample Permissions, Prev: Tips, Up: Top
|
|||
|
|
|||
|
A Sample Texinfo File
|
|||
|
*********************
|
|||
|
|
|||
|
Here is a complete, short sample Texinfo file, without any
|
|||
|
commentary. You can see this file, with comments, in the first chapter.
|
|||
|
*Note A Short Sample Texinfo File: Short Sample.
|
|||
|
|
|||
|
\input texinfo @c -*-texinfo-*-
|
|||
|
@c %**start of header
|
|||
|
@setfilename sample.info
|
|||
|
@settitle Sample Document
|
|||
|
@c %**end of header
|
|||
|
|
|||
|
@setchapternewpage odd
|
|||
|
|
|||
|
@ifinfo
|
|||
|
This is a short example of a complete Texinfo file.
|
|||
|
|
|||
|
Copyright 1990 Free Software Foundation, Inc.
|
|||
|
@end ifinfo
|
|||
|
|
|||
|
@titlepage
|
|||
|
@sp 10
|
|||
|
@comment The title is printed in a large font.
|
|||
|
@center @titlefont{Sample Title}
|
|||
|
|
|||
|
@c The following two commands start the copyright page.
|
|||
|
@page
|
|||
|
@vskip 0pt plus 1filll
|
|||
|
Copyright @copyright{} 1990 Free Software Foundation, Inc.
|
|||
|
@end titlepage
|
|||
|
|
|||
|
@node Top, First Chapter, (dir), (dir)
|
|||
|
@comment node-name, next, previous, up
|
|||
|
|
|||
|
@menu
|
|||
|
* First Chapter:: The first chapter is the
|
|||
|
only chapter in this sample.
|
|||
|
* Concept Index:: This index has two entries.
|
|||
|
@end menu
|
|||
|
|
|||
|
@node First Chapter, Concept Index, Top, Top
|
|||
|
@comment node-name, next, previous, up
|
|||
|
@chapter First Chapter
|
|||
|
@cindex Sample index entry
|
|||
|
|
|||
|
This is the contents of the first chapter.
|
|||
|
@cindex Another sample index entry
|
|||
|
|
|||
|
Here is a numbered list.
|
|||
|
|
|||
|
@enumerate
|
|||
|
@item
|
|||
|
This is the first item.
|
|||
|
|
|||
|
@item
|
|||
|
This is the second item.
|
|||
|
@end enumerate
|
|||
|
|
|||
|
The @code{makeinfo} and @code{texinfo-format-buffer}
|
|||
|
commands transform a Texinfo file such as this into
|
|||
|
an Info file; and @TeX{} typesets it for a printed
|
|||
|
manual.
|
|||
|
|
|||
|
@node Concept Index, , First Chapter, Top
|
|||
|
@comment node-name, next, previous, up
|
|||
|
@unnumbered Concept Index
|
|||
|
|
|||
|
@printindex cp
|
|||
|
|
|||
|
@contents
|
|||
|
@bye
|
|||
|
|
|||
|
|
|||
|
File: texi.info, Node: Sample Permissions, Next: Include Files, Prev: Sample Texinfo File, Up: Top
|
|||
|
|
|||
|
Sample Permissions
|
|||
|
******************
|
|||
|
|
|||
|
Texinfo files should contain sections that tell the readers that they
|
|||
|
have the right to copy and distribute the Texinfo file, the Info file,
|
|||
|
and the printed manual.
|
|||
|
|
|||
|
Also, if you are writing a manual about software, you should explain
|
|||
|
that the software is free and either include the GNU General Public
|
|||
|
License (GPL) or provide a reference to it. *Note Distribution:
|
|||
|
(emacs)Distrib, for an example of the text that could be used in the
|
|||
|
software "Distribution", "General Public License", and "NO WARRANTY"
|
|||
|
sections of a document. *Note Texinfo Copying Conditions: Copying, for
|
|||
|
an example of a brief explanation of how the copying conditions provide
|
|||
|
you with rights.
|
|||
|
|
|||
|
* Menu:
|
|||
|
|
|||
|
* Inserting Permissions:: How to put permissions in your document.
|
|||
|
* ifinfo Permissions:: Sample `ifinfo' copying permissions.
|
|||
|
* Titlepage Permissions:: Sample Titlepage copying permissions.
|
|||
|
|
|||
|
|
|||
|
File: texi.info, Node: Inserting Permissions, Next: ifinfo Permissions, Up: Sample Permissions
|
|||
|
|
|||
|
Inserting Permissions
|
|||
|
=====================
|
|||
|
|
|||
|
In a Texinfo file, the first `@ifinfo' section usually begins with a
|
|||
|
line that says what the file documents. This is what a person reading
|
|||
|
the unprocessed Texinfo file or using the advanced Info command `g *'
|
|||
|
sees first. *note Advanced Info commands: (info)Expert, for more
|
|||
|
information. (A reader using the regular Info commands usually starts
|
|||
|
reading at the first node and skips this first section, which is not in
|
|||
|
a node.)
|
|||
|
|
|||
|
In the `@ifinfo' section, the summary sentence is followed by a
|
|||
|
copyright notice and then by the copying permission notice. One of the
|
|||
|
copying permission paragraphs is enclosed in `@ignore' and `@end
|
|||
|
ignore' commands. This paragraph states that the Texinfo file can be
|
|||
|
processed through TeX and printed, provided the printed manual carries
|
|||
|
the proper copying permission notice. This paragraph is not made part
|
|||
|
of the Info file since it is not relevant to the Info file; but it is a
|
|||
|
mandatory part of the Texinfo file since it permits people to process
|
|||
|
the Texinfo file in TeX and print the results.
|
|||
|
|
|||
|
In the printed manual, the Free Software Foundation copying
|
|||
|
permission notice follows the copyright notice and publishing
|
|||
|
information and is located within the region delineated by the
|
|||
|
`@titlepage' and `@end titlepage' commands. The copying permission
|
|||
|
notice is exactly the same as the notice in the `@ifinfo' section
|
|||
|
except that the paragraph enclosed in `@ignore' and `@end ignore'
|
|||
|
commands is not part of the notice.
|
|||
|
|
|||
|
To make it simple to insert a permission notice into each section of
|
|||
|
the Texinfo file, sample permission notices for each section are
|
|||
|
reproduced in full below.
|
|||
|
|
|||
|
Note that you may need to specify the correct name of a section
|
|||
|
mentioned in the permission notice. For example, in `The GDB Manual',
|
|||
|
the name of the section referring to the General Public License is
|
|||
|
called the "GDB General Public License", but in the sample shown below,
|
|||
|
that section is referred to generically as the "GNU General Public
|
|||
|
License". If the Texinfo file does not carry a copy of the General
|
|||
|
Public License, leave out the reference to it, but be sure to include
|
|||
|
the rest of the sentence.
|
|||
|
|
|||
|
|
|||
|
File: texi.info, Node: ifinfo Permissions, Next: Titlepage Permissions, Prev: Inserting Permissions, Up: Sample Permissions
|
|||
|
|
|||
|
`ifinfo' Copying Permissions
|
|||
|
============================
|
|||
|
|
|||
|
In the `@ifinfo' section of a Texinfo file, the standard Free
|
|||
|
Software Foundation permission notice reads as follows:
|
|||
|
|
|||
|
This file documents ...
|
|||
|
|
|||
|
Copyright 1992 Free Software Foundation, Inc.
|
|||
|
|
|||
|
Permission is granted to make and distribute verbatim
|
|||
|
copies of this manual provided the copyright notice and
|
|||
|
this permission notice are preserved on all copies.
|
|||
|
|
|||
|
@ignore
|
|||
|
Permission is granted to process this file through TeX
|
|||
|
and print the results, provided the printed document
|
|||
|
carries a copying permission notice identical to this
|
|||
|
one except for the removal of this paragraph (this
|
|||
|
paragraph not being relevant to the printed manual).
|
|||
|
|
|||
|
@end ignore
|
|||
|
Permission is granted to copy and distribute modified
|
|||
|
versions of this manual under the conditions for
|
|||
|
verbatim copying, provided also that the sections
|
|||
|
entitled ``Copying'' and ``GNU General Public License''
|
|||
|
are included exactly as in the original, and provided
|
|||
|
that the entire resulting derived work is distributed
|
|||
|
under the terms of a permission notice identical to this
|
|||
|
one.
|
|||
|
|
|||
|
Permission is granted to copy and distribute
|
|||
|
translations of this manual into another language,
|
|||
|
under the above conditions for modified versions,
|
|||
|
except that this permission notice may be stated in a
|
|||
|
translation approved by the Free Software Foundation.
|
|||
|
|
|||
|
|
|||
|
File: texi.info, Node: Titlepage Permissions, Prev: ifinfo Permissions, Up: Sample Permissions
|
|||
|
|
|||
|
Titlepage Copying Permissions
|
|||
|
=============================
|
|||
|
|
|||
|
In the `@titlepage' section of a Texinfo file, the standard Free
|
|||
|
Software Foundation copying permission notice follows the copyright
|
|||
|
notice and publishing information. The standard phrasing is as follows:
|
|||
|
|
|||
|
Permission is granted to make and distribute verbatim
|
|||
|
copies of this manual provided the copyright notice and
|
|||
|
this permission notice are preserved on all copies.
|
|||
|
|
|||
|
Permission is granted to copy and distribute modified
|
|||
|
versions of this manual under the conditions for
|
|||
|
verbatim copying, provided also that the sections
|
|||
|
entitled ``Copying'' and ``GNU General Public License''
|
|||
|
are included exactly as in the original, and provided
|
|||
|
that the entire resulting derived work is distributed
|
|||
|
under the terms of a permission notice identical to this
|
|||
|
one.
|
|||
|
|
|||
|
Permission is granted to copy and distribute
|
|||
|
translations of this manual into another language,
|
|||
|
under the above conditions for modified versions,
|
|||
|
except that this permission notice may be stated in a
|
|||
|
translation approved by the Free Software Foundation.
|
|||
|
|
|||
|
|
|||
|
File: texi.info, Node: Include Files, Next: Headings, Prev: Sample Permissions, Up: Top
|
|||
|
|
|||
|
Include Files
|
|||
|
*************
|
|||
|
|
|||
|
When TeX or an Info formatting command sees an `@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 `@include' command.
|
|||
|
* texinfo-multiple-files-update:: How to create and update nodes and
|
|||
|
menus when using included files.
|
|||
|
* Include File Requirements:: What `texinfo-multiple-files-update' expects.
|
|||
|
* Sample Include File:: A sample outer file with included files
|
|||
|
within it; and a sample included file.
|
|||
|
* Include Files Evolution:: How use of the `@include' command
|
|||
|
has changed over time.
|
|||
|
|
|||
|
|
|||
|
File: texi.info, Node: Using Include Files, Next: texinfo-multiple-files-update, Up: Include Files
|
|||
|
|
|||
|
How to Use Include Files
|
|||
|
========================
|
|||
|
|
|||
|
To include another file within a Texinfo file, write the `@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:
|
|||
|
|
|||
|
@include buffers.texi
|
|||
|
|
|||
|
An included file should simply be a segment of text that you expect
|
|||
|
to be included as is into the overall or "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 `\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 `@bye' command; nothing after `@bye' is formatted.
|
|||
|
|
|||
|
In the past, you were required to write an `@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 `@setfilename' line exists in an
|
|||
|
included file, it is ignored.
|
|||
|
|
|||
|
Conventionally, an included file begins with an `@node' line that is
|
|||
|
followed by an `@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 Emacs 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 `@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 GNU Emacs Texinfo mode
|
|||
|
command, `texinfo-multiple-files-update', that is designed for
|
|||
|
`@include' files.
|
|||
|
|
|||
|
|
|||
|
File: texi.info, Node: texinfo-multiple-files-update, Next: Include File Requirements, Prev: Using Include Files, Up: Include Files
|
|||
|
|
|||
|
`texinfo-multiple-files-update'
|
|||
|
===============================
|
|||
|
|
|||
|
GNU Emacs Texinfo mode provides a command to handle included files
|
|||
|
called `texinfo-multiple-files-update'. 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 `@node' line of the included files or all of them:
|
|||
|
|
|||
|
`M-x texinfo-multiple-files-update'
|
|||
|
Called without any arguments:
|
|||
|
|
|||
|
- Create or update the `Next', `Previous', and `Up' pointers of
|
|||
|
the first `@node' line in each file included in an outer or
|
|||
|
overall Texinfo file.
|
|||
|
|
|||
|
- Create or update the `Top' level node pointers of the outer or
|
|||
|
overall file.
|
|||
|
|
|||
|
- Create or update a main menu in the outer file.
|
|||
|
|
|||
|
`C-u M-x texinfo-multiple-files-update'
|
|||
|
Called with `C-u' as a prefix argument:
|
|||
|
|
|||
|
- Create or update pointers in the first `@node' line in each
|
|||
|
included file.
|
|||
|
|
|||
|
- Create or update the `Top' level node pointers of the outer
|
|||
|
file.
|
|||
|
|
|||
|
- Create and insert a master menu in the outer file. The
|
|||
|
master menu is made from all the menus in all the included
|
|||
|
files.
|
|||
|
|
|||
|
`C-u 8 M-x texinfo-multiple-files-update'
|
|||
|
Called with a numeric prefix argument, such as `C-u 8':
|
|||
|
|
|||
|
- Create or update *all* the `Next', `Previous', and `Up'
|
|||
|
pointers of all the included files.
|
|||
|
|
|||
|
- Create or update *all* the menus of all the included files.
|
|||
|
|
|||
|
- Create or update the `Top' level node pointers of the outer or
|
|||
|
overall file.
|
|||
|
|
|||
|
- And then create a master menu in the outer file. This is
|
|||
|
similar to invoking `texinfo-master-menu' with an argument
|
|||
|
when you are working with just one file.
|
|||
|
|
|||
|
Note the use of the prefix argument in interactive use: with a
|
|||
|
regular prefix argument, just `C-u', the
|
|||
|
`texinfo-multiple-files-update' command inserts a master menu; with a
|
|||
|
numeric prefix argument, such as `C-u 8', the command updates *every*
|
|||
|
pointer and menu in *all* the files and then inserts a master menu.
|
|||
|
|
|||
|
|
|||
|
File: texi.info, Node: Include File Requirements, Next: Sample Include File, Prev: texinfo-multiple-files-update, Up: Include Files
|
|||
|
|
|||
|
Include File Requirements
|
|||
|
=========================
|
|||
|
|
|||
|
If you plan to use the `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 `@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, `@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
|
|||
|
`@chapter', an `@appendix', or an `@unnumbered' node. Thus, normally,
|
|||
|
each included file contains one, and only one, chapter or
|
|||
|
equivalent-level node.
|
|||
|
|
|||
|
The outer file should contain only *one* node, the `Top' node. It
|
|||
|
should *not* contain any nodes besides the single `Top' node. The
|
|||
|
`texinfo-multiple-files-update' command will not process them.
|
|||
|
|
|||
|
|
|||
|
File: texi.info, Node: Sample Include File, Next: Include Files Evolution, Prev: Include File Requirements, Up: Include Files
|
|||
|
|
|||
|
Sample File with `@include'
|
|||
|
===========================
|
|||
|
|
|||
|
Here is an example of a complete outer Texinfo file with `@include'
|
|||
|
files within it before running `texinfo-multiple-files-update', which
|
|||
|
would insert a main or master menu:
|
|||
|
|
|||
|
\input texinfo @c -*-texinfo-*-
|
|||
|
@setfilename include-example.info
|
|||
|
@settitle Include Example
|
|||
|
|
|||
|
@setchapternewpage odd
|
|||
|
@titlepage
|
|||
|
@sp 12
|
|||
|
@center @titlefont{Include Example}
|
|||
|
@sp 2
|
|||
|
@center by Whom Ever
|
|||
|
|
|||
|
@page
|
|||
|
@vskip 0pt plus 1filll
|
|||
|
Copyright @copyright{} 1990 Free Software Foundation, Inc.
|
|||
|
@end titlepage
|
|||
|
|
|||
|
@ifinfo
|
|||
|
@node Top, First, (dir), (dir)
|
|||
|
@top Master Menu
|
|||
|
@end ifinfo
|
|||
|
|
|||
|
@include foo.texinfo
|
|||
|
@include bar.texinfo
|
|||
|
@include concept-index.texinfo
|
|||
|
|
|||
|
@summarycontents
|
|||
|
@contents
|
|||
|
|
|||
|
@bye
|
|||
|
|
|||
|
An included file, such as `foo.texinfo', might look like this:
|
|||
|
|
|||
|
@node First, Second, , Top
|
|||
|
@chapter First Chapter
|
|||
|
|
|||
|
Contents of first chapter ...
|
|||
|
|
|||
|
The full contents of `concept-index.texinfo' might be as simple as
|
|||
|
this:
|
|||
|
|
|||
|
@node Concept Index, , Second, Top
|
|||
|
@unnumbered Concept Index
|
|||
|
|
|||
|
@printindex cp
|
|||
|
|
|||
|
The outer Texinfo source file for `The GNU Emacs Lisp Reference
|
|||
|
Manual' is named `elisp.texi'. This outer file contains a master menu
|
|||
|
with 417 entries and a list of 41 `@include' files.
|
|||
|
|
|||
|
|
|||
|
File: texi.info, Node: Include Files Evolution, Prev: Sample Include File, Up: Include Files
|
|||
|
|
|||
|
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 Emacs did not need to make
|
|||
|
a large buffer to hold the whole of a large Info file when someone
|
|||
|
wanted information; instead, Emacs allocated just enough memory for the
|
|||
|
small Info file that contained the particular information sought. This
|
|||
|
way, Emacs could avoid wasting memory.
|
|||
|
|
|||
|
References from one file to another were made by referring to the
|
|||
|
file name as well as the node name. (*Note Referring to Other Info
|
|||
|
Files: Other Info Files. Also, see *Note `@xref' with Four and Five
|
|||
|
Arguments: 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 `@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 `The GNU Emacs 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 `@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.
|
|||
|
|
|||
|
|
|||
|
File: texi.info, Node: Headings, Next: Catching Mistakes, Prev: Include Files, Up: Top
|
|||
|
|
|||
|
Page Headings
|
|||
|
*************
|
|||
|
|
|||
|
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.)
|
|||
|
|
|||
|
* Menu:
|
|||
|
|
|||
|
* Headings Introduced:: Conventions for using page headings.
|
|||
|
* Heading Format:: Standard page heading formats.
|
|||
|
* Heading Choice:: How to specify the type of page heading.
|
|||
|
* Custom Headings:: How to create your own headings and footings.
|
|||
|
|
|||
|
|
|||
|
File: texi.info, Node: Headings Introduced, Next: Heading Format, Up: Headings
|
|||
|
|
|||
|
Headings Introduced
|
|||
|
===================
|
|||
|
|
|||
|
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. Usually, you will use one or other
|
|||
|
of these 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.
|
|||
|
|
|||
|
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
|
|||
|
chapters begin on right-hand pages--a preceding left-hand page is left
|
|||
|
blank if necessary. Reports, however, are often printed on just 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.
|
|||
|
|
|||
|
The `@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.
|
|||
|
|
|||
|
In Texinfo, headings and footings are single lines at the tops and
|
|||
|
bottoms of pages; you cannot create multiline headings or footings.
|
|||
|
Each header or footer line is divided into three parts: a left part, a
|
|||
|
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.
|
|||
|
|
|||
|
|
|||
|
File: texi.info, Node: Heading Format, Next: Heading Choice, Prev: Headings Introduced, Up: Headings
|
|||
|
|
|||
|
Standard Heading Formats
|
|||
|
========================
|
|||
|
|
|||
|
Texinfo provides two standard heading formats, one for manuals
|
|||
|
printed on one side of each sheet of paper, and the other for manuals
|
|||
|
printed on both sides of the paper.
|
|||
|
|
|||
|
By default, nothing is specified for the footing of a Texinfo file,
|
|||
|
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.
|
|||
|
|
|||
|
A single-sided page looks like this:
|
|||
|
|
|||
|
_______________________
|
|||
|
| |
|
|||
|
| chapter page number |
|
|||
|
| |
|
|||
|
| Start of text ... |
|
|||
|
| ... |
|
|||
|
| |
|
|||
|
|
|||
|
The standard format for two-sided printing depends on whether the
|
|||
|
page number is even or odd. By convention, even-numbered pages are on
|
|||
|
the left- and odd-numbered pages are on the right. (TeX will adjust the
|
|||
|
widths of the left- and right-hand margins. Usually, widths are
|
|||
|
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.)
|
|||
|
|
|||
|
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
|
|||
|
`@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.
|
|||
|
|
|||
|
Two pages, side by side as in an open book, look like this:
|
|||
|
|
|||
|
_______________________ _______________________
|
|||
|
| | | |
|
|||
|
| page number title | | chapter page number |
|
|||
|
| | | |
|
|||
|
| Start of text ... | | More text ... |
|
|||
|
| ... | | ... |
|
|||
|
| | | |
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
|
|||
|
File: texi.info, Node: Heading Choice, Next: Custom Headings, Prev: Heading Format, Up: Headings
|
|||
|
|
|||
|
Specifying the Type of Heading
|
|||
|
==============================
|
|||
|
|
|||
|
TeX does not begin to generate page headings for a standard Texinfo
|
|||
|
file until it reaches the `@end titlepage' command. Thus, the title
|
|||
|
and copyright pages are not numbered. The `@end titlepage' command
|
|||
|
causes TeX to begin to generate page headings according to a standard
|
|||
|
format specified by the `@setchapternewpage' command that precedes the
|
|||
|
`@titlepage' section.
|
|||
|
|
|||
|
There are four possibilities:
|
|||
|
|
|||
|
No `@setchapternewpage' command
|
|||
|
Cause TeX to specify the single-sided heading format, with chapters
|
|||
|
on new pages. This is the same as `@setchapternewpage on'.
|
|||
|
|
|||
|
`@setchapternewpage on'
|
|||
|
Specify the single-sided heading format, with chapters on new
|
|||
|
pages.
|
|||
|
|
|||
|
`@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 `@headings double' command;
|
|||
|
see *Note The `@headings' Command: headings on off.)
|
|||
|
|
|||
|
`@setchapternewpage odd'
|
|||
|
Specify the double-sided heading format, with chapters on new
|
|||
|
pages.
|
|||
|
|
|||
|
Texinfo lacks an `@setchapternewpage even' command.
|
|||
|
|
|||
|
|
|||
|
File: texi.info, Node: Custom Headings, Prev: Heading Choice, Up: Headings
|
|||
|
|
|||
|
How to Make Your Own Headings
|
|||
|
=============================
|
|||
|
|
|||
|
You can use the standard headings provided with Texinfo or specify
|
|||
|
your own.
|
|||
|
|
|||
|
Texinfo provides six commands for specifying headings and footings.
|
|||
|
The `@everyheading' command and `@everyfooting' command generate page
|
|||
|
headers and footers that are the same for both even- and odd-numbered
|
|||
|
pages. The `@evenheading' command and `@evenfooting' command generate
|
|||
|
headers and footers for even-numbered (left-hand) pages; and the
|
|||
|
`@oddheading' command and `@oddfooting' command generate headers and
|
|||
|
footers for odd-numbered (right-hand) pages.
|
|||
|
|
|||
|
Write custom heading specifications in the Texinfo file immediately
|
|||
|
after the `@end titlepage' command. Enclose your specifications
|
|||
|
between `@iftex' and `@end iftex' commands since the
|
|||
|
`texinfo-format-buffer' command may not recognize them. Also, you must
|
|||
|
cancel the predefined heading commands with the `@headings off' command
|
|||
|
before defining your own specifications.
|
|||
|
|
|||
|
Here is how to tell TeX to place the chapter name at the left, the
|
|||
|
page number in the center, and the date at the right of every header
|
|||
|
for both even- and odd-numbered pages:
|
|||
|
|
|||
|
@iftex
|
|||
|
@headings off
|
|||
|
@everyheading @thischapter @| @thispage @| @today{}
|
|||
|
@end iftex
|
|||
|
|
|||
|
You need to divide the left part from the central part and the central
|
|||
|
part from the right had part by inserting `@|' between parts.
|
|||
|
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.
|
|||
|
|
|||
|
Here are the six heading and footing commands:
|
|||
|
|
|||
|
`@everyheading LEFT @| CENTER @| RIGHT'
|
|||
|
`@everyfooting LEFT @| CENTER @| RIGHT'
|
|||
|
The `every' commands specify the format for both even- and
|
|||
|
odd-numbered pages. These commands are for documents that are
|
|||
|
printed on one side of each sheet of paper, or for documents in
|
|||
|
which you want symmetrical headers or footers.
|
|||
|
|
|||
|
`@evenheading LEFT @| CENTER @| RIGHT'
|
|||
|
`@oddheading LEFT @| CENTER @| RIGHT'
|
|||
|
`@evenfooting LEFT @| CENTER @| RIGHT'
|
|||
|
`@oddfooting LEFT @| CENTER @| RIGHT'
|
|||
|
The `even' and `odd' commands specify the format for even-numbered
|
|||
|
pages and odd-numbered pages. These commands are for books and
|
|||
|
manuals that are printed on both sides of each sheet of paper.
|
|||
|
|
|||
|
Use the `@this...' series of @-commands to provide the names of
|
|||
|
chapters and sections and the page number. You can use the `@this...'
|
|||
|
commands in the left, center, or right portions of headers and footers,
|
|||
|
or anywhere else in a Texinfo file so long as they are between `@iftex'
|
|||
|
and `@end iftex' commands.
|
|||
|
|
|||
|
Here are the `@this...' commands:
|
|||
|
|
|||
|
`@thispage'
|
|||
|
Expands to the current page number.
|
|||
|
|
|||
|
`@thischaptername'
|
|||
|
Expands to the name of the current chapter.
|
|||
|
|
|||
|
`@thischapter'
|
|||
|
Expands to the number and name of the current chapter, in the
|
|||
|
format `Chapter 1: Title'.
|
|||
|
|
|||
|
`@thistitle'
|
|||
|
Expands to the name of the document, as specified by the
|
|||
|
`@settitle' command.
|
|||
|
|
|||
|
`@thisfile'
|
|||
|
For `@include' files only: expands to the name of the current
|
|||
|
`@include' file. If the current Texinfo source file is not an
|
|||
|
`@include' file, this command has no effect. This command does
|
|||
|
*not* provide the name of the current Texinfo source file unless
|
|||
|
it is an `@include' file. (*Note Include Files::, for more
|
|||
|
information about `@include' files.)
|
|||
|
|
|||
|
You can also use the `@today{}' command, which expands to the current
|
|||
|
date, in `1 Jan 1900' format.
|
|||
|
|
|||
|
Other @-commands and text are printed in a header or footer just as
|
|||
|
if they were in the body of a page. It is useful to incorporate text,
|
|||
|
particularly when you are writing drafts:
|
|||
|
|
|||
|
@iftex
|
|||
|
@headings off
|
|||
|
@everyheading @emph{Draft!} @| @thispage @| @thischapter
|
|||
|
@everyfooting @| @| Version: 0.27: @today{}
|
|||
|
@end iftex
|
|||
|
|
|||
|
Beware of overlong titles: they may overlap another part of the
|
|||
|
header or footer and blot it out.
|
|||
|
|
|||
|
|
|||
|
File: texi.info, Node: Catching Mistakes, Next: Refilling Paragraphs, Prev: Headings, Up: Top
|
|||
|
|
|||
|
Formatting Mistakes
|
|||
|
*******************
|
|||
|
|
|||
|
Besides mistakes in the content of your documentation, there are two
|
|||
|
kinds of mistake you can make with Texinfo: you can make mistakes with
|
|||
|
@-commands, and you can make mistakes with the structure of the nodes
|
|||
|
and chapters.
|
|||
|
|
|||
|
Emacs has two tools for catching the @-command mistakes and two for
|
|||
|
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.
|
|||
|
|
|||
|
For finding problems with the structure of nodes and chapters, you
|
|||
|
can use `C-c C-s' (`texinfo-show-structure') and the related `occur'
|
|||
|
command and you can use the `M-x Info-validate' command.
|
|||
|
|
|||
|
* Menu:
|
|||
|
|
|||
|
* makeinfo preferred:: `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 `texinfo-show-structure'.
|
|||
|
* Using occur:: How to list all lines containing a pattern.
|
|||
|
* Running Info-Validate:: How to find badly referenced nodes.
|
|||
|
|
|||
|
|
|||
|
File: texi.info, Node: makeinfo preferred, Next: Debugging with Info, Up: Catching Mistakes
|
|||
|
|
|||
|
`makeinfo' Find Errors
|
|||
|
======================
|
|||
|
|
|||
|
The `makeinfo' program does an excellent job of catching errors and
|
|||
|
reporting them--far better than either the `texinfo-format-region' or
|
|||
|
the `texinfo-format-buffer' command. In addition, the various
|
|||
|
functions for automatically creating and updating node pointers and
|
|||
|
menus remove 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 `makeinfo' (or its
|
|||
|
Texinfo mode manifestations, `makeinfo-region' and `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 `makeinfo', or your
|
|||
|
problem is very puzzling, then you may want to use the tools described
|
|||
|
in this appendix.
|
|||
|
|
|||
|
|
|||
|
File: texi.info, Node: Debugging with Info, Next: Debugging with TeX, Prev: makeinfo preferred, Up: Catching Mistakes
|
|||
|
|
|||
|
Catching Errors with Info Formatting
|
|||
|
====================================
|
|||
|
|
|||
|
After you have written part of a Texinfo file, you can use the
|
|||
|
`texinfo-format-region' or the `makeinfo-region' command to see whether
|
|||
|
the region formats properly.
|
|||
|
|
|||
|
Most likely, however, you are reading this section because for some
|
|||
|
reason you cannot use the `makeinfo-region' command; therefore, the
|
|||
|
rest of this section presumes that you are using
|
|||
|
`texinfo-format-region'.
|
|||
|
|
|||
|
If you make a mistake with an @-command, `texinfo-format-region'
|
|||
|
will stop processing at or after the error and display an error
|
|||
|
message. To see where in the buffer the error occurred, switch to the
|
|||
|
`*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).
|
|||
|
|
|||
|
For example, if you accidentally end a menu with the command `@end
|
|||
|
menus' with an `s' on the end, instead of with `@end menu', you will
|
|||
|
see an error message that says:
|
|||
|
|
|||
|
@end menus is not handled by texinfo
|
|||
|
|
|||
|
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:
|
|||
|
|
|||
|
---------- Buffer: *Info Region* ----------
|
|||
|
* Menu:
|
|||
|
|
|||
|
* Using texinfo-show-structure:: How to use
|
|||
|
`texinfo-show-structure'
|
|||
|
to catch mistakes.
|
|||
|
* Running Info-Validate:: How to check for
|
|||
|
unreferenced nodes.
|
|||
|
@end menus
|
|||
|
-!-
|
|||
|
---------- Buffer: *Info Region* ----------
|
|||
|
|
|||
|
The `texinfo-format-region' command sometimes provides slightly odd
|
|||
|
error messages. For example, the following cross reference fails to
|
|||
|
format:
|
|||
|
|
|||
|
(@xref{Catching Mistakes, for more info.)
|
|||
|
|
|||
|
In this case, `texinfo-format-region' detects the missing closing brace
|
|||
|
but displays a message that says `Unbalanced parentheses' rather than
|
|||
|
`Unbalanced braces'. This is because the formatting command looks for
|
|||
|
mismatches between braces as if they were parentheses.
|
|||
|
|
|||
|
Sometimes `texinfo-format-region' fails to detect mistakes. For
|
|||
|
example, in the following, the closing brace is swapped with the
|
|||
|
closing parenthesis:
|
|||
|
|
|||
|
(@xref{Catching Mistakes), for more info.}
|
|||
|
|
|||
|
Formatting produces:
|
|||
|
(*Note for more info.: Catching Mistakes)
|
|||
|
|
|||
|
The only way for you to detect this error is to realize that the
|
|||
|
reference should have looked like this:
|
|||
|
|
|||
|
(*Note Catching Mistakes::, for more info.)
|
|||
|
|
|||
|
Incidentally, if you are reading this node in Info and type `f RET'
|
|||
|
(`Info-follow-reference'), you will generate an error message that says:
|
|||
|
|
|||
|
No such node: "Catching Mistakes) The only way ...
|
|||
|
|
|||
|
This is because Info perceives the example of the error as the first
|
|||
|
cross reference in this node and if you type a RET immediately after
|
|||
|
typing the Info `f' command, Info will attempt to go to the referenced
|
|||
|
node. If you type `f catch TAB RET', Info will complete the node name
|
|||
|
of the correctly written example and take you to the `Catching
|
|||
|
Mistakes' node. (If you try this, you can return from the `Catching
|
|||
|
Mistakes' node by typing `l' (`Info-last').)
|
|||
|
|