summary refs log tree commit diff
diff options
context:
space:
mode:
authorgiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2020-08-02 18:44:01 +0000
committergiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2020-08-02 18:44:01 +0000
commitad48d09aa16cf2c106ba4d0e232c703a75ab5c49 (patch)
tree67fe02ab9d4f8952d6ac8b0aac1674f099f0fd7e
parent56ef5a9528e4eb818db26d7cee8733d46d6cb687 (diff)
downloadnetpbm-mirror-ad48d09aa16cf2c106ba4d0e232c703a75ab5c49.tar.gz
netpbm-mirror-ad48d09aa16cf2c106ba4d0e232c703a75ab5c49.tar.xz
netpbm-mirror-ad48d09aa16cf2c106ba4d0e232c703a75ab5c49.zip
miscellaneous update
git-svn-id: http://svn.code.sf.net/p/netpbm/code/userguide@3905 9d0c8265-081b-0410-96cb-a4ca84ce46f8
-rw-r--r--avstopam.html6
-rw-r--r--escp2topbm.html84
-rw-r--r--extendedopacity.html14
-rw-r--r--libnetpbm_image.html597
-rw-r--r--pamaltsat.html19
-rw-r--r--pamarith.html4
-rw-r--r--pamcrater.html152
-rw-r--r--pamedge.html4
-rw-r--r--pamperspective.html51
-rw-r--r--pamsistoaglyph.html94
-rw-r--r--pamstretch-gen.html8
-rw-r--r--pamthreshold.html79
-rw-r--r--pamtilt.html62
-rw-r--r--pamtoavs.html4
-rw-r--r--pamtofits.html75
-rw-r--r--pamtohdiff.html82
-rw-r--r--pamtowinicon.html160
-rw-r--r--pbmreduce.html11
-rw-r--r--pbmtoascii.html69
-rw-r--r--pbmtolps.html70
-rw-r--r--pbmupc.html79
-rw-r--r--pcdovtoppm.html154
-rw-r--r--pgmhist.html106
-rw-r--r--pgmmorphconv.html69
-rw-r--r--pngtopam.html4
-rw-r--r--pnmmargin.html95
-rw-r--r--pnmmontage.html8
-rw-r--r--ppmdcfont.html52
-rw-r--r--ppmddumpfont.html52
-rw-r--r--ppmdmkfont.html52
-rw-r--r--ppmlabel.html163
-rw-r--r--ppmrainbow.html120
-rw-r--r--ppmrelief.html4
-rw-r--r--ppmsvgalib.html128
-rw-r--r--ppmtoascii.html71
-rw-r--r--ppmtompeg.html634
-rw-r--r--ppmtopjxl.html142
-rw-r--r--pstopnm.html3
-rw-r--r--vidtoppm.html22
-rw-r--r--winicon.html117
-rw-r--r--winicontopam.html104
41 files changed, 1984 insertions, 1840 deletions
diff --git a/avstopam.html b/avstopam.html
index d16fb227..eb39766b 100644
--- a/avstopam.html
+++ b/avstopam.html
@@ -2,7 +2,7 @@
 <html><head><title>Avstopam User Manual</title></head>
 <body>
 <h1>avstopam</h1>
-<br>Updated: 7 February 2010
+Updated: 07 February 2010
 <br>
 <a href="#index">Table Of Contents</a>
 <h2>NAME</h2>
@@ -18,8 +18,8 @@
 
 <p>This program is part of <a href="index.html">Netpbm</a>.
 
-<p><b>avstopam</b> reads a Stardent <acronym xml:lang="en" title="Application
-Visualization System">AVS</acronym> X image as input and produces a Netpbm
+<p><b>avstopam</b> reads a Stardent <abbr title="Application
+Visualization System">AVS</abbr> X image as input and produces a Netpbm
 image as output.
 
 <p><i>avsfile</i> is the input file, which defaults to Standard Input.
diff --git a/escp2topbm.html b/escp2topbm.html
index 186e032a..9e808b7c 100644
--- a/escp2topbm.html
+++ b/escp2topbm.html
@@ -1,26 +1,28 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML><HEAD><TITLE>Escp2topbm User Manual</TITLE></HEAD>
-<BODY>
-<H1>escp2topbm</H1>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.3//EN">
+<html><head><title>Escp2topbm User Manual</title></head>
+<body>
+<h1>escp2topbm</h1>
 Updated: 14 July 2015
-<BR>
-<A HREF="#index">Table Of Contents</A>
+<br>
+<a href="#index">Table Of Contents</a>
+
+<h2>NAME</h2>
 
 escp2topbm - convert an ESC/P2 printer file to a PBM image
 
-<H2 id="synopsis">SYNOPSIS</H2>
+<h2 id="synopsis">SYNOPSIS</h2>
 
-<B>escp2topbm</B>
-[<I>printfile</I>]
+<b>escp2topbm</b>
+[<i>printfile</i>]
 
-<H2 id="description">DESCRIPTION</H2>
+<h2 id="description">DESCRIPTION</h2>
 
 <p>This program is part of <a href="index.html">Netpbm</a>.
 
 <p><b>escp2topbm</b> reads an ESC/P2 printer control stream as input.
 It produces a PBM image as output.
 
-<P><b>escp2topbm</b> filters the raster graphic content from an Epson
+<p><b>escp2topbm</b> filters the raster graphic content from an Epson
 ESC/P2 printer control stream and writes the image it would print as a
 standard (raw) PBM image.
 
@@ -28,20 +30,22 @@ standard (raw) PBM image.
 from Standard Input if you don't specify <i>printfile</i>.  The output is
 to Standard Output.
 
-<P><b>escp2topbm</b> understands compression modes 0 (uncompressed)
+<p><b>escp2topbm</b> understands compression modes 0 (uncompressed)
 and 1 (RLE compressed) in the Epson input stream.
 
-<p>Before Netpbm 10.72 (September 2015), the Netpbm global
-option <b>-plain</b> has no effect on <b>escp2topbm</b> .
-
+<h2 id="options">OPTIONS</h2>
 
-<H2 id="options">OPTIONS</H2>
-none
+<p>There are no command line options defined specifically
+for <b>escp2topbm</b>, but it recognizes the options common to all
+programs based on libnetpbm (See <a href="index.html#commonoptions">
+Common Options</a>.)
 
+<p>Before Netpbm 10.72 (September 2015), the Netpbm common option
+<b>-plain</b> has no effect on <b>escp2topbm</b> .
 
-<H2 id="hints">HINTS</H2>
+<h2 id="hints">HINTS</h2>
 
-<P>As <b>escp2topbm</b> is a simple program, created mainly to test
+<p>As <b>escp2topbm</b> is a simple program, created mainly to test
 <b>pbmtoescp2</b>, there are some restrictions:
 
 <ul>
@@ -55,32 +59,32 @@ printer stream.  If this isn't true, the result is garbage.
 width value.  If this isn't true, the result is garbage.
 </ul>
 
-<H2 id="seealso">SEE ALSO</H2>
+<h2 id="seealso">SEE ALSO</h2>
 
-<B><A HREF="pbmtoescp2.html">pbmtoescp2</A></B>,
-<B><A HREF="pbm.html">pbm</A></B>
+<b><a href="pbmtoescp2.html">pbmtoescp2</a></b>,
+<b><a href="pbm.html">pbm</a></b>
 
-<H2 id="author">AUTHOR</H2>
+<h2 id="author">AUTHOR</h2>
 
-<P>Copyright (C) 2003 by Ulrich Walcher 
-(<A HREF="mailto:u.walcher@gmx.de">u.walcher@gmx.de</A>).
+<p>Copyright (C) 2003 by Ulrich Walcher 
+(<a href="mailto:u.walcher@gmx.de">u.walcher@gmx.de</a>).
 
-<H2 id="history">HISTORY</H2>
+<h2 id="history">HISTORY</h2>
 
 <p><b>escp2topbm</b> was added to Netpbm in Release 10.18 (August 2003);
 it was created around the same time.
 
-<HR>
-<H2 id="index">Table Of Contents</H2>
-<UL>
-<LI><A HREF="#synopsis">SYNOPSIS</A>
-<LI><A HREF="#description">DESCRIPTION</A>
-<LI><A HREF="#options">OPTIONS</A>
-<LI><A HREF="#hints">HINTS</A>
-<LI><A HREF="#seealso">SEE ALSO</A>
-<LI><A HREF="#author">AUTHOR</A>
-<LI><A HREF="#history">HISTORY</A>
-</UL>
-
-</BODY>
-</HTML>
+<hr>
+<h2 id="index">Table Of Contents</h2>
+<ul>
+<li><a href="#synopsis">SYNOPSIS</a>
+<li><a href="#description">DESCRIPTION</a>
+<li><a href="#options">OPTIONS</a>
+<li><a href="#hints">HINTS</a>
+<li><a href="#seealso">SEE ALSO</a>
+<li><a href="#author">AUTHOR</a>
+<li><a href="#history">HISTORY</a>
+</ul>
+
+</body>
+</html>
diff --git a/extendedopacity.html b/extendedopacity.html
index 09a50858..32dbe150 100644
--- a/extendedopacity.html
+++ b/extendedopacity.html
@@ -1,13 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<title>Image Processing By Interp and Extrapolation</title>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.3//EN">
+<html><head><title>Image Processing By Interp and Extrapolation</title>
 <meta name="manual_section" content="5">
 </head>
-<body bgcolor="#ffffff" text="#000000">
-<H1>extendedopacity</H1>
+<body>
+<h1>extendedopacity</h1>
 Created: 17 April 2003
-<BR>
+<br>
 <?makeman .SH NAME ?>
 <?makeman extendedopacity - theory of netpbm interpolation and extrapolation ?>
 <?makeman .SH DESCRIPTION ?>
@@ -18,7 +16,7 @@ Netpbm documentation for convenience.  Since at least June 11, 2005,
 the source page has been missing.
 
 <h2>Image Processing By Interpolation and Extrapolation</h2>
-<I>Paul Haeberli and Douglas Voorhies</I>
+<i>Paul Haeberli and Douglas Voorhies</i>
 
 <h3>Introduction</h3>
 <p>
diff --git a/libnetpbm_image.html b/libnetpbm_image.html
index 7057dd6d..6c0cf33f 100644
--- a/libnetpbm_image.html
+++ b/libnetpbm_image.html
@@ -1,14 +1,14 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML>
-<HEAD>
-<TITLE>Libnetpbm Image Processing Manual</TITLE>
-<META NAME="manual_section" CONTENT="3">
-</HEAD>
-<BODY>
-<H1>Libnetpbm Image Processing Manual</H1>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.3//EN">
+<html>
+<head>
+<title>Libnetpbm Image Processing Manual</title>
+<meta name="manual_section" content="3">
+</head>
+<body>
+<h1>Libnetpbm Image Processing Manual</h1>
 Updated: May 2018
 <br>
-<p><A HREF="#toc">Table Of Contents</A>
+<p><a href="#toc">Table Of Contents</a>
 <?makeman .SH NAME ?>
 <?makeman libnetpbm_image - overview of netpbm image-processing functions ?>
 <?makeman .SH DESCRIPTION ?>
@@ -21,9 +21,9 @@ library for processing images, using the Netpbm image formats and the
 largely obsolete PBM, PGM, PPM, and PNM classes of <b>libnetpbm</b> functions.
 For those, see
 <ul>
-  <li><a href="libpbm.html">PBM Function Manual</a>
+  <li><a href="libpbm.html">PBM Function Manual</a>,
   <li><a href="libpgm.html">PGM Function Manual</a>,
-  <li><a href="libppm.html">PPM Function Manual</a>
+  <li><a href="libppm.html">PPM Function Manual</a>,
   <li><a href="libpnm.html">PNM Function Manual</a>
 </ul>
 Note that you do <em>not</em> need those functions to process PBM, PGM, PPM,
@@ -45,7 +45,7 @@ oriented toward processing image data.  Read about those in the
 <p>To use these services, #include <b>pam.h</b>.
 
 
-<H2 id="types">Types</h2>
+<h2 id="types">Types</h2>
 
 <p>Here are some important types that you use with <b>libnetpbm</b>:
 
@@ -85,21 +85,21 @@ a <b>pam</b> structure, which is defined as follows:
 
 <pre>
   <code>
-    <B>struct pam {</B>
-        <B>int </B><I>size</I>
-        <B>int </B><I>len</I>
-        <B>FILE *</B><I>file   </I>
-        <B>int </B><I>format</I>
-        <B>int </B><I>plainformat</I>
-        <B>int </B><I>height</I>
-        <B>int </B><I>width</I>
-        <B>int </B><I>depth</I>
-        <B>sample </B><I>maxval</I>
-        <B>int </B><I>bytes_per_sample</I>
-        <B>char </B><I>tuple_type</I><B>[256]</B>
-        <B>int </B><I>allocation_depth</I>
-        <B>char **</B><I>comment_p</I><B>;</B>
-    <B>}</B>
+    <b>struct pam {</b>
+        <b>int </b><i>size</i>
+        <b>int </b><i>len</i>
+        <b>FILE *</b><i>file   </i>
+        <b>int </b><i>format</i>
+        <b>int </b><i>plainformat</i>
+        <b>int </b><i>height</i>
+        <b>int </b><i>width</i>
+        <b>int </b><i>depth</i>
+        <b>sample </b><i>maxval</i>
+        <b>int </b><i>bytes_per_sample</i>
+        <b>char </b><i>tuple_type</i><b>[256]</b>
+        <b>int </b><i>allocation_depth</i>
+        <b>char **</b><i>comment_p</i><b>;</b>
+    <b>}</b>
     </code>
   </pre>
 
@@ -107,25 +107,25 @@ a <b>pam</b> structure, which is defined as follows:
 for information on the <b>pam</b> structure.
 
 
-<H2 id="macros">Macros</h2>
+<h2 id="macros">Macros</h2>
 
-<B>PNM_MAXMAXVAL</B> is the maximum maxval that Netpbm images could
+<b>PNM_MAXMAXVAL</b> is the maximum maxval that Netpbm images could
 historically have: 255.  Many programs aren't capable of handling Netpbm
 images with a maxval larger than this.  It's named this way for backward
 compatibility -- it had this name back when it was <em>the</em> maximum
 maxval.
 
-<p><B>PNM_OVERALLMAXVAL</b> is the maximum maxval that Netpbm images can
+<p><b>PNM_OVERALLMAXVAL</b> is the maximum maxval that Netpbm images can
 have today (65535).
 
-<P><B>PBM_FORMAT</b>, <B>RPBM_FORMAT</b>, <B>PGM_FORMAT</b>,
-<B>RPGM_FORMAT</B>, <b>PPM_FORMAT</B>, <B>RPPM_FORMAT</B>, and
-<B>PAM_FORMAT</B> are the format codes of the various Netpbm formats.
-<B>RPBM_FORMAT</B> is the raw PBM format and <B>PBM_FORMAT</B> is the
+<p><b>PBM_FORMAT</b>, <b>RPBM_FORMAT</b>, <b>PGM_FORMAT</b>,
+<b>RPGM_FORMAT</b>, <b>PPM_FORMAT</b>, <b>RPPM_FORMAT</b>, and
+<b>PAM_FORMAT</b> are the format codes of the various Netpbm formats.
+<b>RPBM_FORMAT</b> is the raw PBM format and <b>PBM_FORMAT</b> is the
 plain PBM format, and so on.  See the <i>format</i> member of <a
 href="libnetpbm_ug.html#pamstruct">the <b>pam</b> structure</a>.
 
-<p><B>PAM_FORMAT_TYPE(</B><I>format</I><B>)</B> gives the type of a
+<p><b>PAM_FORMAT_TYPE(</b><i>format</i><b>)</b> gives the type of a
 format, given the format code.  The types of formats are PBM, PGM,
 PPM, and PAM and macros for the type codes are, respectively,
 PBM_TYPE, PGM_TYPE, PPM_TYPE, and PAM_TYPE.  Note that there are more
@@ -135,59 +135,59 @@ format codes for the plain and raw subformats of each format.
 <p>Macros for the tuple types that are defined by Netpbm are as follows.
 See the <i>tuple_type</i> member of <a
 href="libnetpbm_ug.html#pamstruct">the <b>pam</b> structure</a>.
-<UL>
-<LI><b>PAM_PBM_TUPLETYPE</b>
-<LI><b>PAM_PGM_TUPLETYPE</b>
-<LI><b>PAM_PPM_TUPLETYPE</b>
-<LI><b>PAM_PBM_ALPHA_TUPLETYPE</b>
-<LI><b>PAM_PGM_ALPHA_TUPLETYPE</b>
-<LI><b>PAM_PPM_ALPHA_TUPLETYPE</b>
-</UL>
+<ul>
+<li><b>PAM_PBM_TUPLETYPE</b>
+<li><b>PAM_PGM_TUPLETYPE</b>
+<li><b>PAM_PPM_TUPLETYPE</b>
+<li><b>PAM_PBM_ALPHA_TUPLETYPE</b>
+<li><b>PAM_PGM_ALPHA_TUPLETYPE</b>
+<li><b>PAM_PPM_ALPHA_TUPLETYPE</b>
+</ul>
 
 
-<H2 id="functions">Functions</H2>
+<h2 id="functions">Functions</h2>
 
 <p>These interfaces are declared in <b>pam.h</b>.
 
 <h3 id="memory">Memory Management</h3>
 <h4>Synopsis</h4>
-<P>
-<B>tuple ** pnm_allocpamarray(</B>
-<B>struct pam *</B><I>pamP</I><B>);</B>
+<p>
+<b>tuple ** pnm_allocpamarray(</b>
+<b>struct pam *</b><i>pamP</i><b>);</b>
 
-<P>
-<B>tuple * pnm_allocpamrow(</B>
-<B>struct pam *</B><I>pamP</I><B>);</B>
+<p>
+<b>tuple * pnm_allocpamrow(</b>
+<b>struct pam *</b><i>pamP</i><b>);</b>
 
-<P>
-<B>void pnm_freepamarray(</B>
-<B>tuple **</B><I>tuplearray</I><B>,</B>
-<B>struct pam *</B><I>pamP</I><B>);</B>
+<p>
+<b>void pnm_freepamarray(</b>
+<b>tuple **</b><i>tuplearray</i><b>,</b>
+<b>struct pam *</b><i>pamP</i><b>);</b>
 
-<P>
-<B>void pnm_freepamrow(</B>
-<B>tuple *</B><I>tuplerow</I><B>);</B>
+<p>
+<b>void pnm_freepamrow(</b>
+<b>tuple *</b><i>tuplerow</i><b>);</b>
 
-<P>
-<B>tuple * allocpamtuple(</B>
-<B>struct pam *</B><I>pamP</I><B>);</B>
+<p>
+<b>tuple * allocpamtuple(</b>
+<b>struct pam *</b><i>pamP</i><b>);</b>
 
-<P>
-<B>void pnm_freepamtuple(</B>
-<B>tuple </B><I>tuple</I>
-<B>);</B>
+<p>
+<b>void pnm_freepamtuple(</b>
+<b>tuple </b><i>tuple</i>
+<b>);</b>
 
-<P>
-<B>tuple * allocpamtuplen(</B>
-<B>struct pam *</B><I>pamP</I><B>);</B>
+<p>
+<b>tuple * allocpamtuplen(</b>
+<b>struct pam *</b><i>pamP</i><b>);</b>
 
-<P>
-<B>tuplen * pnm_allocpamrown(</B>
-<B>struct pam *</B><I>pamP</I><B>);</B>
+<p>
+<b>tuplen * pnm_allocpamrown(</b>
+<b>struct pam *</b><i>pamP</i><b>);</b>
 
-<P>
-<B>void pnm_freepamrown(</B>
-<B>tuplen *</B><I>tuplenrow</I><B>);</B>
+<p>
+<b>void pnm_freepamrown(</b>
+<b>tuplen *</b><i>tuplenrow</i><b>);</b>
 
 
 
@@ -196,16 +196,16 @@ href="libnetpbm_ug.html#pamstruct">the <b>pam</b> structure</a>.
 <p><b>pnm_allocpamtuple</b> allocates space for a tuple.
   <b>pnm_freepamtuple</b> frees space allocated for a tuple.
 
-<p><B>pnm_allocpamarray()</B> allocates space for an array of tuples.
-<B>pnm_freepamarray()</B> frees an array space allocated by
-<B>pnm_allocpamarray()</B> or <B>pnm_readpam()</B>.
+<p><b>pnm_allocpamarray()</b> allocates space for an array of tuples.
+<b>pnm_freepamarray()</b> frees an array space allocated by
+<b>pnm_allocpamarray()</b> or <b>pnm_readpam()</b>.
 
 <p><b>pnm_allocpamtuplen</b> is the same as <b>pnm_allocpamtuple</b>
 except that it allocates space for a tuple in the normalized form.
 <b>pnm_freepamtuplen</b> is similarly like <b>pnm_freepamtuple</b>.
 
-<P><B>pnm_allocpamrow() </B> allocates space for a row of a PAM image,
-in basic form.  <B>pnm_freepamrow()</B> frees it.
+<p><b>pnm_allocpamrow() </b> allocates space for a row of a PAM image,
+in basic form.  <b>pnm_freepamrow()</b> frees it.
 
 <p><b>pnm_allocpamrown()</b> is the same as <b>pnm_allocpamrow()</b> 
 except that it allocates space for a PAM row in the normalized form.
@@ -215,43 +215,43 @@ except that it allocates space for a PAM row in the normalized form.
 <h3 id="reading">Reading Netpbm Files</h3>
 <h4>Synopsis</h4>
 
-<P>
-<B>void pnm_readpaminit(</B>
-<B>FILE *</B><I>file</I><B>,</B>
-<B>struct pam *</B><I>pamP</I><B>,</B>
-<B>int </B><I>size</I><B>);</B>
+<p>
+<b>void pnm_readpaminit(</b>
+<b>FILE *</b><i>file</i><b>,</b>
+<b>struct pam *</b><i>pamP</i><b>,</b>
+<b>int </b><i>size</i><b>);</b>
 
-<P>
-<B>void pnm_readpamrow(</B>
-<B>struct pam *</B><I>pamP</I><B>,</B>
-<B>tuple *</B><I>tuplerow</I><B>);</B>
+<p>
+<b>void pnm_readpamrow(</b>
+<b>struct pam *</b><i>pamP</i><b>,</b>
+<b>tuple *</b><i>tuplerow</i><b>);</b>
 
-<P>
-<B>tuple ** pnm_readpam(</B>
-<B>FILE *</B><I>file</I><B>,</B>
-<B>struct pam *</B><I>pamP</I><B>,</B>
-<B>int </B><I>size</I><B>);</B>
+<p>
+<b>tuple ** pnm_readpam(</b>
+<b>FILE *</b><i>file</i><b>,</b>
+<b>struct pam *</b><i>pamP</i><b>,</b>
+<b>int </b><i>size</i><b>);</b>
 
-<P>
-<B>void pnm_readpamrown(</B>
-<B>struct pam *</B><I>pamP</I><B>,</B>
-<B>tuplen *</B><I>tuplenrow</I><B>);</B>
+<p>
+<b>void pnm_readpamrown(</b>
+<b>struct pam *</b><i>pamP</i><b>,</b>
+<b>tuplen *</b><i>tuplenrow</i><b>);</b>
 
 
 <h4>Description</h4>
 
-<P><B>pnm_readpaminit()</B> reads the header of a Netpbm image.
+<p><b>pnm_readpaminit()</b> reads the header of a Netpbm image.
 
 <p>See above for a general description of the <i>pamP</i> argument.
 
 <p><b>pnm_readpaminit()</b> returns the information from the header in
-the <B>*</B><I>pamP</I> structure.  It does not require any members of
-<B>*</B><I>pamP</I> through <b>tuple_type</b> to be set at invocation,
+the <b>*</b><i>pamP</i> structure.  It does not require any members of
+<b>*</b><i>pamP</i> through <b>tuple_type</b> to be set at invocation,
 and sets all of those members.  It expects all members after
 <b>tuple_type</b> to be meaningful.
 
-<p><I>size</I> is the size of the <B>*</B><I>pamP</I> structure as understood
-by the program processing the image.  <b>pnm_readpaminit()</B> does not
+<p><i>size</i> is the size of the <b>*</b><i>pamP</i> structure as understood
+by the program processing the image.  <b>pnm_readpaminit()</b> does not
 attempt to use or set any members of the structure beyond that.  The point of
 this argument is that the definition of the structure may change over time,
 with additional fields being added to the end.  This argument allows
@@ -259,10 +259,10 @@ with additional fields being added to the end.  This argument allows
 exploit the additional features and an old program that cannot (or a new
 program that just doesn't want to deal with the added complexity).  At a
 minimum, this size must contain the members up through <b>tuple_type</b>.  You
-should use the <b>PAM_STRUCT_SIZE</B> macro to compute this argument.
+should use the <b>PAM_STRUCT_SIZE</b> macro to compute this argument.
 E.g. <b>PAM_STRUCT_SIZE(tuple_type)</b>.
 
-<B>PAM_STRUCT_SIZE</B> was introduced in Netpbm 10.23 (July 2004).  In older
+<b>PAM_STRUCT_SIZE</b> was introduced in Netpbm 10.23 (July 2004).  In older
 Netpbm, you can just use sizeof(), but then your code is <em>not</em> forward
 compatible at the source code level with newer libnetpbm (because when you
 compile it with newer libnetpbm header files, you'll be saying your structure
@@ -270,36 +270,36 @@ contains all the new members that have been invented, but your code doesn't
 actually initialize them).  So you might want to compute a proper size
 yourself.
 
-<P>The function expects to find the image file positioned to the start
+<p>The function expects to find the image file positioned to the start
 of the header and leaves it positioned to the start of the raster.
 
-<P><B>pnm_readpamrow()</B> reads a row of the raster from a Netpbm
-image file.  It expects all of the members of the <B>*pamP</B>
+<p><b>pnm_readpamrow()</b> reads a row of the raster from a Netpbm
+image file.  It expects all of the members of the <b>*pamP</b>
 structure to be set upon invocation and does not modify any of them.
 It expects to find the file positioned to the start of the row in
 question in the raster and leaves it positioned just after it.  It
-returns the row as the array of tuples <I>tuplerow</I>, which must
+returns the row as the array of tuples <i>tuplerow</i>, which must
 already have its column pointers set up so that it forms a C
 2-dimensional array.  The leftmost tuple is Element 0 of this array.
 
-<P><B>pnm_readpam()</B> reads an entire image from a PAM or PNM image
+<p><b>pnm_readpam()</b> reads an entire image from a PAM or PNM image
 file and allocates the space in which to return the raster.  It
 expects to find the file positioned to the first byte of the image and
 leaves it positioned just after the image.
 
-<P><B>*</B><I>pamP</I> is the same as for <b>pnm_readpaminit()</b>.
+<p><b>*</b><i>pamP</i> is the same as for <b>pnm_readpaminit()</b>.
 
-<P>The return value is a newly allocated array of the rows of the image,
+<p>The return value is a newly allocated array of the rows of the image,
 with the top row being Element 0 of the array.  Each row is represented
-as <B>pnm_readpamrow()</B> would return.
+as <b>pnm_readpamrow()</b> would return.
 
-<P>The return value is also effectively a 3-dimensional C array of
+<p>The return value is also effectively a 3-dimensional C array of
 samples, with the dimensions corresponding to the height, width, and
 depth of the image, in that order.
 
-<P><B>pnm_readpam()</B> combines the functions of
-<B>pnm_allocpamarray()</B>, <B>pnm_readpaminit()</B>, and iterations
-of <B>pnm_readpamrow()</B>.  It may require more dynamic storage than
+<p><b>pnm_readpam()</b> combines the functions of
+<b>pnm_allocpamarray()</b>, <b>pnm_readpaminit()</b>, and iterations
+of <b>pnm_readpamrow()</b>.  It may require more dynamic storage than
 you can afford.
 
 <p><b>pnm_readpamrown()</b> is like <b>pnm_readpamrow()</b> except that
@@ -314,76 +314,76 @@ that won't fit in a C 'int').
 
 <h3 id="writing">Writing Netpbm Files</h3>
 <h4>Synopsis</h4>
-<P>
-<B>void pnm_writepaminit(</B>
-<B>struct pam *</B><I>pamP</I><B>);</B>
+<p>
+<b>void pnm_writepaminit(</b>
+<b>struct pam *</b><i>pamP</i><b>);</b>
 
-<P>
-<B>void pnm_writepamrow(</B>
-<B>struct pam *</B><I>pamP</I><B>,</B>
-<B>const tuple *</B><I>tuplerow</I><B>);</B>
+<p>
+<b>void pnm_writepamrow(</b>
+<b>struct pam *</b><i>pamP</i><b>,</b>
+<b>const tuple *</b><i>tuplerow</i><b>);</b>
 
-<P>
-<B>void pnm_writepam(</B>
-<B>struct pam *</B><I>pamP</I><B>,</B>
-<B>const tuple * const *</B><I>tuplearray</I><B>);</B>
+<p>
+<b>void pnm_writepam(</b>
+<b>struct pam *</b><i>pamP</i><b>,</b>
+<b>const tuple * const *</b><i>tuplearray</i><b>);</b>
 
-<P>
-<B>void pnm_writepamrown(</B>
-<B>struct pam *</B><I>pamP</I><B>,</B>
-<B>const tuplen *</B><I>tuplerown</I><B>);</B>
+<p>
+<b>void pnm_writepamrown(</b>
+<b>struct pam *</b><i>pamP</i><b>,</b>
+<b>const tuplen *</b><i>tuplerown</i><b>);</b>
 
 <p>
 <b>void pnm_formatpamrow(</b>
-<B>struct pam *</B><I>pamP</I><B>,</B>
-<B>const tuple *</B><I>tuplerow</I>
+<b>struct pam *</b><i>pamP</i><b>,</b>
+<b>const tuple *</b><i>tuplerow</i>
 <b>unsigned char * const </b><i>outbuf</i><b>,</b>
 <b>unsigned int * const </b><i>rowSizeP</i>
-<B>);</B>
+<b>);</b>
 
 <h4>Description</h4>
 
-<P><B>pnm_writepaminit()</B> writes the header of a PAM or PNM image
+<p><b>pnm_writepaminit()</b> writes the header of a PAM or PNM image
 and computes some of the fields of the pam structure.
 
 <p>See above for a description of the <i>pamP</i> argument.
 
-<P>The following members of the <B>*</B><I>pamP</I> structure must be
+<p>The following members of the <b>*</b><i>pamP</i> structure must be
 set upon invocation to tell the function how and what to write.
-<B>size</B>, <B>len</B>, <B>file</B>, <B>format</B>, <B>height</B>,
-<B>width</B>, <B>depth</B>, <B>maxval</B>.  Furthermore, if
-<b>format</b> is <b>PAM_FORMAT</b>, <B>tuple_type</B> must be set and
+<b>size</b>, <b>len</b>, <b>file</b>, <b>format</b>, <b>height</b>,
+<b>width</b>, <b>depth</b>, <b>maxval</b>.  Furthermore, if
+<b>format</b> is <b>PAM_FORMAT</b>, <b>tuple_type</b> must be set and
 if <b>format</b> is <em>not</em> <b>PAM_FORMAT</b>, <b>plainformat</b>
 must be set.
 
-<P><B>pnm_writepaminit()</B> sets the <B>bytes_per_sample</B> member based on
+<p><b>pnm_writepaminit()</b> sets the <b>bytes_per_sample</b> member based on
 the information supplied.
 
-<P><B>pnm_writepamrow()</B> writes a row of the raster into a PAM or
+<p><b>pnm_writepamrow()</b> writes a row of the raster into a PAM or
 PNM image file.  It expects to find the file positioned where the row
 should start and leaves it positioned just after the row.  The
-function requires all the elements of <B>*</B><I>pamP</I> to be set
+function requires all the elements of <b>*</b><i>pamP</i> to be set
 upon invocation and doesn't modify them.
 
-<P><I>tuplerow</I> is an array of tuples representing the row.  The
+<p><i>tuplerow</i> is an array of tuples representing the row.  The
 leftmost tuple is Element 0 of this array.
 
-<p><B>pnm_writepam()</B> writes an entire PAM or PNM image to a PAM or
+<p><b>pnm_writepam()</b> writes an entire PAM or PNM image to a PAM or
 PNM image file.  It expects to find the file positioned to where the
 image should start and leaves it positioned just after the image.
 
 <p>The members of the <b>*</b><i>pamP</i> structure that must be set up
 invocation, and their meanings, is the same as for <b>pnm_writepaminit</b>.
 
-<P><B>pnm_writepam()</B> sets the <B>bytes_per_sample</B> member based on the
+<p><b>pnm_writepam()</b> sets the <b>bytes_per_sample</b> member based on the
 information supplied.
 
-<P><I>tuplearray</I> is an array of rows such that you would pass to
-<B>pnm_writepamrow()</B>, with the top row being Element 0 of the
+<p><i>tuplearray</i> is an array of rows such that you would pass to
+<b>pnm_writepamrow()</b>, with the top row being Element 0 of the
 array.
 
-<P><B>pnm_writepam()</B> combines the functions of
-<B>pnm_writepaminit()</B>, and iterations of <B>pnm_writepamrow()</B>.
+<p><b>pnm_writepam()</b> combines the functions of
+<b>pnm_writepaminit()</b>, and iterations of <b>pnm_writepamrow()</b>.
 Its raster input may be more storage than you can afford.
 
 <p><b>pnm_writepamrown()</b> is like <b>pnm_writepamrow()</b> except that
@@ -404,92 +404,92 @@ C library string functions.
 
 <h4>Synopsis</h4>
 
