changeset 9758:09da0bd91412

Periodic grammar check of Octave documentation files to ensure common format Use double spaces after a period at start of new sentence Do not use @iftex blocks where @tex block is sufficient
author Rik <rdrider0-list@yahoo.com>
date Fri, 23 Oct 2009 09:28:14 -0700
parents 95ad9c2a27e2
children 97de6c916498
files doc/ChangeLog doc/interpreter/container.txi doc/interpreter/expr.txi doc/interpreter/oop.txi doc/interpreter/plot.txi doc/interpreter/tips.txi scripts/io/strread.m scripts/io/textread.m scripts/miscellaneous/mkoctfile.m scripts/optimization/fminunc.m scripts/optimization/glpk.m scripts/plot/__marching_cube__.m scripts/plot/contourc.m scripts/plot/isosurface.m scripts/plot/print.m scripts/plot/xlabel.m scripts/polynomial/polyaffine.m src/DLD-FUNCTIONS/betainc.cc src/DLD-FUNCTIONS/chol.cc src/DLD-FUNCTIONS/dassl.cc src/DLD-FUNCTIONS/eigs.cc src/DLD-FUNCTIONS/filter.cc src/DLD-FUNCTIONS/fltk_backend.cc src/DLD-FUNCTIONS/gammainc.cc src/DLD-FUNCTIONS/givens.cc src/DLD-FUNCTIONS/hess.cc src/DLD-FUNCTIONS/matrix_type.cc src/DLD-FUNCTIONS/qr.cc src/DLD-FUNCTIONS/qz.cc src/DLD-FUNCTIONS/rand.cc src/DLD-FUNCTIONS/schur.cc src/DLD-FUNCTIONS/svd.cc src/DLD-FUNCTIONS/syl.cc src/DLD-FUNCTIONS/typecast.cc src/data.cc src/file-io.cc src/mappers.cc src/pr-output.cc src/utils.cc
diffstat 39 files changed, 193 insertions(+), 232 deletions(-) [+]
line wrap: on
line diff
--- a/doc/ChangeLog	Fri Oct 23 10:35:59 2009 +0200
+++ b/doc/ChangeLog	Fri Oct 23 09:28:14 2009 -0700
@@ -1,3 +1,8 @@
+2009-10-23  Rik <octave@nomad.inbox5.com>
+
+	* various: Periodic grammar check of Octave documentation files to ensure
+	a standardized format.
+
 2009-10-20  Rik <octave@nomad.inbox5.com>
 
 	* interpreter/Makefile.in: Clean Makefile.in and remove a few
--- a/doc/interpreter/container.txi	Fri Oct 23 10:35:59 2009 +0200
+++ b/doc/interpreter/container.txi	Fri Oct 23 09:28:14 2009 -0700
@@ -23,7 +23,7 @@
 Octave includes support for two different mechanisms to contain
 arbitrary data types in the same variable.  Structures, which are C-like,
 and are indexed with named fields, and cell arrays, where each element
-of the array can have a different data type and or shape. Multiple
+of the array can have a different data type and or shape.  Multiple
 input arguments and return values of functions are organized as
 another data container, the comma separated list.
 
@@ -159,7 +159,7 @@
 
 @noindent
 This prevents long and confusing output from large deeply nested
-structures. The number of levels to print for nested structures can be
+structures.  The number of levels to print for nested structures can be
 set with the function @code{struct_levels_to_print}:
 
 @DOCSTRING(struct_levels_to_print)
@@ -204,7 +204,6 @@
 indexed like any other variable.  For example,
 
 @example
-@group
 [ x.u, x.s(2:3,2:3), x.v ] = svd ([1, 2; 3, 4]);
 x
      @result{} x =
@@ -226,7 +225,6 @@
             -0.81742  -0.57605
 
         @}
-@end group
 @end example
 
 It is also possible to cycle through all the elements of a structure in
@@ -238,7 +236,7 @@
 
 A structure array is a particular instance of a structure, where each of
 the fields of the structure is represented by a cell array.  Each of
-these cell arrays has the same dimensions. Conceptually, a structure
+these cell arrays has the same dimensions.  Conceptually, a structure
 array can also be seen as an array of structures with identical
 fields.  An example of the creation of a structure array is
 
@@ -343,6 +341,7 @@
 example
 
 @example
+@group
 in = struct ("call1", @{x, Inf, "last"@}, 
              "call2", @{x, Inf, "first"@})
      @result{} in =
@@ -358,6 +357,7 @@
      @result{}
        ans = Inf
        ans = last
+@end group
 @end example
 
 @node Creating Structures
@@ -385,6 +385,7 @@
 structure array with a consistent dimension.  For example
 
 @example
+@group
 s = struct ("field1", @{1, "one"@}, "field2", @{2, "two"@},
         "field3", 3);
 s.field1
@@ -401,6 +402,7 @@
      @result{}
         ans =  3
         ans =  3
+@end group
 @end example
 
 If you want to create a struct which contains a cell array as an
@@ -408,6 +410,7 @@
 the following example:
 
 @example
+@group
 struct ("field1", @{@{1, "one"@}@}, "field2", 2)
      @result{} ans =
         @{
@@ -420,6 +423,7 @@
         
           field2 =  2
         @}
+@end group
  @end example       
 
 @DOCSTRING(struct)
@@ -554,7 +558,7 @@
 @DOCSTRING(celldisp)
 
 To test if an object is a cell array, use the @code{iscell}
-function. For example:
+function.  For example:
 
 @example
 @group
@@ -636,7 +640,7 @@
 As shown in @pxref{Basic Usage of Cell Arrays} elements can be
 extracted from cell arrays using the @samp{@{} and @samp{@}}
 operators.  If you want to extract or access subarrays which are still 
-cell arrays, you need to use the @samp{(} and @samp{)} operators. The
+cell arrays, you need to use the @samp{(} and @samp{)} operators.  The
 following example illustrates the difference:
 
 @example
@@ -711,7 +715,7 @@
 
 Accessing multiple elements of a cell array with the @samp{@{} and
 @samp{@}} operators will result in a comma-separated list of all the
-requested elements (@pxref{Comma Separated Lists}). Using the
+requested elements (@pxref{Comma Separated Lists}).  Using the
 @samp{@{} and @samp{@}} operators the first two rows in the above
 example can be swapped back like this:
 
@@ -879,11 +883,13 @@
 Another example of where comma separated lists are used is in the
 creation of a new array with @code{[]} (@pxref{Matrices}) or the
 creation of a cell array with @code{@{@}} (@pxref{Basic Usage of Cell
-Arrays}). In the expressions 
+Arrays}).  In the expressions 
 
 @example
+@group
 a = [1, 2, 3, 4];
 c = @{4, 5, 6, 7@};
+@end group
 @end example
 
 @noindent
@@ -905,8 +911,8 @@
 
 As has been mentioned above (@pxref{Indexing Cell Arrays}), elements
 of a cell array can be extracted into a comma separated list with the
-@code{@{} and @code{@}} operators. By surrounding this list with
-@code{[} and @code{]}, it can be concatenated into an array. For example:
+@code{@{} and @code{@}} operators.  By surrounding this list with
+@code{[} and @code{]}, it can be concatenated into an array.  For example:
 
 @example
 @group
--- a/doc/interpreter/expr.txi	Fri Oct 23 10:35:59 2009 +0200
+++ b/doc/interpreter/expr.txi	Fri Oct 23 09:28:14 2009 -0700
@@ -621,11 +621,13 @@
 @var{z1} < @var{z2}
 iff
 @example
+@group
   abs(@var{z1}) < abs(@var{z2}) 
   || (abs(@var{z1}) == abs(@var{z2}) && arg(@var{z1}) < arg(@var{z2}))
+@end group
 @end example
 This is consistent with the ordering used by @dfn{max}, @dfn{min} and @dfn{sort},
-but is not consistent with Matlab, which only compares the real parts.
+but is not consistent with @sc{matlab}, which only compares the real parts.
 
 String comparisons may also be performed with the @code{strcmp}
 function, not with the comparison operators listed above.
--- a/doc/interpreter/oop.txi	Fri Oct 23 10:35:59 2009 +0200
+++ b/doc/interpreter/oop.txi	Fri Oct 23 09:28:14 2009 -0700
@@ -325,37 +325,41 @@
 @subsection Indexed Assignment Optimization
 
 Octave's ubiquitous lazily-copied pass-by-value semantics implies 
-a problem for performance of user-defined subsasgn methods. Imagine
+a problem for performance of user-defined subsasgn methods.  Imagine
 a call to subsasgn:
 
 @example
+@group
   ss = substruct ("()",@{1@});
   x = subsasgn (x, ss, 1);
+@end group
 @end example
 
 and the corresponding method looking like this:
 
 @example
+@group
   function x = subsasgn (x, ss, val)
     @dots{}
     x.myfield(ss.subs@{1@}) = val;
   endfunction
+@end group
 @end example
 
 The problem is that on entry to the subsasgn method, @code{x} is still
 referenced from the caller's scope, which means that the method will 
 first need to unshare (copy) @code{x} and @code{x.myfield} before performing
-the assignment. Upon completing the call, unless an error occurs,
+the assignment.  Upon completing the call, unless an error occurs,
 the result is immediately assigned to @code{x} in the caller's scope,
-so that the previous value of @code{x.myfield} is forgotten. Hence, the
+so that the previous value of @code{x.myfield} is forgotten.  Hence, the
 Octave language implies a copy of N elements (N being the size of
 @code{x.myfield}), where modifying just a single element would actually
