changeset 9209:923c7cb7f13f

Simplify TeXinfo files by eliminating redundant @iftex followed by @tex construction. spellchecked all .txi and .texi files.
author Rik <rdrider0-list@yahoo.com>
date Sun, 17 May 2009 12:18:06 -0700
parents cb163402bf79
children a7a9eecc07b5
files doc/ChangeLog doc/interpreter/arith.txi doc/interpreter/container.txi doc/interpreter/contrib.txi doc/interpreter/data.txi doc/interpreter/debug.txi doc/interpreter/diagperm.txi doc/interpreter/diffeq.txi doc/interpreter/dynamic.txi doc/interpreter/emacs.txi doc/interpreter/eos.txi doc/interpreter/errors.txi doc/interpreter/eval.txi doc/interpreter/expr.txi doc/interpreter/func.txi doc/interpreter/install.txi doc/interpreter/intro.txi doc/interpreter/io.txi doc/interpreter/linalg.txi doc/interpreter/nonlin.txi doc/interpreter/numbers.txi doc/interpreter/oop.txi doc/interpreter/optim.txi doc/interpreter/package.txi doc/interpreter/plot.txi doc/interpreter/poly.txi doc/interpreter/quad.txi doc/interpreter/sparse.txi doc/interpreter/stats.txi doc/interpreter/stmt.txi doc/interpreter/strings.txi doc/interpreter/tips.txi doc/interpreter/var.txi scripts/deprecated/exponential_rnd.m scripts/deprecated/geometric_rnd.m scripts/deprecated/hypergeometric_pdf.m scripts/deprecated/lognormal_rnd.m scripts/deprecated/pascal_rnd.m scripts/deprecated/spdet.m scripts/deprecated/spdiag.m scripts/deprecated/split.m scripts/deprecated/str2mat.m scripts/deprecated/t_rnd.m scripts/deprecated/weibrnd.m scripts/deprecated/weibull_rnd.m scripts/deprecated/wiener_rnd.m scripts/general/diff.m scripts/general/interp3.m scripts/general/interpn.m scripts/general/quadl.m scripts/general/quadv.m scripts/miscellaneous/version.m scripts/optimization/fsolve.m scripts/optimization/sqp.m scripts/plot/axis.m scripts/plot/errorbar.m scripts/plot/meshgrid.m scripts/plot/plotmatrix.m scripts/plot/print.m scripts/plot/slice.m scripts/plot/xlim.m scripts/plot/ylim.m scripts/plot/zlim.m scripts/sparse/svds.m scripts/specfun/nchoosek.m scripts/special-matrix/pascal.m scripts/strings/dec2base.m scripts/strings/dec2bin.m scripts/strings/dec2hex.m scripts/strings/validatestring.m scripts/time/ctime.m src/DLD-FUNCTIONS/balance.cc src/DLD-FUNCTIONS/cellfun.cc src/DLD-FUNCTIONS/det.cc src/DLD-FUNCTIONS/kron.cc src/DLD-FUNCTIONS/lu.cc src/DLD-FUNCTIONS/qr.cc src/DLD-FUNCTIONS/qz.cc src/DLD-FUNCTIONS/rcond.cc src/DLD-FUNCTIONS/spparms.cc src/DLD-FUNCTIONS/syl.cc src/DLD-FUNCTIONS/time.cc src/bitfcns.cc src/defaults.cc src/file-io.cc src/mappers.cc src/syscalls.cc
diffstat 87 files changed, 329 insertions(+), 318 deletions(-) [+]
line wrap: on
line diff
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,8 @@
+2009-05-17  Rik  <rdrider0-list@yahoo.com>
+
+	* interpreter/*.txi: Simplify TeXinfo files by eliminating redundant @iftex
+	followed by @tex construction.  Also, spellchecked all .txi and .texi files.
+
 2009-05-14  Rik  <rdrider0-list@yahoo.com>
 
 	* interpreter/arith.txi: Update section 17.8 (Mathematical Consants)
--- a/doc/interpreter/arith.txi
+++ b/doc/interpreter/arith.txi
@@ -77,12 +77,10 @@
 @section Complex Arithmetic
 
 In the descriptions of the following functions,
-@iftex
 @tex
 $z$ is the complex number $x + iy$, where $i$ is defined as
 $\sqrt{-1}$.
 @end tex
-@end iftex
 @ifinfo
 @var{z} is the complex number @var{x} + @var{i}@var{y}, where @var{i} is
 defined as @code{sqrt (-1)}.
--- a/doc/interpreter/container.txi
+++ b/doc/interpreter/container.txi
@@ -322,7 +322,6 @@
 example
 
 @example
-@group
 in = struct ("call1", @{x, Inf, "last"@}, 
              "call2", @{x, Inf, "first"@});
 in (1, :) = []
@@ -343,7 +342,6 @@
         ,)
       
       @}
-@end group
 @end example
 
 @node Creating Structures
@@ -371,7 +369,6 @@
 structure array with a consistent dimension.  For example
 
 @example
-@group
 struct ("field1", @{1, "one"@}, "field2", @{2, "two"@},
         "field3", 3)
 @result{} ans =
@@ -398,7 +395,6 @@
         ,)
       
       @}
-@end group
 @end example
 
 @DOCSTRING(struct)
@@ -558,11 +554,13 @@
 of the first one is displayed
 
 @example
+@group
 c1 = cell(3, 4, 5);
 c2 = cell( [3, 4, 5] );
 size(c1)
      @result{} ans =
          3   4   5
+@end group
 @end example
 
 @noindent
@@ -570,7 +568,7 @@
 do the other functions describing the size of an object, such as
 @code{length}, @code{numel}, @code{rows}, and @code{columns}.
 
-As an alternative to creating empty cell arrays, and then filling them,  it
+As an alternative to creating empty cell arrays, and then filling them, it
 is possible to convert numerical arrays into cell arrays using the
 @code{num2cell} and @code{mat2cell} functions.
 
@@ -651,6 +649,7 @@
 to a cell array of strings using the @code{cellstr} function
 
 @example
+@group
 a = ["hello"; "world"];
 c = cellstr (a)
      @result{} c =
@@ -658,6 +657,7 @@
            [1,1] = hello
            [2,1] = world
          @}
+@end group
 @end example
 
 One further advantage of using cell arrays to store multiple strings is
@@ -669,10 +669,12 @@
 argument,
 
 @example
+@group
 c = @{"hello", "world"@};
 strcmp ("hello", c)
      @result{} ans =
         1   0
+@end group
 @end example
 
 @noindent
@@ -742,10 +744,12 @@
 example
 
 @example
+@group
 a = @{1, [2, 3], 4@};
 b = [a@{:@}]
      @result{} b =
          1   2   3   4
+@end group
 @end example
 
 It is also possible to pass the accessed elements directly to a
@@ -755,11 +759,13 @@
 identical but the latter is simpler and handles more situations
 
 @example
+@group
 c = @{"GNU", "Octave", "is", "Free", "Software"@};
 printf ("%s ", c@{1@}, c@{2@}, c@{3@}, c@{4@}, c@{5@});
      @print{} GNU Octave is Free Software 
 printf ("%s ", c@{:@});
      @print{} GNU Octave is Free Software 
+@end group
 @end example
 
 Just like it is possible to create a numerical array from selected
@@ -769,6 +775,7 @@
 following example illustrates
 
 @example
+@group
 a = @{1, rand(2, 2), "three"@};
 b = @{ a@{ [1, 3] @} @}
      @result{} b =
@@ -776,6 +783,7 @@
            [1,1] =  1
            [1,2] = three
          @}
+@end group
 @end example
 
 @noindent
@@ -787,6 +795,7 @@
 example can be simplified into the following
 
 @example
+@group
 a = @{1, rand(2, 2), "three"@};
 b = a( [1, 3] )
      @result{} b =
@@ -794,6 +803,7 @@
            [1,1] =  1
            [1,2] = three
          @}
+@end group
 @end example
 
 A comma separated list can equally appear on the left-hand side of an
--- a/doc/interpreter/contrib.txi
+++ b/doc/interpreter/contrib.txi
@@ -307,7 +307,7 @@
 @node Other Sources
 @section Other Sources
 Apart from C++ and Octave language (m-files), Octave's sources include files
-written in C, Fortran, M4, perl, unix shell, AWK, texinfo and TeX.  There are
+written in C, Fortran, M4, perl, unix shell, AWK, texinfo and @TeX{}.  There are
 not many rules to follow when using these other languages; some of them are
 summarized below.  In any case, the golden rule is: if you modify a source
 file, try to follow any conventions you can detect in the file or other similar
--- a/doc/interpreter/data.txi
+++ b/doc/interpreter/data.txi
@@ -82,20 +82,16 @@
 scalars and matrices.  All built-in floating point numeric data is
 currently stored as double precision numbers.  On systems that use the
 IEEE floating point format, values in the range of approximately
-@iftex
 @tex
  $2.2251\times10^{-308}$ to $1.7977\times10^{308}$
 @end tex
-@end iftex
 @ifnottex
  2.2251e-308 to 1.7977e+308
 @end ifnottex
  can be stored, and the relative precision is approximately
-@iftex
 @tex
  $2.2204\times10^{-16}$.
 @end tex
-@end iftex
 @ifnottex
  2.2204e-16.
 @end ifnottex
--- a/doc/interpreter/debug.txi
+++ b/doc/interpreter/debug.txi
@@ -80,7 +80,7 @@
 
 @noindent
 Note that breakpoints cannot be set in built-in functions
-(e.g., @code{sin}, etc) or dynamically loaded function (i.e., oct-files).  To
+(e.g., @code{sin}, etc.) or dynamically loaded function (i.e., oct-files).  To
 set a breakpoint immediately on entering a function, the breakpoint
 should be set to line 1. The leading comment block will be ignored and
 the breakpoint will be set to the first executable statement in the
@@ -95,14 +95,14 @@
 
 @noindent
 Note that the return value of @code{27} means that the breakpoint was
-effectively set to line 27. The status of breakpoints in a function can
+effectively set to line 27.  The status of breakpoints in a function can
 be queried with the @code{dbstatus} function.
 
 @DOCSTRING(dbstatus)
 
 @noindent
 Taking the above as an example, @code{dbstatus ("asind")} should return
-27. The breakpoints can then be cleared with the @code{dbclear} function
+27.  The breakpoints can then be cleared with the @code{dbclear} function
 
 @DOCSTRING(dbclear)
 
@@ -117,12 +117,14 @@
 the functions
 
 @example
+@group
 function y = func1 (x)
   y = func2 (x);
 endfunction
 function y = func2 (x)
   y = x + 1;
 endfunction
+@end group
 @end example
 
 @noindent
--- a/doc/interpreter/diagperm.txi
+++ b/doc/interpreter/diagperm.txi
@@ -32,11 +32,9 @@
 
 A diagonal matrix is defined as a matrix that has zero entries outside the main diagonal;
 that is, 
-@iftex
 @tex
 $D_{ij} = 0$ if $i \neq j$
 @end tex
-@end iftex
 @ifnottex
 @code{D(i,j) == 0} if @code{i != j}.
 @end ifnottex
@@ -47,12 +45,10 @@
 A permutation matrix is defined as a square matrix that has a single element equal to unity
 in each row and each column; all other elements are zero.  That is, there exists a 
 permutation (vector) 
-@iftex
 @tex
 $p$ such that $P_{ij}=1$ if $j = p_i$ and
 $P_{ij}=0$ otherwise.  
 @end tex
-@end iftex
 @ifnottex
 @code{p} such that @code{P(i,j) == 1} if @code{j == p(i)} and 
 @code{P(i,j) == 0} otherwise.  
@@ -86,7 +82,6 @@
 
 Example:
 @example
-@group
   diag (1:4)
 @result{}
 Diagonal Matrix
@@ -106,7 +101,6 @@
    0   0   3
    0   0   0
    0   0   0
-@end group
 @end example  
 
 @node Creating Permutation Matrices
@@ -224,11 +218,9 @@
 then @code{D*M} will scale the rows of @var{M}.  That means,
 if @code{S = D*M}, then for each pair of indices
 i,j it holds 
-@iftex
 @tex
 $$S_{ij} = D_{ii} M_{ij}$$
 @end tex
-@end iftex
 @ifnottex
 @example
 S(i,j) = D(i,i) * M(i,j).
@@ -488,7 +480,6 @@
 
 Examples of effects of assumed zeros vs. numerical zeros:
 @example
-@group
 Inf * eye (3)
 @result{}
    Inf     0     0
@@ -509,7 +500,6 @@
    NaN   Inf   NaN
    NaN   NaN   Inf
 
-@end group
 @end example
 
 @example
--- a/doc/interpreter/diffeq.txi
+++ b/doc/interpreter/diffeq.txi
@@ -36,13 +36,11 @@
 @section Ordinary Differential Equations
 
 The function @code{lsode} can be used to solve ODEs of the form
-@iftex
 @tex
 $$
  {dx\over dt} = f (x, t)
 $$
 @end tex
-@end iftex
 @ifinfo
 
 @example
@@ -114,13 +112,11 @@
 @section Differential-Algebraic Equations
 
 The function @code{daspk} can be used to solve DAEs of the form
-@iftex
 @tex
 $$
  0 = f (\dot{x}, x, t), \qquad x(t=0) = x_0, \dot{x}(t=0) = \dot{x}_0
 $$
 @end tex
-@end iftex
 @ifnottex
 
 @example
@@ -130,11 +126,9 @@
 
 @noindent
 where
-@iftex
 @tex
 $\dot{x} = {dx \over dt}$
 @end tex
-@end iftex
 @ifnottex
 @math{x-dot}
 @end ifnottex
--- a/doc/interpreter/dynamic.txi
+++ b/doc/interpreter/dynamic.txi
@@ -121,7 +121,7 @@
 header.
 
 The macro that defines the entry point into the dynamically loaded
-function is @code{DEFUN_DLD}.  This macro takes four arguments, these being
+function is @w{@code{DEFUN_DLD}}.  This macro takes four arguments, these being
 
 @enumerate 1
 @item The function name as it will be seen in Octave,
@@ -131,14 +131,14 @@
 @item The string that will be seen as the help text of the function.
 @end enumerate
 
-The return type of functions defined with @code{DEFUN_DLD} is always
+The return type of functions defined with @w{@code{DEFUN_DLD}} is always
 @code{octave_value_list}.
 
 There are a couple of important considerations in the choice of function
 name.  Firstly, it must be a valid Octave function name and so must be a
 sequence of letters, digits and underscores, not starting with a
 digit.  Secondly, as Octave uses the function name to define the filename
-it attempts to find the function in, the function name in the @code{DEFUN_DLD}
+it attempts to find the function in, the function name in the @w{@code{DEFUN_DLD}}
 macro must match the filename of the oct-file.  Therefore, the above
 function should be in a file @file{helloworld.cc}, and it should be
 compiled to an oct-file using the command
@@ -149,9 +149,9 @@
 
 This will create a file called @file{helloworld.oct}, that is the compiled
 version of the function.  It should be noted that it is perfectly
-acceptable to have more than one @code{DEFUN_DLD} function in a source
+acceptable to have more than one @w{@code{DEFUN_DLD}} function in a source
 file.  However, there must either be a symbolic link to the oct-file for
-each of the functions defined in the source code with the @code{DEFUN_DLD}
+each of the functions defined in the source code with the @w{@code{DEFUN_DLD}}
 macro or the autoload (@ref{Function Files}) function should be used.
 
 The rest of this function then shows how to find the number of input
@@ -292,7 +292,7 @@
 @code{hermitian}, @code{solve}, etc.
 
 The typical way to extract a matrix or array from the input arguments of
-@code{DEFUN_DLD} function is as follows
+@w{@code{DEFUN_DLD}} function is as follows
 
 @examplefile{addtwomatrices.cc}
 
@@ -711,7 +711,6 @@
 @c { with @{, etc
 
 @example
-@group
 octave_value arg;
 @dots{}
 int nz = 6, nr = 3, nc = 4;   // Assume we know the max no nz
@@ -736,7 +735,6 @@
  @}
 sm.maybe_compress ();  // If don't know a-priori 
                        // the final no of nz.
-@end group
 @end example
 
 @noindent
@@ -748,7 +746,6 @@
 The above example would then be modified as
 
 @example
-@group
 octave_value arg;
 @dots{}
 int nz = 6, nr = 3, nc = 4;   // Assume we know the max no nz
@@ -778,7 +775,6 @@
  @}
 sm.maybe_mutate ();  // If don't know a-priori 
                      // the final no of nz.
-@end group
 @end example
 
 Note that both increasing and decreasing the number of non-zero elements in
@@ -944,16 +940,16 @@
 explicitly.  Note that Octave supplies its own replacement @sc{blas}
 @code{XERBLA} function, which uses @code{XSTOPX}.
 
-If the underlying code calls @code{XSTOPX}, then the @code{F77_XFCN}
+If the underlying code calls @code{XSTOPX}, then the @w{@code{F77_XFCN}}
 macro should be used to call the underlying fortran function.  The Fortran
 exception state can then be checked with the global variable
 @code{f77_exception_encountered}.  If @code{XSTOPX} will not be called,
-then the @code{F77_FCN} macro should be used instead to call the Fortran
+then the @w{@code{F77_FCN}} macro should be used instead to call the Fortran
 code.
 
-There is no harm in using @code{F77_XFCN} in all cases, except that for
+There is no harm in using @w{@code{F77_XFCN}} in all cases, except that for
 Fortran code that is short running and executes a large number of times,
-there is potentially an overhead in doing so.  However, if @code{F77_FCN}
+there is potentially an overhead in doing so.  However, if @w{@code{F77_FCN}}
 is used with code that calls @code{XSTOP}, Octave can generate a
 segmentation fault.
 
@@ -990,7 +986,7 @@
 Allocating memory within an oct-file might seem easy as the C++
 new/delete operators can be used.  However, in that case care must be
 taken to avoid memory leaks.  The preferred manner in which to allocate
-memory for use locally is to use the @code{OCTAVE_LOCAL_BUFFER} macro.
+memory for use locally is to use the @w{@code{OCTAVE_LOCAL_BUFFER}} macro.
 An example of its use is
 
 @example
@@ -1045,7 +1041,7 @@
 C++ exception handler, where memory allocated by the C++ new/delete
 methods are automatically released when the exception is treated.  When
 writing an oct-file, to allow Octave to treat the user typing @kbd{Control-C},
-the @code{OCTAVE_QUIT} macro is supplied.  For example
+the @w{@code{OCTAVE_QUIT}} macro is supplied.  For example
 
 @example
 @group
@@ -1057,18 +1053,18 @@
 @end group
 @end example
 
-The presence of the @code{OCTAVE_QUIT} macro in the inner loop allows Octave to
+The presence of the @w{@code{OCTAVE_QUIT}} macro in the inner loop allows Octave to
 treat the user request with the @kbd{Control-C}.  Without this macro, the user
 must either wait for the function to return before the interrupt is
 processed, or press @kbd{Control-C} three times to force Octave to exit.
 
-The @code{OCTAVE_QUIT} macro does impose a very small speed penalty, and so for
+The @w{@code{OCTAVE_QUIT}} macro does impose a very small speed penalty, and so for
 loops that are known to be small it might not make sense to include
-@code{OCTAVE_QUIT}.
+@w{@code{OCTAVE_QUIT}}.
 
 When creating an oct-file that uses an external libraries, the function
 might spend a significant portion of its time in the external
-library.  It is not generally possible to use the @code{OCTAVE_QUIT} macro in
+library.  It is not generally possible to use the @w{@code{OCTAVE_QUIT}} macro in
 this case.  The alternative in this case is
 
 @example
@@ -1083,7 +1079,7 @@
 memory internally, then this memory might be lost during an interrupt,
 without being deallocated.  Therefore, ideally Octave itself should
 allocate any memory that is needed by the foreign code, with either the
-fortran_vec method or the @code{OCTAVE_LOCAL_BUFFER} macro.
+fortran_vec method or the @w{@code{OCTAVE_LOCAL_BUFFER}} macro.
 
 The Octave unwind_protect mechanism (@ref{The @code{unwind_protect} Statement})
 can also be used in oct-files.  In conjunction with the exception
@@ -1112,7 +1108,7 @@
 @subsection Documentation and Test of Oct-Files
 
 The documentation of an oct-file is the fourth string parameter of the
-@code{DEFUN_DLD} macro.  This string can be formatted in the same manner
+@w{@code{DEFUN_DLD}} macro.  This string can be formatted in the same manner
 as the help strings for user functions (@ref{Documentation Tips}),
 however there are some issue that are particular to the formatting of
 help strings within oct-files.
@@ -1494,7 +1490,6 @@
 An example of the behavior of this function within Octave is then
 
 @example
-@group
 a(1).f1 = "f11"; a(1).f2 = "f12"; 
 a(2).f1 = "f21"; a(2).f2 = "f22";
 b = mystruct(a)
@@ -1523,7 +1518,6 @@
       ,)
     
     @}
-@end group
 @end example
 
 @node Sparse Matrices with Mex-Files
@@ -1531,7 +1525,7 @@
 
 The Octave format for sparse matrices is identical to the mex format in
 that it is a compressed column sparse format.  Also in both, sparse
-matrices are required to be two dimensional.  The only difference is that
+matrices are required to be two-dimensional.  The only difference is that
 the real and imaginary parts of the matrix are stored separately.
 
 The mex-file interface, as well as using @code{mxGetM}, @code{mxGetN},
--- a/doc/interpreter/emacs.txi
+++ b/doc/interpreter/emacs.txi
@@ -291,7 +291,7 @@
 to know the particular binding of @key{RET} in that mode!).  Similar
 considerations apply for using @key{M-RET} as @key{M-LFD}.  As Barry
 A. Warsaw <bwarsaw@@cnri.reston.va.us> says in the documentation for his
-@code{cc-mode}, ``This is a very common question. @code{:-)} If you want
+@code{cc-mode}, ``This is a very common question.  @code{:-)} If you want
 this to be the default behavior, don't lobby me, lobby RMS!''
 
 The following variables can be used to customize Octave mode.
--- a/doc/interpreter/eos.txi
+++ b/doc/interpreter/eos.txi
@@ -241,7 +241,7 @@
 
 @item C-c f
 Insert a function skeleton, prompting for the function's name, arguments
-and return values which have to be entered without parens
+and return values which have to be entered without parentheses
 (@code{octave-insert-defun}).
 
 @item C-c C-h
@@ -291,7 +291,7 @@
 to know the particular binding of @key{RET} in that mode!).  Similar
 considerations apply for using @key{M-RET} as @key{M-LFD}.  As Barry
 A. Warsaw <bwarsaw@@cnri.reston.va.us> says in the documentation for his
-@code{cc-mode}, ``This is a very common question. @code{:-)} If you want
+@code{cc-mode}, ``This is a very common question.  @code{:-)} If you want
 this to be the default behavior, don't lobby me, lobby RMS!''
 
 The following variables can be used to customize Octave mode.
@@ -495,11 +495,11 @@
 
 You can use either `plain' Emacs Info or the function @code{octave-help}
 as your Octave info reader (for @samp{help -i}).  In the former case,
-set the Octave variable @code{INFO_PROGRAM} to @code{"info-emacs-info"}.
+set the Octave variable @w{@code{INFO_PROGRAM}} to @code{"info-emacs-info"}.
 The latter is perhaps more attractive because it allows to look up keys
 in the indices of @emph{several} info files related to Octave (provided
 that the Emacs variable @code{octave-help-files} is set correctly).  In
-this case, set @code{INFO_PROGRAM} to @code{"info-emacs-octave-help"}.
+this case, set @w{@code{INFO_PROGRAM}} to @code{"info-emacs-octave-help"}.
 
 If you use Octave from within Emacs, these settings are best done in the
 @file{~/.emacs-octave} startup file (or the file pointed to by the Emacs
--- a/doc/interpreter/errors.txi
+++ b/doc/interpreter/errors.txi
@@ -59,11 +59,13 @@
 the function @code{f} is called without any input arguments.
 
 @example
+@group
 function f (arg1)
   if (nargin == 0)
     error("not enough input arguments");
   endif
 endfunction
+@end group
 @end example
 
 When the @code{error} function is called, it prints the given message
@@ -84,6 +86,7 @@
 
 Consider the following function.
 @example
+@group
 ## -*- texinfo -*-
 ## @@deftypefn @{Function File@} f (@@var@{arg1@})
 ## Function help text goes here@dots{}
@@ -93,6 +96,7 @@
     print_usage ();
   endif
 endfunction
+@end group
 @end example
 
 @noindent
@@ -100,6 +104,7 @@
 error.
 
 @example
+@group
 f ()
 
 Invalid call to f.  Correct usage is:
@@ -112,6 +117,7 @@
      @print{} error: called from:
      @print{} error:   print_usage at line -1, column -1
      @print{} error:   /home/jwe/octave/f.m at line 7, column 5
+@end group
 @end example
 
 @DOCSTRING(print_usage)
@@ -131,6 +137,7 @@
 that occurs during a @code{for} loop.
 
 @example
+@group
 number_of_errors = 0;
 for n = 1:100
   try
@@ -139,6 +146,7 @@
     number_of_errors++;
   end_try_catch
 endfor
+@end group
 @end example
 
 The above example treats all errors the same.  In many situations it
@@ -149,6 +157,7 @@
 to count the number of errors related to the @samp{*} operator.
 
 @example
+@group
 number_of_errors = 0;
 for n = 1:100
   try
@@ -160,6 +169,7 @@
     endif
   end_try_catch
 endfor
+@end group
 @end example
 
 @DOCSTRING(lasterror)
@@ -174,6 +184,7 @@
 error occurs.
 
 @example
+@group
 number_of_errors = 0;
 for n = 1:100
   try
@@ -187,6 +198,7 @@
     endif
   end_try_catch
 endfor
+@end group
 @end example
 
 @DOCSTRING(rethrow)
@@ -207,9 +219,11 @@
 to the result.
 
 @example
+@group
 a = 1/0
      @print{} warning: division by zero
      @result{} a = Inf
+@end group
 @end example
 
 @menu
@@ -227,12 +241,14 @@
 and if not issues a warning and sets @samp{a} to zero.
 
 @example
+@group
 a = -1;
 if (a < 0)
   warning ("'a' must be non-negative.  Setting 'a' to zero.");
   a = 0;
 endif
      @print{} 'a' must be non-negative.  Setting 'a' to zero.
+@end group
 @end example
 
 Since warnings aren't fatal to a running program, it is not possible
@@ -262,17 +278,21 @@
 their string identifications.  The following code will issue a warning
 
 @example
+@group
 warning ("non-negative-variable", 
          "'a' must be non-negative.  Setting 'a' to zero.");
+@end group
 @end example
 
 @noindent
 while the following won't issue a warning
 
 @example
+@group
 warning ("off", "non-negative-variable");
 warning ("non-negative-variable", 
          "'a' must be non-negative.  Setting 'a' to zero.");
+@end group
 @end example
 
 The functions distributed with Octave can issue one of the following
--- a/doc/interpreter/eval.txi
+++ b/doc/interpreter/eval.txi
@@ -48,7 +48,6 @@
 Newton's method.
 
 @example
-@group
 @cindex Fordyce, A. P.
 @findex newtroot
 function result = newtroot (fname, x)
@@ -76,7 +75,6 @@
   result = x;
 
 endfunction
-@end group
 @end example
 
 Note that this is only meant to be an example of calling user-supplied
@@ -116,21 +114,25 @@
 m-files.  For example,
 
 @example
+@group
 function create_data
   x = linspace (0, 10, 10);
   y = sin (x);
   save mydata x y
 endfunction
+@end group
 @end example
 
 With @code{evalin}, you could write @code{save} as follows:
 
 @example
+@group
 function save (file, name1, name2)
   f = open_save_file (file);
   save_var(f, name1, evalin ("caller", name1));
   save_var(f, name2, evalin ("caller", name2));
 endfunction
+@end group
 @end example
 
 @noindent
@@ -141,16 +143,19 @@
 in a different context:
 
 @example
+@group
 function process_data
   load mydata
   @dots{} do work @dots{}
 endfunction
+@end group
 @end example
 
 @noindent
 With @code{assignin}, you could write @code{load} as follows:
 
 @example
+@group
 function load (file)
   f = open_load_file (file);
   [name, val] = load_var (f);
@@ -158,6 +163,7 @@
   [name, val] = load_var (f);
   assignin ("caller", name, val);
 endfunction
+@end group
 @end example
 
 @noindent
--- a/doc/interpreter/expr.txi
+++ b/doc/interpreter/expr.txi
@@ -61,9 +61,11 @@
 the dimensions of the output match those of the index expression.  For
 example,
 @example
+@group
 a (2)       # a scalar
 a (1:2)     # a row vector
 a ([1; 2])  # a column vector
+@end group
 @end example
 
 As a special case, when a colon is used as a single index, the output
@@ -95,7 +97,7 @@
 
 In general, an array with @samp{n} dimensions can be indexed using @samp{m}
 indices.  If @code{n == m}, each index corresponds to its respective dimension.
-The set of index tuples determining the result is formed by the cartesian product
+The set of index tuples determining the result is formed by the Cartesian product
 of the index vectors (or ranges or scalars).
 If @code{n < m}, then the array is padded by trailing singleton dimensions.
 If @code{n > m}, the last @code{n-m+1} dimensions are folded into a single
@@ -140,7 +142,7 @@
 
 It should be, noted that @code{ones (1, n)} (a row vector of ones) results in a
 range (with zero increment), and is therefore more efficient when used in index
-expression than other forms of @dfn{ones}. In particular, when @samp{r} is a row
+expression than other forms of @dfn{ones}.  In particular, when @samp{r} is a row
 vector, the expressions
 
 @example
@@ -151,8 +153,8 @@
   r(ones (n, 1), :)
 @end example
 
-will produce indentical results, but the first one will be significantly
-faster, at least for @samp{r} and @samp{n} large enough. The reason is that
+will produce identical results, but the first one will be significantly
+faster, at least for @samp{r} and @samp{n} large enough.  The reason is that
 in the first case the index is kept in a compressed form, which allows Octave
 to choose a more efficient algorithm to handle the expression.
 
@@ -162,19 +164,19 @@
 It is also possible to create a matrix with different values.  The
 following example creates a 10 dimensional row vector @math{a} containing
 the values
-@iftex
 @tex
 $a_i = \sqrt{i}$.
 @end tex
-@end iftex
 @ifnottex
 a(i) = sqrt(i).
 @end ifnottex
 
 @example
+@group
 for i = 1:10
   a(i) = sqrt (i);
 endfor
+@end group
 @end example
 
 @noindent
@@ -656,7 +658,7 @@
 
 Element-by-element boolean expressions can be used wherever comparison
 expressions can be used.  They can be used in @code{if} and @code{while}
-statements.  However,  a matrix value used as the condition in an
+statements.  However, a matrix value used as the condition in an
 @code{if} or @code{while} statement is only true if @emph{all} of its
 elements are nonzero.
 
@@ -972,8 +974,10 @@
 following will produce an error.
 
 @example
+@group
 [a, b, c, d] = [u, s, v] = svd (a);
 @print{} error: element number 4 undefined in return list
+@end group
 @end example
 
 @opindex +=
--- a/doc/interpreter/func.txi
+++ b/doc/interpreter/func.txi
@@ -249,9 +249,11 @@
 functions that return multiple values is
 
 @example
+@group
 function [@var{ret-list}] = @var{name} (@var{arg-list})
   @var{body}
 endfunction
+@end group
 @end example
 
 @noindent
@@ -302,10 +304,12 @@
 example, calling the function
 
 @example
+@group
 function [x, y, z] = f ()
   x = 1;
   z = 2;
 endfunction
+@end group
 @end example
 
 @noindent
@@ -319,11 +323,13 @@
 produces:
 
 @example
+@group
 a = 1
 
 b = [](0x0)
 
 c = 2
+@end group
 @end example
 
 @noindent
@@ -346,8 +352,10 @@
 of all its input arguments.  For example,
 
 @example
+@group
 a = smallest (1, 2, 3);
 b = smallest (1, 2, 3, 4);
+@end group
 @end example
 
 @noindent
@@ -355,9 +363,11 @@
 the @code{smallest} function is
 
 @example
+@group
 function val = smallest (arg1, arg2, arg3, arg4, arg5)
   @var{body}
 endfunction
+@end group
 @end example
 
 @noindent
@@ -371,9 +381,11 @@
 looks like this
 
 @example
+@group
 function val = smallest (varargin)
   @var{body}
 endfunction
+@end group
 @end example
 
 @noindent
@@ -384,9 +396,11 @@
 like this
 
 @example
+@group
 function val = smallest (varargin)
   val = min ([varargin@{:@}]);
 endfunction
+@end group
 @end example
 
 @noindent
@@ -398,12 +412,14 @@
 can be defined like this
 
 @example
+@group
 function print_arguments (varargin)
   for i = 1:length (varargin)
     printf ("Input argument %d: ", i);
     disp (varargin@{i@});
   endfor
 endfunction
+@end group
 @end example
 
 @noindent
@@ -436,11 +452,13 @@
 1, the second to 2, and so on.
 
 @example
+@group
 function varargout = one_to_n ()
   for i = 1:nargout
     varargout@{i@} = i;
   endfor
 endfunction
+@end group
 @end example
 
 @noindent
@@ -519,9 +537,11 @@
 value to the argument like this
 
 @example
+@group
 function @var{name} (@var{arg1} = @var{val1}, @dots{})
   @var{body}
 endfunction
+@end group
 @end example
 
 @noindent
@@ -531,9 +551,11 @@
 As an example, the following function implements a variant of the classic
 ``Hello, World'' program.
 @example
+@group
 function hello (who = "World")
   printf ("Hello, %s!\n", who);
 endfunction
+@end group
 @end example
 
 @noindent
@@ -583,7 +605,7 @@
 searches a list of directories (the @dfn{path}) for files ending in
 @file{.m} that have the same base name as the undefined
 identifier.@footnote{The @samp{.m} suffix was chosen for compatibility
-with @sc{Matlab}.}  Once Octave finds a file with a name that matches,
+with @sc{matlab}.}  Once Octave finds a file with a name that matches,
 the contents of the file are read.  If it defines a @emph{single}
 function, it is compiled and executed.  @xref{Script Files}, for more
 information about how you can define more than one function in a single
@@ -759,7 +781,7 @@
 
 @noindent
 which aliases the user-defined function @code{spsin} to @code{sin}, but only for real sparse
-matrices.  Note that the builtin @code{sin} already  correctly treats
+matrices.  Note that the builtin @code{sin} already correctly treats
 sparse matrices and so this example is only illustrative.
 
 @DOCSTRING(dispatch)
@@ -1051,9 +1073,11 @@
 @code{fsolve}.  For example
 
 @example
+@group
 f = @@sin;
 quad (f, 0, pi)
     @result{} 2
+@end group
 @end example
 
 You may use @code{feval} to call a function using function handle, or
@@ -1062,11 +1086,13 @@
 @samp{()}.  For example
 
 @example
+@group
 f = @@sin;
 feval (f, pi/4)
     @result{} 0.70711
 f (pi/4)
     @result{} 0.70711
+@end group
 @end example
 
 @DOCSTRING(functions)
@@ -1092,9 +1118,11 @@
 example,
 
 @example
+@group
 f = @@(x) x.^2;
 quad (f, 0, 10)
     @result{} 333.33
+@end group
 @end example
 
 @noindent
@@ -1102,18 +1130,22 @@
 passes it to @code{quad},
 
 @example
+@group
 quad (@@(x) sin (x), 0, pi)
     @result{} 2
+@end group
 @end example
 
 @noindent
 wraps another function, and
 
 @example
+@group
 a = 1;
 b = 2;
 quad (@@(x) betainc (x, a, b), 0, 0.4)
     @result{} 0.13867
+@end group
 @end example
 
 @noindent
--- a/doc/interpreter/install.txi
+++ b/doc/interpreter/install.txi
@@ -286,7 +286,7 @@
 @itemize @bullet
 @item
 On some SCO systems, @code{info} fails to compile if
-@code{HAVE_TERMIOS_H} is defined in @file{config.h}.  Simply removing
+@w{@code{HAVE_TERMIOS_H}} is defined in @file{config.h}.  Simply removing
 the definition from @file{info/config.h} should allow it to compile.
 
 @item
@@ -310,7 +310,7 @@
 library, resulting in floating point errors and/or segmentation faults in
 the linear algebra routines called by Octave.  If you encounter such
 problems, then you should modify the configure script so that
-@code{SPECIAL_MATH_LIB} is not set to @code{-ldxml}.
+@w{@code{SPECIAL_MATH_LIB}} is not set to @code{-ldxml}.
 
 @item
 On FreeBSD systems Octave may hang while initializing some internal
@@ -348,7 +348,7 @@
 @example
 @group
 warning: ANSI C++ prohibits conversion from `(int)' 
-         to `(...)'
+         to `(@dots{})'
 @end group
 @end example
 
@@ -356,10 +356,10 @@
 while compiling @file{sighandlers.cc}, you may need to edit some files
 in the @code{gcc} include subdirectory to add proper prototypes for functions
 there.  For example, Ultrix 4.2 needs proper declarations for the
-@code{signal} function and the @code{SIG_IGN} macro in the file
+@code{signal} function and the @w{@code{SIG_IGN}} macro in the file
 @file{signal.h}.
 
-On some systems the @code{SIG_IGN} macro is defined to be something like
+On some systems the @w{@code{SIG_IGN}} macro is defined to be something like
 this:
 
 @example
@@ -375,7 +375,7 @@
 
 @noindent
 to match the prototype declaration for the @code{signal} function.  This
-change should also be made for the @code{SIG_DFL} and @code{SIG_ERR}
+change should also be made for the @w{@code{SIG_DFL}} and @w{@code{SIG_ERR}}
 symbols.  It may be necessary to change the definitions in
 @file{sys/signal.h} as well.
 
@@ -440,7 +440,7 @@
 @item
 Some people have reported that calls to shell_cmd and the pager do not
 work on SunOS systems.  This is apparently due to having
-@code{G_HAVE_SYS_WAIT} defined to be 0 instead of 1 when compiling
+@w{@code{G_HAVE_SYS_WAIT}} defined to be 0 instead of 1 when compiling
 @code{libg++}.
 
 @item
@@ -489,7 +489,7 @@
 If your system does not support IEEE arithmetic but Octave's configure
 script incorrectly determined that it does, you can work around the
 problem by editing the file @file{config.h} to not define
-@code{HAVE_ISINF}, @code{HAVE_FINITE}, and @code{HAVE_ISNAN}.
+@w{@code{HAVE_ISINF}}, @w{@code{HAVE_FINITE}}, and @w{@code{HAVE_ISNAN}}.
 
 In any case, please report this as a bug since it might be possible to
 modify Octave's configuration script to automatically determine the
--- a/doc/interpreter/intro.txi
+++ b/doc/interpreter/intro.txi
@@ -88,11 +88,9 @@
 
 @noindent
 For example, to verify Euler's Identity,
-@iftex
 @tex
 $$e^{\imath\pi} = -1$$
 @end tex
-@end iftex
 @ifnottex
 @display
 
@@ -161,11 +159,9 @@
 
 @noindent
 and to form the matrix product
-@iftex
 @tex
 $@code{A}^T@code{A}$,
 @end tex
-@end iftex
 @ifnottex
 @code{transpose (A) * A},
 @end ifnottex
@@ -187,11 +183,9 @@
 
 @noindent
 This is conceptually equivalent to
-@iftex
 @tex
 $@code{A}^{-1}@code{b}$,
 @end tex
-@end iftex
 @ifnottex
 @code{inv (a) * b},
 @end ifnottex
@@ -204,11 +198,9 @@
 chemical equations.  Consider the burning of hydrogen and oxygen to 
 produce water.
 
-@iftex
 @tex
 $$ {\rm H_{2}} + {\rm O_{2}} \rightarrow {\rm H_{2}O} $$
 @end tex
-@end iftex
 @ifnottex
 @example
 H2 + O2 --> H2O
@@ -221,7 +213,6 @@
 sides of the equation.  Writing the variable overall reaction with 
 individual equations for hydrogen and oxygen one finds:
 
-@iftex
 @tex
 \vbox{
 $$ x_{1}{\rm H_{2}} + x_{2}{\rm O_{2}} \rightarrow {\rm H_{2}O} $$
@@ -229,7 +220,6 @@
 $$ {\rm O:}\quad 0x_{1} + 2x_{2} \rightarrow 1 $$
 }
 @end tex
-@end iftex
 @ifnottex
 @example
 @group
@@ -255,13 +245,11 @@
 
 Octave has built-in functions for solving nonlinear differential
 equations of the form
-@iftex
 @tex
 $$
  {dx \over dt} = f(x,t), \qquad x(t=t_0) = x_0
 $$
 @end tex
-@end iftex
 @ifnottex
 
 @example
@@ -283,11 +271,9 @@
 @noindent
 For Octave to integrate equations of this form, you must first provide a
 definition of the function
-@iftex
 @tex
 $f (x, t)$.
 @end tex
-@end iftex
 @ifnottex
 @code{f(x,t)}.
 @end ifnottex
--- a/doc/interpreter/io.txi
+++ b/doc/interpreter/io.txi
@@ -51,8 +51,10 @@
 value of @samp{pi}
 
 @example
+@group
 pi
      @print{} pi = 3.1416
+@end group
 @end example
 
 This works well as long as it is acceptable to have the name of the
@@ -150,14 +152,17 @@
 to the file @samp{myfile.mat}.
 
 @example
+@group
 A = [ 1:3; 4:6; 7:9 ];
 save myfile.mat A
+@end group
 @end example
 
 Once one or more variables have been saved to a file, they can be
 read into memory using the @code{load} command.
 
 @example
+@group
 load myfile.mat
 A
      @print{} A =
@@ -165,6 +170,7 @@
      @print{}    1   2   3
      @print{}    4   5   6
      @print{}    7   8   9
+@end group
 @end example
 
 @DOCSTRING(save)
@@ -188,10 +194,12 @@
 to data @samp{myfile.txt}.
 
 @example
+@group
 fid = fopen ("myfile.txt", "w");
 fdisp (fid, "3/8 is ");
 fdisp (fid, 3/8);
 fclose (fid);
+@end group
 @end example
 
 @noindent
@@ -300,10 +308,12 @@
 used when reading a file.
 
 @example
+@group
 filename = "myfile.txt";
 fid = fopen (filename, "w");
 # Do the actual I/O here@dots{}
 fclose (fid);
+@end group
 @end example
 
 @DOCSTRING(fopen)
@@ -319,10 +329,12 @@
 to the file @samp{free.txt}.
 
 @example
+@group
 filename = "free.txt";
 fid = fopen (filename, "w");
 fputs (fid, "Free Software is needed for Free Science");
 fclose (fid);
+@end group
 @end example
 
 @DOCSTRING(fputs)
@@ -341,10 +353,12 @@
 code illustrates
 
 @example
+@group
 fid = fopen ("free.txt");
 txt = fgetl (fid)
      @print{} Free Software is needed for Free Science
 fclose (fid);
+@end group
 @end example
 
 @noindent
@@ -383,18 +397,22 @@
 @cindex conversion specifications (@code{printf})
 
 @example
+@group
 pct = 37;
 filename = "foo.txt";
 printf ("Processed %d%% of `%s'.\nPlease be patient.\n",
         pct, filename);
+@end group
 @end example
 
 @noindent
 produces output like
 
 @example
+@group
 Processed 37% of `foo.txt'.
 Please be patient.
+@end group
 @end example
 
 This example shows the use of the @samp{%d} conversion to specify that a
@@ -989,12 +1007,14 @@
 from a file until the end has been reached.
 
 @example
+@group
 filename = "myfile.txt";
 fid = fopen (filename, "r");
 while (! feof (fid) )
   text_line = fgetl (fid);
 endwhile
 fclose (fid);
+@end group
 @end example
 
 @noindent
@@ -1030,9 +1050,11 @@
 four characters, and then returns to the original position.
 
 @example
+@group
 marker = ftell (myfile);
 frewind (myfile);
 fourch = fgets (myfile, 4);
 fseek (myfile, marker, SEEK_SET);
+@end group
 @end example
 
--- a/doc/interpreter/linalg.txi
+++ b/doc/interpreter/linalg.txi
@@ -22,7 +22,7 @@
 This chapter documents the linear algebra functions of Octave.
 Reference material for many of these functions may be found in
 Golub and Van Loan, @cite{Matrix Computations, 2nd Ed.}, Johns Hopkins,
-1989, and in the @cite{@sc{Lapack} Users' Guide}, SIAM, 1992.
+1989, and in the @cite{@sc{lapack} Users' Guide}, SIAM, 1992.
 
 @menu
 * Techniques used for Linear Algebra::
@@ -47,7 +47,7 @@
 
 @enumerate 1
 @item If the matrix is upper or lower triangular sparse a forward or
-backward substitution using the @sc{Lapack} xTRTRS function, and goto 4.
+backward substitution using the @sc{lapack} xTRTRS function, and goto 4.
 
 @c Permuted triangular matrices currently disabled in the code
 @c
@@ -56,15 +56,15 @@
 @c backward substitution, and goto 5.
 
 @item If the matrix is square, hermitian with a real positive diagonal,
-attempt Cholesky factorization using the @sc{Lapack} xPOTRF function.
+attempt Cholesky factorization using the @sc{lapack} xPOTRF function.
 
 @item If the Cholesky factorization failed or the matrix is not
 hermitian with a real positive diagonal, and the matrix is square, factorize 
-using the @sc{Lapack} xGETRF function.
+using the @sc{lapack} xGETRF function.
 
 @item If the matrix is not square, or any of the previous solvers flags
 a singular or near singular matrix, find a least squares solution using
-the @sc{Lapack} xGELSD function.
+the @sc{lapack} xGELSD function.
 @end enumerate
 
 The user can force the type of the matrix with the @code{matrix_type}
--- a/doc/interpreter/nonlin.txi
+++ b/doc/interpreter/nonlin.txi
@@ -22,13 +22,11 @@
 @cindex equations, nonlinear
 
 Octave can solve sets of nonlinear equations of the form
-@iftex
 @tex
 $$
  f (x) = 0
 $$
 @end tex
-@end iftex
 @ifnottex
 
 @example
@@ -45,14 +43,12 @@
 @DOCSTRING(fsolve)
 
 Here is a complete example.  To solve the set of equations
-@iftex
 @tex
 $$
  \eqalign{-2x^2 + 3xy + 4\sin(y) - 6 &= 0\cr
            3x^2 - 2xy^2 + 3\cos(x) + 4 &= 0}
 $$
 @end tex
-@end iftex
 @ifinfo
 
 @example
--- a/doc/interpreter/numbers.txi
+++ b/doc/interpreter/numbers.txi
@@ -55,11 +55,9 @@
 @noindent
 all of which are equivalent.  The letter @samp{i} in the previous example
 stands for the pure imaginary constant, defined as
-@iftex
 @tex
   $\sqrt{-1}$.
 @end tex
-@end iftex
 @ifnottex
   @code{sqrt (-1)}.
 @end ifnottex
@@ -119,11 +117,9 @@
 
 @noindent
 results in the matrix
-@iftex
 @tex
 $$ a = \left[ \matrix{ 1 & 2 \cr 3 & 4 } \right] $$
 @end tex
-@end iftex
 @ifnottex
 
 @example
@@ -251,12 +247,14 @@
 produces the error message
 
 @example
+@group
 parse error:
 
   syntax error
 
 >>> [ 1 a ' ]
               ^
+@end group
 @end example
 
 @noindent
@@ -310,7 +308,6 @@
 Haddad, in @cite{A System-Theoretic Appropriate Realization of the Empty
 Matrix Concept}, IEEE Transactions on Automatic Control, Volume 38,
 Number 5, May 1993.
-@iftex
 @tex
 Briefly, given a scalar $s$, an $m\times n$ matrix $M_{m\times n}$,
 and an $m\times n$ empty matrix $[\,]_{m\times n}$ (with either one or
@@ -319,12 +316,11 @@
 \eqalign{%
 s \cdot [\,]_{m\times n} = [\,]_{m\times n} \cdot s &= [\,]_{m\times n}\cr
 [\,]_{m\times n} + [\,]_{m\times n} &= [\,]_{m\times n}\cr
-[\,]_{0\times m} \cdot  M_{m\times n} &= [\,]_{0\times n}\cr
+[\,]_{0\times m} \cdot M_{m\times n} &= [\,]_{0\times n}\cr
 M_{m\times n} \cdot [\,]_{n\times 0} &= [\,]_{m\times 0}\cr
 [\,]_{m\times 0} \cdot [\,]_{0\times n} &=  0_{m\times n}}
 $$
 @end tex
-@end iftex
 @ifnottex
 Briefly, given a scalar @var{s}, an @var{m} by
 @var{n} matrix @code{M(mxn)}, and an @var{m} by @var{n} empty matrix
@@ -406,7 +402,7 @@
 When adding a scalar to a range, subtracting a scalar from it (or subtracting a
 range from a scalar) and multiplying by scalar, Octave will attempt to avoid
 unpacking the range and keep the result as a range, too, if it can determine
-that it is safe to do so. For instance, doing
+that it is safe to do so.  For instance, doing
 
 @example
 a = 2*(1:1e7) - 1;
@@ -417,9 +413,9 @@
 
 Using zero as an increment in the colon notation, as @samp{1:0:1} is not
 allowed, because a division by zero would occur in determining the number of
-range elements. However, ranges with zero increment (i.e. all elements equal)
+range elements.  However, ranges with zero increment (i.e., all elements equal)
 are useful, especially in indexing, and Octave allows them to be constructed
-using the built-in function @dfn{ones}. Note that because a range must be a row
+using the built-in function @dfn{ones}.  Note that because a range must be a row
 vector, @samp{ones (1, 10)} produces a range, while @samp{ones (10, 1)} does not.
 
 When Octave parses a range expression, it examines the elements of the
@@ -439,18 +435,21 @@
 for example
 
 @example
+@group
 sngl = single (rand (2, 2))
      @result{} sngl = 
         0.37569   0.92982
         0.11962   0.50876
 class (sngl)
     @result{} single
+@end group
 @end example
 
 Many functions can also return single precision values directly.  For
 example
 
 @example
+@group
 ones (2, 2, "single")
 zeros (2, 2, "single")
 eye (2, 2,  "single")
@@ -458,6 +457,7 @@
 NaN (2, 2, "single")
 NA (2, 2, "single")
 Inf (2, 2, "single")
+@end group
 @end example
 
 @noindent
@@ -479,12 +479,14 @@
 a matrix into 32 bit integers.
 
 @example
+@group
 float = rand (2, 2)
      @result{} float = 0.37569   0.92982
                 0.11962   0.50876
 integer = int32 (float)
      @result{} integer = 0  1
                   0  1
+@end group
 @end example
 
 @noindent
@@ -594,7 +596,7 @@
 This is the double precision version of the functions @code{intmax},
 previously discussed.
 
-Octave also includes the basic  bitwise 'and', 'or' and 'exclusive or'
+Octave also includes the basic bitwise 'and', 'or' and 'exclusive or'
 operators.
 
 @DOCSTRING(bitand)
@@ -654,10 +656,12 @@
 The following example illustrates this.
 
 @example
+@group
 data = [ 1, 2; 3, 4 ];
 idx = (data <= 2);
 data(idx)
      @result{} ans = [ 1; 2 ]
+@end group
 @end example
 
 @noindent
@@ -680,8 +684,10 @@
 Many operators and functions can work with mixed data types.  For example
 
 @example
+@group
 uint8 (1) + 1
     @result{} 2
+@end group
 @end example
 
 @noindent
@@ -693,8 +699,10 @@
 explicitly cast to the appropriate data type like
 
 @example
+@group
 uint8 (1) + uint8 (1)
     @result{} 2
+@end group
 @end example
 
 @noindent
@@ -703,8 +711,10 @@
 values where a mixed operation such as
 
 @example
+@group
 single (1) + 1
     @result{} 2
+@end group
 @end example
 
 @noindent
@@ -712,7 +722,7 @@
 and their returned data types are
 
 @multitable @columnfractions .2 .3 .3 .2
-@item @tab Mixed Operation @tab  Result @tab 
+@item @tab Mixed Operation @tab Result @tab 
 @item @tab double OP single @tab single @tab
 @item @tab double OP integer @tab integer @tab
 @item @tab double OP char @tab double @tab
@@ -725,8 +735,10 @@
 The same logic applies to functions with mixed arguments such as
 
 @example
+@group
 min (single (1), 0)
    @result{} 0
+@end group
 @end example
 
 @noindent
@@ -736,10 +748,12 @@
 changed.  For example
 
 @example
+@group
 x = ones (2, 2);
 x (1, 1) = single (2)
     @result{} x = 2   1
            1   1
+@end group
 @end example
 
 @noindent
@@ -756,6 +770,7 @@
 length of the input if it is a complex number.
 
 @example
+@group
 function a = abs (x)
   if (isreal (x))
     a = sign (x) .* x;
@@ -763,6 +778,7 @@
     a = sqrt (real(x).^2 + imag(x).^2);
   endif
 endfunction
+@end group
 @end example
 
 The following functions are available for determining the type of a
--- a/doc/interpreter/oop.txi
+++ b/doc/interpreter/oop.txi
@@ -67,11 +67,9 @@
 
 @example
 @group
-@iftex
 @tex
 $a_0 + a_1 x + a_2 x^2 + \ldots a_n x^n$
 @end tex
-@end iftex
 @ifnottex
 a0 + a1 * x + a2 * x^2 + @dots{} + an * x^n
 @end ifnottex
@@ -80,11 +78,9 @@
 
 @noindent
 where
-@iftex
 @tex
 $a_0$, $a_1$, etc. are elements of $\Re$.
 @end tex
-@end iftex
 @ifnottex
 a0, a1, etc. are real scalars.
 @end ifnottex
@@ -359,7 +355,6 @@
 @anchor{doc-ge} @anchor{doc-eq} @anchor{doc-ne} @anchor{doc-and}
 @anchor{doc-or} @anchor{doc-not} @anchor{doc-ctranspose} @anchor{doc-transpose}
 
-@iftex
 @tex
 \vskip 6pt
 {\hbox to \hsize {\hfill\vbox{\offinterlineskip \tabskip=0pt 
@@ -404,7 +399,6 @@
 \noalign{\hrule height 0.6pt}
 }}\hfill}}
 @end tex
-@end iftex
 @ifnottex
 @multitable @columnfractions .1 .20 .20 .40 .1
 @item @tab Operation @tab Method @tab Description @tab
--- a/doc/interpreter/optim.txi
+++ b/doc/interpreter/optim.txi
@@ -45,24 +45,20 @@
 Octave can solve Linear Programming problems using the @code{glpk}
 function.  That is, Octave can solve
 
-@iftex
 @tex
 $$
   \min_x c^T x
 $$
 @end tex
-@end iftex
 @ifnottex
 @example
 min C'*x
 @end example
 @end ifnottex
 subject to the linear constraints
-@iftex
 @tex
 $Ax = b$ where $x \geq 0$.
 @end tex
-@end iftex
 @ifnottex
 @math{A*x = b} where @math{x >= 0}.
 @end ifnottex
@@ -76,26 +72,22 @@
 @section Quadratic Programming
 
 Octave can also solve Quadratic Programming problems, this is
-@iftex
 @tex
 $$
  \min_x {1 \over 2} x^T H x + x^T q
 $$
 @end tex
-@end iftex
 @ifnottex
 @example
 min 0.5 x'*H*x + x'*q
 @end example
 @end ifnottex
 subject to
-@iftex
 @tex
 $$
  Ax = b \qquad lb \leq x \leq ub \qquad A_{lb} \leq A_{in} \leq A_{ub}
 $$
 @end tex
-@end iftex
 @ifnottex
 @example
 @group
@@ -121,11 +113,9 @@
 
 Octave also supports linear least squares minimization.  That is,
 Octave can find the parameter @math{b} such that the model
-@iftex
 @tex
 $y = xb$
 @end tex
-@end iftex
 @ifnottex
 @math{y = x*b}
 @end ifnottex
--- a/doc/interpreter/package.txi
+++ b/doc/interpreter/package.txi
@@ -203,7 +203,7 @@
 @anchor{doc-PKG_ADD}
 @item package/PKG_ADD
 An optional file that includes commands that are run when the package
-is added to the users path.  Note that @code{PKG_ADD} directives in the
+is added to the users path.  Note that @w{@code{PKG_ADD}} directives in the
 source code of the package will also be added to this file by the
 Octave package manager.  Note that symbolic links are to be avoided in
 packages, as symbolic links do not exist on some file systems, and so
@@ -221,15 +221,15 @@
 @end example
 
 @noindent
-@xref{PKG_ADD and PKG_DEL directives}, for details on @code{PKG_ADD}
+@xref{PKG_ADD and PKG_DEL directives}, for details on @w{@code{PKG_ADD}}
 directives.
 
 @item package/PKG_DEL
 An optional file that includes commands that are run when the package
-is removed from the users path.  Note that @code{PKG_DEL} directives in
+is removed from the users path.  Note that @w{@code{PKG_DEL}} directives in
 the source code of the package will also be added to this file by the
 Octave package manager. 
-@xref{PKG_ADD and PKG_DEL directives}, for details on @code{PKG_DEL}
+@xref{PKG_ADD and PKG_DEL directives}, for details on @w{@code{PKG_DEL}}
 directives.
 
 @item package/pre_install.m
@@ -272,7 +272,7 @@
 
 @item package/bin
 An optional directory containing files that will be added to the
-Octave @code{EXEC_PATH} when the package is loaded.  This might contain
+Octave @w{@code{EXEC_PATH}} when the package is loaded.  This might contain
 external scripts, etc., called by functions within the package.
 @end table
 
@@ -519,15 +519,15 @@
 @node PKG_ADD and PKG_DEL directives
 @subsection PKG_ADD and PKG_DEL directives
 
-If the package contains files called @code{PKG_ADD} or @code{PKG_DEL}
+If the package contains files called @w{@code{PKG_ADD}} or @w{@code{PKG_DEL}}
 the commands in these files will be executed when the package is
 added or removed from the users path.  In some situations such files
 are a bit cumbersome to maintain, so the package manager supports
 automatic creation of such files.  If a source file in the package
-contains a @code{PKG_ADD} or @code{PKG_DEL} directive they will be
-added to either the @code{PKG_ADD} or @code{PKG_DEL} files.
+contains a @w{@code{PKG_ADD}} or @w{@code{PKG_DEL}} directive they will be
+added to either the @w{@code{PKG_ADD}} or @w{@code{PKG_DEL}} files.
 
-In @code{m}-files a @code{PKG_ADD} directive looks like this
+In @code{m}-files a @w{@code{PKG_ADD}} directive looks like this
 
 @example
 ## PKG_ADD: some_octave_command
@@ -535,7 +535,7 @@
 
 @noindent
 Such lines should be added before the @code{function} keyword.
-In C++ files a @code{PKG_ADD} directive looks like this
+In C++ files a @w{@code{PKG_ADD}} directive looks like this
 
 @example
 // PKG_ADD: some_octave_command
@@ -543,7 +543,7 @@
 
 @noindent
 In both cases @code{some_octave_command} should be replaced by the
-command that should be placed in the @code{PKG_ADD} file.
-@code{PKG_DEL} directives work in the same way, except the @code{PKG_ADD}
-keyword is replaced with @code{PKG_DEL} and the commands get added
-to the @code{PKG_DEL} file.
+command that should be placed in the @w{@code{PKG_ADD}} file.
+@w{@code{PKG_DEL}} directives work in the same way, except the @w{@code{PKG_ADD}}
+keyword is replaced with @w{@code{PKG_DEL}} and the commands get added
+to the @w{@code{PKG_DEL}} file.
--- a/doc/interpreter/plot.txi
+++ b/doc/interpreter/plot.txi
@@ -126,7 +126,7 @@
 @DOCSTRING(rose)
 
 The @code{contour}, @code{contourf} and @code{contourc} functions
-produce two-dimensional contour plots from three dimensional data.
+produce two-dimensional contour plots from three-dimensional data.
 
 @DOCSTRING(contour)
 
@@ -494,7 +494,7 @@
 
 The functions @code{sombrero} and @code{peaks} provide a way to check
 that plotting is working.  Typing either @code{sombrero} or @code{peaks}
-at the Octave prompt should display a three dimensional plot.
+at the Octave prompt should display a three-dimensional plot.
 
 @DOCSTRING(sombrero)
 
@@ -823,8 +823,8 @@
 @item dataaspectratio
 A two-element vector specifying the relative height and width of the
 data displayed in the axes.  Setting @code{dataaspectratio} to @samp{1,
-2]} causes the length of one unit as displayed on the y axis to be the
-same as the length of 2 units on the x axis.  Setting
+2]} causes the length of one unit as displayed on the y-axis to be the
+same as the length of 2 units on the x-axis.  Setting
 @code{dataaspectratio} also forces the @code{dataaspectratiomode}
 property to be set to @code{"manual"}.
 
@@ -894,8 +894,8 @@
 
 @item xaxislocation
 @itemx yaxislocation
-Either @code{"top"} or @code{"bottom"} for the x axis and @code{"left"}
-or @code{"right"} for the y axis.
+Either @code{"top"} or @code{"bottom"} for the x-axis and @code{"left"}
+or @code{"right"} for the y-axis.
 
 @item view
 A three element vector specifying the view point for three-dimensional plots.
@@ -1048,7 +1048,6 @@
 following the '^' or '_' is super- or sub-scripted.
 
 @float Table,tab:extended
-@iftex
 @tex
 \vskip 6pt
 {\hbox to \hsize {\hfill\vbox{\offinterlineskip \tabskip=0pt 
@@ -1172,7 +1171,6 @@
 \noalign{\hrule height 0.6pt}
 }}\hfill}}
 @end tex
-@end iftex
 @ifnottex
 @multitable @columnfractions .125 .25 .25 .25 .125
 @item @tab  \forall     @tab  \exists     @tab  \ni      @tab
--- a/doc/interpreter/poly.txi
+++ b/doc/interpreter/poly.txi
@@ -22,14 +22,12 @@
 In Octave, a polynomial is represented by its coefficients (arranged
 in descending order).  For example, a vector @var{c} of length
 @math{N+1} corresponds to the following polynomial of order
-@iftex
 @tex
  $N$
 $$
  p (x) = c_1 x^N + \ldots + c_N x + c_{N+1}.
 $$
 @end tex
-@end iftex
 @ifinfo
  @var{N}
 
--- a/doc/interpreter/quad.txi
+++ b/doc/interpreter/quad.txi
@@ -33,13 +33,11 @@
 @section Functions of One Variable
 
 Octave supports three different algorithms for computing the integral
-@iftex
 @tex
 $$
  \int_a^b f(x) d x
 $$
 @end tex
-@end iftex
 of a function @math{f} over the interval from @math{a} to @math{b}.
 These are
 
@@ -70,14 +68,12 @@
 @DOCSTRING(quad_options)
 
 Here is an example of using @code{quad} to integrate the function
-@iftex
 @tex
 $$
  f(x) = x \sin (1/x) \sqrt {|1 - x|}
 $$
 from $x = 0$ to $x = 3$.
 @end tex
-@end iftex
 @ifnottex
 
 @example
@@ -139,12 +135,10 @@
 
 Here is an example of using @code{colloc} to generate weight matrices
 for solving the second order differential equation
-@iftex
 @tex
 $u^\prime - \alpha u^{\prime\prime} = 0$ with the boundary conditions
 $u(0) = 0$ and $u(1) = 1$.
 @end tex
-@end iftex
 @ifnottex
 @var{u}' - @var{alpha} * @var{u}'' = 0 with the boundary conditions
 @var{u}(0) = 0 and @var{u}(1) = 1.
@@ -153,11 +147,9 @@
 First, we can generate the weight matrices for @var{n} points (including
 the endpoints of the interval), and incorporate the boundary conditions
 in the right hand side (for a specific value of
-@iftex
 @tex
 $\alpha$).
 @end tex
-@end iftex
 @ifnottex
 @var{alpha}).
 @end ifnottex
@@ -192,13 +184,11 @@
 
 To illustrate how the integration can be performed, we will integrate
 the function
-@iftex
 @tex
 $$
   f(x, y) = \sin(\pi x y)\sqrt{x y}
 $$
 @end tex
-@end iftex
 @ifnottex
 @example
 f(x, y) = sin(pi*x*y)*sqrt(x*y)
@@ -250,13 +240,11 @@
 previous section.  The integral of a function @math{f(x,y)} for
 @math{x} and @math{y} between 0 and 1 can be approximated using @math{n}
 points by
-@iftex
 @tex
 $$
  \int_0^1 \int_0^1 f(x,y) d x d y \approx \sum_{i=1}^n \sum_{j=1}^n q_i q_j f(r_i, r_j),
 $$
 @end tex
-@end iftex
 @ifnottex
 the sum over @code{i=1:n} and @code{j=1:n} of @code{q(i)*q(j)*f(r(i),r(j))},
 @end ifnottex
--- a/doc/interpreter/sparse.txi
+++ b/doc/interpreter/sparse.txi
@@ -894,38 +894,30 @@
 In order to motivate this application, we consider the boundary value
 Laplace equation.  This system can model scalar potential fields, such
 as heat or electrical potential.  Given a medium 
-@iftex
 @tex
 $\Omega$ 
 @end tex
-@end iftex
 @ifinfo
 Omega
 @end ifinfo
 with boundary
-@iftex
 @tex
 $\partial\Omega$ 
 @end tex
-@end iftex
 @ifinfo
 dOmega
 @end ifinfo
 . At all points on the 
-@iftex
 @tex
 $\partial\Omega$ 
 @end tex
-@end iftex
 @ifinfo
 dOmega
 @end ifinfo
 the boundary conditions are known, and we wish to calculate the potential in
-@iftex
 @tex
 $\Omega$ 
 @end tex
-@end iftex
 @ifinfo
 Omega
 @end ifinfo
@@ -935,11 +927,9 @@
 its derivative (Cauchy boundary condition).
 
 In a thermal model, we want to calculate the temperature in
-@iftex
 @tex
 $\Omega$ 
 @end tex
-@end iftex
 @ifinfo
 Omega
 @end ifinfo
@@ -947,11 +937,9 @@
 or heat flux (from which we can calculate the Neumann condition
 by dividing by the thermal conductivity at the boundary).  Similarly, 
 in an electrical model, we want to calculate the voltage in
-@iftex
 @tex
 $\Omega$ 
 @end tex
-@end iftex
 @ifinfo
 Omega
 @end ifinfo
@@ -962,11 +950,9 @@
 with the current equal to zero.
 
 The simplest finite element models will divide 
-@iftex
 @tex
 $\Omega$ 
 @end tex
-@end iftex
 @ifinfo
 Omega
 @end ifinfo
@@ -1027,11 +1013,9 @@
 
 Using a first order FEM, we approximate the electrical conductivity 
 distribution in 
-@iftex
 @tex
 $\Omega$ 
 @end tex
-@end iftex
 @ifinfo
 Omega
 @end ifinfo
@@ -1044,7 +1028,6 @@
 calculated.
 
 @example
-@group
   # Element conductivity
   conductivity= [1*ones(1,16), ...
          2*ones(1,48), 1*ones(1,16)];
@@ -1071,24 +1054,19 @@
   SE= sparse(Siidx,Sjidx,Sdata);
   # Global system matrix
   S= C'* SE *C;
-@end group
 @end example
 
 The system matrix acts like the conductivity 
-@iftex
 @tex
 $S$ 
 @end tex
-@end iftex
 @ifinfo
 @code{S}
 @end ifinfo
 in Ohm's law 
-@iftex
 @tex
 $SV = I$. 
 @end tex
-@end iftex
 @ifinfo
 @code{S * V = I}.
 @end ifinfo
@@ -1096,7 +1074,6 @@
 solve for the voltages at each vertex @code{V}. 
 
 @example
-@group
   # Dirichlet boundary conditions
   D_nodes=[1:5, 51:55]; 
   D_value=[10*ones(1,5), 20*ones(1,5)]; 
@@ -1118,7 +1095,6 @@
 
   V(idx) = S(idx,idx) \ ( Q(idx) - ...
             S(idx,D_nodes) * V(D_nodes));
-@end group
 @end example
 
 Finally, in order to display the solution, we show each solved voltage 
--- a/doc/interpreter/stats.txi
+++ b/doc/interpreter/stats.txi
@@ -154,7 +154,6 @@
 Octave can perform several different statistical tests.  The following
 table summarizes the available tests.
 
-@iftex
 @tex
 \vskip 6pt
 {\hbox to \hsize {\hfill\vbox{\offinterlineskip \tabskip=0pt 
@@ -181,7 +180,6 @@
 \noalign{\hrule height 0.6pt}
 }}\hfill}}
 @end tex
-@end iftex
 @ifnottex
 @multitable @columnfractions .4 .5
 @item @strong{Hypothesis}
@@ -285,7 +283,6 @@
 alphabetical order).
 
 @c Do the table explicitly in TeX if possible to get a better layout.
-@iftex
 @tex
 \vskip 6pt
 {\hbox to \hsize {\hfill\vbox{\offinterlineskip \tabskip=0pt 
@@ -322,7 +319,6 @@
 \noalign{\hrule height 0.6pt}
 }}\hfill}}
 @end tex
-@end iftex
 @ifnottex
 @multitable @columnfractions .31 .23 .23 .23
 @item @strong{Distribution}
@@ -559,7 +555,6 @@
 The following table summarizes the available random number generators
 (in alphabetical order).
 
-@iftex
 @tex
 \vskip 6pt
 {\hbox to \hsize {\hfill\vbox{\offinterlineskip \tabskip=0pt 
@@ -594,7 +589,6 @@
 \noalign{\hrule height 0.6pt}
 }}\hfill}}
 @end tex
-@end iftex
 @ifnottex
 @multitable @columnfractions .4 .3
 @item @strong{Distribution}             @tab @strong{Function}
--- a/doc/interpreter/stmt.txi
+++ b/doc/interpreter/stmt.txi
@@ -220,6 +220,7 @@
 following way
 
 @example
+@group
 if (X == 1)
   do_something ();
 elseif (X == 2)
@@ -227,6 +228,7 @@
 else
   do_something_completely_different ();
 endif
+@end group
 @end example
 
 @noindent
@@ -235,6 +237,7 @@
 statement.  Using this statement, the above example becomes
 
 @example
+@group
 switch (X)
   case 1
     do_something ();
@@ -243,6 +246,7 @@
   otherwise
     do_something_completely_different ();
 endswitch
+@end group
 @end example
 
 @noindent
@@ -283,6 +287,7 @@
 @samp{Variable is either 6 or 7}.
 
 @example
+@group
 A = 7;
 switch A
   case @{ 6, 7 @}
@@ -290,6 +295,7 @@
   otherwise
     printf ("variable is neither 6 nor 7\n");
 endswitch
+@end group
 @end example
 
 As with all other specific @code{end} keywords, @code{endswitch} may be
@@ -313,11 +319,13 @@
 is possible to write programs that look like this
 
 @example
+@group
 switch (X)
   case "a string"
     do_something
   @dots{}
 endswitch
+@end group
 @end example
 
 @menu
@@ -581,7 +589,7 @@
 
 @noindent
 In the above case, the multidimensional matrix @var{c} is reshaped to a
-two dimensional matrix as @code{reshape (c, rows(c),
+two-dimensional matrix as @code{reshape (c, rows(c),
 prod(size(c)(2:end)))} and then the same behavior as a loop over a two
 dimensional matrix is produced.
 
--- a/doc/interpreter/strings.txi
+++ b/doc/interpreter/strings.txi
@@ -155,7 +155,7 @@
 The string representation used by Octave is an array of characters, so
 internally the string "dddddddddd" is actually a row vector of length 10
 containing the value 100 in all places (100 is the ASCII code of "d").  This
-lends itself to the obvious generalisation to character matrices.  Using a
+lends itself to the obvious generalization to character matrices.  Using a
 matrix of characters, it is possible to represent a collection of same-length
 strings in one variable.  The convention used in Octave is that each row in a
 character matrix is a separate string, but letting each column represent a
@@ -369,10 +369,12 @@
 element by element as the following example shows:
 
 @example
+@group
 GNU = "GNU's Not UNIX";
 spaces = (GNU == " ")
      @result{} spaces =
        0   0   0   0   0   1   0   0   0   1   0   0   0   0
+@end group
 @end example
 
 @noindent To determine if two strings are identical it is necessary to use the
@@ -401,7 +403,7 @@
 
 @example
 @group
-quote = @dots{}
+quote = ...
   "First things first, but not necessarily in that order";
 quote( quote == " " ) = "_"
 @result{} quote = 
@@ -454,8 +456,10 @@
 a hexadecimal number to a floating point number.
 
 @example
+@group
 hex2dec ("FF")
      @result{} ans = 255
+@end group
 @end example
 
 @DOCSTRING(bin2dec)
--- a/doc/interpreter/tips.txi
+++ b/doc/interpreter/tips.txi
@@ -394,7 +394,7 @@
 @end example
 
 This help string must be commented in user functions, or in the help
-string of the @code{DEFUN_DLD} macro for dynamically loadable
+string of the @w{@code{DEFUN_DLD}} macro for dynamically loadable
 functions.  The important aspects of the documentation string are
 
 @table @asis
@@ -423,7 +423,7 @@
 with text-terminals as well as generating high-quality printed output.
 To these ends, Texinfo has commands which control the diversion of parts
 of the document into a particular output processor.  Three formats are
-of importance: info, html and TeX.  These are selected with
+of importance: info, html and @TeX{}.  These are selected with
 
 @example
 @group
@@ -451,7 +451,7 @@
 @end group
 @end example
 
-Note that often TeX output can be used in html documents and so often
+Note that often @TeX{} output can be used in html documents and so often
 the @code{@@ifhtml} blocks are unnecessary.  If no specific output
 processor is chosen, by default, the text goes into all output
 processors.  It is usual to have the above blocks in pairs to allow the
@@ -505,7 +505,6 @@
 documentation string of @code{nchoosek} is
 
 @example
-@group
 -*- texinfo -*-
 @@deftypefn @{Function File@} @{@} nchoosek (@@var@{n@}, @@var@{k@})
 
@@ -540,7 +539,6 @@
 
 @@seealso@{bincoeff@}
 @@end deftypefn
-@end group
 @end example
 
 which demonstrates most of the concepts discussed above.
@@ -573,7 +571,7 @@
 @end group
 @end example
 
-using info, whereas in a printed documentation using TeX it will appear
+using info, whereas in a printed documentation using @TeX{} it will appear
 as
 
 @deftypefn {Function File} {@var{c} =} nchoosek (@var{n}, @var{k})
--- a/doc/interpreter/var.txi
+++ b/doc/interpreter/var.txi
@@ -268,7 +268,6 @@
 is saved on disc, we get the following behavior.
 
 @example
-@group
 for i = 1:2
   count_calls ();
 endfor
@@ -295,7 +294,6 @@
 endfor
 @print{} 'count_calls' has been called 1 times
 @print{} 'count_calls' has been called 2 times
-@end group
 @end example
 
 @noindent
@@ -317,11 +315,13 @@
 different information about what is in memory, as the following shows.
 
 @example
+@group
 str = "A random string";
 who -variables
      @print{} *** local user variables:
      @print{} 
      @print{} __nargin__  str
+@end group
 @end example
 
 @DOCSTRING(who)
@@ -336,9 +336,11 @@
 variable.  The following example illustrates this.
 
 @example
+@group
 if (! exist ("meaning", "var"))
   disp ("The program has no 'meaning'");
 endif
+@end group
 @end example
 
 @DOCSTRING(exist)
--- a/scripts/deprecated/exponential_rnd.m
+++ b/scripts/deprecated/exponential_rnd.m
@@ -21,7 +21,7 @@
 ## @deftypefnx {Function File} {} exponential_rnd (@var{lambda}, @var{sz})
 ## Return an @var{r} by @var{c} matrix of random samples from the
 ## exponential distribution with parameter @var{lambda}, which must be a
-## scalar or of size @var{r} by @var{c}. Or if @var{sz} is a vector, 
+## scalar or of size @var{r} by @var{c}.  Or if @var{sz} is a vector, 
 ## create a matrix of size @var{sz}.
 ##
 ## If @var{r} and @var{c} are omitted, the size of the result matrix is
--- a/scripts/deprecated/geometric_rnd.m
+++ b/scripts/deprecated/geometric_rnd.m
@@ -24,7 +24,7 @@
 ## or of size @var{r} by @var{c}.
 ##
 ## If @var{r} and @var{c} are given create a matrix with @var{r} rows and
-## @var{c} columns. Or if @var{sz} is a vector, create a matrix of size
+## @var{c} columns.  Or if @var{sz} is a vector, create a matrix of size
 ## @var{sz}.
 ## @end deftypefn
 
--- a/scripts/deprecated/hypergeometric_pdf.m
+++ b/scripts/deprecated/hypergeometric_pdf.m
@@ -20,7 +20,7 @@
 ## @deftypefn {Function File} {} hypergeometric_pdf (@var{x}, @var{m}, @var{t}, @var{n})
 ## Compute the probability density function (PDF) at @var{x} of the
 ## hypergeometric distribution with parameters @var{m}, @var{t}, and
-## @var{n}. This is the probability of obtaining @var{x} marked items
+## @var{n}.  This is the probability of obtaining @var{x} marked items
 ## when randomly drawing a sample of size @var{n} without replacement
 ## from a population of total size @var{t} containing @var{m} marked items.
 ##
--- a/scripts/deprecated/lognormal_rnd.m
+++ b/scripts/deprecated/lognormal_rnd.m
@@ -20,7 +20,7 @@
 ## @deftypefn {Function File} {} lognormal_rnd (@var{a}, @var{v}, @var{r}, @var{c})
 ## @deftypefnx {Function File} {} lognormal_rnd (@var{a}, @var{v}, @var{sz})
 ## Return an @var{r} by @var{c} matrix of random samples from the
-## lognormal distribution with parameters @var{a} and @var{v}. Both
+## lognormal distribution with parameters @var{a} and @var{v}.  Both
 ## @var{a} and @var{v} must be scalar or of size @var{r} by @var{c}.
 ## Or if @var{sz} is a vector, create a matrix of size @var{sz}.
 ##
--- a/scripts/deprecated/pascal_rnd.m
+++ b/scripts/deprecated/pascal_rnd.m
@@ -24,7 +24,7 @@
 ## Both @var{n} and @var{p} must be scalar or of size @var{r} by @var{c}.
 ##
 ## If @var{r} and @var{c} are omitted, the size of the result matrix is
-## the common size of @var{n} and @var{p}. Or if @var{sz} is a vector, 
+## the common size of @var{n} and @var{p}.  Or if @var{sz} is a vector, 
 ## create a matrix of size @var{sz}.
 ## @end deftypefn
 
--- a/scripts/deprecated/spdet.m
+++ b/scripts/deprecated/spdet.m
@@ -17,7 +17,7 @@
 ## <http://www.gnu.org/licenses/>.
 
 ## -*- texinfo -*-
-## @deftypefn {Loadable Function} {[@var{d}, @var{rcond}] = } spdet (@var{a})
+## @deftypefn {Loadable Function} {[@var{d}, @var{rcond}] =} spdet (@var{a})
 ## This function has been deprecated.  Use @code{det} instead.
 ## @end deftypefn
 
--- a/scripts/deprecated/spdiag.m
+++ b/scripts/deprecated/spdiag.m
@@ -18,7 +18,7 @@
 
 ## -*- texinfo -*-
 ## @deftypefn {Function File} {} spdiag (@var{v}, @var{k})
-## This function has been deprecated.  Use @code{sparse (diag (...))} instead.
+## This function has been deprecated.  Use @code{sparse (diag (@dots{}))} instead.
 ## @end deftypefn
 
 ## Deprecated in version 3.2
--- a/scripts/deprecated/split.m
+++ b/scripts/deprecated/split.m
@@ -18,7 +18,7 @@
 
 ## -*- texinfo -*-
 ## @deftypefn {Function File} {} split (@var{s}, @var{t}, @var{n})
-## This function has been deprecated. Use @code{char (strsplit (s, t))}
+## This function has been deprecated.  Use @code{char (strsplit (s, t))}
 ## instead.
 ## @end deftypefn
 
--- a/scripts/deprecated/str2mat.m
+++ b/scripts/deprecated/str2mat.m
@@ -23,7 +23,7 @@
 ## its rows.  Each string is padded with blanks in order to form a valid
 ## matrix.
 ##
-## This function is modelled after @sc{Matlab}.  In Octave, you can create
+## This function is modelled after @sc{matlab}.  In Octave, you can create
 ## a matrix of strings by @code{[@var{s_1}; @dots{}; @var{s_n}]} even if
 ## the strings are not all the same length.
 ## @end deftypefn
--- a/scripts/deprecated/t_rnd.m
+++ b/scripts/deprecated/t_rnd.m
@@ -21,7 +21,7 @@
 ## @deftypefnx {Function File} {} t_rnd (@var{n}, @var{sz})
 ## Return an @var{r} by @var{c} matrix of random samples from the t
 ## (Student) distribution with @var{n} degrees of freedom.  @var{n} must
-## be a scalar or of size @var{r} by @var{c}. Or if @var{sz} is a
+## be a scalar or of size @var{r} by @var{c}.  Or if @var{sz} is a
 ## vector create a matrix of size @var{sz}.
 ##
 ## If @var{r} and @var{c} are omitted, the size of the result matrix is
--- a/scripts/deprecated/weibrnd.m
+++ b/scripts/deprecated/weibrnd.m
@@ -21,7 +21,7 @@
 ## @deftypefnx {Function File} {} weibrnd (@var{scale}, @var{shape}, @var{sz})
 ## Return an @var{r} by @var{c} matrix of random samples from the
 ## Weibull distribution with parameters @var{scale} and @var{shape}
-## which must be scalar or of size @var{r} by @var{c}. Or if @var{sz}
+## which must be scalar or of size @var{r} by @var{c}.  Or if @var{sz}
 ## is a vector return a matrix of size @var{sz}.
 ##
 ## If @var{r} and @var{c} are omitted, the size of the result matrix is
--- a/scripts/deprecated/weibull_rnd.m
+++ b/scripts/deprecated/weibull_rnd.m
@@ -21,7 +21,7 @@
 ## @deftypefnx {Function File} {} weibull_rnd (@var{shape}, @var{scale}, @var{sz})
 ## Return an @var{r} by @var{c} matrix of random samples from the
 ## Weibull distribution with parameters @var{scale} and @var{shape}
-## which must be scalar or of size @var{r} by @var{c}. Or if @var{sz}
+## which must be scalar or of size @var{r} by @var{c}.  Or if @var{sz}
 ## is a vector return a matrix of size @var{sz}.
 ##
 ## If @var{r} and @var{c} are omitted, the size of the result matrix is
--- a/scripts/deprecated/wiener_rnd.m
+++ b/scripts/deprecated/wiener_rnd.m
@@ -20,7 +20,7 @@
 ## @deftypefn {Function File} {} wiener_rnd (@var{t}, @var{d}, @var{n})
 ## Return a simulated realization of the @var{d}-dimensional Wiener Process
 ## on the interval [0, @var{t}].  If @var{d} is omitted, @var{d} = 1 is
-## used. The first column of the return matrix contains time, the
+## used.  The first column of the return matrix contains time, the
 ## remaining columns contain the Wiener process.
 ##
 ## The optional parameter @var{n} gives the number of summands used for
--- a/scripts/general/diff.m
+++ b/scripts/general/diff.m
@@ -34,7 +34,7 @@
 ## differences along the first non-singleton dimension.
 ##
 ## The second argument is optional.  If supplied, @code{diff (@var{x},
-## @var{k})}, where @var{k} is a nonnegative integer, returns the
+## @var{k})}, where @var{k} is a non-negative integer, returns the
 ## @var{k}-th differences.  It is possible that @var{k} is larger than
 ## then first non-singleton dimension of the matrix.  In this case,
 ## @code{diff} continues to take the differences along the next
--- a/scripts/general/interp3.m
+++ b/scripts/general/interp3.m
@@ -28,8 +28,8 @@
 ## array @var{v} represents a value at a location given by the parameters 
 ## @var{x}, @var{y}, and @var{z}.  The parameters @var{x}, @var{x}, and 
 ## @var{z} are either 3-dimensional arrays of the same size as the array 
-## @var{v} in the 'meshgrid' format or vectors.  The parameters @var{xi}, etc 
-## respect a similar format to @var{x}, etc, and they represent the points 
+## @var{v} in the 'meshgrid' format or vectors.  The parameters @var{xi}, etc. 
+## respect a similar format to @var{x}, etc., and they represent the points 
 ## at which the array @var{vi} is interpolated.
 ##
 ## If @var{x}, @var{y}, @var{z} are omitted, they are assumed to be 
--- a/scripts/general/interpn.m
+++ b/scripts/general/interpn.m
@@ -29,8 +29,8 @@
 ## at a location given by the parameters @var{x1}, @var{x2}, @dots{}, @var{xn}. 
 ## The parameters @var{x1}, @var{x2}, @dots{}, @var{xn} are either 
 ## @var{n}-dimensional arrays of the same size as the array @var{v} in 
-## the 'ndgrid' format or vectors.  The parameters @var{y1}, etc respect a 
-## similar format to @var{x1}, etc, and they represent the points at which
+## the 'ndgrid' format or vectors.  The parameters @var{y1}, etc. respect a 
+## similar format to @var{x1}, etc., and they represent the points at which
 ## the array @var{vi} is interpolated.
 ##
 ## If @var{x1}, @dots{}, @var{xn} are omitted, they are assumed to be 
--- a/scripts/general/quadl.m
+++ b/scripts/general/quadl.m
@@ -34,7 +34,7 @@
 ## defined, displays the left end point of the current interval, the 
 ## interval length, and the partial integral.
 ##
-## Additional arguments @var{p1}, etc, are passed directly to @var{f}.
+## Additional arguments @var{p1}, etc., are passed directly to @var{f}.
 ## To use default values for @var{tol} and @var{trace}, one may pass
 ## empty matrices.
 ##
--- a/scripts/general/quadv.m
+++ b/scripts/general/quadv.m
@@ -36,7 +36,7 @@
 ## While if @var{trace} is defined, displays the left end point of the
 ## current interval, the interval length, and the partial integral.
 ##
-## Additional arguments @var{p1}, etc, are passed directly to @var{f}.
+## Additional arguments @var{p1}, etc., are passed directly to @var{f}.
 ## To use default values for @var{tol} and @var{trace}, one may pass
 ## empty matrices.
 ## @seealso{triplequad, dblquad, quad, quadl, quadgk, trapz}
--- a/scripts/miscellaneous/version.m
+++ b/scripts/miscellaneous/version.m
@@ -19,7 +19,7 @@
 ## -*- texinfo -*-
 ## @deftypefn {Function File} {} version ()
 ## Return Octave's version number as a string.  This is also the value of
-## the built-in variable @code{OCTAVE_VERSION}.
+## the built-in variable @w{@code{OCTAVE_VERSION}}.
 ## @end deftypefn
 
 ## Author: jwe
--- a/scripts/optimization/fsolve.m
+++ b/scripts/optimization/fsolve.m
@@ -91,7 +91,6 @@
 ## example how this can be achieved follows:
 ##
 ## @example
-## @group
 ## function [fvec, fjac] = user_func (x, optimvalues, state)
 ## persistent sav = [], sav0 = [];
 ## if (nargin == 1)
@@ -107,14 +106,13 @@
 ##   if (all (x == sav0.x))
 ##     sav = sav0;
 ##   endif
-##   ## maybe output iteration status etc.
+##   ## maybe output iteration status, etc.
 ## endif
 ## endfunction
 ##
 ## ## @dots{}.
 ## 
 ## fsolve (@@user_func, x0, optimset ("OutputFcn", @@user_func, @dots{}))
-## @end group
 ## @end example
 ###
 ## @end deftypefn
--- a/scripts/optimization/sqp.m
+++ b/scripts/optimization/sqp.m
@@ -152,7 +152,6 @@
 ## Here is an example of calling @code{sqp}:
 ##
 ## @example
-## @group
 ## function r = g (x)
 ##   r = [ sumsq(x)-10;
 ##         x(2)*x(3)-5*x(4)*x(5); 
@@ -184,7 +183,6 @@
 ##   -0.0401627
 ##    0.0379578
 ##   -0.0052227
-## @end group
 ## @end example
 ##
 ## The value returned in @var{info} may be one of the following:
--- a/scripts/plot/axis.m
+++ b/scripts/plot/axis.m
@@ -23,8 +23,8 @@
 ##
 ## The argument @var{limits} should be a 2, 4, or 6 element vector.  The
 ## first and second elements specify the lower and upper limits for the x
-## axis.  The third and fourth specify the limits for the y axis, and the
-## fifth and sixth specify the limits for the z axis.
+## axis.  The third and fourth specify the limits for the y-axis, and the
+## fifth and sixth specify the limits for the z-axis.
 ##
 ## Without any arguments, @code{axis} turns autoscaling on.  
 ##
--- a/scripts/plot/errorbar.m
+++ b/scripts/plot/errorbar.m
@@ -39,7 +39,7 @@
 ##
 ## @noindent
 ## where after @var{x} and @var{y} there can be up to four error
-## parameters such as @var{ey}, @var{ex}, @var{ly}, @var{uy} etc.,
+## parameters such as @var{ey}, @var{ex}, @var{ly}, @var{uy}, etc.,
 ## depending on the plot type.  Any number of argument sets may appear,
 ## as long as they are separated with a format string @var{fmt}.
 ##
--- a/scripts/plot/meshgrid.m
+++ b/scripts/plot/meshgrid.m
@@ -22,7 +22,7 @@
 ## @deftypefnx {Function File} {[@var{xx}, @var{yy}] =} meshgrid (@var{x}, @var{y})
 ## @deftypefnx {Function File} {[@var{xx}, @var{yy}] =} meshgrid (@var{x})
 ## Given vectors of @var{x} and @var{y} and @var{z} coordinates, and
-## returning 3 arguments, return three dimensional arrays corresponding
+## returning 3 arguments, return three-dimensional arrays corresponding
 ## to the @var{x}, @var{y}, and @var{z} coordinates of a mesh.  When
 ## returning only 2 arguments, return matrices corresponding to the
 ## @var{x} and @var{y} coordinates of a mesh.  The rows of @var{xx} are
--- a/scripts/plot/plotmatrix.m
+++ b/scripts/plot/plotmatrix.m
@@ -49,7 +49,7 @@
 ## graphics objects in the scatter plots, whereas @var{ax} returns the
 ## handles to the scatter plot axis objects.  @var{bigax} is a hidden
 ## axis object that surrounds the other axes, such that the commands 
-## @code{xlabel}, @code{title}, etc, will be associated with this hidden
+## @code{xlabel}, @code{title}, etc., will be associated with this hidden
 ## axis.  Finally @var{p} returns the graphics objects associated with
 ## the histogram and @var{pax} the corresponding axes objects.
 ##
--- a/scripts/plot/print.m
+++ b/scripts/plot/print.m
@@ -34,7 +34,7 @@
 ##   Set the @var{printer} name to which the graph is sent if no
 ##   @var{filename} is specified.
 ## @item -G@var{ghostscript_command}
-##   Specify the command for calling Ghostscript. For Unix and Windows,
+##   Specify the command for calling Ghostscript.  For Unix and Windows,
 ## the defaults are 'gs' and 'gswin32c', respectively.
 ## @item -color
 ## @itemx -mono
@@ -63,10 +63,10 @@
 ##   @itemx epslatexstandalone
 ##   @itemx pstex
 ##   @itemx pslatex
-##     Generate a LaTeX (or TeX) file for labels, and eps/ps for
+##     Generate a @LaTeX{} (or @TeX{}) file for labels, and eps/ps for
 ## graphics.  The file produced by @code{epslatexstandalone} can be
-## processed directly by LaTeX.  The other formats are intended to
-## be included in a LaTeX (or TeX) document.  The @code{tex} device
+## processed directly by @LaTeX{}.  The other formats are intended to
+## be included in a @LaTeX{} (or @TeX{}) document.  The @code{tex} device
 ## is the same as the @code{epslatex} device.
 ##   @item ill
 ##   @itemx aifm
@@ -131,24 +131,24 @@
 ## and devices are available.
 ##
 ##   For output sent to a printer, the size is determined by the
-## figure's "papersize" property. For output to a file the, size
+## figure's "papersize" property.  For output to a file the, size
 ## is determined by the "paperposition" property.
 ##
 ## @itemx -r@var{NUM}
-##   Resolution of bitmaps in pixels per inch. For both metafiles and 
+##   Resolution of bitmaps in pixels per inch.  For both metafiles and 
 ## SVG the default is the screen resolution, for other it is 150 dpi.
 ## To specify screen resolution, use "-r0".
 ##
 ## @item -tight
-##   Forces a tight bounding box for eps-files. Since the ghostscript
+##   Forces a tight bounding box for eps-files.  Since the ghostscript
 ## devices are conversion of an eps-file, this option works the those
 ## devices as well.
 ##
 ## @itemx -S@var{xsize},@var{ysize}
-##   Plot size in pixels for EMF, GIF, JPEG, PBM, PNG and SVG. If
+##   Plot size in pixels for EMF, GIF, JPEG, PBM, PNG and SVG.  If
 ## using the command form of the print function, you must quote the
 ## @var{xsize},@var{ysize} option.  For example, by writing
-## @code{"-S640,480"}.  The size defaults to that specified by the
+## @w{@code{"-S640,480"}}.  The size defaults to that specified by the
 ## figure's paperposition property.
 ##
 ## @item -F@var{fontname}
--- a/scripts/plot/slice.m
+++ b/scripts/plot/slice.m
@@ -28,7 +28,7 @@
 ## parameters @var{x}, @var{y}, and @var{z}.  The parameters @var{x},
 ## @var{x}, and @var{z} are either 3-dimensional arrays of the same size
 ## as the array @var{v} in the "meshgrid" format or vectors.  The
-## parameters @var{xi}, etc respect a similar format to @var{x}, etc,
+## parameters @var{xi}, etc. respect a similar format to @var{x}, etc.,
 ## and they represent the points at which the array @var{vi} is
 ## interpolated using interp3.  The vectors @var{sx}, @var{sy}, and
 ## @var{sz} contain points of orthogonal slices of the respective axes.
--- a/scripts/plot/xlim.m
+++ b/scripts/plot/xlim.m
@@ -22,12 +22,12 @@
 ## @deftypefnx {Function File} {@var{m} =} xlim ('mode')
 ## @deftypefnx {Function File} {} xlim (@var{m})
 ## @deftypefnx {Function File} {} xlim (@var{h}, @dots{})
-## Get or set the limits of the x axis of the current plot.  Called without
-## arguments @code{xlim} returns the x axis limits of the current plot.
-## If passed a two element vector @var{xl}, the limits of the x axis are set
+## Get or set the limits of the x-axis of the current plot.  Called without
+## arguments @code{xlim} returns the x-axis limits of the current plot.
+## If passed a two element vector @var{xl}, the limits of the x-axis are set
 ## to this value.
 ##
-## The current mode for calculation of the x axis can be returned with a
+## The current mode for calculation of the x-axis can be returned with a
 ## call @code{xlim ('mode')}, and can be either 'auto' or 'manual'.  The 
 ## current plotting mode can be set by passing either 'auto' or 'manual' 
 ## as the argument.
--- a/scripts/plot/ylim.m
+++ b/scripts/plot/ylim.m
@@ -22,12 +22,12 @@
 ## @deftypefnx {Function File} {@var{m} =} ylim ('mode')
 ## @deftypefnx {Function File} {} ylim (@var{m})
 ## @deftypefnx {Function File} {} ylim (@var{h}, @dots{})
-## Get or set the limits of the y axis of the current plot.  Called without
-## arguments @code{ylim} returns the y axis limits of the current plot.
-## If passed a two element vector @var{xl}, the limits of the y axis are set
+## Get or set the limits of the y-axis of the current plot.  Called without
+## arguments @code{ylim} returns the y-axis limits of the current plot.
+## If passed a two element vector @var{xl}, the limits of the y-axis are set
 ## to this value.
 ##
-## The current mode for calculation of the y axis can be returned with a
+## The current mode for calculation of the y-axis can be returned with a
 ## call @code{ylim ('mode')}, and can be either 'auto' or 'manual'.  The 
 ## current plotting mode can be set by passing either 'auto' or 'manual' 
 ## as the argument.
--- a/scripts/plot/zlim.m
+++ b/scripts/plot/zlim.m
@@ -22,12 +22,12 @@
 ## @deftypefnx {Function File} {@var{m} =} zlim ('mode')
 ## @deftypefnx {Function File} {} zlim (@var{m})
 ## @deftypefnx {Function File} {} zlim (@var{h}, @dots{})
-## Get or set the limits of the z axis of the current plot.  Called without
-## arguments @code{zlim} returns the z axis limits of the current plot.
-## If passed a two element vector @var{xl}, the limits of the z axis are set
+## Get or set the limits of the z-axis of the current plot.  Called without
+## arguments @code{zlim} returns the z-axis limits of the current plot.
+## If passed a two element vector @var{xl}, the limits of the z-axis are set
 ## to this value.
 ##
-## The current mode for calculation of the z axis can be returned with a
+## The current mode for calculation of the z-axis can be returned with a
 ## call @code{zlim ('mode')}, and can be either 'auto' or 'manual'.  The 
 ## current plotting mode can be set by passing either 'auto' or 'manual' 
 ## as the argument.
--- a/scripts/sparse/svds.m
+++ b/scripts/sparse/svds.m
@@ -26,7 +26,7 @@
 ## @example
 ## @group
 ## [@var{m}, @var{n}] = size(@var{a})
-## @var{s} = eigs([sparse(@var{m}, @var{m}), @var{a}; @dots{}
+## @var{s} = eigs([sparse(@var{m}, @var{m}), @var{a}; ...
 ##                 @var{a}', sparse(@var{n}, @var{n})])
 ## @end group
 ## @end example
@@ -69,7 +69,7 @@
 ##
 ## @example
 ## @group
-## norm (@var{a} * @var{v} - @var{u} * @var{s}, 1) <= @dots{}
+## norm (@var{a} * @var{v} - @var{u} * @var{s}, 1) <= ...
 ##         @var{tol} * norm (@var{a}, 1)
 ## @end group
 ## @end example
--- a/scripts/specfun/nchoosek.m
+++ b/scripts/specfun/nchoosek.m
@@ -50,7 +50,7 @@
 ## resulting @var{c} has size @code{[nchoosek (length (@var{n}), 
 ## @var{k}), @var{k}]}.
 ##
-## @code{nchoosek} works only for nonnegative integer arguments; use
+## @code{nchoosek} works only for non-negative integer arguments; use
 ## @code{bincoeff} for non-integer scalar arguments and for using vector
 ## arguments to compute many coefficients at once.
 ##
--- a/scripts/special-matrix/pascal.m
+++ b/scripts/special-matrix/pascal.m
@@ -24,7 +24,7 @@
 ## @var{t} defaults to 0. Return lower triangular Cholesky factor of 
 ## the Pascal matrix if @code{@var{t} = 1}.  This matrix is its own
 ## inverse, that is @code{pascal (@var{n}, 1) ^ 2 == eye (@var{n})}.
-## If @code{@var{t} = -1}, return its absolute value. This is the
+## If @code{@var{t} = -1}, return its absolute value.  This is the
 ## standard pascal triangle as a lower-triangular matrix.
 ## If @code{@var{t} = 2}, return a transposed and permuted version of
 ## @code{pascal (@var{n}, 1)}, which is the cube-root of the identity
--- a/scripts/strings/dec2base.m
+++ b/scripts/strings/dec2base.m
@@ -19,7 +19,7 @@
 ## -*- texinfo -*-
 ## @deftypefn {Function File} {} dec2base (@var{n}, @var{b}, @var{len})
 ## Return a string of symbols in base @var{b} corresponding to
-## the nonnegative integer @var{n}.
+## the non-negative integer @var{n}.
 ##
 ## @example
 ## @group
--- a/scripts/strings/dec2bin.m
+++ b/scripts/strings/dec2bin.m
@@ -19,7 +19,7 @@
 
 ## -*- texinfo -*-
 ## @deftypefn {Function File} {} dec2bin (@var{n}, @var{len})
-## Return a binary number corresponding to the nonnegative decimal number
+## Return a binary number corresponding to the non-negative decimal number
 ## @var{n}, as a string of ones and zeros.  For example,
 ##
 ## @example
--- a/scripts/strings/dec2hex.m
+++ b/scripts/strings/dec2hex.m
@@ -19,7 +19,7 @@
 
 ## -*- texinfo -*-
 ## @deftypefn {Function File} {} dec2hex (@var{n}, @var{len})
-## Return the hexadecimal string corresponding to the nonnegative 
+## Return the hexadecimal string corresponding to the non-negative 
 ## integer @var{n}.  For example,
 ##
 ## @example
--- a/scripts/strings/validatestring.m
+++ b/scripts/strings/validatestring.m
@@ -18,8 +18,8 @@
 
 ## -*- texinfo -*-
 ## @deftypefn {Function File} {@var{validstr} =} validatestring (@var{str}, @var{strarray})
-## @deftypefnx {Function File} {@var{validstr} =} validatestring (@var{str}, @var{strarray}, @var{funname})
-## @deftypefnx {Function File} {@var{validstr} =} validatestring (@var{str}, @var{strarray}, @var{funname}, @var{varname})
+## @deftypefnx {Function File} {@var{validstr} =} validatestring (@var{str}, @var{strarray}, @var{funcname})
+## @deftypefnx {Function File} {@var{validstr} =} validatestring (@var{str}, @var{strarray}, @var{funcname}, @var{varname})
 ## @deftypefnx {Function File} {@var{validstr} =} validatestring (@dots{}, @var{position})
 ## Verify that @var{str} is a string or substring of an element of
 ## @var{strarray}.
@@ -45,7 +45,7 @@
   endif
 
   ## set the defaults
-  funname = "";
+  funcname = "";
   varname = "";
   position = 0;
   ## set the actual values
@@ -55,19 +55,19 @@
       varargin(end) = [];
     endif
   endif
-  funnameset = false;
+  funcnameset = false;
   varnameset = false;
   for i = 1:numel (varargin)
     if (ischar (varargin{i}))
       if (varnameset)
         error ("validatestring: invalid number of character inputs: %d",
                numel (varargin));
-      elseif (funnameset)
+      elseif (funcnameset)
         varname = varargin{i};
         varnameset = true;
       else
-        funname = varargin{i};
-        funnameset = true;
+        funcname = varargin{i};
+        funcnameset = true;
       endif
     endif
   endfor
@@ -79,10 +79,10 @@
     error ("validatestring: str must have only one row");
   elseif (! iscellstr (strarray))
     error ("validatestring: strarray must be a cellstr");
-  elseif (! ischar (funname))
-    error ("validatestring: funname must be a character string");
-  elseif (! isempty (funname) && (rows (funname) != 1))
-    error ("validatestring: funname must be exactly one row");
+  elseif (! ischar (funcname))
+    error ("validatestring: funcname must be a character string");
+  elseif (! isempty (funcname) && (rows (funcname) != 1))
+    error ("validatestring: funcname must be exactly one row");
   elseif (! ischar (varname))
     error ("validatestring: varname must be a character string");
   elseif (! isempty (varname) && (rows (varname) != 1))
@@ -91,11 +91,11 @@
     error ("validatestring: position must be >= 0");
   endif
 
-  ## make the part of the error that will use funname, varname, and
+  ## make the part of the error that will use funcname, varname, and
   ## position
   errstr = "";
-  if (! isempty (funname))
-    errstr = sprintf ("Function: %s ", funname);
+  if (! isempty (funcname))
+    errstr = sprintf ("Function: %s ", funcname);
   endif
   if (! isempty (varname))
     errstr = sprintf ("%sVariable: %s ", errstr, varname);
--- a/scripts/time/ctime.m
+++ b/scripts/time/ctime.m
@@ -19,7 +19,7 @@
 
 ## -*- texinfo -*-
 ## @deftypefn {Function File} {} ctime (@var{t})
-## Convert a value returned from @code{time} (or any other nonnegative
+## Convert a value returned from @code{time} (or any other non-negative
 ## integer), to the local time and return a string of the same form as
 ## @code{asctime}.  The function @code{ctime (time)} is equivalent to
 ## @code{asctime (localtime (time))}.  For example,
--- a/src/DLD-FUNCTIONS/balance.cc
+++ b/src/DLD-FUNCTIONS/balance.cc
@@ -82,7 +82,7 @@
 Permute only; do not scale.\n\
 @end table\n\
 \n\
-Algebraic eigenvalue balancing uses standard @sc{Lapack} routines.\n\
+Algebraic eigenvalue balancing uses standard @sc{lapack} routines.\n\
 \n\
 Generalized eigenvalue problem balancing uses Ward's algorithm\n\
 (SIAM Journal on Scientific and Statistical Computing, 1981).\n\
--- a/src/DLD-FUNCTIONS/cellfun.cc
+++ b/src/DLD-FUNCTIONS/cellfun.cc
@@ -1012,7 +1012,6 @@
 An example of the use of mat2cell is\n\
 \n\
 @example\n\
-@group\n\
 mat2cell (reshape(1:16,4,4),[3,1],[3,1])\n\
 @result{} @{\n\
   [1,1] =\n\
@@ -1033,7 +1032,6 @@
 \n\
   [2,2] = 16\n\
 @}\n\
-@end group\n\
 @end example\n\
 @seealso{num2cell, cell2mat}\n\
 @end deftypefn")
--- a/src/DLD-FUNCTIONS/det.cc
+++ b/src/DLD-FUNCTIONS/det.cc
@@ -51,7 +51,7 @@
 DEFUN_DLD (det, args, nargout,
   "-*- texinfo -*-\n\
 @deftypefn {Loadable Function} {[@var{d}, @var{rcond}] =} det (@var{a})\n\
-Compute the determinant of @var{a} using @sc{Lapack} for full and UMFPACK\n\
+Compute the determinant of @var{a} using @sc{lapack} for full and UMFPACK\n\
 for sparse matrices.  Return an estimate of the reciprocal condition number\n\
 if requested.\n\
 @end deftypefn")
--- a/src/DLD-FUNCTIONS/kron.cc
+++ b/src/DLD-FUNCTIONS/kron.cc
@@ -127,7 +127,7 @@
 kron (const Sparse<Complex>&, const Sparse<Complex>&, Sparse<Complex>&);
 
 
-DEFUN_DLD (kron, args,  nargout, "-*- texinfo -*-\n\
+DEFUN_DLD (kron, args, nargout, "-*- texinfo -*-\n\
 @deftypefn {Loadable Function} {} kron (@var{a}, @var{b})\n\
 Form the kronecker product of two matrices, defined block by block as\n\
 \n\
--- a/src/DLD-FUNCTIONS/lu.cc
+++ b/src/DLD-FUNCTIONS/lu.cc
@@ -73,7 +73,7 @@
 @deftypefnx {Loadable Function} {[@dots{}] =} lu (@dots{}, 'vector')\n\
 @cindex LU decomposition\n\
 Compute the LU decomposition of @var{a}.  If @var{a} is full subroutines from\n\
-@sc{Lapack} are used and if @var{a} is sparse then UMFPACK is used.  The\n\
+@sc{lapack} are used and if @var{a} is sparse then UMFPACK is used.  The\n\
 result is returned in a permuted form, according to the optional return\n\
 value @var{p}.  For example, given the matrix @code{a = [1, 2; 3, 4]},\n\
 \n\
@@ -131,7 +131,7 @@
 \n\
 With two output arguments, returns the permuted forms of the upper and\n\
 lower triangular matrices, such that @code{@var{a} = @var{l} * @var{u}}.\n\
-With one output argument @var{y}, then the matrix returned by the @sc{Lapack}\n\
+With one output argument @var{y}, then the matrix returned by the @sc{lapack}\n\
 routines is returned.  If the input matrix is sparse then the matrix @var{l}\n\
 is embedded into @var{u} to give a return value similar to the full case.\n\
 For both full and sparse matrices, @dfn{lu} looses the permutation\n\
--- a/src/DLD-FUNCTIONS/qr.cc
+++ b/src/DLD-FUNCTIONS/qr.cc
@@ -89,7 +89,7 @@
 @deftypefn {Loadable Function} {[@var{q}, @var{r}, @var{p}] =} qr (@var{a})\n\
 @deftypefnx {Loadable Function} {[@var{q}, @var{r}, @var{p}] =} qr (@var{a}, '0')\n\
 @cindex QR factorization\n\
-Compute the QR factorization of @var{a}, using standard @sc{Lapack}\n\
+Compute the QR factorization of @var{a}, using standard @sc{lapack}\n\
 subroutines.  For example, given the matrix @code{a = [1, 2; 3, 4]},\n\
 \n\
 @example\n\
--- a/src/DLD-FUNCTIONS/qz.cc
+++ b/src/DLD-FUNCTIONS/qz.cc
@@ -271,7 +271,7 @@
 in the open left half-plane\n\
 \n\
 @item \"+\"\n\
-= nonnegative real part: leading block has all eigenvalues\n\
+= non-negative real part: leading block has all eigenvalues\n\
 in the closed right half-plane\n\
 @end table\n\
 @end table\n\
--- a/src/DLD-FUNCTIONS/rcond.cc
+++ b/src/DLD-FUNCTIONS/rcond.cc
@@ -34,7 +34,7 @@
   "-*- texinfo -*-\n\
 @deftypefn {Loadable Function} {@var{c} =} rcond (@var{a})\n\
 Compute the 1-norm estimate of the reciprocal condition as returned\n\
-by LAPACK.  If the matrix is well-conditioned then @var{c} will be near\n\
+by @sc{lapack}.  If the matrix is well-conditioned then @var{c} will be near\n\
 1 and if the matrix is poorly conditioned it will be close to zero.\n\
 \n\
 The matrix @var{a} must not be sparse.  If the matrix is sparse then\n\
--- a/src/DLD-FUNCTIONS/spparms.cc
+++ b/src/DLD-FUNCTIONS/spparms.cc
@@ -76,7 +76,7 @@
 The pivot tolerance of the UMFPACK symmetric solvers (default 0.001)\n\
 @item bandden\n\
 The density of non-zero elements in a banded matrix before it is treated\n\
-by the LAPACK banded solvers (default 0.5)\n\
+by the @sc{lapack} banded solvers (default 0.5)\n\
 @item umfpack\n\
 Flag whether the UMFPACK or mmd solvers are used for the LU, '\\' and\n\
 '/' operations (default 1)\n\
--- a/src/DLD-FUNCTIONS/syl.cc
+++ b/src/DLD-FUNCTIONS/syl.cc
@@ -50,7 +50,7 @@
 A X + X B + C = 0\n\
 @end example\n\
 @end ifnottex\n\
-using standard @sc{Lapack} subroutines.  For example,\n\
+using standard @sc{lapack} subroutines.  For example,\n\
 \n\
 @example\n\
 @group\n\
--- a/src/DLD-FUNCTIONS/time.cc
+++ b/src/DLD-FUNCTIONS/time.cc
@@ -105,7 +105,7 @@
 DEFUN_DLD (gmtime, args, ,
   "-*- texinfo -*-\n\
 @deftypefn {Loadable Function} {} gmtime (@var{t})\n\
-Given a value returned from time (or any nonnegative integer),\n\
+Given a value returned from time (or any non-negative integer),\n\
 return a time structure corresponding to CUT.  For example,\n\
 \n\
 @example\n\
@@ -169,7 +169,7 @@
 DEFUN_DLD (localtime, args, ,
   "-*- texinfo -*-\n\
 @deftypefn {Loadable Function} {} localtime (@var{t})\n\
-Given a value returned from time (or any nonnegative integer),\n\
+Given a value returned from time (or any non-negative integer),\n\
 return a time structure corresponding to the local time zone.\n\
 \n\
 @example\n\
--- a/src/bitfcns.cc
+++ b/src/bitfcns.cc
@@ -264,7 +264,7 @@
 DEFUN (bitand, args, ,
   "-*- texinfo -*-\n\
 @deftypefn {Built-in Function} {} bitand (@var{x}, @var{y})\n\
-Return the bitwise AND of nonnegative integers.\n\
+Return the bitwise AND of non-negative integers.\n\
 @var{x}, @var{y} must be in the range [0,bitmax]\n\
 @seealso{bitor, bitxor, bitset, bitget, bitcmp, bitshift, bitmax}\n\
 @end deftypefn")
@@ -275,7 +275,7 @@
 DEFUN (bitor, args, ,
   "-*- texinfo -*-\n\
 @deftypefn {Built-in Function} {} bitor (@var{x}, @var{y})\n\
-Return the bitwise OR of nonnegative integers.\n\
+Return the bitwise OR of non-negative integers.\n\
 @var{x}, @var{y} must be in the range [0,bitmax]\n\
 @seealso{bitor, bitxor, bitset, bitget, bitcmp, bitshift, bitmax}\n\
 @end deftypefn")
@@ -286,7 +286,7 @@
 DEFUN (bitxor, args, ,
   "-*- texinfo -*-\n\
 @deftypefn {Built-in Function} {} bitxor (@var{x}, @var{y})\n\
-Return the bitwise XOR of nonnegative integers.\n\
+Return the bitwise XOR of non-negative integers.\n\
 @var{x}, @var{y} must be in the range [0,bitmax]\n\
 @seealso{bitand, bitor, bitset, bitget, bitcmp, bitshift, bitmax}\n\
 @end deftypefn")
--- a/src/defaults.cc
+++ b/src/defaults.cc
@@ -420,12 +420,12 @@
 Query or set the internal variable that specifies a colon separated\n\
 list of directories to search when executing external programs.\n\
 Its initial value is taken from the environment variable\n\
-@code{OCTAVE_EXEC_PATH} (if it exists) or @code{PATH}, but that\n\
+@w{@code{OCTAVE_EXEC_PATH}} (if it exists) or @code{PATH}, but that\n\
 value can be overridden by the command line argument\n\
 @code{--exec-path PATH}.  At startup, an additional set of\n\
 directories (including the shell PATH) is appended to the path\n\
 specified in the environment or on the command line.  If you use\n\
-the @code{EXEC_PATH} function to modify the path, you should take\n\
+the @w{@code{EXEC_PATH}} function to modify the path, you should take\n\
 care to preserve these additional directories.\n\
 @end deftypefn")
 {
--- a/src/file-io.cc
+++ b/src/file-io.cc
@@ -752,11 +752,11 @@
 Set the file pointer to any location within the file @var{fid}.\n\
 \n\
 The pointer is positioned @var{offset} characters from the @var{origin},\n\
-which may be one of the predefined variables @code{SEEK_CUR} (current\n\
-position), @code{SEEK_SET} (beginning), or @code{SEEK_END} (end of\n\
+which may be one of the predefined variables @w{@code{SEEK_CUR}} (current\n\
+position), @w{@code{SEEK_SET}} (beginning), or @w{@code{SEEK_END}} (end of\n\
 file) or strings \"cof\", \"bof\" or \"eof\".  If @var{origin} is omitted,\n\
-@code{SEEK_SET} is assumed.  The offset must be zero, or a value returned\n\
-by @code{ftell} (in which case @var{origin} must be @code{SEEK_SET}).\n\
+@w{@code{SEEK_SET}} is assumed.  The offset must be zero, or a value returned\n\
+by @code{ftell} (in which case @var{origin} must be @w{@code{SEEK_SET}}).\n\
 \n\
 Return 0 on success and -1 on error.\n\
 @seealso{ftell, fopen, fclose}\n\
@@ -1921,7 +1921,7 @@
 filename unique.  The file is then created with mode read/write and\n\
 permissions that are system dependent (on GNU/Linux systems, the permissions\n\
 will be 0600 for versions of glibc 2.0.7 and later).  The file is opened\n\
-with the @code{O_EXCL} flag.\n\
+with the @w{@code{O_EXCL}} flag.\n\
 \n\
 If the optional argument @var{delete} is supplied and is true,\n\
 the file will be deleted automatically when Octave exits, or when\n\
--- a/src/mappers.cc
+++ b/src/mappers.cc
@@ -1643,7 +1643,7 @@
 @deftypefn {Mapping Function} {} tolower (@var{s})\n\
 @deftypefnx {Mapping Function} {} lower (@var{s})\n\
 Return a copy of the string or cell string @var{s}, with each upper-case\n\
-character replaced by the corresponding lower-case one; nonalphabetic\n\
+character replaced by the corresponding lower-case one; non-alphabetic\n\
 characters are left unchanged.  For example,\n\
 \n\
 @example\n\
@@ -1689,7 +1689,7 @@
 @deftypefn {Built-in Function} {} toupper (@var{s})\n\
 @deftypefnx {Built-in Function} {} upper (@var{s})\n\
 Return a copy of the string or cell string @var{s}, with each lower-case\n\
-character replaced by the corresponding upper-case one; nonalphabetic\n\
+character replaced by the corresponding upper-case one; non-alphabetic\n\
 characters are left unchanged.  For example,\n\
 \n\
 @example\n\
--- a/src/syscalls.cc
+++ b/src/syscalls.cc
@@ -235,7 +235,6 @@
 For example,\n\
 \n\
 @example\n\
-@group\n\
 [in, out, pid] = popen2 (\"sort\", \"-r\");\n\
 fputs (in, \"these\\nare\\nsome\\nstrings\\n\");\n\
 fclose (in);\n\
@@ -257,7 +256,6 @@
      @print{} some\n\
      @print{} strings\n\
      @print{} these\n\
-@end group\n\
 @end example\n\
 @end deftypefn")
 {
@@ -439,8 +437,8 @@
 \n\
 @item F_SETFL\n\
 Set the file status flags for @var{fid} to the value specified by\n\
-@var{arg}.  The only flags that can be changed are @code{O_APPEND} and\n\
-@code{O_NONBLOCK}.\n\
+@var{arg}.  The only flags that can be changed are @w{@code{O_APPEND}} and\n\
+@w{@code{O_NONBLOCK}}.\n\
 @end vtable\n\
 \n\
 If successful, @var{err} is 0 and @var{msg} is an empty string.\n\
@@ -920,9 +918,9 @@
 File number of the file.\n\
 \n\
 @item mode\n\
-File mode, as an integer.  Use the functions @code{S_ISREG},\n\
-@code{S_ISDIR}, @code{S_ISCHR}, @code{S_ISBLK}, @code{S_ISFIFO},\n\
-@code{S_ISLNK}, or @code{S_ISSOCK} to extract information from this\n\
+File mode, as an integer.  Use the functions @w{@code{S_ISREG}},\n\
+@w{@code{S_ISDIR}}, @w{@code{S_ISCHR}}, @w{@code{S_ISBLK}}, @w{@code{S_ISFIFO}},\n\
+@w{@code{S_ISLNK}}, or @w{@code{S_ISSOCK}} to extract information from this\n\
 value.\n\
 \n\
 @item modestr\n\
@@ -975,7 +973,6 @@
 For example,\n\
 \n\
 @example\n\
-@group\n\
 [s, err, msg] = stat (\"/vmlinuz\")\n\
       @result{} s =\n\
         @{\n\
@@ -996,7 +993,6 @@
         @}\n\
      @result{} err = 0\n\
      @result{} msg = \n\
-@end group\n\
 @end example\n\
 @end deftypefn")
 {