-<P>
-<B>void pnm_YCbCrtuple(</B>
-<B>tuple </B><I>tuple</I><B>,</B>
-<B>double *</B><I>YP</I><B>,</B>
-<B>double *</B><I>CrP</I><B>,</B>
-<B>double *</B><I>CbP</I><B>);</B>
-
-<P>
-<B>void pnm_YCbCr_to_rgbtuple(</B>
-<B>const struct pam * const </B><I>pamP</I><B>,</B>
-<B>tuple const </B><I>tuple</I><B>,</B>
-<B>double const </B><I>Y</I><B>,</B>
-<B>double const </B><I>Cb</I><B>,</B>
-<B>double const </B><I>Cr</I><B>,</B>
-<B>int * const </B><I>overflowP</I><B>);</B>
-
-<P>
-<B>extern double pnm_lumin_factor[3];</B>
-
-<P>
-<B>void pnm_normalizetuple(</B>
-<B>struct pam * const </B><I>pamP</I><B>,</B>
-<B>tuple        const </B><I>tuple</I><B>,</B>
-<B>tuplen       const </B><I>tuplen</I><B>);</B>
-
-<P>
-<B>void pnm_unnormalizetuple(</B>
-<B>struct pam * const </B><I>pamP</I><B>,</B>
-<B>tuplen       const </B><I>tuplen</I><B>,</B>
-<B>tuple        const </B><I>tuple</I><B>);</B>
-
-<P>
-<B>void pnm_normalizeRow(</B>
-<B>struct pam *       const </B><I>pamP</I><B>,</B>
-<B>const tuple *      const </B><I>tuplerow</I><B>,</B>
-<B>pnm_transformMap * const </B><I>transform</I><B>,</B>
-<B>tuplen *           const </B><I>tuplenrow</I><B>);</B>
-
-<P>
-<B>void pnm_unnormalizeRow(</B>
-<B>struct pam *       const </B><I>pamP</I><B>,</B>
-<B>const tuplen *     const </B><I>tuplenrow</I><B>,</B>
-<B>pnm_transformMap * const </B><I>transform</I><B>,</B>
-<B>tuple *            const </B><I>tuplerow</I><B>);</B>
-
-<P>
-<B>void pnm_gammarown(</B>
-<B>struct pam * const </B><I>pamP</I><B>,</B>
-<B>tuplen *     const </B><I>row</I><B>);</B>
-
-<P>
-<B>void pnm_ungammarown(</B>
-<B>struct pam * const </B><I>pamP</I><B>,</B>
-<B>tuplen *     const </B><I>row</I><B>);</B>
-
-<P>
-<B>void pnm_applyopacityrown(</B>
-<B>struct pam * const </B><I>pamP</I><B>,</B>
-<B>tuplen *     const </B><I>tuplenrow</I><B>);</B>
-
-<P>
-<B>void pnm_unapplyopacityrown(</B>
-<B>struct pam * const </B><I>pamP</I><B>,</B>
-<B>tuplen *     const </B><I>tuplenrow</I><B>);</B>
-<P>
-<B>pnm_transformMap * pnm_creategammatransform(</B>
-<B>const struct pam * const </B><I>pamP</I><B>);</B>
-
-<P>
-<B>void pnm_freegammatransform(</B>
-<B>const pnm_transformMap * const </B><I>transform</I><B>,</B>
-<B>const struct pam *       const </B><I>pamP</I><B>);</B>
-
-<P>
-<B>pnm_transformMap * pnm_createungammatransform(</B>
-<B>const struct pam * const </B><I>pamP</I><B>);</B>
-
-<P>
-<B>void pnm_freeungammatransform(</B>
-<B>const pnm_transformMap * const </B><I>transform</I><B>,</B>
-<B>const struct pam *       const </B><I>pamP</I><B>);</B>
+<p>
+<b>void pnm_YCbCrtuple(</b>
+<b>tuple </b><i>tuple</i><b>,</b>
+<b>double *</b><i>YP</i><b>,</b>
+<b>double *</b><i>CrP</i><b>,</b>
+<b>double *</b><i>CbP</i><b>);</b>
+
+<p>
+<b>void pnm_YCbCr_to_rgbtuple(</b>
+<b>const struct pam * const </b><i>pamP</i><b>,</b>
+<b>tuple const </b><i>tuple</i><b>,</b>
+<b>double const </b><i>Y</i><b>,</b>
+<b>double const </b><i>Cb</i><b>,</b>
+<b>double const </b><i>Cr</i><b>,</b>
+<b>int * const </b><i>overflowP</i><b>);</b>
+
+<p>
+<b>extern double pnm_lumin_factor[3];</b>
+
+<p>
+<b>void pnm_normalizetuple(</b>
+<b>struct pam * const </b><i>pamP</i><b>,</b>
+<b>tuple        const </b><i>tuple</i><b>,</b>
+<b>tuplen       const </b><i>tuplen</i><b>);</b>
+
+<p>
+<b>void pnm_unnormalizetuple(</b>
+<b>struct pam * const </b><i>pamP</i><b>,</b>
+<b>tuplen       const </b><i>tuplen</i><b>,</b>
+<b>tuple        const </b><i>tuple</i><b>);</b>
+
+<p>
+<b>void pnm_normalizeRow(</b>
+<b>struct pam *       const </b><i>pamP</i><b>,</b>
+<b>const tuple *      const </b><i>tuplerow</i><b>,</b>
+<b>pnm_transformMap * const </b><i>transform</i><b>,</b>
+<b>tuplen *           const </b><i>tuplenrow</i><b>);</b>
+
+<p>
+<b>void pnm_unnormalizeRow(</b>
+<b>struct pam *       const </b><i>pamP</i><b>,</b>
+<b>const tuplen *     const </b><i>tuplenrow</i><b>,</b>
+<b>pnm_transformMap * const </b><i>transform</i><b>,</b>
+<b>tuple *            const </b><i>tuplerow</i><b>);</b>
+
+<p>
+<b>void pnm_gammarown(</b>
+<b>struct pam * const </b><i>pamP</i><b>,</b>
+<b>tuplen *     const </b><i>row</i><b>);</b>
+
+<p>
+<b>void pnm_ungammarown(</b>
+<b>struct pam * const </b><i>pamP</i><b>,</b>
+<b>tuplen *     const </b><i>row</i><b>);</b>
+
+<p>
+<b>void pnm_applyopacityrown(</b>
+<b>struct pam * const </b><i>pamP</i><b>,</b>
+<b>tuplen *     const </b><i>tuplenrow</i><b>);</b>
+
+<p>
+<b>void pnm_unapplyopacityrown(</b>
+<b>struct pam * const </b><i>pamP</i><b>,</b>
+<b>tuplen *     const </b><i>tuplenrow</i><b>);</b>
+<p>
+<b>pnm_transformMap * pnm_creategammatransform(</b>
+<b>const struct pam * const </b><i>pamP</i><b>);</b>
+
+<p>
+<b>void pnm_freegammatransform(</b>
+<b>const pnm_transformMap * const </b><i>transform</i><b>,</b>
+<b>const struct pam *       const </b><i>pamP</i><b>);</b>
+
+<p>
+<b>pnm_transformMap * pnm_createungammatransform(</b>
+<b>const struct pam * const </b><i>pamP</i><b>);</b>
+
+<p>
+<b>void pnm_freeungammatransform(</b>
+<b>const pnm_transformMap * const </b><i>transform</i><b>,</b>
+<b>const struct pam *       const </b><i>pamP</i><b>);</b>
 
 
 <h4>Description</h4>
 
-<P><B>pnm_YCbCrtuple()</B> returns the Y/Cb/Cr luminance/chrominance
+<p><b>pnm_YCbCrtuple()</b> returns the Y/Cb/Cr luminance/chrominance
 representation of the color represented by the input tuple, assuming
 that the tuple is an RGB color representation (which is the case if it
 was read from a PPM image).  The output components are based on the
@@ -533,7 +533,7 @@ alone.
 not one that <b>libnetpbm</b> recognizes as having an opacity plane),
 <b>pnm_applyopacityrown()</b> does nothing (which is the same as assuming
 opacity 100%).  The tuple types that <b>libnetpbm</b> recognizes as
-having opacity are <B>RGB_ALPHA</B> and <B>GRAYSCALE_ALPHA</B>.
+having opacity are <b>RGB_ALPHA</b> and <b>GRAYSCALE_ALPHA</b>.
 
 <p><b>pnm_unapplyopacityrown()</b> does the reverse.  It assumes the
 intensities are already reduced according to the opacity plane, and
@@ -625,57 +625,57 @@ destroy the objects.
 
 <h4>Synopsis</h4>
 
-<P>
-<B>tuple pnm_parsecolor(</B>
-<B>const char * </B><I>colorname</I><b>,</b>
+<p>
+<b>tuple pnm_parsecolor(</b>
+<b>const char * </b><i>colorname</i><b>,</b>
 <b>sample </b><i>maxval</i>
-<B>);</B>
+<b>);</b>
   
-<P>
-<B>tuple pnm_parsecolor2(</B>
-<B>const char * </B><I>colorname</I><b>,</b>
+<p>
+<b>tuple pnm_parsecolor2(</b>
+<b>const char * </b><i>colorname</i><b>,</b>
 <b>sample </b><i>maxval</i><b>,</b>
 <b>int </b><i>closeOk</i>
-<B>);</B>
+<b>);</b>
   
-<P>
-<B>tuplen pnm_parsecolorn(</B>
-<B>const char * </B><I>colorname</I>
-<B>);</B>
+<p>
+<b>tuplen pnm_parsecolorn(</b>
+<b>const char * </b><i>colorname</i>
+<b>);</b>
 
 
-<P>
-<B>pnm_colorspec_rgb_integer(</B>
+<p>
+<b>pnm_colorspec_rgb_integer(</b>
 <b>struct pam * </b><i>pamP</i><b>,</b>
 <b>tuple </b><i>color</i><b>,</b>
 <b>sample </b><i>maxval</i>
-<B>);</B>
+<b>);</b>
 
-<P>
-<B>pnm_colorspec_rgb_norm(</B>
+<p>
+<b>pnm_colorspec_rgb_norm(</b>
 <b>struct pam * </b><i>pamP</i><b>,</b>
 <b>tuple </b><i>color</i>
 <b>unsigned int </b><i>digitCt</i>
-<B>);</B>
+<b>);</b>
 
-<P>
-<B>pnm_colorspec_rgb_x11(</B>
+<p>
+<b>pnm_colorspec_rgb_x11(</b>
 <b>struct pam * </b><i>pamP</i><b>,</b>
 <b>tuple </b><i>color</i><b>,</b>
 <b>unsigned int </b><i>hexDigitCt</i>
-<B>);</B>
+<b>);</b>
 
-<P>
-<B>pnm_colorspec_dict(</B>
+<p>
+<b>pnm_colorspec_dict(</b>
 <b>struct pam * </b><i>pamP</i><b>,</b>
 <b>tuple </b><i>color</i>
-<B>);</B>
+<b>);</b>
 
-<P>
-<B>pnm_colorspec_dict_close(</B>
+<p>
+<b>pnm_colorspec_dict_close(</b>
 <b>struct pam * </b><i>pamP</i><b>,</b>
 <b>tuple </b><i>color</i>
-<B>);</B>
+<b>);</b>
 
 
 <h4>Description</h4>
@@ -735,40 +735,45 @@ such as <b>pnm_parsecolor</b> and is the return value of functions such as
 
 <ul>
 
-<li>a name, as defined in the <a href="#rgb.txt">system color dictionary
+<li>a name, as defined in the <a href="libppm.html#dictionary">system color dictionary
 </a>.
 
-<LI> An X11-style hexadecimal specifier:
-<tt>rgb:<i>r</i>/<i>g</i>/<i>b</i></tt>, where <i>r</i>, <i>g</i>, and
-<i>b</i> are each 1- to 4-digit hexadecimal numbers.  For each, the maxval
-is the maximum number that can be represented in the number of hexadecimal
-digits given.  Example: <tt>rgb:01/ff/8000</tt> specifies 1/255 red
-intensity, maximum green intensity, and about half blue intensity.
-
-<LI> An X11-style decimal specifier:
-<tt>rgbi:<i>r</i>/<i>g</i>/<i>b</i></tt>, where <i>r</i>, <i>g</i>,
-and <i>b</i> are floating point numbers from 0 to 1.  Example:
-<tt>rgbi:1.0/0.5/.25</tt>.
-
-<li><tt>rgb-<i>maxval</i>:<i>r</i>/<i>g</i>/<i>b</i></tt>, where
-<i>r</i>, <i>g</i>, and <i>b</i> are integers from 0 to <i>maxval</i>.
-Example: <tt>rgb-255:255/128/64</tt>.  <i>maxval</i> can be from 1 to 65535.
+<li> An X11-style hexadecimal specifier:
+<span style="font-family: monospace">rgb:<i>r</i>/<i>g</i>/<i>b</i></span>,
+where <i>r</i>, <i>g</i>, and
+<i>b</i> are each 1- to 4-digit hexadecimal numbers.  For each, the maxval is
+the maximum number that can be represented in the number of hexadecimal digits
+given.  Example: <span style="font-family: monospace">rgb:01/ff/8000</span>
+specifies 1/255 red intensity, maximum green intensity, and about half blue
+intensity.
+
+<li> An X11-style decimal specifier:
+<span style="font-family: monospace">rgbi:<i>r</i>/<i>g</i>/<i>b</i></span>,
+where <i>r</i>, <i>g</i>, and <i>b</i> are floating point numbers from 0 to 1.
+Example: <span style="font-family: monospace">rgbi:1.0/0.5/.25</span>.
+
+<li><span style="font-family:monospace">rgb-<i>maxval</i>:<i>r</i>/<i>g</i>/<i>b</i></span>, where <i>r</i>, <i>g</i>, and <i>b</i> are integers from 0 to
+<i>maxval</i>.  Example: <span style="font-family: monospace">
+rgb-255:255/128/64</span>.  <i>maxval</i> can be from 1 to 65535.
 <p>
 This format was new in Netpbm 10.83 (June 2018).
 
-<li>an old-X11-style hexadecimal triple: <tt>#rgb</tt>, <tt>#rrggbb</tt>, 
-<tt>#rrrgggbbb</tt>, or <tt>#rrrrggggbbbb</tt>.
+<li>an old-X11-style hexadecimal triple: <span style="font-family: monospace">
+#rgb</span>, <span style="font-family: monospace">#rrggbb</span>,
+<span style="font-family: monospace">#rrrgggbbb</span>, or
+<span style="font-family: monospace">#rrrrggggbbbb</span>.
 
 <li>A triplet of decimal floating point numbers from 0.0 to 1.0, representing
 red, green, and blue intensities respectively, separated by commas.
-Example: <tt>1.0,0.5,.25</tt>.  This is for backwards compatibility; it was in
-use before MIT came up with the similar and preferred rgbi style).
+Example: <span style="font-family: monospace">1.0,0.5,.25</span>.  This is for
+backwards compatibility; it was in use before MIT came up with the similar and
+preferred rgbi style).
 
 </ul>
 
-<P>If <i>colorname</i> does not conform to any of these formats, including the
+<p>If <i>colorname</i> does not conform to any of these formats, including the
 case that it is a name, but is not in the system color dictionary,
-<B>pnm_parsecolor()</B> <a href="liberror.html">throws an error</a>.
+<b>pnm_parsecolor()</b> <a href="liberror.html">throws an error</a>.
 
   
 <h3 id="misc">Miscellaneous</h3>
@@ -776,30 +781,30 @@ case that it is a name, but is not in the system color dictionary,
 <h4>Synopsis</h4>
 
 
-<P>
-<B>void pnm_checkpam(</B>
-<B>struct pam *</B><I>pamP</I><B>,</B>
-<B>const enum pm_check_type </B><I>check_type</I><B>,</B>
-<B>enum pm_check_code *</B><I>retvalP</I><B>);</B>
+<p>
+<b>void pnm_checkpam(</b>
+<b>struct pam *</b><i>pamP</i><b>,</b>
+<b>const enum pm_check_type </b><i>check_type</i><b>,</b>
+<b>enum pm_check_code *</b><i>retvalP</i><b>);</b>
 
-<P>
-<B>void pnm_nextimage(</B>
-<B>FILE *</B><I>file</I><B>,</B>
-<B>int * const </B><I>eofP</I><B>);</B>
+<p>
+<b>void pnm_nextimage(</b>
+<b>FILE *</b><i>file</i><b>,</b>
+<b>int * const </b><i>eofP</i><b>);</b>
 
 <h4>Description</h4>
 
-<P><B>pnm_checkpam()</B> checks for the common file integrity error
+<p><b>pnm_checkpam()</b> checks for the common file integrity error
 where the file is the wrong size to contain the raster, according to
 the information in the header.
 
-<P><B>pnm_nextimage()</B>positions a Netpbm image input file to the
-next image in it (so that a subsequent <B>pnm_readpaminit()</B> reads
+<p><b>pnm_nextimage()</b>positions a Netpbm image input file to the
+next image in it (so that a subsequent <b>pnm_readpaminit()</b> reads
 its header).
 
 
-<HR>
-<H2 id="toc">Table Of Contents</H2>
+<hr>
+<h2 id="toc">Table Of Contents</h2>
 
 <ul>
   <li><a href="#types">Types</a>
@@ -820,5 +825,5 @@ its header).
 
 
 
-</BODY>
-</HTML>
+</body>
+</html>
diff --git a/pamaltsat.html b/pamaltsat.html
index 55ee8927..1e4b039b 100644
--- a/pamaltsat.html
+++ b/pamaltsat.html
@@ -117,12 +117,15 @@ with a suitable intensity.
 
 <p>The effect of this method on each component intensity may be expressed in
 the following equation:
-<center>
-<tt>sat = orig * strength - Iorig * (strength - 1)</tt>
-</center>
-<br>
-where <tt>sat</tt> is the saturated sample, <tt>orig</tt> the original sample,
-and <tt>Iorig</tt> the total intensity of the original color.
+<pre>
+<span style="font-family: monospace">
+    sat = orig * strength - Iorig * (strength - 1)
+</span>
+</pre>
+where <span style="font-family: monospace">sat</span> is the saturated
+sample, <span style="font-family: monospace">orig</span> the original sample,
+and <span style="font-family: monospace">Iorig</span> the total intensity of
+the original color.
 
 <p>The method is also related to color integrity because both its operations
 are part of that concept: multiplication of component intensities by the same
@@ -150,8 +153,8 @@ command line options:
 <dd>specifies the saturation method to use:
 <table>
 <tr><th>method name</th><th>option value</th></tr>
-<tr><td>Logarithmic</td><td><tt>log </tt></td></tr>
-<tr><td>Spectral   </td><td><tt>spectrum</tt></td></tr>
+<tr><td>Logarithmic</td><td><kbd>log </kbd></td></tr>
+<tr><td>Spectral   </td><td><kbd>spectrum</kbd></td></tr>
 </table>
 
 <p>The default is <b>spectrum</b>
diff --git a/pamarith.html b/pamarith.html
index edefd981..02c348fa 100644
--- a/pamarith.html
+++ b/pamarith.html
@@ -279,11 +279,11 @@ that made it backward compatible with <b>pnmarith</b>.
   <ul>
   <li><a href="#maxval">Maxval</a>
   </ul>
+<li><a href="#note">NOTE: UNARY FUNCTIONS</a>
 <li><a href="#options">OPTIONS</a>
   <ul>
-  <li><a href="#options">The Functions</a>
+  <li><a href="#function">The Function</a>
   </ul>
-<li><a href="#note">NOTE: UNARY FUNCTIONS</a>
 <li><a href="#seealso">SEE ALSO</a>
 <li><a href="#history">HISTORY</a>
 </ul>
diff --git a/pamcrater.html b/pamcrater.html
index 16189d06..77b3d879 100644
--- a/pamcrater.html
+++ b/pamcrater.html
@@ -1,44 +1,35 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML><HEAD><TITLE>Pamcrater User Manual</TITLE></HEAD>
-<BODY>
-<H1>pamcrater</H1>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.3//EN">
+<html><head><title>Pamcrater User Manual</title></head>
+<body>
+<h1>pamcrater</h1>
 Updated: 03 November 2014
-<BR>
-<A HREF="#index">Table Of Contents</A>
+<br>
+<a href="#index">Table Of Contents</a>
 
-<H2>NAME</H2>
+<h2>NAME</h2>
 
 pamcrater - create cratered terrain by fractal forgery
 
-<h2 id="examples">EXAMPLES</h2>
-
-<pre>
-<kbd>
-    $ pamcrater | pamshadedrelief | pamx
-
-    $ pamcrater -number=500000 -height=1000 -width=1000 &gt;craters.pam
-</kbd>  
-</pre>
 
-<H2 id="synopsis">SYNOPSIS</H2>
+<h2 id="synopsis">SYNOPSIS</h2>
 
-<B>pamcrater</B>
+<b>pamcrater</b>
 
-[<B>-number</B> <I>n</I>]
+[<b>-number</b> <i>n</i>]
 
-[<B>-height</B> <I>pixels</I>]
+[<b>-height</b> <i>pixels</i>]
 
-[<B>-width</B> <I>pixels</I>]
+[<b>-width</b> <i>pixels</i>]
 
 [<b>-randomseed=</b><i>integer</i>]
 
 [<b>-verbose</b>]
 
-<H2 id="description">DESCRIPTION</H2>
+<h2 id="description">DESCRIPTION</h2>
 
 <p>This program is part of <a href="index.html">Netpbm</a>.
 
-<P><B>pamcrater</B> creates a PAM image which is a terrain map (not a visual
+<p><b>pamcrater</b> creates a PAM image which is a terrain map (not a visual
 image) of cratered terrain.  The terrain is as if a given number of impacts
 into a surface create craters with random position and size.
 
@@ -56,20 +47,20 @@ depth-one image of tuple type "elevation", with the sample value
 being proportional to an elevation.
 
 <p>You can visualize the terrain map by generating a shaded relief image of it
-with <b>pamshadedrelief</b>.  <P>High resolution images with large numbers of
-craters often benefit from being piped through <B>pnmsmooth</B>.  The
+with <b>pamshadedrelief</b>.  <p>High resolution images with large numbers of
+craters often benefit from being piped through <b>pnmsmooth</b>.  The
 averaging performed by this process eliminates some of the jagged pixels and
 lends a mellow ``telescopic image'' feel to the overall picture.
 
-<P><B>pamcrater</B> generates only small craters, which are hemispherical in
+<p><b>pamcrater</b> generates only small craters, which are hemispherical in
 shape (regardless of the incidence angle of the impacting body, as long as the
 velocity is sufficiently high).  Large craters, such as Copernicus and Tycho
 on the Moon, have a ``walled plain'' shape with a cross-section more like:
 
-<PRE>
+<pre>
                 /\                            /\
           _____/  \____________/\____________/  \_____
-</PRE>
+</pre>
 
 
 <p>Larger craters should really use this profile, including the central
@@ -82,29 +73,34 @@ peak, and totally obliterate the pre-existing terrain.
 identical output.
 
 
-<H2 id="options">OPTIONS</H2>
+<h2 id="options">OPTIONS</h2>
+
+<p>In addition to the options common to all programs based on libnetpbm
+(most notably <b>-quiet</b>, see <a href="index.html#commonoptions">
+Common Options</a>), <b>pamcrater</b> recognizes the following
+command line options:
 
-<P>All options can be abbreviated to their shortest unique prefix.
+<p>All options can be abbreviated to their shortest unique prefix.
 
-<DL COMPACT>
-<DT><B>-number</B> <I>n</I>
+<dl compact>
+<dt><b>-number</b> <i>n</i>
 
-<DD>This causes <b>pamcrater</b> to generate <I>n</I> craters.  If you do not
-specify <B>-number</B>, it generates 50000 craters.  Don't expect to see them
+<dd>This causes <b>pamcrater</b> to generate <i>n</i> craters.  If you do not
+specify <b>-number</b>, it generates 50000 craters.  Don't expect to see them
 all!  For every large crater there are many, many more tiny ones which tend
 simply to erode the landscape.  In general, the more craters you specify, the
 more realistic the result; ideally you want the entire terrain to have been
 extensively turned over again and again by cratering.  High resolution images
 containing five to ten million craters are stunning but take longer to create.
 
-<DT><B>-height</B> <I>height</I>
+<dt><b>-height</b> <i>height</i>
 
-<DD>This sets the height of the generated image to <I>height</I> pixels.
+<dd>This sets the height of the generated image to <i>height</i> pixels.
 The default height is 256 pixels.
 
-<DT><B>-width</B> <I>width</I>
+<dt><b>-width</b> <i>width</i>
 
-<DD>This sets the width of the generated image to <I>width</I> pixels.  The
+<dd>This sets the width of the generated image to <i>width</i> pixels.  The
 default width is 256 pixels.
 
 <dt><b>-randomseed=</b><i>integer</i>
@@ -127,56 +123,65 @@ is doing.
 
 <p>This option was new in Neptbm 10.69 (December 2014).
 
-</DL>
+</dl>
 
+<h2 id="examples">EXAMPLES</h2>
 
-<H2 id="designnotes">DESIGN NOTES</H2>
+<pre>
+<kbd>
+    $ pamcrater | pamshadedrelief | pamx
 
-<P>Real craters have two distinct morphologies.
+    $ pamcrater -number=500000 -height=1000 -width=1000 &gt;craters.pam
+</kbd>  
+</pre>
+
+<h2 id="designnotes">DESIGN NOTES</h2>
+
+<p>Real craters have two distinct morphologies.
 
 
-<H2 id="seealso">SEE ALSO</H2>
+<h2 id="seealso">SEE ALSO</h2>
 
-<B><A HREF="pamshadedrelief.html">pamshadedrelief</A></B>,
+<b><a href="pamshadedrelief.html">pamshadedrelief</a></b>,
 
-<B><A HREF="ppmrelief.html">ppmrelief</A></B>,
+<b><a href="ppmrelief.html">ppmrelief</a></b>,
 
-<B><A HREF="pnmsmooth.html">pnmsmooth</A></B>
+<b><a href="pnmsmooth.html">pnmsmooth</a></b>
 
-<B><A HREF="pam.html">pam</A></B>,
+<b><a href="pam.html">pam</a></b>,
 
-<DL COMPACT>
-<DT>[1]
-<DD>Peitgen, H.-O., and Saupe, D. eds., The Science Of Fractal Images,
+<dl compact>
+<dt>[1]
+<dd>Peitgen, H.-O., and Saupe, D. eds., The Science Of Fractal Images,
 New York: Springer Verlag, 1988.
 
-</DL>
+</dl>
 
-<H2 id="author">AUTHOR</H2>
+<h2 id="author">AUTHOR</h2>
 
 <p><b>pgmcrater</b>, from which this is derived, was written by John Walker:
 
-<PRE>
+<pre>
 John Walker
 Autodesk SA
 Avenue des Champs-Montants 14b
 CH-2074 MARIN
 Suisse/Schweiz/Svizzera/Svizra/Switzerland
-    <B>Usenet:</B><A HREF="mailto:kelvin@Autodesk.com">kelvin@Autodesk.com</A>
-    <B>Fax:</B>038/33 88 15
-    <B>Voice:</B>038/33 76 33
-</PRE>
+    <b>Usenet:</b><a href="mailto:kelvin@Autodesk.com">kelvin@Autodesk.com</a>
+    <b>Fax:</b>038/33 88 15
+    <b>Voice:</b>038/33 76 33
+</pre>
 
-<P>Permission to use, copy, modify, and distribute this software and
+<p>Permission to use, copy, modify, and distribute this software and
 its documentation for any purpose and without fee is hereby granted,
 without any conditions or restrictions.  This software is provided
 "as is" without express or implied warranty.
 
 
-<H2 id="history">HISTORY</H2>
+<h2 id="history">HISTORY</h2>
 
 <p>John Walker wrote <b>pgmcrater</b> in 1991 and it was included in Pbmplus.
-<b>pgmcrater</b> did the equivalent of <tt>pamcrater | pamshadedrelief</tt>.
+<b>pgmcrater</b> did the equivalent of <kbd>pamcrater | pamshadedrelief</kbd>.
 In Netpbm 10.68 (September 2014), Bryan Henderson split the functions
 of <b>pgmcrater</b> into two programs, one (<b>pamcrater</b>) to compute
 elevations, and the other (<b>pamshadedrelief</b>) to generate a shaded relief
@@ -188,7 +193,7 @@ the <b>pamshadedrelief</b> might be useful with other inputs.
 events described above; minor changes, including replacement of most of the
 code, happened in between).
 
-<P>The original 1991 <b>pgmcrater</b> manual contains the following:
+<p>The original 1991 <b>pgmcrater</b> manual contains the following:
 
 <h3>PLUGWARE!</h3>
 
@@ -205,16 +210,17 @@ more than 200 pages includes an introduction by James Gleick and
 detailed explanations by Rudy Rucker of the mathematics and algorithms
 used by each program.
 
-<HR>
-<H2 id="index">Table Of Contents</H2>
-<UL>
-<LI><A HREF="#synopsis">SYNOPSIS</A>
-<LI><A HREF="#description">DESCRIPTION</A>
-<LI><A HREF="#options">OPTIONS</A>
-<LI><A HREF="#designnotes">DESIGN NOTES</A>
-<LI><A HREF="#seealso">SEE ALSO</A>
-<LI><A HREF="#author">AUTHOR</A>
-<LI><A HREF="#history">HISTORY</A>
-</UL>
-</BODY>
-</HTML>
+<hr>
+<h2 id="index">Table Of Contents</h2>
+<ul>
+<li><a href="#synopsis">SYNOPSIS</a>
+<li><a href="#description">DESCRIPTION</a>
+<li><a href="#options">OPTIONS</a>
+<li><a href="#examples">EXAMPLES</a>
+<li><a href="#designnotes">DESIGN NOTES</a>
+<li><a href="#seealso">SEE ALSO</a>
+<li><a href="#author">AUTHOR</a>
+<li><a href="#history">HISTORY</a>
+</ul>
+</body>
+</html>
diff --git a/pamedge.html b/pamedge.html
index 2a3cae47..24696341 100644
--- a/pamedge.html
+++ b/pamedge.html
@@ -25,8 +25,8 @@ an image that outlines the edges.
 maxval of the output is at least 255 and if the input is PBM, the output
 is PGM.
 
-<p>You can pipe the result through <tt>pamditherbw -threshold</tt> and play
-with the threshold value to get a PBM (bilevel image) of the edges.
+<p>You can pipe the result through <kbd>pamditherbw -threshold</kbd> and
+play with the threshold value to get a PBM (bilevel image) of the edges.
 
 The edge detection technique used is to take the Pythagorean sum of
 two Sobel gradient operators at 90 degrees to each other.  For more
diff --git a/pamperspective.html b/pamperspective.html
index 9f5e9f01..b456de77 100644
--- a/pamperspective.html
+++ b/pamperspective.html
@@ -1,10 +1,8 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.3//EN">
 <html><head><title>Pamperspective User Manual</title></head>
-
 <body>
-
 <h1>pamperspective</h1>
-Updated: 2 September 2004
+Updated: 02 September 2004
 <br>
 <a href="#index">Table Of Contents</a>
 
@@ -53,7 +51,7 @@ pamperspective - a reverse scanline renderer for Netpbm images
 
 </pre>
 
-<?makeman .SH OPTION USAGE ?>
+<?makeman .sh option usage ?>
 <p>Minimum unique abbreviation of option is acceptable. (But note 
 that shortest unique prefixes might be longer in future versions of 
 the program.) You may use single hyphens instead of double hyphen to 
@@ -62,7 +60,7 @@ to separate an option name from its value. All options starting with
 hyphens may be given in any order. 
 
 
-<h2 id="description">DESCRIPTION</H2>
+<h2 id="description">DESCRIPTION</h2>
 
 <p>This program is part of <a href="index.html">Netpbm</a>.
 
@@ -90,6 +88,11 @@ angle.
 
 <h2 id="options">OPTIONS</h2>
 
+<p>In addition to the options common to all programs based on libnetpbm
+(most notably <b>-quiet</b>, see <a href="index.html#commonoptions">
+Common Options</a>), <b>pamperspective</b> recognizes the following
+command line options:
+
 <p>For options of the form <b>--name=</b><i>num</i>, You can specify
 the value <i>num</i> in any of the traditional ways.  Additionally,
 you can specify it as <i>num1</i>/<i>num2</i>, where <i>num1</i> and
@@ -98,7 +101,7 @@ specifying a width/height ratio of 4/3, without having to write
 infinitely many digits.  Where <i>num</i> is supposed to be a natural
 number, <b>pamperspective</b> does not allow this format.
 
-<h3>Quadrilateral specification options</h3>
+<h3 id="quadspecoptions">Quadrilateral Specification Options</h3>
 
 <dl>
   <dt><b>--upper_left_x=</b><i>num</i></dt>
@@ -451,15 +454,15 @@ pamflip -rotate90 infile |
   
 <h2 id="seealso">SEE ALSO</h2>
 
-<a href="http://netpbm.sourceforge.net/doc/index.html"><b>netpbm</b></a>,
-<a href="http://netpbm.sourceforge.net/doc/pam.html"><b>pam</b></a>,
-<a href="http://netpbm.sourceforge.net/doc/pnm.html"><b>pnm</b></a>,
-<a href="http://netpbm.sourceforge.net/doc/pamcut.html"><b>pamcut</b></a>,
-<a href="http://netpbm.sourceforge.net/doc/pamflip.html"><b>pamflip</b></a>,
-<a href="http://netpbm.sourceforge.net/doc/pnmrotate.html"><b>pnmrotate</b></a>,
-<a href="http://netpbm.sourceforge.net/doc/pamscale.html"><b>pamscale</b></a>,
-<a href="http://netpbm.sourceforge.net/doc/pnmshear.html"><b>pnmshear</b></a>,
-<a href="http://netpbm.sourceforge.net/doc/pnmstitch.html"><b>pnmstitch</b></a>
+<a href="index.html"><b>netpbm</b></a>,
+<a href="pam.html"><b>pam</b></a>,
+<a href="pnm.html"><b>pnm</b></a>,
+<a href="pamcut.html"><b>pamcut</b></a>,
+<a href="pamflip.html"><b>pamflip</b></a>,
+<a href="pnmrotate.html"><b>pnmrotate</b></a>,
+<a href="pamscale.html"><b>pamscale</b></a>,
+<a href="pnmshear.html"><b>pnmshear</b></a>,
+<a href="pnmstitch.html"><b>pnmstitch</b></a>
 
 <h2 id="history">HISTORY</h2>
 
