diff --git a/manual/arith.texi b/manual/arith.texi
index f9296a3..0c182c5 100644
--- a/manual/arith.texi
+++ b/manual/arith.texi
@@ -996,31 +996,27 @@ down.
 various rounding modes.  Each one will be defined if and only if the FPU
 supports the corresponding rounding mode.
 
-@table @code
+@vtable @code
 @comment fenv.h
 @comment ISO
-@vindex FE_TONEAREST
 @item FE_TONEAREST
 Round to nearest.
 
 @comment fenv.h
 @comment ISO
-@vindex FE_UPWARD
 @item FE_UPWARD
 Round toward @math{+@infinity{}}.
 
 @comment fenv.h
 @comment ISO
-@vindex FE_DOWNWARD
 @item FE_DOWNWARD
 Round toward @math{-@infinity{}}.
 
 @comment fenv.h
 @comment ISO
-@vindex FE_TOWARDZERO
 @item FE_TOWARDZERO
 Round toward zero.
-@end table
+@end vtable
 
 Underflow is an unusual case.  Normally, @w{IEEE 754} floating point
 numbers are always normalized (@pxref{Floating Point Concepts}).
diff --git a/manual/filesys.texi b/manual/filesys.texi
index dc047c0..3880bc9 100644
--- a/manual/filesys.texi
+++ b/manual/filesys.texi
@@ -928,12 +928,10 @@ parameter to the function is a pointer to a variable of type
 int (*) (const char *, const struct stat *, int, struct FTW *)
 @end smallexample
 
-@vindex FTW_DP
-@vindex FTW_SLN
 The first three arguments are the same as for the @code{__ftw_func_t}
 type.  However for the third argument some additional values are defined
 to allow finer differentiation:
-@table @code
+@vtable @code
 @item FTW_DP
 The current item is a directory and all subdirectories have already been
 visited and reported.  This flag is returned instead of @code{FTW_D} if
@@ -941,7 +939,7 @@ the @code{FTW_DEPTH} flag is passed to @code{nftw} (see below).
 @item FTW_SLN
 The current item is a stale symbolic link.  The file it points to does
 not exist.
-@end table
+@end vtable
 
 The last parameter of the callback function is a pointer to a structure
 with some extra information as described below.
@@ -2209,49 +2207,42 @@ This is a bit mask used to extract the file type code from a mode value.
 
 These are the symbolic names for the different file type codes:
 
-@table @code
+@vtable @code
 @comment sys/stat.h
 @comment BSD
 @item S_IFDIR
-@vindex S_IFDIR
 This is the file type constant of a directory file.
 
 @comment sys/stat.h
 @comment BSD
 @item S_IFCHR
-@vindex S_IFCHR
 This is the file type constant of a character-oriented device file.
 
 @comment sys/stat.h
 @comment BSD
 @item S_IFBLK
-@vindex S_IFBLK
 This is the file type constant of a block-oriented device file.
 
 @comment sys/stat.h
 @comment BSD
 @item S_IFREG
-@vindex S_IFREG
 This is the file type constant of a regular file.
 
 @comment sys/stat.h
 @comment BSD
 @item S_IFLNK
-@vindex S_IFLNK
 This is the file type constant of a symbolic link.
 
 @comment sys/stat.h
 @comment BSD
 @item S_IFSOCK
-@vindex S_IFSOCK
 This is the file type constant of a socket.
 
 @comment sys/stat.h
 @comment BSD
 @item S_IFIFO
-@vindex S_IFIFO
 This is the file type constant of a FIFO or pipe.
-@end table
+@end vtable
 
 The POSIX.1b standard introduced a few more objects which possibly can
 be implemented as objects in the filesystem.  These are message queues,
@@ -2404,15 +2395,13 @@ All of the symbols listed in this section are defined in the header file
 These symbolic constants are defined for the file mode bits that control
 access permission for the file:
 
-@table @code
+@vtable @code
 @comment sys/stat.h
 @comment POSIX.1
 @item S_IRUSR
-@vindex S_IRUSR
 @comment sys/stat.h
 @comment BSD
 @itemx S_IREAD
-@vindex S_IREAD
 Read permission bit for the owner of the file.  On many systems this bit
 is 0400.  @code{S_IREAD} is an obsolete synonym provided for BSD
 compatibility.
@@ -2420,22 +2409,18 @@ compatibility.
 @comment sys/stat.h
 @comment POSIX.1
 @item S_IWUSR
-@vindex S_IWUSR
 @comment sys/stat.h
 @comment BSD
 @itemx S_IWRITE
-@vindex S_IWRITE
 Write permission bit for the owner of the file.  Usually 0200.
 @w{@code{S_IWRITE}} is an obsolete synonym provided for BSD compatibility.
 
 @comment sys/stat.h
 @comment POSIX.1
 @item S_IXUSR
-@vindex S_IXUSR
 @comment sys/stat.h
 @comment BSD
 @itemx S_IEXEC
-@vindex S_IEXEC
 Execute (for ordinary files) or search (for directories) permission bit
 for the owner of the file.  Usually 0100.  @code{S_IEXEC} is an obsolete
 synonym provided for BSD compatibility.
