changeset 68701:efd297c5c768

Minor clarifications. (Sentences): Explain why two-space convention is better. Explain sentence-end-without-period here. (Fill Commands): Not here. (Refill): Node moved down. (Filling): Update menu. (Table Creation, Cell Justification, Column Commands): Clarify.
author Richard M. Stallman <rms@gnu.org>
date Wed, 08 Feb 2006 00:21:56 +0000
parents 2ce71d4cf3fd
children 066d88077bfc
files man/text.texi
diffstat 1 files changed, 210 insertions(+), 221 deletions(-) [+]
line wrap: on
line diff
--- a/man/text.texi	Wed Feb 08 00:16:21 2006 +0000
+++ b/man/text.texi	Wed Feb 08 00:21:56 2006 +0000
@@ -12,7 +12,8 @@
 that you edit with Emacs is text, in this sense of the word.  The other
 meaning is more restrictive: a sequence of characters in a human language
 for humans to read (possibly after processing by a text formatter), as
-opposed to a program or commands for a program.
+opposed to a program or binary data.  This chapter is concerned with
+editing text in the narrower sense.
 
   Human languages have syntactic/stylistic conventions that can be
 supported or used to advantage by editor commands: conventions involving
@@ -41,7 +42,7 @@
 @ifinfo
 mode.
 @end ifinfo
-For input to nroff, use Nroff mode.
+For input to groff or nroff, use Nroff mode.
 
   Instead of using a text formatter, you can edit formatted text in
 WYSIWYG style (``what you see is what you get''), with Enriched mode.
@@ -113,7 +114,7 @@
 repeat counts.  @kbd{M-f} with a negative argument moves backward, and
 @kbd{M-b} with a negative argument moves forward.  Forward motion
 stops right after the last letter of the word, while backward motion
-stops right before the first letter.@refill
+stops right before the first letter.
 
 @kindex M-d
 @findex kill-word
@@ -130,10 +131,10 @@
 @kindex M-DEL
   @kbd{M-@key{DEL}} (@code{backward-kill-word}) kills the word before
 point.  It kills everything from point back to where @kbd{M-b} would
-move to.  If point is after the space in @w{@samp{FOO, BAR}}, then
-@w{@samp{FOO, }} is killed.  (If you wish to kill just @samp{FOO}, and
-not the comma and the space, use @kbd{M-b M-d} instead of
-@kbd{M-@key{DEL}}.)
+move to.  For instance, if point is after the space in @w{@samp{FOO,
+BAR}}, it kills @w{@samp{FOO, }}.  If you wish to kill just
+@samp{FOO}, and not the comma and the space, use @kbd{M-b M-d} instead
+of @kbd{M-@key{DEL}}.
 
 @c Don't index M-t and transpose-words here, they are indexed in
 @c fixit.texi, in the node "Transpose".
@@ -155,9 +156,9 @@
 scan for the place to put the mark.  In Transient Mark mode, this command
 activates the mark.
 
-  The word commands' understanding of syntax is completely controlled by
-the syntax table.  Any character can, for example, be declared to be a word
-delimiter.  @xref{Syntax}.
+  The word commands' understanding of word boundaries is controlled
+by the syntax table.  Any character can, for example, be declared to
+be a word delimiter.  @xref{Syntax}.
 
 @node Sentences
 @section Sentences
@@ -206,7 +207,7 @@
 There is also a command, @kbd{C-x @key{DEL}}
 (@code{backward-kill-sentence}), for killing back to the beginning of a
 sentence.  This command is useful when you change your mind in the
-middle of composing text.@refill
+middle of composing text.
 
   The sentence commands assume that you follow the American typist's
 convention of putting two spaces at the end of a sentence; they consider