@@ -475,24 +478,24 @@ to copy, distribute and/or modify this document under the terms of the
 GNU General Public License, Version 2 or any later version published
 by the Free Software Foundation.
 
-<HR>
+<hr>
 <h2 id="index">Table Of Contents</h2>
 <ul>
 <li><a href="#synopsis">SYNOPSIS</a>
 <li><a href="#description">DESCRIPTION</a>
 <li><a href="#options">OPTIONS</a>
   <ul>
+  <li><a href="#quadspecoptions">Quadrilateral Specification Options</a>
   <li><a href="#frameoptions">Frame Options</a>
   <li><a href="#outputsizeoptions">Output Size Options</a>
   <li><a href="#outputoptions">Output Options</a>
   </ul>
-<li><a href="#hints">HINTS</a>  
-<li><a href="#seealso">SEE ALSO</a>  
-<li><a href="#history">HISTORY</a>  
-<li><a href="#author">AUTHOR</a>  
+<li><a href="#hints">HINTS</a>
+<li><a href="#seealso">SEE ALSO</a>
+<li><a href="#history">HISTORY</a>
+<li><a href="#author">AUTHOR</a>
 </ul>
-
-</body></html>
-
+</body>
+</html>
 
 
diff --git a/pamsistoaglyph.html b/pamsistoaglyph.html
index 84877178..1ca53ac8 100644
--- a/pamsistoaglyph.html
+++ b/pamsistoaglyph.html
@@ -1,23 +1,15 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<title>Pamsistoaglyph User Manual</title>
-<meta http-equiv="content-type" content="text/html; charset=us-ascii" />
-</head>
-
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.3//EN">
+<html><head><title>Pamsistoaglyph User Manual</title></head>
 <body>
-
 <h1>pamsistoaglyph</h1>
+Updated: 05 April 2009
+<br>
+<a href="#index">Table Of Contents</a>
 
-<p>Updated: 5 April 2009
-
-<p><a href="#index">Table Of Contents</a></p>
-
+<h2>NAME</h2>
 
-<h2 id="name">NAME</h2>
-
-<p>pamsistoaglyph - convert a single-image stereogram to a red/cyan
-anaglyphic image</p>
+pamsistoaglyph - convert a single-image stereogram to a red/cyan
+anaglyphic image
 
 
 <h2 id="synopsis">SYNOPSIS</h2>
@@ -28,11 +20,11 @@ anaglyphic image</p>
 [--<b>minsep</b>=<i>number</i>]
 [--<b>gray</b>=<i>number</i>]
 [<i>in_netpbmfile</i>
-</p>
+
 
 <p>All options can be abbreviated to their shortest unique prefix. You
 may use either white space or an equals sign between an option name
-and its value.</p>
+and its value.
 
 
 <h2 id="description">DESCRIPTION</h2>
@@ -40,34 +32,38 @@ and its value.</p>
 <p>This program is part of <a href="index.html">Netpbm</a>.
 
 <p><b>pamsistoaglyph</b> reads a Netpbm image as input and
-produces a Netpbm image as output.</p>
+produces a Netpbm image as output.
 
 <p><b>pamsistoaglyph</b> takes a single-image stereogram
 (SIS) such as those produced by <a href=
-"http://netpbm.sourceforge.net/doc/pamstereogram.html">pamstereogram</a>
+"pamstereogram.html">pamstereogram</a>
 and converts it to a red/cyan anaglyphic image such as those produced
-by <a href="http://netpbm.sourceforge.net/doc/ppm3d.html">ppm3d</a>.
+by <a href="ppm3d.html">ppm3d</a>.
 Many people have trouble tricking their eyes into focusing beyond the
 image in front of them and are therefore unable to perceive the 3-D
 shape hidden within a single-image stereogram.  Anaglyphic stereograms
 are easier to perceive in 3-D but require a pair of red/cyan glasses
 such as those often used to watch 3-D movies. The goal of
 <b>pamsistoaglyph</b> is to help people who have trouble
-viewing single-image stereograms see the intriguing 3-D effect.</p>
+viewing single-image stereograms see the intriguing 3-D effect.
 
 <p><b>pamsistoaglyph</b> can convert single-image random-dot
 stereograms (SIRDS), wallpaper stereograms, and even dual-image
-stereograms to anaglyphic images.</p>
+stereograms to anaglyphic images.
 
 
 <h2 id="options">OPTIONS</h2>
 
-<p>For most images, no command-line options need to be specified. The
-following options are available, however, for unusual
-circumstances:</p>
+<p>In addition to the options common to all programs based on libnetpbm
+(most notably <b>-quiet</b>, see <a href="index.html#commonoptions">
+Common Options</a>), <b>pamsistoaglyph</b> recognizes the following
+command line options:
+
+<p>For most images, no command-line options need to be specified.  The
+following options are available, however, for unusual circumstances.
 
 <dl>
-<dt><b>--invert</b></dt>
+<dt><b>--invert</b>
 <dd>Swap the left- and right-eye
     images. <b>pamsistoaglyph</b> assumes that its input
     represents a wall-eyed stereogram and generates the anaglyphic
@@ -75,17 +71,17 @@ circumstances:</p>
     the page where it should pop out of the page (and vice versa),
     this typically implies that the input image represents a
     cross-eyed stereogram. Use <b>--invert</b> to correct
-    the image depth.</dd>
+    the image depth.
 
-<dt><b>--sep</b>=<i>number</i></dt>
+<dt><b>--sep</b>=<i>number</i>
 <dd>Specify the distance in pixels between the left- and right-eye
     images. Essentially, this corresponds to the distance between
     repetitions of the background pattern.  The <b>--sep</b>
     option should rarely be necessary
     as <b>pamsistoaglyph</b> is fairly good at determining
-    automatically the eye-separation distance.</dd>
+    automatically the eye-separation distance.
 
-<dt><b>--minsep</b>=<i>number</i></dt>
+<dt><b>--minsep</b>=<i>number</i>
 <dd>This option is similar to <b>--sep</b> but
     constrains <b>pamsistoaglyph</b> only to
     a <i>minimum</i> eye-separation distance. Any distance larger
@@ -94,9 +90,9 @@ circumstances:</p>
     as <b>pamsistoaglyph</b> is fairly good at determining
     automatically the eye-separation distance.  The default value for
     the minimum eye-separation distance is 10% of the image width;
-    this value seems to work well in practice.</dd>
+    this value seems to work well in practice.
 
-<dt><b>--gray</b>=<i>number</i></dt>
+<dt><b>--gray</b>=<i>number</i>
 <dd>Limit the number of gray levels to use when searching for the
     optimal eye-separation
     distance.  Because <b>pamsistoaglyph</b> looks for
@@ -107,7 +103,7 @@ circumstances:</p>
     unintentional color variations (such as those caused by conversion
     from a low-quality JPEG image, for example). The default of 63
     seems to work well so the <b>--gray</b> option should
-    rarely be necessary.</dd>
+    rarely be necessary.
 </dl>
 
 
@@ -116,22 +112,22 @@ circumstances:</p>
 <p>The registration algorithm used by <b>pamsistoaglyph</b>
 was developed specifically for this program. As far as the author
 knows, there are no existing algorithms for converting stereograms to
-anaglyphs.  The algorithm works as follows:</p>
+anaglyphs.  The algorithm works as follows:
 
 <ol>
 <li>Convert the image to grayscale to increase the ability to identify
-    matches.</li>
+    matches.
 
 <li>Count the number of pixels that match <i>N</i> pixels ahead in the
-    image for all <i>N</i> in [1, <i>width</i>/2].</li>
+    image for all <i>N</i> in [1, <i>width</i>/2].
 
 <li>Maintain a running mean (&mu;) and standard deviation (&sigma;) of
-    the number of matched pixels.</li>
+    the number of matched pixels.
 
 <li>Store the <i>N</i> corresponding to each spike in the number of
     matched pixels. A spike is defined as a tally that exceeds the
     mean plus one, two, or three standard deviations. Only the first
-    spike of a given standard-deviation multiplier is stored.</li>
+    spike of a given standard-deviation multiplier is stored.
 
 <li>If a tally greater than &mu;+3&sigma; was encountered, return the
     corresponding <i>N</i>. If not, then if a tally greater than
@@ -142,13 +138,13 @@ anaglyphs.  The algorithm works as follows:</p>
     produces the minimum average distance between matched pixels
     (i.e.,&nbsp;<i>#matches</i> divided by <i>#pixels</i>). If no
     such <i>N</i> exceeds the minimum allowable eye-separation value,
-    return zero to indicate failure.</li>
+    return zero to indicate failure.
 
 <li>If the algorithm returned zero, rerun the algorithm independently
     on each row of the input image and return the median of
     all <i>N</i> that exceed the minimum allowable eye-separation
     value. If no such <i>N</i> exists, abort with an error
-    message.</li>
+    message.
 </ol>
 
 <h2 id="history">HISTORY</h2>
@@ -160,7 +156,7 @@ in Netpbm in Release 10.47 (June 2009).
 <h2 id="author">AUTHOR</h2>
 
 <p>Copyright (C) 2009 Scott
-Pakin, <a href="mailto:scott+pbm@pakin.org.">scott+pbm@pakin.org.</a></p>
+Pakin, <a href="mailto:scott+pbm@pakin.org.">scott+pbm@pakin.org.</a>
 
 
 <h2 id="seealso">SEE ALSO</h2>
@@ -178,13 +174,13 @@ Pakin, <a href="mailto:scott+pbm@pakin.org.">scott+pbm@pakin.org.</a></p>
 <h2 id="index">Table Of Contents</h2>
 
 <ul>
-<li><a href="#synopsis">SYNOPSIS</a></li>
-<li><a href="#description">DESCRIPTION</a></li>
-<li><a href="#options">OPTIONS</a></li>
-<li><a href="#notes">NOTES</a></li>
-<li><a href="#history">HISTORY</a></li>
-<li><a href="#author">AUTHOR</a></li>
-<li><a href="#seealso">SEE ALSO</a></li>
+<li><a href="#synopsis">SYNOPSIS</a>
+<li><a href="#description">DESCRIPTION</a>
+<li><a href="#options">OPTIONS</a>
+<li><a href="#notes">NOTES</a>
+<li><a href="#history">HISTORY</a>
+<li><a href="#author">AUTHOR</a>
+<li><a href="#seealso">SEE ALSO</a>
 </ul>
 
 </body>
diff --git a/pamstretch-gen.html b/pamstretch-gen.html
index a142526f..bb8ec239 100644
--- a/pamstretch-gen.html
+++ b/pamstretch-gen.html
@@ -26,9 +26,6 @@ image by any factor; it's like a more general version of <b>pamstretch</b>
 
 <b>pamstretch-gen</b> uses the <b>-dropedge</b> option on <b>pamstretch</b>.
 
-<p>The Netpbm global options <b>-quiet</b> and <b>-plain</b> do not exist
-on <b>pamstretch-gen</b>.
-
 
 <h2 id="options">OPTIONS</h2>
 
@@ -37,6 +34,11 @@ for <b>pamstretch-gen</b>, but it recognizes the options common to all
 programs based on libnetpbm (See <a href="index.html#commonoptions">
 Common Options</a>.)
 
+<p>The Netpbm global options <b>-quiet</b> and <b>-plain</b> did not
+exist on <b>pamstretch-gen</b> prior to version 10.86 (March 2019).
+<b>-quiet</b> did not work until version 10.91 (June 2020).
+
+
 <h2 id="seealso">SEE ALSO</h2>
 
 <b><a href="pamstretch.html">pamstretch</a></b>,
diff --git a/pamthreshold.html b/pamthreshold.html
index 30727ea7..88030505 100644
--- a/pamthreshold.html
+++ b/pamthreshold.html
@@ -1,36 +1,36 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML>
-<HEAD><TITLE>Pamthreshold User Manual</TITLE></HEAD>
-<BODY>
-<H1>pamthreshold</H1>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.3//EN">
+<html>
+<head><title>Pamthreshold User Manual</title></head>
+<body>
+<h1>pamthreshold</h1>
 Updated: 06 June 2007
-<BR>
-<A HREF="#index">Table Of Contents</A>
+<br>
+<a href="#index">Table Of Contents</a>
 
-<H2>NAME</H2>
+<h2>NAME</h2>
 
 pamthreshold - threshold grayscale image to black and white
 
-<H2 id="synopsis">SYNOPSIS</H2>
+<h2 id="synopsis">SYNOPSIS</h2>
 
-<B>pamthreshold</B>
+<b>pamthreshold</b>
 [<b>-simple</b>]
 [<b>-local=</b><i>width</i><b>x</b><i>height</i>]
 [<b>-dual=</b><i>width</i><b>x</b><i>height</i>]
 [<b>-threshold=</b><i>threshold</i>]
 [<b>-contrast=</b><i>threshold</i>]
-[<I>inputpamfile</I>]
+[<i>inputpamfile</i>]
 
-<P>Minimum unique abbreviations of options are acceptable. You may use
+<p>Minimum unique abbreviations of options are acceptable. You may use
 double hyphens instead of a single hyphen to denote options. You may use
 white space in place of the equals sign to separate an option name
 from its value.
 
-<H2 id="description">DESCRIPTION</H2>
+<h2 id="description">DESCRIPTION</h2>
 
 <p>This program is part of <a href="index.html">Netpbm</a>.
 
-<P><b>pamthreshold</b> thresholds a grayscale image. Thresholding means
+<p><b>pamthreshold</b> thresholds a grayscale image. Thresholding means
 dividing the image into background and foreground by comparing every pixel
 to a thresholding value.
 
@@ -50,7 +50,7 @@ amount of space that PAM uses for the image) with
 
 <p>The output is to Standard Output.
 
-<P>When the input has a transparency channel, <b>pamthreshold</b> includes
+<p>When the input has a transparency channel, <b>pamthreshold</b> includes
 a transparency channel in the output.  Since the output has maxval 1, the
 transparency channel can indicate only fully transparent or fully opaque.
 <b>pamthreshold</b> make it fully transparent where the input is more
@@ -62,9 +62,14 @@ that, <b>pamthreshold</b> ignores any transparency channel in the input.
 <p>Another way to convert a grayscale image to black and white is to
 dither.  Dithering is using clustered black and white pixels such that
 if you step back and look at the picture, you see varying levels of
-gray.  <B>pamditherbw</B> does dithering.
+gray.  <b>pamditherbw</b> does dithering.
 
-<H2 id="options">OPTIONS</H2>
+<h2 id="options">OPTIONS</h2>
+
+<p>In addition to the options common to all programs based on libnetpbm
+(most notably <b>-quiet</b>, see <a href="index.html#commonoptions">
+Common Options</a>), <b>pamthreshold</b> recognizes the following
+command line options:
 
 <p>Without any options, <b>pamthreshold</b> uses a method based on the
 iterative algorithm found in
@@ -83,7 +88,7 @@ Error, and you can turn them off with the Netpbm common option
 <p>Options <b>-simple</b>, <b>-local</b>, and <b>-dual</b> select other
 methods.
 
-<DL COMPACT>
+<dl compact>
 
 <dt><b>-simple</b></dt>
 
@@ -139,17 +144,17 @@ the range [0, 1].
 <p>If you don't specify this option, <b>pamthreshold</b> uses a contrast
 threshold of 0.05.  Without <b>-dual</b> this option is meaningless.
 
-</DL>
+</dl>
 
 
-<H2 id="seealso">SEE ALSO</H2>
+<h2 id="seealso">SEE ALSO</h2>
 
-<B><A HREF="pamditherbw.html">pamditherbw</A></B>,
-<B><A HREF="ppmtopgm.html">ppmtopgm</A></B>,
-<B><A HREF="pamtopnm.html">pamtopnm</A></B>,
-<B><A HREF="pam.html">pam</A></B>
+<b><a href="pamditherbw.html">pamditherbw</a></b>,
+<b><a href="ppmtopgm.html">ppmtopgm</a></b>,
+<b><a href="pamtopnm.html">pamtopnm</a></b>,
+<b><a href="pam.html">pam</a></b>
 
-<H2 id="history">HISTORY</H2>
+<h2 id="history">HISTORY</h2>
 
 <p><b>pamthreshold</b> was new in Netpbm 10.34 (June 2006).
 
@@ -158,16 +163,16 @@ threshold of 0.05.  Without <b>-dual</b> this option is meaningless.
 <b>pamthreshold</b> is Copyright &copy; 2006 by Erik Auerswald and released
 under the <a href="http://www.gnu.org/licenses/gpl.html">GPL</a>.
 
-<HR>
-<H2 id="index">Table Of Contents</H2>
-<UL>
-<LI><A HREF="#synopsis">SYNOPSIS</A>
-<LI><A HREF="#options">OPTIONS</A>
-<LI><A HREF="#description">DESCRIPTION</A>
-<LI><A HREF="#seealso">SEE ALSO</A>
-<LI><A HREF="#history">HISTORY</A>
-<LI><A HREF="#author">AUTHOR</A>
-</UL>
-</BODY>
-</HTML>
+<hr>
+<h2 id="index">Table Of Contents</h2>
+<ul>
+<li><a href="#synopsis">SYNOPSIS</a>
+<li><a href="#description">DESCRIPTION</a>
+<li><a href="#options">OPTIONS</a>
+<li><a href="#seealso">SEE ALSO</a>
+<li><a href="#history">HISTORY</a>
+<li><a href="#author">AUTHOR</a>
+</ul>
+</body>
+</html>
 
diff --git a/pamtilt.html b/pamtilt.html
index 7b51a679..c61877cd 100644
--- a/pamtilt.html
+++ b/pamtilt.html
@@ -1,15 +1,15 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML><HEAD><TITLE>Pamtilt User Manual</TITLE></HEAD>
-<BODY>
-<H1>pamtilt</H1>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.3//EN">
+<html><head><title>Pamtilt User Manual</title></head>
+<body>
+<h1>pamtilt</h1>
 Updated: 28 August 2005
-<BR>
-<A HREF="#index">Table Of Contents</A>
+<br>
+<a href="#index">Table Of Contents</a>
 
-<H2>NAME</H2>
+<h2>NAME</h2>
 pamtilt - print the tilt angle of a PGM file
 
-<H2 id="synopsis">SYNOPSIS</H2>
+<h2 id="synopsis">SYNOPSIS</h2>
 
 <b>pamtilt</b>
 [<b>-angle=</b><i>maxangle</i>]
@@ -27,13 +27,13 @@ pamtilt - print the tilt angle of a PGM file
 
 <pre>
 <kbd>
-    scanimage --mode Gray --resolution 300 >crooked.pgm
-    pnmrotate -b white `pamtilt crooked.pgm` crooked.pgm >straight.pgm
+    scanimage --mode Gray --resolution 300 &gt;crooked.pgm
+    pnmrotate -b white `pamtilt crooked.pgm` crooked.pgm &gt;straight.pgm
 </kbd>
     (then crop, threshold, etc.)
 </pre>
 
-<H2 id="description">DESCRIPTION</H2>
+<h2 id="description">DESCRIPTION</h2>
 
 <p>This program is part of <a href="index.html">Netpbm</a>.
 
@@ -63,11 +63,14 @@ well as grayscale, but you will minimize artifacts if you scan and
 rotate in grayscale before you apply a threshold to make a bilevel
 image.
         
-<H2 id="options">OPTIONS</H2>
+<h2 id="options">OPTIONS</h2>
 
-<p>A few options have general utility:
+<p>In addition to the options common to all programs based on libnetpbm
+(most notably <b>-quiet</b>, see <a href="index.html#commonoptions">
+Common Options</a>), <b>pamtilt</b> recognizes the following
+command line options:
 
-<DL COMPACT>
+<dl compact>
 
 <dt><b>-angle=</b><i>maxangle</i>
 
@@ -94,8 +97,8 @@ Show on Standard Error the measurements computed at each tested angle.
 accommodate a wide variety of input documents.
 
 <dl>
-<DT>
-<B>-quality=</B><i>q</i>
+<dt>
+<b>-quality=</b><i>q</i>
 
 <dd>Require a signal-to-noise ratio of a least <i>q</i> on the first
 iteration to report a valid result.  Larger values reduce the chances
@@ -140,7 +143,7 @@ Set the angle increment of the first iteration, in degrees.
 
 <h2 id="references">REFERENCES</h2>
 
-<p><B>pamtilt</B> implements a somewhat simplified algorithm inspired
+<p><b>pamtilt</b> implements a somewhat simplified algorithm inspired
 by: "Measuring Document Image Skew and Orientation", by Bloomberg,
 Kopec, and Dasari.  In SPIE Volume 2422, Document Recognition II,
 pages 302-316, February 1995.
@@ -159,15 +162,16 @@ pages 302-316, February 1995.
 <p>Gregg Townsend wrote it and sent it to Bryan Henderson in August
 2005.  Bryan recoded it to fit Netpbm conventions.
 
-<HR>
-<H2 id="index">Table Of Contents</H2>
-<UL>
-<LI><A HREF="#synopsis">SYNOPSIS</A>
-<LI><A HREF="#examples">EXAMPLES</A>
-<LI><A HREF="#description">DESCRIPTION</A>
-<LI><A HREF="#options">OPTIONS</A>
-<LI><A HREF="#seealso">SEE ALSO</A>
-<LI><A HREF="#history">HISTORY</A>
-</UL>
-</BODY>
-</HTML>
+<hr>
+<h2 id="index">Table Of Contents</h2>
+<ul>
+<li><a href="#synopsis">SYNOPSIS</a>
+<li><a href="#examples">EXAMPLES</a>
+<li><a href="#description">DESCRIPTION</a>
+<li><a href="#options">OPTIONS</a>
+<li><a href="#references">REFERENCES</a>
+<li><a href="#seealso">SEE ALSO</a>
+<li><a href="#history">HISTORY</a>
+</ul>
+</body>
+</html>
diff --git a/pamtoavs.html b/pamtoavs.html
index f5d0ccce..5d0ae359 100644
--- a/pamtoavs.html
+++ b/pamtoavs.html
@@ -2,7 +2,7 @@
 <html><head><title>Pamtoavs User Manual</title></head>
 <body>
 <h1>pamtoavs</h1>
-Updated: 7 February 2010
+Updated: 07 February 2010
 <br>
 <a href="#index">Table Of Contents</a>
 
@@ -20,7 +20,7 @@ Updated: 7 February 2010
 <p>This program is part of <a href="index.html">Netpbm</a>.
 
 <p><b>pamtoavs</b> reads a Netpbm image as input and produces a Stardent
-<acronym xml:lang="en" title="Application Visualization System">AVS</acronym>
+<abbr title="Application Visualization System">AVS</abbr>
 X image as output. AVS X images are one of the few image formats <a
 href="http://www.gnuplot.info/">Gnuplot</a>&nbsp;v4.2 and later can use.
 
diff --git a/pamtofits.html b/pamtofits.html
index acad58b1..24446081 100644
--- a/pamtofits.html
+++ b/pamtofits.html
@@ -1,23 +1,23 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML><HEAD><TITLE>Pamtofits User Manual</TITLE></HEAD>
-<BODY>
-<H1>pamtofits</H1>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.3//EN">
+<html><head><title>Pamtofits User Manual</title></head>
+<body>
+<h1>pamtofits</h1>
 Updated: 25 September 2005
-<BR>
-<A HREF="#index">Table Of Contents</A>
+<br>
+<a href="#index">Table Of Contents</a>
 
-<H2>NAME</H2>
+<h2>NAME</h2>
 
 pamtofits - convert a Netpbm image into FITS format
 
-<H2 id="synopsis">SYNOPSIS</H2>
+<h2 id="synopsis">SYNOPSIS</h2>
 
-<B>pamtofits</B>
-[<B>-max</B> <I>f</I>]
-[<B>-min</B> <I>f</I>]
-[<I>pamfile</I>]
+<b>pamtofits</b>
+[<b>-max</b> <i>f</i>]
+[<b>-min</b> <i>f</i>]
+[<i>pamfile</i>]
 
-<H2 id="description">DESCRIPTION</H2>
+<h2 id="description">DESCRIPTION</h2>
 
 <p>This program is part of <a href="index.html">Netpbm</a>.
 
@@ -29,7 +29,12 @@ PGM image, the output file consists of a single plane image (NAXIS =
 2). If instead the input file is a PPM image, the output file will
 consist of a three-plane image (NAXIS = 3, NAXIS3 = 3).
 
-<H2 id="options">OPTIONS</H2>
+<h2 id="options">OPTIONS</h2>
+
+<p>In addition to the options common to all programs based on libnetpbm
+(most notably <b>-quiet</b>, see <a href="index.html#commonoptions">
+Common Options</a>), <b>pamtofits</b> recognizes the following
+command line options:
 
 <p><b>-min</b> and <b>-max</b> tell <b>pamtofits</b> what "physical
 values" zero and maxval sample values, respectively, in the input
@@ -83,31 +88,31 @@ PAM input.  It was extended and renamed in Netpbm 10.30 (October 2005).
 <p><b>pnmtofits</b> was itself an extension of <b>pgmtofits</b>, which
 was added to Pbmplus in 1989.
 
-<H2 id="seealso">SEE ALSO</H2>
+<h2 id="seealso">SEE ALSO</h2>
 
-<A HREF="fitstopnm.html">fitstopnm</A>,
-<A HREF="pam.html">pam</A>
+<a href="fitstopnm.html">fitstopnm</a>,
+<a href="pam.html">pam</a>
 
-<H2 id="author">AUTHOR</H2>
+<h2 id="author">AUTHOR</h2>
 
-Copyright (C) 1989 by Wilson H. Bent (<A
-HREF="mailto:whb@hoh-2.att.com">whb@hoh-2.att.com</A>), with
-modifications by Alberto Accomazzi (<A
-HREF="mailto:alberto@cfa.harvard.edu">alberto@cfa.harvard.edu</A>).
+Copyright (C) 1989 by Wilson H. Bent (<a
+href="mailto:whb@hoh-2.att.com">whb@hoh-2.att.com</a>), with
+modifications by Alberto Accomazzi (<a
+href="mailto:alberto@cfa.harvard.edu">alberto@cfa.harvard.edu</a>).
 
-<HR>
-<H2 id="index">Table Of Contents</H2>
-<UL>
-<LI><A HREF="#synopsis">SYNOPSIS</A>
-<LI><A HREF="#description">DESCRIPTION</A>
-<LI><A HREF="#options">OPTIONS</A>
-<LI><A HREF="#notes">NOTES</A>
+<hr>
+<h2 id="index">Table Of Contents</h2>
+<ul>
+<li><a href="#synopsis">SYNOPSIS</a>
+<li><a href="#description">DESCRIPTION</a>
+<li><a href="#options">OPTIONS</a>
+<li><a href="#notes">NOTES</a>
   <ul>
   <li><a href="#pixelorder">Pixel Order</a>
   </ul>
-<LI><A HREF="#history">HISTORY</A>
-<LI><A HREF="#seealso">SEE ALSO</A>
-<LI><A HREF="#author">AUTHOR</A>
-</UL>
-</BODY>
-</HTML>
+<li><a href="#history">HISTORY</a>
+<li><a href="#seealso">SEE ALSO</a>
+<li><a href="#author">AUTHOR</a>
+</ul>
+</body>
+</html>
diff --git a/pamtohdiff.html b/pamtohdiff.html
index a75b115f..e903a08f 100644
--- a/pamtohdiff.html
+++ b/pamtohdiff.html
@@ -1,31 +1,26 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML><HEAD><TITLE>Pamtohdiff User Manual</TITLE></HEAD>
-<BODY>
-<H1>pamtohdiff</H1>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.3//EN">
+<html><head><title>Pamtohdiff User Manual</title></head>
+<body>
+<h1>pamtohdiff</h1>
 Updated: 15 April 2002
-<BR>
-<A HREF="#index">Table Of Contents</A>
+<br>
+<a href="#index">Table Of Contents</a>
 
-<H2>NAME</H2>
+<h2>NAME</h2>
 
 pamtohdiff - convert PAM image to horizontal difference image
 
-<H2 id="synopsis">SYNOPSIS</H2>
+<h2 id="synopsis">SYNOPSIS</h2>
 
-<B>pamtohdiff</B>
-[<I>pamfile</I>]
-[<B>-verbose</B>]
+<b>pamtohdiff</b>
+[<i>pamfile</i>]
+[<b>-verbose</b>]
 
-<P>
-Minimum unique abbreviation of option is acceptable.  You may use double
-hyphens instead of single hyphens to denote options.  You may use white
-space in place of the equals sign to separate an option name from its value.
-
-<H2 id="description">DESCRIPTION</H2>
+<h2 id="description">DESCRIPTION</h2>
 
 <p>This program is part of <a href="index.html">Netpbm</a>.
 
-<P><B>pamtohdiff</B> takes a PAM (or PNM) image as input and produces a
+<p><b>pamtohdiff</b> takes a PAM (or PNM) image as input and produces a
 horizontal difference image version of it as output.  A horizontal
 difference image is one where the samples in each row indicate the
 difference between the sample value in the corresponding sample of the
@@ -36,7 +31,7 @@ over a long extent, the corresponding row in the horizontal difference
 image will contain all zeroes.  That makes it compress better than the
 original image.
 
-<P>Because the horizontal difference samples can be positive or
+<p>Because the horizontal difference samples can be positive or
 negative, but PAM samples are unsigned integers, the samples in the
 horizontal difference image PAM are defined to be the difference
 modulus the range of the input (maxval + 1).  This doesn't lose any
@@ -63,28 +58,45 @@ though, do a <b>pamdepth</b> to double the maxval first.
 difference of zero, which is most common, is represented by a PAM sample
 value in the output of one half the maxval.
 
-<P>The output PAM has a tuple type of "hdiff".
+<p>The output PAM has a tuple type of "hdiff".
 
-<P>You can use <B>hdifftopam</B> to recover the original image from a
+<p>You can use <b>hdifftopam</b> to recover the original image from a
 horizontal difference image PAM.
 
 
-<H2 id="seealso">SEE ALSO</H2>
+<h2 id="options">OPTIONS</h2>
+
+<p>In addition to the options common to all programs based on libnetpbm
+(most notably <b>-quiet</b>, see <a href="index.html#commonoptions">
+Common Options</a>), <b>pamtohdiff</b> recognizes the following
+command line option:
+
+<dl compact>
+<dt><b>-verbose</b>
+<dd>Currently no effect.  This may change in future versions.
+
+<!-- Minimum unique abbreviation of options is acceptable.  You may use
+double hyphens instead of single hyphens. -->
+
+</dl>
+
+<h2 id="seealso">SEE ALSO</h2>
 
-<B><A HREF="hdifftopam.html">hdifftopam</A></B>,
-<B><A HREF="pamdepth.html">pamdepth</A></B>,
+<b><a href="hdifftopam.html">hdifftopam</a></b>,
+<b><a href="pamdepth.html">pamdepth</a></b>
 
-<H2 id="author">AUTHOR</H2>
+<h2 id="author">AUTHOR</h2>
 
 Bryan Henderson
 
-<HR>
-<H2 id="index">Table Of Contents</H2>
-<UL>
-<LI><A HREF="#synopsis">SYNOPSIS</A>
-<LI><A HREF="#description">DESCRIPTION</A>
-<LI><A HREF="#seealso">SEE ALSO</A>
-<LI><A HREF="#author">AUTHOR</A>
-</UL>
-</BODY>
-</HTML>
+<hr>
+<h2 id="index">Table Of Contents</h2>
+<ul>
+<li><a href="#synopsis">SYNOPSIS</a>
+<li><a href="#description">DESCRIPTION</a>
+<li><a href="#options">OPTIONS</a>
+<li><a href="#seealso">SEE ALSO</a>
+<li><a href="#author">AUTHOR</a>
+</ul>
+</body>
+</html>
diff --git a/pamtowinicon.html b/pamtowinicon.html
index dc764087..38def617 100644
--- a/pamtowinicon.html
+++ b/pamtowinicon.html
@@ -1,137 +1,137 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML><HEAD><TITLE>Pamtowinicon User Manual</TITLE></HEAD>
-<BODY>
-<H1>pamtowinicon</H1>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.3//EN">
+<html><head><title>Pamtowinicon User Manual</title></head>
+<body>
+<h1>pamtowinicon</h1>
 Updated: 12 April 2013
-<BR>
-<A HREF="#index">Table of Contents</A>
+<br>
+<a href="#index">Table Of Contents</a>
 
-<H2 id="name">NAME</H2>
+<h2>NAME</h2>
 
 pamtowinicon - convert Netpbm PAM images to a Microsoft Windows icon file
 
-<H2 id="synopsis">SYNOPSIS</H2>
+<h2 id="synopsis">SYNOPSIS</h2>
 
-<B>pamtowinicon</B>
-[<B>-pngthreshold=</B><I>threshold</I>]
-[<B>-truetransparent</B>]
-[<B>-verbose</B>]
-[<I>pam_file</I>]
+<b>pamtowinicon</b>
+[<b>-pngthreshold=</b><i>threshold</i>]
+[<b>-truetransparent</b>]
+[<b>-verbose</b>]
+[<i>pam_file</i>]
 
-<P>All options can be abbreviated to their shortest unique prefix.
+<p>All options can be abbreviated to their shortest unique prefix.
 You may use two hyphens instead of one to designate an option.  You
 may use either white space or equals signs between an option name and
 its value.
 
-<H2 id="description">DESCRIPTION</H2>
+<h2 id="description">DESCRIPTION</h2>
 
 <p>This program is part of <a href="index.html">Netpbm</a>.
 
-<P><B>pamtowinicon</B> reads an RGB_ALPHA Netpbm PAM file and converts it to a
+<p><b>pamtowinicon</b> reads an RGB_ALPHA Netpbm PAM file and converts it to a
 Microsoft Windows icon file.
 
-<P>The output goes to Standard Output.
+<p>The output goes to Standard Output.
 
 <p>The input is a multi-image PAM file; each image becomes an icon in the
 output file.  If you have input images in multiple files, you can simply
 combine them with <b>cat</b> and pass the result to <b>pamtowinicon</b>.
 
 
-<H2 id="options">OPTIONS</H2>
+<h2 id="options">OPTIONS</h2>
 
 In addition to the options common to all programs based on libnetpbm (most
-notably <B>-quiet</B>, see <A HREF="index.html#commonoptions">Common
-Options</A>), <B>pamtowinicon</B> recognizes the following command
+notably <b>-quiet</b>, see <a href="index.html#commonoptions">Common
+Options</a>), <b>pamtowinicon</b> recognizes the following command
 line options:
 