@@ -2443,69 +2428,58 @@ synonym provided for BSD compatibility.
 @comment sys/stat.h
 @comment POSIX.1
 @item S_IRWXU
-@vindex S_IRWXU
 This is equivalent to @samp{(S_IRUSR | S_IWUSR | S_IXUSR)}.
 
 @comment sys/stat.h
 @comment POSIX.1
 @item S_IRGRP
-@vindex S_IRGRP
 Read permission bit for the group owner of the file.  Usually 040.
 
 @comment sys/stat.h
 @comment POSIX.1
 @item S_IWGRP
-@vindex S_IWGRP
 Write permission bit for the group owner of the file.  Usually 020.
 
 @comment sys/stat.h
 @comment POSIX.1
 @item S_IXGRP
-@vindex S_IXGRP
 Execute or search permission bit for the group owner of the file.
 Usually 010.
 
 @comment sys/stat.h
 @comment POSIX.1
 @item S_IRWXG
-@vindex S_IRWXG
 This is equivalent to @samp{(S_IRGRP | S_IWGRP | S_IXGRP)}.
 
 @comment sys/stat.h
 @comment POSIX.1
 @item S_IROTH
-@vindex S_IROTH
 Read permission bit for other users.  Usually 04.
 
 @comment sys/stat.h
 @comment POSIX.1
 @item S_IWOTH
-@vindex S_IWOTH
 Write permission bit for other users.  Usually 02.
 
 @comment sys/stat.h
 @comment POSIX.1
 @item S_IXOTH
-@vindex S_IXOTH
 Execute or search permission bit for other users.  Usually 01.
 
 @comment sys/stat.h
 @comment POSIX.1
 @item S_IRWXO
-@vindex S_IRWXO
 This is equivalent to @samp{(S_IROTH | S_IWOTH | S_IXOTH)}.
 
 @comment sys/stat.h
 @comment POSIX
 @item S_ISUID
-@vindex S_ISUID
 This is the set-user-ID on execute bit, usually 04000.
 @xref{How Change Persona}.
 
 @comment sys/stat.h
 @comment POSIX
 @item S_ISGID
-@vindex S_ISGID
 This is the set-group-ID on execute bit, usually 02000.
 @xref{How Change Persona}.
 
@@ -2513,7 +2487,6 @@ This is the set-group-ID on execute bit, usually 02000.
 @comment sys/stat.h
 @comment BSD
 @item S_ISVTX
-@vindex S_ISVTX
 This is the @dfn{sticky} bit, usually 01000.
 
 For a directory it gives permission to delete a file in that directory
@@ -2558,7 +2531,7 @@ This bit is only available on BSD systems (and those derived from
 them).  Therefore one has to use the @code{_GNU_SOURCE} feature select
 macro, or not define any feature test macros, to get the definition
 (@pxref{Feature Test Macros}).
-@end table
+@end vtable
 
 The actual bit values of the symbols are listed in the table above
 so you can decode file mode values when debugging your programs.
diff --git a/manual/llio.texi b/manual/llio.texi
index e4524bc..9643bcb 100644
--- a/manual/llio.texi
+++ b/manual/llio.texi
@@ -690,7 +690,7 @@ interpreted, in the same way as for the @code{fseek} function, and it must
 be one of the symbolic constants @code{SEEK_SET}, @code{SEEK_CUR}, or
 @code{SEEK_END}.
 
-@table @code
+@vtable @code
 @item SEEK_SET
 Specifies that @var{offset} is a count of characters from the beginning
 of the file.
@@ -706,7 +706,7 @@ extent of the file; a positive count specifies a position past the
 current end.  If you set the position past the current end, and
 actually write data, you will extend the file with zeros up to that
 position.
-@end table
+@end vtable
 
 The return value from @code{lseek} is normally the resulting file
 position, measured in bytes from the beginning of the file.
@@ -858,7 +858,7 @@ These aliases for the @samp{SEEK_@dots{}} constants exist for the sake
 of compatibility with older BSD systems.  They are defined in two
 different header files: @file{fcntl.h} and @file{sys/file.h}.
 
-@table @code
+@vtable @code
 @item L_SET
 An alias for @code{SEEK_SET}.
 
@@ -867,7 +867,7 @@ An alias for @code{SEEK_CUR}.
 
 @item L_XTND
 An alias for @code{SEEK_END}.
-@end table
+@end vtable
 
 @node Descriptors and Streams
 @section Descriptors and Streams
@@ -938,11 +938,10 @@ file descriptors belonging to the standard streams @code{stdin},
 @code{stdout}, and @code{stderr}; see @ref{Standard Streams}.
 @pindex unistd.h
 
-@table @code
+@vtable @code
 @comment unistd.h
 @comment POSIX.1
 @item STDIN_FILENO
-@vindex STDIN_FILENO
 This macro has value @code{0}, which is the file descriptor for
 standard input.
 @cindex standard input file descriptor
@@ -950,7 +949,6 @@ standard input.
 @comment unistd.h
 @comment POSIX.1
 @item STDOUT_FILENO
-@vindex STDOUT_FILENO
 This macro has value @code{1}, which is the file descriptor for
 standard output.
 @cindex standard output file descriptor