@@ -214,34 +215,36 @@
 followed by the end of a line or two spaces, with any number of
 @samp{)}, @samp{]}, @samp{'}, or @samp{"} characters allowed in between.
 A sentence also begins or ends wherever a paragraph begins or ends.
+It is useful to follow this convention, because it makes a distinction
+between periods that end a sentence and periods that indicate
+abbreviations; that enables the Emacs sentence commands to distinguish,
+too.  These commands to not stop for periods that indicate abbreviations.
+
+@vindex sentence-end-double-space
+  If you want to use just one space between sentences, you can set the
+variable @code{sentence-end-double-space} to @code{nil} to make the
+sentence commands stop for single spaces.  However, this mode has a
+drawback: there is no way to distinguish between periods that end
+sentences and those that indicate abbreviations.  For convenient and
+reliable editing, we therefore recommend you follow the two-space
+convention.  The variable @code{sentence-end-double-space} also
+affects filling (@pxref{Fill Commands}) in related ways.
 
 @vindex sentence-end
-  The variable @code{sentence-end} controls recognition of the end of
-a sentence.  If non-@code{nil}, it is a regexp that matches the last
-few characters of a sentence, together with the whitespace following
-the sentence.  If the value is @code{nil}, the default, then Emacs
-computes the regexp according to various criteria.  The result is
-normally similar to the following regexp:
-
-@example
-"[.?!][]\"')]*\\($\\| $\\|\t\\|  \\)[ \t\n]*"
-@end example
-
-@noindent
-This example is explained in the section on regexps.  @xref{Regexp Example}.
-
-  If you want to use just one space between sentences, you should
-set @code{sentence-end} to this value:
-
-@example
-"[.?!][]\"')]*\\($\\|\t\\| \\)[ \t\n]*"
-@end example
-
-@noindent
-This is what setting the variable @code{sentence-end-double-space} to
-@code{nil} automatically does.  But note that this makes it impossible
-to distinguish between periods that end sentences and those that
-indicate abbreviations.
+  The variable @code{sentence-end} controls how to recognize the end
+of a sentence.  If non-@code{nil}, it is a regexp that matches the
+last few characters of a sentence, together with the whitespace
+following the sentence.  If the value is @code{nil}, the default, then
+Emacs computes the regexp according to various criteria such as the
+value of @code{sentence-end-double-space}.  @xref{Regexp Example}, for
+a detailed explanation of one of the regular expressions Emacs uses
+for this purpose.
+
+@vindex sentence-end-without-period
+  Some languages do not use period to indicate end of sentence.  For
+example, a sentence in Thai text ends with double space but without a
+period.  Set the variable @code{sentence-end-without-period} to
+@code{t} to tell the sentence commands that a period is not necessary.
 
 @node Paragraphs
 @section Paragraphs
@@ -266,18 +269,20 @@
   @kbd{M-@{} moves to the beginning of the current or previous
 paragraph, while @kbd{M-@}} moves to the end of the current or next
 paragraph.  Blank lines and text-formatter command lines separate
-paragraphs and are not considered part of any paragraph.  In
-Paragraph-Indent Text mode, but not in Text mode, an indented line
-also starts a new paragraph.  If there is a blank line before the
-paragraph, @kbd{M-@{} moves to the blank line, because that is
-convenient in practice.
+paragraphs and are not considered part of any paragraph.  If there is
+a blank line before the paragraph, @kbd{M-@{} moves to the blank line,
+because that is convenient in practice.
+
+  In Text mode, an indented line is not a paragraph break.  If you
+want indented lines to have this effect, use Paragraph-Indent Text
+mode instead.  @xref{Text Mode}.
 
   In major modes for programs, paragraphs begin and end only at blank
-lines.  This makes the paragraph commands continue to be useful even
-though there are no paragraphs per se.
-
-  When there is a fill prefix, then paragraphs are delimited by all lines
-which don't start with the fill prefix.  @xref{Filling}.
+lines.  This makes the paragraph commands useful, even though there
+are no paragraphs as such in a program.
+
+  When you have set a fill prefix, then paragraphs are delimited by
+all lines which don't start with the fill prefix.  @xref{Filling}.
 
 @kindex M-h
 @findex mark-paragraph
@@ -399,11 +404,11 @@
 
 @menu
 * Auto Fill::	        Auto Fill mode breaks long lines automatically.
-* Refill::              Keeping paragraphs filled.
 * Fill Commands::       Commands to refill paragraphs and center lines.
 * Fill Prefix::	        Filling paragraphs that are indented
                           or in a comment, etc.
 * Adaptive Fill::       How Emacs can determine the fill prefix automatically.
+* Refill::              Keeping paragraphs filled.
 * Longlines::           Editing text with very long lines.
 @end menu
 
@@ -464,31 +469,6 @@
 The section on init files says how to arrange this permanently for yourself.
 @xref{Init File}.
 
-@node Refill
-@subsection Refill Mode
-@cindex refilling text, word processor style
-@cindex modes, Refill
-@cindex Refill minor mode
-
-  Refill minor mode provides support for keeping paragraphs filled as
-you type or modify them in other ways.  It provides an effect similar
-to typical word processor behavior.  This works by running a
-paragraph-filling command at suitable times.
-
-  To toggle the use of Refill mode in the current buffer, type
-@kbd{M-x refill-mode}.  When you are typing text, only characters
-which normally trigger auto filling, like the space character, will
-trigger refilling.  This is to avoid making it too slow.  Apart from
-self-inserting characters, other commands which modify the text cause
-refilling.
-
-  The current implementation is preliminary and not robust.  You can
-get better ``line wrapping'' behavior using Longlines mode.
-@xref{Longlines}.  However, Longlines mode has an important
-side-effect: the newlines that it inserts for you are not saved to
-disk, so the files that you make with Longlines mode will appear to be
-completely unfilled if you edit them without Longlines mode.
-
 @node Fill Commands
 @subsection Explicit Fill Commands
 
@@ -515,24 +495,24 @@
 
 @findex fill-region
   To refill many paragraphs, use @kbd{M-x fill-region}, which
-divides the region into paragraphs and fills each of them.
+finds the paragraphs in the region and fills each of them.
 
 @findex fill-region-as-paragraph
   @kbd{M-q} and @code{fill-region} use the same criteria as @kbd{M-h}
 for finding paragraph boundaries (@pxref{Paragraphs}).  For more
 control, you can use @kbd{M-x fill-region-as-paragraph}, which refills
-everything between point and mark.  This command deletes any blank lines
-within the region, so separate blocks of text end up combined into one
-block.@refill
+everything between point and mark as a single paragraph.  This command
+deletes any blank lines within the region, so separate blocks of text
+end up combined into one block.
 
 @cindex justification
-  A numeric argument to @kbd{M-q} causes it to @dfn{justify} the text as
-well as filling it.  This means that extra spaces are inserted to make
-the right margin line up exactly at the fill column.  To remove the
-extra spaces, use @kbd{M-q} with no argument.  (Likewise for
+  A numeric argument to @kbd{M-q} tells it to @dfn{justify} the text
+as well as filling it.  This means that extra spaces are inserted to
+make the right margin line up exactly at the fill column.  To remove
+the extra spaces, use @kbd{M-q} with no argument.  (Likewise for
 @code{fill-region}.)  Another way to control justification, and choose
-other styles of filling, is with the @code{justification} text property;
-see @ref{Format Justification}.
+other styles of filling, is with the @code{justification} text
+property; see @ref{Format Justification}.
 
 @kindex M-s @r{(Text mode)}
 @cindex centering
@@ -561,7 +541,6 @@
 the distinction between these two ways of using a period, the fill
 commands do not break a line after a period followed by just one space.
 
-@vindex sentence-end-double-space
   If the variable @code{sentence-end-double-space} is @code{nil}, the
 fill commands expect and leave just one space at the end of a sentence.
 Ordinarily this variable is @code{t}, so the fill commands insist on
@@ -571,18 +550,13 @@
   If the variable @code{colon-double-space} is non-@code{nil}, the
 fill commands put two spaces after a colon.
 
-@vindex sentence-end-without-period
-  Some languages do not use period to indicate end of sentence.  For
-example, a sentence in Thai text ends with double space but without a
-period.  Set the variable @code{sentence-end-without-period} to
-@code{t} to tell the sentence commands that a period is not necessary.
-
 @vindex fill-nobreak-predicate
   The variable @code{fill-nobreak-predicate} specifies additional
 conditions for where line-breaking is allowed.  Its value is either
 @code{nil} or a Lisp function; the function is called with no
-arguments, and if it returns a non-@code{nil} value, then point is not
-a good place to break the line.  Two standard functions you can use are
+arguments, with point at a place where Emacs is considering breaking
+the line.  If the function returns a non-@code{nil} value, then that's
+a bad place to break the line.  Two standard functions you can use are
 @code{fill-single-word-nobreak-p} (don't break after the first word of
 a sentence or before the last) and @code{fill-french-nobreak-p} (don't
 break after @samp{(} or before @samp{)}, @samp{:} or @samp{?}).
@@ -615,20 +589,20 @@
 @findex set-fill-prefix
   To specify a fill prefix for the current buffer, move to a line that
 starts with the desired prefix, put point at the end of the prefix,
-and give the command @w{@kbd{C-x .}}@: (@code{set-fill-prefix}).
-That's a period after the @kbd{C-x}.  To turn off the fill prefix,
-specify an empty prefix: type @w{@kbd{C-x .}}@: with point at the
-beginning of a line.@refill
+and type @w{@kbd{C-x .}}@: (@code{set-fill-prefix}).  (That's a period
+after the @kbd{C-x}.)  To turn off the fill prefix, specify an empty
+prefix: type @w{@kbd{C-x .}}@: with point at the beginning of a line.
 
   When a fill prefix is in effect, the fill commands remove the fill
-prefix from each line before filling and insert it on each line after
-filling.  (The beginning of the first line is left unchanged, since
-often that is intentionally different.)  Auto Fill mode also inserts
-the fill prefix automatically when it makes a new line.  The @kbd{C-o}
-command inserts the fill prefix on new lines it creates, when you use
-it at the beginning of a line (@pxref{Blank Lines}).  Conversely, the
-command @kbd{M-^} deletes the prefix (if it occurs) after the newline
-that it deletes (@pxref{Indentation}).
+prefix from each line of the paragraph before filling and insert it on
+each line after filling.  (The beginning of the first line of the
+paragraph is left unchanged, since often that is intentionally
+different.)  Auto Fill mode also inserts the fill prefix automatically
+when it makes a new line.  The @kbd{C-o} command inserts the fill
+prefix on new lines it creates, when you use it at the beginning of a
+line (@pxref{Blank Lines}).  Conversely, the command @kbd{M-^} deletes
+the prefix (if it occurs) after the newline that it deletes
+(@pxref{Indentation}).
 
   For example, if @code{fill-column} is 40 and you set the fill prefix
 to @samp{;; }, then @kbd{M-q} in the following text
@@ -749,6 +723,31 @@
 line.  If it returns @code{nil}, @code{adaptive-fill-regexp} gets
 a chance to find a prefix.
 
+@node Refill
+@subsection Refill Mode
+@cindex refilling text, word processor style
+@cindex modes, Refill
+@cindex Refill minor mode
+
+  Refill minor mode provides support for keeping paragraphs filled as
+you type or modify them in other ways.  It provides an effect similar
+to typical word processor behavior.  This works by running a
+paragraph-filling command at suitable times.
+
+  To toggle the use of Refill mode in the current buffer, type
+@kbd{M-x refill-mode}.  When you are typing text, only characters
+which normally trigger auto filling, like the space character, will
+trigger refilling.  This is to avoid making it too slow.  Apart from
+self-inserting characters, other commands which modify the text cause
+refilling.
+
+  The current implementation is preliminary and not robust.  You can
+get better ``line wrapping'' behavior using Longlines mode.
+@xref{Longlines}.  However, Longlines mode has an important
+side-effect: the newlines that it inserts for you are not saved to
+disk, so the files that you make with Longlines mode will appear to be
+completely unfilled if you edit them without Longlines mode.
+
 @node Longlines
 @subsection Long Lines Mode
 @cindex refilling text, word processor style
@@ -786,11 +785,11 @@
 automatic line wrapping back on, type @kbd{M-x longlines-auto-wrap}.
 
 @findex longlines-show-hard-newlines
-  Whenever you type @kbd{RET}, you are inserting a hard newline.  If
-you want to see where all the hard newlines are, type @kbd{M-x
-longlines-show-hard-newlines}.  This will mark each hard newline with
-a special symbol.  The same command with a prefix argument turns this
-display off.
+  Type @kbd{RET} to insert a hard newline, one which automatic
+refilling will not remove.  If you want to see where all the hard
+newlines are, type @kbd{M-x longlines-show-hard-newlines}.  This will
+mark each hard newline with a special symbol.  The same command with a
+prefix argument turns this display off.
 
   Long Lines mode does not change normal text files that are already
 filled, since the existing newlines are considered hard newlines.
@@ -845,10 +844,11 @@
 This is convenient when you have just typed a word in the wrong case: you
 can give the case conversion command and continue typing.
 
-  If a word case conversion command is given in the middle of a word, it
-applies only to the part of the word which follows point.  This is just
-like what @kbd{M-d} (@code{kill-word}) does.  With a negative argument,
-case conversion applies only to the part of the word before point.
+  If a word case conversion command is given in the middle of a word,
+it applies only to the part of the word which follows point.  (This is
+comparable to what @kbd{M-d} (@code{kill-word}) does.)  With a
+negative argument, case conversion applies only to the part of the
+word before point.
 
 @kindex C-x C-l
 @kindex C-x C-u
@@ -888,22 +888,23 @@
   Text mode turns off the features concerned with comments except when
 you explicitly invoke them.  It changes the syntax table so that
 single-quotes are considered part of words.  However, if a word starts
-with single-quotes, then these are treated as a prefix for purposes
-such as capitalization.  That is, @kbd{M-c} will convert
-@samp{'hello'} into @samp{'Hello'}, as expected.
+with single-quotes, these are treated as a prefix for purposes such as
+capitalization.  That is, @kbd{M-c} will convert @samp{'hello'} into
+@samp{'Hello'}, as expected.
 
 @cindex Paragraph-Indent Text mode
 @cindex mode, Paragraph-Indent Text
 @findex paragraph-indent-text-mode
 @findex paragraph-indent-minor-mode
   If you indent the first lines of paragraphs, then you should use
-Paragraph-Indent Text mode rather than Text mode.  In this mode, you do
-not need to have blank lines between paragraphs, because the first-line
-indentation is sufficient to start a paragraph; however paragraphs in
-which every line is indented are not supported.  Use @kbd{M-x
-paragraph-indent-text-mode} to enter this mode.  Use @kbd{M-x
-paragraph-indent-minor-mode} to enter an equivalent minor mode, for
-instance during mail composition.
+Paragraph-Indent Text mode rather than Text mode.  In this mode, you
+do not need to have blank lines between paragraphs, because the
+first-line indentation is sufficient to start a paragraph; however
+paragraphs in which every line is indented are not supported.  Use
+@kbd{M-x paragraph-indent-text-mode} to enter this mode.  Use @kbd{M-x
+paragraph-indent-minor-mode} to enable an equivalent minor mode in
+situations where you can't change the major mode---in mail
+composition, for instance.
 
 @kindex M-TAB @r{(Text mode)}
   Text mode, and all the modes based on it, define @kbd{M-@key{TAB}}
@@ -1083,7 +1084,7 @@
 similarly backward.  Both accept numeric arguments as repeat counts.  The
 names emphasize that invisible headings are skipped, but this is not really
 a special feature.  All editing commands that look for lines ignore the
-invisible lines automatically.@refill
+invisible lines automatically.
 
 @findex outline-up-heading
 @findex outline-forward-same-level
@@ -1164,7 +1165,7 @@
 heading line's @dfn{subtree}: its body, all its subheadings, both
 direct and indirect, and all of their bodies.  In other words, the
 subtree contains everything following the current heading line, up to
-and not including the next heading of the same or higher rank.@refill
+and not including the next heading of the same or higher rank.
 
 @findex hide-leaves
 @findex show-branches
@@ -1181,7 +1182,7 @@
   A little weaker than @code{show-branches} is @kbd{C-c C-i}
 (@code{show-children}).  It makes just the direct subheadings
 visible---those one level down.  Deeper subheadings remain invisible, if
-they were invisible.@refill
+they were invisible.
 
 @findex hide-body
 @findex show-all
@@ -1356,13 +1357,14 @@
 @findex slitex-mode
 @findex doctex-mode
 
-  @TeX{} is a powerful text formatter written by Donald Knuth; it is also
-free, like GNU Emacs.  La@TeX{} is a simplified input format for @TeX{},
-implemented by @TeX{} macros; it comes with @TeX{}.  Sli@TeX{} is a special
-form of La@TeX{}.@footnote{Sli@TeX{} is obsoleted by the @samp{slides}
-document class in recent La@TeX{} versions.}  Doc@TeX{} (@file{.dtx})
-is a special file format in which the La@TeX{} sources are written,
-combining sources with documentation.
+  @TeX{} is a powerful text formatter written by Donald Knuth; it is
+also free software, like GNU Emacs.  La@TeX{} is a simplified input
+format for @TeX{}, implemented by @TeX{} macros; it comes with @TeX{}.
+Sli@TeX{} is a special form of La@TeX{}.@footnote{Sli@TeX{} is
+obsoleted by the @samp{slides} document class in recent La@TeX{}
+versions.}  Doc@TeX{} (@file{.dtx}) is a special file format in which
+the La@TeX{} sources are written, combining sources with
+documentation.
 
   Emacs has a special @TeX{} mode for editing @TeX{} input files.
 It provides facilities for checking the balance of delimiters and for
@@ -1611,7 +1613,7 @@
 
   Type @kbd{C-c C-k} (@code{tex-kill-job}) to kill the @TeX{} process if
 you see that its output is no longer useful.  Using @kbd{C-c C-b} or
-@kbd{C-c C-r} also kills any @TeX{} process still running.@refill
+@kbd{C-c C-r} also kills any @TeX{} process still running.
 
 @findex tex-region
 @kindex C-c C-r @r{(@TeX{} mode)}
@@ -1838,7 +1840,7 @@
 @vindex sgml-xml-mode
   SGML mode and HTML mode support XML also.  In XML, every opening tag
 must have an explicit closing tag.  When @code{sgml-xml-mode} is
-non-@code{nil}, SGML mode (and HTML mode) always insert explicit
+non-@code{nil}, SGML mode and HTML mode always insert explicit
 closing tags.  When you visit a file, these modes determine from the
 file contents whether it is XML or not, and set @code{sgml-xml-mode}
 accordingly, so that they do the right thing for the file in either
@@ -2380,7 +2382,7 @@
 @cindex table mode
 @cindex text-based tables
 
-  Table Mode provides an easy and intuitive way to create and edit WYSIWYG
+  Table mode provides an easy and intuitive way to create and edit WYSIWYG
 text-based tables.  Here is an example of such a table:
 
 @smallexample
@@ -2402,7 +2404,7 @@
 +-----------------+--------------------------------+-----------------+
 @end smallexample
 
-  Table Mode allows the contents of the table such as this one to be
+  Table mode allows the contents of the table such as this one to be
 easily manipulated by inserting or deleting characters inside a cell.
 A cell is effectively a localized rectangular edit region and edits to
 a cell do not affect the contents of the surrounding cells.  If the
@@ -2428,8 +2430,8 @@
 @node Table Definition
 @subsection What is a Text-based Table?
 
-  Look at the following examples of valid tables as a reference while
-you read this section:
+  Keep the following examples of valid tables in mind as a reference
+while you read this section:
 
 @example
               +--+----+---+     +-+     +--+-----+
@@ -2441,15 +2443,13 @@
                                         +-----+--+
 @end example
 
-  A table consists of a rectangular frame and the contents inside the
-frame.  A table's cells must be at least one character wide and one
-character high with two adjacent cells sharing a boarder line.  A cell
-can be subdivided into multiple rectangular cells but cannot nest or
-overlap.
-
-  Both the table frame and cell border lines must consist of one of
-three special characters.  The variables that hold these characters
-are described below:
+  A table consists of a rectangular frame whose inside is divided into
+cells.  Each cell must be at least one character wide and one
+character high, not counting its border lines.  A cell can be
+subdivided into multiple rectangular cells, but cells cannot overlap.
+
+  The table frame and cell border lines are made of three special
+characters.  These variables specify those characters:
 
 @table @code
 @vindex table-cell-vertical-char
@@ -2487,9 +2487,9 @@
 
 @enumerate a
 @item
-Nested cells are not allowed.
+Overlapped cells or non-rectangular cells are not allowed.
 @item
-Overlapped cells or non-rectangular cells are not allowed.
+Same as a.
 @item
 The border must be rectangular.
 @item
@@ -2506,16 +2506,15 @@
 @findex table-insert
   The command to create a table is @code{table-insert}.  When called
 interactively, it asks for the number of columns, number of rows, cell
-width and cell height.  The number of columns is a number of cells
-within the table's width.  The number of rows is the number of cells
-within the table's height.  The cell width is a number of characters
-that fit within a cell width.  The cell height is a number of lines
-within cell height.  While the number of columns and number of rows
-must be an integer number, the cell width and the cell height can be
-either an integer number (when the value is constant across the table)
-or a series of integer numbers, separated by spaces or commas, where
-each number corresponds to each cell width within a row from left to
-right or each cell height within a column from top to bottom.
+width and cell height.  The number of columns is the number of cells
+horizontally side by side.  The number of rows is the number of cells
+vertically within the table's height.  The cell width is a number of
+characters that each cell holds, left to right.  The cell height is a
+number of lines each cell holds.  The cell width and the cell height
+can be either an integer (when the value is constant across the table)
+or a series of integer, separated by spaces or commas, where each
+number corresponds to the next cell within a row from left to right,
+or the next cell within a column from top to bottom.
 
 @node Table Recognition
 @subsection Table Recognition
@@ -2523,7 +2522,7 @@
 
 @findex table-recognize
 @findex table-unrecognize
-  Table Mode maintains special text properties in the buffer to allow
+  Table mode maintains special text properties in the buffer to allow
 editing in a convenient fashion.  When a buffer with tables is saved
 to its file, these text properties are lost, so when you visit this
 file again later, Emacs does not see a table, but just formatted text.
@@ -2531,15 +2530,10 @@
 table-recognize} command.  It scans the current buffer, recognizes
 valid table cells, and attaches appropriate text properties to allow
 for table editing.  The converse command, @code{table-unrecognize}, is
-used to remove the special text properties and revert the buffer back
+used to remove the special text properties and convert the buffer back
 to plain text.
 
-  An optional numeric prefix argument can precede the
-@code{table-recognize} command.  If the argument is negative, tables
-in the buffer become inactive.  This is equivalent to invoking
-@code{table-unrecognize}.
-
-  Similar functions exist to enable or disable tables within a region,
+  Special commands exist to enable or disable tables within a region,
 enable or disable individual tables, and enable/disable individual
 cells.  These commands are:
 
@@ -2575,10 +2569,10 @@
   The commands @code{table-forward-cell} and
 @code{table-backward-cell} move point from the current cell to an
 adjacent cell forward and backward respectively.  The order of the
-cell is wrapped.  When point is positioned in the last cell of a
-table, typing @kbd{M-x table-forward-cell} moves point to the first
-cell in the table.  Likewise @kbd{M-x table-backward-cell} from the
-first cell in a table moves point to the last cell in the table.
+cells is cyclic: when point is in the last cell of a table, typing
+@kbd{M-x table-forward-cell} moves to the first cell in the table.
+Likewise @kbd{M-x table-backward-cell} from the first cell in a table
+moves to the last cell.
 
 @findex table-span-cell
   The command @code{table-span-cell} spans the current cell into one
@@ -2602,18 +2596,17 @@
 @findex table-split-cell-horizontally
   The command @code{table-split-cell-horizontally} splits the current
 cell horizontally and creates a pair of cells right and left of where
-point is located.  If the subject cell to split is not empty the user
-is asked how to handle the cell contents.  The three options are:
-@code{split}, @code{left}, or @code{right}.  @code{split} splits the
-contents at point literally while the @code{left} and @code{right}
-options move the entire contents into the left or right cell
-respectively.
+point is located.  If the cell being split is not empty, this asks you
+how to handle the cell contents.  The three options are: @code{split},
+@code{left}, or @code{right}.  @code{split} splits the contents at
+point literally, while the @code{left} and @code{right} options move
+the entire contents into the left or right cell respectively.
 
 @cindex enlarge a table cell
 @cindex shrink a table cell
-  The next four commands enlarge or shrink a cell.  These commands
-accept numeric arguments (@pxref{Arguments}) to specify how many
-columns or rows to enlarge or shrink a particular table.
+  The next four commands enlarge or shrink a cell.  They use numeric
+arguments (@pxref{Arguments}) to specify how many columns or rows to
+enlarge or shrink a particular table.
 
 @table @kbd
 @findex table-heighten-cell
@@ -2639,21 +2632,20 @@
 of cell contents is subject to the specified justification.
 
 @findex table-justify
-  The command @code{table-justify} requests the user to specify what
-to justify: a cell,a column, or a row.  If you select cell
-justification, this command sets the justification only to the current
-cell.  Selecting column or row justification set the justification to
-all the cells within a column or row respectively.  The command then
-requests the user to enter which justification to apply: @code{left},
-@code{center}, @code{right}, @code{top}, @code{middle}, @code{bottom},
-or @code{none}.  The options @code{left}, @code{center}, and
+  The command @code{table-justify} ask you to specify what to justify:
+a cell, a column, or a row.  If you select cell justification, this
+command sets the justification only for the current cell.  Selecting
+column or row justification sets the justification for all the cells
+within a column or row respectively.  The command then ask you which
+kind of justification to apply: @code{left}, @code{center},
+@code{right}, @code{top}, @code{middle}, @code{bottom}, or
+@code{none}.  Horizontal justification and vertical justification are
+specified independently.  The options @code{left}, @code{center}, and
 @code{right} specify horizontal justification while the options
 @code{top}, @code{middle}, @code{bottom}, and @code{none} specify
 vertical justification.  The vertical justification @code{none}
-effectively removes vertical justification while horizontal
-justification must be one of @code{left}, @code{center}, or
-@code{right}.  Horizontal justification and vertical justification are
-specified independently.
+effectively removes vertical justification.  Horizontal justification
+must be one of @code{left}, @code{center}, or @code{right}.
 
 @vindex table-detect-cell-alignment
   Justification information is stored in the buffer as a part of text
@@ -2667,8 +2659,8 @@
 was originally applied to the cell and then applies this justification
 to the cell.  This is a speculative algorithm and is therefore not
 perfect, however, the justification is deduced correctly most of the
-time.  If you desire to disable this feature, customize the variable
-@code{table-detect-cell-alignment} to set it to @code{nil}.
+time.  To disable this feature, customize the variable
+@code{table-detect-cell-alignment} and set it to @code{nil}.
 
 @node Row Commands
 @subsection Commands for Table Rows
@@ -2681,7 +2673,7 @@
 pushed down after the newly inserted row.  A numeric prefix argument
 specifies the number of rows to insert.  Note that in order to insert
 rows @emph{after} the last row at the bottom of a table, you must
-place point below the table, i.e.@: outside the table, prior to
+place point below the table---that is, outside the table---prior to
 invoking this command.
 
 @cindex delete row in table
@@ -2696,12 +2688,11 @@
 @cindex insert column in table
 @findex table-insert-column
   The command @code{table-insert-column} inserts a column of cells to
-the left of the current row in a table.  The current column where
-point is located at is pushed right of the newly inserted column.  To
-insert a column to the right side of the right most column, place
-point to the right of the rightmost column, which is outside of the
-table, prior to invoking this command.  A numeric prefix argument
-specifies the number of columns to insert.
+the left of the current row in a table.  This pushes the current
+column to the right.  To insert a column to the right side of the
+rightmost column, place point to the right of the rightmost column,
+which is outside of the table, prior to invoking this command.  A
+numeric prefix argument specifies the number of columns to insert.
 
 @cindex delete column in table
   A command @code{table-delete-column} deletes a column of cells at
@@ -2714,11 +2705,10 @@
 
 @findex table-fixed-width-mode
   The command @code{table-fixed-width-mode} toggles fixed width mode
-on and off.  When the fixed width mode is turned on, editing inside a
+on and off.  When fixed width mode is turned on, editing inside a
 cell never changes the cell width; when it is off, the cell width
 expands automatically in order to prevent a word from being folded
-into multiple lines.  By default, the fixed width mode is turned off.
-
+into multiple lines.  By default, fixed width mode is disabled.
 
 @node Table Conversion
 @subsection Conversion Between Plain Text and Tables
@@ -2731,9 +2721,11 @@
 Recognition}), the original text does not have a table appearance but
 may hold a logical table structure.  For example, some elements
 separated by known patterns form a two dimensional structure which can
-be turned into a table.  Look at the numbers below.  The numbers are
-horizontally separated by a comma and vertically separated by a
-newline character.
+be turned into a table.
+
+  Here's an example of data that @code{table-capture} can operate on.
+The numbers are horizontally separated by a comma and vertically
+separated by a newline character.
 
 @example
 1, 2, 3, 4
@@ -2742,8 +2734,7 @@
 @end example
 
 @noindent
-When you invoke @kbd{M-x table-capture} on the above three-line
-region, the region can be turned into the next table:
+Invoking @kbd{M-x table-capture} on that text produces this table:
 
 @example
 +-----+-----+-----+-----+
@@ -2756,9 +2747,9 @@
 @end example
 
 @noindent
-where @samp{,} is used for a column delimiter regexp, a newline is
-used for a row delimiter regexp, cells are left justified, and minimum
-cell width is 5.
+The conversion uses @samp{,} for the column delimiter and newline for
+a row delimiter, cells are left justified, and minimum cell width is
+5.
 
 @findex table-release
   The command @code{table-release} does the opposite of
@@ -2771,7 +2762,7 @@
 
 @example
 @samp{table-capture} is a powerful command however mastering its power
-requires some practice.  Here is a list of items what it can do.
+requires some practice.  Here are some things it can do:
 
 Parse Cell Items      By using column delimiter regular
                       expression and raw delimiter regular
@@ -2797,9 +2788,8 @@
 @c produced output!!
 @example
 +-----------------------------------------------------------------+
-|@samp{table-capture} is a powerful command however mastering its      |
-|power requires some practice.  Here is a list of items what it   |
-|can do.                                                          |
+|@samp{table-capture} is a powerful command, but mastering its         |
+|power requires some practice.  Here are some things it can do:   |
 |                                                                 |
 |Parse Cell Items      By using column delimiter regular          |
 |                      expression and raw delimiter regular       |
@@ -2822,9 +2812,8 @@
 
 @example
 +-----------------------------------------------------------------+
-|@samp{table-capture} is a powerful command however mastering its      |
-|power requires some practice.  Here is a list of items what it   |
-|can do.                                                          |
+|@samp{table-capture} is a powerful command, but mastering its         |
+|power requires some practice.  Here are some things it can do:   |
 +---------------------+-------------------------------------------+
 |Parse Cell Items     |By using column delimiter regular          |
 |                     |expression and raw delimiter regular       |
@@ -2877,7 +2866,7 @@
 @cindex table in language format
 @cindex table for HTML and LaTeX
 @findex table-generate-source
-The command @code{table-generate-source} generates a table formatted
+  The command @code{table-generate-source} generates a table formatted
 for a specific markup language.  It asks for a language (which must be
 one of @code{html}, @code{latex}, or @code{cals}), a destination
 buffer where to put the result, and the table caption (a string), and