-<DL COMPACT>
-<DT><B>-pngthreshold=</B><I>threshold</I>
+<dl compact>
+<dt><b>-pngthreshold=</b><i>threshold</i>
 
-<DD><b>pamtowinicon</b> encodes images with resolutions above or equal <I>threshold</I> by <I>threshold</I> as PNG by running
-<A HREF="pnmtopng.html"><b>pnmtopng</b></A>.  Other images it encodes
+<dd><b>pamtowinicon</b> encodes images with resolutions above or equal <i>threshold</i> by <i>threshold</i> as PNG by running
+<a href="pnmtopng.html"><b>pnmtopng</b></a>.  Other images it encodes
 using the more traditional BMP format.
 
-<P>When the program uses PNG encoding for a 5-channel PAM with separate AND mask (see below), it discards the AND mask.
+<p>When the program uses PNG encoding for a 5-channel PAM with separate AND mask (see below), it discards the AND mask.
 
-<P>The default value for <I>threshold</I> is 128.
+<p>The default value for <i>threshold</i> is 128.
 
-<DT><B>-truetransparent</B>
+<dt><b>-truetransparent</b>
 
-<DD>Make all pixels outside the opaque area black, avoiding inversion
+<dd>Make all pixels outside the opaque area black, avoiding inversion
 and other effects on the background of the image
-(see <A HREF="winicon.html">Windows Icons</A>).
+(see <a href="winicon.html">Windows Icons</a>).
 
-<DT><B>-verbose</B>
+<dt><b>-verbose</b>
 
-<DD>Print more messages
+<dd>Print more messages
 
-</DL>
+</dl>
 
 
-<H2 id="images">IMAGES</H2>
+<h2 id="images">IMAGES</h2>
 
-<p><B>pamtowinicon</B> reads a (multi-image) Netpbm PAM file
+<p><b>pamtowinicon</b> reads a (multi-image) Netpbm PAM file
 as input and outputs an single Windows icon file containing those images.
 
 <p>The images in the icon file are in the same order as in the PAM input.
 
 
-<H3 id="paminput">PAM Input</H3>
+<h3 id="paminput">PAM Input</h3>
 
 <p>
 <b>pamtowinicon</b> interprets the PAM images as follows, based on
 the number of channels.
 
-<TABLE border=1 align="center">
+<table style="text-align=center" border=1>
 <?makeman l l. ?>
 <?makeman _ ?>
-<TR><TH>channels</TH><TH>image</TH></TR>
-<TR><TD>1</TD><TD>fully opaque grayscale image</TD></TR>
-<TR><TD>2</TD><TD>grayscale image with transparency channel</TD></TR>
-<TR><TD>3</TD><TD>fully opaque color image</TD></TR>
-<TR><TD>4</TD><TD>color image with transparency channel</TD></TR>
-<TR><TD>5</TD><TD>color image with transparency channel and additional AND
-mask</TD></TR>
-</TABLE>
+<tr><th>channels</th><th>image</th></tr>
+<tr><td>1</td><td>fully opaque grayscale image</td></tr>
+<tr><td>2</td><td>grayscale image with transparency channel</td></tr>
+<tr><td>3</td><td>fully opaque color image</td></tr>
+<tr><td>4</td><td>color image with transparency channel</td></tr>
+<tr><td>5</td><td>color image with transparency channel and additional AND
+mask</td></tr>
+</table>
 
-<P>The tuple types of the PAMs are irrelevant.
+<p>The tuple types of the PAMs are irrelevant.
 
 
-<H3 id="andmask">AND Mask</H3>
+<h3 id="andmask">AND Mask</h3>
 
 The so-called "AND mask" is a special feature of Microsoft
 Windows icons.  It is required for all BMP encoded images.  At the
 first sight, the AND mask is a 1-bit transparency channel, but it is also
 used for e.g. shading the icon while dragging.  See
-<A HREF="winicon.html">Windows Icons</A> for details.
+<a href="winicon.html">Windows Icons</a> for details.
 
-<P>If there is no explicit AND mask, but transparency data in the
-input image, <B>pamtowinicon</B> sets the AND mask to opaque where the
+<p>If there is no explicit AND mask, but transparency data in the
+input image, <b>pamtowinicon</b> sets the AND mask to opaque where the
 sample in the transparency channel is below maxval, and to transparent
 elsewhere.
 
-<P>If no transparency data is present in the input image,
-<B>pamtowinicon</B> assumes the whole image to be fully opaque.
+<p>If no transparency data is present in the input image,
+<b>pamtowinicon</b> assumes the whole image to be fully opaque.
 
 
-<H3 id="bmpoutput">BMP Output</H3>
+<h3 id="bmpoutput">BMP Output</h3>
 
-When BMP encoding an image, <B>pamtowinicon</B> tries to use the most
-compact <B>BI_RGB</B> format allowed for icon images with a color
+When BMP encoding an image, <b>pamtowinicon</b> tries to use the most
+compact <b>BI_RGB</b> format allowed for icon images with a color
 depth of eight bits per channel.
 
-<P><B>pamtowinicon</B> generates neither 16-bit <B>BI_RGB</B> nor
-<B>BI_BITFIELDS</B> BMP encoded images, even if the maxval of the input
+<p><b>pamtowinicon</b> generates neither 16-bit <b>BI_RGB</b> nor
+<b>BI_BITFIELDS</b> BMP encoded images, even if the maxval of the input
 PAM is not 255.
 
 
-<H2 id="seealso">SEE ALSO</H2>
+<h2 id="seealso">SEE ALSO</h2>
 
 <ul>
-<li><A HREF="winicontopam.html"><b>winicontopam</b></A>
-<li><A HREF="ppmtowinicon.html"><b>ppmtowinicon</b></A>
-<li><A HREF="pam.html">pam</A>
-<li><A HREF="winicon.html">Windows Icons</A>
+<li><a href="winicontopam.html"><b>winicontopam</b></a>
+<li><a href="ppmtowinicon.html"><b>ppmtowinicon</b></a>
+<li><a href="pam.html"><b>pam</b></a>
+<li><a href="winicon.html"><b>Windows Icons</b></a>
 </ul>
 
 <p>For information on the PNG format, see
@@ -145,27 +145,27 @@ PAM is not 255.
 Netpbm conventions.
 
 
-<H2 id="author">AUTHOR</H2>
+<h2 id="author">AUTHOR</h2>
 
 <p>Copyright (C) 2013 by Ludolf Holzheid.
 
 <p>Translated to Netpbm coding style by Bryan Henderson.
 
-<HR>
-<H2 id="index">Table Of Contents</H2>
-<UL>
-<LI><A HREF="#synopsis">SYNOPSIS</A>
-<LI><A HREF="#description">DESCRIPTION</A>
-<LI><A HREF="#options">OPTIONS</A>
-<LI><A HREF="#images">IMAGES</A>
-<UL>
-<LI><A HREF="#paminput">PAM Input</A>
-<LI><A HREF="#andmask">AND Mask</A>
-<LI><A HREF="#bmpoutput">BMP Output</A>
-</UL>
-<LI><A HREF="#seealso">SEE ALSO</A>
-<LI><A HREF="#history">HISTORY</A>
-<LI><A HREF="#author">AUTHOR</A>
-</UL>
-</BODY>
-</HTML>
+<hr>
+<h2 id="index">Table Of Contents</h2>
+<ul>
+<li><a href="#synopsis">SYNOPSIS</a>
+<li><a href="#description">DESCRIPTION</a>
+<li><a href="#options">OPTIONS</a>
+<li><a href="#images">IMAGES</a>
+  <ul>
+  <li><a href="#paminput">PAM Input</a>
+  <li><a href="#andmask">AND Mask</a>
+  <li><a href="#bmpoutput">BMP Output</a>
+  </ul>
+<li><a href="#seealso">SEE ALSO</a>
+<li><a href="#history">HISTORY</a>
+<li><a href="#author">AUTHOR</a>
+</ul>
+</body>
+</html>
diff --git a/pbmreduce.html b/pbmreduce.html
index 5247d14b..3ec1630c 100644
--- a/pbmreduce.html
+++ b/pbmreduce.html
@@ -13,8 +13,9 @@ pbmreduce - read a PBM image and reduce it N times
 
 <b>pbmreduce</b>
 [<b>-floyd</b>|<b>-fs</b>|<b>-threshold</b>]
-[<b>-value</b> <i>val</i>] <i>N</i>
+[<b>-value</b> <i>val</i>]
 [<b>-randomseed=</b><i>integer</i>]
+<i>N</i>
 [<i>pbmfile</i>]
 
 <p>You can abbreviate any option to its shortest unique prefix.
@@ -27,8 +28,8 @@ pbmreduce - read a PBM image and reduce it N times
 factor of <i>N</i>, producing a PBM image as output.
 
 <p><b>pbmreduce</b> duplicates a lot of the functionality of
-<b>pamditherbw</b>; you could do something like <tt>pamscale |
-pamditherbw</tt>, but <b>pbmreduce</b> is a lot faster.
+<b>pamditherbw</b>; you could do something like <kbd>pamscale |
+pamditherbw</kbd>, but <b>pbmreduce</b> is a lot faster.
 
 <p>You can use <b>pbmreduce</b> to "re-halftone" an image.
 Let's say you have a scanner that only produces black&amp;white, not
@@ -54,6 +55,10 @@ boustrophedonic Floyd-Steinberg error diffusion; however, you can use this
 option to specify simple thresholding.  This gives better results when
 reducing line drawings.
 
+<dt><b>-floyd</b>, <b>-fs</b>
+<dd>Specify the Floyd-Steinberg error diffusion method.  This is the
+default.
+
 <dt><b>-value</b>
 <dd>
 <p>This option alters the thresholding value for all quantizations.  It should
diff --git a/pbmtoascii.html b/pbmtoascii.html
index 416d7aaa..2c5acd3d 100644
--- a/pbmtoascii.html
+++ b/pbmtoascii.html
@@ -1,41 +1,46 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML><HEAD><TITLE>Pbmtoascii User Manual</TITLE></HEAD>
-<BODY>
-<H1>pbmtoascii</H1>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.3//EN">
+<html><head><title>Pbmtoascii User Manual</title></head>
+<body>
+<h1>pbmtoascii</h1>
 Updated: 02 April 2010
-<BR>
-<A HREF="#index">Table Of Contents</A>
+<br>
+<a href="#index">Table Of Contents</a>
 
-<H2>NAME</H2>
+<h2>NAME</h2>
 pbmtoascii - convert a PBM image to ASCII graphics
 
-<H2 id="synopsis">SYNOPSIS</H2>
+<h2 id="synopsis">SYNOPSIS</h2>
 
-<B>pbmtoascii</B>
+<b>pbmtoascii</b>
 
-[<B>-1x2</B>|<B>-2x4</B>]
+[<b>-1x2</b>|<b>-2x4</b>]
 
-[<I>pbmfile</I>]
+[<i>pbmfile</i>]
 
-<H2 id="description">DESCRIPTION</H2>
+<h2 id="description">DESCRIPTION</h2>
 
 <p>This program is part of <a href="index.html">Netpbm</a>.
 
 <p><b>pbmtoascii</b> reads a PBM image as input and produces a somewhat
 crude ASCII graphic image as output.
 
-<P>To convert back, use <A HREF="asciitopgm.html">asciitopgm</A>.
+<p>To convert back, use <a href="asciitopgm.html">asciitopgm</a>.
 
 <p><b>ppmtoterm</b> does a similar thing for color images to be displayed
 on color text terminals.
 
 
-<H2 id="options">OPTIONS</H2>
+<h2 id="options">OPTIONS</h2>
 
-<p>The <B>-1x2</B> and <B>-2x4</B> options give you two alternate ways for the
-pixels to get mapped to characters.  With <B>1x2</B>, the default, each
+<p>In addition to the options common to all programs based on libnetpbm
+(most notably <b>-quiet</b>, see <a href="index.html#commonoptions">
+Common Options</a>), <b>pbmtoascii</b> recognizes the following
+command line options:
+
+<p>The <b>-1x2</b> and <b>-2x4</b> options give you two alternate ways for the
+pixels to get mapped to characters.  With <b>1x2</b>, the default, each
 character represents a group of 1 pixel across by 2 pixels down.  With
-<B>-2x4</B>, each character represents 2 pixels across by 4 pixels down.  With
+<b>-2x4</b>, each character represents 2 pixels across by 4 pixels down.  With
 the 1x2 mode you can see the individual pixels, so it's useful for previewing
 small images on a non-graphics terminal.  The 2x4 mode lets you display larger
 images on a small display, but it obscures pixel-level details.  2x4 mode is
@@ -47,25 +52,25 @@ pamscale -width 158 | pnmnorm | pamditherbw -threshold | pbmtoascii -2x4
 
 should give good results.
 
-<H2 id="seealso">SEE ALSO</H2>
+<h2 id="seealso">SEE ALSO</h2>
 
-<A HREF="asciitopgm.html">asciitopgm</A>
+<a href="asciitopgm.html">asciitopgm</a>
 <a href="ppmtoascii.html">ppmtoascii</a>
 <a href="ppmtoterm.html">ppmtoterm</a>
-<A HREF="pbm.html">pbm</A>
+<a href="pbm.html">pbm</a>
 
-<H2 id="author">AUTHOR</H2>
+<h2 id="author">AUTHOR</h2>
 
 Copyright (C) 1988, 1992 by Jef Poskanzer.
 
-<HR>
-<H2 id="index">Table Of Contents</H2>
-<UL>
-<LI><A HREF="#synopsis">SYNOPSIS</A>
-<LI><A HREF="#description">DESCRIPTION</A>
-<LI><A HREF="#options">OPTIONS</A>
-<LI><A HREF="#seealso">SEE ALSO</A>
-<LI><A HREF="#author">AUTHOR</A>
-</UL>
-</BODY>
-</HTML>
+<hr>
+<h2 id="index">Table Of Contents</h2>
+<ul>
+<li><a href="#synopsis">SYNOPSIS</a>
+<li><a href="#description">DESCRIPTION</a>
+<li><a href="#options">OPTIONS</a>
+<li><a href="#seealso">SEE ALSO</a>
+<li><a href="#author">AUTHOR</a>
+</ul>
+</body>
+</html>
diff --git a/pbmtolps.html b/pbmtolps.html
index e3d6bef7..39977710 100644
--- a/pbmtolps.html
+++ b/pbmtolps.html
@@ -1,28 +1,28 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML><HEAD><TITLE>Pbmtolps User Manual</TITLE></HEAD>
-<BODY>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.3//EN">
+<html><head><title>Pbmtolps User Manual</title></head>
+<body>
 
-<H1>pbmtolps</H1>
+<h1>pbmtolps</h1>
 Updated: 06 July 2019
-<BR>
-<A HREF="#index">Table Of Contents</A>
+<br>
+<a href="#index">Table Of Contents</a>
 
-<H2>NAME</H2>
+<h2>NAME</h2>
 pbmtolps - convert PBM image to PostScript
 
-<H2 id="synopsis">SYNOPSIS</H2>
+<h2 id="synopsis">SYNOPSIS</h2>
 
 <b>pbmtolps</b>
 [<b>-dpi</b>=<i>n</i>]
 [<i>pbmfile</i>]
 
-<P>Minimum unique abbreviation of option is acceptable.  You may use
+<p>Minimum unique abbreviation of option is acceptable.  You may use
 double hyphens instead of single hyphen to denote options.  You may use
 white space in place of the equals sign to separate an option name
 from its value.
 
 
-<H2 id="description">DESCRIPTION</H2>
+<h2 id="description">DESCRIPTION</h2>
 
 <p>This program is part of <a href="index.html">Netpbm</a>.
 
@@ -38,11 +38,16 @@ subformat that <b>pbmtolps</b> does.
 (&quot;dot&quot;).  For this to work, you must use a <b>-dpi</b> option to
 tell <b>pmtolps</b> the resolution of the target printer, in dots per inch.
   
-<P>The Postscript program <b>pbmtolps</b> generates draws paths of less than
+<p>The Postscript program <b>pbmtolps</b> generates draws paths of less than
 1000 segments so as not to overrun limits on the Apple Laserwriter and
 possibly other printers.
 
-<h2 id="options">Options</h2>
+<h2 id="options">OPTIONS</h2>
+
+<p>In addition to the options common to all programs based on libnetpbm
+(most notably <b>-quiet</b>, see <a href="index.html#commonoptions">
+Common Options</a>), <b>pbmtolps</b> recognizes the following
+command line option:
 
 <dl>
 <dt><b>-dpi=</b><i>n</i>
@@ -50,27 +55,28 @@ possibly other printers.
 </dl>
 
 
-<H2 id="seealso">SEE ALSO</H2>
+<h2 id="seealso">SEE ALSO</h2>
 
-<B><A HREF="pnmtops.html">pnmtops</A></B>,
-<B><A HREF="pstopnm.html">pstopnm</A></B>,
-<B><A HREF="pbmtoepsi.html">pbmtoepsi</A></B>,
-<B><A HREF="psidtopgm.html">psidtopgm</A></B>,
-<B>gs</B>,
-<B><A HREF="pbm.html">pbm</A></B>,
+<b><a href="pnmtops.html">pnmtops</a></b>,
+<b><a href="pstopnm.html">pstopnm</a></b>,
+<b><a href="pbmtoepsi.html">pbmtoepsi</a></b>,
+<b><a href="psidtopgm.html">psidtopgm</a></b>,
+<b>gs</b>,
+<b><a href="pbm.html">pbm</a></b>,
 
-<H2 id="author">AUTHOR</H2>
+<h2 id="author">AUTHOR</h2>
 
-George Phillips &lt;<A
-HREF="mailto:phillips@cs.ubc.ca">phillips@cs.ubc.ca</A>&gt;
+George Phillips &lt;<a
+href="mailto:phillips@cs.ubc.ca">phillips@cs.ubc.ca</a>&gt;
 
-<HR>
-<H2 id="index">Table Of Contents</H2>
-<UL>
-<LI><A HREF="#synopsis">SYNOPSIS</A>
-<LI><A HREF="#description">DESCRIPTION</A>
-<LI><A HREF="#seealso">SEE ALSO</A>
-<LI><A HREF="#author">AUTHOR</A>
-</UL>
-</BODY>
-</HTML>
+<hr>
+<h2 id="index">Table Of Contents</h2>
+<ul>
+<li><a href="#synopsis">SYNOPSIS</a>
+<li><a href="#description">DESCRIPTION</a>
+<li><a href="#options">OPTIONS</a>
+<li><a href="#seealso">SEE ALSO</a>
+<li><a href="#author">AUTHOR</a>
+</ul>
+</body>
+</html>
diff --git a/pbmupc.html b/pbmupc.html
index 41801ca3..a8a1449c 100644
--- a/pbmupc.html
+++ b/pbmupc.html
@@ -1,22 +1,22 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML><HEAD><TITLE>Pbmupc User Manual</TITLE></HEAD>
-<BODY>
-<H1>pbmupc</H1>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.3//EN">
+<html><head><title>Pbmupc User Manual</title></head>
+<body>
+<h1>pbmupc</h1>
 Updated: 29 April 2015
-<BR>
-<A HREF="#index">Table Of Contents</A>
+<br>
+<a href="#index">Table Of Contents</a>
 
-<H2>NAME</H2>
+<h2>NAME</h2>
 
 pbmupc - create a Universal Product Code PBM image
 
-<H2 id="synopsis">SYNOPSIS</H2>
+<h2 id="synopsis">SYNOPSIS</h2>
 
-<B>pbmupc</B>
+<b>pbmupc</b>
 
-[<B>-s1</B> | <B>-s2</B>] <I>type</i> <i>manufacturer</i> <i>product</I>
+[<b>-s1</b> | <b>-s2</b>] <i>type</i> <i>manufacturer</i> <i>product</i>
 
-<H2 id="description">DESCRIPTION</H2>
+<h2 id="description">DESCRIPTION</h2>
 
 <p>This program is part of <a href="index.html">Netpbm</a>.
 
@@ -25,53 +25,58 @@ The three arguments are: a one digit product type, a five digit
 manufacturer code, and a five digit product code.
 For example, "0 72890 00011" is the code for Heineken.
 
-<P><b>pbmupc</b> produces an image 230 bits wide and 175 bits high.  If you
-want a different size run the output through <B>pamscale</B>.
+<p><b>pbmupc</b> produces an image 230 bits wide and 175 bits high.  If you
+want a different size run the output through <b>pamscale</b>.
 
 
-<H2 id="options">OPTIONS</H2>
+<h2 id="options">OPTIONS</h2>
 
-<P>The <B>-s1</B> and <B>-s2</B> options select the style of UPC to
-generate.  The default, <B>-s1</B>, looks more or less like this:
+<p>In addition to the options common to all programs based on libnetpbm
+(most notably <b>-quiet</b>, see <a href="index.html#commonoptions">
+Common Options</a>), <b>pbmupc</b> recognizes the following
+command line options:
 
-<PRE>
+<p>The <b>-s1</b> and <b>-s2</b> options select the style of UPC to
+generate.  The default, <b>-s1</b>, looks more or less like this:
+
+<pre>
  ||||||||||||||||
  ||||||||||||||||
  ||||||||||||||||
  ||||||||||||||||
 0||12345||67890||5
-</PRE>
+</pre>
 
-The other style, <B>-s2</B>, puts the product type digit higher up,
+The other style, <b>-s2</b>, puts the product type digit higher up,
 and doesn't display the checksum digit:
 
-<PRE>
+<pre>
  ||||||||||||||||
  ||||||||||||||||
 0||||||||||||||||
  ||||||||||||||||
  ||12345||67890||
-</PRE>
+</pre>
 
 
-<H2 id="seealso">SEE ALSO</H2>
+<h2 id="seealso">SEE ALSO</h2>
 
-<A HREF="pamscale.html">pamscale</A>
-<A HREF="pbm.html">pbm</A>
+<a href="pamscale.html">pamscale</a>
+<a href="pbm.html">pbm</a>
 
-<H2 id="author">AUTHOR</H2>
+<h2 id="author">AUTHOR</h2>
 
 Copyright (C) 1989 by Jef Poskanzer.
 
-<HR>
-<H2 id="index">Table Of Contents</H2>
-<UL>
-<LI><A HREF="#synopsis">SYNOPSIS</A>
-<LI><A HREF="#description">DESCRIPTION</A>
-<LI><A HREF="#options">OPTIONS</A>
-<LI><A HREF="#seealso">SEE ALSO</A>
-<LI><A HREF="#author">AUTHOR</A>
-</UL>
-
-</BODY>
-</HTML>
+<hr>
+<h2 id="index">Table Of Contents</h2>
+<ul>
+<li><a href="#synopsis">SYNOPSIS</a>
+<li><a href="#description">DESCRIPTION</a>
+<li><a href="#options">OPTIONS</a>
+<li><a href="#seealso">SEE ALSO</a>
+<li><a href="#author">AUTHOR</a>
+</ul>
+
+</body>
+</html>
diff --git a/pcdovtoppm.html b/pcdovtoppm.html
index 8d603f7d..8a07dd6b 100644
--- a/pcdovtoppm.html
+++ b/pcdovtoppm.html
@@ -1,114 +1,116 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML><HEAD><TITLE>Pcdovtoppm User Manual</TITLE></HEAD>
-<BODY>
-<H1>pcdovtoppm</H1>
-Updated: 01 June 2001
-<BR>
-<A HREF="#index">Table Of Contents</A>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.3//EN">
+<html><head><title>Pcdovtoppm User Manual</title></head>
+<body>
+<h1>pcdovtoppm</h1>
+Updated: 02 August 2020
+<br>
+<a href="#index">Table Of Contents</a>
 
-<A NAME="lbAB">&nbsp;</A>
-<H2>NAME</H2>
+<h2>NAME</h2>
 
 pcdovtoppm - create index image for a photo CD
 
-<A NAME="lbAC">&nbsp;</A>
-<H2>SYNOPSIS</H2>
+<h2 id="synopsis">SYNOPSIS</h2>
 
-<B>pcdovtoppm</B>
-[<B>-m </B><I>width</I>]
-[<B>-s </B><I>size</I>]
-[<B>-a </B><I>across</I>]
-[<B>-c </B><I>colors</I>]
-[<B>-f </B><I>font</I>]
-[<B>-b</B>|<B>-w</B>]
-[<I>pcdfile</I>]
+<b>pcdovtoppm</b>
+[<b>-m </b><i>width</i>]
+[<b>-s </b><i>size</i>]
+[<b>-a </b><i>across</i>]
+[<b>-c </b><i>colors</i>]
+[<b>-f </b><i>font</i>]
+[<b>-b</b>|<b>-w</b>]
+[<i>pcdfile</i>]
 
 
-<A NAME="lbAD">&nbsp;</A>
-<H2>DESCRIPTION</H2>
+<h2 id="description">DESCRIPTION</h2>
 
 <p>This program is part of <a href="index.html">Netpbm</a>.
 
-<P>This program generates an index image in PPM format for a photo CD,
+<p>This program generates an index image in PPM format for a photo CD,
 based on the photo CD overview file.
 
-<P>You can achieve a similar result with <B>hpcdtoppm -Overview</B>
-followed by <B>pnmindex -black</B> on the generated PPM images.
+<p>You can achieve a similar result with <b>hpcdtoppm -Overview</b>
+followed by <b>pnmindex -black</b> on the generated PPM images.
 
-<A NAME="lbAE">&nbsp;</A>
-<H2>OPTIONS</H2>
+<h2 id="options">OPTIONS</h2>
 
-<DL COMPACT>
-<DT><B>-w</B><I>width</I>
+<p>In addition to the options common to all programs based on libnetpbm
+(most notably <b>-quiet</b>, see <a href="index.html#commonoptions">
+Common Options</a>), <b>pcdovtoppm</b> recognizes the following
+command line options:
 
-<DD>
+<dl compact>
+<dt><b>-w</b><i>width</i>
+
+<dd>
 Maximum width of the result image (default: 1152).
-<DT><B>-s</B><I>size</I>
+<dt><b>-s</b><i>size</i>
 
-<DD>
+<dd>
 Maximum size of each of the images (default: 192).
-<DT><B>-a</B><I>across</I>
+<dt><b>-a</b><i>across</i>
 
-<DD>
+<dd>
 Maximum number of images across (default: 6).
-<DT><B>-c</B><I>colors</I>
+<dt><b>-c</b><i>colors</i>
 
-<DD>
+<dd>
 Maximum number of colors, or 
-<B>n</B>
+<b>n</b>
 
 to mean no quantization
-<DT><B>-f</B><I>font</I>
+<dt><b>-f</b><i>font</i>
 
-<DD>
+<dd>
 Font to be used for annotation (default: internal font).
-<DT><B>-b</B>
+<dt><b>-b</b>
 
-<DD>
+<dd>
 Black background color (default).
-<DT><B>-w</B>
+<dt><b>-w</b>
 
-<DD>
+<dd>
 White background color.
 
-</DL>
+</dl>
+
+<p>
+The Netpbm common options <b>-version</b>, <b>-plain</b> and
+<b>-quiet</b> were implemented starting with Netpbm 10.91 (June 2020).  Before
+that, none of these options were valid.
+
 
-<A NAME="lbAF">&nbsp;</A>
-<H2>EXAMPLES</H2>
+<h2 id="examples">EXAMPLES</h2>
 
-<PRE>
-<B>pcdovtoppm -m 768 -s 96 -f smallfont.pbm overview.pcd &gt; overview.ppm</B>
-</prE>
+<pre>
+<b>pcdovtoppm -m 768 -s 96 -f smallfont.pbm overview.pcd &gt; overview.ppm</b>
+</pre>
 
-<PRE>
-<B>pcdovtoppm /cdrom/photo_cd/overview.pcd | ppmtojpeg &gt; overview.jpg</B>
-</PRE>
+<pre>
+<b>pcdovtoppm /cdrom/photo_cd/overview.pcd | ppmtojpeg &gt; overview.jpg</b>
+</pre>
 
-<A NAME="history">&nbsp;</A>
-<H2>HISTORY</H2>
+<h2 id="history">HISTORY</h2>
 
-<P>This program was formerly called <b>pcdindex</b>, which did not fit
+<p>This program was formerly called <b>pcdindex</b>, which did not fit
 Netpbm naming conventions.
 
-<A NAME="lbAG">&nbsp;</A>
-<H2>SEE ALSO</H2>
-
-<B><A HREF="hpcdtoppm.html">hpcdtoppm</A></B>,
-<B><A HREF="pnmindex.html">pnmindex</A></B>,
-<B><A HREF="ppmtojpeg.html">ppmtojpeg</A></B>,
-<B><A HREF="ppm.html">ppm</A></B>
-
-<HR>
-<A NAME="index">&nbsp;</A>
-<H2>Table Of Contents</H2>
-<UL>
-<LI><A HREF="#lbAB">NAME</A>
-<LI><A HREF="#lbAC">SYNOPSIS</A>
-<LI><A HREF="#lbAD">DESCRIPTION</A>
-<LI><A HREF="#lbAE">OPTIONS</A>
-<LI><A HREF="#history">HISTORY></A>
-<LI><A HREF="#lbAF">EXAMPLES</A>
-<LI><A HREF="#lbAG">SEE ALSO</A>
-</UL>
-</BODY>
-</HTML>
+<h2 id="seealso">SEE ALSO</h2>
+
+<b><a href="hpcdtoppm.html">hpcdtoppm</a></b>,
+<b><a href="pnmindex.html">pnmindex</a></b>,
+<b><a href="ppmtojpeg.html">ppmtojpeg</a></b>,
+<b><a href="ppm.html">ppm</a></b>
+
+<hr>
+<h2 id="index">Table Of Contents</h2>
+<ul>
+<li><a href="#synopsis">SYNOPSIS</a>
+<li><a href="#description">DESCRIPTION</a>
+<li><a href="#options">OPTIONS</a>
+<li><a href="#examples">EXAMPLES</a>
+<li><a href="#history">HISTORY</a>
+<li><a href="#seealso">SEE ALSO</a>
+</ul>
+</body>
+</html>
diff --git a/pgmhist.html b/pgmhist.html
index 02d50cb4..c0c8acc5 100644
--- a/pgmhist.html
+++ b/pgmhist.html
@@ -1,18 +1,18 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML><HEAD><TITLE>Pgmhist User Manual</TITLE></HEAD>
-<BODY>
-<H1>pgmhist</H1>
-Updated: 2 March 2014
-<BR>
-<A HREF="#index">Table Of Contents</A>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.3//EN">
+<html><head><title>Pgmhist User Manual</title></head>
+<body>
+<h1>pgmhist</h1>
+Updated: 02 March 2014
+<br>
+<a href="#index">Table Of Contents</a>
 
-<H2>NAME</H2>
+<h2>NAME</h2>
 
 pgmhist - print a histogram of the values in a PGM image
 
-<H2 id="synopsis">SYNOPSIS</H2>
+<h2 id="synopsis">SYNOPSIS</h2>
 
-<B>pgmhist</B>
+<b>pgmhist</b>
 
 [<b>-median</b>, <b>-quartile</b>, <b>-decile</b>]
 
@@ -20,9 +20,9 @@ pgmhist - print a histogram of the values in a PGM image
 
 [<b>-machine</b>]
 
-[<I>pgmfile</I>]
+[<i>pgmfile</i>]
 
-<H2 id="description">DESCRIPTION</H2>
+<h2 id="description">DESCRIPTION</h2>
 
 <p>This program is part of <a href="index.html">Netpbm</a>.
 
@@ -43,39 +43,38 @@ value for which at least 75% of the pixels are as dark or darker than it.
 The 4th quartile is the brightest gray value that appears in the image.
 
 
-<H2 id="options">OPTIONS</H2>
+<h2 id="options">OPTIONS</h2>
 
-You must specify exactly one of the ramp type options.
-<DL COMPACT>
-<DT><B>-median</B>
-<DD>
-
-<P>This option causes <b>pgmhist</b> to print the median gray value.
+<p>In addition to the options common to all programs based on libnetpbm
+(most notably <b>-quiet</b>, see <a href="index.html#commonoptions">
+Common Options</a>), <b>pgmhist</b> recognizes the following
+command line options:
 
 <p>You may specify at most one of <b>-median</b>, <b>-quartile</b>, and
-<b>-decile</b>.
+<b>-decile</b>.  If none of these is specified <b>pgmhist</b> prints
+a histogram of gray values.
 
-<P>This option was new in Netpbm 10.61 (December 2012).
+<dl compact>
+<dt><b>-median</b>
+<dd>
 
-<DT><B>-quartile</B>
-<DD>
+<p>This option causes <b>pgmhist</b> to print the median gray value.
 
-<P>This option causes <b>pgmhist</b> to print the four quartile gray values.
+<p>This option was new in Netpbm 10.61 (December 2012).
 
-<p>You may specify at most one of <b>-median</b>, <b>-quartile</b>, and
-<b>-decile</b>.
+<dt><b>-quartile</b>
+<dd>
 
-<P>This option was new in Netpbm 10.61 (December 2012).
+<p>This option causes <b>pgmhist</b> to print the four quartile gray values.
 