@@ -958,10 +956,9 @@ standard output.
 @comment unistd.h
 @comment POSIX.1
 @item STDERR_FILENO
-@vindex STDERR_FILENO
 This macro has value @code{2}, which is the file descriptor for
 standard error output.
-@end table
+@end vtable
 @cindex standard error file descriptor
 
 @node Stream/Descriptor Precautions
@@ -1492,7 +1489,7 @@ and extending @var{length} bytes.
 
 The valid BSD values for @var{advice} are:
 
-@table @code
+@vtable @code
 
 @item MADV_NORMAL
 The region should receive no further special treatment.
@@ -1515,11 +1512,11 @@ The region is no longer needed.  The kernel may free these pages,
 causing any changes to the pages to be lost, as well as swapped
 out pages to be discarded.
 
-@end table
+@end vtable
 
 The POSIX names are slightly different, but with the same meanings:
 
-@table @code
+@vtable @code
 
 @item POSIX_MADV_NORMAL
 This corresponds with BSD's @code{MADV_NORMAL}.
@@ -1536,7 +1533,7 @@ This corresponds with BSD's @code{MADV_WILLNEED}.
 @item POSIX_MADV_DONTNEED
 This corresponds with BSD's @code{MADV_DONTNEED}.
 
-@end table
+@end vtable
 
 @code{madvise} returns @math{0} for success and @math{-1} for
 error.  Errors include:
@@ -2906,7 +2903,7 @@ descriptions of the individual commands.
 
 Briefly, here is a list of what the various commands are.
 
-@table @code
+@vtable @code
 @item F_DUPFD
 Duplicate the file descriptor (return another file descriptor pointing
 to the same open file).  @xref{Duplicating Descriptors}.
@@ -2951,7 +2948,7 @@ Get process or process group ID to receive @code{SIGIO} signals.
 @item F_SETOWN
 Set process or process group ID to receive @code{SIGIO} signals.
 @xref{Interrupt Input}.