-suffice, i.e. degrades a constant-time operation to linear-time one.
+suffice, i.e., degrades a constant-time operation to linear-time one.
 This may be a real problem for user classes that intrinsically store large
 arrays.
 
 To partially solve the problem, Octave uses a special optimization for
-user-defined subsasgn methods coded as m-files. When the method
+user-defined subsasgn methods coded as m-files.  When the method
 gets called as a result of the built-in assignment syntax (not direct subsasgn
 call as shown above), i.e.
 
@@ -373,7 +377,7 @@
 It is important to understand the implications that this optimization brings.
 Since no extra copy of @code{x} in the caller's scope will exist, it is @i{solely}
 the callee's responsibility to not leave @code{x} in an invalid state if an error
-occurs throughout the execution. Also, if the method partially changes @code{x}
+occurs throughout the execution.  Also, if the method partially changes @code{x}
 and then errors out, the changes @i{will} affect @code{x} in the caller's scope.
 Deleting or completely replacing @code{x} inside subsasgn will not do anything,
 however, only indexed assignments matter.
@@ -385,9 +389,11 @@
 output and input arguments, like this:
 
 @example
+@group
   function y = subsasgn (x, ss, val)
     @dots{}
   endfunction
+@end group
 @end example
 
 @node Overloading Objects
@@ -576,14 +582,16 @@
 class function.
 
 This is easily demonstrated by example.  Suppose the programmer needs
-an FIR filter, i.e. a filter with a numerator polynomial but a unity
+an FIR filter, i.e., a filter with a numerator polynomial but a unity
 denominator polynomial.  In traditional octave programming, this would
 be performed as follows.
 
 @example
+@group
 octave:1> x = [some data vector];
 octave:2> n = [some coefficient vector];
 octave:3> y = filter (n, 1, x);
+@end group
 @end example
 
 The equivalent class could be implemented in a class directory
@@ -625,6 +633,7 @@
 class type and examine the underlying structure.
 
 @example
+@group
 octave:1> f=FIRfilter(polynomial([1 1 1]/3))
 f.polynomial = 0.333333 + 0.333333 * X + 0.333333 * X ^ 2
 octave:2> class(f)
@@ -638,6 +647,7 @@
 @{
 polynomial = 0.333333 + 0.333333 * X + 0.333333 * X ^ 2
 @}
+@end group
 @end example
 
 We only need to define a method to actually process data with our
@@ -652,6 +662,7 @@
 to the constructor.
 
 @example
+@group
 octave:2> f=FIRfilter(polynomial([1 1 1]/3));
 octave:3> x=ones(5,1);
 octave:4> y=f(x)
@@ -662,14 +673,17 @@
    1.00000
    1.00000
    1.00000
+@end group
 @end example
 
 The "." case allows us to view the contents of the polynomial field.
 
 @example
+@group
 octave:1> f=FIRfilter(polynomial([1 1 1]/3));
 octave:2> f.polynomial
 ans = 0.333333 + 0.333333 * X + 0.333333 * X ^ 2
+@end group
 @end example
 
 In order to change the contents of the object, we need to define a
@@ -681,9 +695,11 @@
 So that
 
 @example
+@group
 octave:6> f=FIRfilter();
 octave:7> f.polynomial = polynomial([1 2 3]);
 f.polynomial = 1 + 2 * X + 3 * X ^ 2
+@end group
 @end example
 
 
--- a/doc/interpreter/plot.txi	Fri Oct 23 10:35:59 2009 +0200
+++ b/doc/interpreter/plot.txi	Fri Oct 23 09:28:14 2009 -0700
@@ -33,9 +33,9 @@
 @section Introduction to Plotting
 
 Earlier versions of Octave provided plotting through the use of
-gnuplot. This capability is still available.  But, a newer plotting
+gnuplot.  This capability is still available.  But, a newer plotting
 capability is provided by access to OpenGL.  Which plotting system
-is used is controlled by the @code{backend} function. (See @ref{Graphics Backends}.)
+is used is controlled by the @code{backend} function.  (See @ref{Graphics Backends}.)
 
 The function call @code{backend("fltk")} selects the fltk/OpenGL system, and
 @code{backend("gnuplot")} selects the gnuplot system.
@@ -558,7 +558,7 @@
 option is not implemented and so the 'latex' interpreter also does not
 interpret the text.
 
-The 'tex' option implements a subset of @sc{TeX} functionality in the
+The 'tex' option implements a subset of @TeX{} functionality in the
 rendering of the text.  This allows the insertion of special characters
 such as Greek or mathematical symbols within the text.  The special
 characters are also inserted with a code starting with the back-slash
@@ -763,7 +763,7 @@
 @item @tab  \rfloor     @tab  \rceil      @tab  \int     @tab
 @end multitable
 @end ifnottex
-@caption{Available special characters in @sc{TeX} mode}
+@caption{Available special characters in @TeX{} mode}
 @end float
 
 A complete example showing the capabilities of the extended text is
@@ -787,7 +787,7 @@
 
 @float Figure,fig:extendedtext
 @center @image{extended,4in}
-@caption{Example of inclusion of text with the @sc{TeX} interpreter}
+@caption{Example of inclusion of text with the @TeX{} interpreter}
 @end float
 @end ifnotinfo
 
@@ -854,14 +854,14 @@
 in order to address the data structures which control
 graphical displays.
 A graphics handle may point any one of a number of different object types.
-The objects are the graphics data structures. The types of objects
+The objects are the graphics data structures.  The types of objects
 are: @code{figure}, @code{axes},
 @code{line}, @code{text}, @code{patch},
 @code{surface}, @code{text} and @code{image}.
 
 Each of these objects has a function by the
 same name. and, each of these functions returns a graphics handle pointing
-to an object of corresponding type. In addition there are several functions
+to an object of corresponding type.  In addition there are several functions
 which operate on properties of the graphics objects and which return handles: the functions @code{ plot}
 and @code{plot3}
 return a handle pointing to an object of type line, the function @code{subplot}
@@ -876,7 +876,7 @@
 
 The graphics objects are arranged in a hierarchy:
 
-1. The root is at 0.  i.e. @code{get(0)} returns the properties of the root
+1. The root is at 0.  i.e., @code{get(0)} returns the properties of the root
    object.
 
 2. Below the root are @code{figure} objects.
@@ -894,13 +894,13 @@
 argument is a handle of a figure.
 ishghandle() is synonymous with ishandle().  The @code{whos} function can be used
 to show the object type of each currently defined graphics handle.  (Note: this is
-not true today, but it is, I hope, considered an error in whos. It may be better
+not true today, but it is, I hope, considered an error in whos.  It may be better
 to have whos just show graphics_handle as the class, and provide a new function
 which, given a graphics handle, returns its object type.  This could generalize
 the ishandle() functions and, in fact, replace them.)
 
 The @code{get} and @code{set} commands are
-used to obtain and set the values of properties of graphics objects. In addition,
+used to obtain and set the values of properties of graphics objects.  In addition,
 the @code{get} command may be used to obtain property names.
 
 For example, the property "type" of the graphics object pointed to by the graphics
@@ -909,7 +909,7 @@
 @code{get(h, "type")}
 
 The properties and their current values are returned by @code{get(h)}
-where h is a handle of a graphics object. If only the names of the
+where h is a handle of a graphics object.  If only the names of the
 allowed properties are wanted they may be displayed by:
 @code{get(h, "");}
 
@@ -1002,10 +1002,10 @@
 @subsection Graphics Objects
 @cindex graphics objects
 