-<DT><B>-decile</B>
-<DD>
-     
-<P>This option causes <b>pgmhist</b> to print the ten decile gray values.
+<p>This option was new in Netpbm 10.61 (December 2012).
 
-<p>You may specify at most one of <b>-median</b>, <b>-quartile</b>, and
-<b>-decile</b>.
+<dt><b>-decile</b>
+<dd>
+     
+<p>This option causes <b>pgmhist</b> to print the ten decile gray values.
 
-<P>This option was new in Netpbm 10.61 (December 2012).
+<p>This option was new in Netpbm 10.61 (December 2012).
 
 <dt><b>-forensic</b><dd>
 
@@ -99,8 +98,8 @@ possible for a number greater than that to appear where a gray value belongs.
 10.66 does not properly reject invalid sample values, so the effect is very
 similar to <b>-forensic</b>.
 
-<DT><B>-machine</B>
-<DD>
+<dt><b>-machine</b>
+<dd>
 
 <p>This option causes <b>pgmhist</b> to print the information in a way
 easily digestible by a machine as opposed to a human.
@@ -115,28 +114,29 @@ the gray values.  The line consists of two tokens separated by a space.  The
 first is the gray value; the second is the number of pixels in the image that
 have that gray value.  Both are decimal numbers without leading zeroes.
 
-<P>This option was new in Netpbm 10.61 (December 2012).
+<p>This option was new in Netpbm 10.61 (December 2012).
 
-</DL>
+</dl>
 
 
-<H2 id="seealso">SEE ALSO</H2>
+<h2 id="seealso">SEE ALSO</h2>
 
-<A HREF="pnmnorm.html">pnmnorm</A>,
-<A HREF="ppmhist.html">ppmhist</A>
-<A HREF="pgm.html">pgm</A>,
+<a href="pnmnorm.html">pnmnorm</a>,
+<a href="ppmhist.html">ppmhist</a>,
+<a href="pgm.html">pgm</a>
 
-<H2 id="author">AUTHOR</H2>
+<h2 id="author">AUTHOR</h2>
 
 Copyright (C) 1989 by Jef Poskanzer.
 
-<HR>
-<H2 id="index">Table Of Contents</H2>
-<UL>
-<LI><A HREF="#synopsis">SYNOPSIS</A>
-<LI><A HREF="#description">DESCRIPTION</A>
-<LI><A HREF="#seealso">SEE ALSO</A>
-<LI><A HREF="#author">AUTHOR</A>
-</UL>
-</BODY>
-</HTML>
+<hr>
+<h2 id="index">Table Of Contents</h2>
+<ul>
+<li><a href="#synopsis">SYNOPSIS</a>
+<li><a href="#description">DESCRIPTION</a>
+<li><a href="#options">OPTIONS</a>
+<li><a href="#seealso">SEE ALSO</a>
+<li><a href="#author">AUTHOR</a>
+</ul>
+</body>
+</html>
diff --git a/pgmmorphconv.html b/pgmmorphconv.html
index e58639ad..6b1c3dce 100644
--- a/pgmmorphconv.html
+++ b/pgmmorphconv.html
@@ -1,19 +1,19 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML>
-<HEAD><TITLE>Pgmmorphconv User Manual</TITLE></HEAD>
-<BODY>
-<H1>pgmmorphconv</H1>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.3//EN">
+<html>
+<head><title>Pgmmorphconv User Manual</title></head>
+<body>
+<h1>pgmmorphconv</h1>
 Updated: 29 March 2015
-<BR>
-<A HREF="#index">Table Of Contents</A>
+<br>
+<a href="#index">Table Of Contents</a>
 
-<H2>NAME</H2>
+<h2>NAME</h2>
 
 pgmmorphconv - perform morphological convolutions: dilation, erosion
 
-<H2 id="synopsis">SYNOPSIS</H2>
+<h2 id="synopsis">SYNOPSIS</h2>
 
-<B>pgmmorphconv</B>
+<b>pgmmorphconv</b>
 [
  <b>-erode</b> |
  <b>-dilate</b> |
@@ -21,19 +21,19 @@ pgmmorphconv - perform morphological convolutions: dilation, erosion
  <b>-close</b> |
  <b>-gradient</b>
 ]
-<I>templatefile</I>
-[<I>pgmfile</I>]
+<i>templatefile</i>
+[<i>pgmfile</i>]
 
-<P>Minimum unique abbreviation of option is acceptable.  You may use
+<p>Minimum unique abbreviation of option is acceptable.  You may use
 double hyphens instead of single hyphen to denote options.  You may use
 white space in place of the equals sign to separate an option name
 from its value.
 
-<H2 id="description">DESCRIPTION</H2>
+<h2 id="description">DESCRIPTION</h2>
 
 <p>This program is part of <a href="index.html">Netpbm</a>.
 
-<P><b>pgmmorphconv</b> performs morphological convolutions on a
+<p><b>pgmmorphconv</b> performs morphological convolutions on a
 PGM image: dilation and erosion.
 
 <p><b>pgmmorphconv</b> performs a "topological" convolution.  For each
@@ -67,6 +67,13 @@ a weighted average of nearby input pixels instead of a minimum or maximum.
 way, and can be used to filter an image to enhance certain features, to
 ease their automatic recognition.
 
+<h2 id="options">OPTIONS</h2>
+
+<p>In addition to the options common to all programs based on libnetpbm
+(most notably <b>-quiet</b>, see <a href="index.html#commonoptions">
+Common Options</a>), <b>pgmmorphconv</b> recognizes the following
+command line options:
+
 <p>The options <b>-erode</b> and <b>-dilate</b> obviously produce an
 erosion or dilation, respectively.  <p>The <b>-open</b> option causes
 <b>pgmmorphconv</b> to perform first an erode and then a dilate
@@ -78,13 +85,12 @@ erode.  If you specify none of these options, it is the same as
 difference between the eroded image and the dilated image.  <b>-gradient</b>
 was new in Netpbm 10.70 (March 2015).
 
-
-<H2 id="seealso">SEE ALSO</H2>
+<h2 id="seealso">SEE ALSO</h2>
 
 <ul>
-<li><B><A HREF="pgmminkowski.html">pgmminkowski</A></B>
-<li><B><A HREF="pnmconvol.html">pnmconvol</A></B>
-<li><B><A HREF="pgm.html">pgm</A></B>
+<li><b><a href="pgmminkowski.html">pgmminkowski</a></b>
+<li><b><a href="pnmconvol.html">pnmconvol</a></b>
+<li><b><a href="pgm.html">pgm</a></b>
 </ul>
 
 <p>For more information about morphological convolutions, see e.g.
@@ -102,19 +108,20 @@ Phys. Rev. E 63, 016201-1 - 016201-7 (2001)
 </ul>
 
 
-<H2 id="authors">AUTHORS</H2>
+<h2 id="authors">AUTHORS</h2>
 
 Luuk van Dijk, 2001.
 
 <p>Based on work which is Copyright (C) 1989, 1991 by Jef Poskanzer.
 
-<HR>
-<H2 id="index">Table Of Contents</H2>
-<UL>
-<LI><A HREF="#synopsis">SYNOPSIS</A>
-<LI><A HREF="#description">DESCRIPTION</A>
-<LI><A HREF="#seealso">SEE ALSO</A>
-<LI><A HREF="#authors">AUTHORS</A>
-</UL>
-</BODY>
-</HTML>
+<hr>
+<h2 id="index">Table Of Contents</h2>
+<ul>
+<li><a href="#synopsis">SYNOPSIS</a>
+<li><a href="#description">DESCRIPTION</a>
+<li><a href="#options">OPTIONS</a>
+<li><a href="#seealso">SEE ALSO</a>
+<li><a href="#authors">AUTHORS</a>
+</ul>
+</body>
+</html>
diff --git a/pngtopam.html b/pngtopam.html
index 8bcd6739..0cdd811b 100644
--- a/pngtopam.html
+++ b/pngtopam.html
@@ -112,8 +112,8 @@ library routine</a>.
 <p>Examples:
 
 <ul>
-<li><tt>-background=rgb:01/ff/80</tt>
-<li><tt>-background=rgbi:1/255/128</tt>
+<li><kbd>-background=rgb:01/ff/80</kbd>
+<li><kbd>-background=rgbi:1/255/128</kbd>
 </ul>
 
 <p>If you don't specify <b>-background</b>, the background color is what
diff --git a/pnmmargin.html b/pnmmargin.html
index cd815a2d..4400ed55 100644
--- a/pnmmargin.html
+++ b/pnmmargin.html
@@ -1,81 +1,94 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML><HEAD><TITLE>Pnmmargin User Manual</TITLE></HEAD>
-<BODY>
-<H1>pnmmargin</H1>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.3//EN">
+<html><head><title>Pnmmargin User Manual</title></head>
+<body>
+<h1>pnmmargin</h1>
 Updated: 12 November 2014
-<BR>
-<A HREF="#index">Table Of Contents</A>
+<br>
+<a href="#index">Table Of Contents</a>
 
-<H2>NAME</H2>
+<h2>NAME</h2>
 
 pnmmargin - add borders to a PNM image
 
-<H2 id="synopsis">SYNOPSIS</H2>
+<h2 id="synopsis">SYNOPSIS</h2>
 
-<B>pnmmargin</B>
-[<B>-white</B>|<B>-black</B>|<B>-color</B> <I>colorspec</I>] <I>size</I>
-[<I>pnmfile</I>]
+<b>pnmmargin</b>
+[<b>-white</b>|<b>-black</b>|<b>-color</b> <i>colorspec</i>] <i>size</i>
+[<i>pnmfile</i>]
 
-<H2 id="description">DESCRIPTION</H2>
+<h2 id="description">DESCRIPTION</h2>
 
 <p>This program is part of <a href="index.html">Netpbm</a>.
 
 <p><b>pnmmargin</b> adds a border around a PNM image.
 
 
-<H2 id="arguments">ARGUMENTS</H2>
+<h2 id="arguments">ARGUMENTS</h2>
 
 <p><i>pnmfile</i> is the name of the input file.  If you don't specify this
 argument, <b>pnmmargin</b> reads the input image from its Standard Input.
 
 
-<H2 id="options">OPTIONS</H2>
+<h2 id="options">OPTIONS</h2>
 
-<P>You can specify the border color with the <B>-white</B>,
-<B>-black</B>, and <B>-color</B> options.  If you don't specify a color, the
+<p>In addition to the options common to all programs based on libnetpbm
+(most notably <b>-plain</b>, see <a href="index.html#commonoptions">
+Common Options</a>), <b>pnmmargin</b> recognizes the following
+command line options:
+
+<p>You can specify the border color with the <b>-white</b>,
+<b>-black</b>, and <b>-color</b> options.  If you don't specify a color, the
 program makes a guess.
 
 <p>The value of <b>-color</b> is like the
-<a href="libnetpbm_image.html#colorname">argument of the <b>pnm_parsecolor()</b>
-library routine</a>.
+<a href="libnetpbm_image.html#colorname">argument of the
+<b>pnm_parsecolor()</b> library routine</a>.
+
+<p>The <b>-plain</b> common option was implemented beginning with Netpbm
+version 10.40 (September 2007).
+
+<p>The <b>-quiet</b> common option is not implemented.
 
-<P>To remove a border of a specified size from an image, use
-<B>pamcut</B>.  <b>pnmcrop</b> also removes borders, but determines by itself
+<h2 id="notes">NOTES</h2>
+
+<p>To remove a border of a specified size from an image, use
+<b>pamcut</b>.  <b>pnmcrop</b> also removes borders, but determines by itself
 what is border and what is subject.
 
-<P>For lower level control, including to add different size borders to
+<p>For lower level control, including to add different size borders to
 different sides of the image, look at <b>pnmcat</b>.
 
-<P>If all you're trying to do is get the image up to a certain required
+<p>If all you're trying to do is get the image up to a certain required
 size, <b>pamcut</b> may be what you want.
 
 <p><b>pnmpad</b> does essentially the same thing, but gives you more control
 over the individual margins and does only black and white margins.
 
 
-<H2 id="seealso">SEE ALSO</H2>
+<h2 id="seealso">SEE ALSO</h2>
 
 <ul>
-<li><A HREF="pamcut.html">pamcut</A>
-<li><A HREF="pnmcrop.html">pnmcrop</A>
-<li><A HREF="pnmcat.html">pnmcat</A>
-<li><A HREF="pnmpad.html">pnmpad</A>
-<li><A HREF="pnm.html">pnm</A>
+<li><a href="pamcut.html">pamcut</a>
+<li><a href="pnmcrop.html">pnmcrop</a>
+<li><a href="pnmcat.html">pnmcat</a>
+<li><a href="pnmpad.html">pnmpad</a>
+<li><a href="pnm.html">pnm</a>
 </ul>
 
-<H2 id="author">AUTHOR</H2>
+<h2 id="author">AUTHOR</h2>
 
 Copyright (C) 1991 by Jef Poskanzer.
 
-<HR>
-<H2 id="index">Table Of Contents</H2>
-<UL>
-<LI><A HREF="#synopsis">SYNOPSIS</A>
-<LI><A HREF="#description">DESCRIPTION</A>
-<LI><A HREF="#arguments">ARGUMENTS</A>
-<LI><A HREF="#options">OPTIONS</A>
-<LI><A HREF="#seealso">SEE ALSO</A>
-<LI><A HREF="#author">AUTHOR</A>
-</UL>
-</BODY>
-</HTML>
+<hr>
+<h2 id="index">Table Of Contents</h2>
+<ul>
+<li><a href="#synopsis">SYNOPSIS</a>
+<li><a href="#description">DESCRIPTION</a>
+<li><a href="#arguments">ARGUMENTS</a>
+<li><a href="#options">OPTIONS</a>
+<li><a href="#notes">NOTES</a>
+<li><a href="#seealso">SEE ALSO</a>
+<li><a href="#author">AUTHOR</a>
+</ul>
+</body>
+</html>
diff --git a/pnmmontage.html b/pnmmontage.html
index 4fdfe2c3..0514d289 100644
--- a/pnmmontage.html
+++ b/pnmmontage.html
@@ -51,11 +51,11 @@ in machine-readable form the positions of the original images within
 the packed image.  Here is an example:
 
 <pre>
-<tt>
+<span style="font-family: monospace">
             :0:0:227:298
             ../image1.ppm:0:0:227:149
             ../image2.ppm:0:149:227:149
-</tt>
+</span>
 </pre>
 
 
@@ -86,7 +86,7 @@ specifies the total size of the montage image.
 <p>Here is an example:
 
 <pre>
-<tt>
+<code>
             #define OVERALLX 227
             #define OVERALLY 298
             
@@ -99,7 +99,7 @@ specifies the total size of the montage image.
             #define Y 149
             #define SZX 227
             #define SZY 149
-</tt>
+</code>
 </pre>
 
 <dt><b>-prefix</b>
diff --git a/ppmdcfont.html b/ppmdcfont.html
index ec82ce47..a3f7ad38 100644
--- a/ppmdcfont.html
+++ b/ppmdcfont.html
@@ -1,21 +1,21 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML><HEAD><TITLE>Ppmdcfont User Manual</TITLE></HEAD>
-<BODY>
-<H1>ppmdcfont</H1>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.3//EN">
+<html><head><title>Ppmdcfont User Manual</title></head>
+<body>
+<h1>ppmdcfont</h1>
 Updated: September 2005
-<BR>
-<A HREF="#index">Table Of Contents</A>
+<br>
+<a href="#index">Table Of Contents</a>
 
-<H2>NAME</H2>
+<h2>NAME</h2>
 
 ppmdcfont - Turn a Ppmdfont file into C source for a builtin font
 
-<H2 id="synopsis">SYNOPSIS</H2>
+<h2 id="synopsis">SYNOPSIS</h2>
 
-<B>ppmdcfont</B>
+<b>ppmdcfont</b>
 
 
-<H2 id="description">DESCRIPTION</H2>
+<h2 id="description">DESCRIPTION</h2>
 
 <p>This program is part of <a href="index.html">Netpbm</a>.
 
@@ -33,24 +33,24 @@ you don't change it, it will conflict both cognitively and in program
 linking.  There should obviously be an option on <b>ppmdcfont</b> to
 choose this, but the development effort has not been justified so far.
 
-<p>See <A HREF="libnetpbm_draw.html">Libnetpbm PPM Drawing Function
-Manual</A> for details on Ppmdfont files.
+<p>See <a href="libnetpbm_draw.html">Libnetpbm PPM Drawing Function
+Manual</a> for details on Ppmdfont files.
 
-<H2 id="seealso">SEE ALSO</H2>
+<h2 id="seealso">SEE ALSO</h2>
 
-<B><A HREF="ppmdraw.html">ppmdraw</A></B>, <B><A
-HREF="ppmddumpfont.html">ppmddumpfont</A></B>, <B><A
-HREF="ppmdcfont.html">ppmdcfont</A></B>, <A
-HREF="libnetpbm_draw.html">Libnetpbm PPM Drawing Function Manual</A>
+<b><a href="ppmdraw.html">ppmdraw</a></b>, <b><a
+href="ppmddumpfont.html">ppmddumpfont</a></b>, <b><a
+href="ppmdcfont.html">ppmdcfont</a></b>, <a
+href="libnetpbm_draw.html">Libnetpbm PPM Drawing Function Manual</a>
 
 
-<HR>
-<H2 id="index">Table Of Contents</H2>
-<UL>
-<LI><A HREF="#synopsis">SYNOPSIS</A>
-<LI><A HREF="#description">DESCRIPTION</A>
-<LI><A HREF="#seealso">SEE ALSO</A>
-</UL>
-</BODY>
-</HTML>
+<hr>
+<h2 id="index">Table Of Contents</h2>
+<ul>
+<li><a href="#synopsis">SYNOPSIS</a>
+<li><a href="#description">DESCRIPTION</a>
+<li><a href="#seealso">SEE ALSO</a>
+</ul>
+</body>
+</html>
 
diff --git a/ppmddumpfont.html b/ppmddumpfont.html
index a7308326..32b6d710 100644
--- a/ppmddumpfont.html
+++ b/ppmddumpfont.html
@@ -1,21 +1,21 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML><HEAD><TITLE>Ppmddumpfont User Manual</TITLE></HEAD>
-<BODY>
-<H1>ppmddumpfont</H1>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.3//EN">
+<html><head><title>Ppmddumpfont User Manual</title></head>
+<body>
+<h1>ppmddumpfont</h1>
 Updated: September 2005
-<BR>
-<A HREF="#index">Table Of Contents</A>
+<br>
+<a href="#index">Table Of Contents</a>
 
-<H2>NAME</H2>
+<h2>NAME</h2>
 
 ppmddumpfont - dump a Ppmdfont file
 
-<H2 id="synopsis">SYNOPSIS</H2>
+<h2 id="synopsis">SYNOPSIS</h2>
 
-<B>ppmddumpfont</B>
+<b>ppmddumpfont</b>
 
 
-<H2 id="description">DESCRIPTION</H2>
+<h2 id="description">DESCRIPTION</h2>
 
 <p>This program is part of <a href="index.html">Netpbm</a>.
 
@@ -24,24 +24,24 @@ writes to Standard Error a human readable description of the font.
 
 <p>(There are no arguments or options)
 
-<p>See <A HREF="libnetpbm_draw.html">Libnetpbm PPM Drawing Function
-Manual</A> for details on Ppmdfont files.
+<p>See <a href="libnetpbm_draw.html">Libnetpbm PPM Drawing Function
+Manual</a> for details on Ppmdfont files.
 
-<H2 id="seealso">SEE ALSO</H2>
+<h2 id="seealso">SEE ALSO</h2>
 
-<B><A HREF="ppmdraw.html">ppmdraw</A></B>, <B><A
-HREF="ppmdmkfont.html">ppmdmkfont</A></B>, <B><A
-HREF="ppmdcfont.html">ppmdcfont</A></B>, <A
-HREF="libnetpbm_draw.html">Libnetpbm PPM Drawing Function Manual</A>
+<b><a href="ppmdraw.html">ppmdraw</a></b>, <b><a
+href="ppmdmkfont.html">ppmdmkfont</a></b>, <b><a
+href="ppmdcfont.html">ppmdcfont</a></b>, <a
+href="libnetpbm_draw.html">Libnetpbm PPM Drawing Function Manual</a>
 
 
-<HR>
-<H2 id="index">Table Of Contents</H2>
-<UL>
-<LI><A HREF="#synopsis">SYNOPSIS</A>
-<LI><A HREF="#description">DESCRIPTION</A>
-<LI><A HREF="#seealso">SEE ALSO</A>
-</UL>
-</BODY>
-</HTML>
+<hr>
+<h2 id="index">Table Of Contents</h2>
+<ul>
+<li><a href="#synopsis">SYNOPSIS</a>
+<li><a href="#description">DESCRIPTION</a>
+<li><a href="#seealso">SEE ALSO</a>
+</ul>
+</body>
+</html>
 
diff --git a/ppmdmkfont.html b/ppmdmkfont.html
index 60bac3b1..db4278ee 100644
--- a/ppmdmkfont.html
+++ b/ppmdmkfont.html
@@ -1,20 +1,20 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML><HEAD><TITLE>Ppmdmkfont User Manual</TITLE></HEAD>
-<BODY>
-<H1>ppmdmkfont</H1>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.3//EN">
+<html><head><title>Ppmdmkfont User Manual</title></head>
+<body>
+<h1>ppmdmkfont</h1>
 Updated: September 2005
-<BR>
-<A HREF="#index">Table Of Contents</A>
+<br>
+<a href="#index">Table Of Contents</a>
 
-<H2>NAME</H2>
+<h2>NAME</h2>
 
 ppmdmkfont - Create Ppmdfont "standard".
 
-<H2 id="synopsis">SYNOPSIS</H2>
+<h2 id="synopsis">SYNOPSIS</h2>
 
-<B>ppmdmkfont</B>
+<b>ppmdmkfont</b>
 
-<H2 id="description">DESCRIPTION</H2>
+<h2 id="description">DESCRIPTION</h2>
 
 <p>This program is part of <a href="index.html">Netpbm</a>.
 
@@ -26,24 +26,24 @@ a Ppmdfont file.  It has no input; it always generates identical files.
 <p>This program is useful mainly as an example for creating other fonts.
 <b>libnetpbm</b> has the "standard" font built in.
 
-<p>See <A HREF="libnetpbm_draw.html">Libnetpbm PPM Drawing Function
-Manual</A> for details on Ppmdfont files.
+<p>See <a href="libnetpbm_draw.html">Libnetpbm PPM Drawing Function
+Manual</a> for details on Ppmdfont files.
 
-<H2 id="seealso">SEE ALSO</H2>
+<h2 id="seealso">SEE ALSO</h2>
 
-<B><A HREF="ppmdraw.html">ppmdraw</A></B>, <B><A
-HREF="ppmddumpfont.html">ppmddumpfont</A></B>, <B><A
-HREF="ppmdcfont.html">ppmdcfont</A></B>, <A
-HREF="libnetpbm_draw.html">Libnetpbm PPM Drawing Function Manual</A>
+<b><a href="ppmdraw.html">ppmdraw</a></b>, <b><a
+href="ppmddumpfont.html">ppmddumpfont</a></b>, <b><a
+href="ppmdcfont.html">ppmdcfont</a></b>, <a
+href="libnetpbm_draw.html">Libnetpbm PPM Drawing Function Manual</a>
 
 
-<HR>
-<H2 id="index">Table Of Contents</H2>
-<UL>
-<LI><A HREF="#synopsis">SYNOPSIS</A>
-<LI><A HREF="#description">DESCRIPTION</A>
-<LI><A HREF="#seealso">SEE ALSO</A>
-</UL>
-</BODY>
-</HTML>
+<hr>
+<h2 id="index">Table Of Contents</h2>
+<ul>
+<li><a href="#synopsis">SYNOPSIS</a>
+<li><a href="#description">DESCRIPTION</a>
+<li><a href="#seealso">SEE ALSO</a>
+</ul>
+</body>
+</html>
 
diff --git a/ppmlabel.html b/ppmlabel.html
index fae32e89..2f8a9acb 100644
--- a/ppmlabel.html
+++ b/ppmlabel.html
@@ -1,40 +1,40 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML><HEAD><TITLE>Ppmlabel User Manual</TITLE></HEAD>
-<BODY>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.3//EN">
+<html><head><title>Ppmlabel User Manual</title></head>
+<body>
 
-<H1>ppmlabel</H1>
+<h1>ppmlabel</h1>
 Updated: 15 April 2006
-<BR>
-<A HREF="#index">Table Of Contents</A>
+<br>
+<a href="#index">Table Of Contents</a>
 
-<H2>NAME</H2>
+<h2>NAME</h2>
 ppmlabel - add text to a PPM image
 
-<H2 id="synopsis">SYNOPSIS</H2>
+<h2 id="synopsis">SYNOPSIS</h2>
 
-<B>ppmlabel</B>
+<b>ppmlabel</b>
 
-[<B>-angle</B> <I>angle</I>]
+[<b>-angle</b> <i>angle</i>]
 
-[<B>-background</B> { <B>transparent</B> | <I>color</I> } ]
+[<b>-background</b> { <b>transparent</b> | <i>color</i> } ]
 
-[<B>-color</B> <I>color</I>]
+[<b>-color</b> <i>color</i>]
 
-[<B>-file</B> <I>filename</I>]
+[<b>-file</b> <i>filename</i>]
 
-[<B>-size</B>
+[<b>-size</b>
 
-<I>textsize</I>]
+<i>textsize</i>]
 
-[<B>-text</B> <I>text_string</i>]
+[<b>-text</b> <i>text_string</i>]
 
-[<B>-x</B> <I>column</I>]
+[<b>-x</b> <i>column</i>]
 
-[<B>-y</B> <I>row</I>]
+[<b>-y</b> <i>row</i>]
 
 ...
 
-[<I>ppmfile</I>]
+[<i>ppmfile</i>]
 
 
 <h2 id="example">EXAMPLE</h2>
@@ -47,81 +47,86 @@ ppmlabel - add text to a PPM image
 </code>
 </pre>
 
-<H2 id="description">DESCRIPTION</H2>
+<h2 id="description">DESCRIPTION</h2>
 
 <p>This program is part of <a href="index.html">Netpbm</a>.
 
-<p><B>ppmlabel</B> uses the text drawing facilities of <B>libnetpbm</B>'s
+<p><b>ppmlabel</b> uses the text drawing facilities of <b>libnetpbm</b>'s
 "ppmd" component to add text to a PBM image.  You control
 the location, size, baseline angle, color of the text, and background
 color (if any) with command line arguments.  You can specify the text
 on the command line or supply it in files.
 
 <p>You can add any number of separate labels in a single invocation of
-<B>ppmlabel</B>, limited only by any restrictions your environment has
+<b>ppmlabel</b>, limited only by any restrictions your environment has
 on the number and size of program arguments (e.g. a shell's command 
 size limit).
 
-<P>If you don't specify <I>ppmfile</I>, <B>ppmlabel</B> reads its input
+<p>If you don't specify <i>ppmfile</i>, <b>ppmlabel</b> reads its input
 PPM image from Standard Input.
 
-<P>The output image goes to Standard Output.
+<p>The output image goes to Standard Output.
 
-<P>A more sophisticated way to add a label to an image is to use
+<p>A more sophisticated way to add a label to an image is to use
 <b>pbmtext</b> or <b>pbmtextps</b> to create an image of the text, then
 <b>pamcomp</b> to overlay it onto the base image.
 
 <p>Another more general program is <b>ppmdraw</b>.  It is slightly harder
 to use for simple labelling.
 
-<H2 id="options">OPTIONS</H2>
+<h2 id="options">OPTIONS</h2>
 
-<p>The arguments on the <B>ppmlabel</B> command line are not options in
+<p>In addition to the options common to all programs based on libnetpbm
+(most notably <b>-quiet</b>, see <a href="index.html#commonoptions">
+Common Options</a>), <b>ppmlabel</b> recognizes the following
+command line options:
+
+<p>The arguments on the <b>ppmlabel</b> command line are not options in
 the strict sense; they are commands which control the placement and
 appearance of the text being added to the input image.  They are
 executed left to right, and any number of arguments may appear.
 
-<P>You can abbreviate any option to its shortest unique prefix.
+<p>You can abbreviate any option to its shortest unique prefix.
 
-<DL COMPACT>
-<DT><B>-angle</B><I> angle</I>
+<dl compact>
+<dt><b>-angle</b><i> angle</i>
 
-<DD>This option sets the angle of the baseline of subsequent text.
-<I>angle</I> is an integral number of degrees, measured
+<dd>This option sets the angle of the baseline of subsequent text.
+<i>angle</i> is an integral number of degrees, measured
 counterclockwise from the row axis of the image.
 
-<DT><B>-background</b> { <b>transparent</b> | <I>color</I> }
+<dt><b>-background</b> { <b>transparent</b> | <i>color</i> }
 
-<DD>If the argument is <B>transparent</B>, <b>ppmlabel</b> draws the
+<dd>If the argument is <b>transparent</b>, <b>ppmlabel</b> draws the
 text over the existing pixels in the image.  If you specify a
-<I>color</I> (see the <B>-color</B> option below for information on
+<i>color</i> (see the <b>-color</b> option below for information on
 how to specify colors), <b>ppmlabel</b> generates background rectangles
 enclosing subsequent text, and those rectangles are filled with that
 color.
 
-<DT><B>-color</B> <I>color</I>
+<dt><b>-color</b> <i>color</i>
 
-<DD>This option sets the color for subsequent text.
+<dd>This option sets the color for subsequent text.
 
-<P>Specify the color (<i>color</i>) as described for the <a
+<p>Specify the color (<i>color</i>) as described for the <a
 href="libnetpbm_image.html#colorname">argument of the <b>pnm_parsecolor()</b>
 library routine</a>.
 
 <p><b>-colour</b> is an acceptable alternate spelling.
 
-<DT><B>-file</B> <I>filename</I>
+<dt><b>-file</b> <i>filename</i>
 
-<DD>This option causes <b>ppmlabel</b> to read lines of text from the file
-named <I>filename</I> and draw it on successive lines.
+<dd>This option causes <b>ppmlabel</b> to read lines of text from the file
+named <i>filename</i> and draw it on successive lines.
 
-<DT><B>-size</B> <I>textsize</I>
+<dt><b>-size</b> <i>textsize</i>
 
-<DD>This option sets the height of the tallest characters above the
-baseline to <I>textsize</I> pixels.
+<dd>This option sets the height of the tallest characters above the
+baseline to <i>textsize</i> pixels.
 
-<DT><B>-text</B> <I>text_string</I>
+<dt><b>-text</b> <i>text_string</i>
 
-<DD>This option causes <b>ppmlabel</b> to draw the specified text
+<dd>This option causes <b>ppmlabel</b> to draw the specified text
 string.  It advances the location for subsequent text down 1.75 times
 the current <i>textsize</i>.  That lets you draw multiple lines of
 text in a reasonable manner without specifying the position of each
@@ -135,61 +140,61 @@ the whole string as a single token.  E.g.
 </pre>
 
 
-<DT><B>-x</B> <I>column</I>
+<dt><b>-x</b> <i>column</i>
 
-<DD>This option sets the pixel column at which subsequent text will
+<dd>This option sets the pixel column at which subsequent text will
 be left justified.  Depending on the shape of the first character, the
 actual text may begin a few pixels to the right of this point.
 
-<DT><B>-y</B> <I>row</I>
+<dt><b>-y</b> <i>row</i>
 
-<DD>This option sets the pixel row which will form the baseline of
+<dd>This option sets the pixel row which will form the baseline of
 subsequent text.  Characters with descenders, such as "y," will extend
 below this line.  
 
-</DL>
+</dl>
 
-<H2 id="limitations">LIMITATIONS</H2>
+<h2 id="limitations">LIMITATIONS</h2>
 
-<P>Text strings are restricted to 7 bit ASCII.  The text font used by
-<B>ppmlabel</B> doesn't include definitions for 8 bit ISO 8859/1 characters.
+<p>Text strings are restricted to 7 bit ASCII.  The text font used by
+<b>ppmlabel</b> doesn't include definitions for 8 bit ISO 8859/1 characters.
 
-<P>When drawing multiple lines of text with a non-transparent
+<p>When drawing multiple lines of text with a non-transparent
 background, it should probably fill the space between the lines with
 the background color.  This is tricky to get right when the text is
 rotated to a non-orthogonal angle.
 
-<H2 id="seealso">SEE ALSO</H2>
+<h2 id="seealso">SEE ALSO</h2>
 
 
-<B><A HREF="ppmmake.html">ppmmake</A></B>,
-<B><A HREF="ppmdraw.html">ppmdraw</A></B>,
-<B><A HREF="pbmtext.html">pbmtext</A></B>,
-<B><A HREF="pbmtextps.html">pbmtextps</A></B>,
-<B><A HREF="pamcomp.html">pamcomp</A></B>,
-<B><A HREF="ppm.html">ppm</A></B>
+<b><a href="ppmmake.html">ppmmake</a></b>,
+<b><a href="ppmdraw.html">ppmdraw</a></b>,
+<b><a href="pbmtext.html">pbmtext</a></b>,
+<b><a href="pbmtextps.html">pbmtextps</a></b>,
+<b><a href="pamcomp.html">pamcomp</a></b>,
+<b><a href="ppm.html">ppm</a></b>
 
 
-<H2 id="author">AUTHOR</H2>
+<h2 id="author">AUTHOR</h2>
 
-Copyright (C) 1995 by John Walker (<A HREF="mailto:kelvin@fourmilab.ch">kelvin@fourmilab.ch</A>)<BR>
-WWW home page: <A HREF="http://www.fourmilab.ch/">http://www.fourmilab.ch/</A><BR>
+Copyright (C) 1995 by John Walker (<a href="mailto:kelvin@fourmilab.ch">kelvin@fourmilab.ch</a>)<br>
+WWW home page: <a href="http://www.fourmilab.ch/">http://www.fourmilab.ch/</a><br>
 
-<P>Permission to use, copy, modify, and distribute this software and
+<p>Permission to use, copy, modify, and distribute this software and
 its documentation for any purpose and without fee is hereby granted,
 without any conditions or restrictions.  This software is provided
 ``as is'' without express or implied warranty.
 
-<HR>
-<H2 id="index">Table Of Contents</H2>
-<UL>
-<LI><A HREF="#synopsis">SYNOPSIS</A>
-<LI><A HREF="#example">EXAMPLE</A>
-<LI><A HREF="#description">DESCRIPTION</A>
-<LI><A HREF="#options">OPTIONS</A>
-<LI><A HREF="#limitations">LIMITATIONS</A>
-<LI><A HREF="#seealso">SEE ALSO</A>
-<LI><A HREF="#author">AUTHOR</A>
-</UL>
-</BODY>
-</HTML>
+<hr>
+<h2 id="index">Table Of Contents</h2>
+<ul>
+<li><a href="#synopsis">SYNOPSIS</a>
+<li><a href="#example">EXAMPLE</a>
+<li><a href="#description">DESCRIPTION</a>
+<li><a href="#options">OPTIONS</a>
+<li><a href="#limitations">LIMITATIONS</a>
+<li><a href="#seealso">SEE ALSO</a>
+<li><a href="#author">AUTHOR</a>
+</ul>
+</body>
+</html>
diff --git a/ppmrainbow.html b/ppmrainbow.html
index b95b4d9b..68528e49 100644
--- a/ppmrainbow.html
+++ b/ppmrainbow.html
@@ -1,39 +1,39 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML><HEAD><TITLE>Ppmrainbow User Manual</TITLE></HEAD>
-<BODY>
-<H1>ppmrainbow</H1>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.3//EN">
+<html><head><title>Ppmrainbow User Manual</title></head>
+<body>
+<h1>ppmrainbow</h1>
 Updated: 12 November 2014
-<BR>
-<A HREF="#index">Table Of Contents</A>
+<br>
+<a href="#index">Table Of Contents</a>
 
-<H2>NAME</H2>
+<h2>NAME</h2>
 
 ppmrainbow - Generate a rainbow
 
-<H2 id="synopsis">SYNOPSIS</H2>
+<h2 id="synopsis">SYNOPSIS</h2>
 
-<B>ppmrainbow</B>
+<b>ppmrainbow</b>
 
-[<B>-width=</B><I>number</I>] [<B>-height=</B><I>number</I>]
+[<b>-width=</b><i>number</i>] [<b>-height=</b><i>number</i>]
 
-<BR>
+<br>
 
-[<B>-tmpdir=</B><I>directory</I>] [<B>-norepeat</B>] [<B>-verbose</B>] <I>color</I> ...
+[<b>-tmpdir=</b><i>directory</i>] [<b>-norepeat</b>] [<b>-verbose</b>] <i>color</i> ...
 
-<H2 id="description">DESCRIPTION</H2>
+<h2 id="description">DESCRIPTION</h2>
 
 <p>This program is part of <a href="index.html">Netpbm</a>.
 
-<B>ppmrainbow</B> generates a PPM image that fades from one color to
+<b>ppmrainbow</b> generates a PPM image that fades from one color to
 another to another from left to right, like a rainbow.
 
-<P>If you want a vertical or other non-horizontal rainbow, run the output
-through <B>pnmrotate</B> or <b>pamflip</b>.
+<p>If you want a vertical or other non-horizontal rainbow, run the output
+through <b>pnmrotate</b> or <b>pamflip</b>.
 
-<P>One use for such a rainbow is to compose it with another image
+<p>One use for such a rainbow is to compose it with another image
 under a transparency mask in order to add a rainbow area to another image.
-In fact, you can make rainbow-colored text by using <B>pbmtext</B>,
-<B>pamcomp</B>, and <B>ppmrainbow</B>.
+In fact, you can make rainbow-colored text by using <b>pbmtext</b>,
+<b>pamcomp</b>, and <b>ppmrainbow</b>.
 
 <p><b>pgmramp</b> does a similar thing for grayscale images.
 
@@ -43,89 +43,89 @@ kind of processing; not to look at), see <b>pamseq</b>.
 
 <h2 id="arguments">ARGUMENTS</h2>
 