-@end table
+@end vtable
 
 This function is a cancellation point in multi-threaded programs.  This
 is a problem if the thread allocates some resources (like memory, file
@@ -3827,25 +3824,22 @@ you know if it notices one.
 The following macros are defined for use as values for the @code{l_type}
 member of the @code{flock} structure.  The values are integer constants.
 
-@table @code
+@vtable @code
 @comment fcntl.h
 @comment POSIX.1
-@vindex F_RDLCK
 @item F_RDLCK
 This macro is used to specify a read (or shared) lock.
 
 @comment fcntl.h
 @comment POSIX.1
-@vindex F_WRLCK
 @item F_WRLCK
 This macro is used to specify a write (or exclusive) lock.
 
 @comment fcntl.h
 @comment POSIX.1
-@vindex F_UNLCK
 @item F_UNLCK
 This macro is used to specify that the region is unlocked.
-@end table
+@end vtable
 
 As an example of a situation where file locking is useful, consider a
 program that can be run simultaneously by several different users, that
diff --git a/manual/memory.texi b/manual/memory.texi
index b66de60..38d3c3a 100644
--- a/manual/memory.texi
+++ b/manual/memory.texi
@@ -1090,8 +1090,8 @@ When calling @code{mallopt}, the @var{param} argument specifies the
 parameter to be set, and @var{value} the new value to be set.  Possible
 choices for @var{param}, as defined in @file{malloc.h}, are:
 
-@table @code
 @comment TODO: @item M_CHECK_ACTION
+@vtable @code
 @item M_MMAP_MAX
 The maximum number of chunks to allocate with @code{mmap}.  Setting this
 to zero disables all use of @code{mmap}.
@@ -1177,7 +1177,7 @@ derived from the default value of M_ARENA_TEST and is computed independently.
 
 This parameter can also be set for the process at startup by setting the
 environment variable @env{MALLOC_ARENA_MAX} to the desired value.
-@end table
+@end vtable
 
 @end deftypefun
 
@@ -3213,7 +3213,7 @@ user space kernel data, shared memory, and memory mapped files.
 macros.  They tell @code{mlockall} which of its functions you want.  All
 other bits must be zero.
 
-@table @code
+@vtable @code
 
 @item MCL_CURRENT
 Lock all pages which currently exist in the calling process' virtual
@@ -3226,7 +3226,7 @@ affect future address spaces owned by the same process so exec, which
 replaces a process' address space, wipes out @code{MCL_FUTURE}.
 @xref{Executing a File}.
 
-@end table
+@end vtable
 
 When the function returns successfully, and you specified
 @code{MCL_CURRENT}, all of the process' pages are backed by (connected
diff --git a/manual/nss.texi b/manual/nss.texi
index 058b9ae..ee70ad3 100644
--- a/manual/nss.texi
+++ b/manual/nss.texi
@@ -66,7 +66,7 @@ The databases available in the NSS are
 @cindex rpc
 @cindex services
 @cindex shadow
-@vtable @code
+@table @code
 @item aliases
 Mail aliases
 @comment @pxref{Mail Aliases}.
@@ -93,7 +93,7 @@ Network services, @pxref{Services Database}.
 @item shadow
 Shadow user passwords,
 @comment @pxref{Shadow Password Database}.
-@end vtable
+@end table
 
 @noindent
 There will be some more added later (@code{automount}, @code{bootparams},
diff --git a/manual/process.texi b/manual/process.texi
index 67b3237..085fdec 100644
--- a/manual/process.texi
+++ b/manual/process.texi
@@ -594,7 +594,7 @@ These symbolic constants are defined as values for the @var{pid} argument
 to the @code{waitpid} function.
 
 @comment Extra blank lines make it look better.
-@table @code
+@vtable @code
 @item WAIT_ANY
 
 This constant macro (whose value is @code{-1}) specifies that
@@ -605,13 +605,13 @@ This constant macro (whose value is @code{-1}) specifies that
 This constant (with value @code{0}) specifies that @code{waitpid} should
 return status information about any child process in the same process
 group as the calling process.
-@end table
+@end vtable
 
 These symbolic constants are defined as flags for the @var{options}
 argument to the @code{waitpid} function.  You can bitwise-OR the flags
 together to obtain a value to use as the argument.
 
-@table @code
+@vtable @code
 @item WNOHANG
 
 This flag specifies that @code{waitpid} should return immediately
@@ -622,7 +622,7 @@ instead of waiting, if there is no child process ready to be noticed.
 This flag specifies that @code{waitpid} should report the status of any
 child processes that have been stopped as well as those that have
 terminated.
-@end table
+@end vtable
 
 @comment sys/wait.h
 @comment POSIX.1
diff --git a/manual/resource.texi b/manual/resource.texi
index 75e3a1b..bf93375 100644
--- a/manual/resource.texi
+++ b/manual/resource.texi
@@ -337,11 +337,10 @@ This is analogous to @code{rlimit.rlim_max}, but with a different type.
 Here is a list of resources for which you can specify a limit.  Memory
 and file sizes are measured in bytes.
 
-@table @code
+@vtable @code
 @comment sys/resource.h
 @comment BSD
 @item RLIMIT_CPU
-@vindex RLIMIT_CPU
 The maximum amount of CPU time the process can use.  If it runs for
 longer than this, it gets a signal: @code{SIGXCPU}.  The value is
 measured in seconds.  @xref{Operation Error Signals}.
@@ -349,7 +348,6 @@ measured in seconds.  @xref{Operation Error Signals}.
 @comment sys/resource.h
 @comment BSD
 @item RLIMIT_FSIZE
-@vindex RLIMIT_FSIZE
 The maximum size of file the process can create.  Trying to write a
 larger file causes a signal: @code{SIGXFSZ}.  @xref{Operation Error
 Signals}.
@@ -357,7 +355,6 @@ Signals}.
 @comment sys/resource.h
 @comment BSD
 @item RLIMIT_DATA
-@vindex RLIMIT_DATA
 The maximum size of data memory for the process.  If the process tries
 to allocate data memory beyond this amount, the allocation function
 fails.
@@ -365,7 +362,6 @@ fails.
 @comment sys/resource.h
 @comment BSD
 @item RLIMIT_STACK
-@vindex RLIMIT_STACK
 The maximum stack size for the process.  If the process tries to extend
 its stack past this size, it gets a @code{SIGSEGV} signal.
 @xref{Program Error Signals}.
@@ -373,7 +369,6 @@ its stack past this size, it gets a @code{SIGSEGV} signal.
 @comment sys/resource.h
 @comment BSD
 @item RLIMIT_CORE
-@vindex RLIMIT_CORE
 The maximum size core file that this process can create.  If the process
 terminates and would dump a core file larger than this, then no core
 file is created.  So setting this limit to zero prevents core files from
@@ -382,7 +377,6 @@ ever being created.
 @comment sys/resource.h
 @comment BSD
 @item RLIMIT_RSS
-@vindex RLIMIT_RSS
 The maximum amount of physical memory that this process should get.
 This parameter is a guide for the system's scheduler and memory
 allocator; the system may give the process more memory when there is a
@@ -404,9 +398,7 @@ with @code{EAGAIN}.  @xref{Creating a Process}.
 @comment sys/resource.h
 @comment BSD
 @item RLIMIT_NOFILE
-@vindex RLIMIT_NOFILE
 @itemx RLIMIT_OFILE
-@vindex RLIMIT_OFILE
 The maximum number of files that the process can open.  If it tries to
 open more files than this, its open attempt fails with @code{errno}
 @code{EMFILE}.  @xref{Error Codes}.  Not all systems support this limit;
@@ -415,7 +407,6 @@ GNU does, and 4.4 BSD does.
 @comment sys/resource.h
 @comment Unix98
 @item RLIMIT_AS
-@vindex RLIMIT_AS
 The maximum size of total memory that this process should get.  If the
 process tries to allocate more memory beyond this amount with, for
 example, @code{brk}, @code{malloc}, @code{mmap} or @code{sbrk}, the
@@ -424,10 +415,9 @@ allocation function fails.
 @comment sys/resource.h
 @comment BSD
 @item RLIM_NLIMITS
-@vindex RLIM_NLIMITS
 The number of different resource limits.  Any valid @var{resource}
 operand must be less than @code{RLIM_NLIMITS}.
-@end table
+@end vtable
 
 @comment sys/resource.h
 @comment BSD
@@ -460,7 +450,7 @@ If you are setting a limit, there is a second argument:
 the limit.
 
 The @var{cmd} values and the operations they specify are:
-@table @code
+@vtable @code
 
 @item GETFSIZE
 Get the current limit on the size of a file, in units of 512 bytes.
@@ -469,7 +459,7 @@ Get the current limit on the size of a file, in units of 512 bytes.
 Set the current and maximum limit on the size of a file to @var{limit} *
 512 bytes.
 
-@end table
+@end vtable
 
 There are also some other @var{cmd} values that may do things on some
 systems, but they are not supported.
@@ -504,7 +494,7 @@ A process tried to increase a maximum limit, but is not superuser.
 
 @var{resource} identifies the resource:
 
-@table @code
+@vtable @code
 @item LIM_CPU
 Maximum CPU time.  Same as @code{RLIMIT_CPU} for @code{setrlimit}.
 @item LIM_FSIZE
@@ -517,7 +507,7 @@ Maximum stack size.  Same as @code{RLIMIT_STACK} for @code{setrlimit}.
 Maximum core file size.  Same as @code{RLIMIT_COR} for @code{setrlimit}.
 @item LIM_MAXRSS
 Maximum physical memory.  Same as @code{RLIMIT_RSS} for @code{setrlimit}.
-@end table
+@end vtable
 
 The return value is zero for success, and @code{-1} with @code{errno} set
 accordingly for failure:
@@ -810,14 +800,14 @@ negative, @code{sched_setscheduler} keeps the existing scheduling policy.
 
 The following macros represent the valid values for @var{policy}:
 
-@table @code
+@vtable @code
 @item SCHED_OTHER
 Traditional Scheduling
 @item SCHED_FIFO
 First In First Out
 @item SCHED_RR
 Round Robin
-@end table
+@end vtable
 
 @c The Linux kernel code (in sched.c) actually reschedules the process,
 @c but it puts it at the head of the run queue, so I'm not sure just what
diff --git a/manual/search.texi b/manual/search.texi
index a56b3e0..1d9628d 100644
--- a/manual/search.texi
+++ b/manual/search.texi
@@ -600,7 +600,7 @@ the first child is processed, after the first child is processed and
 after both children are processed.  This makes it possible to handle all
 three methods of tree traversal (or even a combination of them).
 
-@table @code
+@vtable @code
 @item preorder
 The current node is an internal node and the function is called before
 the first child was processed.
@@ -612,7 +612,7 @@ The current node is an internal node and the function is called after
 the second child was processed.
 @item leaf
 The current node is a leaf.
-@end table
+@end vtable
 @end deftp
 
 @comment search.h
diff --git a/manual/signal.texi b/manual/signal.texi
index 79e190d..d6a1bfe 100644
--- a/manual/signal.texi
+++ b/manual/signal.texi
@@ -311,63 +311,53 @@ establish the handler.  @Theglibc{} does provide this extra
 argument, but the value is meaningful only on operating systems that
 provide the information (BSD systems and @gnusystems{}).
 
-@table @code
+@vtable @code
 @comment signal.h
 @comment BSD
 @item FPE_INTOVF_TRAP
-@vindex FPE_INTOVF_TRAP
 Integer overflow (impossible in a C program unless you enable overflow
 trapping in a hardware-specific fashion).
 @comment signal.h
 @comment BSD
 @item FPE_INTDIV_TRAP
-@vindex FPE_INTDIV_TRAP
 Integer division by zero.
 @comment signal.h
 @comment BSD
 @item FPE_SUBRNG_TRAP
-@vindex FPE_SUBRNG_TRAP
 Subscript-range (something that C programs never check for).
 @comment signal.h
 @comment BSD
 @item FPE_FLTOVF_TRAP
-@vindex FPE_FLTOVF_TRAP
 Floating overflow trap.
 @comment signal.h
 @comment BSD
 @item FPE_FLTDIV_TRAP
-@vindex FPE_FLTDIV_TRAP
 Floating/decimal division by zero.
 @comment signal.h
 @comment BSD
 @item FPE_FLTUND_TRAP
-@vindex FPE_FLTUND_TRAP
 Floating underflow trap.  (Trapping on floating underflow is not
 normally enabled.)
 @comment signal.h
 @comment BSD
 @item FPE_DECOVF_TRAP
-@vindex FPE_DECOVF_TRAP
 Decimal overflow trap.  (Only a few machines have decimal arithmetic and
 C never uses it.)
 @ignore @c These seem redundant
 @comment signal.h
 @comment BSD
 @item FPE_FLTOVF_FAULT
-@vindex FPE_FLTOVF_FAULT
 Floating overflow fault.
 @comment signal.h
 @comment BSD
 @item FPE_FLTDIV_FAULT
-@vindex FPE_FLTDIV_FAULT
 Floating divide by zero fault.
 @comment signal.h
 @comment BSD
 @item FPE_FLTUND_FAULT
-@vindex FPE_FLTUND_FAULT
 Floating underflow fault.
 @end ignore
-@end table
+@end vtable
 
 @comment signal.h
 @comment ISO
@@ -2633,10 +2623,9 @@ The @code{sigprocmask} function is used to examine or change the calling
 process's signal mask.  The @var{how} argument determines how the signal
 mask is changed, and must be one of the following values:
 
-@table @code
+@vtable @code
 @comment signal.h
 @comment POSIX.1
-@vindex SIG_BLOCK
 @item SIG_BLOCK
 Block the signals in @code{set}---add them to the existing mask.  In
 other words, the new mask is the union of the existing mask and
@@ -2644,16 +2633,14 @@ other words, the new mask is the union of the existing mask and
 
 @comment signal.h
 @comment POSIX.1
-@vindex SIG_UNBLOCK
 @item SIG_UNBLOCK
 Unblock the signals in @var{set}---remove them from the existing mask.
 
 @comment signal.h
 @comment POSIX.1
-@vindex SIG_SETMASK
 @item SIG_SETMASK
 Use @var{set} for the mask; ignore the previous value of the mask.
-@end table
+@end vtable
 
 The last argument, @var{oldset}, is used to return information about the
 old process signal mask.  If you just want to change the mask without
diff --git a/manual/socket.texi b/manual/socket.texi
index 24b4563..25d9276 100644
--- a/manual/socket.texi
+++ b/manual/socket.texi
@@ -325,11 +325,10 @@ Each address format has a symbolic name which starts with @samp{AF_}.
 Each of them corresponds to a @samp{PF_} symbol which designates the
 corresponding namespace.  Here is a list of address format names:
 
-@table @code
+@vtable @code
 @comment sys/socket.h
 @comment POSIX
 @item AF_LOCAL
-@vindex AF_LOCAL
 This designates the address format that goes with the local namespace.
 (@code{PF_LOCAL} is the name of that namespace.)  @xref{Local Namespace
 Details}, for information about this address format.
@@ -337,7 +336,6 @@ Details}, for information about this address format.
 @comment sys/socket.h
 @comment BSD, Unix98
 @item AF_UNIX