-The hierarchy of graphics objects was explained above. (See 
+The hierarchy of graphics objects was explained above.  (See 
 @ref{Introduction to Graphics Structures}.  Here the
 specific objects are described, and the properties contained in
-these objects are discussed. Keep in mind that
+these objects are discussed.  Keep in mind that
 graphics objects are always referenced by @dfn{handle}.
 
 @table @asis
@@ -1445,7 +1445,7 @@
 @item xlabel
 Indices to text objects for the axes labels.
 @item xlim
-Two-element vector defining the limits for the x axis.
+Two-element vector defining the limits for the x-axis.
 Setting this property also forces the corresponding mode
 property to be set to @code{"manual"}.
 @item xlimmode
@@ -1505,7 +1505,7 @@
 @item zlabel
 Indices to text objects for the axes labels.
 @item zlim
-Two-element vector defining the limits for z axis.
+Two-element vector defining the limits for z-axis.
 Setting this property also forces the corresponding mode
 property to be set to @code{"manual"}.
 @item zlimmode
--- a/doc/interpreter/tips.txi	Fri Oct 23 10:35:59 2009 +0200
+++ b/doc/interpreter/tips.txi	Fri Oct 23 09:28:14 2009 -0700
@@ -85,11 +85,13 @@
 
 @itemize @bullet
 @item
-Vectorize loops. For instance, rather than
+Vectorize loops.  For instance, rather than
 @example
+@group
 for i = 1:n-1
   a(i) = b(i+1) - b(i);
 endfor
+@end group
 @end example
 
 write
@@ -98,48 +100,52 @@
 a = b(2:n) - b(1:n-1);
 @end example
 
-This is especially important for loops with "cheap" bodies. Often it suffices to vectorize
-just the innermost loop to get acceptable performance. A general rule of thumb is that the
+This is especially important for loops with "cheap" bodies.  Often it suffices to vectorize
+just the innermost loop to get acceptable performance.  A general rule of thumb is that the
 "order" of the vectorized body should be greater or equal to the "order" of the enclosing loop.
 
 @item
-Use built-in and library functions if possible. Built-in and compiled functions are very fast.
+Use built-in and library functions if possible.  Built-in and compiled functions are very fast.
 Even with a m-file library function, chances are good that it is already optimized, or will be
 optimized more in a future release.
 
 @item
-Avoid computing costly intermediate results multiple times. Octave currently
+Avoid computing costly intermediate results multiple times.  Octave currently
 does not eliminate common subexpressions.
 Also, certain internal computation results are cached for variables.
 For instance, if a matrix variable is used multiple times as an index,
 checking the indices (and internal conversion to integers) is only done once.
 
 @item
-Be aware of lazy copies (copy-on-write). When a copy of an object
-is created, the data is not immediately copied, but rather shared. The actual
-copying is postponed until the copied data needs to be modified. For example:
+Be aware of lazy copies (copy-on-write).  When a copy of an object
+is created, the data is not immediately copied, but rather shared.  The actual
+copying is postponed until the copied data needs to be modified.  For example:
 
 @example
+@group
 a = zeros (1000); # create a 1000x1000 matrix
 b = a; # no copying done here
 b(1) = 1; # copying done here
+@end group
 @end example
 
 Lazy copying applies to whole Octave objects such as matrices, cells, struct,
 and also individual cell or struct elements (not array elements).
 
 Additionally, index expressions also use lazy copying when Octave can determine
-that the indexed portion is contiguous in memory. For example:
+that the indexed portion is contiguous in memory.  For example:
 
 @example
+@group
 a = zeros (1000); # create a 1000x1000 matrix
 b = a(:,10:100); # no copying done here
 b = a(10:100,:); # copying done here
+@end group
 @end example
 
 This applies to arrays (matrices), cell arrays, and structs indexed using ().
 Index expressions generating cs-lists can also benefit of shallow copying
-in some cases. In particular, when @var{a} is a struct array, expressions like
+in some cases.  In particular, when @var{a} is a struct array, expressions like
 @code{@{a.x@}, @{a(:,2).x@}} will use lazy copying, so that data can be shared
 between a struct array and a cell array.
 
@@ -149,22 +155,24 @@
 To provide a remedy working in most real cases,
 Octave checks for orphaned lazy slices at certain situations, when a value
 is stored into a "permanent" location, such as a named variable or cell or
-struct element, and possibly economizes them. For example
+struct element, and possibly economizes them.  For example
 
 @example
+@group
 a = zeros (1000); # create a 1000x1000 matrix
 b = a(:,10:100); # lazy slice
 a = []; # the original a array is still allocated
 c@{1@} = b; # b is reallocated at this point
+@end group
 @end example
 
 @item
-Avoid deep recursion. Function calls to m-file functions carry a relatively significant overhead,
-so rewriting a recursion as a loop often helps. Also, note that the maximum level of recursion is
+Avoid deep recursion.  Function calls to m-file functions carry a relatively significant overhead,
+so rewriting a recursion as a loop often helps.  Also, note that the maximum level of recursion is
 limited.
 
 @item
-Avoid resizing matrices unnecessarily. When building a single result
+Avoid resizing matrices unnecessarily.  When building a single result
 matrix from a series of calculations, set the size of the result matrix
 first, then insert values into it.  Write
 
@@ -192,12 +200,13 @@
 @end example
 
 Sometimes the number of items can't be computed in advance, and stack-like operations
-are needed. When elements are being repeatedly inserted at/removed from the end of an
+are needed.  When elements are being repeatedly inserted at/removed from the end of an
 array, Octave detects it as stack usage and attempts to use a smarter memory management
-strategy preallocating the array in bigger chunks. Likewise works for cell and
+strategy preallocating the array in bigger chunks.  Likewise works for cell and
 struct arrays.
 
 @example
+@group
 a = [];
 while (condition)
   @dots{}
@@ -206,20 +215,23 @@
   a(end) = []; # "pop" operation
   @dots{}
 endwhile
+@end group
 @end example
 
 @item
-Use @code{cellfun} intelligently. The @code{cellfun} function is a useful tool
-for avoiding loops. @xref{Processing Data in Cell Arrays}.
+Use @code{cellfun} intelligently.  The @code{cellfun} function is a useful tool
+for avoiding loops.  @xref{Processing Data in Cell Arrays}.
 @code{cellfun} is often use with anonymous function handles; however, calling
 an anonymous function involves an overhead quite comparable to the overhead
-of an m-file function. Passing a handle to a built-in function is faster,
-because the interpreter is not involved in the internal loop. For example:
+of an m-file function.  Passing a handle to a built-in function is faster,
+because the interpreter is not involved in the internal loop.  For example:
 
 @example
+@group
 a = @{@dots{}@}
 v = cellfun (@@(x) det(x), a); # compute determinants
 v = cellfun (@@det, a); # faster
+@end group
 @end example
 
 @item
--- a/scripts/io/strread.m	Fri Oct 23 10:35:59 2009 +0200
+++ b/scripts/io/strread.m	Fri Oct 23 09:28:14 2009 -0700
@@ -22,8 +22,8 @@
 ## Read data from a string.
 ##
 ## The string @var{str} is split into words that are repeatedly matched to the
-## specifiers in @var{format}. The first word is matched to the first specifier,
-## the second to the second specifier and so forth. If there are more words than
+## specifiers in @var{format}.  The first word is matched to the first specifier,
+## the second to the second specifier and so forth.  If there are more words than
 ## specifiers, the process is repeated until all words have been processed.
 ##
 ## The string @var{format} describes how the words in @var{str} should be parsed.
--- a/scripts/io/textread.m	Fri Oct 23 10:35:59 2009 +0200
+++ b/scripts/io/textread.m	Fri Oct 23 09:28:14 2009 -0700
@@ -21,9 +21,9 @@
 ## @var{prop1}, @var{value1}, @dots{})
 ## Read data from a text file.
 ##
-## The file @var{filename} is read and parsed according to @var{format}. The
+## The file @var{filename} is read and parsed according to @var{format}.  The
 ## function behaves like @code{strread} except it works by parsing a file instead
-## of a string. See the documentation of @code{strread} for details.
+## of a string.  See the documentation of @code{strread} for details.
 ## In addition to the options supported by @code{strread}, this function
 ## supports one more:
 ## @itemize
--- a/scripts/miscellaneous/mkoctfile.m	Fri Oct 23 10:35:59 2009 +0200
+++ b/scripts/miscellaneous/mkoctfile.m	Fri Oct 23 09:28:14 2009 -0700
@@ -64,7 +64,6 @@
 ## Print the configuration variable VAR.  Recognized variables are: 
 ##
 ## @example             
-## @group
 ##    ALL_CFLAGS                FFTW_LIBS     
 ##    ALL_CXXFLAGS              FLIBS       
 ##    ALL_FFLAGS                FPICFLAG      
@@ -85,7 +84,6 @@
 ##    F2CFLAGS                  XTRA_CFLAGS   
 ##    F77                       XTRA_CXXFLAGS 
 ##    FFLAGS
-## @end group
 ## @end example
 ##
 ## @item --link-stand-alone
--- a/scripts/optimization/fminunc.m	Fri Oct 23 10:35:59 2009 +0200
+++ b/scripts/optimization/fminunc.m	Fri Oct 23 09:28:14 2009 -0700
@@ -26,7 +26,7 @@
 ## and return the objective function value, optionally with gradient.
 ## In other words, this function attempts to determine a vector @var{x} such 
 ## that @code{@var{fcn} (@var{x})} is a local minimum.
-## @var{x0} determines a starting guess. The shape of @var{x0} is preserved
+## @var{x0} determines a starting guess.  The shape of @var{x0} is preserved
 ## in all calls to @var{fcn}, but otherwise it is treated as a column vector.
 ## @var{options} is a structure specifying additional options.
 ## Currently, @code{fminunc} recognizes these options:
@@ -38,7 +38,7 @@
 ## called with 2 output arguments, also returns the Jacobian matrix
 ## of right-hand sides at the requested point.  @code{"TolX"} specifies
 ## the termination tolerance in the unknown variables, while 
-## @code{"TolFun"} is a tolerance for equations. Default is @code{1e-7}
+## @code{"TolFun"} is a tolerance for equations.  Default is @code{1e-7}
 ## for both @code{"TolX"} and @code{"TolFun"}.
 ## 
 ## For description of the other options, see @code{optimset}.
@@ -48,7 +48,7 @@
 ## 
 ## @table @asis
 ## @item 1
-## Converged to a solution point. Relative gradient error is less than specified
+## Converged to a solution point.  Relative gradient error is less than specified
 ## by TolFun.
 ## @item 2
 ## Last relative step size was less that TolX.
--- a/scripts/optimization/glpk.m	Fri Oct 23 10:35:59 2009 +0200
+++ b/scripts/optimization/glpk.m	Fri Oct 23 09:28:14 2009 -0700
@@ -141,7 +141,7 @@
 ## Integer parameters:
 ## 
 ## @table @code
-## @item msglev (@code{LPX_K_MSGLEV}, default: 1)
+## @item msglev (@w{@code{LPX_K_MSGLEV}}, default: 1)
 ## Level of messages output by solver routines:
 ## @table @asis
 ## @item 0
@@ -154,7 +154,7 @@
 ## Full output (includes informational messages).
 ## @end table
 ## 
-## @item scale (@code{LPX_K_SCALE}, default: 1)
+## @item scale (@w{@code{LPX_K_SCALE}}, default: 1)
 ## Scaling option: 
 ## @table @asis
 ## @item 0
@@ -165,7 +165,7 @@
 ## Geometric mean scaling, then equilibration scaling.
 ## @end table
 ## 
-## @item dual	 (@code{LPX_K_DUAL}, default: 0)
+## @item dual	 (@w{@code{LPX_K_DUAL}}, default: 0)
 ## Dual simplex option:
 ## @table @asis
 ## @item 0
@@ -174,7 +174,7 @@
 ## If initial basic solution is dual feasible, use the dual simplex.
 ## @end table
 ## 
-## @item price	 (@code{LPX_K_PRICE}, default: 1)
+## @item price	 (@w{@code{LPX_K_PRICE}}, default: 1)
 ## Pricing option (for both primal and dual simplex):
 ## @table @asis
 ## @item 0
@@ -183,7 +183,7 @@
 ## Steepest edge pricing.
 ## @end table
 ##   
-## @item round	 (@code{LPX_K_ROUND}, default: 0)
+## @item round	 (@w{@code{LPX_K_ROUND}}, default: 0)
 ## Solution rounding option:
 ## @table @asis
 ## @item 0
@@ -192,18 +192,18 @@
 ## Replace tiny primal and dual values by exact zero.
 ## @end table
 ## 
-## @item itlim	 (@code{LPX_K_ITLIM}, default: -1)
+## @item itlim	 (@w{@code{LPX_K_ITLIM}}, default: -1)
 ## Simplex iterations limit.  If this value is positive, it is decreased by
 ## one each time when one simplex iteration has been performed, and
 ## reaching zero value signals the solver to stop the search.  Negative
 ## value means no iterations limit.
 ## 
-## @item itcnt (@code{LPX_K_OUTFRQ}, default: 200)
+## @item itcnt (@w{@code{LPX_K_OUTFRQ}}, default: 200)
 ## Output frequency, in iterations.  This parameter specifies how
 ## frequently the solver sends information about the solution to the
 ## standard output.
 ## 
-## @item branch (@code{LPX_K_BRANCH}, default: 2)
+## @item branch (@w{@code{LPX_K_BRANCH}}, default: 2)
 ## Branching heuristic option (for MIP only):
 ## @table @asis
 ## @item 0
@@ -214,7 +214,7 @@
 ## Branch using a heuristic by Driebeck and Tomlin.
 ## @end table
 ## 
-## @item btrack (@code{LPX_K_BTRACK}, default: 2)
+## @item btrack (@w{@code{LPX_K_BTRACK}}, default: 2)
 ## Backtracking heuristic option (for MIP only):
 ## @table @asis
 ## @item 0
@@ -225,7 +225,7 @@
 ## Backtrack using the best projection heuristic.
 ## @end table        
 ## 
-## @item presol (@code{LPX_K_PRESOL}, default: 1)
+## @item presol (@w{@code{LPX_K_PRESOL}}, default: 1)
 ## If this flag is set, the routine lpx_simplex solves the problem using
 ## the built-in LP presolver.  Otherwise the LP presolver is not used.
 ## 
@@ -247,7 +247,7 @@
 ## Real parameters:
 ## 
 ## @table @code
-## @item relax (@code{LPX_K_RELAX}, default: 0.07)
+## @item relax (@w{@code{LPX_K_RELAX}}, default: 0.07)
 ## Relaxation parameter used in the ratio test.  If it is zero, the textbook
 ## ratio test is used.  If it is non-zero (should be positive), Harris'
 ## two-pass ratio test is used.  In the latter case on the first pass of the
@@ -257,48 +257,48 @@
 ## @code{relax*tolbnd} or @code{relax*toldj (thus, @code{relax} is a
 ## percentage of @code{tolbnd} or @code{toldj}}.
 ## 
-## @item tolbnd (@code{LPX_K_TOLBND}, default: 10e-7)
+## @item tolbnd (@w{@code{LPX_K_TOLBND}}, default: 10e-7)
 ## Relative tolerance used to check if the current basic solution is primal
 ## feasible.  It is not recommended that you change this parameter unless you
 ## have a detailed understanding of its purpose.
 ## 
-## @item toldj (@code{LPX_K_TOLDJ}, default: 10e-7)
+## @item toldj (@w{@code{LPX_K_TOLDJ}}, default: 10e-7)
 ## Absolute tolerance used to check if the current basic solution is dual
 ## feasible.  It is not recommended that you change this parameter unless you
 ## have a detailed understanding of its purpose.
 ## 
-## @item tolpiv (@code{LPX_K_TOLPIV}, default: 10e-9)
+## @item tolpiv (@w{@code{LPX_K_TOLPIV}}, default: 10e-9)
 ## Relative tolerance used to choose eligible pivotal elements of the
 ## simplex table.  It is not recommended that you change this parameter unless you
 ## have a detailed understanding of its purpose.
 ## 
-## @item objll (@code{LPX_K_OBJLL}, default: -DBL_MAX)
+## @item objll (@w{@code{LPX_K_OBJLL}}, default: -DBL_MAX)
 ## Lower limit of the objective function.  If on the phase II the objective
 ## function reaches this limit and continues decreasing, the solver stops
 ## the search.  This parameter is used in the dual simplex method only.
 ## 
-## @item objul (@code{LPX_K_OBJUL}, default: +DBL_MAX)
+## @item objul (@w{@code{LPX_K_OBJUL}}, default: +DBL_MAX)
 ## Upper limit of the objective function.  If on the phase II the objective
 ## function reaches this limit and continues increasing, the solver stops
 ## the search.  This parameter is used in the dual simplex only.
 ## 
-## @item tmlim (@code{LPX_K_TMLIM}, default: -1.0)
+## @item tmlim (@w{@code{LPX_K_TMLIM}}, default: -1.0)
 ## Searching time limit, in seconds.  If this value is positive, it is
 ## decreased each time when one simplex iteration has been performed by the
 ## amount of time spent for the iteration, and reaching zero value signals
 ## the solver to stop the search.  Negative value means no time limit.
 ## 
-## @item outdly (@code{LPX_K_OUTDLY}, default: 0.0)
+## @item outdly (@w{@code{LPX_K_OUTDLY}}, default: 0.0)
 ## Output delay, in seconds.  This parameter specifies how long the solver
 ## should delay sending information about the solution to the standard
 ## output.  Non-positive value means no delay.
 ## 
-## @item tolint (@code{LPX_K_TOLINT}, default: 10e-5)
+## @item tolint (@w{@code{LPX_K_TOLINT}}, default: 10e-5)
 ## Relative tolerance used to check if the current basic solution is integer
 ## feasible.  It is not recommended that you change this parameter unless
 ## you have a detailed understanding of its purpose.
 ## 
-## @item tolobj (@code{LPX_K_TOLOBJ}, default: 10e-7)
+## @item tolobj (@w{@code{LPX_K_TOLOBJ}}, default: 10e-7)
 ## Relative tolerance used to check if the value of the objective function
 ## is not better than in the best known integer feasible solution.  It is
 ## not recommended that you change this parameter unless you have a
@@ -318,35 +318,35 @@
 ## 
 ## Simplex Method:
 ## @table @asis
-## @item 180 (@code{LPX_OPT})
+## @item 180 (@w{@code{LPX_OPT}})
 ## Solution is optimal.
-## @item 181 (@code{LPX_FEAS})
+## @item 181 (@w{@code{LPX_FEAS}})
 ## Solution is feasible.
-## @item 182 (@code{LPX_INFEAS})
+## @item 182 (@w{@code{LPX_INFEAS}})
 ## Solution is infeasible.
-## @item 183 (@code{LPX_NOFEAS})
+## @item 183 (@w{@code{LPX_NOFEAS}})
 ## Problem has no feasible solution.
-## @item 184 (@code{LPX_UNBND})
+## @item 184 (@w{@code{LPX_UNBND}})
 ## Problem has no unbounded solution.
-## @item 185 (@code{LPX_UNDEF})
+## @item 185 (@w{@code{LPX_UNDEF}})
 ## Solution status is undefined.
 ## @end table
 ## Interior Point Method:
 ## @table @asis
-## @item 150 (@code{LPX_T_UNDEF})
+## @item 150 (@w{@code{LPX_T_UNDEF}})
 ## The interior point method is undefined.
-## @item 151 (@code{LPX_T_OPT})
+## @item 151 (@w{@code{LPX_T_OPT}})
 ## The interior point method is optimal.
 ## @end table
 ## Mixed Integer Method:
 ## @table @asis
-## @item 170 (@code{LPX_I_UNDEF})
+## @item 170 (@w{@code{LPX_I_UNDEF}})
 ## The status is undefined.
-## @item 171 (@code{LPX_I_OPT})
+## @item 171 (@w{@code{LPX_I_OPT}})
 ## The solution is integer optimal.
-## @item 172 (@code{LPX_I_FEAS})
+## @item 172 (@w{@code{LPX_I_FEAS}})
 ## Solution integer feasible but its optimality has not been proven
-## @item 173 (@code{LPX_I_NOFEAS})
+## @item 173 (@w{@code{LPX_I_NOFEAS}})
 ## No integer feasible solution.
 ## @end table
 ## @noindent
@@ -354,27 +354,27 @@
 ## codes:
 ##
 ## @table @asis
-## @item 204 (@code{LPX_E_FAULT})
+## @item 204 (@w{@code{LPX_E_FAULT}})
 ## Unable to start the search.
-## @item 205 (@code{LPX_E_OBJLL})
+## @item 205 (@w{@code{LPX_E_OBJLL}})
 ## Objective function lower limit reached.
-## @item 206 (@code{LPX_E_OBJUL})
+## @item 206 (@w{@code{LPX_E_OBJUL}})
 ## Objective function upper limit reached.
-## @item 207 (@code{LPX_E_ITLIM})
+## @item 207 (@w{@code{LPX_E_ITLIM}})
 ## Iterations limit exhausted.
-## @item 208 (@code{LPX_E_TMLIM})
+## @item 208 (@w{@code{LPX_E_TMLIM}})
 ## Time limit exhausted.
-## @item 209 (@code{LPX_E_NOFEAS})
+## @item 209 (@w{@code{LPX_E_NOFEAS}})
 ## No feasible solution.
-## @item 210 (@code{LPX_E_INSTAB})
+## @item 210 (@w{@code{LPX_E_INSTAB}})
 ## Numerical instability.
-## @item 211 (@code{LPX_E_SING})
+## @item 211 (@w{@code{LPX_E_SING}})
 ## Problems with basis matrix.
-## @item 212 (@code{LPX_E_NOCONV})
+## @item 212 (@w{@code{LPX_E_NOCONV}})
 ## No convergence (interior).
-## @item 213 (@code{LPX_E_NOPFS})
+## @item 213 (@w{@code{LPX_E_NOPFS}})
 ## No primal feasible solution (LP presolver).
-## @item 214 (@code{LPX_E_NODFS})
+## @item 214 (@w{@code{LPX_E_NODFS}})
 ## No dual feasible solution (LP presolver).
 ## @end table
 ## @item extra
@@ -410,7 +410,7 @@
 ## param.msglev = 1;
 ## param.itlim = 100;
 ## 
-## [xmin, fmin, status, extra] = @dots{}
+## [xmin, fmin, status, extra] = ...
 ##    glpk (c, a, b, lb, ub, ctype, vartype, s, param);
 ## @end group
 ## @end example
--- a/scripts/plot/__marching_cube__.m	Fri Oct 23 10:35:59 2009 +0200
+++ b/scripts/plot/__marching_cube__.m	Fri Oct 23 09:28:14 2009 -0700
@@ -35,14 +35,15 @@
 ## whereas computed vertices color data @var{c} is returned as third
 ## argument.
 ##
-## The marching cube algorithm is well known and described eg. at
-## Wikipedia. The triangulation lookup table and the edge table used
+## The marching cube algorithm is well known and described, for example, at
+## Wikipedia.  The triangulation lookup table and the edge table used
 ## here are based on Cory Gene Bloyd's implementation and can be found
 ## beyond other surface and geometry stuff at Paul Bourke's website
 ## @uref{http://local.wasp.uwa.edu.au/~pbourke/geometry/polygonise}.
 ##
 ## For example,
 ## @example
+## @group
 ## N = 20;
 ## lin = linspace(0, 2, N);
 ## [x, y, z] = meshgrid (lin, lin, lin);
@@ -52,12 +53,14 @@
 ##
 ## figure ();
 ## trimesh (t, p(:,1), p(:,2), p(:,3));
+## @end group
 ## @end example
 ##
 ## Instead of the @command{trimesh} function the @command{patch}
-## function can be used to visualize the geometry. For example,
+## function can be used to visualize the geometry.  For example,
 ##
 ## @example
+## @group
 ## figure (); view (-38, 20);
 ## pa = patch ("Faces", t, "Vertices", p, "FaceVertexCData", p, \
 ##             "FaceColor", "interp", "EdgeColor", "none");
@@ -68,6 +71,7 @@
 ## ## Set lightning (available with the JHandles package)
 ## # set (pa, "FaceLighting", "gouraud");
 ## # light( "Position", [1 1 5]);
+## @end group
 ## @end example
 ##
 ## @end deftypefn
--- a/scripts/plot/contourc.m	Fri Oct 23 10:35:59 2009 +0200
+++ b/scripts/plot/contourc.m	Fri Oct 23 09:28:14 2009 -0700
@@ -27,7 +27,7 @@
 ##
 ## @example
 ## @group
-## @var{c} = [lev1, x1, x2, @dots{}, levn, x1, x2, @dots{} 
+## @var{c} = [lev1, x1, x2, @dots{}, levn, x1, x2, ... 
 ##      len1, y1, y2, @dots{}, lenn, y1, y2, @dots{}]
 ## @end group
 ## @end example
--- a/scripts/plot/isosurface.m	Fri Oct 23 10:35:59 2009 +0200
+++ b/scripts/plot/isosurface.m	Fri Oct 23 09:28:14 2009 -0700
@@ -36,7 +36,7 @@
 ## then the volume data is taken at those given points.
 ##
 ## The string input argument "noshare" is only for compatibility and
-## has no effect. If given the string input argument
+## has no effect.  If given the string input argument
 ## "verbose" then print messages to the command line interface about the
 ## current progress.
 ##
@@ -56,9 +56,11 @@
 ## For example
 ##
 ## @example
+## @group
 ## [x, y, z] = meshgrid (1:5, 1:5, 1:5);
 ## val = rand (5, 5, 5);
 ## isosurface (x, y, z, val, .5);
+## @end group
 ## @end example
 ##
 ## will directly draw a random isosurface geometry in a graphics window.
--- a/scripts/plot/print.m	Fri Oct 23 10:35:59 2009 +0200
+++ b/scripts/plot/print.m	Fri Oct 23 09:28:14 2009 -0700
@@ -71,7 +71,7 @@
 ## be included in a @LaTeX{} (or @TeX{}) document.  The @code{tex} device
 ## is the same as the @code{epslatex} device.
 ##   @item tikz
-##     Generate a LaTeX file using gnuplot's Lua/TikZ terminal.
+##     Generate a @LaTeX{} file using gnuplot's Lua/TikZ terminal.
 ##   @item ill
 ##   @itemx aifm
 ##     Adobe Illustrator
--- a/scripts/plot/xlabel.m	Fri Oct 23 10:35:59 2009 +0200
+++ b/scripts/plot/xlabel.m	Fri Oct 23 09:28:14 2009 -0700
@@ -22,7 +22,7 @@
 ## @deftypefnx {Function File} {} ylabel (@var{string})
 ## @deftypefnx {Function File} {} zlabel (@var{string})
 ## @deftypefnx {Function File} {} xlabel (@var{h}, @var{string})
-## Specify x, y, and z axis labels for the current figure.  If @var{h} is
+## Specify x-, y-, and z-axis labels for the current figure.  If @var{h} is
 ## specified then label the axis defined by @var{h}.
 ## @seealso{plot, semilogx, semilogy, loglog, polar, mesh, contour,
 ## bar, stairs, title}
--- a/scripts/polynomial/polyaffine.m	Fri Oct 23 10:35:59 2009 +0200
+++ b/scripts/polynomial/polyaffine.m	Fri Oct 23 09:28:14 2009 -0700
@@ -16,7 +16,7 @@
 ## -*- texinfo -*-
 ## @deftypefn {Function File} {} polyaffine (@var{f}, @var{mu})
 ## Return the coefficients of the polynomial whose coefficients are given by
-## vector @var{f} after an affine tranformation. If @var{f} is the vector
+## vector @var{f} after an affine tranformation.  If @var{f} is the vector
 ## representing the polynomial f(x), then @var{g} = polytrans (@var{f},
 ## @var{mu}) is the vector representing 
 ## @example
--- a/src/DLD-FUNCTIONS/betainc.cc	Fri Oct 23 10:35:59 2009 +0200
+++ b/src/DLD-FUNCTIONS/betainc.cc	Fri Oct 23 09:28:14 2009 -0700
@@ -37,13 +37,11 @@
   "-*- texinfo -*-\n\
 @deftypefn {Mapping Function} {} betainc (@var{x}, @var{a}, @var{b})\n\
 Return the incomplete Beta function,\n\
-@iftex\n\
 @tex\n\
 $$\n\
  \\beta (x, a, b) = B (a, b)^{-1} \\int_0^x t^{(a-z)} (1-t)^{(b-1)} dt.\n\
 $$\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 \n\
 @c Set example in small font to prevent overfull line\n\
--- a/src/DLD-FUNCTIONS/chol.cc	Fri Oct 23 10:35:59 2009 +0200
+++ b/src/DLD-FUNCTIONS/chol.cc	Fri Oct 23 09:28:14 2009 -0700
@@ -63,11 +63,9 @@
 @cindex Cholesky factorization\n\
 Compute the Cholesky factor, @var{r}, of the symmetric positive definite\n\
 matrix @var{a}, where\n\
-@iftex\n\
 @tex\n\
 $ R^T R = A $.\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 \n\
 @example\n\
@@ -84,11 +82,9 @@
 If called with 3 outputs then a sparsity preserving row/column permutation\n\
 is applied to @var{a} prior to the factorization.  That is @var{r}\n\
 is the factorization of @code{@var{a}(@var{q},@var{q})} such that\n\
-@iftex\n\
 @tex\n\
 $ R^T R = Q^T A Q$.\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 \n\
 @example\n\
@@ -99,11 +95,9 @@
 The sparsity preserving permutation is generally returned as a matrix.\n\
 However, given the flag 'vector', @var{q} will be returned as a vector\n\
 such that\n\
-@iftex\n\
 @tex\n\
 $ R^T R = A (Q, Q)$.\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 \n\
 @example\n\
@@ -113,11 +107,9 @@
 \n\
 Called with either a sparse or full matrix and using the 'lower' flag,\n\
 @code{chol} returns the lower triangular factorization such that\n\
-@iftex\n\
 @tex\n\
 $ L L^T = A $.\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 \n\
 @example\n\
--- a/src/DLD-FUNCTIONS/dassl.cc	Fri Oct 23 10:35:59 2009 +0200
+++ b/src/DLD-FUNCTIONS/dassl.cc	Fri Oct 23 09:28:14 2009 -0700
@@ -180,13 +180,11 @@
   "-*- texinfo -*-\n\
 @deftypefn {Loadable Function} {[@var{x}, @var{xdot}, @var{istate}, @var{msg}] =} dassl (@var{fcn}, @var{x_0}, @var{xdot_0}, @var{t}, @var{t_crit})\n\
 Solve the set of differential-algebraic equations\n\
-@iftex\n\
 @tex\n\
 $$ 0 = f (x, \\dot{x}, t) $$\n\
 with\n\
 $$ x(t_0) = x_0, \\dot{x}(t_0) = \\dot{x}_0 $$\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 \n\
 @example\n\
@@ -226,14 +224,12 @@
 the function @math{f} described above, and the second element names a\n\
 function to compute the modified Jacobian\n\
 \n\
-@iftex\n\
 @tex\n\
 $$\n\
 J = {\\partial f \\over \\partial x}\n\
   + c {\\partial f \\over \\partial \\dot{x}}\n\
 $$\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 @example\n\
 @group\n\
--- a/src/DLD-FUNCTIONS/eigs.cc	Fri Oct 23 10:35:59 2009 +0200
+++ b/src/DLD-FUNCTIONS/eigs.cc	Fri Oct 23 09:28:14 2009 -0700
@@ -240,7 +240,7 @@
 default value is @code{2 * @var{k}}.\n\
 \n\
 @item v0\n\
-The starting vector for the computation.  The default is to have @sc{Arpack}\n\
+The starting vector for the computation.  The default is to have @sc{arpack}\n\
 randomly generate a starting vector.\n\
 \n\
 @item disp\n\
--- a/src/DLD-FUNCTIONS/filter.cc	Fri Oct 23 10:35:59 2009 +0200
+++ b/src/DLD-FUNCTIONS/filter.cc	Fri Oct 23 09:28:14 2009 -0700
@@ -286,14 +286,12 @@
 @deftypefnx {Loadable Function} {[@var{y}, @var{sf}] =} filter (@var{b}, @var{a}, @var{x}, @var{si}, @var{dim})\n\
 Return the solution to the following linear, time-invariant difference\n\
 equation:\n\
-@iftex\n\
 @tex\n\
 $$\n\
 \\sum_{k=0}^N a_{k+1} y_{n-k} = \\sum_{k=0}^M b_{k+1} x_{n-k}, \\qquad\n\
  1 \\le n \\le P\n\
 $$\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 \n\
 @c Set example in small font to prevent overfull line\n\
@@ -309,21 +307,17 @@
 @ifnottex\n\
  N=length(a)-1 and M=length(b)-1.\n\
 @end ifnottex\n\
-@iftex\n\
 @tex\n\
  $a \\in \\Re^{N-1}$, $b \\in \\Re^{M-1}$, and $x \\in \\Re^P$.\n\
 @end tex\n\
-@end iftex\n\
 over the first non-singleton dimension of @var{x} or over @var{dim} if\n\
 supplied.  An equivalent form of this equation is:\n\
-@iftex\n\
 @tex\n\
 $$\n\
 y_n = -\\sum_{k=1}^N c_{k+1} y_{n-k} + \\sum_{k=0}^M d_{k+1} x_{n-k}, \\qquad\n\
  1 \\le n \\le P\n\
 $$\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 \n\
 @c Set example in small font to prevent overfull line\n\
@@ -339,11 +333,9 @@
 @ifnottex\n\
  c = a/a(1) and d = b/a(1).\n\
 @end ifnottex\n\
-@iftex\n\
 @tex\n\
 $c = a/a_1$ and $d = b/a_1$.\n\
 @end tex\n\
-@end iftex\n\
 \n\
 If the fourth argument @var{si} is provided, it is taken as the\n\
 initial state of the system and the final state is returned as\n\
@@ -355,14 +347,12 @@
 In terms of the z-transform, y is the result of passing the discrete-\n\
 time signal x through a system characterized by the following rational\n\
 system function:\n\
-@iftex\n\
 @tex\n\
 $$\n\
 H(z) = {\\displaystyle\\sum_{k=0}^M d_{k+1} z^{-k}\n\
         \\over 1 + \\displaystyle\\sum_{k+1}^N c_{k+1} z^{-k}}\n\
 $$\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 \n\
 @example\n\
--- a/src/DLD-FUNCTIONS/fltk_backend.cc	Fri Oct 23 10:35:59 2009 +0200
+++ b/src/DLD-FUNCTIONS/fltk_backend.cc	Fri Oct 23 09:28:14 2009 -0700
@@ -967,7 +967,7 @@
 DEFUN_DLD (fltk_mouse_wheel_zoom, args, ,
 "-*- texinfo -*-\n\
 @deftypefn {Built-in Function} {} fltk_mouse_wheel_zoom ([@var{speed}])\n\
-Returns the current mouse wheel zoom factor in the fltk backend. If\n\
+Returns the current mouse wheel zoom factor in the fltk backend.  If\n\
 the @var{speed} argument is given, set the mouse zoom factor to this\n\
 value.\n\
 @end deftypefn")
--- a/src/DLD-FUNCTIONS/gammainc.cc	Fri Oct 23 10:35:59 2009 +0200
+++ b/src/DLD-FUNCTIONS/gammainc.cc	Fri Oct 23 09:28:14 2009 -0700
@@ -37,13 +37,11 @@
   "-*- texinfo -*-\n\
 @deftypefn {Mapping Function} {} gammainc (@var{x}, @var{a})\n\
 Compute the normalized incomplete gamma function,\n\
-@iftex\n\
 @tex\n\
 $$\n\
  \\gamma (x, a) = {\\displaystyle\\int_0^x e^{-t} t^{a-1} dt \\over \\Gamma (a)}\n\
 $$\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 \n\
 @smallexample\n\
--- a/src/DLD-FUNCTIONS/givens.cc	Fri Oct 23 10:35:59 2009 +0200
+++ b/src/DLD-FUNCTIONS/givens.cc	Fri Oct 23 09:28:14 2009 -0700
@@ -35,7 +35,6 @@
   "-*- texinfo -*-\n\
 @deftypefn {Loadable Function} {@var{g} =} givens (@var{x}, @var{y})\n\
 @deftypefnx {Loadable Function} {[@var{c}, @var{s}] =} givens (@var{x}, @var{y})\n\
-@iftex\n\
 @tex\n\
 Return a $2\\times 2$ orthogonal matrix\n\
 $$\n\
@@ -47,7 +46,6 @@
 $$\n\
 with $x$ and $y$ scalars.\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 Return a 2 by 2 orthogonal matrix\n\
 @code{@var{g} = [@var{c} @var{s}; -@var{s}' @var{c}]} such that\n\
--- a/src/DLD-FUNCTIONS/hess.cc	Fri Oct 23 10:35:59 2009 +0200
+++ b/src/DLD-FUNCTIONS/hess.cc	Fri Oct 23 09:28:14 2009 -0700
@@ -47,7 +47,6 @@
 eigenvalue computation, but has other applications as well (see Golub,\n\
 Nash, and Van Loan, IEEE Transactions on Automatic Control, 1979).  The\n\
 Hessenberg decomposition is\n\
-@iftex\n\
 @tex\n\
 $$\n\
 A = PHP^T\n\
@@ -55,7 +54,6 @@
 where $P$ is a square unitary matrix ($P^HP = I$), and $H$\n\
 is upper Hessenberg ($H_{i,j} = 0, \\forall i \\ge j+1$).\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 @code{p * h * p' = a} where @code{p} is a square unitary matrix\n\
 (@code{p' * p = I}, using complex-conjugate transposition) and @code{h}\n\
--- a/src/DLD-FUNCTIONS/matrix_type.cc	Fri Oct 23 10:35:59 2009 +0200
+++ b/src/DLD-FUNCTIONS/matrix_type.cc	Fri Oct 23 09:28:14 2009 -0700
@@ -51,7 +51,7 @@
 of the matrix to be defined.\n\
 \n\
 If the option 'nocompute' is given, the function will not attempt to guess the type if it is\n\
-still unknown. This is useful for debugging purposes.\n\
+still unknown.  This is useful for debugging purposes.\n\
 \n\
 The possible matrix types depend on whether the matrix is full or sparse, and can be\n\
 one of the following\n\
--- a/src/DLD-FUNCTIONS/qr.cc	Fri Oct 23 10:35:59 2009 +0200
+++ b/src/DLD-FUNCTIONS/qr.cc	Fri Oct 23 09:28:14 2009 -0700
@@ -103,13 +103,11 @@
 \n\
 The @code{qr} factorization has applications in the solution of least\n\
 squares problems\n\
-@iftex\n\
 @tex\n\
 $$\n\
 \\min_x \\left\\Vert A x - b \\right\\Vert_2\n\
 $$\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 \n\
 @example\n\
@@ -118,20 +116,16 @@
 \n\
 @end ifnottex\n\
 for overdetermined systems of equations (i.e.,\n\
-@iftex\n\
 @tex\n\
 $A$\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 @code{a}\n\
 @end ifnottex\n\
  is a tall, thin matrix).  The QR factorization is\n\
-@iftex\n\
 @tex\n\
 $QR = A$ where $Q$ is an orthogonal matrix and $R$ is upper triangular.\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 @code{q * r = a} where @code{q} is an orthogonal matrix and @code{r} is\n\
 upper triangular.\n\
--- a/src/DLD-FUNCTIONS/qz.cc	Fri Oct 23 10:35:59 2009 +0200
+++ b/src/DLD-FUNCTIONS/qz.cc	Fri Oct 23 09:28:14 2009 -0700
@@ -213,11 +213,9 @@
 @item @code{lambda = qz(A,B)}\n\
 \n\
 Computes the generalized eigenvalues\n\
-@iftex\n\
 @tex\n\
 $\\lambda$\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 @var{lambda}\n\
 @end ifnottex\n\
@@ -226,13 +224,11 @@
 \n\
 Computes qz decomposition, generalized eigenvectors, and \n\
 generalized eigenvalues of @math{(A - sB)}\n\
-@iftex\n\
 @tex\n\
 $$ AV = BV{ \\rm diag }(\\lambda) $$\n\
 $$ W^T A = { \\rm diag }(\\lambda)W^T B $$\n\
 $$ AA = Q^T AZ, BB = Q^T BZ $$\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 @example\n\
 @group\n\
--- a/src/DLD-FUNCTIONS/rand.cc	Fri Oct 23 10:35:59 2009 +0200
+++ b/src/DLD-FUNCTIONS/rand.cc	Fri Oct 23 09:28:14 2009 -0700
@@ -1025,8 +1025,8 @@
 @deftypefnx {Loadable Function} {} randperm (@var{n}, @var{m})\n\
 Return a row vector containing a random permutation of @code{1:@var{n}}.\n\
 If @var{m} is supplied, return @var{m} permutations,\n\
-one in each row of a NxM matrix. The complexity is O(M*N) in both time and\n\
-memory. The randomization is performed using rand().\n\
+one in each row of a NxM matrix.  The complexity is O(M*N) in both time and\n\
+memory.  The randomization is performed using rand().\n\
 All permutations are equally likely.\n\
 @seealso{perms}\n\
 @end deftypefn")
--- a/src/DLD-FUNCTIONS/schur.cc	Fri Oct 23 10:35:59 2009 +0200
+++ b/src/DLD-FUNCTIONS/schur.cc	Fri Oct 23 09:28:14 2009 -0700
@@ -47,131 +47,103 @@
 square matrix, and has applications in the solution of algebraic\n\
 Riccati equations in control (see @code{are} and @code{dare}).\n\
 @code{schur} always returns\n\
-@iftex\n\
 @tex\n\
 $S = U^T A U$\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 @code{s = u' * a * u}\n\
 @end ifnottex\n\
 where\n\
-@iftex\n\
 @tex\n\
 $U$\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 @code{u}\n\
 @end ifnottex\n\
  is a unitary matrix\n\
-@iftex\n\
 @tex\n\
 ($U^T U$ is identity)\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 (@code{u'* u} is identity)\n\
 @end ifnottex\n\
 and\n\
-@iftex\n\
 @tex\n\
 $S$\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 @code{s}\n\
 @end ifnottex\n\
 is upper triangular.  The eigenvalues of\n\
-@iftex\n\
 @tex\n\
 $A$ (and $S$)\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 @code{a} (and @code{s})\n\
 @end ifnottex\n\
 are the diagonal elements of\n\
-@iftex\n\
 @tex\n\
 $S$.\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 @code{s}.\n\
 @end ifnottex\n\
 If the matrix\n\
-@iftex\n\
 @tex\n\
 $A$\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 @code{a}\n\
 @end ifnottex\n\
 is real, then the real Schur decomposition is computed, in which the\n\
 matrix\n\
-@iftex\n\
 @tex\n\
 $U$\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 @code{u}\n\
 @end ifnottex\n\
 is orthogonal and\n\
-@iftex\n\
 @tex\n\
 $S$\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 @code{s}\n\
 @end ifnottex\n\
 is block upper triangular\n\
 with blocks of size at most\n\
-@iftex\n\
 @tex\n\
 $2\\times 2$\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 @code{2 x 2}\n\
 @end ifnottex\n\
 along the diagonal.  The diagonal elements of\n\
-@iftex\n\
 @tex\n\
 $S$\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 @code{s}\n\
 @end ifnottex\n\
 (or the eigenvalues of the\n\
-@iftex\n\
 @tex\n\
 $2\\times 2$\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 @code{2 x 2}\n\
 @end ifnottex\n\
 blocks, when\n\
 appropriate) are the eigenvalues of\n\
-@iftex\n\
 @tex\n\
 $A$\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 @code{a}\n\
 @end ifnottex\n\
 and\n\
-@iftex\n\
 @tex\n\
 $S$.\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 @code{s}.\n\
 @end ifnottex\n\
@@ -180,67 +152,53 @@
 the value of @code{opt}.  @code{opt = \"a\"} indicates that all\n\
 eigenvalues with negative real parts should be moved to the leading\n\
 block of\n\
-@iftex\n\
 @tex\n\
 $S$\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 @code{s}\n\
 @end ifnottex\n\
 (used in @code{are}), @code{opt = \"d\"} indicates that all eigenvalues\n\
 with magnitude less than one should be moved to the leading block of\n\
-@iftex\n\
 @tex\n\
 $S$\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 @code{s}\n\
 @end ifnottex\n\
 (used in @code{dare}), and @code{opt = \"u\"}, the default, indicates that\n\
 no ordering of eigenvalues should occur.  The leading\n\
-@iftex\n\
 @tex\n\
 $k$\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 @code{k}\n\
 @end ifnottex\n\
 columns of\n\
-@iftex\n\
 @tex\n\
 $U$\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 @code{u}\n\
 @end ifnottex\n\
 always span the\n\
-@iftex\n\
 @tex\n\
 $A$-invariant\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 @code{a}-invariant\n\
 @end ifnottex\n\
 subspace corresponding to the\n\
-@iftex\n\
 @tex\n\
 $k$\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 @code{k}\n\
 @end ifnottex\n\
 leading eigenvalues of\n\
-@iftex\n\
 @tex\n\
 $S$.\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 @code{s}.\n\
 @end ifnottex\n\
--- a/src/DLD-FUNCTIONS/svd.cc	Fri Oct 23 10:35:59 2009 +0200
+++ b/src/DLD-FUNCTIONS/svd.cc	Fri Oct 23 09:28:14 2009 -0700
@@ -43,13 +43,11 @@
 @deftypefnx {Loadable Function} {[@var{u}, @var{s}, @var{v}] =} svd (@var{a})\n\
 @cindex singular value decomposition\n\
 Compute the singular value decomposition of @var{a}\n\
-@iftex\n\
 @tex\n\
 $$\n\
  A = U S V^H\n\
 $$\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 \n\
 @example\n\
@@ -59,11 +57,9 @@
 \n\
 The function @code{svd} normally returns the vector of singular values.\n\
 If asked for three return values, it computes\n\
-@iftex\n\
 @tex\n\
 $U$, $S$, and $V$.\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 U, S, and V.\n\
 @end ifnottex\n\
--- a/src/DLD-FUNCTIONS/syl.cc	Fri Oct 23 10:35:59 2009 +0200
+++ b/src/DLD-FUNCTIONS/syl.cc	Fri Oct 23 09:28:14 2009 -0700
@@ -37,13 +37,11 @@
   "-*- texinfo -*-\n\
 @deftypefn {Loadable Function} {@var{x} =} syl (@var{a}, @var{b}, @var{c})\n\
 Solve the Sylvester equation\n\
-@iftex\n\
 @tex\n\
 $$\n\
  A X + X B + C = 0\n\
 $$\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 \n\
 @example\n\
--- a/src/DLD-FUNCTIONS/typecast.cc	Fri Oct 23 10:35:59 2009 +0200
+++ b/src/DLD-FUNCTIONS/typecast.cc	Fri Oct 23 09:28:14 2009 -0700
@@ -89,10 +89,11 @@
   "-*- texinfo -*-\n\
 @deftypefn {Loadable Function} {} typecast (@var{x}, @var{class})\n\
 Returns a new array @var{y} resulting from interpreting the data of\n\
-@var{x} in memory as data of the numeric class @var{class}. Both the class\n\
+@var{x} in memory as data of the numeric class @var{class}.  Both the class\n\
 of @var{x} and @var{class} must be one of the built-in numeric classes:\n\
 \n\
 @example\n\
+@group\n\
   \"logical\"\n\
   \"char\"\n\
   \"int8\"\n\
@@ -107,12 +108,13 @@
   \"single\"\n\
   \"double complex\"\n\
   \"single complex\"\n\
+@end group\n\
 @end example\n\
 \n\
 the last two are reserved for @var{class}; they indicate that a complex-valued result\n\
-is requested. Complex arrays are stored in memory as consecutive pairs of real numbers.\n\
-The sizes of integer types are given by their bit counts. Both logical and char are typically\n\
-one byte wide; however, this is not guaranteed by C++. If your system is IEEE conformant,\n\
+is requested.  Complex arrays are stored in memory as consecutive pairs of real numbers.\n\
+The sizes of integer types are given by their bit counts.  Both logical and char are typically\n\
+one byte wide; however, this is not guaranteed by C++.  If your system is IEEE conformant,\n\
 single and double should be 4 bytes and 8 bytes wide, respectively.\n\
 \"logical\" is not allowed for @var{class}.\n\
 If the input is a row vector, the return value is a row vector, otherwise it is a column vector.\n\
@@ -269,10 +271,11 @@
   "-*- texinfo -*-\n\
 @deftypefn {Loadable Function} {@var{y} =} bitpack (@var{x}, @var{class})\n\
 Returns a new array @var{y} resulting from interpreting a logical array @var{x}\n\
-as raw bit pattern for data of the numeric class @var{class}. @var{class} must be\n\
+as raw bit pattern for data of the numeric class @var{class}.  @var{class} must be\n\
 one of the built-in numeric classes:\n\
 \n\
 @example\n\
+@group\n\
   \"char\"\n\
   \"int8\"\n\
   \"int16\"\n\
@@ -284,10 +287,11 @@
   \"uint64\"\n\
   \"double\"\n\
   \"single\"\n\
+@end group\n\
 @end example\n\
 \n\
 The number of elements of @var{x} should be divisible by the bit length of @var{class}.\n\
-If it is not, excess bits are discarded. Bits come in increasing order of significance, i.e.\n\
+If it is not, excess bits are discarded.  Bits come in increasing order of significance, i.e.\n\
 @code{x(1)} is bit 0, @code{x(2)} is bit 1, etc.\n\
 The result is a row vector if @var{x} is a row vector, otherwise it is a column vector.\n\
 @seealso{bitunpack,typecast,bitget,bitset}\n\
@@ -378,6 +382,7 @@
 @var{x} must belong to one of the built-in numeric classes:\n\
 \n\
 @example\n\
+@group\n\
   \"char\"\n\
   \"int8\"\n\
   \"int16\"\n\
@@ -389,6 +394,7 @@
   \"uint64\"\n\
   \"double\"\n\
   \"single\"\n\
+@end group\n\
 @end example\n\
 \n\
 The result is a row vector if @var{x} is a row vector, otherwise it is a column vector.\n\
--- a/src/data.cc	Fri Oct 23 10:35:59 2009 +0200
+++ b/src/data.cc	Fri Oct 23 09:28:14 2009 -0700
@@ -2429,7 +2429,7 @@
   @var{a}(@var{idx1}, @var{idx2}, @dots{})\n\
 @end example\n\
 This method is also called when an object appears as lvalue with cs-list\n\
-indexing, i.e. @code{object@{@dots{}@}} or @code{object(@dots{}).field}.\n\
+indexing, i.e., @code{object@{@dots{}@}} or @code{object(@dots{}).field}.\n\
 @seealso{size}\n\
 @end deftypefn")
 {
@@ -2675,8 +2675,8 @@
 even for single precision inputs.\n\
 \n\
 For double precision inputs, 'extra' indicates that a more accurate algorithm\n\
-than straightforward summation is to be used. For single precision inputs, 'extra' is\n\
-the same as 'double'. Otherwise, 'extra' has no effect.\n\
+than straightforward summation is to be used.  For single precision inputs, 'extra' is\n\
+the same as 'double'.  Otherwise, 'extra' has no effect.\n\
 @seealso{cumsum, sumsq, prod}\n\
 @end deftypefn")
 {
@@ -3000,9 +3000,11 @@
 For example:\n\
 \n\
 @example\n\
+@group\n\
 complex ([1, 2], [3, 4])\n\
 @result{}\n\
    1 + 3i   2 + 4i\n\
+@end group\n\
 @end example\n\
 @seealso{real, imag, iscomplex}\n\
 @end deftypefn")
@@ -4648,7 +4650,7 @@
 value of 100 is used.\n\
 \n\
 The @code{linspace} function always returns a row vector if both\n\
-@var{base} and @var{limit} are scalars. If one of them or both are column\n\
+@var{base} and @var{limit} are scalars.  If one of them or both are column\n\
 vectors, @code{linspace} returns a matrix.\n\
 \n\
 For compatibility with @sc{matlab}, return the second argument if\n\
@@ -6384,17 +6386,19 @@
 @deftypefn {Built-in Function} {} merge (@var{mask}, @var{tval}, @var{fval})\n\
 @deftypefnx {Built-in Function} {} ifelse (@var{mask}, @var{tval}, @var{fval})\n\
 Merges elements of @var{true_val} and @var{false_val}, depending on the value of\n\
-@var{mask}. If @var{mask} is a logical scalar, the other two arguments can be\n\
-arbitrary values. Otherwise, @var{mask} must be a logical array, and @var{tval},\n\
+@var{mask}.  If @var{mask} is a logical scalar, the other two arguments can be\n\
+arbitrary values.  Otherwise, @var{mask} must be a logical array, and @var{tval},\n\
 @var{fval} should be arrays of matching class, or cell arrays.\n\
 In the scalar mask case, @var{tval} is returned if @var{mask} is true, otherwise\n\
 @var{fval} is returned.\n\
 \n\
 In the array mask case, both @var{tval} and @var{fval} must be either scalars or\n\
-arrays with dimensions equal to @var{mask}. The result is constructed as follows:\n\
+arrays with dimensions equal to @var{mask}.  The result is constructed as follows:\n\
 @example\n\
+@group\n\
 result(mask) = tval(mask);\n\
 result(! mask) = fval(! mask);\n\
+@end group\n\
 @end example\n\
 \n\
 @var{mask} can also be arbitrary numeric type, in which case\n\
--- a/src/file-io.cc	Fri Oct 23 10:35:59 2009 +0200
+++ b/src/file-io.cc	Fri Oct 23 09:28:14 2009 -0700
@@ -399,7 +399,7 @@
 DEFUN (fskipl, args, ,
   "-*- texinfo -*-\n\
 @deftypefn {Built-in Function} {} fskipl (@var{fid}, @var{count})\n\
-Skips a given number of lines, i.e. discards characters until an end-of-line\n\
+Skips a given number of lines, i.e., discards characters until an end-of-line\n\
 is met exactly @var{count}-times, or end-of-file occurs.\n\
 Returns the number of lines skipped (end-of-line sequences encountered).\n\
 If @var{count} is omitted, it defaults to 1. @var{count} may also be\n\
--- a/src/mappers.cc	Fri Oct 23 10:35:59 2009 +0200
+++ b/src/mappers.cc	Fri Oct 23 09:28:14 2009 -0700
@@ -509,13 +509,11 @@
     "-*- texinfo -*-\n\
 @deftypefn {Mapping Function} {} erf (@var{z})\n\
 Computes the error function,\n\
-@iftex\n\
 @tex\n\
 $$\n\
  {\\rm erf} (z) = {2 \\over \\sqrt{\\pi}}\\int_0^z e^{-t^2} dt\n\
 $$\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 \n\
 @example\n\
@@ -574,11 +572,9 @@
     "-*- texinfo -*-\n\
 @deftypefn {Mapping Function} {} erfc (@var{z})\n\
 Computes the complementary error function,\n\
-@iftex\n\
 @tex\n\
 $1 - {\\rm erf} (z)$.\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 @code{1 - erf (@var{z})}.\n\
 @end ifnottex\n\
@@ -775,13 +771,11 @@
     "-*- texinfo -*-\n\
 @deftypefn {Mapping Function} {} gamma (@var{z})\n\
 Computes the Gamma function,\n\
-@iftex\n\
 @tex\n\
 $$\n\
  \\Gamma (z) = \\int_0^\\infty t^{z-1} e^{-t} dt.\n\
 $$\n\
 @end tex\n\
-@end iftex\n\
 @ifnottex\n\
 \n\
 @example\n\
--- a/src/pr-output.cc	Fri Oct 23 10:35:59 2009 +0200
+++ b/src/pr-output.cc	Fri Oct 23 09:28:14 2009 -0700
@@ -3586,7 +3586,7 @@
 @samp{e} format if it is unable to format a matrix properly using the\n\
 current format.\n\
 \n\
-@item  short e\n\
+@item short e\n\
 @itemx long e\n\
 Exponential format.  The number to be represented is split between a mantissa\n\
 and an exponent (power of 10).  The mantissa has 5 significant digits in the\n\
@@ -3594,14 +3594,14 @@
 For example, with the @samp{short e} format, @code{pi} is displayed as\n\
 @code{3.1416e+00}.\n\
 \n\
-@item  short E\n\
+@item short E\n\
 @itemx long E\n\
 Identical to @samp{short e} or @samp{long e} but displays an uppercase\n\
 @samp{E} to indicate the exponent.\n\
 For example, with the @samp{long E} format, @code{pi} is displayed as\n\
 @code{3.14159265358979E+00}.\n\
 \n\
-@item  short g\n\
+@item short g\n\
 @itemx long g\n\
 Optimally choose between fixed point and exponential format based on\n\
 the magnitude of the number.\n\
--- a/src/utils.cc	Fri Oct 23 10:35:59 2009 +0200
+++ b/src/utils.cc	Fri Oct 23 09:28:14 2009 -0700
@@ -1259,7 +1259,7 @@
 DEFUN (isindex, args, ,
   "-*- texinfo -*-\n\
 @deftypefn {Built-in Function} {} isindex (@var{ind}, @var{n})\n\
-Returns true if @var{ind} is a valid index. Valid indices can be\n\
+Returns true if @var{ind} is a valid index.  Valid indices can be\n\
 either positive integers (though possibly real data), or logical arrays.\n\
 If present, @var{n} specifies the extent of the dimension to be indexed.\n\
 Note that, if possible, the internal conversion result is cached so that\n\