-<P><I>color</I> ... is the list of colors, in order from left to right,
+<p><i>color</i> ... is the list of colors, in order from left to right,
 to go into the rainbow.
 
 <p>The first color is added again on the right end of the image unless you
 specify the <b>-norepeat</b> option.  This means you can concatenate multiple
 copies (tile, as with <b>pnmtile</b>) to make a continuous larger image.
 
-<P><i>color</i> is as described for
+<p><i>color</i> is as described for
 the <a href="libnetpbm_image.html#colorname">argument of the <b>pnm_parsecolor()</b>
 library routine</a>.
 
 
-<H2 id="options">OPTIONS</H2>
+<h2 id="options">OPTIONS</h2>
 
-<P>All options can be abbreviated to their shortest unique prefix.
+<p>All options can be abbreviated to their shortest unique prefix.
 You may use two hyphens instead of one to designate an option.  You
 may use either white space or equals signs between an option name and
 its value.
 
-<DL COMPACT>
-<DT><B>-width </B><I>number</I>
+<dl compact>
+<dt><b>-width </b><i>number</i>
 
-<DD>
+<dd>
 The width in pixels of the output image.
 
-<P>Default is 600.
+<p>Default is 600.
 
-<DT><B>-height </B><I>number</I>
+<dt><b>-height </b><i>number</i>
 
-<DD>
+<dd>
 The height in pixels of the output image.
 
-<P>Default is 8.
+<p>Default is 8.
 
-<DT><b>-norepeat</b>
+<dt><b>-norepeat</b>
      
 <dd>This option makes <b>ppmrainbow</b> end the rainbow with the last
 color you specify.  Without this option, <b>ppmrainbow</b> adds the
 first color you specify to the right end of the rainbow as if you had
 repeated it.
 
-<DT><B>-tmpdir</B>
+<dt><b>-tmpdir</b>
 
-<DD>The directory specification of the directory <B>ppmrainbow</B> is
+<dd>The directory specification of the directory <b>ppmrainbow</b> is
 to use for temporary files.
 
-<P>Default is the value of the <B>TMPDIR</B> environment variable, or
-<b>/tmp</b> if <B>TMPDIR</B> is not set.
+<p>Default is the value of the <b>TMPDIR</b> environment variable, or
+<b>/tmp</b> if <b>TMPDIR</b> is not set.
 
 <p><b>ppmrainbow</b> always creates a directory within this directory
 and creates all its files within that directory.
 
-<DT><B>-verbose</B>
+<dt><b>-verbose</b>
 
-<DD>Print the "commands" (invocations of other Netpbm
-programs) that <B>ppmrainbow</B> uses to create the image.
+<dd>Print the "commands" (invocations of other Netpbm
+programs) that <b>ppmrainbow</b> uses to create the image.
 
-</DL>
+</dl>
 
-<H2 id="seealso">SEE ALSO</H2>
+<h2 id="seealso">SEE ALSO</h2>
 
-<B><A HREF="pgmramp.html">pgmramp</A></B>,
-<B><A HREF="pamseq.html">pamseq</A></B>,
-<B><A HREF="pamgradient.html">pamgradient</A></B>,
-<B><A HREF="ppmmake.html">ppmmake</A></B>,
-<B><A HREF="ppmfade.html">ppmfade</A></B>,
-<B><A HREF="ppm.html">ppm</A></B>.
+<b><a href="pgmramp.html">pgmramp</a></b>,
+<b><a href="pamseq.html">pamseq</a></b>,
+<b><a href="pamgradient.html">pamgradient</a></b>,
+<b><a href="ppmmake.html">ppmmake</a></b>,
+<b><a href="ppmfade.html">ppmfade</a></b>,
+<b><a href="ppm.html">ppm</a></b>.
 
-<H2 id="author">AUTHOR</H2>
+<h2 id="author">AUTHOR</h2>
 
-<P>Arjen Bax wrote <B>ppmrainbow</B> in June 2001 and contributed it
+<p>Arjen Bax wrote <b>ppmrainbow</b> in June 2001 and contributed it
 to the Netpbm package.  Bryan Henderson wrote this manual in July
 2001.
 
-<HR>
-<H2 id="index">Table Of Contents</H2>
-<UL>
-<LI><A HREF="#synopsis">SYNOPSIS</A>
-<LI><A HREF="#description">DESCRIPTION</A>
-<LI><A HREF="#options">ARGUMENTS</A>
-<LI><A HREF="#options">OPTIONS</A>
-<LI><A HREF="#seealso">SEE ALSO</A>
-<LI><A HREF="#author">AUTHOR</A>
-</UL>
-</BODY>
-</HTML>
+<hr>
+<h2 id="index">Table Of Contents</h2>
+<ul>
+<li><a href="#synopsis">SYNOPSIS</a>
+<li><a href="#description">DESCRIPTION</a>
+<li><a href="#arguments">ARGUMENTS</a>
+<li><a href="#options">OPTIONS</a>
+<li><a href="#seealso">SEE ALSO</a>
+<li><a href="#author">AUTHOR</a>
+</ul>
+</body>
+</html>
diff --git a/ppmrelief.html b/ppmrelief.html
index 0fd6e1a9..b6cea807 100644
--- a/ppmrelief.html
+++ b/ppmrelief.html
@@ -28,11 +28,11 @@ Holzmann, equation 3.19.  It's a sort of edge-detection and is essentially
 a convolution with this matrix:
 
 <pre>
-<tt>
+<span style="font-family: monospace">
     |  1  0  0 |
     |  0  0  0 |
     |  0  0 -1 |
-</tt>
+</span>
 </pre>
 
 <h2 id="options">OPTIONS</h2>
diff --git a/ppmsvgalib.html b/ppmsvgalib.html
index f868965a..49959b25 100644
--- a/ppmsvgalib.html
+++ b/ppmsvgalib.html
@@ -1,132 +1,142 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML><HEAD><TITLE>Ppmsvgalib User Manual</TITLE></HEAD>
-<BODY>
-<H1>ppmsvgalib</H1>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.3//EN">
+<html><head><title>Ppmsvgalib User Manual</title></head>
+<body>
+<h1>ppmsvgalib</h1>
 Updated: 11 May 2005
-<BR>
-<A HREF="#index">Table Of Contents</A>
+<br>
+<a href="#index">Table Of Contents</a>
 
-<H2>NAME</H2>
+<h2>NAME</h2>
 
 ppmsvgalib - display PPM image on Linux console using Svgalib
 
-<H2 id="synopsis">SYNOPSIS</H2>
+<h2 id="synopsis">SYNOPSIS</h2>
 
-<B>ppmsvgalib</B>
+<b>ppmsvgalib</b>
 
-[<B>-mode=</B><I>mode</I>]
+[<b>-mode=</b><i>mode</i>]
+[<b>-verbose</b>]
 
-<P>All options can be abbreviated to their shortest unique prefix.  You
+<p>All options can be abbreviated to their shortest unique prefix.  You
 may use two hyphens instead of one to designate an option.  You may
 use either white space or an equals sign between an option name and its
 value.
 
 
-<H2 id="description">DESCRIPTION</H2>
+<h2 id="description">DESCRIPTION</h2>
 
 <p>This program is part of <a href="index.html">Netpbm</a>.
 
-<p><B>ppmsvgalib</B> displays a PPM image on a Linux virtual console
+<p><b>ppmsvgalib</b> displays a PPM image on a Linux virtual console
 using the Svgalib facility.  Svgalib is a popular means of displaying
 Graphics in Linux without the use of the X Window System.  (To display
 a Netpbm image in an X window, see <b>pamx</b>).
 
-<P>If you run <B>ppmsvgalib</B> with a version of Svgalib earlier than
+<p>If you run <b>ppmsvgalib</b> with a version of Svgalib earlier than
 1.9, you must run it with CAP_SYS_RAWIO capability (on most Linux
 systems, that means you run it as superuser), because Svgalib uses the
 <b>ioperm()</b> system call to access the console hardware.  Newer
 Svgalib has its own device driver, so you need only proper
 permissions on a device special file to access the console.
 
-<P><B>ppmsvgalib</B> is not capable of using color mapped video modes.
+<p><b>ppmsvgalib</b> is not capable of using color mapped video modes.
 These are the old video modes that are usually called "8
 bit" color modes.
 
-<P><B>ppmsvgalib</B> is a bare displayer.  It won't do any
+<p><b>ppmsvgalib</b> is a bare displayer.  It won't do any
 manipulation of the image and is not interactive in any way.  If you
 want a regular interactive graphics viewer that uses Svgalib, try
-<B>zgv</B> (not part of Netpbm).
+<b>zgv</b> (not part of Netpbm).
 
-<P>To exit <B>ppmsvgalib</B> while it is displaying your image, send
+<p>To exit <b>ppmsvgalib</b> while it is displaying your image, send
 it a SIGINTR signal (normally, this means "hit control C").
 
-<P><B>ppmsvgalib</B> draws a white border around the edges of the
+<p><b>ppmsvgalib</b> draws a white border around the edges of the
 screen.  It does this to help you isolate problems between the image
 you're displaying and the facilities you're using to display it.
 