-@vindex AF_UNIX
 This is a synonym for @code{AF_LOCAL}.  Although @code{AF_LOCAL} is
 mandated by POSIX.1g, @code{AF_UNIX} is portable to more systems.
 @code{AF_UNIX} was the traditional name stemming from BSD, so even most
@@ -348,14 +346,12 @@ vs. @code{PF_LOCAL}).
 @comment sys/socket.h
 @comment GNU
 @item AF_FILE
-@vindex AF_FILE
 This is another synonym for @code{AF_LOCAL}, for compatibility.
 (@code{PF_FILE} is likewise a synonym for @code{PF_LOCAL}.)
 
 @comment sys/socket.h
 @comment BSD
 @item AF_INET
-@vindex AF_INET
 This designates the address format that goes with the Internet
 namespace.  (@code{PF_INET} is the name of that namespace.)
 @xref{Internet Address Formats}.
@@ -369,14 +365,13 @@ This is similar to @code{AF_INET}, but refers to the IPv6 protocol.
 @comment sys/socket.h
 @comment BSD
 @item AF_UNSPEC
-@vindex AF_UNSPEC
 This designates no particular address format.  It is used only in rare
 cases, such as to clear out the default destination address of a
 ``connected'' datagram socket.  @xref{Sending Datagrams}.
 
 The corresponding namespace designator symbol @code{PF_UNSPEC} exists
 for completeness, but there is no reason to use it in a program.
-@end table
+@end vtable
 
 @file{sys/socket.h} defines symbols starting with @samp{AF_} for many
 different kinds of networks, most or all of which are not actually
@@ -1436,33 +1431,29 @@ with other systems.)
 
 Here are the error codes that you may find in @code{h_errno}:
 
-@table @code
+@vtable @code
 @comment netdb.h
 @comment BSD
 @item HOST_NOT_FOUND
-@vindex HOST_NOT_FOUND
 No such host is known in the database.
 
 @comment netdb.h
 @comment BSD
 @item TRY_AGAIN
-@vindex TRY_AGAIN
 This condition happens when the name server could not be contacted.  If
 you try again later, you may succeed then.
 
 @comment netdb.h
 @comment BSD
 @item NO_RECOVERY
-@vindex NO_RECOVERY
 A non-recoverable error occurred.
 
 @comment netdb.h
 @comment BSD
 @item NO_ADDRESS
-@vindex NO_ADDRESS
 The host database contains an entry for the name, but it doesn't have an
 associated Internet address.
-@end table
+@end vtable
 
 The lookup functions above all have one thing in common: they are not
 reentrant and therefore unusable in multi-threaded applications.
diff --git a/manual/stdio.texi b/manual/stdio.texi
index 355c563..dbb21ca 100644
--- a/manual/stdio.texi
+++ b/manual/stdio.texi
@@ -4526,25 +4526,22 @@ These three aliases for the @samp{SEEK_@dots{}} constants exist for the
 sake of compatibility with older BSD systems.  They are defined in two
 different header files: @file{fcntl.h} and @file{sys/file.h}.
 
-@table @code
+@vtable @code
 @comment sys/file.h
 @comment BSD
 @item L_SET
-@vindex L_SET
 An alias for @code{SEEK_SET}.
 
 @comment sys/file.h
 @comment BSD
 @item L_INCR
-@vindex L_INCR
 An alias for @code{SEEK_CUR}.
 
 @comment sys/file.h
 @comment BSD
 @item L_XTND