-<P>(Note: if the image you're displaying reaches the edges of the
+<p>(Note: if the image you're displaying reaches the edges of the
 screen, it will replace the white border).
 
-<P><B>ppmsvgalib</B> places the image in the center of the screen.
+<p><b>ppmsvgalib</b> places the image in the center of the screen.
 
-<P>If your image is too big to display in the video mode you selected,
-<B>ppmsvgalib</B> fails.  You can use <B>pamcut</B> to cut out a part
-of the image to display or use <B>pamscale</B> to shrink the image to
+<p>If your image is too big to display in the video mode you selected,
+<b>ppmsvgalib</b> fails.  You can use <b>pamcut</b> to cut out a part
+of the image to display or use <b>pamscale</b> to shrink the image to
 fit.
 
-<P>If you want to play with <B>ppmsvgalib</B>, <B>ppmcie</B> is a good
+<p>If you want to play with <b>ppmsvgalib</b>, <b>ppmcie</b> is a good
 way to generate a test image.
 
-<P>To be pedantic, we must observe that <B>ppmsvgalib</B> displays a PPM image
+<p>To be pedantic, we must observe that <b>ppmsvgalib</b> displays a PPM image
 in the correct colors only if the display has a transfer function which is the
 exact inverse of the gamma function that is specified in the PPM
 specification.  Happily, most CRT displays and the modern displays that
 emulate them, are pretty close.
 
-<P>Running the PPM image through <B>pnmgamma</B> can help cause
-<B>ppmsvgalib</B> to display the correct colors.
+<p>Running the PPM image through <b>pnmgamma</b> can help cause
+<b>ppmsvgalib</b> to display the correct colors.
 
-<H2 id="options">OPTIONS</H2>
+<h2 id="options">OPTIONS</h2>
 
-<DL COMPACT>
-<DT><B>-mode=</B><I>mode</I>
+<p>In addition to the options common to all programs based on libnetpbm
+(most notably <b>-quiet</b>, see <a href="index.html#commonoptions">
+Common Options</a>), <b>ppmsvgalib</b> recognizes the following
+command line options:
 
-<DD>This tells <B>ppmsvgalib</B> what video mode to use.  <I>mode</I>
+<dl compact>
+<dt><b>-mode=</b><i>mode</i>
+
+<dd>This tells <b>ppmsvgalib</b> what video mode to use.  <i>mode</i>
 is the Svgalib video mode number.  You can get a list of all the video
 modes and their Svgalib video mode numbers with the program
-<B>vgatest</B> that is packaged with Svgalib.  (Unfortunately, the
+<b>vgatest</b> that is packaged with Svgalib.  (Unfortunately, the
 various interesting programs that are packaged with Svgalib are
 typically not installed on systems that have the Svgalib library
 installed).
 
-<P>In practice, there are probably only two modes you'll ever care
+<p>In practice, there are probably only two modes you'll ever care
 about: 25 is the standard SVGA direct color mode, which is 1024
 columns by 768 rows with 8 bit red, green, and blue components for
 each pixel and no fancy options.  28 is the same, but with the popular
 higher resolution of 1280 x 1024.
 
-<P>But if you have an older video controller (with less than 4MB of memory),
+<p>But if you have an older video controller (with less than 4MB of memory),
 those modes aren't available, you might like mode 19, which is 640 x 480 and
 takes less than a megabyte of video memory.  This is a standard VGA video
 mode.
 
-</DL>
+<dt><b>-verbose</b>
+
+<dd>Report details of the video mode to standard error output.
+
+</dl>
 
-<H2 id="seealso">SEE ALSO</H2>
+<h2 id="seealso">SEE ALSO</h2>
 
-<B><A HREF="pamx.html">pamx</A></B>,
-<B><A HREF="pamcut.html">pamcut</A></B>,
-<B><A HREF="pamscale.html">pamscale</A></B>,
-<B><A HREF="ppmcie.html">ppmcie</A></B>,
-<B><A HREF="ppm.html">ppm</A></B>,
-<B>zgv</B>,
-<B>Svgalib</B>,
-<B>vgatest</B>
+<b><a href="pamx.html">pamx</a></b>,
+<b><a href="pamcut.html">pamcut</a></b>,
+<b><a href="pamscale.html">pamscale</a></b>,
+<b><a href="ppmcie.html">ppmcie</a></b>,
+<b><a href="ppm.html">ppm</a></b>,
+<b>zgv</b>,
+<b>Svgalib</b>,
+<b>vgatest</b>
 
-<H2 id="author">AUTHOR</H2>
+<h2 id="author">AUTHOR</h2>
 
 <p>By Bryan Henderson, January 2002.
 
-<P>Contributed to the public domain.
-
-<HR>
-<H2 id="index">Table Of Contents</H2>
-<UL>
-<LI><A HREF="#synopsis">SYNOPSIS</A>
-<LI><A HREF="#description">DESCRIPTION</A>
-<LI><A HREF="#options">OPTIONS</A>
-<LI><A HREF="#seealso">SEE ALSO</A>
-<LI><A HREF="#author">AUTHOR</A>
-</UL>
-</BODY>
-</HTML>
+<p>Contributed to the public domain.
+
+<hr>
+<h2 id="index">Table Of Contents</h2>
+<ul>
+<li><a href="#synopsis">SYNOPSIS</a>
+<li><a href="#description">DESCRIPTION</a>
+<li><a href="#options">OPTIONS</a>
+<li><a href="#seealso">SEE ALSO</a>
+<li><a href="#author">AUTHOR</a>
+</ul>
+</body>
+</html>
diff --git a/ppmtoascii.html b/ppmtoascii.html
index e9ea1d3d..5384c6fa 100644
--- a/ppmtoascii.html
+++ b/ppmtoascii.html
@@ -1,23 +1,23 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML><HEAD><TITLE>Ppmtoascii User Manual</TITLE></HEAD>
-<BODY>
-<H1>ppmtoascii</H1>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.3//EN">
+<html><head><title>Ppmtoascii User Manual</title></head>
+<body>
+<h1>ppmtoascii</h1>
 Updated: 09 April 2010
-<BR>
-<A HREF="#index">Table Of Contents</A>
+<br>
+<a href="#index">Table Of Contents</a>
 
-<H2>NAME</H2>
+<h2>NAME</h2>
 ppmtoascii - convert a PPM image to ASCII graphics with ANSI terminal color
 
-<H2 id="synopsis">SYNOPSIS</H2>
+<h2 id="synopsis">SYNOPSIS</h2>
 
-<B>ppmtoascii</B>
+<b>ppmtoascii</b>
 
-[<B>-1x2</B>|<B>-2x4</B>]
+[<b>-1x2</b>|<b>-2x4</b>]
 
-[<I>ppmfile</I>]
+[<i>ppmfile</i>]
 
-<H2 id="description">DESCRIPTION</H2>
+<h2 id="description">DESCRIPTION</h2>
 
 <p>This program is part of <a href="index.html">Netpbm</a>.
 
@@ -25,7 +25,7 @@ ppmtoascii - convert a PPM image to ASCII graphics with ANSI terminal color
 crude ASCII graphic image as output, with ANSI terminal control characters
 so it has crude color when sent to a color text terminal.
 
-<P>There is no converter for the other direction.
+<p>There is no converter for the other direction.
 
 <p><b>ppmtoterm</b> does a similar thing, but displays each character of the
 image as a single pixel (using the same dense character for every pixel),
@@ -44,18 +44,23 @@ control characters (because none are needed for a strictly black and white
 image).
 
 
-<H2 id="options">OPTIONS</H2>
+<h2 id="options">OPTIONS</h2>
 
-<p>The <B>-1x2</B> and <B>-2x4</B> options give you two alternate ways for the
-pixels to get mapped to characters.  With <B>1x2</B>, the default, each
+<p>In addition to the options common to all programs based on libnetpbm
+(most notably <b>-quiet</b>, see <a href="index.html#commonoptions">
+Common Options</a>), <b>ppmtoascii</b> recognizes the following
+command line options:
+
+<p>The <b>-1x2</b> and <b>-2x4</b> options give you two alternate ways for the
+pixels to get mapped to characters.  With <b>1x2</b>, the default, each
 character represents a group of 1 pixel across by 2 pixels down.  With
-<B>-2x4</B>, each character represents 2 pixels across by 4 pixels down.
+<b>-2x4</b>, each character represents 2 pixels across by 4 pixels down.
 
-<H2 id="seealso">SEE ALSO</H2>
+<h2 id="seealso">SEE ALSO</h2>
 
-<A HREF="pbmtoascii.html">pbmtoascii</A>
+<a href="pbmtoascii.html">pbmtoascii</a>
 <a href="ppmtoterm.html">ppmtoterm</a>
-<A HREF="ppm.html">ppm</A>
+<a href="ppm.html">ppm</a>
 
 
 <h2 id="history">HISTORY</h2>
@@ -64,19 +69,19 @@ character represents a group of 1 pixel across by 2 pixels down.  With
 derived it from <b>pbmtoascii</b>.
 
 
-<H2 id="author">AUTHOR</H2>
+<h2 id="author">AUTHOR</h2>
 
 Copyright (C) 2010 by Frank Ch. Eigler.
 
-<HR>
-<H2 id="index">Table Of Contents</H2>
-<UL>
-<LI><A HREF="#synopsis">SYNOPSIS</A>
-<LI><A HREF="#description">DESCRIPTION</A>
-<LI><A HREF="#options">OPTIONS</A>
-<LI><A HREF="#seealso">SEE ALSO</A>
-<LI><A HREF="#history">HISTORY</A>
-<LI><A HREF="#author">AUTHOR</A>
-</UL>
-</BODY>
-</HTML>
+<hr>
+<h2 id="index">Table Of Contents</h2>
+<ul>
+<li><a href="#synopsis">SYNOPSIS</a>
+<li><a href="#description">DESCRIPTION</a>
+<li><a href="#options">OPTIONS</a>
+<li><a href="#seealso">SEE ALSO</a>
+<li><a href="#history">HISTORY</a>
+<li><a href="#author">AUTHOR</a>
+</ul>
+</body>
+</html>
diff --git a/ppmtompeg.html b/ppmtompeg.html
index 3759ad55..af5a8d71 100644
--- a/ppmtompeg.html
+++ b/ppmtompeg.html
@@ -1,28 +1,25 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML>
-<HEAD>
-<TITLE>Ppmtompeg User Manual</TITLE>
-</HEAD>
-<BODY>
-<H1>Ppmtompeg</H1>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.3//EN">
+<html><head><title>Ppmtompeg User Manual</title></head>
+<body>
+<h1>ppmtompeg</h1>
 Updated: 23 July 2006
-<BR>
-<A HREF="#index">Table Of Contents</A>
+<br>
+<a href="#index">Table Of Contents</a>
 
-<H2>NAME</H2>
+<h2>NAME</h2>
 ppmtompeg - encode an MPEG-1 bitstream
 
-<H2 id="synopsis">SYNOPSIS</H2>
+<h2 id="synopsis">SYNOPSIS</h2>
 
-<B>ppmtompeg</B>
-[<I>options</I>]
-<I>parameter-file</I>
+<b>ppmtompeg</b>
+[<i>options</i>]
+<i>parameter-file</i>
 
-<H2 id="description">DESCRIPTION</H2>
+<h2 id="description">DESCRIPTION</h2>
 
 <p>This program is part of <a href="index.html">Netpbm</a>.
 
-<P><B>ppmtompeg</B> produces an MPEG-1 video stream.  MPEG-1 is the
+<p><b>ppmtompeg</b> produces an MPEG-1 video stream.  MPEG-1 is the
 first great video compression method, and is what is used in Video CDs
 (VCD).  <b>ppmtompeg</b> originated in the year 1995.  DVD uses a more
 advanced method, MPEG-2.  There is an even newer method called MPEG-4
@@ -48,21 +45,21 @@ stream.
 input files and other parameters.  The file is described in detail
 below.
 
-<P>To understand this program, you need to understand something about
+<p>To understand this program, you need to understand something about
 the complex MPEG-1 format.  One source of information about this
 standard format is the section Introduction to MPEG in the <a
 href="http://www.faqs.org/faqs/compression-faq">Compression FAQ</a>.
 
-<H2 id="options">OPTIONS</H2>
+<h2 id="options">OPTIONS</h2>
 
 <p>The <b>-gop</b>, <b>-combine_gops</b>, <b>-frames</b>, and
 <b>-combine_frames</b> options are all mutually exclusive.
 
-<DL COMPACT>
-<DT><B>-stat stat_file</B>
+<dl compact>
+<dt><b>-stat stat_file</b>
 
-<DD>This option causes <b>ppmtompeg</b> to append the statistics that
-it write to Standard Output to the file <I>stat_file</I> as well.  The
+<dd>This option causes <b>ppmtompeg</b> to append the statistics that
+it write to Standard Output to the file <i>stat_file</i> as well.  The
 statistics use the following abbreviations: bits per block (bpb), bits
 per frame (bpf), seconds per frame (spf), and bits per second (bps).
 
@@ -70,40 +67,41 @@ per frame (bpf), seconds per frame (spf), and bits per second (bps).
 and information about compression and quality.
 
 
-<DT><B>-quiet</b> <i>num_seconds</i>
+<dt><b>-quiet</b> <i>num_seconds</i>
 
-<DD> causes <b>ppmtompeg</b> not to report remaining time more often
+<dd> causes <b>ppmtompeg</b> not to report remaining time more often
 than every <i>num_seconds</i> seconds (unless the time estimate rises,
 which will happen near the beginning of the run).  A negative value
 tells <b>ppmtompeg</b> not to report at all.  0 is the default
 (reports once after each frame).  Note that the time remaining is an
 estimate and does not take into account time to read in frames.
 
-<DT><B>-realquiet</B> <DD> causes <b>ppmtompeg</b> to run silently,
+<dt><b>-realquiet</b> <dd> causes <b>ppmtompeg</b> to run silently,
 with the only screen output being errors.  Particularly useful when
-reading input from stdin.
+reading input from stdin.  The equivalent of the <b>-quiet</b>
+common option of most other Netpbm programs.
 
-<DT>
-<B>-no_frame_summary</B>
+<dt>
+<b>-no_frame_summary</b>
 
-<DD> This option prevents <b>ppmtompeg</b> from printing a summary
+<dd> This option prevents <b>ppmtompeg</b> from printing a summary
 line for each frame
 
-<DT><B>-float_dct</B>
+<dt><b>-float_dct</b>
 
-<DD> forces <b>ppmtompeg</b> to use a more accurate, yet more
+<dd> forces <b>ppmtompeg</b> to use a more accurate, yet more
 computationally expensive version of the DCT.
 
-<DT><B>-gop</b> <i>gop_num</i>
-<DD>
+<dt><b>-gop</b> <i>gop_num</i>
+<dd>
 causes <b>ppmtompeg</b> to encode only the numbered GOP (first GOP is 0).  The
 parameter file is the same as for normal usage.  The output file will be
 the normal output file with the suffix <b>.gop.</b><i>gop_num</i>.
 <b>ppmtompeg</b> does not output any sequence information.
 
-<DT><B>-combine_gops</B>
+<dt><b>-combine_gops</b>
 
-<DD> causes <b>ppmtompeg</b> simply to combine some GOP files into a
+<dd> causes <b>ppmtompeg</b> simply to combine some GOP files into a
 single MPEG output stream.  <b>ppmtompeg</b> inserts a sequence header
 and trailer.  In this case, the parameter file needs only to contain 
 the SIZE value, an output file, and perhaps a list of input GOP
@@ -126,9 +124,9 @@ GOP files (<b>-gop</b>) and for later turning them into an MPEG stream
 (<b>-combine_gops</b>).
      
 
-<DT><B>-frames <i>first_frame</i> <i>last_frame</i></B>
+<dt><b>-frames <i>first_frame</i> <i>last_frame</i></b>
 
-<DD>This option causes <b>ppmtompeg</b> to encode only the frames numbered
+<dd>This option causes <b>ppmtompeg</b> to encode only the frames numbered
 <i>first_frame</i> to <i>last_frame</i>, inclusive.  The parameter
 file is the same as for normal usage.  The output will be placed in
 separate files, one per frame, with the file names being the normal
@@ -140,9 +138,9 @@ include the GOP_SIZE value)
 an MPEG stream.
 
 
-<DT><B>-combine_frames</B>
+<dt><b>-combine_frames</b>
 
-<DD> This option causes <b>ppmtompeg</b> simply to combine some
+<dd> This option causes <b>ppmtompeg</b> simply to combine some
 individual MPEG frames (such as you might have created with an earlier
 run of <b>ppmtompeg -frames</b>) into a single MPEG stream.  Sequence
 and GOP headers are inserted appropriately.  In this case, the
@@ -158,42 +156,42 @@ output file name with suffix <b>.frame.</b><i>frame_num</i>, with
      
 
 
-<DT><B>-nice</B>
+<dt><b>-nice</b>
 
-<DD>This option causes <b>ppmtompeg</b> to run any remote processes
+<dd>This option causes <b>ppmtompeg</b> to run any remote processes
 "nicely," i.e.  at low priority.  (This is relevant only if you are
 running <b>ppmtompeg</b> in parallel mode.  Otherwise, there are no
 remote processes).  See 'man nice.'
 
-<DT><B>-max_machines <i>num_machines</i></B>
+<dt><b>-max_machines <i>num_machines</i></b>
 
-<DD>This option causes <b>ppmtompeg</b> to use no more than
+<dd>This option causes <b>ppmtompeg</b> to use no more than
 <i>num_machines</i> machines as slaves for use in parallel encoding.
 
-<DT><B>-snr</B> 
+<dt><b>-snr</b> 
 
-<DD>This option causes <b>ppmtompeg</b> to include the signal-to-noise
+<dd>This option causes <b>ppmtompeg</b> to include the signal-to-noise
 ratio in the reported statistics.  Prints SNR (Y U V) and peak SNR (Y
 U V) for each frame.  In summary, prints averages of luminance only
 (Y).  SNR is defined as 10*log(variance of original/variance of
 error).  Peak SNR is defined as 20*log(255/RMSE).  Note that
 <b>ppmtompeg</b> runs a little slower when you use this option.
 
-<DT><B>-mse</B>
+<dt><b>-mse</b>
 
-<DD>This option causes <b>ppmtompeg</b> to report the mean squared
+<dd>This option causes <b>ppmtompeg</b> to report the mean squared
 error per block.  It also automatically reports the quality of the
 images, so there is no need to specify <b>-snr</b> then.
 
-<DT><B>-bit_rate_info</b> <i>rate_file</i>
+<dt><b>-bit_rate_info</b> <i>rate_file</i>
 
-<DD> This option makes <b>ppmtompeg</b> write bit rate information
+<dd> This option makes <b>ppmtompeg</b> write bit rate information
 into the file <i>rate_file</i>.  Bit rate information is bits per frame, and
 also bits per I-frame-to-I-frame.
 
-<DT><B>-mv_histogram</B> 
+<dt><b>-mv_histogram</b> 
 
-<DD> This option causes <b>ppmtompeg</b> to print a histogram of the
+<dd> This option causes <b>ppmtompeg</b> to print a histogram of the
 motion vectors as part of statistics.  There are three histograms --
 one for P frame, one for forward B frame, and one for backward B frame
 motion vectors.
@@ -215,19 +213,19 @@ messages that narrate the progress of the conversion on the various
 machines when you run <b>ppmtompeg</b> in <a href="#parallel">parallel
 mode</a>.
      
-</DL>
+</dl>
 
-<H2 id="parmfile">PARAMETER FILE</H2>
+<h2 id="parmfile">PARAMETER FILE</h2>
 
-<P>The parameter file <strong>must</strong> contain the following
+<p>The parameter file <strong>must</strong> contain the following
 lines (except when using the <b>-combine_gops</b> or <b>-combine_frames</b>
 options):
 
-<DL COMPACT>
+<dl compact>
 
-<DT><B>PATTERN</b> <i>pattern</i>
+<dt><b>PATTERN</b> <i>pattern</i>
 
-<DD>This statement specifies the pattern (sequence) of I frames, P frames,
+<dd>This statement specifies the pattern (sequence) of I frames, P frames,
 and B frames.  <i>pattern</i> is just a sequence of the letters I, P, and
 B with nothing between.  Example:
 
@@ -237,12 +235,12 @@ B with nothing between.  Example:
 
 <p>See <a href="#ipb">I Frames, P Frames, B Frames</a>.
 
-<DT><B>OUTPUT</b> <i>output file</i>
-<DD>This names the file where the output MPEG stream goes.
+<dt><b>OUTPUT</b> <i>output file</i>
+<dd>This names the file where the output MPEG stream goes.
      
-<DT><B>INPUT_DIR</b> <i>directory</i>
+<dt><b>INPUT_DIR</b> <i>directory</i>
 
-<DD>This statement tells where the input images (frames) come from.
+<dd>This statement tells where the input images (frames) come from.
 If each frame is in a separate file, <i>directory</i> is the directory
 where they all are.  You may use <b>.</b> to refer to the current 
 directory.  A null <i>directory</i> refers to the root directory of the
@@ -254,10 +252,10 @@ Input, specify
     INPUT_DIR stdin
 </pre>
 
-<DT><B>INPUT</b>
-<DD>
+<dt><b>INPUT</b>
+<dd>
 This line must be followed by a list of the input files (in display order)
-and then the line <B>END_INPUT</B>.
+and then the line <b>END_INPUT</b>.
 
 <p>There are three types of lines between INPUT and END_INPUT.  First,
 a line may simply be the name of an input file.  Second, the line
@@ -291,13 +289,13 @@ Bourne Shell, like this:
 
 <p>
 If input is from Standard Input (per the <b>INPUT_DIR</b> statement), 
-<b>ppmtompeg</b> ignores the <B>INPUT</b>/<b>END_INPUT</b> block, but
+<b>ppmtompeg</b> ignores the <b>INPUT</b>/<b>END_INPUT</b> block, but
 it still must be present.
      
-<DT><b>BASE_FILE_FORMAT</b> {<b>PPM</b> | <b>PNM</b> | <b>YUV</b> | 
+<dt><b>BASE_FILE_FORMAT</b> {<b>PPM</b> | <b>PNM</b> | <b>YUV</b> | 
      <b>JPEG</b> | <b>JMOVIE</b>}
 
-<DD><B>ppmtompeg</b> must convert all input files to one of the
+<dd><b>ppmtompeg</b> must convert all input files to one of the
 following formats as a first step of processing: PNM, YUV, JPEG(v4),
 or JMOVIE.  (The conversion may be trivial if your input files are
 already in one of these formats).  This line specifies which of the
@@ -305,9 +303,9 @@ four formats.  PPM is actually a subset of PNM.  The separate
 specification is allowed for backward compatibility.  Use PNM instead
 of PPM in new applications.
 
-<DT><b>INPUT_CONVERT</b> <i>conversion_command</i>
+<dt><b>INPUT_CONVERT</b> <i>conversion_command</i>
 
-<DD>You must specify how to convert a file to the base file format.
+<dd>You must specify how to convert a file to the base file format.
 If no conversion is necessary, then you would just say:
 
      <pre>
@@ -315,7 +313,7 @@ If no conversion is necessary, then you would just say:
      </pre>
      
 <p>Otherwise, <i>conversion_command</i> is a shell command that causes
-an image in the format your specified with <B>BASE_FILE_FORMAT</b> to
+an image in the format your specified with <b>BASE_FILE_FORMAT</b> to
 be written to Standard Output.  <b>ppmtompeg</b> executes the command
 once for each line between <b>INPUT</b> and <b>END_INPUT</b> (which is
 normally, but not necessarily, a file name).  In the conversion
@@ -342,7 +340,7 @@ line.
 
 as described above.
      
-<DT><b>SIZE</b> <i>width</i><b>x</b><i>height</i>
+<dt><b>SIZE</b> <i>width</i><b>x</b><i>height</i>
 
 <dd>
 
@@ -360,21 +358,21 @@ processes in the network have access to the image files, so
 <b>SIZE</b> is required and must give the same dimensions as the
 input image files.
 
-<DT><b>YUV_SIZE</b> <i>width</i><b>x</b><i>height</i>
+<dt><b>YUV_SIZE</b> <i>width</i><b>x</b><i>height</i>
 
 <dd>This is an obsolete synonym of <b>SIZE</b>.
 
-<DT><b>YUV_FORMAT</B> {<b>ABEKAS</b> | <b>PHILLIPS</b> | <b>UCB</B> |
+<dt><b>YUV_FORMAT</b> {<b>ABEKAS</b> | <b>PHILLIPS</b> | <b>UCB</b> |
                       <b>EYUV</b> | <i>pattern</i>}
 
-<DD>This is meaningful only when <b>BASE_FILE_FORMAT</b> specifies
+<dd>This is meaningful only when <b>BASE_FILE_FORMAT</b> specifies
 YUV format, and then it is required.  It specifies the sub-format of
 the YUV class.
 
 
-<DT><b>GOP_SIZE</b> <i>n</i>
+<dt><b>GOP_SIZE</b> <i>n</i>
 
-<DD><i>n</i> is the number of frames in a Group of Pictures.  Except that
+<dd><i>n</i> is the number of frames in a Group of Pictures.  Except that
 because a GOP must start with an I frame, <b>ppmtompeg</b> makes a GOP as
 much longer than <i>n</i> as it has to to make the next GOP start with an
 I frame. 
@@ -385,59 +383,59 @@ statement).
 
 <p>See <a href="#gop">Group Of Pictures</a>.
 
-<DT><b>SLICES_PER_FRAME</b> <i>n</i>
+<dt><b>SLICES_PER_FRAME</b> <i>n</i>
 <dd><i>n</i> is roughly the number of slices per frame.  Note, at
 least one MPEG player may complain if slices do not start at the left
 side of an image.  To ensure this does not happen, make sure the
 number of rows is divisible by SLICES_PER_FRAME.
 
-<DT><b>PIXEL</b> {<b>FULL</b> | <b>HALF</b>} 
+<dt><b>PIXEL</b> {<b>FULL</b> | <b>HALF</b>} 
 
 <dd>use half-pixel motion vectors, or just full-pixel ones It is
 usually important that you use half-pixel motion vectors, because it
 results in both better quality and better compression.
      
 
-<DT><b>RANGE</b> <i>n</i>
+<dt><b>RANGE</b> <i>n</i>
 <dd>Use a search range of <i>n</i> pixels in each of the four directions
 from a subject pixel.  (So the search window is a square <i>n</i>*2 pixels
 on a side).
 
-<DT><b>PSEARCH_ALG</b> {<b>EXHAUSTIVE</B> | <b>TWOLEVEL</b> |
+<dt><b>PSEARCH_ALG</b> {<b>EXHAUSTIVE</b> | <b>TWOLEVEL</b> |
      <b>SUBSAMPLE</b> | <b>LOGARITHMIC</b>}
 
 <dd>This statement tells <b>ppmtompeg</b> what kind of search
     technique (algorithm) to use for P frames.  You select the desired
     combination of speed and compression.  <b>EXHAUSTIVE</b> gives the
-    best compression, but <b>LOGARITHMIC</B> is the fastest.
-    <B>TWOLEVEL</B> is an exhaustive full-pixel search, followed by a
+    best compression, but <b>LOGARITHMIC</b> is the fastest.
+    <b>TWOLEVEL</b> is an exhaustive full-pixel search, followed by a
     local half- pixel search around the best full-pixel vector (the
     PIXEL option is ignored for this search technique).
 
-<DT><b>BSEARCH_ALG</b> {<b>SIMPLE</B> | <B>CROSS2</B> | <B>EXHAUSTIVE</B>}
+<dt><b>BSEARCH_ALG</b> {<b>SIMPLE</b> | <b>CROSS2</b> | <b>EXHAUSTIVE</b>}
 
 <dd>This statement tells <b>ppmtompeg</b> what kind of search
-    technique (algorithm) to use for B frames.  <b>SIMPLE</B> means
+    technique (algorithm) to use for B frames.  <b>SIMPLE</b> means
     find best forward and backward vectors, then interpolate.
-    <B>CROSS2</B> means find those two vectors, then see what backward
+    <b>CROSS2</b> means find those two vectors, then see what backward
     vector best matches the best forward vector, and vice versa.
     <b>EXHAUSTIVE</b> does an n-squared search and is
     <em>extremely</em> slow in relation to the others (<b>CROSS2</b>
-    is about half as fast as <b>SIMPLE</B>).
+    is about half as fast as <b>SIMPLE</b>).
 
-<DT><b>IQSCALE</b> <i>n</i>
+<dt><b>IQSCALE</b> <i>n</i>
 <dd>Use <i>n</i> as the qscale for I frames.
      See <a href="#qscale">Qscale</a>.
 
-<DT><b>PQSCALE</b> <i>n</i>
+<dt><b>PQSCALE</b> <i>n</i>
 <dd>Use <i>n</i> as the qscale for P frames.
      See <a href="#qscale">Qscale</a>.
 
-<DT><b>BQSCALE</b> <i>n</i>
+<dt><b>BQSCALE</b> <i>n</i>
 <dd>Use <i>n</i> as the qscale for B frames.
      See <a href="#qscale">Qscale</a>.
 
-<DT><b>REFERENCE_FRAME</b> {<B>ORIGINAL</B> | <b>DECODED</b>} <dd>This
+<dt><b>REFERENCE_FRAME</b> {<b>ORIGINAL</b> | <b>DECODED</b>} <dd>This
 statement determines whether <b>ppmtompeg</b> uses the original images
 or the decoded images when computing motion vectors.  Using decoded
 images is more accurate and should increase the playback quality of
@@ -451,7 +449,7 @@ qscale (see <b>QSCALE</b> if the quality is not good enough.
   <caption>Original or Decoded? (Normalized)</caption>
 <?makeman r c c c c c. ?>
 <?makeman _ ?>
-  <tr align="center" bgcolor="#CCCCCC">
+  <tr style="text-align:center; background-color:#CCCCCC">
     <th>Reference</th>
     <th>Compression</th>
     <th>Speed</th>
@@ -460,20 +458,20 @@ qscale (see <b>QSCALE</b> if the quality is not good enough.
     <th>Quality B</th>
     </tr>
   <tr>
-    <td align="right">Decoded</td>
-    <td align="center">1000</td>
-    <td align="center">1000</td>
-    <td align="center">1000</td>
-    <td align="center">969</td>
-    <td align="center">919</td>
+    <td style="text-align:right">Decoded</td>
+    <td style="text-align:center">1000</td>
+    <td style="text-align:center">1000</td>
+    <td style="text-align:center">1000</td>
+    <td style="text-align:center">969</td>
+    <td style="text-align:center">919</td>
     </tr>
   <tr>
-    <td align="right">Original</td>
-    <td align="center">885</td>
-    <td align="center">1373</td>
-    <td align="center">1000</td>
-    <td align="center">912</td>
-    <td align="center">884</td>
+    <td style="text-align:right">Original</td>
+    <td style="text-align:center">885</td>
+    <td style="text-align:center">1373</td>
+    <td style="text-align:center">1000</td>
+    <td style="text-align:center">912</td>
+    <td style="text-align:center">884</td>
     </tr>
   </table>
 
@@ -483,9 +481,9 @@ qscale (see <b>QSCALE</b> if the quality is not good enough.
      
 <p>The following lines are optional:
 
-<DL>
+<dl>
 
-<DT><B>FORCE_ENCODE_LAST_FRAME</B>
+<dt><b>FORCE_ENCODE_LAST_FRAME</b>
 
 <dd>This statement is obsolete.  It does nothing.
 
@@ -497,7 +495,7 @@ that from happening and get the same function that <b>ppmtompeg</b>
 has today.
 
 
-<DT><b>NIQTABLE</b>
+<dt><b>NIQTABLE</b>
 
 <dd>This statement specifies a custom non-intra quantization table.
 If you don't specify this statement, <b>ppmtompeg</b> uses a default
@@ -508,11 +506,11 @@ The 8 lines immediately following <b>NIQTABLE</b> specify the quantization
 table.  Each line defines a table row and consists of 8 integers,
 whitespace-delimited, which define the table columns.
 
-<DT><B>IQTABLE</b>
+<dt><b>IQTABLE</b>
 
 <dd>This is analogous to NIQTABLE, but for the intra quantization table.
 
-<DT><b>ASPECT_RATIO</b> <i>ratio</i>
+<dt><b>ASPECT_RATIO</b> <i>ratio</i>
 
 <dd>This statement specifies the aspect ratio for <b>ppmtompeg</b> to
 specify in the MPEG output.  I'm not sure what this is used for.
@@ -520,18 +518,18 @@ specify in the MPEG output.  I'm not sure what this is used for.
 <p><i>ratio</i> must be 1.0, 0.6735, 0.7031, 0.7615, 0.8055, 0.8437,
 0.8935, 0.9157, 0.9815, 1.0255, 1.0695, 1.0950, 1.1575, or 1.2015.
 
-<DT><b>FRAME_RATE</b> <i>rate</i>
+<dt><b>FRAME_RATE</b> <i>rate</i>
 <dd>This specifies the frame rate for <b>ppmtompeg</b> to specify in the
 MPEG output.  Some players use this value to determine the playback rate.
 
 <p><i>rate</i> must be 23.976, 24, 25, 29.97, 30, 50, 59.94, or 60.
 
-<DT><b>BIT_RATE</b> <i>rate</i>
-<DD>This specifies the bit rate for Constant Bit Rate (CBR) encoding.
+<dt><b>BIT_RATE</b> <i>rate</i>
+<dd>This specifies the bit rate for Constant Bit Rate (CBR) encoding.
 
 <p><i>rate</i> must be an integer.
 
-<DT><b>BUFFER_SIZE</b> <i>size</i> 
+<dt><b>BUFFER_SIZE</b> <i>size</i> 
 
 <dd>This specifies the value
 <b>ppmtompeg</b> is to specify in the MPEG output for the Video
@@ -545,42 +543,42 @@ the required constant playback speed.
 process in terms of how many bits would be in the VBV as each frame gets
 decoded, assuming a VBV of the size you indicate.  
 
-<P>If you specify the <b>WARN_VBV_UNDERFLOW</b> statement,
+<p>If you specify the <b>WARN_VBV_UNDERFLOW</b> statement,
 <b>ppmtompeg</b> issues a warning each time the simulation underflows
 the buffer, which suggests that an underflow would occur on playback,
 which suggests the buffer is too small.
 
-<P>If you specify the <b>WARN_VBV_OVERFLOW</b> statement,
+<p>If you specify the <b>WARN_VBV_OVERFLOW</b> statement,
 <b>ppmtompeg</b> issues a warning each time the simulation overflows
 the buffer, which suggests that an overflow would occur on playback,
 which suggests the buffer is too small.
 
-<DT><B>WARN_VBV_UNDERFLOW</B>
-<DT><B>WARN_VBV_OVERFLOW</B>
+<dt><b>WARN_VBV_UNDERFLOW</b>
+<dt><b>WARN_VBV_OVERFLOW</b>
 
 <dd>See <b>BUFFER_SIZE</b>.
 
 <p>These options were new in Netpbm 10.26 (January 2005).  Before that,
 <b>ppmtompeg</b> issued the warnings always.
 
-</DL>
+</dl>
 
 
 The following statements apply only to parallel operation:
 
-<DL> 
+<dl> 
 
-<DT><b>PARALLEL</b>
+<dt><b>PARALLEL</b>
 
-<dd>This statement, paired with <b>END PARALLEL</B>, is what causes
+<dd>This statement, paired with <b>END PARALLEL</b>, is what causes
 <b>ppmtompeg</b> to operate in parallel mode.  See <a
 href="#parallel">Parallel Operation</a>.
 
 <dt><b>END PARALLEL</b>
 
-<DD>This goes with <b>PARALLEL</b>.
+<dd>This goes with <b>PARALLEL</b>.
 
-<DT><b>PARALLEL_TEST_FRAMES</b> <i>n</i> 
+<dt><b>PARALLEL_TEST_FRAMES</b> <i>n</i> 
 
 <dd>The master starts off by measuring each slave's speed.  It does
 this by giving each slave <i>n</i> frames to encode and noting how
@@ -598,7 +596,7 @@ the test frames value enough to maintain the alignment.
 number of test frames, <b>ppmtompeg</b> will give some slaves fewer.
 
 
-<DT><b>PARALLEL_TIME_CHUNKS</b> <i>t</i>
+<dt><b>PARALLEL_TIME_CHUNKS</b> <i>t</i>
 
 <dd>When you specify this statement, the master attempts to feed work
 to the slaves in chunks that take <i>t</i> seconds to process.  It uses
@@ -613,9 +611,9 @@ balancing.  The default is 30 seconds.
 <p>You may specify only one of PARALLEL_TIME_CHUNKS, PARALLEL_CHUNK_TAPER,
 and PARALLEL_PERFECT.  PARALLEL_CHUNK_TAPER is usually best.
 
-<DT><b>PARALLEL_CHUNK_TAPER</b>
+<dt><b>PARALLEL_CHUNK_TAPER</b>
 
-<DD>When you specify this statement, the master distributes work like
+<dd>When you specify this statement, the master distributes work like
 with PARALLEL_TIME_CHUNKS, except that the master chooses the number
 of seconds for the chunks.  It starts with a large number and, as it
 gets closer to finishing the job, reduces it.  That way, it reduces
@@ -628,7 +626,7 @@ there's still work to do.
 and PARALLEL_PERFECT.  PARALLEL_CHUNK_TAPER is usually best.
 
 
-<DT><b>PARALLEL_PERFECT</b>
+<dt><b>PARALLEL_PERFECT</b>
 
 <dd>If this statement is present, <b>ppmtompeg</b> schedules on the
 assumption that each machine is about the same speed.  The master will
@@ -647,9 +645,9 @@ the Combine Server and thus can increase the total elapsed time.
 <p>You may specify only one of PARALLEL_TIME_CHUNKS, PARALLEL_CHUNK_TAPER,
 and PARALLEL_PERFECT.  PARALLEL_CHUNK_TAPER is usually best.
 
-<DT><b>RSH</b> <i>remote_shell_command</i>
+<dt><b>RSH</b> <i>remote_shell_command</i>
 
-<DD><b>ppmtompeg</b> executes the shell command
+<dd><b>ppmtompeg</b> executes the shell command
 <i>remote_shell_command</i> to start a process on another machine.
 The default command is <b>rsh</b>, and whatever command you specify
 must have compatible semantics.  <b>ssh</b> is usually compatible.
@@ -662,7 +660,7 @@ where needed.  Otherwise, you'll have to type in passwords.
 <p>On some HP machines, <b>rsh</b> is the restricted shell, and you want
 to specify <b>remsh</b>.
 
-<DT><b>FORCE_I_ALIGN</b>
+<dt><b>FORCE_I_ALIGN</b>
 
 <dd>This statement forces each slave to encode a chunk of frames which
 is a multiple of the pattern length (see <b>PATTERN</b>).  Since the
@@ -675,7 +673,7 @@ would use (and was required to be a multiple of the pattern length).
 But <b>ppmtompeg</b> has apparently always ignored that argument, and
 it does now.
 
-<DT><B>KEEP_TEMP_FILES</B>
+<dt><b>KEEP_TEMP_FILES</b>
 
 <dd>This statement causes <b>ppmtompeg</b> not to delete the temporary
 files it uses to transmit encoded frames to the combine server.  This
@@ -689,12 +687,12 @@ between the servers.
 
 <p>This option was new in Netpbm 10.26 (January 2005).
 
-</DL>
+</dl>
 
 
-<H3>Parameter File Notes</h3>
+<h3 id="parameterfile">Parameter File Notes</h3>
 
-<P> If you use the <b>-combine_gops</b> option, then you need to specify
+<p> If you use the <b>-combine_gops</b> option, then you need to specify
 only the SIZE and OUTPUT values in the parameter file.  In
 addition, the parameter file may specify input GOP files in the same
 manner as normal input files -- except instead of using INPUT_DIR,
@@ -719,27 +717,27 @@ those between INPUT and END_INPUT.  This allows you to use the same
 parameter file for normal usage and for <b>-combine_gops</b> and
 <b>-combine_frames</b>.
 
-<P>The file format is case-sensitive so all keywords should be in
+<p>The file format is case-sensitive so all keywords should be in
 upper case.
 
-<P>The statements may appear in any order, except that the order within
+<p>The statements may appear in any order, except that the order within
 a block statement (such as INPUT ... END INPUT) is significant.
 
-<P><b>ppmtompeg</b> is prepared to handle up to 16 B frames between
+<p><b>ppmtompeg</b> is prepared to handle up to 16 B frames between
 reference frames when encoding with input from stdin.  (To build a
 modified <b>ppmtompeg</b> with a higher limit, change the constant
 B_FRAME_RUN in frame.c and recompile).
 
-<H2 id="general">GENERAL USAGE INFORMATION</H2>
+<h2 id="general">GENERAL USAGE INFORMATION</h2>
 
-<H3 id="qscale">Qscale</h3>
+<h3 id="qscale">Qscale</h3>
 
 <p>The quantization scale values (qscale) give a trade-off between
 quality and compression.  Using different Qscale values has very little
 effect on speed.  The qscale values can be set separately for I, P, and
 B frames.
 
-<p>You select the qscale values with the <B>IQSCALE</b>,
+<p>You select the qscale values with the <b>IQSCALE</b>,
 <b>PQSCALE</b>, and <b>BSCALE</b> parameter file statements.
 
 <p>A qscale value is an integer from 1 to 31.  Larger numbers give
@@ -755,53 +753,53 @@ where MSE is the mean squared error.
   <caption>Qscale vs Quality</caption>
 <?makeman r r r r. ?>
 <?makeman _ ?>
-  <tr align="center">
+  <tr style="text-align:center">
     <th>Qscale</th>
     <th>I Frames</th>
     <th>P Frames</th>
     <th>B Frames</th>
     </tr>
   <tr>
-    <td align="right">1</td>
-    <td align="right">43.2</td>
-    <td align="right">46.3</td>
-    <td align="right">46.5</td>
+    <td style="text-align:right">1</td>
+    <td style="text-align:right">43.2</td>
+    <td style="text-align:right">46.3</td>
+    <td style="text-align:right">46.5</td>
     </tr>
   <tr>
-    <td align="right">6</td>
-    <td align="right">32.6</td>
-    <td align="right">34.6</td>
-    <td align="right">34.3</td>
+    <td style="text-align:right">6</td>
+    <td style="text-align:right">32.6</td>
+    <td style="text-align:right">34.6</td>
+    <td style="text-align:right">34.3</td>
     </tr>
   <tr>
-    <td align="right">11</td>
-    <td align="right">28.6</td>
-    <td align="right">29.5</td>
-    <td align="right">30.0</td>
+    <td style="text-align:right">11</td>
+    <td style="text-align:right">28.6</td>
+    <td style="text-align:right">29.5</td>
+    <td style="text-align:right">30.0</td>
     </tr>
   <tr>
-    <td align="right">16</td>
-    <td align="right">26.3</td>
-    <td align="right">26.8</td>
-    <td align="right">28.6</td>
+    <td style="text-align:right">16</td>
+    <td style="text-align:right">26.3</td>
+    <td style="text-align:right">26.8</td>
+    <td style="text-align:right">28.6</td>
     </tr>
   <tr>
-    <td align="right">21</td>
-    <td align="right">24.7</td>
-    <td align="right">25.0</td>
-    <td align="right">27.9</td>
+    <td style="text-align:right">21</td>
+    <td style="text-align:right">24.7</td>
+    <td style="text-align:right">25.0</td>
+    <td style="text-align:right">27.9</td>
     </tr>
   <tr>
-    <td align="right">26</td>
-    <td align="right">23.5</td>
-    <td align="right">23.9</td>
-    <td align="right">27.5</td>
+    <td style="text-align:right">26</td>
+    <td style="text-align:right">23.5</td>
+    <td style="text-align:right">23.9</td>
+    <td style="text-align:right">27.5</td>
     </tr>
   <tr>
-    <td align="right">31</td>
-    <td align="right">22.6</td>
-    <td align="right">23.0</td>
-    <td align="right">27.3</td>
+    <td style="text-align:right">31</td>
+    <td style="text-align:right">22.6</td>
+    <td style="text-align:right">23.0</td>
+    <td style="text-align:right">27.3</td>
     </tr>
 </table>
 
@@ -809,58 +807,58 @@ where MSE is the mean squared error.
   <caption>Qscale vs Compression</caption>
 <?makeman r r r r. ?>
 <?makeman _ ?>
-  <tr align="center">
+  <tr style="text-align:center">
     <th>Qscale</th>
     <th>I Frames</th>
     <th>P Frames</th>
     <th>B Frames</th>
     </tr>
   <tr>
-    <td align="right">1</td>
-    <td align="right">2</td>
-    <td align="right">2</td>
-    <td align="right">2</td>
+    <td style="text-align:right">1</td>
+    <td style="text-align:right">2</td>
+    <td style="text-align:right">2</td>
+    <td style="text-align:right">2</td>
     </tr>
   <tr>
-    <td align="right">6</td>
-    <td align="right">7</td>
-    <td align="right">10</td>
-    <td align="right">15</td>
+    <td style="text-align:right">6</td>
+    <td style="text-align:right">7</td>
+    <td style="text-align:right">10</td>
+    <td style="text-align:right">15</td>
     </tr>
   <tr>
-    <td align="right">11</td>
-    <td align="right">11</td>
-    <td align="right">18</td>
-    <td align="right">43</td>
+    <td style="text-align:right">11</td>
+    <td style="text-align:right">11</td>
+    <td style="text-align:right">18</td>
+    <td style="text-align:right">43</td>
     </tr>
   <tr>
-    <td align="right">16</td>
-    <td align="right">15</td>
-    <td align="right">29</td>
-    <td align="right">97</td>
+    <td style="text-align:right">16</td>
+    <td style="text-align:right">15</td>
+    <td style="text-align:right">29</td>
+    <td style="text-align:right">97</td>
     </tr>
   <tr>
-    <td align="right">21</td>
-    <td align="right">19</td>
-    <td align="right">41</td>
-    <td align="right">173</td>
+    <td style="text-align:right">21</td>
+    <td style="text-align:right">19</td>
+    <td style="text-align:right">41</td>
+    <td style="text-align:right">173</td>
     </tr>
   <tr>
-    <td align="right">26</td>
-    <td align="right">24</td>
-    <td align="right">56</td>
-    <td align="right">256</td>
+    <td style="text-align:right">26</td>
+    <td style="text-align:right">24</td>
+    <td style="text-align:right">56</td>
+    <td style="text-align:right">256</td>
     </tr>
   <tr>
-    <td align="right">31</td>
-    <td align="right">28</td>
-    <td align="right">73</td>
-    <td align="right">330</td>
+    <td style="text-align:right">31</td>
+    <td style="text-align:right">28</td>
+    <td style="text-align:right">73</td>
+    <td style="text-align:right">330</td>
     </tr>
 </table>
 
 
-<h3>Search Techniques</h3>
+<h3 id="searchtech">Search Techniques</h3>
      
 <p>There are several different motion vector search techniques
 available.  There are different techniques available for P frame
@@ -882,35 +880,35 @@ some numbers comparing the different search methods:
   <caption>P frame Motion Vector Search (Normalized)</caption>
 <?makeman r c c c. ?>
 <?makeman _ ?>
-  <tr align="center">
+  <tr style="text-align:center">
     <th>Technique</th>
     <th>Compression<a href="#smallbetter"><sup>1</sup></a></th>
     <th>Speed      <a href="#largefaster"><sup>2</sup></a></th>
     <th>Quality    <a href="#largebetter"><sup>3</sup></a></th>
     </tr>
   <tr>
-    <td align="right">Exhaustive</td>
-    <td align="center">1000</td>
-    <td align="center">1000</td>
-    <td align="center">1000</td>
+    <td style="text-align:right">Exhaustive</td>
+    <td style="text-align:center">1000</td>
+    <td style="text-align:center">1000</td>
+    <td style="text-align:center">1000</td>
     </tr>
   <tr>
-    <td align="right">SubSample</td>
-    <td align="center">1008</td>
-    <td align="center">2456</td>
-    <td align="center">1000</td>
+    <td style="text-align:right">SubSample</td>
+    <td style="text-align:center">1008</td>
+    <td style="text-align:center">2456</td>
+    <td style="text-align:center">1000</td>
     </tr>
   <tr>
-    <td align="right">TwoLevel</td>
-    <td align="center">1009</td>
-    <td align="center">3237</td>
-    <td align="center">1000</td>
+    <td style="text-align:right">TwoLevel</td>
+    <td style="text-align:center">1009</td>
+    <td style="text-align:center">3237</td>
+    <td style="text-align:center">1000</td>
     </tr>
   <tr>
-    <td align="right">Logarithmic</td>
-    <td align="center">1085</td>
-    <td align="center">8229</td>
-    <td align="center">998</td>
+    <td style="text-align:right">Logarithmic</td>
+    <td style="text-align:center">1085</td>
+    <td style="text-align:center">8229</td>
+    <td style="text-align:center">998</td>
     </tr>
 </table>
 
@@ -918,29 +916,29 @@ some numbers comparing the different search methods:
   <caption>B frame Motion Vector Search (Normalized)</caption>
 <?makeman r c c c. ?>
 <?makeman _ ?>
-  <tr align="center">
+  <tr style="text-align:center">
     <th>Technique</th>
     <th>Compression<a href="#smallbetter"><sup>1</sup></a></th>
     <th>Speed<a href="#largefaster"><sup>2</sup></a></th>
     <th>Quality<a href="#largebetter"><sup>3</sup></a></th>
     </tr>
   <tr>
-    <td align="right">Exhaustive</td>
-    <td align="center">1000</td>
-    <td align="center">1000</td>
-    <td align="center">1000</td>
+    <td style="text-align:right">Exhaustive</td>
+    <td style="text-align:center">1000</td>
+    <td style="text-align:center">1000</td>
+    <td style="text-align:center">1000</td>
     </tr>
   <tr>
-    <td align="right">Cross2</td>
-    <td align="center">975</td>
-    <td align="center">1000</td>
-    <td align="center">996</td>
+    <td style="text-align:right">Cross2</td>
+    <td style="text-align:center">975</td>
+    <td style="text-align:center">1000</td>
+    <td style="text-align:center">996</td>
     </tr>
   <tr>
-    <td align="right">Simple</td>
-    <td align="center">938</td>
-    <td align="center">1765</td>
-    <td align="center">991</td>
+    <td style="text-align:right">Simple</td>
+    <td style="text-align:center">938</td>
+    <td style="text-align:center">1765</td>
+    <td style="text-align:center">991</td>
     </tr>
 </table>
 
@@ -955,12 +953,11 @@ execution.
 <p>For some reason, Simple seems to give better compression, but it
 depends on the image sequence.
 
-<p>Select the search techniques with the <B>PSEARCH_ALG</B> and
-<B>BSEARCH_ALG</b> parameter file statements.
+<p>Select the search techniques with the <b>PSEARCH_ALG</b> and
+<b>BSEARCH_ALG</b> parameter file statements.
 
 
-<a name="gop"></a>
-<h3>Group Of Pictures (GOP)</h3>
+<h3 id="gop">Group Of Pictures (GOP)</h3>
 
 <p>A Group of Pictures (GOP) is a roughly independently decodable
 sequence of frames.  An MPEG video stream is made of one or more
@@ -974,7 +971,7 @@ join the resulting GOP files at any time by running <b>ppmtompeg</b>
 with the <b>-combine_gops</b> command option.
      
      
-<h3>Slices</h3>
+<h3 id="slices">Slices</h3>
 
 <p>A slice is an independently decodable unit in a frame.  It can be
 as small as one macroblock, or it can be as big as the entire frame.
@@ -984,7 +981,7 @@ used for noisy transmission so that errors are more recoverable. Since
 usually errors are not such a problem, we usually just use one slice
 per frame.
      
-<p>Control the slice size with the <B>SLICES_PER_FRAME</B> parameter
+<p>Control the slice size with the <b>SLICES_PER_FRAME</b> parameter
 file statement.
 
 <p>Some MPEG playback systems require that each slice consist of whole
@@ -999,12 +996,12 @@ standard says this doesn't have to be so.
 
 
 
-<h3>Search Window</h3>
+<h3 id="searchwindow">Search Window</h3>
      
 <p>The search window is the window in which <b>ppmtompeg</b> searches
 for motion vectors.  The window is a square.  You can specify the size
 of the square, and whether to allow half-pixel motion vectors or not,
-with the <b>RANGE</b> and <b>PIXEL</B> parameter file statements.
+with the <b>RANGE</b> and <b>PIXEL</b> parameter file statements.
 
 <h3 id="ipb">I Frames, P Frames, B Frames</h3>
 
@@ -1037,29 +1034,29 @@ some of the trade-offs:
   <caption>Comparison of I/P/B Frames (Normalized)</caption>
 <?makeman r c c c. ?>
 <?makeman _ ?>
-  <tr align="center">
+  <tr style="text-align:center">
     <th>Frame Type</th>
     <th>Size</th>
     <th>Speed</th>
     <th>Quality</th>
     </tr>
   <tr>
-    <td align="right">I frames</td>
-    <td align="center">1000</td>
-    <td align="center">1000</td>
-    <td align="center">1000</td>
+    <td style="text-align:right">I frames</td>
+    <td style="text-align:center">1000</td>
+    <td style="text-align:center">1000</td>
+    <td style="text-align:center">1000</td>
     </tr>
   <tr>
-    <td align="right">P frames</td>
-    <td align="center">409</td>
-    <td align="center">609</td>
-    <td align="center">969</td>
+    <td style="text-align:right">P frames</td>
+    <td style="text-align:center">409</td>
+    <td style="text-align:center">609</td>
+    <td style="text-align:center">969</td>
     </tr>
   <tr>
-    <td align="right">B frames</td>
-    <td align="center">72</td>
-    <td align="center">260</td>
-    <td align="center">919</td>
+    <td style="text-align:right">B frames</td>
+    <td style="text-align:center">72</td>
+    <td style="text-align:center">260</td>
+    <td style="text-align:center">919</td>
     </tr>
   </table>
 
@@ -1067,7 +1064,7 @@ some of the trade-offs:
      
 <p>A standard sequence is IBBPBBPBBPBBPBB.
      
-<p>Select the sequence with the <B>PATTERN</B> parameter file statement.
+<p>Select the sequence with the <b>PATTERN</b> parameter file statement.
 
 <p>Since the last MPEG frame cannot be a B frame (see above), if the
 pattern you specify indicates a B frame for the last movie frame of
@@ -1088,17 +1085,17 @@ frames in the MPEG-1 stream are B frames describing movie frames 1 and 2,
 respectively.
 
 
-<h3>Specifying Input and Output Files</h3> 
+<h3 id="iofiles">Specifying Input and Output Files</h3> 
 
-<p>Specify the input frame images with the <B>INPUT_DIR</B>,
-<B>INPUT</B>, <B>END_INPUT</B>, <B>BASE_FILE_FORMAT</B>,
-<B>SIZE</B>, <B>YUV_FORMAT</B> and <b>INPUT_CONVERT</B> parameter
+<p>Specify the input frame images with the <b>INPUT_DIR</b>,
+<b>INPUT</b>, <b>END_INPUT</b>, <b>BASE_FILE_FORMAT</b>,
+<b>SIZE</b>, <b>YUV_FORMAT</b> and <b>INPUT_CONVERT</b> parameter
 file statements.
 
 <p>Specify the output file with the <b>OUTPUT</b> parameter file statement.
 
 
-<h3>Statistics</h3>
+<h3 id="statistics">Statistics</h3>
 
 <p><b>ppmtompeg</b> can generate a variety of statistics about the 
 encoding.  See the <b>-stat</b>, <b>-snr</b>, <b>-mv_histogram</b>,
@@ -1106,9 +1103,9 @@ encoding.  See the <b>-stat</b>, <b>-snr</b>, <b>-mv_histogram</b>,
 options.
      
 
-<H2 id="parallel">PARALLEL OPERATION</H2>
+<h2 id="parallel">PARALLEL OPERATION</h2>
 
-<P>You can run <b>ppmtompeg</b> on multiple machines at once, encoding
+<p>You can run <b>ppmtompeg</b> on multiple machines at once, encoding
 the same MPEG stream.  When you do, the machines are used as shown in
 the following diagram.  We call this "parallel mode."
 
@@ -1133,12 +1130,12 @@ has filesystem access to the input files, then the line is:
 <p>
 <i>machine</i> <i>user</i> <i>executable</i>
 
-<P>The executable is normally <b>ppmtompeg</b> (you may need to give
+<p>The executable is normally <b>ppmtompeg</b> (you may need to give
 the complete path if you've built for different architectures).  If
 the machine does not have filesystem access to the input files, the line
 is:
 
-<P><b>REMOTE</b> <i>machine</i> <i>user</i> <i>executable</i>
+<p><b>REMOTE</b> <i>machine</i> <i>user</i> <i>executable</i>
 <i>parameter file</i>
 
 <p>The <b>-max_machines</b> command option limits the number of
@@ -1155,8 +1152,8 @@ file argument on the original invocation of <b>ppmtompeg</b>.
 using an NFS filesystem, you must make sure it is mounted at the same
 mountpoint on all systems).
 
-<P>Because not all of the processes involved in parallel operation
-have easy access to the input files, you must specify the <B>SIZE</B>
+<p>Because not all of the processes involved in parallel operation
+have easy access to the input files, you must specify the <b>SIZE</b>
 parameter file statement when you do parallel operation.
 
 <p>The machine on which you originally invoke <b>ppmtompeg</b> is the
@@ -1188,8 +1185,7 @@ master divides up work among the slaves.
 long-running CPU load will have minimal impact on other, possibly
 interactive, users of the systems.
 
-<A NAME="speed">&nbsp;</A>
-<H2>SPEED</h2>
+<h2 id="speed">SPEED</h2>
 
 <p>Here is a look at <b>ppmtompeg</b> speed, in single-node (not parallel)
 operation:
@@ -1198,29 +1194,29 @@ operation:
   <caption>Compression Speed</caption>
 <?makeman r c. ?>
 <?makeman _ ?>
-  <tr align="center">
+  <tr style="text-align:center">
     <th>Machine Type</th>
     <th>Macroblocks per second<sup>1</sup></th>
     </tr>
   <tr>
-    <td align="right">HP 9000/755</td>
-    <td align="center">280</td>
+    <td style="text-align:right">HP 9000/755</td>
+    <td style="text-align:center">280</td>
     </tr>
   <tr>
-    <td align="right">DEC 3000/400</td>
-    <td align="center">247</td>
+    <td style="text-align:right">DEC 3000/400</td>
+    <td style="text-align:center">247</td>
     </tr>
   <tr>
-    <td align="right">HP 9000/750</td>
-    <td align="center">191</td>
+    <td style="text-align:right">HP 9000/750</td>
+    <td style="text-align:center">191</td>
     </tr>
   <tr>
-    <td align="right">Sparc 10</td>
-    <td align="center">104</td>
+    <td style="text-align:right">Sparc 10</td>
+    <td style="text-align:center">104</td>
     </tr>
   <tr>
-    <td align="right">DEC 5000</td>
-    <td align="center">68</td>
+    <td style="text-align:right">DEC 5000</td>
+    <td style="text-align:center">68</td>
     </tr>
 </table>
 <sup>1</sup>A macroblock is a 16x16 pixel square
@@ -1245,42 +1241,54 @@ Also, <b>-debug_sockets</b> can help you diagnose communication
 problems.
 
 
-<H2 id="authors">AUTHORS</H2>
-
-<UL>
-
-<LI>Kevin Gong - University of California, Berkeley, <A
-HREF="mailto:keving@cs.berkeley.edu">keving@cs.berkeley.edu</A>
-
-<LI>Ketan Patel - University of California, Berkeley, <A
-HREF="mailto:kpatel@cs.berkeley.edu">kpatel@cs.berkeley.edu</A>
-
-<LI>Dan Wallach - University of California, Berkeley, <A
-HREF="mailto:dwallach@cs.berkeley.edu">dwallach@cs.berkeley.edu</A>
-
-<LI>Darryl Brown - University of California, Berkeley, <A
-HREF="mailto:darryl@cs.berkeley.edu">darryl@cs.berkeley.edu</A>
-
-<LI>Eugene Hung - University of California, Berkeley, <A
-HREF="mailto:eyhung@cs.berkeley.edu">eyhung@cs.berkeley.edu</A>
-
-<LI>Steve Smoot - University of California, Berkeley, <A
-HREF="mailto:smoot@cs.berkeley.edu">smoot@cs.berkeley.edu</A>
-
-</UL>
-
-<HR>
-<A NAME="index">&nbsp;</A>
-<H2>Table Of Contents</H2>
-<UL>
-<LI><A HREF="#synopsis">SYNOPSIS</A></LI>
-<LI><A HREF="#description">DESCRIPTION</A></LI>
-<LI><A HREF="#options">OPTIONS</A></LI>
-<LI><A HREF="#parmfile">PARAMETER FILE</A></LI>
-<LI><A HREF="#general">GENERAL USAGE INFORMATION</A></LI>
-<LI><A HREF="#parallel">PARALLEL OPERATION</A></LI>
-<LI><A HREF="#speed">SPEED</A></LI>
-<LI><A HREF="#authors">AUTHORS</A></LI>
-</UL>
-</BODY>
-</HTML>
+<h2 id="authors">AUTHORS</h2>
+
+<ul>
+
+<li>Kevin Gong - University of California, Berkeley, <a
+href="mailto:keving@cs.berkeley.edu">keving@cs.berkeley.edu</a>
+
+<li>Ketan Patel - University of California, Berkeley, <a
+href="mailto:kpatel@cs.berkeley.edu">kpatel@cs.berkeley.edu</a>
+
+<li>Dan Wallach - University of California, Berkeley, <a
+href="mailto:dwallach@cs.berkeley.edu">dwallach@cs.berkeley.edu</a>
+
+<li>Darryl Brown - University of California, Berkeley, <a
+href="mailto:darryl@cs.berkeley.edu">darryl@cs.berkeley.edu</a>
+
+<li>Eugene Hung - University of California, Berkeley, <a
+href="mailto:eyhung@cs.berkeley.edu">eyhung@cs.berkeley.edu</a>
+
+<li>Steve Smoot - University of California, Berkeley, <a
+href="mailto:smoot@cs.berkeley.edu">smoot@cs.berkeley.edu</a>
+
+</ul>
+
+<hr>
+<h2 id="index">Table Of Contents</h2>
+<ul>
+<li><a href="#synopsis">SYNOPSIS</a>
+<li><a href="#description">DESCRIPTION</a>
+<li><a href="#options">OPTIONS</a>
+<li><a href="#parmfile">PARAMETER FILE</a>
+  <ul>
+  <li><a href="#parameterfile">Parameter File Notes</a>
+  </ul>
+<li><a href="#general">GENERAL USAGE INFORMATION</a>
+  <ul>
+  <li><a href="#qscale">Qscale</a>
+  <li><a href="#searchtech">Search Techniques</a>
+  <li><a href="#gop">Group Of Pictures (GOP)</a>
+  <li><a href="#slices">Slices</a>
+  <li><a href="#searchwindow">Search Window</a>
+  <li><a href="#ipb">I Frames, P Frames, B Frames</a>
+  <li><a href="#iofiles">Specifying Input and Output Files </a>
+  <li><a href="#statistics">Statistics</a>
+  </ul>
+<li><a href="#parallel">PARALLEL OPERATION</a>
+<li><a href="#speed">SPEED</a>
+<li><a href="#authors">AUTHORS</a>
+</ul>
+</body>
+</html>
diff --git a/ppmtopjxl.html b/ppmtopjxl.html
index 93c0daf1..f58ed8e5 100644
--- a/ppmtopjxl.html
+++ b/ppmtopjxl.html
@@ -1,99 +1,129 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML><HEAD><TITLE>Ppmtopjxl User Manual</TITLE>
-</HEAD><BODY>
-<H1>PPMTOPJXL</H1>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.3//EN">
+<html><head><title>Ppmtopjxl User Manual</title></head>
+<body>
+<h1>ppmtopjxl</h1>
 Updated: 14 March 1991
-<BR>
-<A HREF="#index">Table Of Contents</A>
+<br>
+<a href="#index">Table Of Contents</a>
 
-<H2>NAME</H2>
+<h2>NAME</h2>
 
 ppmtopjxl - convert a PPM image to an HP PaintJet XL PCL file
 
-<H2 id="synopsis">SYNOPSIS</H2>
+<h2 id="synopsis">SYNOPSIS</h2>
 
 ppmtopjxl 
 [<b>-nopack</b>] 
-[<b>-gamma</b> <I>n</I>] 
+[<b>-gamma</b> <i>n</i>] 
 [<b>-presentation</b>] 
 [<b>-dark</b>] 
 [<b>-diffuse</b>] 
 [<b>-cluster</b>] 
 [<b>-dither</b>] 
-[<b>-xshift</b> <I>s</I>] 
-[<b>-yshift</b> <I>s</I>] 
-[<b>-xshift</b> <I>s</I>] 
-[<b>-yshift</b> <I>s</I>] 
-[{<b>-xsize</b>|<b>-width</b>|<b>-xscale</b>} <I>s</I>] 
-[{<b>-ysize</b>|<b>-height</b>|<b>-yscale</b>} <I>s</I>] 
+[<b>-xshift</b> <i>s</i>] 
+[<b>-yshift</b> <i>s</i>] 
+[<b>-xshift</b> <i>s</i>] 
+[<b>-yshift</b> <i>s</i>] 
+[{<b>-xsize</b>|<b>-width</b>|<b>-xscale</b>} <i>s</i>] 
+[{<b>-ysize</b>|<b>-height</b>|<b>-yscale</b>} <i>s</i>] 
 [<i>ppmfile</i>]
 
-<H2 id="description">DESCRIPTION</H2>
+<h2 id="description">DESCRIPTION</h2>
 
 <p>This program is part of <a href="index.html">Netpbm</a>.
 
 <p><b>ppmtopjxl</b> reads a PPM image as input and produces a PCL file
 suitable for printing on an HP PaintJet XL printer as output.
 
-<P>The generated file is not suitable for printing on a normal
-PrintJet printer.  The <B>-nopack</B> option generates a file which
-does not use the normal TIFF 4.0 compression method. This file might
+<p>The generated file is not suitable for printing on a normal
+PrintJet printer.  The <b>-nopack</b> option generates a file which
+does not use the normal TIFF 4.0 compression method and thus might
 be printable on a normal PaintJet printer (not an XL).
 
-<P>The <B>-gamma</B> option sets the gamma correction for the
-image. The useful range for the PaintJet XL is approximately 0.6 to
-1.5.
-
-<P>You an alter the rendering algorithm used for images with the
-<B>-dither,</B> <B>-cluster,</B> and <B>-diffuse</B> options.  These
-options select ordered dithering, clustered ordered dithering, or
-error diffusion respectively.  You can use the <B>-dark</B> option to
-enhance images with a dark background when they are reduced in size.
-The <B>-presentation</B> option turns on presentation mode, in which
-two passes are made over the paper to increase ink density.  You
-should use this only for images where quality is critical.
-
-<P>You can resize the image by setting the <B>-xsize</B> and
-<B>-ysize</B> options.  The parameter to either of these options is
+<h2 id="options">OPTIONS</h2>
+
+<p>In addition to the options common to all programs based on libnetpbm
+(most notably <b>-quiet</b>, see <a href="index.html#commonoptions">
+Common Options</a>), <b>ppmtopjxl</b> recognizes the following
+command line options:
+
+<dl compact>
+
+<dt><b>-nopack</b>
+<dd><p>Generate a file which does not use the normal TIFF 4.0 compression
+method. This file might be printable on a normal PaintJet printer
+(not an XL).
+
+<dt><b>-gamma</b>
+
+<dd><p>Set the gamma correction for the image. The useful range for the
+PaintJet XL is approximately 0.6 to 1.5.
+
+<dt><b>-dither</b>, <b>-cluster</b>, <b>-diffuse</b>
+
+<dd><p>Alter the rendering algorithm used for images.  These options
+select ordered dithering, clustered ordered dithering, or error
+diffusion respectively.
+
+<dt><b>-dark</b>
+
+<dd><p>Enhance images with a dark background when they are reduced in size.
+
+<dt><b>-presentation</b>
+
+<dd><p>Turn on presentation mode, in which two passes are made over the
+paper to increase ink density.  You should use this only for images where
+quality is critical.
+
+<dt><b>-xsize</b>, <b>-ysize</b>
+
+<dd><p>Resize the image.  The parameter to either of these options is
 interpreted as the number of dots to set the width or height to, but
-you may append an optional dimension of `<B>pt</B>' (points),
-`<B>dp</B>' (decipoints), `<B>in</B>' (inches), or `<B>cm</B>'
+you may append an optional dimension of `<b>pt</b>' (points),
+`<b>dp</b>' (decipoints), `<b>in</b>' (inches), or `<b>cm</b>'
 (centimetres).  If you specify only one dimension, <b>ppmtopjxl</b>
 will scale the other one appropriately.
 
-<P>The options <B>-width</B> and <B>-height</B> are synonyms of
-<B>-xsize</B> and <B>-ysize.</B>
+<dt><b>-width</b>, <b>-height</b>
+
+<dd><p>Synonyms of <b>-xsize</b> and <b>-ysize</b>.
+
+<dt><b>-xscale</b>, <b>-yscale</b>
+
+<dd><p>Alternatives to <b>-xsize</b> and <b>-ysize</b>.  Scale the
+image by a simple factor.
+
+<dt><b>-xshift</b>, <b>-yshift</b>
 
-<P>You can alternatively use the <B>-xscale</B> and <B>-yscale</B>
-options to scale the image by a simple factor.
+<dd><p>Shift the image on the page.  These move the image the specified
+dimensions right and down.
 
-<P>You can shift the image on the page with the <B>-xshift</B> and
-<B>-yshift</B> options.  These move the image the specified dimensions
-right and down.
+</dl>
 
-<H2 id="seealso">SEE ALSO</H2>
+<h2 id="seealso">SEE ALSO</h2>
 
 <a href="pnmtopclxl.html"><b>pnmtopclxl</b></a>,
 <a href="pbmtolj.html"><b>pbmtolj</b></a>,
 <a href="ppmtolj.html"><b>ppmtolj</b></a>,
 <a href="ppmtopj.html"><b>ppmtopj</b></a>,
 <a href="thinkjettopbm.html"><b>thinkjettopbm</b></a>,
-<A HREF="ppm.html">ppm</A>
+<a href="ppm.html">ppm</a>
 
-<H2 id="author">AUTHOR</H2>
+<h2 id="author">AUTHOR</h2>
 
 <p>Angus Duggan
 
-<HR>
-<H2 id="index">Table Of Contents</H2>
-<UL>
-<LI><A HREF="#synopsis">SYNOPSIS</A>
-<LI><A HREF="#description">DESCRIPTION</A>
-<LI><A HREF="#seealso">SEE ALSO</A>
-<LI><A HREF="#author">AUTHOR</A>
-</UL>
-</BODY>
-</HTML>
+<hr>
+<h2 id="index">Table Of Contents</h2>
+<ul>
+<li><a href="#synopsis">SYNOPSIS</a>
+<li><a href="#description">DESCRIPTION</a>
+<li><a href="#options">OPTIONS</a>
+<li><a href="#seealso">SEE ALSO</a>
+<li><a href="#author">AUTHOR</a>
+</ul>
+</body>
+</html>
 
 
 
diff --git a/pstopnm.html b/pstopnm.html
index 5ac41434..6e86c0d3 100644
--- a/pstopnm.html
+++ b/pstopnm.html
@@ -306,7 +306,8 @@ command line options:
 
 <dd> forces the output file to be in plain (text) format.  Otherwise,
 it is in raw (binary) format.  See <b><a href="pbm.html">pbm</a></b>,
-etc.
+etc.  Use this instead of the <b>-plain</b> common option if you need
+plain format output.
 
 <dt><b>-llx=</b><i>bx</i>
 
diff --git a/vidtoppm.html b/vidtoppm.html
index 3eb20152..68aec80c 100644
--- a/vidtoppm.html
+++ b/vidtoppm.html
@@ -1,15 +1,15 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML><HEAD>
-<TITLE>Vidtoppm User Manual</TITLE>
-</HEAD><BODY>
-<H1>vidtoppm</H1>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.3//EN">
+<html><head><title>Vidtoppm User Manual</title></head>
+<body>
+<h1>vidtoppm</h1>
 Updated: 2000
-<BR>
-<H2>NAME</H2>
-<B>vidtopppm</B> - archived but not working
-<H2>DESCRIPTION</H2>
+<br>
+<h2>NAME</h2>
+<b>vidtoppm</b> - archived but not working
+<h2>DESCRIPTION</h2>
 
 <p>This program is part of <a href="index.html">Netpbm</a>.
+
 <p><b>vidtoppm</b> is supposed to convert Parallax XVideo JPEG
 to sequence of PPM files.  Its source code is part of the Netpbm package
 for archival purposes, but it does not currently build because it requires
@@ -19,5 +19,5 @@ for <b>vidtoppm</b>, we might be able to make it work.
 <b>vidtoppm</b> was in the Berkeley MPEG encoder package from which
 Netpbm's <b>ppmtompeg</b> was derived.
 
-</BODY>
-</HTML>
+</body>
+</html>
diff --git a/winicon.html b/winicon.html
index 71c83b4d..30a5dbcb 100644
--- a/winicon.html
+++ b/winicon.html
@@ -1,127 +1,126 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML><HEAD><TITLE>Windows Icons</TITLE></HEAD>
-<BODY>
-<H1>Windows Icons</H1>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.3//EN">
+<html><head><title>Windows Icons</title></head>
+<body>
+<h1>Windows Icons</h1>
 Updated: 12 April 2013
-<BR>
-<A HREF="#index">Table of Contents</A>
+<br>
+<a href="#index">Table Of Contents</a>
 
-<H2 id="name">NAME</H2>
+<h2>NAME</h2>
 
 Microsoft Windows icon files
 
-<H2 id="description">DESCRIPTION</H2>
+<h2 id="description">DESCRIPTION</h2>
 
 <p>A Microsoft Windows icon file contains one or more images, at
 resolutions up to 256 by 256 pixels and various bpp values.  The
 images are encoded either as Portable Network Graphics file (PNG), or
 in a format similar to Microsoft's BMP format.
 
-<P>If encoded as BMP, the image includes an "AND mask",
+<p>If encoded as BMP, the image includes an "AND mask",
 which contains 1-bit transparency data.  It may also contain
 additional 8-bit transparency data together with the color
 information.
 
-
-<H3 id="colordepth">Color Depth</H3>
+<h3 id="colordepth">Color Depth</h3>
 
 Except for the 16 bits per pixel images and images with bit fields, which both
 are rare, the colors in all BMP encoded images are RGB with 8 bits per
 channel.  Images with bpp values lower than 16 use a palette.
 
-<P>I.e. the bpp value gives the number of distinct colors, not the color
+<p>I.e. the bpp value gives the number of distinct colors, not the color
 depth.
 
 
-<H3 id="masks">XOR Mask and AND Mask</H3>
+<h3 id="masks">XOR Mask and AND Mask</h3>
 
 <p>BMP encoded images contain two pixel maps: The so-called "XOR
 mask" stores the color information for each pixel, and the
 "AND mask" stores the transparency belonging to it.
 
-<P>The names and the function of these maps are most easily
+<p>The names and the function of these maps are most easily
 understood by looking at how a 1-bpp icon image is rendered on a
 monochrome screen: The pixels on the screen are logically AND-ed with
 the bits on the AND mask, then the result is logically XOR-ed with the
 bits on the XOR mask.
 
-<P>The result is that if a bit on the AND mask is reset, the corresponding bit
+<p>The result is that if a bit on the AND mask is reset, the corresponding bit
 on the XOR mask determines the color of the pixel on the screen.  If a bit in
 the AND mask is set and the corresponding bit in the XOR mask is black
 (reset), the image is transparent.  Finally, if the bits are set in both the
 AND and XOR mask (the pixel on the XOR mask is white), the background of the
 screen is inverted.
 
-<P>In color environments, a pixel on the XOR mask outside the opaque area of
+<p>In color environments, a pixel on the XOR mask outside the opaque area of
 the image is usually black and sometimes white, but a color other than black
 and white will hardly give predictable results.
 
-<P>Since Windows XP, there may also be an 8-bit transparency channel in 32-bpp
+<p>Since Windows XP, there may also be an 8-bit transparency channel in 32-bpp
 BMP encoded icon images. The AND mask, however, is still required and used
 e.g. for generating shadows.
 
-<P>PNG encoded images don't contain AND masks.  While rendering a PNG encoded
+<p>PNG encoded images don't contain AND masks.  While rendering a PNG encoded
 image, Windows constructs an AND mask on the fly from the transparency
 channel, if present.
 
 
-<H3 id="evolution">Evolution of Windows Icons</H3>
+<h3 id="evolution">Evolution of Windows Icons</h3>
 
 <p>The Windows icon file format has undergone some extensions since it was
 invented in the mid-eighties for Windows&nbsp;1:
 
-<UL>
-<LI>Windows&nbsp;1 used monochrome 32x32 icons only.
-<LI>Windows&nbsp;3.0 added color icons with bpp values up to 8.
-<LI>Windows 4.0 (a.k.a. Windows95) added option for 32-bpp images and
+<ul>
+<li>Windows&nbsp;1 used monochrome 32x32 icons only.
+<li>Windows&nbsp;3.0 added color icons with bpp values up to 8.
+<li>Windows 4.0 (a.k.a. Windows95) added option for 32-bpp images and
 resolutions up to 256 by 256.
-<LI>NT&nbsp;5.1 (a.k.a. Windows&nbsp;XP) added option for the 8-bit
+<li>NT&nbsp;5.1 (a.k.a. Windows&nbsp;XP) added option for the 8-bit
 transparency channel in the unused bits of 32-bpp images.
-<LI>NT&nbsp;6.0 (a.k.a. Windows&nbsp;Vista) added option for PNG
+<li>NT&nbsp;6.0 (a.k.a. Windows&nbsp;Vista) added option for PNG
 encoded images
-</UL>
+</ul>
 
-<H3 id="resolutions">Common Resolutions and BPP Values</H3>
+<h3 id="resolutions">Common Resolutions and BPP Values</h3>
 
 <p>Typical resolutions and bpp values of the Windows shell icons include:
 
-<TABLE align="center" border=1>
+<table border=1 style="text-align:center">
 <?makeman l l l. ?>
 <?makeman _ ?>
-<TR><TH>OS</TH><TH>resolutions</TH><TH>bpp values</TH></TR>
-<TR><TD>Windows&nbsp;3</TD><TD>32x32</TD><TD>1, 4<BR></TD></TR>
-<TR><TD>Windows&nbsp;4</TD><TD>16x16, 32x32, 48x48</TD><TD>4, 8</TD></TR>
-<TR><TD>NT&nbsp;5</TD><TD>16x16, 32x32, 48x48</TD><TD>4, 8, 32</TD></TR>
-<TR><TD rowspan=3>NT&nbsp;6</TD><TD>16x16, 32x32, 48x48</TD><TD>4, 8, 32</TD></TR>
-<TR><TD>24x24, 96x96</TD><TD>8, 32<BR></TD></TR>
-<TR><TD>256x256</TD><TD>32 (PNG encoded)<BR></TD></TR>
-</TABLE>
-
-<P>Within the icon file, the images with low bpp values are usually
+<tr><th>OS</th><th>resolutions</th><th>bpp values</th></tr>
+<tr><td>Windows&nbsp;3</td><td>32x32</td><td>1, 4<br></td></tr>
+<tr><td>Windows&nbsp;4</td><td>16x16, 32x32, 48x48</td><td>4, 8</td></tr>
+<tr><td>NT&nbsp;5</td><td>16x16, 32x32, 48x48</td><td>4, 8, 32</td></tr>
+<tr><td rowspan=3>NT&nbsp;6</td><td>16x16, 32x32, 48x48</td><td>4, 8, 32</td></tr>
+<tr><td>24x24, 96x96</td><td>8, 32<br></td></tr>
+<tr><td>256x256</td><td>32 (PNG encoded)<br></td></tr>
+</table>
+
+<p>Within the icon file, the images with low bpp values are usually
 stored first.  With the same bpp value, the images are sorted by
 resolution, large images first.
 
 
-<H3 id="mimetype">MIME Type and File Name Extension</H3>
+<h3 id="mimetype">MIME Type and File Name Extension</h3>
 
 <p>The MIME type of Windows icon files is registered by IANA as
-<B>image/vnd.microsoft.icon</B>, but the unofficial name
-<B>image/x-icon</B> is still widely used.
-
-<P>The file name extension (used by Microsoft operating systems as
-file type identifier) is <B>.ico</B>.
-
-<HR>
-<H2 id="index">Table Of Contents</H2>
-<UL>
-<LI><A HREF="#description">DESCRIPTION</A>
-<UL>
-<LI><A HREF="#colordepth">Color Depth</A>
-<LI><A HREF="#masks">XOR Mask and AND Mask</A>
-<LI><A HREF="#evolution">Evolution of Windows Icons</A>
-<LI><A HREF="#resolutions">Common Resolutions and BPP Values</A>
-<LI><A HREF="#mimetype">MIME Type and File Name Extension</A>
-</UL>
-</UL>
-</BODY>
-</HTML>
+<b>image/vnd.microsoft.icon</b>, but the unofficial name
+<b>image/x-icon</b> is still widely used.
+
+<p>The file name extension (used by Microsoft operating systems as
+file type identifier) is <b>.ico</b>.
+
+<hr>
+<h2 id="index">Table Of Contents</h2>
+<ul>
+<li><a href="#description">DESCRIPTION</a>
+  <ul>
+  <li><a href="#colordepth">Color Depth</a>
+  <li><a href="#masks">XOR Mask and AND Mask</a>
+  <li><a href="#evolution">Evolution of Windows Icons</a>
+  <li><a href="#resolutions">Common Resolutions and BPP Values</a>
+  <li><a href="#mimetype">MIME Type and File Name Extension</a>
+  </ul>
+</ul>
+</body>
+</html>
diff --git a/winicontopam.html b/winicontopam.html
index 19f0118f..e5e6ff5a 100644
--- a/winicontopam.html
+++ b/winicontopam.html
@@ -1,94 +1,94 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML><HEAD><TITLE>Winicontopam User Manual</TITLE></HEAD>
-<BODY>
-<H1>winicontopam</H1>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.3//EN">
+<html><head><title>Winicontopam User Manual</title></head>
+<body>
+<h1>winicontopam</h1>
 Updated: 12 April 2013
-<BR>
-<A HREF="#index">Table of Contents</A>
+<br>
+<a href="#index">Table Of Contents</a>
 
-<H2 id="name">NAME</H2>
+<h2>NAME</h2>
 
 winicontopam - convert a Microsoft Windows icon file into a Netpbm PAM file
 
 
-<H2 id="synopsis">SYNOPSIS</H2>
+<h2 id="synopsis">SYNOPSIS</h2>
 
-<B>winicontopam</B>
-[<B>-image=</B><I>index</I> | <B>-allimages</B>]
-[<B>-andmasks</B>]
-[<B>-verbose</B>]
-[<I>icon_file</I>]
+<b>winicontopam</b>
+[<b>-image=</b><i>index</i> | <b>-allimages</b>]
+[<b>-andmasks</b>]
+[<b>-verbose</b>]
+[<i>icon_file</i>]
 
-<P>All options can be abbreviated to their shortest unique prefix.
+<p>All options can be abbreviated to their shortest unique prefix.
 You may use two hyphens instead of one to designate an option.  You
 may use either white space or equals signs between an option name and
 its value.
 
-<H2 id="description">DESCRIPTION</H2>
+<h2 id="description">DESCRIPTION</h2>
 
 <p>This program is part of <a href="index.html">Netpbm</a>.
 
-<P><B>winicontopam</B> reads a Microsoft Windows icon file and
+<p><b>winicontopam</b> reads a Microsoft Windows icon file and
 converts it to one or more RGB_ALPHA Netpbm PAM files.
 
-<P>The transparency channel is copied from the 8-bit transparency data from
+<p>The transparency channel is copied from the 8-bit transparency data from
 the icon, if present.  If no 8-bit transparency data is available, the
 transparency channel is constructed from the so-called "AND mask".
 
-<P>The output goes to Standard Output.
+<p>The output goes to Standard Output.
 
 <p>The output is a multi-image PAM file.  If you want a separate file for
 each image, use <a href="pamsplit.html"><b>pamsplit</b></a>.
 
 
-<H2 id="options">OPTIONS</H2>
+<h2 id="options">OPTIONS</h2>
 
-In addition to the options common to all programs based on libnetpbm (most
-notably <B>-quiet</B>, see <A HREF="index.html#commonoptions">Common
-Options</A>), <B>winicontopam</B> recognizes the following command
-line options:
+<p>In addition to the options common to all programs based on libnetpbm
+(most notably <b>-quiet</b>, see <a href="index.html#commonoptions">
+Common Options</a>), <b>winicontopam</b> recognizes the following
+command line options:
 
-<DL COMPACT>
+<dl compact>
 
-<DT><B>-allimages</B>
+<dt><b>-allimages</b>
 
-<DD>Convert all images in the input.
+<dd>Convert all images in the input.
 
 <p>You may not specify this together with <b>-image</b>.
 
 <p>By default, <b>winicontopam</b> converts only the one "best
 quality" image (largest, then most bits per pixel).
 
-<DT><B>-image=</B><I>index</I>
+<dt><b>-image=</b><i>index</i>
 
-<DD>Convert image number <I>index</I> (starting with zero).
+<dd>Convert image number <i>index</i> (starting with zero).
 
 <p>You may not specify this together with <b>-allimages</b>.
 
 <p>By default, <b>winicontopam</b> converts the "best quality"
 image (largest, then most bits per pixel).
 
-<DT><B>-andmasks</B>
+<dt><b>-andmasks</b>
 
-<DD>If the image to be extracted contains both 8-bit transparency
+<dd>If the image to be extracted contains both 8-bit transparency
 data and AND mask, write a five-channel Netpbm PAM file with the AND
 mask stored to the fifth plane.
 
-<DT><B>-verbose</B>
+<dt><b>-verbose</b>
 
-<DD>Print more messages
+<dd>Print more messages
 
-</DL>
+</dl>
 
 
-<H2 id="seealso">SEE ALSO</H2>
+<h2 id="seealso">SEE ALSO</h2>
 
 <ul>
-<li><A HREF="pamtowinicon.html"><b>pamtowinicon</b></A>
-<li><A HREF="winicontoppm.html"><b>winicontoppm</b></A>
-<li><A HREF="pamsplit.html"><b>pamsplit</b></A>
-<li><A HREF="pam.html">pam</A> 
-<li><A HREF="winicon.html">winicon</A>
+<li><a href="pamtowinicon.html"><b>pamtowinicon</b></a>
+<li><a href="winicontoppm.html"><b>winicontoppm</b></a>
+<li><a href="pamsplit.html"><b>pamsplit</b></a>
+<li><a href="pam.html"><b>pam</b></a> 
+<li><a href="winicon.html"><b>winicon</b></a>
 </ul>
 
 <p>For information on the PNG format,
@@ -102,21 +102,21 @@ see <a href="http://schaik.com/png">http://schaik.com/png</a>.
 conventions.
 
 
-<H2 id="author">AUTHOR</H2>
+<h2 id="author">AUTHOR</h2>
 
 <p>Copyright (C) 2013 by Ludolf Holzheid.
 
 <p>Translated to Netpbm coding style by Bryan Henderson.
 
-<HR>
-<H2 id="index">Table Of Contents</H2>
-<UL>
-<LI><A HREF="#synopsis">SYNOPSIS</A>
-<LI><A HREF="#description">DESCRIPTION</A>
-<LI><A HREF="#options">OPTIONS</A>
-<LI><A HREF="#seealso">SEE ALSO</A>
-<LI><A HREF="#history">HISTORY</A>
-<LI><A HREF="#author">AUTHOR</A>
-</UL>
-</BODY>
-</HTML>
+<hr>
+<h2 id="index">Table Of Contents</h2>
+<ul>
+<li><a href="#synopsis">SYNOPSIS</a>
+<li><a href="#description">DESCRIPTION</a>
+<li><a href="#options">OPTIONS</a>
+<li><a href="#seealso">SEE ALSO</a>
+<li><a href="#history">HISTORY</a>
+<li><a href="#author">AUTHOR</a>
+</ul>
+</body>
+</html>