-@vindex L_XTND
 An alias for @code{SEEK_END}.
-@end table
+@end vtable
 
 @node Portable Positioning
 @section Portable File-Position Functions
diff --git a/manual/sysinfo.texi b/manual/sysinfo.texi
index 66b7f3d..9a8b79d 100644
--- a/manual/sysinfo.texi
+++ b/manual/sysinfo.texi
@@ -912,7 +912,7 @@ file accesses via @code{ioctl}.
 @var{options} is a bit string with bit fields defined using the
 following mask and masked value macros:
 
-@table @code
+@vtable @code
 @item MS_MGC_MASK
 This multibit field contains a magic number.  If it does not have the value
 @code{MS_MGC_VAL}, @code{mount} assumes all the following bits are zero and
@@ -962,7 +962,7 @@ when the directories are accessed while the filesystem in mounted.
 @c there is also S_QUOTA Linux fs.h (mount.h still uses its former name
 @c S_WRITE), but I can't see what it does.  Turns on quotas, I guess.
 
-@end table
+@end vtable
 
 Any bits not covered by the above masks should be set off; otherwise,
 results are undefined.
@@ -1066,7 +1066,7 @@ the same.  Specify either as the string @var{file}.
 @var{flags} contains the one-bit field identified by the following
 mask macro:
 
-@table @code
+@vtable @code
 
 @item MNT_FORCE
 This bit on means to force the unmounting even if the filesystem is
@@ -1074,7 +1074,7 @@ busy, by making it unbusy first.  If the bit is off and the filesystem is
 busy, @code{umount2} fails with @code{errno} = @code{EBUSY}.  Depending
 on the filesystem, this may override all, some, or no busy conditions.
 
-@end table
+@end vtable
 
 All other bits in @var{flags} should be set to zero; otherwise, the result
 is undefined.
diff --git a/manual/syslog.texi b/manual/syslog.texi
index 91fabc6..7b73a09 100644
--- a/manual/syslog.texi
+++ b/manual/syslog.texi
@@ -221,7 +221,7 @@ implicitly and uses defaults for the information in @var{ident} and
 @var{options} is a bit string, with the bits as defined by the following
 single bit masks:
 
-@table @code
+@vtable @code
 @item LOG_PERROR
 If on, @code{openlog} sets up the connection so that any @code{syslog}
 on this connection writes its message to the calling process' Standard
@@ -250,7 +250,7 @@ exactly the opposite.
 @item LOG_ODELAY
 This bit does nothing.  It exists for backward compatibility.
 
-@end table
+@end vtable
 
 If any other bit in @var{options} is on, the result is undefined.
 
diff --git a/manual/terminal.texi b/manual/terminal.texi
index 49f5097..0c5fdd1 100644
--- a/manual/terminal.texi
+++ b/manual/terminal.texi
@@ -326,17 +326,15 @@ structure that @var{termios-p} points to.
 The @var{when} argument specifies how to deal with input and output
 already queued.  It can be one of the following values:
 
-@table @code
+@vtable @code
 @comment termios.h
 @comment POSIX.1
 @item TCSANOW
-@vindex TCSANOW
 Make the change immediately.
 
 @comment termios.h
 @comment POSIX.1
 @item TCSADRAIN
-@vindex TCSADRAIN
 Make the change after waiting until all queued output has been written.
 You should usually use this option when changing parameters that affect
 output.
@@ -344,13 +342,11 @@ output.
 @comment termios.h
 @comment POSIX.1
 @item TCSAFLUSH
-@vindex TCSAFLUSH
 This is like @code{TCSADRAIN}, but also discards any queued input.
 
 @comment termios.h
 @comment BSD
 @item TCSASOFT
-@vindex TCSASOFT
 This is a flag bit that you can add to any of the above alternatives.
 Its meaning is to inhibit alteration of the state of the terminal
 hardware.  It is a BSD extension; it is only supported on BSD systems
@@ -359,7 +355,7 @@ and @gnuhurdsystems{}.
 Using @code{TCSASOFT} is exactly the same as setting the @code{CIGNORE}
 bit in the @code{c_cflag} member of the structure @var{termios-p} points
 to.  @xref{Control Modes}, for a description of @code{CIGNORE}.
-@end table
+@end vtable
 
 If this function is called from a background process on its controlling
 terminal, normally all processes in the process group are sent a
@@ -1846,22 +1842,19 @@ argument specifies which queue(s) to clear, and can be one of the
 following values:
 
 @c Extra blank lines here make it look better.
-@table @code
-@vindex TCIFLUSH
+@vtable @code
 @item TCIFLUSH
 
 Clear any input data received, but not yet read.
 
-@vindex TCOFLUSH
 @item TCOFLUSH
 
 Clear any output data written, but not yet transmitted.
 
-@vindex TCIOFLUSH
 @item TCIOFLUSH
 
 Clear both queued input and output.
-@end table
+@end vtable
 
 The return value is normally zero.  In the event of an error, a value
 of @math{-1} is returned.  The following @code{errno} error conditions
@@ -1901,23 +1894,19 @@ XON/XOFF flow control on the terminal file specified by @var{filedes}.
 The @var{action} argument specifies what operation to perform, and can
 be one of the following values:
 
-@table @code
-@vindex TCOOFF
+@vtable @code
 @item TCOOFF
 Suspend transmission of output.
 
-@vindex TCOON
 @item TCOON
 Restart transmission of output.
 
-@vindex TCIOFF
 @item TCIOFF
 Transmit a STOP character.
 
-@vindex TCION
 @item TCION
 Transmit a START character.
-@end table
+@end vtable
 
 For more information about the STOP and START characters, see @ref{Special
 Characters}.
diff --git a/manual/time.texi b/manual/time.texi
index e590c77..dccb979 100644
--- a/manual/time.texi
+++ b/manual/time.texi
@@ -1016,12 +1016,12 @@ call is necessary.
 The return value is @code{0} on success and other values on failure.  The
 following @code{errno} error conditions are defined for this function:
 
-@table @code
+@vtable @code
 @item TIME_ERROR
 The precision clock model is not properly set up at the moment, thus the
 clock must be considered unsynchronized, and the values should be
 treated with care.
-@end table
+@end vtable
 @end deftypefun
 
 @tindex struct timex
diff --git a/manual/users.texi b/manual/users.texi
index 0924f39..47e28fe 100644
--- a/manual/users.texi
+++ b/manual/users.texi
@@ -1069,68 +1069,58 @@ The following macros are defined for use as values for the
 @code{ut_type} member of the @code{utmp} structure.  The values are
 integer constants.
 
-@table @code
+@vtable @code
 @comment utmp.h
 @comment SVID
-@vindex EMPTY
 @item EMPTY
 This macro is used to indicate that the entry contains no valid user
 accounting information.
 
 @comment utmp.h
 @comment SVID
-@vindex RUN_LVL
 @item RUN_LVL
 This macro is used to identify the system's runlevel.
 
 @comment utmp.h
 @comment SVID
-@vindex BOOT_TIME
 @item BOOT_TIME
 This macro is used to identify the time of system boot.
 
 @comment utmp.h
 @comment SVID
-@vindex OLD_TIME
 @item OLD_TIME
 This macro is used to identify the time when the system clock changed.
 
 @comment utmp.h
 @comment SVID
-@vindex NEW_TIME
 @item NEW_TIME
 This macro is used to identify the time after the system clock changed.
 
 @comment utmp.h
 @comment SVID
-@vindex INIT_PROCESS
 @item INIT_PROCESS
 This macro is used to identify a process spawned by the init process.
 
 @comment utmp.h
 @comment SVID
-@vindex LOGIN_PROCESS
 @item LOGIN_PROCESS
 This macro is used to identify the session leader of a logged in user.
 
 @comment utmp.h
 @comment SVID
-@vindex USER_PROCESS
 @item USER_PROCESS
 This macro is used to identify a user process.
 
 @comment utmp.h
 @comment SVID
-@vindex DEAD_PROCESS
 @item DEAD_PROCESS
 This macro is used to identify a terminated process.
 
 @comment utmp.h
 @comment SVID
-@vindex ACCOUNTING
 @item ACCOUNTING
 ???
-@end table
+@end vtable
 
 The size of the @code{ut_line}, @code{ut_id}, @code{ut_user} and
 @code{ut_host} arrays can be found using the @code{sizeof} operator.
@@ -1547,62 +1537,53 @@ The following macros are defined for use as values for the
 integer constants and are, in @theglibc{}, identical to the
 definitions in @file{utmp.h}.
 
-@table @code
+@vtable @code
 @comment utmpx.h
 @comment XPG4.2
-@vindex EMPTY
 @item EMPTY
 This macro is used to indicate that the entry contains no valid user
 accounting information.
 
 @comment utmpx.h
 @comment XPG4.2
-@vindex RUN_LVL
 @item RUN_LVL
 This macro is used to identify the system's runlevel.
 
 @comment utmpx.h
 @comment XPG4.2
-@vindex BOOT_TIME
 @item BOOT_TIME
 This macro is used to identify the time of system boot.
 
 @comment utmpx.h
 @comment XPG4.2
-@vindex OLD_TIME
 @item OLD_TIME
 This macro is used to identify the time when the system clock changed.
 
 @comment utmpx.h
 @comment XPG4.2
-@vindex NEW_TIME
 @item NEW_TIME
 This macro is used to identify the time after the system clock changed.
 
 @comment utmpx.h
 @comment XPG4.2
-@vindex INIT_PROCESS
 @item INIT_PROCESS
 This macro is used to identify a process spawned by the init process.
 
 @comment utmpx.h
 @comment XPG4.2
-@vindex LOGIN_PROCESS
 @item LOGIN_PROCESS
 This macro is used to identify the session leader of a logged in user.
 
 @comment utmpx.h
 @comment XPG4.2
-@vindex USER_PROCESS
 @item USER_PROCESS
 This macro is used to identify a user process.
 
 @comment utmpx.h
 @comment XPG4.2
-@vindex DEAD_PROCESS
 @item DEAD_PROCESS
 This macro is used to identify a terminated process.
-@end table
+@end vtable
 
 The size of the @code{ut_line}, @code{ut_id} and @code{ut_user} arrays
 can be found using the @code{sizeof} operator.
